iking-countto
Version:
金合前端组件
2 lines (1 loc) • 5.35 kB
JavaScript
(function(g,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(g=typeof globalThis<"u"?globalThis:g||self,t(g.IkingCountTo={},g.Vue))})(this,function(g,t){"use strict";var N;const w=typeof window<"u",z=e=>typeof e=="function",V=e=>typeof e=="number",G=(e,r,n)=>Math.min(n,Math.max(r,e)),x=()=>{};w&&((N=window==null?void 0:window.navigator)==null?void 0:N.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function R(e){return typeof e=="function"?e():t.unref(e)}function F(e){return e}function Q(e){return t.getCurrentScope()?(t.onScopeDispose(e),!0):!1}function U(e,r,n={}){const{immediate:s=!0}=n,u=t.ref(!1);let i=null;function d(){i&&(clearTimeout(i),i=null)}function c(){u.value=!1,d()}function p(...m){d(),u.value=!0,i=setTimeout(()=>{u.value=!1,i=null,e(...m)},R(r))}return s&&(u.value=!0,w&&p()),Q(c),{isPending:u,start:p,stop:c}}const W=w?window:void 0;w&&window.document,w&&window.navigator,w&&window.location;const P=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},E="__vueuse_ssr_handlers__";P[E]=P[E]||{},P[E];function X(e,r={}){const{immediate:n=!0,window:s=W}=r,u=t.ref(!1);let i=null;function d(){!u.value||!s||(e(),i=s.requestAnimationFrame(d))}function c(){!u.value&&s&&(u.value=!0,d())}function p(){u.value=!1,i!=null&&s&&(s.cancelAnimationFrame(i),i=null)}return n&&c(),Q(p),{isActive:u,pause:p,resume:c}}var B;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(B||(B={}));var q=Object.defineProperty,A=Object.getOwnPropertySymbols,H=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable,k=(e,r,n)=>r in e?q(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,$=(e,r)=>{for(var n in r||(r={}))H.call(r,n)&&k(e,n,r[n]);if(A)for(var n of A(r))L.call(r,n)&&k(e,n,r[n]);return e};const K=$({linear:F},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});function J([e,r,n,s]){const u=(o,a)=>1-3*a+3*o,i=(o,a)=>3*a-6*o,d=o=>3*o,c=(o,a,l)=>((u(a,l)*o+i(a,l))*o+d(a))*o,p=(o,a,l)=>3*u(a,l)*o*o+2*i(a,l)*o+d(a),m=o=>{let a=o;for(let l=0;l<4;++l){const y=p(a,e,n);if(y===0)return a;a-=(c(a,e,n)-o)/y}return a};return o=>e===r&&n===s?o:c(m(o),r,s)}function D(e,r={}){const{delay:n=0,disabled:s=!1,duration:u=1e3,onFinished:i=x,onStarted:d=x,transition:c=F}=r,p=t.computed(()=>{const f=t.unref(c);return z(f)?f:J(f)}),m=t.computed(()=>{const f=t.unref(e);return V(f)?f:f.map(t.unref)}),o=t.computed(()=>V(m.value)?[m.value]:m.value),a=t.ref(o.value.slice(0));let l,y,b,S,O;const{resume:_,pause:T}=X(()=>{const f=Date.now(),v=G(1-(b-f)/l,0,1);a.value=O.map((h,C)=>{var j;return h+((j=y[C])!=null?j:0)*p.value(v)}),v>=1&&(T(),i())},{immediate:!1}),I=()=>{T(),l=t.unref(u),y=a.value.map((f,v)=>{var h,C;return((h=o.value[v])!=null?h:0)-((C=a.value[v])!=null?C:0)}),O=a.value.slice(0),S=Date.now(),b=S+l,_(),d()},Z=U(I,n,{immediate:!1});return t.watch(o,()=>{t.unref(s)?a.value=o.value.slice(0):t.unref(n)<=0?I():Z.start()},{deep:!0}),t.computed(()=>{const f=t.unref(s)?o:a;return V(m.value)?f.value[0]:f.value})}const M=t.defineComponent({__name:"IkingCountTo",props:{startVal:{type:Number,default:0},endVal:{type:Number,default:2022},duration:{type:Number,default:1500},autoplay:{type:Boolean,default:!0},decimals:{type:Number,default:0,validator(e){return e>=0}},prefix:{type:String,default:""},suffix:{type:String,default:""},separator:{type:String,default:","},decimal:{type:String,default:"."},color:{type:String},useEasing:{type:Boolean,default:!0},transition:{type:String,default:"linear"},customClass:{type:String}},emits:["onFinished","onStarted"],setup(e,{emit:r}){const n=e,s=t.ref(n.startVal);t.watchEffect(()=>{s.value=n.startVal}),t.watch([()=>n.startVal,()=>n.endVal],()=>{n.autoplay&&c()});const u=t.ref(!1);let i=D(s);const d=t.computed(()=>m(t.unref(i)));function c(){p(),s.value=n.endVal}function p(){i=D(s,{disabled:u,duration:n.duration,onFinished:()=>r("onFinished"),onStarted:()=>r("onStarted"),...n.useEasing?{transition:K[n.transition]}:{}})}const m=o=>{if(!o&&o!==0)return"";const{decimals:a,decimal:l,separator:y,suffix:b,prefix:S}=n;o=Number(o).toFixed(a),o+="";const O=o.split(".");let _=O[0];const T=O.length>1?l+O[1]:"",I=/(\d+)(\d{3})/;if(y&&typeof y!="number")for(;I.test(_);)_=_.replace(I,"$1"+y+"$2");return S+_+T+b};return t.onMounted(()=>{n.autoplay&&c()}),(o,a)=>(t.openBlock(),t.createElementBlock("span",{style:t.normalizeStyle({color:e.color}),class:t.normalizeClass({customClass:e.customClass})},t.toDisplayString(t.unref(d)),7))}}),Y=e=>{e.component("IkingCountTo",M)};g.default=M,g.install=Y,Object.defineProperties(g,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});