{"version":3,"sources":["webpack://Gaffa/./Src/Scripts/components/navigation.js"],"names":["constructor","elm","this","isNavOpen","isSearchOpen","isNavStatic","burgerElms","querySelectorAll","subNavAccordions","searchModal","window","cr","loadComponentClass","then","Accordion","forEach","subNavAccordionElm","push","toggleElm","addEventListener","toggle","bind","querySelector","toggleSearch","body","document","x","topscrollAd","getBoundingClientRect","bottom","classList","add","remove","openSearch","close","setTimeout","contains","style","overflow","closeSearch","open"],"mappings":"yKAwGC,UAtGc,MACXA,YAAaC,GACTC,KAAKC,WAAY,EACjBD,KAAKE,cAAe,EACpBF,KAAKG,aAAc,EACnBH,KAAKD,IAAMA,EACXC,KAAKI,WAAaL,EAAIM,iBAAiB,WACvCL,KAAKM,iBAAmB,GACxBN,KAAKO,YAAc,KAGnBC,OAAOC,GAAGC,mBAAmB,aACxBC,MAAKC,IACFb,EAAIM,iBAAiB,2CAA2CQ,SAASC,IACrEd,KAAKM,iBAAiBS,KAAK,IAAIH,EAAUE,GAAoB,GAC/D,IAIVf,EAAIM,iBAAiB,iCAAiCQ,SAASG,IAC3DA,EAAUC,iBAAiB,QAASjB,KAAKkB,OAAOC,KAAKnB,MAAM,IAG/DD,EAAIqB,cAAc,mCAAmCH,iBAAiB,QAASjB,KAAKqB,aAAaF,KAAKnB,OAEtG,IAAIsB,EAAOC,SAASD,KAEpBd,OAAOS,iBAAiB,UAAUO,IAC9B,IAAKC,EACD,IAAIA,EAAcF,SAASH,cAAc,sCAExCK,IAIDA,EAAYC,wBAAwBC,OAAS,GAC7CL,EAAKM,UAAUC,IAAI,qBAEZJ,EAAYC,wBAAwBC,QAAU,GACrDL,EAAKM,UAAUE,OAAO,qBAC1B,GAER,CAEAC,cAES/B,KAAKE,cAAgBF,KAAKC,WAC3BD,KAAKgC,QACLC,YAAW,KACPjC,KAAK+B,YAAY,GAClB,OAEH/B,KAAKE,cAAe,EACpBF,KAAKD,IAAI6B,UAAUC,IAAI,oBAEnBN,SAASD,KAAKM,UAAUM,SAAS,uBACjClC,KAAKG,aAAc,EACnBoB,SAASD,KAAKM,UAAUE,OAAO,uBAIvCP,SAASD,KAAKa,MAAMC,SAAW,QACnC,CAEAC,cACIrC,KAAKE,cAAe,EACpBF,KAAKD,IAAI6B,UAAUE,OAAO,oBAGtB9B,KAAKG,cACLH,KAAKG,aAAc,EACnBoB,SAASD,KAAKM,UAAUC,IAAI,sBAGhCN,SAASD,KAAKa,MAAMC,SAAW,EACnC,CAEAf,eACIrB,KAAKE,aAAeF,KAAKqC,cAAgBrC,KAAK+B,YAClD,CAEAb,SACIlB,KAAKC,UAAYD,KAAKgC,QAAUhC,KAAKsC,MACzC,CAEAA,QAEStC,KAAKC,WAAaD,KAAKE,cACxBF,KAAKqC,cACLJ,YAAW,KACPjC,KAAKsC,MAAM,GACZ,OAEHtC,KAAKC,WAAY,EACjBD,KAAKD,IAAI6B,UAAUC,IAAI,aAE/B,CAEAG,QACIhC,KAAKC,WAAY,EACjBD,KAAKD,IAAI6B,UAAUE,OAAO,YAC9B,E","file":"416.a463c716f0d21d53f16c.js","sourcesContent":["//import SearchModal from './search-modal';\r\n\r\nexport default class Navigation {\r\n constructor (elm) {\r\n this.isNavOpen = false;\r\n this.isSearchOpen = false;\r\n this.isNavStatic = false;\r\n this.elm = elm;\r\n this.burgerElms = elm.querySelectorAll('.burger');\r\n this.subNavAccordions = [];\r\n this.searchModal = null;\r\n\r\n // instantiate all accordions manually to have a reference to them\r\n window.cr.loadComponentClass('accordion')\r\n .then(Accordion => { \r\n elm.querySelectorAll('[data-navigation-component=\"accordion\"]').forEach((subNavAccordionElm) => {\r\n this.subNavAccordions.push(new Accordion(subNavAccordionElm));\r\n });\r\n }); \r\n\r\n // hook up navigation toggle elements\r\n elm.querySelectorAll('[data-navigation-toggle-menu]').forEach((toggleElm) => {\r\n toggleElm.addEventListener('click', this.toggle.bind(this));\r\n });\r\n\r\n elm.querySelector('[data-navigation-toggle-search]').addEventListener('click', this.toggleSearch.bind(this));\r\n\r\n var body = document.body;\r\n\r\n window.addEventListener('scroll', x => {\r\n if (!topscrollAd) {\r\n var topscrollAd = document.querySelector('.adnm-html-topscroll-frame-wrapper');\r\n }\r\n if (!topscrollAd) {\r\n return;\r\n }\r\n\r\n if (topscrollAd.getBoundingClientRect().bottom > 60) {\r\n body.classList.add('static-navigation');\r\n\r\n } else if (topscrollAd.getBoundingClientRect().bottom <= 0) {\r\n body.classList.remove('static-navigation');\r\n }\r\n })\r\n }\r\n\r\n openSearch() {\r\n // If the nav is open, close that before opening the search\r\n if (!this.isSearchOpen && this.isNavOpen) {\r\n this.close();\r\n setTimeout(() => {\r\n this.openSearch();\r\n }, 500);\r\n } else {\r\n this.isSearchOpen = true;\r\n this.elm.classList.add('nav--search-open');\r\n\r\n if (document.body.classList.contains('static-navigation')) {\r\n this.isNavStatic = true;\r\n document.body.classList.remove('static-navigation');\r\n }\r\n }\r\n\r\n document.body.style.overflow = 'hidden';\r\n }\r\n\r\n closeSearch() {\r\n this.isSearchOpen = false;\r\n this.elm.classList.remove('nav--search-open');\r\n\r\n\r\n if (this.isNavStatic) {\r\n this.isNavStatic = false;\r\n document.body.classList.add('static-navigation');\r\n }\r\n\r\n document.body.style.overflow = '';\r\n }\r\n\r\n toggleSearch() {\r\n this.isSearchOpen ? this.closeSearch() : this.openSearch();\r\n }\r\n\r\n toggle() {\r\n this.isNavOpen ? this.close() : this.open();\r\n }\r\n\r\n open() {\r\n // If the search is open, close that before opening the nav\r\n if (!this.isNavOpen && this.isSearchOpen) {\r\n this.closeSearch();\r\n setTimeout(() => {\r\n this.open();\r\n }, 500);\r\n } else {\r\n this.isNavOpen = true;\r\n this.elm.classList.add('nav--open');\r\n }\r\n }\r\n\r\n close() {\r\n this.isNavOpen = false;\r\n this.elm.classList.remove('nav--open');\r\n }\r\n}\r\n"],"sourceRoot":""}