{"version":3,"file":"JackpotInfo.js","names":["defineDs","Storage","TimeUtils","Utils","Ensighten","_window$minimumPoolSi","_window$minimumPoolSi2","_window$minimumPoolSi3","_window$minimumPoolSi4","_window$minimumPoolSi5","aliases","lottosaturday","saturdaylotto","lottowednesday","wednesdaylotto","superpulje","jokersaturday","jokerwednesday","joker","onsdagsjoker","minimumPoolSizes","lotto","window","eurojackpot","vikinglotto","jokerloerdag","jokeronsdag","data","getSetData","val","getByGame","name","poolSizeDecimalsRequested","secondPrizeRequested","toLowerCase","indexOf","split","shift","join","items","Object","keys","length","filter","item","GameId","currentDateTime","getCurrentDateTime","gameStopDate","gameStopDateTime","Date","gamestopExceeded","poolSize","PoolSizeDecimal","PoolSizeFormatted","poolSizeSecondPrize","SecondPrizePoolSizeDecimal","SecondPrizePoolSizeFormatted","numberFormat","poolSizeDecimal","poolSizeFormatted","minimumPoolSize","minimumPoolSizeDecimal","getDynamicFeed","str","sitecoreEnv","pulje","maxDepth","iter","index","lastIndex","handleBarString","substring","parseInt","replace","feedValid","json","JSON","parse","Array","e","storeToCache","set","stringify","ready","Promise","resolve","reject","$jackpotInfo","document","querySelector","domData","innerHTML","domJson","pushJackpots","cacheData","get"],"sources":["DanskeSpil/Framework/PuljeFeed/Scripts/JackpotInfo.js"],"sourcesContent":["defineDs('DanskeSpil/Framework/PuljeFeed/Scripts/JackpotInfo',\r\n [\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Storage',\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten'\r\n ],\r\n function (Storage, TimeUtils, Utils, Ensighten) {\r\n\r\n // Variables:\r\n var aliases = {\r\n lottosaturday: 'lotto',\r\n saturdaylotto: 'lotto',\r\n lottowednesday: 'onsdagslotto',\r\n wednesdaylotto: 'onsdagslotto',\r\n superpulje: 'superpulje',\r\n jokersaturday: 'jokerloerdag',\r\n jokerwednesday: 'jokeronsdag',\r\n\r\n // nye aliases 11/5/2017\r\n joker: 'jokerloerdag',\r\n onsdagsjoker: 'jokeronsdag'\r\n };\r\n\r\n // Minimum pool sizes:\r\n // window.minimumPoolSizes is intended to be used in case we need to change the minimum pool size for a specific game without a deploy.\r\n const minimumPoolSizes = {\r\n lotto: window.minimumPoolSizes?.lotto || 8000000,\r\n eurojackpot: window.minimumPoolSizes?.eurojackpot || 63000000,\r\n vikinglotto: window.minimumPoolSizes?.vikinglotto || 19000000,\r\n jokerloerdag: window.minimumPoolSizes?.jokerloerdag || 2000000,\r\n jokeronsdag: window.minimumPoolSizes?.jokeronsdag || 2000000\r\n };\r\n\r\n var data = {};\r\n\r\n // Functions:\r\n\r\n var getSetData = function (val) {\r\n // Mimics m.prop functionality\r\n if (typeof val !== 'undefined') {\r\n data = val;\r\n }\r\n return data;\r\n };\r\n\r\n var getByGame = function (name) {\r\n var poolSizeDecimalsRequested = false;\r\n var secondPrizeRequested = false;\r\n name = name.toLowerCase();\r\n\r\n // check to see if decimal value is requested.\r\n if (name.indexOf('d:') === 0) {\r\n poolSizeDecimalsRequested = true;\r\n name = name.split(':');\r\n name.shift();\r\n name = name.join(':');\r\n }\r\n\r\n // check to see if second prize is requested.\r\n if (name.indexOf(':2') !== -1) {\r\n secondPrizeRequested = true;\r\n name = name.split(':')[0];\r\n }\r\n\r\n if (aliases[name]) {\r\n name = aliases[name];\r\n }\r\n\r\n var items = data && Object.keys(data).length !== 0 ? data.filter(function (item) {\r\n return (item.GameId && item.GameId.toLowerCase() === name);\r\n }) : [];\r\n\r\n var item = items.length > 0 ? items[0] : null;\r\n\r\n if (item) {\r\n var currentDateTime = TimeUtils.getCurrentDateTime();\r\n var gameStopDate = item.gameStopDate;\r\n var gameStopDateTime = new Date(gameStopDate);\r\n var gamestopExceeded = currentDateTime > gameStopDateTime;\r\n var poolSize = poolSizeDecimalsRequested ? item.PoolSizeDecimal : item.PoolSizeFormatted;\r\n var poolSizeSecondPrize = poolSizeDecimalsRequested ? item.SecondPrizePoolSizeDecimal : item.SecondPrizePoolSizeFormatted;\r\n\r\n if (secondPrizeRequested) {\r\n return {\r\n gamestopExceeded: gamestopExceeded,\r\n poolSize: Utils.numberFormat(poolSizeSecondPrize),\r\n poolSizeDecimal: item.SecondPrizePoolSizeDecimal,\r\n poolSizeFormatted: item.SecondPrizePoolSizeFormatted,\r\n minimumPoolSize: Utils.numberFormat(minimumPoolSizes[name] / 1000000),\r\n minimumPoolSizeDecimal: minimumPoolSizes[name]\r\n };\r\n }\r\n\r\n return {\r\n gamestopExceeded: gamestopExceeded,\r\n poolSize: Utils.numberFormat(poolSize),\r\n poolSizeDecimal: item.PoolSizeDecimal,\r\n poolSizeFormatted: item.PoolSizeFormatted,\r\n minimumPoolSize: Utils.numberFormat(minimumPoolSizes[name] / 1000000),\r\n minimumPoolSizeDecimal: minimumPoolSizes[name]\r\n };\r\n }\r\n\r\n return {\r\n minimumPoolSize: Utils.numberFormat(minimumPoolSizes[name] / 1000000),\r\n minimumPoolSizeDecimal: minimumPoolSizes[name]\r\n };\r\n };\r\n\r\n /**\r\n * This string replaces all occurences of {alias\\\\puljefeedname} to the corresponding feed.\r\n * @param str - The string containing the handlebars.\r\n */\r\n var getDynamicFeed = function (str) {\r\n\r\n // if the context is expierience editor or the str is not of type string; break!\r\n if (window.sitecoreEnv || typeof str !== 'string') {\r\n return str;\r\n }\r\n\r\n // initiate variable\r\n var pulje = '';\r\n\r\n // variables for preventing infinite looping; maxDepth is the maximum loop depth; iter is the iteration counter.\r\n var maxDepth = 100;\r\n var iter = 0;\r\n // Might be more occurances of '{' and '}' in the text\r\n while (str.indexOf('{') >= 0) {\r\n\r\n // prevent infinite looping, by restricting the iteration depth\r\n iter += 1;\r\n if (iter > maxDepth) {\r\n return str;\r\n }\r\n\r\n // Find occurance of {\r\n var index = str.indexOf('{');\r\n // Find occurance of }\r\n var lastIndex = str.indexOf('}');\r\n // Did the text contain { or }?\r\n if (index < 0 || lastIndex < 0) {\r\n // Did not contain a handlebar, return original string\r\n return str;\r\n } else {\r\n // Take out the whole {pulje} string\r\n var handleBarString = str.substring(index, lastIndex + 1);\r\n // Take out only 'pulje' from {pulje}\r\n var substring = str.substring(index + 1, lastIndex);\r\n // Special occasion, on onsdagslotto combined pulje should be presented by adding superpulje and onsdagspulje together\r\n if (substring !== 'combowednesday') {\r\n pulje = getByGame(substring).poolSize;\r\n } else {\r\n pulje = parseInt(getByGame('superpulje').poolSizeFormatted, 10) + parseInt(getByGame('onsdagslotto').poolSizeFormatted, 10);\r\n }\r\n\r\n // if the corresponding feed value is undefined return the empty string -> wrong feed keys etc should not be displayed to the end user.\r\n if (typeof (pulje) === 'undefined') {\r\n return '';\r\n }\r\n\r\n // Replace the handlebar {pulje} with for example 30\r\n str = str.replace(handleBarString, pulje);\r\n }\r\n }\r\n return str;\r\n };\r\n\r\n var feedValid = function (str) {\r\n try {\r\n var json = JSON.parse(str);\r\n\r\n if (json instanceof Array) {\r\n return true;\r\n }\r\n } catch (e) {\r\n }\r\n\r\n return false;\r\n };\r\n\r\n var storeToCache = function (json) {\r\n // Store with TTL 30 min.\r\n Storage.set('JackpotInfoFeed', json ? JSON.stringify(json) : null, 60 * 30);\r\n };\r\n\r\n // Initialize:\r\n var ready = new Promise(function (resolve, reject) {\r\n\r\n // 1) LOOK IN DOM\r\n var $jackpotInfo = document.querySelector('#jackpot-info');\r\n\r\n if ($jackpotInfo) {\r\n var domData = $jackpotInfo.innerHTML;\r\n\r\n if (feedValid(domData)) {\r\n var domJson = JSON.parse(domData);\r\n\r\n Ensighten.pushJackpots(domJson);\r\n\r\n data = domJson;\r\n\r\n // Store to cache\r\n storeToCache(domJson);\r\n resolve();\r\n\r\n return;\r\n }\r\n }\r\n\r\n // 2) LOOK IN LOCALSTORAGE\r\n var cacheData = Storage.get('JackpotInfoFeed');\r\n if (!cacheData || !feedValid(cacheData)) {\r\n // Clear cache\r\n storeToCache(null);\r\n data = {};\r\n reject();\r\n } else {\r\n // Use cache\r\n data = JSON.parse(cacheData);\r\n resolve();\r\n }\r\n\r\n });\r\n\r\n // Public functions:\r\n return {\r\n data: getSetData,\r\n ready: ready,\r\n getByGame: getByGame,\r\n getDynamicFeed: getDynamicFeed\r\n };\r\n\r\n });\r\n"],"mappings":"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","ignoreList":[]}