@aotearoan/neon
Version:
Neon is a lightweight design library of Vue 3 components with minimal dependencies.
3 lines (2 loc) • 1.62 kB
JavaScript
"use strict";const t=require("vue"),f=require("../../../common/enums/NeonFunctionalColor.cjs.js"),p=require("../../../common/utils/NeonNumberUtils.cjs.js"),y=t.defineComponent({name:"NeonSlider",props:{modelValue:{type:Number,required:!0},id:{type:String,required:!1},color:{type:String,default:f.NeonFunctionalColor.LowContrast},locale:{type:String,default:null},output:{type:Boolean,default:!0},legend:{type:Boolean,default:!0},tooltip:{type:Boolean,default:!0},percentage:{type:Boolean,default:!1},step:{type:Number,required:!1},decimals:{type:Number,required:!1},valueTemplate:{type:String,required:!1},disableFormatting:{type:Boolean,default:!1},min:{type:Number,default:0},max:{type:Number,required:!1},lowerBound:{type:Number,required:!1},upperBound:{type:Number,required:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{emit:o}){const r=t.useAttrs(),d=t.computed(()=>{const{...u}=r;return u}),l=u=>e.disableFormatting?u:p.NeonNumberUtils.formatNumber(u,{decimals:e.decimals,format:e.valueTemplate,percentage:e.percentage},e.locale),i=t.computed(()=>l(e.min)),n=t.computed(()=>e.max!==void 0?e.max:e.percentage?1:100),m=t.computed(()=>l(n.value)),c=t.computed(()=>l(e.modelValue)),s=t.computed(()=>e.step!==void 0?e.step:e.percentage?.01:1);return{sanitizedAttributes:d,formattedMin:i,formattedMax:m,formattedValue:c,computedMax:n,computedStep:s,changeValue:u=>{let a=+u.target.value;e.lowerBound!==void 0&&a<e.lowerBound?a=e.lowerBound:e.upperBound!==void 0&&a>e.upperBound&&(a=e.upperBound),o("update:modelValue",a)}}}});module.exports=y;
//# sourceMappingURL=NeonSlider.cjs.js.map