ae3f4c06f567b75766b7635ef33b6b84d6c75902d2f1afd7cfbc0587d0325b2598203de47a2d0261cfe00814a1da334eb5b9c78b1f77dc3e04b028d0dd22e2 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import { StarFilled, Star } from '@element-plus/icons-vue';
  2. import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
  3. import { mutable } from '../../../utils/typescript.mjs';
  4. import { iconPropType } from '../../../utils/vue/icon.mjs';
  5. import { useSizeProp } from '../../../hooks/use-size/index.mjs';
  6. import { useAriaProps } from '../../../hooks/use-aria/index.mjs';
  7. import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
  8. import { isNumber } from '../../../utils/types.mjs';
  9. const rateProps = buildProps({
  10. modelValue: {
  11. type: Number,
  12. default: 0
  13. },
  14. id: {
  15. type: String,
  16. default: void 0
  17. },
  18. lowThreshold: {
  19. type: Number,
  20. default: 2
  21. },
  22. highThreshold: {
  23. type: Number,
  24. default: 4
  25. },
  26. max: {
  27. type: Number,
  28. default: 5
  29. },
  30. colors: {
  31. type: definePropType([Array, Object]),
  32. default: () => mutable(["", "", ""])
  33. },
  34. voidColor: {
  35. type: String,
  36. default: ""
  37. },
  38. disabledVoidColor: {
  39. type: String,
  40. default: ""
  41. },
  42. icons: {
  43. type: definePropType([Array, Object]),
  44. default: () => [StarFilled, StarFilled, StarFilled]
  45. },
  46. voidIcon: {
  47. type: iconPropType,
  48. default: () => Star
  49. },
  50. disabledVoidIcon: {
  51. type: iconPropType,
  52. default: () => StarFilled
  53. },
  54. disabled: Boolean,
  55. allowHalf: Boolean,
  56. showText: Boolean,
  57. showScore: Boolean,
  58. textColor: {
  59. type: String,
  60. default: ""
  61. },
  62. texts: {
  63. type: definePropType(Array),
  64. default: () => mutable([
  65. "Extremely bad",
  66. "Disappointed",
  67. "Fair",
  68. "Satisfied",
  69. "Surprise"
  70. ])
  71. },
  72. scoreTemplate: {
  73. type: String,
  74. default: "{value}"
  75. },
  76. size: useSizeProp,
  77. clearable: Boolean,
  78. ...useAriaProps(["ariaLabel"])
  79. });
  80. const rateEmits = {
  81. [CHANGE_EVENT]: (value) => isNumber(value),
  82. [UPDATE_MODEL_EVENT]: (value) => isNumber(value)
  83. };
  84. export { rateEmits, rateProps };
  85. //# sourceMappingURL=rate.mjs.map