@aotearoan/neon
Version:
Neon is a lightweight design library of Vue 3 components with minimal dependencies.
3 lines (2 loc) • 1.45 kB
JavaScript
;const t=require("vue"),d=require("../../../model/common/color/NeonFunctionalColor.cjs.js"),s=require("../../../model/common/size/NeonSize.cjs.js"),N=require("../../presentation/icon/NeonIcon.vue.cjs.js"),r=require("../../../utils/common/number/NeonNumberUtils.cjs.js"),f=t.defineComponent({name:"NeonLinearProgress",components:{NeonIcon:N},props:{modelValue:{type:Number,required:!0},total:{type:Number,default:null},label:{type:String,default:null},color:{type:String,default:d.NeonFunctionalColor.Primary},alternateColor:{type:String,default:null},size:{type:String,default:s.NeonSize.Medium},locale:{type:String,default:null},output:{type:Boolean,default:!0},completedIcon:{type:String,default:null},completedIconColor:{type:String,default:null},decimals:{type:Number,default:0}},setup(e){const l=t.ref(0),a=t.computed(()=>e.total?1:.01),o=t.computed(()=>100*l.value/(e.total||1)),c=t.computed(()=>e.total||100),i=t.computed(()=>o.value>=100),m=t.computed(()=>e.total?`${r.NeonNumberUtils.formatNumber(l.value,{decimals:e.decimals},e.locale)} / ${e.total}`:`${r.NeonNumberUtils.formatNumber(o.value,{decimals:e.decimals},e.locale)}%`),u=n=>{setTimeout(()=>{l.value=Math.min(n,l.value+a.value),n>l.value&&u(n)},25)};return t.watch(()=>e.modelValue,n=>{u(n)},{immediate:!0}),{calculatedValue:l,computedTotal:c,completed:i,computedOutput:m,computedPercentage:o}}});module.exports=f;
//# sourceMappingURL=NeonLinearProgress.cjs.js.map