1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./kRDbNG3n.js","./DyOthKFp.js","./DN35GMZy.js","./CVchce2r.js","./F1HBbi0n.js","./entry.Bh78WMjF.css","./CdMQmuhu.js","./DQxAOVi-.js","./BAtrJoQO.js","./BrAILuq-.js","./CHgw_sfD.js","./Be6H16u3.js","./C52ww-I3.js","./Drjef9mU.js","./D26HI5Du.js","./B880ij7k.js","./Bo6BmU5k.js","./nLF6o9ou.js","./Cp2CUjBY.js","./7t5_Coxy.js","./rm3NYZzh.js","./L4dwo06x.js","./DLab_Bd4.js","./DqXJFlzV.js","./B3_0wZSh.js","./Cuogk965.js","./BL8ZPrUe.js","./Br-TTuv4.js","./CK-s6Hxt.js","./C7x7Jymq.js","./B5S_p8jG.js","./useBasket.DetDQZUN.css","./DeQILKem.js","./useProducts.DNas7oF3.css","./CMX9tzEu.js","./BkpmsMzM.js"])))=>i.map(i=>d[i]); 2import{bL as ve,r as N,bY as X,a as V,E as ye,q as oe,l as be,i as I,bZ as he,G as k,bb as xe,aO as Pe,aP as Fe,d as C,h as B,ay as ne,b_ as Ie,o as _,v as x,n as W,b as s,K as A,w as h,aK as $e,aL as Oe,e as b,y as Z,f,_ as re,g as T,t as F,c as $,F as ae,x as se,b$ as le,I as Q,j as Y,at as ie,au as ce,ah as Ne,J as Ce,L as ke}from"./F1HBbi0n.js";import{_ as ue}from"./BAtrJoQO.js";import{_ as pe}from"./CHgw_sfD.js";import{_ as we}from"./Be6H16u3.js";import{o as Le,a as Te,s as R,c as Ve}from"./Drjef9mU.js";import{_ as de}from"./D26HI5Du.js";import{_ as me}from"./Cp2CUjBY.js";import{_ as Ue}from"./7t5_Coxy.js";import{u as Be,_ as Me}from"./rm3NYZzh.js";import{u as je}from"./B5S_p8jG.js";import{_ as De}from"./CMX9tzEu.js";var D=(e=>(e.ScoreDescending="ScoreDescending",e.ProductNumberAscending="ProductNumberAscending",e.ProductNameAscending="ProductNameAscending",e.PreviouslyBoughtThenPromoThenProductNumber="PreviouslyBoughtThenPromoThenProductNumber",e.PreviouslyBoughtThenPromoThenProductName="PreviouslyBoughtThenPromoThenProductName",e.PreviouslyBoughtThenProductNumber="PreviouslyBoughtThenProductNumber",e.PreviouslyBoughtThenProductName="PreviouslyBoughtThenProductName",e.InStockThenProductNumber="InStockThenProductNumber",e.PreviouslyBoughtThenInStock="PreviouslyBoughtThenInStock",e.MostBought="MostBought",e.PriceAscending="PriceAscending",e.PriceDescending="PriceDescending",e.CapacityAscending="CapacityAscending",e.CapacityDescending="CapacityDescending",e.HeightAscending="HeightAscending",e.HeightDescending="HeightDescending",e))(D||{});function Ae(){return ve("store-config",()=>N(null))}let K;async function ze(e,o,d,p){const u=[];if(!e.propertyFilters)return u;K||(K=await $fetch("/api/ecom/properties/list"));for(const a of e.propertyFilters){const r=a.values.filter(t=>t.count>0||t.countActive>0);if(!r.length)continue;const l=K?.properties?.find(t=>t.id===a.propertyId);if(!l)continue;const i=o.filter(t=>r.map(m=>m.propertyValueId).includes(t.propertyValueId)).map(t=>t.propertyValueId),c={id:l.id,title:l.translations&&l.translations[p]?.name,sortOrder:l.sortOrderValue,isHiddenInUI:d.includes(l.id),selectedList:i,options:[]};for(let t=0;t<r.length;t++){const m=r[t];c.options.push({label:Ge(a,m),value:m.propertyValueId,count:m.count,sortOrder:m.sortOrder})}c.options.sort((t,m)=>t.sortOrder-m.sortOrder),u.push(c)}return u.sort((a,r)=>a.sortOrder-r.sortOrder||a.title.localeCompare(r.title))}function Ee(e){try{return e?.length?JSON.parse(e):void 0}catch(o){console.warn("Invalid property filters in query string",o);return}}function Se(e){try{return e?.length?e.map(o=>JSON.parse(o.value)):void 0}catch(o){console.warn("Invalid property filters in DatoCMS",o);return}}function Ge(e,o){switch(e.valueType){case X.Boolean:return o.booleanValue;case X.NumericValue:return o.numericValue;default:return o.textValue}}const ee=1,_e=Symbol("catalog-injection-key");async function qe(e){console.log("â¡useCatalog called",e);const{locale:o}=V(),{push:d}=ye(),{query:p}=oe(),a=Ae().value?.defaultProductSortOrder??D.ScoreDescending,r=N({}),l=N({pageSize:0,totalItems:0}),i=N([]),c=N([]),t=N({pageNumber:ee,propertyFilters:[],term:void 0,sortOrder:void 0,categoryId:e.categoryId}),m=N([]),v=Le({page:Ve.number().optional().default(ee),propertyFilters:R().optional(),term:R().optional(),q:R().optional(),sortOrder:Te(D).optional()}).safeParse(p);if(v.success&&(t.value.term=v.data.term||v.data.q,t.value.pageNumber=Math.max(1,v.data.page),t.value.sortOrder=v.data.sortOrder??a),e.cmsFilter){const n=Se(e.cmsFilter);t.value.propertyFilters=n,c.value.push(...n?.map(g=>g.propertyId)??[])}
2else v.success&&v.data.propertyFilters&&(t.value.propertyFilters=Ee(v.data.propertyFilters),c.value=[]);const P=async()=>{const n=t.value.pageNumber;if(!r.value||!(n in r.value)){console.warn("â¡ No products found for page",n);return}const g=r.value[n];if(!g){console.warn("â¡ No products found for page",n);return}const L=g.sort((J,fe)=>J.sortOrder-fe.sortOrder).map(J=>J.productId);m.value=L},{data:O,status:E,execute:w,error:S}=be("/api/ecom/search",{method:"POST",lazy:!0,dedupe:"defer",body:I(()=>({term:t.value.term,categoryId:t.value.categoryId,propertyValueFilterList:t?.value.propertyFilters,pageSize:9,sortOrder:t.value.sortOrder})),watch:!1,deep:!1,onRequest:({request:n,options:g})=>{console.log(`fetch (request: ${JSON.stringify(n)} | body: ${JSON.stringify(g.body)})`)},onResponse:async({response:n})=>{const g=n._data;await M(g)},onResponseError:({response:n})=>{console.error("Could not get catalog data",n)}},"$Y_8ULjMMAF"),G=he(()=>{w()},500,{maxWait:5e3});async function M(n){l.value.pageSize=n.pageSize??0,l.value.totalItems=n.resultCount??0,r.value=n.pagedProducts,await P();const g=t?.value.propertyFilters??[];i.value=await ze(n,g,c.value,o.value)}k(O,async()=>{O.value&&await M(O.value)},{immediate:!0}),k(t,n=>{let g;n.propertyFilters&&n.propertyFilters.length>0&&(g=JSON.stringify(n.propertyFilters),g===e.cmsFilter&&(g=void 0)),d({query:{page:n.pageNumber&&n.pageNumber!==1?n.pageNumber:void 0,propertyFilters:g,term:n.term&&n.term.length>0?n.term:void 0,sortOrder:n.sortOrder&&n.sortOrder!==a?n.sortOrder:void 0}})},{deep:!0}),k(()=>t.value.pageNumber,()=>document?.querySelector("#plp-scroll-target")?.scrollIntoView({behavior:"smooth"}));const q=I({get:()=>t.value.pageNumber,set:async n=>{t.value.pageNumber=Math.max(1,n),await P()}}),j=I({get:()=>t.value.propertyFilters,set:async n=>{t.value.propertyFilters!==n&&(t.value.propertyFilters=n,t.value.pageNumber=1,G())}}),H=I({get:()=>t.value.term,set:async n=>{t.value.term!==n&&(t.value.term=n,t.value.propertyFilters=void 0,t.value.pageNumber=1,await w())}}),U=I({get:()=>t.value.sortOrder??a,set:async n=>{t.value.sortOrder!==n&&(t.value.sortOrder=n,t.value.pageNumber=1,t.value.sortOrder===a&&(t.value.sortOrder=void 0),await w())}});return{status:E,error:S,productIdListCurrentPage:m,propertyFilters:i,pagination:l,page:q,term:H,sortOrder:U,activePropertyFilters:j,updatePropertyFilters:()=>{const n=i.value.flatMap(g=>g.selectedList?.filter(L=>L!=null).map(L=>({propertyId:g.id,propertyValueId:L})));j.value=n?.filter(g=>g!=null)},catalogSearchQuery:xe(t)}}function He(e){Fe(_e,e)}function z(){const e=Pe(_e);if(!e)throw new Error("Catalog not found");return e}const Je=3,Re=C({__name:"Search",async setup(e){let o,d;const{t:p}=V(),{term:u,catalogSearchQuery:a}=z(),r=([o,d]=B(()=>ne()),o=await o,d(),o),l=oe(),i=N(u?.value??""),c=Ie(I(()=>i.value?.trim()),400);k(c,()=>{if(c.value.length>=Je){u.value=i.value;return}r.value?.code!=="hangcha"&&!a.value.categoryId||c.value.length===0&&(u.value=void 0)}),k(()=>l.query.term,(m,y)=>{const v=decodeURIComponent(m?.toString().trim()||""),P=decodeURIComponent(y?.toString().trim()||"");!v||v===P||(i.value=v)});const t=I(()=>r.value?.code==="hangcha"?"border-b-gradient-black":"border-b border-black");return(m,y)=>{const v=Z,P=we;return _(),x(P,{modelValue:s(i),"onUpdate:modelValue":y[1]||(y[1]=O=>A(i)?i.value=O:null),icon:"i-ph-magnifying-glass-light",autocomplete:"off",placeholder:s(p)("catalog-filters.placeholder.search-by-name"),ui:{base:"!ring-0 !bg-transparent !shadow-none !pl-[34px]",icon:{leading:{padding:{xl:"!pl-0"}},trailing:{pointer:""}}},class:W([s(t),"text-black"]),name:"catalog-search-input"},{trailing:h(()=>[$e(b(v,{color:"gray",variant:"link",icon:"i-ph-x-light",padded:!1,onClick:y[0]||(y[0]=O=>i.value="")},null,512),[[Oe,s(i)!==""]])]),_:1},8,["modelValue","placeholder","class"])}}}),Ke=Object.assign(Re,{__name:"CatalogSearch"}),Ye={class:"truncate"},We={class:"flex items-center gap-2.5"},Ze={class:"size-[24px] rounded-md border-2 border-gray-400 text-center"},Xe=C({__name:"MultiSelect",props:{filterGroup:{}},emits:["update"],setup(e){const{t:o}=V();function d(p){const u=p.selectedList?.map(a=>p.options.find(r=>r.value===a)?.label);return u?.length?u.join(", "):o("catalog-filters.placeholder.selected-value")}return(p,u)=>{const a=re,r=de,l=me;
2return _(),x(l,{label:e.filterGroup.title,class:W({hidden:e.filterGroup.isHiddenInUI})},{default:h(()=>[b(r,{modelValue:e.filterGroup.selectedList,"onUpdate:modelValue":u[0]||(u[0]=i=>e.filterGroup.selectedList=i),options:e.filterGroup.options,popper:{offsetDistance:2},"selected-icon":"","option-attribute":"label","value-attribute":"value",multiple:"","data-1p-ignore":"",onChange:u[1]||(u[1]=i=>p.$emit("update"))},{label:h(()=>[f("span",Ye,F(d(e.filterGroup)),1)]),option:h(({option:i,selected:c})=>[f("div",We,[f("div",Ze,[c?(_(),x(a,{key:0,name:"i-ph-check-bold",class:"text-main-500"})):T("",!0)]),f("div",null,F(i.label),1)])]),_:1},8,["modelValue","options"])]),_:1},8,["label","class"])}}}),Qe=Object.assign(Xe,{__name:"CatalogFilterMultiSelect"}),et={class:"mb-6 flex items-center justify-between"},tt={class:"mb-0 text-xl font-bold"},ot={class:"gap-2xl flex flex-col"},nt=C({__name:"PropertyFilters",setup(e){const{propertyFilters:o,status:d,updatePropertyFilters:p}=z();return(u,a)=>{const r=pe,l=Ke,i=Qe;return _(),$("div",null,[f("div",et,[f("h2",tt,F(u.$t("catalog-filters.title")),1),f("div",null,[s(d)==="pending"?(_(),x(r,{key:0})):T("",!0)])]),f("div",ot,[b(l),(_(!0),$(ae,null,se(s(o).filter(c=>c.options.length>1),c=>(_(),x(i,{key:c.title,"filter-group":c,onUpdate:s(p)},null,8,["filter-group","onUpdate"]))),128))])])}}}),rt=Object.assign(nt,{__name:"CatalogPropertyFilters"});async function ge(){const e=await ne();return I(()=>e.value?.code==="hangcha"?"primary":"black")}const at=ie(()=>ce(()=>import("./kRDbNG3n.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url).then(e=>e.default||e)),st={class:"flex flex-1 overflow-y-auto"},lt={class:"size-full"},it={class:"p-3"},ct={class:"flex items-center justify-end"},ut={class:"sr-only",for:"close-mobile-filter"},pt={class:"sticky bottom-0 border-t bg-white p-3"},dt={class:"hidden w-[275px] lg:block"},mt=C({__name:"Overlay",async setup(e){let o,d;const p=le(),{pagination:u}=z(),a=([o,d]=B(()=>ge()),o=await o,d(),o);return(r,l)=>{const i=re,c=Z,t=at;return _(),$("div",null,[b(t,{modelValue:s(p),"onUpdate:modelValue":l[2]||(l[2]=m=>A(p)?p.value=m:null),side:"left"},{default:h(()=>[f("div",st,[f("div",lt,[f("div",it,[f("div",ct,[f("label",ut,F(r.$t("common.action.close")),1),b(i,{id:"close-mobile-filter",name:"i-ph-x",class:"size-lg",role:"button",onClick:l[0]||(l[0]=m=>p.value=!1)})]),Q(r.$slots,"default")]),f("div",pt,[b(c,{variant:"solid",color:s(a),size:"lg",block:"",onClick:l[1]||(l[1]=m=>p.value=!1)},{default:h(()=>[Y(F(r.$t("catalog-filters.action.show-products",{Count:s(u).totalItems})),1)]),_:1},8,["color"])])])])]),_:3},8,["modelValue"]),f("div",dt,[Q(r.$slots,"default")])])}}}),_t=Object.assign(mt,{__name:"CatalogFilterOverlay"}),gt=C({__name:"ResultsLabel",props:{amount:{}},setup(e){const{t:o}=V(),d=I(()=>e.amount===1?o("general.label.results-singular"):o("general.label.results-plural"));return(p,u)=>(_(),$("span",null,F(e.amount)+" "+F(s(d)),1))}}),ft=Object.assign(gt,{__name:"ResultsLabel"}),vt={class:"flex items-center gap-2.5"},yt=C({__name:"Sort",setup(e){const{sortOrder:o}=z(),{t:d}=V(),p=Object.values(D).map(r=>({label:d(`catalog-sortorder.${r.toLowerCase()}`),value:r})),u={container:"flex-1",wrapper:"flex flex-row items-center gap-sm",label:{wrapper:"!mb-0",base:"font-thin"}},a={width:"w-fit"};return(r,l)=>{const i=de,c=me;return _(),x(c,{label:s(d)("catalog-sortorder.label"),ui:u},{default:h(()=>[b(i,{modelValue:s(o),"onUpdate:modelValue":l[0]||(l[0]=t=>A(o)?o.value=t:null),size:"lg",options:s(p),popper:{offsetDistance:2},"ui-menu":a,"selected-icon":"","option-attribute":"label","value-attribute":"value","data-1p-ignore":""},{option:h(({option:t})=>[f("div",vt,[f("div",null,F(t.label),1)])]),_:1},8,["modelValue","options"])]),_:1},8,["label"])}}}),bt=Object.assign(yt,{__name:"CatalogSort"}),te="Results",ht=C({__name:"ProductList",props:{productIds:{}},async setup(e){let o,d;const p=e,{trackProductList:u}=je(),{products:a,status:r,error:l,refresh:i}=([o,d]=B(()=>Be(p.productIds,{prefiltered:!0})),o=await o,d(),o);return k(p.productIds,()=>{p.productIds.value&&p.productIds.value.length>0&&i()}),k(a,()=>{if(a.value&&a.value.length>0){const c=a.value.filter(t=>t!=null).map(t=>t.dataLayer);u(c,te)}},{immediate:!0}),(c,t)=>{const m=ue,y=Me,v=pe;return _(),$("section",null,[s(l)?(_(),x(m,{key:0,message:("createFetchErrorMessage"in c?c.createFetchErrorMessage:s(Ne))(s(l)),"message-type":"error",class:"my-2"},null,8,["message"])):T("",!0),f("div",{class:W(["mb-xl md:mb-3xl grid grid-cols-1 gap-x-7 gap-y-14 transition-opacity sm:grid-cols-2 md:grid-cols-3",{"opacity-50":s(r)==="pending"}])},[(_(!0),$(ae,null,se(s(a),P=>(_(),x(y,{key:P.id,product:P,"list-name":te,"show-compare":!0},null,8,["product"]))),128))],2),s(r)==="pending"&&!s(a)?(_(),x(v,{key:1})):T("",!0)])}}}),xt=Object.assign(ht,{__name:"CatalogProductList"}),Pt=ie(()=>ce(()=>import("./CdMQmuhu.js"),__vite__mapDeps([6,4,5,7,8,9,10,11,12,13,14,15,3,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,1,2,31,32,33,34,35]),import.meta.url).then(e=>e.default||e)),Ft={key:1,class:"gap-3xl flex"},It={key:0,class:"gap-md my-2 flex w-full flex-col items-end"},$t={key:1,class:"flex-1"},Ot={class:"mb-lg sm:mb-xl gap-x-lg gap-y-sm flex flex-wrap items-center"},Nt={class:"mr-auto flex items-end"},Ct=C({__name:"Root",props:{cmsFilter:{},categoryId:{}},async setup(e){let o,d;const{t:p}=V(),u=([o,d]=B(()=>qe({categoryId:e.categoryId,cmsFilter:e.cmsFilter})),o=await o,d(),o),{pagination:a,page:r,error:l,status:i}=u;He(u);const c=le(),t=([o,d]=B(()=>ge()),o=await o,d(),o);return(m,y)=>{const v=Pt,P=ue,O=rt,E=_t,w=Z,S=ft,G=bt,M=Ue,q=xt,j=De,H=Ce;return _(),x(H,{id:"plp-scroll-target",class:"mb-4xl md:mt-4xl mt-xl min-h-64"},{default:h(()=>[b(v),s(l)?(_(),x(P,{key:0,message:s(l).message,"message-type":"error",class:"my-2"},null,8,["message"])):(_(),$("div",Ft,[b(E,null,{default:h(()=>[b(O)]),_:1}),s(a).totalItems===0&&s(i)==="success"?(_(),$("div",It,[b(w,{color:s(t),"trailing-icon":"ph-sliders-horizontal",class:"text-base lg:hidden",onClick:y[0]||(y[0]=U=>c.value=!0)},{default:h(()=>[Y(F(m.$t("catalog-filters.action.filters")),1)]),_:1},8,["color"]),b(P,{message:s(p)("catalog.message.warning.no-products"),"message-type":"warning",class:"w-full"},null,8,["message"])])):(_(),$("div",$t,[f("div",Ot,[f("div",Nt,[s(i)==="success"?(_(),x(S,{key:0,amount:s(a).totalItems},null,8,["amount"])):T("",!0)]),b(M,{stores:"joris-van-dijck"},{default:h(()=>[b(G,{class:"order-1 w-full sm:order-none sm:w-fit"})]),_:1}),b(w,{color:s(t),"trailing-icon":"ph-sliders-horizontal",class:"text-base lg:hidden",onClick:y[1]||(y[1]=U=>c.value=!0)},{default:h(()=>[Y(F(m.$t("catalog-filters.action.filters")),1)]),_:1},8,["color"])]),b(q,{"product-ids":s(u).productIdListCurrentPage},null,8,["product-ids"]),s(a)?(_(),x(j,{key:0,modelValue:s(r),"onUpdate:modelValue":y[2]||(y[2]=U=>A(r)?r.value=U:null),total:s(a).totalItems,"page-count":s(a).pageSize},null,8,["modelValue","total","page-count"])):T("",!0)]))]))]),_:1})}}}),Et=Object.assign(ke(Ct,[["__scopeId","data-v-bc02e250"]]),{__name:"CatalogRoot"});export{Et as _,ft as a,ge as u};
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.