class StickyHeader extends HTMLElement{constructor(){super()}connectedCallback(){this.stickyEnabled=this.dataset.headerSticky==="true",this.hideOnScroll=!0,this.header=document.querySelector("#shopify-section-header"),this.stickyEnabled&&this.initStickyHeader()}disconnectedCallback(){this.removeEventListener("preventHeaderReveal",this._hideHeaderOnScrollUp),window.removeEventListener("scroll",this.onScrollHandler)}initStickyHeader(){this.headerBounds={},this.currentScrollTop=0,this.preventReveal=!1,this.onScrollHandler=this._onScroll.bind(this),this._hideHeaderOnScrollUp=()=>this.preventReveal=!0,this.addEventListener("preventHeaderReveal",this._hideHeaderOnScrollUp),window.addEventListener("scroll",this.onScrollHandler,!1),this._createObserver(),document.body.classList.add("header-sticky-enabled")}_onScroll(){const scrollTop=window.pageYOffset||document.documentElement.scrollTop;scrollTop>this.currentScrollTop&&scrollTop>this.offset?requestAnimationFrame(this._hide.bind(this)):scrollTopthis.offset?this.preventReveal?(window.clearTimeout(this.isScrolling),this.isScrolling=setTimeout(()=>{this.preventReveal=!1},66),requestAnimationFrame(this._hide.bind(this))):requestAnimationFrame(this._reveal.bind(this)):scrollTop<=this.headerBounds.top&&requestAnimationFrame(this._reset.bind(this)),this.currentScrollTop=scrollTop}_createObserver(){new IntersectionObserver((entries,observer2)=>{this.headerBounds=entries[0].intersectionRect,this.offset=this.headerBounds.bottom,observer2.disconnect()}).observe(this.header)}_hide(){this.header.classList.add("site-header--sticky","site-header--hidden"),document.body.classList.remove("header-sticky--visible"),this._closeMenuDisclosure()}_reveal(){this.header.classList.add("site-header--sticky","site-header--animate"),this.header.classList.remove("site-header--hidden"),document.body.classList.add("header-sticky--visible")}_reset(){this.header.classList.remove("site-header--hidden","site-header--sticky","site-header--animate"),document.body.classList.remove("header-sticky--hidden")}_closeMenuDisclosure(){this.disclosures=this.disclosures||this.header.querySelectorAll("header-menu"),this.disclosures.forEach(disclosure=>disclosure.close())}}customElements.define("sticky-header",StickyHeader);
//# sourceMappingURL=/cdn/shop/t/3/assets/header.js.map?v=86400183690339340511672340465