1import{Component}from"@theme/component";import{onDocumentLoaded,changeMetaThemeColor,setHeaderMenuStyle}from"@theme/utilities";import{getScrollTop,getScrollEventTarget,getIntersectionRoot,scrollContainerMediaQuery}from"@theme/scroll-container";class HeaderComponent extends Component{requiredRefs=["headerDrawerContainer","headerMenu","headerRowTop"];#menuDrawerHiddenWidth=null;#intersectionObserver=null;#scrollContainer=null;#offscreen=!1;#lastScrollTop=0;#timeout=null;#scrollRafId=null;#resizeObserver=new ResizeObserver(([entry])=>{if(!entry||!entry.borderBoxSize[0])return;const roundedHeaderHeight=Math.round(entry.borderBoxSize[0].blockSize);document.body.style.setProperty("--header-height",`${roundedHeaderHeight}px`),this.#menuDrawerHiddenWidth&&window.innerWidth>this.#menuDrawerHiddenWidth&&this.#updateMenuVisibility(!1)});#observeStickyPosition=(alwaysSticky=!0)=>{if(this.#intersectionObserver)return;const config={threshold:alwaysSticky?1:0,root:getIntersectionRoot()};this.#intersectionObserver=new IntersectionObserver(([entry])=>{if(!entry)return;const{isIntersecting}=entry;alwaysSticky?(this.dataset.stickyState=isIntersecting?"inactive":"active",this.dataset.themeColor&&changeMetaThemeColor(this.dataset.themeColor)):this.#offscreen=!isIntersecting||this.dataset.stickyState==="active"},config),this.#intersectionObserver.observe(this)};#handleOverflowMinimum=event=>{this.#updateMenuVisibility(event.detail.minimumReached)};#updateMenuVisibility(hideMenu){if(hideMenu)this.#menuDrawerHiddenWidth=window.innerWidth;else{this.#menuDrawerHiddenWidth=null;const overflowList=this.querySelector("overflow-list");overflowList&&overflowList.removeAttribute("minimum-reached")}setHeaderMenuStyle()}#handleBreakpointChange=()=>{const stickyMode=this.getAttribute("sticky");stickyMode&&(this.#scrollContainer&&(this.#scrollContainer.removeEventListener("scroll",this.#handleWindowScroll),this.#scrollContainer=getScrollEventTarget(),this.#scrollContainer.addEventListener("scroll",this.#handleWindowScroll)),this.#intersectionObserver?.disconnect(),this.#intersectionObserver=null,this.#observeStickyPosition(stickyMode==="always"))};#handleWindowScroll=()=>{this.#scrollRafId===null&&(this.#scrollRafId=requestAnimationFrame(()=>{this.#scrollRafId=null,this.#updateScrollState()}))};#updateScrollState=()=>{const stickyMode=this.getAttribute("sticky");if(!this.#offscreen&&stickyMode!=="always")return;const scrollTop=getScrollTop(),headerTop=this.getBoundingClientRect().top,isScrollingUp=scrollTop<this.#lastScrollTop,isAtTop=headerTop>=0;if(this.#timeout&&(clearTimeout(this.#timeout),this.#timeout=null),stickyMode==="always"){isAtTop?this.dataset.scrollDirection="none":isScrollingUp?this.dataset.scrollDirection="up":this.dataset.scrollDirection="down",this.#lastScrollTop=scrollTop;return}isScrollingUp?isAtTop?(this.#offscreen=!1,this.dataset.stickyState="inactive",this.dataset.scrollDirection="none"):(this.dataset.stickyState="active",this.dataset.scrollDirection="up"):this.dataset.stickyState==="active"?(this.dataset.scrollDirection="none",this.dataset.stickyState="idle"):(this.dataset.scrollDirection="none",this.dataset.stickyState="idle"),this.#lastScrollTop=scrollTop};connectedCallback(){super.connectedCallback(),this.#resizeObserver.observe(this),this.addEventListener("overflowMinimum",this.#handleOverflowMinimum);const stickyMode=this.getAttribute("sticky");stickyMode&&(this.#observeStickyPosition(stickyMode==="always"),(stickyMode==="scroll-up"||stickyMode==="always")&&(this.#scrollContainer=getScrollEventTarget(),this.#scrollContainer.addEventListener("scroll",this.#handleWindowScroll)),scrollContainerMediaQuery.addEventListener("change",this.#handleBreakpointChange))}disconnectedCallback(){super.disconnectedCallback(),this.#resizeObserver.disconnect(),this.#intersectionObserver?.disconnect(),this.removeEventListener("overflowMinimum",this.#handleOverflowMinimum),scrollContainerMediaQuery.removeEventListener("change",this.#handleBreakpointChange),this.#scrollContainer?.removeEventListener("scroll",this.#handleWindowScroll),this.#scrollContainer=null,this.#scrollRafId!==null&&(cancelAnimationFrame(this.#scrollRafId),this.#scrollRafId=null),document.body.style.setProperty("--header-height","0px")}}customElements.get("header-component")||customElements.define("header-component",HeaderComponent),onDocumentLoaded(()=>{const header=document.querySelector("header-component"),headerGroup=document.querySelector("#header-group");if(headerGroup){const resizeObserver=new ResizeObserver(entries=>{const headerGroupHeight=entries.reduce((totalHeight,entry)=>entry.target!==header||header.hasAttribute("transparent")&&header.parentElement?.nextElementSibling?totalHeight+(entry.borderBoxSize[0]?.blockSize??0):totalHeight,0),roun
1dedHeaderGroupHeight=Math.round(headerGroupHeight);document.body.style.setProperty("--header-group-height",`${roundedHeaderGroupHeight}px`)});header instanceof HTMLElement&&resizeObserver.observe(header);const children=headerGroup.children;for(let i=0;i<children.length;i++){const element=children[i];element instanceof HTMLElement&&resizeObserver.observe(element)}new MutationObserver(mutations=>{for(const mutation of mutations)if(mutation.type==="childList"){const children2=headerGroup.children;for(let i=0;i<children2.length;i++){const element=children2[i];element instanceof HTMLElement&&resizeObserver.observe(element)}}}).observe(headerGroup,{childList:!0})}}); 2//# sourceMappingURL=/cdn/shop/t/16/assets/header.js.map?v=183210491532312943441787335042
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.