1import{Component}from"@theme/component";import{removeTrapFocus}from"@theme/focus";import{onAnimationEnd}from"@theme/utilities";class HeaderDrawer extends Component{requiredRefs=["details","menuList"];connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this.#onKeyUp),this.#setupAnimatedElementListeners()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keyup",this.#onKeyUp)}initSwiper=container=>{container&&(this.swiper=new window.Swiper(container,{slidesPerView:1,spaceBetween:0,observer:!0,observeParents:!0,loop:!0,navigation:{nextEl:".tw-carousel-mega-menu .swiper-buttons .swiper-button-next",prevEl:".tw-carousel-mega-menu .swiper-buttons .swiper-button-prev"},pagination:{el:container.querySelector(".swiper-pagination"),clickable:!0,type:"progressbar"}}),this.swiper.update())};#onKeyUp=event=>{event.key==="Escape"&&this.#close(this.#getDetailsElement(event))};get isOpen(){return this.refs.details.hasAttribute("open")}#getDetailsElement(event){return event?.target instanceof Element?event.target.closest("details")??this.refs.details:this.refs.details}#getButtonElement(event){return event?.target instanceof Element?event.target.closest("button"):null}toggle(){return this.isOpen?this.close():this.open()}open(event){const details=this.#getDetailsElement(event),summary=details.querySelector("summary"),searchIcon=document.querySelector("header-actions search-button"),accountIcon=document.querySelector("header-actions dialog-component");summary&&(summary.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>{details.classList.add("menu-open"),searchIcon?.classList.add("tw-fade-out"),searchIcon?.classList.remove("tw-fade-in"),accountIcon?.classList.add("tw-fade-out"),accountIcon?.classList.remove("tw-fade-in")}))}openSubmenu(event){const submenuTrigger=this.#getButtonElement(event),submenu=submenuTrigger?.parentElement?.querySelector('[ref="submenu[]"]'),utilityMenu=document.getElementById("utility-menu"),submenus=this.querySelectorAll('[ref="menuitem"]');submenu&&submenuTrigger&&(this.initSwiper(submenu.querySelector('[class*="tw-carousel-mega-menu-swiper-"]')),submenuTrigger?.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>{submenu?.classList.add("tw-submenu-open"),utilityMenu?.classList?.add("tw-menu-open"),submenus.forEach(item=>{item?.classList?.add("tw-menu-open")})}))}closeSubmenu(event){const submenuTrigger=this.#getButtonElement(event),submenu=submenuTrigger?.closest('[ref="submenu[]"]'),utilityMenu=document.getElementById("utility-menu"),submenus=this.querySelectorAll('[ref="menuitem"]');submenu&&submenuTrigger&&(this?.swiper&&this?.swiper?.destroy(!0,!0),submenuTrigger?.setAttribute("aria-expanded","false"),requestAnimationFrame(()=>{submenu?.classList.remove("tw-submenu-open"),utilityMenu?.classList?.remove("tw-menu-open"),submenus.forEach(item=>{item?.classList?.remove("tw-menu-open"),item.setAttribute("aria-expanded","false")})}))}back(event){this.#close(this.#getDetailsElement(event))}close(){this.#close(this.refs.details)}#close(details){const summary=details.querySelector("summary"),searchIcon=document.querySelector("header-actions search-button"),accountIcon=document.querySelector("header-actions dialog-component"),utilityMenu=document.getElementById("utility-menu");summary&&(searchIcon?.classList.add("tw-fade-in"),searchIcon?.classList.remove("tw-fade-out"),accountIcon?.classList.add("tw-fade-in"),accountIcon?.classList.remove("tw-fade-out"),summary.setAttribute("aria-expanded","false"),details.classList.remove("menu-open"),onAnimationEnd(details,()=>{if(reset(details),details===this.refs.details){removeTrapFocus();const openDetails=this.querySelectorAll("details[open]"),openSubmenus=this.querySelectorAll(".tw-submenu-open"),submenus=this.querySelectorAll('[ref="menuitem"]');openDetails.forEach(reset),openSubmenus.forEach(reset),submenus.forEach(reset),utilityMenu?.classList?.remove("tw-menu-open")}}))}#setupAnimatedElementListeners(){function removeWillChangeOnAnimationEnd(event){const target=event.target;target&&target instanceof HTMLElement&&(target.style.setProperty("will-change","unset"),target.removeEventListener("animationend",removeWillChangeOnAnimationEnd))}this.querySelectorAll(".menu-drawer__animated-element").forEach(element=>{element.addEventListener("animationend",removeWillChangeOnAnimationEnd)})}}customElements.get("header-drawer")||customElements.define("header-drawer",HeaderDrawer);function reset(element){element.classList.remove("tw-submenu-open"),element.classList.remove("tw-menu-open"),element.classList.remove("menu-open"),element.querySelector("summary")?.setAttribute("aria-expanded","fal
1se")} 2//# sourceMappingURL=/cdn/shop/t/9/assets/header-drawer.js.map?v=52159532854492775051778599498
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.