1class DetailsDisclosure extends HTMLElement{constructor(){super(),this.mainDetailsToggle=this.querySelector("details"),this.content=this.mainDetailsToggle.querySelector("summary").nextElementSibling,this.closingTimeout,this.mainDetailsToggle.addEventListener("focusout",this.onFocusOut.bind(this)),this.addEventListener("keyup",this.onContainerKeyUp.bind(this)),this.openHandler=this.open.bind(this),this.closeWithClosingClassHandler=this.closeWithClosingClass.bind(this),this.closeButton=this.querySelector(".disclosure__close-button"),this.closeButton&&(this.onClickCloseButtonHandler=this.onClickCloseButton.bind(this),this.closeButton.addEventListener("click",this.onClickCloseButtonHandler)),this.dataset.ignoreHover||(this.isAbleToUseMouse=matchMedia("(hover: hover)").matches,this.debouncedOnChange=debounce(event=>{this.isAbleToUseMouse=matchMedia("(hover: hover)").matches,this.initHoverDetails()},300),this.debouncedOnChangeHandler=this.debouncedOnChange.bind(this),window.addEventListener("resize",this.debouncedOnChangeHandler),this.initHoverDetails()),this.initClickSummary()}disconnectedCallback(){this.isAbleToUseMouse&&(Shopify.removeEventListener(this.mainDetailsToggle,"mouseenter",this.openHandler),Shopify.removeEventListener(this.mainDetailsToggle,"mouseleave",this.closeWithClosingClassHandler)),this.closeButton&&this.closeButton.removeEventListener("click",this.onClickCloseButtonHandler),this.debouncedOnChangeHandler&&window.removeEventListener("resize",this.debouncedOnChangeHandler)}initHoverDetails(){this.isAbleToUseMouse?(Shopify.addListener(this.mainDetailsToggle,"mouseenter",this.openHandler),Shopify.addListener(this.mainDetailsToggle,"mouseleave",this.closeWithClosingClassHandler)):(this.mainDetailsToggle.removeEventListener("mouseenter",this.openHandler),this.mainDetailsToggle.removeEventListener("mouseleave",this.closeWithClosingClassHandler))}initClickSummary(){this.mainDetailsToggle.querySelector("summary").addEventListener("click",e=>{e.preventDefault(),this.mainDetailsToggle.hasAttribute("open")?this.closeWithClosingClass():this.open()})}closeWithClosingClass(){this.classList.contains("ignore-close")||(this.mainDetailsToggle.classList.add("closing"),this.closingTimeout&&clearTimeout(this.closingTimeout),this.closingTimeout=setTimeout(()=>{this.close(),this.mainDetailsToggle.classList.remove("closing")},300))}onContainerKeyUp(event){event.code.toUpperCase()==="ESCAPE"&&(this.closeWithClosingClass(),this.mainDetailsToggle.querySelector("summary").focus())}onFocusOut(){setTimeout(()=>{this.contains(document.activeElement)||this.closeWithClosingClass()})}onClickCloseButton(){this.closeWithClosingClass()}playAnimation(){this.animations||(this.animations=this.content.getAnimations()),this.mainDetailsToggle.hasAttribute("open")?this.animations.forEach(animation=>animation.play()):this.animations.forEach(animation=>animation.cancel())}open(){this.mainDetailsToggle.setAttribute("open",!0),this.mainDetailsToggle.querySelector("summary").setAttribute("aria-expanded",!0),this.playAnimation()}close(){this.mainDetailsToggle.removeAttribute("open"),this.mainDetailsToggle.querySelector("summary").setAttribute("aria-expanded",!1)}}customElements.define("details-disclosure",DetailsDisclosure);let hoverSupport=matchMedia("(hover: hover)").matches;window.addEventListener("resize",()=>{hoverSupport=matchMedia("(hover: hover)").matches});class HeaderMenu extends DetailsDisclosure{constructor(){super(),this.header=document.querySelector(".header"),this.mainDetailsToggle.addEventListener("toggle",this.onToggle.bind(this)),this.querySelectorAll(":scope > details > .header__menu-item--link").forEach(element=>element.addEventListener("click",this.onClickSummary.bind(this))),this.stickyHeader=this.closest("sticky-header")}onClickSummary(event){hoverSupport&&!this.dataset.ignoreHover&&(event.preventDefault(),window.location=event.currentTarget.dataset.href)}open(){super.open(),this.stickyHeader&&(this.stickyHeader.setPreventOpen(!0),this.stickyHeader.setPreventHide(!0))}close(){super.close(),this.stickyHeader&&(this.stickyHeader.setPreventOpen(!1),this.stickyHeader.setPreventHide(!1))}
1onToggle(){this.header&&(document.documentElement.style.getPropertyValue("--header-bottom-position-desktop")===""&&document.documentElement.style.setProperty("--header-bottom-position-desktop",`${Math.floor(this.header.getBoundingClientRect().bottom)}px`),this.mainDetailsToggle.hasAttribute("open")?this.content.getBoundingClientRect().bottom>document.documentElement.clientHeight-50&&(this.content.classList.add("outside-viewport"),document.body.classList.add("overflow-hidden"),this.content.style.setProperty("--top-position",`${this.content.getBoundingClientRect().top}px`)):(this.content.classList.remove("outside-viewport"),document.body.classList.remove("overflow-hidden"),this.content.style.removeProperty("--top-position")))}}customElements.define("header-menu",HeaderMenu); 2//# sourceMappingURL=/cdn/shop/t/114/assets/details-disclosure.js.map?v=17506770513992211911787166149
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.