2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{d as le,u as Ie,o as ke,a as Pe,b as xe,w as ce,c as Re,e as n,f as r,g as p,F as H,r as j,n as V,h as $,i as ee,j as N,k as E,s as Ae,_ as ie,t as Z,l as Me,m as Fe,p as De,q as o,v as Ee,x as k,I as U,y as Be,z as Le,A as Ve,B as ne,C as we,D as Ne,E as Xe,G as qe,K as ve,H as oe,J as Oe,L as he,M as Te,N as Q}from"./index-CVwJmJzN.js";import{A as We}from"./AppPullRefresh-Dmucuir1.js";import{R as He}from"./RateStrip-CGcLM-Jj.js";import{P as ge}from"./ProductCard-FLh64_a3.js";import{S as ye}from"./SectionHead-0fBhSKkB.js";import{u as je}from"./filtersStore-CJnKqRzA.js";import{u as Ue}from"./useReveal-DsHH0sJn.js";import{u as Ge}from"./catalogStore-DqQUSSlC.js";import"./filters-D_vYSbiN.js";const Ke={key:0,class:"carousel"},Je=["data-index"],Ye=["src"],Qe={key:0,class:"carousel__dots",dir:"ltr"},Ze=["aria-label","onClick"],be=.92,et=le({__name:"Carousel",props:{slides:{},sideScale:{default:.72},gap:{default:3},borderRadius:{default:22},stiffness:{default:70},damping:{default:28},autoplay:{type:Boolean,default:!0},autoplayInterval:{default:7500}},setup(g){const s=g,v=Ie(),C=N(()=>{const e=s.slides.filter(t=>t.image);if(!e.length)return[];const a=[];let i=0;for(;a.length<Math.max(6,e.length*2);)for(const t of e)a.push({key:`${t.key}#${i++}`,image:t.image});return a}),x=E(null),d=E(null),h=E(!1),A=E(0),M=Ae([]);let _=0,f=0,m=0,I=!1,z=0,P=0,S=0,B=0,X=0,q=0,R=null,y=null,G=0,O,L=null;function te(e,a,i){let t=(e-a)%i;return t<-i/2&&(t+=i),t>=i/2&&(t-=i),t}function K(){const e=s.slides.filter(a=>a.image).length||1;return(Math.round(f)%e+e)%e}function l(){A.value=K()}function c(){var fe;const a=C.value.length;if(!a){M.value=[];return}const t=(((fe=d.value)==null?void 0:fe.clientWidth)||380)*be,w=s.sideScale,D=s.gap,W=t*.5+t*w*.5+D,_e=new Array(a);for(let ae=0;ae<a;ae++){const pe=te(ae,_,a),re=Math.abs(pe),ze=1-Math.min(re,1)*(1-w),Se=pe*W,me=re<2.1;_e[ae]={opacity:me?"1":"0",pointerEvents:me?"auto":"none",zIndex:String(100-Math.round(re*20)),transform:`translate3d(calc(-50% + ${Se.toFixed(2)}px), 0, 0) scale(${ze.toFixed(4)})`}}M.value=_e}function b(){if(v.isReducedMotion){_=f,m=0,c(),y=null;return}y!=null&&cancelAnimationFrame(y),G=performance.now();const e=a=>{const i=Math.min((a-G)/1e3,.064);G=a;const t=_-f,w=-s.stiffness*t,D=-s.damping*m,W=w+D;if(m+=W*i,_+=m*i,c(),Math.abs(m)<.002&&Math.abs(f-_)<.001){_=f,m=0,c(),y=null;return}y=requestAnimationFrame(e)};y=requestAnimationFrame(e)}function F(e){var i;if(C.value.length<2||R!==null||e.button!==void 0&&e.button!==0)return;const a=x.value;a&&(R=e.pointerId,I=!0,h.value=!0,se(),y!=null&&(cancelAnimationFrame(y),y=null),z=e.clientX,S=e.clientX,P=_,m=0,X=0,q=0,B=performance.now(),(i=a.setPointerCapture)==null||i.call(a,e.pointerId))}function u(e){var W;if(!I||e.pointerId!==R)return;const a=performance.now(),i=Math.max(1,a-B),t=e.clientX-z,w=e.clientX-S;q=Math.abs(t);const D=(((W=d.value)==null?void 0:W.clientWidth)??0)*be||320;_=P-t/D,X=-(w/D)/(i/1e3),S=e.clientX,B=a,c()}function T(e){if(!I||e.pointerId!==R)return;I=!1,h.value=!1,R=null;const a=C.value.length;if(q<6&&e.target instanceof Element){const t=e.target.closest(".carousel__card");if(t){const w=Number(t.dataset.index);if(!Number.isNaN(w)){const D=te(w,_,a);if(Math.abs(D)>.25){f=Math.round(_+D),b(),l(),s.autoplay&&Y();return}}}}m=X;const i=_+m*.16;f=Math.round(i),b(),l(),s.autoplay&&Y()}function $e(e){const a=s.slides.filter(w=>w.image).length;if(a<2)return;const i=K();let t=e-i;t>a/2&&(t-=a),t<-a/2&&(t+=a),f=Math.round(f)+t,b(),l()}let J=!0;function Y(){se(),J&&(!s.autoplay||v.isReducedMotion||s.slides.length<2||(O=setInterval(()=>{!I&&J&&(f=Math.round(f)+1,b(),l())},s.autoplayInterval)))}function se(){O&&(clearInterval(O),O=void 0)}function ue(){J=!1,se(),y!=null&&(cancelAnimationFrame(y),y=null),_=f,m=0,I=!1,h.value=!1,c(),l()}function Ce(){J=!0,c(),s.autoplay&&Y()}function de(){_=0,f=0,m=0,l(),c()}return ke(()=>{J=!0,de(),d.value&&typeof ResizeObserver<"u"&&(L=new ResizeObserver(()=>c()),L.observe(d.value)),s.autoplay&&Y()}),Pe(ue),xe(Ce),ce(()=>s.slides,()=>{de()}),ce(()=>[s.sideScale,s.gap,s.stiffness,s.damping],()=>c()),ce(()=>s.autoplay,e=>{e?Y():se()}),Re(()=>{if(ue(),L==null||L.disconnect(),R!==null&&x.value)try{x.value.releasePointerCapture(R)}catch{}}),(e,a)=>g.slides.length?(n(),r("section",Ke,[p("div",{ref_key:"viewport",ref:x,class:ee(["carousel__viewport",{"is-dragging":h.value}]),style:V({"--carousel-radius":`${g.borderRadius}px`}),onPointerdown:F,onPointermove:u,onPointerup:T,onPointercancel:T},[p("div",{ref_key:"stage",ref:d,class:"carousel__stage"},[(n(!0),r(H,null,j(C.value,(i,t)=>(n(),r("article",{key:i.key,class:"carousel__card","data-index":t,style:V(M.value[t])},[i.image?(n(),r("img",{key:0,src:i.image,alt:"",class:"carousel__art",draggable:"false"},null,8,Ye)):$("",!0)],12,Je))),128))],512)],38),g.slides.length>1?(n(),r("div",Qe,[(n(!0),r(H,null,j(g.slides,(i,t)=>(n(),r("button",{key:i.key,type:"button",class:ee(["carousel__dot",{"is-active":t===A.value}]),"aria-label":`اسلاید ${t+1}`,onClick:w=>$e(t)},null,10,Ze))),128))])):$("",!0)])):$("",!0)}}),tt=ie(et,[["__scopeId","data-v-a34a8c37"]]),st={class:"rail no-scrollbar"},at=["onClick"],ot={class:"rail__mark","aria-hidden":"true"},nt=["src"],lt={class:"rail__title"},it=le({__name:"CategoryRail",props:{categories:{},activeId:{}},emits:["select"],setup(g,{emit:s}){const v=s;return(C,x)=>(n(),r("div",st,[(n(!0),r(H,null,j(g.categories,d=>{var h;return n(),r("button",{key:d.id,type:"button",class:ee(["rail__chip",{"is-active":d.id===g.activeId}]),onClick:A=>v("select",d)},[p("span",ot,[(h=d.icon)!=null&&h.image?(n(),r("img",{key:0,src:d.icon.image,alt:""},null,8,nt)):$("",!0)]),p("span",lt,Z(d.title),1)],10,at)}),128))]))}}),rt=ie(it,[["__scopeId","data-v-b38bbeb0"]]),ct={class:"pr__art"},ut=["alt"],dt={key:1,class:"pr__artEmpty","aria-hidden":"true"},_t=["aria-label"],ft={key:2,class:"pr__flag"},pt={key:3,class:"pr__flag pr__flag--soft"},mt={class:"pr__body"},vt={class:"pr__title"},ht={class:"pr__meta"},gt={class:"pr__weight"},yt={key:0,class:"pr__wage"},bt=le({__name:"ProductRow",props:{value:{}},setup(g){const s=g,v=Me(),{image:C,id:x,title:d,min_gram:h,wage:A,is_exist:M,qty:_,isPreOrder:f}=Fe(s.value),m=E(null);function I(){Le(s.value,m.value)}const z=N(()=>{const P=A.value;return P==null?"":P%1===0?String(P):P.toFixed(2)});return(P,S)=>{const B=De("lazy");return n(),r("article",{ref_key:"root",ref:m,class:"pr","data-product-origin":"",onClick:I},[p("div",ct,[o(C)?Ee((n(),r("img",{key:0,alt:o(d)},null,8,ut)),[[B,o(C)]]):(n(),r("div",dt,[k(U,{icon:"vuesax-linear:diamonds",size:"22"})])),p("button",{type:"button",class:ee(["pr__fav",{"is-on":o(v).isFavorite(o(x))}]),"aria-label":o(v).isFavorite(o(x))?"حذف از علاقهمندی":"افزودن به علاقهمندی",onClick:S[0]||(S[0]=Be(X=>o(v).toggle(o(x)),["stop"]))},[k(U,{icon:o(v).isFavorite(o(x))?"vuesax-linear:heart-fill":"vuesax-linear:heart",size:"15"},null,8,["icon"])],10,_t),o(M)?o(f)&&o(_)===0?(n(),r("span",pt,"پیشسفارش")):$("",!0):(n(),r("span",ft,"ناموجود"))]),p("div",mt,[p("h3",vt,Z(o(d)),1),p("div",ht,[p("span",gt,Z(o(h))+" گرم",1),o(A)!=null?(n(),r("span",yt,"اجرت "+Z(z.value)+"٪",1)):$("",!0)]),S[1]||(S[1]=p("span",{class:"pr__cta"},"مشاهده",-1))]),k(U,{icon:"vuesax-linear:arrow-left-1",size:"18",class:"pr__chev","aria-hidden":"true"})],512)}}}),kt=ie(bt,[["__scopeId","data-v-b034f656"]]),xt="/assets/shipping-and-delivery-CyUGL93q.png",wt="/assets/sports-and-competition-ao926_SX.png",$t=[{type:"popup",src:xt,text:"ارسال سریع و مطمئن سفارشهای شما به سراسر کشور.",link:void 0},{type:"popup",src:wt,text:`جدیدترین محصولات ${ne.name} را در بخش محصولات جدید ببینید.`,link:void 0},{type:"popup",src:we,text:`${ne.name}، همراه شما در خرید و فروش طلا.`,link:void 0}],Ct=Ve("config",{state:()=>({config:{main_slider:$t},cats:[],loaded:!1}),actions:{setCats(g){this.cats=g},async init(g=!1){try{const{categories:s}=await Ne.getCatalogFacets();this.cats=s.map(v=>({...v,icon:{image:we}})),this.loaded=!0}catch(s){console.log(s)}}}}),zt={class:"home"},St={class:"home__bar"},It={class:"home__barInner"},Pt={key:0,class:"home__badge"},Rt=["alt"],At={class:"home__masonry"},Mt={class:"home__masonryCol"},Ft={class:"home__masonryCol"},Dt={class:"home__rows"},Et=le({__name:"HomeView",setup(g){const s=Te(),v=Ct(),C=Xe(),x=je(),d=Ge(),h=qe(),A=E(!d.loaded),M=E(!1),_=N(()=>d.products),f=E(h.peek(ve.goldPrice)??null),m=E(h.peek(ve.homeSlider)??null),{revealed:I,revealDelay:z,reveal:P}=Ue("home"),S=N(()=>{const l=_.value.slice(0,8);return l.length%2===1?l.slice(0,-1):l}),B=N(()=>_.value.slice(-10).reverse()),X=[{col:"left",size:"short"},{col:"right",size:"hero"},{col:"left",size:"hero"},{col:"right",size:"short"},{col:"left",size:"tall"},{col:"right",size:"mid"},{col:"left",size:"mid"},{col:"right",size:"tall"}],q=N(()=>{const l=S.value,c=[],b=[];return l.forEach((F,u)=>{const T=X[u]??{col:u%2===0?"left":"right",size:"mid"};T.col==="left"?c.push({item:F,size:T.size}):b.push({item:F,size:T.size})}),{left:c,right:b}}),R=N(()=>(m.value??[]).filter(l=>l.image).map((l,c)=>({key:`${c}-${l.image}`,image:l.image})));function y(l){x.query.cats=[l.id],s.push({name:"search"})}function G(){s.push({name:"search"})}function O(){s.push({name:"newestProduct"})}async function L(l=!1){const[c,b,F,u]=await Promise.allSettled([d.load(l),v.init(l),h.goldPrice({force:l}),h.homeSlider({force:l})]);c.status==="rejected"&&console.log(c.reason),b.status==="rejected"&&console.log(b.reason),f.value=F.status==="fulfilled"?F.value:null,m.value=u.status==="fulfilled"?u.value:null}async function te(){await L(!0),M.value=!1}ke(async()=>{await L(),A.value=!1,P()});let K=!1;return xe(async()=>{if(!K){K=!0;return}try{f.value=await h.goldPrice({force:!0})}catch(l){console.log(l)}}),(l,c)=>{const b=he("router-link"),F=he("container");return n(),r("div",zt,[p("header",St,[p("div",It,[k(b,{to:{name:"cart"},class:"home__iconBtn","aria-label":"سبد خرید"},{default:oe(()=>[k(U,{icon:"vuesax-linear:bag-2",size:"21"}),o(C).items.length?(n(),r("span",Pt,Z(o(C).items.length),1)):$("",!0)]),_:1}),p("img",{src:Oe,alt:o(ne).name,class:"home__logo"},null,8,Rt),k(b,{to:{name:"search"},class:"home__iconBtn","aria-label":"جستجو"},{default:oe(()=>[k(U,{icon:"vuesax-linear:search-normal-1",size:"21"})]),_:1})])]),k(We,{modelValue:M.value,"onUpdate:modelValue":c[0]||(c[0]=u=>M.value=u),onRefresh:te},{default:oe(()=>[k(F,{class:ee(["home__body",{"is-revealed":o(I)}])},{default:oe(()=>[k(He,{quote:f.value,class:"home__rate reveal",style:V(o(z)(0))},null,8,["quote","style"]),R.value.length?(n(),Q(tt,{key:0,slides:R.value,class:"home__hero reveal",style:V(o(z)(1))},null,8,["slides","style"])):$("",!0),o(v).cats.length?(n(),Q(rt,{key:1,categories:o(v).cats,"active-id":null,class:"home__rail reveal",style:V(o(z)(2)),onSelect:y},null,8,["categories","style"])):$("",!0),S.value.length?(n(),r("section",{key:2,class:"home__section reveal",style:V(o(z)(3))},[k(ye,{title:`برگزیده ${o(ne).name}`,subtitle:"انتخابشده از میان مجموعههای موجود","action-label":"همه محصولات",onAction:G},null,8,["title"]),p("div",At,[p("div",Mt,[(n(!0),r(H,null,j(q.value.left,u=>(n(),Q(ge,{key:u.item.id,value:u.item,size:u.size},null,8,["value","size"]))),128))]),p("div",Ft,[(n(!0),r(H,null,j(q.value.right,u=>(n(),Q(ge,{key:u.item.id,value:u.item,size:u.size},null,8,["value","size"]))),128))])])],4)):$("",!0),B.value.length?(n(),r("section",{key:3,class:"home__section reveal",style:V(o(z)(4))},[k(ye,{title:"تازهها",subtitle:"آخرین افزودههای مجموعه","action-label":"مشاهده همه",onAction:O}),p("div",Dt,[(n(!0),r(H,null,j(B.value,u=>(n(),Q(kt,{key:u.id,value:u},null,8,["value"]))),128))])],4)):$("",!0),!A.value&&!_.value.length?(n(),r("section",{key:4,class:"home__empty reveal",style:V(o(z)(3))},[k(U,{icon:"vuesax-linear:box",size:"26"}),c[1]||(c[1]=p("p",null,"هنوز محصولی در مجموعه ثبت نشده است.",-1))],4)):$("",!0)]),_:1},8,["class"])]),_:1},8,["modelValue"])])}}}),jt=ie(Et,[["__scopeId","data-v-080068f3"]]);export{jt as default};
|