84ac5f6dcdb3e96351ccfd00d9670a51585709df11a868a5789e9eca60ddfcc18ce69d70b2a20d8d06daeadf8315fa491c8da41510ca88e12db3125435e631 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import { isNil } from 'lodash-unified';
  2. import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
  3. import { useSizeProp } from '../../../hooks/use-size/index.mjs';
  4. import { isNumber } from '../../../utils/types.mjs';
  5. import { useAriaProps } from '../../../hooks/use-aria/index.mjs';
  6. import { CHANGE_EVENT, INPUT_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
  7. const inputNumberProps = buildProps({
  8. id: {
  9. type: String,
  10. default: void 0
  11. },
  12. step: {
  13. type: Number,
  14. default: 1
  15. },
  16. stepStrictly: Boolean,
  17. max: {
  18. type: Number,
  19. default: Number.MAX_SAFE_INTEGER
  20. },
  21. min: {
  22. type: Number,
  23. default: Number.MIN_SAFE_INTEGER
  24. },
  25. modelValue: {
  26. type: [Number, null]
  27. },
  28. readonly: Boolean,
  29. disabled: Boolean,
  30. size: useSizeProp,
  31. controls: {
  32. type: Boolean,
  33. default: true
  34. },
  35. controlsPosition: {
  36. type: String,
  37. default: "",
  38. values: ["", "right"]
  39. },
  40. valueOnClear: {
  41. type: [String, Number, null],
  42. validator: (val) => val === null || isNumber(val) || ["min", "max"].includes(val),
  43. default: null
  44. },
  45. name: String,
  46. placeholder: String,
  47. precision: {
  48. type: Number,
  49. validator: (val) => val >= 0 && val === Number.parseInt(`${val}`, 10)
  50. },
  51. validateEvent: {
  52. type: Boolean,
  53. default: true
  54. },
  55. ...useAriaProps(["ariaLabel"]),
  56. inputmode: {
  57. type: definePropType(String),
  58. default: void 0
  59. },
  60. align: {
  61. type: definePropType(String),
  62. default: "center"
  63. },
  64. disabledScientific: Boolean
  65. });
  66. const inputNumberEmits = {
  67. [CHANGE_EVENT]: (cur, prev) => prev !== cur,
  68. blur: (e) => e instanceof FocusEvent,
  69. focus: (e) => e instanceof FocusEvent,
  70. [INPUT_EVENT]: (val) => isNumber(val) || isNil(val),
  71. [UPDATE_MODEL_EVENT]: (val) => isNumber(val) || isNil(val)
  72. };
  73. export { inputNumberEmits, inputNumberProps };
  74. //# sourceMappingURL=input-number.mjs.map