@vuesax-alpha/nightly
Version:
A Component Library for Vue 3
60 lines (57 loc) • 1.68 kB
JavaScript
import { isNil } from 'lodash-unified';
import '../../../utils/index.mjs';
import '../../../constants/index.mjs';
import '../../../hooks/index.mjs';
import { buildProps } from '../../../utils/vue/props/runtime.mjs';
import { useColorProp } from '../../../hooks/use-common-props/index.mjs';
import { isNumber } from '../../../utils/types.mjs';
import { CHANGE_EVENT, INPUT_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
const inputNumberProps = buildProps({
color: useColorProp,
background: useColorProp,
id: {
type: String,
default: void 0
},
step: {
type: Number,
default: 1
},
stepStrictly: { type: Boolean },
max: {
type: Number,
default: Number.POSITIVE_INFINITY
},
min: {
type: Number,
default: Number.NEGATIVE_INFINITY
},
modelValue: { type: Number },
readonly: { type: Boolean },
disabled: { type: Boolean },
controls: {
type: Boolean,
default: true
},
valueOnClear: {
type: [String, Number, null],
validator: (val) => val === null || isNumber(val) || ["min", "max"].includes(val),
default: null
},
name: { type: String },
label: { type: String },
placeholder: { type: String },
precision: {
type: Number,
validator: (val) => val >= 0 && val === Number.parseInt(`${val}`, 10)
}
});
const inputNumberEmits = {
[CHANGE_EVENT]: (cur, prev) => prev !== cur,
blur: (e) => e instanceof FocusEvent,
focus: (e) => e instanceof FocusEvent,
[INPUT_EVENT]: (val) => isNumber(val) || isNil(val),
[UPDATE_MODEL_EVENT]: (val) => isNumber(val) || isNil(val)
};
export { inputNumberEmits, inputNumberProps };
//# sourceMappingURL=input-number.mjs.map