{"version":3,"sources":["webpack://frontendplaceholder/webpack/runtime/load script","webpack://frontendplaceholder/./Src/Scripts/architecture/componentRepository.js","webpack://frontendplaceholder/./Src/Scripts/components/basket-controller.js","webpack://frontendplaceholder/./Src/Scripts/functionality/page-transition.js","webpack://frontendplaceholder/./Src/Scripts/functionality/scrollbar-width-calculator.js","webpack://frontendplaceholder/./Src/Scripts/services/newsletter-service.js","webpack://frontendplaceholder/webpack/bootstrap","webpack://frontendplaceholder/webpack/runtime/compat get default export","webpack://frontendplaceholder/webpack/runtime/create fake namespace object","webpack://frontendplaceholder/webpack/runtime/define property getters","webpack://frontendplaceholder/webpack/runtime/ensure chunk","webpack://frontendplaceholder/webpack/runtime/get javascript chunk filename","webpack://frontendplaceholder/webpack/runtime/global","webpack://frontendplaceholder/webpack/runtime/hasOwnProperty shorthand","webpack://frontendplaceholder/webpack/runtime/make namespace object","webpack://frontendplaceholder/webpack/runtime/node module decorator","webpack://frontendplaceholder/webpack/runtime/publicPath","webpack://frontendplaceholder/webpack/runtime/jsonp chunk loading","webpack://frontendplaceholder/./Src/Scripts/index.js"],"names":["inProgress","dataWebpackPrefix","constructor","componentSourceMap","this","componentClassPromiseMap","globalInstances","loadedComponents","initializedPromiseResolve","initializedPromiseReject","initializedPromise","Promise","resolve","reject","initializeComponentClasses","autoId","load","container","loadComponentsPromiseArray","document","querySelectorAll","forEach","c","componentKey","getAttribute","componentId","componentArgs","loadPromise","then","Component","args","JSON","parse","newComponentInstance","dataset","componentLoaded","catch","error","console","push","warn","all","unload","component","querySelector","loadComponentClass","key","componentLoad","default","loadComponentClasses","keysArray","loadComponentClassesPromiseArray","getGlobalInstance","instanceId","undefined","getInstancesOfType","window","getSessionData","iframe","contentWindow","postMessage","addEventListener","event","origin","data","clearInterval","getSessionDataInterval","basketAmountElem","innerText","order","items","length","setInterval","barbaLoadedPromise","importGsapPromise","barbaInitialized","topNavigationPromise","basketElem","gsap","gsapImp","homeView","namespace","beforeLeave","delayAmount","next","to","duration","afterLeave","classList","remove","listenToScroll","beforeEnter","current","style","setProperty","add","calendarPageView","body","before","loadToolbar","eventView","removeProperty","afterEnter","requestAnimationFrame","pageThemeColor","pageTextColor","drBilletView","after","calcActive","nextUrl","url","path","x","toggle","includes","removeAllBodyClasses","toolbarData","toolbar","image","link","name","map","attribute","src","ImageUrl","href","Link","Name","toggleAttribute","IsFilterToggle","IsToursToggle","ProductCategoryGroupingText","setAttribute","removeAttribute","Background","Color","defaultTransition","leave","timeouts","timeout","clearTimeout","topNavigation","toggleHeroNavigationType","dispatchEvent","Event","enter","removeCurtain","loadObserver","BasketController","delay","n","newDelay","done","setTimeout","homeToCalendarPageTransition","from","custom","trigger","innerWidth","result","async","menuItems","contentContainer","getBoundingClientRect","width","left","animateInCurtain","timeline","fromTo","opacity","calendarPageToEventTransition","getRootNode","localStorage","setItem","scrollY","closest","isEvent","contains","animateImage","picture","source","createElement","img","srcset","type","insertBefore","firstChild","themeColorAnimate","imgContainer","rect","right","top","position","breakpoint","matchMedia","matches","widthCalc","aspectRatio","themeColor","_init","importResult","barba","cr","init","debug","views","sync","transitions","prevent","el","hooks","scroll","behavior","close","scroller","scrollingElement","clientWidth","innerHeight","signup","email","consent","target","action","fields","value","stringify","fetch","__webpack_module_cache__","__webpack_require__","moduleId","exports","module","id","loaded","__webpack_modules__","call","m","getter","__esModule","d","a","t","mode","ns","Object","create","r","def","definition","o","defineProperty","enumerable","get","f","e","chunkId","keys","reduce","promises","u","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","l","script","needAttach","scripts","getElementsByTagName","i","s","charset","nc","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","fn","bind","head","appendChild","Symbol","toStringTag","nmd","paths","children","p","installedChunks","j","installedChunkData","promise","Error","errorType","realSrc","message","request","chunkLoadingGlobal","parentChunkLoadingFunction","chunkIds","moreModules","runtime","resolves","shift","loadAll","lazyImages","entry","loadResource","newsletterService","NewsletterService","ComponentRepository","vuecr","pageTransition","PageTransition","embedWidth","maxWidth","pictureTag","lazyImageObserver","unobserve","slice","readyState","callback","entries","observer","isIntersecting","options","rootMargin","IntersectionObserver","lazyImage","observe","nextElementSibling","videos","startVideos","video","currentTime","paused","ended","play","throttle","setScrollbarCssVariables","leading","form","validForms","selector","formName","listenerHandled","dataLayer"],"mappings":"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","file":"DRKoncerthuset.bundle.js","sourcesContent":["var inProgress = {};\nvar dataWebpackPrefix = \"frontendplaceholder:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => fn(event));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","export default class ComponentRepository {\n constructor(componentSourceMap) {\n // The property name is the key used to instantiate the component.\n // The property value is the path of the file (navigated from the scripts folder) excluded the file ending.\n // The order they appear in the sourcemap will affect the order they are instantiated in.\n // Shared components should generally be instantiated before controllers.\n this.componentSourceMap = componentSourceMap;\n\n this.componentClassPromiseMap = {}; // Will hold promises for all for classes needed to instantiate components\n this.globalInstances = {}; // Will hold components with a data-component-id, that can be queried globally\n this.loadedComponents = {}; // Will hold all loaded component instances\n\n // initializedPromise will resolve when the load function has run and all components have been initialized.\n this.initializedPromiseResolve = null;\n this.initializedPromiseReject = null;\n this.initializedPromise = new Promise((resolve, reject) => {\n this.initializedPromiseResolve = resolve;\n this.initializedPromiseReject = reject;\n });\n\n // Initialize all classes required for the components on the current page.\n this.initializeComponentClasses();\n\n this.autoId = 0;\n }\n\n /*\n * Iterates all elements in the DOM container with the 'data-component' attribute,\n * and instantiates the corresponding component.\n * Returns a promise that will resolve when all components have been instantiated or have failed.\n * \n * ARGS:\n * -container : (optional) A DOM element that contains for which to find data-components in. If not specified, document will be used.\n */\n load(container) {\n const loadComponentsPromiseArray = [];\n\n container = container ?? document;\n\n container.querySelectorAll('[data-component]').forEach(c => {\n const componentKey = c.getAttribute('data-component');\n const componentId = c.getAttribute('data-component-id');\n const componentArgs = c.getAttribute('data-component-args');\n\n if (this.componentClassPromiseMap[componentKey]) {\n const loadPromise = new Promise((resolve, reject) => {\n this.componentClassPromiseMap[componentKey]\n .then(Component => {\n let args = null;\n if (componentArgs) {\n args = JSON.parse(componentArgs);\n }\n\n const newComponentInstance = new Component(c, args);\n\n if (!this.loadedComponents[componentKey]) {\n this.loadedComponents[componentKey] = {};\n }\n this.loadedComponents[componentKey][this.autoId] = newComponentInstance;\n\n // If the component has a component ID, add it to globalInstances\n if (componentId) {\n this.globalInstances[componentId] = newComponentInstance;\n }\n\n c.dataset.componentLoaded = this.autoId;\n this.autoId++;\n\n resolve(newComponentInstance);\n })\n .catch(error => {\n console.error('Error instantiating component: ', componentKey, error);\n reject();\n });\n });\n loadComponentsPromiseArray.push(loadPromise);\n } else {\n console.warn('unable to find component: ', componentKey);\n }\n });\n\n return Promise.all(loadComponentsPromiseArray)\n .then(() => {\n this.initializedPromiseResolve();\n });\n }\n\n\n unload(container) {\n container = container ?? document;\n\n container.querySelectorAll('[data-component-loaded]').forEach(c => {\n // if the instance has an unload method, invoke it now\n if(this.loadedComponents[c.dataset.component][c.dataset.componentLoaded].unload) {\n this.loadedComponents[c.dataset.component][c.dataset.componentLoaded].unload();\n }\n\n delete this.loadedComponents[c.dataset.component][c.dataset.componentLoaded];\n\n if (c.dataset.componentId) {\n delete this.globalInstances[c.dataset.componentId];\n } \n });\n }\n\n initializeComponentClasses(container) {\n container = container ?? document;\n // Load all classes required for the components on the current page.\n for (const componentKey in this.componentSourceMap) {\n if (container.querySelector('[data-component=\"' + componentKey + '\"]')) {\n this.loadComponentClass(componentKey);\n }\n }\n }\n\n /**\n * Returns a promise that will eventually resolve with\n * the class corresponsing the component key.\n */\n loadComponentClass(key) {\n if (this.componentClassPromiseMap[key]) {\n return this.componentClassPromiseMap[key];\n }\n\n // If the requested class is not specified in the source map, return a failed promise.\n if (!this.componentSourceMap[key]) {\n return new Promise((resolve, reject) => {\n reject();\n });\n }\n\n this.componentClassPromiseMap[key] = this.componentSourceMap[key]()\n .then(componentLoad => {\n return componentLoad.default;\n });\n return this.componentClassPromiseMap[key];\n }\n\n /**\n * Loads multiple classes as determined by an array of string keys.\n */\n loadComponentClasses(keysArray) {\n const loadComponentClassesPromiseArray = [];\n\n keysArray.forEach(componentKey => {\n loadComponentClassesPromiseArray.push(this.loadComponentClass(componentKey));\n });\n\n return Promise.all(loadComponentClassesPromiseArray);\n }\n\n\n /**\n * Returns a promise that will eventually resolve with\n * a specific instance of a component, based on its ID.\n */\n getGlobalInstance(instanceId) {\n return this.initializedPromise\n .then(() => {\n return instanceId ? this.globalInstances[instanceId] : undefined;\n });\n }\n\n\n /**\n * Returns a promise that will eventually resolve with\n * all instances of a specific type.\n */\n getInstancesOfType(key) {\n return this.initializedPromise\n .then(() => {\n return this.loadedComponents[key];\n });\n }\n}\n","export default class BasketController {\n constructor() {\n window.getSessionData = () => {\n const iframe = document.querySelector('[data-basket-iframe]');\n if (iframe?.contentWindow) {\n iframe.contentWindow.postMessage('GetSession', '*');\n }\n };\n\n window.addEventListener('message', function (event) {\n if (event.origin === 'https://billetter.drkoncerthuset.dk') {\n const data = event.data;\n clearInterval(window.getSessionDataInterval);\n const basketAmountElem = document.querySelector('[data-basket-amount]');\n if (basketAmountElem) {\n basketAmountElem.innerText = data?.order?.items?.length ?? '';\n }\n }\n });\n\n clearInterval(window.getSessionDataInterval);\n window.getSessionDataInterval = setInterval(() => {\n window.getSessionData();\n }, 1500);\n\n window.getSessionData();\n }\n}\n","import BasketController from '../components/basket-controller.js';\n\nexport default class PageTransition {\n constructor() {\n let barbaLoadedPromise = null;\n let importGsapPromise = null;\n let barbaInitialized = false;\n let topNavigationPromise = null;\n const pageTransitionEnabledBreakpoint = 1000;\n const basketElem = document.querySelector('[data-component=\"basket-controller\"]');\n\n // Checks if the screen is above a certain breakpoint, because we only want to animate on \"big\" screens\n const isValidScreenSizeForAnimation = function () {\n const valid = window.innerWidth >= pageTransitionEnabledBreakpoint;\n return valid;\n };\n\n const getTopNavigation = function () {\n if (!topNavigationPromise) {\n topNavigationPromise = window.cr.getGlobalInstance('top-navigation');\n }\n\n return topNavigationPromise;\n };\n\n const importGsap = function () {\n if (!importGsapPromise) {\n importGsapPromise = import('gsap')\n .then(({ gsap }) => {\n return gsap;\n });\n }\n return importGsapPromise;\n };\n\n let gsap;\n importGsap()\n .then(gsapImp => {\n gsap = gsapImp;\n });\n\n const importBarba = function () {\n if (!barbaLoadedPromise) {\n barbaLoadedPromise = import('@barba/core')\n .then(importResult => {\n return importResult.default;\n });\n }\n return barbaLoadedPromise;\n };\n\n /*\n callback functions to initialize and desctruct home page.\n */\n const homeView = {\n namespace: 'home',\n beforeLeave(data) {\n const delayAmount = data.next.namespace === 'calendar' ? 1 : 0.3;\n gsap.to('html', { '--animate-logo': 1, duration: delayAmount });\n },\n afterLeave() {\n document.querySelector('.top-navigation--hero-style')?.classList.remove('top-navigation--hero-style');\n window.listenToScroll = false;\n document.querySelector('.animating-hero')?.classList.remove('animating-hero');\n },\n beforeEnter(data) {\n window.listenToScroll = true;\n window.getSessionData();\n\n if (!data.current.container) {\n document.querySelector('html').style.setProperty('--animate-logo', 0);\n } else {\n gsap.to('html', { '--animate-logo': 0, duration: 1 });\n }\n\n document.querySelector('.top-navigation')?.classList.add('top-navigation--hero-style');\n },\n };\n\n const calendarPageView = {\n namespace: 'calendar',\n afterLeave() {\n document.body.classList.remove('calendar-page-nav');\n document.body.classList.remove('calendar-page-nav--scrolled');\n },\n before() {\n window.loadToolbar();\n },\n };\n\n const eventView = {\n namespace: 'event',\n beforeLeave() {\n document.body.style.removeProperty('--page-theme-color');\n document.body.style.removeProperty('--page-text-color');\n document.querySelector('.top-navigation')?.classList.remove('top-navigation--event-page');\n },\n afterEnter() {\n window.getSessionData();\n requestAnimationFrame(() => {\n document.querySelector('.top-navigation')?.classList.add('top-navigation--event-page');\n\n const event = document.querySelector('[data-page-theme-color]');\n if (event) {\n document.body.style.setProperty('--page-theme-color', event.dataset.pageThemeColor);\n document.body.style.setProperty('--page-text-color', event.dataset.pageTextColor);\n }\n document.body.classList.remove('calendar-page-nav--scrolled');\n\n //if (window.screen.width > 1200) {\n // const heroImage = document.querySelector('.event-page__hero__image');\n // const topNavigation = document.querySelector('.top-navigation');\n // if (heroImage) {\n // function setImageWidth() {\n // const rect = heroImage.getBoundingClientRect();\n // const left = rect.left;\n // console.log(rect.height);\n // if (left == 0 || rect.height == 0) {\n // setTimeout(setImageWidth, 1);\n // } else {\n // topNavigation.style.setProperty('--event-image-left', left + 'px');\n // }\n // }\n\n // window.addEventListener('resize', setImageWidth);\n // setImageWidth();\n // }\n //}\n });\n },\n };\n\n const drBilletView = {\n namespace: 'ticket',\n beforeLeave() {\n document.body.style.removeProperty('--page-theme-color');\n document.body.style.removeProperty('--page-text-color');\n },\n afterEnter() {\n // document.body.style.setProperty('--page-theme-color', \"#333\");\n },\n after() {\n window.loadToolbar();\n window.getSessionData();\n },\n };\n\n window.loadToolbar = function () {\n const toolbarData = JSON.parse(document.querySelector('[data-toolbar]').dataset.toolbar);\n const toolbar = document.querySelector('.top-navigation__toolbar__home');\n const [image, link, name] = ['data-image', 'data-link', 'data-name'].map(attribute => toolbar.querySelector(`[${attribute}]`));\n image.src = toolbarData.ImageUrl;\n link.href = toolbarData.Link;\n name.innerText = toolbarData.Name;\n link.toggleAttribute('data-toggle-filter', toolbarData.IsFilterToggle);\n link.toggleAttribute('data-tours-link', toolbarData.IsToursToggle);\n if (toolbarData.ProductCategoryGroupingText) {\n link.setAttribute('data-add-on-link', toolbarData.ProductCategoryGroupingText);\n } else {\n link.removeAttribute('data-add-on-link');\n }\n toolbar.style = `--home-link-bg: ${toolbarData.Background}; --home-link-color: ${toolbarData.Color}`;\n };\n\n function calcActive(data) {\n const nextUrl = data.next.url.path;\n document.querySelectorAll('.top-navigation__menu-item__main-link').forEach(x => {\n const url = x.dataset.url;\n if (url && x) {\n x.classList.toggle('top-navigation__menu-item__main-link--active', nextUrl.includes(url));\n }\n });\n }\n\n\n function removeAllBodyClasses() {\n document.body.classList.remove('search-results-open');\n document.body.classList.remove('filter-open');\n document.body.classList.remove('modal-open');\n document.body.classList.remove('no-header');\n document.body.classList.remove('menu-open');\n document.body.classList.remove('calendar-page-nav--scrolled');\n }\n\n /*\n Default page transition that will run on all pages, unless a more specific one is found.\n */\n\n const defaultTransition = {\n name: 'default-transition',\n leave(data) {\n window.timeouts.forEach(timeout => {\n window.clearTimeout(timeout);\n });\n\n topNavigationPromise\n .then(topNavigation => {\n topNavigation.toggleHeroNavigationType(false);\n });\n window.dispatchEvent(new Event('navigate'));\n calcActive(data);\n document.body.classList.remove('calendar-page-nav');\n removeAllBodyClasses();\n document.querySelector('top-navigation--hero-style')?.classList.remove('top-navigation--hero-style');\n },\n enter() {\n topNavigationPromise\n .then(topNavigation => {\n topNavigation.removeCurtain();\n });\n window.loadObserver(true);\n },\n after() {\n window.loadToolbar();\n window.getSessionData();\n document.querySelector('top-navigation--hero-style')?.classList.remove('top-navigation--hero-style');\n new BasketController(basketElem);\n },\n };\n\n function delay(n) {\n const newDelay = n || 2000;\n return new Promise(done => {\n setTimeout(() => {\n done();\n }, newDelay);\n });\n }\n\n\n /*\n Page transtion for navigation to calendar page from top menu link.\n */\n const homeToCalendarPageTransition = {\n name: 'homeToCalendarPageTransition',\n from: {\n // namespace: ['home'],\n custom: ({ trigger }) => {\n if (!isValidScreenSizeForAnimation()) { return false; }\n\n if (!trigger.getAttribute) { return false; }\n\n const result = trigger.getAttribute('data-barba-transition');\n\n if (!result) { return false; }\n return result === 'menu-to-calendar';\n },\n },\n to: {\n namespace: ['calendar'],\n },\n async leave(data) {\n const menuItems = document.querySelector('.top-navigation__menu-items');\n const contentContainer = document.querySelector('.top-navigation__content-container');\n document.body.style.setProperty('--main-menu-width', menuItems.getBoundingClientRect().width + 'px');\n document.body.style.setProperty('--menu-items-left', menuItems.getBoundingClientRect().left + 'px');\n document.body.style.setProperty('--content-container-width', contentContainer.getBoundingClientRect().width + 'px');\n\n calcActive(data);\n window.dispatchEvent(new Event('navigate'));\n window.loadToolbar();\n document.querySelector('.top-navigation')?.classList.add('top-navigation--calendar-animation');\n topNavigationPromise\n .then(topNavigation => {\n topNavigation.animateInCurtain();\n const tl = gsap.timeline();\n tl.fromTo(data.current.container, { opacity: 1 }, { duration: 0.5, opacity: 0.5 });\n });\n await delay(1000);\n document.querySelector('.top-navigation')?.classList.remove('top-navigation--calendar-animation');\n removeAllBodyClasses();\n },\n enter() {\n window.loadObserver(true);\n },\n after() {\n window.loadToolbar();\n window.getSessionData();\n document.querySelector('.top-navigation--hero-style')?.classList.remove('top-navigation--hero-style');\n },\n };\n\n const calendarPageToEventTransition = {\n name: 'calendarPageToEventTransition',\n from: {\n namespace: ['calendar'],\n },\n to: {\n namespace: ['event'],\n },\n async leave(data) {\n const onCalendarPage = data.trigger.getRootNode().querySelector('.calendar-page');\n if (onCalendarPage) {\n localStorage.setItem('calendarScroll', window.scrollY);\n }\n\n calcActive(data);\n window.dispatchEvent(new Event('navigate'));\n window.loadToolbar();\n const closest = data.trigger.closest('.event-card, .featured-block');\n if (closest) {\n closest?.classList.add('calendar-to-event--clicked');\n document.body.classList.add('calendar-to-event');\n\n const isEvent = closest.classList.contains('event-card');\n const animateImage = isEvent && closest.querySelector('.event-card__media');\n if (!animateImage) {\n closest.classList.add('calendar-to-event--dont-animate-content');\n }\n\n document.body.style.setProperty('--page-theme-color', '#0f05a0');\n if (closest.classList.contains('event-card--list-view')) {\n return;\n }\n\n if (animateImage) {\n const picture = closest.querySelector('picture');\n const source = document.createElement('source');\n const img = closest.querySelector('img');\n source.srcset = img.src;\n source.type = 'image/webp';\n picture.insertBefore(source, picture.firstChild);\n\n closest.setAttribute('style', 'transform: unset !important');\n await delay(800);\n if (isEvent) {\n gsap.to('body', { '--page-theme-color': closest.dataset.themeColorAnimate, duration: 0.75 });\n }\n\n const imgContainer = closest.querySelector('.event-card__media');\n if (imgContainer) {\n const rect = imgContainer.getBoundingClientRect();\n imgContainer.style.left = rect.left + 'px';\n imgContainer.style.right = rect.right + 'px';\n imgContainer.style.top = rect.top + 'px';\n imgContainer.style.width = rect.width + 'px';\n requestAnimationFrame(() => {\n imgContainer.style.position = 'fixed';\n });\n await delay(5);\n\n requestAnimationFrame(() => {\n imgContainer.classList.add('event-card__media--animate');\n\n requestAnimationFrame(() => {\n const breakpoint = window.matchMedia('(min-width: 992px) and (max-width: 1200px)');\n imgContainer.style.top = '90px';\n\n if (breakpoint.matches) {\n const widthCalc = `min(85vh * ${closest.dataset.aspectRatio}, 100vw - 90px)`;\n imgContainer.style.left = '0px';\n imgContainer.style.right = `calc((100vw - ${widthCalc}))`;\n imgContainer.style.width = `calc(${widthCalc})`;\n } else {\n const widthCalc = `min(85vh * ${closest.dataset.aspectRatio}, 100vw - calc(var(--event-side-padding) * 2))`;\n imgContainer.style.left = `calc((100vw - ${widthCalc}) / 2)`;\n imgContainer.style.right = `calc((100vw - ${widthCalc}) / 2)`;\n imgContainer.style.width = `calc(${widthCalc})`;\n }\n });\n });\n }\n\n await delay(1000);\n } else {\n if (isEvent) {\n gsap.to('body', { '--page-theme-color': closest.dataset.themeColor, duration: 0.5 });\n await delay(550);\n closest.style.opacity = 0;\n await delay(400);\n }\n }\n }\n document.body.classList.remove('calendar-page-nav');\n removeAllBodyClasses();\n },\n enter() {\n window.loadObserver(true);\n },\n after() {\n window.loadToolbar();\n window.getSessionData();\n document.body.classList.remove('calendar-to-event');\n },\n };\n\n this._init = function () {\n if (!barbaInitialized) {\n importBarba()\n .then(barba => {\n getTopNavigation();\n barba.init({\n debug: true,\n timeout: 15000,\n views: [homeView, eventView, drBilletView, calendarPageView],\n sync: true,\n transitions: [homeToCalendarPageTransition, defaultTransition, calendarPageToEventTransition],\n prevent: ({ el }) => {\n return el.closest('[data-no-barba]'); // Replace 'no-barba' with the class or data attribute you've chosen\n },\n });\n\n barba.hooks.enter((data) => {\n\n // unload components from last page\n window.cr.unload(data.current.container);\n\n // load components for new page\n window.cr.initializeComponentClasses(data.next.container);\n window.cr.load(data.next.container);\n\n // scroll page to top\n window.scroll({ top: 0, left: 0, behavior: 'instant' });\n\n return topNavigationPromise\n .then(topNavigation => {\n topNavigation.toggleHeroNavigationType(data.next.namespace === 'home');\n });\n });\n barba.hooks.leave(() => {\n document.body.classList.remove('search-bar-open');\n // Close the topNavigation before leaving the page.\n return topNavigationPromise\n .then(topNavigation => {\n topNavigation.close();\n });\n });\n\n barbaInitialized = true;\n });\n }\n };\n }\n\n init() {\n this._init();\n }\n}\n","export default function setScrollbarCssVariables() {\n let scroller = document.scrollingElement;\n\n // Force scrollbars to display\n scroller.style.setProperty('overflow', 'scroll');\n\n // Wait for next from so scrollbars appear\n requestAnimationFrame(()=>{\n \n // True width of the viewport, minus scrollbars\n scroller.style\n .setProperty(\n '--vw', \n scroller.clientWidth / 100\n );\n\n // True height of the viewport (as these can be bugged on mobile devices)\n scroller.style\n .setProperty(\n '--vh', \n window.innerHeight / 100\n );\n\n // Width of the scrollbar\n scroller.style\n .setProperty(\n '--scrollbar-width', \n window.innerWidth - scroller.clientWidth\n );\n\n // Reset overflow\n scroller.style\n .setProperty(\n 'overflow', \n ''\n );\n });\n}","export default class NewsletterService {\n constructor() {\n let key = 'umbraco2wq7yexztqs2prd'; \n this.signup = async function(email, name, consent, source) {\n var data = [\n {\n target: 'ConsentSignup',\n action: 'insert',\n fields: [\n {\n name: 'Email',\n type: 'text',\n value: email\n },\n {\n name: 'Name',\n type: 'text',\n value: name\n },\n {\n name: 'Source',\n type: 'text',\n value: source\n },\n {\n name: 'Text',\n type: 'text',\n value: consent\n }\n ]\n }\n ]\n var stringified = JSON.stringify(data);\n var url = `https://foxtrot-api.onemarketing.dk/upsert.aspx?key=${key}&json=${stringified}`\n return await fetch(url)\n }\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => module['default'] :\n\t\t() => module;\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tif(mode & 2 && typeof value == 'object' && value) {\n\t\tfor(const key in value) def[key] = () => value[key];\n\t}\n\tdef['default'] = () => value;\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + {\"8\":\"f2a809ec414347df8e32\",\"53\":\"4aeca828b298f75d7f03\",\"72\":\"cf455944601e5964e442\",\"124\":\"187045c978cd22f4f526\",\"380\":\"58087754ed5dae1dfb65\",\"455\":\"6d0b35f764992359fc0d\",\"515\":\"78e8bdf8c0fbbca47dca\",\"610\":\"c51661b00be6d3835782\",\"1071\":\"2842c5b8527f7a1e50a5\",\"1333\":\"6939d1d91ae9d19ca69b\",\"1373\":\"f46a6417e95cb3ba3f5a\",\"1378\":\"d6667b46be213e541d51\",\"1563\":\"4c72a2970f003eadc922\",\"1679\":\"a3ac19195d9f5eada1b6\",\"1758\":\"4598d6ee3b1f7504267a\",\"1762\":\"8fdaf256bc038708b1cf\",\"2031\":\"5e7909c86c1db77433b6\",\"2180\":\"efe1327345077f6bd919\",\"2220\":\"d5a5ca544f9d42b86bfb\",\"2406\":\"58a81ff6eaac8990e577\",\"3439\":\"a20023828802a91c782d\",\"3493\":\"b6ac4d2b8c51ed322a9f\",\"3675\":\"dfacc76b36a66a7710ae\",\"4440\":\"98dbdd2c5b52ffbacb90\",\"4501\":\"39d14c1e95070f3aa58a\",\"4531\":\"8a0629ab86262c3f9209\",\"4582\":\"c3316bbc7c55eb79d186\",\"4943\":\"86dd1909c592654e3533\",\"5297\":\"ad37ceb05e8526d1b5c5\",\"5464\":\"1244963d294055af5e35\",\"5579\":\"993dad097e52c723d0db\",\"5580\":\"fb8eb4bcfff249dc387a\",\"5585\":\"e2a4b258b30100978b13\",\"5829\":\"936254f124abc52551ef\",\"5972\":\"49713410967d8db51a49\",\"6157\":\"ef4067b01b2fc132e215\",\"6358\":\"5b39949e0a57a1ae785d\",\"6486\":\"1b6c4384cc5c0ef16c3d\",\"6765\":\"f3dcd9e56ec90fd65ac4\",\"6876\":\"bb3576f4f19ab4a07d83\",\"7636\":\"84055a91a99f41674cac\",\"7971\":\"31b8971529864393c83e\",\"8047\":\"c67e42116d309c5aaaab\",\"8235\":\"5f6cedf1755a78ed63f9\",\"8333\":\"cf59cd12b29d20923570\",\"8360\":\"503d1b6d52435c2ed684\",\"8396\":\"9fa7e847558a516bad6e\",\"8751\":\"f6bb35556c59675f4c37\",\"8926\":\"3610f1583ee495041d7f\",\"9069\":\"670a24fe60cd27a06e9c\",\"9413\":\"8250d96b2a7c4d4264f6\",\"9446\":\"a71d20081938d829d46a\",\"9636\":\"0378bb7808240eb7dda9\",\"9684\":\"1948e32012ce0bb7384f\",\"9921\":\"359dff08eb5d232e7133\",\"9953\":\"01616a8291d71856fe12\"}[chunkId] + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/frontend/Scripts/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// Promise = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2832: 0\n};\n\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => {\n\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n\t\t\t\t\t});\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no deferred startup\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0, resolves = [];\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tresolves.push(installedChunks[chunkId][0]);\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\tfor(moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tparentChunkLoadingFunction(data);\n\twhile(resolves.length) {\n\t\tresolves.shift()();\n\t}\n\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkfrontendplaceholder\"] = globalThis[\"webpackChunkfrontendplaceholder\"] || [];\nvar parentChunkLoadingFunction = chunkLoadingGlobal.push.bind(chunkLoadingGlobal);\nchunkLoadingGlobal.push = webpackJsonpCallback;","import ComponentRepository from './architecture/componentRepository';\nimport NewsletterService from './services/newsletter-service';\nimport setScrollbarCssVariables from './functionality/scrollbar-width-calculator';\nimport PageTransition from './functionality/page-transition';\n\ndocument.addEventListener('DOMContentLoaded', function () {\n window.newsletterService = new NewsletterService();\n window.cr = new ComponentRepository({\n 'add-ons': () => import('./components/add-ons'),\n 'sticky-header': () => import('./components/sticky-header'),\n 'read-more': () => import('./components/read-more'),\n 'artists-swiper': () => import('./components/artists-swiper'),\n 'additional-events': () => import('./components/additional-events'),\n 'vue-component-loader': () => import('./components/vue-component-loader'),\n 'scroll-sticker': () => import('./components/scroll-sticker'),\n 'slide-in-modal': () => import('./components/slide-in-modal'),\n 'modal': () => import('./components/modal'),\n 'related-articles': () => import('./components/related-articles'),\n 'event-page': () => import('./controllers/event-page'),\n 'front-page': () => import('./controllers/front-page'),\n 'calendar-page': () => import('./controllers/calendar-page'),\n 'column-slider': () => import('./components/column-slider'),\n 'top-navigation': () => import('./components/baseline/top-navigation'),\n 'short-content': () => import('./components/short-content'),\n 'font-resizer': () => import('./components/font-resizer'),\n 'accordion': () => import('./components/baseline/accordion'),\n 'hero': () => import('./components/hero-swiper'),\n 'ticket': () => import('./components/ticket-swiper'),\n 'article-overview': () => import('./components/article-overview'),\n 'discover-music-section': () => import('./components/discover-music-section'),\n 'alertbar': () => import('./components/alertbar'),\n 'media-section': () => import('./components/media-section'),\n 'live-stream': () => import('./components/live-stream'),\n 'mobile-slider': () => import('./components/mobile-slider'),\n 'article-overview-page': () => import('./controllers/article-overview-page'),\n 'search': () => import('./components/search'),\n 'newsletter': () => import('./components/newsletter'),\n 'event-presale': () => import('./components/event-presale'),\n 'ensemble-header': () => import('./components/ensemble-header'),\n 'basket-controller': () => import('./components/basket-controller'),\n 'fit-text': () => import('./components/fit-text'),\n 'copy-text': () => import('./components/copy-text'),\n 'add-ons-search': () => import('./components/add-ons-search'),\n 'tours': () => import('./components/tours'),\n 'tour-calendar': () => import('./components/tour-calendar'),\n });\n window.cr.load();\n window.vuecr = new ComponentRepository({\n 'vue-event-card': () => import('./components/vue/vue-event-card.vue'),\n 'vue-events-list': () => import('./components/vue/vue-events-list.vue'),\n 'vue-podcast': () => import('./components/vue/vue-podcast.vue'),\n 'vue-feature-section': () => import('./components/vue/vue-feature-section.vue'),\n 'vue-featured-events': () => import('./components/vue/vue-featured-events.vue'),\n });\n\n // Initialize Page transition\n window.pageTransition = new PageTransition();\n window.pageTransition.init();\n\n document.querySelectorAll('.mceNonEditable.embeditem').forEach(x => {\n if (x.dataset.embedWidth) {\n x.style.maxWidth = x.dataset.embedWidth + 'px'\n }\n })\n\n window.loadResource = function (entry) {\n var pictureTag = entry.target;\n var srcset = pictureTag.querySelectorAll(\"[data-srcset]\")\n var src = pictureTag.querySelectorAll(\"[data-src]\")\n srcset.forEach(source => {\n source.srcset = source.dataset.srcset;\n source.removeAttribute('data-srcset');\n })\n\n src.forEach(source => {\n source.src = source.dataset.src;\n source.removeAttribute('data-src');\n\n if (pictureTag.load) {\n pictureTag.load();\n }\n })\n\n pictureTag.classList.remove(\"lazy\");\n lazyImageObserver.unobserve(pictureTag);\n }\n\n function loadAll(lazyImages) {\n lazyImages.forEach((entry) => {\n window.loadResource({ target: entry });\n });\n }\n\n window.loadObserver = function (barba = false) {\n var lazyImages = [].slice.call(document.querySelectorAll(\".lazy\"))\n\n if (barba) {\n setTimeout(() => {\n loadAll(lazyImages)\n }, 2000)\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState == 'complete') {\n loadAll(lazyImages)\n }\n });\n }\n\n if (\"IntersectionObserver\" in window) {\n function callback(entries, observer) {\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n window.loadResource(entry);\n }\n });\n }\n\n let options = {\n rootMargin: \"1000px\",\n };\n\n window.lazyImageObserver = new IntersectionObserver(callback, options);\n\n lazyImages.forEach(function (lazyImage) {\n window.lazyImageObserver.observe(lazyImage);\n });\n\n } else {\n // Not supported, load all images immediately\n lazyImages.forEach(function (image) {\n image.nextElementSibling.src = image.nextElementSibling.dataset.srcset;\n });\n }\n }\n\n window.loadObserver();\n\n const videos = document.querySelectorAll('video[autoplay]');\n function startVideos() {\n videos.forEach(video => {\n const isVideoPlaying = !!(video.currentTime > 0 && !video.paused && !video.ended && video.readyState > 2);\n if (!isVideoPlaying) {\n video.play();\n }\n })\n }\n\n window.addEventListener('touchstart', startVideos);\n window.addEventListener('click', startVideos);\n\n // Set CSS variables to get proper vw units and scrollbar width. The size of the scrollbar depends on browser.\n setScrollbarCssVariables();\n import('lodash/throttle')\n .then(result => {\n return result.default;\n })\n .then(throttle => {\n window.addEventListener('resize', throttle(setScrollbarCssVariables, 100, { leading: false }));\n });\n\n document.addEventListener('submit', function (event) {\n const form = event.target;\n const validForms = {\n '#umbraco_form_9f98c5f87f4d4ec2b6ab47c45a849b6c form': 'default_form',\n '#umbraco_form_5586963585274a54848f8e9b540f2a53 form': 'musikariet_form',\n };\n for (const [selector, formName] of Object.entries(validForms)) {\n if (form.matches(selector) && !form.dataset.listenerHandled) {\n form.dataset.listenerHandled = 'true';\n window.dataLayer.push({\n 'event': 'newsletter_signup',\n 'form_name': formName,\n });\n }\n }\n });\n});\n"],"sourceRoot":""}