2 lines
2.8 KiB
JavaScript
2 lines
2.8 KiB
JavaScript
var v=(t,e,n)=>new Promise((s,r)=>{var l=a=>{try{u(n.next(a))}catch(c){r(c)}},o=a=>{try{u(n.throw(a))}catch(c){r(c)}},u=a=>a.done?s(a.value):Promise.resolve(a.value).then(l,o);u((n=n.apply(t,e)).next())});import{q as I,I as h,J as C,e as S,K as z,L as F,j as d,M as T,r as f,N as A,d as g,b as N,_ as y,O as k,P as p,o as _,i as w,s as m,x as O,t as P,Q as $,a as R,R as j,S as D,T as V,U as q,V as E,m as L,H as b}from"./index.7edff3d4.js";import{Button as U}from"ant-design-vue";import{i as H}from"./isEqual.f69d6b4d.js";function J(t,e="value",n="change",s){const r=T(),l=r==null?void 0:r.emit,o=I({value:t[e]}),u=h(o),a=i=>{o.value=i};return C(()=>{o.value=t[e]}),[S({get(){return o.value},set(i){H(i,u.value)||(o.value=i,z(()=>{l==null||l(n,i,...F(d(s))||[])}))}}),a,u]}function K(t){const e=f(t),n=f(!1);let s;function r(){s&&window.clearInterval(s)}function l(){n.value=!1,r(),s=null}function o(){d(n)||!!s||(n.value=!0,s=setInterval(()=>{d(e)===1?(l(),e.value=t):e.value-=1},1e3))}function u(){e.value=t,l()}function a(){u(),o()}return A(()=>{u()}),{start:o,reset:u,restart:a,clear:r,stop:l,currentCount:e,isStart:n}}const M={value:{type:[Object,Number,String,Array]},count:{type:Number,default:60},beforeStartFunc:{type:Function,default:null}},Q=g({name:"CountButton",components:{Button:U},props:M,setup(t){const e=f(!1),{currentCount:n,isStart:s,start:r,reset:l}=K(t.count),{t:o}=N(),u=S(()=>d(s)?o("component.countdown.sendText",[d(n)]):o("component.countdown.normalText"));C(()=>{t.value===void 0&&l()});function a(){return v(this,null,function*(){const{beforeStartFunc:c}=t;if(c&&k(c)){e.value=!0;try{(yield c())&&r()}finally{e.value=!1}}else r()})}return{handleStart:a,currentCount:n,loading:e,getButtonText:u,isStart:s}}});function x(t,e,n,s,r,l){const o=p("Button");return _(),w(o,$(t.$attrs,{disabled:t.isStart,onClick:t.handleStart,loading:t.loading}),{default:m(()=>[O(P(t.getButtonText),1)]),_:1},16,["disabled","onClick","loading"])}var B=y(Q,[["render",x]]);const G={value:{type:String},size:{type:String,validator:t=>["default","large","small"].includes(t)},count:{type:Number,default:60},sendCodeApi:{type:Function,default:null}},W=g({name:"CountDownInput",components:{CountButton:B},inheritAttrs:!1,props:G,setup(t){const{prefixCls:e}=R("countdown-input"),[n]=J(t);return{prefixCls:e,state:n}}});function X(t,e,n,s,r,l){const o=p("CountButton"),u=p("a-input");return _(),w(u,$(t.$attrs,{class:t.prefixCls,size:t.size,value:t.state}),j({addonAfter:m(()=>[L(o,{size:t.size,count:t.count,value:t.state,beforeStartFunc:t.sendCodeApi},null,8,["size","count","value","beforeStartFunc"])]),_:2},[D(Object.keys(t.$slots).filter(a=>a!=="addonAfter"),a=>({name:a,fn:m(c=>[V(t.$slots,a,q(E(c||{})))])}))]),1040,["class","size","value"])}var Y=y(W,[["render",X]]);const at=b(Y);b(B);export{at as C,J as u};
|