{"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 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 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× 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":""}