1class SearchModal extends HTMLElement{constructor(){super();let _this=this;this.openSearchModal=document.querySelectorAll(".open-searchform"),this.searchFormContainer=this.querySelector(".searchform"),this.searchQuery=this.querySelector('form[action="/search"] [name="q"]'),this.searchPageQuery=document.querySelector("#Search"),this.searchFormContainer.addEventListener("keyup",event=>{event.code.toUpperCase()==="ESCAPE"&&this.close()}),this.openSearchModal.forEach(toggleBtn=>{toggleBtn.addEventListener("click",function(event){_this.onToggleBtnClick(event)}),toggleBtn.setAttribute("role","button"),toggleBtn.setAttribute("aria-expanded","false")}),this.querySelector(".search-modal__close-button").addEventListener("click",this.close.bind(this)),this.typingTimer,this.searchPageQuery&&this.searchPageQuery.addEventListener("input",this.tiktokEvent.bind(this)),this.searchPageQuery&&(this.searchQuery.addEventListener("input",this.queryInput.bind(this)),this.searchQuery.addEventListener("keydown",()=>{clearTimeout(this.typingTimer)}))}isOpen(){return this.searchFormContainer.hasAttribute("open")}onToggleBtnClick(event){event.preventDefault(),event.stopPropagation(),this.searchFormContainer.hasAttribute("open")?this.close():this.open(event)}onBodyClick(event){this.contains(event.target)||this.close(!1)}queryInput(event){let _this=this,queryValue=event.currentTarget.value.trim();clearTimeout(_this.typingTimer),_this.typingTimer=setTimeout(function(){_this._queryChange(queryValue)},1e3),this.tiktokEvent(queryValue)}_queryChange(queryValue){queryValue.length<=0||queryValue==null||fetch(`${routes.predictive_search}?q=${queryValue}&resources[type]=product&resources[options][unavailable_products]=last`).then(response=>response.json()).then(response=>{const searchResults=response.resources.results}).catch(e=>{console.error(e)}).finally(()=>{})}open(event){this.onBodyClickEvent=this.onBodyClickEvent||this.onBodyClick.bind(this),this.searchFormContainer.setAttribute("open",!0),this.classList.add("open__modal"),document.body.style.overflowY="hidden",document.body.addEventListener("touchmove",bodyTouchMove,!1),this.removeAttribute("style"),document.body.addEventListener("click",this.onBodyClickEvent),Utility.trapFocus(this),Utility.forceFocus(document.getElementById("Search-In-Modal"))}close(focusToggle=!0){Utility.removeTrapFocus(),this.searchFormContainer.removeAttribute("open"),this.classList.remove("open__modal"),document.body.style.overflowY="auto",document.body.addEventListener("touchmove",bodyTouchMove,!0),document.body.removeEventListener("click",this.onBodyClickEvent)}tiktokEvent(query){if(window.globalVariables.template=="search"){var event_id="Search"+query.data;ttq.track("Search",{contents:[{content_id:"9644203976",query:query.data}],event_id,content_type:"product_group"})}else event_id="Search"+query,ttq.track("Search",{contents:[{content_id:"9644203976",query}],event_id,content_type:"product_group"});tiktok._tiktokS2SEvent("Search","","","",window.location.href,"","",event_id)}}customElements.define("search-modal",SearchModal); 2//# sourceMappingURL=/cdn/shop/t/484/assets/component-search.js.map?v=182765327078372184951776150158
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.