3 lines
15 KiB
JavaScript
3 lines
15 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-BVYgSbCy.js","assets/index-BUiRoqs8.css"])))=>i.map(i=>d[i]);
|
||
import{d as P,h as x,Z as K,o as se,b as v,c as b,w as G,$ as ae,e as a,f as j,g as E,F as N,r as ne,j as A,D as Q,a0 as oe,T as le,E as X,p as o,C as f,m as c,s as W,B as re,t as C,a1 as ue,S as U,O as q,v as V,z as H,W as z,a2 as J,i as ie,_ as Y,I as B,a3 as Z}from"./index-BVYgSbCy.js";import{P as ee}from"./PageBar-B5feQjHI.js";import{a as te,F,I as D,T as ce}from"./index-CeCujSXc.js";import"./isEqual-CdKSTL69.js";import"./FormItemContext-CjExwkgK.js";import"./classCallCheck--kJem1-w.js";import"./raf-nDFcuFT6.js";const de={class:"otp-single-input"},pe=["type","placeholder","disabled"],me={key:0},_e=["innerHTML"],ve=P({__name:"SingleOtpInput",props:{inputType:{default:"tel"},value:{},separator:{},focus:{type:Boolean},inputClasses:{},shouldAutoFocus:{type:Boolean},isLastChild:{type:Boolean},placeholder:{},disabled:{type:Boolean}},emits:["on-change","on-keydown","on-paste","on-focus","on-blur"],setup(l,{emit:w}){const u=l,y=w,r=x(u.value||""),s=x(null),h=()=>(r.value=r.value.toString(),r.value.length>1&&(r.value=r.value.slice(0,1)),y("on-change",r.value)),d=i=>i>=48&&i<=57||i>=96&&i<=105,n=i=>{u.disabled&&i.preventDefault();const _=i||window.event,g=_.which?_.which:_.keyCode;d(g)||[8,9,13,37,39,46,86].includes(g)?y("on-keydown",i):_.preventDefault()},m=i=>y("on-paste",i),k=()=>(s.value.select(),y("on-focus")),O=()=>y("on-blur");return K(()=>u.value,(i,_)=>{i!==_&&(r.value=i??"")}),K(()=>u.focus,(i,_)=>{_!==i&&s.value&&u.focus&&(s.value.focus(),s.value.select())}),se(()=>{s.value&&u.focus&&u.shouldAutoFocus&&(s.value.focus(),s.value.select())}),(i,_)=>(v(),b("div",de,[G(a("input",{type:l.inputType,placeholder:l.placeholder,disabled:l.disabled,ref_key:"input",ref:s,min:"0",max:"9",maxlength:"1",pattern:"[0-9]","onUpdate:modelValue":_[0]||(_[0]=g=>r.value=g),class:j(l.inputClasses),onInput:h,onKeydown:n,onPaste:m,onFocus:k,onBlur:O},null,42,pe),[[ae,r.value]]),!l.isLastChild&&l.separator?(v(),b("span",me,[a("span",{innerHTML:l.separator},null,8,_e)])):E("",!0)]))}}),fe={class:"flex ltr justify-around w-full"},ge=8,he=37,ye=39,be=46,we=P({__name:"OtpInput",props:{defaultFocus:{type:Boolean},numInputs:{default:4},separator:{},inputClasses:{},inputType:{},shouldAutoFocus:{type:Boolean,default:!1},placeholder:{},disabled:{type:Boolean,default:!1}},emits:["on-change","on-complete"],setup(l,{emit:w}){const u=l,y=w,r=x(0),s=x([]),h=x([]),d=e=>{u.defaultFocus&&e<u.numInputs&&!s.value[e]?r.value=s.value.length:r.value=e},n=()=>{r.value=-1},m=()=>s.value.join("").length===u.numInputs?y("on-complete",s.value.join("")):"Wait until the user enters the required number of characters",k=e=>{r.value=Math.max(Math.min(u.numInputs-1,e),0)},O=()=>k(r.value+1),i=()=>k(r.value-1),_=e=>{h.value=Object.assign([],s.value),typeof e=="string"&&e===""?s.value.splice(r.value,1):s.value[r.value]=e,h.value.join("")!==s.value.join("")&&(y("on-change",s.value.join("")),m())},g=e=>{var M;e.preventDefault();const I=(((M=e.clipboardData)==null?void 0:M.getData("text/plain"))??"").slice(0,u.numInputs-r.value).split("");if(u.inputType==="number"&&!I.join("").match(/^\d+$/))return"Invalid pasted data";const T=s.value.slice(0,r.value).concat(I);return T.slice(0,u.numInputs).forEach((R,L)=>{s.value[L]=R}),k(T.slice(0,u.numInputs).length),m()},t=e=>{_(e),O()},p=e=>{switch(e.keyCode){case ge:e.preventDefault(),_(""),i();break;case be:e.preventDefault(),_("");break;case he:e.preventDefault(),i();break;case ye:e.preventDefault(),O();break}};return(e,S)=>(v(),b("div",null,[a("div",fe,[(v(!0),b(N,null,ne(l.numInputs,(I,$)=>(v(),A(ve,{key:$,focus:r.value===$,value:s.value[$],separator:l.separator,"input-type":l.inputType,"input-classes":l.inputClasses,"is-last-child":$===l.numInputs-1,"should-auto-focus":l.shouldAutoFocus,placeholder:l.placeholder,disabled:l.disabled,onOnChange:t,onOnKeydown:p,onOnPaste:g,onOnFocus:T=>d($),onOnBlur:n},null,8,["focus","value","separator","input-type","input-classes","is-last-child","should-auto-focus","placeholder","disabled","onOnFocus"]))),128))])]))}}),ke=l=>` مقدار ${l} نا معتبر است `,xe=l=>({pattern:/^(\+98|0098|98|0)?9\d{9}$/g,message:ke(l)}),Se=l=>({required:!0,message:` لطفا ${l} را وارد کنید `}),Ce={class:"auth"},Ie={class:"auth__intro"},Oe=["alt"],$e={class:"auth__title"},Fe={class:"auth__sub"},Te={class:"auth__card"},Be={key:0,class:"auth__timer"},De={key:1,class:"auth__timer"},Ee=["disabled"],Ae={class:"auth__switch"},Re=P({__name:"LoginView",emits:["register"],setup(l,{emit:w}){const u=w,y=Q(),r=oe(),s=le(),h=q({username:void 0}),d=q({step:1,loading:!1,defaultFocus:!1});function n(p){return(p??"").replace(/[۰-۹]/g,e=>String(e.charCodeAt(0)-1776)).replace(/[٠-٩]/g,e=>String(e.charCodeAt(0)-1632)).replace(/\D/g,"").slice(0,11)}const m=x(0),k=()=>{m.value>0&&setTimeout(()=>{m.value>0&&(m.value-=1,k())},1e3)},O=async()=>{var p;try{d.loading=!0,await V.requestOtp(String(h.username??"")),d.step=2,m.value=120,k(),d.defaultFocus=!0,await H(),await H(),(p=document.querySelector(".auth__otp .otp-input"))==null||p.focus()}catch(e){const S=e instanceof Error&&/\((?:429|404|403)\)/.test(e.message)?_(e):null;z.error(S??"خطا در ارسال کد. لطفاً دوباره تلاش کنید.")}finally{d.loading=!1}},i=async p=>{try{d.loading=!0;const e=await V.verifyOtp(String(h.username??""),p),{token:S,customer:I}=e;if(s.login(S,I.id,I.mobile),e.iamBootstrapUrl){window.location.assign(e.iamBootstrapUrl);return}try{const{useCartStore:T}=await J(async()=>{const{useCartStore:R}=await import("./index-BVYgSbCy.js").then(L=>L.bu);return{useCartStore:R}},__vite__mapDeps([0,1])),{useBuyLaterStore:M}=await J(async()=>{const{useBuyLaterStore:R}=await import("./index-BVYgSbCy.js").then(L=>L.bv);return{useBuyLaterStore:R}},__vite__mapDeps([0,1]));await Promise.all([T().applyExpiryAndSync(),M().syncFromServer()])}catch{}try{const T=await V.getExpertIdentity();s.setSalesExpert(T.isSalesExpert)}catch{s.setSalesExpert(!1)}const $=typeof r.query.redirect=="string"?r.query.redirect:void 0;await y.replace($??{name:"home"}),z.success("با موفقیت وارد شدید")}catch(e){z.error(e instanceof Error&&/\(429\)/.test(e.message)?_(e)??"تعداد تلاشها بیش از حد مجاز است.":"کد وارد شده صحیح نیست")}finally{d.loading=!1}};function _(p){const e=p.message.match(/\{.*\}/);if(!e)return null;try{const S=JSON.parse(e[0]);return typeof S.message=="string"?S.message:null}catch{return null}}const g=p=>p<10?"0"+p:p,t=ie(()=>d.step===1?"دریافت رمز عبور":"دریافت مجدد رمز عبور");return(p,e)=>{const S=X("container");return v(),b("div",Ce,[o(ee,{title:"ورود","back-to":"home"}),o(S,{class:"auth__body"},{default:f(()=>[a("section",Ie,[a("img",{class:"auth__logo",src:re,alt:c(W).name},null,8,Oe),a("h2",$e,"ورود به "+C(c(W).name),1),a("p",Fe,C(d.step===1?"شماره موبایل خود را وارد کنید":"رمز یکبارمصرف را وارد کنید"),1)]),a("section",Te,[d.step===2?(v(),b(N,{key:0},[o(we,{class:"auth__otp","input-classes":"otp-input",inputType:"tel","num-inputs":4,"should-auto-focus":!0,defaultFocus:d.defaultFocus,onOnComplete:i},null,8,["defaultFocus"]),m.value>0?(v(),b("p",Be," امکان دریافت مجدد رمز در "+C(g(m.value))+" ثانیه دیگر ",1)):(v(),b("p",De,"برای دریافت رمز عبور مجدد تلاش کنید"))],64)):E("",!0),o(c(te),{model:h,layout:"vertical",onFinish:O,class:"auth__form"},{default:f(()=>[G(o(c(F),{name:"username",label:"تلفن همراه",rules:[c(Se)("تلفن همراه"),c(xe)("تلفن همراه")]},{default:f(()=>[o(c(D),{value:h.username,type:"tel",inputmode:"numeric",maxlength:11,placeholder:"09123456789",autocomplete:"tel","onUpdate:value":e[0]||(e[0]=I=>h.username=n(I))},null,8,["value"])]),_:1},8,["rules"]),[[ue,d.step===1]]),a("button",{type:"submit",class:j(["auth__cta",{"is-loading":d.loading}]),disabled:d.loading||m.value>0&&d.step===2},C(t.value),11,Ee)]),_:1},8,["model"])]),a("p",Ae,[e[2]||(e[2]=U(" اگر ثبت نام نکردهاید ",-1)),a("button",{type:"button",onClick:e[1]||(e[1]=I=>u("register",!0))},"ثبت نام کنید")])]),_:1})])}}}),Le=Y(Re,[["__scopeId","data-v-adfc9fc7"]]),Pe={class:"reg"},Me={class:"reg__doneMark","aria-hidden":"true"},Ue={class:"reg__doneText"},Ve={class:"reg__ltr"},ze={class:"reg__doneActions"},je={class:"reg__head"},qe=["aria-valuenow"],Ne={class:"reg__stepLabel"},Ke={class:"reg__title"},We={class:"reg__sub"},He={key:"s1",class:"reg__fields"},Je={class:"reg__row"},Ze={key:"s2",class:"reg__fields"},Ge={class:"reg__note"},Qe={class:"reg__footer"},Xe={class:"reg__footerInner"},Ye=["disabled"],et={key:0,class:"reg__spinner keep-motion","aria-hidden":"true"},tt={key:0,class:"reg__switch"},st=P({__name:"RegisterView",emits:["register"],setup(l,{emit:w}){const u=w,y=Q(),r=x(),s=x(1),h=x(!1),d=x(!1),n=q({fname:void 0,lname:void 0,mobile:void 0,store_name:void 0,phone:void 0,city:void 0,address:void 0}),m=g=>({required:!0,whitespace:!0,message:`لطفاً ${g} را وارد کنید`});function k(g){return(g??"").replace(/[۰-۹]/g,t=>String(t.charCodeAt(0)-1776)).replace(/[٠-٩]/g,t=>String(t.charCodeAt(0)-1632)).replace(/\D/g,"")}function O(){d.value?y.push({name:"home"}):s.value===2?s.value=1:u("register",!1)}async function i(){if(s.value===1){s.value=2,window.scrollTo({top:0,behavior:"smooth"});return}try{h.value=!0,await V.register({fname:String(n.fname??""),lname:String(n.lname??""),mobile:String(n.mobile??""),store_name:String(n.store_name??""),phone:String(n.phone??""),address:String(n.address??""),city:String(n.city??"")}),d.value=!0,window.scrollTo({top:0})}catch(g){z.error(_(g)??"خطا در ثبت اطلاعات. لطفاً دوباره تلاش کنید.")}finally{h.value=!1}}function _(g){const t=g instanceof Error?g.message.match(/\{.*\}/):null;if(!t)return null;try{const p=JSON.parse(t[0]);return Array.isArray(p.message)?p.message[0]??null:p.message??null}catch{return null}}return(g,t)=>{const p=X("container");return v(),b("div",Pe,[o(ee,{title:"ثبت نام","back-action":O}),o(Z,{name:"reg-fade",mode:"out-in"},{default:f(()=>[d.value?(v(),A(p,{key:"done",class:"reg__body reg__done"},{default:f(()=>[a("div",Me,[t[10]||(t[10]=a("span",{class:"reg__doneRing"},null,-1)),o(B,{icon:"vuesax-linear:tick-circle",size:"40"})]),t[12]||(t[12]=a("h2",{class:"reg__doneTitle"},"درخواست شما ثبت شد",-1)),a("p",Ue,[U(" اطلاعات فروشگاه "+C(n.store_name)+" برای کارشناسان ما ارسال شد. پس از بررسی و تایید، میتوانید با شماره ",1),a("span",Ve,C(n.mobile),1),t[11]||(t[11]=U(" وارد شوید. ",-1))]),a("div",ze,[a("button",{type:"button",class:"reg__cta",onClick:t[0]||(t[0]=e=>c(y).push({name:"home"}))},"بازگشت به صفحه اصلی"),a("button",{type:"button",class:"reg__ghost",onClick:t[1]||(t[1]=e=>u("register",!1))},"رفتن به صفحه ورود")])]),_:1})):(v(),A(p,{key:"form",class:"reg__body"},{default:f(()=>[a("header",je,[a("div",{class:"reg__steps",role:"progressbar","aria-valuenow":s.value,"aria-valuemin":"1","aria-valuemax":"2"},[t[13]||(t[13]=a("span",{class:"reg__seg is-on"},null,-1)),a("span",{class:j(["reg__seg",{"is-on":s.value===2}])},null,2)],8,qe),a("p",Ne,"مرحله "+C(s.value===1?"۱":"۲")+" از ۲",1),a("h2",Ke,C(s.value===1?"اطلاعات شما":"اطلاعات فروشگاه"),1),a("p",We,C(s.value===1?"برای ساخت حساب فروشگاه، ابتدا خودتان را معرفی کنید.":"این اطلاعات برای ارسال سفارش و تایید حساب استفاده میشود."),1)]),o(c(te),{ref_key:"formRef",ref:r,model:n,layout:"vertical",class:"reg__form",onFinish:i},{default:f(()=>[o(Z,{name:s.value===2?"reg-next":"reg-prev",mode:"out-in"},{default:f(()=>[s.value===1?(v(),b("div",He,[a("div",Je,[o(c(F),{name:"fname",label:"نام",rules:[m("نام خود")]},{default:f(()=>[o(c(D),{value:n.fname,"onUpdate:value":t[2]||(t[2]=e=>n.fname=e),placeholder:"مثلاً علی",autocomplete:"given-name",enterkeyhint:"next"},null,8,["value"])]),_:1},8,["rules"]),o(c(F),{name:"lname",label:"نام خانوادگی",rules:[m("نام خانوادگی")]},{default:f(()=>[o(c(D),{value:n.lname,"onUpdate:value":t[3]||(t[3]=e=>n.lname=e),placeholder:"مثلاً محمدی",autocomplete:"family-name",enterkeyhint:"next"},null,8,["value"])]),_:1},8,["rules"])]),o(c(F),{name:"mobile",label:"شماره موبایل",rules:[m("شماره موبایل"),{pattern:/^09\d{9}$/,message:"شماره موبایل باید ۱۱ رقم و با ۰۹ شروع شود"}],extra:"کد ورود به این شماره پیامک میشود."},{default:f(()=>[o(c(D),{value:n.mobile,class:"reg__num",type:"tel",inputmode:"numeric",maxlength:11,placeholder:"09123456789",autocomplete:"tel",enterkeyhint:"next","onUpdate:value":t[4]||(t[4]=e=>n.mobile=k(e))},{prefix:f(()=>[o(B,{icon:"vuesax-linear:mobile",size:"18"})]),_:1},8,["value"])]),_:1},8,["rules"])])):(v(),b("div",Ze,[o(c(F),{name:"store_name",label:"نام فروشگاه",rules:[m("نام فروشگاه")]},{default:f(()=>[o(c(D),{value:n.store_name,"onUpdate:value":t[5]||(t[5]=e=>n.store_name=e),placeholder:"مثلاً گالری طلای آفتاب",autocomplete:"organization",enterkeyhint:"next"},{prefix:f(()=>[o(B,{icon:"vuesax-linear:shop",size:"18"})]),_:1},8,["value"])]),_:1},8,["rules"]),o(c(F),{name:"phone",label:"تلفن فروشگاه",rules:[m("تلفن فروشگاه"),{pattern:/^(0\d{10}|\d{8})$/,message:"تلفن را با کد شهر وارد کنید، مثلاً 02112345678"}]},{default:f(()=>[o(c(D),{value:n.phone,class:"reg__num",type:"tel",inputmode:"numeric",maxlength:11,placeholder:"02112345678",autocomplete:"tel-national",enterkeyhint:"next","onUpdate:value":t[6]||(t[6]=e=>n.phone=k(e))},{prefix:f(()=>[o(B,{icon:"vuesax-linear:call",size:"18"})]),_:1},8,["value"])]),_:1},8,["rules"]),o(c(F),{name:"city",label:"شهر",rules:[m("شهر")]},{default:f(()=>[o(c(D),{value:n.city,"onUpdate:value":t[7]||(t[7]=e=>n.city=e),placeholder:"مثلاً تهران",autocomplete:"address-level2",enterkeyhint:"next"},{prefix:f(()=>[o(B,{icon:"vuesax-linear:buildings",size:"18"})]),_:1},8,["value"])]),_:1},8,["rules"]),o(c(F),{name:"address",label:"آدرس پستی",rules:[m("آدرس فروشگاه")]},{default:f(()=>[o(c(ce),{value:n.address,"onUpdate:value":t[8]||(t[8]=e=>n.address=e),rows:3,placeholder:"خیابان، کوچه، پلاک، واحد",autocomplete:"street-address"},null,8,["value"])]),_:1},8,["rules"]),a("div",Ge,[o(B,{icon:"vuesax-linear:shield-tick",size:"18"}),t[14]||(t[14]=a("span",null,"حساب شما پس از بررسی اطلاعات توسط کارشناسان فعال میشود.",-1))])]))]),_:1},8,["name"]),a("footer",Qe,[a("div",Xe,[a("button",{type:"submit",class:j(["reg__cta",{"is-loading":h.value}]),disabled:h.value},[h.value?(v(),b("span",et)):E("",!0),a("span",null,C(s.value===1?"ادامه":h.value?"در حال ثبت…":"ثبت درخواست"),1),s.value===1?(v(),A(B,{key:1,icon:"vuesax-linear:arrow-left",size:"18"})):E("",!0)],10,Ye),s.value===1?(v(),b("p",tt,[t[15]||(t[15]=U(" حساب دارید؟ ",-1)),a("button",{type:"button",onClick:t[9]||(t[9]=e=>u("register",!1))},"وارد شوید")])):E("",!0)])])]),_:1},8,["model"])]),_:1}))]),_:1})])}}}),at=Y(st,[["__scopeId","data-v-609b9316"]]),dt=P({__name:"LoginRegisterView",setup(l){const w=x(!1),u=y=>w.value=y;return(y,r)=>(v(),b(N,null,[w.value?E("",!0):(v(),A(Le,{key:0,onRegister:u})),w.value?(v(),A(at,{key:1,onRegister:u})):E("",!0)],64))}});export{dt as default};
|