const MainSearch=class extends HTMLElement{constructor(){super(),this.querySelectorAll(".main-search__close").forEach(el=>{el.addEventListener("click",evt=>{evt.preventDefault(),document.body.classList.remove("show-search")})}),this.querySelector(".main-search__input").addEventListener("keyup",evt=>{evt.key==="Escape"&&this.querySelector(".main-search__close").dispatchEvent(new Event("click"))}),this.dataset.quickSearch==="true"&&this.initQuickSearch()}initQuickSearch(){const searchInput=this.querySelector(".main-search__input"),searchTimeoutThrottle=500,resultLimit=8,includeMeta=this.dataset.quickSearchMeta==="true";let searchTimeoutID=-1,searchAbortController=null;const handleInputChange=()=>{const resultsBox=this.querySelector(".main-search__results"),valueToSearch=searchInput.value;if(valueToSearch.length&&valueToSearch!==this.oldSearchValue){this.oldSearchValue=valueToSearch,searchAbortController!==null&&(searchAbortController.abort("Existing request not needed"),searchAbortController=null),clearTimeout(searchTimeoutID);const form=searchInput.closest("form"),linkURL=new URL(form.action);new URLSearchParams(new FormData(form)).forEach((value,key)=>{linkURL.searchParams.set(key,value)}),this.classList.remove("main-search--has-results","main-search--results-on-multiple-lines","main-search--no-results"),this.classList.add("main-search--loading"),this.querySelector(".main-search__results-spinner")||(resultsBox.innerHTML='
'),searchTimeoutID=setTimeout(()=>{searchAbortController=new AbortController;let ajaxUrl;theme.Shopify.features.predictiveSearch?(ajaxUrl=new URL(theme.routes.base+theme.routes.predictiveSearch),ajaxUrl.searchParams.set("q",valueToSearch),ajaxUrl.searchParams.set("section_id","predictive-search"),ajaxUrl.searchParams.set("resources[limit]",resultLimit),ajaxUrl.searchParams.set("resources[options][fields]",includeMeta?"title,product_type,variants.title,vendor,tag,variants.sku":"title,product_type,variants.title,vendor")):(ajaxUrl=new URL(linkURL),ajaxUrl.searchParams.set("section_id","main-search")),fetch(ajaxUrl,{method:"get",signal:searchAbortController.signal}).then(response=>{if(!response.ok)throw new Error(`HTTP error! Status: ${response.status}`);return response.text()}).then(response=>{const template=document.createElement("template");template.innerHTML=response;let resultsList=null;theme.Shopify.features.predictiveSearch?resultsList=template.content.querySelector(".product-grid"):resultsList=template.content.querySelector(".section-search-template .product-grid"),searchAbortController=null,this.classList.remove("main-search--has-results","main-search--results-on-multiple-lines","main-search--no-results"),resultsBox.innerHTML="";const resultsProducts=document.createElement("div");resultsProducts.className="main-search__results__products collection-listing",resultsProducts.innerHTML="
";const resultsPages=document.createElement("div");resultsPages.className="main-search__results__pages",resultsProducts.firstElementChild.className=resultsList.className,resultsList.querySelectorAll(".product-block:not(.collection-block):not(.page-block)").forEach((block,index)=>{index<=resultLimit&&(block.classList.add("main-search-result"),block.querySelectorAll(".btn.quickbuy-toggle").forEach(el=>el.remove()),block.querySelectorAll(".quickbuy-toggle").forEach(el=>el.classList.remove("quickbuy-toggle")),resultsProducts.firstElementChild.appendChild(block))}),resultsList.querySelectorAll(".product-block.page-block").forEach(block=>{const item=document.createElement("a");item.className="main-search-result main-search-result--page",item.href=block.querySelector("a").href,item.innerHTML='
',item.firstElementChild.innerText=block.querySelector(".page-block__title").innerText,resultsPages.appendChild(item)}),this.classList.remove("main-search--loading");const areProducts=!!resultsProducts.querySelector(".main-search-result"),arePages=!!resultsPages.querySelector(".main-search-result");if(areProducts||arePages){if(this.classList.add("main-search--has-results"),this.classList.toggle("main-search--results-on-multiple-lines",resultsProducts.querySelectorAll(".product-block").length>4),areProducts&&resultsBox.appendChild(resultsProducts),arePages){const heading=document.createElement("h6");heading.className="main-search-result__heading",heading.innerHTML=theme.strings.generalSearchPages,resultsPages.insertAdjacentElement("afterbegin",heading),resultsBox.appendChild(resultsPages)}const allLink=document.createElement("a");allLink.className="main-search__results-all-link btn btn--secondary",allLink.href=linkURL,allLink.innerHTML=theme.strings.generalSearchViewAll,resultsBox.appendChild(allLink)}else{this.classList.add("main-search--no-results");const emptyMessage=document.createElement("div");emptyMessage.className="main-search__empty-message",emptyMessage.innerHTML=theme.strings.generalSearchNoResultsWithoutTerms,resultsBox.appendChild(emptyMessage)}}).catch(error=>{console.warn(error)})},searchTimeoutThrottle)}else valueToSearch.length||(this.oldSearchValue=valueToSearch,searchAbortController!==null&&(searchAbortController.abort("Existing request not needed"),searchAbortController=null),clearTimeout(searchTimeoutID),this.classList.remove("main-search--has-results","main-search--results-on-multiple-lines","main-search--loading"),resultsBox.innerHTML="")};searchInput.addEventListener("keyup",handleInputChange.bind(this)),searchInput.addEventListener("change",handleInputChange.bind(this))}};window.customElements.define("main-search",MainSearch); //# sourceMappingURL=/cdn/shop/t/9/assets/main-search.js.map?v=76809749390081725741734592027