{"version":3,"file":"./scripts/core-vanilla.min.js","mappings":"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","sources":["webpack://frontendv2/./src/js/library/header.js","webpack://frontendv2/./src/js/library/legacy/a11y.js","webpack://frontendv2/webpack/bootstrap","webpack://frontendv2/./src/js/scripts/core-vanilla.js"],"sourcesContent":["/* eslint-disable */\nwindow.header = (function () {\n 'use strict';\n\n const mainHeader = document.querySelector('header'),\n overlay = mainHeader.querySelector('.nav__overlay'),\n search = mainHeader.querySelector('.nav__search'),\n mobileMenu = mainHeader.querySelector('.mh--mobile-menu'),\n isWideScreen = window.matchMedia('(min-width: 940px)').matches,\n buttons = mainHeader.querySelectorAll('button.nav__subgroup, .mh--mobile-menu, .fld__item');\n let btnClose = mainHeader.querySelectorAll('.nav__btn-close'),\n login = mainHeader.querySelector('.nav__login.js-modal-trigger'),\n btnBack = mainHeader.querySelectorAll('.nav__btn-back');\n\n\n // TOGGLE ARIA-EXPANDED BETWEEN TRUE OR FALSE\n function toggleAria(element) {\n if (element.getAttribute('aria-expanded') === 'false') {\n element.setAttribute('aria-expanded', 'true');\n } else {\n element.setAttribute('aria-expanded', 'false');\n }\n }\n\n // TOGGLE CLASS TO SHOW OR HIDE FOLDOUTS\n function toggleShow(element) {\n element.classList.toggle('mhf--show');\n }\n\n // FOCUS TRAP\n function focusTrap(elem) {\n const focusableElements = elem.querySelectorAll('a[href], button:not(.hidden)'),\n firstElement = focusableElements[0],\n lastElement = focusableElements[focusableElements.length - 1];\n\n firstElement.focus();\n\n firstElement.addEventListener('keydown', event => {\n if (event.shiftKey && event.keyCode === 9) {\n event.preventDefault();\n lastElement.focus();\n }\n });\n\n lastElement.addEventListener('keydown', event => {\n if (event.keyCode === 9 && !event.shiftKey) {\n event.preventDefault();\n firstElement.focus();\n }\n });\n }\n\n // RESET ALL STATES EN CLOSE EVERYTHING\n function resetMenu() {\n const shownElements = mainHeader.querySelectorAll('.mhf--show'),\n ariaButtons = mainHeader.querySelectorAll('button:not(.nav__btn-close):not(.nav__btn-back)');\n\n shownElements.forEach(element => toggleShow(element));\n ariaButtons.forEach(button => button.setAttribute('aria-expanded', 'false'));\n mainHeader.classList.remove('mh--opened');\n }\n\n // OPEN MENU\n function openMenu(button) {\n const navPrimary = mainHeader.querySelector('nav'),\n btn = button;\n\n mainHeader.classList.add('mh--opened');\n toggleAria(btn);\n\n if (btn === mobileMenu) {\n toggleShow(navPrimary);\n focusTrap(navPrimary);\n } else {\n toggleShow(btn.nextElementSibling);\n focusTrap(btn.nextElementSibling);\n }\n }\n\n // SET BALLOON TIP LOGIN\n function setTip() {\n const cntrPos = document.querySelector('.nav__container').getBoundingClientRect().left,\n btnPos = document.querySelector('.nav__login').getBoundingClientRect().right,\n calcPos = window.innerWidth - (cntrPos - 20) - btnPos,\n adjustedCalc = calcPos - (window.innerWidth > 1140 ? 17 : 0);\n\n document.documentElement.style.setProperty('--tip-position', `${adjustedCalc}px`);\n }\n\n // NAVIGATION BUTTONS\n buttons.forEach(button => {\n button.addEventListener('click', function (event) {\n const isOpen = button.getAttribute('aria-expanded') === 'true';\n\n if (isWideScreen) {\n resetMenu();\n }\n if (!isOpen) {\n event.stopPropagation();\n event.preventDefault();\n openMenu(this);\n }\n });\n });\n\n // LOGIN\n if (login) {\n login.addEventListener('click', () => {\n login.classList.add('modal--open');\n toggleAria(login);\n setTip();\n });\n };\n\n // GO BACK\n btnBack.forEach(btn => {\n btn.addEventListener('click', () => {\n toggleShow(btn.parentElement);\n toggleAria(btn.parentElement.previousElementSibling);\n btn.parentElement.previousElementSibling.focus();\n });\n });\n\n // CLOSE MENU & RESET FOCUS\n btnClose.forEach(btn => {\n btn.addEventListener('click', () => {\n resetMenu();\n if (isWideScreen) {\n focus(btn.closest('.mh--foldout').previousSibling);\n } else {\n mobileMenu.focus();\n }\n });\n });\n\n // CLOSE BY CLICK OUTSIDE MENU\n overlay.addEventListener('click', () => {\n resetMenu();\n });\n\n // CLOSE BY CLICK ON SEARCH\n if (search) {\n search.addEventListener('click', () => {\n resetMenu();\n });\n }\n\n\n // CLOSE BY ESCAPE\n document.addEventListener('keyup', event => {\n if (event.code === 'Escape') {\n resetMenu();\n }\n });\n\n // SCROLL COLOR EVENT\n window.addEventListener('scroll', () => {\n let scrollPosition = window.scrollY;\n\n // list of page types which are excluded (class on body)\n const bodyClasses = ['shop-page-checkout', 'mijninterpolis-inloggen'],\n bodyClassesCheck = bodyClasses.some(className => document.body.classList.contains(className));\n\n if (!bodyClassesCheck) {\n mainHeader.classList.toggle('mh--light', scrollPosition >= 10);\n }\n });\n\n\n // SCROLL COLOR EVENT\n window.addEventListener('scroll', () => {\n let scrollPosition = window.scrollY;\n\n // list of page types which are excluded (class on body)\n const bodyClasses = ['shop-page-checkout', 'mijninterpolis-inloggen'],\n bodyClassesCheck = bodyClasses.some(className => document.body.classList.contains(className));\n\n if (!bodyClassesCheck) {\n mainHeader.classList.toggle('nav-light', scrollPosition >= 10);\n }\n });\n\n})();","\n/* Use this for non standard action items. \n**\n** No need to use it for buttons or links as they already have default a11y handlers\n** from the browser\n**\n*/\nwindow.a11y = (function() {\n \n return {\n addAccesibleEventListeners: function(elmnt, cb) {\n elmnt.addEventListener('click', function() {\n cb(this)\n });\n elmnt.addEventListener('keydown', function(e) {\n if (e.key === 'Enter') {\n e.preventDefault();\n cb(this);\n }\n });\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\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/* Strictly requires to pure javascript modules that need to be loaded with priority (e.g. for interactivity purposes */\n\n// Sequence indifferent\nrequire('../library/legacy/a11y.js');\nrequire('../library/header.js');\n"],"names":["window","header","mainHeader","document","querySelector","overlay","search","mobileMenu","isWideScreen","matchMedia","matches","buttons","querySelectorAll","btnClose","login","btnBack","toggleAria","element","getAttribute","setAttribute","toggleShow","classList","toggle","focusTrap","elem","focusableElements","firstElement","lastElement","length","focus","addEventListener","event","shiftKey","keyCode","preventDefault","resetMenu","shownElements","ariaButtons","forEach","button","remove","isOpen","stopPropagation","navPrimary","btn","add","nextElementSibling","openMenu","this","cntrPos","getBoundingClientRect","left","btnPos","right","adjustedCalc","innerWidth","documentElement","style","setProperty","setTip","parentElement","previousElementSibling","closest","previousSibling","code","scrollPosition","scrollY","some","className","body","contains","a11y","addAccesibleEventListeners","elmnt","cb","e","key","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__"],"sourceRoot":""}