1(()=>{if(customElements.get("condtrol-header"))return;class CondtrolHeader extends HTMLElement{connectedCallback(){if(this.connected)return;this.connected=!0,this.events=new AbortController,this.query=this.querySelector("[data-ch-query]"),this.results=this.querySelector("[data-ch-results]"),this.status=this.querySelector("[data-ch-status]"),this.strings=JSON.parse(this.querySelector("[data-ch-strings]").textContent),this.cache=new Map,this.suppressFocus=!1;const on=(target,type,fn)=>target.addEventListener(type,fn,{signal:this.events.signal});on(this,"click",e=>{const open=e.target.closest("[data-ch-open]"),close=e.target.closest("[data-ch-close]"),quick=e.target.closest("[data-ch-query-value]");if(open){const kind=open.dataset.chOpen;this.dataset.open===kind?this.close():this.open(kind,open)}close&&this.close(),quick&&(this.query.value=quick.dataset.chQueryValue,this.search(),this.query.focus()),e.target.closest(".ch-cart")&&this.close(!1)}),on(this.query,"focus",()=>{this.suppressFocus||this.open("search",this.query)}),on(this.query,"input",()=>{this.open("search",this.query),this.cancelRequest(),this.results.replaceChildren(),this.status.textContent="",this.status.classList.add("ch-sr"),clearTimeout(this.timer),this.updateAll(),this.timer=setTimeout(()=>this.search(),180)}),on(this.query.form,"submit",()=>this.close(!1)),on(document,"pointerdown",e=>{this.dataset.open&&!this.contains(e.target)&&this.close(!1)}),on(document,"keydown",e=>this.keydown(e)),on(window,"scroll",()=>this.shrink()),this.media=matchMedia("(max-width:900px)"),on(this.media,"change",()=>this.close()),on(document,"shopify:block:select",e=>{if(!this.closest(".shopify-section")?.contains(e.target))return;const id=e.detail?.blockId||e.target.closest("[data-ch-block]")?.dataset.chBlock,selector=this.media.matches?".ch-mobile-group":".ch-group",group=Array.from(this.querySelectorAll(selector)).find(el=>el.dataset.chBlock===id);group&&(this.open(this.media.matches?"drawer":"catalog"),this.media.matches&&(group.open=!0),group.scrollIntoView({block:"nearest"}))}),this.wrapper=this.closest(".shopify-section"),this.wrapper?.classList.toggle("ch-is-sticky",this.dataset.sticky==="true"),this.adoptKalles(),this.observer=new ResizeObserver(()=>this.measure()),this.observer.observe(this),this.shrink(),this.measure(),this.updateAll()}disconnectedCallback(){this.close(!1),this.cancelRequest(),clearTimeout(this.timer),this.events?.abort(),this.observer?.disconnect(),this.wrapper?.classList.remove("ch-is-sticky"),this.connected=!1}measure(){const height=Math.round(this.getBoundingClientRect().height);this.style.setProperty("--ch-header-height",height+"px"),this.wrapper?.isConnected&&document.documentElement.style.setProperty("--header-height",height+"px")}adoptKalles(){if(this.wrapper?.classList.add("t4s-section-header"),!document.querySelector("#t4s-hsticky__sentinel")){const sentinel=document.createElement("div");sentinel.id="t4s-hsticky__sentinel",sentinel.setAttribute("aria-hidden","true"),sentinel.style.cssText="position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none;opacity:0",this.wrapper?.prepend(sentinel)}}shrink(){this.classList.toggle("is-scrolled",this.dataset.shrink==="true"&&scrollY>35)}open(kind,trigger){if(kind==="catalog"&&this.media.matches||this.dataset.open===kind)return;const previousTrigger=this.returnFocus;this.close(!1),this.returnFocus=trigger?.isConnected?trigger:previousTrigger,this.dataset.open=kind,this.panel=this.querySelector('[data-ch-panel="'+kind+'"]'),this.panel&&(this.panel.inert=!1,this.panel.classList.add("is-open"),this.querySelectorAll('[data-ch-open="'+kind+'"]').forEach(el=>el.setAttribute("aria-expanded","true")),this.query.setAttribute("aria-expanded",String(kind==="search")),this.querySelectorAll(".ch-nav-dropdown[open]").forEach(el=>el.open=!1),kind==="drawer"&&(this.savedOverflow=document.body.style.overflow,document.body.style.overflow="hidden",this.locked=!0,requestAnimationFrame(()=>this.panel?.querySelector("button")?.focus())),kind==="search"&&(this.media.matches&&(this.savedOverflow=document.body.style.overflow,document.body.style.overflow="hidden",this.locked=!0),this.query.focus(),this.query.value.trim()&&this.search()))}close(restore=!0){this.cancelRequest(),this.querySelectorAll("[data-ch-panel]").forEach(p=>{p.classList.remove("is-open"),p.inert=!0}),this.querySelectorAll("[aria-expanded=true]").forEach(el=>
1el.setAttribute("aria-expanded","false")),delete this.dataset.open,this.panel=null,this.locked&&(document.body.style.overflow=this.savedOverflow,this.locked=!1),restore&&this.returnFocus?.isConnected&&(this.suppressFocus=!0,this.returnFocus.focus(),requestAnimationFrame(()=>this.suppressFocus=!1))}keydown(e){if(e.key==="Escape"){this.dataset.open?(e.preventDefault(),this.close()):this.querySelectorAll(".ch-nav-dropdown[open]").forEach(el=>el.open=!1);return}if(!this.panel)return;if(e.key==="ArrowDown"&&e.target===this.query){const first2=this.results.querySelector("a");first2&&(e.preventDefault(),first2.focus())}if(e.key!=="Tab"||!(this.dataset.open==="drawer"||this.media.matches))return;const nodes=(this.dataset.open==="search"?[this.query.form,this.panel]:[this.panel]).flatMap(area=>Array.from(area.querySelectorAll('a[href],button,input,summary,[tabindex="0"]'))).filter(el=>el.getClientRects().length&&!el.disabled&&!el.closest("[inert]")),first=nodes[0],last=nodes[nodes.length-1];e.shiftKey&&document.activeElement===first&&(e.preventDefault(),last.focus()),!e.shiftKey&&document.activeElement===last&&(e.preventDefault(),first.focus())}updateAll(){const link=this.querySelector("[data-ch-view-all]"),url=new URL(this.query.form.action,location.origin);url.searchParams.set("q",this.query.value.trim()),url.searchParams.set("type","product"),url.searchParams.set("options[prefix]","last"),link.href=url.href}cancelRequest(){this.request?.abort(),this.request=null,this.sequence=(this.sequence||0)+1}async search(){this.cancelRequest();const sequence=this.sequence,term=this.query.value.trim();if(this.updateAll(),!term){this.results.replaceChildren(),this.status.textContent="",this.querySelector('[data-ch-panel="search"]').removeAttribute("aria-busy");return}const panel=this.querySelector('[data-ch-panel="search"]');if(this.cache.has(term)){this.renderResults(this.cache.get(term)),panel.removeAttribute("aria-busy");return}this.status.textContent=this.strings.loading,panel.setAttribute("aria-busy","true");const request=new AbortController;this.request=request;try{const url=new URL(this.dataset.predictiveUrl,location.origin);url.searchParams.set("q",term),url.searchParams.set("resources[type]","product"),url.searchParams.set("resources[limit]","5"),url.searchParams.set("resources[options][unavailable_products]",this.query.form.elements["options[unavailable_products]"].value),url.searchParams.set("resources[options][fields]","title,product_type,variants.title"),url.searchParams.set("section_id",this.dataset.searchSection);const response=await fetch(url,{signal:request.signal,headers:{Accept:"text/html"},credentials:"same-origin"});if(!response.ok)throw new Error("Search unavailable");const html=await response.text();if(sequence!==this.sequence||this.dataset.open!=="search")return;const content=new DOMParser().parseFromString(html,"text/html").querySelector("[data-ch-result-count]");if(!content)throw new Error("Missing search section");const markup=content.outerHTML;this.cache.size>=12&&this.cache.delete(this.cache.keys().next().value),this.cache.set(term,markup),this.renderResults(markup)}catch(error){error.name!=="AbortError"&&sequence===this.sequence&&(this.results.replaceChildren(),this.status.classList.remove("ch-sr"),this.status.textContent=this.strings.failed)}finally{sequence===this.sequence&&panel.removeAttribute("aria-busy")}}renderResults(markup){this.results.innerHTML=markup,this.status.classList.add("ch-sr");const count=this.results.querySelector("[data-ch-result-count]")?.dataset.chResultCount||"0";this.status.textContent=count+" "+this.query.value.trim()}}customElements.define("condtrol-header",CondtrolHeader)})(); 2//# sourceMappingURL=/cdn/shop/t/27/assets/condtrol-header.js.map?v=13857711684080228831790949473
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.