2 lines
4.3 KiB
JavaScript
2 lines
4.3 KiB
JavaScript
import{m as k,aF as O,_ as p,r as M,i as N,y as A,j as y,bG as U,I as B,cK as $,l as P,bO as L,bQ as _,o as Q}from"./bootstrap-CRjSNGHY.js";import{j as m,m as R,b9 as D,v as V,Q as X,aW as G}from"../jse/index-index-CMeVxoEG.js";const I=t=>{const{value:n,formatter:e,precision:a,decimalSeparator:s,groupSeparator:u="",prefixCls:c}=t;let r;if(typeof e=="function")r=e({value:n});else{const i=String(n),f=i.match(/^(-?)(\d*)(\.(\d+))?$/);if(!f)r=i;else{const d=f[1];let o=f[2]||"0",l=f[4]||"";o=o.replace(/\B(?=(\d{3})+(?!\d))/g,u),typeof a=="number"&&(l=l.padEnd(a,"0").slice(0,a>0?a:0)),l&&(l=`${s}${l}`),r=[m("span",{key:"int",class:`${c}-content-value-int`},[d,o]),l&&m("span",{key:"decimal",class:`${c}-content-value-decimal`},[l])]}}return m("span",{class:`${c}-content-value`},[r])};I.displayName="StatisticNumber";const K=t=>{const{componentCls:n,marginXXS:e,padding:a,colorTextDescription:s,statisticTitleFontSize:u,colorTextHeading:c,statisticContentFontSize:r,statisticFontFamily:i}=t;return{[`${n}`]:p(p({},M(t)),{[`${n}-title`]:{marginBottom:e,color:s,fontSize:u},[`${n}-skeleton`]:{paddingTop:a},[`${n}-content`]:{color:c,fontSize:r,fontFamily:i,[`${n}-content-value`]:{display:"inline-block",direction:"ltr"},[`${n}-content-prefix, ${n}-content-suffix`]:{display:"inline-block"},[`${n}-content-prefix`]:{marginInlineEnd:e},[`${n}-content-suffix`]:{marginInlineStart:e}}})}},W=k("Statistic",t=>{const{fontSizeHeading3:n,fontSize:e,fontFamily:a}=t,s=O(t,{statisticTitleFontSize:e,statisticContentFontSize:n,statisticFontFamily:a});return[K(s)]}),j=()=>({prefixCls:String,decimalSeparator:String,groupSeparator:String,format:String,value:_([Number,String,Object]),valueStyle:{type:Object,default:void 0},valueRender:L(),formatter:P(),precision:Number,prefix:$(),suffix:$(),title:$(),loading:B()}),v=R({compatConfig:{MODE:3},name:"AStatistic",inheritAttrs:!1,props:N(j(),{decimalSeparator:".",groupSeparator:",",loading:!1}),slots:Object,setup(t,n){let{slots:e,attrs:a}=n;const{prefixCls:s,direction:u}=A("statistic",t),[c,r]=W(s);return()=>{var i,f,d,o,l,g,S;const{value:z=0,valueStyle:E,valueRender:w}=t,x=s.value,b=(i=t.title)!==null&&i!==void 0?i:(f=e.title)===null||f===void 0?void 0:f.call(e),h=(d=t.prefix)!==null&&d!==void 0?d:(o=e.prefix)===null||o===void 0?void 0:o.call(e),F=(l=t.suffix)!==null&&l!==void 0?l:(g=e.suffix)===null||g===void 0?void 0:g.call(e),H=(S=t.formatter)!==null&&S!==void 0?S:e.formatter;let C=m(I,y({"data-for-update":Date.now()},p(p({},t),{prefixCls:x,value:z,formatter:H})),null);return w&&(C=w(C)),c(m("div",y(y({},a),{},{class:[x,{[`${x}-rtl`]:u.value==="rtl"},a.class,r.value]}),[b&&m("div",{class:`${x}-title`},[b]),m(U,{paragraph:!1,loading:t.loading},{default:()=>[m("div",{style:E,class:`${x}-content`},[h&&m("span",{class:`${x}-content-prefix`},[h]),C,F&&m("span",{class:`${x}-content-suffix`},[F])])]})]))}}}),Y=[["Y",1e3*60*60*24*365],["M",1e3*60*60*24*30],["D",1e3*60*60*24],["H",1e3*60*60],["m",1e3*60],["s",1e3],["S",1]];function q(t,n){let e=t;const a=/\[[^\]]*]/g,s=(n.match(a)||[]).map(i=>i.slice(1,-1)),u=n.replace(a,"[]"),c=Y.reduce((i,f)=>{let[d,o]=f;if(i.includes(d)){const l=Math.floor(e/o);return e-=l*o,i.replace(new RegExp(`${d}+`,"g"),g=>{const S=g.length;return l.toString().padStart(S,"0")})}return i},u);let r=0;return c.replace(a,()=>{const i=s[r];return r+=1,i})}function J(t,n){const{format:e=""}=n,a=new Date(t).getTime(),s=Date.now(),u=Math.max(a-s,0);return q(u,e)}const Z=1e3/30;function T(t){return new Date(t).getTime()}const tt=()=>p(p({},j()),{value:_([Number,String,Object]),format:String,onFinish:Function,onChange:Function}),et=R({compatConfig:{MODE:3},name:"AStatisticCountdown",props:N(tt(),{format:"HH:mm:ss"}),setup(t,n){let{emit:e,slots:a}=n;const s=D(),u=D(),c=()=>{const{value:o}=t;T(o)>=Date.now()?r():i()},r=()=>{if(s.value)return;const o=T(t.value);s.value=setInterval(()=>{u.value.$forceUpdate(),o>Date.now()&&e("change",o-Date.now()),c()},Z)},i=()=>{const{value:o}=t;s.value&&(clearInterval(s.value),s.value=void 0,T(o)<Date.now()&&e("finish"))},f=o=>{let{value:l,config:g}=o;const{format:S}=t;return J(l,p(p({},g),{format:S}))},d=o=>o;return V(()=>{c()}),X(()=>{c()}),G(()=>{i()}),()=>{const o=t.value;return m(v,y({ref:u},p(p({},Q(t,["onFinish","onChange"])),{value:o,valueRender:d,formatter:f})),a)}}});v.Countdown=et;v.install=function(t){return t.component(v.name,v),t.component(v.Countdown.name,v.Countdown),t};v.Countdown;export{v as S};
|