{"version":3,"sources":["webpack:///./node_modules/body-scroll-lock/lib/bodyScrollLock.es6.js","webpack:///./src/feature/header/header.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js"],"names":["hasPassiveEvents","window","passiveTestOptions","addEventListener","removeEventListener","previousBodyOverflowSetting","previousBodyPaddingRight","isIosDevice","navigator","platform","test","maxTouchPoints","locks","documentListenerAdded","initialClientY","allowTouchMove","el","some","lock","options","preventDefault","rawEvent","e","event","target","touches","length","restoreOverflowSetting","setTimeout","undefined","document","body","style","paddingRight","overflow","disableBodyScroll","targetElement","console","error","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","isTargetElementTotallyScrolled","stopPropagation","handleScroll","passive","reserveScrollBarGap","scrollBarGap","innerWidth","documentElement","clientWidth","setOverflowHidden","Header","element","log","classes","navIsOpen","initDomCache","init","keyCode","classList","remove","add","i","primaryNavFirstLevelItem","setAttribute","megaMenuContainer","primaryNavigation","querySelectorAll","closeLanguageNav","resetMainNav","getAttribute","parentNode","menuItems","activeElement","blur","languagePopper","languageContainer","contains","languageLinksIndex","searchLink","openLanguageNav","state","languageLinks","this","dom","navController","setNavIsOpen","checked","isNavOpen","toggle","navPanel","forEach","BaseFeature","querySelector","primaryNavList","languageNav","detectTab","setAriaTags","desktopOpenMegaMenu","showLanguageList","$","fails","toObject","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","stat","forced","sham","getPrototypeOf","it","setPrototypeOf"],"mappings":"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","file":"7-efa9b80f.pkg.js","sourcesContent":["\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nlet hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n const passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nconst isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nlet locks = [];\nlet documentListenerAdded = false;\nlet initialClientY = -1;\nlet previousBodyOverflowSetting;\nlet previousBodyPaddingRight;\n\n// returns true if `el` should be allowed to receive touchmove events.\nconst allowTouchMove = el => locks.some(lock => {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n});\n\nconst preventDefault = rawEvent => {\n const e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nconst setOverflowHidden = options => {\n // Setting overflow on body/documentElement synchronously in Desktop Safari slows down\n // the responsiveness for some reason. Setting within a setTimeout fixes this.\n setTimeout(() => {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n const reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n const scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = `${scrollBarGap}px`;\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n });\n};\n\nconst restoreOverflowSetting = () => {\n // Setting overflow on body/documentElement synchronously in Desktop Safari slows down\n // the responsiveness for some reason. Setting within a setTimeout fixes this.\n setTimeout(() => {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n });\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nconst isTargetElementTotallyScrolled = targetElement => targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n\nconst handleScroll = (event, targetElement) => {\n const clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport const disableBodyScroll = (targetElement, options) => {\n if (isIosDevice) {\n // targetElement must be provided, and disableBodyScroll must not have been\n // called on this targetElement before.\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n if (targetElement && !locks.some(lock => lock.targetElement === targetElement)) {\n const lock = {\n targetElement,\n options: options || {}\n };\n\n locks = [...locks, lock];\n\n targetElement.ontouchstart = event => {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = event => {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n }\n } else {\n setOverflowHidden(options);\n const lock = {\n targetElement,\n options: options || {}\n };\n\n locks = [...locks, lock];\n }\n};\n\nexport const clearAllBodyScrollLocks = () => {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(lock => {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n locks = [];\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n locks = [];\n }\n};\n\nexport const enableBodyScroll = targetElement => {\n if (isIosDevice) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n locks = locks.filter(lock => lock.targetElement !== targetElement);\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n\n documentListenerAdded = false;\n }\n } else {\n locks = locks.filter(lock => lock.targetElement !== targetElement);\n if (!locks.length) {\n restoreOverflowSetting();\n }\n }\n};\n\n","import { disableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock';\r\nimport BaseFeature from '../../foundation/base/base';\r\n\r\nclass Header extends BaseFeature {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis.el = element;\r\n\t\tthis.log('Header Feature Init');\r\n\r\n\t\tthis.classes = {\r\n\t\t\tnavIsOpen: 'is-open'\r\n\t\t};\r\n\r\n\t\tthis.initDomCache();\r\n\t\tthis.init();\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.dom.navController.addEventListener('click', () => {\r\n\t\t\tthis.setNavIsOpen();\r\n\t\t});\r\n\t}\r\n\r\n\tnavIsOpen() {\r\n\t\treturn this.dom.navController.checked;\r\n\t}\r\n\r\n\tsetNavIsOpen() {\r\n\t\tconst isNavOpen = this.navIsOpen();\r\n\r\n\t\t// Toggle the class based on our test\r\n\t\tthis.el.classList.toggle(this.classes.navIsOpen, isNavOpen);\r\n\r\n\t\t// Lock scrolling on body\r\n\t\tif (isNavOpen) {\r\n\t\t\tdisableBodyScroll(this.dom.navPanel, {\r\n\t\t\t\treserveScrollBarGap: true\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tclearAllBodyScrollLocks();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic detectTab() {\r\n\t\tdocument.body.addEventListener('keydown', (event) => {\r\n\t\t\tif (event.keyCode === 9) {\r\n\t\t\t\tdocument.body.classList.remove('using-mouse');\r\n\t\t\t\tdocument.body.classList.add('using-tab');\r\n\t\t\t}\r\n\t\t\tdocument.body.removeEventListener('keydown', document.body);\r\n\t\t});\r\n\r\n\t\t// Re-enable focus styling when Tab is pressed\r\n\t\tdocument.body.addEventListener('mouseover', () => {\r\n\t\t\tdocument.body.classList.remove('using-tab');\r\n\t\t\tdocument.body.classList.add('using-mouse');\r\n\t\t\tdocument.body.removeEventListener('mouseover', document.body);\r\n\t\t});\r\n\t}\r\n\r\n\tstatic setAriaTags() {\r\n\t\tfor (let i = 0; i < Header.primaryNavFirstLevelItem.length; i++) {\r\n\t\t\tHeader.primaryNavFirstLevelItem[i].setAttribute('aria-haspopup', 'true');\r\n\t\t\tHeader.primaryNavFirstLevelItem[i].setAttribute('aria-expanded', 'false');\r\n\t\t\tHeader.primaryNavFirstLevelItem[i].setAttribute('role', 'menuitem');\r\n\t\t}\r\n\t}\r\n\r\n\tstatic desktopOpenMegaMenu() {\r\n\t\tconst megaMenuContainer = Header.primaryNavigation.querySelectorAll('ul li ul');\r\n\r\n\t\tfor (let i = 0; i < megaMenuContainer.length; i++) {\r\n\t\t\tmegaMenuContainer[i].setAttribute('data-mega', 'mega-menu-container');\r\n\t\t}\r\n\t\tHeader.primaryNavigation.addEventListener('keyup', () => {\r\n\t\t\tHeader.closeLanguageNav();\r\n\t\t\tHeader.primaryNavigation.removeEventListener('keydup', Header.primaryNavigation);\r\n\t\t});\r\n\t\tHeader.primaryNavigation.addEventListener('keydown', (event) => {\r\n\t\t\tif (event.keyCode === 32) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tHeader.resetMainNav();\r\n\t\t\t\tif (event.target.getAttribute('data-nav') === 'nav-item-link') {\r\n\t\t\t\t\tevent.target.parentNode.classList.add('first-level-open');\r\n\t\t\t\t\tevent.target.parentNode.setAttribute('aria-expanded', 'true');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tHeader.primaryNavigation.removeEventListener('keydown', Header.primaryNavigation);\r\n\t\t});\r\n\r\n\t\t// Nav:hover first level\r\n\t\tfor (let i = 0; i < Header.primaryNavFirstLevelItem.length; i++) {\r\n\t\t\tHeader.primaryNavFirstLevelItem[i].addEventListener('mouseover', (event) => {\r\n\t\t\t\tif (event.target.getAttribute('data-nav') === 'nav-item-link' && event.target.parentNode.parentNode.parentNode.getAttribute('data-nav') === 'primary-navigation') {\r\n\t\t\t\t\tHeader.resetMainNav();\r\n\t\t\t\t\tevent.target.parentNode.classList.add('first-level-open');\r\n\t\t\t\t\tevent.target.parentNode.setAttribute('aria-expanded', 'true');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tHeader.primaryNavFirstLevelItem[i].addEventListener('mouseout', (event) => {\r\n\t\t\t\tif (event.target.getAttribute('data-nav') === 'nav-item-link' && event.target.parentNode.parentNode.parentNode.getAttribute('data-nav') === 'primary-navigation') {\r\n\t\t\t\t\tevent.target.parentNode.classList.remove('first-level-open');\r\n\t\t\t\t\tevent.target.parentNode.setAttribute('aria-expanded', 'false');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// Nav:hover Mega menu lists\r\n\t\t\tHeader.primaryNavFirstLevelItem[i].addEventListener('mouseover', (event) => {\r\n\t\t\t\tif (event.target.getAttribute('data-nav') === 'nav-item-link' && event.target.parentNode.parentNode.parentNode.parentNode.parentNode.getAttribute('data-nav') === 'primary-navigation') {\r\n\t\t\t\t\tHeader.closeLanguageNav();\r\n\t\t\t\t\tevent.target.parentNode.parentNode.parentNode.classList.add('first-level-open');\r\n\t\t\t\t\tevent.target.parentNode.parentNode.parentNode.setAttribute('aria-expanded', 'true');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Nav:hover Mega menu\r\n\t\tfor (let i = 0; i < megaMenuContainer.length; i++) {\r\n\t\t\tmegaMenuContainer[i].addEventListener('mouseover', (event) => {\r\n\t\t\t\tif (event.target.getAttribute('data-mega') === 'mega-menu-container') {\r\n\t\t\t\t\tevent.target.parentNode.classList.add('first-level-open');\r\n\t\t\t\t\tevent.target.parentNode.setAttribute('aria-expanded', 'true');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tmegaMenuContainer[i].addEventListener('mouseout', (event) => {\r\n\t\t\t\tif (event.target.getAttribute('data-mega') === 'mega-menu-container') {\r\n\t\t\t\t\tevent.target.parentNode.classList.remove('first-level-open');\r\n\t\t\t\t\tevent.target.parentNode.setAttribute('aria-expanded', 'false');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic resetMainNav() {\r\n\t\tif (document.querySelectorAll('.first-level-open').length) {\r\n\t\t\tconst menuItems = document.querySelectorAll('[data-nav=nav-list-item]');\r\n\t\t\tdocument.activeElement.blur();\r\n\t\t\tfor (let i = 0; i < menuItems.length; i++) {\r\n\t\t\t\tmenuItems[i].classList.remove('first-level-open');\r\n\t\t\t\tmenuItems[i].setAttribute('aria-expanded', 'false');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic showLanguageList() {\r\n\t\tHeader.languagePopper.addEventListener('keydown', (event) => {\r\n\t\t\tif (event.keyCode === 32) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tif (Header.languageContainer.classList.contains('o-nav__language-container--show-langugages')) {\r\n\t\t\t\t\tHeader.closeLanguageNav();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tHeader.languageContainer.classList.add('o-nav__language-container--show-langugages');\r\n\t\t\t\t\tHeader.languagePopper.setAttribute('aria-expanded', 'true');\r\n\t\t\t\t\tHeader.languageLinksIndex('0');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tHeader.languagePopper.removeEventListener('keydown', Header.languagePopper);\r\n\t\t});\r\n\r\n\t\tHeader.searchLink.addEventListener('keyup', () => {\r\n\t\t\tHeader.closeLanguageNav();\r\n\t\t\tHeader.searchLink.removeEventListener('keyup', Header.searchLink);\r\n\t\t});\r\n\r\n\t\t// Header.languageNav.addEventListener('keyup', (event) => {\r\n\t\t// \tif (event.keyCode === 9) {\r\n\t\t// \t\tif (!event.target.hasAttribute('data-service')) {\r\n\t\t// \t\t\tHeader.closeLanguageNav();\r\n\t\t// \t\t}\r\n\t\t// \t}\r\n\t\t// \tHeader.languageNav.removeEventListener('keyup', Header.languageNav);\r\n\t\t// });\r\n\t\tHeader.languagePopper.addEventListener('mouseover', () => {\r\n\t\t\tHeader.openLanguageNav();\r\n\t\t\tHeader.languagePopper.removeEventListener('mouseover', Header.languagePopper);\r\n\t\t});\r\n\t\tHeader.languageContainer.addEventListener('mouseover', () => {\r\n\t\t\tHeader.openLanguageNav();\r\n\t\t\tHeader.languagePopper.removeEventListener('mouseover', Header.languagePopper);\r\n\t\t});\r\n\t\tHeader.languageContainer.addEventListener('mouseout', () => {\r\n\t\t\tHeader.closeLanguageNav();\r\n\t\t\tHeader.languagePopper.removeEventListener('mouseout', Header.languagePopper);\r\n\t\t});\r\n\t}\r\n\r\n\tstatic openLanguageNav() {\r\n\t\tdocument.activeElement.blur();\r\n\t\tHeader.languageContainer.classList.add('o-nav__language-container--show-langugages');\r\n\t\tHeader.languagePopper.setAttribute('aria-expanded', 'true');\r\n\t\tHeader.languageLinksIndex('0');\r\n\t}\r\n\r\n\tstatic closeLanguageNav() {\r\n\t\tHeader.languageContainer.classList.remove('o-nav__language-container--show-langugages');\r\n\t\tHeader.languagePopper.setAttribute('aria-expanded', 'false');\r\n\t\tHeader.languageLinksIndex('-1');\r\n\t}\r\n\r\n\tstatic languageLinksIndex(state) {\r\n\t\tfor (let i = 0; i < Header.languageLinks.length; i++) {\r\n\t\t\tHeader.languageLinks[i].setAttribute('tabindex', state);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nHeader.primaryNavigation = document.querySelector('[data-nav=primary-navigation]');\r\nHeader.primaryNavList = document.querySelector('[data-nav=primary-navigation] > [data-nav=nav-list]');\r\nHeader.primaryNavFirstLevelItem = document.querySelectorAll('[data-nav=primary-navigation] > [data-nav=nav-list] > [data-nav=nav-list-item]');\r\n\r\nHeader.languageNav = document.querySelector('[data-service=language-nav]');\r\nHeader.languagePopper = document.querySelector('[data-service=language-popper]');\r\nHeader.languageContainer = document.querySelector('[data-service=language-container]');\r\nHeader.languageLinks = document.querySelectorAll('[data-service=language-link]');\r\nHeader.searchLink = document.querySelector('[data-service=search-link]');\r\n\r\nHeader.detectTab();\r\nHeader.setAriaTags();\r\nHeader.desktopOpenMegaMenu();\r\nHeader.showLanguageList();\r\nHeader.languageLinksIndex('-1');\r\n\r\nexport default Header;\r\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n"],"sourceRoot":""}