Refresh hashed frontend bundles and the API release bundle after build:release. Co-authored-by: Cursor <cursoragent@cursor.com>
2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
import{d as R,i as F,S as H,o as se,Z as K,b as v,c as w,w as W,$ as ae,e as a,f as L,g as E,F as j,r as ne,J as V,H as J,a0 as le,V as oe,G as Z,m as c,D as m,h as l,x as P,E as z,t as D,U as B,a1 as ue,R as M,z as U,a2 as A,s as ie,_ as G,Q as re,W as ce}from"./index-DFI27khJ.js";import{P as Q}from"./PageBar-B1e5h7eE.js";import{a as X,F as $,I as S,T as de}from"./index-CdlnEuQW.js";import"./FormItemContext-D-QJuxQQ.js";import"./classCallCheck-C_t8FQBJ.js";import"./raf-nDFcuFT6.js";const pe={class:"otp-single-input"},me=["type","placeholder","disabled"],he={key:0},fe=["innerHTML"],_e=R({__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(i,{emit:b}){const d=i,h=b,o=F(d.value||""),u=F(null),n=()=>(o.value=o.value.toString(),o.value.length>1&&(o.value=o.value.slice(0,1)),h("on-change",o.value)),r=t=>t>=48&&t<=57||t>=96&&t<=105,f=t=>{d.disabled&&t.preventDefault();const p=t||window.event,x=p.which?p.which:p.keyCode;r(x)||[8,9,13,37,39,46,86].includes(x)?h("on-keydown",t):p.preventDefault()},g=t=>h("on-paste",t),s=()=>(u.value.select(),h("on-focus")),y=()=>h("on-blur");return H(()=>d.value,(t,p)=>{t!==p&&(o.value=t??"")}),H(()=>d.focus,(t,p)=>{p!==t&&u.value&&d.focus&&(u.value.focus(),u.value.select())}),se(()=>{!d.focus||!d.shouldAutoFocus||K(()=>{var t,p;(t=u.value)==null||t.focus(),(p=u.value)==null||p.select()})}),(t,p)=>(v(),w("div",pe,[W(a("input",{type:i.inputType,placeholder:i.placeholder,disabled:i.disabled,ref_key:"input",ref:u,min:"0",max:"9",maxlength:"1",pattern:"[0-9]","onUpdate:modelValue":p[0]||(p[0]=x=>o.value=x),class:L(i.inputClasses),onInput:n,onKeydown:f,onPaste:g,onFocus:s,onBlur:y},null,42,me),[[ae,o.value]]),!i.isLastChild&&i.separator?(v(),w("span",he,[a("span",{innerHTML:i.separator},null,8,fe)])):E("",!0)]))}}),ve={class:"flex ltr justify-around w-full"},ge=8,ye=37,be=39,we=46,ke=R({__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(i,{emit:b}){const d=i,h=b,o=F(0),u=F([]),n=F([]),r=e=>{d.defaultFocus&&e<d.numInputs&&!u.value[e]?o.value=u.value.length:o.value=e},f=()=>{o.value=-1},g=()=>u.value.join("").length===d.numInputs?h("on-complete",u.value.join("")):"Wait until the user enters the required number of characters",s=e=>{o.value=Math.max(Math.min(d.numInputs-1,e),0)},y=()=>s(o.value+1),t=()=>s(o.value-1),p=e=>{n.value=Object.assign([],u.value),typeof e=="string"&&e===""?u.value.splice(o.value,1):u.value[o.value]=e,n.value.join("")!==u.value.join("")&&(h("on-change",u.value.join("")),g())},x=e=>{var q;e.preventDefault();const k=(((q=e.clipboardData)==null?void 0:q.getData("text/plain"))??"").slice(0,d.numInputs-o.value).split("");if(d.inputType==="number"&&!k.join("").match(/^\d+$/))return"Invalid pasted data";const T=u.value.slice(0,o.value).concat(k);return T.slice(0,d.numInputs).forEach((ee,te)=>{u.value[te]=ee}),s(T.slice(0,d.numInputs).length),g()},N=e=>{p(e),y()},_=e=>{switch(e.keyCode){case ge:e.preventDefault(),p(""),t();break;case we:e.preventDefault(),p("");break;case ye:e.preventDefault(),t();break;case be:e.preventDefault(),y();break}};return(e,O)=>(v(),w("div",null,[a("div",ve,[(v(!0),w(j,null,ne(i.numInputs,(k,I)=>(v(),V(_e,{key:I,focus:o.value===I,value:u.value[I],separator:i.separator,"input-type":i.inputType,"input-classes":i.inputClasses,"is-last-child":I===i.numInputs-1,"should-auto-focus":i.shouldAutoFocus,placeholder:i.placeholder,disabled:i.disabled,onOnChange:N,onOnKeydown:_,onOnPaste:x,onOnFocus:T=>r(I),onOnBlur:f},null,8,["focus","value","separator","input-type","input-classes","is-last-child","should-auto-focus","placeholder","disabled","onOnFocus"]))),128))])]))}}),xe=i=>` مقدار ${i} نا معتبر است `,Y=i=>({pattern:/^(\+98|0098|98|0)?9\d{9}$/g,message:xe(i)}),C=i=>({required:!0,message:` لطفا ${i} را وارد کنید `}),Oe={class:"auth"},Ie={class:"auth__hero"},$e=["alt"],Ce={class:"auth__title"},Fe={class:"auth__sub"},Se={class:"auth__steps","aria-label":"مراحل ورود"},De={class:"auth__island"},Te={class:"auth__phoneChip"},Be={key:0,class:"auth__timer"},Ee={key:1,class:"auth__timer is-ready"},Re=["disabled"],Le={key:0,class:"auth__ctaSpin","aria-hidden":"true"},Ue={class:"auth__switch"},Ae=R({__name:"LoginView",emits:["register"],setup(i,{emit:b}){const d=b,h=J(),o=le(),u=oe(),n=M({username:void 0}),r=M({step:1,loading:!1,defaultFocus:!1}),f=F(0),g=()=>{f.value>0&&setTimeout(()=>{f.value>0&&(f.value-=1,g())},1e3)};function s(){r.step=1,r.defaultFocus=!1,f.value=0}const y=async()=>{try{r.loading=!0,await U.requestOtp(String(n.username??"")),r.step=2,f.value=120,g(),await K(()=>{r.defaultFocus=!0})}catch(_){const e=_ instanceof Error&&/\((?:429|404|403)\)/.test(_.message)?p(_):null;A.error(e??"خطا در ارسال کد. لطفاً دوباره تلاش کنید.")}finally{r.loading=!1}},t=async _=>{try{r.loading=!0;const e=await U.verifyOtp(String(n.username??""),_),{token:O,customer:k}=e;if(u.login(O,k.id,k.mobile),e.iamBootstrapUrl){window.location.assign(e.iamBootstrapUrl);return}try{const T=await U.getExpertIdentity();u.setSalesExpert(T.isSalesExpert)}catch{u.setSalesExpert(!1)}const I=typeof o.query.redirect=="string"?o.query.redirect:void 0;await h.replace(I??{name:"home"}),A.success("با موفقیت وارد شدید")}catch(e){A.error(e instanceof Error&&/\(429\)/.test(e.message)?p(e)??"تعداد تلاشها بیش از حد مجاز است.":"کد وارد شده صحیح نیست")}finally{r.loading=!1}};function p(_){const e=_.message.match(/\{.*\}/);if(!e)return null;try{const O=JSON.parse(e[0]);return typeof O.message=="string"?O.message:null}catch{return null}}const x=_=>_<10?"0"+_:_,N=ie(()=>r.step===1?"دریافت کد ورود":"ارسال مجدد کد");return(_,e)=>{const O=Z("container");return v(),w("div",Oe,[c(Q,{title:"ورود","back-to":"home"}),c(O,{class:"auth__body"},{default:m(()=>[a("section",Ie,[a("img",{src:z,alt:l(P).name,class:"auth__logo"},null,8,$e),a("h2",Ce,"ورود به "+D(l(P).name),1),a("p",Fe,D(r.step===1?"با شماره موبایل وارد شوید؛ کد یکبارمصرف پیامک میشود.":"کد ۴ رقمی پیامکشده را وارد کنید."),1),a("ol",Se,[a("li",{class:L(["auth__step",{"is-on":r.step===1,"is-done":r.step>1}])},[...e[2]||(e[2]=[a("span",{class:"auth__stepNum"},"۱",-1),a("span",null,"شماره",-1)])],2),e[4]||(e[4]=a("li",{class:"auth__stepLine","aria-hidden":"true"},null,-1)),a("li",{class:L(["auth__step",{"is-on":r.step===2}])},[...e[3]||(e[3]=[a("span",{class:"auth__stepNum"},"۲",-1),a("span",null,"کد تأیید",-1)])],2)])]),a("section",De,[r.step===2?(v(),w(j,{key:0},[a("div",Te,[a("span",null,D(n.username),1),a("button",{type:"button",class:"auth__editPhone",onClick:s},"ویرایش")]),c(ke,{class:"auth__otp","input-classes":"otp-input",inputType:"tel","num-inputs":4,"should-auto-focus":!0,defaultFocus:r.defaultFocus,onOnComplete:t},null,8,["defaultFocus"]),f.value>0?(v(),w("p",Be,[e[5]||(e[5]=B(" ارسال مجدد تا ",-1)),a("strong",null,D(x(f.value)),1),e[6]||(e[6]=B(" ثانیه ",-1))])):(v(),w("p",Ee,"میتوانید کد را دوباره دریافت کنید"))],64)):E("",!0),c(l(X),{model:n,layout:"vertical",onFinish:y,class:"auth__form"},{default:m(()=>[W(c(l($),{name:"username",label:"شماره موبایل",rules:[l(C)("شماره موبایل"),l(Y)("شماره موبایل")]},{default:m(()=>[c(l(S),{type:"tel",inputmode:"numeric",dir:"ltr",placeholder:"09123456789",autocomplete:"tel",value:n.username,"onUpdate:value":e[0]||(e[0]=k=>n.username=k),class:"auth__phoneInput"},null,8,["value"])]),_:1},8,["rules"]),[[ue,r.step===1]]),a("button",{type:"submit",class:L(["auth__cta",{"is-loading":r.loading}]),disabled:r.loading||f.value>0&&r.step===2},[r.loading?(v(),w("span",Le)):E("",!0),B(" "+D(N.value),1)],10,Re)]),_:1},8,["model"])]),a("p",Ue,[e[7]||(e[7]=B(" حساب ندارید؟ ",-1)),a("button",{type:"button",onClick:e[1]||(e[1]=k=>d("register",!0))},"ثبتنام فروشگاه")])]),_:1})])}}}),Pe=G(Ae,[["__scopeId","data-v-9dd3076d"]]),Me="/assets/registerDelay-C2Zjomix.svg",Ne={class:"auth"},Ve={class:"auth__hero"},je=["alt"],qe={class:"auth__sub"},He={class:"auth__island"},Ke={class:"auth__island"},We=["disabled"],Je={class:"auth__switch"},Ze=["src"],ze=R({__name:"RegisterView",emits:["register"],setup(i,{emit:b}){const d=b,h=J(),o=M({loading:!1}),u=F(!1),n=M({fname:void 0,lname:void 0,mobile:void 0,store_name:void 0,phone:void 0,address:void 0,city:void 0}),r=async()=>{try{o.loading=!0,await U.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??"")}),u.value=!0}catch(g){A.error(f(g)??"خطا در ثبت اطلاعات. لطفاً دوباره تلاش کنید.")}finally{o.loading=!1}};function f(g){const s=g instanceof Error?g.message.match(/\{.*\}/):null;if(!s)return null;try{const y=JSON.parse(s[0]);return Array.isArray(y.message)?y.message[0]??null:y.message??null}catch{return null}}return(g,s)=>{const y=Z("container");return v(),w("div",Ne,[c(Q,{title:"ثبتنام","back-to":"home"}),c(re,{spinning:o.loading,tip:"در حال ثبت اطلاعات"},{default:m(()=>[c(y,{class:"auth__body"},{default:m(()=>[a("section",Ve,[a("img",{src:z,alt:l(P).name,class:"auth__logo"},null,8,je),s[10]||(s[10]=a("h2",{class:"auth__title"},"ساخت حساب فروشگاه",-1)),a("p",qe," پس از ثبت، کارشناسان "+D(l(P).name)+" اطلاعات را بررسی میکنند و سپس میتوانید وارد شوید. ",1)]),c(l(X),{model:n,layout:"vertical",onFinish:r,class:"auth__form"},{default:m(()=>[a("section",He,[s[11]||(s[11]=a("header",{class:"auth__groupHead"},[a("h3",null,"اطلاعات شخصی"),a("p",null,"نام و شمارهٔ تماس مالک فروشگاه")],-1)),c(l($),{name:"fname",label:"نام",rules:l(C)("نام")},{default:m(()=>[c(l(S),{value:n.fname,"onUpdate:value":s[0]||(s[0]=t=>n.fname=t),autocomplete:"given-name",placeholder:"مثلاً علی"},null,8,["value"])]),_:1},8,["rules"]),c(l($),{name:"lname",label:"نام خانوادگی",rules:l(C)("نام خانوادگی")},{default:m(()=>[c(l(S),{value:n.lname,"onUpdate:value":s[1]||(s[1]=t=>n.lname=t),autocomplete:"family-name",placeholder:"مثلاً محمدی"},null,8,["value"])]),_:1},8,["rules"]),c(l($),{name:"mobile",label:"شماره موبایل",rules:[l(Y)("شماره موبایل"),l(C)("شماره موبایل")],class:"auth__itemLast"},{default:m(()=>[c(l(S),{value:n.mobile,"onUpdate:value":s[2]||(s[2]=t=>n.mobile=t),type:"tel",inputmode:"numeric",dir:"ltr",placeholder:"09123456789",autocomplete:"tel",class:"auth__ltr"},null,8,["value"])]),_:1},8,["rules"])]),a("section",Ke,[s[12]||(s[12]=a("header",{class:"auth__groupHead"},[a("h3",null,"اطلاعات فروشگاه"),a("p",null,"برای تأیید و ارسال سفارشها لازم است")],-1)),c(l($),{name:"store_name",label:"نام فروشگاه",rules:l(C)("نام فروشگاه")},{default:m(()=>[c(l(S),{value:n.store_name,"onUpdate:value":s[3]||(s[3]=t=>n.store_name=t),placeholder:"نام تابلو یا واحد صنفی"},null,8,["value"])]),_:1},8,["rules"]),c(l($),{name:"phone",label:"تلفن فروشگاه",rules:[l(C)("تلفن فروشگاه")]},{default:m(()=>[c(l(S),{value:n.phone,"onUpdate:value":s[4]||(s[4]=t=>n.phone=t),type:"tel",inputmode:"numeric",dir:"ltr",placeholder:"021xxxxxxx",class:"auth__ltr"},null,8,["value"])]),_:1},8,["rules"]),c(l($),{name:"city",label:"شهر",rules:l(C)("شهر")},{default:m(()=>[c(l(S),{value:n.city,"onUpdate:value":s[5]||(s[5]=t=>n.city=t),placeholder:"مثلاً تهران"},null,8,["value"])]),_:1},8,["rules"]),c(l($),{name:"address",label:"آدرس پستی",rules:l(C)("آدرس"),class:"auth__itemLast"},{default:m(()=>[c(l(de),{value:n.address,"onUpdate:value":s[6]||(s[6]=t=>n.address=t),rows:3,placeholder:"آدرس کامل برای هماهنگی ارسال"},null,8,["value"])]),_:1},8,["rules"])]),a("button",{type:"submit",class:"auth__cta",disabled:o.loading}," ثبت درخواست عضویت ",8,We)]),_:1},8,["model"]),a("p",Je,[s[13]||(s[13]=B(" قبلاً ثبتنام کردهاید؟ ",-1)),a("button",{type:"button",onClick:s[7]||(s[7]=t=>d("register",!1))},"ورود به حساب")])]),_:1})]),_:1},8,["spinning"]),c(ce,{timeOut:-1,show:u.value,"onUpdate:show":s[9]||(s[9]=t=>u.value=t),closeOnClickOverlay:!1},{img:m(()=>[a("img",{src:l(Me),alt:"",class:"opacity-80"},null,8,Ze)]),title:m(()=>[...s[14]||(s[14]=[a("div",null," ثبتنام شما ثبت شد. پس از تأیید کارشناسان میتوانید با همین شماره وارد شوید. ",-1)])]),button:m(()=>[a("div",{class:"text-center",onClick:s[8]||(s[8]=t=>l(h).push({name:"home"}))},"متوجه شدم")]),_:1},8,["show"])])}}}),Ge=G(ze,[["__scopeId","data-v-069f6683"]]),at=R({__name:"LoginRegisterView",setup(i){const b=F(!1),d=h=>b.value=h;return(h,o)=>(v(),w(j,null,[b.value?E("",!0):(v(),V(Pe,{key:0,onRegister:d})),b.value?(v(),V(Ge,{key:1,onRegister:d})):E("",!0)],64))}});export{at as default};
|