{"version":3,"sources":["Core/NavigationScrollHideEffect.ts"],"names":["define","require","exports","Object","defineProperty","value","NavigationScrollHideEffect","[object Object]","this","_breakpointHeight","_navBarTopNormal","_navBarTopHidden","_headerContainer","document","querySelector","_navToggler","_navBar","prevScrollpos","window","pageYOffset","addEventListener","innerHeight","style","top","classList","contains","currentScrollPos","removeProperty","position"],"mappings":"AAAAA,OAAO,CAAC,UAAW,WAAY,SAAUC,EAASC,GAC9C,aACAC,OAAOC,eAAeF,EAAS,aAAc,CAAEG,OAAO,IACtDH,EAAQI,gCAA6B,EAwCrCJ,EAAQI,2BAvCR,MACIC,cACIC,KAAKC,kBAAoB,IACzBD,KAAKE,iBAAmB,IACxBF,KAAKG,iBAAmB,SACxBH,KAAKI,iBAAmBC,SAASC,cAAc,qBAC/CN,KAAKO,YAAcF,SAASC,cAAc,mBAC1CN,KAAKQ,QAAUH,SAASC,cAAc,2BACtC,IAAIG,EAAgBC,OAAOC,YACvBD,SACAA,OAAOE,iBAAiB,SAAU,KAC9B,GAAIF,OAAOG,YAAcb,KAAKC,kBAE1B,YADAD,KAAKI,iBAAiBU,MAAMC,IAAMf,KAAKE,kBAG3C,GAAIF,KAAKQ,QAAQQ,UAAUC,SAAS,QAChC,OACJ,IAAIC,EAAmBR,OAAOC,YAE1BX,KAAKI,iBAAiBU,MAAMC,IAD5BN,EAAgBS,EACkBlB,KAAKE,iBAGLF,KAAKG,iBAE3CM,EAAgBS,IAEhBlB,KAAKO,aACLP,KAAKO,YAAYK,iBAAiB,QAAS,KAClCZ,KAAKQ,QAAQQ,UAAUC,SAAS,QAIjCjB,KAAKI,iBAAiBU,MAAMK,eAAe,YAH3CnB,KAAKI,iBAAiBU,MAAMM,SAAW","sourcesContent":["export class NavigationScrollHideEffect {\r\n\r\n //on small screens in landscape mode, hide the header on scroll and bring it back on the first scroll up event\r\n\r\n // local variables\r\n private _breakpointHeight: number = 500; // screen height\r\n private _navBarTopNormal: string = \"0\"; // nav is shown\r\n private _navBarTopHidden: string = \"-400px\"; // nav is hidden\r\n\r\n // DOM elements\r\n private _headerContainer: HTMLElement = document.querySelector(\".header-container\"); // section that holds cookie banner & nav elements\r\n private _navToggler: HTMLElement = document.querySelector(\".navbar-toggler\"); // get the navigation trigger button\r\n private _navBar: HTMLElement = document.querySelector(\"#navbarSupportedContent\"); // main navigation ul container\r\n\r\n constructor() {\r\n let prevScrollpos: number = window.pageYOffset; // get the old scroll position\r\n\r\n if (window) {\r\n window.addEventListener(\"scroll\", () => {\r\n if (window.innerHeight > this._breakpointHeight) {\r\n this._headerContainer.style.top = this._navBarTopNormal; // make sure the header has a top of 0px\r\n return; // do not continue if screen is higher than 500px\r\n }\r\n\r\n if (this._navBar.classList.contains(\"show\")) return; // if navigation is shown, do not run scroll effect\r\n\r\n let currentScrollPos = window.pageYOffset; // after scrolling, get the new scroll position\r\n\r\n if (prevScrollpos > currentScrollPos) {\r\n this._headerContainer.style.top = this._navBarTopNormal; // scrolling up, show header\r\n } else {\r\n this._headerContainer.style.top = this._navBarTopHidden; // scrolling down, hide header\r\n }\r\n prevScrollpos = currentScrollPos; // update variable\r\n })\r\n\r\n if (this._navToggler) {\r\n this._navToggler.addEventListener(\"click\", () => {\r\n if (!this._navBar.classList.contains(\"show\")) {\r\n this._headerContainer.style.position = \"fixed\"; // if the navigation is shown, change position from sticky to fixed\r\n } else {\r\n this._headerContainer.style.removeProperty(\"position\"); // remove any inline position styling\r\n }\r\n })\r\n }\r\n }\r\n } \r\n}\r\n\r\n\r\n"],"file":"NavigationScrollHideEffect.js"}