1(function(){var __sections__={};(function(){for(var i=0,s=document.getElementById("sections-script").getAttribute("data-sections").split(",");i<s.length;i++)__sections__[s[i]]=!0})(),(function(){if(__sections__["main-advanced-search"])try{let addDocumentationLegend2=function(){const firstPage=document.querySelector(".snize-page");if(!firstPage)return;const parentUL=firstPage.closest("ul");if(!parentUL||parentUL.previousElementSibling?.classList.contains("technical-documentation-wrap"))return;parentUL.insertAdjacentHTML("beforebegin",` 2 <div class="technical-documentation-wrap"> 3 <div class="doc-label"><span class="doc-badge badge-1"> P </span> Protocol</div> 4 <div class="doc-label"><span class="doc-badge badge-2"> O </span> Other</div> 5 <div class="doc-label"><span class="doc-badge badge-3"> C </span> Certificate of Analysis</div> 6 <div class="doc-label"><span class="doc-badge badge-4"> S </span> Safety Data Sheet</div> 7 </div> 8 `)};var addDocumentationLegend=addDocumentationLegend2;const container=document.getElementById("snize_results");container&&new MutationObserver(()=>{addDocumentationLegend2()}).observe(container,{childList:!0,subtree:!0});const interval=setInterval(()=>{document.querySelectorAll(".snize-page").length&&(clearInterval(interval),addDocumentationLegend2())},500);document.addEventListener("Searchanise.Loaded",function(){const $=window.Searchanise.$,myShopify=window.myShopify;function handleProductVariants(productElement){const productData=$(productElement).data("snize_item_data");if(productData&&productData.shopify_variants&&productData.shopify_variants.length>1&&$(productElement).find(".variant-table-container").length===0){let variantsTbody="";
8productData.shopify_variants.forEach(function(variant){const price=parseFloat(variant.price).toFixed(2).replace(/\B(?=(\d{3})+(?!\d))/g,",");variantsTbody+=` 9 <tr> 10 <td>${variant.sku}</td> 11 <td>${variant.options.Size||""}</td> 12 <td>$ ${price}</td> 13 <td></td> 14 </tr> 15 `});const variantsTable=` 16 <div class="variant-table-container"> 17 <table class="pricing-table"> 18 <thead> 19 <tr> 20 <th>Catalog ID</th> 21 <th>Size</th> 22 <th>Retail Pricing</th> 23 <th></th> 24 </tr> 25 </thead> 26 <tbody> 27 ${variantsTbody} 28 </tbody> 29 </table> 30 </div> 31 `,descriptionElement=$(productElement).find(".snize-description");descriptionElement.length>0?descriptionElement.after(variantsTable):$(productElement).append(variantsTable)}}function applyMetafieldsToPage(pageElement,articleType){if(articleType&&articleType.value){let iconHtml='<div class="technical-document-icon">';articleType.value==="Protocol"?iconHtml+='<div class="doc-label"><span class="doc-badge badge-1"> P </span></div>':articleType.value==="Certificate of Analysis"?iconHtml+='<div class="doc-label"><span class="doc-badge badge-3"> C </span></div>':articleType.value==="Other"?iconHtml+='<div class="doc-label"><span class="doc-badge badge-2"> O </span></div>':articleType.value==="Safety Data Sheet"&&(iconHtml+='<div class="doc-label"><span class="doc-badge badge-4"> S </span></div>'),iconHtml+="</div>";const snizeTitle=$(pageElement).find(".snize-title");if(!snizeTitle.parent().hasClass("snize-title-container")){const titleContainer=$('<div class="snize-title-container"></div>');titleContainer.append(iconHtml),titleContainer.append(snizeTitle.clone()),snizeTitle.replaceWith(titleContainer)}}}let pageMetafieldResults={},pages=[],metafieldsPromise=Promise.resolve();function processResults(container2){$(".snize-product",container2).each(function(){handleProductVariants(this)}),metafieldsPromise.then(function(){$(".snize-page",container2).each(function(i){if(pages[i]){const articleId=`gid://shopify/Article/${pages[i].page_id}`,articleType=pageMetafieldResults[articleId];articleType&&applyMetafieldsToPage(this,articleType)}})})}$(document).on("Searchanise.DataRequestEnd",function(event,type,params,data){if(pages=[],pageMetafieldResults={},data.pages&&data.pages.length>0){pages=data.pages;const storefrontAccessToken=myShopify.storefront_access_token,storefrontApiVersion=mySh
31opify.storefront_api_version,apiEndpoint=`https://${myShopify.permanent_domain}/api/${storefrontApiVersion}/graphql.json`,promises=pages.map(page=>{const articleId=`gid://shopify/Article/${page.page_id}`;return fetch(apiEndpoint,{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":storefrontAccessToken},body:JSON.stringify({query:` 32 query getArticleTechnicalDocMetaobject($id: ID!) { 33 node(id: $id) { 34 ... on Article { 35 type: metafield(namespace: "custom", key: "type") { 36 type 37 value 38 } 39 } 40 } 41 } 42 `,variables:{id:articleId}})}).then(response=>response.json()).then(result=>{result.data&&result.data.node&&result.data.node.type&&(pageMetafieldResults[articleId]=result.data.node.type)})});metafieldsPromise=Promise.all(promises).catch(error=>{console.error("Error fetching metafields:",error)})}else metafieldsPromise=Promise.resolve()}),$(document).on("Searchanise.ResultsUpdated",function(event,container2){var activeTab=$(container2).find(".snize-main-panel-controls .snize-tab.active"),activeTabId=activeTab.attr("data-tab");addDocumentationLegend2(),processResults(container2)}),$(".snize-search-results").length>0&&processResults(document)})}catch(e){console.error(e)}})(),(function(){if(!(!__sections__["section-blog-posts-by-tag"]&&!Shopify.designMode))try{document.addEventListener("DOMContentLoaded",()=>{document.querySelectorAll(".blog-post-by-tag").forEach(sectionElement=>{const container=sectionElement.querySelector(".blog-post-container");if(!container)return;const listElement=container.querySelector(".blog-post-list"),loader=container.querySelector(".blog-posts__loader"),emptyMessage=container.querySelector(".blog-posts__empty"),errorMessage=container.querySelector(".blog-posts__error");if(!listElement||!loader||!emptyMessage||!errorMessage)return;const tags=JSON.parse(container.dataset.tags||"[]");if(!tags||tags.length===0){container.style.display="none";return}const blogHandle=container.dataset.blogHandle;if(!blogHandle){console.warn('Blog handle is not configured for "Blog post by tag" section.');return}const numberOfItems=parseInt(container.dataset.numberOfItems,10),tagQuery=tags.map(tag=>`tag:'${tag.trim()}'`).join(" OR "),storefrontAccessToken=container.dataset.storefrontAccessToken;if(!storefrontAccessToken){console.error("Storefront API access token is not set. Please configure it in the theme settings.");return}const apiEndpoint=`/api/${container.dataset.apiVersion}/graphql.json`,query=` 43 query getArticlesByTag($handle: String!, $query: String!, $first: Int!) { 44 blog(handle: $handle) { 45 articles(first: $first, query: $query) { 46 edges { 47 node { 48 title 49 onlineStoreUrl 50 publishedAt 51 excerpt(truncateAt: 150) 52 authorV2 { name } 53 image { 54 url(transform: {maxWidth: 800}) 55 altText 56 } 57 } 58 } 59 } 60 } 61 }`,variables={handle:blogHandle,query:tagQuery,first:numberOfItems};container.style.display="block",loader.style.display="block",fetch(apiEndpoint,{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":storefrontAccessToken},body:JSON.stringify({query,variables})}).then(response=>response.json()).then(data=>{if(loader.style.display="none",data.errors)throw new Error(data.errors.map(e=>e.message).join("\\n"));const articles=data.data.blog.articles.edges;if(articles.length>0){const articleItems=articles.map((edge,index)=>renderArticleItem(edge.node,index)).join("");listElement.insertAdjacentHTML("beforeend",articleItems)}else emptyMessage.style.display="block"}).catch(error=>{loader.style.display="none",errorMessage.style.display="block",console.error("Error fetching blog posts by tag:",error)});function renderArticleItem(article,index){const clone=document.getElementById("blog-article-item-template").content.cloneNode(!0),showImage=container.dataset.showImage==="true",showDate=container.dataset.showDate==="true",showAuthor=container.dataset.showAuthor==="true",showExcerpt=container.dataset.showExcerpt==="true",showButton=container.dataset.showButton==="true",lazyload=index>0,titleLink=clone.querySelector(".article-item__title a");if(titleLink.href=article.onlineStoreUrl,titleLink.textContent=article.title,showImage&&article.image){const imageLink=clone.querySelector(".article-item__image a"),image=clone.querySelector(".article-item__image img");imageLink.href=article.onlineStoreUrl,image.src=article.image.url,image.alt=article.image.altText||article.title,lazyload&&image.setAttribute("loading","lazy")}else clone.querySelector(".article-item__image").remove();if(showDate){const dateEl=clone.querySelector(".article-item__date");dateEl.setAttribute("datetime",article.publishedAt),dateEl.textContent=new Date(article.publishedAt).toLocaleDateString()}else clone.querySelector(".article-item__date").remove();showAuthor&&article.authorV2?clone.querySelector(".article-item__author").textContent=`by ${article.authorV2.name}`:clone.querySelector(".article-item__author").remove(),showExcerpt&&article.excerpt?clone.querySelector(".article-item__excerpt").textContent=article.excerpt:clone.querySelector(".article-item__excerpt").remove(),showButton?clone.querySelector(".button").href=article.onlineStoreUrl:clone.querySelector(".button").remove();const li=document.createElement("li");return li.appendChild(clone),li.innerHTML}})})}catch(e){console.error(e)}})()})(); 62//# sourceMappingURL=/cdn/shop/t/4/compiled_assets/scripts.js.map?v=169483252016059437981772126104
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.