1class DetailsModal extends HTMLElement{constructor(){super(),this.detailsContainer=this.querySelector("details"),this.summaryToggle=this.querySelector("summary"),this.detailsContainer.addEventListener("keyup",event=>event.code.toUpperCase()==="ESCAPE"&&this.close()),this.summaryToggle.addEventListener("click",this.onSummaryClick.bind(this)),this.querySelector('button[type="button"]').addEventListener("click",this.close.bind(this)),this.summaryToggle.setAttribute("role","button"),this.summaryToggle.setAttribute("aria-expanded","false"),this.menuDrawer=document.querySelector('[aria-controls="menu-drawer"]')}reqSearch(event){const resultWrapper=document.querySelector(".bc-search-result-wrapper");!event.target.value||!event.target.value.trim()||!resultWrapper||(resultWrapper.classList.add("loading"),fetch(`/search/suggest.json?q=${event.target.value}&resources[type]=product&resources[tag]=tops&resources[options][fields]=title,product_type,variants.title`).then(response=>response.json()).then(suggestions=>this.renderSearch(suggestions,event.target.value)).catch(error=>console.error(error)).finally(()=>{resultWrapper.classList.remove("loading")}))}renderSearch(data,val){let htmlContent=document.querySelector(".bc-search-result-wrapper"),htmlInnerContent=document.querySelector(".bc-search-result-inner-wrapper");if(!data.resources.results.products.length){htmlContent.classList.add("no-result"),htmlContent.classList.remove("have-result");return}htmlContent.classList.add("have-result"),htmlContent.classList.remove("no-result");let result_count=data.resources.results.products.length,hide_tags="";this.querySelector(".search-modal__form").hasAttribute("aria-hide-tags")&&(hide_tags=this.querySelector(".search-modal__form").getAttribute("aria-hide-tags").split("|")),console.log(data.resources.results.products);let htmlItem="";if(data.resources.results.products.forEach(product=>{debugger;for(i=0;i<hide_tags.length;i++)if(product.tags.includes(hide_tags[i])){console.log("skip"),result_count--;return}htmlItem+='<div class="bc-cart__item">',htmlItem+=`<div class="bc-cart__image-wrapper"> 2 <a href="${product.url}"> 3 <img class="bc-cart__image-img" src="${product.featured_image.url||"//cdn.shopify.com/shopifycloud/shopify/assets/no-image-100-c91dd4bdb56513f2cbf4fc15436ca35e9d4ecd014546c8d421b1aece861dfecf_55x70.gif"}" alt="${product.featured_image.alt|"Product Image"}" width="155"/> 4 </a> 5 </div>`,htmlItem+=`<div class="bc-cart__info-wrapper"> 6 <a href="${product.url}"> 7 <h3 class="bc-cart__title">${product.title}</h3> 8 <div class="bc-cart__price-and-properties"> 9 <div class="bc-cart__price-wrapper"> 10 <span class="bc-cart__price">${Shopify.formatMoney(product.price)}</span> 11 </div> 12 </div> 13 </a>`,htmlItem+="</div></div>"}),!result_count){htmlContent.classList.add("no-result"),htmlContent.classList.remove("have-result");return}let htmlItem1=`<div class="bc-cart__result-count">${result_count} RESULTS</div>`;htmlInnerContent.innerHTML=htmlItem1+htmlItem}isOpen(){return this.detailsContainer.hasAttribute("open")}onSummaryClick(event){event.preventDefault(),event.target.closest("details").hasAttribute("open")?this.close():this.open(event)}onBodyClick(event){(!this.contains(event.target)||event.target.classList.contains("modal-overlay"))&&this.close(!1)}open(event){this.menuDrawer&&this.menuDrawer.getAttribute("aria-expanded")==="true"&&this.menuDrawer.click(),this.onBodyClickEvent=this.onBodyClickEvent||this.onBodyClick.bind(this),event.target.closest("details").setAttribute("open",!0),document.body.addEventListener("click",this.onBodyClickEvent),document.body.classList.add("overflow-hidden"),trapFocus(this.detailsContainer.querySelector('[tabindex="-1"]'),this.detailsContainer.querySelector('input:not([type="hidden"])'))}close(focusToggle=!0){removeTrapFocus(focusToggle?this.summaryToggle:null),this.detailsContainer.removeAttribute("open"),document.body.removeEventListener("click",this.onBodyClickEvent),document.body.classList.remove("overflow-hidden")}}customElements.define("details-modal",DetailsModal); 14//# sourceMappingURL=/cdn/shop/t/286/assets/details-modal.js.map?v=1724949165185811821765976813
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.