{"version":3,"file":"js/7128.1d741d338890af44.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/lotteries/category-page/utils/lotteries-analytics-category-page.ts","webpack://@sazka/web/./js/app/lotteries/composables/lottery-countdown-api.ts","webpack://@sazka/web/./js/app/lotteries/composables/use-lottery-countdown-manager.ts","webpack://@sazka/web/./js/app/lotteries/model/lottery.ts","webpack://@sazka/web/./js/app/lotteries/quick-lotteries/composables/use-lottery-draw-interval.ts","webpack://@sazka/web/../../libs/utils/composables/use-breakpoints.ts","webpack://@sazka/web/../../libs/utils/string-utils.ts","webpack://@sazka/web/./js/app/lotteries/category-page/components/cp-countdown-clock.vue?aaab","webpack://@sazka/web/./js/app/lotteries/category-page/components/cp-countdown-clock.vue","webpack://@sazka/web/./js/app/lotteries/category-page/components/cp-countdown-clock.vue?7914","webpack://@sazka/web/./js/app/lotteries/category-page/components/cp-quick-lottery-card.vue?5baa","webpack://@sazka/web/./js/app/lotteries/category-page/components/cp-quick-lottery-card.vue","webpack://@sazka/web/./js/app/lotteries/category-page/components/cp-quick-lottery-card.vue?8296","webpack://@sazka/web/./js/app/lotteries/category-page/api/jackpots-api.ts","webpack://@sazka/web/./js/app/lotteries/category-page/_quick-lotteries-countdown.vue?af32","webpack://@sazka/web/./js/app/lotteries/category-page/_quick-lotteries-countdown.vue","webpack://@sazka/web/./js/app/lotteries/category-page/_quick-lotteries-countdown.vue?cbd2","webpack://@sazka/web/../../node_modules/core-js/internals/a-set.js","webpack://@sazka/web/../../node_modules/core-js/internals/get-iterator-direct.js","webpack://@sazka/web/../../node_modules/core-js/internals/get-set-record.js","webpack://@sazka/web/../../node_modules/core-js/internals/iterate-simple.js","webpack://@sazka/web/../../node_modules/core-js/internals/iterator-close.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-clone.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-difference.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-helpers.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-intersection.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-is-disjoint-from.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-is-subset-of.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-is-superset-of.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-iterate.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-method-accept-set-like.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-size.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-symmetric-difference.js","webpack://@sazka/web/../../node_modules/core-js/internals/set-union.js","webpack://@sazka/web/../../node_modules/core-js/modules/es.set.difference.v2.js","webpack://@sazka/web/../../node_modules/core-js/modules/es.set.intersection.v2.js","webpack://@sazka/web/../../node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack://@sazka/web/../../node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack://@sazka/web/../../node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack://@sazka/web/../../node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack://@sazka/web/../../node_modules/core-js/modules/es.set.union.v2.js"],"sourcesContent":["import { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { MultiwagerSet } from \"@/lotteries/model/multiwagers/multiwager-set\";\r\nimport { BetDetail } from \"@/lotteries/model/my-tickets/bet-detail\";\r\nimport { Analytics } from \"@/shared/utils/analytics/analytics\";\r\n\r\nexport namespace LotteriesCategoryPageAnalytics {\r\n    // V1.0\r\n\r\n    // DL1.00\r\n    function pushPurchase(bet: BetDetail | any, bettingMode: string) {\r\n        const { days, times } = Analytics.getDrawDaysAndTimes(bet.drawNames ?? bet.DrawNames);\r\n        const price = (bet.price ?? bet.Price) / 100;\r\n        const lottery = bet.lottery ?? bet.Lottery;\r\n\r\n        window.dataLayer.push({\r\n            page: {\r\n                type: \"purchase\",\r\n                kind: \"lobby.lotteries\",\r\n                verticalCodeStrict: \"no_loterie\",\r\n                verticalCode: \"loterie\",\r\n                gameCodeStrict: \"no_game\",\r\n                gameCode: Analytics.getLotteryCode(lottery),\r\n            },\r\n            order: {\r\n                id: bet.id ?? bet.Id,\r\n                totalValue: price,\r\n                revenue: price,\r\n                discount: 0,\r\n                tax: 0,\r\n            },\r\n            cart: {\r\n                products: [\r\n                    {\r\n                        fullPrice: price,\r\n                        pocketPrice: price,\r\n                        price: price,\r\n                        tax: 0,\r\n                        position: 1,\r\n                        verticalCode: \"loterie\",\r\n                        gameCode: Analytics.getLotteryCode(lottery),\r\n                        boards: (bet.boards ?? bet.Boards).length,\r\n                        draws: bet.duration ?? bet.Duration,\r\n                        addonGame: Analytics.getAddonName(lottery, !!(bet.addonNumbers ?? bet.AddonNumbers)?.length),\r\n                        ticketKind: (bet.duration ?? bet.Duration) > 1 ? \"multiDraw\" : \"singleDraw\",\r\n                        drawDays: days,\r\n                        drawTimes: times,\r\n                        bettingMode: bettingMode,\r\n                    },\r\n                ],\r\n            },\r\n            event: \"page\",\r\n        });\r\n    }\r\n\r\n    // DL1.10\r\n    export function pushLoterieLobbyPage() {\r\n        window.dataLayer.push({\r\n            page: {\r\n                type: \"lobby.lotteries\",\r\n                kind: \"lobby.lotteries\",\r\n                verticalCode: \"loterie\",\r\n                verticalCodeStrict: \"loterie\",\r\n                gameCode: \"no_game\",\r\n                gameCodeStrict: \"no_game\",\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.20\r\n    export function pushSelectGameFromLobby(gameCode: Lottery, eventProperty1: string, eventProperty2: string) {\r\n        window.dataLayer.push({\r\n            event: \"action.select.lobby\",\r\n            action: {\r\n                select: {\r\n                    gameCode: LotteryUtils.analyticsCodeName(gameCode),\r\n                    eventProperty1: eventProperty1,\r\n                    eventProperty2: eventProperty2,\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.30\r\n    export function pushSyndicatesClick(gameCode: Lottery, position: string) {\r\n        window.dataLayer.push({\r\n            event: \"action.click.syndicates\",\r\n            action: {\r\n                click: {\r\n                    gameCode: LotteryUtils.analyticsCodeName(gameCode),\r\n                    label: \"loterie.\" + LotteryUtils.analyticsCodeName(gameCode),\r\n                    eventProperty1: \"mainCategory\",\r\n                    eventProperty7: position,\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.40\r\n    export function pushBetMarketplaceClick() {\r\n        window.dataLayer.push({ event: \"action.click.betmarketplace\" });\r\n    }\r\n\r\n    // DL1.50\r\n    export function pushMultibetsImpress(activeMultiwager: MultiwagerSet) {\r\n        window.dataLayer.push({\r\n            event: \"action.impress.multibets\",\r\n            action: {\r\n                impress: {\r\n                    gameCode: activeMultiwager.title,\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.60\r\n    export function pushMoneyBetMultibets(\r\n        multibetID: string,\r\n        multibetsName: string,\r\n        wagers: any[],\r\n        totalPrice: number\r\n    ) {\r\n        // Push individual game bets\r\n        wagers.forEach((wager) => {\r\n            pushPurchase(wager, \"multibets\");\r\n\r\n            window.dataLayer.push({\r\n                event: \"action.bet.money\",\r\n                action: {\r\n                    bet: {\r\n                        value: wager.Price / 100,\r\n                        gameCode: Analytics.getLotteryCode(wager.Lottery),\r\n                        verticalCode: \"loterie\",\r\n                        bettingSystem: \"multibets\",\r\n                        multibetsName: multibetsName,\r\n                        multibetID: multibetID,\r\n                    },\r\n                },\r\n            });\r\n        });\r\n\r\n        // Push aggregated bet\r\n        const gameCodes = wagers.map((wager) => Analytics.getLotteryCode(wager.Lottery)).join(\",\");\r\n        window.dataLayer.push({\r\n            event: \"action.bet.money\",\r\n            action: {\r\n                bet: {\r\n                    value: totalPrice,\r\n                    gameCode: gameCodes,\r\n                    verticalCode: \"loterie\",\r\n                    bettingSystem: \"multibets\",\r\n                    multibetsName: multibetsName,\r\n                    multibetID: multibetID,\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.70 implemented in analytics-secondary-nav.ts (it's shared between lotteries and tickets)\r\n\r\n    // DL1.80\r\n    export function pushLobbyDetailClick(gameCode: Lottery) {\r\n        window.dataLayer.push({\r\n            event: \"action.detailClick.lobby\",\r\n            action: {\r\n                detailClick: {\r\n                    gameCode: LotteryUtils.analyticsCodeName(gameCode),\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.85\r\n    export function pushClickQuicktipsEvent(gameCode: Lottery, price: number, position: string) {\r\n        window.dataLayer.push({\r\n            event: \"action.click.quicktips\",\r\n            action: {\r\n                click: {\r\n                    gameCode: LotteryUtils.analyticsCodeName(gameCode),\r\n                    value: price,\r\n                    eventProperty2: position,\r\n                },\r\n            },\r\n            page: {\r\n                type: \"lobbyDetail.lotteries\",\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.90\r\n    export function pushMoneyBeyLobbyDetail(bet: BetDetail, position: string) {\r\n        pushPurchase(bet, \"quickTips\");\r\n\r\n        window.dataLayer.push({\r\n            event: \"action.bet.money\",\r\n            action: {\r\n                bet: {\r\n                    value: bet.price / 100,\r\n                    gameCode: LotteryUtils.analyticsCodeName(bet.lottery),\r\n                    verticalCode: \"loterie\",\r\n                    bettingMode: \"quickTips\",\r\n                    position,\r\n                },\r\n            },\r\n            page: {\r\n                type: \"lobbyDetail.lotteries\",\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.95\r\n    export function pushEnterSyndicatesEvent(game: Lottery) {\r\n        window.dataLayer.push({\r\n            event: \"action.enter.syndicates\",\r\n            action: {\r\n                show: {\r\n                    game: LotteryUtils.analyticsCodeName(game),\r\n                },\r\n            },\r\n            page: {\r\n                type: \"lobbyDetail.lotteries\",\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL2.00\r\n    export function pushShowProductLobbyDetail(game: Lottery, buttonText: string) {\r\n        window.dataLayer.push({\r\n            event: \"action.show.products\",\r\n            action: {\r\n                show: {\r\n                    game: LotteryUtils.analyticsCodeName(game),\r\n                    button: buttonText,\r\n                },\r\n            },\r\n            page: {\r\n                type: \"lobbyDetail.lotteries\",\r\n            },\r\n        });\r\n\r\n        const currentUrl = new URL(window.location.href);\r\n\r\n        currentUrl.searchParams.set(\"bettingMode\", \"mainCategoryPopover\");\r\n    }\r\n\r\n    // DL2.05\r\n    export function pushCheckBetEvent() {\r\n        window.dataLayer.push({\r\n            event: \"action.checkBet.bet\",\r\n            page: {\r\n                type: \"lobbyDetail.lotteries\",\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL2.10\r\n    export function pushVideoPlayClick(eventProperty1: string) {\r\n        window.dataLayer.push({\r\n            event: \"action.playVideo.lotteries\",\r\n            action: {\r\n                playVideo: {\r\n                    eventProperty1: eventProperty1,\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL4.10, DL4.15 and DL4.20 implemented in app/shared/utils/analytics/analytics-cp-widget-banner.ts\r\n\r\n    // DL4.25\r\n    export function pushQuicktipsImpress(gameCode: Lottery, eventProperty1: string, eventProperty2: string) {\r\n        window.dataLayer.push({\r\n            event: \"action.impress.quicktips\",\r\n            action: {\r\n                impress: {\r\n                    gameCode: gameCode,\r\n                    eventProperty1: eventProperty1,\r\n                    eventProperty2: eventProperty2,\r\n                },\r\n            },\r\n            page: {\r\n                type: \"lobbyDetail.lotteries\",\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL4.30, DL4.60\r\n    export function pushLobbyBannerImpression(id: string, name: string, creative: string, position: string) {\r\n        window.dataLayer.push({\r\n            event: \"action.impress.promos\",\r\n            action: {\r\n                impress: {\r\n                    promos: [\r\n                        {\r\n                            id: id,\r\n                            name: name,\r\n                            creative: creative,\r\n                            position: position,\r\n                        },\r\n                    ],\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL4.40, DL4.65\r\n    export function pushLobbyBannerClick(id: string, name: string, creative: string, position: string) {\r\n        window.dataLayer.push({\r\n            event: \"action.show.promos\",\r\n            action: {\r\n                show: {\r\n                    promos: [\r\n                        {\r\n                            id: id,\r\n                            name: name,\r\n                            creative: creative,\r\n                            position: position,\r\n                        },\r\n                    ],\r\n                },\r\n            },\r\n        });\r\n    }\r\n}\r\n","import { httpClient } from \"@sazka/utils/http-clients/http-client\";\r\nimport { Lottery } from \"../model/lottery\";\r\n\r\ninterface LotteryCountdownResponse {\r\n    remainingSeconds: number;\r\n}\r\n\r\ninterface LotteryRemainingTime {\r\n    lottery: Lottery;\r\n    remainingSeconds: number;\r\n}\r\n\r\nexport async function getDrawTimeBulk(lotteries: Lottery[]): Promise<LotteryRemainingTime[]> {\r\n    const url = \"/api/draw-info/countdown\";\r\n    const params = {\r\n        gameNames: lotteries.join(\",\"),\r\n        v: new Date().getTime(),\r\n    };\r\n\r\n    try {\r\n        const response = await httpClient.get<LotteryCountdownResponse[]>(url, {\r\n            params,\r\n            // eslint-disable-next-line @typescript-eslint/naming-convention\r\n            headers: { \"Cache-Control\": \"no-store\" },\r\n        });\r\n\r\n        return response.data.map((x, i) => {\r\n            return {\r\n                lottery: lotteries[i],\r\n                remainingSeconds: x.remainingSeconds,\r\n            };\r\n        });\r\n    } catch (err) {\r\n        console.error(\"Error while requesting countdown time:\", err);\r\n\r\n        return lotteries.map((x) => {\r\n            return {\r\n                lottery: x,\r\n                remainingSeconds: 0,\r\n            };\r\n        });\r\n    }\r\n}\r\n\r\nexport async function getDrawTime(lottery: Lottery): Promise<LotteryRemainingTime> {\r\n    const url = `/api/draw-info/countdown/${lottery}`;\r\n\r\n    const params = {\r\n        v: new Date().getTime(),\r\n    };\r\n\r\n    try {\r\n        const response = await httpClient.get<LotteryCountdownResponse>(url, {\r\n            params,\r\n            // eslint-disable-next-line @typescript-eslint/naming-convention\r\n            headers: { \"Cache-Control\": \"no-store\" },\r\n        });\r\n\r\n        return {\r\n            lottery,\r\n            remainingSeconds: response.data.remainingSeconds,\r\n        };\r\n    } catch (err) {\r\n        console.error(\"Error while requesting countdown time:\", err);\r\n\r\n        return {\r\n            lottery,\r\n            remainingSeconds: 0,\r\n        };\r\n    }\r\n}\r\n","import { Ref, computed, ref } from \"vue\";\r\nimport { Lottery } from \"../model/lottery\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { getDrawTime, getDrawTimeBulk } from \"./lottery-countdown-api\";\r\n\r\nexport interface CountdownRef {\r\n    lottery: Lottery;\r\n    secondsRemaining: number;\r\n}\r\n\r\nconst countdownRefs: Ref<CountdownRef[]> = ref([]);\r\nconst subscribedLotteries = ref<Lottery[]>([]);\r\nconst subscribedLotteriesSet = computed(() => new Set(subscribedLotteries.value)); // unique lotteries - represent active countdowns\r\nlet tickingIntervalHandle: ReturnType<typeof setInterval> = null;\r\n\r\n/**\r\n * Gets the countdown ref for the lottery;\r\n * creates one if it doesn't exist\r\n *\r\n * @param lottery\r\n * @returns the countdown ref for the lottery\r\n */\r\nfunction getCountdownRef(lottery: Lottery) {\r\n    let cdRef: CountdownRef = countdownRefs.value.find((x) => x.lottery === lottery);\r\n\r\n    if (!cdRef) {\r\n        cdRef = { lottery, secondsRemaining: 0 };\r\n        countdownRefs.value.push(cdRef);\r\n    }\r\n\r\n    return cdRef;\r\n}\r\n\r\n/**\r\n * Gets the countdown refs for the lotteries;\r\n * it does not create refs for lotteries that don't have one\r\n *\r\n * @param lotteries\r\n * @returns the countdown refs for the lotteries\r\n */\r\nfunction getCountdownRefs(lotteries: Lottery[]): CountdownRef[] {\r\n    return countdownRefs.value.filter((x) => lotteries.includes(x.lottery));\r\n}\r\n\r\n/**\r\n * Sets the countdown ref for the lottery\r\n *\r\n * @param lottery\r\n * @param seconds\r\n * @returns the countdown ref for the lottery\r\n */\r\nfunction setCountdownRef(lottery: Lottery, seconds: number) {\r\n    const cdRef = getCountdownRef(lottery);\r\n    cdRef.secondsRemaining = seconds;\r\n\r\n    return cdRef;\r\n}\r\n\r\nasync function requestLotteryDrawTimes(lotteries: Lottery[]) {\r\n    if (lotteries.length > 1) {\r\n        (await getDrawTimeBulk(lotteries)).forEach((response) => {\r\n            setCountdownRef(LotteryUtils.parseLotteryName(response.lottery), response.remainingSeconds);\r\n        });\r\n    } else if (lotteries.length === 1) {\r\n        const data = await getDrawTime(lotteries[0]);\r\n        setCountdownRef(LotteryUtils.parseLotteryName(data.lottery), data.remainingSeconds);\r\n    }\r\n}\r\n\r\n/**\r\n * Ticks the countdowns;\r\n * If a countdown reaches 0, it requests the new draw times in bulk\r\n */\r\nasync function tick() {\r\n    if (!subscribedLotteriesSet.value.size) {\r\n        stopTicking();\r\n        return;\r\n    }\r\n\r\n    const lotteriesToRequest: Lottery[] = [];\r\n\r\n    for (const lottery of subscribedLotteriesSet.value) {\r\n        const cdRef = getCountdownRef(lottery);\r\n\r\n        if (cdRef.secondsRemaining <= 0) {\r\n            lotteriesToRequest.push(lottery);\r\n        } else {\r\n            cdRef.secondsRemaining = cdRef.secondsRemaining - 1;\r\n        }\r\n    }\r\n\r\n    if (lotteriesToRequest.length) {\r\n        await requestLotteryDrawTimes(lotteriesToRequest);\r\n    }\r\n}\r\n\r\nasync function startTicking() {\r\n    if (tickingIntervalHandle) return;\r\n\r\n    await tick();\r\n    tickingIntervalHandle = setInterval(tick, 1000);\r\n}\r\n\r\nfunction stopTicking() {\r\n    if (!tickingIntervalHandle) return;\r\n\r\n    clearInterval(tickingIntervalHandle);\r\n}\r\n\r\nlet initialLoadPromise: Promise<void> = null;\r\n\r\nconst handleWindowBlur = () => {\r\n    let onBlurTime: number;\r\n\r\n    window.addEventListener(\"blur\", () => {\r\n        onBlurTime = Date.now();\r\n    });\r\n\r\n    window.addEventListener(\"focus\", () => {\r\n        if (!onBlurTime || Date.now() - onBlurTime < 10_000) return;\r\n\r\n        const lotteriesToRequest = [...subscribedLotteriesSet.value];\r\n        if (lotteriesToRequest.length) {\r\n            requestLotteryDrawTimes(lotteriesToRequest);\r\n        }\r\n    });\r\n};\r\n\r\n/**\r\n * Creates a manager for the lottery countdowns;\r\n * it keeps track of the countdowns for the lotteries\r\n *\r\n * @param lotteries\r\n * @returns the manager\r\n */\r\nexport const useLotteryCountdownManager = (lotteries: Lottery[]) => {\r\n    let subscribed = false;\r\n    const subscribingLotteries = []; // array to keep track of subscribing lotteries of the current manager `instance`\r\n\r\n    const addLottery = (lottery: Lottery) => {\r\n        if (!subscribedLotteriesSet.value.has(lottery)) {\r\n            setCountdownRef(lottery, 0);\r\n        }\r\n        subscribedLotteries.value.push(lottery);\r\n        subscribingLotteries.push(lottery);\r\n    };\r\n\r\n    if (lotteries.length) {\r\n        subscribingLotteries.push(...lotteries);\r\n        const newLotteries = lotteries.filter((lottery) => !subscribedLotteriesSet.value.has(lottery));\r\n        for (const lottery of newLotteries) {\r\n            setCountdownRef(lottery, 0);\r\n        }\r\n\r\n        subscribedLotteries.value.push(...lotteries);\r\n\r\n        subscribed = true;\r\n    }\r\n\r\n    if (subscribed && !tickingIntervalHandle && !initialLoadPromise) {\r\n        initialLoadPromise = startTicking();\r\n    }\r\n\r\n    const countdowns = computed<CountdownRef[]>(() => getCountdownRefs(lotteries));\r\n\r\n    handleWindowBlur();\r\n\r\n    return {\r\n        addLottery,\r\n        countdowns,\r\n        getCountdownRef,\r\n        initialLoadPromise,\r\n        unsubscribe: () => {\r\n            if (!subscribed) return;\r\n\r\n            for (const lottery of subscribingLotteries) {\r\n                const index = subscribedLotteries.value.indexOf(lottery);\r\n                if (index > -1) {\r\n                    subscribedLotteries.value.splice(index, 1);\r\n                }\r\n            }\r\n\r\n            subscribed = false;\r\n        },\r\n    };\r\n};\r\n","export enum Lottery {\r\n    /** Lottery */\r\n    sportka = \"sportka\",\r\n    /** Lottery */\r\n    sportkaMh = \"sportkamh\",\r\n    /** Lottery */\r\n    eurojackpot = \"eurojackpot\",\r\n    /** Lottery */\r\n    euromiliony = \"euromiliony\",\r\n    /** Lottery */\r\n    stastnych10 = \"stastnych-10\",\r\n    /** Lottery */\r\n    kasicka = \"kasicka\",\r\n    /** Lottery */\r\n    extraRenta = \"extra-renta\",\r\n    /** Lottery */\r\n    stastneDatum = \"stastne-datum\",\r\n    /** Lottery */\r\n    sazkaMobil = \"sazka-mobil\",\r\n    /** Lottery */\r\n    totoSazka = \"toto-sazka\",\r\n    /** Quick lottery */\r\n    rychleKacky = \"rychle-kacky\",\r\n    /** Quick lottery */\r\n    kameny = \"kameny\",\r\n    /** Quick lottery */\r\n    keno = \"keno\",\r\n    /** Quick lottery */\r\n    rychla6 = \"rychla-6\",\r\n    /** Quick lottery */\r\n    vsechnoNeboNic = \"vsechno-nebo-nic\",\r\n    /** Quick lottery */\r\n    miniRenta = \"mini-renta\",\r\n    /** Quick lottery */\r\n    powerSpin = \"power-spin\",\r\n    /** Lottery */\r\n    sance = \"sance\",\r\n    /** Lottery */\r\n    sanceMh = \"sancemh\",\r\n    /** Lottery */\r\n    extra6 = \"extra6\",\r\n    /** Lottery */\r\n    euroSance = \"eurosance\",\r\n    /** Lottery */\r\n    sanceMilion = \"sancemilion\",\r\n}\r\n","import { Lottery } from \"@/lotteries/model/lottery\";\r\n\r\n// https://medium.com/technogise/type-safe-and-exhaustive-switch-statements-aka-pattern-matching-in-typescript-e3febd433a7a\r\n// SEE: https://sazka.atlassian.net/browse/UFO-8643\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nconst exhaustiveCheck = (_: never): never => {\r\n    throw new Error(\"Should not have reached here\");\r\n};\r\n\r\nexport type FilterKeysExceptQuickLotteries =\r\n    | Lottery.sportka\r\n    | Lottery.sportkaMh\r\n    | Lottery.eurojackpot\r\n    | Lottery.euromiliony\r\n    | Lottery.stastnych10\r\n    | Lottery.kasicka\r\n    | Lottery.extraRenta\r\n    | Lottery.stastneDatum\r\n    | Lottery.sazkaMobil\r\n    | Lottery.totoSazka\r\n    | Lottery.miniRenta\r\n    | Lottery.sance\r\n    | Lottery.sanceMh\r\n    | Lottery.extra6\r\n    | Lottery.euroSance\r\n    | Lottery.sanceMilion;\r\n\r\nexport function useLotteryDrawInterval(lottery: Exclude<Lottery, FilterKeysExceptQuickLotteries>) {\r\n    const lotteryDrawInterval = () => {\r\n        switch (lottery) {\r\n            case Lottery.keno:\r\n            case Lottery.kameny:\r\n            case Lottery.rychla6:\r\n                return 300;\r\n            case Lottery.vsechnoNeboNic:\r\n            case Lottery.rychleKacky:\r\n            case Lottery.powerSpin:\r\n                return 60;\r\n            default:\r\n                exhaustiveCheck(lottery);\r\n        }\r\n    };\r\n\r\n    return {\r\n        lotteryDrawInterval,\r\n    };\r\n}\r\n","import { Ref, ref } from \"vue\";\r\nimport { ResponsiveUtils } from \"../responsive-utils\";\r\n\r\ntype BreakpointType = keyof Omit<typeof ResponsiveUtils.breakpoints, \"xs\">;\r\ntype ReactiveBreakpoint = {\r\n    key: BreakpointType;\r\n    minSize: (typeof ResponsiveUtils.breakpoints)[BreakpointType];\r\n    isInUse: boolean;\r\n    value: Ref<boolean>;\r\n};\r\n\r\nlet initialized = false;\r\nlet reactiveBreakpoints: ReactiveBreakpoint[] = null;\r\n\r\n/**\r\n * Returns ref with boolean value, which means, current breakpoint is same or bigger\r\n * eg. media min-width: x\r\n * since its breakpoint up, it doesnt make sense for 'xs' which would be always true, so its omited\r\n * @param breakpoints breakpoint name eg. 'xs2' or 'xl'\r\n * @returns boolean\r\n */\r\nexport function useBreakpoints(breakpoints: BreakpointType): Ref<boolean>;\r\n\r\n/**\r\n * Returns object, with keys same as parameter value, their value is ref with boolean value, which means, current breakpoint is same or bigger\r\n * eg. media min-width: x\r\n * Example of return value: { sm: ref(true), md: ref(false) }\r\n * Returns only value passed in parametrs,\r\n * since its breakpoint up, it doesnt make sense for 'xs' which would be always true, so its omited\r\n * @param breakpoints all breakpoint names eg. 'xs2' or 'xl'\r\n */\r\nexport function useBreakpoints(...breakpoints: BreakpointType[]): { [key in BreakpointType]: Ref<boolean> };\r\n\r\nexport function useBreakpoints(...breakpoints: BreakpointType[]) {\r\n    if (breakpoints?.length == 0) return;\r\n\r\n    initialize();\r\n\r\n    if (breakpoints.length > 1) {\r\n        return breakpoints.reduce((acc, x) => {\r\n            acc[x] = reactiveBreakpoint(x);\r\n            return acc;\r\n        }, {});\r\n    } else {\r\n        return reactiveBreakpoint(breakpoints[0]);\r\n    }\r\n}\r\n\r\nfunction initialize() {\r\n    if (initialized) return;\r\n    reactiveBreakpoints = Object.keys(ResponsiveUtils.breakpoints)\r\n        .filter((x) => x !== \"xs\")\r\n        .map((x) => ({\r\n            isInUse: false,\r\n            key: x as BreakpointType,\r\n            minSize: ResponsiveUtils.breakpoints[x] as (typeof ResponsiveUtils.breakpoints)[BreakpointType],\r\n            value: ref(false),\r\n        }));\r\n\r\n    initialized = true;\r\n}\r\n\r\nfunction reactiveBreakpoint(breakpoint: BreakpointType) {\r\n    const brkpnt = reactiveBreakpoints.find((x) => x.key === breakpoint);\r\n    if (!brkpnt.isInUse) {\r\n        brkpnt.isInUse = true;\r\n        const media = window.matchMedia(`(min-width: ${brkpnt.minSize}px)`);\r\n        brkpnt.value.value = media.matches;\r\n        media.onchange = (e) => {\r\n            brkpnt.value.value = e.matches;\r\n        };\r\n    }\r\n    return brkpnt.value;\r\n}\r\n","export namespace StringUtils {\r\n    /**\r\n     * Formats a number by adding commas for thousands separator and truncating decimal places.\r\n     *\r\n     * @param {number} value - The number to format.\r\n     * @param {boolean} useNbsp - Optional flag to use non-breaking space as a separator. Defaults to true.\r\n     * @return {string} The formatted number with commas and optional non-breaking space separator.\r\n     */\r\n    export const formatNumber = (value: number, useNbsp = true): string => {\r\n        if (typeof value !== \"number\") {\r\n            return \"---\";\r\n        }\r\n        const ref = value.toFixed(2).split(\".\");\r\n        let preComma = ref[0] || \"\";\r\n        const postComma = ref[1];\r\n        preComma = stringReverse((stringReverse(preComma).match(/.{1,3}/g) || [\"\"]).join(useNbsp ? \";psbn&\" : \" \"));\r\n\r\n        return postComma != \"00\" ? preComma + \",\" + postComma : preComma;\r\n    };\r\n\r\n    /**\r\n     * Formats a currency value by calling formatNumber and appending the currency symbol.\r\n     *\r\n     * @param {number} value - The value to format as currency.\r\n     * @param {boolean} useNbsp - Optional flag to use non-breaking space as a separator. Defaults to true.\r\n     * @return {string} The formatted currency value with the currency symbol.\r\n     */\r\n    export const formatCurrency = (value: number, useNbsp = true): string => {\r\n        // this is also case for 0\r\n        if (!value || isNaN(value)) {\r\n            value = 0;\r\n        }\r\n        return `${formatNumber(value, useNbsp)}${useNbsp ? \"&nbsp;\" : \" \"}KÄŤ`;\r\n    };\r\n\r\n    /**\r\n     * Limits the length of the text if it exceeds the specified limit by truncating and adding ellipsis.\r\n     *\r\n     * @param {string} text - The input text to limit.\r\n     * @param {number} limit - The maximum length of the text before truncation. Defaults to 50.\r\n     * @return {string} The text with limited length, potentially truncated with ellipsis.\r\n     */\r\n    export const limitTextLength = (text: string, limit = 50) => {\r\n        if (text && text.length > limit) {\r\n            return text.substring(0, limit - 3) + \"...\";\r\n        }\r\n        return text;\r\n    };\r\n\r\n    /**\r\n     * Reverses the given string.\r\n     *\r\n     * @param {string} str - The string to be reversed.\r\n     * @return {string} The reversed string.\r\n     */\r\n    export function stringReverse(str: string): string {\r\n        return str.split(\"\").reverse().join(\"\");\r\n    }\r\n\r\n    /**\r\n     * Converts given HTML text to plain text.\r\n     *\r\n     * @param {string} htmlText - The HTML text to be converted to plain text.\r\n     * @return {string} The plain text.\r\n     */\r\n    export function getPlainTextFromHtml(htmlText: string): string {\r\n        const tempDiv = document.createElement(\"div\");\r\n        tempDiv.innerHTML = htmlText;\r\n        return tempDiv.textContent || tempDiv.innerText || \"\";\r\n    }\r\n\r\n    /**\r\n     * Sanitizes a string by removing HTML tags and replacing multiple whitespaces/newlines with a single space.\r\n     */\r\n    export function sanitizeString(input: string): string {\r\n        return input\r\n            .replace(/<[^>]*>/g, \"\") // Remove HTML tags\r\n            .replace(/\\s+/g, \" \") // Replace multiple whitespaces/newlines with a single space\r\n            .trim(); // Remove leading and trailing spaces\r\n    }\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"cp-countdown-clock\" }\nconst _hoisted_2 = [\"width\", \"height\", \"viewBox\"]\nconst _hoisted_3 = [\"d\"]\nconst _hoisted_4 = [\"d\", \"stroke-dashoffset\", \"stroke-dasharray\"]\n\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport {\r\n    FilterKeysExceptQuickLotteries,\r\n    useLotteryDrawInterval,\r\n} from \"@/lotteries/quick-lotteries/composables/use-lottery-draw-interval\";\r\nimport { useBreakpoints } from \"@sazka/utils/composables/use-breakpoints\";\r\nimport { computed, ref } from \"vue\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'cp-countdown-clock',\n  props: {\n    lottery: {},\n    remainingSeconds: {}\n  },\n  setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst { lotteryDrawInterval } = useLotteryDrawInterval(props.lottery);\r\n\r\nconst borderSvgRef = ref<SVGPathElement | null>(null);\r\nconst borderSvgLength = computed(() => {\r\n    if (borderSvgRef.value) return borderSvgRef.value.getTotalLength();\r\n    return 1;\r\n});\r\nconst sm2 = useBreakpoints(\"sm2\");\r\nconst lg = useBreakpoints(\"lg\");\r\n\r\nconst clockCentralizingConstant = computed(() => {\r\n    if (lg.value) return 32;\r\n    if (sm2.value) return 30;\r\n    return 28;\r\n});\r\n\r\nconst w = computed(() => {\r\n    if (lg.value) return 52;\r\n    if (sm2.value) return 48;\r\n    return 46;\r\n});\r\n\r\nconst h = computed(() => {\r\n    if (lg.value) return 30;\r\n    return 26;\r\n});\r\n\r\nconst drawnPath = computed(() => {\r\n    if (lg.value)\r\n        return \"M1 15C1 7.26801 7.26801 1 15 1H26H37C44.732 1 51 7.26801 51 15V15C51 22.732 44.732 29 37 29H15C7.26801 29 1 22.732 1 15V15Z\";\r\n    if (sm2.value)\r\n        return \"M1 13C1 6.37258 6.37258 1 13 1H24H35C41.6274 1 47 6.37258 47 13V13C47 19.6274 41.6274 25 35 25H13C6.37258 25 1 19.6274 1 13V13Z\";\r\n    return \"M1 13C1 6.37258 6.37258 1 13 1H22H31C37.6274 1 43 6.37258 43 13V13C43 19.6274 37.6274 25 31 25H13C6.37258 25 1 19.6274 1 13V13Z\";\r\n});\r\n\r\nconst initialSeconds = props.remainingSeconds;\r\n\r\nconst calculateTimeFraction = () => {\r\n    const interval = lotteryDrawInterval();\r\n    if (props.remainingSeconds > interval) {\r\n        return props.remainingSeconds / initialSeconds;\r\n    }\r\n    return props.remainingSeconds / interval;\r\n};\r\n\r\nconst borderSvgOffset = computed(() => {\r\n    return borderSvgLength.value - calculateTimeFraction() * borderSvgLength.value;\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n    (_openBlock(), _createElementBlock(\"svg\", {\n      class: \"cp-countdown-clock__clock\",\n      xmlns: \"http://www.w3.org/2000/svg\",\n      width: w.value,\n      height: h.value,\n      viewBox: `0 0 ${w.value} ${h.value}`,\n      fill: \"none\"\n    }, [\n      _createElementVNode(\"path\", {\n        d: drawnPath.value,\n        stroke: \"white\",\n        opacity: \"0.2\",\n        \"stroke-width\": \"1\",\n        ref_key: \"borderSvgRef\",\n        ref: borderSvgRef\n      }, null, 8, _hoisted_3),\n      _createElementVNode(\"path\", {\n        d: drawnPath.value,\n        stroke: \"white\",\n        \"stroke-width\": \"2\",\n        \"stroke-dashoffset\": borderSvgOffset.value * -1 - clockCentralizingConstant.value,\n        \"stroke-dasharray\": `${borderSvgLength.value - borderSvgOffset.value} ${borderSvgOffset.value}`,\n        class: \"cp-countdown-clock__path cp-countdown-clock__path--remaining\"\n      }, null, 8, _hoisted_4)\n    ], 8, _hoisted_2))\n  ]))\n}\n}\n\n})","<template>\r\n    <div class=\"cp-countdown-clock\">\r\n        <svg\r\n            class=\"cp-countdown-clock__clock\"\r\n            xmlns=\"http://www.w3.org/2000/svg\"\r\n            :width=\"w\"\r\n            :height=\"h\"\r\n            :viewBox=\"`0 0 ${w} ${h}`\"\r\n            fill=\"none\"\r\n        >\r\n            <path :d=\"drawnPath\" stroke=\"white\" opacity=\"0.2\" stroke-width=\"1\" ref=\"borderSvgRef\" />\r\n            <path\r\n                :d=\"drawnPath\"\r\n                stroke=\"white\"\r\n                stroke-width=\"2\"\r\n                :stroke-dashoffset=\"borderSvgOffset * -1 - clockCentralizingConstant\"\r\n                :stroke-dasharray=\"`${borderSvgLength - borderSvgOffset} ${borderSvgOffset}`\"\r\n                class=\"cp-countdown-clock__path cp-countdown-clock__path--remaining\"\r\n            />\r\n        </svg>\r\n    </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport {\r\n    FilterKeysExceptQuickLotteries,\r\n    useLotteryDrawInterval,\r\n} from \"@/lotteries/quick-lotteries/composables/use-lottery-draw-interval\";\r\nimport { useBreakpoints } from \"@sazka/utils/composables/use-breakpoints\";\r\nimport { computed, ref } from \"vue\";\r\n\r\nconst props = defineProps<{\r\n    lottery: Exclude<Lottery, FilterKeysExceptQuickLotteries>;\r\n    remainingSeconds: number;\r\n}>();\r\n\r\nconst { lotteryDrawInterval } = useLotteryDrawInterval(props.lottery);\r\n\r\nconst borderSvgRef = ref<SVGPathElement | null>(null);\r\nconst borderSvgLength = computed(() => {\r\n    if (borderSvgRef.value) return borderSvgRef.value.getTotalLength();\r\n    return 1;\r\n});\r\nconst sm2 = useBreakpoints(\"sm2\");\r\nconst lg = useBreakpoints(\"lg\");\r\n\r\nconst clockCentralizingConstant = computed(() => {\r\n    if (lg.value) return 32;\r\n    if (sm2.value) return 30;\r\n    return 28;\r\n});\r\n\r\nconst w = computed(() => {\r\n    if (lg.value) return 52;\r\n    if (sm2.value) return 48;\r\n    return 46;\r\n});\r\n\r\nconst h = computed(() => {\r\n    if (lg.value) return 30;\r\n    return 26;\r\n});\r\n\r\nconst drawnPath = computed(() => {\r\n    if (lg.value)\r\n        return \"M1 15C1 7.26801 7.26801 1 15 1H26H37C44.732 1 51 7.26801 51 15V15C51 22.732 44.732 29 37 29H15C7.26801 29 1 22.732 1 15V15Z\";\r\n    if (sm2.value)\r\n        return \"M1 13C1 6.37258 6.37258 1 13 1H24H35C41.6274 1 47 6.37258 47 13V13C47 19.6274 41.6274 25 35 25H13C6.37258 25 1 19.6274 1 13V13Z\";\r\n    return \"M1 13C1 6.37258 6.37258 1 13 1H22H31C37.6274 1 43 6.37258 43 13V13C43 19.6274 37.6274 25 31 25H13C6.37258 25 1 19.6274 1 13V13Z\";\r\n});\r\n\r\nconst initialSeconds = props.remainingSeconds;\r\n\r\nconst calculateTimeFraction = () => {\r\n    const interval = lotteryDrawInterval();\r\n    if (props.remainingSeconds > interval) {\r\n        return props.remainingSeconds / initialSeconds;\r\n    }\r\n    return props.remainingSeconds / interval;\r\n};\r\n\r\nconst borderSvgOffset = computed(() => {\r\n    return borderSvgLength.value - calculateTimeFraction() * borderSvgLength.value;\r\n});\r\n</script>\r\n","import script from \"./cp-countdown-clock.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./cp-countdown-clock.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, createVNode as _createVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"href\"]\nconst _hoisted_2 = { class: \"cp-quick-lottery-card__background-img-wrapper\" }\nconst _hoisted_3 = { class: \"cp-quick-lottery-card__first-half\" }\nconst _hoisted_4 = { class: \"cp-quick-lottery-card__description-wrapper\" }\nconst _hoisted_5 = { class: \"cp-quick-lottery-card__title\" }\nconst _hoisted_6 = [\"innerHTML\"]\nconst _hoisted_7 = { class: \"cp-quick-lottery-card__second-half\" }\nconst _hoisted_8 = { class: \"cp-quick-lottery-card__countdown\" }\nconst _hoisted_9 = { class: \"cp-quick-lottery-card__countdown-time\" }\n\nimport { computed } from \"vue\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { DateTimeUtils } from \"@sazka/utils/date-time-utils\";\r\nimport DsIcon from \"@sazka/design-system/src/icon/ds-icon.vue\";\r\nimport CpCountdownClock from \"./cp-countdown-clock.vue\";\r\nimport WebpImage from \"@sazka/design-system/src/image/webp-image.vue\";\r\nimport { StringUtils } from \"@sazka/utils/string-utils\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: 'cp-quick-lottery-card',\n  props: {\n    lottery: {},\n    cd: {},\n    jackpot: {}\n  },\n  setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst jackpotText = computed(() => {\r\n    return StringUtils.formatCurrency(props.jackpot, true);\r\n});\r\n\r\nconst lotteryUrl = LotteryUtils.betOnlineUrl(props.lottery);\r\n\r\nconst time = computed(() => {\r\n    return DateTimeUtils.formatDuration(props.cd * 1000);\r\n});\r\n\r\nconst lotteryImg = computed(() => {\r\n    return `/frontend/web/img/lotteries/lottery-settings/${props.lottery}/quick-lotteries-${props.lottery}.png`;\r\n});\r\n\r\nconst lotteryIcon = computed(() => {\r\n    return `/frontend/web/img/lotteries/lottery-settings/${props.lottery}/${props.lottery}-ico.png`;\r\n});\r\n\r\nconst lotteryDisplayName = computed(() => {\r\n    return LotteryUtils.lotteryDisplayName(props.lottery);\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", {\n    class: _normalizeClass([\"cp-quick-lottery-card\", `cp-quick-lottery-card--${_ctx.lottery}`])\n  }, [\n    _createElementVNode(\"a\", {\n      href: _unref(lotteryUrl),\n      class: \"cp-quick-lottery-card__link\"\n    }, null, 8, _hoisted_1),\n    _createElementVNode(\"div\", _hoisted_2, [\n      _createVNode(WebpImage, {\n        \"css-class\": \"cp-quick-lottery-card__background-img\",\n        src: lotteryImg.value,\n        get2x: true,\n        alt: \"\"\n      }, null, 8, [\"src\"])\n    ]),\n    _createElementVNode(\"div\", _hoisted_3, [\n      _createVNode(WebpImage, {\n        \"css-class\": \"cp-quick-lottery-card__thumbnail\",\n        src: lotteryIcon.value,\n        get2x: true,\n        alt: \"\"\n      }, null, 8, [\"src\"]),\n      _createElementVNode(\"div\", _hoisted_4, [\n        _createElementVNode(\"h4\", _hoisted_5, _toDisplayString(lotteryDisplayName.value), 1),\n        _createElementVNode(\"p\", {\n          class: \"cp-quick-lottery-card__price-description\",\n          innerHTML: 'Hrajeme o ' + jackpotText.value\n        }, null, 8, _hoisted_6)\n      ])\n    ]),\n    _createElementVNode(\"div\", _hoisted_7, [\n      _createElementVNode(\"div\", _hoisted_8, [\n        _createVNode(CpCountdownClock, {\n          lottery: _ctx.lottery,\n          \"remaining-seconds\": _ctx.cd\n        }, null, 8, [\"lottery\", \"remaining-seconds\"]),\n        _createElementVNode(\"span\", _hoisted_9, _toDisplayString(time.value), 1)\n      ]),\n      _createVNode(DsIcon, {\n        name: \"chevron-right-thin\",\n        class: \"cp-quick-lottery-card__arrow\",\n        width: 16,\n        height: 16\n      })\n    ])\n  ], 2))\n}\n}\n\n})","<template>\r\n    <div class=\"cp-quick-lottery-card\" :class=\"`cp-quick-lottery-card--${lottery}`\">\r\n        <a :href=\"lotteryUrl\" class=\"cp-quick-lottery-card__link\"></a>\r\n        <div class=\"cp-quick-lottery-card__background-img-wrapper\">\r\n            <WebpImage css-class=\"cp-quick-lottery-card__background-img\" :src=\"lotteryImg\" :get2x=\"true\" alt=\"\" />\r\n        </div>\r\n        <div class=\"cp-quick-lottery-card__first-half\">\r\n            <WebpImage css-class=\"cp-quick-lottery-card__thumbnail\" :src=\"lotteryIcon\" :get2x=\"true\" alt=\"\" />\r\n            <div class=\"cp-quick-lottery-card__description-wrapper\">\r\n                <h4 class=\"cp-quick-lottery-card__title\">{{ lotteryDisplayName }}</h4>\r\n                <p class=\"cp-quick-lottery-card__price-description\" v-html=\"'Hrajeme o ' + jackpotText\"></p>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"cp-quick-lottery-card__second-half\">\r\n            <div class=\"cp-quick-lottery-card__countdown\">\r\n                <CpCountdownClock :lottery=\"lottery\" :remaining-seconds=\"cd\" />\r\n                <span class=\"cp-quick-lottery-card__countdown-time\"> {{ time }} </span>\r\n            </div>\r\n            <DsIcon name=\"chevron-right-thin\" class=\"cp-quick-lottery-card__arrow\" :width=\"16\" :height=\"16\" />\r\n        </div>\r\n    </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { DateTimeUtils } from \"@sazka/utils/date-time-utils\";\r\nimport DsIcon from \"@sazka/design-system/src/icon/ds-icon.vue\";\r\nimport CpCountdownClock from \"./cp-countdown-clock.vue\";\r\nimport WebpImage from \"@sazka/design-system/src/image/webp-image.vue\";\r\nimport { StringUtils } from \"@sazka/utils/string-utils\";\r\n\r\nconst props = defineProps<{\r\n    lottery: Lottery;\r\n    /**\r\n     * Countdown value\r\n     */\r\n    cd: number;\r\n    jackpot: number;\r\n}>();\r\n\r\nconst jackpotText = computed(() => {\r\n    return StringUtils.formatCurrency(props.jackpot, true);\r\n});\r\n\r\nconst lotteryUrl = LotteryUtils.betOnlineUrl(props.lottery);\r\n\r\nconst time = computed(() => {\r\n    return DateTimeUtils.formatDuration(props.cd * 1000);\r\n});\r\n\r\nconst lotteryImg = computed(() => {\r\n    return `/frontend/web/img/lotteries/lottery-settings/${props.lottery}/quick-lotteries-${props.lottery}.png`;\r\n});\r\n\r\nconst lotteryIcon = computed(() => {\r\n    return `/frontend/web/img/lotteries/lottery-settings/${props.lottery}/${props.lottery}-ico.png`;\r\n});\r\n\r\nconst lotteryDisplayName = computed(() => {\r\n    return LotteryUtils.lotteryDisplayName(props.lottery);\r\n});\r\n</script>\r\n","import script from \"./cp-quick-lottery-card.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./cp-quick-lottery-card.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { httpClient } from \"@sazka/utils/http-clients/http-client\";\r\n\r\nexport interface Jackpot {\r\n    value: number;\r\n    annuity: number;\r\n    annuityLength: number;\r\n}\r\n\r\nexport interface Jackpots {\r\n    [key: string]: Jackpot;\r\n}\r\n\r\nexport const getJackpots = async (lotteries: Lottery[]) => {\r\n    const serializedLots = lotteries.join(\"&lots=\");\r\n    const jackpots = (await httpClient.get<Jackpots>(\"api/draw-info/jackpots?lots=\" + serializedLots)).data;\r\n\r\n    return jackpots;\r\n};\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, TransitionGroup as _TransitionGroup, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nimport { onMounted, onUnmounted, ref, watch } from \"vue\";\r\nimport CpQuickLotteryCard from \"./components/cp-quick-lottery-card.vue\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { CountdownRef, useLotteryCountdownManager } from \"../composables/use-lottery-countdown-manager\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { getJackpots } from \"./api/jackpots-api\";\r\nimport { LotteriesCategoryPageAnalytics } from \"@/lotteries/category-page/utils/lotteries-analytics-category-page\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n  __name: '_quick-lotteries-countdown',\n  setup(__props) {\n\r\nconst lotteries = [\r\n    Lottery.keno,\r\n    Lottery.rychla6,\r\n    Lottery.rychleKacky,\r\n    Lottery.kameny,\r\n    Lottery.vsechnoNeboNic,\r\n    Lottery.powerSpin,\r\n];\r\n\r\nconst scrollRef = ref(null);\r\nconst cardWrapper = ref<HTMLElement>(null);\r\n\r\nconst { countdowns, unsubscribe, initialLoadPromise } = useLotteryCountdownManager(lotteries);\r\n\r\nconst sortCountdowns = (countdowns: CountdownRef[]) => {\r\n    const fiveMinuteLotteries = countdowns.filter((cd) => LotteryUtils.isFiveMinuteLottery(cd.lottery));\r\n    const minuteLotteries = countdowns.filter((cd) => LotteryUtils.isMinuteLottery(cd.lottery));\r\n    fiveMinuteLotteries.sort((a, b) => a.secondsRemaining - b.secondsRemaining);\r\n\r\n    // 5m 1m 5m 1m 5m (+ powerSpin tbd)\r\n    const sortedCountdowns: CountdownRef[] = [];\r\n    for (let i = 0; i < fiveMinuteLotteries.length; i++) {\r\n        sortedCountdowns.push(fiveMinuteLotteries[i]);\r\n        if (minuteLotteries[i]) {\r\n            sortedCountdowns.push(minuteLotteries[i]);\r\n        }\r\n    }\r\n\r\n    return sortedCountdowns;\r\n};\r\n\r\nconst renderedCountdowns = ref<CountdownRef[]>([]);\r\n\r\nconst handleCountdownsChange = () => {\r\n    const sliced = renderedCountdowns.value.splice(0, 1);\r\n    setTimeout(() => {\r\n        sliced.push(...renderedCountdowns.value.splice(0, 1));\r\n    }, 50);\r\n    setTimeout(() => {\r\n        if (LotteryUtils.isFiveMinuteLottery(renderedCountdowns.value[renderedCountdowns.value.length - 1].lottery)) {\r\n            sliced.reverse();\r\n        }\r\n\r\n        renderedCountdowns.value.push(...sliced);\r\n    }, 2000);\r\n};\r\n\r\nconst handleCardClick = (lottery: Lottery) => {\r\n    LotteriesCategoryPageAnalytics.pushSelectGameFromLobby(lottery, \"fastLotteries\", \"gameDetail\");\r\n};\r\n\r\nlet ignoreZeroCooldown = false;\r\nwatch(\r\n    () =>\r\n        countdowns.value.filter((cd) => LotteryUtils.isFiveMinuteLottery(cd.lottery)).map((cd) => cd.secondsRemaining),\r\n    (newVal) => {\r\n        if (ignoreZeroCooldown) {\r\n            return;\r\n        }\r\n\r\n        if (newVal.some((secs) => secs === 0)) {\r\n            ignoreZeroCooldown = true;\r\n            setTimeout(() => {\r\n                ignoreZeroCooldown = false;\r\n            }, 5000);\r\n\r\n            setTimeout(() => {\r\n                handleCountdownsChange();\r\n            }, 1000);\r\n        }\r\n    }\r\n);\r\n\r\nconst jackpots = ref<Partial<Record<Lottery, number>>>({\r\n    [Lottery.keno]: 0,\r\n    [Lottery.rychla6]: 0,\r\n    [Lottery.rychleKacky]: 0,\r\n    [Lottery.kameny]: 0,\r\n    [Lottery.vsechnoNeboNic]: 0,\r\n    [Lottery.powerSpin]: 0,\r\n});\r\n\r\nonMounted(async () => {\r\n    ignoreZeroCooldown = true;\r\n\r\n    await initialLoadPromise;\r\n    renderedCountdowns.value = sortCountdowns(countdowns.value);\r\n\r\n    ignoreZeroCooldown = false;\r\n\r\n    const jackpotsData = await getJackpots(lotteries);\r\n\r\n    for (const lottery in jackpotsData) {\r\n        const j = jackpotsData[lottery as Lottery];\r\n        jackpots.value[LotteryUtils.parseLotteryName(lottery)] = j.value;\r\n    }\r\n});\r\n\r\nonUnmounted(() => {\r\n    unsubscribe();\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n  return (_openBlock(), _createElementBlock(\"div\", {\n    ref_key: \"scrollRef\",\n    ref: scrollRef,\n    class: \"cp-quick-lotteries__scroll-container\"\n  }, [\n    _createElementVNode(\"div\", {\n      class: \"cp-quick-lotteries__cards-wrapper\",\n      ref_key: \"cardWrapper\",\n      ref: cardWrapper\n    }, [\n      _createVNode(_TransitionGroup, {\n        name: \"list\",\n        appear: \"\"\n      }, {\n        default: _withCtx(() => [\n          (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(renderedCountdowns.value, (cd) => {\n            return (_openBlock(), _createBlock(CpQuickLotteryCard, {\n              key: cd.lottery,\n              lottery: cd.lottery,\n              cd: cd.secondsRemaining,\n              jackpot: jackpots.value[cd.lottery],\n              onClick: ($event: any) => (handleCardClick(cd.lottery))\n            }, null, 8, [\"lottery\", \"cd\", \"jackpot\", \"onClick\"]))\n          }), 128))\n        ]),\n        _: 1\n      })\n    ], 512)\n  ], 512))\n}\n}\n\n})","<template>\r\n    <div ref=\"scrollRef\" class=\"cp-quick-lotteries__scroll-container\">\r\n        <div class=\"cp-quick-lotteries__cards-wrapper\" ref=\"cardWrapper\">\r\n            <TransitionGroup name=\"list\" appear>\r\n                <CpQuickLotteryCard\r\n                    v-for=\"cd in renderedCountdowns\"\r\n                    :key=\"cd.lottery\"\r\n                    :lottery=\"cd.lottery\"\r\n                    :cd=\"cd.secondsRemaining\"\r\n                    :jackpot=\"jackpots[cd.lottery]\"\r\n                    @click=\"handleCardClick(cd.lottery)\"\r\n                />\r\n            </TransitionGroup>\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, onUnmounted, ref, watch } from \"vue\";\r\nimport CpQuickLotteryCard from \"./components/cp-quick-lottery-card.vue\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { CountdownRef, useLotteryCountdownManager } from \"../composables/use-lottery-countdown-manager\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { getJackpots } from \"./api/jackpots-api\";\r\nimport { LotteriesCategoryPageAnalytics } from \"@/lotteries/category-page/utils/lotteries-analytics-category-page\";\r\n\r\nconst lotteries = [\r\n    Lottery.keno,\r\n    Lottery.rychla6,\r\n    Lottery.rychleKacky,\r\n    Lottery.kameny,\r\n    Lottery.vsechnoNeboNic,\r\n    Lottery.powerSpin,\r\n];\r\n\r\nconst scrollRef = ref(null);\r\nconst cardWrapper = ref<HTMLElement>(null);\r\n\r\nconst { countdowns, unsubscribe, initialLoadPromise } = useLotteryCountdownManager(lotteries);\r\n\r\nconst sortCountdowns = (countdowns: CountdownRef[]) => {\r\n    const fiveMinuteLotteries = countdowns.filter((cd) => LotteryUtils.isFiveMinuteLottery(cd.lottery));\r\n    const minuteLotteries = countdowns.filter((cd) => LotteryUtils.isMinuteLottery(cd.lottery));\r\n    fiveMinuteLotteries.sort((a, b) => a.secondsRemaining - b.secondsRemaining);\r\n\r\n    // 5m 1m 5m 1m 5m (+ powerSpin tbd)\r\n    const sortedCountdowns: CountdownRef[] = [];\r\n    for (let i = 0; i < fiveMinuteLotteries.length; i++) {\r\n        sortedCountdowns.push(fiveMinuteLotteries[i]);\r\n        if (minuteLotteries[i]) {\r\n            sortedCountdowns.push(minuteLotteries[i]);\r\n        }\r\n    }\r\n\r\n    return sortedCountdowns;\r\n};\r\n\r\nconst renderedCountdowns = ref<CountdownRef[]>([]);\r\n\r\nconst handleCountdownsChange = () => {\r\n    const sliced = renderedCountdowns.value.splice(0, 1);\r\n    setTimeout(() => {\r\n        sliced.push(...renderedCountdowns.value.splice(0, 1));\r\n    }, 50);\r\n    setTimeout(() => {\r\n        if (LotteryUtils.isFiveMinuteLottery(renderedCountdowns.value[renderedCountdowns.value.length - 1].lottery)) {\r\n            sliced.reverse();\r\n        }\r\n\r\n        renderedCountdowns.value.push(...sliced);\r\n    }, 2000);\r\n};\r\n\r\nconst handleCardClick = (lottery: Lottery) => {\r\n    LotteriesCategoryPageAnalytics.pushSelectGameFromLobby(lottery, \"fastLotteries\", \"gameDetail\");\r\n};\r\n\r\nlet ignoreZeroCooldown = false;\r\nwatch(\r\n    () =>\r\n        countdowns.value.filter((cd) => LotteryUtils.isFiveMinuteLottery(cd.lottery)).map((cd) => cd.secondsRemaining),\r\n    (newVal) => {\r\n        if (ignoreZeroCooldown) {\r\n            return;\r\n        }\r\n\r\n        if (newVal.some((secs) => secs === 0)) {\r\n            ignoreZeroCooldown = true;\r\n            setTimeout(() => {\r\n                ignoreZeroCooldown = false;\r\n            }, 5000);\r\n\r\n            setTimeout(() => {\r\n                handleCountdownsChange();\r\n            }, 1000);\r\n        }\r\n    }\r\n);\r\n\r\nconst jackpots = ref<Partial<Record<Lottery, number>>>({\r\n    [Lottery.keno]: 0,\r\n    [Lottery.rychla6]: 0,\r\n    [Lottery.rychleKacky]: 0,\r\n    [Lottery.kameny]: 0,\r\n    [Lottery.vsechnoNeboNic]: 0,\r\n    [Lottery.powerSpin]: 0,\r\n});\r\n\r\nonMounted(async () => {\r\n    ignoreZeroCooldown = true;\r\n\r\n    await initialLoadPromise;\r\n    renderedCountdowns.value = sortCountdowns(countdowns.value);\r\n\r\n    ignoreZeroCooldown = false;\r\n\r\n    const jackpotsData = await getJackpots(lotteries);\r\n\r\n    for (const lottery in jackpotsData) {\r\n        const j = jackpotsData[lottery as Lottery];\r\n        jackpots.value[LotteryUtils.parseLotteryName(lottery)] = j.value;\r\n    }\r\n});\r\n\r\nonUnmounted(() => {\r\n    unsubscribe();\r\n});\r\n</script>\r\n<style>\r\n.list-move,\r\n.list-enter-active,\r\n.list-leave-active {\r\n    transition: all 0.5s;\r\n}\r\n\r\n.list-enter-from {\r\n    opacity: 0;\r\n    transform: translateY(100px);\r\n}\r\n\r\n.list-leave-to {\r\n    opacity: 0;\r\n    transform: translateY(-100px);\r\n}\r\n\r\n.list-leave-active {\r\n    position: absolute;\r\n    width: calc(100% - var(--cp-widget-padding-sides) * 2);\r\n}\r\n</style>\r\n","import script from \"./_quick-lotteries-countdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./_quick-lotteries-countdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./_quick-lotteries-countdown.vue?vue&type=style&index=0&id=45cd5637&lang=css\"\n\nconst __exports__ = script;\n\nexport default __exports__","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n  has(it);\n  return it;\n};\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n  return {\n    iterator: obj,\n    next: obj.next,\n    done: false\n  };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n  this.set = set;\n  this.size = max(intSize, 0);\n  this.has = aCallable(set.has);\n  this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n  getIterator: function () {\n    return getIteratorDirect(anObject(call(this.keys, this.set)));\n  },\n  includes: function (it) {\n    return call(this.has, this.set, it);\n  }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n  anObject(obj);\n  var numSize = +obj.size;\n  // NOTE: If size is undefined, then numSize will be NaN\n  // eslint-disable-next-line no-self-compare -- NaN check\n  if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n  var intSize = toIntegerOrInfinity(numSize);\n  if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n  return new SetRecord(obj, intSize);\n};\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n  var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n  var next = record.next;\n  var step, result;\n  while (!(step = call(next, iterator)).done) {\n    result = fn(step.value);\n    if (result !== undefined) return result;\n  }\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n  var innerResult, innerError;\n  anObject(iterator);\n  try {\n    innerResult = getMethod(iterator, 'return');\n    if (!innerResult) {\n      if (kind === 'throw') throw value;\n      return value;\n    }\n    innerResult = call(innerResult, iterator);\n  } catch (error) {\n    innerError = true;\n    innerResult = error;\n  }\n  if (kind === 'throw') throw value;\n  if (innerError) throw innerResult;\n  anObject(innerResult);\n  return value;\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n  var result = new Set();\n  iterate(set, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = clone(O);\n  if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n    if (otherRec.includes(e)) remove(result, e);\n  });\n  else iterateSimple(otherRec.getIterator(), function (e) {\n    if (has(O, e)) remove(result, e);\n  });\n  return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n  // eslint-disable-next-line es/no-set -- safe\n  Set: Set,\n  add: uncurryThis(SetPrototype.add),\n  has: uncurryThis(SetPrototype.has),\n  remove: uncurryThis(SetPrototype['delete']),\n  proto: SetPrototype\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  var result = new Set();\n\n  if (size(O) > otherRec.size) {\n    iterateSimple(otherRec.getIterator(), function (e) {\n      if (has(O, e)) add(result, e);\n    });\n  } else {\n    iterateSet(O, function (e) {\n      if (otherRec.includes(e)) add(result, e);\n    });\n  }\n\n  return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n    if (otherRec.includes(e)) return false;\n  }, true) !== false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n  }) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) > otherRec.size) return false;\n  return iterate(O, function (e) {\n    if (!otherRec.includes(e)) return false;\n  }, true) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n  var O = aSet(this);\n  var otherRec = getSetRecord(other);\n  if (size(O) < otherRec.size) return false;\n  var iterator = otherRec.getIterator();\n  return iterateSimple(iterator, function (e) {\n    if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n  }) !== false;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n  return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n  return {\n    size: size,\n    has: function () {\n      return false;\n    },\n    keys: function () {\n      return {\n        next: function () {\n          return { done: true };\n        }\n      };\n    }\n  };\n};\n\nmodule.exports = function (name) {\n  var Set = getBuiltIn('Set');\n  try {\n    new Set()[name](createSetLike(0));\n    try {\n      // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n      // https://github.com/tc39/proposal-set-methods/pull/88\n      new Set()[name](createSetLike(-1));\n      return false;\n    } catch (error2) {\n      return true;\n    }\n  } catch (error) {\n    return false;\n  }\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n  return set.size;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (e) {\n    if (has(O, e)) remove(result, e);\n    else add(result, e);\n  });\n  return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n  var O = aSet(this);\n  var keysIter = getSetRecord(other).getIterator();\n  var result = clone(O);\n  iterateSimple(keysIter, function (it) {\n    add(result, it);\n  });\n  return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {\n  difference: difference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () {\n  // eslint-disable-next-line es/no-array-from, es/no-set -- testing\n  return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n  intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n  isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n  isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n  isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n  symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n  union: union\n});\n"],"names":["LotteriesCategoryPageAnalytics","pushPurchase","bet","bettingMode","_bet$drawNames","_bet$price","_bet$lottery","_bet$id","_bet$boards","_bet$duration","_ref","_bet$addonNumbers","_bet$duration2","days","times","Analytics","getDrawDaysAndTimes","drawNames","DrawNames","price","Price","lottery","Lottery","window","dataLayer","push","page","type","kind","verticalCodeStrict","verticalCode","gameCodeStrict","gameCode","getLotteryCode","order","id","Id","totalValue","revenue","discount","tax","cart","products","fullPrice","pocketPrice","position","boards","Boards","length","draws","duration","Duration","addonGame","getAddonName","addonNumbers","AddonNumbers","ticketKind","drawDays","drawTimes","event","pushLoterieLobbyPage","pushSelectGameFromLobby","eventProperty1","eventProperty2","action","select","LotteryUtils","analyticsCodeName","pushSyndicatesClick","click","label","eventProperty7","pushBetMarketplaceClick","pushMultibetsImpress","activeMultiwager","impress","title","pushMoneyBetMultibets","multibetID","multibetsName","wagers","totalPrice","forEach","wager","value","bettingSystem","gameCodes","map","join","pushLobbyDetailClick","detailClick","pushClickQuicktipsEvent","pushMoneyBeyLobbyDetail","pushEnterSyndicatesEvent","game","show","pushShowProductLobbyDetail","buttonText","button","currentUrl","URL","location","href","searchParams","set","pushCheckBetEvent","pushVideoPlayClick","playVideo","pushQuicktipsImpress","pushLobbyBannerImpression","name","creative","promos","pushLobbyBannerClick","async","getDrawTimeBulk","lotteries","url","params","gameNames","v","Date","getTime","response","httpClient","get","headers","data","x","i","remainingSeconds","err","console","error","getDrawTime","countdownRefs","ref","subscribedLotteries","subscribedLotteriesSet","computed","Set","tickingIntervalHandle","getCountdownRef","cdRef","find","secondsRemaining","getCountdownRefs","filter","includes","setCountdownRef","seconds","requestLotteryDrawTimes","parseLotteryName","tick","size","stopTicking","lotteriesToRequest","startTicking","setInterval","clearInterval","initialLoadPromise","handleWindowBlur","onBlurTime","addEventListener","now","useLotteryCountdownManager","subscribed","subscribingLotteries","addLottery","has","newLotteries","countdowns","unsubscribe","index","indexOf","splice","exhaustiveCheck","_","Error","useLotteryDrawInterval","lotteryDrawInterval","keno","kameny","rychla6","vsechnoNeboNic","rychleKacky","powerSpin","initialized","reactiveBreakpoints","useBreakpoints","breakpoints","initialize","reduce","acc","reactiveBreakpoint","Object","keys","ResponsiveUtils","isInUse","key","minSize","breakpoint","brkpnt","media","matchMedia","matches","onchange","e","StringUtils","stringReverse","str","split","reverse","getPlainTextFromHtml","htmlText","tempDiv","document","createElement","innerHTML","textContent","innerText","sanitizeString","input","replace","trim","formatNumber","useNbsp","toFixed","preComma","postComma","match","formatCurrency","isNaN","limitTextLength","text","limit","substring","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_defineComponent","__name","props","setup","__props","borderSvgRef","borderSvgLength","getTotalLength","sm2","lg","clockCentralizingConstant","w","h","drawnPath","initialSeconds","calculateTimeFraction","interval","borderSvgOffset","_ctx","_cache","_openBlock","_createElementBlock","xmlns","width","height","viewBox","fill","_createElementVNode","d","stroke","opacity","ref_key","__exports__","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","cd","jackpot","jackpotText","lotteryUrl","betOnlineUrl","time","DateTimeUtils","formatDuration","lotteryImg","lotteryIcon","lotteryDisplayName","_normalizeClass","_unref","_createVNode","WebpImage","src","get2x","alt","_toDisplayString","CpCountdownClock","DsIcon","getJackpots","serializedLots","jackpots","scrollRef","cardWrapper","sortCountdowns","fiveMinuteLotteries","isFiveMinuteLottery","minuteLotteries","isMinuteLottery","sort","a","b","sortedCountdowns","renderedCountdowns","handleCountdownsChange","sliced","setTimeout","handleCardClick","ignoreZeroCooldown","watch","newVal","some","secs","onMounted","jackpotsData","j","onUnmounted","_TransitionGroup","appear","default","_withCtx","_Fragment","_renderList","_createBlock","CpQuickLotteryCard","onClick","$event","module","exports","it","obj","iterator","next","done","aCallable","anObject","call","toIntegerOrInfinity","getIteratorDirect","INVALID_SIZE","$RangeError","RangeError","$TypeError","TypeError","max","Math","SetRecord","intSize","this","prototype","getIterator","numSize","record","fn","ITERATOR_INSTEAD_OF_RECORD","step","result","undefined","getMethod","innerResult","innerError","SetHelpers","iterate","add","aSet","clone","getSetRecord","iterateSet","iterateSimple","remove","other","O","otherRec","uncurryThis","SetPrototype","proto","iteratorClose","interruptible","getBuiltIn","createSetLike","error2","uncurryThisAccessor","keysIter","$","difference","setMethodAcceptSetLike","target","real","forced","fails","intersection","INCORRECT","String","Array","from","isDisjointFrom","isSubsetOf","isSupersetOf","symmetricDifference","union"],"sourceRoot":""}