ea7d2bcc799113c96a2c2297e427bc22cfda76c2a50577da3a8d26418d2421e619f337a1f44fdffef014de484db56d5236357c83e8ab494c31e3ef2786a303 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. import { placements } from '@popperjs/core';
  2. import { CircleClose, ArrowDown } from '@element-plus/icons-vue';
  3. import { defaultProps } from './useProps.mjs';
  4. import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
  5. import { iconPropType } from '../../../utils/vue/icon.mjs';
  6. import { useTooltipContentProps } from '../../tooltip/src/content.mjs';
  7. import { useSizeProp } from '../../../hooks/use-size/index.mjs';
  8. import { tagProps } from '../../tag/src/tag.mjs';
  9. import { isBoolean, isNumber } from '../../../utils/types.mjs';
  10. import { useEmptyValuesProps } from '../../../hooks/use-empty-values/index.mjs';
  11. import { useAriaProps } from '../../../hooks/use-aria/index.mjs';
  12. import { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '../../../constants/event.mjs';
  13. const selectV2Props = buildProps({
  14. allowCreate: Boolean,
  15. autocomplete: {
  16. type: definePropType(String),
  17. default: "none"
  18. },
  19. automaticDropdown: Boolean,
  20. clearable: Boolean,
  21. clearIcon: {
  22. type: iconPropType,
  23. default: CircleClose
  24. },
  25. effect: {
  26. type: definePropType(String),
  27. default: "light"
  28. },
  29. collapseTags: Boolean,
  30. collapseTagsTooltip: Boolean,
  31. maxCollapseTags: {
  32. type: Number,
  33. default: 1
  34. },
  35. defaultFirstOption: Boolean,
  36. disabled: Boolean,
  37. estimatedOptionHeight: {
  38. type: Number,
  39. default: void 0
  40. },
  41. filterable: Boolean,
  42. filterMethod: {
  43. type: definePropType(Function)
  44. },
  45. height: {
  46. type: Number,
  47. default: 274
  48. },
  49. itemHeight: {
  50. type: Number,
  51. default: 34
  52. },
  53. id: String,
  54. loading: Boolean,
  55. loadingText: String,
  56. modelValue: {
  57. type: definePropType([Array, String, Number, Boolean, Object]),
  58. default: void 0
  59. },
  60. multiple: Boolean,
  61. multipleLimit: {
  62. type: Number,
  63. default: 0
  64. },
  65. name: String,
  66. noDataText: String,
  67. noMatchText: String,
  68. remoteMethod: {
  69. type: definePropType(Function)
  70. },
  71. reserveKeyword: {
  72. type: Boolean,
  73. default: true
  74. },
  75. options: {
  76. type: definePropType(Array),
  77. required: true
  78. },
  79. placeholder: {
  80. type: String
  81. },
  82. teleported: useTooltipContentProps.teleported,
  83. persistent: {
  84. type: Boolean,
  85. default: true
  86. },
  87. popperClass: useTooltipContentProps.popperClass,
  88. popperStyle: useTooltipContentProps.popperStyle,
  89. popperOptions: {
  90. type: definePropType(Object),
  91. default: () => ({})
  92. },
  93. remote: Boolean,
  94. size: useSizeProp,
  95. props: {
  96. type: definePropType(Object),
  97. default: () => defaultProps
  98. },
  99. valueKey: {
  100. type: String,
  101. default: "value"
  102. },
  103. scrollbarAlwaysOn: Boolean,
  104. validateEvent: {
  105. type: Boolean,
  106. default: true
  107. },
  108. offset: {
  109. type: Number,
  110. default: 12
  111. },
  112. showArrow: {
  113. type: Boolean,
  114. default: true
  115. },
  116. placement: {
  117. type: definePropType(String),
  118. values: placements,
  119. default: "bottom-start"
  120. },
  121. fallbackPlacements: {
  122. type: definePropType(Array),
  123. default: ["bottom-start", "top-start", "right", "left"]
  124. },
  125. tagType: { ...tagProps.type, default: "info" },
  126. tagEffect: { ...tagProps.effect, default: "light" },
  127. tabindex: {
  128. type: [String, Number],
  129. default: 0
  130. },
  131. appendTo: useTooltipContentProps.appendTo,
  132. fitInputWidth: {
  133. type: [Boolean, Number],
  134. default: true,
  135. validator(val) {
  136. return isBoolean(val) || isNumber(val);
  137. }
  138. },
  139. suffixIcon: {
  140. type: iconPropType,
  141. default: ArrowDown
  142. },
  143. ...useEmptyValuesProps,
  144. ...useAriaProps(["ariaLabel"])
  145. });
  146. const optionV2Props = buildProps({
  147. data: Array,
  148. disabled: Boolean,
  149. hovering: Boolean,
  150. item: {
  151. type: definePropType(Object),
  152. required: true
  153. },
  154. index: Number,
  155. style: Object,
  156. selected: Boolean,
  157. created: Boolean
  158. });
  159. const selectV2Emits = {
  160. [UPDATE_MODEL_EVENT]: (val) => true,
  161. [CHANGE_EVENT]: (val) => true,
  162. "remove-tag": (val) => true,
  163. "visible-change": (visible) => true,
  164. focus: (evt) => evt instanceof FocusEvent,
  165. blur: (evt) => evt instanceof FocusEvent,
  166. clear: () => true
  167. };
  168. const optionV2Emits = {
  169. hover: (index) => isNumber(index),
  170. select: (val, index) => true
  171. };
  172. export { optionV2Emits, optionV2Props, selectV2Emits, selectV2Props };
  173. //# sourceMappingURL=defaults.mjs.map