{"version":3,"sources":["app-header.js"],"names":["AppHeader","constructor","container","options","this","Object","assign","mobileNavigation","app","document","querySelector","hamburgerMenu","headingOverlayDesktop","querySelectorAll","addEventListener","onClickHamburgerMenu","bind","updateMobileNavigationClass","setEvents","setActiveNavigationItem","onPageScroll","classList","add","remove","path","window","location","pathname","forEach","link","href","getAttribute","replace","currentPath","includes","header","scrollClass","updateScrollClass","scrollY","overlay"],"mappings":"qBAAqBA,UACnBC,YAAYC,EAAWC,GAKrBC,KAAKD,QAAUE,OAAOC,OAAO,GAJN,CACrBC,iBAAkB,CAAA,CACpB,EAEiDJ,CAAO,EACxDC,KAAKI,IAAMC,SAASC,cAAc,MAAM,EACxCN,KAAKF,UAAYO,SAASC,cAAcR,CAAS,EACjDE,KAAKG,iBAAmBH,KAAKD,QAAQI,iBACrCH,KAAKO,cAAgBP,KAAKF,UAAUQ,cAAc,sBAAsB,EACxEN,KAAKQ,sBAAwBH,SAASI,iBAAiB,0BAA0B,EAEjFT,KAAKO,cAAcG,iBAAiB,QAASV,KAAKW,qBAAqBC,KAAKZ,IAAI,CAAC,EACjFA,KAAKa,4BAA4B,EACjCb,KAAKc,UAAU,CACjB,CAEAA,YACEd,KAAKe,wBAAwB,EAC7Bf,KAAKgB,aAAa,CACpB,CAEAL,uBACEX,KAAKG,iBAAmB,CAACH,KAAKG,iBAC9BH,KAAKa,4BAA4B,CACnC,CAEAA,8BACMb,KAAKG,kBACPH,KAAKO,cAAcU,UAAUC,IAAI,QAAQ,EACzClB,KAAKF,UAAUmB,UAAUC,IAAI,QAAQ,IAErClB,KAAKO,cAAcU,UAAUE,OAAO,QAAQ,EAC5CnB,KAAKF,UAAUmB,UAAUE,OAAO,QAAQ,EAE5C,CAEAJ,0BACE,MAAMK,EAAOC,OAAOC,SAASC,SACfvB,KAAKF,UAAUW,iBAAiB,GAAG,EAE3Ce,QAAQC,IACZ,IAAMC,EAAOD,EAAKE,aAAa,MAAM,EAAEC,QAAQ,MAAO,EAAE,EAClDC,EAAcT,EAAKQ,QAAQ,MAAO,EAAE,EAEtCC,EAAYC,SAASJ,CAAI,GAAc,KAATA,GAEd,MAATA,GAAgC,KAAhBG,EACzBJ,EAAKR,UAAUC,IAAI,QAAQ,EAE3BO,EAAKR,UAAUE,OAAO,QAAQ,CAElC,CAAC,CACH,CAEAH,eACE,MAAMZ,EAAMJ,KAAKI,IACX2B,EAAS/B,KAAKF,UAEdkC,EAAc,cACdxB,EAAwBR,KAAKQ,sBAEnC,SAASyB,IAJY,EAKbZ,OAAOa,SACP9B,EAAIa,UAAUC,IAAIc,CAAW,EAC7BD,EAAOd,UAAUC,IAAIc,CAAW,EAEhCxB,EAAsBgB,QAAQW,IAC5BA,EAAQlB,UAAUC,IAAIc,CAAW,CACnC,CAAC,IAED5B,EAAIa,UAAUE,OAAOa,CAAW,EAChCD,EAAOd,UAAUE,OAAOa,CAAW,EAEnCxB,EAAsBgB,QAAQW,IAC5BA,EAAQlB,UAAUE,OAAOa,CAAW,CACtC,CAAC,EAET,CAEAC,EAAkB,EAElBZ,OAAOX,iBAAiB,SAAUuB,CAAiB,CACrD,CACF","file":"app-header.min.js","sourcesContent":["export default class AppHeader {\r\n constructor(container, options) {\r\n const defaultOptions = {\r\n mobileNavigation: false\r\n }\r\n\r\n this.options = Object.assign({}, defaultOptions, options)\r\n this.app = document.querySelector('.app')\r\n this.container = document.querySelector(container)\r\n this.mobileNavigation = this.options.mobileNavigation\r\n this.hamburgerMenu = this.container.querySelector('.icon-hamburger-menu')\r\n this.headingOverlayDesktop = document.querySelectorAll('.heading-overlay-desktop')\r\n\r\n this.hamburgerMenu.addEventListener('click', this.onClickHamburgerMenu.bind(this))\r\n this.updateMobileNavigationClass()\r\n this.setEvents()\r\n }\r\n\r\n setEvents() {\r\n this.setActiveNavigationItem()\r\n this.onPageScroll()\r\n }\r\n\r\n onClickHamburgerMenu () {\r\n this.mobileNavigation = !this.mobileNavigation\r\n this.updateMobileNavigationClass()\r\n }\r\n\r\n updateMobileNavigationClass() {\r\n if (this.mobileNavigation) {\r\n this.hamburgerMenu.classList.add('mobile')\r\n this.container.classList.add('active')\r\n } else {\r\n this.hamburgerMenu.classList.remove('mobile')\r\n this.container.classList.remove('active')\r\n }\r\n }\r\n\r\n setActiveNavigationItem() {\r\n const path = window.location.pathname\r\n const links = this.container.querySelectorAll('a')\r\n \r\n links.forEach(link => {\r\n const href = link.getAttribute('href').replace(/\\/$/, '')\r\n const currentPath = path.replace(/\\/$/, '')\r\n \r\n if (currentPath.includes(href) && href !== '') {\r\n link.classList.add('active')\r\n } else if (href === '/' && currentPath === '') {\r\n link.classList.add('active')\r\n } else {\r\n link.classList.remove('active')\r\n }\r\n })\r\n }\r\n\r\n onPageScroll () {\r\n const app = this.app\r\n const header = this.container\r\n const headerHeight = 0\r\n const scrollClass = 'scroll-down'\r\n const headingOverlayDesktop = this.headingOverlayDesktop\r\n\r\n function updateScrollClass() {\r\n if (window.scrollY > headerHeight) {\r\n app.classList.add(scrollClass)\r\n header.classList.add(scrollClass)\r\n\r\n headingOverlayDesktop.forEach(overlay => {\r\n overlay.classList.add(scrollClass)\r\n })\r\n } else {\r\n app.classList.remove(scrollClass)\r\n header.classList.remove(scrollClass)\r\n \r\n headingOverlayDesktop.forEach(overlay => {\r\n overlay.classList.remove(scrollClass)\r\n })\r\n }\r\n }\r\n\r\n updateScrollClass()\r\n\r\n window.addEventListener(\"scroll\", updateScrollClass)\r\n }\r\n}"]}