1var e=Object.defineProperty,t=Object.defineProperties,r=Object.getOwnPropertyDescriptors,a=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,u=Object.prototype.propertyIsEnumerable,l=(t,r,a)=>r in t?e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[r]=a,i=(e,t)=>{for(var r in t||(t={}))s.call(t,r)&&l(e,r,t[r]);if(a)for(var r of a(t))u.call(t,r)&&l(e,r,t[r]);return e},c=(e,t,r)=>new Promise((a,s)=>{var u=e=>{try{i(r.next(e))}catch(t){s(t)}},l=e=>{try{i(r.throw(e))}catch(t){s(t)}},i=e=>e.done?a(e.value):Promise.resolve(e.value).then(u,l);i((r=r.apply(e,t)).next())});import{d as n,a as o,u as p,c as g,r as f,b as v,n as d}from"./eJ0o3tQu.js";const m=e=>Array.isArray(e)?e:[],b=(e,t=0)=>{const r=Number(e);return Number.isFinite(r)?r:t},y=(e,t=0)=>{const r=Number(e);return Number.isFinite(r)&&r>0?r:t},h=(e,t=[0,0])=>{var r,a,s,u;const l=m(e),i=m(t),c=null!=(a=null!=(r=l[0])?r:i[0])?a:0;return[c,null!=(u=null!=(s=l[1])?s:i[1])?u:c]},S=(e,a={categories:[],attributes:[],manufacturers:[],prices:[0,0],priceTabs:[],page:1,pages:0,total:0,perPage:!1})=>{const s=e&&"object"==typeof e?e:{},u=a&&"object"==typeof a?a:{categories:[],attributes:[],manufacturers:[],prices:[0,0],priceTabs:[],page:1,pages:0,total:0,perPage:!1};return l=i(i({},{categories:[],attributes:[],manufacturers:[],prices:[0,0],priceTabs:[],page:1,pages:0,total:0,perPage:!1}),s),c={categories:m(s.categories),attributes:m(s.attributes),manufacturers:m(s.manufacturers),prices:h(s.prices,u.prices),priceTabs:m(s.priceTabs),pages:b(s.pages,b(u.pages)),total:b(s.total,b(u.total)),perPage:y(s.perPage,y(u.perPage))||!1},t(l,r(c));var l,c},F=["search","page","stock","categories","attributes","manufacturers","price_min","price_max","sale","sort"],P=(e,t)=>m(e).map(e=>e&&"object"==typeof e?e[t]:void 0).filter(e=>null!=e&&""!==e),_=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),j=e=>m(Array.isArray(e)?e:String(e||"").split(",")).map(e=>String(e||"").trim()).filter(Boolean),k=(e={})=>JSON.stringify(Object.keys(e).sort().map(t=>[t,e[t]])),w=(e,t)=>{for(const r of m(e)){if(String(r.category_id)===String(t))return{category_id:r.category_id,name:r.name,category_path:r.category_path||!1};const e=w(r.childrens,t);if(e)return e}return null},O=n("filter",()=>{const e=o(),t=p();let r=1;e.query.page&&(r=b(parseInt(e.query.page,10),1));const a=f({categories:[],attributes:[],manufacturers:[],prices:[0,0],priceTabs:[],page:1,pages:0,total:0,perPage:!1}),s=f({categories:[],attributes:[],manufacturers:[],prices:[0,0],priceTabs:[],page:1,pages:0,total:0,perPage:!1}),u=f([0,0]),l=f({stockStatus:"all",categories:[],attributes:[],manufacturers:[],prices:[],saleStatus:!1,newStatus:!1,sorting:!1,search:"",from:"catalog",page:r,seoFeed:!1}),n=f([]),O=f(0),x=f(0),T=f(0),q=f(!1),A=f(!1),M=f(!1),N=f(0),Q=f(0),U=f("");let V=null;const B=g(()=>s.value),I=g(()=>a.value),D=g(()=>l.value),H=g(()=>n.value),R=g(()=>O.value),E=g(()=>x.value),J=(t={})=>{const r=l.value||{},s=i({},e.query);for(const e of F)delete s[e];const u=h(a.value.prices),c=h(r.prices,u),n=P(r.categories,"category_id"),o=P(r.attributes,"attribute_id"),p=P(r.manufacturers,"manufacturer_id");b(r.page,1)>1&&(s.page=String(b(r.page,1))),r.stockStatus&&"all"!==r.stockStatus&&(s.stock=r.stockStatus),n.length&&(s.categories=n.join(",")),o.length&&(s.attributes=o.join(",")),p.length&&(s.manufacturers=p.join(",")),c[0]===u[0]&&c[1]===u[1]||(s.price_min=String(c[0]),s.price_max=String(c[1])),r.saleStatus&&(s.sale="1"),r.sorting&&(s.sort="object"==typeof r.sorting?r.sorting.value:r.sorting);const g=String(r.search||"").trim();return g&&!r.seoFeed&&d(g).length>=2&&(s.search=g),((e={})=>Object.entries(e).reduce((e,[t,r])=>(null==r||""===r||Array.isArray(r)&&r.length<1||(e[t]=r),e),{}))(i(i({},s),t))},z=(e,t,...r)=>c(null,[e,t,...r],function*(e,t,r={}){const s=l.value||{},u=P(s.categories,"category_id"),i=P(s.attributes,"attribute_id"),c=P(s.manufacturers,"manufacturer_id"),n=h(a.value.prices),o=h(s.prices,n),p=m(s.prices).length>=2&&(o[0]!==n[0]||o[1]!==n[1]),g={stockStatus:s.stockStatus||"all",categories:u,attributes:i,manufacturers:c,sorting:s.sorting||!1,saleStatus:s.saleStatus?1:0,newStatus:s.newStatus?1:0,onlyQuantity:e?1:0,page:b(s.page,1),from:s.from||"catalog",currentPage:t,seoFeed:!!s.seoFeed},f=d(s.search);f.length>=2&&!s.seoFeed&&(g.search=f),p&&(g.prices=o);r.skipFilterUpdate&&0===u.length&&0===i.length&&0===c.length&&"all"===(g.stockStatus||"all")&&!g.saleStatus&&!g.newStatus&&!g.sorting&&!g.prices&&!g.seoFeed&&(g.withFilter="false");const y=yield v("index.php?route=api/filter/filterProductsHandler",g);return y&&"object"==typeof y?y:{success:!1}}),C=(e=l.value||{})=>{const t=h(a.value.prices),r=h(e.prices,t),s=m(e.prices).length>=2&&(r[0]!==t[0]||r[1]!==t[1]);return d(e.search).length>=2&&!e.seoFeed&&0===P(e.categories,"category_id").length&&0===P(e.attributes,"attribute_id").length&&0===P(e.manufacturers,"manufacturer_id").length&&"all"===(e.stockStatus||"all")&&!e.saleStatus&&!e.newStatus&&!e.sorting&&!s};return{filter:s,defaultFilter:a,filterValues:l,products:n,total:O,perPage:M,pages:T,preTotal:x,created:q,creating:A,getFilter:B,getDefaultFilter:I,getFilterValues:D,getProducts:H,getTotal:R,getPreTotal:E,createFilter:(e,...t)=>c(null,[e,...t],function*(e,t={}){if(V)return V;A.value=!0;const r=!1!==t.updateResultTotals,l={seoFeed:e};V=c(null,null,function*(){const e=yield v("index.php?route=api/filter/createFilterHandler",l);if(null==e?void 0:e.success){const t=S(e.filter,a.value);a.value=t,u.value=t.prices,s.value=t;const l=y(t.perPage,y(M.value));l>0&&(M.value=l),r&&(T.value=t.pages,O.value=t.total,x.value=t.total),q.value=!0}return e});try{return yield V}finally{V=null,A.value=!1}}),filterProducts:(e,...t)=>c(null,[e,...t],function*(e,t=!1,r=!1,a="",u={}){const i=!1!==u.updateFilter,o=e?Q.value+1:N.value+1;e?Q.value=o:N.value=o;
1const p=!0===u.skipFilterUpdate&&!e&&C()?yield c(null,null,function*(){const e=l.value||{};if(!C(e))return null;const t=d(e.search),r=b(e.page,1),[a,s]=yield Promise.all([v("index.php?route=api/search/search",{name:t,limit:24,page:r,withFilter:"false"}),z(!0,"",{skipFilterUpdate:!0})]);if(!a||"object"!=typeof a)return s&&"object"==typeof s?s:{success:!1};const u=m(a.products),i=b(null==s?void 0:s.total,u.length);return{success:!1!==a.success,products:u,filter:a.filter&&"object"==typeof a.filter?a.filter:{},total:i,pages:y(null==s?void 0:s.pages,Math.ceil(i/24)),perPage:24}}):yield z(e,a,{skipFilterUpdate:!0===u.skipFilterUpdate});if(!(e?o===Q.value:o===N.value))return{success:!1,ignored:!0};if(null==p?void 0:p.success){if(e)return void(x.value=b(p.total));const r=p.filter&&"object"==typeof p.filter?p.filter:null;if(r&&i){const e=S(r,s.value);_(r,"categories")&&(s.value.categories=e.categories),_(r,"attributes")&&(s.value.attributes=e.attributes),_(r,"manufacturers")&&(s.value.manufacturers=e.manufacturers),_(r,"prices")&&(s.value.prices=e.prices)}const a=m(p.products);t||(n.value=a),t&&(n.value=n.value.concat(a));const u=b(p.total),l=y(p.perPage,y(null==r?void 0:r.perPage,y(s.value.perPage,y(M.value))));x.value=u,O.value=u,l>0&&(M.value=l),T.value=y(p.pages,l>0?Math.ceil(u/l):0)}return p}),clearFilter:()=>{const e=h(a.value.prices);l.value={stockStatus:"all",categories:[],attributes:[],manufacturers:[],prices:e,saleStatus:!1,newStatus:!1,sorting:!1,search:"",from:"catalog",page:1,seoFeed:!1}},setSorting:e=>{l.value.sorting=e},makeFilterRequest:z,applyQueryToFilterValues:(t=e.query)=>{const r=l.value;if(t.page&&(r.page=Math.max(b(parseInt(t.page,10),1),1)),_(t,"stock")&&(r.stockStatus=String(t.stock||"all")),_(t,"sale")&&(r.saleStatus="1"===t.sale||"true"===t.sale),_(t,"sort")&&(r.sorting=t.sort||!1),_(t,"search")&&(r.search=String(t.search||"").trim()),_(t,"categories")&&(r.categories=j(t.categories).map(e=>w(s.value.categories,e)).filter(Boolean)),_(t,"manufacturers")&&(r.manufacturers=j(t.manufacturers).map(e=>((e,t)=>m(e).find(e=>String(e.manufacturer_id)===String(t))||null)(s.value.manufacturers,e)).filter(Boolean)),_(t,"attributes")&&(r.attributes=j(t.attributes).map(e=>((e,t)=>{for(const r of m(e)){const e=m(r.attributes).find(e=>String(e.attribute_id)===String(t));if(e)return{attribute_id:e.attribute_id,name:e.name}}return null})(s.value.attributes,e)).filter(Boolean)),_(t,"price_min")||_(t,"price_max")){const e=h(a.value.prices),s=b(t.price_min,e[0]),u=b(t.price_max,e[1]);r.prices=[Math.min(s,u),Math.max(s,u)]}},buildQueryFromFilterValues:J,syncQueryFromFilterValues:(...r)=>c(null,[...r],function*({mode:r="replace",extra:a={}}={}){if("undefined"==typeof window)return;const s=J(a),u=k(s);u!==k(e.query)&&(U.value=u,yield t[r]({query:s}).catch(()=>{}))}),consumeOwnQuery:(t=e.query)=>{const r=k(t);return!(!U.value||U.value!==r)&&(U.value="",!0)}}});export{O 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.