44171982c807cc20a5dac627efcf06ad9b5933509737f5ce13d4b6a8c45c04027c10a0a6b99bae5c55f57f4b9dd1fec6cceef3697d11fa6c62f1b3f4036065 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import { placements } from '@popperjs/core';
  2. import { CircleClose } from '@element-plus/icons-vue';
  3. import { CommonProps } from '../../cascader-panel/src/config.mjs';
  4. import { tagProps } from '../../tag/src/tag.mjs';
  5. import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
  6. import { useSizeProp } from '../../../hooks/use-size/index.mjs';
  7. import { iconPropType } from '../../../utils/vue/icon.mjs';
  8. import { useTooltipContentProps } from '../../tooltip/src/content.mjs';
  9. import { useEmptyValuesProps } from '../../../hooks/use-empty-values/index.mjs';
  10. import { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
  11. import { isBoolean } from '../../../utils/types.mjs';
  12. const cascaderProps = buildProps({
  13. ...CommonProps,
  14. size: useSizeProp,
  15. placeholder: String,
  16. disabled: Boolean,
  17. clearable: Boolean,
  18. clearIcon: {
  19. type: iconPropType,
  20. default: CircleClose
  21. },
  22. filterable: Boolean,
  23. filterMethod: {
  24. type: definePropType(Function),
  25. default: (node, keyword) => node.text.includes(keyword)
  26. },
  27. separator: {
  28. type: String,
  29. default: " / "
  30. },
  31. showAllLevels: {
  32. type: Boolean,
  33. default: true
  34. },
  35. collapseTags: Boolean,
  36. maxCollapseTags: {
  37. type: Number,
  38. default: 1
  39. },
  40. collapseTagsTooltip: Boolean,
  41. maxCollapseTagsTooltipHeight: {
  42. type: [String, Number]
  43. },
  44. debounce: {
  45. type: Number,
  46. default: 300
  47. },
  48. beforeFilter: {
  49. type: definePropType(Function),
  50. default: () => true
  51. },
  52. placement: {
  53. type: definePropType(String),
  54. values: placements,
  55. default: "bottom-start"
  56. },
  57. fallbackPlacements: {
  58. type: definePropType(Array),
  59. default: ["bottom-start", "bottom", "top-start", "top", "right", "left"]
  60. },
  61. popperClass: useTooltipContentProps.popperClass,
  62. popperStyle: useTooltipContentProps.popperStyle,
  63. teleported: useTooltipContentProps.teleported,
  64. effect: {
  65. type: definePropType(String),
  66. default: "light"
  67. },
  68. tagType: { ...tagProps.type, default: "info" },
  69. tagEffect: { ...tagProps.effect, default: "light" },
  70. validateEvent: {
  71. type: Boolean,
  72. default: true
  73. },
  74. persistent: {
  75. type: Boolean,
  76. default: true
  77. },
  78. showCheckedStrategy: {
  79. type: String,
  80. values: ["parent", "child"],
  81. default: "child"
  82. },
  83. checkOnClickNode: Boolean,
  84. showPrefix: {
  85. type: Boolean,
  86. default: true
  87. },
  88. ...useEmptyValuesProps
  89. });
  90. const emitChangeFn = (value) => true;
  91. const cascaderEmits = {
  92. [UPDATE_MODEL_EVENT]: emitChangeFn,
  93. [CHANGE_EVENT]: emitChangeFn,
  94. focus: (evt) => evt instanceof FocusEvent,
  95. blur: (evt) => evt instanceof FocusEvent,
  96. clear: () => true,
  97. visibleChange: (val) => isBoolean(val),
  98. expandChange: (val) => !!val,
  99. removeTag: (val) => !!val
  100. };
  101. export { cascaderEmits, cascaderProps };
  102. //# sourceMappingURL=cascader.mjs.map