1if(!customElements.get("mega-menu")){class HeaderMegaMenu extends HTMLElement{constructor(){super(),this.openMenuStyle=this.dataset.openMenu,this.onMouseEnter=this.onMouseEnter.bind(this),this.onMouseLeave=this.onMouseLeave.bind(this),this.toggleLink=this.toggleLink.bind(this),this.handleClickOutside=this.handleClickOutside.bind(this),this.handleEscape=this.handleEscape.bind(this)}connectedCallback(){this.navLinks=this.querySelectorAll("[nav-links]"),this.childNavLinks=this.querySelectorAll("[nav-child-links]"),this.dropDownMenuPositions(),window.addEventListener("resize",this.dropDownMenuPositions.bind(this)),this.openMenuStyle==="click"?(this.setupClickMenus(),document.addEventListener("click",this.handleClickOutside),document.addEventListener("keydown",this.handleEscape)):this.setupHoverMenus(),theme?.onMobileSizeChange?.(isMobile=>{Shopify.designMode&&(isMobile?this.navLinks.forEach(el=>{el.__blockHandlersAttached&&(el.removeEventListener("shopify:block:select",el.__blockSelectHandler),el.removeEventListener("shopify:block:deselect",el.__blockDeselectHandler),delete el.__blockSelectHandler,delete el.__blockDeselectHandler,delete el.__blockHandlersAttached)}):this.navLinks.forEach(el=>{if(el.__blockHandlersAttached)return;const onSelect=()=>{el.closest("li").classList.contains("open")||this.toggleLink(el,this.navLinks)},onDeselect=()=>{el.closest("li").classList.contains("open")&&this.toggleLink(el,this.navLinks)};el.addEventListener("shopify:block:select",onSelect),el.addEventListener("shopify:block:deselect",onDeselect),el.__blockSelectHandler=onSelect,el.__blockDeselectHandler=onDeselect,el.__blockHandlersAttached=!0}))})}handleEscape(event){event.key==="Escape"&&this.closeAllMenus()}setupHoverMenus(){console.log(this.navLinks),[...this.childNavLinks].forEach(link=>{const li=link.closest("li");if(!li)return;const handleEnter=()=>{li.classList.add("open")},handleLeave=()=>{li.classList.remove("open")};li.addEventListener("mouseenter",handleEnter),li.addEventListener("mouseleave",handleLeave),li.addEventListener("focusin",handleEnter),li.addEventListener("focusout",handleLeave),link._hoverHandlers={handleEnter,handleLeave}}),[...this.navLinks].forEach(link=>{const li=link.closest("li");if(!li)return;const handleEnter=()=>{li.classList.add("open"),document.body.classList.add("has-header-overlay"),this.onMouseEnter(),document.querySelector("[select-categories]").classList.contains("open")&&document.querySelector("[select-categories]").classList.remove("open")},handleLeave=()=>{li.classList.remove("open"),document.body.classList.remove("has-header-overlay"),this.onMouseLeave()};li.addEventListener("mouseenter",handleEnter),li.addEventListener("mouseleave",handleLeave),li.addEventListener("focusin",handleEnter),li.addEventListener("focusout",handleLeave),link._hoverHandlers={handleEnter,handleLeave}})}setupClickMenus(){const handleActivate=(e,link,linksGroup)=>{e.preventDefault(),this.toggleLink(link,linksGroup)};this.navLinks.forEach(link=>{link.addEventListener("click",e=>{e.preventDefault(),this.toggleLink(link,this.navLinks)}),link.addEventListener("keydown",e=>{(e.key==="Enter"||e.key===" ")&&handleActivate(e,link,this.navLinks)})}),this.childNavLinks.forEach(link=>{link.addEventListener("click",e=>{e.target.tagName==="A"&&e.target.href||(e.preventDefault(),this.toggleLink(link,this.childNavLinks))}),link.addEventListener("keydown",e=>{(e.key==="Enter"||e.key===" ")&&handleActivate(e,link,this.childNavLinks)})})}toggleLink(clickedLink,allLinks){const parentLi=clickedLink.closest("li"),isOpen=parentLi?.classList.contains("open");allLinks.forEach(link=>{const li=link.closest("li");li&&li.classList.remove("open")}),document.querySelectorAll("mega-menu").forEach(menu=>{menu!==this&&menu.closeAllMenus()}),parentLi&&!isOpen?(parentLi.classList.add("open"),setTimeout(()=>{document.body.classList.add("has-header-overlay"),this.onMouseEnter()},100)):(this.onMouseLeave(),document.body.classList.remove("has-header-overlay"))}handleClickOutside(event){event.target.classList.contains("page-overlay")&&this.closeAllMenus()}closeAllMenus(){this.querySelectorAll("li.open").forEach(li=>li.classList.remove("open")),!document.querySelector(".section-header").classList.contains("search-open")&&(document.body.classList.remove("has-header-overlay"),this.onMouseLeave())}onMouseEnter(){document.body.classList.add("has-dropdown-menu")}onMouseLeave(){document.body.classList.remove("has-dropdown-menu")}dropDownMenuPositions(){const windowSize=window.innerWidth;
1[...this.navLinks].forEach(el=>{const li=el.closest("li");li&&li.classList.remove("menu-position-left")}),[...this.navLinks].forEach(menus=>{const li=menus.closest("li"),rect=li.getBoundingClientRect();let currentPosition=rect.left+rect.width;const grandChildList=li.querySelector(".nav-dropdown"),masonrygrandChildList=li.querySelector(".masonry-wrapper");grandChildList&&(currentPosition+=grandChildList.getBoundingClientRect().width+200),masonrygrandChildList&&(currentPosition+=masonrygrandChildList.getBoundingClientRect().width),currentPosition>=windowSize&&li.classList.add("menu-position-left")})}disconnectedCallback(){this.openMenuStyle==="hover"&&[...this.navLinks,...this.childNavLinks].forEach(link=>{const li=link.closest("li"),handlers=link._hoverHandlers;li&&handlers&&(li.removeEventListener("mouseenter",handlers.handleEnter),li.removeEventListener("mouseleave",handlers.handleLeave)),delete link._hoverHandlers}),this.openMenuStyle==="click"&&document.removeEventListener("click",this.handleClickOutside)}}customElements.define("mega-menu",HeaderMegaMenu)} 2//# sourceMappingURL=/cdn/shop/t/168/assets/nav-menu.js.map?v=53093199749235105411787647287
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.