1(function(){if(document.body.matches(".features--bespoke-search")){const delegate=new domDelegate.Delegate(document.body),api_key=document.body.dataset.searchKey,search_endpoint=`https://${document.body.dataset.searchUrl}/cs/v2/search`,limit=20,recent=JSON.parse(localStorage.getItem("recentlyViewedProducts")||"[]"),klevu_id_map=new Map,getSearchUrl=(suffix,handles,query,total,suggestions)=>`${Shopify.routes.root}?section_id=dynamic-${suffix}&cache=false&type=${Date.now()}_${Math.random()}&products=${handles.join(",")}&query=${encodeURIComponent(query)}&total=${total}&suggestions=${suggestions.join("|")}`,getKlevuPayload=(query,limit2,page,recent2,last_result)=>({context:{apiKeys:[api_key]},suggestions:[{id:"suggestions",typeOfQuery:"AUTO_SUGGESTIONS",query,limit:5}],recordQueries:[{id:"search",settings:{query:{term:query},limit:limit2,offset:page*limit2||0,typeOfSearch:last_result?.type||"DEFAULT",fields:["id","url"],typeOfRecords:["KLEVU_PRODUCT"],personalisation:{enablePersonalisation:!0},context:{recentObjects:[{typeOfRecord:"KLEVU_PRODUCT",records:recent2?.map(item=>({id:item}))}]}}}]}),parseKlevuResponse=result=>{const total=parseInt(result?.queryResults[0]?.meta?.totalResultsFound)||0,results=parseInt(result?.queryResults[0]?.meta?.noOfResults)||0,offset=parseInt(result?.queryResults[0]?.meta?.offset)||0;return{handles:result?.queryResults[0]?.records?.map(record=>encodeURIComponent(record?.url?.split("/").slice(-1)[0]))||"",klevu_ids:result?.queryResults[0]?.records?.map(record=>record.id)||"",suggestions:result?.suggestionResults[0]?.suggestions.map(suggestion=>encodeURIComponent(suggestion.suggest))||[],total,page:Math.floor(offset/results),pages:Math.ceil(total/results),type:result?.queryResults[0]?.meta?.typeOfSearch}},getProductData=product=>{const container=product.closest("[data-product-title]");return{title:container?.dataset.productTitle,id:container?.querySelector("[data-product-id]")?.dataset.productId,url:container?.dataset.productLink,handle:container?.dataset.productHandle,imageUrl:container?.dataset.productImage,price:container?.dataset.productPrice,salePrice:container?.dataset.productCompareAtPrice,klevuId:klevu_id_map.get(container?.dataset.productHandle)}},updateKlevuIdMap=(handles,ids)=>handles.forEach((handle,i)=>klevu_id_map.set(handle,ids[i])),recordSearchAnalytics=(query,results,type)=>{const url=new URL("https://stats.ksearchnet.com/analytics/n-search/search");url.searchParams.set("klevu_apiKey",api_key),url.searchParams.set("klevu_term",query),url.searchParams.set("klevu_totalResults",results),url.searchParams.set("klevu_typeOfQuery",type),navigator.sendBeacon(url)},recordProductAnalytics=(query,results,type,product)=>{const product_data=getProductData(product);console.log(JSON.stringify(product_data));const url=new URL("https://stats.ksearchnet.com/analytics/productTracking");url.searchParams.set("klevu_apiKey",api_key),url.searchParams.set("klevu_keywords",query),url.searchParams.set("klevu_type","clicked"),url.searchParams.set("klevu_totalResults",results),url.searchParams.set("klevu_typeOfQuery",type),url.searchParams.set("klevu_productId",product_data.klevuId),url.searchParams.set("klevu_productGroupId",product_data.id),url.searchParams.set("klevu_productVariantId",product_data.id),url.searchParams.set("klevu_productName",product_data.title),url.searchParams.set("klevu_productUrl",product_data.url),navigator.sendBeacon(url),localStorage.setItem("klaviyo_search_event_data",JSON.stringify({query,results,product:product_data,products:[...product.closest(".CustomSearch, .Search__Results").querySelectorAll(".ProductItem")].map(element=>getProductData(element))}))},productClickEvent=(query,total,type,event,target)=>{recordProductAnalytics(query,total,type,target),(event.target.matches(".flickity-prev-next-button")||event.target.closest(".flickity-prev-next-button"))&&event.preventDefault()};try{const{query,results,product,products}=JSON.parse(localStorage.getItem("klaviyo_search_event_data"));if(typeof _learnq>"u")throw"Klaviyo not loaded";localStorage.removeItem("klaviyo_search_event_data");const url=new URL(`https://nlp-services.ksearchnet.com/${api_key}/annotations`);url.searchParams.set("query",query),url.searchParams.set("language",Shopify.locale),url.searchParams.set("title",product.title),setTimeout(async()=>fetch(url).then(response=>response.json()).then(result=>
1{_learnq.push(["track","Klevu Search",{"Search Term":query,"Search Term (full)":result?.annotations?.fullTerm||[],Subjects:result?.annotations?.subjects||[],"Total Number of Product Results":results,"Product Clicked":product,"Search Results":products}])}),0)}catch{}window.customSearchFunction=function(query,options){return fetch(search_endpoint,{method:"POST",headers:{Accept:"application/json"},body:JSON.stringify(getKlevuPayload(query,8,0,recent))}).then(response=>response.json()).then(result=>{const{handles,total,suggestions,type,klevu_ids}=parseKlevuResponse(result);return recordSearchAnalytics(query,total,type),updateKlevuIdMap(handles,klevu_ids),delegate.off("click",".Search__Results .ProductItem a"),delegate.on("click",".Search__Results .ProductItem a",(event,target)=>productClickEvent(query,total,type,event,target)),fetch(getSearchUrl("search-preview",handles,query,total,suggestions),options)}).catch(error=>{console.log(error),window.customSearchFunction=null})};const query_string=new URLSearchParams(window.location.search);document.querySelectorAll("section.search-results-container").forEach(section=>{const query=query_string.get("q");var last_result={page:-1};const loader=section.querySelector("p.autoload-loading"),fetchResults=page=>{document.dispatchEvent(new CustomEvent("theme:loading:start")),page=page||0,fetch(search_endpoint,{method:"POST",headers:{Accept:"application/json"},body:JSON.stringify(getKlevuPayload(query,limit,page,recent,last_result))}).then(response=>response.json()).then(result=>{last_result=parseKlevuResponse(result);const{handles,total,suggestions,type,klevu_ids}=last_result;return page==0&&recordSearchAnalytics(query,total,type),updateKlevuIdMap(handles,klevu_ids),delegate.off("click","section.CustomSearch .ProductItem a"),delegate.on("click","section.CustomSearch .ProductItem a",(event,target)=>productClickEvent(query,total,type,event,target)),fetch(getSearchUrl("search",handles,query,total,suggestions))}).then(response=>response.text()).then(html=>{const new_page=new DOMParser().parseFromString(html,"text/html");if(page==0){const new_section=new_page.querySelector("section");section.replaceWith(new_section),new_section.classList.add("loaded"),new_section.after(loader),section=new_section}else{const product_list=new_page.querySelector(".ProductList");section.querySelector(".ProductList").append(...product_list.children)}if(document.querySelectorAll("input[type=search][name=q]").forEach(el=>{el.value=query}),document.dispatchEvent(new CustomEvent("product_list_loaded",{detail:section})),document.dispatchEvent(new CustomEvent("theme:loading:end")),last_result.page+1<last_result.pages){const observer=new IntersectionObserver(entries=>{entries[0].isIntersecting&&(fetchResults(last_result.page+1),observer.unobserve(entries[0].target))});observer.observe([...[...section.querySelectorAll(".ProductList")].slice(-1)[0].children].findLast(el=>el.offsetWidth!==0&&el.offsetHeight!==0))}else loader.remove()}).catch(error=>{console.log(error),window.customSearchFunction=null})};query.length&&fetchResults()})}})(); 2//# sourceMappingURL=/cdn/shop/t/274/assets/klevu.js.map?v=117433132949153388681790162672
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.