{"version":3,"sources":["FlipClock.js","SpotAutoTagging.js","HeroBannerFeeds.js","Slider.js","ScaleFontSizeToFitContainer.js"],"names":["defineDs","TimeUtils","Utils","DOMUtils","resizeClocks","document","querySelector","logDeprecated","querySelectorAll","forEach","$clock","breakPoints","dataset","parentWidth","parentNode","getBoundingClientRect","width","invertColors","classList","remove","add","xlarge","large","default","small","domCounter","counter","val","_ul$querySelector$tex","_ul$querySelector","valUp","ul","beforeVal","textContent","valDown","slice","_$flipper","$flipper","$jsUpActive","$jsDownActive","$jsUpBefore","$jsDownBefore","innerHTML","nextElementSibling","_ul$querySelectorAll","$el","closest","_ul$querySelectorAll2","init","flipClock","DOMParser","parseFromString","body","firstChild","appendChild","cloneNode","setInterval","deadline","Date","parseInt","diff","getServerDateTime","t","getCompoundTimeObject","secs","mins","hours","days","flipPlay","window","addEventListener","setTimeout","ready","Ensighten","addEventListeners","event","$parent","target","promoClickTracking","promoElement","dataTrackingPos","$elementsList","lastItemVerticalPos","currentItemVerticalPos","currentRow","currentItemPos","element","offsetTop","promotions","name","trackingBrand","creative","trackingName","position","pushPromoClick","usedEventArray","areElementsInView","elements","$elementList","key","rect","elemTop","top","elemBottom","bottom","innerHeight","isScrolledIntoView","indexOf","push","pushPromoView","linkUrl","dataTrackingKey","sublinkWithParams","getAttribute","$linkItem","href","splitLink","split","mainLink","subLink","subLinkParam","i","length","hashParam","setAttribute","sitecoreEnv","$elements","requireDs","JackpotInfo","then","formatJoker","feed","feedText","jackpotData","vikinglotto","getByGame","poolSizeFormatted","lotto","eurojackpot","jokerloerdag","jokeronsdag","elementText","toString","Object","keys","replace","Swiper","swipers","swiperActiveClass","handler","swiper","shouldInitialize","$element","style","display","Array","isArray","sw","refresh","settings","destroy","undefined","prototype","this","update","scrollbar","updateSize","addSlider","scaleToFits","scaleFontSizeToFitContainer","scaleToFit","widthOfContainerToFitIn","parentElement","offsetWidth","enableWhen","minFontSize","maxFontSize","padding","innerWidth","fontSize"],"mappings":"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","file":"region-avalon-frontpage.js","sourcesContent":["defineDs('DanskeSpil/Framework/FlipClock/Scripts/FlipClock', [\r\n 'DanskeSpil/Framework/TimeUtils/Scripts/TimeUtils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/Utils',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/DOMUtils',\r\n], function (TimeUtils, Utils, DOMUtils) {\r\n\r\n var resizeClocks = function () {\r\n if (document.querySelector('.js-flip-clock')) {\r\n Utils.logDeprecated('Framework/FlipClock/Scripts/FlipClock.js - .js-flip-clock found'); // Added by MIPE 2022-08-04\r\n }\r\n\r\n document.querySelectorAll('.js-flip-clock').forEach(function ($clock) {\r\n var breakPoints = $clock.dataset['breakPoints'];\r\n var parentWidth = $clock.parentNode.getBoundingClientRect().width;\r\n var invertColors = $clock.dataset['invertColor'];\r\n\r\n $clock.classList.remove('flip-clock--xsmall', 'flip-clock--small', 'flip-clock--default', 'flip-clock--large', 'flip-clock--xlarge', 'flip-clock--invert');\r\n\r\n if (invertColors === 'True') {\r\n $clock.classList.add('flip-clock--invert');\r\n }\r\n\r\n if (breakPoints.xlarge && parentWidth >= breakPoints.xlarge) {\r\n $clock.classList.add('flip-clock--xlarge');\r\n } else if (breakPoints.large && parentWidth >= breakPoints.large) {\r\n $clock.classList.add('flip-clock--large');\r\n } else if (breakPoints.default && parentWidth >= breakPoints.default) {\r\n $clock.classList.add('flip-clock--default');\r\n } else if (breakPoints.small && parentWidth >= breakPoints.small) {\r\n $clock.classList.add('flip-clock--small');\r\n } else {\r\n $clock.classList.add('flip-clock--xsmall');\r\n }\r\n });\r\n };\r\n\r\n var domCounter = function ($clock, counter, val) {\r\n var ul = $clock.querySelectorAll('ul')[counter];\r\n\r\n var beforeVal = ul.querySelector('.before .js-up')?.textContent ?? '';\r\n var valUp;\r\n var valDown = val;\r\n\r\n if (counter === 0) {\r\n // days\r\n if (val > 99) {\r\n valUp = 99;\r\n valDown = 99;\r\n } else {\r\n valUp = val === 99 ? 99 : val + 1;\r\n }\r\n } else if (counter === 1) {\r\n // hours\r\n valUp = val === 23 ? 0 : val + 1;\r\n } else {\r\n // mins and secs\r\n valUp = val === 59 ? 0 : val + 1;\r\n }\r\n\r\n // prefix with zero for value 0-9\r\n valUp = ('0' + valUp).slice(-2);\r\n valDown = ('0' + valDown).slice(-2);\r\n\r\n if (beforeVal !== valUp) {\r\n var $flipper = ul.querySelector('li.active');\r\n\r\n const $jsUpActive = ul.querySelector('.active .js-up');\r\n const $jsDownActive = ul.querySelector('.active .js-down');\r\n const $jsUpBefore = ul.querySelector('.before .js-up');\r\n const $jsDownBefore = ul.querySelector('.before .js-down');\r\n\r\n if ($jsUpActive && $jsDownActive && $jsUpBefore && $jsDownBefore) {\r\n $jsUpActive.textContent = valUp;\r\n $jsDownActive.textContent = valUp;\r\n $jsUpBefore.textContent = valDown;\r\n $jsDownBefore.textContent = valDown;\r\n }\r\n\r\n if (!$flipper?.innerHTML) {\r\n $flipper = ul.querySelectorAll('li')[0];\r\n $flipper.classList.add('before');\r\n $flipper.classList.remove('active');\r\n $flipper.nextElementSibling.classList.add('active');\r\n } else if ($flipper.nextElementSibling === null) {\r\n ul.querySelectorAll('li')?.forEach(($el) => {\r\n $el.classList.remove('before');\r\n });\r\n $flipper.classList.add('before');\r\n $flipper.classList.remove('active');\r\n $flipper = ul.querySelectorAll('li')[0];\r\n $flipper.classList.add('active');\r\n $flipper.closest('.flip-clock').classList.add('play');\r\n } else {\r\n ul.querySelectorAll('li')?.forEach(($el) => {\r\n $el.classList.remove('before');\r\n });\r\n $flipper.classList.add('before');\r\n $flipper.classList.remove('active');\r\n $flipper.nextElementSibling.classList.add('active');\r\n $flipper.closest('.flip-clock').classList.add('play');\r\n }\r\n }\r\n };\r\n\r\n var flipPlay = function ($clock) {\r\n var deadline = new Date(parseInt($clock.dataset['endDate'], 10));\r\n var diff = new Date(deadline) - TimeUtils.getServerDateTime();\r\n var t = TimeUtils.getCompoundTimeObject(diff);\r\n domCounter($clock, 3, t.secs);\r\n domCounter($clock, 2, t.mins);\r\n domCounter($clock, 1, t.hours);\r\n domCounter($clock, 0, t.days);\r\n };\r\n\r\n var init = function () {\r\n document.querySelectorAll('.js-flip-clock').forEach(function ($clock) {\r\n const parser = new DOMParser();\r\n const flipClock = parser.parseFromString('', 'text/html').body.firstChild;\r\n\r\n $clock.appendChild(flipClock.cloneNode(true));\r\n $clock.appendChild(flipClock.cloneNode(true));\r\n $clock.appendChild(flipClock.cloneNode(true));\r\n $clock.appendChild(flipClock.cloneNode(true));\r\n\r\n setInterval(function () {\r\n flipPlay($clock);\r\n }, 1000);\r\n });\r\n\r\n resizeClocks();\r\n\r\n window.addEventListener('resize', () => {\r\n setTimeout(resizeClocks, 100);\r\n });\r\n };\r\n\r\n DOMUtils.ready(function () {\r\n init();\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/MarketingSpots/Scripts/SpotAutoTagging',\r\n [\r\n 'Shared/Framework/Ensighten/Scripts/Ensighten',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/DOMUtils',\r\n ],\r\n function (Ensighten, DOMUtils) {\r\n // click on promo event\r\n DOMUtils.addEventListeners(document.querySelectorAll('.js-trackable-link'), 'click', (event) => {\r\n var $parent = event.target.closest('.js-trackable');\r\n promoClickTracking($parent);\r\n });\r\n\r\n var promoClickTracking = function (promoElement) {\r\n var $elementsList = document.querySelectorAll('.js-trackable');\r\n var lastItemVerticalPos = -1;\r\n var currentItemVerticalPos = 0;\r\n var currentRow = 0;\r\n var currentItemPos = 1;\r\n var dataTrackingPos;\r\n\r\n $elementsList.forEach((element) => {\r\n currentItemVerticalPos = element.offsetTop;\r\n\r\n if (currentItemVerticalPos === lastItemVerticalPos) {\r\n currentItemPos++;\r\n } else {\r\n if (lastItemVerticalPos !== -1) currentRow++;\r\n currentItemPos = 1;\r\n lastItemVerticalPos = currentItemVerticalPos;\r\n }\r\n if (element === promoElement) {\r\n dataTrackingPos = 'r' + (currentRow < 10 ? '0' : '') + currentRow + '_e' + (currentItemPos < 10 ? '0' : '') + currentItemPos;\r\n\r\n var promotions = [\r\n {\r\n name: element.dataset.trackingBrand,\r\n creative: element.dataset.trackingName,\r\n position: dataTrackingPos\r\n }\r\n ];\r\n\r\n Ensighten.pushPromoClick(promotions);\r\n }\r\n });\r\n };\r\n\r\n // Scroll into viewport detection\r\n var usedEventArray = [];\r\n\r\n const isScrolledIntoView = (element) => {\r\n const rect = element.getBoundingClientRect();\r\n const elemTop = rect.top;\r\n const elemBottom = rect.bottom;\r\n return (elemTop >= 0) && (elemBottom <= window.innerHeight);\r\n };\r\n\r\n const areElementsInView = (elements) => {\r\n var $elementList = document.querySelectorAll(elements);\r\n var lastItemVerticalPos = -1;\r\n var currentItemVerticalPos = 0;\r\n var currentRow = 0;\r\n var currentItemPos = 1;\r\n var dataTrackingPos;\r\n\r\n $elementList.forEach((element) => {\r\n var key = element.dataset.trackingBrand + element.dataset.trackingName;\r\n\r\n currentItemVerticalPos = element.offsetTop;\r\n\r\n if (currentItemVerticalPos === lastItemVerticalPos) {\r\n currentItemPos++;\r\n } else {\r\n if (lastItemVerticalPos !== -1) currentRow++;\r\n currentItemPos = 1;\r\n lastItemVerticalPos = currentItemVerticalPos;\r\n }\r\n\r\n if (isScrolledIntoView(element)) {\r\n if (usedEventArray.indexOf(key) < 0) {\r\n usedEventArray.push(key);\r\n\r\n dataTrackingPos = 'r' + (currentRow < 10 ? '0' : '') + currentRow + '_e' + (currentItemPos < 10 ? '0' : '') + currentItemPos;\r\n\r\n var promotions = [\r\n {\r\n name: element.dataset.trackingBrand,\r\n creative: element.dataset.trackingName,\r\n position: dataTrackingPos\r\n }\r\n ];\r\n\r\n Ensighten.pushPromoView(promotions);\r\n }\r\n }\r\n });\r\n };\r\n\r\n document.addEventListener('scroll', () => {\r\n areElementsInView('.js-trackable');\r\n });\r\n\r\n var buildTrackingLink = function () {\r\n // Still in use per 6/8-2019 (used intensely on the \"old\" frontpage)\r\n\r\n var $elementList = document.querySelectorAll('.js-trackable');\r\n var lastItemVerticalPos = -1;\r\n var currentItemVerticalPos = 0;\r\n var currentRow = 0;\r\n var currentItemPos = 1;\r\n var linkUrl;\r\n var dataTrackingKey;\r\n var dataTrackingPos;\r\n\r\n $elementList.forEach((element) => {\r\n\r\n currentItemVerticalPos = element.offsetTop;\r\n\r\n if (currentItemVerticalPos == lastItemVerticalPos) {\r\n currentItemPos++;\r\n } else {\r\n if (lastItemVerticalPos != -1) currentRow++;\r\n currentItemPos = 1;\r\n lastItemVerticalPos = currentItemVerticalPos;\r\n }\r\n\r\n dataTrackingPos = 'r' + (currentRow < 10 ? '0' : '') + currentRow + '_e' + (currentItemPos < 10 ? '0' : '') + currentItemPos;\r\n dataTrackingKey = dataTrackingPos + '__' + element.getAttribute('data-tracking-key');\r\n\r\n var sublinkWithParams = '';\r\n\r\n if (dataTrackingKey) {\r\n\r\n var $linkItem = element.querySelector('.js-trackable-link');\r\n linkUrl = $linkItem?.href;\r\n\r\n if (!linkUrl) return;\r\n\r\n if (linkUrl.indexOf('?') > -1) {\r\n\r\n var splitLink = linkUrl.split('?');\r\n var mainLink = splitLink[0];\r\n var subLink = splitLink[1];\r\n\r\n if (linkUrl.indexOf('intcmp') > -1) {\r\n\r\n var subLinkParam = subLink.split('&');\r\n\r\n for (var i = 0; i < subLinkParam.length; i++) {\r\n if (subLinkParam[i].indexOf('intcmp') > -1) {\r\n if (subLinkParam[i].indexOf('#') > -1) {\r\n var hashParam = subLinkParam[i].split('#');\r\n hashParam = hashParam[1];\r\n subLinkParam[i] = 'intcmp=' + dataTrackingKey + '#' + hashParam;\r\n } else {\r\n subLinkParam[i] = 'intcmp=' + dataTrackingKey;\r\n }\r\n }\r\n sublinkWithParams += subLinkParam[i] + (i == subLinkParam.length - 1 ? '' : '&');\r\n }\r\n } else {\r\n sublinkWithParams = subLink + '&intcmp=' + dataTrackingKey;\r\n }\r\n $linkItem.href = mainLink + '?' + sublinkWithParams;\r\n\r\n } else {\r\n\r\n $linkItem.setAttribute('href', linkUrl + '?intcmp=' + dataTrackingKey);\r\n }\r\n }\r\n });\r\n };\r\n\r\n var init = function () {\r\n buildTrackingLink();\r\n };\r\n\r\n init();\r\n });\r\n","defineDs('DanskeSpil/Domain/AvalonComponents/Scripts/HeroBannerFeeds', function () {\r\n\r\n // Dont continue, if sitecore editor\r\n if (window.sitecoreEnv) {\r\n return;\r\n }\r\n\r\n // DOM elements\r\n var $elements = document.querySelectorAll('.avalon-hero__heading, .avalon-hero__text, .avalon-joker__prize');\r\n\r\n // Dont continue, if no elements for replacing.\r\n if ($elements.length === 0) {\r\n return;\r\n }\r\n\r\n // Only load JackpotInfo if needed (as it is not in all bundles)\r\n requireDs('DanskeSpil/Framework/PuljeFeed/Scripts/JackpotInfo', function (JackpotInfo) {\r\n\r\n JackpotInfo.ready.then(function () {\r\n // Helper function to format Joker jackpot\r\n var formatJoker = function (feed) {\r\n var feedText = feed;\r\n if (!feedText || feedText === '0') {\r\n feedText = 'mindst 2'; // at least 2 mio in the jackpot\r\n }\r\n return feedText;\r\n };\r\n\r\n // Prepare data for replacement:\r\n var jackpotData = {\r\n vikinglotto: JackpotInfo.getByGame('vikinglotto').poolSizeFormatted || 'min. 2',\r\n lotto: JackpotInfo.getByGame('lotto').poolSizeFormatted || 'min. 2',\r\n eurojackpot: JackpotInfo.getByGame('eurojackpot').poolSizeFormatted,\r\n jokerloerdag: formatJoker(JackpotInfo.getByGame('jokerloerdag').poolSizeFormatted),\r\n jokeronsdag: formatJoker(JackpotInfo.getByGame('jokeronsdag').poolSizeFormatted)\r\n };\r\n\r\n // Perform replacements:\r\n for (var i = 0; i < $elements.length; i++) {\r\n var element = $elements[i];\r\n var elementText = element.innerHTML.toString();\r\n\r\n Object.keys(jackpotData).forEach(function (key) {\r\n elementText = elementText.replace('{' + key + '}', jackpotData[key]);\r\n });\r\n\r\n element.innerHTML = elementText;\r\n }\r\n\r\n });\r\n\r\n });\r\n\r\n});\r\n","defineDs('DanskeSpil/Domain/AvalonComponents/Scripts/Slider',\r\n ['DanskeSpil/Domain/AvalonComponents/Scripts/Libraries/Swiper',\r\n 'Shared/Framework/Mithril/Scripts/Helpers/DOMUtils'],\r\n function (Swiper, DOMUtils) {\r\n\r\n var swipers = [];\r\n var swiperActiveClass = 'swiper-active';\r\n\r\n /**\r\n * Determine if we should add slider functionality to each or the configurations added\r\n */\r\n var handler = function () {\r\n swipers.forEach(function (swiper) {\r\n\r\n if ((swiper.shouldInitialize && swiper.shouldInitialize())) {\r\n\r\n // Show the scrollbar container element when we have a slider\r\n const swiperElements = swiper.target.querySelectorAll('.swiper-scrollbar, .swiper-pagination');\r\n swiperElements.forEach(($element) => {\r\n $element.style.display = '';\r\n });\r\n\r\n if (swiper.swiper) {\r\n if (Array.isArray(swiper.swiper)) {\r\n swiper.swiper.forEach(function (sw) {\r\n sw.refresh();\r\n });\r\n } else {\r\n swiper.swiper.refresh();\r\n }\r\n } else {\r\n swiper.swiper = new Swiper(swiper.target, swiper.settings);\r\n }\r\n\r\n swiper.target.classList.add(swiperActiveClass);\r\n\r\n } else {\r\n if (swiper.swiper) {\r\n if (Array.isArray(swiper.swiper)) {\r\n swiper.swiper.forEach(function (sw) {\r\n sw.destroy(true, true);\r\n });\r\n } else {\r\n swiper.swiper.destroy(true, true);\r\n }\r\n swiper.swiper = undefined;\r\n\r\n swiper.target.classList.remove(swiperActiveClass);\r\n }\r\n\r\n // Hide the scrollbar container element when we have no slider\r\n const swiperElements = swiper.target.querySelectorAll('.swiper-scrollbar, .swiper-pagination');\r\n swiperElements.forEach(($element) => {\r\n $element.style.display = 'none';\r\n });\r\n }\r\n });\r\n };\r\n\r\n var init = function () {\r\n window.addEventListener('resize', handler, false);\r\n };\r\n\r\n var addSlider = function (swiper) {\r\n if (swiper.target) {\r\n swipers.push(swiper);\r\n handler();\r\n }\r\n };\r\n\r\n Swiper.prototype.refresh = function () {\r\n this.update();\r\n this.scrollbar.updateSize();\r\n };\r\n\r\n DOMUtils.ready(init);\r\n\r\n return {\r\n addSlider: addSlider,\r\n handler: handler\r\n };\r\n });\r\n","defineDs('DanskeSpil/Domain/FrontPage/Scripts/ScaleFontSizeToFitContainer', function () {\r\n\r\n var scaleToFits = document.querySelectorAll('.js-scale-font-size-to-fit-container');\r\n\r\n /*\r\n * The way this works is by resizing the font-size of the text continuously.\r\n * Once the width of the text (including its padding) is so large that its\r\n * container is larger than its outer container, we stop resizing the font-size.\r\n * */\r\n var scaleFontSizeToFitContainer = function () {\r\n if (scaleToFits.length > 0) {\r\n\r\n scaleToFits.forEach(function (scaleToFit) {\r\n var widthOfContainerToFitIn = scaleToFit.parentElement.parentElement.offsetWidth;\r\n\r\n var enableWhen = parseInt(scaleToFit.getAttribute('data-enable-when'), 10);\r\n var minFontSize = parseInt(scaleToFit.getAttribute('data-min-font'), 10);\r\n var maxFontSize = parseInt(scaleToFit.getAttribute('data-max-font'), 10);\r\n var padSides = parseInt(scaleToFit.getAttribute('data-pad-sides'), 10);\r\n var padding = padSides * 2;\r\n\r\n if (window.innerWidth >= enableWhen) {\r\n scaleToFit.style.fontSize = minFontSize + 'px';\r\n\r\n while ((scaleToFit.offsetWidth + padding) < widthOfContainerToFitIn && minFontSize < maxFontSize) {\r\n minFontSize += 1;\r\n scaleToFit.style.fontSize = minFontSize + 'px';\r\n }\r\n\r\n } else {\r\n scaleToFit.style.fontSize = '';\r\n }\r\n });\r\n\r\n }\r\n };\r\n\r\n window.addEventListener('resize', function () {\r\n setTimeout(scaleFontSizeToFitContainer, 100);\r\n });\r\n scaleFontSizeToFitContainer();\r\n\r\n});\r\n"]}