PageSourceSearch

https://nomz.com/cdn/shop/t/286/assets/details-modal.js?v=1724949165185811821765976813

js nomz.com collected 2026-09-26 07:37:54 UTC 4,400 bytes, 14 lines download raw bytes

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.