1import{Component}from"@theme/component";import{getScrollTop,getScrollEventTarget,scrollContainerMediaQuery}from"@theme/scroll-container";const OPEN_DELAY=60,CLOSE_DELAY=160,SECTION_DELAY=80,HIDE_TRAVEL=12,REVEAL_TRAVEL=48;export class DtHeader extends Component{#openTimer;#closeTimer;#sectionTimer;#activePanel=null;#scrollTarget=null;#scrollRaf=null;#lastScrollTop=0;#travel=0;#barHeight=0;#barResize=new ResizeObserver(([entry])=>{entry&&(this.#barHeight=entry.borderBoxSize?.[0]?.blockSize??entry.contentRect.height)});#announcementHeight=0;#announcementResize=new ResizeObserver(([entry])=>{entry&&(this.#announcementHeight=entry.borderBoxSize?.[0]?.blockSize??entry.contentRect.height,document.documentElement.style.setProperty("--dt-announcement-height",`${Math.round(this.#announcementHeight)}px`))});connectedCallback(){super.connectedCallback(),this.dataset.sticky==="true"&&this.#startAnnouncementOffset(),this.dataset.stickyHide==="true"&&this.#startSticky(),this.#triggers.forEach(trigger=>{trigger.addEventListener("pointerenter",this.#onTriggerEnter),trigger.addEventListener("focus",this.#onTriggerFocus),trigger.addEventListener("click",this.#onTriggerClick)}),this.addEventListener("pointerleave",this.#scheduleClose),this.addEventListener("pointerenter",this.#cancelClose),this.addEventListener("focusout",this.#onFocusOut),this.addEventListener("keydown",this.#onKeydown),this.#sectionTriggers.forEach(button=>{button.addEventListener("click",this.#onSectionTriggerClick),button.addEventListener("pointerenter",this.#onSectionTriggerEnter),button.addEventListener("pointerleave",this.#cancelSectionSwap)}),this.#searchField?.addEventListener("input",this.#onSearchInput)}disconnectedCallback(){super.disconnectedCallback?.(),clearTimeout(this.#openTimer),clearTimeout(this.#closeTimer),clearTimeout(this.#sectionTimer),this.#announcementResize.disconnect(),this.#stopSticky()}#startAnnouncementOffset(){const bar=document.querySelector(".dt-announcement");bar&&this.#announcementResize.observe(bar)}#startSticky(){this.#barResize.observe(this),this.#lastScrollTop=Math.max(0,getScrollTop()),this.#bindScroll(),this.addEventListener("focusin",this.#reveal),scrollContainerMediaQuery.addEventListener("change",this.#rebindScroll),window.Shopify?.designMode&&(document.addEventListener("shopify:section:select",this.#reveal),document.addEventListener("shopify:block:select",this.#reveal))}#stopSticky(){this.#barResize.disconnect(),this.#unbindScroll(),this.removeEventListener("focusin",this.#reveal),scrollContainerMediaQuery.removeEventListener("change",this.#rebindScroll),document.removeEventListener("shopify:section:select",this.#reveal),document.removeEventListener("shopify:block:select",this.#reveal),this.#scrollRaf!==null&&cancelAnimationFrame(this.#scrollRaf),this.#scrollRaf=null}#bindScroll(){this.#scrollTarget=getScrollEventTarget(),this.#scrollTarget.addEventListener("scroll",this.#onScroll,{passive:!0})}#unbindScroll(){this.#scrollTarget?.removeEventListener("scroll",this.#onScroll),this.#scrollTarget=null}#rebindScroll=()=>{this.#unbindScroll(),this.#bindScroll(),this.#lastScrollTop=Math.max(0,getScrollTop()),this.#travel=0,this.#reveal()};#onScroll=()=>{this.#scrollRaf===null&&(this.#scrollRaf=requestAnimationFrame(()=>{this.#scrollRaf=null,this.#updateSticky()}))};#updateSticky(){const top=Math.max(0,getScrollTop()),delta=top-this.#lastScrollTop;if(this.#lastScrollTop=top,top<=this.#barHeight||this.#heldOpen){this.#travel=0,this.#reveal();return}delta!==0&&(delta>0!=this.#travel>0&&(this.#travel=0),this.#travel+=delta,this.#travel>=HIDE_TRAVEL?this.#hide():this.#travel<=-REVEAL_TRAVEL&&this.#reveal())}get#heldOpen(){if(this.dataset.searchOpen==="true"||this.querySelector('[data-panel-trigger][aria-expanded="true"]'))return!0;const drawer=document.getElementById("dt-drawer");return drawer instanceof HTMLElement&&!drawer.hidden?!0:this.contains(document.activeElement)}#hide(){this.dataset.stickyHidden!=="true"&&(this.getBoundingClientRect().top>this.#announcementHeight+1||(this.dataset.stickyHidden="true"))}#reveal=()=>{delete this.dataset.stickyHidden};get#triggers(){return Array.from(this.querySelectorAll("[data-panel-tr
1igger]"))}get#sectionTriggers(){return Array.from(this.querySelectorAll("[data-dt-section-trigger]"))}#onTriggerEnter=event=>{const trigger=event.currentTarget;trigger instanceof HTMLElement&&(this.#cancelClose(),clearTimeout(this.#openTimer),this.#openTimer=setTimeout(()=>this.#openPanelFor(trigger),OPEN_DELAY))};#onTriggerFocus=event=>{const trigger=event.currentTarget;trigger instanceof HTMLElement&&(this.#cancelClose(),this.#openPanelFor(trigger))};#onTriggerClick=event=>{const trigger=event.currentTarget;!(trigger instanceof HTMLElement)||!window.matchMedia("(hover: none)").matches||(event.preventDefault(),this.#activePanel&&this.#activePanel.id===trigger.dataset.panelTrigger?this.#closePanel():this.#openPanelFor(trigger))};#openPanelFor(trigger){const id=trigger.dataset.panelTrigger;if(!id)return;const panel=this.querySelector(`#${CSS.escape(id)}`);!(panel instanceof HTMLElement)||panel===this.#activePanel||(this.#closePanel(),panel.hidden=!1,trigger.setAttribute("aria-expanded","true"),this.#activePanel=panel)}#closePanel(){if(!this.#activePanel)return;const id=this.#activePanel.id;this.#activePanel.hidden=!0,this.#activePanel=null,this.querySelector(`[data-
1panel-trigger="${id}"]`)?.setAttribute("aria-expanded","false")}#cancelClose=()=>{clearTimeout(this.#closeTimer)};#scheduleClose=()=>{clearTimeout(this.#openTimer),clearTimeout(this.#closeTimer),this.#closeTimer=setTimeout(()=>this.#closePanel(),CLOSE_DELAY)};#onFocusOut=event=>{const next=event.relatedTarget;next instanceof Node&&this.contains(next)||this.#closePanel()};#onKeydown=event=>{if(event.key==="Escape"){if(this.#activePanel)this.#closePanel();else if(this.dataset.searchOpen==="true"){if(this.#searchTerm!==""){this.#searchTerm="",this.#searchField?.setAttribute("aria-expanded","false");return}this.closeSearch()}}};#onSectionTriggerClick=event=>{const button=event.currentTarget;button instanceof HTMLElement&&this.#showSection(button)};#onSectionTriggerEnter=event=>{const button=event.currentTarget;button instanceof HTMLElement&&(window.matchMedia("(hover: none)").matches||(clearTimeout(this.#sectionTimer),this.#sectionTimer=setTimeout(()=>this.#showSection(button),SECTION_DELAY)))};#cancelSectionSwap=()=>{clearTimeout(this.#sectionTimer)};#showSection(button){const targetId=button.dataset.dtSectionTrigger,panel=button.closest("[data-dt-panel]");if(!targetId||!(panel instanceof HTMLElement))return;const background=button.dataset.dtSectionBg;background&&panel.style.setProperty("--dt-panel-bg",background),panel.querySelectorAll("[data-dt-section]").forEach(view=>{view instanceof HTMLElement&&(view.hidden=view.id!==targetId)}),panel.querySelectorAll("[data-dt-section-trigger]").forEach(other=>{other.setAttribute("aria-pressed",String(other===button))})}get#searchField(){const field=this.querySelector("#dt-search-input");return field instanceof HTMLInputElement?field:null}#searchTerm="";#onSearchInput=()=>{const field=this.#searchField;field&&(this.#searchTerm=field.value,field.setAttribute("aria-expanded",this.#searchTerm.trim()===""?"false":"true"))};toggleSearch(){this.dataset.searchOpen==="true"?this.closeSearch():this.openSearch()}openSearch(){const{searchRow}=this.refs;searchRow&&(this.#closePanel(),searchRow.hidden=!1,this.dataset.searchOpen="true",this.querySelector(".dt-header__search-toggle")?.setAttribute("aria-expanded","true"),this.#searchField?.focus())}closeSearch(){const{searchRow}=this.refs;if(!searchRow)return;searchRow.hidden=!0,delete this.dataset.searchOpen;const toggle=this.querySelector(".dt-header__search-toggle");toggle?.setAttribute("aria-expanded","false"),toggle instanceof HTMLElement&&toggle.focus()}toggleDrawer(){const drawer=document.getElementById("dt-drawer");drawer instanceof DtDrawer&&drawer.toggle()}}export class DtDrawer extends Component{#history=[];connectedCallback(){super.connectedCallback(),this.addEventListener("click",this.#onClick),this.addEventListener("keydown",this.#onKeydown)}toggle(){this.hidden?this.open():this.close()}open(){this.hidden=!1,document.body.style.overflow="hidden",this.#showView("root"),this.#history=[],this.#syncBurger(!0);const focusable=this.querySelector("button, a[href]");focusable instanceof HTMLElement&&focusable.focus()}close(){this.hidden=!0,document.body.style.overflow="",this.#syncBurger(!1)}#syncBurger(expanded){document.querySelector(".dt-header__burger")?.setAttribute("aria-expanded",String(expanded))}#showView(name,tabId){this.querySelectorAll("[data-dt-drawer-view]").forEach(view2=>{view2 instanceof HTMLElement&&(view2.hidden=view2.dataset.dtDrawerView!==name)});const view=this.querySelector(`[data-dt-drawer-view="${CSS.escape(name)}"]`);if(!(view instanceof HTMLElement))return;const tab=tabId?view.querySelector(`[data-dt-drawer-tab-trigger="${CSS.escape(tabId)}"]`):view.querySelector("[data-dt-drawer-tab-trigger]");tab instanceof HTMLElement&&this.#selectTab(tab),view.querySelector(".dt-drawer__body")?.scrollTo({top:0})}#selectTab(tab){const view=tab.closest("[data-dt-drawer-view]"),targetId=tab.dataset.dtDrawerTabTrigger;if(!targetId||!(view instanceof HTMLElement))return;const background=tab.dataset.dtSectionBg;background&&view.style.setProperty("--dt-panel-bg",background),view.querySelectorAll("[data-dt-drawer-section]").forEach(sectionView=>{sectionView instanceof HTMLElement&&(sectionView.hidden=sectionView.id!==targetId)}),view.querySelectorAll("[data-dt-drawer-tab-trigger]").forEach(other=>{other.setAttribute("aria-selected",String(other===tab))})}#onClick=event=>{const target=event.target;if(!(target instanceof Element))return;if(target.closest("[data-dt-drawer-close]")){this.close();return}const tab=target.closest("[data-dt-drawer-tab-trigger]");if(tab instanceof HTMLElement){this.#selectTab(tab);return}const opener=target.closest("[data-dt-drawer-open]");if(opener instanceof HTMLElement&&opener.dataset.dtDrawerOpen){const current=this.querySelector("[data-dt-drawer-view]:not([hidden])");current instanceof HTMLElement&¤t.dataset.dtDrawerView&&this.#history.push(current.dataset.dtDrawerView),this.#showView(opener.dataset.dtDrawerOpen,opener.dataset.dtDrawerTab);return}target.closest("[data-dt-drawer-back]")&&this.#showView(this.#history.pop()??"root")};#onKeydown=event=>{event.key==="Escape"&&this.close()}}document.addEventListener("click",event=>{const target=event.target;document.querySelectorAll("[data-dt-localization] details[open]").forEach(detail
1s=>{if(target instanceof Node&&details.contains(target)){target instanceof Element&&target.closest("[data-dt-loc-close]")&&details.removeAttribute("open");return}details.removeAttribute("open")})}),document.addEventListener("keydown",event=>{event.key==="Escape"&&document.querySelectorAll("[data-dt-localization] details[open]").forEach(details=>{details.removeAttribute("open")})}),customElements.get("dt-header-component")||customElements.define("dt-header-component",DtHeader),customElements.get("dt-drawer-component")||customElements.define("dt-drawer-component",DtDrawer); 2//# sourceMappingURL=/cdn/shop/t/451/assets/dt-navigation.js.map?v=143553224368299289171790675777
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.