1class PredictiveSearch{constructor(){this.container=document.querySelector(".thb-quick-search"),this.button=document.getElementById("quick-search"),this.close_button=this.container.querySelector(".thb-search-close"),this.input=this.container.querySelector('input[type="search"]'),this.predictiveSearchResults=this.container.querySelector(".thb-quick-search--results"),this.setupEventListeners()}setupEventListeners(){this.container.querySelector("form.searchform").addEventListener("submit",this.onFormSubmit.bind(this)),this.input.addEventListener("input",debounce(event=>{this.onChange(event)},300).bind(this)),this.button.addEventListener("click",event=>{var _this=this;return event.preventDefault(),document.querySelector(".header-section").classList.toggle("search-open"),document.querySelector(".header-section").classList.contains("search-open")&&(setTimeout(function(){_this.input.focus({preventScroll:!0})},100),dispatchCustomEvent("search:open")),!1}),this.close_button?.addEventListener("click",event=>{this.close(),event.preventDefault()}),document.addEventListener("keyup",event=>{event.key==="Escape"&&this.close()})}categoryToggle(){this.category_toggle=this.container.querySelectorAll(".search-categories a"),this.category_toggle.forEach(link=>{link.addEventListener("click",event=>{[].forEach.call(this.category_toggle,function(el){el.classList.remove("active")}),link.classList.add("active");let target=link.getAttribute("href");this.container.querySelectorAll(".search-results").forEach(section=>{section.classList.remove("active")}),this.container.querySelector(target).classList.add("active"),event.preventDefault()})})}getQuery(){return this.input.value.trim()}onChange(){const searchTerm=this.getQuery();if(!searchTerm.length){this.predictiveSearchResults.classList.remove("active");return}this.getSearchResults(searchTerm)}onFormSubmit(event){this.getQuery().length||event.preventDefault()}onFocus(){const searchTerm=this.getQuery();searchTerm.length&&this.getSearchResults(searchTerm)}getSearchResults(searchTerm){const queryKey=searchTerm.replace(" ","-").toLowerCase();this.predictiveSearchResults.classList.add("loading"),fetch(`${theme.routes.predictive_search_url}?q=${encodeURIComponent(searchTerm)}&${encodeURIComponent("resources[type]")}=product,article,query&${encodeURIComponent("resources[options][fields]")}=variants.sku,title,tag,vendor,product_type&${encodeURIComponent("resources[limit]")}=10§ion_id=predictive-search`).then(response=>{if(this.predictiveSearchResults.classList.remove("loading"),!response.ok){var error=new Error(response.status);throw error}return response.text()}).then(text=>{const resultsMarkup=new DOMParser().parseFromString(text,"text/html").querySelector("#shopify-section-predictive-search").innerHTML;this.renderSearchResults(resultsMarkup)}).catch(error=>{throw error})}renderSearchResults(resultsMarkup){this.predictiveSearchResults.innerHTML=resultsMarkup,this.predictiveSearchResults.classList.add("active"),this.categoryToggle()}open(){document.querySelector(".header-section").classList.add("search-open")}close(){document.querySelector(".header-section").classList.remove("search-open")}}window.addEventListener("load",()=>{typeof PredictiveSearch<"u"&&new PredictiveSearch}); 2//# sourceMappingURL=/cdn/shop/t/128/assets/predictive-search.js.map?v=65963631846865271051779868168
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.