diff --git a/README-en.md b/README-en.md
index 4511e84..19ed1c4 100644
--- a/README-en.md
+++ b/README-en.md
@@ -13,9 +13,10 @@
## Project Showcase
-[**👉 Online Demo**](https://skymail.ink)
+- [Online Demo](https://skymail.ink)
+- [Deployment Guide](https://doc.skymail.ink/en/)
+- [Beginner’s Guide – UI Deployment](https://doc.skymail.ink/en/guide/via-ui.html)
-[**👉 Beginner’s Guide – UI Deployment**](https://doc.skymail.ink)
|  |  |
|--------------------------|---------------------|
@@ -25,6 +26,8 @@
## Features
+- **💰 Low-Cost Usage**: No server required — deploy to Cloudflare Workers to reduce costs.
+
- **💻 Responsive Design**: Automatically adapts to both desktop and most mobile browsers.
- **📧 Email Sending**: Integrated with Resend for bulk email sending, embedded images, attachments, and status tracking.
@@ -37,6 +40,8 @@
- **🔔 Email Push**: Forward received emails to Telegram bots or other email providers.
+- **📡 Open API**: Supports batch user creation via API and multi-condition email queries
+
- **📈 Data Visualization**: Use Echarts to visualize system data, including user email growth.
- **⭐ Starred Emails**: Mark important emails for quick access.
@@ -67,108 +72,18 @@
- **File Storage**: [Cloudflare R2](https://developers.cloudflare.com/r2/)
-## Setup Guide
-
-### System Requirements
-
-Nodejs v18.20 +
-
-Cloudflare account (with a bound domain)
-
-**Clone the project to your local machine:**
-``` shell
-git clone https://github.com/eoao/cloud-mail
-cd cloud-mail/mail-worker
-```
-
-**Install Dependencies:**
-```shell
-npm i
-```
-
-**Configure the Project**
-
-mail-worker/wrangler.toml
-
-```toml
-[[d1_databases]]
-binding = "db" # Default binding name for D1 database, cannot be changed
-database_name = "" # Database name
-database_id = "" # Database ID
-
-[[kv_namespaces]]
-binding = "kv" # Default binding name for KV storage, cannot be changed
-id = "" # KV namespace ID
-
-
-[[r2_buckets]]
-binding = "r2" # Default binding name for R2 storage, cannot be changed
-bucket_name = "" # R2 bucket name
-
-[assets]
-binding = "assets" # Static asset binding name, cannot be changed
-directory = "./dist" # Directory for frontend Vue project build, default: dist
-
-[vars]
-orm_log = false
-domain = [] # Configure email domains, example: ["example1.com", "example2.com"]
-admin = "" # Admin email, example: "admin@example.com"
-jwt_secret = "" # JWT secret for login tokens, choose a random string
-```
-
-**Deploy Remotely**
-
-1. Create KV, D1 database, and R2 object storage in Cloudflare Console.
-2. In the project directory `mail-worker/wrangler.toml`, configure the environment variables and database IDs/names.
-3. Run the deployment command:
-
- ```shell
- npm run deploy
- ```
-
-4. In Cloudflare → Account Home → Your Domain → Email → Email Routing → Route Rules → Catch-all Address, edit and route to the worker.
-
-5. In your browser, visit `https://your-project-domain/api/init/your-jwt-secret` to initialize or update the D1 and KV databases.
-
-6. After deployment, log in to the site with the admin account to configure R2 domains, Turnstile keys, and more.
-
-
-**Run Locally**
-
-1. Run locally. Databases and object storage will automatically be set up, no manual creation needed. Data is stored in the `mail-worker/.wrangler` folder.
-
- ```shell
- npm run dev
- ```
-
-2. In your browser, visit `http://127.0.0.1:8787/api/init/your-jwt-secret` to initialize D1 and KV databases.
-
-3. For local testing, you can set the R2 domain to `http://127.0.0.1:8787/api/file`.
-
-**Email Sending**
-
-1. Register on Resend, then click on “Domains” to add and verify your domain. Wait for verification.
-
-2. Go to "API Keys" to create an API key, then copy the token and paste it in the project website settings.
-
-3. Go to "Webhooks" and add a callback URL `https://your-project-domain/api/webhooks`.
- Select the following events: ✅ (email.bounced, email.complained, email.delivered, email.delivery_delayed).
-
-
-**Project Update**
-
-After the update, run `https://your-project-domain/api/init/your-jwt-secret` to synchronize the database schema.
## Support
-
+
+
**Special Sponsors**
-[DartNode](https://dartnode.com):Providing cloud computing service resource support
+[DartNode](https://dartnode.com):Providing cloud computing service resource support.
[](https://dartnode.com "Powered by DartNode - Free VPS for Open Source")
diff --git a/README.md b/README.md
index 1b30c7a..df40843 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
H||de
H?H:P,F&&n(Mn,de)),de},S=(B,F=!0)=>{var H;const P=s.currentValue,N=C(B);if(!F){n(Mn,N);return}P===N&&B||(s.userInput=null,n(Mn,N),P!==N&&n(qn,N,P),r.validateEvent&&((H=l?.validate)==null||H.call(l,"change").catch(W=>void 0)),s.currentValue=N)},E=B=>{s.userInput=B;const F=B===""?null:Number(B);n(bi,F),S(F,!1)},x=B=>{const F=B!==""?Number(B):"";(qt(F)&&!Number.isNaN(F)||B==="")&&S(F),j(),s.userInput=null},M=()=>{var B,F;(F=(B=i.value)==null?void 0:B.focus)==null||F.call(B)},I=()=>{var B,F;(F=(B=i.value)==null?void 0:B.blur)==null||F.call(B)},D=B=>{n("focus",B)},R=B=>{var F,H;s.userInput=null,s.currentValue===null&&((F=i.value)!=null&&F.input)&&(i.value.input.value=""),n("blur",B),r.validateEvent&&((H=l?.validate)==null||H.call(l,"blur").catch(P=>void 0))},j=()=>{s.currentValue!==r.modelValue&&(s.currentValue=r.modelValue)},U=B=>{document.activeElement===B.target&&B.preventDefault()};return Xe(()=>r.modelValue,(B,F)=>{const H=C(B,!0);s.userInput===null&&H!==F&&(s.currentValue=H)},{immediate:!0}),en(()=>{var B;const{min:F,max:H,modelValue:P}=r,N=(B=i.value)==null?void 0:B.input;if(N.setAttribute("role","spinbutton"),Number.isFinite(H)?N.setAttribute("aria-valuemax",String(H)):N.removeAttribute("aria-valuemax"),Number.isFinite(F)?N.setAttribute("aria-valuemin",String(F)):N.removeAttribute("aria-valuemin"),N.setAttribute("aria-valuenow",s.currentValue||s.currentValue===0?String(s.currentValue):""),N.setAttribute("aria-disabled",String(p.value)),!qt(P)&&P!=null){let W=Number(P);Number.isNaN(W)&&(W=null),n(Mn,W)}N.addEventListener("wheel",U,{passive:!1})}),Sc(()=>{var B,F;const H=(B=i.value)==null?void 0:B.input;H?.setAttribute("aria-valuenow",`${(F=s.currentValue)!=null?F:""}`)}),t({focus:M,blur:I}),(B,F)=>(L(),ne("div",{class:Z([y(o).b(),y(o).m(y(d)),y(o).is("disabled",y(p)),y(o).is("without-controls",!B.controls),y(o).is("controls-right",y(h))]),onDragstart:$t(()=>{},["prevent"])},[B.controls?Rt((L(),ne("span",{key:0,role:"button","aria-label":y(a)("el.inputNumber.decrease"),class:Z([y(o).e("decrease"),y(o).is("disabled",y(u))]),onKeydown:cr(w,["enter"])},[He(B.$slots,"decrease-icon",{},()=>[V(y(Pt),null,{default:X(()=>[y(h)?(L(),he(y(sd),{key:0})):(L(),he(y(hj),{key:1}))]),_:1})])],42,["aria-label","onKeydown"])),[[y(hy),w]]):be("v-if",!0),B.controls?Rt((L(),ne("span",{key:1,role:"button","aria-label":y(a)("el.inputNumber.increase"),class:Z([y(o).e("increase"),y(o).is("disabled",y(c))]),onKeydown:cr(_,["enter"])},[He(B.$slots,"increase-icon",{},()=>[V(y(Pt),null,{default:X(()=>[y(h)?(L(),he(y(NT),{key:0})):(L(),he(y(_j),{key:1}))]),_:1})])],42,["aria-label","onKeydown"])),[[y(hy),_]]):be("v-if",!0),V(y(Hr),{id:B.id,ref_key:"input",ref:i,type:"number",step:B.step,"model-value":y(v),placeholder:B.placeholder,readonly:B.readonly,disabled:y(p),size:y(d),max:B.max,min:B.min,name:B.name,"aria-label":B.ariaLabel,"validate-event":!1,inputmode:B.inputmode,onKeydown:[cr($t(_,["prevent"]),["up"]),cr($t(w,["prevent"]),["down"])],onBlur:R,onFocus:D,onInput:E,onChange:x},w0({_:2},[B.$slots.prefix?{name:"prefix",fn:X(()=>[He(B.$slots,"prefix")])}:void 0,B.$slots.suffix?{name:"suffix",fn:X(()=>[He(B.$slots,"suffix")])}:void 0]),1032,["id","step","model-value","placeholder","readonly","disabled","size","max","min","name","aria-label","inputmode","onKeydown"])],42,["onDragstart"]))}});var pee=bt(hee,[["__file","input-number.vue"]]);const hE=On(pee),vee=xt({modelValue:{type:rt(Array)},max:Number,tagType:{...up.type,default:"info"},tagEffect:up.effect,trigger:{type:rt(String),default:Dt.enter},draggable:Boolean,delimiter:{type:[String,RegExp],default:""},size:So,clearable:Boolean,disabled:{type:Boolean,default:void 0},validateEvent:{type:Boolean,default:!0},readonly:Boolean,autofocus:Boolean,id:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},placeholder:String,autocomplete:{type:String,default:"off"},saveOnBlur:{type:Boolean,default:!0},ariaLabel:String}),mee={[Mn]:e=>et(e)||gn(e),[qn]:e=>et(e)||gn(e),[bi]:e=>Lt(e),"add-tag":e=>Lt(e)||et(e),"remove-tag":e=>Lt(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0};function gee({props:e,emit:t,formItem:n}){const r=Ql(),a=oo(),o=Ja(),i=Y(),s=G(()=>["small"].includes(a.value)?"small":"default"),l=G(()=>{var D;return(D=e.modelValue)!=null&&D.length?void 0:e.placeholder}),u=G(()=>!(e.readonly||r.value)),c=G(()=>{var D,R;return gn(e.max)?!1:((R=(D=e.modelValue)==null?void 0:D.length)!=null?R:0)>=e.max}),f=D=>{var R;const j=[...(R=e.modelValue)!=null?R:[],...Bo(D)];t(Mn,j),t(qn,j),t("add-tag",D),i.value=void 0},h=D=>{var R,j;const U=D.split(e.delimiter).filter(B=>B&&B!==D);if(e.max){const B=e.max-((j=(R=e.modelValue)==null?void 0:R.length)!=null?j:0);U.splice(B)}return U.length===1?U[0]:U},d=D=>{if(c.value){i.value=void 0;return}if(!E.value){if(e.delimiter&&i.value){const R=h(i.value);R.length&&f(R)}t(bi,D.target.value)}},p=D=>{var R;if(!E.value)switch(D.code){case e.trigger:D.preventDefault(),D.stopPropagation(),v();break;case Dt.numpadEnter:e.trigger===Dt.enter&&(D.preventDefault(),D.stopPropagation(),v());break;case Dt.backspace:!i.value&&((R=e.modelValue)!=null&&R.length)&&(D.preventDefault(),D.stopPropagation(),m(e.modelValue.length-1));break}},v=()=>{var D;const R=(D=i.value)==null?void 0:D.trim();!R||c.value||f(R)},m=D=>{var R;const j=((R=e.modelValue)!=null?R:[]).slice(),[U]=j.splice(D,1);t(Mn,j),t(qn,j),t("remove-tag",U)},g=()=>{i.value=void 0,t(Mn,void 0),t(qn,void 0),t("clear")},b=(D,R,j)=>{var U;const B=((U=e.modelValue)!=null?U:[]).slice(),[F]=B.splice(D,1),H=R>D&&j==="before"?-1:R"u"?[]:function(){var T=Promise.resolve();if(typeof crypto>"u"||!crypto.subtle)return[T,u(T),T];var k=crypto.subtle.digest("SHA-512",new Uint8Array([0]));return[k,u(k),T]}(),Ie=ft[0],Co=ft[1],ft=ft[2],Co=Co&&Co.then,Ct=Ie&&Ie.constructor,Ht=!!ft,on=function(T,k){at.push([T,k]),dt&&(queueMicrotask(Ut),dt=!1)},Kt=!0,dt=!0,It=[],zt=[],Le=se,nt={id:"global",global:!0,ref:0,unhandleds:[],onunhandled:J,pgp:!1,env:{},finalize:J},oe=nt,at=[],we=0,wt=[];function st(T){if(typeof this!="object")throw new TypeError("Promises must be constructed via new");this._listeners=[],this._lib=!1;var k=this._PSD=oe;if(typeof T!="function"){if(T!==Ye)throw new TypeError("Not a function");return this._state=arguments[1],this._value=arguments[2],void(this._state===!1&&Fr(this,this._value))}this._state=null,this._value=null,++k.ref,function O(z,q){try{q(function(Q){if(z._state===null){if(Q===z)throw new TypeError("A promise cannot be resolved with itself.");var ue=z._lib&&Ot();Q&&typeof Q.then=="function"?O(z,function(me,xe){Q instanceof st?Q._then(me,xe):Q.then(me,xe)}):(z._state=!0,z._value=Q,aa(z)),ue&&or()}},Fr.bind(null,z))}catch(Q){Fr(z,Q)}}(this,T)}var vr={get:function(){var T=oe,k=yn;function O(z,q){var Q=this,ue=!T.global&&(T!==oe||k!==yn),me=ue&&!vn(),xe=new st(function(De,Ne){ar(Q,new $r(Lc(z,T,ue,me),Lc(q,T,ue,me),De,Ne,T))});return this._consoleTask&&(xe._consoleTask=this._consoleTask),xe}return O.prototype=Ye,O},set:function(T){p(this,"then",T&&T.prototype===Ye?vr:{get:function(){return T},set:vr.set})}};function $r(T,k,O,z,q){this.onFulfilled=typeof T=="function"?T:null,this.onRejected=typeof k=="function"?k:null,this.resolve=O,this.reject=z,this.psd=q}function Fr(T,k){var O,z;zt.push(k),T._state===null&&(O=T._lib&&Ot(),k=Le(k),T._state=!1,T._value=k,z=T,It.some(function(q){return q._value===z._value})||It.push(z),aa(T),O&&or())}function aa(T){var k=T._listeners;T._listeners=[];for(var O=0,z=k.length;O
- ${H8(U.createTime)} ${U.name} <${U.sendEmail}> ${n("wrote")}:
-
-
`,I(),Nt(()=>{p.content=s.value.getContent(),p.subject=v.subject,p.receiveEmail=v.receiveEmail,p.sendType=v.sendType})})}function M(U){U=U||"";const B=a.settings.r2Domain;return U.replace(/{{domain}}/g,B+"/")}function I(){i.currentAccount.email?(v.sendEmail=i.currentAccount.email,v.accountId=i.currentAccount.accountId,v.name=i.currentAccount.name):(v.sendEmail=l.user.email,v.accountId=l.user.accountId,v.name=l.user.name),u.value=!0,s.value.focus()}function D(U){Object.assign(v,{...U}),d.value="",setTimeout(()=>d.value=v.content),u.value=!0,s.value.focus()}const R=U=>{U.key==="Escape"&&j()};en(()=>{window.addEventListener("keydown",R)}),ls(()=>{window.removeEventListener("keydown",R)});function j(){if(v.draftId){r.setDraft={...fn(v)},u.value=!1,S();return}if(!(v.content||v.subject||v.receiveEmail.length>0)){u.value=!1,S();return}if(p.sendType==="reply"){let U=v.subject===p.subject,B=s.value.getContent()===p.content,F=v.receiveEmail.length===1&&v.receiveEmail[0]===p.receiveEmail[0];if(U&&B&&F){S(),j();return}}La.confirm(n("saveDraftConfirm"),{confirmButtonText:n("confirm"),cancelButtonText:n("cancel"),type:"warning",distinguishCancelAndClose:!0}).then(async()=>{const U={...fn(v)};delete U.draftId,delete U.attachments,U.createTime=At().utc().format("YYYY-MM-DD HH:mm:ss");const B=await Lo.value.draft.add({...U});Lo.value.att.add({draftId:B,attachments:fn(v.attachments)}),r.refreshList++,u.value=!1}).catch(U=>{U==="cancel"&&(u.value=!1,S())})}return(U,B)=>{const F=pE,H=Hr,P=ra;return Rt((L(),ne("div",Ide,[A("div",{class:"write-box",onClick:B[2]||(B[2]=$t(()=>{},["stop"]))},[A("div",Pde,[A("div",Ode,[A("span",Lde,[V(y(it),{icon:"hugeicons:quill-write-01",width:"28",height:"28"})]),A("span",Rde,te(U.$t("sender"))+":",1),A("span",Nde,te(v.name),1),A("span",$de,"<"+te(v.sendEmail)+">",1)]),A("div",{onClick:j,style:{cursor:"pointer"}},[V(y(it),{icon:"material-symbols-light:close-rounded",width:"22",height:"22"})])]),A("div",Fde,[V(F,{onAddTag:m,"tag-type":"primary",size:"default",modelValue:v.receiveEmail,"onUpdate:modelValue":B[0]||(B[0]=N=>v.receiveEmail=N),placeholder:U.$t("ruleEmailsInputDesc")},{prefix:X(()=>[A("div",Bde,te(U.$t("recipient")),1)]),suffix:X(()=>[A("span",{class:Z(["distribute",v.manyType?"checked":""]),onClick:$t(g,["stop"])},te(U.$t("sendSeparately")),3)]),_:1},8,["modelValue","placeholder"]),V(H,{modelValue:v.subject,"onUpdate:modelValue":B[1]||(B[1]=N=>v.subject=N),placeholder:U.$t("subjectInputDesc")},{prefix:X(()=>[A("div",Vde,te(U.$t("subject")),1)]),_:1},8,["modelValue","placeholder"]),V(fde,{"def-value":d.value,ref_key:"editor",ref:s,onChange:E},null,8,["def-value"]),A("div",zde,[A("div",{class:"att-add",onClick:w},[V(y(it),{icon:"iconamoon:attachment-fill",width:"24",height:"24"})]),A("div",{class:"att-clear",onClick:b},[V(y(it),{icon:"icon-park-outline:clear-format",width:"24",height:"24 "})]),A("div",Hde,[(L(!0),ne(yt,null,sn(v.attachments,(N,W)=>(L(),ne("div",{class:"att-item",key:W},[V(y(it),{icon:y(z8)(N.filename),width:"20",height:"20"},null,8,["icon"]),A("span",Ude,te(N.filename),1),A("span",Wde,te(y(F8)(N.size)),1),V(y(it),{style:{cursor:"pointer"},icon:"material-symbols-light:close-rounded",onClick:K=>_(W),width:"22",height:"22"},null,8,["onClick"])]))),128))]),A("div",null,[v.sendType==="reply"?(L(),he(P,{key:0,type:"primary",onClick:C},{default:X(()=>[Ze(te(U.$t("reply")),1)]),_:1})):(L(),he(P,{key:1,type:"primary",onClick:C},{default:X(()=>[Ze(te(U.$t("send")),1)]),_:1}))])])])])],512)),[[Pn,u.value]])}}},jde=yr(Kde,[["__scopeId","data-v-b6266946"]]),Yde={__name:"index",setup(e){const t=cs(),n=Y({}),r=Y(window.innerWidth<1025),a=()=>{r.value=window.innerWidth<1025,t.asideShow=window.innerWidth>1024};return en(()=>{t.writerRef=n,window.addEventListener("resize",a),a()}),nr(()=>{window.removeEventListener("resize",a)}),(o,i)=>{const s=dZ,l=hZ,u=pZ,c=fZ;return L(),ne(yt,null,[V(c,{class:"layout"},{default:X(()=>[V(s,{class:Z(["aside",y(t).asideShow?"aside-show":"el-aside-hide"])},{default:X(()=>[V(Gce)]),_:1},8,["class"]),A("div",{class:Z(y(t).asideShow&&r.value?"overlay-show":"overlay-hide"),onClick:i[0]||(i[0]=f=>y(t).asideShow=!1)},null,2),V(c,{class:"main-container"},{default:X(()=>[V(u,null,{default:X(()=>[V(l,null,{default:X(()=>[V(yfe)]),_:1}),V(Vfe)]),_:1})]),_:1})]),_:1}),V(jde,{ref_key:"writerRef",ref:n},null,512)],64)}}},Gde=yr(Yde,[["__scopeId","data-v-1e33df0c"]]),qde=Object.freeze(Object.defineProperty({__proto__:null,default:Gde},Symbol.toStringTag,{value:"Module"})),Xde={class:"email-container"},Zde={class:"header-actions"},Jde={class:"header-right"},Qde={key:0,class:"email-count"},ehe={class:"scroll-box","infinite-scroll-immediate":!1,"infinite-scroll-distance":"600"},the=["data-checked","onClick"],nhe=["onClick"],rhe={key:1},ahe={key:0,class:"email-status"},ohe={key:1},ihe={class:"name"},she={class:"phone-time"},lhe={class:"email-text"},uhe={class:"email-subject"},che={class:"email-content"},fhe={key:0,class:"user-info"},dhe={class:"user"},hhe={class:"account"},phe={key:0,class:"del-status"},vhe={class:"email-time"},mhe={key:0,class:"follow-loading"},ghe={key:1,class:"noLoading"},yhe={key:2,class:"empty"},bhe={__name:"index",props:{getEmailList:Function,emailDelete:Function,starAdd:Function,starCancel:Function,cancelSuccess:Function,starSuccess:Function,actionLeft:{type:String,default:"0"},timeSort:{type:Number,default:0},showStatus:{type:Boolean,default:!1},showAccountIcon:{type:Boolean,default:!0},showUserInfo:{type:Boolean,default:!1},showStar:{type:Boolean,default:!0},allowStar:{type:Boolean,default:!0},type:{type:String,default:""}},emits:["jump","refresh-before","delete-draft"],setup(e,{expose:t,emit:n}){const r=e,a=n,{t:o}=Zr(),i=Jr(),s=cs(),l=su(),u=Y(!1),c=Y(!1),f=Y(!1),h=Jt([]),d=Y(0),p=Y(!1),v=Y(!1),m=Y(null),g=Y(!0);let b=0;const _=Y(null),w=Y(null);let C=!1,S=window.innerWidth<1025;const E=Jt({emailId:0,size:30});t({refreshList:ge,deleteEmail:B,addItem:F,emailList:h,firstLoad:g,latestEmail:_,noLoading:f,total:d}),Vp(()=>{m.value.scrollTop=b}),ee(),xse(()=>{b=m.value.scrollTop}),Xe(()=>h.map(ie=>ie.checked),()=>{h.length>0&&W()},{deep:!0}),Xe(()=>l.deleteIds,()=>{l.deleteIds&&B(l.deleteIds)}),Xe(()=>l.cancelStarEmailId,()=>{h.forEach(ie=>{ie.emailId===l.cancelStarEmailId&&(ie.isStar=0)})}),Xe(()=>l.addStarEmailId,()=>{h.forEach(ie=>{ie.emailId===l.addStarEmailId&&(ie.isStar=1)})});const x=G(()=>s.accountShow&&i.settings.manyEmail===0);function M(ie){}function I(ie){if(ie.content){const ce=document.createElement("div");ce.innerHTML=ie.content.replace(/<(img|iframe|object|embed|video|audio|source|link)[^>]*>/gi,""),ce.querySelectorAll("script, style, title").forEach(ze=>ze.remove());let pe=ce.textContent||ce.innerText||"";return pe=pe.replace(/\s+/g," ").trim(),D(pe)}return ie.text?D(ie.text):""}function D(ie){return ie.replace(/[\u200B-\u200F\uFEFF\u034F\u200B-\u200F\u00A0\u3000\u00AD]/g,"").replace(/\s+/g," ").trim()}function R(ie){if(ie.isStar)ie.isStar=0,r.starCancel(ie.emailId).then(()=>{ie.isStar=0,r.cancelSuccess?.(ie)}).catch(ce=>{console.error(ce),ie.isStar=1});else{if(!r.allowStar)return;ie.isStar=1,r.starAdd(ie.emailId).then(()=>{ie.isStar=1,r.starSuccess(ie)}).catch(ce=>{console.error(ce),ie.isStar=0})}}function j(){s.accountShow=!s.accountShow}const U=()=>{La.confirm(o("delEmailsConfirm"),{confirmButtonText:o("confirm"),cancelButtonText:o("cancel"),type:"warning"}).then(()=>{if(r.type==="draft"){const ce=N();a("delete-draft",ce);return}const ie=P();r.emailDelete(ie).then(()=>{kt({message:o("delSuccessMsg"),type:"success",plain:!0}),l.deleteIds=ie})})};function B(ie){ie.forEach(ce=>{h.forEach((_e,pe)=>{ce===_e.emailId&&h.splice(pe,1)})}),h.length${U.text}`}
-
- 1&&r&&r.length>1){var o=pI(r)/pI(a);!isFinite(o)&&(o=1),t.pinchScale=o;var i=n0e(r);return t.pinchX=i[0],t.pinchY=i[1],{type:"pinch",target:e[0].target,event:t}}}}};function Ol(){return[1,0,0,1,0,0]}function lv(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function sk(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function Ll(e,t,n){var r=t[0]*n[0]+t[2]*n[1],a=t[1]*n[0]+t[3]*n[1],o=t[0]*n[2]+t[2]*n[3],i=t[1]*n[2]+t[3]*n[3],s=t[0]*n[4]+t[2]*n[5]+t[4],l=t[1]*n[4]+t[3]*n[5]+t[5];return e[0]=r,e[1]=a,e[2]=o,e[3]=i,e[4]=s,e[5]=l,e}function Oy(e,t,n){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+n[0],e[5]=t[5]+n[1],e}function fb(e,t,n,r){r===void 0&&(r=[0,0]);var a=t[0],o=t[2],i=t[4],s=t[1],l=t[3],u=t[5],c=Math.sin(n),f=Math.cos(n);return e[0]=a*f+s*c,e[1]=-a*c+s*f,e[2]=o*f+l*c,e[3]=-o*c+f*l,e[4]=f*(i-r[0])+c*(u-r[1])+r[0],e[5]=f*(u-r[1])-c*(i-r[0])+r[1],e}function l4(e,t,n){var r=n[0],a=n[1];return e[0]=t[0]*r,e[1]=t[1]*a,e[2]=t[2]*r,e[3]=t[3]*a,e[4]=t[4]*r,e[5]=t[5]*a,e}function uv(e,t){var n=t[0],r=t[2],a=t[4],o=t[1],i=t[3],s=t[5],l=n*i-o*r;return l?(l=1/l,e[0]=i*l,e[1]=-o*l,e[2]=-r*l,e[3]=n*l,e[4]=(r*s-i*a)*l,e[5]=(o*a-n*s)*l,e):null}function r0e(e){var t=Ol();return sk(t,e),t}const a0e=Object.freeze(Object.defineProperty({__proto__:null,clone:r0e,copy:sk,create:Ol,identity:lv,invert:uv,mul:Ll,rotate:fb,scale:l4,translate:Oy},Symbol.toStringTag,{value:"Module"}));var un=function(){function e(t,n){this.x=t||0,this.y=n||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,n){return this.x=t,this.y=n,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,n){this.x+=t.x*n,this.y+=t.y*n},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var n=this.x-t.x,r=this.y-t.y;return Math.sqrt(n*n+r*r)},e.prototype.distanceSquare=function(t){var n=this.x-t.x,r=this.y-t.y;return n*n+r*r},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var n=this.x,r=this.y;return this.x=t[0]*n+t[2]*r+t[4],this.y=t[1]*n+t[3]*r+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,n,r){t.x=n,t.y=r},e.copy=function(t,n){t.x=n.x,t.y=n.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,n){return t.x*n.x+t.y*n.y},e.add=function(t,n,r){t.x=n.x+r.x,t.y=n.y+r.y},e.sub=function(t,n,r){t.x=n.x-r.x,t.y=n.y-r.y},e.scale=function(t,n,r){t.x=n.x*r,t.y=n.y*r},e.scaleAndAdd=function(t,n,r,a){t.x=n.x+r.x*a,t.y=n.y+r.y*a},e.lerp=function(t,n,r,a){var o=1-a;t.x=o*n.x+a*r.x,t.y=o*n.y+a*r.y},e}(),um=Math.min,cm=Math.max,wu=new un,Su=new un,Cu=new un,Tu=new un,zd=new un,Hd=new un,Nn=function(){function e(t,n,r,a){r<0&&(t=t+r,r=-r),a<0&&(n=n+a,a=-a),this.x=t,this.y=n,this.width=r,this.height=a}return e.prototype.union=function(t){var n=um(t.x,this.x),r=um(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=cm(t.x+t.width,this.x+this.width)-n:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=cm(t.y+t.height,this.y+this.height)-r:this.height=t.height,this.x=n,this.y=r},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var n=this,r=t.width/n.width,a=t.height/n.height,o=Ol();return Oy(o,o,[-n.x,-n.y]),l4(o,o,[r,a]),Oy(o,o,[t.x,t.y]),o},e.prototype.intersect=function(t,n){if(!t)return!1;t instanceof e||(t=e.create(t));var r=this,a=r.x,o=r.x+r.width,i=r.y,s=r.y+r.height,l=t.x,u=t.x+t.width,c=t.y,f=t.y+t.height,h=!(o0;)i=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),i+=a,l+=a}else{for(s=a+1;ls&&(l=s);var u=i;i=a-l,l=a-u}for(i++;is&&(l=s);var u=i;i=a-l,l=a-u}else{for(s=r-a;l=0;)i=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),i+=a,l+=a}for(i++;ih4||e<-1e-8}function ta(e,t,n,r,a){var o=1-a;return o*o*(o*e+3*a*t)+a*a*(a*r+3*o*n)}function wI(e,t,n,r,a){var o=1-a;return 3*(((t-e)*o+2*(n-t)*a)*o+(r-n)*a*a)}function Ry(e,t,n,r,a,o){var i=r+3*(t-n)-e,s=3*(n-t*2+e),l=3*(t-e),u=e-a,c=s*s-3*i*l,f=s*l-9*i*u,h=l*l-3*s*u,d=0;if(kl(c)&&kl(f))if(kl(s))o[0]=0;else{var p=-l/s;p>=0&&p<=1&&(o[d++]=p)}else{var v=f*f-4*c*h;if(kl(v)){var m=f/c,p=-s/i+m,g=-m/2;p>=0&&p<=1&&(o[d++]=p),g>=0&&g<=1&&(o[d++]=g)}else if(v>0){var b=Rl(v),_=c*s+1.5*i*(-f+b),w=c*s+1.5*i*(-f-b);_<0?_=-fm(-_,dm):_=fm(_,dm),w<0?w=-fm(-w,dm):w=fm(w,dm);var p=(-s-(_+w))/(3*i);p>=0&&p<=1&&(o[d++]=p)}else{var C=(2*c*s-3*i*f)/(2*Rl(c*c*c)),S=Math.acos(C)/3,E=Rl(c),x=Math.cos(S),p=(-s-2*E*x)/(3*i),g=(-s+E*(x+_I*Math.sin(S)))/(3*i),M=(-s+E*(x-_I*Math.sin(S)))/(3*i);p>=0&&p<=1&&(o[d++]=p),g>=0&&g<=1&&(o[d++]=g),M>=0&&M<=1&&(o[d++]=M)}}return d}function m4(e,t,n,r,a){var o=6*n-12*t+6*e,i=9*t+3*r-3*e-9*n,s=3*t-3*e,l=0;if(kl(i)){if(v4(o)){var u=-s/o;u>=0&&u<=1&&(a[l++]=u)}}else{var c=o*o-4*i*s;if(kl(c))a[0]=-o/(2*i);else if(c>0){var f=Rl(c),u=(-o+f)/(2*i),h=(-o-f)/(2*i);u>=0&&u<=1&&(a[l++]=u),h>=0&&h<=1&&(a[l++]=h)}}return l}function Ny(e,t,n,r,a,o){var i=(t-e)*a+e,s=(n-t)*a+t,l=(r-n)*a+n,u=(s-i)*a+i,c=(l-s)*a+s,f=(c-u)*a+u;o[0]=e,o[1]=i,o[2]=u,o[3]=f,o[4]=f,o[5]=c,o[6]=l,o[7]=r}function p0e(e,t,n,r,a,o,i,s,l,u,c){var f,h=.005,d=1/0,p,v,m,g;Ki[0]=l,Ki[1]=u;for(var b=0;b<1;b+=.05)No[0]=ta(e,n,a,i,b),No[1]=ta(t,r,o,s,b),m=ic(Ki,No),m
n);c++);c=h(c-1,s-2)}p=i[c+1],d=i[c]}if(d&&p){this._lastFr=c,this._lastFrP=n;var m=p.percent-d.percent,g=m===0?1:h((n-d.percent)/m,1);p.easingFunc&&(g=p.easingFunc(g));var b=r?this._additiveValue:u?Kd:t[l];if((mm(o)||u)&&!b&&(b=this._additiveValue=[]),this.discrete)t[l]=g<1?d.rawValue:p.rawValue;else if(mm(o))o===Pg?v1(b,d[a],p[a],g):O0e(b,d[a],p[a],g);else if(xI(o)){var _=d[a],w=p[a],C=o===iC;t[l]={type:C?"linear":"radial",x:ks(_.x,w.x,g),y:ks(_.y,w.y,g),colorStops:Xt(_.colorStops,function(E,x){var M=w.colorStops[x];return{offset:ks(E.offset,M.offset,g),color:Ig(v1([],E.color,M.color,g))}}),global:w.global},C?(t[l].x2=ks(_.x2,w.x2,g),t[l].y2=ks(_.y2,w.y2,g)):t[l].r=ks(_.r,w.r,g)}else if(u)v1(b,d[a],p[a],g),r||(t[l]=Ig(b));else{var S=ks(d[a],p[a],g);r?this._additiveValue=S:t[l]=S}r&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var n=this.valType,r=this.propName,a=this._additiveValue;n===vm?t[r]=t[r]+a:n===dh?(go(t[r],Kd),pm(Kd,Kd,a,1),t[r]=Ig(Kd)):n===Pg?pm(t[r],t[r],a,1):n===S4&&EI(t[r],t[r],a,1)},e}(),uk=function(){function e(t,n,r,a){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=n,n&&a){ub("Can' use additive animation on looped animation.");return}this._additiveAnimators=a,this._allowDiscrete=r}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,n,r){return this.whenWithKeys(t,n,hr(n),r)},e.prototype.whenWithKeys=function(t,n,r,a){for(var o=this._tracks,i=0;i