{"version":3,"file":"js/8435.d5de40fc8b8111f4.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/sports-bets/_open-bet-integration.ts","webpack://@sazka/web/../../libs/ng/ng-player-restrictions.ts","webpack://@sazka/web/../../libs/utils/logger/app-insights.ts","webpack://@sazka/web/../../libs/utils/logger/use-app-logger.ts","webpack://@sazka/web/../../libs/utils/timer.ts"],"sourcesContent":["import { ngFrameworkLoaded } from \"@sazka/ng/ng-integration\";\r\nimport { UrlUtils } from \"@sazka/utils/url\";\r\nimport { checkPlayerRestrictions } from \"@sazka/ng/ng-player-restrictions\";\r\nimport { logMetric } from \"@sazka/utils/logger/use-app-logger\";\r\nimport { Timer } from \"@sazka/utils/timer\";\r\nimport { navigateToSportBetsUrl } from \"./sports-bets-navigation\";\r\n\r\nconst containerId = \"sportsbook-container\";\r\n\r\nlet iframeLocation = {\r\n    pathname: \"/\",\r\n};\r\nconst pathRoot = getPathRoot(window.location.pathname);\r\nlet timer: Timer;\r\n\r\ndocument.ready(initOpenBetIntegration);\r\n\r\nasync function initOpenBetIntegration() {\r\n    const container = document.getElementById(containerId);\r\n\r\n    ngFrameworkLoaded().then(() => {\r\n        checkPlayerRestrictions(false, true);\r\n    });\r\n\r\n    // bind click handler to sports bets menu\r\n    document.querySelectorAll(\".sports-bets-menu__link, .sports-bets-menu__submenu-link\").forEach((el) => {\r\n        el.addEventListener(\"click\", async (e) => {\r\n            const link = e.currentTarget as HTMLElement;\r\n            let path = link.dataset.code;\r\n            const pathRoot = getPathRoot(path);\r\n            path = path.replace(pathRoot, \"\") || \"/\";\r\n\r\n            navigateToSportBetsUrl(path);\r\n\r\n            const active = document.querySelector(\".sports-bets-menu__link.active\");\r\n            if (active) {\r\n                active.classList.remove(\"active\");\r\n            }\r\n            link.classList.add(\"active\");\r\n        });\r\n    });\r\n\r\n    addEventListener(\"@sgd/portal-core/content/CMS_CONTENT_READY\", () => {\r\n        container.classList.add(\"loaded\");\r\n    });\r\n\r\n    addEventListener(\"@@spa/page-ready\", () => {\r\n        logMetric(\"OB_Loading_Time\", timer.getTime());\r\n    });\r\n\r\n    window.addEventListener(\"popstate\", (event) => {\r\n        if (event.state && event.state.innerLocation) {\r\n            setIframeLocation(event.state.innerLocation, false);\r\n        }\r\n    });\r\n\r\n    iframeLocation = getIframeLocationFromQueryAndPath();\r\n\r\n    await openSport(container, iframeLocation);\r\n}\r\n\r\nasync function openSport(container, path) {\r\n    const ngApi = await ngLoader.onNgFetch();\r\n\r\n    ngApi.openSport(container, path).then(function (api) {\r\n        (window as any).openSportApi = api;\r\n        timer = new Timer();\r\n        api.addEventListener(\"setCurrentLocation\", function (eventData) {\r\n            setIframeLocation(eventData.location, true);\r\n        });\r\n    });\r\n}\r\n\r\n/**\r\n *\r\n * @param location desired iframe location\r\n * @param pushState flag, if url should be pushed to history - set false on popstate\r\n */\r\nfunction setIframeLocation(location: string, pushState: boolean) {\r\n    const finalUrl = pathRoot == \"\" ? location : pathRoot + location; // this is needed cos rootPath is wihout ending '/' except for state where its only '/'\r\n\r\n    if (pushState) {\r\n        if (window.history) {\r\n            history.replaceState(null, document.title, finalUrl);\r\n        }\r\n    }\r\n    iframeLocation = {\r\n        pathname: location,\r\n    };\r\n}\r\n\r\n/**\r\n * Gets path location for sports iframe from URL and document location\r\n */\r\nfunction getIframeLocationFromQueryAndPath() {\r\n    return {\r\n        pathname: getPathname() || \"/\",\r\n        search: getSearch(),\r\n        fragment: getFragment(),\r\n    };\r\n}\r\n\r\n/**\r\n * Gets root path of page - usualy its '/kurzove-sazky' but the function is returning first path part from URL\r\n */\r\nfunction getPathRoot(path: string) {\r\n    let pathRoot = \"/\";\r\n    let paths = path.split(\"/\");\r\n    paths = paths.filter((x) => x); // filter out empty values\r\n    if (paths && paths.length) {\r\n        pathRoot += paths[0];\r\n    }\r\n    return pathRoot;\r\n}\r\n\r\n/**\r\n * Gets path from pathname query or from URL, pathname query has priority. Starts with '/', ends without '/'\r\n */\r\nfunction getPathname() {\r\n    let path = UrlUtils.getQueryString(\"pathname\");\r\n\r\n    if (path) {\r\n        path = decodeURIComponent(path);\r\n\r\n        if (!path.startsWith(\"/\")) {\r\n            path += \"/\" + path;\r\n        }\r\n\r\n        return path;\r\n    } else {\r\n        let paths = window.location.pathname.split(\"/\");\r\n        paths = paths.filter((x) => x); // filter out empty values\r\n\r\n        if (paths.length > 1) {\r\n            paths.shift(); // remove root '/kurzove-sazky'\r\n            return \"/\" + paths.join(\"/\");\r\n        }\r\n\r\n        return \"/\";\r\n    }\r\n}\r\n\r\n/**\r\n * Get query parh of URL - combines original query with value from search query. Starts without '?'\r\n */\r\nfunction getSearch() {\r\n    // base query like from tracking UI\r\n    let query = getBaseQueryStrings(document.location.search.replace(\"?\", \"\"), [\"pathname\", \"search\", \"hash\"]);\r\n\r\n    let searchParam = UrlUtils.getQueryString(\"search\");\r\n\r\n    if (searchParam !== null) {\r\n        searchParam = decodeURIComponent(searchParam);\r\n\r\n        if (query && searchParam) {\r\n            query += \"&\" + searchParam;\r\n        } else if (query != \"\") {\r\n            query = searchParam;\r\n        }\r\n    }\r\n\r\n    return query;\r\n}\r\n\r\n/**\r\n * Gets hash part of URL - combines original hash from URL with hash from querystring called 'hash'. Starts without '#'\r\n */\r\nfunction getFragment() {\r\n    // original hash\r\n    let hash = document.location.hash.replace(\"#\", \"\").replace(\"/\", \"\");\r\n\r\n    // hash from query\r\n    let hashParam = UrlUtils.getQueryString(\"hash\");\r\n    if (hashParam !== null) {\r\n        hashParam = decodeURIComponent(hashParam).replace(\"#\", \"\");\r\n        if (hash && hashParam) {\r\n            hash += \"&\" + hashParam;\r\n        } else {\r\n            hash = hashParam;\r\n        }\r\n    }\r\n\r\n    return hash;\r\n}\r\n\r\nfunction getBaseQueryStrings(querystrings: string, excludedParams: string[]) {\r\n    const params = querystrings.split(\"&\");\r\n    let result = \"\";\r\n    for (const element of params) {\r\n        const keyValuePair = element.split(\"=\");\r\n\r\n        if (excludedParams.indexOf(keyValuePair[0]) == -1) {\r\n            const delim = result != \"\" ? \"&\" : \"\";\r\n            result += delim + element;\r\n        }\r\n    }\r\n\r\n    return result;\r\n}\r\n","import { showAlert } from \"@sazka/design-system/src/modal-alert/mount-alert\";\r\n\r\nexport const checkPlayerRestrictions = (\r\n    hideSazkaAlert = false,\r\n    ignoreActionId = false,\r\n    isLottery = false\r\n): Promise<boolean> => {\r\n    return new Promise((res) => {\r\n        ng_fw.getPlayerRestrictions((restrictions) => {\r\n            const isLimited =\r\n                !ignoreActionId &&\r\n                restrictions.some((x) => x.actionId == 1) &&\r\n                (!isLottery || restrictions.filter((x) => x.actionId == 1).some((x) => x.reasonId != 115));\r\n\r\n            const isLawRestricted = restrictions.some((x) => x.reasonId == 129);\r\n\r\n            const isRestricted = isLimited || isLawRestricted;\r\n\r\n            if (isLawRestricted && !hideSazkaAlert) {\r\n                showAlert({\r\n                    title: \"Omezení online hraní\",\r\n                    subText:\r\n                        \"Je nám líto, ale na základě zákona o hazardních hrách vám nadále nemůžeme umožnit online sázení na herním portálu Sazka.cz. Výběry z vašeho účtu jsou možné.\",\r\n                    href: \"/centrum-podpory/online-hrani-na-sazka-cz/muj-ucet/rejstrik-vyloucenych-osob\",\r\n                    btnHrefText: \"Více informací\",\r\n                    btnCloseText: \"Rozumím\",\r\n                });\r\n            } else if (isLimited && !hideSazkaAlert) {\r\n                showAlert({\r\n                    title: \"Sázka neproběhla\",\r\n                    subText: \"Je nám líto, ale vámi zvolenou sázku se nepodařilo uzavřít s ohledem na aktuální omezení na vašem účtu. Pro více informací se obraťte na naše kontaktní centrum. \",\r\n                    btnCloseText: \"Rozumím\",\r\n                });\r\n            }\r\n\r\n            res(isRestricted);\r\n        });\r\n    });\r\n};\r\n","import { ApplicationInsights, ITelemetryItem } from \"@microsoft/applicationinsights-web\";\r\nimport { NgSession } from \"@sazka/ng/model/ng-fw\";\r\nimport { Ref } from \"vue\";\r\n\r\nconst toTrack = [\r\n    \"trackEvent\",\r\n    \"trackPageView\",\r\n    \"trackPageViewPerformance\",\r\n    \"trackException\",\r\n    \"trackTrace\",\r\n    \"trackMetric\",\r\n    \"trackDependencyData\",\r\n    \"throwInternal\", // called when a message is logged internally\r\n    \"logInternalMessage\", // called when a message is logged internally\r\n    \"triggerSend\", // called when data is queued to be sent to the server\r\n    \"_sender\", // called when data is sent to the server\r\n];\r\n\r\nlet appInsights: ApplicationInsights = null;\r\n\r\nconst isDev = environment.env === \"Development\";\r\n\r\nlet ngSessionRef: Ref<NgSession> = null;\r\n\r\nasync function init() {\r\n    const extensions = [];\r\n    const extensionConfig = {};\r\n\r\n    if (!environment.isKasa) {\r\n        const { useNgSession } = await import(\"@sazka/ng/ng-session\");\r\n        ngSessionRef = useNgSession().session;\r\n    }\r\n\r\n    if (isDev) {\r\n        // eslint-disable-next-line @typescript-eslint/naming-convention\r\n        const { DebugPlugin } = await import(\"@microsoft/applicationinsights-debugplugin-js\");\r\n        const debugPluginInstance = new DebugPlugin();\r\n        extensions.push(debugPluginInstance);\r\n        extensionConfig[DebugPlugin.identifier] = {\r\n            trackers: toTrack,\r\n        };\r\n    }\r\n\r\n    appInsights = new ApplicationInsights({\r\n        config: {\r\n            connectionString: appSettings[\"APPLICATIONINSIGHTS_CONNECTION_STRING\"],\r\n            disableAjaxTracking: true,\r\n            disableFetchTracking: true,\r\n            disableDataLossAnalysis: false,\r\n            enableUnhandledPromiseRejectionTracking: true,\r\n            extensions: extensions,\r\n            extensionConfig: extensionConfig,\r\n        },\r\n    });\r\n\r\n    const telemetryInitializer = (envelope: ITelemetryItem) => {\r\n        envelope.data = envelope.data || {};\r\n        envelope.data.playerId = ngSessionRef?.value?.PlayerID ?? null;\r\n        envelope.data.location = window.location.href;\r\n        envelope.data.userAgent = window.navigator.userAgent;\r\n        envelope.data.mobileView = environment.isInAppView;\r\n    };\r\n\r\n    appInsights.addTelemetryInitializer(telemetryInitializer);\r\n    appInsights.loadAppInsights();\r\n}\r\n\r\nfunction trackEvent(name: string, properties: Record<string, any>) {\r\n    appInsights?.trackEvent(\r\n        {\r\n            name: name,\r\n        },\r\n        {\r\n            properties,\r\n        }\r\n    );\r\n}\r\n\r\n// Used to track exceptions with custom properties in addition to automatically tracked exceptions (other than base data).\r\nfunction trackException(exception: Error, properties: Record<string, any> = {}) {\r\n    appInsights?.trackException({ exception, properties });\r\n}\r\n\r\nfunction trackMetric(name: string, value: number) {\r\n    appInsights?.trackMetric({ name: name, average: value });\r\n}\r\n\r\nexport function useAppInsights() {\r\n    return {\r\n        init,\r\n        trackEvent,\r\n        trackMetric,\r\n        trackException,\r\n    };\r\n}\r\n","import { useAppInsights } from \"./app-insights\";\r\n\r\n/** You can add your namespace */\r\ntype KasaLoggerSegmentNames = \"kasa-apis\" | \"kasa-wheel-page\";\r\ntype WebLoggerSegmentNames = \"deh-general\" | \"bonusomat\" | \"golden-wheel\";\r\ntype AppLogggerSegmentNames = \"all\" | WebLoggerSegmentNames | KasaLoggerSegmentNames;\r\n\r\nconst { trackEvent, trackException, trackMetric } = useAppInsights();\r\n\r\n/**\r\n *   You can combinate more segments separated by semicolon in appsettings.\r\n *   etc. Sazka:Features:FeAppLoggerSegmentsEnabled: \"bonusomat;golden-wheel\"\r\n * */\r\nconst enabledSegments: AppLogggerSegmentNames[] =\r\n    (appSettings[\"Features:FeAppLoggerSegmentsEnabled\"]?.split(\";\") as AppLogggerSegmentNames[]) ?? [];\r\n\r\nconst isEnabledAllTrafic = enabledSegments.some((enableSegmentName) => enableSegmentName == \"all\");\r\n\r\n/**\r\n * Log event to console and app insights\r\n * @param codename Short event name string (code name of event)\r\n * @param properties Custom data to log\r\n */\r\nexport const logEvent = (codename: string, properties: Record<string, any> = {}) => {\r\n    console.log(codename, properties);\r\n    trackEvent(codename, properties);\r\n};\r\n\r\n/**\r\n * Log event to console and app insights if segmets debug mode is enabled\r\n * @param segmentName The name of the segment that must be enabled to send the event\r\n * @param codename Short event name string (code name of event)\r\n * @param properties Custom data to log\r\n */\r\nexport const logDebugEvent = (\r\n    segmentName: AppLogggerSegmentNames,\r\n    codename: string,\r\n    properties: Record<string, any> = {}\r\n) => {\r\n    if (isEnabledAllTrafic || enabledSegments.some((enableSegmentName) => enableSegmentName == segmentName)) {\r\n        logEvent(codename, { segmentName: segmentName, ...properties });\r\n    }\r\n};\r\n\r\n/**\r\n * Log exception to console and app insights. *\r\n * @param codename  Short exception name string (code name of event)\r\n * @param exception Object from the exception (try..catch value)\r\n * @param properties Custom data to log\r\n */\r\nexport const logException = (codename: string, exception: Error | unknown, properties: Record<string, any> = {}) => {\r\n    console.error(exception, properties);\r\n    trackException(exception as Error, { codename: codename, ...properties });\r\n};\r\n\r\n/**\r\n * Log custom exception to console and app insights.\r\n * @param codename  Short exception name string (code name of event)\r\n * @param message Short message of error\r\n * @param properties Custom data to log\r\n */\r\nexport const logCustomException = (codename: string, message: string, properties: Record<string, any> = {}) => {\r\n    const error = new Error(message);\r\n    logException(codename, error, properties);\r\n};\r\n\r\n/**\r\n * Log some metric to app insights\r\n */\r\nexport const logMetric = trackMetric;\r\n","export class Timer {\r\n    start: Date;\r\n\r\n    constructor() {\r\n        this.start = new Date();\r\n    }\r\n\r\n    public getTime(): number {\r\n        return new Date().getTime() - this.start.getTime();\r\n    }\r\n\r\n    public reset(): void {\r\n        this.start = new Date();\r\n    }\r\n}\r\n\r\n/**\r\n *\r\n * @param {Function} callback to call when complete\r\n * @param {Number} delay in milliseconds\r\n */\r\nexport class TimeoutTimer extends Timer {\r\n    timerId: number;\r\n    remaining: number;\r\n    callback: () => void;\r\n\r\n    constructor(callback: () => void, delay: number) {\r\n        super();\r\n        this.remaining = delay;\r\n        this.callback = callback;\r\n\r\n        this.timerId = window.setTimeout(this.callback, this.remaining);\r\n    }\r\n\r\n    public clear(): void {\r\n        clearTimeout(this.timerId);\r\n    }\r\n\r\n    public pause(): void {\r\n        clearTimeout(this.timerId);\r\n        this.remaining -= Math.abs(new Date().getTime() - this.start.getTime());\r\n    }\r\n\r\n    public resume(): void {\r\n        this.start = new Date();\r\n        clearTimeout(this.timerId);\r\n        this.timerId = window.setTimeout(this.callback, this.remaining);\r\n    }\r\n}\r\n"],"names":["containerId","iframeLocation","pathname","pathRoot","getPathRoot","window","location","timer","async","initOpenBetIntegration","container","document","getElementById","ngFrameworkLoaded","then","checkPlayerRestrictions","querySelectorAll","forEach","el","addEventListener","link","e","currentTarget","path","dataset","code","replace","navigateToSportBetsUrl","active","querySelector","classList","remove","add","logMetric","getTime","event","state","innerLocation","setIframeLocation","getIframeLocationFromQueryAndPath","openSport","ngApi","ngLoader","onNgFetch","api","openSportApi","Timer","eventData","pushState","finalUrl","history","replaceState","title","getPathname","search","getSearch","fragment","getFragment","paths","split","filter","x","length","UrlUtils","getQueryString","decodeURIComponent","startsWith","shift","join","query","getBaseQueryStrings","searchParam","hash","hashParam","querystrings","excludedParams","params","result","element","keyValuePair","indexOf","delim","ready","hideSazkaAlert","ignoreActionId","isLottery","Promise","res","ng_fw","getPlayerRestrictions","restrictions","isLimited","some","actionId","reasonId","isLawRestricted","isRestricted","showAlert","subText","href","btnHrefText","btnCloseText","toTrack","appInsights","isDev","environment","env","ngSessionRef","init","extensions","extensionConfig","isKasa","useNgSession","session","DebugPlugin","debugPluginInstance","push","identifier","trackers","ApplicationInsights","config","connectionString","appSettings","disableAjaxTracking","disableFetchTracking","disableDataLossAnalysis","enableUnhandledPromiseRejectionTracking","telemetryInitializer","envelope","_ngSessionRef$value$P","_ngSessionRef","data","playerId","value","PlayerID","userAgent","navigator","mobileView","isInAppView","addTelemetryInitializer","loadAppInsights","trackEvent","name","properties","_appInsights","trackException","exception","_appInsights2","trackMetric","_appInsights3","average","useAppInsights","enabledSegments","_appSettings$Features","_appSettings$Features2","isEnabledAllTrafic","enableSegmentName","logEvent","codename","console","log","logDebugEvent","segmentName","logException","error","logCustomException","message","Error","constructor","_defineProperty","this","start","Date","reset","TimeoutTimer","callback","delay","super","remaining","timerId","setTimeout","clear","clearTimeout","pause","Math","abs","resume"],"sourceRoot":""}