{"version":3,"file":"main.min.js","sources":["../../../../../../../ncnielsen.frontend/js/utils/onReady.js","../../../../../../../ncnielsen.frontend/js/utils/helpers.js","../../../../../../../ncnielsen.frontend/js/utils/scroll.js","../../../../../../../ncnielsen.frontend/js/components/navigation.js","../../../../../../../ncnielsen.frontend/js/components/accordion.js","../../../../../../../ncnielsen.frontend/js/components/tabs.js","../../../../../../../ncnielsen.frontend/js/main.js","../../../../../../../ncnielsen.frontend/js/components/toggle-content.js","../../../../../../../ncnielsen.frontend/js/components/highlighted-used-machines.js","../../../../../../../ncnielsen.frontend/js/components/modal.js","../../../../../../../ncnielsen.frontend/js/components/list-view.js","../../../../../../../ncnielsen.frontend/js/components/gallery.js"],"sourcesContent":["/**\r\n * Handler to trigger callbacks once the browser is ready for them.\r\n *\r\n * You can keep adding references using onReady() even after the page is loaded. In that case they will be\r\n * run at once.\r\n *\r\n * @example\r\n * import { onReady } from './utils/events/onReady';\r\n *\r\n * onReady(yourFunctionHere);\r\n *\r\n */\r\n\r\nlet functionReferences = [];\r\n\r\n// Set the initial readyState based on the browser's current state. If the script has been loaded\r\n// asynchronously, the DOM might be ready for us already, in which case there's no reason to delay\r\n// any further processing. The following will evaluate as true if the DOM is ready, or the page is\r\n// complete.\r\nlet readyState = document.readyState === 'interactive' || document.readyState === 'complete';\r\n\r\n// Defines whether or not the window.onReady event has been bound, so we won't do it twice. That\r\n// would just be stupid.\r\nlet readyEventBound = false;\r\n\r\n/**\r\n * Run the given array of callback functions.\r\n *\r\n * @private\r\n * @param {Array} funcArray\r\n */\r\nfunction runFunctionArray(funcArray) {\r\n funcArray.forEach(funcRef => funcRef());\r\n}\r\n\r\n/**\r\n * Empty the callback arrays\r\n *\r\n * @private\r\n */\r\nfunction emptyCallbackArrays() {\r\n // Keep iterating through the function references until there are none left.\r\n while (functionReferences.length) {\r\n // Set up a temporary array that mirrors the list of callbacks, and empty the real one.\r\n const tempArray = functionReferences.slice(0);\r\n functionReferences = [];\r\n\r\n // Run the callbacks. The callbacks themselves may set up more callbacks, which\r\n // is why we keep looping the array until we're done.\r\n runFunctionArray(tempArray);\r\n }\r\n\r\n // At this point we'll assume we're ready for anything!\r\n readyState = true;\r\n}\r\n\r\n/**\r\n * Make sure the \"ready\"-event is set.\r\n *\r\n * @private\r\n */\r\nfunction bindReadyEvent() {\r\n if (!readyEventBound) {\r\n if (document.readyState === 'loading') {\r\n // loading yet, wait for the event\r\n document.addEventListener('DOMContentLoaded', emptyCallbackArrays);\r\n } else {\r\n // DOM is ready!\r\n emptyCallbackArrays();\r\n }\r\n\r\n readyEventBound = true;\r\n }\r\n}\r\n\r\n/**\r\n * Register a function to run when the page is ready.\r\n *\r\n * @param {Function} functionReference - The function you want to run.\r\n */\r\nexport function onReady(functionReference) {\r\n if (typeof functionReference === 'function') {\r\n if (readyState) {\r\n functionReference();\r\n } else {\r\n bindReadyEvent();\r\n\r\n functionReferences.push(functionReference);\r\n }\r\n }\r\n}\r\n","const documentStyles = getComputedStyle(document.documentElement);\r\nexport const currentBp = documentStyles.getPropertyValue('--current-bp');","export let scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\r\n\r\nlet ticking = false;\r\nlet scrollFunctions = [];\r\n\r\nfunction animate() {\r\n scrollFunctions.forEach(funcRef => funcRef());\r\n\r\n ticking = false;\r\n}\r\n\r\nfunction requestTick() {\r\n if (!ticking) {\r\n requestAnimationFrame(animate);\r\n ticking = true;\r\n }\r\n}\r\n\r\nfunction scrollHandler() {\r\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\r\n requestTick();\r\n}\r\n/**\r\n * Adds a function to a function array, executed on a single scroll-event set on window.\r\n * This avoids the memory load and possible hickups of setting multiple eventlisteners for the same event.\r\n * Also this optimizes rendering by utilising the requestAnimationFrame for these scroll-events.\r\n *\r\n * @param {Function} handler - function to be called on scroll\r\n * @param {boolean} triggerNow - Should the function be called at once\r\n */\r\nexport function onScroll(handler, triggerNow = false) {\r\n // if first call: setup eventlistener on window\r\n !scrollFunctions.length ? initScroll() : null;\r\n\r\n // Trigger function\r\n triggerNow ? handler() : null;\r\n\r\n scrollFunctions.push(handler);\r\n}\r\n\r\nexport function removeScroll(handler) {\r\n scrollFunctions = scrollFunctions.filter(x => x !== handler);\r\n}\r\n\r\nexport function initScroll() {\r\n window.addEventListener('scroll', scrollHandler);\r\n}\r\n","import { currentBp } from \"../utils/helpers\";\r\nimport { onScroll, scrollTop } from '../utils/scroll';\r\n\r\nexport function setupNavigation() {\r\n /* ---------- Burger navigation */\r\n const burger = document.querySelector('.navigation__burger');\r\n const burgerNavigation = document.getElementById('burgerNavigation');\r\n\r\n if (burger != undefined && burgerNavigation != undefined) {\r\n const burgerClose = burgerNavigation.querySelector('#burgerNavigation .burger-close');\r\n\r\n if (burgerClose != undefined) {\r\n burger.addEventListener('click', function () {\r\n document.body.classList.add('js-nav-open');\r\n document.documentElement.classList.add('js-nav-open');\r\n });\r\n\r\n burgerClose.addEventListener('click', function () {\r\n const openL5 = burgerNavigation.querySelector('ul.level-5.js-open');\r\n\r\n if (openL5 != undefined) {\r\n openL5.classList.remove('js-open');\r\n } else {\r\n document.body.classList.remove('js-nav-open');\r\n document.body.classList.remove('js-nav-level-1');\r\n document.body.classList.remove('js-nav-level-2');\r\n document.documentElement.classList.remove('js-nav-open');\r\n\r\n const openL4a = burgerNavigation.querySelector('a.level-4.js-open');\r\n\r\n if (openL4a != undefined) {\r\n openL4a.classList.remove('js-open');\r\n }\r\n\r\n const openL5ul = burgerNavigation.querySelector('ul.level-5.js-open');\r\n\r\n if (openL5ul != undefined) {\r\n openL5ul.classList.remove('js-open');\r\n }\r\n\r\n const hiddenLIs = burgerNavigation.querySelectorAll('li.js-hide');\r\n\r\n for (let a = 0, l = hiddenLIs.length; a < l; a++) {\r\n hiddenLIs[a].classList.remove('js-hide');\r\n }\r\n\r\n const ulLevel2s = burgerNavigation.querySelectorAll('ul.level-2');\r\n\r\n for (let a = 0, l = ulLevel2s.length; a < l; a++) {\r\n const ull2 = ulLevel2s[a];\r\n\r\n if (ull2.getAttribute('data-open-instantly') != 'true') {\r\n ull2.classList.remove('js-open');\r\n ull2.style.height = null;\r\n } else {\r\n ull2.style.height = ull2.getAttribute('data-initial-height') + 'px';\r\n ull2.classList.add('js-open');\r\n\r\n const li = ull2.closest('li');\r\n\r\n if (li) {\r\n li.classList.add('js-open');\r\n }\r\n }\r\n }\r\n\r\n const ulLevel3s = burgerNavigation.querySelectorAll('ul.level-3');\r\n\r\n for (let a = 0, l = ulLevel3s.length; a < l; a++) {\r\n const ull3 = ulLevel3s[a];\r\n\r\n if (ull3.getAttribute('data-open-instantly') != 'true') {\r\n ull3.classList.remove('js-open');\r\n ull3.style.height = null;\r\n } else {\r\n ull3.style.height = ull3.getAttribute('data-initial-height') + 'px';\r\n ull3.classList.add('js-open');\r\n\r\n const li = ull3.closest('li');\r\n\r\n if (li) {\r\n li.classList.add('js-open');\r\n }\r\n }\r\n }\r\n\r\n const ulLevel4s = burgerNavigation.querySelectorAll('ul.level-4');\r\n\r\n for (let a = 0, l = ulLevel4s.length; a < l; a++) {\r\n const ull4 = ulLevel4s[a];\r\n\r\n if (ull4.getAttribute('data-open-instantly') != 'true') {\r\n ull4.classList.remove('js-open');\r\n ull4.style.height = null;\r\n } else {\r\n ull4.style.height = ull4.getAttribute('data-initial-height') + 'px';\r\n ull4.classList.add('js-open');\r\n\r\n const li = ull4.closest('li');\r\n\r\n if (li) {\r\n li.classList.add('js-open');\r\n }\r\n }\r\n }\r\n\r\n const notInstantlyOpened = burgerNavigation.querySelectorAll('ul:not([data-open-instantly=\"true\"])');\r\n\r\n for (let a = 0, l = notInstantlyOpened.length; a < l; a++) {\r\n const li = notInstantlyOpened[a].closest('li');\r\n\r\n if (li) {\r\n li.classList.remove('js-open');\r\n }\r\n }\r\n }\r\n });\r\n\r\n /* ----- Mobile back links */\r\n const mobileBackLinks = document.querySelectorAll('#burgerNav .mobile-back');\r\n\r\n function clickMobileBackLink(e) {\r\n const ul3Open = e.target.closest('ul.level-3.js-open');\r\n const li2Open = e.target.closest('li.level-2.js-open');\r\n\r\n if (ul3Open && li2Open) {\r\n ul3Open.classList.remove('js-open');\r\n li2Open.classList.remove('js-open');\r\n }\r\n }\r\n\r\n for (let a = 0, l = mobileBackLinks.length; a < l; a++) {\r\n mobileBackLinks[a].addEventListener('click', clickMobileBackLink);\r\n }\r\n\r\n /* ----- Instantly opened L2s */\r\n if (currentBp == 'xxs' || currentBp == 'xs') {\r\n const level2s = document.querySelectorAll('ul.level-2.js-open');\r\n\r\n for (let a = 0, l = level2s.length; a < l; a++) {\r\n const height = level2s[a].scrollHeight;\r\n\r\n level2s[a].setAttribute('data-initial-height', height);\r\n\r\n if (level2s[a].classList.contains('js-open')) {\r\n level2s[a].style.height = height + 'px';\r\n }\r\n\r\n const li = level2s[a].closest('li');\r\n\r\n if (li) {\r\n li.classList.add('js-open');\r\n }\r\n }\r\n }\r\n\r\n /* ----- Instantly opened L4s */\r\n const level4Open = document.querySelectorAll('ul.level-4.js-open');\r\n\r\n for (let a = 0, l = level4Open.length; a < l; a++) {\r\n level4Open[a].style.height = level4Open[a].scrollHeight + 'px';\r\n\r\n const height = level4Open[a].scrollHeight;\r\n\r\n level4Open[a].setAttribute('data-initial-height', height);\r\n\r\n const parentLiL3 = level4Open[a].closest('li.level-3');\r\n\r\n if (parentLiL3 != undefined) {\r\n parentLiL3.classList.add('js-open');\r\n }\r\n }\r\n\r\n /* ----- Level 1 with children */\r\n if (currentBp == 'xxs' || currentBp == 'xs') {\r\n const level1WithChildren = burgerNavigation.querySelectorAll('a.level-1.children');\r\n\r\n function clickLevel1(e) {\r\n const li = e.target.closest('li.level-1.children');\r\n const sameLevelUlLevel2 = burgerNavigation.querySelectorAll('ul.level-2');\r\n\r\n if (li != undefined) {\r\n const ul = li.querySelector('ul.level-2');\r\n\r\n if (!ul.classList.contains('js-open')) {\r\n ul.classList.add('js-open');\r\n ul.classList.remove('js-hide');\r\n\r\n const li = ul.closest('li');\r\n\r\n if (li) {\r\n li.classList.add('js-open');\r\n }\r\n\r\n for (let a = 0, l = sameLevelUlLevel2.length; a < l; a++) {\r\n if (sameLevelUlLevel2[a] != ul) {\r\n sameLevelUlLevel2[a].style.height = null;\r\n sameLevelUlLevel2[a].classList.remove('js-open');\r\n\r\n const sli = sameLevelUlLevel2[a].closest('li');\r\n\r\n if (sli) {\r\n sli.classList.remove('js-open');\r\n }\r\n }\r\n }\r\n } else {\r\n ul.style.height = null;\r\n\r\n ul.classList.remove('js-open');\r\n }\r\n }\r\n\r\n updateL2Height();\r\n }\r\n\r\n for (let a = 0, l = level1WithChildren.length; a < l; a++) {\r\n level1WithChildren[a].addEventListener('click', clickLevel1);\r\n }\r\n }\r\n\r\n function updateL2Height() {\r\n if (currentBp == 'xxs' || currentBp == 'xs') {\r\n const openL2 = burgerNavigation.querySelector('ul.level-2.js-open');\r\n\r\n if (openL2 != undefined) {\r\n if (openL2.hasAttribute('data-initial-height')) {\r\n openL2.style.height = openL2.getAttribute('data-initial-height') + 'px';\r\n } else {\r\n openL2.style.height = openL2.scrollHeight + 'px';\r\n }\r\n }\r\n }\r\n }\r\n\r\n /* ----- Level 2 with children */\r\n const level2WhithChildren = burgerNavigation.querySelectorAll('a.level-2.children');\r\n\r\n function clickLevel2(e) {\r\n e.preventDefault();\r\n\r\n const li = e.target.closest('li.level-2.children');\r\n const ulL2 = e.target.closest('ul.level-2');\r\n\r\n if (li != undefined && ulL2 != undefined) {\r\n const sameLevelLiLevel2 = ulL2.querySelectorAll('li.level-2');\r\n const sameLevelUlLevel3 = ulL2.querySelectorAll('ul.level-3');\r\n const ul = li.querySelector('ul.level-3');\r\n\r\n if (ul != undefined) {\r\n if (!ul.classList.contains('js-open')) {\r\n li.classList.add('js-open');\r\n ul.classList.add('js-open');\r\n ul.classList.remove('js-hide');\r\n\r\n for (let a = 0, l = sameLevelLiLevel2.length; a < l; a++) {\r\n if (sameLevelLiLevel2[a] != li) {\r\n sameLevelLiLevel2[a].classList.add('js-hide');\r\n\r\n } else {\r\n sameLevelLiLevel2[a].classList.remove('js-hide');\r\n }\r\n }\r\n\r\n for (let a = 0, l = sameLevelUlLevel3.length; a < l; a++) {\r\n if (sameLevelUlLevel3[a] != ul) {\r\n sameLevelUlLevel3[a].classList.remove('js-open');\r\n }\r\n }\r\n } else {\r\n li.classList.remove('js-open');\r\n ul.classList.remove('js-open');\r\n\r\n for (let a = 0, l = sameLevelLiLevel2.length; a < l; a++) {\r\n sameLevelLiLevel2[a].classList.remove('js-hide');\r\n\r\n const l4s = sameLevelLiLevel2[a].querySelectorAll('ul.level-4');\r\n\r\n for (let b = 0, l2 = l4s.length; b < l2; b++) {\r\n if (l4s[b].getAttribute('data-open-instantly') == 'true') {\r\n if (currentBp != 'xxs' && currentBp != 'xs') {\r\n l4s[b].style.height = l4s[b].scrollHeight + 'px';\r\n }\r\n } else {\r\n if (currentBp != 'xxs' && currentBp != 'xs') {\r\n l4s[b].style.height = null;\r\n }\r\n\r\n l4s[b].classList.remove('js-open');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (let a = 0, l = level2WhithChildren.length; a < l; a++) {\r\n level2WhithChildren[a].addEventListener('click', clickLevel2);\r\n }\r\n\r\n /* ----- Level 3 with children */\r\n const level3WhithChildren = burgerNavigation.querySelectorAll('a.level-3.children');\r\n\r\n function clickLevel3(e) {\r\n e.preventDefault();\r\n\r\n const li = e.target.closest('li.level-3.children');\r\n\r\n if (li != undefined) {\r\n const ul = li.querySelector('ul.level-4');\r\n const ulL3 = e.target.closest('ul.level-3');\r\n\r\n if (ul != undefined) {\r\n const sameLevelUlLevel4 = ulL3.querySelectorAll('ul.level-4');\r\n\r\n if (!ul.classList.contains('js-open')) {\r\n ul.style.height = ul.scrollHeight + 'px';\r\n li.classList.add('js-open');\r\n ul.classList.add('js-open');\r\n ul.classList.remove('js-hide');\r\n\r\n for (let a = 0, l = sameLevelUlLevel4.length; a < l; a++) {\r\n if (sameLevelUlLevel4[a] != ul) {\r\n sameLevelUlLevel4[a].classList.remove('js-open');\r\n\r\n sameLevelUlLevel4[a].style.height = null;\r\n\r\n const parentLi = sameLevelUlLevel4[a].closest('li.level-3');\r\n\r\n if (parentLi != undefined) {\r\n parentLi.classList.remove('js-open');\r\n }\r\n }\r\n }\r\n } else {\r\n li.classList.remove('js-open');\r\n ul.classList.remove('js-open');\r\n\r\n if (currentBp != 'xxs' && currentBp != 'xs') {\r\n ul.style.height = null;\r\n }\r\n }\r\n }\r\n\r\n const openL5 = ulL3.querySelector('ul.level-5.js-open');\r\n const openAl4 = ulL3.querySelector('a.level-4.js-open');\r\n\r\n if (openL5 != undefined) {\r\n openL5.classList.remove('js-open');\r\n }\r\n\r\n if (openAl4 != undefined) {\r\n openAl4.classList.remove('js-open');\r\n }\r\n }\r\n }\r\n\r\n for (let a = 0, l = level3WhithChildren.length; a < l; a++) {\r\n level3WhithChildren[a].addEventListener('click', clickLevel3);\r\n }\r\n\r\n const level4WithChildren = burgerNavigation.querySelectorAll('a.level-4.children');\r\n\r\n function clickLevel4(e) {\r\n if (currentBp != 'xxs' && currentBp != 'xs') {\r\n e.preventDefault();\r\n\r\n const link = e.target.classList.contains('level-4') ? e.target : e.target.closest('a.level-4');\r\n const l4wc = e.target.closest('li.level-4.children');\r\n const l5 = l4wc.querySelector('ul.level-5');\r\n link.classList.add('js-open');\r\n l5.classList.add('js-open');\r\n\r\n const ulL4 = e.target.closest('ul.level-4');\r\n\r\n if (ulL4 != undefined) {\r\n const ulL5s = ulL4.querySelectorAll('ul.level-5');\r\n\r\n for (let a = 0, l = ulL5s.length; a < l; a++) {\r\n if (ulL5s[a] != l5) {\r\n ulL5s[a].classList.remove('js-open');\r\n\r\n const lil4 = ulL5s[a].closest('li.level-4');\r\n\r\n if (lil4 != undefined) {\r\n const al4 = lil4.querySelector('a.level-4');\r\n\r\n if (al4 != undefined) {\r\n al4.classList.remove('js-open');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (let a = 0, l = level4WithChildren.length; a < l; a++) {\r\n level4WithChildren[a].addEventListener('click', clickLevel4);\r\n }\r\n }\r\n }\r\n\r\n const navSearch = document.querySelector('.navigation__search');\r\n\r\n if (navSearch != undefined) {\r\n const navSearchInput = navSearch.querySelector('input[type=\"text\"]');\r\n\r\n if (navSearchInput) {\r\n navSearch.addEventListener('click', function () {\r\n this.classList.add('js-active');\r\n navSearchInput.focus();\r\n });\r\n }\r\n }\r\n\r\n const _navigation = document.getElementById('navigation');\r\n const breakingNews = document.querySelector('div.breaking-news');\r\n\r\n if (_navigation && breakingNews) {\r\n const breakingNewsHeight = breakingNews.scrollHeight;\r\n _navigation.setAttribute('style',`transform: translateY(${breakingNewsHeight}px);`);\r\n\r\n onScroll(() => {\r\n if (scrollTop >= breakingNewsHeight) {\r\n _navigation.removeAttribute('style');\r\n } else {\r\n _navigation.setAttribute('style', `transform: translateY(${breakingNewsHeight}px);`);\r\n }\r\n });\r\n }\r\n}","/**\r\n * Attention\r\n * Be aware that this module is dependent on support for Element.prototype.closest\r\n * This is included as default in https://polyfill.io/v3/polyfill.min.js\r\n */\r\n\r\n// Used keycodes\r\nconst keycode = {\r\n arrowUp: 38,\r\n arrowDown: 40,\r\n home: 36,\r\n end: 35\r\n};\r\n\r\nconst accordionSelector = '[data-action=\"accordion\"]';\r\n\r\nfunction openAccordion(trigger, content) {\r\n content.style.height = `${content.scrollHeight}px`;\r\n\r\n content.addEventListener('transitionend', function(e) {\r\n if (e.propertyName === 'height') {\r\n content.style.height = null;\r\n }\r\n });\r\n\r\n content.setAttribute('aria-hidden', false);\r\n trigger.setAttribute('aria-expanded', true);\r\n}\r\n\r\nfunction closeAccordion(trigger, content) {\r\n content.style.height = `${content.scrollHeight}px`;\r\n\r\n setTimeout(() => {\r\n content.style.height = '0';\r\n }, 0);\r\n\r\n content.setAttribute('aria-hidden', true);\r\n trigger.setAttribute('aria-expanded', false);\r\n}\r\n\r\nfunction openAccordByHashId() {\r\n if (window.location.hash.indexOf('accordion') > -1) {\r\n const content = document.getElementById(window.location.hash.replace('#', ''));\r\n\r\n if (content) {\r\n const accordion = document.getElementById(content.getAttribute('aria-labelledby'));\r\n accordion.click();\r\n }\r\n }\r\n}\r\n\r\nfunction toggleAccordion(e) {\r\n if (e && !(e.ctrlKey || e.metaKey || e.shiftKey)) {\r\n e.preventDefault();\r\n }\r\n\r\n const trigger = e.currentTarget;\r\n const accordion = trigger.closest(accordionSelector);\r\n\r\n if (accordion) {\r\n const content = accordion.querySelector('[aria-labelledby]');\r\n const opened = trigger.getAttribute('aria-expanded') == 'true';\r\n\r\n if (opened) {\r\n closeAccordion(trigger, content);\r\n } else {\r\n const closestAccordion = trigger.closest('.accordion');\r\n const closestAccordionItems = closestAccordion.querySelectorAll(accordionSelector);\r\n for (let i = 0; i < closestAccordionItems.length; i++) {\r\n const accTrigger = closestAccordionItems[i].querySelector('[aria-controls]');\r\n const accCon = closestAccordionItems[i].querySelector('[aria-labelledby]');\r\n if (accTrigger !== trigger)\r\n {\r\n closeAccordion(accTrigger, accCon);\r\n }\r\n }\r\n openAccordion(trigger, content);\r\n }\r\n }\r\n}\r\n\r\nfunction setupAccordion(accordionTrigger) {\r\n accordionTrigger.addEventListener('click', toggleAccordion);\r\n}\r\n\r\n/**\r\n * Initialise Accordions with this function\r\n * Will only run if given selector elements are found in DOM\r\n */\r\nexport function setupAccordions() {\r\n const accordions = document.querySelectorAll(accordionSelector);\r\n\r\n if (accordions) {\r\n\r\n accordions.forEach(accordion => {\r\n const accordionTrigger = accordion.querySelector('[aria-controls]');\r\n\r\n if (accordionTrigger) {\r\n setupAccordion(accordionTrigger);\r\n }\r\n });\r\n\r\n openAccordByHashId();\r\n }\r\n}\r\n\r\nwindow.addEventListener('keydown', event => {\r\n const focusedElement = document.activeElement;\r\n const closestElement = focusedElement.closest(accordionSelector);\r\n\r\n if (focusedElement && closestElement) {\r\n\r\n // Focus previous accordion\r\n if (event.keyCode === keycode.arrowUp) {\r\n const newFocusedElement = closestElement.previousElementSibling;\r\n if (newFocusedElement && newFocusedElement.querySelector('[aria-controls]')) {\r\n newFocusedElement.querySelector('[aria-controls]').focus();\r\n }\r\n }\r\n\r\n // Focus next accordion\r\n if (event.keyCode === keycode.arrowDown) {\r\n const newFocusedElement = closestElement.nextElementSibling;\r\n if (newFocusedElement && newFocusedElement.querySelector('[aria-controls]')) {\r\n newFocusedElement.querySelector('[aria-controls]').focus();\r\n }\r\n }\r\n\r\n // Focus first accordion\r\n if (event.keyCode === keycode.home) {\r\n const newFocusedElement = closestElement.parentNode.querySelector(`${accordionSelector}:first-child`);\r\n if (newFocusedElement && newFocusedElement.querySelector('[aria-controls]')) {\r\n event.preventDefault();\r\n newFocusedElement.querySelector('[aria-controls]').focus();\r\n }\r\n }\r\n\r\n // Focus last accordion\r\n if (event.keyCode === keycode.end) {\r\n const newFocusedElement = closestElement.parentNode.querySelector(`${accordionSelector}:last-child`);\r\n if (newFocusedElement && newFocusedElement.querySelector('[aria-controls]')) {\r\n event.preventDefault();\r\n newFocusedElement.querySelector('[aria-controls]').focus();\r\n }\r\n }\r\n }\r\n});\r\n","export function setupTabs() {\r\n /*\r\n THIS IS SOME OLDSCHOOL TABS CODE.\r\n IT'S ONLY HERE BECAUSE NCN WANTS TO USE IT ON NEW PAGES.\r\n */\r\n var tabSections = document.querySelectorAll('.section-tab-content');\r\n var productTabs = document.querySelectorAll('.section-product-tabs');\r\n\r\n if (tabSections.length > 0) {\r\n for (var a = 0, l = tabSections.length; a < l; a++) {\r\n var tabSection = tabSections[a];\r\n var tabItems = Array.prototype.slice.call(tabSection.querySelectorAll('.tabs__item'));\r\n var tabContents = Array.prototype.slice.call(tabSection.querySelectorAll('.tabs__content'));\r\n\r\n function clickTabItem(e) {\r\n var elm = e.currentTarget;\r\n var activeItem = elm.closest('.tabs__list').querySelector('.tabs__item--js-active');\r\n var activeContent = elm.closest('.tabs').querySelector('.tabs__content--js-active');\r\n var _tabItems = Array.prototype.slice.call(elm.closest('.tabs__list').querySelectorAll('.tabs__item'));\r\n var _tabContents = Array.prototype.slice.call(elm.closest('.tabs').querySelectorAll('.tabs__content'));\r\n\r\n if (activeItem) {\r\n activeItem.classList.remove('tabs__item--js-active');\r\n }\r\n\r\n if (activeContent) {\r\n activeContent.classList.remove('tabs__content--js-active');\r\n }\r\n\r\n var newIndex = _tabItems.indexOf(elm);\r\n\r\n elm.classList.add('tabs__item--js-active');\r\n _tabContents[newIndex].classList.add('tabs__content--js-active');\r\n }\r\n\r\n for (var b = 0, l2 = tabItems.length; b < l2; b++) {\r\n var tabItem = tabItems[b];\r\n var tabItemCounter = tabItems[b].querySelector('.js-counter');\r\n var tabContentCounter = tabContents[b].querySelector('.js-counter');\r\n\r\n if (tabItemCounter && tabContentCounter) {\r\n var tabItemContentItems = tabContents[b].querySelectorAll('li.searchresult__item');\r\n\r\n tabItemCounter.textContent = tabItemContentItems.length;\r\n tabContentCounter.textContent = tabItemContentItems.length;\r\n }\r\n\r\n tabItem.addEventListener('click',clickTabItem);\r\n }\r\n }\r\n }\r\n\r\n if (productTabs.length > 0) {\r\n for (var a = 0, l = productTabs.length; a < l; a++) {\r\n var tabSection = productTabs[a];\r\n var tabItems = Array.prototype.slice.call(tabSection.querySelectorAll('.tabs__item'));\r\n var tabContents = Array.prototype.slice.call(tabSection.querySelectorAll('.tabs__content'));\r\n\r\n function clickTabItem(e) {\r\n var elm = e.currentTarget;\r\n var activeItem = elm.closest('.tabs__list').querySelector('.tabs__item--js-active');\r\n var activeContent = elm.closest('.tabs').querySelector('.tabs__content--js-active');\r\n var _tabItems = Array.prototype.slice.call(elm.closest('.tabs__list').querySelectorAll('.tabs__item'));\r\n var _tabContents = Array.prototype.slice.call(elm.closest('.tabs').querySelectorAll('.tabs__content'));\r\n\r\n if (activeItem) {\r\n activeItem.classList.remove('tabs__item--js-active');\r\n }\r\n\r\n if (activeContent) {\r\n activeContent.classList.remove('tabs__content--js-active');\r\n }\r\n\r\n var newIndex = _tabItems.indexOf(elm);\r\n\r\n elm.classList.add('tabs__item--js-active');\r\n _tabContents[newIndex].classList.add('tabs__content--js-active');\r\n }\r\n\r\n for (var b = 0, l2 = tabItems.length; b < l2; b++) {\r\n var tabItem = tabItems[b];\r\n var tabItemCounter = tabItems[b].querySelector('.js-counter');\r\n var tabContentCounter = tabContents[b].querySelector('.js-counter');\r\n\r\n if (tabItemCounter && tabContentCounter) {\r\n var tabItemContentItems = tabContents[b].querySelectorAll('li.searchresult__item');\r\n\r\n tabItemCounter.textContent = tabItemContentItems.length;\r\n tabContentCounter.textContent = tabItemContentItems.length;\r\n }\r\n\r\n tabItem.addEventListener('click',clickTabItem);\r\n }\r\n }\r\n }\r\n};","import { onReady } from './utils/onReady';\r\nimport { setupNavigation } from './components/navigation';\r\nimport { setupToggleContent } from './components/toggle-content';\r\nimport { setupHighlightedUsedMachines } from './components/highlighted-used-machines';\r\nimport { setupListView } from './components/list-view';\r\nimport { setupModals } from './components/modal';\r\nimport { setupGallery } from './components/gallery';\r\nimport { setupAccordions } from './components/accordion';\r\nimport { setupTabs } from './components/tabs';\r\n\r\nfunction init() {\r\n document.body.classList.remove('standby');\r\n\r\n const isTouch = 'ontouchstart' in window;\r\n\r\n if (isTouch) {\r\n document.body.classList.add('js-touch');\r\n document.body.setAttribute('data-is-touch', 'True');\r\n } else {\r\n document.body.classList.add('js-no-touch');\r\n document.body.setAttribute('data-is-touch', 'False');\r\n }\r\n\r\n onReady(() => {\r\n setupNavigation();\r\n setupToggleContent();\r\n setupHighlightedUsedMachines();\r\n setupListView();\r\n setupModals();\r\n setupGallery();\r\n setupAccordions();\r\n setupTabs();\r\n });\r\n}\r\n\r\ninit();\r\n","export function setupToggleContent() {\r\n const expanders = document.querySelectorAll('[data-action=\"expand-content\"]');\r\n const collapsers = document.querySelectorAll('[data-action=\"collapse-content\"]');\r\n\r\n function expandContent(e) {\r\n const expander = e.currentTarget;\r\n const target = document.querySelector(expander.getAttribute('data-target'));\r\n\r\n if (target) {\r\n if (!target.classList.contains('js-open')) {\r\n target.style.height = `${target.scrollHeight}px`;\r\n target.classList.add('js-open');\r\n expander.classList.add('js-hidden');\r\n }\r\n }\r\n }\r\n\r\n function collapseContent(e) {\r\n const collapeser = e.currentTarget;\r\n const target = document.querySelector(collapeser.getAttribute('data-target'));\r\n\r\n if (target) {\r\n if (target.classList.contains('js-open')) {\r\n target.style.height = null;\r\n target.classList.remove('js-open');\r\n }\r\n }\r\n\r\n const expander = document.querySelector(`[data-action=\"expand-content\"][data-target=\"${collapeser.getAttribute('data-target')}\"]`);\r\n\r\n if (expander) {\r\n expander.classList.remove('js-hidden');\r\n }\r\n }\r\n\r\n expanders.forEach(expander => {\r\n expander.addEventListener('click',expandContent);\r\n });\r\n\r\n collapsers.forEach(collapser => {\r\n collapser.addEventListener('click',collapseContent);\r\n });\r\n}","export function setupHighlightedUsedMachines() {\r\n const usedMachinesList = document.querySelector('.highlighted-used-machines__list');\r\n let currentFirstIndex = 0;\r\n let currentCenterIndex = 1;\r\n let currentLastIndex = 2;\r\n let direction = -1;\r\n let visibleItemCount = -1;\r\n let touchNextIndex = -1;\r\n\r\n if (usedMachinesList != undefined) {\r\n const usedMachineItems = usedMachinesList.querySelectorAll('.highlighted-used-machines__item');\r\n const totalItems = usedMachineItems.length;\r\n const navigationArrowLeft = usedMachinesList.parentNode.querySelector('.highlighted-used-machines__navigation-arrow--left');\r\n const navigationArrowRight = usedMachinesList.parentNode.querySelector('.highlighted-used-machines__navigation-arrow--right');\r\n const currentRightItem = usedMachinesList.querySelector('.highlighted-used-machines__item.js-right');\r\n const currentCenterItem = usedMachinesList.querySelector('.highlighted-used-machines__item.js-center');\r\n\r\n if (currentRightItem != undefined && currentCenterItem != undefined) {\r\n const styles = getComputedStyle(currentRightItem);\r\n\r\n if (styles.right != '0px') {\r\n visibleItemCount = 2;\r\n } else {\r\n if (styles.left == '0px') {\r\n visibleItemCount = 1;\r\n } else {\r\n visibleItemCount = 3;\r\n }\r\n }\r\n }\r\n\r\n if (navigationArrowLeft != undefined && navigationArrowRight != undefined) {\r\n if (totalItems > visibleItemCount) {\r\n navigationArrowLeft.addEventListener('click', function () {\r\n direction = 'left';\r\n navigateUsedMachines();\r\n });\r\n\r\n navigationArrowRight.addEventListener('click', function () {\r\n direction = 'right';\r\n navigateUsedMachines();\r\n });\r\n }\r\n }\r\n\r\n function navigateUsedMachines() {\r\n let nextFirstIndex = -1;\r\n let nextCenterIndex = -1;\r\n let nextLastIndex = -1;\r\n\r\n if (direction == 'right') {\r\n if (currentFirstIndex + visibleItemCount < totalItems) {\r\n nextFirstIndex = currentFirstIndex + visibleItemCount;\r\n } else {\r\n nextFirstIndex = 0;\r\n }\r\n\r\n if (nextFirstIndex + 1 < totalItems) {\r\n nextCenterIndex = nextFirstIndex + 1;\r\n } else {\r\n nextCenterIndex = 0;\r\n }\r\n\r\n if (nextCenterIndex + 1 < totalItems) {\r\n nextLastIndex = nextCenterIndex + 1;\r\n } else {\r\n nextLastIndex = 0;\r\n }\r\n }\r\n\r\n if (direction == 'left') {\r\n if (currentFirstIndex - visibleItemCount > 0) {\r\n nextFirstIndex = currentFirstIndex - visibleItemCount;\r\n } else {\r\n if (currentFirstIndex - visibleItemCount == 0) {\r\n nextFirstIndex = 0;\r\n } else {\r\n nextFirstIndex = totalItems + (currentFirstIndex - visibleItemCount);\r\n }\r\n }\r\n\r\n if (nextFirstIndex + 1 < totalItems) {\r\n nextCenterIndex = nextFirstIndex + 1;\r\n } else {\r\n nextCenterIndex = 0;\r\n }\r\n\r\n if (nextCenterIndex + 1 < totalItems) {\r\n nextLastIndex = nextCenterIndex + 1;\r\n } else {\r\n nextLastIndex = 0;\r\n }\r\n }\r\n\r\n usedMachineItems[currentFirstIndex].classList.remove('js-left');\r\n usedMachineItems[currentCenterIndex].classList.remove('js-center');\r\n usedMachineItems[currentLastIndex].classList.remove('js-right');\r\n\r\n usedMachineItems[nextFirstIndex].classList.add('js-left');\r\n usedMachineItems[nextCenterIndex].classList.add('js-center');\r\n usedMachineItems[nextLastIndex].classList.add('js-right');\r\n\r\n currentFirstIndex = nextFirstIndex;\r\n currentCenterIndex = nextCenterIndex;\r\n currentLastIndex = nextLastIndex;\r\n }\r\n\r\n let moved = false;\r\n\r\n usedMachinesList.addEventListener('touchstart', function (e) {\r\n if (e.touches.length == 1) {\r\n startX = e.changedTouches[0].pageX;\r\n startY = e.changedTouches[0].pageY;\r\n }\r\n });\r\n\r\n usedMachinesList.addEventListener('touchmove', function (e) {\r\n if (e.touches.length == 1) {\r\n moveX = e.targetTouches[0].pageX;\r\n moveY = e.targetTouches[0].pageY;\r\n\r\n let diffX = startX - moveX;\r\n let diffY = startY - moveY;\r\n\r\n if (diffX < 0) {\r\n diffX = diffX * -1;\r\n direction = 'left';\r\n } else {\r\n direction = 'right';\r\n }\r\n\r\n if (diffY < 0) {\r\n diffY = diffY * -1;\r\n }\r\n\r\n if (diffX > diffY) {\r\n e.preventDefault();\r\n\r\n const moveItemX = moveX - startX;\r\n\r\n if (direction == 'left') {\r\n if (currentCenterIndex - 1 >= 0) {\r\n touchNextIndex = currentCenterIndex - 1;\r\n } else {\r\n touchNextIndex = usedMachineItems.length - 1;\r\n }\r\n } else if (direction = 'right') {\r\n if (currentCenterIndex + 1 < usedMachineItems.length) {\r\n touchNextIndex = currentCenterIndex + 1;\r\n } else {\r\n touchNextIndex = 0;\r\n }\r\n }\r\n\r\n const moveNextX = moveItemX;\r\n\r\n if (direction == 'right') {\r\n moveNextX = moveItemX + windowwidth;\r\n } else if (direction == 'left') {\r\n moveNextX = moveItemX - windowwidth;\r\n }\r\n\r\n usedMachineItems[currentCenterIndex].style.transform = `translateX(${moveItemX}px)`;\r\n usedMachineItems[currentCenterIndex].style.transition = 'none';\r\n usedMachineItems[currentCenterIndex].classList.add('js-no-transition');\r\n usedMachineItems[touchNextIndex].style.transform = `translateX(${moveNextX}px)`;\r\n usedMachineItems[touchNextIndex].style.transition = 'none';\r\n usedMachineItems[touchNextIndex].classList.add('js-no-transition');\r\n\r\n moved = true;\r\n }\r\n }\r\n });\r\n\r\n usedMachinesList.addEventListener('touchend', function (e) {\r\n if (moved) {\r\n let diffX = startX - moveX;\r\n let diffY = startY - moveY;\r\n let direction = -1;\r\n\r\n if (diffX < 0) {\r\n direction = 'left';\r\n } else {\r\n direction = 'right';\r\n }\r\n\r\n if (diffX < 0) {\r\n diffX = diffX * -1;\r\n }\r\n\r\n if (diffY < 0) {\r\n diffY = diffY * -1;\r\n }\r\n\r\n const cci = currentCenterIndex;\r\n const tni = touchNextIndex;\r\n\r\n /*let cfx = -1;\r\n\r\n if (direction == 'right') {\r\n cfx = '-100vw';\r\n } else if (direction == 'left') {\r\n cfx = '100vw';\r\n }*/\r\n\r\n usedMachineItems[cci].removeAttribute('style');\r\n usedMachineItems[cci].classList.remove('js-no-transition');\r\n usedMachineItems[tni].removeAttribute('style');\r\n usedMachineItems[tni].classList.remove('js-no-transition');\r\n\r\n if (diffX > diffY) {\r\n if (diffX > 50) {\r\n navigateUsedMachines();\r\n }\r\n }\r\n\r\n startX = -1;\r\n startY = -1;\r\n moveX = -1;\r\n moveY = -1;\r\n touchNextIndex = -1;\r\n moved = false;\r\n }\r\n }, {\r\n passive: true\r\n });\r\n\r\n usedMachinesList.addEventListener('touchcancel', function (e) {\r\n startX = -1;\r\n startY = -1;\r\n moveX = -1;\r\n moveY = -1;\r\n touchNextIndex = -1;\r\n moved = false;\r\n }, {\r\n passive: true\r\n });\r\n }\r\n}\r\n","export function setupModals() {\r\n const pageUrl = window.location.toString();\r\n\r\n if (pageUrl.indexOf('modal=') != -1) {\r\n let urlModal = pageUrl.substring(pageUrl.indexOf('modal=') + 6);\r\n\r\n if (urlModal.indexOf('&') != -1) {\r\n urlModal = urlModal.substring(0, urlModal.indexOf('&'));\r\n }\r\n\r\n if (urlModal.indexOf('#') != -1) {\r\n urlModal = urlModal.substring(0, urlModal.indexOf('#'));\r\n }\r\n\r\n const modal = document.querySelector(`.modal#${urlModal}`);\r\n\r\n if (modal != undefined) {\r\n const modalClose = modal.querySelector('.button-close');\r\n\r\n if (modalClose != undefined) {\r\n document.body.classList.add('js-modal-open');\r\n modal.classList.add('js-open');\r\n\r\n modalClose.addEventListener('click', function () {\r\n document.body.classList.remove('js-modal-open');\r\n modal.classList.remove('js-open');\r\n });\r\n }\r\n }\r\n }\r\n\r\n const modalTriggers = document.querySelectorAll('[data-modal-trigger]');\r\n const modalCloseButtons = document.querySelectorAll('.modal .button-close');\r\n\r\n function clickModalTrigger(e) {\r\n const trigger = e.currentTarget;\r\n const modal = document.querySelector(`#${trigger.getAttribute('data-modal-trigger')}`);\r\n\r\n if (modal) {\r\n modal.classList.add('js-open');\r\n }\r\n }\r\n\r\n function clickModalCloseButton(e) {\r\n const button = e.currentTarget;\r\n const modal = button.closest('.modal');\r\n\r\n if (modal) {\r\n modal.classList.remove('js-open');\r\n }\r\n }\r\n\r\n modalTriggers.forEach(trigger => {\r\n trigger.addEventListener('click',clickModalTrigger);\r\n });\r\n\r\n modalCloseButtons.forEach(button => {\r\n button.addEventListener('click', clickModalCloseButton);\r\n });\r\n}","export function setupListView() {\r\n const newsList = document.querySelector('.list-view');\r\n const prevArrow = document.querySelector('.list-view__navigation-arrow--left');\r\n const nextArrow = document.querySelector('.list-view__navigation-arrow--right');\r\n\r\n if (newsList != undefined && prevArrow != undefined && nextArrow != undefined) {\r\n const mobileIndicators = document.querySelectorAll('.list-view__mobile-indicator-item');\r\n const newsListWidth = newsList.offsetWidth;\r\n const newsItems = newsList.querySelectorAll('.list-view__item');\r\n\r\n if (newsItems.length > 0) {\r\n let prevIndex = newsItems.length - 1;\r\n let activeIndex = 0;\r\n let nextIndex = 1;\r\n\r\n function clickNewsItem(e) {\r\n const elm = e.target;\r\n\r\n if (!elm.hasClass('news')) {\r\n elm = elm.closest('.news');\r\n }\r\n\r\n if (!elm.hasClass('js-active')) {\r\n e.preventDefault();\r\n const isPrev = elm.classList.contains('js-prev');\r\n const direction = isPrev ? 'prev' : 'next';\r\n\r\n updateNewsList(direction);\r\n }\r\n }\r\n\r\n function updateNewsList(direction) {\r\n let nextActive = -1;\r\n let nextPrev = -1;\r\n let nextNext = -1;\r\n\r\n if (direction == 'prev') {\r\n nextActive = prevIndex;\r\n nextPrev = prevIndex == 0 ? newsItems.length - 1 : prevIndex - 1;\r\n nextNext = nextIndex == 0 ? newsItems.length - 1 : nextIndex - 1;\r\n } else if (direction == 'next') {\r\n nextActive = nextIndex;\r\n nextPrev = prevIndex + 1 < newsItems.length ? prevIndex + 1 : 0;\r\n nextNext = nextIndex + 1 < newsItems.length ? nextIndex + 1 : 0;\r\n }\r\n\r\n newsItems[nextActive].classList.remove('js-prev');\r\n newsItems[nextActive].classList.remove('js-next');\r\n newsItems[nextActive].classList.add('js-active');\r\n newsItems[nextNext].classList.remove('js-active');\r\n newsItems[nextNext].classList.remove('js-prev');\r\n newsItems[nextNext].classList.add('js-next');\r\n newsItems[nextPrev].classList.remove('js-active');\r\n newsItems[nextPrev].classList.remove('js-next');\r\n newsItems[nextPrev].classList.add('js-prev');\r\n\r\n if (direction == 'prev') {\r\n if (nextIndex != nextActive && nextIndex != nextNext && nextIndex != nextPrev) {\r\n newsItems[nextIndex].classList.remove('js-next');\r\n }\r\n }\r\n\r\n if (direction == 'next') {\r\n if (prevIndex != nextActive && prevIndex != nextNext && prevIndex != nextPrev) {\r\n newsItems[prevIndex].classList.remove('js-prev');\r\n }\r\n }\r\n\r\n mobileIndicators[activeIndex].classList.remove('js-active');\r\n mobileIndicators[nextActive].classList.add('js-active');\r\n\r\n prevIndex = nextPrev;\r\n activeIndex = nextActive;\r\n nextIndex = nextNext;\r\n }\r\n\r\n prevArrow.addEventListener('click', function () {\r\n updateNewsList('prev');\r\n });\r\n\r\n nextArrow.addEventListener('click', function () {\r\n updateNewsList('next');\r\n });\r\n\r\n for (let a = 0; a < newsItems.length; a++) {\r\n const currentNewsItem = newsItems[a];\r\n currentNewsItem.addEventListener('click', clickNewsItem);\r\n }\r\n\r\n let startX = -1;\r\n let startY = -1;\r\n let moveX = -1;\r\n let moveY = -1;\r\n let moved = false;\r\n const prevTransition = getComputedStyle(newsItems[activeIndex]).transition;\r\n const activeStyle = getComputedStyle(newsItems[activeIndex]);\r\n const isSmallScreen = activeStyle.transform == 'none';\r\n\r\n newsList.addEventListener('touchstart', function (e) {\r\n if (e.touches.length == 1) {\r\n startX = e.changedTouches[0].pageX;\r\n startY = e.changedTouches[0].pageY;\r\n }\r\n });\r\n\r\n newsList.addEventListener('touchmove', function (e) {\r\n if (e.touches.length == 1) {\r\n moveX = e.targetTouches[0].pageX;\r\n moveY = e.targetTouches[0].pageY;\r\n\r\n let diffX = startX - moveX;\r\n let diffY = startY - moveY;\r\n\r\n if (diffX < 0) {\r\n diffX = diffX * -1;\r\n }\r\n\r\n if (diffY < 0) {\r\n diffY = diffY * -1;\r\n }\r\n\r\n if (diffX > diffY) {\r\n const translateX = (startX - moveX) * -1;\r\n const nextTranslateX = translateX + newsListWidth;\r\n const prevTranslateX = translateX - newsListWidth;\r\n\r\n newsItems[activeIndex].style.transition = 'none';\r\n newsItems[prevIndex].style.transition = 'none';\r\n newsItems[nextIndex].style.transition = 'none';\r\n\r\n if (isSmallScreen) {\r\n newsItems[activeIndex].style.transform = `translateX(${translateX}px)`;\r\n\r\n if (translateX > 0) {\r\n newsItems[prevIndex].style.transform = `translateX(${prevTranslateX}px)`;\r\n } else {\r\n newsItems[nextIndex].style.transform = `translateX(${nextTranslateX}px)`;\r\n }\r\n }\r\n\r\n moved = true;\r\n e.preventDefault();\r\n }\r\n }\r\n });\r\n\r\n newsList.addEventListener('touchend', function (e) {\r\n if (moved) {\r\n let diffX = startX - moveX;\r\n let diffY = startY - moveY;\r\n let direction = -1;\r\n\r\n if (diffX > 0) {\r\n direction = 'next';\r\n } else {\r\n direction = 'prev';\r\n }\r\n\r\n if (diffX < 0) {\r\n diffX = diffX * -1;\r\n }\r\n\r\n if (diffY < 0) {\r\n diffY = diffY * -1;\r\n }\r\n\r\n if (diffX > diffY) {\r\n if (diffX > 50) {\r\n updateNewsList(direction);\r\n }\r\n }\r\n\r\n newsItems[activeIndex].removeAttribute('style');\r\n newsItems[prevIndex].removeAttribute('style');\r\n newsItems[nextIndex].removeAttribute('style');\r\n\r\n startX = -1;\r\n startY = -1;\r\n moveX = -1;\r\n moveY = -1;\r\n moved = false;\r\n }\r\n }, {\r\n passive: true\r\n });\r\n\r\n newsList.addEventListener('touchcancel', function (e) {\r\n newsItems[activeIndex].removeAttribute('style');\r\n newsItems[prevIndex].removeAttribute('style');\r\n newsItems[nextIndex].removeAttribute('style');\r\n\r\n startX = -1;\r\n startY = -1;\r\n moveX = -1;\r\n moveY = -1;\r\n moved = false;\r\n }, {\r\n passive: true\r\n });\r\n }\r\n }\r\n}","export function setupGallery() {\r\n const galleries = document.querySelectorAll('.standard-page-image-block__gallery');\r\n\r\n function clickSmallImage(e) {\r\n const elm = e.currentTarget;\r\n\r\n if (!elm.classList.contains('js-active')) {\r\n const clicked = elm.querySelector('img');\r\n\r\n if (clicked != undefined) {\r\n const clickedSource = clicked.src;\r\n const imageGallery = elm.closest('.standard-page-image-block__gallery');\r\n\r\n if (imageGallery != undefined) {\r\n const currentActive = imageGallery.querySelector('.standard-page-image-block__gallery-item--small.js-active');\r\n const allSmallImages = imageGallery.querySelectorAll('.standard-page-image-block__gallery-item--small');\r\n const largeImage = imageGallery.querySelector('.standard-page-image-block__gallery-item--large');\r\n\r\n if (largeImage != undefined) {\r\n const largeActive = largeImage.querySelector('.standard-page-image-block__image-wrap.js-active');\r\n const largeInactive = largeImage.querySelector('.standard-page-image-block__image-wrap:not(.js-active)');\r\n\r\n if (largeActive != undefined && largeInactive != undefined) {\r\n if (largeInactive.children.length == 0) {\r\n const newImage = document.createElement('img');\r\n newImage.classList.add('standard-page-image-block__image');\r\n newImage.src = clickedSource;\r\n largeInactive.appendChild(newImage);\r\n } else {\r\n const inactiveImg = largeInactive.querySelector('img');\r\n\r\n if (inactiveImg != undefined) {\r\n inactiveImg.src = clickedSource;\r\n }\r\n }\r\n\r\n largeActive.classList.remove('js-active');\r\n largeInactive.classList.add('js-active');\r\n\r\n if (currentActive != undefined) {\r\n currentActive.classList.remove('js-active');\r\n elm.classList.add('js-active');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (let a = 0; a < galleries.length; a++) {\r\n const currentGallery = galleries[a];\r\n const smallImages = currentGallery.querySelectorAll('.standard-page-image-block__gallery-item--small');\r\n\r\n for (let b = 0; b < smallImages.length; b++) {\r\n const currentSmallImage = smallImages[b];\r\n currentSmallImage.addEventListener('click', clickSmallImage);\r\n }\r\n }\r\n}"],"names":["functionReferences","readyState","document","readyEventBound","emptyCallbackArrays","length","tempArray","slice","forEach","funcRef","onReady","functionReference","addEventListener","push","currentBp","getComputedStyle","documentElement","getPropertyValue","scrollTop","body","ticking","scrollFunctions","animate","scrollHandler","requestAnimationFrame","onScroll","handler","triggerNow","window","setupNavigation","burger","querySelector","burgerNavigation","getElementById","undefined","burgerClose","clickMobileBackLink","e","ul3Open","target","closest","li2Open","classList","remove","clickLevel2","preventDefault","li","ulL2","sameLevelLiLevel2","querySelectorAll","sameLevelUlLevel3","ul","contains","a","l","l4s","b","l2","getAttribute","style","height","scrollHeight","add","clickLevel3","ulL3","sameLevelUlLevel4","parentLi","openL5","openAl4","clickLevel4","link","l5","ulL4","al4","ulL5s","lil4","mobileBackLinks","openL4a","openL5ul","hiddenLIs","ulLevel2s","ull2","ulLevel3s","ull3","ulLevel4s","ull4","notInstantlyOpened","level2s","setAttribute","level4Open","parentLiL3","clickLevel1","sameLevelUlLevel2","sli","openL2","hasAttribute","level1WithChildren","level2WhithChildren","level3WhithChildren","level4WithChildren","navSearchInput","breakingNewsHeight","navSearch","_navigation","this","focus","breakingNews","removeAttribute","keycode","accordionSelector","closeAccordion","trigger","content","setTimeout","toggleAccordion","ctrlKey","metaKey","shiftKey","currentTarget","accordion","closestAccordionItems","i","accTrigger","accCon","propertyName","setupAccordions","accordions","accordionTrigger","location","hash","indexOf","replace","click","setupTabs","tabSections","productTabs","clickTabItem","elm","activeItem","activeContent","_tabItems","Array","prototype","call","_tabContents","newIndex","tabSection","tabItems","tabContents","tabItem","tabItemCounter","tabContentCounter","tabItemContentItems","textContent","event","focusedElement","activeElement","closestElement","keyCode","newFocusedElement","previousElementSibling","nextElementSibling","parentNode","expandContent","expander","collapseContent","collapeser","concat","expanders","collapsers","collapser","usedMachinesList","currentFirstIndex","currentLastIndex","touchNextIndex","visibleItemCount","direction","currentCenterIndex","navigateUsedMachines","nextFirstIndex","nextCenterIndex","nextLastIndex","totalItems","usedMachineItems","navigationArrowLeft","navigationArrowRight","currentRightItem","currentCenterItem","styles","right","left","moved","touches","startX","changedTouches","pageX","startY","pageY","moveItemX","moveNextX","moveX","targetTouches","moveY","diffX","diffY","windowwidth","_readOnlyError","transform","transition","cci","tni","passive","modal","modalTriggers","modalCloseButtons","newsList","prevArrow","nextArrow","mobileIndicators","newsListWidth","offsetWidth","newsItems","clickNewsItem","hasClass","isPrev","updateNewsList","nextActive","nextPrev","nextNext","prevIndex","nextIndex","activeIndex","isSmallScreen","translateX","nextTranslateX","prevTranslateX","clickModalTrigger","clickModalCloseButton","pageUrl","toString","urlModal","substring","modalClose","button","galleries","clickSmallImage","clickedSource","currentActive","largeActive","largeInactive","inactiveImg","clicked","src","imageGallery","largeImage","children","newImage","createElement","appendChild","smallImages"],"mappings":"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"}