{"version":3,"file":"7005.5fb0e67774c810dfc655.js","mappings":"gIAIO,MAAMA,EAAe,CACxBC,QAAQ,GAGZ,MAAMC,EAEFC,YAAYC,EAASC,EAASC,EAAUC,GACpCC,KAAKJ,QAAUA,EACfI,KAAKH,QAAUA,EACfG,KAAKC,SAAWD,KAAKH,QAAQK,cAAc,sCAC3CF,KAAKG,MAAQH,KAAKH,QAAQK,cAAc,mCACxCF,KAAKF,SAAWA,EAChBE,KAAKD,YAAcA,EACnBC,KAAKP,QAAS,EAEdO,KAAKH,QAAQO,gBAAgB,UAE7BJ,KAAKJ,QAAQS,QAAU,KACfL,KAAKP,QAAQO,KAAKM,MAAM,EAEhCN,KAAKF,SAASO,QAAU,KACjBL,KAAKP,QAAQO,KAAKO,MAAM,EAE/BP,KAAKC,SAASI,QAAU,KACjBL,KAAKP,QAAQO,KAAKO,MAAM,EAG/BP,KAAKH,QAAQW,iBAAiB,WAAYC,IACtC,GAES,WAFDA,EAAEC,IAGCV,KAAKP,SACJgB,EAAEE,iBACFX,KAAKO,MAAK,GAER,IAIlBP,KAAKF,SAASU,iBAAiB,WAAYC,IACvC,GAES,QAFDA,EAAEC,IAGCV,KAAKP,SACJgB,EAAEE,iBACFX,KAAKD,YAAYa,QAEf,GAGtB,CAEAN,OACIN,KAAKH,QAAQgB,gBAAkB,KAC/Bb,KAAKP,QAAS,EACdD,EAAaC,QAAS,EACtBO,KAAKJ,QAAQkB,aAAa,iBAAiB,GAC3CC,OAAOC,uBAAsB,KACzBhB,KAAKH,QAAQO,gBAAgB,eAC7BW,OAAOC,uBAAsB,KACzBhB,KAAKH,QAAQoB,UAAUC,IAAI,uBAC3BlB,KAAKG,MAAMU,gBAAmBJ,IAC1BT,KAAKD,YAAYa,QACjBZ,KAAKG,MAAMU,gBAAkB,IAAI,CACpC,GACH,GAEV,CAEAN,KAAKY,GAAU,GACXnB,KAAKJ,QAAQkB,aAAa,iBAAiB,GAC3Cd,KAAKP,QAAS,EACdD,EAAaC,QAAS,EACtBO,KAAKH,QAAQoB,UAAUG,OAAO,uBAC9BpB,KAAKG,MAAMU,gBAAmBJ,IACvBA,EAAEY,QAAUrB,KAAKG,OAAOH,KAAKsB,cAAcH,EAAQ,CAE9D,CAEAG,cAAcH,GAAU,GACpBnB,KAAKH,QAAQiB,aAAa,eAAe,GACzCd,KAAKG,MAAMU,gBAAkB,KAC1BM,GAASnB,KAAKJ,QAAQgB,OAC7B,EAGJ,MAAMW,EAAwBC,SAAStB,cAAc,4BACjDuB,EAAsBD,SAAStB,cAAc,kBAC7CwB,EAAuBF,SAAStB,cAAc,6BAC9CyB,EAA4C,OAAxBF,EAA+BA,EAAoBvB,cAAc,wBAA0B,KAEvF,MAAzBqB,GAAwD,MAAvBE,GAAuD,MAAxBC,GAAqD,MAArBC,GAC/F,IAAIjC,EAAmB6B,EAAuBE,EAAqBC,EAAsBC,E","sources":["webpack://riat/./wwwroot/app/src/js/header-search.js"],"sourcesContent":["// ***************************\r\n// ***** Header search *****\r\n// ***************************\r\n\r\nexport const headerSearch = {\r\n active: false\r\n};\r\n\r\nclass HeaderSearchSystem {\r\n\r\n constructor(showBtn, wrapper, closeBtn, searchField) {\r\n this.showBtn = showBtn;\r\n this.wrapper = wrapper;\r\n this.backdrop = this.wrapper.querySelector('.header--content--search--backdrop');\r\n this.inner = this.wrapper.querySelector('.header--content--search--inner');\r\n this.closeBtn = closeBtn;\r\n this.searchField = searchField;\r\n this.active = false;\r\n // remove 'hidden' attribute\r\n this.wrapper.removeAttribute('hidden');\r\n // triggers\r\n this.showBtn.onclick = () => {\r\n if(!this.active) this.show();\r\n };\r\n this.closeBtn.onclick = () => {\r\n if(this.active) this.hide();\r\n };\r\n this.backdrop.onclick = () => {\r\n if(this.active) this.hide();\r\n };\r\n // ESC key closes search\r\n this.wrapper.addEventListener('keydown', (e) => {\r\n switch (e.key) {\r\n // ESCAPE jumps out a level\r\n case 'Escape':\r\n if(this.active) {\r\n e.preventDefault();\r\n this.hide(true);\r\n }\r\n break;\r\n }\r\n });\r\n // loop the tabbing if search area is active\r\n this.closeBtn.addEventListener('keydown', (e) => {\r\n switch (e.key) {\r\n // TAB\r\n case 'Tab':\r\n if(this.active) {\r\n e.preventDefault();\r\n this.searchField.focus();\r\n }\r\n break;\r\n }\r\n });\r\n }\r\n\r\n show() {\r\n this.wrapper.ontransitionend = null;\r\n this.active = true;\r\n headerSearch.active = true;\r\n this.showBtn.setAttribute('aria-expanded', true);\r\n window.requestAnimationFrame(() => {\r\n this.wrapper.removeAttribute('aria-hidden');\r\n window.requestAnimationFrame(() => {\r\n this.wrapper.classList.add('search-form--active');\r\n this.inner.ontransitionend = (e) => {\r\n this.searchField.focus();\r\n this.inner.ontransitionend = null;\r\n };\r\n });\r\n });\r\n }\r\n\r\n hide(doFocus = false) {\r\n this.showBtn.setAttribute('aria-expanded', false);\r\n this.active = false;\r\n headerSearch.active = false;\r\n this.wrapper.classList.remove('search-form--active');\r\n this.inner.ontransitionend = (e) => {\r\n if(e.target == this.inner) this.transitionEnd(doFocus);\r\n };\r\n }\r\n\r\n transitionEnd(doFocus = false) {\r\n this.wrapper.setAttribute('aria-hidden', true);\r\n this.inner.ontransitionend = null;\r\n if(doFocus) this.showBtn.focus();\r\n }\r\n}\r\n\r\nconst headerSearchToggleBtn = document.querySelector('#header-search--open-btn'),\r\n headerSearchWrapper = document.querySelector('#header-search'),\r\n headerSearchCloseBtn = document.querySelector('#header-search--close-btn'),\r\n headerSearchField = headerSearchWrapper !== null ? headerSearchWrapper.querySelector('input[type=\"search\"]') : null;\r\n\r\nif(headerSearchToggleBtn != null && headerSearchWrapper != null && headerSearchCloseBtn != null && headerSearchField != null) {\r\n new HeaderSearchSystem(headerSearchToggleBtn, headerSearchWrapper, headerSearchCloseBtn, headerSearchField);\r\n}"],"names":["headerSearch","active","HeaderSearchSystem","constructor","showBtn","wrapper","closeBtn","searchField","this","backdrop","querySelector","inner","removeAttribute","onclick","show","hide","addEventListener","e","key","preventDefault","focus","ontransitionend","setAttribute","window","requestAnimationFrame","classList","add","doFocus","remove","target","transitionEnd","headerSearchToggleBtn","document","headerSearchWrapper","headerSearchCloseBtn","headerSearchField"],"sourceRoot":""}