{"version":3,"file":"js/7391.f6c554e34f27fcbd.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/shared/http-clients/bi-realtime/bi-realtime-http-client.ts","webpack://@sazka/web/./js/app/shared/http-clients/bi-realtime/bi-realtime-http-methods.ts","webpack://@sazka/web/./js/app/shared/widgets/_confirm-bonus.ts","webpack://@sazka/web/../../libs/design-system/src/loader/loader.ts","webpack://@sazka/web/../../libs/utils/document-ready.ts","webpack://@sazka/web/../../libs/utils/logger/app-insights.ts","webpack://@sazka/web/../../libs/utils/logger/use-app-logger.ts"],"sourcesContent":["import axios, { AxiosRequestConfig } from \"axios\";\r\nimport { addSagAuthInterceptor } from \"@sazka/utils/http-clients/sag-auth-interceptor\";\r\nimport { addBtmIdInterceptor } from \"@sazka/utils/http-clients/btm-id-interceptor\";\r\nimport { useSagOptions } from \"@sazka/utils/http-clients/use-sag-options\";\r\n\r\nconst { getSagApiUrl } = useSagOptions();\r\n\r\n/**\r\n * Axios basic configuration\r\n * Some general configuration can be added like timeout, headers, params etc. More details can be found on https://github.com/axios/axios\r\n * */\r\nconst config: AxiosRequestConfig = {\r\n    baseURL: getSagApiUrl(\"realtime360\"),\r\n};\r\n\r\nexport const biRealtimeHttpClient = axios.create(config);\r\n\r\n/** Adding the request interceptors */\r\naddSagAuthInterceptor(biRealtimeHttpClient);\r\naddBtmIdInterceptor(biRealtimeHttpClient);\r\n","import { useNgSession } from \"@sazka/ng/ng-session\";\r\nimport { httpClient } from \"@sazka/utils/http-clients/http-client\";\r\nimport { biRealtimeHttpClient } from \"./bi-realtime-http-client\";\r\nimport { BiRealtimeBonusesAttributes, BiRealtimeBonusesResponse } from \"./bi-realtime-http-models\";\r\n\r\nconst { session } = useNgSession();\r\n\r\nexport namespace BiRealtimeHttpMetods {\r\n    export const getPlayerBonusAttributes = async (): Promise<BiRealtimeBonusesAttributes[]> => {\r\n        if (!session.value?.PlayerID) throw new Error(\"Session PlayerID is missing\");\r\n\r\n        const response = await biRealtimeHttpClient.get<BiRealtimeBonusesResponse>(\r\n            `dehBonusInfo/${session.value.PlayerID}`\r\n        );\r\n\r\n        return response.data?.Attributes ?? [];\r\n    };\r\n\r\n    export const getPlayersBonuses = async (): Promise<number[]> => {\r\n        const attributes = await getPlayerBonusAttributes();\r\n\r\n        const activeBonuses = attributes.find((a) => !!a.ACTIVE_BONUSES)?.ACTIVE_BONUSES ?? [];\r\n        const attachedBonuses = attributes.find((a) => !!a.ATTACHED_BONUSES)?.ATTACHED_BONUSES ?? [];\r\n        const completedBonuses = attributes.find((a) => !!a.COMPLETED_BONUSES)?.COMPLETED_BONUSES ?? [];\r\n        const partiallyCompletedBonuses =\r\n            attributes.find((a) => !!a.PARTIALLY_COMPLETED_BONUSES)?.PARTIALLY_COMPLETED_BONUSES ?? [];\r\n\r\n        return activeBonuses\r\n            .concat(attachedBonuses)\r\n            .concat(completedBonuses)\r\n            .concat(partiallyCompletedBonuses)\r\n            .map((b) => Number(b));\r\n    };\r\n\r\n    export const getPlayerAttachedBonuses = async (): Promise<number[]> => {\r\n        const attributes = await getPlayerBonusAttributes();\r\n\r\n        return attributes.find((a) => !!a.ATTACHED_BONUSES)?.ATTACHED_BONUSES ?? [];\r\n    };\r\n\r\n    export const confirmPlayerBonus = async (bonusId: number) => {\r\n        await httpClient.post(`/api/player/bonuses/${bonusId}/confirm`);\r\n    };\r\n}\r\n","import { watch } from \"vue\";\r\nimport { BiRealtimeHttpMetods } from \"@/shared/http-clients/bi-realtime/bi-realtime-http-methods\";\r\nimport { useNgSession } from \"@sazka/ng/ng-session\";\r\nimport { Loader } from \"@sazka/design-system/src/loader/loader\";\r\nimport { ngFrameworkLoaded } from \"@sazka/ng/ng-integration\";\r\nimport { logException } from \"@sazka/utils/logger/use-app-logger\";\r\n\r\nconst { isLoggedIn } = useNgSession();\r\n\r\ninterface HTMLElementExtended extends HTMLElement {\r\n    confirmButton: () => void;\r\n}\r\n\r\nconst setupBonusConfirationCtas = async (buttons: HTMLElementExtended[]) => {\r\n    let playerBonusesIds: number[] = [];\r\n\r\n    try {\r\n        const playersBonusAttributes = await BiRealtimeHttpMetods.getPlayerBonusAttributes();\r\n        playerBonusesIds = playersBonusAttributes?.flatMap((bonusAttribute) =>\r\n            Object.values(bonusAttribute)\r\n                .filter((value) => Array.isArray(value))\r\n                .flat()\r\n        );\r\n    } catch (ex) {\r\n        logException(\"load-player-bonuses\", ex);\r\n    }\r\n\r\n    for (const button of buttons) {\r\n        const bonusId = parseInt(button.getAttribute(\"data-confirm-bonus-id\"));\r\n        if (!bonusId) return;\r\n\r\n        if (playerBonusesIds.some((b) => b == bonusId)) {\r\n            button.innerHTML = \"Bonus aktivován\";\r\n            return;\r\n        }\r\n\r\n        button.removeAttribute(\"disabled\");\r\n\r\n        button.confirmButton = async () => {\r\n            Loader.show();\r\n            try {\r\n                await BiRealtimeHttpMetods.confirmPlayerBonus(bonusId);\r\n                button.setAttribute(\"disabled\", \"true\");\r\n                button.innerHTML = \"Bonus aktivován\";\r\n            } catch (ex) {\r\n                logException(\"confirm-player-bonus\", ex);\r\n            } finally {\r\n                Loader.hide();\r\n            }\r\n        };\r\n\r\n        button.addEventListener(\"click\", button.confirmButton);\r\n    }\r\n};\r\n\r\ndocument.ready(async () => {\r\n    const buttons = document.querySelectorAll<HTMLElementExtended>(\"button[data-confirm-bonus-id]\");\r\n    if (!buttons.length) return;\r\n\r\n    await ngFrameworkLoaded();\r\n\r\n    watch(\r\n        isLoggedIn,\r\n        async (newIsLoggedIn) => {\r\n            if (newIsLoggedIn) {\r\n                await setupBonusConfirationCtas([...buttons]);\r\n            } else {\r\n                buttons.forEach((b) => {\r\n                    b.setAttribute(\"disabled\", \"true\");\r\n                    b.innerHTML = b.getAttribute(\"data-text\");\r\n\r\n                    if (b.confirmButton) {\r\n                        b.removeEventListener(\"click\", b.confirmButton);\r\n                        b.confirmButton = null;\r\n                    }\r\n                });\r\n            }\r\n        },\r\n        { immediate: true }\r\n    );\r\n});\r\n","import { documentReady } from \"@sazka/utils/document-ready\";\r\n\r\ndeclare const environment: any;\r\ntype ColorVariant = \"yellow\" | \"blue\";\r\n\r\n/**\r\n * Loader tells user, he has to wait for some ajax operation\r\n */\r\nexport class Loader {\r\n    private static showTimeout: number;\r\n    private static hideTimeout: number;\r\n    private static lockNumber = 0;\r\n    public static get isShown() {\r\n        return this.lockNumber > 0;\r\n    }\r\n\r\n    static {\r\n        // loader from backend\r\n        if (document.body) {\r\n            this.showLoaderFromBackend();\r\n        } else {\r\n            documentReady(() => {\r\n                this.showLoaderFromBackend();\r\n            });\r\n        }\r\n    }\r\n\r\n    static showLoaderFromBackend() {\r\n        if (document.body.classList.contains(\"loader\")) {\r\n            this.lockNumber++;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Shows loader after some time in miliseconds\r\n     * This is to reduce flickering when ajax actions are super-fast\r\n     *\r\n     * @param showLoaderIn Time in miliseconds, after which, loaded will be shown\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static show(showLoaderIn = 30, text?: string, aboveAll = false, color: ColorVariant = \"yellow\") {\r\n        this.clearTimeout();\r\n        this.lockNumber++;\r\n\r\n        this.showTimeout = window.setTimeout(() => {\r\n            this.showNow(text, aboveAll, true, color);\r\n        }, showLoaderIn);\r\n    }\r\n\r\n    /**\r\n     * Shows loader right away\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static showNow(text?: string, aboveAll = false, counted = false, color: ColorVariant = \"yellow\") {\r\n        if (!counted) {\r\n            this.lockNumber++;\r\n        }\r\n\r\n        if (!environment.isEditMode) {\r\n            const loader = document.getElementById(\"loader\");\r\n\r\n            if (!loader) return;\r\n\r\n            if (aboveAll) {\r\n                loader.classList.add(\"loader--above-all\");\r\n            } else {\r\n                loader.classList.remove(\"loader--above-all\");\r\n            }\r\n            if (text) {\r\n                loader.querySelector(\".loader__text\").textContent = text;\r\n                loader.classList.add(\"loader--with-text\");\r\n            } else {\r\n                loader.querySelector(\".loader__text\").textContent = \"\";\r\n                loader.classList.remove(\"loader--with-text\");\r\n            }\r\n\r\n            if (color === \"blue\") {\r\n                loader.classList.add(\"loader--blue\");\r\n            }\r\n\r\n            document.body.classList.add(\"loader\", \"loader--fade-in\");\r\n            this.clearTimeout();\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Shows loader after delay with z-index of 9999\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static showAboveAll(showLoaderIn = 30, text?: string) {\r\n        this.show(showLoaderIn, text, true);\r\n    }\r\n\r\n    /**\r\n     * Shows loader right away with z-index of 9999\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static showNowAboveAll(text?: string) {\r\n        this.showNow(text, true);\r\n    }\r\n\r\n    /**\r\n     * Hides loader\r\n     */\r\n    static hide() {\r\n        this.lockNumber--;\r\n        if (this.lockNumber > 0) return;\r\n\r\n        this.clearTimeout();\r\n        document.body.classList.remove(\"loader--fade-in\");\r\n        this.hideTimeout = window.setTimeout(() => {\r\n            document.body.classList.remove(\"loader\");\r\n            const loader = document.getElementById(\"loader\");\r\n            loader.querySelector(\".loader__text\").textContent = \"\";\r\n            loader.classList.remove(\"loader--with-text\");\r\n        }, 150);\r\n    }\r\n\r\n    private static clearTimeout() {\r\n        if (this.showTimeout) {\r\n            clearTimeout(this.showTimeout);\r\n            this.showTimeout = null;\r\n        }\r\n        if (this.hideTimeout) {\r\n            clearTimeout(this.hideTimeout);\r\n            this.hideTimeout = null;\r\n        }\r\n    }\r\n}\r\n","/**\r\n * Vanila JS variant to jQuery $(() => {}).\r\n * @param {callback} callback\r\n * @example - documentReady(() => {}).\r\n * This function is binding to document.ready\r\n * */\r\nexport function documentReady(callback: () => void) {\r\n    if (document.readyState !== \"loading\") {\r\n        return callback();\r\n    } else {\r\n        document.addEventListener(\"DOMContentLoaded\", callback);\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"],"names":["getSagApiUrl","useSagOptions","config","baseURL","biRealtimeHttpClient","axios","create","addSagAuthInterceptor","addBtmIdInterceptor","session","useNgSession","BiRealtimeHttpMetods","getPlayerBonusAttributes","async","_session$value","_response$data$Attrib","_response$data","value","PlayerID","Error","response","get","data","Attributes","getPlayersBonuses","_attributes$find$ACTI","_attributes$find","_attributes$find$ATTA","_attributes$find2","_attributes$find$COMP","_attributes$find3","_attributes$find$PART","_attributes$find4","attributes","activeBonuses","find","a","ACTIVE_BONUSES","attachedBonuses","ATTACHED_BONUSES","completedBonuses","COMPLETED_BONUSES","partiallyCompletedBonuses","PARTIALLY_COMPLETED_BONUSES","concat","map","b","Number","getPlayerAttachedBonuses","_attributes$find$ATTA2","_attributes$find5","confirmPlayerBonus","httpClient","post","bonusId","isLoggedIn","setupBonusConfirationCtas","playerBonusesIds","playersBonusAttributes","flatMap","bonusAttribute","Object","values","filter","Array","isArray","flat","ex","logException","button","buttons","parseInt","getAttribute","some","innerHTML","removeAttribute","confirmButton","Loader","show","setAttribute","hide","addEventListener","document","ready","querySelectorAll","length","ngFrameworkLoaded","watch","newIsLoggedIn","forEach","removeEventListener","immediate","isShown","this","lockNumber","showLoaderFromBackend","body","classList","contains","showLoaderIn","text","aboveAll","color","clearTimeout","showTimeout","window","setTimeout","showNow","counted","environment","isEditMode","loader","getElementById","add","remove","querySelector","textContent","showAboveAll","showNowAboveAll","hideTimeout","_defineProperty","_Loader","documentReady","callback","readyState","toTrack","appInsights","isDev","env","ngSessionRef","init","extensions","extensionConfig","isKasa","DebugPlugin","debugPluginInstance","push","identifier","trackers","ApplicationInsights","connectionString","appSettings","disableAjaxTracking","disableFetchTracking","disableDataLossAnalysis","enableUnhandledPromiseRejectionTracking","telemetryInitializer","envelope","_ngSessionRef$value$P","_ngSessionRef","playerId","location","href","userAgent","navigator","mobileView","isInAppView","addTelemetryInitializer","loadAppInsights","trackEvent","name","properties","_appInsights","trackException","exception","_appInsights2","trackMetric","_appInsights3","average","useAppInsights","enabledSegments","_appSettings$Features","_appSettings$Features2","split","isEnabledAllTrafic","enableSegmentName","logEvent","codename","console","log","logDebugEvent","segmentName","error","logCustomException","message","logMetric"],"sourceRoot":""}