UNPKG

ll-package

Version:

2 lines (1 loc) 1.52 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("../../../@babel/runtime/helpers/esm/extends.js"),n=require("vue"),C=require("../_util/classNames.js");function p(t){let{prefixCls:u,value:r,current:e,offset:l=0}=t,a;return l&&(a={position:"absolute",top:`${l}00%`,left:0}),n.createVNode("p",{style:a,class:C.default(`${u}-only-unit`,{current:e})},[r])}function V(t,u,r){let e=t,l=0;for(;(e+10)%10!==u;)e+=r,l+=r;return l}const x=n.defineComponent({compatConfig:{MODE:3},name:"SingleNumber",props:{prefixCls:String,value:String,count:Number},setup(t){const u=n.computed(()=>Number(t.value)),r=n.computed(()=>Math.abs(t.count)),e=n.reactive({prevValue:u.value,prevCount:r.value}),l=()=>{e.prevValue=u.value,e.prevCount=r.value},a=n.ref();return n.watch(u,()=>{clearTimeout(a.value),a.value=setTimeout(()=>{l()},1e3)},{flush:"post"}),n.onUnmounted(()=>{clearTimeout(a.value)}),()=>{let i,f={};const s=u.value;if(e.prevValue===s||Number.isNaN(s)||Number.isNaN(e.prevValue))i=[p(c.default(c.default({},t),{current:!0}))],f={transition:"none"};else{i=[];const N=s+10,v=[];for(let o=s;o<=N;o+=1)v.push(o);const d=v.findIndex(o=>o%10===e.prevValue);i=v.map((o,m)=>{const g=o%10;return p(c.default(c.default({},t),{value:g,offset:m-d,current:m===d}))});const b=e.prevCount<r.value?1:-1;f={transform:`translateY(${-V(e.prevValue,s,b)}00%)`}}return n.createVNode("span",{class:`${t.prefixCls}-only`,style:f,onTransitionend:()=>l()},[i])}}});exports.default=x;