1import{calculateHeaderGroupHeight}from"@theme/critical";import{Component}from"@theme/component";import{onDocumentLoaded,changeMetaThemeColor}from"@theme/utilities";class HeaderComponent extends Component{requiredRefs=["headerDrawerContainer","headerMenu","headerRowTop"];#menuDrawerHiddenWidth=null;#intersectionObserver=null;#offscreen=!1;#lastScrollTop=0;#timeout=null;#animationDelay=150;#resizeObserver=new ResizeObserver(([entry])=>{if(!entry)return;const{height}=entry.target.getBoundingClientRect();document.body.style.setProperty("--header-height",`${height}px`),this.#menuDrawerHiddenWidth&&window.innerWidth>this.#menuDrawerHiddenWidth&&this.#updateMenuVisibility(!1)});#observeStickyPosition=(alwaysSticky=!0)=>{if(this.#intersectionObserver)return;const config={threshold:alwaysSticky?1:0};this.#intersectionObserver=new IntersectionObserver(([entry])=>{if(!entry)return;const{isIntersecting}=entry;alwaysSticky?(this.dataset.stickyState=isIntersecting?"inactive":"active",changeMetaThemeColor(this.refs.headerRowTop)):this.#offscreen=!isIntersecting||this.dataset.stickyState==="active"},config),this.#intersectionObserver.observe(this)};#handleOverflowMinimum=event=>{this.#updateMenuVisibility(event.detail.minimumReached)};#updateMenuVisibility(hideMenu){hideMenu?(this.refs.headerDrawerContainer.classList.remove("desktop:hidden"),this.#menuDrawerHiddenWidth=window.innerWidth,this.refs.headerMenu.classList.add("hidden")):(this.refs.headerDrawerContainer.classList.add("desktop:hidden"),this.#menuDrawerHiddenWidth=null,this.refs.headerMenu.classList.remove("hidden"))}#handleWindowScroll=()=>{const stickyMode=this.getAttribute("sticky");if(!this.#offscreen&&stickyMode!=="always")return;const scrollTop=document.scrollingElement?.scrollTop??0,isScrollingUp=scrollTop<this.#lastScrollTop;if(this.#timeout&&(clearTimeout(this.#timeout),this.#timeout=null),stickyMode==="always"){this.getBoundingClientRect().top>=0?this.dataset.scrollDirection="none":isScrollingUp?this.dataset.scrollDirection="up":this.dataset.scrollDirection="down",this.#lastScrollTop=scrollTop;return}isScrollingUp?(this.removeAttribute("data-animating"),this.getBoundingClientRect().top>=0?(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.setAttribute("data-animating",""),this.#timeout=setTimeout(()=>{this.dataset.stickyState="idle",this.removeAttribute("data-animating")},this.#animationDelay)):(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")&&document.addEventListener("scroll",this.#handleWindowScroll))}disconnectedCallback(){super.disconnectedCallback(),this.#resizeObserver.disconnect(),this.#intersectionObserver?.disconnect(),this.removeEventListener("overflowMinimum",this.#handleOverflowMinimum),document.removeEventListener("scroll",this.#handleWindowScroll),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(()=>calculateHeaderGroupHeight(header,headerGroup)),children=headerGroup.children;for(let i=0;i<children.length;i++){const element=children[i];element===header||!(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===header||!(element instanceof HTMLElement)||resizeObserver.observe(element)}}}).observe(headerGroup,{childList:!0})}const triggers=document.querySelectorAll("[data-menu-trigger]");let activeItem=null;function initMegaMenuTabs(scope=document){scope.querySelectorAll(".key-mega-menu__layout").forEach(layout=>{if(layout.dataset.initialized)return;layout.dataset.initialized="true";const triggers2=layout.querySelectorAll(".key-mega-menu__left-link[data-target]");triggers2.length&&triggers2.forEach(trigger=>{trigger.addEventListener("mouseenter",()=>{const target=trigger.getAttribute("data-target");layout.querySelectorAll(".key-mega-menu__left-link").forEach(el=>el.classList.remove("is-active")),layout.querySelectorAll(".key-mega-menu__panel").forEach(el=>el.classList.remove("is-active")),trigger.classList.add("is-active");const panel=layout.querySelector(`.key-mega-menu__panel[data-panel="${target}"]`);panel&&panel.classList.add("is-active")})})})}
1triggers.forEach(trigger=>{trigger.addEventListener("click",e=>{e.stopPropagation();const item=trigger.closest(".menu-v2__item");if(activeItem===item)return closeMenu();closeMenu(),positionDropdown(item),item.classList.add("active"),initMegaMenuTabs(item),activeItem=item})}),document.addEventListener("click",e=>{e.target.closest(".menu-v2__dropdown-inner")||e.target.closest("[data-menu-trigger]")||closeMenu()}),document.addEventListener("keydown",e=>{e.key==="Escape"&&closeMenu()});let resizeTimeout;window.addEventListener("resize",()=>{activeItem&&(clearTimeout(resizeTimeout),resizeTimeout=setTimeout(()=>{positionDropdown(activeItem)},50))});function closeMenu(){document.querySelectorAll(".menu-v2__item.active").forEach(item=>{const inner=item.querySelector(".menu-v2__dropdown-inner");inner&&(inner.scrollTop=0),item.classList.remove("active")}),activeItem=null}function positionDropdown(item){const dropdown=item.querySelector(".menu-v2__dropdown"),trigger=item.querySelector("[data-menu-trigger]");if(!dropdown||!trigger)return;const{left:tLeft,bottom,width:tWidth}=trigger.getBoundingClientRect(),{width:dWidth}=dropdown.getBoundingClientRect(),padding=16,centeredLeft=tLeft+tWidth/2-dWidth/2,fitsLeft=centeredLeft>=padding,fitsRight=centeredLeft+dWidth<=window.innerWidth-padding;let left;if(fitsLeft&&fitsRight)left=centeredLeft;else{left=tLeft-40,left<padding&&(left=padding);const maxLeft=window.innerWidth-dWidth-padding;left>maxLeft&&(left=maxLeft)}const top=bottom+16;dropdown.style.left=`${left}px`,dropdown.style.top=`${top}px`;const arrowLeft=tLeft+tWidth/2-left-8;dropdown.style.setProperty("--arrow-left",`${arrowLeft}px`)}}); 2//# sourceMappingURL=/cdn/shop/t/30/assets/header.js.map?v=44200555956048471591778671269
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.