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