1class BasicHeader extends HTMLElement{constructor(){super()}get headerSection(){return document.querySelector(".f-section-header")}connectedCallback(){this.classes={active:"f-header__mega-active",headerScheme:this.dataset.headerColorScheme,dropdownScheme:this.dataset.dropdownColorScheme},this.grandLinks=this.querySelectorAll(".f-site-nav__sub-item--has-child"),this.grandLinks&&this.grandLinks.forEach(item=>{this.handleGrandLinksPosition(item)})}handleMegaItemActive(dropdown){const rect=dropdown.getBoundingClientRect();this.style.setProperty("--f-dropdown-height",Math.ceil(rect.height)+"px"),this.classList.remove(this.classes.headerScheme),this.classList.add(this.classes.active,this.classes.dropdownScheme),document.documentElement.style.setProperty("--f-header-height",this.clientHeight+"px")}handleMegaItemDeactive(){this.classList.remove(this.classes.active,this.classes.dropdownScheme),this.classList.add(this.classes.headerScheme),document.documentElement.style.setProperty("--f-header-height",this.clientHeight+"px")}handleGrandLinksPosition(target){const dropdownLV3=target.querySelector(".f-site-nav__dropdown");if(dropdownLV3){const rect=dropdownLV3.getBoundingClientRect();dropdownLV3.classList.remove("f-site-nav__dropdown-reversed"),(!FoxThemeSettings.isRTL&&document.documentElement.clientWidth<rect.x+rect.width+10||FoxThemeSettings.isRTL&&rect.x<10)&&dropdownLV3.classList.add("f-site-nav__dropdown-reversed")}}}customElements.define("basic-header",BasicHeader,{extends:"header"});class StickyHeader extends BasicHeader{constructor(){super(),this.stickyClasses={pinned:"header-pinned"}}connectedCallback(){super.connectedCallback(),this.headerSection.classList.add("header-sticky"),this.stickyType=this.dataset.stickyType,this.currentScrollTop=0,this.headerBounds=this.headerSection.querySelector(".header").getBoundingClientRect(),this.onScrollHandler=this._onScroll.bind(this),this._onScroll(),window.addEventListener("scroll",this.onScrollHandler,!1)}disconnectedCallback(){window.removeEventListener("scroll",this.onScrollHandler)}get isAlwaysSticky(){return this.stickyType==="always"}_onScroll(){const scrollTop=window.scrollY,headerSection=this.headerSection,headerBoundsTop=this.offsetTop+this.headerBounds.height,headerBoundsBottom=this.headerBounds.top+this.headerBounds.height+100;requestAnimationFrame(()=>{scrollTop>headerBoundsTop?(headerSection.classList.add("header-scrolled"),this.isAlwaysSticky?document.body.classList.add(this.stickyClasses.pinned):scrollTop<this.currentScrollTop||scrollTop<headerBoundsBottom?document.body.classList.add(this.stickyClasses.pinned):document.body.classList.remove(this.stickyClasses.pinned)):(headerSection.classList.remove("header-scrolled"),document.body.classList.remove(this.stickyClasses.pinned)),this.currentScrollTop=scrollTop})}_closeMenuDisclosure(){this.disclosures=this.disclosures||this.header.querySelectorAll("header-menu"),this.disclosures.forEach(disclosure=>disclosure.close()),this.siteNav=this.siteNav||this.header.querySelector("site-nav"),this.siteNav&&this.siteNav.closeMegaDropdowns()}}customElements.define("sticky-header",StickyHeader,{extends:"header"});class HeaderMenu extends DetailsDisclosure{constructor(){super()}connectedCallback(){this.header=this.closest(".site-header"),this.classes={itemActive:"f-menu__item-active"},this.header.timeoutEnter=null,this.header.timeoutLeave=null}onToggle(evt){const{target}=evt,li=target.closest(".f-site-nav__item"),isOpen=this.mainDetailsToggle.open,isMega=li.classList.contains("f-site-nav__item--mega");if(!isOpen)clearTimeout(this.header.timeoutEnter),li.classList.remove(this.classes.itemActive),this.header.timeoutLeave=setTimeout(()=>{this.header.handleMegaItemDeactive()},160);else if(isMega){clearTimeout(this.header.timeoutLeave);const dropdown=li.querySelector(".f-site-nav__dropdown");this.header.handleMegaItemActive(dropdown),this.header.timeoutEnter=setTimeout(()=>{li.classList.add(this.classes.itemActive)},160)}else li.classList.add(this.classes.itemActive)}}customElements.define("header-menu",HeaderMenu);class SiteNav extends HTMLElement{constructor(){super()}connectedCallback(){this.header=this.closest(".site-header"),this.classes={itemActive:"f-menu__item-active"},this.megaItems=this.querySelectorAll(".f-site-nav__item--mega"),this.timeoutEnter=null,this.timeoutLeave=null,this.isHover=this.header&&this.header.classList.contains("show-dropdown-menu-on-hover"),this.isHover&&this.megaItems&&this.megaItems.forEac
1h((megaItem,index)=>{megaItem.addEventListener("mouseenter",evt=>this.onMenuItemEnter(evt,index)),megaItem.addEventListener("mouseleave",evt=>this.onMenuItemLeave(evt,index))})}onMenuItemEnter(evt){clearTimeout(this.timeoutLeave);const{target}=evt;target.classList.contains(this.classes.itemActive)||this.megaItems&&this.megaItems.forEach(megaItem=>{megaItem.classList.remove(this.classes.itemActive)});const dropdown=target.querySelector(".f-site-nav__dropdown");dropdown&&(this.header.handleMegaItemActive(dropdown),this.timeoutEnter=setTimeout(()=>{target.classList.add(this.classes.itemActive)}))}onMenuItemLeave(evt){const{target}=evt;clearTimeout(this.timeoutEnter),this.header.handleMegaItemDeactive(),this.timeoutLeave=setTimeout(()=>{target.classList.remove(this.classes.itemActive)})}closeMegaDropdowns(){clearTimeout(this.timeoutEnter),this.megaItems&&this.megaItems.forEach(megaItem=>{megaItem.classList.remove(this.classes.itemActive)}),this.timeoutLeave=setTimeout(()=>{this.header.handleMegaItemDeactive()})}disconnectedCallback(){this.megaItems&&this.megaItems.forEach((megaItem,index)=>{megaItem.removeEventListener("mouseenter",evt=>this.onMenuItemEnter(evt,index)),megaItem.removeEventListener("mouseleave",evt=>this.onMenuItemLeave(evt,index))})}}customElements.define("site-nav",SiteNav);class HeaderAccount extends HTMLElement{async connectedCallback(){const account=this.querySelector("shopify-account");account&&(await customElements.whenDefined("shopify-account"),this.injectAnimation(account))}injectAnimation(account){const shadow=account.shadowRoot;if(!shadow||shadow.querySelector("#custom-account-styles"))return;const style=document.createElement("style");style.id="custom-account-styles",style.textContent=` 2 @keyframes dialogScaleIn { 3 0% { 4 transform: scale(0.8); 5 opacity: 0; 6 } 7 100% { 8 transform: scale(1); 9 opacity: 1; 10 } 11 } 12 @keyframes dialogScaleOut { 13 0% { 14 transform: scale(1); 15 opacity: 1; 16 } 17 18 100% { 19 transform: scale(0.8); 20 opacity: 0; 21 } 22 } 23 @keyframes dialogBackdropIn { 24 0% { 25 opacity: 0; 26 } 27 28 100% { 29 opacity: 1; 30 } 31 } 32 @keyframes dialogBackdropOut { 33 0% { 34 opacity: 1; 35 } 36 37 100% { 38 opacity: 0; 39 } 40 } 41 @media (min-width: 751px) { 42 dialog[open] { 43 animation: dialogScaleIn 0.6s cubic-bezier(0.7, 0, 0.2, 1) !important; 44 } 45 dialog.closing { 46 animation: dialogScaleOut 0.6s cubic-bezier(0.7, 0, 0.2, 1) !important; 47 } 48 dialog[open]::backdrop { 49 cursor: zoom-out; 50 animation: dialogBackdropIn 0.8s cubic-bezier(0.7, 0, 0.2, 1) !important; 51 } 52 dialog.closing::backdrop { 53 animation: dialogBackdropOut 0.8s cubic-bezier(0.7, 0, 0.2, 1) !important; 54 } 55 } 56 `,shadow.prepend(style)}watchDialog(account){const shadow=account.shadowRoot;if(!shadow)return;const dialog=shadow.querySelector("dialog");if(!dialog)return;const update=()=>{document.documentElement.classList.toggle("account-dialog-open",dialog.hasAttribute("open"))};
56update(),new MutationObserver(update).observe(dialog,{attributes:!0,attributeFilter:["open"]})}}customElements.define("header-account",HeaderAccount); 57//# sourceMappingURL=/cdn/shop/t/37/assets/header.js.map?v=29884510778072015601778009387
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.