{"version":3,"file":"js/1649.4b02510adc3339c6.js","mappings":"iLAMA,MAAMA,EAAe,qBACfC,EAAyB,gCACzBC,EAAe,qBACfC,EAAgB,sBAChBC,EAAqB,4BAErBC,EAAmBA,KACrB,MAAMC,EAAmBC,SAASC,iBAA8BJ,GAChEE,EAAiBG,SAASC,IACtB,MAAMC,EAAWD,EAAQE,QAAQC,MAE3BC,EAAW,IAAIC,IAAJ,CAAa,CAC1BC,GAAIN,EACJO,MAAON,EACPO,SAAU,IACVC,OAAQ,WAGZL,EAASM,QAAQ,GACnB,EAGAC,EAAgBA,CAACC,EAA6BC,KAChD,MAAMC,EAAkBF,EAAeG,cAA2BrB,GAClEoB,EAAgBE,UAAYH,EAASI,UAAU,EAG7CC,EAAwBA,CAACC,EAAgCC,KACtDA,GAASC,MAAMC,QAAQF,IAAwB,GAAfA,EAAKG,QAI1CH,EAAKrB,SAASyB,IACV,MAAMC,EAAeD,EAAQrB,MACvBS,EAAiBO,EAAkBJ,cACrC,GAAGvB,MAAiBgC,EAAQE,KAAKC,iBAGjCf,GACAD,EAAcC,EAAgBa,EAClC,GACF,EAGAG,EAAWC,UACb,MAAM,SAAEC,SAAmBC,EAAAA,EAAAA,GAAkB,CAAC,WAE9CC,EAAAA,EAAAA,KACI,IAAMF,EAASG,eACdC,IACOA,GACAC,EAASpC,SAASC,IACdW,EAAcX,EAASkC,EAAgB,GAE/C,GAEP,EAGCE,EAAcP,UAChB,MAAMQ,EAAqBC,EAAKxC,iBAA8BP,GACxDgD,EAAY,IAAIF,GAAoBG,KAAKrB,GACpCA,EAAkBjB,QAAQuC,mBAG/B,SAAEX,SAAmBC,EAAAA,EAAAA,GAAkBQ,GAE7C,IAAK,MAAMG,KAAYH,EAAW,CAC9B,MAAMI,EAAeD,EAASf,eAC9BK,EAAAA,EAAAA,KACI,IAAMF,EAASc,mBAAmBD,KACjCE,IACG,MAAM1B,EAAoBmB,EAAKvB,cAC3B,GAAGxB,4BAAiDmD,OAExDxB,EAAsBC,EAAmB,IAAI0B,GAAa,GAE9D,CAAEC,MAAM,GAEhB,GAGEC,EAAeA,KACjB,MAAMC,EAAgBnD,SAASC,iBAA8BR,GACvD2D,EAAuBpD,SAASC,iBAA8BL,IAEhEuD,EAAczB,QAAU0B,EAAqB1B,SAC7C5B,IAGAsD,EAAqB1B,QACrBK,EAAS,IAAIqB,IAGjBD,EAAcjD,SAASuC,IACnBF,EAAYE,EAAK,GACnB,GAGNY,EAAAA,EAAAA,IAAc,KACVH,GAAc,G","sources":["webpack://@sazka/web/./js/app/casino/jackpots/_casino-jackpot-odometer.ts"],"sourcesContent":["import { documentReady } from \"@sazka/utils/document-ready\";\r\nimport Odometer from \"odometer\";\r\nimport { CasinoJackpot, CasinoJackpotType } from \"./casino-jackpot\";\r\nimport { watch } from \"vue\";\r\nimport useJackpotManager from \"./use-jackpot-manager\";\r\n\r\nconst rootSelector = \".jp-odometer__root\";\r\nconst itemsContainerSelector = \".jp-odometer__items-container\";\r\nconst itemSelector = \".jp-odometer__item\";\r\nconst totalSelector = \".jp-odometer__total\";\r\nconst prizeValueSelector = \".jp-odometer__prize-value\";\r\n\r\nconst initAllOdometers = () => {\r\n const odometerElements = document.querySelectorAll(prizeValueSelector);\r\n odometerElements.forEach((element) => {\r\n const oldPrize = element.dataset.prize;\r\n\r\n const odometer = new Odometer({\r\n el: element,\r\n value: oldPrize,\r\n duration: 4000,\r\n format: \"( ddd)\",\r\n });\r\n\r\n odometer.render();\r\n });\r\n};\r\n\r\nconst updateJackpot = (jackpotElement: HTMLElement, newPrize: number) => {\r\n const odometerElement = jackpotElement.querySelector(prizeValueSelector);\r\n odometerElement.innerHTML = newPrize.toString();\r\n};\r\n\r\nconst jackpotLoadedCallback = (jackpotsContainer: HTMLElement, data: CasinoJackpot[]) => {\r\n if (!data || !Array.isArray(data) || data.length == 0) {\r\n return;\r\n }\r\n\r\n data.forEach((jackpot) => {\r\n const jackpotPrize = jackpot.prize;\r\n const jackpotElement = jackpotsContainer.querySelector(\r\n `${itemSelector}--${jackpot.name.toLowerCase()}`\r\n );\r\n\r\n if (jackpotElement) {\r\n updateJackpot(jackpotElement, jackpotPrize);\r\n }\r\n });\r\n};\r\n\r\nconst getTotal = async (elements: HTMLElement[]) => {\r\n const { jackpots } = await useJackpotManager([\"total\"]);\r\n\r\n watch(\r\n () => jackpots.totalJackpot,\r\n (newTotalJackpot) => {\r\n if (newTotalJackpot) {\r\n elements.forEach((element) => {\r\n updateJackpot(element, newTotalJackpot);\r\n });\r\n }\r\n }\r\n );\r\n};\r\n\r\nconst getJackpots = async (root: HTMLElement) => {\r\n const jackpotsContainers = root.querySelectorAll(itemsContainerSelector);\r\n const providers = [...jackpotsContainers].map((jackpotsContainer) => {\r\n return jackpotsContainer.dataset.jackpotProvider as CasinoJackpotType;\r\n });\r\n\r\n const { jackpots } = await useJackpotManager(providers);\r\n\r\n for (const provider of providers) {\r\n const safeProvider = provider.toLowerCase() as CasinoJackpotType;\r\n watch(\r\n () => jackpots.jackpotsByProvider[safeProvider],\r\n (newJackpots) => {\r\n const jackpotsContainer = root.querySelector(\r\n `${itemsContainerSelector}[data-jackpot-provider=\"${provider}\"]`\r\n );\r\n jackpotLoadedCallback(jackpotsContainer, [...newJackpots]);\r\n },\r\n { deep: true }\r\n );\r\n }\r\n};\r\n\r\nconst initOdometer = () => {\r\n const jackpotsRoots = document.querySelectorAll(rootSelector);\r\n const totalJackpotElements = document.querySelectorAll(totalSelector);\r\n\r\n if (jackpotsRoots.length || totalJackpotElements.length) {\r\n initAllOdometers();\r\n }\r\n\r\n if (totalJackpotElements.length) {\r\n getTotal([...totalJackpotElements]);\r\n }\r\n\r\n jackpotsRoots.forEach((root) => {\r\n getJackpots(root);\r\n });\r\n};\r\n\r\ndocumentReady(() => {\r\n initOdometer();\r\n});\r\n"],"names":["rootSelector","itemsContainerSelector","itemSelector","totalSelector","prizeValueSelector","initAllOdometers","odometerElements","document","querySelectorAll","forEach","element","oldPrize","dataset","prize","odometer","Odometer","el","value","duration","format","render","updateJackpot","jackpotElement","newPrize","odometerElement","querySelector","innerHTML","toString","jackpotLoadedCallback","jackpotsContainer","data","Array","isArray","length","jackpot","jackpotPrize","name","toLowerCase","getTotal","async","jackpots","useJackpotManager","watch","totalJackpot","newTotalJackpot","elements","getJackpots","jackpotsContainers","root","providers","map","jackpotProvider","provider","safeProvider","jackpotsByProvider","newJackpots","deep","initOdometer","jackpotsRoots","totalJackpotElements","documentReady"],"sourceRoot":""}