1 line
15 KiB
JavaScript
1 line
15 KiB
JavaScript
import{A as e,At as t,F as n,G as r,M as i,Nt as a,Pt as o,R as s,U as c,_ as l,c as u,d,f,g as p,h as ee,i as m,k as te,l as h,nt as g,o as ne,t as re,u as _,ut as v,v as y}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n as ie,u as b}from"./BasicIcon-ba1FsUKx.js";import{t as ae}from"./IconCatalog-CtNgvEo2.js";import{C as oe,c as se,d as ce,r as le,w as ue}from"./index-CgTrQFr5.js";import{t as de}from"./IconFilter-Br-Ixz6t.js";import{t as fe}from"./IconDiamond-CCzZ7nPM.js";import{t as pe}from"./PageHeader-fQXEgnJ0.js";import{t as me}from"./PageSkeleton-DYdjm4l9.js";import{t as he}from"./crm-CgnSby61.js";import{n as ge,r as _e,t as ve}from"./useSlotBanners-i4vRixDi.js";import{t as ye}from"./useTouchSwipe-C8fUyAcQ.js";import{t as be}from"./bannerLink-BW8t2Oqp.js";import"./SearchField-dVDn9y5S.js";import{t as xe}from"./IconHeart-CvzbNH_T.js";import{n as Se,r as Ce,t as we}from"./productAvailability-B5nVr_sJ.js";import{t as x}from"./AppSelect-aTK4DygI.js";var Te={class:`page products-page`},Ee=[`aria-expanded`],De={class:`desktop-page__head desktop-only products-desk-head`},Oe={class:`products-desk-head__copy`},ke={class:`desktop-page__title`},Ae={class:`desktop-page__subtitle`},je={key:0,class:`products-filter-desk desktop-only`},Me={class:`products-filter-sheet products-filter-sheet--desk`},Ne={class:`products-filter-actions products-filter-actions--desk`},Pe={class:`products-filter-actions`},Fe={class:`page__scroll page__scroll--with-nav products-scroll`},Ie={key:0},Le={class:`cat-banner__content`},Re={key:0,class:`cat-banner__lead`},ze={key:1,class:`cat-banner__title-row`},Be={key:0,class:`cat-banner__icon-ring`,"aria-hidden":`true`},Ve={key:1,class:`cat-banner__title`},He={key:2,class:`cat-banner__title`},Ue={key:3,class:`cat-banner__tagline`},We={key:0,class:`cat-banner__icon-ring cat-banner__icon-ring--aside`,"aria-hidden":`true`},Ge={key:1,class:`cat-banner__dots`,role:`tablist`,"aria-label":`بنرها`},Ke=[`aria-label`,`aria-selected`,`onClick`],qe={key:0,class:`chips-row scroll-x`},Je=[`aria-label`],Ye=[`onClick`],Xe=[`onClick`],Ze={class:`list-meta`},Qe=[`aria-label`],$e={class:`products-list`},et=[`onClick`],tt={class:`product-item__body`},nt={class:`product-item__head`},rt={class:`product-item__title`},it={key:0,class:`new-tag new-tag--oos`},at={key:1,class:`new-tag`},ot=[`aria-label`,`aria-pressed`,`onClick`],st={class:`product-item__specs`},ct={class:`swatches`},lt=[`onClick`],ut={key:1,class:`empty-list`},S=re(y({__name:`ProductsView`,setup(re){let y=oe(),S=ue(),C=he(),w=ce(),{banners:T}=ve(`products_hero`),E=g(0);c(T,()=>{E.value=0});let D=u(()=>M.value||P.value?0:T.value.length),O=u(()=>{if(M.value||P.value)return null;let e=T.value;return e.length?e[(E.value%e.length+e.length)%e.length]??null:null});function k(e){let t=T.value.length;t&&(E.value=(e%t+t)%t)}let{onTouchStart:A,onTouchEnd:j}=ye({enabled:()=>D.value>1,onSwipe(e){k(E.value+e)}}),M=u(()=>String(y.query.categoryId??``)),N=u(()=>String(y.query.companyId??``)),P=u(()=>String(y.query.season??``)),dt=u(()=>String(y.query.filterAxis??``)),F=u(()=>String(y.query.q??``)),ft=g(String(y.query.q??``)),I=g([]),L=g(!0),R=g(null),z=g(`newest`),B=g(!1),V=g(``),H=g(``),U=u(()=>!0),W=u(()=>[{value:``,label:`همه دستهها`},...C.usageCategories.map(e=>({value:e.id,label:e.title}))]),G=u(()=>[{value:``,label:`همه فصول`},...C.seasonCategories.map(e=>({value:e.id,label:e.title}))]),K=u(()=>!!M.value||!!P.value),q=u(()=>M.value?C.usageCategories.find(e=>e.id===M.value)?.title??`محصولات`:P.value?C.seasonCategories.find(e=>e.id===P.value)?.title??`محصولات`:F.value?`جستجو: ${F.value}`:`محصولات`);function pt(e){let t=e.trim();return t.startsWith(`پارچههای `)?{lead:`پارچههای`,headline:t.slice(10)}:{lead:void 0,headline:t}}function mt(e){return e.icon||(e.id===`summer`?`bolt`:e.id===`winter`?`feather`:`diamond`)}function ht(){let e=Y.value.ctaLink?.trim();e&&be(e,S)}let J=u(()=>O.value?.bannerLink?.trim()||``);function gt(e){J.value&&(e.target.closest(`.cat-banner__cta, .cat-banner__dots`)||be(J.value,S))}let Y=u(()=>{let e=O.value;if(e)return{lead:void 0,headline:e.showTitle===!1?void 0:e.title,tagline:e.showSubtitle===!1?void 0:e.subtitle||void 0,showIcon:!1,ctaLabel:e.showCta===!1?void 0:e.ctaLabel||void 0,ctaLink:e.ctaLink||void 0};if(M.value){let e=C.usageCategories.find(e=>e.id===M.value),t=pt(e?.title??q.value);return{lead:e?.showTitle===!1?void 0:t.lead,headline:e?.showTitle===!1?void 0:t.headline,tagline:e?.showSubtitle===!1?void 0:e?.subtitle,showIcon:e?.showIcon!==!1}}if(P.value){let e=C.seasonCategories.find(e=>e.id===P.value);return{lead:void 0,headline:e?.showTitle===!1?void 0:e?.title??q.value,tagline:e?.showDescription===!1?void 0:e?.description||void 0,showIcon:e?.showIcon!==!1}}return{lead:void 0,headline:q.value,tagline:F.value?`نتایج جستجو`:`مشاهده و ثبت سفارش`,showIcon:!1}}),X=u(()=>{if(O.value||Y.value.showIcon===!1)return null;if(M.value){let e=C.usageCategories.find(e=>e.id===M.value);if(e)return ge(_e(e),ae)}if(P.value){let e=C.seasonCategories.find(e=>e.id===P.value);if(e)return ge(mt(e),fe)}return null}),Z=u(()=>{let e=O.value?.imageUrl?.trim();if(e)return e;if(M.value){let e=C.usageCategories.find(e=>e.id===M.value);if(e?.imageUrl)return e.imageUrl}if(P.value){let e=C.seasonCategories.find(e=>e.id===P.value);if(e?.imageUrl)return e.imageUrl}}),_t=u(()=>Z.value?{backgroundImage:`url(${Z.value})`}:void 0);u(()=>!M.value);let vt=u(()=>dt.value===`usage`||M.value?`season`:dt.value===`season`||P.value?`usage`:`season`),yt=u(()=>vt.value===`season`?`فصل`:`دسته کاربرد`),Q=u(()=>{let e=F.value.trim().toLowerCase(),t=[...I.value];return e&&(t=t.filter(t=>t.name.toLowerCase().includes(e)||t.code.toLowerCase().includes(e)||(t.composition||``).toLowerCase().includes(e))),z.value===`name`?t.sort((e,t)=>e.name.localeCompare(t.name,`fa`)):t.sort((e,t)=>Number(t.isNew)-Number(e.isNew)||e.name.localeCompare(t.name,`fa`))});function bt(){z.value=z.value===`newest`?`name`:`newest`}let xt=u(()=>z.value===`newest`?`مرتبسازی: جدیدترین`:`مرتبسازی: نام`);async function St(){L.value=!0,R.value=null;try{await C.loadCategories(),I.value=await C.loadBrowseProducts({categoryId:M.value||void 0,season:P.value||void 0,companyId:N.value||void 0})}catch(e){R.value=e instanceof Error?e.message:`بارگذاری محصولات ناموفق بود.`,I.value=[]}finally{L.value=!1}}te(async()=>{await w.hydrate(),await St()}),c([M,P,N],St),c(F,e=>{ft.value=e});function Ct(e){let t=M.value,n=t?`usage`:e?`season`:void 0;S.replace({path:`/products`,query:{...t?{categoryId:t}:{},...N.value?{companyId:N.value}:{},...e?{season:e}:{},...n?{filterAxis:n}:{},...F.value?{q:F.value}:{}}})}function wt(e){let t=P.value,n=t?`season`:e?`usage`:void 0;S.replace({path:`/products`,query:{...e?{categoryId:e}:{},...N.value?{companyId:N.value}:{},...t?{season:t}:{},...n?{filterAxis:n}:{},...F.value?{q:F.value}:{}}})}function Tt(e){S.push({path:`/product`,query:{id:e}})}function Et(e){return C.seasonCategories.find(t=>t.id===e)?.title??e}function Dt(e){w.toggle(e)}function Ot(){V.value=M.value,H.value=P.value,B.value=!0}function $(){B.value=!1}function kt(e,t){if(e)return`usage`;if(t)return`season`}function At(e,t){let n=kt(e,t);return{...e?{categoryId:e}:{},...t?{season:t}:{},...n?{filterAxis:n}:{},...N.value?{companyId:N.value}:{},...F.value?{q:F.value}:{}}}function jt(){S.replace({path:`/products`,query:At(V.value,H.value)}),$()}function Mt(){V.value=``,H.value=``,S.replace({path:`/products`,query:At(``,``)}),$()}return c(B,e=>{typeof window<`u`&&window.matchMedia(`(min-width: 768px)`).matches||(document.body.style.overflow=e?`hidden`:``)}),e(()=>{document.body.style.overflow=``}),(e,c)=>(i(),f(`div`,Te,[l(pe,{class:`mobile-only`,title:q.value,"show-back":``,centered:``,onBack:c[0]||=e=>v(S).back()},{trailing:r(()=>[U.value?(i(),f(`button`,{key:0,type:`button`,class:t([`nav-filter`,{"nav-filter--active":K.value}]),"aria-label":`فیلتر محصولات`,"aria-expanded":B.value,onClick:Ot},[l(de,{size:18})],10,Ee)):d(``,!0)]),_:1},8,[`title`]),h(`header`,De,[h(`div`,Oe,[h(`h1`,ke,o(q.value),1),h(`p`,Ae,o(Y.value.tagline||(F.value?`نتایج جستجو`:`مشاهده و ثبت سفارش`)),1)])]),U.value?(i(),f(`div`,je,[h(`div`,Me,[c[12]||=h(`header`,{class:`products-filter-sheet__head`},[h(`h2`,null,`فیلتر محصولات`)],-1),l(x,{modelValue:V.value,"onUpdate:modelValue":c[1]||=e=>V.value=e,class:`products-filter-section`,label:`دسته کاربرد`,"aria-label":`دسته کاربرد`,options:W.value},null,8,[`modelValue`,`options`]),l(x,{modelValue:H.value,"onUpdate:modelValue":c[2]||=e=>H.value=e,class:`products-filter-section`,label:`فصل`,"aria-label":`فصل`,options:G.value},null,8,[`modelValue`,`options`]),h(`div`,Ne,[l(le,{onClick:jt},{default:r(()=>[...c[11]||=[p(`اعمال فیلتر`,-1)]]),_:1}),K.value?(i(),f(`button`,{key:0,type:`button`,class:`products-filter-clear`,onClick:Mt},` پاک کردن فیلترها `)):d(``,!0)])])])):d(``,!0),(i(),_(ne,{to:`body`},[l(ie,{name:`products-filter-sheet`},{default:r(()=>[B.value&&U.value?(i(),f(`div`,{key:0,class:`products-filter-panel mobile-only`,role:`dialog`,"aria-modal":`true`,"aria-labelledby":`products-filter-title`,onClick:b($,[`self`])},[h(`div`,{class:`products-filter-sheet`,onClick:c[6]||=b(()=>{},[`stop`])},[c[15]||=h(`div`,{class:`products-filter-sheet__handle`,"aria-hidden":`true`},null,-1),h(`header`,{class:`products-filter-sheet__head`},[c[13]||=h(`h2`,{id:`products-filter-title`},`فیلتر محصولات`,-1),h(`button`,{type:`button`,class:`products-filter-sheet__close`,"aria-label":`بستن`,onClick:$},` × `)]),l(x,{modelValue:V.value,"onUpdate:modelValue":c[3]||=e=>V.value=e,class:`products-filter-section`,label:`دسته کاربرد`,"aria-label":`دسته کاربرد`,options:W.value},null,8,[`modelValue`,`options`]),l(x,{modelValue:H.value,"onUpdate:modelValue":c[4]||=e=>H.value=e,class:`products-filter-section`,label:`فصل`,"aria-label":`فصل`,options:G.value},null,8,[`modelValue`,`options`]),h(`div`,Pe,[l(le,{block:``,onClick:jt},{default:r(()=>[...c[14]||=[p(`اعمال فیلتر`,-1)]]),_:1}),K.value?(i(),f(`button`,{key:0,type:`button`,class:`products-filter-clear`,onClick:Mt},` پاک کردن فیلترها `)):d(``,!0),h(`button`,{type:`button`,class:`products-filter-link`,onClick:c[5]||=e=>{v(S).push(`/categories`),$()}},` مشاهده همه دستهبندیها `)])])])):d(``,!0)]),_:1})])),h(`div`,Fe,[R.value?(i(),f(`p`,Ie,o(R.value),1)):L.value?(i(),_(me,{key:1,variant:`grid`})):(i(),f(m,{key:2},[h(`section`,{class:t([`cat-banner`,{"cat-banner--photo":!!Z.value,"cat-banner--linked":!!J.value}]),style:a(_t.value),onClick:gt,onTouchstartPassive:c[7]||=(...e)=>v(A)&&v(A)(...e),onTouchendPassive:c[8]||=(...e)=>v(j)&&v(j)(...e)},[h(`div`,Le,[Y.value.lead?(i(),f(`p`,Re,o(Y.value.lead),1)):d(``,!0),Y.value.headline||X.value&&Z.value?(i(),f(`div`,ze,[X.value&&Z.value?(i(),f(`span`,Be,[(i(),_(s(X.value),{size:22,color:`#ffffff`}))])):d(``,!0),Y.value.headline?(i(),f(`h2`,Ve,o(Y.value.headline),1)):d(``,!0)])):Y.value.headline?(i(),f(`h2`,He,o(Y.value.headline),1)):d(``,!0),Y.value.tagline?(i(),f(`p`,Ue,o(Y.value.tagline),1)):d(``,!0),Y.value.ctaLabel?(i(),f(`button`,{key:4,type:`button`,class:`cat-banner__cta`,onClick:b(ht,[`stop`])},o(Y.value.ctaLabel),1)):d(``,!0)]),X.value&&!Z.value?(i(),f(`span`,We,[(i(),_(s(X.value),{size:26,color:`#ffffff`}))])):d(``,!0),D.value>1?(i(),f(`div`,Ge,[(i(!0),f(m,null,n(v(T),(e,n)=>(i(),f(`button`,{key:e.id,type:`button`,class:t([`cat-banner__dot`,{"cat-banner__dot--active":n===E.value}]),"aria-label":e.title,"aria-selected":n===E.value,onClick:b(e=>k(n),[`stop`])},null,10,Ke))),128))])):d(``,!0)],38),U.value?(i(),f(`div`,qe,[h(`div`,{class:`chips`,role:`tablist`,"aria-label":yt.value},[vt.value===`season`?(i(),f(m,{key:0},[h(`button`,{type:`button`,class:t([`chip`,{"chip--active":!P.value}]),onClick:c[9]||=e=>Ct(``)},` همه `,2),(i(!0),f(m,null,n(v(C).seasonCategories,e=>(i(),f(`button`,{key:e.id,type:`button`,class:t([`chip`,{"chip--active":P.value===e.id}]),onClick:t=>Ct(e.id)},o(e.title),11,Ye))),128))],64)):(i(),f(m,{key:1},[h(`button`,{type:`button`,class:t([`chip`,{"chip--active":!M.value}]),onClick:c[10]||=e=>wt(``)},` همه `,2),(i(!0),f(m,null,n(v(C).usageCategories,e=>(i(),f(`button`,{key:e.id,type:`button`,class:t([`chip`,{"chip--active":M.value===e.id}]),onClick:t=>wt(e.id)},o(e.title),11,Xe))),128))],64))],8,Je)])):d(``,!0),h(`div`,Ze,[h(`span`,null,`تعداد محصولات: `+o(Q.value.length.toLocaleString(`fa-IR`)),1),h(`button`,{type:`button`,class:`list-meta__sort`,"aria-label":xt.value,onClick:bt},[...c[16]||=[ee(`<span class="list-meta__sort-icon" aria-hidden="true" data-v-20ae6f8c><svg width="15" height="12" viewBox="0 0 15 12" fill="none" xmlns="http://www.w3.org/2000/svg" data-v-20ae6f8c><path d="M4.5 2.5V9.5" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" data-v-20ae6f8c></path><path d="M2.5 7.5L4.5 9.5L6.5 7.5" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" data-v-20ae6f8c></path><path d="M10.5 9.5V2.5" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" data-v-20ae6f8c></path><path d="M8.5 4.5L10.5 2.5L12.5 4.5" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" data-v-20ae6f8c></path></svg></span><span class="list-meta__sort-badge" data-v-20ae6f8c>۱</span><span class="list-meta__sort-label" data-v-20ae6f8c>مرتبسازی</span>`,3)]],8,Qe)]),h(`div`,$e,[(i(!0),f(m,null,n(Q.value,e=>(i(),f(`article`,{key:e.id,class:`product-item`,onClick:t=>Tt(e.id)},[h(`div`,{class:`product-item__image`,style:a(e.imageUrl?{backgroundImage:`url(${e.imageUrl})`}:void 0)},null,4),h(`div`,tt,[h(`div`,nt,[h(`div`,rt,[h(`strong`,null,o(e.name),1),v(we)(e)?(i(),f(`span`,it,`ناموجود`)):e.isNew?(i(),f(`span`,at,`جدید`)):d(``,!0)]),h(`button`,{type:`button`,class:`bookmark`,"aria-label":v(w).isFavorite(e.id)?`حذف از علاقهمندیها`:`افزودن به علاقهمندیها`,"aria-pressed":v(w).isFavorite(e.id),onClick:b(t=>Dt(e.id),[`stop`])},[l(xe,{size:18,filled:v(w).isFavorite(e.id),color:v(w).isFavorite(e.id)?`var(--color-primary)`:`#9ca3af`},null,8,[`filled`,`color`])],8,ot)]),h(`ul`,st,[h(`li`,null,`عرض: `+o(e.widthCm.toLocaleString(`fa-IR`))+` سانتیمتر`,1),h(`li`,null,`ترکیب: `+o(e.composition||`—`),1),h(`li`,null,`مناسب: `+o(Et(e.season)),1)]),h(`div`,ct,[(i(!0),f(m,null,n(e.colors.slice(0,6),(t,n)=>(i(),f(`span`,{key:n,class:`swatch`,style:a(v(Se)(t,v(Ce)(e.colorImages,e.colorVariantImages,n)))},null,4))),128))]),h(`button`,{type:`button`,class:`details-link`,onClick:b(t=>Tt(e.id),[`stop`])},[c[17]||=p(` مشاهده جزئیات `,-1),l(se,{size:14})],8,lt)])],8,et))),128))]),Q.value.length?d(``,!0):(i(),f(`p`,ut,`محصولی در این دسته یافت نشد.`))],64))])]))}}),[[`__scopeId`,`data-v-20ae6f8c`]]);export{S as default}; |