input-number.mjs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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: {
  30. type: Boolean,
  31. default: void 0
  32. },
  33. size: useSizeProp,
  34. controls: {
  35. type: Boolean,
  36. default: true
  37. },
  38. controlsPosition: {
  39. type: String,
  40. default: "",
  41. values: ["", "right"]
  42. },
  43. valueOnClear: {
  44. type: definePropType([String, Number, null]),
  45. validator: (val) => val === null || isNumber(val) || ["min", "max"].includes(val),
  46. default: null
  47. },
  48. name: String,
  49. placeholder: String,
  50. precision: {
  51. type: Number,
  52. validator: (val) => val >= 0 && val === Number.parseInt(`${val}`, 10)
  53. },
  54. validateEvent: {
  55. type: Boolean,
  56. default: true
  57. },
  58. ...useAriaProps(["ariaLabel"]),
  59. inputmode: {
  60. type: definePropType(String),
  61. default: void 0
  62. },
  63. align: {
  64. type: definePropType(String),
  65. default: "center"
  66. },
  67. disabledScientific: Boolean
  68. });
  69. const inputNumberEmits = {
  70. [CHANGE_EVENT]: (cur, prev) => prev !== cur,
  71. blur: (e) => e instanceof FocusEvent,
  72. focus: (e) => e instanceof FocusEvent,
  73. [INPUT_EVENT]: (val) => isNumber(val) || isNil(val),
  74. [UPDATE_MODEL_EVENT]: (val) => isNumber(val) || isNil(val)
  75. };
  76. export { inputNumberEmits, inputNumberProps };
  77. //# sourceMappingURL=input-number.mjs.map