1if(!customElements.get("predictive-search")){let debounce2=function(fn,wait){let t;return(...args)=>{clearTimeout(t),t=setTimeout(()=>fn.apply(this,args),wait)}};var debounce=debounce2;customElements.define("predictive-search",class extends window.BAO.CustomElement{constructor(){super(),this.sectionId=this.dataset.sectionId,this.isOpen=!1,this.activeQuery="",this.onInput=debounce2(this.onInput.bind(this),250),this.onFocus=this.onFocus.bind(this),this.onKeydown=this.onKeydown.bind(this),this.onDocumentClick=this.onDocumentClick.bind(this),this.onPanelClick=this.onPanelClick.bind(this),this.close=this.close.bind(this)}connectedCallback(){document.body.appendChild(this.els.panel.element),super.connectedCallback()}setupListeners(){super.setupListeners(),this.listeners.add(this.els.input.element,"input",this.onInput),this.listeners.add(this.els.input.element,"focus",this.onFocus),this.listeners.add(this,"keydown",this.onKeydown),this.listeners.add(this.els.panel.element,"click",this.onPanelClick),this.listeners.add(document,"click",this.onDocumentClick)}onInput(event){const query=event.target.value.trim();if(query.length<2){this.activeQuery="",this.showPopularSearches()||this.close();return}query!==this.activeQuery&&this.fetchResults(query)}onFocus(event){event.target.value.trim().length<2&&this.showPopularSearches()}onKeydown(event){if(event.code==="Escape"){event.preventDefault(),this.close(),this.els.input.element.focus();return}if(!this.isOpen)return;const results=this.els.resultLink?.elements||[];if(results.length===0||event.code!=="ArrowDown"&&event.code!=="ArrowUp")return;event.preventDefault();const currentIndex=results.indexOf(document.activeElement);let nextIndex=event.code==="ArrowDown"?currentIndex+1:currentIndex-1;nextIndex>=results.length&&(nextIndex=0),nextIndex<0&&(nextIndex=results.length-1),results[nextIndex].focus()}onDocumentClick(event){this.contains(event.target)||this.els.panel.element.contains(event.target)||this.close()}onPanelClick(event){event.target.closest('[data-predictive-search-el="closeButton"]')&&this.close()}fetchResults(query){this.activeQuery=query;const url=new URL(window.routes.predictive_search_url,window.location.origin);url.searchParams.set("q",query),url.searchParams.set("section_id",this.sectionId),url.searchParams.set("resources[type]","product,collection,page,query"),url.searchParams.set("resources[limit]","8"),url.searchParams.set("resources[limit_scope]","each"),url.searchParams.set("resources[options][unavailable_products]","last"),fetch(url.toString()).then(response=>response.text()).then(html=>{if(query!==this.activeQuery)return;const newResults=new DOMParser().parseFromString(html,"text/html").querySelector(".ips-Results");newResults&&(this.els.results.element.innerHTML=newResults.innerHTML,this.els.results.element.className=newResults.className,this.syncResultLinks(this.els.results.element),this.showResults(),this.open())}).catch(()=>{this.close()})}showPopularSearches(){return this.els.popularSearches?(this.els.results.element.hidden=!0,this.els.popularSearches.element.hidden=!1,this.syncResultLinks(this.els.popularSearches.element),this.open(),!0):!1}showResults(){this.els.popularSearches&&(this.els.popularSearches.element.hidden=!0),this.els.results.element.hidden=!1}syncResultLinks(container){const resultLinks=Array.from(container.querySelectorAll('[data-predictive-search-el="resultLink"]'));this.els.resultLink={exists:resultLinks.length>0,elements:resultLinks,element:resultLinks[0]}}open(){this.isOpen||(this.isOpen=!0,this.classList.add("is-open"),document.body.classList.add("is-PredictiveSearchOpen","overflow-hidden"),this.els.panel.element.hidden=!1,this.els.input.element.setAttribute("aria-expanded","true"))}close(){this.isOpen&&(this.isOpen=!1,this.classList.remove("is-open"),document.body.classList.remove("is-PredictiveSearchOpen","overflow-hidden"),this.els.panel.element.hidden=!0,this.els.input.element.setAttribute("aria-expanded","false"))}})} 2//# sourceMappingURL=/cdn/shop/t/303/assets/predictive-search.js.map?v=68879106447649013491790680713
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.