{"version":3,"file":"js/2485.a93e1fc82487e116.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/lotteries/category-page/components/_lotteries-category-page.ts","webpack://@sazka/web/./js/app/lotteries/category-page/utils/lotteries-analytics-category-page.ts","webpack://@sazka/web/./js/app/shared/utils/analytics/analytics-cp-widget-banner.ts","webpack://@sazka/web/./js/app/shared/utils/analytics/analytics-secondary-nav.ts","webpack://@sazka/web/../../libs/utils/document-ready.ts"],"sourcesContent":["import { documentReady } from \"@sazka/utils/document-ready\";\r\nimport { useLotteryCountdowns } from \"../composables/use-lottery-countdowns\";\r\nimport { LotteriesCategoryPageAnalytics } from \"@/lotteries/category-page/utils/lotteries-analytics-category-page\";\r\nimport { initializeNavigationAnalytics } from \"@/shared/utils/analytics/analytics-secondary-nav\";\r\nimport { initializeCPWidgetBannerAnalytics } from \"@/shared/utils/analytics/analytics-cp-widget-banner\";\r\n\r\ndocumentReady(() => {\r\n    const isCategoryPage = document.body.classList.contains(\"is-category-page\");\r\n\r\n    if (!isCategoryPage) return;\r\n\r\n    useLotteryCountdowns();\r\n\r\n    LotteriesCategoryPageAnalytics.pushLoterieLobbyPage();\r\n\r\n    initializeNavigationAnalytics();\r\n    initializeCPWidgetBannerAnalytics();\r\n});\r\n","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","const pushedItems = new Set<string>();\r\n\r\nfunction extractCreativeFromBanner(banner: Element): string {\r\n    const creativeElements = banner.querySelectorAll(\r\n        \".ds-promo-banner-new__heading, .ds-promo-banner-new__description\"\r\n    );\r\n    const creativeTexts = Array.from(creativeElements)\r\n        .map((el) => el.textContent?.trim().replace(/\\s+/g, \" \") || \"\")\r\n        .filter((text) => text.length > 0);\r\n    return creativeTexts.join(\"; \");\r\n}\r\n\r\nfunction getHeight(banner: Element): \"low\" | \"high\" {\r\n    return banner.classList.contains(\"ds-promo-banner-new--high\") ? \"high\" : \"low\";\r\n}\r\n\r\nfunction setupCarouselObserver(carousel: HTMLElement, height: \"low\" | \"high\") {\r\n    const observer = new MutationObserver((mutations) => {\r\n        mutations.forEach((mutation) => {\r\n            if (mutation.type === \"attributes\" && mutation.attributeName === \"class\") {\r\n                const targetElement = mutation.target as HTMLElement;\r\n                if (targetElement.classList.contains(\"ds-promo-card__inner--active\")) {\r\n                    const codeName = targetElement.getAttribute(\"data-a-codename\") || \"\";\r\n                    const itemIndex = Array.from(carousel.querySelectorAll(\".js-ds-promo-card-item\")).indexOf(\r\n                        targetElement\r\n                    );\r\n                    const creative = extractCreativeFromBanner(targetElement);\r\n                    const position = `${itemIndex + 1}`;\r\n                    const uniqueKey = `${codeName}_${height}_${creative}_${position}`;\r\n\r\n                    if (!pushedItems.has(uniqueKey)) {\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: codeName,\r\n                                            name: `${codeName}.${height}`,\r\n                                            creative: creative,\r\n                                            position,\r\n                                        },\r\n                                    ],\r\n                                },\r\n                            },\r\n                        });\r\n                        pushedItems.add(uniqueKey);\r\n                    }\r\n                }\r\n            }\r\n        });\r\n    });\r\n\r\n    const config = { attributes: true, childList: false, subtree: true };\r\n    observer.observe(carousel, config);\r\n}\r\n\r\nfunction setupBannerClickObserver(element: HTMLElement, height: \"low\" | \"high\", creative: string) {\r\n    element.addEventListener(\"click\", () => {\r\n        let position = \"1\";\r\n        const codeName = element.getAttribute(\"data-a-codename\") || \"\";\r\n        // If element is a carousel item, find its index to calculate position\r\n        if (element.closest(\".ds-promo-banner-new--carousel\")) {\r\n            const carousel = element.closest(\".ds-promo-banner-new--carousel\");\r\n            const itemIndex = Array.from(carousel.querySelectorAll(\".ds-promo-banner-new__inner\")).indexOf(element);\r\n            position = `${itemIndex + 1}`;\r\n        }\r\n\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: codeName,\r\n                            name: `${codeName}.${height}`,\r\n                            creative,\r\n                            position,\r\n                        },\r\n                    ],\r\n                },\r\n            },\r\n        });\r\n    });\r\n}\r\n\r\nexport function initializeCPWidgetBannerAnalytics() {\r\n    const banners = document.querySelectorAll(\".ds-promo-banner-new\");\r\n    banners.forEach((banner) => {\r\n        const isCarousel = banner.classList.contains(\"ds-promo-banner-new--carousel\");\r\n        const codeName = banner.querySelector(\"[data-a-codename]\")?.getAttribute(\"data-a-codename\") || \"\";\r\n        const height = getHeight(banner);\r\n        const creative = extractCreativeFromBanner(banner);\r\n\r\n        if (isCarousel) {\r\n            const carouselItems = banner.querySelectorAll(\".ds-promo-banner-new__inner\");\r\n            carouselItems.forEach((item, itemIndex) => {\r\n                setupBannerClickObserver(item as HTMLElement, height, extractCreativeFromBanner(item));\r\n\r\n                if (item.classList.contains(\"ds-promo-card__inner--active\")) {\r\n                    const position = (itemIndex + 1).toString();\r\n                    const itemCreative = extractCreativeFromBanner(item);\r\n\r\n                    // Initial impression for the active carousel item\r\n                    const uniqueKey = `${codeName}_${height}_${itemCreative}_${position}`;\r\n                    if (!pushedItems.has(uniqueKey)) {\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: codeName,\r\n                                            name: `${codeName}.${height}`,\r\n                                            creative: itemCreative,\r\n                                            position,\r\n                                        },\r\n                                    ],\r\n                                },\r\n                            },\r\n                        });\r\n                        pushedItems.add(uniqueKey);\r\n                    }\r\n                }\r\n            });\r\n\r\n            setupCarouselObserver(banner as HTMLElement, height);\r\n        } else {\r\n            const bannerItem = banner.querySelector(\".ds-promo-banner-new__inner\");\r\n            setupBannerClickObserver(bannerItem as HTMLElement, height, creative);\r\n\r\n            const uniqueKey = `${codeName}_${height}_${creative}_1`;\r\n            if (!pushedItems.has(uniqueKey)) {\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: codeName,\r\n                                    name: `${codeName}.${height}`,\r\n                                    creative: creative,\r\n                                    position: \"1\",\r\n                                },\r\n                            ],\r\n                        },\r\n                    },\r\n                });\r\n                pushedItems.add(uniqueKey);\r\n            }\r\n        }\r\n    });\r\n}\r\n","// Lotteries analytics          DL1.70\r\n// Online tickets analytics     DL1.70\r\nexport function initializeNavigationAnalytics() {\r\n    const nav = document.getElementById(\"ds-secondary-menu\");\r\n    if (!nav) return;\r\n\r\n    const links = nav.querySelectorAll(\".ds-secondary-menu__item a\");\r\n    links.forEach((link) => {\r\n        if (link.classList.contains(\"ds-secondary-menu__link--highlighted\")) {\r\n            return;\r\n        }\r\n\r\n        link.addEventListener(\r\n            \"click\",\r\n            () => {\r\n                const navTitle = link\r\n                    .closest(\".ds-secondary-menu__item\")\r\n                    .querySelector(\".ds-secondary-menu__title\")\r\n                    ?.textContent?.trim();\r\n                if (navTitle) {\r\n                    window.dataLayer.push({\r\n                        event: \"action.click.navigation\",\r\n                        action: {\r\n                            click: {\r\n                                name: navTitle,\r\n                                eventProperty1: \"sub\",\r\n                            },\r\n                        },\r\n                    });\r\n                }\r\n            },\r\n            { once: true }\r\n        );\r\n    });\r\n}\r\n","/**\r\n * Vanila JS variant to jQuery $(() => {}).\r\n * @param {callback} callback\r\n * @example - documentReady(() => {}).\r\n * This function is binding to document.ready\r\n * */\r\nexport function documentReady(callback: () => void) {\r\n    if (document.readyState !== \"loading\") {\r\n        return callback();\r\n    } else {\r\n        document.addEventListener(\"DOMContentLoaded\", callback);\r\n    }\r\n}\r\n"],"names":["documentReady","isCategoryPage","document","body","classList","contains","useLotteryCountdowns","LotteriesCategoryPageAnalytics","pushLoterieLobbyPage","initializeNavigationAnalytics","initializeCPWidgetBannerAnalytics","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","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","pushedItems","Set","extractCreativeFromBanner","banner","creativeElements","querySelectorAll","creativeTexts","Array","from","el","_el$textContent","textContent","trim","replace","filter","text","getHeight","setupCarouselObserver","carousel","height","observer","MutationObserver","mutations","mutation","attributeName","targetElement","target","codeName","getAttribute","itemIndex","indexOf","uniqueKey","has","add","config","attributes","childList","subtree","observe","setupBannerClickObserver","element","addEventListener","closest","banners","_banner$querySelector","isCarousel","querySelector","carouselItems","item","toString","itemCreative","bannerItem","nav","getElementById","links","link","_link$closest$querySe","navTitle","once","callback","readyState"],"sourceRoot":""}