{"version":3,"file":"js/5207.4d9d8e289e7ae8a0.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/floating/floating-display-logic.ts","webpack://@sazka/web/./js/app/floating/use-floating.ts","webpack://@sazka/web/./js/app/golden-wheel/api/gw-player-data-api.ts","webpack://@sazka/web/./js/app/golden-wheel/composables/use-gw-player-data.ts","webpack://@sazka/web/./js/app/golden-wheel/pages/rewards-page/components/bonus-wheel-modal/models/bonus-wheel-modal-models.ts","webpack://@sazka/web/./js/app/lotteries/composables/bet-success/use-bet-success.ts","webpack://@sazka/web/./js/app/questionnaires/use-questionnaires.ts","webpack://@sazka/web/./js/app/shared/http-clients/player-data-http-client.ts","webpack://@sazka/web/./js/app/tickets/api/favorite-tickets-api.ts","webpack://@sazka/web/./js/app/tickets/favorite-tickets-store.ts","webpack://@sazka/web/../../libs/design-system/src/smiles/ds-smile-static-types.ts","webpack://@sazka/web/../../libs/utils/composables/use-breakpoints.ts","webpack://@sazka/web/../../libs/utils/composables/use-media-query.ts","webpack://@sazka/web/./js/app/golden-wheel/components/gw-coins.vue?df50","webpack://@sazka/web/./js/app/golden-wheel/components/gw-coins.vue","webpack://@sazka/web/./js/app/golden-wheel/components/gw-coins.vue?6d69","webpack://@sazka/web/./js/app/golden-wheel/components/static-wheel.vue?a939","webpack://@sazka/web/./js/app/golden-wheel/components/static-wheel.vue","webpack://@sazka/web/./js/app/golden-wheel/components/static-wheel.vue?749c","webpack://@sazka/web/./js/app/lotteries/services/bet-success/api.ts","webpack://@sazka/web/./js/app/lotteries/services/bet-success/analytics-bet-success.ts","webpack://@sazka/web/./js/app/lotteries/components/bet-success/personalized-ticket.vue?2838","webpack://@sazka/web/./js/app/lotteries/components/bet-success/personalized-ticket.vue","webpack://@sazka/web/./js/app/lotteries/components/bet-success/personalized-ticket.vue?767b","webpack://@sazka/web/./js/app/lotteries/components/bet-success/bet-gold.vue?877e","webpack://@sazka/web/./js/app/lotteries/components/bet-success/bet-gold.vue","webpack://@sazka/web/./js/app/lotteries/components/bet-success/bet-gold.vue?ab5c","webpack://@sazka/web/./js/app/lotteries/components/bet-success/bet-bonus.vue?2387","webpack://@sazka/web/./js/app/lotteries/components/bet-success/bet-bonus.vue","webpack://@sazka/web/./js/app/lotteries/components/bet-success/bet-bonus.vue?7a46","webpack://@sazka/web/./js/app/lotteries/components/bet-success/bet-success-card.vue?7959","webpack://@sazka/web/./js/app/lotteries/components/bet-success/bet-success-card.vue","webpack://@sazka/web/./js/app/lotteries/components/bet-success/bet-success-card.vue?ca96","webpack://@sazka/web/./js/app/lotteries/components/bet-success/_bet-success.vue?0b69","webpack://@sazka/web/./js/app/lotteries/components/bet-success/_bet-success.vue","webpack://@sazka/web/./js/app/lotteries/components/bet-success/_bet-success.vue?fcd5","webpack://@sazka/web/./js/app/tickets/components/ticket-promo-card.vue?3b6c","webpack://@sazka/web/./js/app/tickets/components/ticket-promo-card.vue","webpack://@sazka/web/./js/app/tickets/components/ticket-promo-card.vue?8d5d","webpack://@sazka/web/../../libs/design-system/src/smiles/ds-smile-static.vue?6b5d","webpack://@sazka/web/../../libs/design-system/src/smiles/ds-smile-static.vue","webpack://@sazka/web/../../libs/design-system/src/smiles/ds-smile-static.vue?af65"],"sourcesContent":["import { useNgSession } from \"@sazka/ng/ng-session\";\r\nimport { useLocalStorage, useSessionStorage } from \"@sazka/utils/use-storage\";\r\nimport { computed } from \"vue\";\r\n\r\n// RULES:\r\n// 1) If closed, dont show again\r\n// 2) Show only once per session\r\n// 3) Show only 3 times, if user dont open / close it\r\nexport const useFloatingDisplay = (analyticsCodeName: string, loggedIn: \"\" | \"not-logged-in\" | \"logged-in\") => {\r\n const cookieKey = `floating-${analyticsCodeName}`;\r\n const cookieClosedKey = `floating-${analyticsCodeName}-closed`;\r\n const localStorage = useLocalStorage();\r\n const sessionStorage = useSessionStorage();\r\n const { isLoggedIn } = useNgSession();\r\n // logged-in rule\r\n const showBasedOnLoggedState = computed(() => {\r\n const doNotShow =\r\n (isLoggedIn.value && loggedIn === \"not-logged-in\") || (!isLoggedIn.value && loggedIn === \"logged-in\");\r\n return !doNotShow;\r\n });\r\n\r\n function shouldShow(dryRun = false): boolean {\r\n // rule 1\r\n const rule1Value = localStorage.getItem(cookieClosedKey);\r\n if (rule1Value) {\r\n return false;\r\n }\r\n\r\n // rule 2\r\n const rule2Value = sessionStorage.getItem(cookieKey);\r\n if (rule2Value) {\r\n return false;\r\n }\r\n if (!dryRun) sessionStorage.setItem(cookieKey, \"true\", \"essential\");\r\n\r\n // rule 3\r\n const rule3Value = localStorage.getItem(cookieKey);\r\n let displayedCount = rule3Value ? parseInt(rule3Value) : 0;\r\n if (isNaN(displayedCount)) {\r\n displayedCount = 0;\r\n }\r\n if (displayedCount >= 3) {\r\n return false;\r\n }\r\n displayedCount++;\r\n if (!dryRun) localStorage.setItem(cookieKey, displayedCount.toString(), \"essential\");\r\n\r\n return true;\r\n }\r\n\r\n function closed() {\r\n localStorage.setItem(cookieClosedKey, \"true\", \"essential\");\r\n }\r\n\r\n return {\r\n shouldShow,\r\n closed,\r\n showBasedOnLoggedState,\r\n };\r\n};\r\n","import { ref } from \"vue\";\r\nimport { useFloatingDisplay } from \"@/floating/floating-display-logic\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { httpClient } from \"@sazka/utils/http-clients/http-client\";\r\nimport { FloatingDto } from \"./model/floating-dto\";\r\nimport { useWecomaIntegration } from \"@sazka/utils/gdpr/use-wecoma-integration\";\r\n\r\nexport const displayExponea = ref(true);\r\n\r\nexport async function useFloatingOnOnlineBet(lottery: Lottery) {\r\n const { marketingConsented } = useWecomaIntegration();\r\n const consented = await marketingConsented();\r\n if (!consented) return;\r\n\r\n const floatingResponse = await httpClient.get<FloatingDto>(`/api/floating-element/${lottery}`);\r\n displayExponea.value = false;\r\n\r\n if (!floatingResponse.data) return;\r\n\r\n const { analyticsCodeName, loggedIn } = floatingResponse.data;\r\n\r\n const display = useFloatingDisplay(analyticsCodeName, loggedIn);\r\n if (!display.shouldShow(true)) return;\r\n\r\n (await import(\"./mount-floating\")).mount(floatingResponse.data);\r\n}\r\n\r\nexport async function useExponeaFloatingById(floatingID: number) {\r\n const { marketingConsented } = useWecomaIntegration();\r\n const consented = await marketingConsented();\r\n if (!consented) return;\r\n\r\n const floatingResponse = await httpClient.get<FloatingDto>(`/api/floating-element/exponea/${floatingID}`);\r\n\r\n if (!floatingResponse.data) return;\r\n\r\n if (displayExponea.value) {\r\n (await import(\"./mount-floating\")).mount(floatingResponse.data);\r\n }\r\n}\r\n","import { playerDataHttpClient } from \"@/shared/http-clients/player-data-http-client\";\r\nimport { GwPropositionDto } from \"./models/gw-proposition-dto\";\r\nimport { GwPlayerHistoryDto } from \"./models/gw-player-history-dto\";\r\nimport { GwRulesResponse } from \"./models/gw-rules-response\";\r\nimport { GwTaskDto } from \"./models/gw-tasks-dto\";\r\nimport { GwAwardsDto } from \"./models/gw-awards-dto\";\r\nimport { GwSpinResultDto } from \"./models/gw-spin-result-dto\";\r\nimport { BwPlayerHistoryDto } from \"./models/bw-player-history-dto\";\r\nimport { BwSpinResultDto } from \"./models/bw-spin-result-dto\";\r\nimport { BwWheelData } from \"./models/bw-wheel-data\";\r\n\r\nexport namespace GwPlayerDataApi {\r\n async function callGwPlayerDataApi<T>(playerId: string, apiName: string) {\r\n const response = await playerDataHttpClient.get<T>(`players/${playerId}/golden-wheel${apiName}`);\r\n\r\n return response.data;\r\n }\r\n\r\n export async function fethProposition(playerId: string): Promise<GwPropositionDto> {\r\n return await callGwPlayerDataApi<GwPropositionDto>(playerId, \"\");\r\n }\r\n\r\n export async function fetchPlayerHistory(playerId: string): Promise<GwPlayerHistoryDto[]> {\r\n return await callGwPlayerDataApi<GwPlayerHistoryDto[]>(playerId, \"/history\");\r\n }\r\n\r\n export async function fetchRulesUrl(playerId: string): Promise<string> {\r\n return (await callGwPlayerDataApi<GwRulesResponse>(playerId, \"/rules\"))?.url;\r\n }\r\n\r\n export async function fetchTasks(playerId: string): Promise<GwTaskDto[]> {\r\n return await callGwPlayerDataApi<GwTaskDto[]>(playerId, \"/tasks\");\r\n }\r\n\r\n export async function fetchAwards(playerId: string): Promise<GwAwardsDto> {\r\n return await callGwPlayerDataApi<GwAwardsDto>(playerId, \"/wheel\");\r\n }\r\n\r\n export async function callGwSpin(playerId: string): Promise<GwSpinResultDto> {\r\n const response = await playerDataHttpClient.post<GwSpinResultDto>(\r\n `players/${playerId}/golden-wheel/wheel/spin`\r\n );\r\n return response.data;\r\n }\r\n\r\n export async function fetchPlayerBw(playerId: string): Promise<BwWheelData> {\r\n return await callGwPlayerDataApi<BwWheelData>(playerId, \"/bonus-wheel\");\r\n }\r\n\r\n export async function fetchPlayerBwHistory(playerId: string): Promise<BwPlayerHistoryDto[]> {\r\n return await callGwPlayerDataApi<BwPlayerHistoryDto[]>(playerId, \"/bonus-wheel/history\");\r\n }\r\n\r\n export async function callBwSpin(playerId: string): Promise<BwSpinResultDto> {\r\n const response = await playerDataHttpClient.post<BwSpinResultDto>(\r\n `players/${playerId}/golden-wheel/bonus-wheel/spin`\r\n );\r\n return response.data;\r\n }\r\n}\r\n","import { useNgSession } from \"@sazka/ng/ng-session\";\r\nimport { computed, ref, readonly, watch } from \"vue\";\r\nimport { GwPlayerDataApi } from \"../api/gw-player-data-api\";\r\nimport { ngFrameworkLoaded } from \"@sazka/ng/ng-integration\";\r\nimport { GwPropositionDto } from \"../api/models/gw-proposition-dto\";\r\n\r\nconst { session, isLoggedIn } = useNgSession();\r\nconst playerId = computed(() => session.value?.PlayerID);\r\n\r\nconst maxGwPoints = 10;\r\n\r\nconst gwPlayerData = ref<GwPropositionDto>({\r\n points: 0,\r\n access: null,\r\n lastPointsChange: 0,\r\n hasBonusWheel: false,\r\n receivedCampaignPoints: false,\r\n});\r\nconst hasMaxPoints = computed(() => gwPlayerData.value?.points === maxGwPoints);\r\n\r\nconst isGwPlayerDataLoaded = ref(false);\r\nconst gwPlayerDataHasError = ref(false);\r\n\r\nasync function loadGwPlayerData() {\r\n try {\r\n const prevPointsCache = gwPlayerData.value.points;\r\n\r\n gwPlayerData.value = await GwPlayerDataApi.fethProposition(playerId.value);\r\n gwPlayerData.value.lastPointsChange = gwPlayerData.value.points - prevPointsCache;\r\n } catch (err) {\r\n gwPlayerDataHasError.value = true;\r\n console.error(err);\r\n } finally {\r\n isGwPlayerDataLoaded.value = true;\r\n }\r\n}\r\n\r\nasync function initGoldenWheelPlayerStatus() {\r\n await ngFrameworkLoaded();\r\n\r\n watch(\r\n isLoggedIn,\r\n async (loggedIn) => {\r\n if (loggedIn) {\r\n await loadGwPlayerData();\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n}\r\n\r\nfunction updateGwPoints(newPoints: number) {\r\n gwPlayerData.value.lastPointsChange = newPoints - gwPlayerData.value.points;\r\n gwPlayerData.value.points = newPoints;\r\n}\r\n\r\nlet enableInit = true;\r\nexport function useGwPlayerData(withoutInit = false) {\r\n // init data if its nessessary -> not in import file phase\r\n if (enableInit && !withoutInit) {\r\n enableInit = false;\r\n initGoldenWheelPlayerStatus();\r\n }\r\n\r\n return {\r\n isGwPlayerDataLoaded: readonly(isGwPlayerDataLoaded),\r\n gwPlayerData,\r\n hasMaxPoints,\r\n maxGwPoints,\r\n\r\n loadGwPlayerData,\r\n updateGwPoints,\r\n };\r\n}\r\n","export type BonusWheelStateType = \"HIDDEN\" | \"ACTIVE\" | \"PERMANENT\" | \"WINNING\" | \"ERROR\";\r\n\r\nexport const bwModalQueryStringKey = \"bonus-wheel\";\r\n","import { useNgSession } from \"@sazka/ng/ng-session\";\r\nimport { ref } from \"vue\";\r\n\r\nconst showSuccess = ref(false);\r\nconst multibetbetPage = ref(false);\r\nconst betPrice = ref(-1);\r\nconst betWagerId = ref(-1);\r\nconst isSubscription = ref(false);\r\nconst subscriptionId = ref(-1);\r\nconst balanceAfterBet = ref<number>();\r\n\r\nconst { balanceNumeric } = useNgSession();\r\n\r\nexport default function useBetSuccess() {\r\n const toggleShowSuccess = (\r\n price = -1,\r\n wagerId = -1,\r\n multibetbet = false,\r\n isSubscriptionBet = false,\r\n subscriptionIdBet = -1\r\n ) => {\r\n showSuccess.value = !showSuccess.value;\r\n betPrice.value = price;\r\n betWagerId.value = wagerId;\r\n multibetbetPage.value = multibetbet;\r\n isSubscription.value = isSubscriptionBet;\r\n subscriptionId.value = subscriptionIdBet;\r\n balanceAfterBet.value = balanceNumeric.value / 100 - price;\r\n };\r\n\r\n return {\r\n toggleShowSuccess,\r\n showSuccess,\r\n betPrice,\r\n betWagerId,\r\n multibetbetPage,\r\n isSubscription,\r\n subscriptionId,\r\n balanceAfterBet,\r\n };\r\n}\r\n","import { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { ngFrameworkLoaded } from \"@sazka/ng/ng-integration\";\r\nimport { httpClient } from \"@sazka/utils/http-clients/http-client\";\r\nimport { Questionnaire } from \"./model/questionnaire\";\r\nimport { useLocalStorage } from \"@sazka/utils/use-storage\";\r\nimport { ref } from \"vue\";\r\n\r\nconst storage = useLocalStorage();\r\nconst storageName = \"question-history\";\r\n\r\nexport const isQuestionnaireOpen = ref(false);\r\n\r\nexport async function useQuestionnaires() {\r\n if (\r\n !environment.nodeAliasPath ||\r\n environment.nodeAliasPath.indexOf(\"kontrola-sazky\") >= 0 ||\r\n environment.nodeAliasPath.indexOf(\"vsadit-si-online\") >= 0\r\n )\r\n return;\r\n\r\n await ngFrameworkLoaded();\r\n\r\n ng_hs.depositSucceeded(async () => {\r\n let hasClosedConfirmation = false;\r\n\r\n ng_hs.onStateChange(async (ngState) => {\r\n if (ngState === \"idle\" && !hasClosedConfirmation) {\r\n hasClosedConfirmation = true;\r\n await useQuestionnairesOnDeposit();\r\n }\r\n });\r\n });\r\n\r\n setTimeout(async () => {\r\n await callQuestionnaire();\r\n }, 2000);\r\n}\r\n\r\nexport async function useQuestionnairesOnOnlineBet(lottery: Lottery) {\r\n await callQuestionnaire(\"online-bet\", lottery);\r\n}\r\n\r\nexport async function useQuestionnairesOnTicketCheck(lottery: Lottery) {\r\n await callQuestionnaire(\"bet-check\", lottery);\r\n}\r\n\r\nwindow.useQuestionnairesOnTicketCheck = (lottery: Lottery) => {\r\n callQuestionnaire(\"bet-check\", lottery);\r\n};\r\n\r\nasync function useQuestionnairesOnDeposit() {\r\n await callQuestionnaire(\"deposit\");\r\n}\r\n\r\nasync function callQuestionnaire(type?: string, lottery?: Lottery) {\r\n if (isQuestionnaireOpen.value) {\r\n return;\r\n }\r\n\r\n let endpoint = \"\";\r\n if (type) {\r\n endpoint = type;\r\n if (lottery) {\r\n endpoint += `/${lottery}`;\r\n }\r\n } else {\r\n endpoint = `active?nodeAliasPath=${window.environment.nodeAliasPath}`;\r\n }\r\n\r\n try {\r\n const questionnaires = await httpClient.get<Questionnaire[]>(`/api/questionnaire/${endpoint}`);\r\n if (!questionnaires.data?.length) return;\r\n\r\n const seenQuestionnaires = storage.getJson<number[]>(storageName) ?? [];\r\n const questionnaireToShow = questionnaires.data.find((d) => !seenQuestionnaires?.includes(d.id));\r\n\r\n if (questionnaireToShow) {\r\n isQuestionnaireOpen.value = true;\r\n seenQuestionnaires.push(questionnaireToShow.id);\r\n storage.setJson(storageName, seenQuestionnaires, \"essential\");\r\n (await import(\"./mount-questionnaire\")).mount({ questionnaire: questionnaireToShow, placement: type });\r\n }\r\n } catch {}\r\n}\r\n\r\nexport enum ActionType {\r\n VIEW = \"view\",\r\n CLOSE = \"close\",\r\n COMPLETE = \"complete\",\r\n}\r\n\r\nexport function dataLayer(type: string, action: ActionType): void {\r\n window.dataLayer.push({\r\n event: `action.${action}.${type}`,\r\n });\r\n}\r\n","import axios, { AxiosRequestConfig } from \"axios\";\r\nimport { addSagAuthInterceptor } from \"@sazka/utils/http-clients/sag-auth-interceptor\";\r\nimport { addSessionTokenInterceptor } from \"@sazka/utils/http-clients/session-token-interceptor\";\r\nimport { useSagOptions } from \"@sazka/utils/http-clients/use-sag-options\";\r\n\r\nconst { getSagApiUrl } = useSagOptions();\r\n\r\n/**\r\n * Axios basic configuration\r\n * Some general configuration can be added like timeout, headers, params etc. More details can be found on https://github.com/axios/axios\r\n * */\r\nconst config: AxiosRequestConfig = {\r\n baseURL: appSettings[\"Integrations:Loyalty:PlayerData:LocalDev\"] ?? getSagApiUrl(\"ls-player-data-public\"),\r\n};\r\n\r\nconst playerDataHttpClient = axios.create(config);\r\n\r\n/** Adding the request interceptors */\r\naddSagAuthInterceptor(playerDataHttpClient);\r\naddSessionTokenInterceptor(playerDataHttpClient);\r\n\r\nexport { playerDataHttpClient };\r\n","import { AxiosError } from \"axios\";\r\nimport { httpClient } from \"@sazka/utils/http-clients/http-client\";\r\nimport { showAlert } from \"@sazka/design-system/src/modal-alert/mount-alert\";\r\nimport { FavoriteTicket } from \"../models/favorite-ticket\";\r\n\r\nexport const fetchFavoriteTickets = async () => {\r\n const response = await httpClient.get<FavoriteTicket[]>(\"/api/favorite-tickets\");\r\n return response.data;\r\n};\r\n\r\nexport const createFavoriteTicket = async (externalSystemID: number) => {\r\n try {\r\n const ticketResponse = await httpClient.post<FavoriteTicket>(`/api/favorite-tickets/${externalSystemID}`);\r\n return ticketResponse.data;\r\n } catch (error) {\r\n const axiosError = error as AxiosError;\r\n if (axiosError.response?.status === 405) {\r\n showAlert({ title: \"MaximálnÄ› si můžete uložit 5 online losů.\" });\r\n } else {\r\n throw error;\r\n }\r\n }\r\n};\r\n\r\nexport const deleteFavoriteTicket = async (externalSystemID: number) => {\r\n httpClient.delete(`/api/favorite-tickets/${externalSystemID}`);\r\n};\r\n\r\nexport default {\r\n fetchFavoriteTickets,\r\n createFavoriteTicket,\r\n deleteFavoriteTicket,\r\n};\r\n","import { defineStore } from \"pinia\";\r\nimport { FavoriteTicket } from \"./models/favorite-ticket\";\r\nimport api from \"./api/favorite-tickets-api\";\r\nimport { ref } from \"vue\";\r\n\r\nexport const useFavoriteTicketsStore = defineStore(\"favoriteTickets\", () => {\r\n const favoriteTickets = ref<FavoriteTicket[]>([]);\r\n const favoriteTicketsIds = ref<number[]>([]);\r\n\r\n const getFavoriteTicket = (externalSystemID: number) => {\r\n return favoriteTickets.value.find((ticket) => ticket.externalSystemID === externalSystemID);\r\n };\r\n\r\n const isFavoriteTicket = (externalSystemID: number) => favoriteTicketsIds.value.includes(externalSystemID);\r\n\r\n const loadFavoriteTickets = async () => {\r\n const favoriteTicketsResponse = await api.fetchFavoriteTickets();\r\n\r\n favoriteTickets.value = favoriteTicketsResponse;\r\n favoriteTicketsIds.value = favoriteTicketsResponse.map((ticket) => ticket.externalSystemID);\r\n };\r\n\r\n const createFavoriteTicket = async (externalSystemID: number) => {\r\n favoriteTicketsIds.value.push(externalSystemID);\r\n\r\n const ticket = await api.createFavoriteTicket(externalSystemID);\r\n if (!ticket) {\r\n favoriteTicketsIds.value = favoriteTicketsIds.value.filter((id) => id !== externalSystemID);\r\n return;\r\n }\r\n\r\n favoriteTickets.value = [...favoriteTickets.value, ticket];\r\n };\r\n\r\n const deleteFavoriteTicket = async (externalSystemID: number) => {\r\n favoriteTicketsIds.value = favoriteTicketsIds.value.filter((id) => id !== externalSystemID);\r\n favoriteTickets.value = favoriteTickets.value.filter((ticket) => ticket.externalSystemID !== externalSystemID);\r\n\r\n await api.deleteFavoriteTicket(externalSystemID);\r\n };\r\n\r\n const toggleFavoriteTicket = async (externalSystemID: number) => {\r\n if (isFavoriteTicket(externalSystemID)) {\r\n await deleteFavoriteTicket(externalSystemID);\r\n } else {\r\n await createFavoriteTicket(externalSystemID);\r\n }\r\n };\r\n return {\r\n favoriteTickets,\r\n favoriteTicketsIds,\r\n getFavoriteTicket,\r\n createFavoriteTicket,\r\n deleteFavoriteTicket,\r\n loadFavoriteTickets,\r\n isFavoriteTicket,\r\n toggleFavoriteTicket,\r\n };\r\n});\r\n","export enum DsSmileStaticFaceType {\r\n DefaultSmile = \"default-smile\",\r\n BigSmile = \"big-smile\",\r\n SmileClosedEyes = \"smile-closed-eyes\",\r\n BigSmileClosedEyes = \"big-smile-closed-eyes\",\r\n Sleeping = \"sleeping\",\r\n Tongue = \"tongue\",\r\n Blink = \"blink\",\r\n Lol = \"lol\",\r\n Pogo = \"pogo\",\r\n Amazed = \"amazed\",\r\n AmazedEyebrow = \"amazed-eyebrow\",\r\n Sad = \"sad\",\r\n SadClosedEyes = \"sad-closed-eyes\",\r\n Sick = \"sick\",\r\n Hesitant = \"hesitant\",\r\n Puffy = \"puffy\",\r\n Hearts = \"hearts\",\r\n Stars = \"stars\",\r\n}\r\n\r\nexport enum DsSmileStaticFacePosition {\r\n Center = \"center\",\r\n CenterTop = \"center-up\",\r\n CenterDown = \"center-down\",\r\n LeftUp = \"left-up\",\r\n LeftDown = \"left-down\",\r\n RightUp = \"right-up\",\r\n RightDown = \"right-down\",\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","import { ref } from \"vue\";\r\n\r\n/**\r\n * Returns a reactive reference to a boolean value that indicates whether the specified media query matches the current viewport.\r\n *\r\n * @param {string} query - The media query to be evaluated.\r\n * @return {Ref<boolean>} A reactive reference to a boolean value that indicates whether the specified media query matches the current viewport.\r\n */\r\nexport const useMediaQuery = (query: string) => {\r\n const mediaRef = ref(false);\r\n const media = window.matchMedia(query);\r\n mediaRef.value = media.matches;\r\n media.onchange = (e) => {\r\n mediaRef.value = e.matches;\r\n };\r\n\r\n return mediaRef;\r\n};\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, vShow as _vShow, normalizeStyle as _normalizeStyle, createVNode as _createVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = {\n class: \"gw-coins\",\n \"data-test\": \"zk-active-points\"\n}\nconst _hoisted_2 = [\"data-index\"]\nconst _hoisted_3 = { class: \"gw-coins__coin-text\" }\n\nimport WebpImage from \"@sazka/design-system/src/image/webp-image.vue\";\r\nimport { useGwPlayerData } from \"../composables/use-gw-player-data\";\r\nimport { watch } from \"vue\";\r\n\r\nconst delayBetweenAnimation = 0.2;\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'gw-coins',\n setup(__props) {\n\r\nconst { gwPlayerData, maxGwPoints } = useGwPlayerData();\r\n\r\n// 0.4s delay after init\r\nlet firstAnimatedIndex = -2;\r\nwatch(\r\n () => gwPlayerData.value.points,\r\n () => {\r\n firstAnimatedIndex = gwPlayerData.value.points - gwPlayerData.value.lastPointsChange + 1;\r\n }\r\n);\r\n\r\nconst getNextLoadDelay = (index: number) => {\r\n const delayIndex = index - firstAnimatedIndex;\r\n if (delayIndex < 0) {\r\n return null;\r\n }\r\n\r\n return `${delayIndex * delayBetweenAnimation}s`;\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"ul\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(maxGwPoints), (index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: index,\n class: \"gw-coins__coin\",\n \"data-index\": index\n }, [\n _withDirectives(_createVNode(WebpImage, {\n src: '/frontend/web/img/golden-wheel/gw-coins/coin.png',\n alt: 'coin',\n get2x: true,\n class: \"gw-coins__coin-image\",\n style: _normalizeStyle({ animationDelay: getNextLoadDelay(index) })\n }, null, 8, [\"style\"]), [\n [_vShow, _unref(gwPlayerData).points >= index]\n ]),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(index), 1)\n ], 8, _hoisted_2))\n }), 128))\n ]))\n}\n}\n\n})","<template>\r\n <ul class=\"gw-coins\" data-test=\"zk-active-points\">\r\n <li v-for=\"index in maxGwPoints\" :key=\"index\" class=\"gw-coins__coin\" :data-index=\"index\">\r\n <WebpImage\r\n v-show=\"gwPlayerData.points >= index\"\r\n :src=\"'/frontend/web/img/golden-wheel/gw-coins/coin.png'\"\r\n :alt=\"'coin'\"\r\n :get2x=\"true\"\r\n class=\"gw-coins__coin-image\"\r\n :style=\"{ animationDelay: getNextLoadDelay(index) }\"\r\n />\r\n <span class=\"gw-coins__coin-text\">{{ index }}</span>\r\n </li>\r\n </ul>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport WebpImage from \"@sazka/design-system/src/image/webp-image.vue\";\r\nimport { useGwPlayerData } from \"../composables/use-gw-player-data\";\r\nimport { watch } from \"vue\";\r\n\r\nconst { gwPlayerData, maxGwPoints } = useGwPlayerData();\r\n\r\n// 0.4s delay after init\r\nlet firstAnimatedIndex = -2;\r\nwatch(\r\n () => gwPlayerData.value.points,\r\n () => {\r\n firstAnimatedIndex = gwPlayerData.value.points - gwPlayerData.value.lastPointsChange + 1;\r\n }\r\n);\r\n\r\nconst delayBetweenAnimation = 0.2;\r\nconst getNextLoadDelay = (index: number) => {\r\n const delayIndex = index - firstAnimatedIndex;\r\n if (delayIndex < 0) {\r\n return null;\r\n }\r\n\r\n return `${delayIndex * delayBetweenAnimation}s`;\r\n};\r\n</script>\r\n","import script from \"./gw-coins.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./gw-coins.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"static-wheel\" }\n\nimport { computed } from \"vue\";\r\nimport WebpImage from \"@sazka/design-system/src/image/webp-image.vue\";\r\nimport { WheelType } from \"../models/wheel-types\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'static-wheel',\n props: {\n wheelType: {},\n enableAnimation: { type: Boolean }\n },\n setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst lightsOutsideSrc = computed(() =>\r\n props.enableAnimation\r\n ? \"/frontend/web/img/golden-wheel/wheel/lights-outside/lights-outside-on.png\"\r\n : \"/frontend/web/img/golden-wheel/wheel/lights-outside/lights-outside-off.png\"\r\n);\r\n\r\nconst wheelInsideSrc = computed(() => {\r\n switch (props.wheelType) {\r\n case \"Bonus\":\r\n return \"/frontend/web/img/golden-wheel/wheel/bw-static-inside-on.png\";\r\n case \"Golden\":\r\n return \"/frontend/web/img/golden-wheel/wheel/gw-static-inside-on.png\";\r\n default:\r\n return \"/frontend/web/img/golden-wheel/wheel/gw-static-inside-disabled.png\";\r\n }\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(WebpImage, {\n class: \"static-wheel__construction\",\n src: \"/frontend/web/img/golden-wheel/wheel/wheel-construction.png\",\n alt: \"\"\n }),\n _createVNode(WebpImage, {\n class: \"static-wheel__outside\",\n src: lightsOutsideSrc.value,\n alt: \"\"\n }, null, 8, [\"src\"]),\n (_ctx.enableAnimation)\n ? (_openBlock(), _createBlock(WebpImage, {\n key: 0,\n class: \"static-wheel__pointer\",\n src: \"/frontend/web/img/golden-wheel/wheel/wheel-construction-pointer.png\",\n alt: \"\"\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(WebpImage, {\n class: \"static-wheel__logo\",\n src: \"/frontend/web/img/menu/logo-sazka.svg?v=2\",\n alt: \"\"\n }),\n _createVNode(WebpImage, {\n class: _normalizeClass([\"static-wheel__inside\", _ctx.enableAnimation ? 'static-wheel__inside--spin' : '']),\n src: wheelInsideSrc.value,\n alt: \"\"\n }, null, 8, [\"src\", \"class\"])\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"static-wheel\">\r\n <WebpImage\r\n class=\"static-wheel__construction\"\r\n src=\"/frontend/web/img/golden-wheel/wheel/wheel-construction.png\"\r\n alt=\"\"\r\n />\r\n\r\n <WebpImage class=\"static-wheel__outside\" :src=\"lightsOutsideSrc\" alt=\"\" />\r\n\r\n <WebpImage\r\n v-if=\"enableAnimation\"\r\n class=\"static-wheel__pointer\"\r\n src=\"/frontend/web/img/golden-wheel/wheel/wheel-construction-pointer.png\"\r\n alt=\"\"\r\n />\r\n\r\n <WebpImage class=\"static-wheel__logo\" src=\"/frontend/web/img/menu/logo-sazka.svg?v=2\" alt=\"\" />\r\n <WebpImage\r\n class=\"static-wheel__inside\"\r\n :src=\"wheelInsideSrc\"\r\n alt=\"\"\r\n :class=\"enableAnimation ? 'static-wheel__inside--spin' : ''\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\nimport WebpImage from \"@sazka/design-system/src/image/webp-image.vue\";\r\nimport { WheelType } from \"../models/wheel-types\";\r\n\r\nconst props = defineProps<{ wheelType: WheelType; enableAnimation?: boolean }>();\r\n\r\nconst lightsOutsideSrc = computed(() =>\r\n props.enableAnimation\r\n ? \"/frontend/web/img/golden-wheel/wheel/lights-outside/lights-outside-on.png\"\r\n : \"/frontend/web/img/golden-wheel/wheel/lights-outside/lights-outside-off.png\"\r\n);\r\n\r\nconst wheelInsideSrc = computed(() => {\r\n switch (props.wheelType) {\r\n case \"Bonus\":\r\n return \"/frontend/web/img/golden-wheel/wheel/bw-static-inside-on.png\";\r\n case \"Golden\":\r\n return \"/frontend/web/img/golden-wheel/wheel/gw-static-inside-on.png\";\r\n default:\r\n return \"/frontend/web/img/golden-wheel/wheel/gw-static-inside-disabled.png\";\r\n }\r\n});\r\n</script>\r\n","import script from \"./static-wheel.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./static-wheel.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { httpClient } from \"@sazka/utils/http-clients/http-client\";\r\nimport { BetSuccessResponse } from \"../model/bet-success-response\";\r\n\r\nexport const getSuccessPageContent = async (lotteryName: string, balance: number): Promise<BetSuccessResponse> => {\r\n try {\r\n const data = await httpClient.get<BetSuccessResponse>(`/api/lotteries/bet-succes-page/${lotteryName}`, {\r\n headers: {\r\n \"s-balance\": balance.toString() /* eslint-disable-line */,\r\n },\r\n });\r\n\r\n return data.data;\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n};\r\n","import { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { BetDetail } from \"@/lotteries/model/my-tickets/bet-detail\";\r\nimport { Analytics } from \"@/shared/utils/analytics/analytics\";\r\n\r\nexport enum PromoPropsPosition {\r\n top = \"top\",\r\n right = \"right\",\r\n bottomLeft = \"bottomLeft\",\r\n bottomRight = \"bottomRight\",\r\n}\r\n\r\nexport interface PromoPropsType {\r\n id: \"upsell\" | \"upsell.elosy\";\r\n name: string;\r\n creative: string;\r\n position: PromoPropsPosition | string;\r\n}\r\n\r\nexport namespace AnalyticsBetSuccess {\r\n // ## Pages\r\n // DL1.20\r\n export const pushPurchase = (bet: BetDetail | any): void => {\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 dataLayer.push({\r\n event: \"page\",\r\n page: {\r\n type: \"purchase\",\r\n kind: \"upsell\",\r\n verticalCodeStrict: \"loterie\",\r\n verticalCode: \"loterie\",\r\n gameCodeStrict: lottery,\r\n gameCode: lottery,\r\n },\r\n order: {\r\n id: bet.id ?? bet.Id,\r\n totalValue: price,\r\n revenue: price,\r\n discout: 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: 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: \"upsell\",\r\n },\r\n ],\r\n },\r\n });\r\n };\r\n\r\n // ## Events\r\n // DL2.10\r\n export const pushBetMoney = ({\r\n lottery,\r\n price,\r\n bettingSystem,\r\n }: {\r\n lottery: Lottery;\r\n price: number;\r\n bettingSystem?: string;\r\n }): void => {\r\n dataLayer.push({\r\n event: \"action.bet.money\",\r\n action: {\r\n bet: {\r\n bettingMode: \"upsell\",\r\n gameCode: lottery,\r\n value: price,\r\n bettingSystem,\r\n },\r\n },\r\n });\r\n };\r\n\r\n // DL 2.20, DL 2.25\r\n export const pushImpressPromos = (promos: PromoPropsType[]): void => {\r\n dataLayer.push({\r\n event: \"action.impress.promos\",\r\n action: {\r\n impress: {\r\n promos: promos,\r\n },\r\n },\r\n });\r\n };\r\n\r\n // DL 2.30\r\n export const pushClickPromo = (promo: PromoPropsType): void => {\r\n 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 export const pushClickProduct = (codeName: string) => {\r\n dataLayer.push({\r\n event: \"action.show.products\",\r\n action: {\r\n show: {\r\n products: [\r\n {\r\n id: codeName,\r\n name: codeName,\r\n verticalCode: \"elosy\",\r\n placement: \"nextBestOffer\",\r\n position: \"1\",\r\n },\r\n ],\r\n },\r\n },\r\n });\r\n };\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"c-10 c-sm-8 c-sm2-4 mx-auto personalized\" }\nconst _hoisted_2 = { class: \"card card--large bet-success__card\" }\nconst _hoisted_3 = [\"innerHTML\"]\nconst _hoisted_4 = { class: \"personalized__content\" }\nconst _hoisted_5 = { class: \"personalized__ticket-wrapper\" }\n\nimport TicketPromoCard from \"@/tickets/components/ticket-promo-card.vue\";\r\nimport lottie, { AnimationItem } from \"lottie-web-light\";\r\nimport scratchJson from \"../../../../../img/lotteries/bet-success/scratch.json\";\r\nimport leftJson from \"../../../../../img/lotteries/bet-success/cloverleaf-left.json\";\r\nimport rightJson from \"../../../../../img/lotteries/bet-success/cloverleaf-right.json\";\r\nimport { onMounted, ref, onUnmounted } from \"vue\";\r\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport { useFavoriteTicketsStore } from \"@/tickets/favorite-tickets-store\";\r\nimport { TicketCardAfterBetting } from \"@/lotteries/services/model/bet-success-response\";\r\nimport { AnalyticsBetSuccess, PromoPropsPosition } from \"@/lotteries/services/bet-success/analytics-bet-success\";\r\nimport { useNgCasino } from \"@/casino/ng-casino/ng-casino-module\";\r\n\r\nconst TICKET_DELAY = 4500;\r\nconst CLOVERLEAF_DELAY = 5000;\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'personalized-ticket',\n props: {\n ticketCard: {}\n },\n setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst store = useFavoriteTicketsStore();\r\n\r\nconst pushAnalyticsOnClick = () => {\r\n AnalyticsBetSuccess.pushClickPromo({\r\n id: \"upsell.elosy\",\r\n name: props.ticketCard?.ticket.codeName,\r\n creative: props.ticketCard?.buttonText,\r\n position: PromoPropsPosition.right,\r\n });\r\n\r\n AnalyticsBetSuccess.pushClickProduct(props.ticketCard?.ticket.codeName);\r\n};\r\n\r\nconst handleTicketButtonClick = () => {\r\n pushAnalyticsOnClick();\r\n useNgCasino().loadGame({\r\n gameId: props.ticketCard?.ticket.externalSystemID,\r\n });\r\n};\r\n\r\nconst playAnimation = (json: Record<string, any>, element: HTMLElement): AnimationItem => {\r\n const animation = lottie.loadAnimation({\r\n animationData: json,\r\n renderer: \"svg\",\r\n rendererSettings: {\r\n preserveAspectRatio: \"none slice\",\r\n },\r\n loop: false,\r\n autoplay: false,\r\n container: element,\r\n });\r\n\r\n return animation;\r\n};\r\n\r\nconst ticketCardElement = ref<HTMLDivElement>(null);\r\nconst cloverleafsLeft = ref<HTMLDivElement>(null);\r\nconst cloverleafsRight = ref<HTMLDivElement>(null);\r\nconst scratchComplete = ref(false);\r\n\r\nconst pushAnalyticsImpressions = () => {\r\n AnalyticsBetSuccess.pushImpressPromos([\r\n {\r\n id: \"upsell.elosy\",\r\n name: props.ticketCard?.ticket.codeName,\r\n creative: props.ticketCard?.buttonText,\r\n position: PromoPropsPosition.right,\r\n },\r\n ]);\r\n};\r\n\r\nonMounted(() => {\r\n store.loadFavoriteTickets();\r\n const scratchAnim = playAnimation(scratchJson, ticketCardElement.value);\r\n setTimeout(() => {\r\n scratchAnim.addEventListener(\"complete\", () => {\r\n scratchAnim.destroy();\r\n scratchComplete.value = true;\r\n });\r\n scratchAnim.play();\r\n }, TICKET_DELAY);\r\n\r\n setTimeout(() => {\r\n playAnimation(leftJson, cloverleafsLeft.value).play();\r\n playAnimation(rightJson, cloverleafsRight.value).play();\r\n }, CLOVERLEAF_DELAY);\r\n\r\n pushAnalyticsImpressions();\r\n});\r\n\r\nonUnmounted(() => {\r\n lottie.destroy();\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h2\", {\n class: \"personalized__headline\",\n innerHTML: _ctx.ticketCard?.claim\n }, null, 8, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", {\n class: _normalizeClass({ personalized__scratch: !scratchComplete.value }),\n ref_key: \"ticketCardElement\",\n ref: ticketCardElement\n }, null, 2),\n _createVNode(TicketPromoCard, {\n class: \"personalized__ticket\",\n card: _ctx.ticketCard?.ticket,\n onClick: pushAnalyticsOnClick\n }, null, 8, [\"card\"])\n ]),\n _createVNode(DsButton, {\n type: \"primary\",\n onClick: handleTicketButtonClick,\n class: \"personalized__button\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.ticketCard?.buttonText), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"div\", {\n ref_key: \"cloverleafsLeft\",\n ref: cloverleafsLeft,\n class: \"personalized__cloverleafs personalized__cloverleafs--left\"\n }, null, 512),\n _createElementVNode(\"div\", {\n ref_key: \"cloverleafsRight\",\n ref: cloverleafsRight,\n class: \"personalized__cloverleafs personalized__cloverleafs--right\"\n }, null, 512)\n ])\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"c-10 c-sm-8 c-sm2-4 mx-auto personalized\">\r\n <div class=\"card card--large bet-success__card\">\r\n <h2 class=\"personalized__headline\" v-html=\"ticketCard?.claim\"></h2>\r\n <div class=\"personalized__content\">\r\n <div class=\"personalized__ticket-wrapper\">\r\n <div :class=\"{ personalized__scratch: !scratchComplete }\" ref=\"ticketCardElement\"></div>\r\n <TicketPromoCard\r\n class=\"personalized__ticket\"\r\n :card=\"ticketCard?.ticket\"\r\n @click=\"pushAnalyticsOnClick\"\r\n />\r\n </div>\r\n <DsButton type=\"primary\" @click=\"handleTicketButtonClick\" class=\"personalized__button\">{{\r\n ticketCard?.buttonText\r\n }}</DsButton>\r\n </div>\r\n <div ref=\"cloverleafsLeft\" class=\"personalized__cloverleafs personalized__cloverleafs--left\"></div>\r\n <div ref=\"cloverleafsRight\" class=\"personalized__cloverleafs personalized__cloverleafs--right\"></div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport TicketPromoCard from \"@/tickets/components/ticket-promo-card.vue\";\r\nimport lottie, { AnimationItem } from \"lottie-web-light\";\r\nimport scratchJson from \"../../../../../img/lotteries/bet-success/scratch.json\";\r\nimport leftJson from \"../../../../../img/lotteries/bet-success/cloverleaf-left.json\";\r\nimport rightJson from \"../../../../../img/lotteries/bet-success/cloverleaf-right.json\";\r\nimport { onMounted, ref, onUnmounted } from \"vue\";\r\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport { useFavoriteTicketsStore } from \"@/tickets/favorite-tickets-store\";\r\nimport { TicketCardAfterBetting } from \"@/lotteries/services/model/bet-success-response\";\r\nimport { AnalyticsBetSuccess, PromoPropsPosition } from \"@/lotteries/services/bet-success/analytics-bet-success\";\r\nimport { useNgCasino } from \"@/casino/ng-casino/ng-casino-module\";\r\n\r\nconst TICKET_DELAY = 4500;\r\nconst CLOVERLEAF_DELAY = 5000;\r\n\r\nconst props = defineProps<{\r\n ticketCard: TicketCardAfterBetting;\r\n}>();\r\n\r\nconst store = useFavoriteTicketsStore();\r\n\r\nconst pushAnalyticsOnClick = () => {\r\n AnalyticsBetSuccess.pushClickPromo({\r\n id: \"upsell.elosy\",\r\n name: props.ticketCard?.ticket.codeName,\r\n creative: props.ticketCard?.buttonText,\r\n position: PromoPropsPosition.right,\r\n });\r\n\r\n AnalyticsBetSuccess.pushClickProduct(props.ticketCard?.ticket.codeName);\r\n};\r\n\r\nconst handleTicketButtonClick = () => {\r\n pushAnalyticsOnClick();\r\n useNgCasino().loadGame({\r\n gameId: props.ticketCard?.ticket.externalSystemID,\r\n });\r\n};\r\n\r\nconst playAnimation = (json: Record<string, any>, element: HTMLElement): AnimationItem => {\r\n const animation = lottie.loadAnimation({\r\n animationData: json,\r\n renderer: \"svg\",\r\n rendererSettings: {\r\n preserveAspectRatio: \"none slice\",\r\n },\r\n loop: false,\r\n autoplay: false,\r\n container: element,\r\n });\r\n\r\n return animation;\r\n};\r\n\r\nconst ticketCardElement = ref<HTMLDivElement>(null);\r\nconst cloverleafsLeft = ref<HTMLDivElement>(null);\r\nconst cloverleafsRight = ref<HTMLDivElement>(null);\r\nconst scratchComplete = ref(false);\r\n\r\nconst pushAnalyticsImpressions = () => {\r\n AnalyticsBetSuccess.pushImpressPromos([\r\n {\r\n id: \"upsell.elosy\",\r\n name: props.ticketCard?.ticket.codeName,\r\n creative: props.ticketCard?.buttonText,\r\n position: PromoPropsPosition.right,\r\n },\r\n ]);\r\n};\r\n\r\nonMounted(() => {\r\n store.loadFavoriteTickets();\r\n const scratchAnim = playAnimation(scratchJson, ticketCardElement.value);\r\n setTimeout(() => {\r\n scratchAnim.addEventListener(\"complete\", () => {\r\n scratchAnim.destroy();\r\n scratchComplete.value = true;\r\n });\r\n scratchAnim.play();\r\n }, TICKET_DELAY);\r\n\r\n setTimeout(() => {\r\n playAnimation(leftJson, cloverleafsLeft.value).play();\r\n playAnimation(rightJson, cloverleafsRight.value).play();\r\n }, CLOVERLEAF_DELAY);\r\n\r\n pushAnalyticsImpressions();\r\n});\r\n\r\nonUnmounted(() => {\r\n lottie.destroy();\r\n});\r\n</script>\r\n","import script from \"./personalized-ticket.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./personalized-ticket.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createTextVNode as _createTextVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"bet-success__main\" }\nconst _hoisted_2 = { class: \"bet-success__heading\" }\nconst _hoisted_3 = { class: \"bet-gold\" }\nconst _hoisted_4 = {\n class: \"bet-gold__points\",\n \"data-test\": \"zk-progress-bar\"\n}\n\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport WebpImage from \"@sazka/design-system/src/image/webp-image.vue\";\r\nimport { AnalyticsBetSuccess, PromoPropsPosition } from \"@/lotteries/services/bet-success/analytics-bet-success\";\r\nimport { computed } from \"vue\";\r\nimport { useGwPlayerData } from \"@/golden-wheel/composables/use-gw-player-data\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { useMediaQuery } from \"@sazka/utils/composables/use-media-query\";\r\nimport GwCoins from \"@/golden-wheel/components/gw-coins.vue\";\r\nimport GwStaticWheel from \"@/golden-wheel/components/static-wheel.vue\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'bet-gold',\n setup(__props) {\n\r\nconst { gwPlayerData, maxGwPoints } = useGwPlayerData();\r\n\r\nconst goldWordInflected = computed(() => {\r\n const coinsRemaining = maxGwPoints - gwPlayerData.value.points;\r\n let goldenWord = \"Zlaťáků\";\r\n if (isNaN(coinsRemaining)) return \"\";\r\n else if (coinsRemaining === 1) goldenWord = \"Zlaťák\";\r\n else if (coinsRemaining > 1 && coinsRemaining < 5) goldenWord = \"Zlaťáky\";\r\n\r\n return goldenWord;\r\n});\r\n\r\nconst buttonText = computed(() =>\r\n gwPlayerData.value.points === maxGwPoints ? \"PŘEJÃT NA ZLATÉ KOLO\" : \"JAK ZÃSKÃM DALÅ Ã ZLAŤÃKY?\"\r\n);\r\n\r\nconst isLargeScreen = useMediaQuery(\"(min-width: 960px)\");\r\n\r\nconst buttonIcon = computed(() => {\r\n if (isLargeScreen.value) {\r\n return \"arrow-right\";\r\n }\r\n return \"chevron-right\";\r\n});\r\n\r\nconst handleBeforeBetGoldHref = () => {\r\n AnalyticsBetSuccess.pushClickPromo({\r\n id: \"upsell\",\r\n name: \"zlate-kolo\" as Lottery,\r\n creative: `coins:${gwPlayerData.value.points}`,\r\n position: PromoPropsPosition.top,\r\n });\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h2\", _hoisted_2, [\n (_unref(gwPlayerData).points === _unref(maxGwPoints))\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(\"A teÄ si za odmÄ›nu roztoÄte Zlaté kolo!\")\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _cache[0] || (_cache[0] = _createTextVNode(\" Chybà vám \")),\n _createVNode(WebpImage, {\n src: '/frontend/web/img/golden-wheel/gw-coins/coin.png',\n alt: 'coin',\n get2x: true,\n cssClass: ['bet-gold__coin']\n }),\n _createTextVNode(\" \" + _toDisplayString(_unref(maxGwPoints) - _unref(gwPlayerData).points) + \" \" + _toDisplayString(goldWordInflected.value) + \" k roztoÄenà kola! \", 1)\n ], 64))\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(GwStaticWheel, {\n class: \"bet-gold__wheel\",\n \"wheel-type\": \"Golden\",\n enableAnimation: _unref(gwPlayerData).points == _unref(maxGwPoints)\n }, null, 8, [\"enableAnimation\"]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(GwCoins, { class: \"bet-gold__points-coins\" }),\n _createVNode(DsButton, {\n onClick: handleBeforeBetGoldHref,\n type: \"secondary\",\n \"icon-right\": buttonIcon.value,\n href: \"/zlate-kolo/odmeny\",\n class: \"bet-gold__points-btn\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(buttonText.value), 1)\n ]),\n _: 1\n }, 8, [\"icon-right\"])\n ])\n ])\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"bet-success__main\">\r\n <h2 class=\"bet-success__heading\">\r\n <template v-if=\"gwPlayerData.points === maxGwPoints\">A teÄ si za odmÄ›nu roztoÄte Zlaté kolo!</template>\r\n <template v-else>\r\n Chybà vám\r\n <WebpImage\r\n :src=\"'/frontend/web/img/golden-wheel/gw-coins/coin.png'\"\r\n :alt=\"'coin'\"\r\n :get2x=\"true\"\r\n :cssClass=\"['bet-gold__coin']\"\r\n />\r\n {{ maxGwPoints - gwPlayerData.points }} {{ goldWordInflected }}\r\n k roztoÄenà kola!\r\n </template>\r\n </h2>\r\n <div class=\"bet-gold\">\r\n <GwStaticWheel\r\n class=\"bet-gold__wheel\"\r\n wheel-type=\"Golden\"\r\n :enableAnimation=\"gwPlayerData.points == maxGwPoints\"\r\n />\r\n <div class=\"bet-gold__points\" data-test=\"zk-progress-bar\">\r\n <GwCoins class=\"bet-gold__points-coins\" />\r\n <DsButton\r\n @click=\"handleBeforeBetGoldHref\"\r\n type=\"secondary\"\r\n :icon-right=\"buttonIcon\"\r\n href=\"/zlate-kolo/odmeny\"\r\n class=\"bet-gold__points-btn\"\r\n >\r\n {{ buttonText }}\r\n </DsButton>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport WebpImage from \"@sazka/design-system/src/image/webp-image.vue\";\r\nimport { AnalyticsBetSuccess, PromoPropsPosition } from \"@/lotteries/services/bet-success/analytics-bet-success\";\r\nimport { computed } from \"vue\";\r\nimport { useGwPlayerData } from \"@/golden-wheel/composables/use-gw-player-data\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { useMediaQuery } from \"@sazka/utils/composables/use-media-query\";\r\nimport GwCoins from \"@/golden-wheel/components/gw-coins.vue\";\r\nimport GwStaticWheel from \"@/golden-wheel/components/static-wheel.vue\";\r\n\r\nconst { gwPlayerData, maxGwPoints } = useGwPlayerData();\r\n\r\nconst goldWordInflected = computed(() => {\r\n const coinsRemaining = maxGwPoints - gwPlayerData.value.points;\r\n let goldenWord = \"Zlaťáků\";\r\n if (isNaN(coinsRemaining)) return \"\";\r\n else if (coinsRemaining === 1) goldenWord = \"Zlaťák\";\r\n else if (coinsRemaining > 1 && coinsRemaining < 5) goldenWord = \"Zlaťáky\";\r\n\r\n return goldenWord;\r\n});\r\n\r\nconst buttonText = computed(() =>\r\n gwPlayerData.value.points === maxGwPoints ? \"PŘEJÃT NA ZLATÉ KOLO\" : \"JAK ZÃSKÃM DALÅ Ã ZLAŤÃKY?\"\r\n);\r\n\r\nconst isLargeScreen = useMediaQuery(\"(min-width: 960px)\");\r\n\r\nconst buttonIcon = computed(() => {\r\n if (isLargeScreen.value) {\r\n return \"arrow-right\";\r\n }\r\n return \"chevron-right\";\r\n});\r\n\r\nconst handleBeforeBetGoldHref = () => {\r\n AnalyticsBetSuccess.pushClickPromo({\r\n id: \"upsell\",\r\n name: \"zlate-kolo\" as Lottery,\r\n creative: `coins:${gwPlayerData.value.points}`,\r\n position: PromoPropsPosition.top,\r\n });\r\n};\r\n</script>\r\n","import script from \"./bet-gold.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./bet-gold.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bet-success__main\" }\nconst _hoisted_2 = { class: \"bet-bonus\" }\nconst _hoisted_3 = {\n class: \"bet-bonus__info\",\n \"data-test\": \"zk-progress-bar\"\n}\n\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport GwStaticWheel from \"@/golden-wheel/components/static-wheel.vue\";\r\nimport { computed } from \"vue\";\r\nimport { bwModalQueryStringKey } from \"@/golden-wheel/pages/rewards-page/components/bonus-wheel-modal/models/bonus-wheel-modal-models\";\r\nimport { AnalyticsBetSuccess, PromoPropsPosition } from \"@/lotteries/services/bet-success/analytics-bet-success\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'bet-bonus',\n props: {\n ctaText: {}\n },\n setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst buttonLink = computed(() => `/zlate-kolo/odmeny?${bwModalQueryStringKey}`);\r\n\r\nconst bonusWheelBtnClick = () => {\r\n AnalyticsBetSuccess.pushClickPromo({\r\n id: \"upsell\",\r\n name: \"bonusove-kolo\",\r\n creative: props.ctaText,\r\n position: PromoPropsPosition.top,\r\n });\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(GwStaticWheel, {\n class: \"bet-bonus__wheel\",\n \"wheel-type\": \"Bonus\",\n enableAnimation: true\n }),\n _createElementVNode(\"div\", _hoisted_3, [\n _cache[0] || (_cache[0] = _createElementVNode(\"h3\", { class: \"bet-bonus__info-header\" }, [\n _createTextVNode(\" RoztoÄte Bonusové kolo, extra odmÄ›ny ÄekajÃ. \"),\n _createElementVNode(\"span\", { class: \"bet-bonus__info-note\" }, \"VyzvednÄ›te je na stránce Zlatého kola.\")\n ], -1)),\n _createVNode(DsButton, {\n type: \"secondary\",\n theme: \"dark\",\n \"icon-right\": \"chevron-right\",\n href: buttonLink.value,\n class: \"bet-bonus__info-btn\",\n onClick: bonusWheelBtnClick\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.ctaText), 1)\n ]),\n _: 1\n }, 8, [\"href\"])\n ])\n ])\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"bet-success__main\">\r\n <div class=\"bet-bonus\">\r\n <GwStaticWheel class=\"bet-bonus__wheel\" wheel-type=\"Bonus\" :enableAnimation=\"true\" />\r\n <div class=\"bet-bonus__info\" data-test=\"zk-progress-bar\">\r\n <h3 class=\"bet-bonus__info-header\">\r\n RoztoÄte Bonusové kolo, extra odmÄ›ny ÄekajÃ.\r\n <span class=\"bet-bonus__info-note\">VyzvednÄ›te je na stránce Zlatého kola.</span>\r\n </h3>\r\n\r\n <DsButton\r\n type=\"secondary\"\r\n theme=\"dark\"\r\n icon-right=\"chevron-right\"\r\n :href=\"buttonLink\"\r\n class=\"bet-bonus__info-btn\"\r\n @click=\"bonusWheelBtnClick\"\r\n >\r\n {{ ctaText }}\r\n </DsButton>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport GwStaticWheel from \"@/golden-wheel/components/static-wheel.vue\";\r\nimport { computed } from \"vue\";\r\nimport { bwModalQueryStringKey } from \"@/golden-wheel/pages/rewards-page/components/bonus-wheel-modal/models/bonus-wheel-modal-models\";\r\nimport { AnalyticsBetSuccess, PromoPropsPosition } from \"@/lotteries/services/bet-success/analytics-bet-success\";\r\n\r\nconst props = defineProps<{\r\n ctaText: string;\r\n}>();\r\n\r\nconst buttonLink = computed(() => `/zlate-kolo/odmeny?${bwModalQueryStringKey}`);\r\n\r\nconst bonusWheelBtnClick = () => {\r\n AnalyticsBetSuccess.pushClickPromo({\r\n id: \"upsell\",\r\n name: \"bonusove-kolo\",\r\n creative: props.ctaText,\r\n position: PromoPropsPosition.top,\r\n });\r\n};\r\n</script>\r\n","import script from \"./bet-bonus.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./bet-bonus.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, unref as _unref, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"c-12 c-sm-10 c-sm2-6 c-md-5\" }\nconst _hoisted_2 = { class: \"card card--large bet-success__card\" }\nconst _hoisted_3 = [\"data-test-exponea-offers\"]\n\nimport QuickBetCard from \"../shared/quick-bet.vue\";\r\nimport { useGwPlayerData } from \"@/golden-wheel/composables/use-gw-player-data\";\r\nimport {\r\n AnalyticsBetSuccess,\r\n PromoPropsPosition,\r\n PromoPropsType,\r\n} from \"@/lotteries/services/bet-success/analytics-bet-success\";\r\nimport { computed, onMounted } from \"vue\";\r\nimport { LotteryCardAfterBetting, multibetBetName } from \"@/lotteries/services/model/bet-success-response\";\r\nimport BetGold from \"./bet-gold.vue\";\r\nimport { LotteryCheckout } from \"@/lotteries/online/shared/lottery-checkout/lottery-checkout\";\r\nimport { QuickBet } from \"@/lotteries/online/shared/quick-wager\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport BetBonus from \"./bet-bonus.vue\";\r\n\r\nconst bonusWheelCtaText = \"RoztoÄit bonusové kolo\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'bet-success-card',\n props: {\n pageAfterBetting: {},\n exponeaOffers: { type: Boolean }\n },\n setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst { gwPlayerData } = useGwPlayerData();\r\nconst goldenWheelEnabled = computed(\r\n () => (!gwPlayerData.value.access?.denied && !gwPlayerData.value.hasBonusWheel) ?? false\r\n);\r\n\r\nconst bonusWheelEnabled = computed(\r\n () => (!gwPlayerData.value.access?.denied && gwPlayerData.value.hasBonusWheel) ?? false\r\n);\r\n\r\nconst pushAnalyticsImpressions = () => {\r\n const promos = [\r\n {\r\n id: \"upsell\",\r\n name: props.pageAfterBetting?.lotteryLeft?.randomWager?.lottery,\r\n creative: `Vsadit za ${props.pageAfterBetting?.lotteryLeft?.randomWager?.price} KÄ`,\r\n position: PromoPropsPosition.bottomLeft,\r\n },\r\n {\r\n id: \"upsell\",\r\n name: props.pageAfterBetting?.lotteryRight?.randomWager?.lottery,\r\n creative: `Vsadit za ${props.pageAfterBetting?.lotteryRight?.randomWager?.price} KÄ`,\r\n position: PromoPropsPosition.bottomRight,\r\n },\r\n ] as PromoPropsType[];\r\n\r\n if (goldenWheelEnabled.value) {\r\n promos.push({\r\n id: \"upsell\",\r\n name: \"zlate-kolo\",\r\n creative: `coins:${gwPlayerData.value.points}`,\r\n position: PromoPropsPosition.top,\r\n });\r\n } else if (bonusWheelEnabled.value) {\r\n promos.push({\r\n id: \"upsell\",\r\n name: \"bonusove-kolo\",\r\n creative: bonusWheelCtaText,\r\n position: PromoPropsPosition.top,\r\n });\r\n }\r\n\r\n AnalyticsBetSuccess.pushImpressPromos(promos);\r\n};\r\n\r\nconst betCheckout = async (quickBet: QuickBet, _: string, showSuccess: () => void) => {\r\n if (!quickBet) return;\r\n\r\n const wagerId = quickBet?.randomWager?.randomWagerID;\r\n const isMultibet = quickBet?.randomWager?.lottery === multibetBetName;\r\n const checkoutEndpoint = isMultibet\r\n ? `/multiwager/after-bet-random-wager/${wagerId}`\r\n : `/after-bet-random-wager/${wagerId}`;\r\n\r\n const checkout = new LotteryCheckout({\r\n key: `after-bet-${quickBet.randomWager.randomWagerID}`,\r\n useDefaultAnalytics: false,\r\n betServiceUrl: checkoutEndpoint,\r\n getCost: () => quickBet?.randomWager?.price * 100,\r\n });\r\n\r\n const betResponse = await checkout.start();\r\n showSuccess();\r\n\r\n const wagers = isMultibet ? betResponse.Payload.Wagers : [betResponse.Payload.Wager];\r\n wagers.forEach((wager) => {\r\n const lottery = LotteryUtils.parseLotteryName(wager.lottery ?? wager.Lottery);\r\n const price = wager.price ?? wager.Price;\r\n AnalyticsBetSuccess.pushPurchase(wager);\r\n AnalyticsBetSuccess.pushBetMoney({\r\n lottery,\r\n price,\r\n bettingSystem: isMultibet ? \"multibets\" : undefined,\r\n });\r\n });\r\n};\r\n\r\nconst betClick = (name: string, buttonText: string, position: string) => {\r\n AnalyticsBetSuccess.pushClickPromo({\r\n id: \"upsell\",\r\n name: name,\r\n creative: buttonText,\r\n position: position,\r\n });\r\n};\r\n\r\nonMounted(() => {\r\n pushAnalyticsImpressions();\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (goldenWheelEnabled.value)\n ? (_openBlock(), _createBlock(BetGold, { key: 0 }))\n : (bonusWheelEnabled.value)\n ? (_openBlock(), _createBlock(BetBonus, {\n key: 1,\n \"cta-text\": bonusWheelCtaText\n }))\n : _createCommentVNode(\"\", true),\n _cache[0] || (_cache[0] = _createElementVNode(\"h2\", { class: \"bet-success__heading\" }, \"Nebo zkuste dalÅ¡Ã sázku:\", -1)),\n _createElementVNode(\"div\", {\n \"data-test-exponea-offers\": _ctx.exponeaOffers.toString(),\n class: \"bet-success__next-container\"\n }, [\n (_ctx.pageAfterBetting?.lotteryLeft)\n ? (_openBlock(), _createBlock(QuickBetCard, {\n key: 0,\n quickBet: _ctx.pageAfterBetting?.lotteryLeft,\n position: _unref(PromoPropsPosition).bottomLeft,\n onFirstClick: betClick,\n onBetConfirm: betCheckout\n }, null, 8, [\"quickBet\", \"position\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.pageAfterBetting?.lotteryRight)\n ? (_openBlock(), _createBlock(QuickBetCard, {\n key: 1,\n quickBet: _ctx.pageAfterBetting?.lotteryRight,\n position: _unref(PromoPropsPosition).bottomRight,\n onFirstClick: betClick,\n onBetConfirm: betCheckout\n }, null, 8, [\"quickBet\", \"position\"]))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"c-12 c-sm-10 c-sm2-6 c-md-5\">\r\n <div class=\"card card--large bet-success__card\">\r\n <BetGold v-if=\"goldenWheelEnabled\" />\r\n <BetBonus v-else-if=\"bonusWheelEnabled\" :cta-text=\"bonusWheelCtaText\" />\r\n <h2 class=\"bet-success__heading\">Nebo zkuste dalÅ¡Ã sázku:</h2>\r\n <div :data-test-exponea-offers=\"exponeaOffers.toString()\" class=\"bet-success__next-container\">\r\n <QuickBetCard\r\n v-if=\"pageAfterBetting?.lotteryLeft\"\r\n :quickBet=\"pageAfterBetting?.lotteryLeft\"\r\n :position=\"PromoPropsPosition.bottomLeft\"\r\n @first-click=\"betClick\"\r\n @bet-confirm=\"betCheckout\"\r\n />\r\n <QuickBetCard\r\n v-if=\"pageAfterBetting?.lotteryRight\"\r\n :quickBet=\"pageAfterBetting?.lotteryRight\"\r\n :position=\"PromoPropsPosition.bottomRight\"\r\n @first-click=\"betClick\"\r\n @bet-confirm=\"betCheckout\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport QuickBetCard from \"../shared/quick-bet.vue\";\r\nimport { useGwPlayerData } from \"@/golden-wheel/composables/use-gw-player-data\";\r\nimport {\r\n AnalyticsBetSuccess,\r\n PromoPropsPosition,\r\n PromoPropsType,\r\n} from \"@/lotteries/services/bet-success/analytics-bet-success\";\r\nimport { computed, onMounted } from \"vue\";\r\nimport { LotteryCardAfterBetting, multibetBetName } from \"@/lotteries/services/model/bet-success-response\";\r\nimport BetGold from \"./bet-gold.vue\";\r\nimport { LotteryCheckout } from \"@/lotteries/online/shared/lottery-checkout/lottery-checkout\";\r\nimport { QuickBet } from \"@/lotteries/online/shared/quick-wager\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport BetBonus from \"./bet-bonus.vue\";\r\n\r\nconst bonusWheelCtaText = \"RoztoÄit bonusové kolo\";\r\n\r\nconst props = defineProps<{\r\n pageAfterBetting: LotteryCardAfterBetting;\r\n exponeaOffers: boolean;\r\n}>();\r\n\r\nconst { gwPlayerData } = useGwPlayerData();\r\nconst goldenWheelEnabled = computed(\r\n () => (!gwPlayerData.value.access?.denied && !gwPlayerData.value.hasBonusWheel) ?? false\r\n);\r\n\r\nconst bonusWheelEnabled = computed(\r\n () => (!gwPlayerData.value.access?.denied && gwPlayerData.value.hasBonusWheel) ?? false\r\n);\r\n\r\nconst pushAnalyticsImpressions = () => {\r\n const promos = [\r\n {\r\n id: \"upsell\",\r\n name: props.pageAfterBetting?.lotteryLeft?.randomWager?.lottery,\r\n creative: `Vsadit za ${props.pageAfterBetting?.lotteryLeft?.randomWager?.price} KÄ`,\r\n position: PromoPropsPosition.bottomLeft,\r\n },\r\n {\r\n id: \"upsell\",\r\n name: props.pageAfterBetting?.lotteryRight?.randomWager?.lottery,\r\n creative: `Vsadit za ${props.pageAfterBetting?.lotteryRight?.randomWager?.price} KÄ`,\r\n position: PromoPropsPosition.bottomRight,\r\n },\r\n ] as PromoPropsType[];\r\n\r\n if (goldenWheelEnabled.value) {\r\n promos.push({\r\n id: \"upsell\",\r\n name: \"zlate-kolo\",\r\n creative: `coins:${gwPlayerData.value.points}`,\r\n position: PromoPropsPosition.top,\r\n });\r\n } else if (bonusWheelEnabled.value) {\r\n promos.push({\r\n id: \"upsell\",\r\n name: \"bonusove-kolo\",\r\n creative: bonusWheelCtaText,\r\n position: PromoPropsPosition.top,\r\n });\r\n }\r\n\r\n AnalyticsBetSuccess.pushImpressPromos(promos);\r\n};\r\n\r\nconst betCheckout = async (quickBet: QuickBet, _: string, showSuccess: () => void) => {\r\n if (!quickBet) return;\r\n\r\n const wagerId = quickBet?.randomWager?.randomWagerID;\r\n const isMultibet = quickBet?.randomWager?.lottery === multibetBetName;\r\n const checkoutEndpoint = isMultibet\r\n ? `/multiwager/after-bet-random-wager/${wagerId}`\r\n : `/after-bet-random-wager/${wagerId}`;\r\n\r\n const checkout = new LotteryCheckout({\r\n key: `after-bet-${quickBet.randomWager.randomWagerID}`,\r\n useDefaultAnalytics: false,\r\n betServiceUrl: checkoutEndpoint,\r\n getCost: () => quickBet?.randomWager?.price * 100,\r\n });\r\n\r\n const betResponse = await checkout.start();\r\n showSuccess();\r\n\r\n const wagers = isMultibet ? betResponse.Payload.Wagers : [betResponse.Payload.Wager];\r\n wagers.forEach((wager) => {\r\n const lottery = LotteryUtils.parseLotteryName(wager.lottery ?? wager.Lottery);\r\n const price = wager.price ?? wager.Price;\r\n AnalyticsBetSuccess.pushPurchase(wager);\r\n AnalyticsBetSuccess.pushBetMoney({\r\n lottery,\r\n price,\r\n bettingSystem: isMultibet ? \"multibets\" : undefined,\r\n });\r\n });\r\n};\r\n\r\nconst betClick = (name: string, buttonText: string, position: string) => {\r\n AnalyticsBetSuccess.pushClickPromo({\r\n id: \"upsell\",\r\n name: name,\r\n creative: buttonText,\r\n position: position,\r\n });\r\n};\r\n\r\nonMounted(() => {\r\n pushAnalyticsImpressions();\r\n});\r\n</script>\r\n","import script from \"./bet-success-card.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./bet-success-card.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vShow as _vShow, normalizeClass as _normalizeClass, withDirectives as _withDirectives, createTextVNode as _createTextVNode, Fragment as _Fragment, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = [\"data-wager-id\", \"data-subscription-id\"]\nconst _hoisted_2 = { class: \"bs-container bet-success__container\" }\nconst _hoisted_3 = { class: \"bet-success__confirmation\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = [\"poster\"]\nconst _hoisted_6 = [\"src\"]\nconst _hoisted_7 = [\"src\"]\nconst _hoisted_8 = [\"poster\"]\nconst _hoisted_9 = [\"src\"]\nconst _hoisted_10 = [\"src\"]\nconst _hoisted_11 = [\"innerHTML\"]\nconst _hoisted_12 = [\"innerHTML\"]\nconst _hoisted_13 = [\"innerHTML\"]\nconst _hoisted_14 = [\"innerHTML\"]\n\nimport { onUnmounted, watch, reactive, computed, ref, nextTick } from \"vue\";\r\nimport useBetSuccess from \"../../composables/bet-success/use-bet-success\";\r\nimport { useGwPlayerData } from \"@/golden-wheel/composables/use-gw-player-data\";\r\nimport { getSuccessPageContent } from \"../../services/bet-success/api\";\r\nimport { BetSuccessResponse, multibetBetName } from \"../../services/model/bet-success-response\";\r\nimport { useFloatingOnOnlineBet } from \"@/floating/use-floating\";\r\nimport { useQuestionnairesOnOnlineBet } from \"@/questionnaires/use-questionnaires\";\r\nimport { ResponsiveUtils } from \"@sazka/utils/responsive-utils\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { useNgSession } from \"@sazka/ng/ng-session\";\r\nimport { StringUtils } from \"@sazka/utils/string-utils\";\r\nimport PersonalizedTicket from \"./personalized-ticket.vue\";\r\nimport BetSuccessCard from \"./bet-success-card.vue\";\r\n\r\nenum VideoComponent {\r\n video,\r\n fallback,\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: '_bet-success',\n props: {\n lottery: {},\n isSubscription: { type: Boolean }\n },\n setup(__props: any) {\n\r\nconst parseVideo = (videoAndFallback: string | undefined, toPick: VideoComponent): string => {\r\n if (!videoAndFallback) return \"\";\r\n return videoAndFallback.split(\"|\")[toPick];\r\n};\r\n\r\n// eslint-disable-next-line vue/no-dupe-keys\r\nconst {\r\n toggleShowSuccess,\r\n showSuccess,\r\n betPrice,\r\n multibetbetPage,\r\n betWagerId,\r\n isSubscription,\r\n subscriptionId,\r\n balanceAfterBet,\r\n} = useBetSuccess();\r\nconst { isLoggedIn } = useNgSession();\r\n\r\nconst props = __props;\r\n\r\nconst loopVisible = ref(false);\r\n\r\nconst { gwPlayerData } = useGwPlayerData();\r\n\r\nconst displayName = computed(() =>\r\n multibetbetPage.value ? \"Multisázenka\" : LotteryUtils.lotteryDisplayName(props.lottery)\r\n);\r\n\r\nconst noGoldenWheel = computed(() => gwPlayerData.value.access?.denied ?? true);\r\n\r\nconst content = reactive<BetSuccessResponse>({\r\n kulicnik: null,\r\n cardAfterBetting: null,\r\n subscriptionTexts: null,\r\n});\r\n\r\nconst displayLoop = ref(false);\r\nconst startAnimations = ref(false);\r\nconst finishedAnimations = ref(false);\r\nconst fallbackImageWebm = ref(\"\");\r\nconst fallbackImageMov = ref(\"\");\r\nconst fallbackImageWebmLoop = ref(\"\");\r\nconst fallbackImageMovLoop = ref(\"\");\r\n\r\nconst handleSwithToLoop = () => {\r\n setTimeout(() => {\r\n displayLoop.value = true;\r\n setTimeout(() => {\r\n fallbackImageWebmLoop.value = parseVideo(content.kulicnik?.webmLoop, VideoComponent.fallback);\r\n fallbackImageMovLoop.value = parseVideo(content.kulicnik?.movLoop, VideoComponent.fallback);\r\n }, 500);\r\n }, 5500);\r\n};\r\n\r\nwatch(isLoggedIn, (newIsLoggedIn) => {\r\n // If user logs out on betSuccess page then redirect to HP\r\n if (!newIsLoggedIn && showSuccess.value) {\r\n document.location.href = \"/\";\r\n }\r\n});\r\n\r\nwatch(showSuccess, async () => {\r\n if (showSuccess.value) {\r\n $(\"#game-content-all\").addClass(\"success\");\r\n $(\".bet-success-wrap\").addClass(\"bet-success-wrap--show\");\r\n $(\"body\").addClass(\"success\");\r\n if (multibetbetPage.value) $(\".multiwager-detail\").addClass(\"success\");\r\n $(window).scrollTop(0);\r\n\r\n const lotteryCodeName = multibetbetPage.value ? multibetBetName : props.lottery;\r\n const data = await getSuccessPageContent(lotteryCodeName, balanceAfterBet.value);\r\n content.kulicnik = data?.kulicnik;\r\n content.cardAfterBetting = data?.cardAfterBetting;\r\n content.subscriptionTexts = data?.subscriptionTexts;\r\n content.subscriptionTexts.title = content.subscriptionTexts.title.replace(\r\n \"{0}\",\r\n StringUtils.formatCurrency(betPrice.value, true)\r\n );\r\n startAnimations.value = true;\r\n\r\n document.body.classList.remove(\"narrow-container\");\r\n\r\n await nextTick();\r\n handleSwithToLoop();\r\n\r\n // Delay for fallback images so it is not shown while video is being loaded\r\n setTimeout(() => {\r\n fallbackImageWebm.value = parseVideo(content.kulicnik?.webm, VideoComponent.fallback);\r\n fallbackImageMov.value = parseVideo(content.kulicnik?.mov, VideoComponent.fallback);\r\n }, 500);\r\n\r\n if (!multibetbetPage.value) {\r\n setTimeout(() => useQuestionnairesOnOnlineBet(environment.game), 7000);\r\n useFloatingOnOnlineBet(environment.game);\r\n }\r\n\r\n setTimeout(() => {\r\n startAnimations.value = false;\r\n finishedAnimations.value = true;\r\n }, 5000);\r\n }\r\n});\r\n\r\nconst isMovSupported = ResponsiveUtils.isMovSupported();\r\n\r\nonUnmounted(() => {\r\n toggleShowSuccess();\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(showSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: \"bet-success\",\n \"data-wager-id\": _unref(betWagerId),\n \"data-test\": \"dialog-success\",\n \"data-subscription-id\": _unref(subscriptionId)\n }, [\n _cache[4] || (_cache[4] = _createElementVNode(\"a\", {\n class: \"btn btn-link ico-a-arrow-right bet-success__mine-bets\",\n href: \"/moje-sazky\"\n }, \"Moje sázky\", -1)),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"bs-row\", {\r\n 'start-animation': startAnimations.value,\r\n 'finished-animation': finishedAnimations.value,\r\n }])\n }, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"c-12 c-sm-10 c-sm2-6\", content?.cardAfterBetting?.ticketCard ? 'mx-sm-auto' : 'c-md-5 bs-offset-md-1'])\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (startAnimations.value || finishedAnimations.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _withDirectives(_createElementVNode(\"video\", {\n id: \"bet-success-main-video\",\n alt: \"kulicnik animation\",\n muted: \"\",\n constrols: \"false\",\n playsinline: \"\",\n autoplay: \"\",\n preload: \"auto\",\n class: _normalizeClass([\"bet-success__video bet-success__video--main\", { 'bet-success__video--no-wheel': noGoldenWheel.value }]),\n poster: _unref(isMovSupported) ? fallbackImageMov.value : fallbackImageWebm.value\n }, [\n (_unref(isMovSupported))\n ? (_openBlock(), _createElementBlock(\"source\", {\n key: 0,\n src: parseVideo(content?.kulicnik?.mov, VideoComponent.video),\n type: \"video/mp4\"\n }, null, 8, _hoisted_6))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"source\", {\n src: parseVideo(content?.kulicnik?.webm, VideoComponent.video),\n type: \"video/webm\"\n }, null, 8, _hoisted_7)\n ], 10, _hoisted_5), [\n [_vShow, !displayLoop.value]\n ]),\n _withDirectives(_createElementVNode(\"video\", {\n alt: \"kulicnik loop animation\",\n id: \"bet-success-loop\",\n muted: \"\",\n constrols: \"false\",\n playsinline: \"\",\n autoplay: \"\",\n preload: \"auto\",\n class: _normalizeClass([\"bet-success__video bet-success__video--loop\", {\r\n 'bet-success__video--no-wheel': noGoldenWheel.value,\r\n 'bet-success__video--loop-visible': loopVisible.value,\r\n }]),\n loop: \"\",\n poster: _unref(isMovSupported) ? fallbackImageWebmLoop.value : fallbackImageWebmLoop.value\n }, [\n (_unref(isMovSupported))\n ? (_openBlock(), _createElementBlock(\"source\", {\n key: 0,\n src: parseVideo(content?.kulicnik?.movLoop, VideoComponent.video),\n type: \"video/mp4\"\n }, null, 8, _hoisted_9))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"source\", {\n src: parseVideo(content?.kulicnik?.webmLoop, VideoComponent.video),\n type: \"video/webm\"\n }, null, 8, _hoisted_10)\n ], 10, _hoisted_8), [\n [_vShow, displayLoop.value]\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"h1\", {\n class: _normalizeClass([\"bet-success__main-heading\", { 'bet-success__main-heading--no-wheel': noGoldenWheel.value }]),\n \"data-test\": \"success-title\"\n }, [\n (_unref(isSubscription))\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createElementVNode(\"span\", {\n innerHTML: content?.subscriptionTexts?.title\n }, null, 8, _hoisted_11),\n _cache[0] || (_cache[0] = _createTextVNode()),\n _cache[1] || (_cache[1] = _createElementVNode(\"br\", null, null, -1))\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"span\", {\n innerHTML: content?.kulicnik?.text\n }, null, 8, _hoisted_12),\n _cache[2] || (_cache[2] = _createTextVNode()),\n _cache[3] || (_cache[3] = _createElementVNode(\"br\", null, null, -1)),\n _createElementVNode(\"span\", {\n innerHTML: `${displayName.value} za ${_unref(StringUtils).formatCurrency(_unref(betPrice), true)}`,\n class: \"bet-success__price\"\n }, null, 8, _hoisted_13)\n ], 64))\n ], 2),\n (_unref(isSubscription))\n ? (_openBlock(), _createElementBlock(\"p\", {\n key: 1,\n class: \"bet-success__heading-subtitle\",\n innerHTML: content?.subscriptionTexts?.text\n }, null, 8, _hoisted_14))\n : _createCommentVNode(\"\", true)\n ])\n ], 2),\n (content?.cardAfterBetting?.lotteryCard)\n ? (_openBlock(), _createBlock(BetSuccessCard, {\n key: 0,\n \"page-after-betting\": content?.cardAfterBetting.lotteryCard,\n \"exponea-offers\": content?.cardAfterBetting.exponeaOffers\n }, null, 8, [\"page-after-betting\", \"exponea-offers\"]))\n : (content?.cardAfterBetting?.ticketCard)\n ? (_openBlock(), _createBlock(PersonalizedTicket, {\n key: 1,\n ticketCard: content?.cardAfterBetting?.ticketCard\n }, null, 8, [\"ticketCard\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ], 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","<template>\r\n <div\r\n class=\"bet-success\"\r\n v-if=\"showSuccess\"\r\n :data-wager-id=\"betWagerId\"\r\n data-test=\"dialog-success\"\r\n :data-subscription-id=\"subscriptionId\"\r\n >\r\n <a class=\"btn btn-link ico-a-arrow-right bet-success__mine-bets\" href=\"/moje-sazky\">Moje sázky</a>\r\n <div class=\"bs-container bet-success__container\">\r\n <div\r\n class=\"bs-row\"\r\n :class=\"{\r\n 'start-animation': startAnimations,\r\n 'finished-animation': finishedAnimations,\r\n }\"\r\n >\r\n <div\r\n class=\"c-12 c-sm-10 c-sm2-6\"\r\n :class=\"content?.cardAfterBetting?.ticketCard ? 'mx-sm-auto' : 'c-md-5 bs-offset-md-1'\"\r\n >\r\n <div class=\"bet-success__confirmation\">\r\n <div v-if=\"startAnimations || finishedAnimations\">\r\n <video\r\n id=\"bet-success-main-video\"\r\n alt=\"kulicnik animation\"\r\n muted\r\n constrols=\"false\"\r\n playsinline\r\n autoplay\r\n preload=\"auto\"\r\n class=\"bet-success__video bet-success__video--main\"\r\n :poster=\"isMovSupported ? fallbackImageMov : fallbackImageWebm\"\r\n :class=\"{ 'bet-success__video--no-wheel': noGoldenWheel }\"\r\n v-show=\"!displayLoop\"\r\n >\r\n <source\r\n :src=\"parseVideo(content?.kulicnik?.mov, VideoComponent.video)\"\r\n type=\"video/mp4\"\r\n v-if=\"isMovSupported\"\r\n />\r\n <source\r\n :src=\"parseVideo(content?.kulicnik?.webm, VideoComponent.video)\"\r\n type=\"video/webm\"\r\n />\r\n </video>\r\n <video\r\n alt=\"kulicnik loop animation\"\r\n id=\"bet-success-loop\"\r\n muted\r\n constrols=\"false\"\r\n playsinline\r\n autoplay\r\n preload=\"auto\"\r\n class=\"bet-success__video bet-success__video--loop\"\r\n :class=\"{\r\n 'bet-success__video--no-wheel': noGoldenWheel,\r\n 'bet-success__video--loop-visible': loopVisible,\r\n }\"\r\n loop\r\n :poster=\"isMovSupported ? fallbackImageWebmLoop : fallbackImageWebmLoop\"\r\n v-show=\"displayLoop\"\r\n >\r\n <source\r\n :src=\"parseVideo(content?.kulicnik?.movLoop, VideoComponent.video)\"\r\n type=\"video/mp4\"\r\n v-if=\"isMovSupported\"\r\n />\r\n <source\r\n :src=\"parseVideo(content?.kulicnik?.webmLoop, VideoComponent.video)\"\r\n type=\"video/webm\"\r\n />\r\n </video>\r\n </div>\r\n <h1\r\n class=\"bet-success__main-heading\"\r\n :class=\"{ 'bet-success__main-heading--no-wheel': noGoldenWheel }\"\r\n data-test=\"success-title\"\r\n >\r\n <template v-if=\"isSubscription\">\r\n <span v-html=\"content?.subscriptionTexts?.title\"></span> <br />\r\n </template>\r\n <template v-else>\r\n <span v-html=\"content?.kulicnik?.text\"></span> <br />\r\n <span\r\n v-html=\"`${displayName} za ${StringUtils.formatCurrency(betPrice, true)}`\"\r\n class=\"bet-success__price\"\r\n ></span>\r\n </template>\r\n </h1>\r\n <p\r\n v-if=\"isSubscription\"\r\n class=\"bet-success__heading-subtitle\"\r\n v-html=\"content?.subscriptionTexts?.text\"\r\n ></p>\r\n </div>\r\n </div>\r\n <BetSuccessCard\r\n v-if=\"content?.cardAfterBetting?.lotteryCard\"\r\n :page-after-betting=\"content?.cardAfterBetting.lotteryCard\"\r\n :exponea-offers=\"content?.cardAfterBetting.exponeaOffers\"\r\n />\r\n <PersonalizedTicket\r\n v-else-if=\"content?.cardAfterBetting?.ticketCard\"\r\n :ticketCard=\"content?.cardAfterBetting?.ticketCard\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { onUnmounted, watch, reactive, computed, ref, nextTick } from \"vue\";\r\nimport useBetSuccess from \"../../composables/bet-success/use-bet-success\";\r\nimport { useGwPlayerData } from \"@/golden-wheel/composables/use-gw-player-data\";\r\nimport { getSuccessPageContent } from \"../../services/bet-success/api\";\r\nimport { BetSuccessResponse, multibetBetName } from \"../../services/model/bet-success-response\";\r\nimport { useFloatingOnOnlineBet } from \"@/floating/use-floating\";\r\nimport { useQuestionnairesOnOnlineBet } from \"@/questionnaires/use-questionnaires\";\r\nimport { ResponsiveUtils } from \"@sazka/utils/responsive-utils\";\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { useNgSession } from \"@sazka/ng/ng-session\";\r\nimport { StringUtils } from \"@sazka/utils/string-utils\";\r\nimport PersonalizedTicket from \"./personalized-ticket.vue\";\r\nimport BetSuccessCard from \"./bet-success-card.vue\";\r\n\r\nenum VideoComponent {\r\n video,\r\n fallback,\r\n}\r\n\r\nconst parseVideo = (videoAndFallback: string | undefined, toPick: VideoComponent): string => {\r\n if (!videoAndFallback) return \"\";\r\n return videoAndFallback.split(\"|\")[toPick];\r\n};\r\n\r\n// eslint-disable-next-line vue/no-dupe-keys\r\nconst {\r\n toggleShowSuccess,\r\n showSuccess,\r\n betPrice,\r\n multibetbetPage,\r\n betWagerId,\r\n isSubscription,\r\n subscriptionId,\r\n balanceAfterBet,\r\n} = useBetSuccess();\r\nconst { isLoggedIn } = useNgSession();\r\n\r\nconst props = defineProps<{\r\n lottery: Lottery;\r\n isSubscription?: boolean;\r\n}>();\r\n\r\nconst loopVisible = ref(false);\r\n\r\nconst { gwPlayerData } = useGwPlayerData();\r\n\r\nconst displayName = computed(() =>\r\n multibetbetPage.value ? \"Multisázenka\" : LotteryUtils.lotteryDisplayName(props.lottery)\r\n);\r\n\r\nconst noGoldenWheel = computed(() => gwPlayerData.value.access?.denied ?? true);\r\n\r\nconst content = reactive<BetSuccessResponse>({\r\n kulicnik: null,\r\n cardAfterBetting: null,\r\n subscriptionTexts: null,\r\n});\r\n\r\nconst displayLoop = ref(false);\r\nconst startAnimations = ref(false);\r\nconst finishedAnimations = ref(false);\r\nconst fallbackImageWebm = ref(\"\");\r\nconst fallbackImageMov = ref(\"\");\r\nconst fallbackImageWebmLoop = ref(\"\");\r\nconst fallbackImageMovLoop = ref(\"\");\r\n\r\nconst handleSwithToLoop = () => {\r\n setTimeout(() => {\r\n displayLoop.value = true;\r\n setTimeout(() => {\r\n fallbackImageWebmLoop.value = parseVideo(content.kulicnik?.webmLoop, VideoComponent.fallback);\r\n fallbackImageMovLoop.value = parseVideo(content.kulicnik?.movLoop, VideoComponent.fallback);\r\n }, 500);\r\n }, 5500);\r\n};\r\n\r\nwatch(isLoggedIn, (newIsLoggedIn) => {\r\n // If user logs out on betSuccess page then redirect to HP\r\n if (!newIsLoggedIn && showSuccess.value) {\r\n document.location.href = \"/\";\r\n }\r\n});\r\n\r\nwatch(showSuccess, async () => {\r\n if (showSuccess.value) {\r\n $(\"#game-content-all\").addClass(\"success\");\r\n $(\".bet-success-wrap\").addClass(\"bet-success-wrap--show\");\r\n $(\"body\").addClass(\"success\");\r\n if (multibetbetPage.value) $(\".multiwager-detail\").addClass(\"success\");\r\n $(window).scrollTop(0);\r\n\r\n const lotteryCodeName = multibetbetPage.value ? multibetBetName : props.lottery;\r\n const data = await getSuccessPageContent(lotteryCodeName, balanceAfterBet.value);\r\n content.kulicnik = data?.kulicnik;\r\n content.cardAfterBetting = data?.cardAfterBetting;\r\n content.subscriptionTexts = data?.subscriptionTexts;\r\n content.subscriptionTexts.title = content.subscriptionTexts.title.replace(\r\n \"{0}\",\r\n StringUtils.formatCurrency(betPrice.value, true)\r\n );\r\n startAnimations.value = true;\r\n\r\n document.body.classList.remove(\"narrow-container\");\r\n\r\n await nextTick();\r\n handleSwithToLoop();\r\n\r\n // Delay for fallback images so it is not shown while video is being loaded\r\n setTimeout(() => {\r\n fallbackImageWebm.value = parseVideo(content.kulicnik?.webm, VideoComponent.fallback);\r\n fallbackImageMov.value = parseVideo(content.kulicnik?.mov, VideoComponent.fallback);\r\n }, 500);\r\n\r\n if (!multibetbetPage.value) {\r\n setTimeout(() => useQuestionnairesOnOnlineBet(environment.game), 7000);\r\n useFloatingOnOnlineBet(environment.game);\r\n }\r\n\r\n setTimeout(() => {\r\n startAnimations.value = false;\r\n finishedAnimations.value = true;\r\n }, 5000);\r\n }\r\n});\r\n\r\nconst isMovSupported = ResponsiveUtils.isMovSupported();\r\n\r\nonUnmounted(() => {\r\n toggleShowSuccess();\r\n});\r\n</script>\r\n","import script from \"./_bet-success.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./_bet-success.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-product-card__inner\" }\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"ds-product-card-tag ds-product-card-tag--add-favorites ds-product-card__left-placeholder authenticated\"\n}\nconst _hoisted_4 = { class: \"ds-product-card-tag ds-product-card-tag--scratch ds-product-card__right-placeholder\" }\nconst _hoisted_5 = { class: \"ds-product-card-tag__wrapper ds-product-card-tag__text\" }\nconst _hoisted_6 = { class: \"ds-product-card__text-wrap\" }\nconst _hoisted_7 = [\"innerHTML\"]\nconst _hoisted_8 = [\"innerHTML\"]\nconst _hoisted_9 = [\"innerHTML\"]\nconst _hoisted_10 = [\"href\", \"data-game-id\", \"data-game-code\", \"data-price\", \"data-prize\", \"data-transparent\"]\n\nimport { TicketPromoCard } from \"@/tickets/models/ticket-promo-card\";\r\nimport { WebpHelper } from \"@sazka/utils/webp-helper\";\r\nimport { StringUtils } from \"@sazka/utils/string-utils\";\r\nimport DsIcon from \"@sazka/design-system/src/icon/ds-icon.vue\";\r\nimport { computed } from \"vue\";\r\nimport { useFavoriteTicketsStore } from \"../favorite-tickets-store\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ticket-promo-card',\n props: {\n card: {}\n },\n setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst store = useFavoriteTicketsStore();\r\nconst isFavorite = computed(() => store.isFavoriteTicket(props.card.externalSystemID));\r\nconst toggleFavorite = () => store.toggleFavoriteTicket(props.card.externalSystemID);\r\n\r\nconst prizeText = computed(() =>\r\n props.card.teaserPriceText ? props.card.teaserPriceText : StringUtils.formatCurrency(props.card.prize)\r\n);\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"ds-product-card ds-product-card--portrait\", [\r\n _ctx.card.isOnline ? 'ds-product-card--eticket' : 'ds-product-card--ticket',\r\n { authenticated: _ctx.card.hideForNotLoggedUsers },\r\n ]])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n innerHTML: \r\n _unref(WebpHelper).createPictureTag(_ctx.card.teaserImageUrl, `${_ctx.card.name} - obrázek`, 'ds-product-card__img')\r\n \n }, null, 8, _hoisted_2),\n _cache[2] || (_cache[2] = _createElementVNode(\"em\", { class: \"ds-product-card__gradient\" }, null, -1)),\n (_ctx.card.isOnline)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"button\", {\n class: _normalizeClass([\"ds-product-card-tag__button ds-product-card-tag__button--add-favorites\", { 'ds-product-card-tag__button--active': isFavorite.value }]),\n \"data-js-hook\": \"ds-product-card-add-favorites\"\n }, [\n _createVNode(DsIcon, {\n onClick: toggleFavorite,\n name: \"favorite-star-active\",\n width: 16,\n height: 16\n })\n ], 2)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _cache[1] || (_cache[1] = _createElementVNode(\"img\", {\n class: \"ds-product-card-tag__img\",\n src: \"/frontend/web/img/scrappers/scratch.svg\",\n height: \"39\",\n width: \"60\",\n alt: \"\"\n }, null, -1)),\n _createElementVNode(\"span\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.card.roundPrice) + \" \", 1),\n _cache[0] || (_cache[0] = _createElementVNode(\"span\", { class: \"ds-product-card-tag__currency\" }, \"KÄ\", -1))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"h3\", {\n class: \"ds-product-card__title\",\n innerHTML: _ctx.card.name\n }, null, 8, _hoisted_7),\n _createElementVNode(\"span\", {\n class: \"ds-product-card__sub-text\",\n innerHTML: _ctx.card.teaserText\n }, null, 8, _hoisted_8),\n _createElementVNode(\"span\", {\n class: \"ds-product-card__price\",\n innerHTML: prizeText.value\n }, null, 8, _hoisted_9)\n ]),\n _createElementVNode(\"a\", {\n href: _ctx.card.pageUrl.relative,\n class: _normalizeClass([\"ds-product-card__link\", { 'game-launcher': _ctx.card.isOnline }]),\n \"data-game-id\": _ctx.card.externalSystemID,\n \"data-game-code\": _ctx.card.codeName,\n \"data-price\": _ctx.card.roundPrice,\n \"data-prize\": _ctx.card.prizeFilter ? _ctx.card.prizeFilter : _ctx.card.prize,\n \"data-transparent\": _ctx.card.isTransparent\n }, null, 10, _hoisted_10)\n ])\n ], 2))\n}\n}\n\n})","<template>\r\n <div\r\n class=\"ds-product-card ds-product-card--portrait\"\r\n :class=\"[\r\n card.isOnline ? 'ds-product-card--eticket' : 'ds-product-card--ticket',\r\n { authenticated: card.hideForNotLoggedUsers },\r\n ]\"\r\n >\r\n <div class=\"ds-product-card__inner\">\r\n <div\r\n v-html=\"\r\n WebpHelper.createPictureTag(card.teaserImageUrl, `${card.name} - obrázek`, 'ds-product-card__img')\r\n \"\r\n ></div>\r\n <em class=\"ds-product-card__gradient\"></em>\r\n <div\r\n v-if=\"card.isOnline\"\r\n class=\"ds-product-card-tag ds-product-card-tag--add-favorites ds-product-card__left-placeholder authenticated\"\r\n >\r\n <!-- Top left slot -->\r\n <button\r\n class=\"ds-product-card-tag__button ds-product-card-tag__button--add-favorites\"\r\n :class=\"{ 'ds-product-card-tag__button--active': isFavorite }\"\r\n data-js-hook=\"ds-product-card-add-favorites\"\r\n >\r\n <DsIcon @click=\"toggleFavorite\" name=\"favorite-star-active\" :width=\"16\" :height=\"16\" />\r\n </button>\r\n </div>\r\n\r\n <div class=\"ds-product-card-tag ds-product-card-tag--scratch ds-product-card__right-placeholder\">\r\n <!-- Top right slot -->\r\n <img\r\n class=\"ds-product-card-tag__img\"\r\n src=\"/frontend/web/img/scrappers/scratch.svg\"\r\n height=\"39\"\r\n width=\"60\"\r\n alt=\"\"\r\n />\r\n <span class=\"ds-product-card-tag__wrapper ds-product-card-tag__text\"\r\n >{{ card.roundPrice }} <span class=\"ds-product-card-tag__currency\">KÄ</span></span\r\n >\r\n </div>\r\n\r\n <div class=\"ds-product-card__text-wrap\">\r\n <h3 class=\"ds-product-card__title\" v-html=\"card.name\"></h3>\r\n <span class=\"ds-product-card__sub-text\" v-html=\"card.teaserText\"></span>\r\n <span class=\"ds-product-card__price\" v-html=\"prizeText\"></span>\r\n </div>\r\n\r\n <a\r\n :href=\"card.pageUrl.relative\"\r\n class=\"ds-product-card__link\"\r\n :class=\"{ 'game-launcher': card.isOnline }\"\r\n :data-game-id=\"card.externalSystemID\"\r\n :data-game-code=\"card.codeName\"\r\n :data-price=\"card.roundPrice\"\r\n :data-prize=\"card.prizeFilter ? card.prizeFilter : card.prize\"\r\n :data-transparent=\"card.isTransparent\"\r\n >\r\n </a>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { TicketPromoCard } from \"@/tickets/models/ticket-promo-card\";\r\nimport { WebpHelper } from \"@sazka/utils/webp-helper\";\r\nimport { StringUtils } from \"@sazka/utils/string-utils\";\r\nimport DsIcon from \"@sazka/design-system/src/icon/ds-icon.vue\";\r\nimport { computed } from \"vue\";\r\nimport { useFavoriteTicketsStore } from \"../favorite-tickets-store\";\r\n\r\nconst props = defineProps<{\r\n card: TicketPromoCard;\r\n}>();\r\n\r\nconst store = useFavoriteTicketsStore();\r\nconst isFavorite = computed(() => store.isFavoriteTicket(props.card.externalSystemID));\r\nconst toggleFavorite = () => store.toggleFavoriteTicket(props.card.externalSystemID);\r\n\r\nconst prizeText = computed(() =>\r\n props.card.teaserPriceText ? props.card.teaserPriceText : StringUtils.formatCurrency(props.card.prize)\r\n);\r\n</script>\r\n","import script from \"./ticket-promo-card.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ticket-promo-card.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"ds-smile-static__inner\" }\nconst _hoisted_2 = { class: \"ds-smile-static__body\" }\nconst _hoisted_3 = [\"src\", \"width\", \"height\"]\nconst _hoisted_4 = [\"src\", \"width\", \"height\"]\n\nimport { computed } from \"vue\";\r\nimport { DsSmileStaticFacePosition, DsSmileStaticFaceType } from \"./ds-smile-static-types\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ds-smile-static',\n props: {\n faceType: { default: DsSmileStaticFaceType.DefaultSmile },\n facePosition: { default: DsSmileStaticFacePosition.Center },\n withShadow: { type: Boolean, default: true },\n responsive: { type: Boolean, default: true },\n size: { default: \"default\" },\n shadowColor: { default: \"orange\" },\n width: {},\n height: {},\n isInStorybook: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst resolvedBody = computed(() => {\r\n if (props.isInStorybook) return \"/images/img/design-system/smiles/smile-static/body.svg\";\r\n\r\n return \"/frontend/web/img/design-system/smiles/smile-static/body.svg\";\r\n});\r\n\r\nconst resolvedFace = computed(() => {\r\n if (props.isInStorybook)\r\n return `/images/img/design-system/smiles/smile-static/face/${props.faceType}--${props.facePosition}.svg`;\r\n\r\n return `/frontend/web/img/design-system/smiles/smile-static/faces/${props.faceType}--${props.facePosition}.svg`;\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"ds-smile-static\", {\r\n 'ds-smile-static--with-shadow': _ctx.withShadow,\r\n 'ds-smile-static--responsive': _ctx.responsive,\r\n 'ds-smile-static--contain': _ctx.size === 'contain',\r\n }])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"img\", {\n src: resolvedBody.value,\n alt: \"Kulicnik bg\",\n class: \"ds-smile-static__bg\",\n width: _ctx.width,\n height: _ctx.height\n }, null, 8, _hoisted_3),\n _createElementVNode(\"img\", {\n src: resolvedFace.value,\n alt: \"Kulicnik bg\",\n class: \"ds-smile-static__face\",\n width: _ctx.width,\n height: _ctx.height\n }, null, 8, _hoisted_4)\n ]),\n (_ctx.withShadow)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n class: _normalizeClass([\"ds-smile-static__shadow\", [_ctx.shadowColor !== 'orange' && `ds-smile-static__shadow--${_ctx.shadowColor}`]])\n }, null, 2))\n : _createCommentVNode(\"\", true)\n ])\n ], 2))\n}\n}\n\n})","<template>\r\n <div\r\n class=\"ds-smile-static\"\r\n :class=\"{\r\n 'ds-smile-static--with-shadow': withShadow,\r\n 'ds-smile-static--responsive': responsive,\r\n 'ds-smile-static--contain': size === 'contain',\r\n }\"\r\n >\r\n <div class=\"ds-smile-static__inner\">\r\n <div class=\"ds-smile-static__body\">\r\n <img\r\n :src=\"resolvedBody\"\r\n alt=\"Kulicnik bg\"\r\n class=\"ds-smile-static__bg\"\r\n :width=\"width\"\r\n :height=\"height\"\r\n />\r\n <img\r\n :src=\"resolvedFace\"\r\n alt=\"Kulicnik bg\"\r\n class=\"ds-smile-static__face\"\r\n :width=\"width\"\r\n :height=\"height\"\r\n />\r\n </div>\r\n <div\r\n v-if=\"withShadow\"\r\n class=\"ds-smile-static__shadow\"\r\n :class=\"[shadowColor !== 'orange' && `ds-smile-static__shadow--${shadowColor}`]\"\r\n />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed } from \"vue\";\r\nimport { DsSmileStaticFacePosition, DsSmileStaticFaceType } from \"./ds-smile-static-types\";\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n /**\r\n * Set face type\r\n */\r\n faceType?: DsSmileStaticFaceType;\r\n /**\r\n * Set face position\r\n */\r\n facePosition?: DsSmileStaticFacePosition;\r\n /**\r\n * Enable shadow under image\r\n */\r\n withShadow?: boolean;\r\n /**\r\n * Enable responsive mode\r\n */\r\n responsive?: boolean;\r\n /**\r\n * Set containment of image\r\n */\r\n size?: \"default\" | \"contain\";\r\n /**\r\n * Set shadow color\r\n */\r\n shadowColor?: \"orange\" | \"gray\" | \"black\";\r\n /**\r\n * Set width\r\n */\r\n width?: number;\r\n /**\r\n * Set height\r\n */\r\n height?: number;\r\n /**\r\n * Set SB path\r\n */\r\n isInStorybook?: boolean;\r\n }>(),\r\n {\r\n faceType: DsSmileStaticFaceType.DefaultSmile,\r\n facePosition: DsSmileStaticFacePosition.Center,\r\n withShadow: true,\r\n responsive: true,\r\n size: \"default\",\r\n shadowColor: \"orange\",\r\n isInStorybook: false,\r\n }\r\n);\r\n\r\nconst resolvedBody = computed(() => {\r\n if (props.isInStorybook) return \"/images/img/design-system/smiles/smile-static/body.svg\";\r\n\r\n return \"/frontend/web/img/design-system/smiles/smile-static/body.svg\";\r\n});\r\n\r\nconst resolvedFace = computed(() => {\r\n if (props.isInStorybook)\r\n return `/images/img/design-system/smiles/smile-static/face/${props.faceType}--${props.facePosition}.svg`;\r\n\r\n return `/frontend/web/img/design-system/smiles/smile-static/faces/${props.faceType}--${props.facePosition}.svg`;\r\n});\r\n</script>\r\n","import script from \"./ds-smile-static.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ds-smile-static.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__"],"names":["useFloatingDisplay","analyticsCodeName","loggedIn","cookieKey","cookieClosedKey","localStorage","useLocalStorage","sessionStorage","useSessionStorage","isLoggedIn","useNgSession","showBasedOnLoggedState","computed","doNotShow","value","shouldShow","dryRun","rule1Value","getItem","rule2Value","setItem","rule3Value","displayedCount","parseInt","isNaN","toString","closed","displayExponea","ref","async","useFloatingOnOnlineBet","lottery","marketingConsented","useWecomaIntegration","consented","floatingResponse","httpClient","get","data","display","mount","useExponeaFloatingById","floatingID","GwPlayerDataApi","callGwPlayerDataApi","playerId","apiName","response","playerDataHttpClient","fethProposition","fetchPlayerHistory","fetchRulesUrl","_await$callGwPlayerDa","url","fetchTasks","fetchAwards","callGwSpin","post","fetchPlayerBw","fetchPlayerBwHistory","callBwSpin","session","_session$value","PlayerID","maxGwPoints","gwPlayerData","points","access","lastPointsChange","hasBonusWheel","receivedCampaignPoints","hasMaxPoints","_gwPlayerData$value","isGwPlayerDataLoaded","gwPlayerDataHasError","loadGwPlayerData","prevPointsCache","err","console","error","initGoldenWheelPlayerStatus","ngFrameworkLoaded","watch","immediate","updateGwPoints","newPoints","enableInit","useGwPlayerData","withoutInit","readonly","bwModalQueryStringKey","showSuccess","multibetbetPage","betPrice","betWagerId","isSubscription","subscriptionId","balanceAfterBet","balanceNumeric","useBetSuccess","toggleShowSuccess","price","wagerId","multibetbet","isSubscriptionBet","subscriptionIdBet","storage","storageName","isQuestionnaireOpen","useQuestionnaires","environment","nodeAliasPath","indexOf","ng_hs","depositSucceeded","hasClosedConfirmation","onStateChange","ngState","useQuestionnairesOnDeposit","setTimeout","callQuestionnaire","useQuestionnairesOnOnlineBet","useQuestionnairesOnTicketCheck","type","endpoint","window","_questionnaires$data","_storage$getJson","questionnaires","length","seenQuestionnaires","getJson","questionnaireToShow","find","d","includes","id","push","setJson","questionnaire","placement","ActionType","dataLayer","action","event","getSagApiUrl","useSagOptions","config","baseURL","_appSettings$Integrat","appSettings","axios","create","addSagAuthInterceptor","addSessionTokenInterceptor","fetchFavoriteTickets","createFavoriteTicket","ticketResponse","externalSystemID","_axiosError$response","axiosError","status","showAlert","title","deleteFavoriteTicket","delete","useFavoriteTicketsStore","defineStore","favoriteTickets","favoriteTicketsIds","getFavoriteTicket","ticket","isFavoriteTicket","loadFavoriteTickets","favoriteTicketsResponse","api","map","filter","toggleFavoriteTicket","DsSmileStaticFaceType","DsSmileStaticFacePosition","initialized","reactiveBreakpoints","useBreakpoints","breakpoints","initialize","reduce","acc","x","reactiveBreakpoint","Object","keys","ResponsiveUtils","isInUse","key","minSize","breakpoint","brkpnt","media","matchMedia","matches","onchange","e","useMediaQuery","query","mediaRef","_hoisted_1","class","_hoisted_2","_hoisted_3","delayBetweenAnimation","_defineComponent","__name","setup","__props","firstAnimatedIndex","getNextLoadDelay","index","delayIndex","_ctx","_cache","_openBlock","_createElementBlock","_Fragment","_renderList","_unref","_withDirectives","_createVNode","WebpImage","src","alt","get2x","style","_normalizeStyle","animationDelay","_vShow","_createElementVNode","_toDisplayString","__exports__","props","wheelType","enableAnimation","Boolean","lightsOutsideSrc","wheelInsideSrc","_createBlock","_createCommentVNode","_normalizeClass","getSuccessPageContent","lotteryName","balance","headers","PromoPropsPosition","AnalyticsBetSuccess","pushPurchase","bet","_bet$drawNames","_bet$price","_bet$lottery","_bet$id","_bet$boards","_bet$duration","_ref","_bet$addonNumbers","_bet$duration2","days","times","Analytics","getDrawDaysAndTimes","drawNames","DrawNames","Price","Lottery","page","kind","verticalCodeStrict","verticalCode","gameCodeStrict","gameCode","order","Id","totalValue","revenue","discout","tax","cart","products","fullPrice","pocketPrice","position","boards","Boards","draws","duration","Duration","addonGame","getAddonName","addonNumbers","AddonNumbers","ticketKind","drawDays","drawTimes","bettingMode","pushBetMoney","bettingSystem","pushImpressPromos","promos","impress","pushClickPromo","promo","show","pushClickProduct","codeName","name","_hoisted_4","_hoisted_5","TICKET_DELAY","CLOVERLEAF_DELAY","ticketCard","store","pushAnalyticsOnClick","_props$ticketCard","_props$ticketCard2","_props$ticketCard3","creative","buttonText","right","handleTicketButtonClick","_props$ticketCard4","useNgCasino","loadGame","gameId","playAnimation","json","element","animation","lottie","animationData","renderer","rendererSettings","preserveAspectRatio","loop","autoplay","container","ticketCardElement","cloverleafsLeft","cloverleafsRight","scratchComplete","pushAnalyticsImpressions","_props$ticketCard5","_props$ticketCard6","onMounted","scratchAnim","scratchJson","addEventListener","destroy","play","leftJson","rightJson","onUnmounted","_ctx$ticketCard","_ctx$ticketCard2","innerHTML","claim","personalized__scratch","ref_key","TicketPromoCard","card","onClick","DsButton","default","_withCtx","_ctx$ticketCard3","_createTextVNode","_","goldWordInflected","coinsRemaining","goldenWord","isLargeScreen","buttonIcon","handleBeforeBetGoldHref","top","cssClass","GwStaticWheel","GwCoins","href","ctaText","buttonLink","bonusWheelBtnClick","theme","bonusWheelCtaText","pageAfterBetting","exponeaOffers","goldenWheelEnabled","_gwPlayerData$value$a","denied","bonusWheelEnabled","_ref2","_gwPlayerData$value$a2","_props$pageAfterBetti","_props$pageAfterBetti2","_props$pageAfterBetti3","_props$pageAfterBetti4","lotteryLeft","randomWager","bottomLeft","lotteryRight","bottomRight","betCheckout","quickBet","_quickBet$randomWager","_quickBet$randomWager2","randomWagerID","isMultibet","multibetBetName","checkoutEndpoint","checkout","LotteryCheckout","useDefaultAnalytics","betServiceUrl","getCost","_quickBet$randomWager3","betResponse","start","wagers","Payload","Wagers","Wager","forEach","wager","_wager$lottery","_wager$price","LotteryUtils","parseLotteryName","undefined","betClick","_ctx$pageAfterBetting","_ctx$pageAfterBetting2","_ctx$pageAfterBetting3","_ctx$pageAfterBetting4","BetGold","BetBonus","QuickBetCard","onFirstClick","onBetConfirm","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","VideoComponent","parseVideo","videoAndFallback","toPick","split","loopVisible","displayName","lotteryDisplayName","noGoldenWheel","content","reactive","kulicnik","cardAfterBetting","subscriptionTexts","displayLoop","startAnimations","finishedAnimations","fallbackImageWebm","fallbackImageMov","fallbackImageWebmLoop","fallbackImageMovLoop","handleSwithToLoop","_content$kulicnik","_content$kulicnik2","webmLoop","fallback","movLoop","newIsLoggedIn","document","location","$","addClass","scrollTop","lotteryCodeName","replace","StringUtils","formatCurrency","body","classList","remove","nextTick","_content$kulicnik3","_content$kulicnik4","webm","mov","game","isMovSupported","_content$cardAfterBet","_content$kulicnik5","_content$kulicnik6","_content$kulicnik7","_content$kulicnik8","_content$subscription","_content$kulicnik9","_content$subscription2","_content$cardAfterBet2","_content$cardAfterBet3","_content$cardAfterBet4","muted","constrols","playsinline","preload","poster","video","text","lotteryCard","BetSuccessCard","PersonalizedTicket","isFavorite","toggleFavorite","prizeText","teaserPriceText","prize","isOnline","authenticated","hideForNotLoggedUsers","WebpHelper","createPictureTag","teaserImageUrl","DsIcon","width","height","roundPrice","teaserText","pageUrl","relative","prizeFilter","isTransparent","faceType","DefaultSmile","facePosition","Center","withShadow","responsive","size","shadowColor","isInStorybook","resolvedBody","resolvedFace"],"sourceRoot":""}