{"version":3,"file":"js/8414.b349a1585d7b52c8.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/eurojackpot-config.ts","webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/kameny-config.ts","webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/keno-config.ts","webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/sportka-config.ts","webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/stastnych-10-config.ts","webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/euromiliony-config.ts","webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/extra-renta-config.ts","webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/base-config.ts","webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/get-game-config.ts","webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/kasicka-config.ts","webpack://@sazka/web/./js/app/lotteries/ds-online/game-configs/rychla-6-config.ts","webpack://@sazka/web/./js/app/lotteries/product-page/composables/use-past-draws.ts","webpack://@sazka/web/./js/app/lotteries/product-page/composables/use-pp-bet-analytics.ts","webpack://@sazka/web/./js/app/lotteries/services/wincheck/http-client.ts","webpack://@sazka/web/./js/app/lotteries/services/wincheck/api.ts","webpack://@sazka/web/./js/app/lotteries/product-page/composables/use-ticket-check.ts","webpack://@sazka/web/./js/app/lotteries/product-page/composables/use-wager-configuration.ts","webpack://@sazka/web/./js/app/lotteries/product-page/model/duration-state.ts","webpack://@sazka/web/./js/app/lotteries/product-page/model/subscription-end-type.ts","webpack://@sazka/web/./js/app/lotteries/product-page/composables/use-wager-utils.ts","webpack://@sazka/web/./js/app/lotteries/product-page/stores/use-wager-board-store.ts","webpack://@sazka/web/./js/app/lotteries/product-page/model/betting-mode.ts","webpack://@sazka/web/./js/app/lotteries/product-page/stores/use-wager-duration-store.ts","webpack://@sazka/web/./js/app/lotteries/product-page/utils/pp-debug-logger.ts","webpack://@sazka/web/./js/app/lotteries/services/draw-info/http-client.ts","webpack://@sazka/web/./js/app/lotteries/services/draw-info/api.ts","webpack://@sazka/web/./js/app/lotteries/services/model/draw.ts","webpack://@sazka/web/./js/app/questionnaires/use-questionnaires.ts","webpack://@sazka/web/../../libs/utils/logger/app-insights.ts","webpack://@sazka/web/../../libs/utils/logger/use-app-logger.ts"],"sourcesContent":["import { WagerConfiguration } from \"../model/wager-configuration\";\r\nimport { Lottery } from \"../../model/lottery\";\r\n\r\nexport const eurojackpotConfig: WagerConfiguration = {\r\n    lottery: Lottery.eurojackpot,\r\n    boardCount: 6,\r\n    primaryBoardSize: 5,\r\n    defaultStake: 0,\r\n    primaryNumbers: 50,\r\n\r\n    additionalBoardSize: 2,\r\n    additionalNumbers: 12,\r\n\r\n    addonBoardSize: 6,\r\n    addonNumbers: 9,\r\n\r\n    primarySystemMinCount: 5,\r\n    primarySystemDefaultCount: 6,\r\n    primarySystemMaxCount: 10,\r\n    additionalSystemMinCount: 2,\r\n    additionalSystemDefaultCount: 2,\r\n    additionalSystemMaxCount: 10,\r\n\r\n    boardLabel: \"Sloupec\",\r\n    hasDurationComponent: true,\r\n    hasDrawOptions: true,\r\n    hasMultidrawNotification: true,\r\n    hasAllOrOneMultidrawOptions: false,\r\n    hasSubscription: true,\r\n    isDrawnEveryDay: true,\r\n    durationTitle:\r\n        \"Euromiliony se hrají pravidelně <strong>2x&nbsp;týdně</strong>, vždy v <strong>úterý</strong> a v <strong>sobotu</strong>.\",\r\n    maxDuration: 24,\r\n    multidrawDurationOptions: [\r\n        { value: \"tue\", mainText: \"Úterý\", dayOfWeek: \"2\", hour: 19, drawName: \"tue\" },\r\n        { value: \"fri\", mainText: \"Pátek\", dayOfWeek: \"5\", hour: 19, drawName: \"fri\" },\r\n    ],\r\n};\r\n","import { WagerConfiguration } from \"../model/wager-configuration\";\r\nimport { Lottery } from \"../../model/lottery\";\r\n\r\nexport const kamenyConfig: WagerConfiguration = {\r\n    lottery: Lottery.kameny,\r\n    boardCount: 4,\r\n    primaryBoardSize: 31,\r\n    defaultStake: 0,\r\n    primaryNumbers: 31,\r\n    boardLabel: \"\",\r\n\r\n    hasDurationComponent: true,\r\n    hasDrawOptions: false,\r\n    hasMultidrawNotification: true,\r\n    hasAllOrOneMultidrawOptions: true,\r\n    hasSubscription: false,\r\n    isDrawnEveryDay: true,\r\n    durationTitle: \"Kameny losujeme <strong>každých 5 minut.</strong>\",\r\n    maxDuration: 34,\r\n\r\n    multidrawDurationOptions: [],\r\n};\r\n","import { WagerConfiguration } from \"../model/wager-configuration\";\r\nimport { Lottery } from \"../../model/lottery\";\r\n\r\nexport const kenoConfig: WagerConfiguration = {\r\n    lottery: Lottery.keno,\r\n    boardCount: 2,\r\n    primaryBoardSize: 7,\r\n    defaultStake: 1000,\r\n    primaryNumbers: 60,\r\n\r\n    primaryMinBoardSize: 2,\r\n\r\n    stakeOptions: [500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500, 5000, 6000, 7000, 8000, 9000, 10000],\r\n\r\n    boardLabel: \"\",\r\n    hasDurationComponent: false,\r\n    hasDrawOptions: false,\r\n    hasMultidrawNotification: false,\r\n    hasAllOrOneMultidrawOptions: false,\r\n    hasSubscription: false,\r\n    isDrawnEveryDay: true,\r\n    durationTitle: \"\",\r\n    maxDuration: 34,\r\n    multidrawDurationOptions: [],\r\n};\r\n","import { WagerConfiguration } from \"../model/wager-configuration\";\r\nimport { Lottery } from \"../../model/lottery\";\r\n\r\nexport const sportkaConfig: WagerConfiguration = {\r\n    lottery: Lottery.sportka,\r\n    boardCount: 8,\r\n    primaryBoardSize: 6,\r\n    defaultStake: 0,\r\n    primaryNumbers: 49,\r\n    boardLabel: \"Sloupec\",\r\n\r\n    primarySystemMinCount: 7,\r\n    primarySystemMaxCount: 15,\r\n    primarySystemDefaultCount: 8,\r\n\r\n    addonBoardSize: 6,\r\n    addonNumbers: 9,\r\n\r\n    additionalBoardSize: 0,\r\n    additionalNumbers: 0,\r\n\r\n    hasDurationComponent: true,\r\n    hasDrawOptions: true,\r\n    hasMultidrawNotification: true,\r\n    hasAllOrOneMultidrawOptions: true,\r\n    hasSubscription: true,\r\n    isDrawnEveryDay: true,\r\n    durationTitle: \"Sportka se hraje pravidelně 3x týdně. Mimořádně také jiné dny.\",\r\n    maxDuration: 36,\r\n\r\n    multidrawDurationOptions: [\r\n        { value: \"wed\", mainText: \"Středa\", dayOfWeek: \"3\", hour: 19, drawName: \"wed\" },\r\n        { value: \"fri\", mainText: \"Pátek\", dayOfWeek: \"5\", hour: 19, drawName: \"fri\" },\r\n        { value: \"sun\", mainText: \"Neděle\", dayOfWeek: \"0\", hour: 19, drawName: \"sun\" },\r\n    ],\r\n};\r\n","import { WagerConfiguration } from \"../model/wager-configuration\";\r\nimport { Lottery } from \"../../model/lottery\";\r\n\r\nexport const stastnych10Config: WagerConfiguration = {\r\n    lottery: Lottery.stastnych10,\r\n    boardCount: 4,\r\n    primaryBoardSize: 10,\r\n    defaultStake: 1000,\r\n    primaryNumbers: 80,\r\n    boardLabel: \"Sloupec\",\r\n\r\n    addonBoardSize: 6,\r\n    addonNumbers: 9,\r\n\r\n    primaryMinBoardSize: 1,\r\n    stakeOptions: [...new Array(20)].map((_, i) => (i + 1) * 1000),\r\n\r\n    hasDurationComponent: true,\r\n    hasDrawOptions: true,\r\n    hasMultidrawNotification: true,\r\n    hasAllOrOneMultidrawOptions: false,\r\n    hasSubscription: true,\r\n    isDrawnEveryDay: true,\r\n    durationTitle: \"Šťastných 10 losujeme <strong>2x denně - ve 12:00 a 20:00.</strong>\",\r\n    maxDuration: 96,\r\n\r\n    multidrawDurationOptions: [\r\n        { value: \"afternoon\", mainText: \"Polední\", hour: 12, drawName: \"aft\" },\r\n        { value: \"evening\", mainText: \"Večerní\", hour: 20, drawName: \"evn\" },\r\n    ],\r\n};\r\n","import { WagerConfiguration } from \"../model/wager-configuration\";\r\nimport { Lottery } from \"../../model/lottery\";\r\n\r\nexport const euromilionyConfig: WagerConfiguration = {\r\n    lottery: Lottery.euromiliony,\r\n    boardCount: 9,\r\n    primaryBoardSize: 7,\r\n    defaultStake: 0,\r\n    primaryNumbers: 35,\r\n\r\n    additionalBoardSize: 1,\r\n    additionalNumbers: 5,\r\n\r\n    addonBoardSize: 5,\r\n    addonNumbers: 9,\r\n\r\n    primarySystemMaxCount: 13,\r\n\r\n    boardLabel: \"Sloupec\",\r\n    hasDurationComponent: true,\r\n    hasDrawOptions: false,\r\n    hasMultidrawNotification: true,\r\n    hasAllOrOneMultidrawOptions: false,\r\n    hasSubscription: true,\r\n    isDrawnEveryDay: true,\r\n    durationTitle:\r\n        \"Euromiliony se hrají pravidelně <strong>2x&nbsp;týdně</strong>, vždy v <strong>úterý</strong> a v <strong>sobotu</strong>.\",\r\n    maxDuration: 16,\r\n    multidrawDurationOptions: [\r\n        { value: \"tue\", mainText: \"Úterý\", dayOfWeek: \"2\", hour: 19, drawName: \"tue\" },\r\n        { value: \"sat\", mainText: \"Sobota\", dayOfWeek: \"6\", hour: 19, drawName: \"sat\" },\r\n    ],\r\n};\r\n","import { WagerConfiguration } from \"../model/wager-configuration\";\r\nimport { Lottery } from \"../../model/lottery\";\r\n\r\nexport const extraRentaConfig: WagerConfiguration = {\r\n    lottery: Lottery.extraRenta,\r\n    boardCount: 4,\r\n    primaryBoardSize: 7,\r\n    defaultStake: 10,\r\n    primaryNumbers: 33,\r\n    boardLabel: \"Sloupec\",\r\n\r\n    hasDurationComponent: true,\r\n    hasDrawOptions: true,\r\n    hasMultidrawNotification: true,\r\n    hasAllOrOneMultidrawOptions: true,\r\n    hasSubscription: true,\r\n    isDrawnEveryDay: true,\r\n    durationTitle: \"Extra renta se hraje pravidelně 2&#215; týdně\",\r\n    maxDuration: 24,\r\n\r\n    multidrawDurationOptions: [\r\n        { value: \"mon\", mainText: \"Pondělí\", dayOfWeek: \"1\", hour: 20, drawName: \"mon\" },\r\n        { value: \"thu\", mainText: \"Čtvrtek\", dayOfWeek: \"4\", hour: 20, drawName: \"thu\" },\r\n    ],\r\n};\r\n","import { WagerConfiguration } from \"../model/wager-configuration\";\r\n\r\nexport const baseConfig: WagerConfiguration = {\r\n    lottery: null,\r\n    boardCount: null,\r\n    primaryBoardSize: null,\r\n    defaultStake: null,\r\n    boardLabel: null,\r\n    primaryNumbers: null,\r\n\r\n    additionalBoardSize: null,\r\n    additionalNumbers: null,\r\n\r\n    addonBoardSize: null,\r\n    addonNumbers: null,\r\n\r\n    primarySystemMaxCount: null,\r\n    additionalSystemMaxCount: null,\r\n\r\n    primaryMinBoardSize: null,\r\n    stakeOptions: [],\r\n\r\n    hasDurationComponent: null,\r\n    durationTitle: null,\r\n    hasDrawOptions: null,\r\n    hasAllOrOneMultidrawOptions: null,\r\n    hasMultidrawNotification: null,\r\n    hasDurationInDays: null,\r\n    hasSubscription: null,\r\n    multidrawDurationOptions: [],\r\n    maxDuration: null,\r\n    isDrawnEveryDay: null,\r\n};\r\n","import { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { WagerConfiguration } from \"../model/wager-configuration\";\r\nimport { eurojackpotConfig } from \"./eurojackpot-config\";\r\nimport { kamenyConfig } from \"./kameny-config\";\r\nimport { kenoConfig } from \"./keno-config\";\r\nimport { rychla6Config } from \"./rychla-6-config\";\r\nimport { sportkaConfig } from \"./sportka-config\";\r\nimport { stastnych10Config } from \"./stastnych-10-config\";\r\nimport { euromilionyConfig } from \"./euromiliony-config\";\r\nimport { kasickaConfig } from \"./kasicka-config\";\r\nimport { extraRentaConfig } from \"./extra-renta-config\";\r\nimport { miniRentaConfig } from \"./mini-renta-config\";\r\nimport { baseConfig } from \"./base-config\";\r\n\r\nexport const getGameConfig = (lottery: Lottery): WagerConfiguration => {\r\n    let lotteryConfig = null;\r\n    switch (lottery) {\r\n        case Lottery.euromiliony:\r\n            lotteryConfig = euromilionyConfig;\r\n            break;\r\n        case Lottery.eurojackpot:\r\n            lotteryConfig = eurojackpotConfig;\r\n            break;\r\n        case Lottery.keno:\r\n            lotteryConfig = kenoConfig;\r\n            break;\r\n        case Lottery.kameny:\r\n            lotteryConfig = kamenyConfig;\r\n            break;\r\n        case Lottery.rychla6:\r\n            lotteryConfig = rychla6Config;\r\n            break;\r\n        case Lottery.sportka:\r\n            lotteryConfig = sportkaConfig;\r\n            break;\r\n        case Lottery.stastnych10:\r\n            lotteryConfig = stastnych10Config;\r\n            break;\r\n        case Lottery.kasicka:\r\n            lotteryConfig = kasickaConfig;\r\n            break;\r\n        case Lottery.extraRenta:\r\n            lotteryConfig = extraRentaConfig;\r\n            break;\r\n        case Lottery.miniRenta:\r\n            lotteryConfig = miniRentaConfig;\r\n            break;\r\n        default:\r\n    }\r\n\r\n    return Object.assign({ ...baseConfig }, lotteryConfig);\r\n};\r\n","import { WagerConfiguration } from \"../model/wager-configuration\";\r\nimport { Lottery } from \"../../model/lottery\";\r\n\r\nexport const kasickaConfig: WagerConfiguration = {\r\n    lottery: Lottery.kasicka,\r\n    boardCount: 1,\r\n    primaryBoardSize: 3,\r\n    defaultStake: 2000,\r\n    primaryNumbers: 49,\r\n\r\n    primarySystemMinCount: 3,\r\n    primarySystemMaxCount: 16,\r\n\r\n    boardLabel: \"Sloupec\",\r\n    hasDurationComponent: true,\r\n    hasDrawOptions: true,\r\n    hasMultidrawNotification: true,\r\n    hasAllOrOneMultidrawOptions: false,\r\n    hasSubscription: true,\r\n    isDrawnEveryDay: true,\r\n    durationTitle: \"Kasičku losujeme <strong>2x denně.</strong>\",\r\n    maxDuration: 56,\r\n    multidrawDurationOptions: [\r\n        { value: \"afternoon\", mainText: \"Odpolední\", hour: 14, drawName: \"aft\" },\r\n        { value: \"evening\", mainText: \"Večerní\", hour: 20, drawName: \"evn\" },\r\n    ],\r\n};\r\n","import { WagerConfiguration } from \"../model/wager-configuration\";\r\nimport { Lottery } from \"../../model/lottery\";\r\n\r\nexport const rychla6Config: WagerConfiguration = {\r\n    lottery: Lottery.rychla6,\r\n    boardCount: 3,\r\n    primaryBoardSize: 6,\r\n    defaultStake: 1000,\r\n    primaryNumbers: 26,\r\n\r\n    boardLabel: \"\",\r\n    hasDurationComponent: false,\r\n    hasDrawOptions: false,\r\n    hasMultidrawNotification: false,\r\n    hasAllOrOneMultidrawOptions: false,\r\n    hasSubscription: false,\r\n    isDrawnEveryDay: true,\r\n    durationTitle: \"\",\r\n    maxDuration: 12,\r\n    multidrawDurationOptions: [],\r\n};\r\n","import { PastDraw } from \"@/lotteries/model/draw-info/past-draw\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { fetchDrawList } from \"@/lotteries/services/draw-info/api\";\r\nimport { ref } from \"vue\";\r\n\r\nconst pastDraws = ref<PastDraw[]>([]);\r\nlet promise = null as Promise<PastDraw[]> | null;\r\n\r\nexport const usePastDraws = () => {\r\n    const fetchPastDraws = async (lottery: Lottery, refetch = false) => {\r\n        if (!refetch && pastDraws.value.length > 0) {\r\n            return;\r\n        }\r\n\r\n        if (promise) {\r\n            await promise;\r\n        }\r\n\r\n        try {\r\n            promise = fetchDrawList(lottery);\r\n            pastDraws.value = await promise;\r\n        } finally {\r\n            promise = null;\r\n        }\r\n    };\r\n\r\n    return {\r\n        pastDraws,\r\n        fetchPastDraws,\r\n    };\r\n};\r\n","import { ref } from \"vue\";\r\n\r\nconst bettingMode = ref<string>(\"mainProductPage\");\r\nconst bettingModePosition = ref<string>(\"\");\r\nconst initialBoardsCount = ref<number>(0);\r\nconst columnsFillState = ref<string>(\"notFilled\");\r\nconst boardsFillTracking = ref<string[]>([]);\r\n\r\nconst setColumnsFillStateToPreFilled = () => {\r\n    columnsFillState.value = \"preFilled\";\r\n};\r\n\r\nexport default function usePpBetAnalytics() {\r\n    return {\r\n        bettingMode,\r\n        bettingModePosition,\r\n        initialBoardsCount,\r\n        columnsFillState,\r\n        boardsFillTracking,\r\n        setColumnsFillStateToPreFilled,\r\n    };\r\n}\r\n","import axios, { AxiosRequestConfig } from \"axios\";\r\nimport { addSagAuthInterceptor } from \"@sazka/utils/http-clients/sag-auth-interceptor\";\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: \"/api/wincheck\",\r\n};\r\n\r\n/**\r\n * Creating the instance of Axios\r\n * It is because, in large scale application we may need to consume APIs from more than single server,\r\n * So, may need to create multiple http client with different config\r\n * Only this client will be used rather than axios in the application\r\n **/\r\nconst httpClient = axios.create(config);\r\n\r\naddSagAuthInterceptor(httpClient);\r\n\r\n/** Adding the response interceptors */\r\nhttpClient.interceptors.response.use(\r\n    (response) => {\r\n        return response;\r\n    },\r\n    (error) => {\r\n        /** Do something with response error */\r\n        return Promise.reject(error);\r\n    }\r\n);\r\n\r\nexport { httpClient as httpClientWincheck };\r\n","import { httpClientWincheck } from \"./http-client\";\r\nimport { Lottery } from \"../../../lotteries/model/lottery\";\r\nimport { TicketCheckRequest, TicketCheckResponse } from \"@/lotteries/model/ticket-check/ticket-check\";\r\n\r\nexport const getLotteryMaxDuration = async (lottery: Lottery) => {\r\n    const response = await httpClientWincheck.get<{ maxDuration: number }>(`/max-duration/${lottery}`);\r\n    return response.data.maxDuration;\r\n};\r\n\r\nexport const fetchTicketCheckResult = async (lottery: Lottery, request: TicketCheckRequest) => {\r\n    const response = await httpClientWincheck.post<TicketCheckResponse>(`/ticket-check/v2/${lottery}`, request);\r\n    return response.data;\r\n};\r\n","import { ref } from \"vue\";\r\nimport { TicketCheckRequest, TicketCheckResponse, TicketCheckWager } from \"../../model/ticket-check/ticket-check\";\r\nimport { usePastDraws } from \"./use-past-draws\";\r\nimport { useWagerBoardStore } from \"../stores/use-wager-board-store\";\r\nimport { usePpWagerDurationStore } from \"../stores/use-wager-duration-store\";\r\nimport { fetchTicketCheckResult } from \"@/lotteries/services/wincheck/api\";\r\nimport { usePpWagerConfiguration } from \"./use-wager-configuration\";\r\nimport { showAlert } from \"@sazka/design-system/src/modal-alert/mount-alert\";\r\nimport { Loader } from \"@sazka/design-system/src/loader/loader\";\r\nimport { useQuestionnairesOnTicketCheck } from \"@/questionnaires/use-questionnaires\";\r\n\r\nconst isTicketCheck = ref(false);\r\nconst ticketCheckResult = ref<TicketCheckResponse | null>(null);\r\n\r\nexport const usePpTicketCheck = () => {\r\n    const setTicketCheck = (value: boolean) => {\r\n        isTicketCheck.value = value;\r\n    };\r\n\r\n    const getTicketCheckResult = async () => {\r\n        try {\r\n            Loader.show();\r\n            const wagerStore = useWagerBoardStore();\r\n            const durationStore = usePpWagerDurationStore();\r\n            const config = usePpWagerConfiguration().config;\r\n            const { pastDraws } = usePastDraws();\r\n\r\n            const draw = pastDraws.value.find((x) => x.id === wagerStore.pastDrawId);\r\n\r\n            const wager: TicketCheckWager = {\r\n                boards: wagerStore.isSystem ? [wagerStore.systemBoard] : wagerStore.boards,\r\n                isSystem: wagerStore.isSystem,\r\n                addonNumbers: wagerStore.addonNumbers ?? [],\r\n                multiplier: wagerStore.multiplier,\r\n                duration: durationStore.duration,\r\n                stakes: [], // should be set with other lotteries,\r\n            };\r\n\r\n            const request: TicketCheckRequest = {\r\n                draw,\r\n                wager,\r\n            };\r\n\r\n            ticketCheckResult.value = await fetchTicketCheckResult(config.lottery, request);\r\n            setTimeout(async () => await useQuestionnairesOnTicketCheck(config.lottery), 3000);\r\n        } catch (e) {\r\n            showAlert({\r\n                title: \"Nepodařilo se načíst výsledky sázky\",\r\n                subText: \"Zkuste to prosím později\",\r\n            });\r\n        } finally {\r\n            Loader.hide();\r\n        }\r\n    };\r\n\r\n    return {\r\n        isTicketCheck,\r\n        ticketCheckResult,\r\n        setTicketCheck,\r\n        getTicketCheckResult,\r\n    };\r\n};\r\n","import { WagerConfiguration } from \"@/lotteries/ds-online/model/wager-configuration\";\r\nimport { reactive } from \"vue\";\r\n\r\nconst state: Partial<WagerConfiguration> = reactive({});\r\n\r\nexport const usePpWagerConfiguration = () => {\r\n    const configure = (config: Partial<WagerConfiguration>) => {\r\n        Object.assign(state, config);\r\n    };\r\n\r\n    return {\r\n        configure,\r\n        config: state,\r\n    };\r\n};\r\n","export enum DurationState {\r\n    Once = \"once\",\r\n    Multi = \"multi\",\r\n    Subscription = \"subscription\",\r\n}\r\n","export enum SubscriptionEndType {\r\n    Unlimited = \"unlimited\",\r\n    Date = \"date\",\r\n}\r\n","import { WagerBoard } from \"@sazka/lotteries/js/model/ds-online/wager-board\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { usePpWagerConfiguration } from \"./use-wager-configuration\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { usePpTicketCheck } from \"./use-ticket-check\";\r\n\r\nexport const usePpWagerUtils = () => {\r\n    const { config } = usePpWagerConfiguration();\r\n    const { isTicketCheck } = usePpTicketCheck();\r\n\r\n    function isWagerBoardFilled(board: WagerBoard): boolean {\r\n        return (\r\n            board.primary.length === (board.primaryCount || config.primaryBoardSize) &&\r\n            (!config.additionalBoardSize ||\r\n                board.secondary.length === (board.secondaryCount || config.additionalBoardSize))\r\n        );\r\n    }\r\n\r\n    function isSystemTicketCheckBoardFilled(board: WagerBoard): boolean {\r\n        const isPrimaryValid =\r\n            board.primary.length >= config.primarySystemMinCount &&\r\n            board.primary.length <= config.primarySystemMaxCount;\r\n\r\n        const isSecondaryValid =\r\n            !config.additionalBoardSize ||\r\n            (board.secondary.length >= config.additionalSystemMinCount &&\r\n                board.secondary.length <= config.additionalSystemMaxCount);\r\n\r\n        return isPrimaryValid && isSecondaryValid;\r\n    }\r\n\r\n    function isAddonValid(addon: number[]): boolean {\r\n        if (isTicketCheck.value) {\r\n            return addon.length === 0 || addon.length === config.addonBoardSize;\r\n        }\r\n\r\n        return addon.length === config.addonBoardSize;\r\n    }\r\n\r\n    function newSystemWagerBoard(): WagerBoard {\r\n        return {\r\n            primary: [],\r\n            secondary: [],\r\n            tertiary: [],\r\n            primaryCount: config.primarySystemDefaultCount ?? config.primarySystemMinCount,\r\n            secondaryCount: config.additionalSystemDefaultCount ?? config.additionalSystemMinCount,\r\n        };\r\n    }\r\n\r\n    function newWagerBoard(): WagerBoard {\r\n        return {\r\n            primary: [],\r\n            secondary: [],\r\n            tertiary: [],\r\n        };\r\n    }\r\n\r\n    function randomizeAddon(lottery: Lottery) {\r\n        return LotteryUtils.generateAddon(lottery);\r\n    }\r\n\r\n    function randomizeWagerBoard(board?: WagerBoard) {\r\n        let currentPrimary = board?.primary || [];\r\n        if (board.primary.length === (board.primaryCount || config.primaryBoardSize)) {\r\n            currentPrimary = [];\r\n        }\r\n        let currentSecondary = board?.secondary || [];\r\n        if (board.secondary?.length === (board.secondaryCount || config.additionalBoardSize)) {\r\n            currentSecondary = [];\r\n        }\r\n\r\n        const primary = LotteryUtils.generateRandomNumbers(\r\n            (board.primaryCount || config.primaryBoardSize) - currentPrimary.length,\r\n            1,\r\n            config.primaryNumbers,\r\n            currentPrimary,\r\n            true\r\n        );\r\n\r\n        const secondary = !config.additionalBoardSize\r\n            ? []\r\n            : LotteryUtils.generateRandomNumbers(\r\n                  (board.secondaryCount || config.additionalBoardSize) - currentSecondary.length,\r\n                  1,\r\n                  config.additionalNumbers,\r\n                  currentSecondary,\r\n                  true\r\n              );\r\n\r\n        board.primary = primary;\r\n        board.secondary = secondary;\r\n\r\n        return board;\r\n    }\r\n\r\n    return {\r\n        isWagerBoardFilled,\r\n        isSystemTicketCheckBoardFilled,\r\n        randomizeWagerBoard,\r\n        randomizeAddon,\r\n        newWagerBoard,\r\n        newSystemWagerBoard,\r\n        isAddonValid,\r\n    };\r\n};\r\n","import { computed, ref, watch } from \"vue\";\r\nimport { defineStore } from \"pinia\";\r\nimport { usePpWagerConfiguration } from \"../composables/use-wager-configuration\";\r\nimport { usePpWagerUtils } from \"../composables/use-wager-utils\";\r\nimport { WagerBoard } from \"@sazka/lotteries/js/model/ds-online/wager-board\";\r\nimport { FavoriteGame } from \"@/lotteries/favorite-numbers/my-tickets/model/favorite-numbers\";\r\nimport { QuickWagerCard } from \"@/lotteries/category-page/model/quick-wager-card\";\r\nimport { BetDetail } from \"@sazka/lotteries/js/model/my-tickets/bet-detail\";\r\nimport { SubscriptionDetail } from \"@/lotteries/model/subscriptions/subscription-detail\";\r\nimport { usePpTicketCheck } from \"../composables/use-ticket-check\";\r\nimport usePpBetAnalytics from \"../composables/use-pp-bet-analytics\";\r\nimport { UrlUtils } from \"@sazka/utils/url\";\r\n\r\nexport const useWagerBoardStore = () => {\r\n    const config = usePpWagerConfiguration().config;\r\n    const wagerUtils = usePpWagerUtils();\r\n    const { boardsFillTracking } = usePpBetAnalytics();\r\n\r\n    const { lottery } = config;\r\n    const ticketCheck = usePpTicketCheck().isTicketCheck.value;\r\n\r\n    if (!lottery) {\r\n        console.error(\"Wager configuration is not set. Please configure using usePpWagerConfiguration.\");\r\n        return;\r\n    }\r\n\r\n    const storeId = `wager-store-${lottery}` + (ticketCheck ? \"-ticket-check\" : \"\");\r\n\r\n    const store = defineStore(\r\n        storeId,\r\n        () => {\r\n            /** State */\r\n            const boards = ref<WagerBoard[]>([]);\r\n            const systemBoard = ref<WagerBoard>(wagerUtils.newSystemWagerBoard());\r\n            const boardIndex = ref(0);\r\n            const addonNumbers = ref<number[]>([]);\r\n            const isAddonPlayed = ref(true);\r\n            const isSystem = ref(false);\r\n            const isSystemSelected = ref(false);\r\n            const multiplier = ref(1);\r\n            const wagerStake = ref(0);\r\n            const pastDrawId = ref(-1);\r\n            const isTicketCheck = computed(() => ticketCheck);\r\n            const maxBoardCount = ref(config.boardCount);\r\n\r\n            /** Allows to safely get and set the board count */\r\n            const boardCount = computed({\r\n                get: () => boards.value.length,\r\n                set: setBoardCount,\r\n            });\r\n\r\n            const isBoardCountDirty = ref(false);\r\n            const isBetSuccessfull = ref(false);\r\n\r\n            const isBoardFilled = (index: number) => {\r\n                return boards.value[index] && wagerUtils.isWagerBoardFilled(boards.value[index]);\r\n            };\r\n\r\n            const isWagerFilled = computed(() => {\r\n                if (isSystem.value && isTicketCheck.value)\r\n                    return wagerUtils.isSystemTicketCheckBoardFilled(systemBoard.value);\r\n                else if (isSystem.value) return wagerUtils.isWagerBoardFilled(systemBoard.value);\r\n\r\n                return boards.value.every((board) => wagerUtils.isWagerBoardFilled(board));\r\n            });\r\n\r\n            const isTicketCheckValid = computed(() => {\r\n                if (!isSystem.value) {\r\n                    return isWagerFilled.value && wagerUtils.isAddonValid(addonNumbers.value);\r\n                }\r\n\r\n                return (\r\n                    wagerUtils.isSystemTicketCheckBoardFilled(systemBoard.value) &&\r\n                    wagerUtils.isAddonValid(addonNumbers.value)\r\n                );\r\n            });\r\n\r\n            /* Actions */\r\n            function randomizeBoard(index?: number) {\r\n                if (isSystem.value) {\r\n                    systemBoard.value = wagerUtils.randomizeWagerBoard(systemBoard.value);\r\n                } else if (index !== undefined) {\r\n                    const board = getBoard(index);\r\n\r\n                    const randomizedBoard = wagerUtils.randomizeWagerBoard(board);\r\n\r\n                    boards.value[index] = randomizedBoard;\r\n\r\n                    boardsFillTracking.value[index] = \"randomColumn\";\r\n                } else {\r\n                    console.error(\"Board index for randomization is undefined.\");\r\n                    return;\r\n                }\r\n            }\r\n\r\n            function randomizeWager(withAddon?: boolean) {\r\n                if (isSystem.value) {\r\n                    randomizeBoard();\r\n                    return;\r\n                }\r\n\r\n                boardCount.value = maxBoardCount.value;\r\n                boards.value = boards.value.map((board) => wagerUtils.randomizeWagerBoard(board));\r\n\r\n                boardsFillTracking.value = Array(boardCount.value).fill(\"randomFull\");\r\n\r\n                if (withAddon) {\r\n                    isAddonPlayed.value = true;\r\n                    randomizeAddon();\r\n                }\r\n            }\r\n\r\n            function addBoard() {\r\n                if (boardCount.value < maxBoardCount.value) {\r\n                    boardCount.value += 1;\r\n                    boardIndex.value = boardCount.value - 1;\r\n                }\r\n            }\r\n\r\n            function deleteBoard(index?: number) {\r\n                if (isSystem.value) {\r\n                    systemBoard.value = wagerUtils.newSystemWagerBoard();\r\n                    return;\r\n                }\r\n\r\n                if (boardCount.value === 1) {\r\n                    boards.value[0] = wagerUtils.newWagerBoard();\r\n                    return;\r\n                }\r\n\r\n                boards.value.splice(index, 1);\r\n            }\r\n\r\n            function getAddonNum(index: number) {\r\n                return addonNumbers.value[index];\r\n            }\r\n\r\n            function setAddonNum(index: number, num: number) {\r\n                addonNumbers.value[index] = num;\r\n            }\r\n\r\n            function randomizeAddon() {\r\n                addonNumbers.value = wagerUtils.randomizeAddon(lottery);\r\n            }\r\n\r\n            function clearWager() {\r\n                boards.value = [];\r\n                boardIndex.value = 0;\r\n                randomizeAddon();\r\n                isAddonPlayed.value = false;\r\n                multiplier.value = 1;\r\n                setBoardCount(initialBoardCount());\r\n            }\r\n\r\n            const getBoardIndex = computed(() =>\r\n                Number.isInteger(boardIndex.value) ? boardIndex.value : boards.value.length\r\n            );\r\n\r\n            function checkIndex(index: number) {\r\n                if (index < 0 || index >= boardCount.value) {\r\n                    console.error(`Invalid board index: ${index}`);\r\n                    return false;\r\n                }\r\n                return true;\r\n            }\r\n\r\n            function switchToStandardBet() {\r\n                isSystem.value = false;\r\n                UrlUtils.removeUrlPath(\"/systemova\");\r\n            }\r\n\r\n            /**\r\n             * Set the store state from a favorite wager\r\n             *\r\n             * Designed for use in My Tickets\r\n             */\r\n            function setFromFavoriteWager(favoriteWager: FavoriteGame) {\r\n                isSystem.value = favoriteWager.isSystem;\r\n                isAddonPlayed.value = favoriteWager.addonPlayed;\r\n                if (isAddonPlayed.value) addonNumbers.value = favoriteWager.addonNumbers;\r\n                multiplier.value = favoriteWager.multiplier;\r\n\r\n                if (isSystem.value) {\r\n                    const primaryNumbers = favoriteWager.numbers?.[0].primary;\r\n                    const secondaryNumbers = favoriteWager.numbers?.[0].additional;\r\n\r\n                    systemBoard.value = {\r\n                        primary: primaryNumbers,\r\n                        secondary: secondaryNumbers,\r\n                        primaryCount: primaryNumbers?.length,\r\n                        secondaryCount: secondaryNumbers?.length,\r\n                    };\r\n                } else {\r\n                    boards.value = favoriteWager.numbers.map((numbers) => ({\r\n                        primary: numbers.primary,\r\n                        secondary: numbers.additional,\r\n                        kralovskaHra: numbers.kralovskaHra,\r\n                        stake: numbers.stake,\r\n                    }));\r\n\r\n                    boardCount.value = boards.value.length;\r\n                }\r\n            }\r\n\r\n            function setFromBetDetail(betDetail: BetDetail | SubscriptionDetail) {\r\n                isSystem.value = betDetail.boards?.[0].betType === \"SYSTEM\";\r\n                isAddonPlayed.value = !!betDetail.addonNumbers?.length;\r\n\r\n                if (isAddonPlayed.value) addonNumbers.value = betDetail.addonNumbers?.map((n) => Number(n));\r\n                multiplier.value = betDetail.multiplier;\r\n\r\n                if (isSystem.value) {\r\n                    const primaryNumbers = betDetail.boards?.[0].primarySelections?.map((n) => Number(n));\r\n                    const secondaryNumbers = betDetail.boards?.[0].secondarySelections?.map((n) => Number(n));\r\n\r\n                    systemBoard.value = {\r\n                        primary: primaryNumbers,\r\n                        secondary: secondaryNumbers,\r\n                        primaryCount: primaryNumbers?.length,\r\n                        secondaryCount: secondaryNumbers?.length,\r\n                    };\r\n                } else {\r\n                    boards.value = betDetail.boards.map((numbers) => ({\r\n                        primary: numbers.primarySelections?.map((n) => Number(n)),\r\n                        secondary: numbers.secondarySelections?.map((n) => Number(n)),\r\n                        kralovskaHra: numbers.addonPlayed,\r\n                        stake: numbers.stake,\r\n                    }));\r\n\r\n                    boardCount.value = boards.value.length;\r\n                }\r\n            }\r\n\r\n            function setFromQuickWager(quickWager: QuickWagerCard) {\r\n                isSystem.value = false;\r\n                isAddonPlayed.value = quickWager.wager.isAddonPlayed;\r\n                randomizeAddon();\r\n                multiplier.value = quickWager.wager.multiplier;\r\n                wagerStake.value = quickWager.wager.stake;\r\n                boardCount.value = quickWager.wager.columns;\r\n\r\n                boards.value = boards.value.map((board) => wagerUtils.randomizeWagerBoard(board));\r\n                boardCount.value = boards.value.length;\r\n            }\r\n\r\n            function setBoard(index: number, board: WagerBoard) {\r\n                if (!checkIndex(index)) return;\r\n                boards.value[index] = board;\r\n            }\r\n\r\n            function getBoard(index: number) {\r\n                return boards.value[index];\r\n            }\r\n\r\n            function setBoardPrimaryCount(index: number, count: number) {\r\n                if (!checkIndex(index)) return;\r\n                boards.value[index].primaryCount = count;\r\n\r\n                if (count < boards.value[index].primary.length) {\r\n                    boards.value[index].primary = boards.value[index].primary.slice(0, count);\r\n                }\r\n            }\r\n\r\n            function setBoardSecondaryCount(index: number, count: number) {\r\n                if (!checkIndex(index)) return;\r\n                boards.value[index].secondaryCount = count;\r\n\r\n                if (count < boards.value[index].secondary.length) {\r\n                    boards.value[index].secondary = boards.value[index].secondary.slice(0, count);\r\n                }\r\n            }\r\n\r\n            function setBoardCount(count: number) {\r\n                if (count < 1) {\r\n                    count = 1;\r\n                }\r\n\r\n                if (count > maxBoardCount.value) {\r\n                    count = maxBoardCount.value;\r\n                }\r\n\r\n                if (count < boards.value.length) {\r\n                    boards.value = boards.value.slice(0, count);\r\n                }\r\n\r\n                if (count > boards.value.length) {\r\n                    const newBoards = Array.from({ length: count - boards.value.length }, () =>\r\n                        wagerUtils.newWagerBoard()\r\n                    );\r\n                    boards.value = [...boards.value, ...newBoards];\r\n                }\r\n                isBoardCountDirty.value = true;\r\n            }\r\n\r\n            function setBoardIndex(index: number) {\r\n                if (!checkIndex(index)) return;\r\n                boardIndex.value = index;\r\n            }\r\n\r\n            function generateBoards(count: number) {\r\n                boards.value = Array.from({ length: count }, () => wagerUtils.randomizeWagerBoard());\r\n            }\r\n\r\n            function restoreBoards(boardsToRestore: WagerBoard[]) {\r\n                clearWager();\r\n                boards.value = boardsToRestore;\r\n            }\r\n\r\n            function isAnyBoardFilled() {\r\n                return (\r\n                    boards.value.length != initialBoardCount() ||\r\n                    boards.value.some(\r\n                        (board) => board.primary.length || board.secondary.length || board.tertiary.length\r\n                    )\r\n                );\r\n            }\r\n\r\n            /* System Wager */\r\n            const systemPrimaryCount = computed({\r\n                get: () => (isTicketCheck.value ? config.primarySystemMaxCount : systemBoard.value?.primaryCount),\r\n                set: (value) => {\r\n                    systemBoard.value.primaryCount = value;\r\n                    systemBoard.value.primary = systemBoard.value.primary.slice(0, value);\r\n                },\r\n            });\r\n\r\n            const systemSecondaryCount = computed({\r\n                get: () => (isTicketCheck.value ? config.additionalSystemMaxCount : systemBoard.value?.secondaryCount),\r\n                set: (value) => {\r\n                    systemBoard.value.secondaryCount = value;\r\n                    systemBoard.value.secondary = systemBoard.value.secondary.slice(0, value);\r\n                },\r\n            });\r\n\r\n            const sortBoard = (boardToSort: WagerBoard) => {\r\n                boardToSort.primary = boardToSort.primary.sort((a, b) => a - b);\r\n                if (boardToSort.secondary) boardToSort.secondary = boardToSort.secondary?.sort((a, b) => a - b);\r\n                if (boardToSort.tertiary) boardToSort.tertiary = boardToSort.tertiary?.sort((a, b) => a - b);\r\n\r\n                return boardToSort;\r\n            };\r\n\r\n            const boardsSorted = computed(() => {\r\n                boards.value.forEach((board) => {\r\n                    boards.value[boards.value.indexOf(board)] = sortBoard(board);\r\n                });\r\n                return boards.value;\r\n            });\r\n            /* ----- */\r\n\r\n            /* Watchers */\r\n            watch(\r\n                boardCount,\r\n                (boardCountValue) => {\r\n                    if (boardCountValue > maxBoardCount.value) {\r\n                        boardCount.value = maxBoardCount.value;\r\n                    }\r\n\r\n                    if (boardIndex.value + 1 >= boardCountValue) {\r\n                        boardIndex.value = boardCountValue - 1;\r\n                        if (boardIndex.value < 0) boardIndex.value = 0;\r\n                    }\r\n\r\n                    if (boardCountValue < boardsFillTracking.value.length) {\r\n                        boardsFillTracking.value = boardsFillTracking.value.slice(0, boardCountValue);\r\n                    }\r\n\r\n                    if (boardCountValue > boardsFillTracking.value.length) {\r\n                        const newTrackingItems = Array(boardCountValue - boardsFillTracking.value.length).fill(\r\n                            \"manual\"\r\n                        );\r\n                        boardsFillTracking.value = [...boardsFillTracking.value, ...newTrackingItems];\r\n                    }\r\n                },\r\n                { immediate: true }\r\n            );\r\n\r\n            watch(isSystem, (isSystemValue) => {\r\n                if (isSystemValue) {\r\n                    isSystemSelected.value = true;\r\n                }\r\n            });\r\n\r\n            watch(maxBoardCount, (maxBoardCountValue) => {\r\n                if (boardCount.value > maxBoardCountValue) {\r\n                    boardCount.value = maxBoardCountValue;\r\n                }\r\n            });\r\n            /* ----- */\r\n\r\n            /* Initialize */\r\n            function initialBoardCount() {\r\n                if (isTicketCheck.value) {\r\n                    return 1;\r\n                } else {\r\n                    return config.initialBoardCount ?? config.boardCount;\r\n                }\r\n            }\r\n\r\n            function initialize() {\r\n                setBoardCount(initialBoardCount());\r\n                systemPrimaryCount.value = config.primarySystemDefaultCount ?? config.primarySystemMinCount;\r\n                systemSecondaryCount.value = config.additionalSystemDefaultCount ?? config.additionalSystemMinCount;\r\n                randomizeAddon();\r\n\r\n                if (!isTicketCheck.value) isBoardCountDirty.value = false;\r\n\r\n                boardsFillTracking.value = Array(initialBoardCount()).fill(\"manual\");\r\n            }\r\n\r\n            initialize();\r\n            /* ----- */\r\n\r\n            /* Expose */\r\n            return {\r\n                boardCount,\r\n                boards,\r\n                boardIndex,\r\n                addonNumbers,\r\n                isAddonPlayed,\r\n                multiplier,\r\n                isSystem,\r\n                isSystemSelected,\r\n                systemBoard,\r\n                systemPrimaryCount,\r\n                systemSecondaryCount,\r\n                isTicketCheck,\r\n                isTicketCheckValid,\r\n                maxBoardCount,\r\n                pastDrawId,\r\n                isBoardFilled,\r\n                randomizeBoard,\r\n                getBoardIndex,\r\n                setBoard,\r\n                getBoard,\r\n                isWagerFilled,\r\n                randomizeWager,\r\n                wagerStake,\r\n                clearWager,\r\n                addBoard,\r\n                deleteBoard,\r\n                switchToStandardBet,\r\n                setFromFavoriteWager,\r\n                setFromBetDetail,\r\n                setFromQuickWager,\r\n                setBoardPrimaryCount,\r\n                setBoardSecondaryCount,\r\n                generateBoards,\r\n                restoreBoards,\r\n                setBoardIndex,\r\n                setBoardCount,\r\n                getAddonNum,\r\n                setAddonNum,\r\n                randomizeAddon,\r\n                isAnyBoardFilled,\r\n                isBoardCountDirty,\r\n                boardsSorted,\r\n                isBetSuccessfull,\r\n            };\r\n            /* ----- */\r\n        },\r\n        {\r\n            persist: {\r\n                // eslint-disable-next-line no-restricted-globals\r\n                storage: ticketCheck ? localStorage : sessionStorage,\r\n            },\r\n        }\r\n    );\r\n\r\n    return store();\r\n};\r\n","export enum BettingMode {\r\n    singleDraw = \"singleDraw\",\r\n    multiDraw = \"multiDraw\",\r\n    standingOrder = \"standingOrder\",\r\n}\r\n","import { ref, computed, watch } from \"vue\";\r\nimport { defineStore } from \"pinia\";\r\nimport { DurationState } from \"../model/duration-state\";\r\nimport { SubscriptionEndType } from \"../model/subscription-end-type\";\r\nimport { BettingMode } from \"../model/betting-mode\";\r\nimport { DateTimeUtils } from \"@sazka/utils/date-time-utils\";\r\nimport { BetDates } from \"@sazka/lotteries/js/model/draw-info/future-draw-dto\";\r\nimport { fetchBetDates } from \"@/lotteries/services/draw-info/api\";\r\nimport { usePpWagerConfiguration } from \"../composables/use-wager-configuration\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { QuickWagerCard } from \"@/lotteries/category-page/model/quick-wager-card\";\r\nimport { SubscriptionDetail } from \"@sazka/lotteries/js/model/subscriptions/subscription-detail\";\r\nimport { BetDetail } from \"@sazka/lotteries/js/model/my-tickets/bet-detail\";\r\nimport { DsDropdownItemModel } from \"@sazka/design-system/src/forms/components/ds-dropdown/ds-dropdown-models\";\r\nimport { PpDebugLogger } from \"../utils/pp-debug-logger\";\r\n\r\nexport const usePpWagerDurationStore = () => {\r\n    const config = usePpWagerConfiguration().config;\r\n\r\n    const { lottery } = config;\r\n\r\n    if (!lottery) {\r\n        console.error(\"Wager configuration is not set. Please configure using usePpWagerConfiguration.\");\r\n        return;\r\n    }\r\n\r\n    const store = defineStore(\r\n        \"wager-duration-store-\" + lottery,\r\n        () => {\r\n            // State\r\n            const durationType = ref<DurationState>(DurationState.Once);\r\n            const duration = ref(1);\r\n            const drawNames = ref<string[]>([]);\r\n            const notification = ref(false);\r\n            const subscriptionEndType = ref<SubscriptionEndType | null>(SubscriptionEndType.Unlimited);\r\n            const subscriptionEnd = ref<Date | null>(null);\r\n            const subscriptionName = ref<string | null>(null);\r\n            const isDurationLimited = ref(false);\r\n            const durationLimit = ref(0);\r\n            const firstBetDate = ref<Date | null>(null);\r\n            const drawDates = ref<BetDates | null>(null);\r\n            const allDraws = ref(config.multidrawDurationOptions?.map((o) => o.value));\r\n            const minDuration = ref(config.hasDurationInDays ? 1 : 2);\r\n\r\n            // Getters\r\n            const getMaxDuration = computed(() => {\r\n                if (!config.multidrawDurationOptions?.length || config.multidrawDurationOptions.length === 1) {\r\n                    return config.maxDuration;\r\n                }\r\n                if (config.hasDurationInDays) {\r\n                    return config.maxDuration / 2;\r\n                }\r\n                const drawsCount = drawNames.value?.length ? drawNames.value.length : 1;\r\n                return drawsCount > 1\r\n                    ? config.maxDuration\r\n                    : config.maxDuration / config.multidrawDurationOptions.length;\r\n            });\r\n\r\n            const getValidDurationOptions = computed((): DsDropdownItemModel[] => {\r\n                const maxOptions = config.hasDurationInDays ? getMaxDuration.value : getMaxDuration.value - 1;\r\n                return [...Array(maxOptions).keys()].map((i) => {\r\n                    return { value: i + minDuration.value, label: `${i + minDuration.value} SLOSOVÁNÍ` };\r\n                });\r\n            });\r\n\r\n            const getDurationLength = computed(() => {\r\n                return durationType.value !== DurationState.Multi ? 1 : duration.value;\r\n            });\r\n\r\n            const getBettingMode = computed((): BettingMode => {\r\n                switch (durationType.value) {\r\n                    case DurationState.Once:\r\n                        return BettingMode.singleDraw;\r\n                    case DurationState.Multi:\r\n                        return BettingMode.multiDraw;\r\n                    case DurationState.Subscription:\r\n                        return BettingMode.standingOrder;\r\n                    default:\r\n                        return BettingMode.singleDraw;\r\n                }\r\n            });\r\n\r\n            const getRepetitionEndDate = computed((): string | null => {\r\n                if (durationType.value === DurationState.Subscription) {\r\n                    if (subscriptionEndType.value === SubscriptionEndType.Unlimited) {\r\n                        return \"infinity\";\r\n                    } else {\r\n                        return DateTimeUtils.formatDate(subscriptionEnd.value).replace(/\\s/g, \"\");\r\n                    }\r\n                }\r\n                return null;\r\n            });\r\n\r\n            const getDurationLengthFromDays = computed(() => {\r\n                return durationType.value !== DurationState.Multi ? 1 : duration.value * (drawNames.value?.length ?? 1);\r\n            });\r\n\r\n            const getSubscriptionMinEndDate = computed(() => {\r\n                if (!drawNames.value?.length) {\r\n                    return drawDates.value?.draws?.[0];\r\n                }\r\n\r\n                return drawDates.value?.draws?.find((d) => drawNames.value?.includes(LotteryUtils.getDrawNameValue(d)));\r\n            });\r\n\r\n            const getDefaultDrawNames = (isNewInit = true) => {\r\n                PpDebugLogger.log(\"getDefaultDrawNames\", {\r\n                    isNewInit,\r\n                    drawDates: drawDates.value,\r\n                    drawNames: drawNames.value,\r\n                    allDraws: allDraws.value,\r\n                });\r\n\r\n                if (durationType.value === DurationState.Once) {\r\n                    if (!drawDates.value?.draws?.length) {\r\n                        return [];\r\n                    }\r\n\r\n                    if (\r\n                        drawDates.value?.draws?.length == 1 ||\r\n                        (drawDates.value?.draws?.length > 1 && drawNames.value?.length != 1) ||\r\n                        isNewInit\r\n                    ) {\r\n                        return [LotteryUtils.getDrawNameValue(drawDates.value?.draws?.[0])];\r\n                    }\r\n                } else if (!drawNames.value?.length) {\r\n                    return allDraws.value;\r\n                }\r\n\r\n                return drawNames.value;\r\n            };\r\n\r\n            // Actions\r\n            const initDuration = (\r\n                initialDurationType: DurationState = DurationState.Once,\r\n                initialDuration = 1,\r\n                initialDrawNames: string[] = [],\r\n                initialNotification = false,\r\n                initialSubscriptionEnd: Date | null = null,\r\n                initialSubscriptionName: string | null = null\r\n            ) => {\r\n                PpDebugLogger.log(\"initDuration\", {\r\n                    initialDurationType,\r\n                    initialDuration,\r\n                    initialDrawNames,\r\n                    initialNotification,\r\n                    initialSubscriptionEnd,\r\n                    initialSubscriptionName,\r\n                });\r\n\r\n                durationType.value =\r\n                    initialDurationType || (initialDuration > 1 ? DurationState.Multi : DurationState.Once);\r\n                duration.value = initialDuration || 1;\r\n                notification.value = initialNotification;\r\n                subscriptionName.value = initialSubscriptionName;\r\n\r\n                if (initialDrawNames?.length) {\r\n                    drawNames.value = initialDrawNames;\r\n                } else {\r\n                    drawNames.value = getDefaultDrawNames();\r\n                }\r\n\r\n                if (durationType.value === DurationState.Subscription) {\r\n                    subscriptionEnd.value =\r\n                        typeof initialSubscriptionEnd === \"string\"\r\n                            ? new Date(initialSubscriptionEnd)\r\n                            : initialSubscriptionEnd;\r\n                } else {\r\n                    subscriptionEnd.value = null;\r\n                }\r\n\r\n                subscriptionEndType.value = subscriptionEnd.value\r\n                    ? SubscriptionEndType.Date\r\n                    : SubscriptionEndType.Unlimited;\r\n            };\r\n\r\n            const isDurationValid = (hasDurationLengthInDays: boolean, hasDrawOptions: boolean): boolean => {\r\n                if (!durationType.value) {\r\n                    return false;\r\n                }\r\n\r\n                const calculatedDuration = hasDurationLengthInDays\r\n                    ? getDurationLength.value\r\n                    : getDurationLengthFromDays.value;\r\n\r\n                if (calculatedDuration === 0) {\r\n                    return false;\r\n                }\r\n\r\n                if (\r\n                    durationType.value === DurationState.Subscription &&\r\n                    subscriptionEndType.value === SubscriptionEndType.Date &&\r\n                    !subscriptionEnd.value\r\n                ) {\r\n                    return false;\r\n                }\r\n\r\n                if (!hasDrawOptions) {\r\n                    return true;\r\n                }\r\n\r\n                if (!drawNames.value?.length) {\r\n                    return false;\r\n                }\r\n\r\n                if (\r\n                    durationType.value === DurationState.Multi &&\r\n                    drawNames.value?.length === 1 &&\r\n                    drawNames.value.includes(\"special\")\r\n                ) {\r\n                    return false;\r\n                }\r\n\r\n                return true;\r\n            };\r\n\r\n            function setFromQuickWager(quickWager: QuickWagerCard) {\r\n                const duration = quickWager.wager.duration ?? 1;\r\n                initDuration(duration > 1 ? DurationState.Multi : DurationState.Once, duration);\r\n            }\r\n\r\n            const setFromBetDetail = (betDetail: BetDetail) => {\r\n                PpDebugLogger.log(\"setFromBetDetail\", betDetail);\r\n\r\n                let drawNames = betDetail.drawNames?.map((d) => d.toLowerCase());\r\n\r\n                if (drawNames?.length > 1 && betDetail.duration == 1) {\r\n                    const actualDrawDay = new Date(betDetail.draws?.[0]?.drawTime).toLocaleString(\"en-us\", {\r\n                        weekday: \"long\",\r\n                    });\r\n                    const actualDrawName = actualDrawDay?.substring(0, 3)?.toLowerCase();\r\n                    drawNames = actualDrawName ? [actualDrawName] : drawNames.slice(0, 1);\r\n                }\r\n\r\n                initDuration(\r\n                    betDetail.duration > 1 ? DurationState.Multi : DurationState.Once,\r\n                    betDetail.duration,\r\n                    drawNames\r\n                );\r\n            };\r\n\r\n            const setFromSubscriptionDetail = (betDetail: SubscriptionDetail) => {\r\n                const drawNames = betDetail.drawNames?.map((d) => d.toLowerCase());\r\n                initDuration(DurationState.Subscription, null, drawNames, false, null, betDetail.name);\r\n            };\r\n\r\n            const setDurationLengthToDays = () => {\r\n                if (durationType.value === DurationState.Multi) {\r\n                    duration.value = duration.value / drawNames.value.length;\r\n                }\r\n            };\r\n\r\n            const restoreDuration = (\r\n                restoredDurationType: DurationState,\r\n                selectedDraws: string[],\r\n                restoredDuration: number,\r\n                restoredSubscriptionEnd?: Date\r\n            ) => {\r\n                if (restoredDurationType) durationType.value = restoredDurationType;\r\n                if (selectedDraws) drawNames.value = selectedDraws;\r\n                if (restoredDuration) duration.value = restoredDuration;\r\n                if (restoredSubscriptionEnd) {\r\n                    subscriptionEnd.value = restoredSubscriptionEnd;\r\n                    subscriptionEndType.value = SubscriptionEndType.Date;\r\n                }\r\n            };\r\n\r\n            const clearDuration = () => {\r\n                initDuration();\r\n            };\r\n\r\n            // Initialization\r\n            const fetchDrawDates = async () => {\r\n                drawDates.value = await fetchBetDates(config.lottery);\r\n\r\n                if (config.isDrawnEveryDay && drawDates.value?.draws.length > 0) {\r\n                    firstBetDate.value = new Date(drawDates.value?.draws[0].drawDate);\r\n                }\r\n\r\n                drawNames.value = getDefaultDrawNames(false);\r\n            };\r\n\r\n            // Watchers\r\n            const handleDurationTypeChange = () => {\r\n                if (durationType.value === DurationState.Multi || durationType.value === DurationState.Subscription) {\r\n                    drawNames.value = allDraws.value;\r\n                }\r\n\r\n                if (durationType.value === DurationState.Multi && duration.value < minDuration.value) {\r\n                    duration.value = minDuration.value;\r\n                }\r\n\r\n                if (durationType.value !== DurationState.Multi) {\r\n                    duration.value = 1;\r\n                }\r\n\r\n                drawNames.value = getDefaultDrawNames(false);\r\n\r\n                // TODO: Maybe analytics here?\r\n                // if (durationType.value === DurationState.Subscription) {\r\n                //     SubscriptionAnalytics.selectStandingOrder();\r\n                // }\r\n            };\r\n\r\n            const handleDrawNamesChange = () => {\r\n                if (\r\n                    subscriptionEnd.value &&\r\n                    subscriptionEnd.value < new Date(getSubscriptionMinEndDate.value?.drawDate)\r\n                ) {\r\n                    subscriptionEnd.value = new Date(getSubscriptionMinEndDate.value?.drawDate);\r\n                }\r\n\r\n                if (duration.value > getMaxDuration.value) {\r\n                    duration.value = getMaxDuration.value;\r\n                }\r\n            };\r\n\r\n            watch(drawNames, () => {\r\n                PpDebugLogger.log(\"watch drawNames\", {\r\n                    drawNames: drawNames.value,\r\n                    allDraws: allDraws.value,\r\n                    drawDates: drawDates.value,\r\n                });\r\n            });\r\n\r\n            return {\r\n                // State\r\n                allDraws,\r\n                durationType,\r\n                duration,\r\n                drawNames,\r\n                notification,\r\n                subscriptionEndType,\r\n                subscriptionEnd,\r\n                subscriptionName,\r\n                isDurationLimited,\r\n                durationLimit,\r\n                firstBetDate,\r\n                drawDates,\r\n\r\n                // Getters\r\n                getValidDurationOptions,\r\n                getDurationLength,\r\n                getBettingMode,\r\n                getRepetitionEndDate,\r\n                getDurationLengthFromDays,\r\n                getSubscriptionMinEndDate,\r\n\r\n                // Actions\r\n                initDuration,\r\n                isDurationValid,\r\n                setFromSubscriptionDetail,\r\n                setFromBetDetail,\r\n                setDurationLengthToDays,\r\n                restoreDuration,\r\n                fetchDrawDates,\r\n                setFromQuickWager,\r\n                handleDurationTypeChange,\r\n                handleDrawNamesChange,\r\n                clearDuration,\r\n            };\r\n        },\r\n        {\r\n            persist: {\r\n                // eslint-disable-next-line no-restricted-globals\r\n                storage: sessionStorage,\r\n                paths: [\r\n                    \"durationType\",\r\n                    \"duration\",\r\n                    \"drawNames\",\r\n                    \"notification\",\r\n                    \"subscriptionEndType\",\r\n                    \"subscriptionEnd\",\r\n                ],\r\n            },\r\n        }\r\n    );\r\n\r\n    return store();\r\n};\r\n","import { logEvent } from \"@sazka/utils/logger/use-app-logger\";\r\n\r\nexport namespace PpDebugLogger {\r\n    const UAT_TEST_USER = \"634330E6555AFA1E\";\r\n    const QA_TEST_USER = \"634330E6555AFA1E\";\r\n    const DEBUG_PLAYER_IDS = [\"A27B5AB5F3B076A4\", \"AFE8A20A24D60ADA\", \"590B27EF87B490AA\", UAT_TEST_USER, QA_TEST_USER];\r\n\r\n    export function log(name: string, ...args: any[]) {\r\n        if (!DEBUG_PLAYER_IDS.includes(window.player?.id)) return;\r\n\r\n        logEvent(\"pp-debug-wager\", { name, args });\r\n    }\r\n}\r\n","import axios, { AxiosRequestConfig, InternalAxiosRequestConfig } from \"axios\";\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: \"/api/draw-info\",\r\n};\r\n\r\n/**\r\n * Creating the instance of Axios\r\n * It is because, in large scale application we may need to consume APIs from more than single server,\r\n * So, may need to create multiple http client with different config\r\n * Only this client will be used rather than axios in the application\r\n **/\r\nconst httpClient = axios.create(config);\r\n\r\n/**\r\n * Auth interceptors\r\n * @description Configuration related to AUTH token can be done in interceptors.\r\n * Currenlty it is just doing nothing but idea to to show the capability of axios and its interceptors\r\n * In future, interceptors can be created into separate files and consumed into multiple http clients\r\n * @param {*} config\r\n */\r\nconst authInterceptor = (config: InternalAxiosRequestConfig) => {\r\n    /** add auth token */\r\n    return config;\r\n};\r\n\r\nconst loggerInterceptor = (config: InternalAxiosRequestConfig) => {\r\n    /** Add logging here */\r\n    return config;\r\n};\r\n\r\n/** Adding the request interceptors */\r\nhttpClient.interceptors.request.use(authInterceptor);\r\nhttpClient.interceptors.request.use(loggerInterceptor);\r\n\r\n/** Adding the response interceptors */\r\nhttpClient.interceptors.response.use(\r\n    (response) => {\r\n        return response;\r\n    },\r\n    (error) => {\r\n        /** Do something with response error */\r\n        return Promise.reject(error);\r\n    }\r\n);\r\n\r\nexport { httpClient as httpClientDrawInfo };\r\n","import { httpClientDrawInfo } from \"./http-client\";\r\nimport { Draw } from \"../model/draw\";\r\nimport { SportkaDraw } from \"../model/sportka-draw\";\r\nimport { TotoDraw } from \"../model/toto-draw\";\r\nimport { Lottery } from \"../../../lotteries/model/lottery\";\r\nimport { QuickLotteryDraw } from \"@/lotteries/model/draw-info/quick-lottery-draw\";\r\nimport { BetDates } from \"@sazka/lotteries/js/model/draw-info/future-draw-dto\";\r\nimport { LotteryDrawSpecialPrizeGroup, Pager } from \"../model/lottery-draw-special-prize-group\";\r\nimport { LotteryDrawSpecialPrizeList } from \"../model/lottery-draw-special-prize-list\";\r\nimport { DateTimeUtils } from \"@sazka/utils/date-time-utils\";\r\nimport { PastDraw } from \"@/lotteries/model/draw-info/past-draw\";\r\nimport { DrawResults } from \"../model/draw-results\";\r\n\r\nexport const fetchDrawList = async (lottery: Lottery): Promise<PastDraw[]> => {\r\n    const datesResponse = await httpClientDrawInfo.get<PastDraw[]>(`/past-draws/${lottery.replace(\"-\", \"\")}`);\r\n    return datesResponse.data;\r\n};\r\n\r\nexport const fetchResults = async (lottery: Lottery, id: number): Promise<Draw> => {\r\n    let resultsResponse;\r\n\r\n    //TODO merge to one API with better draw model\r\n    switch (lottery) {\r\n        case Lottery.sportka:\r\n            resultsResponse = await httpClientDrawInfo.get<SportkaDraw>(`/draws/sportka/${id}`);\r\n            return Draw.sportkaToDraw(resultsResponse.data);\r\n        default:\r\n            resultsResponse = await httpClientDrawInfo.get<Draw>(`/draws/universal/${lottery}/${id}`);\r\n            return Draw.fromData(resultsResponse.data);\r\n    }\r\n};\r\n\r\nexport const fetchSpecialPrizeResults = async (\r\n    lottery: Lottery,\r\n    drawId: number,\r\n    prizeType: string,\r\n    page: number,\r\n    codeFilter = \"\"\r\n): Promise<Pager<LotteryDrawSpecialPrizeGroup>> => {\r\n    const specialPrizesResponse = await httpClientDrawInfo.get<Pager<LotteryDrawSpecialPrizeGroup>>(\r\n        `draws/special-prize/${lottery}/${drawId}`,\r\n        {\r\n            params: {\r\n                prizeType: prizeType,\r\n                pageNumber: page,\r\n                codeFilter: codeFilter,\r\n            },\r\n        }\r\n    );\r\n    return specialPrizesResponse.data;\r\n};\r\n\r\nexport const fetchSpecialPrizeResultsCount = async (\r\n    lottery: Lottery,\r\n    id: number,\r\n    codeFilter = \"\"\r\n): Promise<LotteryDrawSpecialPrizeGroup[]> => {\r\n    const specialPrizesResponse = await httpClientDrawInfo.get<LotteryDrawSpecialPrizeGroup[]>(\r\n        `draws/special-prize/${lottery}/${id}`,\r\n        {\r\n            params: {\r\n                codeFilter: codeFilter,\r\n            },\r\n        }\r\n    );\r\n    return specialPrizesResponse.data;\r\n};\r\n\r\nexport const fetchSpecialPrizeListResults = async (\r\n    lottery: Lottery,\r\n    from: Date,\r\n    to: Date,\r\n    page: number\r\n): Promise<LotteryDrawSpecialPrizeList[]> => {\r\n    const specialPrizesResponse = await httpClientDrawInfo.get<LotteryDrawSpecialPrizeList[]>(\r\n        `draws/special-prize/list/${lottery}/${page}`,\r\n        {\r\n            params: {\r\n                from: `${from.toISOString().split(\"T\")[0]}`,\r\n                to: `${to.toISOString().split(\"T\")[0]}`,\r\n            },\r\n        }\r\n    );\r\n    return specialPrizesResponse.data;\r\n};\r\n\r\nexport const fetchSpecialPrizeListResultsCount = async (lottery: Lottery, from: Date, to: Date): Promise<number> => {\r\n    const specialPrizesResponse = await httpClientDrawInfo.get<number>(`draws/special-prize/list/count/${lottery}`, {\r\n        params: {\r\n            from: `${from.toISOString().split(\"T\")[0]}`,\r\n            to: `${to.toISOString().split(\"T\")[0]}`,\r\n        },\r\n    });\r\n    return specialPrizesResponse.data;\r\n};\r\n\r\nexport const fetchTotoResults = async (id: number): Promise<TotoDraw> => {\r\n    const datesResponse = await httpClientDrawInfo.get<TotoDraw>(`/draws/toto/${id}`);\r\n    return datesResponse.data;\r\n};\r\n\r\nexport const fetchBetDates = async (lottery: Lottery): Promise<BetDates> => {\r\n    const datesResponse = await httpClientDrawInfo.get<BetDates>(`/future-draws/bet/${lottery}`);\r\n    return datesResponse.data;\r\n};\r\n\r\nexport const fetchNextDraw = async (lottery: Lottery): Promise<Draw> => {\r\n    const datesResponse = await httpClientDrawInfo.get<Draw>(`/future-draws/${lottery}`);\r\n    return datesResponse.data;\r\n};\r\n\r\nexport const fetchQuickLotteryResults = async (lottery: Lottery, count = 5): Promise<QuickLotteryDraw[]> => {\r\n    const datesResponse = await httpClientDrawInfo.get<QuickLotteryDraw[]>(`/draws/quick-lottery/${lottery}`, {\r\n        params: {\r\n            count: count,\r\n        },\r\n    });\r\n    return datesResponse.data;\r\n};\r\n\r\nexport const fetchQuickLotteryResultsByDates = async (\r\n    lottery: Lottery,\r\n    from: Date = null,\r\n    to: Date = null\r\n): Promise<QuickLotteryDraw[]> => {\r\n    const datesResponse = await httpClientDrawInfo.get<QuickLotteryDraw[]>(`/draws/quick-lottery/${lottery}/results`, {\r\n        params: {\r\n            from: from ? DateTimeUtils.getLocalIsoString(from) : null,\r\n            to: to ? DateTimeUtils.getLocalIsoString(to) : null,\r\n        },\r\n    });\r\n    return datesResponse.data;\r\n};\r\n\r\nexport const fetchLastResults = async (game: Lottery): Promise<DrawResults> => {\r\n    const response = await httpClientDrawInfo.get<DrawResults>(`/draws/universal/${game}/last-results`);\r\n    return response.data;\r\n};\r\n\r\nexport const fetchResultsById = async (game: Lottery, id: number): Promise<DrawResults> => {\r\n    const response = await httpClientDrawInfo.get<DrawResults>(`/draws/universal/${game}/${id}/results`);\r\n    return response.data;\r\n};\r\n","import { LotteryDrawSpecialPrizeGroup } from \"./lottery-draw-special-prize-group\";\r\nimport { LotteryDrawWinning } from \"./lottery-draw-winning\";\r\nimport { SportkaDraw } from \"./sportka-draw\";\r\nimport { TopWinning } from \"./top-winning\";\r\n\r\nexport class Draw {\r\n    drawId!: number;\r\n    drawDate!: string;\r\n    draws!: number[][];\r\n    addonDraw!: number[];\r\n    year: number;\r\n    week: number;\r\n    specialPrizes?: LotteryDrawSpecialPrizeGroup[];\r\n\r\n    drawWinnings?: LotteryDrawWinning[][];\r\n    addonWinnings?: LotteryDrawWinning[];\r\n    topWinnings?: TopWinning[];\r\n    estimatedJackpots?: number[][];\r\n    addonEstimatedJackpot?: number;\r\n    winsByCountry?: string[];\r\n\r\n    static fromData(data: Partial<Draw>) {\r\n        const draw = new Draw();\r\n        Object.assign(draw, data);\r\n        return draw;\r\n    }\r\n\r\n    static sportkaToDraw(sportka: Partial<SportkaDraw>) {\r\n        const draw = new Draw();\r\n\r\n        draw.drawId = sportka.drawId || 0;\r\n        draw.drawDate = sportka.drawDate || \"\";\r\n        draw.draws = [sportka.firstDrawResults || [], sportka.secondDrawResults];\r\n        draw.addonDraw = sportka.sanceResults;\r\n        draw.year = sportka.year;\r\n        draw.week = sportka.week;\r\n        draw.specialPrizes = sportka.specialPrizes;\r\n\r\n        draw.drawWinnings = sportka.firstDrawWinnings.map((x, index) => {\r\n            const secondDrawWin = sportka.secondDrawWinnings?.[index];\r\n            return secondDrawWin ? [x, secondDrawWin] : [x];\r\n        });\r\n        draw.estimatedJackpots = sportka.firstDrawEstimatedJackpots.map((x, index) => {\r\n            const secondJackpot = sportka.secondDrawEstimatedJackpots?.[index];\r\n            return secondJackpot ? [x, secondJackpot] : [x];\r\n        });\r\n        draw.addonWinnings = sportka.sanceWinnings;\r\n\r\n        return draw;\r\n    }\r\n\r\n    get drawsSorted(): number[][] {\r\n        if (this.draws) {\r\n            const drawsCopy = JSON.parse(JSON.stringify(this.draws));\r\n            return drawsCopy.map((x: number[]) => x.sort((a, b) => a - b));\r\n        } else {\r\n            return this.draws;\r\n        }\r\n    }\r\n}\r\n","import { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { ngFrameworkLoaded } from \"@sazka/ng/ng-integration\";\r\nimport { httpClient } from \"@sazka/utils/http-clients/http-client\";\r\nimport { Questionnaire } from \"./model/questionnaire\";\r\nimport { useLocalStorage } from \"@sazka/utils/use-storage\";\r\nimport { ref } from \"vue\";\r\n\r\nconst storage = useLocalStorage();\r\nconst storageName = \"question-history\";\r\n\r\nexport const isQuestionnaireOpen = ref(false);\r\n\r\nexport async function useQuestionnaires() {\r\n    if (\r\n        !environment.nodeAliasPath ||\r\n        environment.nodeAliasPath.indexOf(\"kontrola-sazky\") >= 0 ||\r\n        environment.nodeAliasPath.indexOf(\"vsadit-si-online\") >= 0\r\n    )\r\n        return;\r\n\r\n    await ngFrameworkLoaded();\r\n\r\n    ng_hs.depositSucceeded(async () => {\r\n        let hasClosedConfirmation = false;\r\n\r\n        ng_hs.onStateChange(async (ngState) => {\r\n            if (ngState === \"idle\" && !hasClosedConfirmation) {\r\n                hasClosedConfirmation = true;\r\n                await useQuestionnairesOnDeposit();\r\n            }\r\n        });\r\n    });\r\n\r\n    setTimeout(async () => {\r\n        await callQuestionnaire();\r\n    }, 2000);\r\n}\r\n\r\nexport async function useQuestionnairesOnOnlineBet(lottery: Lottery) {\r\n    await callQuestionnaire(\"online-bet\", lottery);\r\n}\r\n\r\nexport async function useQuestionnairesOnTicketCheck(lottery: Lottery) {\r\n    await callQuestionnaire(\"bet-check\", lottery);\r\n}\r\n\r\nwindow.useQuestionnairesOnTicketCheck = (lottery: Lottery) => {\r\n    callQuestionnaire(\"bet-check\", lottery);\r\n};\r\n\r\nasync function useQuestionnairesOnDeposit() {\r\n    await callQuestionnaire(\"deposit\");\r\n}\r\n\r\nasync function callQuestionnaire(type?: string, lottery?: Lottery) {\r\n    if (isQuestionnaireOpen.value) {\r\n        return;\r\n    }\r\n\r\n    let endpoint = \"\";\r\n    if (type) {\r\n        endpoint = type;\r\n        if (lottery) {\r\n            endpoint += `/${lottery}`;\r\n        }\r\n    } else {\r\n        endpoint = `active?nodeAliasPath=${window.environment.nodeAliasPath}`;\r\n    }\r\n\r\n    try {\r\n        const questionnaires = await httpClient.get<Questionnaire[]>(`/api/questionnaire/${endpoint}`);\r\n        if (!questionnaires.data?.length) return;\r\n\r\n        const seenQuestionnaires = storage.getJson<number[]>(storageName) ?? [];\r\n        const questionnaireToShow = questionnaires.data.find((d) => !seenQuestionnaires?.includes(d.id));\r\n\r\n        if (questionnaireToShow) {\r\n            isQuestionnaireOpen.value = true;\r\n            seenQuestionnaires.push(questionnaireToShow.id);\r\n            storage.setJson(storageName, seenQuestionnaires, \"essential\");\r\n            (await import(\"./mount-questionnaire\")).mount({ questionnaire: questionnaireToShow, placement: type });\r\n        }\r\n    } catch {}\r\n}\r\n\r\nexport enum ActionType {\r\n    VIEW = \"view\",\r\n    CLOSE = \"close\",\r\n    COMPLETE = \"complete\",\r\n}\r\n\r\nexport function dataLayer(type: string, action: ActionType): void {\r\n    window.dataLayer.push({\r\n        event: `action.${action}.${type}`,\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":["eurojackpotConfig","lottery","Lottery","eurojackpot","boardCount","primaryBoardSize","defaultStake","primaryNumbers","additionalBoardSize","additionalNumbers","addonBoardSize","addonNumbers","primarySystemMinCount","primarySystemDefaultCount","primarySystemMaxCount","additionalSystemMinCount","additionalSystemDefaultCount","additionalSystemMaxCount","boardLabel","hasDurationComponent","hasDrawOptions","hasMultidrawNotification","hasAllOrOneMultidrawOptions","hasSubscription","isDrawnEveryDay","durationTitle","maxDuration","multidrawDurationOptions","value","mainText","dayOfWeek","hour","drawName","kamenyConfig","kameny","kenoConfig","keno","primaryMinBoardSize","stakeOptions","sportkaConfig","sportka","stastnych10Config","stastnych10","Array","map","_","i","euromilionyConfig","euromiliony","extraRentaConfig","extraRenta","baseConfig","hasDurationInDays","getGameConfig","lotteryConfig","rychla6","rychla6Config","kasicka","kasickaConfig","miniRenta","miniRentaConfig","Object","assign","pastDraws","ref","promise","usePastDraws","fetchPastDraws","async","refetch","length","fetchDrawList","bettingMode","bettingModePosition","initialBoardsCount","columnsFillState","boardsFillTracking","setColumnsFillStateToPreFilled","usePpBetAnalytics","config","baseURL","httpClient","axios","create","addSagAuthInterceptor","interceptors","response","use","error","Promise","reject","fetchTicketCheckResult","request","httpClientWincheck","post","data","isTicketCheck","ticketCheckResult","usePpTicketCheck","setTicketCheck","getTicketCheckResult","_wagerStore$addonNumb","Loader","show","wagerStore","useWagerBoardStore","durationStore","usePpWagerDurationStore","usePpWagerConfiguration","draw","find","x","id","pastDrawId","wager","boards","isSystem","systemBoard","multiplier","duration","stakes","setTimeout","useQuestionnairesOnTicketCheck","e","showAlert","title","subText","hide","state","reactive","configure","DurationState","SubscriptionEndType","usePpWagerUtils","isWagerBoardFilled","board","primary","primaryCount","secondary","secondaryCount","isSystemTicketCheckBoardFilled","isPrimaryValid","isSecondaryValid","isAddonValid","addon","newSystemWagerBoard","_config$primarySystem","_config$additionalSys","tertiary","newWagerBoard","randomizeAddon","LotteryUtils","generateAddon","randomizeWagerBoard","_board$secondary","currentPrimary","currentSecondary","generateRandomNumbers","wagerUtils","ticketCheck","console","storeId","store","defineStore","boardIndex","isAddonPlayed","isSystemSelected","wagerStake","computed","maxBoardCount","get","set","setBoardCount","isBoardCountDirty","isBetSuccessfull","isBoardFilled","index","isWagerFilled","every","isTicketCheckValid","randomizeBoard","undefined","getBoard","randomizedBoard","randomizeWager","withAddon","fill","addBoard","deleteBoard","splice","getAddonNum","setAddonNum","num","clearWager","initialBoardCount","getBoardIndex","Number","isInteger","checkIndex","switchToStandardBet","UrlUtils","removeUrlPath","setFromFavoriteWager","favoriteWager","addonPlayed","_favoriteWager$number","_favoriteWager$number2","numbers","secondaryNumbers","additional","kralovskaHra","stake","setFromBetDetail","betDetail","_betDetail$boards","_betDetail$addonNumbe","_betDetail$addonNumbe2","betType","n","_betDetail$boards2","_betDetail$boards3","primarySelections","secondarySelections","_numbers$primarySelec","_numbers$secondarySel","setFromQuickWager","quickWager","columns","setBoard","setBoardPrimaryCount","count","slice","setBoardSecondaryCount","newBoards","from","setBoardIndex","generateBoards","restoreBoards","boardsToRestore","isAnyBoardFilled","some","systemPrimaryCount","_systemBoard$value","systemSecondaryCount","_systemBoard$value2","sortBoard","boardToSort","_boardToSort$secondar","_boardToSort$tertiary","sort","a","b","boardsSorted","forEach","indexOf","_config$initialBoardC","initialize","watch","boardCountValue","newTrackingItems","immediate","isSystemValue","maxBoardCountValue","persist","storage","localStorage","sessionStorage","BettingMode","_config$multidrawDura","durationType","Once","drawNames","notification","subscriptionEndType","Unlimited","subscriptionEnd","subscriptionName","isDurationLimited","durationLimit","firstBetDate","drawDates","allDraws","o","minDuration","getMaxDuration","_config$multidrawDura2","_drawNames$value","drawsCount","getValidDurationOptions","maxOptions","keys","label","getDurationLength","Multi","getBettingMode","singleDraw","multiDraw","Subscription","standingOrder","getRepetitionEndDate","DateTimeUtils","formatDate","replace","getDurationLengthFromDays","_drawNames$value$leng","_drawNames$value2","getSubscriptionMinEndDate","_drawNames$value3","_drawDates$value2","_drawDates$value","draws","d","_drawNames$value4","includes","getDrawNameValue","getDefaultDrawNames","isNewInit","_drawNames$value6","PpDebugLogger","log","_drawDates$value3","_drawDates$value4","_drawDates$value5","_drawNames$value5","_drawDates$value6","initDuration","initialDurationType","initialDuration","initialDrawNames","initialNotification","initialSubscriptionEnd","initialSubscriptionName","Date","isDurationValid","hasDurationLengthInDays","_drawNames$value7","_drawNames$value8","calculatedDuration","_quickWager$wager$dur","_betDetail$drawNames","_drawNames","toLowerCase","_betDetail$draws","_actualDrawDay$substr","actualDrawDay","drawTime","toLocaleString","weekday","actualDrawName","substring","setFromSubscriptionDetail","_betDetail$drawNames2","name","setDurationLengthToDays","restoreDuration","restoredDurationType","selectedDraws","restoredDuration","restoredSubscriptionEnd","clearDuration","fetchDrawDates","_drawDates$value7","_drawDates$value8","fetchBetDates","drawDate","handleDurationTypeChange","handleDrawNamesChange","_getSubscriptionMinEn","_getSubscriptionMinEn2","paths","UAT_TEST_USER","QA_TEST_USER","DEBUG_PLAYER_IDS","args","_window$player","window","player","logEvent","authInterceptor","loggerInterceptor","datesResponse","httpClientDrawInfo","fetchResults","resultsResponse","Draw","sportkaToDraw","fromData","fetchSpecialPrizeResults","drawId","prizeType","page","codeFilter","specialPrizesResponse","params","pageNumber","fetchSpecialPrizeResultsCount","fetchSpecialPrizeListResults","to","toISOString","split","fetchSpecialPrizeListResultsCount","fetchTotoResults","fetchQuickLotteryResults","fetchQuickLotteryResultsByDates","getLocalIsoString","fetchLastResults","game","fetchResultsById","constructor","_defineProperty","firstDrawResults","secondDrawResults","addonDraw","sanceResults","year","week","specialPrizes","drawWinnings","firstDrawWinnings","_sportka$secondDrawWi","secondDrawWin","secondDrawWinnings","estimatedJackpots","firstDrawEstimatedJackpots","_sportka$secondDrawEs","secondJackpot","secondDrawEstimatedJackpots","addonWinnings","sanceWinnings","drawsSorted","this","drawsCopy","JSON","parse","stringify","useLocalStorage","storageName","isQuestionnaireOpen","useQuestionnaires","environment","nodeAliasPath","ngFrameworkLoaded","ng_hs","depositSucceeded","hasClosedConfirmation","onStateChange","ngState","useQuestionnairesOnDeposit","callQuestionnaire","useQuestionnairesOnOnlineBet","type","endpoint","_questionnaires$data","_storage$getJson","questionnaires","seenQuestionnaires","getJson","questionnaireToShow","push","setJson","mount","questionnaire","placement","ActionType","dataLayer","action","event","toTrack","appInsights","isDev","env","ngSessionRef","init","extensions","extensionConfig","isKasa","useNgSession","session","DebugPlugin","debugPluginInstance","identifier","trackers","ApplicationInsights","connectionString","appSettings","disableAjaxTracking","disableFetchTracking","disableDataLossAnalysis","enableUnhandledPromiseRejectionTracking","telemetryInitializer","envelope","_ngSessionRef$value$P","_ngSessionRef","playerId","PlayerID","location","href","userAgent","navigator","mobileView","isInAppView","addTelemetryInitializer","loadAppInsights","trackEvent","properties","_appInsights","trackException","exception","_appInsights2","trackMetric","_appInsights3","average","useAppInsights","enabledSegments","_appSettings$Features","_appSettings$Features2","isEnabledAllTrafic","enableSegmentName","codename","logDebugEvent","segmentName","logException","logCustomException","message","Error","logMetric"],"sourceRoot":""}