element-plus
Version:
A Component Library for Vue 3
1 lines • 6.01 kB
Source Map (JSON)
{"version":3,"file":"input-number.mjs","sources":["../../../../../../packages/components/input-number/src/input-number.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport { useAriaProps, useSizeProp } from '@element-plus/hooks'\nimport { buildProps, definePropType, isNumber } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\n\nimport type {\n ExtractPropTypes,\n ExtractPublicPropTypes,\n HTMLAttributes,\n} from 'vue'\nimport type InputNumber from './input-number.vue'\n\nexport const inputNumberProps = buildProps({\n /**\n * @description same as `id` in native input\n */\n id: {\n type: String,\n default: undefined,\n },\n /**\n * @description incremental step\n */\n step: {\n type: Number,\n default: 1,\n },\n /**\n * @description whether input value can only be multiple of step\n */\n stepStrictly: Boolean,\n /**\n * @description the maximum allowed value\n */\n max: {\n type: Number,\n default: Number.MAX_SAFE_INTEGER,\n },\n /**\n * @description the minimum allowed value\n */\n min: {\n type: Number,\n default: Number.MIN_SAFE_INTEGER,\n },\n /**\n * @description binding value\n */\n modelValue: {\n type: [Number, null],\n },\n /**\n * @description same as `readonly` in native input\n */\n readonly: Boolean,\n /**\n * @description whether the component is disabled\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description size of the component\n */\n size: useSizeProp,\n /**\n * @description whether to enable the control buttons\n */\n controls: {\n type: Boolean,\n default: true,\n },\n /**\n * @description position of the control buttons\n */\n controlsPosition: {\n type: String,\n default: '',\n values: ['', 'right'],\n },\n /**\n * @description value should be set when input box is cleared\n */\n valueOnClear: {\n type: definePropType<'min' | 'max' | number | null>([String, Number, null]),\n validator: (val: 'min' | 'max' | number | null) =>\n val === null || isNumber(val) || ['min', 'max'].includes(val),\n default: null,\n },\n /**\n * @description same as `name` in native input\n */\n name: String,\n /**\n * @description same as `placeholder` in native input\n */\n placeholder: String,\n /**\n * @description precision of input value\n */\n precision: {\n type: Number,\n validator: (val: number) =>\n val >= 0 && val === Number.parseInt(`${val}`, 10),\n },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n ...useAriaProps(['ariaLabel']),\n /**\n * @description native input mode for virtual keyboards\n */\n inputmode: {\n type: definePropType<HTMLAttributes['inputmode']>(String),\n default: undefined,\n },\n /**\n * @description alignment for the inner input text\n */\n align: {\n type: definePropType<'left' | 'right' | 'center'>(String),\n default: 'center',\n },\n /**\n * @description whether to disable scientific notation input (e.g. 'e', 'E')\n */\n disabledScientific: Boolean,\n} as const)\nexport type InputNumberProps = ExtractPropTypes<typeof inputNumberProps>\nexport type InputNumberPropsPublic = ExtractPublicPropTypes<\n typeof inputNumberProps\n>\n\nexport const inputNumberEmits = {\n [CHANGE_EVENT]: (cur: number | undefined, prev: number | undefined) =>\n prev !== cur,\n blur: (e: FocusEvent) => e instanceof FocusEvent,\n focus: (e: FocusEvent) => e instanceof FocusEvent,\n [INPUT_EVENT]: (val: number | null | undefined) =>\n isNumber(val) || isNil(val),\n [UPDATE_MODEL_EVENT]: (val: number | undefined) =>\n isNumber(val) || isNil(val),\n}\nexport type InputNumberEmits = typeof inputNumberEmits\n\nexport type InputNumberInstance = InstanceType<typeof InputNumber> & unknown\n"],"names":[],"mappings":";;;;;;;AAgBO,MAAM,mBAAmB,UAAW,CAAA;AAAA,EAIzC,EAAI,EAAA;AAAA,IACF,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,KAAA,CAAA;AAAA,GACX;AAAA,EAIA,IAAM,EAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EAIA,YAAc,EAAA,OAAA;AAAA,EAId,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,MAAO,CAAA,gBAAA;AAAA,GAClB;AAAA,EAIA,GAAK,EAAA;AAAA,IACH,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,MAAO,CAAA,gBAAA;AAAA,GAClB;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAA,EAAM,CAAC,MAAA,EAAQ,IAAI,CAAA;AAAA,GACrB;AAAA,EAIA,QAAU,EAAA,OAAA;AAAA,EAIV,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA,CAAA;AAAA,GACX;AAAA,EAIA,IAAM,EAAA,WAAA;AAAA,EAIN,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,gBAAkB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,EAAA;AAAA,IACT,MAAA,EAAQ,CAAC,EAAA,EAAI,OAAO,CAAA;AAAA,GACtB;AAAA,EAIA,YAAc,EAAA;AAAA,IACZ,MAAM,cAA8C,CAAA,CAAC,MAAQ,EAAA,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,IAC1E,SAAW,EAAA,CAAC,GACV,KAAA,GAAA,KAAQ,IAAQ,IAAA,QAAA,CAAS,GAAG,CAAA,IAAK,CAAC,KAAA,EAAO,KAAK,CAAA,CAAE,SAAS,GAAG,CAAA;AAAA,IAC9D,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EAIA,IAAM,EAAA,MAAA;AAAA,EAIN,WAAa,EAAA,MAAA;AAAA,EAIb,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,SAAA,EAAW,CAAC,GAAA,KACV,GAAO,IAAA,CAAA,IAAK,QAAQ,MAAO,CAAA,QAAA,CAAS,CAAG,EAAA,GAAA,CAAA,CAAA,EAAO,EAAE,CAAA;AAAA,GACpD;AAAA,EAIA,aAAe,EAAA;AAAA,IACb,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,GAAG,YAAA,CAAa,CAAC,WAAW,CAAC,CAAA;AAAA,EAI7B,SAAW,EAAA;AAAA,IACT,IAAA,EAAM,eAA4C,MAAM,CAAA;AAAA,IACxD,OAAS,EAAA,KAAA,CAAA;AAAA,GACX;AAAA,EAIA,KAAO,EAAA;AAAA,IACL,IAAA,EAAM,eAA4C,MAAM,CAAA;AAAA,IACxD,OAAS,EAAA,QAAA;AAAA,GACX;AAAA,EAIA,kBAAoB,EAAA,OAAA;AACtB,CAAU,EAAA;AAMH,MAAM,gBAAmB,GAAA;AAAA,EAC9B,CAAC,YAAA,GAAe,CAAC,GAAA,EAAyB,SACxC,IAAS,KAAA,GAAA;AAAA,EACX,IAAA,EAAM,CAAC,CAAA,KAAkB,CAAa,YAAA,UAAA;AAAA,EACtC,KAAA,EAAO,CAAC,CAAA,KAAkB,CAAa,YAAA,UAAA;AAAA,EACvC,CAAC,cAAc,CAAC,GAAA,KACd,SAAS,GAAG,CAAA,IAAK,MAAM,GAAG,CAAA;AAAA,EAC5B,CAAC,qBAAqB,CAAC,GAAA,KACrB,SAAS,GAAG,CAAA,IAAK,MAAM,GAAG,CAAA;AAC9B;;;;"}