1import{_ as q}from"./MainLayout-Bb9EA1vX.js";import{k as J,d as u,c as p,o as n,b as r,a as d,F as N,j as I,f as D,w as k,u as $,l as L,m as Q,i as T,H as O,h as ee,t as b,e as R,n as A,R as te,D as le}from"./app-BqnMDJjU.js";import{_ as B,a as se,s as E,b as re,c as ae}from"./vue-multiselect.esm-u7tw4P8s.js";import{P as oe}from"./Dialogs-CAjueNlT.js";import"./vue-multiselect.min.css_vue_type_style_index_0_src_true_lang-DGnElOdI.js";import{_ as ne}from"./Modal-L3VBTcOy.js";import"./Button-CjZln_nq.js";import"./useBasket-D7qbBKwm.js";import"./InputCheckbox-CH9Z6THw.js";import"./form-input-DpoJ-blQ.js";import"./InputContainer-C2wi-ChQ.js";import"./LanguageSwitcher-B_foB2IY.js";const ie={class:"flex flex-col gap-2"},ue={__name:"ListingCategories",props:{categories:{type:Object,required:!0}},setup(F){const P=J(),m=u(()=>{var a;return((a=P.props)==null?void 0:a.subcategory)??null}),x=u(()=>{var a;return((a=P.props)==null?void 0:a.category)??null}),g=a=>{const c=Number(a);return Number.isFinite(c)?c:0},h=a=>g(a==null?void 0:a.products_count),U=a=>g(a==null?void 0:a.products_count);return(a,c)=>(n(),p("ul",ie,[(n(!0),p(N,null,I(F.categories.data.categories,(o,f)=>(n(),p(N,{key:f},[o.subcategories.length>0?(n(),D(B,{key:0,title:o.name,count:h(o),openByDef:(o==null?void 0:o.slug)===x.value||x.value===null&&m.value===(o==null?void 0:o.slug),isActive:x.value===null&&m.value===(o==null?void 0:o.slug)},{default:k(()=>[(n(!0),p(N,null,I(o.subcategories,(C,z)=>(n(),D($(L),{key:z,href:a.$href(C.url)},{default:k(()=>[d(B,{title:C.name,count:U(C),"is-active":m.value===C.slug},null,8,["title","count","is-active"])]),_:2},1032,["href"]))),128)),d($(L),{href:a.$href(o.url)},{default:k(()=>[d(B,{title:a.$t("products.categories.all-categories"),count:h(o),"is-active":m.value===o.slug},null,8,["title","count","is-active"])]),_:2},1032,["href"])]),_:2},1032,["title","count","openByDef","isActive"])):(n(),D($(L),{key:1,href:a.$href(o.url)},{default:k(()=>[d(B,{title:o.name,count:h(o),"is-active":x.value===o.slug&&!m.value},null,8,["title","count","is-active"])]),_:2},1032,["href"]))],64))),128)),c[0]||(c[0]=r("hr",{class:"my-3"},null,-1)),d($(L),{href:a.$href("/products")},{default:k(()=>[d(B,{title:a.$t("products.categories.all-products"),count:F.categories.data.total,"is-active":!x.value},null,8,["title","count","is-active"])]),_:1},8,["href"])]))}},de={class:"flex flex-col gap-8 lg:flex-row lg:items-stretch lg:justify-between"},ce={class:"flex flex-col gap-6"},pe={class:"text-2xl font-medium"},me={class:"hidden justify-start gap-3 lg:flex lg:items-stretch"},fe={class:"flex flex-col justify-between"},ve={class:"mb-1"},ge={class:"typo__label text-sm"},be={class:"flex flex-col justify-between"},he={class:"mb-1"},_e={class:"typo__label text-sm"},xe={class:"mt-8 flex flex-col gap-8 lg:flex-row"},we={class:"hidden w-[17.5rem] flex-none flex-col gap-8 lg:flex"},ye={class:"min-w-0 w-full"},$e={key:0,class:"products-grid grid grid-cols-1 content-start gap-6 md:grid-cols-2 lg:gap-8 xl:grid-cols-4"},ke={key:1,class:"mt-8 flex flex-col items-center gap-3"},Ne={class:"mx-auto inline-flex max-w-full flex-col items-center gap-2 rounded-[8px] border border-gray-200 bg-white px-2 py-2 shadow-sm xl:flex-row",style:{width:"max-content"}},Pe={class:"flex w-[13rem] max-w-full flex-none"},Ce={class:"inline-flex items-center gap-2"},Se={class:"whitespace-nowrap text-sm"},Ve={class:"font-medium"},je={class:"flex flex-none justify-center"},Ae={class:"inline-flex max-w-full flex-wrap items-center justify-center gap-1.5 text-blue-700 sm:flex-nowrap sm:gap-2"},Be=["disabled","aria-label","title"],Fe=["disabled"],Le={class:"hidden sm:inline"},Oe={class:"flex items-center gap-0.5 px-0.5 sm:gap-1 sm:px-1"},De={key:0,class:"px-2 text-gray-400 select-none"},Ie=["onClick"],Ue=["disabled"],ze={class:"hidden sm:inline"},Me=["disabled","aria-label","title"],Qe={class:"mobile-scrollbar-hidden max-w-full overflow-x-auto text-center text-sm text-gray-600 lg:text-left"},Te={class:"whitespace-nowrap sm:whitespace-normal"},Re={key:2,class:"text-xl text-center py-8"},Ee={__name:"Index",props:{products:{type:Object,required:!0},categories:{type:Object,required:!0}},setup(F){const P=J(),m=F,x=Q([24,48,96]),g=Q(24),h=Q(null),U=(e,t)=>t.split(".").reduce((l,s)=>l&&l[s]!=null?l[s]:void 0,e),a=(e,t={})=>String(e).replace(/\{(\w+)\}/g,(l,s)=>t[s]??`{${s}}`),c=(e,t,l={})=>{var j,y;const s=((y=(j=P.props)==null?void 0:j.translations)==null?void 0:y.main)??{},i=s[e],w=i??U(s,e);return typeof w=="string"&&w.trim()!==""?a(w,l):a(t,l)},o=u(()=>[{value:"price-asc",label:T("products.sorting.price-asc")},{value:"price-desc",label:T("products.sorting.price-desc")},{value:"new",label:T("products.sorting.new")}]),f=u(()=>{const e=P.url||(typeof window<"u"?`${window.location.pathname}${window.location.search}`:""),t=e.includes("?")?e.slice(e.indexOf("?")):"",l=new URLSearchParams(t),s={};for(const[i,w]of l.entries())s[i]=w;return s});O(()=>f.value.perPage,e=>{const t=parseInt(e??"",10);Number.isNaN(t)||(g.value=t)},{immediate:!0});const C=e=>{const t=(e==null?void 0:e.order_by)??null,l=(e==null?void 0:e.order_type)??null;return t==="price"&&l==="asc"?o.value.find(s=>
1s.value==="price-asc")??null:t==="price"&&l==="desc"?o.value.find(s=>s.value==="price-desc")??null:t==="new"&&l==="desc"?o.value.find(s=>s.value==="new")??null:null},z=e=>e==="price-asc"?{order_by:"price",order_type:"asc",type:null}:e==="price-desc"?{order_by:"price",order_type:"desc",type:null}:e==="new"?{type:null,order_by:"new",order_type:"desc"}:{order_by:null,order_type:null,type:null};O(()=>[f.value.order_by,f.value.order_type,f.value.type],()=>{var s;const e=C(f.value),t=(e==null?void 0:e.value)??null,l=((s=h.value)==null?void 0:s.value)??null;t!==l&&(h.value=e)},{immediate:!0});const M=(e={})=>{var s;const t=(s=P.props)==null?void 0:s.locale,l={...f.value,...e};Object.keys(l).forEach(i=>{(l[i]===null||l[i]===void 0||l[i]==="")&&delete l[i]}),te.get(route("products.index",{locale:t}),l,{preserveState:!0,preserveScroll:!0,replace:!0})},V=async e=>{M({page:e,perPage:g.value}),await le(),window.scrollTo({top:0,behavior:"smooth"})},K=u(()=>{const e=parseInt(f.value.perPage??"",10);return Number.isNaN(e)||e<=0?null:e});O(g,e=>{const t=Number(e);!Number.isFinite(t)||t<=0||K.value!==t&&M({page:1,perPage:t})}),O(h,e=>{const t=z((e==null?void 0:e.value)??null),l=f.value;(l.order_by??null)===(t.order_by??null)&&(l.order_type??null)===(t.order_type??null)&&(l.type??null)===(t.type??null)||M({page:null,...t})});const _=u(()=>{var t,l;const e=((t=m.products)==null?void 0:t.products)??{};return{data:Array.isArray(e.data)?e.data:[],current_page:Number(e.current_page??1),last_page:Number(e.last_page??1),from:e.from??0,to:e.to??0,total:Number(e.total??((l=m.products)==null?void 0:l.total)??0)}});u(()=>{var e;return Number(_.value.total??((e=m.products)==null?void 0:e.total)??0)});const H=u(()=>{var e;return Array.isArray((e=m.products)==null?void 0:e.filters)?m.products.filters:[]}),G=u(()=>_.value.data.length>0),v=u(()=>_.value.current_page),S=u(()=>_.value.last_page),W=u(()=>{const e=l=>Array.isArray(l)?l.flatMap(s=>String(s??"").split(",")).map(s=>String(s??"").trim().toLowerCase()).filter(s=>s!==""):String(l??"").split(",").map(s=>String(s??"").trim().toLowerCase()).filter(s=>s!==""),t=[...e(f.value.colour),...e(f.value.color)];return Array.from(new Set(t))}),X=u(()=>{const e=m.categories??{},t=(e==null?void 0:e.data)??{};return{...e,data:{...t,categories:Array.isArray(t.categories)?t.categories:[],total:Number(t.total??0)}}}),Y=u(()=>{const e=v.value,t=S.value;if(t<=1)return[1];const l=2,s=[],i=y=>s.push(y);i(1);const w=Math.max(2,e-l),j=Math.min(t-1,e+l);w>2&&i("â¦");for(let y=w;y<=j;y++)i(y);return j<t-1&&i("â¦"),t>1&&i(t),s}),Z=u(()=>c("products.pagination","Showing {from}â{to} of {total}",{from:_.value.from,to:_.value.to,total:_.value.total}));return(e,t)=>(n(),p(N,null,[d($(ee),{title:e.$t("products.title")},null,8,["title"]),d(q,{layout:"site"},{default:k(()=>[r("main",null,[r("div",de,[r("div",ce,[d(se),r("div",null,[r("h1",pe,b(e.$t("products.title")),1)])]),r("div",me,[r("div",fe,[r("div",ve,[r("label",ge,b(e.$t("products.sorting.label")),1)]),d($(E),{modelValue:h.value,"onUpdate:modelValue":t[0]||(t[0]=l=>h.value=l),class:"custom-multiselect min-w-[18rem]",options:o.value,label:"label","track-by":"value",searchable:!1,"close-on-select":!0,"show-labels":!1,"allow-empty":!0,placeholder:e.$t("products.sorting.placeholder"),"aria-label":e.$t("products.sorting.placeholder")},null,8,["modelValue","options","placeholder","aria-label"])]),r("div",be,[r("div",he,[r("label",_e,b(e.$t("products.per-page.label")),1)]),d($(E),{class:"custom-multiselect",modelValue:g.value,"onUpdate:modelValue":t[1]||(t[1]=l=>g.value=l),options:x.value,searchable:!1,"close-on-select":!0,"show-labels":!1,"allow-empty":!1,placeholder:e.$t("products.per-page.placeholder"),"aria-label":e.$t("products.per-page.placeholder")},null,8,["modelValue","options","placeholder","aria-label"])])])]),r("div",xe,[r("div",we,[d(ue,{categories:X.value},null,8,["categories"]),r("div",null,[d(re,{attributes:H.value},null,8,["attributes"])])]),r("div",ye,[t[9]||(t[9]=r("hr",{class:"products-results-divider hidden lg:block"},null,-1)),d(ae,{attributes:H.value},null,8,["attributes"]),G.value?(n(),p("div",$e,[(n(!0),p(N,null,I(_.value.data,l=>(n(),D(oe,{key:l.id,class:"w-full max-w-full",product:l,"preferred-colours":W.value,"uniform-height":""},null,8,["product","preferred-colours"]))),128))])):R("",!0),_.value.last_page>1?(n(),p("div",ke,[r("div",Ne,[r("div",Pe,[d($(E),{modelValue:g.value,"onUpdate:modelValue":t[2]||(t[2]=l=>g.value=l),class:"custom-multiselect min-w-0 flex-1 rounded-[8px]",options:x.value,searchable:!1,"close-on-select":!0,"show-labels":!1,"allow-empty":!1,placeholder:e.$t("products.per-page.label"),"aria-label":e.$t("products.per-page.label")},{singleLabel:k(({option:l})=>[r("span",Ce,[r("span",Se,b(e.$t("products.per-page.label")),1),r("span",Ve,b(l),1)])]),_:1},8,["modelValue","options","placeholder","aria-label"])]),r("div",je,[r("div",Ae,[r("button",{class:A(["hidden h-10 w-10 rounded-[8px] border border-gray-200 text-sm place-items-center sm:grid",v.value===1?"opacity-40 cursor-not-allowed":"hover:border-gray-300 hover:bg-gray-50"]),disabled:v.value===1,onClick:t[3]||(t[3]=l=>V(1)),"aria-label":c("products.pagination.first_page","First page"),title:c("products.pagination.first_page","First page")}," « ",10,Be),r("button",{class:A(["inline-flex h-10 items-center gap-1 rounded-[8px] border border-gray-200 px-2.5 text-sm sm:gap-2 sm:px-4",v.value===1?"opacity-40 cursor-not-allowed":"hover:border-gray-300 hover:bg-gray-50"]),disabled:v.value===1,onClick:t[4]||(t[4]=l=>V(v.value-1))},[t[7]||(t[7]=r("span",{class:"text-base leading-none sm:text-lg"},"â¹",-1)),r("span",Le,b(c("carousel.prev","Prev")),1)],10,Fe),r("div",Oe,[(n(!0),p(N,null,I(Y.value,l=>(n(),p(N,{key:`${l}`},[l==="â¦"?(n(),p("span",De,"â¦")):(n(),p("button",{key:1,class:A(["h-10 min-w-10 rounded-[8px] border px-3 text-sm font-medium",l===v.value?"bg-orange-500 text-white border-orange-500":"border-gray-200 hover:border-gray-300 hover:bg-gray-50"]),onClick:s=>V(l)},b(l),11,Ie))],64))),128))]),r("button",{class:A(["inline-flex h-10 items-center gap-1 rounded-[8px] border border-gray-200 px-2.5 text-sm sm:gap-2 sm:px-4",v.value===S.value?"opacity-40 cursor-not-allowed":"hover:border-gray-300 hover:bg-gray-50"]),disabled:v.value===S.value,onClick:t[5]||(t[5]=l=>V(v.value+1))},[r("span",ze,b(c("carousel.next","Next")),1),t[8]||(t[8]=r("span",{class:"text-base leading-none sm:text-lg"},"âº",-1))],10,Ue),r("button",{class:A(["hidden h-10 w-10 rounded-[8px] border border-gray-200 text-sm place-items-center sm:grid",v.value===S.value?"opacity-40 cursor-not-allowed":"hover:border-gray-300 hover:bg-gray-50"]),disabled:v.value===S.value,onClick:t[6]||(t[6]=l=>V(S.value)),"aria-label":c("products.pagination.last_page","Last page"),title:c("products.pagination.last_page","Last page")}," » ",10,Me)])])]),r("div",Qe,[r("div",Te,b(Z.value),1)])])):R("",!0),G.value?R("",!0):(n(),p("div",Re,b(e.$t("products.empty")),1))])])])]),_:1})],64))}},st=ne(Ee,[["__scopeId","data-v-e76f9041"]]);export{st as default};
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.