{"version":3,"file":"index.min.mjs","sources":["../../src/js/init.mjs","../../src/js/interactive.mjs","../../src/js/index.mjs"],"sourcesContent":["export function init() {\n var initialized = window.prgs_bar_initialized;\n var bar = document.getElementById('js-prgs-bar');\n\n if (!bar) return;\n\n var hamburger = document.getElementById('js-hamburger');\n var drawer = document.getElementById('js-drawer');\n var desktopSearchBtn = document.getElementById('js-search-trigger');\n var desktopUserBtn = document.getElementById('js-user-trigger');\n var mobileSearch = document.getElementById('js-mobsearch');\n var mobileSearchBtn = document.getElementById('js-mobsearch-trigger');\n var dropdownBtns = document.getElementsByClassName('PRGS-Bar-dropdown');\n var dropdownLinks = document.getElementsByClassName('has-dropdown-arrow');\n var dropdowns = document.getElementsByClassName('is-dropdown');\n var skipLink = document.getElementById('js-prgs-nav-skip-link');\n var skipLinkDestination = document.getElementById('site-content');\n\n var search = {\n input: document.getElementById('js-search-input'),\n mobinput: document.getElementById('js-search-mobinput'),\n submit: document.getElementById('js-search-submit'),\n mobsubmit: document.getElementById('js-search-mobsubmit')\n };\n\n var HOSTNAME = window.location.hostname;\n var SEARCH_URL = search.input.getAttribute('data-url');\n\n function escape(html) {\n return html ? document.createElement('div').appendChild(document.createTextNode(html)).parentNode.innerHTML : html;\n }\n\n function encode(str) {\n var replace = {\n '!': '%21',\n '\\'': '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n\n /* eslint no-useless-escape: \"off\" */\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function searchInProgress(e, field) {\n field = field || this.previousElementSibling;\n var value = encode(escape(field.value));\n var href = SEARCH_URL.concat('?q=').concat(value);\n value ? window.location.href = href : field.focus();\n e.preventDefault();\n }\n\n function searchInPartnerLink(e, field) {\n field = field || this.previousElementSibling;\n var value = encode(escape(field.value));\n var href = SEARCH_URL.concat('?indexCatalogue=partnerportalsearch&searchQuery=').concat(value);\n value ? window.location.href = href : field.focus();\n e.preventDefault();\n }\n\n function performSearch(e, field) {\n field = field || this.previousElementSibling;\n\n if (HOSTNAME.indexOf('partnerlink') >= 0) {\n searchInPartnerLink(e, field);\n } else {\n searchInProgress(e, field);\n }\n }\n\n function searchOnEnter(e) {\n if (e.keyCode === 13) {\n window.requestAnimationFrame(function() {\n performSearch(e, e.target);\n });\n }\n }\n\n function isChildOf(child, parent) {\n if (child.parentNode === parent) {\n return true;\n } else if (child.parentNode === null) {\n return false;\n } else {\n return isChildOf(child.parentNode, parent);\n }\n }\n\n function clickOutsideOfMobileMenu(e) {\n var target = e.target || e.srcElement;\n if (\n (target !== drawer && !isChildOf(target, drawer) ) &&\n (target !== hamburger && !isChildOf(target, hamburger))\n ) {\n drawer.classList.remove('is-visible');\n document.body.classList.remove('is-mobilemenu-visible');\n } else {\n e.stopPropagation();\n }\n }\n\n function clickOutsideOfSearchMobileMenu(e) {\n var target = e.target || e.srcElement;\n if (\n (target !== mobileSearch && !isChildOf(target, mobileSearch) ) &&\n (target !== mobileSearchBtn && !isChildOf(target, mobileSearchBtn))\n ) {\n mobileSearch.classList.remove('is-visible');\n document.body.classList.remove('is-mobilesearch-visible');\n } else {\n e.stopPropagation();\n }\n }\n\n function isDescendant(parent, child) {\n var node = child.parentNode;\n while (node != null) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n }\n\n function focusInput() {\n search.input.focus();\n search.mobinput.focus();\n }\n\n function toggleDrawer() {\n drawer.classList.toggle('is-visible');\n document.body.classList.toggle('is-mobilemenu-visible');\n }\n\n function toggleMobileSearch(e) {\n mobileSearch.classList.toggle('is-visible');\n document.body.classList.toggle('is-mobilesearch-visible');\n window.setTimeout(focusInput, 200);\n }\n\n function closeMobileMenus(e) {\n clickOutsideOfMobileMenu(e);\n clickOutsideOfSearchMobileMenu(e);\n }\n\n function mobileDropdownsToOpenOnClick(e) {\n if ( !isDescendant(this.querySelector('.is-dropdown'), e.target) ) {\n this.classList.toggle('is-tapped');\n }\n }\n\n function disableDropdownLink(link) {\n link && link.classList.toggle('is-disabled');\n }\n\n function disableClicksWhileAnimated(e) {\n var target = e.target || e.srcElement;\n var animation = e.propertyName;\n var trigger = target.previousElementSibling || null;\n if (animation === 'transform' && target === this && trigger && typeof trigger.href !== 'undefined') {\n trigger.classList.toggle('is-disabled');\n }\n }\n\n function closeFocusedDropdown() {\n Array.prototype.slice.call(dropdownLinks).forEach(function(dropdownLink) {\n dropdownLink.classList.remove('is-focused');\n });\n Array.prototype.slice.call(dropdownBtns).forEach(function(dropdownBtn) {\n dropdownBtn.classList.remove('is-open');\n });\n }\n\n function focusElement(element) {\n element.addEventListener('focus', function(event) {\n closeFocusedDropdown();\n event.target.classList.add('is-focused');\n\n if (!event.currentTarget.getAttribute('href')) {\n const dropdownWrapper = event.target.closest('.PRGS-Bar-dropdown');\n if (dropdownWrapper) dropdownWrapper.classList.add('is-open');\n }\n });\n }\n\n function skipToContent(event) {\n event.preventDefault();\n skipLinkDestination.tabIndex = 0;\n skipLinkDestination.focus();\n skipLinkDestination.tabIndex = -1;\n }\n\n function _init() {\n if (initialized) return;\n\n search.input.addEventListener('keydown', searchOnEnter);\n search.submit.addEventListener('click', performSearch);\n search.mobinput.addEventListener('keydown', searchOnEnter);\n search.mobsubmit.addEventListener('click', performSearch);\n hamburger.addEventListener('click', toggleDrawer);\n mobileSearchBtn.addEventListener('click', toggleMobileSearch);\n document.addEventListener('click', closeMobileMenus);\n skipLink.addEventListener('click', skipToContent);\n\n Array.prototype.slice.call(dropdownBtns).forEach(function(dropdownBtn) {\n dropdownBtn.addEventListener('click', mobileDropdownsToOpenOnClick);\n disableDropdownLink(dropdownBtn.querySelector('a'));\n });\n Array.prototype.slice.call(dropdowns).forEach(function(dropdown) {\n dropdown.addEventListener('transitionend', disableClicksWhileAnimated);\n });\n Array.prototype.slice.call(dropdownLinks).forEach(dropdownLink => focusElement(dropdownLink));\n focusElement(desktopUserBtn);\n\n desktopSearchBtn.addEventListener('click', function() {\n closeFocusedDropdown();\n const dropdownWrapper = this.closest('.PRGS-Bar-dropdown');\n this.classList.add('is-focused');\n dropdownWrapper.classList.add('is-open');\n focusInput();\n });\n\n document.getElementById('js-close-focused').addEventListener('focus', closeFocusedDropdown);\n\n document.body.addEventListener('click', function(event) {\n if (event.target !== bar) {\n closeFocusedDropdown();\n }\n }, true);\n\n bar.addEventListener('keydown', function(event) {\n if (event.target.classList.contains('is-focused') && event.target !== desktopSearchBtn && event.key === 'Enter') {\n const dropdownWrapper = event.target.closest('.PRGS-Bar-dropdown');\n\n if (!dropdownWrapper.classList.contains('is-open')) {\n event.preventDefault();\n dropdownWrapper.classList.add('is-open');\n } else {\n event.target.trigger('click');\n }\n }\n });\n\n window.prgs_bar_initialized = true;\n }\n\n _init();\n}\n","/**\n * DOM Ready alternative - working with async scripts\n *\n * @return {Promise}\n */\nexport const interactive = () => {\n return new Promise((resolve) => {\n if (document.readyState !== 'loading') {\n resolve();\n } else {\n document.addEventListener('readystatechange', () => {\n if (document.readyState === 'interactive') {\n resolve();\n }\n });\n }\n });\n};\n","import { init } from './init.mjs';\nimport { interactive } from './interactive.mjs';\n\ninteractive().then(() => {\n init();\n});\n"],"names":["init","initialized","window","prgs_bar_initialized","bar","document","getElementById","hamburger","drawer","desktopSearchBtn","desktopUserBtn","mobileSearch","mobileSearchBtn","dropdownBtns","getElementsByClassName","dropdownLinks","dropdowns","skipLink","skipLinkDestination","search","input","mobinput","submit","mobsubmit","HOSTNAME","location","hostname","SEARCH_URL","getAttribute","addEventListener","searchOnEnter","performSearch","toggleDrawer","toggleMobileSearch","closeMobileMenus","skipToContent","Array","prototype","slice","call","forEach","dropdownBtn","link","mobileDropdownsToOpenOnClick","querySelector","classList","toggle","dropdown","disableClicksWhileAnimated","dropdownLink","focusElement","closeFocusedDropdown","dropdownWrapper","this","closest","add","focusInput","body","event","target","contains","key","trigger","preventDefault","escape","html","createElement","appendChild","createTextNode","parentNode","innerHTML","encode","str","replace","encodeURIComponent","match","e","field","previousElementSibling","indexOf","value","href","concat","focus","searchInPartnerLink","searchInProgress","keyCode","requestAnimationFrame","isChildOf","child","parent","setTimeout","srcElement","stopPropagation","remove","clickOutsideOfMobileMenu","clickOutsideOfSearchMobileMenu","node","isDescendant","animation","propertyName","element","currentTarget","tabIndex","Promise","resolve","readyState","then"],"mappings":"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"}