{"version":3,"file":"assets/js/709.d25548bf169d2e7fca62.js","mappings":"gHAAA,MAAMA,EAAW,CACfC,KAAMC,SAASD,KACfE,QAASD,SAASD,KAAKG,iBAAiB,iDACxCC,UAAWH,SAASI,cAAc,iBAClCC,gBAAiBL,SAASI,cAAc,+BAGpCE,EAAaC,OAAOC,WAAW,wBAE/BC,EAAgBT,SAASI,cAAc,qBACvCM,EAAuBV,SAASI,cAAc,8BAC9CO,EAAiBb,EAASK,UAAUC,cAAc,oBAClDQ,EAAcd,EAASK,UAAUC,cAAc,uBAE/CS,EAAU,CACdC,OAAQ,YACRC,cAAe,aAGjB,IAAIC,GAAe,EAEnB,SAASC,EAAaC,GACN,WAAVA,EAAEC,MACJD,EAAEE,iBACFC,IAEJ,CAEA,SAASA,IACPL,GAAe,EACfP,EAAca,aAAa,gBAAiBN,GAC5CN,EAAqBY,aAAa,gBAAiBN,GACnDL,EAAeW,aAAa,gBAAiBN,GAC7ClB,EAASK,UAAUmB,aAAa,SAAU,IAE1CxB,EAASK,UAAUoB,UAAUC,OAAOX,EAAQC,QAC5ChB,EAASC,KAAKwB,UAAUC,OAAOX,EAAQE,eAEvCf,SAASD,KAAK0B,oBAAoB,QAASC,GAC3C5B,EAASK,UAAUsB,oBAAoB,WAAYE,GACnDhB,EAAec,oBAAoB,QAASJ,GAE5Cd,OAAOkB,oBAAoB,UAAWR,GAElCX,GACFI,EAAqBkB,OAEzB,CAsBA,SAASC,KACc,IAAjBb,EACFK,KArBFL,GAAe,EACfP,EAAca,aAAa,gBAAiBN,GAC5CN,EAAqBY,aAAa,gBAAiBN,GACnDL,EAAeW,aAAa,gBAAiBN,GAC7ClB,EAASK,UAAU2B,gBAAgB,UACnChC,EAASK,UAAUoB,UAAUQ,IAAIlB,EAAQC,QACzCd,SAASD,KAAKwB,UAAUQ,IAAIlB,EAAQE,eAEpCJ,EAAeqB,iBAAiB,QAASX,GACzCvB,EAASK,UAAU6B,iBAAiB,WAAYL,GAChDpB,OAAOyB,iBAAiB,UAAWf,GAEnCgB,YAAW,WACTrB,EAAYgB,QAEZ5B,SAASD,KAAKiC,iBAAiB,QAASN,EAC1C,GAAG,KASL,CAEA,SAASC,EAAYO,GAGhBpC,EAASC,KAAKwB,UAAUY,SAAS,eAClCD,EAAME,gBAAkB3B,GACxByB,EAAME,gBAAkB1B,IAKrBZ,EAASK,UAAUgC,SAASD,EAAME,gBAAkBpC,SAASqC,gBAAkBC,MAClFjB,IAEJ,CAEA,SAASK,EAAmBR,GAExBA,EAAEqB,SAAW9B,GACbS,EAAEqB,SAAW7B,GACZQ,EAAEqB,OAAOC,QAAQ,kBAElBnB,GAEJ,CAYA,QAVA,WACMvB,EAASG,QAAQwC,SACnB3C,EAASG,QAAQyC,SAASC,IACxBA,EAAGX,iBAAiB,QAASH,GAC7Bc,EAAGb,gBAAgB,SAAS,IAE9BxB,EAAW0B,iBAAiB,SAAUX,EAAYuB,KAAKN,MAAM,IAEjE,C","sources":["webpack://mps/./src/ui/templates/02-components/_searchbar/mando-ui.searchbar.js"],"sourcesContent":["const elements = {\r\n body: document.body,\r\n toggles: document.body.querySelectorAll('.js-search-toggle, .js-search-toggle--desktop'),\r\n searchbar: document.querySelector('.js-searchbar'),\r\n currentPageLink: document.querySelector('.js-meganav [aria-current]'),\r\n};\r\n\r\nconst mediaQuery = window.matchMedia('(min-width: 61.25em)');\r\n\r\nconst openSearchBtn = document.querySelector('.js-search-toggle');\r\nconst openSearchBtnDesktop = document.querySelector('.js-search-toggle--desktop');\r\nconst closeSearchBtn = elements.searchbar.querySelector('.js-search-close');\r\nconst searchInput = elements.searchbar.querySelector('.js-searchbar-input');\r\n\r\nconst classes = {\r\n active: 'is-active',\r\n searchOverlay: 'is-search',\r\n};\r\n\r\nlet activeSearch = false;\r\n\r\nfunction handleEscape(e) {\r\n if (e.key === 'Escape') {\r\n e.preventDefault();\r\n closeSearch();\r\n }\r\n}\r\n\r\nfunction closeSearch() {\r\n activeSearch = false;\r\n openSearchBtn.setAttribute('aria-expanded', activeSearch);\r\n openSearchBtnDesktop.setAttribute('aria-expanded', activeSearch);\r\n closeSearchBtn.setAttribute('aria-expanded', activeSearch);\r\n elements.searchbar.setAttribute('hidden', '');\r\n\r\n elements.searchbar.classList.remove(classes.active);\r\n elements.body.classList.remove(classes.searchOverlay);\r\n\r\n document.body.removeEventListener('click', clickOutsideSearch);\r\n elements.searchbar.removeEventListener('focusout', handleFocus);\r\n closeSearchBtn.removeEventListener('click', closeSearch);\r\n // stop listening for escape keydown\r\n window.removeEventListener('keydown', handleEscape);\r\n\r\n if (mediaQuery) {\r\n openSearchBtnDesktop.focus();\r\n }\r\n}\r\n\r\nfunction openSearch() {\r\n activeSearch = true;\r\n openSearchBtn.setAttribute('aria-expanded', activeSearch);\r\n openSearchBtnDesktop.setAttribute('aria-expanded', activeSearch);\r\n closeSearchBtn.setAttribute('aria-expanded', activeSearch);\r\n elements.searchbar.removeAttribute('hidden');\r\n elements.searchbar.classList.add(classes.active);\r\n document.body.classList.add(classes.searchOverlay);\r\n\r\n closeSearchBtn.addEventListener('click', closeSearch);\r\n elements.searchbar.addEventListener('focusout', handleFocus);\r\n window.addEventListener('keydown', handleEscape);\r\n\r\n setTimeout(function () {\r\n searchInput.focus();\r\n // clickOutside add needs a delay for voiceOver in Safari\r\n document.body.addEventListener('click', clickOutsideSearch);\r\n }, 500);\r\n}\r\n\r\nfunction toggleVisibility() {\r\n if (activeSearch === true) {\r\n closeSearch();\r\n } else {\r\n openSearch();\r\n }\r\n}\r\n\r\nfunction handleFocus(event) {\r\n // return early if tabbing with keyboard or focus source is an open button\r\n if (\r\n !elements.body.classList.contains('is-tabbing') ||\r\n event.relatedTarget === openSearchBtn ||\r\n event.relatedTarget === openSearchBtnDesktop\r\n ) {\r\n return;\r\n }\r\n\r\n if (!elements.searchbar.contains(event.relatedTarget) && document.activeElement !== this) {\r\n closeSearch();\r\n }\r\n}\r\n\r\nfunction clickOutsideSearch(e) {\r\n if (\r\n e.target !== openSearchBtn &&\r\n e.target !== openSearchBtnDesktop &&\r\n !e.target.closest('.js-searchbar')\r\n ) {\r\n closeSearch();\r\n }\r\n}\r\n\r\nfunction init() {\r\n if (elements.toggles.length) {\r\n elements.toggles.forEach((el) => {\r\n el.addEventListener('click', toggleVisibility);\r\n el.removeAttribute('hidden');\r\n });\r\n mediaQuery.addEventListener('change', closeSearch.bind(this, true));\r\n }\r\n}\r\n\r\nexport default init;\r\n"],"names":["elements","body","document","toggles","querySelectorAll","searchbar","querySelector","currentPageLink","mediaQuery","window","matchMedia","openSearchBtn","openSearchBtnDesktop","closeSearchBtn","searchInput","classes","active","searchOverlay","activeSearch","handleEscape","e","key","preventDefault","closeSearch","setAttribute","classList","remove","removeEventListener","clickOutsideSearch","handleFocus","focus","toggleVisibility","removeAttribute","add","addEventListener","setTimeout","event","contains","relatedTarget","activeElement","this","target","closest","length","forEach","el","bind"],"sourceRoot":""}