Files
tehran_taj/apps/user-app-v2/dist/assets/HomeView-CQLQtnvV.js
T

2 lines
11 KiB
JavaScript

import{d as q,u as ue,o as oe,a as de,b as s,c as a,e as i,F as T,r as L,n as B,f as D,g as x,h as $,i as w,_ as j,j as X,t as N,I as Z,k as _e,l as ve,w as pe,m as R,p as M,q as fe,s as K,v as Q,x as me,y as ge,K as J,z as he,A as ye,B as ke,C as ee,D as $e,E as be,G as Ce}from"./index-BVYgSbCy.js";import{A as Pe}from"./AppPullRefresh-BouePViT.js";import{R as Ie}from"./RateStrip-t7odlsZa.js";import{P as Se,a as we}from"./ProductCard-y3AGJZ9N.js";import{u as xe}from"./catalogStore-C2zK5kiW.js";import"./filters-DRthpnLh.js";const Ee={key:0,class:"hero"},Re=["onClick"],Me=["src"],Te={key:1,class:"hero__artFallback","aria-hidden":"true"},Ae={key:0,class:"hero__dots"},Oe=["aria-label","onClick"],te=46,He=.76,Be=36.6,Le=.75,De=q({__name:"HeroCarousel",props:{slides:{},autoplay:{type:Boolean,default:!0}},setup(_){const h=_,p=$(0),P=$(null),v=$(!1),o=$(0);let u=0,f=null,y;const k=ue(),r=w(()=>h.slides.length);function m(e){let t=e-p.value;r.value>2&&(t>r.value/2&&(t-=r.value),t<-r.value/2&&(t+=r.value));const n=v.value?o.value:0,d=Math.abs(t),I=t*Be+n,F=t===0?1:He,U=d>1?0:d===0?1:Le;return{transform:`translate3d(${I}%, 0, 0) scale(${F})`,opacity:String(U),zIndex:String(10-d),pointerEvents:d>1?"none":"auto",transition:v.value?"none":"transform .42s cubic-bezier(.22,.61,.36,1), opacity .42s ease"}}function S(e){p.value=(e%r.value+r.value)%r.value,H()}function b(){S(p.value+1)}function E(){S(p.value-1)}function C(e){var t,n;r.value<2||(v.value=!0,u=e.clientX,o.value=0,f=e.pointerId,(n=(t=e.currentTarget).setPointerCapture)==null||n.call(t,e.pointerId),O())}function A(e){var n;if(!v.value||e.pointerId!==f)return;const t=((n=P.value)==null?void 0:n.clientWidth)||1;o.value=(e.clientX-u)/t*100}function z(e){if(!v.value)return;const t=e.clientX-u;v.value=!1,o.value=0,f=null,t>te?E():t<-te?b():H()}function G(e){Math.abs(o.value)>1||e!==p.value&&S(e)}function O(){y&&clearInterval(y),y=void 0}function H(){O(),h.autoplay&&!k.isReducedMotion&&r.value>1&&(y=setInterval(b,6e3))}return oe(H),de(O),(e,t)=>_.slides.length?(s(),a("section",Ee,[i("div",{class:"hero__stage",ref_key:"stage",ref:P,onPointerdown:C,onPointermove:A,onPointerup:z,onPointercancel:z},[(s(!0),a(T,null,L(_.slides,(n,d)=>(s(),a("article",{key:n.key,class:D(["hero__card",{"is-active":d===p.value}]),style:B(m(d)),onClick:I=>G(d)},[n.image?(s(),a("img",{key:0,src:n.image,alt:"",class:"hero__art",draggable:"false"},null,8,Me)):(s(),a("div",Te))],14,Re))),128))],544),_.slides.length>1?(s(),a("div",Ae,[(s(!0),a(T,null,L(_.slides,(n,d)=>(s(),a("button",{key:n.key,type:"button",class:D(["hero__dot",{"is-active":d===p.value}]),"aria-label":`اسلاید ${d+1}`,onClick:I=>S(d)},null,10,Oe))),128))])):x("",!0)])):x("",!0)}}),ze=j(De,[["__scopeId","data-v-ddde804b"]]),Ge={class:"cats no-scrollbar"},Ue=["onClick"],Ne={class:"cats__mark","aria-hidden":"true"},Fe=["src"],Ve={class:"cats__title"},Xe=q({__name:"CategoryGrid",props:{categories:{},activeId:{}},emits:["select"],setup(_,{emit:h}){const p=h;return(P,v)=>(s(),a("div",Ge,[(s(!0),a(T,null,L(_.categories,o=>{var u;return s(),a("button",{key:o.id,type:"button",class:D(["cats__tile",{"is-active":o.id===_.activeId}]),onClick:f=>p("select",o)},[i("span",Ne,[(u=o.icon)!=null&&u.image?(s(),a("img",{key:0,src:o.icon.image,alt:""},null,8,Fe)):(s(),X(Z,{key:1,icon:"vuesax-linear:3d-cube-scan",size:"27"}))]),i("span",Ve,N(o.title),1)],10,Ue)}),128))]))}}),qe=j(Xe,[["__scopeId","data-v-155beefb"]]),je={class:"panel__art"},We=["alt"],Ye={class:"panel__title"},Ke={class:"panel__meta"},Qe={class:"panel__weight"},Ze={key:0,class:"panel__wageOld"},Je={class:"panel__wage"},et=q({__name:"ProductPanel",props:{value:{},wageBefore:{}},emits:["open"],setup(_,{emit:h}){const p=_,P=h,{image:v,title:o,min_gram:u,wage:f}=_e(p.value);function y(k){return k%1===0?String(k):k.toFixed(2)}return(k,r)=>{const m=ve("lazy");return s(),a("article",{class:"panel","data-product-origin":"",onClick:r[0]||(r[0]=S=>P("open",_.value))},[i("div",je,[pe(i("img",{alt:R(o)},null,8,We),[[m,R(v)]]),M(Se,{tags:_.value.tags,class:"panel__tags"},null,8,["tags"])]),i("h3",Ye,N(R(o)),1),i("div",Ke,[i("span",Qe,N(R(u))+" گرم",1),R(f)!=null?(s(),a(T,{key:0},[r[1]||(r[1]=i("span",{class:"panel__sep","aria-hidden":"true"},null,-1)),_.wageBefore!=null?(s(),a("span",Ze,"اجرت "+N(y(_.wageBefore))+"٪",1)):x("",!0),i("span",Je,N(y(R(f)))+"٪ اجرت",1)],64)):x("",!0)])])}}}),ie=j(et,[["__scopeId","data-v-6cfb1820"]]),tt={class:"reel"},st=["onClick"],at={class:"reel__allMark","aria-hidden":"true"},se=46,nt=.78,ae=92.5,lt=.62,ot=q({__name:"ProductCarousel",props:{products:{}},emits:["open","all"],setup(_,{emit:h}){const p=_,P=h,v=$(0),o=$(null),u=$(!1),f=$(0);let y=0,k=null;const r=w(()=>[...p.products.map(e=>({key:e.id,kind:"product",product:e})),{key:"__all__",kind:"all"}]),m=w(()=>r.value.length);function S(e){let t=e-v.value;m.value>2&&(t>m.value/2&&(t-=m.value),t<-m.value/2&&(t+=m.value));const n=u.value?f.value:0,d=t*ae+n,I=Math.min(Math.abs(t+n/ae),1),F=1-(1-nt)*I,U=1-(1-lt)*I,l=Math.abs(t)<=1,c=l?U:0;return{transform:`translate3d(${d}%, 0, 0) scale(${F})`,opacity:String(c),zIndex:String(10-Math.abs(t)),pointerEvents:l?"auto":"none",transition:u.value?"none":"transform .55s cubic-bezier(.21,1.02,.36,1), opacity .45s ease"}}function b(e){v.value=(e%m.value+m.value)%m.value}function E(){b(v.value+1)}function C(){b(v.value-1)}function A(e){var t,n;m.value<2||(u.value=!0,y=e.clientX,f.value=0,k=e.pointerId,(n=(t=e.currentTarget).setPointerCapture)==null||n.call(t,e.pointerId))}function z(e){var n;if(!u.value||e.pointerId!==k)return;const t=((n=o.value)==null?void 0:n.clientWidth)||1;f.value=(e.clientX-y)/t*100}function G(e){if(!u.value)return;const t=e.clientX-y;u.value=!1,f.value=0,k=null,t>se?C():t<-se&&E()}function O(e,t){if(!(Math.abs(f.value)>1)){if(e!==v.value){b(e);return}P("open",t)}}function H(e){if(!(Math.abs(f.value)>1)){if(e!==v.value){b(e);return}P("all")}}return(e,t)=>(s(),a("section",tt,[i("div",{class:"reel__stage",ref_key:"stage",ref:o,onPointerdown:A,onPointermove:z,onPointerup:G,onPointercancel:G},[(s(!0),a(T,null,L(r.value,(n,d)=>(s(),a("div",{key:n.key,class:D(["reel__cell",{"is-active":d===v.value}]),style:B(S(d))},[n.kind==="product"?(s(),X(ie,{key:0,value:n.product,onOpen:I=>O(d,I)},null,8,["value","onOpen"])):(s(),a("button",{key:1,type:"button",class:"reel__all",onClick:I=>H(d)},[i("span",at,[M(Z,{icon:"vuesax-linear:arrow-left-1",size:"26"})]),t[0]||(t[0]=i("span",{class:"reel__allText"},"مشاهده همه محصولات جدید",-1))],8,st))],6))),128))],544)]))}}),it=j(ot,[["__scopeId","data-v-1df7c763"]]),rt="/assets/shipping-and-delivery-CyUGL93q.png",ct="/assets/sports-and-competition-ao926_SX.png",re="/assets/brand-logo-Q_YZU76j.png",ut=[{type:"popup",src:rt,text:"ارسال سریع و مطمئن سفارش‌های شما به سراسر کشور.",link:void 0},{type:"popup",src:ct,text:`جدیدترین محصولات ${K.name} را در بخش محصولات جدید ببینید.`,link:void 0},{type:"popup",src:re,text:`${K.name}، همراه شما در خرید و فروش طلا.`,link:void 0}],dt=fe("config",{state:()=>({config:{main_slider:ut},cats:[],loaded:!1}),actions:{setCats(_){this.cats=_},async init(_=!1){try{const{categories:h}=await Q.getCatalogFacets();this.cats=h.map(p=>({...p,icon:{image:re}})),this.loaded=!0}catch(h){console.log(h)}}}}),_t={class:"home"},vt={class:"home__bar"},pt={class:"home__barInner"},ft=["alt"],mt={key:0,class:"home__chips no-scrollbar"},gt=["onClick"],ht={class:"home__rail no-scrollbar"},yt={class:"home__list"},kt={key:4,class:"home__empty"},$t=70,ne=6,le=4,bt=100,Ct=q({__name:"HomeView",setup(_){let h=!1;const p=$e(),P=dt(),v=me(),o=xe(),u=ge(),f=$(!o.loaded),y=$(!1),k=w(()=>o.products),r=$(u.peek(J.goldPrice)??null),m=$(u.peek(J.homeSlider)??null),S=$(h);function b(l){return{"--reveal-delay":`${l*$t}ms`}}const E=$([]),C=$(null),A=w(()=>[...new Set(E.value.flatMap(l=>l.tags??[]))]),z=w(()=>C.value?E.value.filter(l=>{var c;return(c=l.tags)==null?void 0:c.includes(C.value)}):E.value),G=w(()=>k.value),O=w(()=>k.value.slice(0,ne)),H=w(()=>k.value.slice(0,le)),e=w(()=>(m.value??[]).filter(l=>l.image).map((l,c)=>({key:`${c}-${l.image}`,image:l.image})));function t(l){Ce(l)}function n(l){v.query.cats=[l.id],p.push({name:"search"})}function d(){p.push({name:"newestProduct"})}async function I(l=!1){const[c,W,g,V,Y]=await Promise.allSettled([(async()=>{l&&o.invalidate();const ce=await Q.listProductsPaged({page:1,limit:Math.max(ne,le),sort:"newest"});o.replace(ce.rows)})(),P.init(l),u.goldPrice({force:l}),u.homeSlider({force:l}),Q.listProductsPaged({page:1,limit:bt,tagged:!0,sort:"newest"})]);Y.status==="fulfilled"?(E.value=Y.value.rows,C.value&&!A.value.includes(C.value)&&(C.value=null)):console.log(Y.reason),c.status==="rejected"&&console.log(c.reason),W.status==="rejected"&&console.log(W.reason),r.value=g.status==="fulfilled"?g.value:null,m.value=V.status==="fulfilled"?V.value:null}async function F(){try{await I(!0)}finally{y.value=!1}}oe(async()=>{await I(),f.value=!1,!S.value&&(await he(),requestAnimationFrame(()=>{S.value=!0,h=!0}))});let U=!1;return ye(async()=>{if(!U){U=!0;return}try{r.value=await u.goldPrice({force:!0})}catch(l){console.log(l)}}),(l,c)=>{const W=be("container");return s(),a("div",_t,[i("header",vt,[i("div",pt,[i("img",{src:ke,alt:R(K).name,class:"home__logo"},null,8,ft),M(Ie,{quote:r.value,compact:"",class:"home__rate"},null,8,["quote"])])]),M(Pe,{modelValue:y.value,"onUpdate:modelValue":c[1]||(c[1]=g=>y.value=g),onRefresh:F},{default:ee(()=>[M(W,{class:D(["home__body",{"is-revealed":S.value}])},{default:ee(()=>[e.value.length?(s(),X(ze,{key:0,slides:e.value,class:"home__hero home__reveal",style:B(b(0))},null,8,["slides","style"])):x("",!0),R(P).cats.length?(s(),a("section",{key:1,class:"home__section home__reveal",style:B(b(1))},[c[2]||(c[2]=i("h2",{class:"home__heading"},"دسته بندی ها",-1)),M(qe,{categories:R(P).cats,"active-id":null,onSelect:n},null,8,["categories"])],4)):x("",!0),E.value.length?(s(),a("section",{key:2,class:"home__section home__reveal",style:B(b(2))},[c[3]||(c[3]=i("h2",{class:"home__heading"},"ویژه‌ها",-1)),A.value.length>1?(s(),a("div",mt,[i("button",{type:"button",class:D(["home__chip",{"is-on":C.value===null}]),onClick:c[0]||(c[0]=g=>C.value=null)}," همه ",2),(s(!0),a(T,null,L(A.value,g=>(s(),a("button",{key:g,type:"button",class:D(["home__chip",{"is-on":C.value===g}]),onClick:V=>C.value=g},N(g),11,gt))),128))])):x("",!0),i("div",ht,[(s(!0),a(T,null,L(z.value,g=>(s(),X(we,{key:g.id,value:g,class:"home__railCard"},null,8,["value"]))),128))])],4)):x("",!0),G.value.length?(s(),a("section",{key:3,class:"home__section home__reveal",style:B(b(2))},[c[4]||(c[4]=i("h2",{class:"home__heading"},"محصولات جدید",-1)),M(it,{products:O.value,onOpen:t,onAll:d},null,8,["products"]),i("div",yt,[(s(!0),a(T,null,L(H.value,(g,V)=>(s(),X(ie,{key:g.id,value:g,class:"home__reveal",style:B(b(3+V)),onOpen:t},null,8,["value","style"]))),128))])],4)):x("",!0),!f.value&&!k.value.length?(s(),a("section",kt,[M(Z,{icon:"vuesax-linear:box",size:"26"}),c[5]||(c[5]=i("p",null,"هنوز محصولی در مجموعه ثبت نشده است.",-1))])):x("",!0)]),_:1},8,["class"])]),_:1},8,["modelValue"])])}}}),Rt=j(Ct,[["__scopeId","data-v-fee22319"]]);export{Rt as default};