{"version":3,"file":"js/1612.15a7589a583609d2.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/lotteries/product-page/analytics/analytics-product-page.ts","webpack://@sazka/web/./js/app/lotteries/widgets/_ds-random-wagers.ts","webpack://@sazka/web/../../libs/design-system/src/loader/loader.ts","webpack://@sazka/web/../../libs/utils/carousel/use-flickity-dots.ts","webpack://@sazka/web/../../libs/utils/carousel/flickity-patched.ts","webpack://@sazka/web/../../libs/utils/debounce.ts","webpack://@sazka/web/../../libs/utils/viewport-enter.ts"],"sourcesContent":["import { Analytics } from \"@/shared/utils/analytics/analytics\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { AnalyticsPromo } from \"@/shared/utils/analytics/analytics-promo\";\r\n\r\n// V2.0\r\nexport namespace ProductPageAnalytics {\r\n    // DL1.10 - Game page\r\n    export function pushGamePageDisplayed(lotteryName: string) {\r\n        window.dataLayer.push({\r\n            page: {\r\n                type: \"game\",\r\n                kind: \"game\",\r\n                verticalCode: \"loterie\",\r\n                verticalCodeStrict: \"loterie\",\r\n                gameCode: lotteryName,\r\n                gameCodeStrict: lotteryName,\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.10A Game detail page\r\n    export function pushGameDetailPageDisplayed(lotteryName: string) {\r\n        window.dataLayer.push({\r\n            page: {\r\n                type: \"game.detail\",\r\n                kind: \"game.detail\",\r\n                verticalCode: \"loterie\",\r\n                verticalCodeStrict: \"loterie\",\r\n                gameCode: lotteryName,\r\n                gameCodeStrict: lotteryName,\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.10B Game checkbet page\r\n    export function pushGameCheckbetPageDisplayed(lotteryName: string) {\r\n        window.dataLayer.push({\r\n            page: {\r\n                type: \"game.checkBet\",\r\n                kind: \"game.checkBet\",\r\n                verticalCode: \"loterie\",\r\n                verticalCodeStrict: \"loterie\",\r\n                gameCode: lotteryName,\r\n                gameCodeStrict: lotteryName,\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.10B Game how to play page\r\n    export function pushGameHowToPlayPageDisplayed(lotteryName: string) {\r\n        window.dataLayer.push({\r\n            page: {\r\n                type: \"game.howToPlay\",\r\n                kind: \"game.howToPlay\",\r\n                verticalCode: \"loterie\",\r\n                verticalCodeStrict: \"loterie\",\r\n                gameCode: lotteryName,\r\n                gameCodeStrict: lotteryName,\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.11 Click navigation\r\n    export function pushClickNavigation(itemName: string) {\r\n        window.dataLayer.push({\r\n            event: \"action.click.navigation\",\r\n            action: {\r\n                click: {\r\n                    name: itemName,\r\n                    eventProperty2: \"sub\",\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.12 Click Quicktips event\r\n    export function pushClickQuicktips(\r\n        bettingMode: string,\r\n        lotteryAlias: string,\r\n        position: string,\r\n        wagerValue: number,\r\n        label: string\r\n    ) {\r\n        const lotteryName = LotteryUtils.analyticsCodeName(LotteryUtils.parseLotteryName(lotteryAlias));\r\n\r\n        window.dataLayer.push({\r\n            event: \"action.click.quicktips\",\r\n            action: {\r\n                click: {\r\n                    gameCode: lotteryName,\r\n                    eventProperty2: position,\r\n                    value: wagerValue,\r\n                    label: label,\r\n                },\r\n            },\r\n            page: {\r\n                bettingMode: bettingMode,\r\n                position: position,\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.2 Game page banner impression\r\n    export function pushGamePageBannerImpression(bannerTitleText: string, position: number) {\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: \"game.carousel\",\r\n                            name: \"game.carousel\",\r\n                            creative: bannerTitleText,\r\n                            position: \"bottom.\" + position,\r\n                        },\r\n                    ],\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.21 Game page banner click\r\n    export function pushGamePageBannerClick(bannerTitleText: string, position: number) {\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: \"game.carousel\",\r\n                            name: \"game.carousel\",\r\n                            creative: bannerTitleText,\r\n                            position: \"bottom.\" + position,\r\n                        },\r\n                    ],\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.22 Random tip click event\r\n    export function pushRandomTipClick(gameCode: string, position: number, price: number, title: string) {\r\n        window.dataLayer.push({\r\n            event: \"action.click.randomtips\",\r\n            action: {\r\n                click: {\r\n                    gameCode: gameCode,\r\n                    eventProperty2: position.toString(),\r\n                    value: price,\r\n                    label: title,\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.3 Money bet\r\n    export function pushMoneyBetStanding(data) {\r\n        window.dataLayer.push({\r\n            event: \"action.bet.money\",\r\n            action: {\r\n                bet: {\r\n                    transactionId: data.transactionId,\r\n                    gameCode: data.gameCode,\r\n                    value: data.value,\r\n                    bettingSystem: data.bettingSystem,\r\n                    repetitionEndDate: data.repetitionEndDate,\r\n                    columns: data.columns,\r\n                    columnsFillType: data.columnsFillType,\r\n                    columnsFillState: data.columnsFillState,\r\n                    addonGame: data.addonGame,\r\n                    bettingMode: data.bettingMode,\r\n                    position: data.position,\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    export function pushMoneyBetSingleOrMultiDraw(data) {\r\n        window.dataLayer.push({\r\n            event: \"action.bet.money\",\r\n            action: {\r\n                bet: {\r\n                    transactionId: data.transactionId,\r\n                    gameCode: data.gameCode,\r\n                    value: data.value,\r\n                    bettingSystem: data.bettingSystem,\r\n                    columns: data.columns,\r\n                    columnsFillType: data.columnsFillType,\r\n                    columnsFillState: data.columnsFillState,\r\n                    addonGame: data.addonGame,\r\n                    bettingMode: data.bettingMode,\r\n                    position: data.position,\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.3 & DL1.35 for random wagers widget implemented directly in code for this widget (_ds-random-wagers.ts)\r\n\r\n    // DL1.35 Purchase page\r\n    export function pushPurchase(data) {\r\n        const { days, times } = Analytics.getDrawDaysAndTimes(data.drawNames);\r\n\r\n        window.dataLayer.push({\r\n            event: \"page\",\r\n            page: {\r\n                type: \"purchase\",\r\n                kind: \"purchase\",\r\n                verticalCode: \"loterie\",\r\n                verticalCodeStrict: \"loterie\",\r\n                gameCode: data.gameCode,\r\n                gameCodeStrict: data.gameCode,\r\n                bettingSystem: data.bettingSystem,\r\n            },\r\n            order: {\r\n                id: data.orderId,\r\n                totalValue: data.value,\r\n                revenue: data.value,\r\n                discount: 0,\r\n                tax: 0,\r\n            },\r\n            cart: {\r\n                products: [\r\n                    {\r\n                        fullPrice: data.value,\r\n                        pocketPrice: data.value,\r\n                        price: data.value,\r\n                        tax: 0,\r\n                        position: 1,\r\n                        verticalCode: \"loterie\",\r\n                        gameCode: data.gameCode,\r\n                        boards: data.boards,\r\n                        draws: data.draws,\r\n                        addonGame: data.addonGame,\r\n                        ticketKind: data.bettingSystem,\r\n                        drawDays: days,\r\n                        drawTimes: times,\r\n                        bettingMode: data.bettingMode,\r\n                    },\r\n                ],\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.40\r\n    export const pushTicketCheckResult = (result: \"win\" | \"loss\", lottery: string) => {\r\n        window.dataLayer.push({\r\n            event: \"action.checkBet.bet\",\r\n            action: {\r\n                checkBet: {\r\n                    bet: result,\r\n                    gameCode: lottery,\r\n                    verticalCode: \"loterie\",\r\n                },\r\n            },\r\n        });\r\n    };\r\n\r\n    // DL1.41a\r\n    // DL1.42a\r\n    export const pushTicketCheckBannerImpress = (promo: AnalyticsPromo | null) => {\r\n        window.dataLayer.push({\r\n            event: \"action.impress.promos\",\r\n            action: {\r\n                impress: {\r\n                    promos: [promo],\r\n                },\r\n            },\r\n        });\r\n    };\r\n\r\n    // DL1.41b\r\n    // DL1.42b\r\n    export const pushTicketCheckBannerClick = (promo: AnalyticsPromo | null) => {\r\n        window.dataLayer.push({\r\n            event: \"action.show.promos\",\r\n            action: {\r\n                show: {\r\n                    promos: [promo],\r\n                },\r\n            },\r\n        });\r\n    };\r\n\r\n    // DL1.43\r\n    export const pushTicketCheckButtonClick = (name: string) => {\r\n        window.dataLayer.push({\r\n            event: \"action.click.navigation\",\r\n            action: {\r\n                click: {\r\n                    name: name,\r\n                    eventProperty2: \"page\",\r\n                },\r\n            },\r\n        });\r\n    };\r\n\r\n    // DL1.5 How to play page banner impression (Online sazenka)\r\n    export function pushHowToPlayPageBannerImpressionOnlineBet(bannerTitle: string, position: number) {\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: \"game.howToPlayOnline.mainCarousel\",\r\n                            name: \"game.howToPlayOnline.mainCarousel\",\r\n                            creative: bannerTitle,\r\n                            position: \"top.\" + position,\r\n                        },\r\n                    ],\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.6 How to play page banner impression (Klasicka sazenka)\r\n    export function pushHowToPlayPageBannerImpressionStandardBet(bannerTitle: string, position: number) {\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: \"game.howToPlayStandard.mainCarousel\",\r\n                            name: \"game.howToPlayStandard.mainCarousel\",\r\n                            creative: bannerTitle,\r\n                            position: \"top.\" + position,\r\n                        },\r\n                    ],\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.7 How to play banner impression\r\n    export function pushHowToPlayBannerImpression(bannerTitle: string, position: number) {\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: \"game.howToPlay.subCarousel\",\r\n                            name: \"game.howToPlay.subCarousel\",\r\n                            creative: bannerTitle,\r\n                            position: \"middle.\" + position,\r\n                        },\r\n                    ],\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.7b How to play banner click\r\n    export function pushHowToPlayBannerClick(bannerTitle: string, position: number) {\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: \"game.howToPlay.subCarousel\",\r\n                            name: \"game.howToPlay.subCarousel\",\r\n                            creative: bannerTitle,\r\n                            position: \"middle.\" + position,\r\n                        },\r\n                    ],\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    // DL1.8 Millionaires map\r\n    export function pushMillionairesMapClick() {\r\n        window.dataLayer.push({\r\n            event: \"action.clickmillionaresMap.loterie\",\r\n        });\r\n    }\r\n}\r\n","import { Analytics } from \"@/shared/utils/analytics/analytics\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\n\r\nimport { AnalyticsHelper } from \"@/lotteries/online/shared/analytics/analytics-helper\";\r\nimport { ProductPageAnalytics } from \"@/lotteries/product-page/analytics/analytics-product-page\";\r\nimport { debounce } from \"@sazka/utils/debounce\";\r\nimport { FlickityPatched } from \"@sazka/utils/carousel/flickity-patched\";\r\nimport { LotteryCheckout } from \"../online/shared/lottery-checkout/lottery-checkout\";\r\nimport { onViewportEnter } from \"@sazka/utils/viewport-enter\";\r\n\r\nexport class RandomBetSlider {\r\n    private elem!: JQuery<Element>;\r\n    private sliderAPI: any;\r\n    private waitingWager: JQuery = null;\r\n    private quickLotteries = false;\r\n    private readonly checkout: LotteryCheckout = null;\r\n    private flickity: FlickityPatched | any;\r\n\r\n    constructor(querySelector: string, reverse = false, quickLotteries = false) {\r\n        this.quickLotteries = quickLotteries;\r\n        this.initSlider(querySelector, reverse);\r\n        if (this.elem) {\r\n            this.initRandomBets(this.elem.data(\"page-placement\"));\r\n        }\r\n        this.checkout = new LotteryCheckout({\r\n            key: \"strip\" + querySelector,\r\n            useDefaultAnalytics: false,\r\n            restartFlow: (data, restoreData) => {\r\n                this.flickity.select(restoreData.index - 1, false, true);\r\n                if (restoreData.type === \"multiwager\") {\r\n                    const $btn = this.elem.find(\r\n                        `.ds-quick-bet-card[data-lottery=multisazenka] .ds-quick-bet-card__button[data-wager-id=${restoreData.id}]`\r\n                    );\r\n                    this.setButtonConfirmState($btn);\r\n                    const dataElems = $btn\r\n                        .closest(\".ds-quick-bet-card\")\r\n                        .find(\".ds-quick-bet-card__list-item .inner-list-item\");\r\n                    this.sendMultiwager($btn, dataElems, restoreData.index);\r\n                } else {\r\n                    const $btn = this.elem.find(\r\n                        `.ds-quick-bet-card[data-lottery!=multisazenka] .ds-quick-bet-card__button[data-wager-id=${restoreData.id}]`\r\n                    );\r\n                    this.setButtonConfirmState($btn);\r\n                    this.sendWager($btn, restoreData.index);\r\n                    $btn.trigger(\"focus\");\r\n                }\r\n            },\r\n        });\r\n    }\r\n\r\n    public initSlider = async (querySelector: string, reverse: boolean) => {\r\n        const slideshowEl = document.querySelector(querySelector);\r\n        if (!slideshowEl) return;\r\n        this.elem = $(slideshowEl);\r\n\r\n        await onViewportEnter(slideshowEl, 0.2);\r\n\r\n        this.elem.parent().addClass(\"inited\");\r\n\r\n        const tickerSpeed = (reverse ? -1 : 1) * 0.5;\r\n\r\n        let isPaused = false;\r\n        let isInterruptedByUser = false;\r\n        let lastWindowWidth = window.innerWidth;\r\n\r\n        const update = () => {\r\n            if (isPaused || isInterruptedByUser || this.waitingWager) return;\r\n            if (this.flickity.slides) {\r\n                this.flickity.x = (this.flickity.x - tickerSpeed) % this.flickity.slideableWidth;\r\n                this.flickity.selectedIndex = this.flickity.dragEndRestingSelect();\r\n                this.flickity.updateSelectedSlide();\r\n                this.flickity.settle(this.flickity.x);\r\n            }\r\n            window.requestAnimationFrame(update);\r\n        };\r\n\r\n        const pause = () => {\r\n            isPaused = true;\r\n        };\r\n\r\n        const play = () => {\r\n            if (isPaused) {\r\n                isPaused = false;\r\n                window.requestAnimationFrame(update);\r\n            }\r\n        };\r\n\r\n        const handleBlur = () => {\r\n            if (this.waitingWager) return;\r\n            else isInterruptedByUser = false;\r\n\r\n            setTimeout(() => {\r\n                //workaround for touch devices\r\n                const $target = $(document.activeElement);\r\n                if (!$target.hasClass(`ds-quick-bet-card__button`)) this.resetBetButtons();\r\n            }, 1);\r\n\r\n            window.requestAnimationFrame(update);\r\n        };\r\n\r\n        const $root = $(slideshowEl);\r\n        const rootWidth = $root.outerWidth(true);\r\n        const childWidth = $root.children().outerWidth(true);\r\n\r\n        let totalWidth = $root.children().length * childWidth;\r\n        while (totalWidth < rootWidth + 1000) {\r\n            $root\r\n                .children()\r\n                .clone()\r\n                .appendTo($root as any);\r\n            totalWidth = $root.children().length * childWidth;\r\n        }\r\n\r\n        this.flickity = new FlickityPatched(slideshowEl, {\r\n            autoPlay: false,\r\n            pageDots: false,\r\n            draggable: true,\r\n            prevNextButtons: false,\r\n            wrapAround: true,\r\n            selectedAttraction: 0.015,\r\n            friction: 0.25,\r\n            percentPosition: false,\r\n            resize: false,\r\n            watchCSS: false,\r\n        });\r\n        this.flickity.x = 0;\r\n\r\n        slideshowEl.addEventListener(\"mouseenter\", pause, false);\r\n        slideshowEl.addEventListener(\"focusin\", pause, false);\r\n        slideshowEl.addEventListener(\"mouseleave\", play, false);\r\n        slideshowEl.addEventListener(\"focusout\", play, false);\r\n        slideshowEl.addEventListener(\"blur\", handleBlur, false);\r\n\r\n        window.addEventListener(\r\n            \"resize\",\r\n            debounce(() => {\r\n                if (window.innerWidth !== lastWindowWidth) {\r\n                    this.flickity.resize();\r\n                    lastWindowWidth = window.innerWidth;\r\n                }\r\n            }, 100),\r\n            { passive: true }\r\n        );\r\n\r\n        update();\r\n\r\n        this.sliderAPI = {\r\n            pause: () => (isInterruptedByUser = true),\r\n            play: () => (isInterruptedByUser = false),\r\n        };\r\n    };\r\n\r\n    private resetBetButtons = () => {\r\n        $(\".ds-quick-bet-card__button\").each((_, el: HTMLElement) => {\r\n            const $this = $(el);\r\n\r\n            $this\r\n                .text(`Vsadit za ${$this.data(\"price\")} KÄŤ`)\r\n                .removeClass(\"button--error\")\r\n                .addClass(\"button--primary\");\r\n        });\r\n    };\r\n\r\n    private initRandomBets = (pagePlacement: string) => {\r\n        this.elem.addClass(\"inited\");\r\n\r\n        //change color by game type\r\n        this.elem.find(\".ds-quick-bet-card\").each((index, el) => {\r\n            const gameName = $(el).data(\"lottery\");\r\n            const $button = $(el).find(`.ds-quick-bet-card__button`);\r\n\r\n            $button.on(\"click\", () => {\r\n                if ($button.hasClass(\"button--error\")) {\r\n                    if (gameName == \"multisazenka\") {\r\n                        this.sendMultiwager($button, $(el).find(\".ds-quick-bet-card__list-item\"), index + 1);\r\n                    } else {\r\n                        this.sendWager($button, index + 1);\r\n                    }\r\n                } else {\r\n                    this.resetBetButtons();\r\n                    this.setButtonConfirmState($button);\r\n\r\n                    if (pagePlacement == \"Lotteries_PP_Bet\") {\r\n                        const gameCode =\r\n                            gameName == \"multisazenka\"\r\n                                ? \"multisazenka\"\r\n                                : Analytics.getLotteryCode(LotteryUtils.parseLotteryName(gameName));\r\n                        const title = $(el)\r\n                            .children(\".ds-quick-bet-card__header\")\r\n                            .find(\".ds-quick-bet-card__heading\")\r\n                            .text() as string;\r\n\r\n                        ProductPageAnalytics.pushRandomTipClick(\r\n                            gameCode,\r\n                            $(el).index() + 1,\r\n                            $button.data(\"price\") as number,\r\n                            title\r\n                        );\r\n                    }\r\n\r\n                    if (gameName == \"multisazenka\") {\r\n                        const wagerId = $button.data(\"wager-id\");\r\n                        const bettingMode = \"multibets,randomTips\";\r\n                        AnalyticsHelper.pushMultiwagersCheckout(\r\n                            $(el).find(\".ds-quick-bet-card__list-item\"),\r\n                            index + 1,\r\n                            wagerId,\r\n                            bettingMode\r\n                        );\r\n                    } else {\r\n                        this.datalayerCheckout($button);\r\n                    }\r\n                }\r\n            });\r\n        });\r\n\r\n        this.elem.on(\"focus\", () => this.sliderAPI.pause());\r\n    };\r\n\r\n    private setButtonConfirmState($btn: JQuery) {\r\n        $btn.removeClass(\"button--primary\").addClass(\"button--error\").text(\"Opravdu vsadit?\");\r\n    }\r\n\r\n    private sendWager = ($btn: JQuery, cardPosition: number) => {\r\n        const wagerId = $btn.data(\"wager-id\");\r\n        const price = $btn.data(\"price\");\r\n        this.waitingWager = $btn;\r\n\r\n        this.checkout\r\n            .start({\r\n                getCost: () => price * 100,\r\n                betServiceUrl: this.quickLotteries\r\n                    ? `/random-wager/quick-lottery/${wagerId}`\r\n                    : `/random-wager/${wagerId}`,\r\n                dataForRestore: () => ({\r\n                    type: \"randomwager\",\r\n                    id: wagerId,\r\n                    index: cardPosition,\r\n                }),\r\n            })\r\n            .then((data: Record<string, any>) => {\r\n                this.datalayerOrder(\r\n                    $btn,\r\n                    data.Payload.WagerID,\r\n                    data.Payload[$btn.data(\"lottery\")] == 1,\r\n                    price,\r\n                    this.quickLotteries ? \"randomTipFastLotteries\" : \"randomTips\"\r\n                );\r\n                this.onSuccess($btn);\r\n            })\r\n            .catch((error) => {\r\n                console.error(error);\r\n                this.resetBetButtons();\r\n            })\r\n            .finally(() => {\r\n                this.waitingWager = null;\r\n            });\r\n    };\r\n\r\n    private sendMultiwager = ($btn: JQuery, elementsWithData: JQuery, cardPosition: number) => {\r\n        const header = $btn.closest(\".ds-quick-bet-card\").find(\".ds-quick-bet-card__heading\").text() as string;\r\n        const wagerId = $btn.data(\"wager-id\") as number;\r\n        const price = $btn.data(\"price\") as number;\r\n        const bettingMode = \"multibets,randomTips\";\r\n        this.waitingWager = $btn;\r\n\r\n        this.checkout\r\n            .start({\r\n                betServiceUrl: `/multiwager/random-wager/${wagerId}`,\r\n                getCost: () => price * 100,\r\n                dataForRestore: () => ({\r\n                    type: \"multiwager\",\r\n                    id: wagerId,\r\n                    index: cardPosition,\r\n                }),\r\n            })\r\n            .then((data: Record<string, any>) => {\r\n                AnalyticsHelper.pushMultiwagerOrder(elementsWithData, data, wagerId, cardPosition, bettingMode);\r\n                AnalyticsHelper.pushMultiwagerBetMoney(elementsWithData, header, cardPosition, wagerId);\r\n\r\n                this.onSuccess($btn);\r\n            })\r\n            .catch((error) => {\r\n                console.error(error);\r\n                this.resetBetButtons();\r\n            })\r\n            .finally(() => {\r\n                this.waitingWager = null;\r\n            });\r\n    };\r\n\r\n    private onSuccess = ($btn: JQuery) => {\r\n        const successOverlay = $btn.parent().find(\".ds-quick-bet-card--success\")[0];\r\n        if (successOverlay) {\r\n            successOverlay.style.display = \"block\";\r\n\r\n            const seconds = $btn.data(\"success-seconds\") as number;\r\n            if (seconds > 0) {\r\n                setTimeout(() => {\r\n                    successOverlay.style.display = \"none\";\r\n                }, seconds * 1000);\r\n            }\r\n        }\r\n        this.resetBetButtons();\r\n    };\r\n\r\n    //#region Datalayer\r\n\r\n    private datalayerOrder(button: JQuery, orderId: number, isFirstOrder: boolean, value: number, kind: string) {\r\n        const obj = this.datalayerFromElement(\"purchase\", button, orderId);\r\n        dataLayer.push(obj);\r\n\r\n        const parentCard = button.closest(\".ds-quick-bet-card\");\r\n        const parentCardIndex = parentCard ? parentCard.index() : 0;\r\n\r\n        this.datalayerBet(button.data(\"lottery\"), value, kind, parentCardIndex + 1);\r\n        if (isFirstOrder) {\r\n            this.datalayerFirstBet(button.data(\"lottery\"), value, kind);\r\n        }\r\n    }\r\n\r\n    private datalayerCheckout(button: JQuery) {\r\n        const obj = this.datalayerFromElement(\"checkout\", button);\r\n        dataLayer.push(obj);\r\n    }\r\n\r\n    private datalayerFromElement(type: \"checkout\" | \"purchase\", element: JQuery, orderId: number = null) {\r\n        const gameName = element.data(\"lottery\");\r\n        const prize = parseInt(element.data(\"price\"));\r\n        const boards = element.data(\"boards\") || 1;\r\n        const duration = element.data(\"duration\");\r\n        const addon = element.data(\"addon\") == \"True\";\r\n        const addonName = addon ? LotteryUtils.getAddon(gameName) : \"\";\r\n        const ticketKind = duration > 1 ? \"multidraw\" : \"singleDraw\";\r\n        const drawTimes = gameName == \"kasicka\" || gameName == \"stastnych10\" ? \"aftevn\" : \"\";\r\n        let drawDays = \"\";\r\n        switch (gameName) {\r\n            case \"eurojackpot\":\r\n                drawDays = \"fr\";\r\n                break;\r\n            case \"sportka\":\r\n                drawDays = \"wesu\";\r\n                break;\r\n            case \"euromiliony\":\r\n                drawDays = \"tusa\";\r\n                break;\r\n        }\r\n\r\n        const kind = this.quickLotteries ? \"randomTipFastLotteries\" : \"randomTips\";\r\n\r\n        return this.datalayerCart(\r\n            type,\r\n            gameName,\r\n            prize,\r\n            boards,\r\n            duration,\r\n            addonName,\r\n            ticketKind,\r\n            drawTimes,\r\n            drawDays,\r\n            orderId,\r\n            kind\r\n        );\r\n    }\r\n\r\n    private datalayerCart(\r\n        type: \"checkout\" | \"purchase\",\r\n        gameCode: \"eurojackpot\" | \"sportka\" | \"euromiliony\" | \"kasicka\" | \"keno\" | \"stastnych10\" | \"extra-renta\",\r\n        cost: number,\r\n        boards: number,\r\n        draws: number,\r\n        addonGameName: \"sance\" | \"sancemh\" | \"extra6\" | \"eurosance\" | \"sancemilion\" | \"\",\r\n        ticketKind: \"singleDraw\" | \"multidraw\" | \"sportkaMH\",\r\n        drawTimes: \"aft\" | \"evn\" | \"aftevn\" | \"\",\r\n        drawDays: string,\r\n        orderId: number,\r\n        kind: string\r\n    ) {\r\n        const analyticsGameName = Analytics.getLotteryCode(gameCode);\r\n        const cart = {\r\n            products: [\r\n                {\r\n                    fullPrice: cost,\r\n                    pocketPrice: cost,\r\n                    price: cost,\r\n                    tax: 0,\r\n                    position: 1,\r\n                    verticalCode: \"loterie\",\r\n                    gameCode: analyticsGameName,\r\n                    boards: boards,\r\n                    draws: draws,\r\n                    addonGame: addonGameName,\r\n                    ticketKind: ticketKind,\r\n                    drawDays: drawDays,\r\n                    drawTimes: drawTimes,\r\n                    bettingMode: kind,\r\n                },\r\n            ],\r\n        };\r\n        const obj = {\r\n            page: {\r\n                type: type,\r\n                kind: kind == \"mainProductPage\" ? type : kind,\r\n                gameCode: Analytics.lotteryCode(),\r\n                gameCodeStrict: Analytics.getLotteryCode(LotteryUtils.parseLotteryName(gameCode)),\r\n                verticalCode: \"loterie\",\r\n                verticalCodeStrict: \"loterie\",\r\n                bettingSystem: draws > 1 ? \"multiDraw\" : \"singleDraw\",\r\n            },\r\n            order: {\r\n                totalValue: cost,\r\n                revenue: cost,\r\n                discount: 0,\r\n                tax: 0,\r\n                cart: cart,\r\n            },\r\n            cart: cart,\r\n            event: \"page\",\r\n        };\r\n        if (type === \"checkout\") {\r\n            obj.page[\"checkout\"] = { step: \"1\" };\r\n        } else {\r\n            obj.order[\"id\"] = orderId;\r\n        }\r\n\r\n        return obj;\r\n    }\r\n\r\n    private datalayerBet(gameCodeName: string, value: number, kind: string, position: number) {\r\n        const analyticsGameName = Analytics.getLotteryCode(gameCodeName);\r\n        dataLayer.push({\r\n            event: \"action.bet.money\",\r\n            action: {\r\n                bet: {\r\n                    gameCode: analyticsGameName,\r\n                    bettingMode: kind,\r\n                    value,\r\n                    position: position.toString(),\r\n                },\r\n            },\r\n        });\r\n    }\r\n\r\n    private datalayerFirstBet(gameCode: string, value: number, kind: string) {\r\n        dataLayer.push({\r\n            event: \"action.firstBet.money\",\r\n            action: {\r\n                firstBet: {\r\n                    bettingMode: kind,\r\n                    gameCode: Analytics.getLotteryCode(gameCode),\r\n                    value,\r\n                },\r\n            },\r\n        });\r\n    }\r\n    //#endregion\r\n}\r\n\r\n$(() => {\r\n    // dont start slider on /vsadit-si-online, coz its visible after bet\r\n    if (\r\n        \"/loterie/klasicke-loterie/kasicka/jak-na-kombinovanou-sazku\" !== environment.nodeAliasPath &&\r\n        !/^\\/loterie\\/[\\w-/]*\\/vsadit-si-online(\\/.*)?/i.test(environment.nodeAliasPath) &&\r\n        !/^\\/loterie\\/multisazenky\\/.+/i.test(location.pathname)\r\n    ) {\r\n        new RandomBetSlider(\".random-wager__slider.normal .swiper-wrapper\");\r\n        new RandomBetSlider(\".quick-wagers-slider\", false, true);\r\n    }\r\n});\r\n","import { documentReady } from \"@sazka/utils/document-ready\";\r\n\r\ndeclare const environment: any;\r\ntype ColorVariant = \"yellow\" | \"blue\";\r\n\r\n/**\r\n * Loader tells user, he has to wait for some ajax operation\r\n */\r\nexport class Loader {\r\n    private static showTimeout: number;\r\n    private static hideTimeout: number;\r\n    private static lockNumber = 0;\r\n    public static get isShown() {\r\n        return this.lockNumber > 0;\r\n    }\r\n\r\n    static {\r\n        // loader from backend\r\n        if (document.body) {\r\n            this.showLoaderFromBackend();\r\n        } else {\r\n            documentReady(() => {\r\n                this.showLoaderFromBackend();\r\n            });\r\n        }\r\n    }\r\n\r\n    static showLoaderFromBackend() {\r\n        if (document.body.classList.contains(\"loader\")) {\r\n            this.lockNumber++;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Shows loader after some time in miliseconds\r\n     * This is to reduce flickering when ajax actions are super-fast\r\n     *\r\n     * @param showLoaderIn Time in miliseconds, after which, loaded will be shown\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static show(showLoaderIn = 30, text?: string, aboveAll = false, color: ColorVariant = \"yellow\") {\r\n        this.clearTimeout();\r\n        this.lockNumber++;\r\n\r\n        this.showTimeout = window.setTimeout(() => {\r\n            this.showNow(text, aboveAll, true, color);\r\n        }, showLoaderIn);\r\n    }\r\n\r\n    /**\r\n     * Shows loader right away\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static showNow(text?: string, aboveAll = false, counted = false, color: ColorVariant = \"yellow\") {\r\n        if (!counted) {\r\n            this.lockNumber++;\r\n        }\r\n\r\n        if (!environment.isEditMode) {\r\n            const loader = document.getElementById(\"loader\");\r\n\r\n            if (!loader) return;\r\n\r\n            if (aboveAll) {\r\n                loader.classList.add(\"loader--above-all\");\r\n            } else {\r\n                loader.classList.remove(\"loader--above-all\");\r\n            }\r\n            if (text) {\r\n                loader.querySelector(\".loader__text\").textContent = text;\r\n                loader.classList.add(\"loader--with-text\");\r\n            } else {\r\n                loader.querySelector(\".loader__text\").textContent = \"\";\r\n                loader.classList.remove(\"loader--with-text\");\r\n            }\r\n\r\n            if (color === \"blue\") {\r\n                loader.classList.add(\"loader--blue\");\r\n            }\r\n\r\n            document.body.classList.add(\"loader\", \"loader--fade-in\");\r\n            this.clearTimeout();\r\n        }\r\n    }\r\n\r\n    /**\r\n     * Shows loader after delay with z-index of 9999\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static showAboveAll(showLoaderIn = 30, text?: string) {\r\n        this.show(showLoaderIn, text, true);\r\n    }\r\n\r\n    /**\r\n     * Shows loader right away with z-index of 9999\r\n     * @param text Title (waiting message) displayed in loader\r\n     */\r\n    static showNowAboveAll(text?: string) {\r\n        this.showNow(text, true);\r\n    }\r\n\r\n    /**\r\n     * Hides loader\r\n     */\r\n    static hide() {\r\n        this.lockNumber--;\r\n        if (this.lockNumber > 0) return;\r\n\r\n        this.clearTimeout();\r\n        document.body.classList.remove(\"loader--fade-in\");\r\n        this.hideTimeout = window.setTimeout(() => {\r\n            document.body.classList.remove(\"loader\");\r\n            const loader = document.getElementById(\"loader\");\r\n            loader.querySelector(\".loader__text\").textContent = \"\";\r\n            loader.classList.remove(\"loader--with-text\");\r\n        }, 150);\r\n    }\r\n\r\n    private static clearTimeout() {\r\n        if (this.showTimeout) {\r\n            clearTimeout(this.showTimeout);\r\n            this.showTimeout = null;\r\n        }\r\n        if (this.hideTimeout) {\r\n            clearTimeout(this.hideTimeout);\r\n            this.hideTimeout = null;\r\n        }\r\n    }\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nimport type { FlickityDotsOptions } from \"./flickity-dots-options\";\r\nimport { FlickityPatched } from \"./flickity-patched\";\r\n\r\nconst PATH_ATTRS_MAP = {\r\n    \"clip-rule\": \"evenodd\",\r\n    \"fill-rule\": \"evenodd\",\r\n};\r\n\r\nconst SVG_ATTRS_MAP = {\r\n    viewBox: \"0 0 24 24\",\r\n    width: \"24\",\r\n    height: \"24\",\r\n};\r\n\r\nconst DS_ARROW_CLASS = \"ds-carousel-indicator__arrow\";\r\n\r\nconst BTN_CLASSES = [\"button\", \"button--sm\", \"button--text\"];\r\n\r\nconst defaultDotsOptions: FlickityDotsOptions = {\r\n    rootEl: null,\r\n    dots: null,\r\n    theme: \"light\",\r\n    next: null,\r\n    prev: null,\r\n    nextIcon:\r\n        \"M6.257 2.331a1 1 0 0 1 1.412-.074l10 9a1 1 0 0 1 0 1.486l-10 9a1 1 0 1 1-1.338-1.486L15.505 12 6.331 3.743a1 1 0 0 1-.074-1.412Z\",\r\n    prevIcon:\r\n        \"M17.743 2.331a1 1 0 0 1-.074 1.412L8.495 12l9.174 8.257a1 1 0 1 1-1.338 1.486l-10-9a1 1 0 0 1 0-1.486l10-9a1 1 0 0 1 1.412.074Z\",\r\n    useDsClasses: true,\r\n    useCustomPrevNextButtons: false,\r\n};\r\n\r\n/**\r\n * When calling init method with config object\r\n * it will render dots at the rootEl you define\r\n */\r\nexport function useFlickityDots(carousel: FlickityPatched, options: FlickityDotsOptions) {\r\n    const carouselInstance = carousel;\r\n    if (Object.keys(options).length === 0) return;\r\n    const config = Object.assign(defaultDotsOptions, options);\r\n\r\n    if (config.useDsClasses && (carouselInstance as any).isInitActivated) {\r\n        const indicatorClass = [\"ds-carousel-indicator\"];\r\n\r\n        if (config.theme === \"dark\") indicatorClass.push(\"is-dark\");\r\n\r\n        config.rootEl.classList.add(...indicatorClass);\r\n\r\n        initPrevButton();\r\n        initDots();\r\n        initNextButton();\r\n    }\r\n\r\n    config.rootEl.append(\r\n        config.prev || getElementFromInstance(\"prev\"),\r\n        config.dots || getElementFromInstance(\"dots\"),\r\n        config.next || getElementFromInstance(\"next\")\r\n    );\r\n\r\n    if (!getElementFromInstance(\"prev\") || !getElementFromInstance(\"next\")) {\r\n        [...config.rootEl.childNodes].filter((child) => child.nodeType === 3).map((el) => el.remove());\r\n    }\r\n\r\n    /**\r\n     * Destroy custom dots\r\n     */\r\n    function destroy() {\r\n        if (config.rootEl.children.length > 0) config.rootEl.replaceChildren();\r\n    }\r\n\r\n    function initPrevButton() {\r\n        if (!(carouselInstance as any).options.prevNextButtons && config.useCustomPrevNextButtons) {\r\n            initButton(config.prev, \"prev\", config.prevIcon);\r\n        }\r\n    }\r\n\r\n    function initNextButton() {\r\n        if (!(carouselInstance as any).options.prevNextButtons && config.useCustomPrevNextButtons) {\r\n            initButton(config.next, \"next\", config.nextIcon);\r\n        }\r\n    }\r\n\r\n    function initButton(btn: HTMLElement, btnType: \"prev\" | \"next\", icon: string) {\r\n        if (btn) {\r\n            btn?.classList.add(`${DS_ARROW_CLASS}`, `${DS_ARROW_CLASS}--${btnType}`, ...BTN_CLASSES);\r\n            setAttributes(btn?.querySelector(\".flickity-button-icon\"), SVG_ATTRS_MAP);\r\n            btn?.querySelector<SVGPathElement>(\".arrow\").setAttribute(\"d\", icon);\r\n        } else {\r\n            const carouselBtn = getElementFromInstance(btnType);\r\n            const arrow = carouselBtn.querySelector(\".arrow\");\r\n            const svgElem = carouselBtn.querySelector(\".flickity-button-icon\");\r\n\r\n            setAttributes(svgElem, SVG_ATTRS_MAP);\r\n            setAttributes(arrow, PATH_ATTRS_MAP);\r\n            arrow.setAttribute(\"d\", icon);\r\n            arrow.removeAttribute(\"transform\");\r\n            carouselBtn.classList.add(`${DS_ARROW_CLASS}`, `${DS_ARROW_CLASS}--${btnType}`, ...BTN_CLASSES);\r\n        }\r\n    }\r\n\r\n    function initDots() {\r\n        if (config.dots) {\r\n            config.dots.classList.add(\"ds-carousel-indicator__dots\");\r\n        } else {\r\n            const dots = getElementFromInstance(\"dots\");\r\n            dots.classList.add(\"ds-carousel-indicator__dots\");\r\n        }\r\n    }\r\n\r\n    function getElementFromInstance(elType: \"prev\" | \"next\" | \"dots\") {\r\n        switch (elType) {\r\n            case \"prev\":\r\n                return (\r\n                    (carouselInstance as any).options.prevNextButtons &&\r\n                    ((carouselInstance as any).prevButton.element as HTMLElement)\r\n                );\r\n            case \"dots\":\r\n                return (\r\n                    (carouselInstance as any).options.pageDots &&\r\n                    ((carouselInstance as any).pageDots.holder as HTMLElement)\r\n                );\r\n            case \"next\":\r\n                return (\r\n                    (carouselInstance as any).options.prevNextButtons &&\r\n                    ((carouselInstance as any).nextButton.element as HTMLElement)\r\n                );\r\n        }\r\n    }\r\n\r\n    function setAttributes(el: Element, attrs: Record<string, any>) {\r\n        for (const key in attrs) {\r\n            el.setAttribute(key, attrs[key]);\r\n        }\r\n    }\r\n\r\n    return {\r\n        destroy,\r\n    };\r\n}\r\n","import Flickity from \"flickity\";\r\nimport { FlickityDotsOptions } from \"./flickity-dots-options\";\r\nimport { useFlickityDots } from \"./use-flickity-dots\";\r\n\r\nexport interface FlickityPatchedOptions extends Flickity.Options {\r\n    dotsOptions?: FlickityDotsOptions;\r\n}\r\n\r\n/**\r\n * @deprecated Instead use KeenSlider in new components\r\n */\r\nexport class FlickityPatched extends Flickity {\r\n    dots: ReturnType<typeof useFlickityDots>;\r\n    dotsRoot: HTMLElement = null;\r\n\r\n    constructor(selector: string | Element, options?: FlickityPatchedOptions) {\r\n        super(selector, options);\r\n        this.dotsRoot = options?.dotsOptions?.rootEl;\r\n\r\n        this.on(\"dragStart\", () => {\r\n            (this.cells as any[]).forEach((slide) => (slide.element.style.pointerEvents = \"none\"));\r\n        });\r\n        this.on(\"dragEnd\", () => (this.cells as any[]).forEach((slide) => (slide.element.style.pointerEvents = \"all\")));\r\n        this.on(\"destroy\", () => {\r\n            if (this.dots) this.dots.destroy();\r\n        });\r\n\r\n        if (options.dotsOptions) {\r\n            this.dots = useFlickityDots(this, options.dotsOptions);\r\n        }\r\n    }\r\n\r\n    // The following two methods fix the error that Flickity throws when there is different parent for dotsOptions and Carousel\r\n    deactivatePageDots() {\r\n        try {\r\n            // Try to call flicity deactivatePageDots first\r\n            Object.getPrototypeOf(Object.getPrototypeOf(this)).deactivatePageDots();\r\n        } catch (e) {\r\n            console.warn(\"Flickity deactivatePageDots failed calling its override.\");\r\n            const superDeactivatePageDot = (this as any).pageDots.deactivate.bind({\r\n                holder: this.dotsRoot.querySelector(\".flickity-page-dots\"),\r\n                unbindStartEvent: () => {\r\n                    // Could not figure out what this was supposed to do. So there is just console.log to prevent TS error.\r\n                    console.log(\"unbidStart\");\r\n                },\r\n                parent: { element: this.dotsRoot },\r\n            });\r\n            superDeactivatePageDot();\r\n        }\r\n    }\r\n\r\n    deactivatePrevNextButtons() {\r\n        try {\r\n            // Try to call flicity deactivatePrevNextButtons first\r\n            Object.getPrototypeOf(Object.getPrototypeOf(this)).deactivatePrevNextButtons();\r\n        } catch (e) {\r\n            console.warn(\"Flickity deactivatePrevNextButtons failed calling its override.\");\r\n            const superDeactivatePrevButton = (this as any).prevButton.deactivate.bind({\r\n                element: (this as any).prevButton.element,\r\n                unbindStartEvent: () => {\r\n                    // Could not figure out what this was supposed to do. So there is just console.log to prevent TS error.\r\n                    console.log(\"unbidStart\");\r\n                },\r\n                parent: { element: this.dotsRoot },\r\n            });\r\n            const superDeactivateNextButton = (this as any).prevButton.deactivate.bind({\r\n                element: (this as any).nextButton.element,\r\n                unbindStartEvent: () => {\r\n                    // Could not figure out what this was supposed to do. So there is just console.log to prevent TS error.\r\n                    console.log(\"unbidStart\");\r\n                },\r\n                parent: { element: this.dotsRoot },\r\n            });\r\n            superDeactivatePrevButton();\r\n            superDeactivateNextButton();\r\n        }\r\n    }\r\n\r\n    // FIX iOS 15 issues - when dragging, page moves\r\n    // see https://github.com/metafizzy/flickity/issues/1177#issuecomment-981194285\r\n    // can be removed when flickity fixes https://github.com/metafizzy/flickity/issues/1196\r\n    resize() {\r\n        if (!(this as any).isAnimating) {\r\n            super.resize();\r\n        }\r\n    }\r\n}\r\n","/**\r\n * Debounce function - use like this:\r\n * var handler = debounce(function(){ do the work}, 100);\r\n * $(window).scroll(handler);\r\n * @param func callback function\r\n * @param wait time in milliseconds to wait\r\n * @param immediate\r\n */\r\n\r\ntype CallbackFunction = (...args: any[]) => any;\r\n\r\nexport function debounce<T extends CallbackFunction>(func: T, wait: number, immediate = false) {\r\n    let timeout: number | null;\r\n\r\n    return function (this: ThisParameterType<T>, ...args: Parameters<T>) {\r\n        /* eslint-disable @typescript-eslint/no-this-alias */\r\n        const context = this;\r\n        const later = function () {\r\n            timeout = null;\r\n            if (!immediate) func.apply(context, args);\r\n        };\r\n        const callNow = immediate && !timeout;\r\n        clearTimeout(timeout as number);\r\n        timeout = window.setTimeout(later, wait);\r\n        if (callNow) func.apply(context, args);\r\n    };\r\n}\r\n","/**\r\n * Returns a Promise that resolves when the given HTML element enters the viewport.\r\n *\r\n * @param {HTMLElement | Element} htmlElement - The HTML element to observe.\r\n * @param {number} [threshold=0.7] - The threshold for intersection.\r\n * @return {Promise<IntersectionObserverEntry | null>} A Promise that resolves with the intersection entry or null if IntersectionObserver is not supported.\r\n */\r\nexport function onViewportEnter<T extends HTMLElement | Element>(htmlElement: T, threshold = 0.7) {\r\n    return new Promise((res) => {\r\n        if (typeof IntersectionObserver != \"undefined\") {\r\n            const options = {\r\n                threshold: threshold,\r\n            };\r\n\r\n            const observer = new IntersectionObserver((entries, observer) => {\r\n                entries\r\n                    .filter((entry) => entry.isIntersecting && entry.intersectionRatio >= threshold)\r\n                    .forEach((entry) => {\r\n                        res(entry);\r\n                        observer.unobserve(entry.target);\r\n                    });\r\n            }, options);\r\n\r\n            observer.observe(htmlElement as HTMLElement);\r\n        } else {\r\n            res(null);\r\n        }\r\n    });\r\n}\r\n"],"names":["ProductPageAnalytics","pushGamePageDisplayed","lotteryName","window","dataLayer","push","page","type","kind","verticalCode","verticalCodeStrict","gameCode","gameCodeStrict","pushGameDetailPageDisplayed","pushGameCheckbetPageDisplayed","pushGameHowToPlayPageDisplayed","pushClickNavigation","itemName","event","action","click","name","eventProperty2","pushClickQuicktips","bettingMode","lotteryAlias","position","wagerValue","label","LotteryUtils","analyticsCodeName","parseLotteryName","value","pushGamePageBannerImpression","bannerTitleText","impress","promos","id","creative","pushGamePageBannerClick","show","pushRandomTipClick","price","title","toString","pushMoneyBetStanding","data","bet","transactionId","bettingSystem","repetitionEndDate","columns","columnsFillType","columnsFillState","addonGame","pushMoneyBetSingleOrMultiDraw","pushPurchase","days","times","Analytics","getDrawDaysAndTimes","drawNames","order","orderId","totalValue","revenue","discount","tax","cart","products","fullPrice","pocketPrice","boards","draws","ticketKind","drawDays","drawTimes","pushHowToPlayPageBannerImpressionOnlineBet","bannerTitle","pushHowToPlayPageBannerImpressionStandardBet","pushHowToPlayBannerImpression","pushHowToPlayBannerClick","pushMillionairesMapClick","pushTicketCheckResult","result","lottery","checkBet","pushTicketCheckBannerImpress","promo","pushTicketCheckBannerClick","pushTicketCheckButtonClick","RandomBetSlider","constructor","querySelector","reverse","quickLotteries","_defineProperty","async","slideshowEl","document","this","elem","$","onViewportEnter","parent","addClass","tickerSpeed","isPaused","isInterruptedByUser","lastWindowWidth","innerWidth","update","waitingWager","flickity","slides","x","slideableWidth","selectedIndex","dragEndRestingSelect","updateSelectedSlide","settle","requestAnimationFrame","pause","play","handleBlur","setTimeout","$target","activeElement","hasClass","resetBetButtons","$root","rootWidth","outerWidth","childWidth","children","totalWidth","length","clone","appendTo","FlickityPatched","autoPlay","pageDots","draggable","prevNextButtons","wrapAround","selectedAttraction","friction","percentPosition","resize","watchCSS","addEventListener","debounce","passive","sliderAPI","each","_","el","$this","text","removeClass","pagePlacement","find","index","gameName","$button","on","sendMultiwager","sendWager","setButtonConfirmState","getLotteryCode","wagerId","AnalyticsHelper","pushMultiwagersCheckout","datalayerCheckout","$btn","cardPosition","checkout","start","getCost","betServiceUrl","dataForRestore","then","datalayerOrder","Payload","WagerID","onSuccess","catch","error","console","finally","elementsWithData","header","closest","pushMultiwagerOrder","pushMultiwagerBetMoney","successOverlay","style","display","seconds","initSlider","initRandomBets","LotteryCheckout","key","useDefaultAnalytics","restartFlow","restoreData","select","dataElems","trigger","button","isFirstOrder","obj","datalayerFromElement","parentCard","parentCardIndex","datalayerBet","datalayerFirstBet","element","prize","parseInt","duration","addon","addonName","getAddon","datalayerCart","cost","addonGameName","analyticsGameName","lotteryCode","step","gameCodeName","firstBet","environment","nodeAliasPath","test","location","pathname","Loader","isShown","lockNumber","showLoaderFromBackend","body","classList","contains","showLoaderIn","aboveAll","color","clearTimeout","showTimeout","showNow","counted","isEditMode","loader","getElementById","add","remove","textContent","showAboveAll","showNowAboveAll","hide","hideTimeout","_Loader","documentReady","PATH_ATTRS_MAP","SVG_ATTRS_MAP","viewBox","width","height","DS_ARROW_CLASS","BTN_CLASSES","defaultDotsOptions","rootEl","dots","theme","next","prev","nextIcon","prevIcon","useDsClasses","useCustomPrevNextButtons","useFlickityDots","carousel","options","carouselInstance","Object","keys","config","assign","isInitActivated","indicatorClass","initPrevButton","initDots","initNextButton","destroy","replaceChildren","initButton","btn","btnType","icon","setAttributes","setAttribute","carouselBtn","getElementFromInstance","arrow","svgElem","removeAttribute","elType","prevButton","holder","nextButton","attrs","append","childNodes","filter","child","nodeType","map","Flickity","selector","_options$dotsOptions","super","dotsRoot","dotsOptions","cells","forEach","slide","pointerEvents","deactivatePageDots","getPrototypeOf","e","warn","superDeactivatePageDot","deactivate","bind","unbindStartEvent","log","deactivatePrevNextButtons","superDeactivatePrevButton","superDeactivateNextButton","isAnimating","func","wait","immediate","timeout","args","context","later","apply","callNow","htmlElement","threshold","Promise","res","IntersectionObserver","observer","entries","entry","isIntersecting","intersectionRatio","unobserve","target","observe"],"sourceRoot":""}