slider.mjs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import { placements } from '@popperjs/core';
  2. import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
  3. import { useSizeProp } from '../../../hooks/use-size/index.mjs';
  4. import { useAriaProps } from '../../../hooks/use-aria/index.mjs';
  5. import { UPDATE_MODEL_EVENT, INPUT_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
  6. import { isNumber } from '../../../utils/types.mjs';
  7. import { isArray } from '@vue/shared';
  8. const sliderProps = buildProps({
  9. modelValue: {
  10. type: definePropType([Number, Array]),
  11. default: 0
  12. },
  13. id: {
  14. type: String,
  15. default: void 0
  16. },
  17. min: {
  18. type: Number,
  19. default: 0
  20. },
  21. max: {
  22. type: Number,
  23. default: 100
  24. },
  25. step: {
  26. type: Number,
  27. default: 1
  28. },
  29. showInput: Boolean,
  30. showInputControls: {
  31. type: Boolean,
  32. default: true
  33. },
  34. size: useSizeProp,
  35. inputSize: useSizeProp,
  36. showStops: Boolean,
  37. showTooltip: {
  38. type: Boolean,
  39. default: true
  40. },
  41. formatTooltip: {
  42. type: definePropType(Function),
  43. default: void 0
  44. },
  45. disabled: Boolean,
  46. range: Boolean,
  47. vertical: Boolean,
  48. height: String,
  49. debounce: {
  50. type: Number,
  51. default: 300
  52. },
  53. rangeStartLabel: {
  54. type: String,
  55. default: void 0
  56. },
  57. rangeEndLabel: {
  58. type: String,
  59. default: void 0
  60. },
  61. formatValueText: {
  62. type: definePropType(Function),
  63. default: void 0
  64. },
  65. tooltipClass: {
  66. type: String,
  67. default: void 0
  68. },
  69. placement: {
  70. type: String,
  71. values: placements,
  72. default: "top"
  73. },
  74. marks: {
  75. type: definePropType(Object)
  76. },
  77. validateEvent: {
  78. type: Boolean,
  79. default: true
  80. },
  81. persistent: {
  82. type: Boolean,
  83. default: true
  84. },
  85. ...useAriaProps(["ariaLabel"])
  86. });
  87. const isValidValue = (value) => isNumber(value) || isArray(value) && value.every(isNumber);
  88. const sliderEmits = {
  89. [UPDATE_MODEL_EVENT]: isValidValue,
  90. [INPUT_EVENT]: isValidValue,
  91. [CHANGE_EVENT]: isValidValue
  92. };
  93. export { sliderEmits, sliderProps };
  94. //# sourceMappingURL=slider.mjs.map