@element-plus/nightly 0.0.20260720 → 0.0.20260722

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/es/components/affix/src/affix.vue.d.ts +4 -4
  2. package/es/components/alert/src/alert.d.ts +1 -1
  3. package/es/components/alert/src/alert.vue.d.ts +1 -1
  4. package/es/components/anchor/src/anchor.vue.d.ts +2 -2
  5. package/es/components/autocomplete/src/autocomplete.d.ts +6 -107
  6. package/es/components/autocomplete/src/autocomplete.mjs.map +1 -1
  7. package/es/components/autocomplete/src/autocomplete.vue.d.ts +5 -5
  8. package/es/components/autocomplete/src/autocomplete.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  9. package/es/components/autocomplete/src/autocomplete2.mjs.map +1 -1
  10. package/es/components/avatar/src/avatar-group-props.d.ts +8 -105
  11. package/es/components/avatar/src/avatar-group-props.mjs +9 -1
  12. package/es/components/avatar/src/avatar-group-props.mjs.map +1 -1
  13. package/es/components/avatar/src/avatar-group.d.ts +17 -210
  14. package/es/components/avatar/src/avatar.d.ts +2 -2
  15. package/es/components/backtop/src/backtop.vue.d.ts +1 -1
  16. package/es/components/badge/src/badge.d.ts +3 -7
  17. package/es/components/badge/src/badge.mjs +9 -1
  18. package/es/components/badge/src/badge.mjs.map +1 -1
  19. package/es/components/badge/src/badge.vue.d.ts +2 -0
  20. package/es/components/badge/src/badge.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  21. package/es/components/badge/src/badge2.mjs.map +1 -1
  22. package/es/components/button/src/button-group.d.ts +1 -1
  23. package/es/components/button/src/button-group.vue.d.ts +1 -1
  24. package/es/components/button/src/button.d.ts +1 -1
  25. package/es/components/button/src/button.vue.d.ts +3 -3
  26. package/es/components/button/src/use-button.d.ts +1 -1
  27. package/es/components/calendar/src/calendar.mjs.map +1 -1
  28. package/es/components/calendar/src/calendar.vue.d.ts +1 -1
  29. package/es/components/calendar/style/css.mjs +1 -1
  30. package/es/components/calendar/style/index.mjs +1 -1
  31. package/es/components/card/src/card.d.ts +8 -7
  32. package/es/components/card/src/card.mjs +27 -3
  33. package/es/components/card/src/card.mjs.map +1 -1
  34. package/es/components/card/src/card.vue.d.ts +5 -1
  35. package/es/components/card/src/card.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  36. package/es/components/card/src/card2.mjs.map +1 -1
  37. package/es/components/carousel/src/carousel.d.ts +2 -2
  38. package/es/components/carousel/src/carousel.vue.d.ts +4 -4
  39. package/es/components/cascader/src/cascader.d.ts +6 -107
  40. package/es/components/cascader/src/cascader.mjs.map +1 -1
  41. package/es/components/cascader/src/cascader.vue.d.ts +20 -18
  42. package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  43. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  44. package/es/components/cascader-panel/src/index.vue.d.ts +3 -3
  45. package/es/components/checkbox/src/checkbox-button.vue.d.ts +5 -5
  46. package/es/components/checkbox/src/checkbox-group.vue.d.ts +4 -4
  47. package/es/components/checkbox/src/checkbox.d.ts +8 -8
  48. package/es/components/checkbox/src/checkbox.vue.d.ts +5 -5
  49. package/es/components/col/src/col.vue.d.ts +1 -1
  50. package/es/components/collapse/src/collapse.d.ts +1 -1
  51. package/es/components/collapse/src/collapse.vue.d.ts +1 -1
  52. package/es/components/color-picker/src/color-picker.d.ts +3 -102
  53. package/es/components/color-picker/src/color-picker.mjs +1 -0
  54. package/es/components/color-picker/src/color-picker.mjs.map +1 -1
  55. package/es/components/color-picker/src/color-picker.vue.d.ts +13 -11
  56. package/es/components/color-picker-panel/src/color-picker-panel.d.ts +3 -9
  57. package/es/components/color-picker-panel/src/color-picker-panel.mjs +9 -5
  58. package/es/components/color-picker-panel/src/color-picker-panel.mjs.map +1 -1
  59. package/es/components/color-picker-panel/src/color-picker-panel.vue.d.ts +4 -1
  60. package/es/components/color-picker-panel/src/color-picker-panel.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  61. package/es/components/color-picker-panel/src/color-picker-panel2.mjs.map +1 -1
  62. package/es/components/config-provider/src/config-provider.d.ts +1 -1
  63. package/es/components/date-picker/src/date-picker.d.ts +16 -216
  64. package/es/components/date-picker/src/props.d.ts +4 -104
  65. package/es/components/date-picker-panel/src/composables/use-basic-date-table.d.ts +1 -1
  66. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue.d.ts +1 -1
  67. package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.vue.d.ts +1 -1
  68. package/es/components/date-picker-panel/src/date-picker-com/panel-month-range.vue.d.ts +1 -1
  69. package/es/components/date-picker-panel/src/date-picker-com/panel-year-range.vue.d.ts +1 -1
  70. package/es/components/date-picker-panel/src/date-picker-panel.d.ts +4 -4
  71. package/es/components/date-picker-panel/src/panel-utils.d.ts +9 -9
  72. package/es/components/date-picker-panel/src/props/basic-date-table.mjs.map +1 -1
  73. package/es/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
  74. package/es/components/descriptions/src/description-item.d.ts +18 -18
  75. package/es/components/descriptions/src/description.vue.d.ts +1 -1
  76. package/es/components/dialog/src/dialog-content.d.ts +10 -6
  77. package/es/components/dialog/src/dialog-content.mjs +32 -5
  78. package/es/components/dialog/src/dialog-content.mjs.map +1 -1
  79. package/es/components/dialog/src/dialog-content.vue.d.ts +4 -0
  80. package/es/components/dialog/src/dialog.d.ts +10 -5
  81. package/es/components/dialog/src/dialog.mjs +11 -14
  82. package/es/components/dialog/src/dialog.mjs.map +1 -1
  83. package/es/components/dialog/src/dialog.vue.d.ts +8 -3
  84. package/es/components/divider/src/divider.d.ts +1 -1
  85. package/es/components/divider/src/divider.vue.d.ts +1 -1
  86. package/es/components/drawer/src/drawer.d.ts +5 -4
  87. package/es/components/drawer/src/drawer.vue.d.ts +8 -3
  88. package/es/components/dropdown/src/dropdown-item-impl.vue.d.ts +1 -1
  89. package/es/components/dropdown/src/dropdown-item.vue.d.ts +3 -3
  90. package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  91. package/es/components/dropdown/src/dropdown.d.ts +6 -107
  92. package/es/components/dropdown/src/dropdown.vue.d.ts +97 -295
  93. package/es/components/dropdown/style/css.mjs +1 -1
  94. package/es/components/dropdown/style/index.mjs +1 -1
  95. package/es/components/form/src/form-item.d.ts +2 -2
  96. package/es/components/form/src/form-item.vue.d.ts +1 -1
  97. package/es/components/form/src/form.d.ts +2 -2
  98. package/es/components/image/src/image.mjs.map +1 -1
  99. package/es/components/image/src/image.vue.d.ts +3 -3
  100. package/es/components/image-viewer/src/image-viewer.mjs.map +1 -1
  101. package/es/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
  102. package/es/components/input/src/input.d.ts +3 -3
  103. package/es/components/input/src/input.vue.d.ts +16 -16
  104. package/es/components/input-number/src/input-number.d.ts +2 -2
  105. package/es/components/input-number/src/input-number.vue.d.ts +7 -7
  106. package/es/components/input-otp/src/input-otp.vue.d.ts +4 -4
  107. package/es/components/input-tag/src/input-tag.d.ts +1 -1
  108. package/es/components/input-tag/src/input-tag.vue.d.ts +10 -10
  109. package/es/components/link/src/link.d.ts +1 -1
  110. package/es/components/link/src/link.mjs.map +1 -1
  111. package/es/components/link/src/link.vue.d.ts +1 -1
  112. package/es/components/mention/src/mention.d.ts +5 -106
  113. package/es/components/mention/src/mention.vue.d.ts +5 -5
  114. package/es/components/mention/src/mention.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  115. package/es/components/mention/src/mention2.mjs.map +1 -1
  116. package/es/components/menu/src/menu.d.ts +17 -29
  117. package/es/components/menu/src/menu.mjs +18 -2
  118. package/es/components/menu/src/menu.mjs.map +1 -1
  119. package/es/components/menu/src/sub-menu.d.ts +10 -22
  120. package/es/components/menu/src/sub-menu.mjs +18 -2
  121. package/es/components/menu/src/sub-menu.mjs.map +1 -1
  122. package/es/components/message/src/message.d.ts +4 -4
  123. package/es/components/message/src/message.mjs +6 -1
  124. package/es/components/message/src/message.mjs.map +1 -1
  125. package/es/components/message/src/message.vue.d.ts +6 -5
  126. package/es/components/message/src/method.mjs.map +1 -1
  127. package/es/components/message-box/src/index.vue.d.ts +59 -67
  128. package/es/components/notification/src/notification.d.ts +4 -3
  129. package/es/components/notification/src/notification.mjs +6 -1
  130. package/es/components/notification/src/notification.mjs.map +1 -1
  131. package/es/components/notification/src/notification.vue.d.ts +5 -4
  132. package/es/components/overlay/index.d.ts +4 -12
  133. package/es/components/overlay/src/overlay.d.ts +5 -18
  134. package/es/components/overlay/src/overlay.mjs +9 -5
  135. package/es/components/overlay/src/overlay.mjs.map +1 -1
  136. package/es/components/pagination/src/components/sizes.d.ts +4 -13
  137. package/es/components/pagination/src/components/sizes.mjs +18 -2
  138. package/es/components/pagination/src/components/sizes.mjs.map +1 -1
  139. package/es/components/pagination/src/components/sizes.vue.d.ts +7 -24
  140. package/es/components/pagination/src/pagination.d.ts +12 -25
  141. package/es/components/pagination/src/pagination.mjs +15 -2
  142. package/es/components/pagination/src/pagination.mjs.map +1 -1
  143. package/es/components/popconfirm/src/popconfirm.d.ts +2 -2
  144. package/es/components/popconfirm/src/popconfirm.vue.d.ts +5 -5
  145. package/es/components/popover/src/popover.d.ts +5 -105
  146. package/es/components/popover/src/popover.mjs +1 -0
  147. package/es/components/popover/src/popover.mjs.map +1 -1
  148. package/es/components/popover/src/popover.vue.d.ts +13 -12
  149. package/es/components/popper/src/composables/use-content-dom.d.ts +2 -25
  150. package/es/components/popper/src/composables/use-content.d.ts +4 -4
  151. package/es/components/popper/src/content.d.ts +8 -18
  152. package/es/components/popper/src/content.mjs +13 -7
  153. package/es/components/popper/src/content.mjs.map +1 -1
  154. package/es/components/popper/src/content.vue.d.ts +17 -15
  155. package/es/components/popper/src/popper.d.ts +2 -2
  156. package/es/components/popper/src/popper.mjs.map +1 -1
  157. package/es/components/progress/src/progress.d.ts +1 -1
  158. package/es/components/progress/src/progress.vue.d.ts +1 -1
  159. package/es/components/radio/src/radio-button.d.ts +3 -3
  160. package/es/components/radio/src/radio-button.vue.d.ts +2 -2
  161. package/es/components/radio/src/radio-group.vue.d.ts +5 -5
  162. package/es/components/radio/src/radio.d.ts +6 -6
  163. package/es/components/radio/src/radio.vue.d.ts +3 -3
  164. package/es/components/rate/src/rate.vue.d.ts +1 -1
  165. package/es/components/rate/src/rate.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  166. package/es/components/rate/src/rate2.mjs.map +1 -1
  167. package/es/components/result/src/result.d.ts +1 -1
  168. package/es/components/row/src/row.d.ts +1 -1
  169. package/es/components/scrollbar/src/scrollbar.d.ts +5 -4
  170. package/es/components/scrollbar/src/scrollbar.mjs +12 -2
  171. package/es/components/scrollbar/src/scrollbar.mjs.map +1 -1
  172. package/es/components/scrollbar/src/scrollbar.vue.d.ts +4 -3
  173. package/es/components/scrollbar/src/thumb.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  174. package/es/components/scrollbar/src/thumb2.mjs.map +1 -1
  175. package/es/components/segmented/index.d.ts +3 -3
  176. package/es/components/segmented/src/segmented.d.ts +1 -1
  177. package/es/components/segmented/src/segmented.vue.d.ts +1 -1
  178. package/es/components/select/src/option.d.ts +2 -2
  179. package/es/components/select/src/option.vue.d.ts +5 -5
  180. package/es/components/select/src/select-dropdown.vue.d.ts +2 -1
  181. package/es/components/select/src/select.d.ts +9 -13
  182. package/es/components/select/src/select.mjs +15 -2
  183. package/es/components/select/src/select.mjs.map +1 -1
  184. package/es/components/select/src/select.vue.d.ts +113 -119
  185. package/es/components/select/src/select.vue_vue_type_script_lang.mjs.map +1 -1
  186. package/es/components/select/src/select2.mjs.map +1 -1
  187. package/es/components/select/src/useOption.d.ts +2 -2
  188. package/es/components/select/src/useSelect.d.ts +5 -5
  189. package/es/components/select/src/useSelect.mjs.map +1 -1
  190. package/es/components/select-v2/src/defaults.d.ts +3 -103
  191. package/es/components/select-v2/src/option-item.vue.d.ts +1 -1
  192. package/es/components/select-v2/src/select.vue.d.ts +89 -287
  193. package/es/components/select-v2/src/useSelect.d.ts +1 -1
  194. package/es/components/skeleton/src/skeleton-item.d.ts +1 -1
  195. package/es/components/skeleton/src/skeleton.vue.d.ts +1 -1
  196. package/es/components/slider/src/button.d.ts +2 -1
  197. package/es/components/slider/src/button.mjs +10 -2
  198. package/es/components/slider/src/button.mjs.map +1 -1
  199. package/es/components/slider/src/button.vue.d.ts +5 -3
  200. package/es/components/slider/src/composables/use-marks.mjs.map +1 -1
  201. package/es/components/slider/src/slider.d.ts +2 -2
  202. package/es/components/slider/src/slider.mjs +6 -1
  203. package/es/components/slider/src/slider.mjs.map +1 -1
  204. package/es/components/slider/src/slider.vue.d.ts +8 -8
  205. package/es/components/space/src/space.d.ts +7 -7
  206. package/es/components/space/src/space.mjs +2 -1
  207. package/es/components/space/src/space.mjs.map +1 -1
  208. package/es/components/space/src/use-space.d.ts +2 -3
  209. package/es/components/splitter/src/split-bar.vue.d.ts +1 -1
  210. package/es/components/steps/src/item.d.ts +1 -1
  211. package/es/components/steps/src/item.vue.d.ts +1 -1
  212. package/es/components/steps/src/steps.d.ts +2 -2
  213. package/es/components/steps/src/steps.vue.d.ts +1 -1
  214. package/es/components/switch/src/switch.vue.d.ts +3 -3
  215. package/es/components/table/src/filter-panel.vue.d.ts +89 -86
  216. package/es/components/table/src/table/defaults.d.ts +5 -5
  217. package/es/components/table/src/table/defaults.mjs.map +1 -1
  218. package/es/components/table/src/table/style-helper.d.ts +1 -1
  219. package/es/components/table/src/table-body/events-helper.mjs.map +1 -1
  220. package/es/components/table/src/table-column/defaults.d.ts +4 -4
  221. package/es/components/table/src/table-header/index.d.ts +14 -14
  222. package/es/components/table/src/table.vue.d.ts +4 -4
  223. package/es/components/tabs/src/tab-nav.d.ts +1 -1
  224. package/es/components/tabs/src/tab-pane.vue.d.ts +1 -1
  225. package/es/components/tabs/src/tabs.d.ts +5 -5
  226. package/es/components/tag/src/tag.vue.d.ts +2 -2
  227. package/es/components/text/src/text.vue.d.ts +1 -1
  228. package/es/components/time-picker/src/common/picker-range-trigger.vue.d.ts +6 -6
  229. package/es/components/time-picker/src/common/picker.vue.d.ts +22 -222
  230. package/es/components/time-picker/src/common/props.d.ts +4 -104
  231. package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +2 -2
  232. package/es/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +2 -2
  233. package/es/components/time-picker/src/time-picker.d.ts +16 -216
  234. package/es/components/time-select/src/time-select.d.ts +6 -10
  235. package/es/components/time-select/src/time-select.mjs +15 -2
  236. package/es/components/time-select/src/time-select.mjs.map +1 -1
  237. package/es/components/time-select/src/time-select.vue.d.ts +11 -10
  238. package/es/components/timeline/src/timeline-item.vue.d.ts +2 -2
  239. package/es/components/tooltip/src/content.d.ts +4 -199
  240. package/es/components/tooltip/src/content.vue.d.ts +18 -16
  241. package/es/components/tooltip/src/tooltip.d.ts +5 -202
  242. package/es/components/tooltip/src/tooltip.vue.d.ts +19 -18
  243. package/es/components/tooltip/src/trigger.d.ts +1 -1
  244. package/es/components/tour/src/content.d.ts +1 -1
  245. package/es/components/tour/src/content.vue.d.ts +1 -1
  246. package/es/components/tour/src/step.d.ts +1 -1
  247. package/es/components/tour/src/tour.d.ts +1 -1
  248. package/es/components/tour/src/tour.vue.d.ts +3 -3
  249. package/es/components/transfer/src/transfer.vue.d.ts +1 -1
  250. package/es/components/tree/src/tree-node.vue.d.ts +14 -14
  251. package/es/components/tree/src/tree.vue.d.ts +16 -16
  252. package/es/components/tree-select/src/select.mjs +1 -5
  253. package/es/components/tree-select/src/select.mjs.map +1 -1
  254. package/es/components/tree-select/src/tree-select-option.d.ts +5 -5
  255. package/es/components/tree-select/src/tree-select.vue.d.ts +33 -41
  256. package/es/components/tree-v2/src/composables/useTree.d.ts +9 -8
  257. package/es/components/tree-v2/src/tree.vue.d.ts +2 -2
  258. package/es/components/upload/src/upload-content.d.ts +1 -1
  259. package/es/components/upload/src/upload-content.vue.d.ts +2 -2
  260. package/es/components/upload/src/upload-list.d.ts +1 -1
  261. package/es/components/upload/src/upload.d.ts +2 -2
  262. package/es/components/upload/src/upload.mjs.map +1 -1
  263. package/es/components/upload/src/upload.vue.d.ts +3 -3
  264. package/es/components/virtual-list/src/builders/build-grid.d.ts +4 -3
  265. package/es/components/virtual-list/src/builders/build-list.d.ts +5 -4
  266. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +4 -3
  267. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +5 -4
  268. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +4 -3
  269. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +5 -4
  270. package/es/components/virtual-list/src/components/scrollbar.d.ts +5 -3
  271. package/es/components/virtual-list/src/props.d.ts +5 -4
  272. package/es/components/virtual-list/src/props.mjs +15 -2
  273. package/es/components/virtual-list/src/props.mjs.map +1 -1
  274. package/es/components/watermark/src/watermark.mjs.map +1 -1
  275. package/es/hooks/use-floating/index.d.ts +8 -8
  276. package/es/hooks/use-popper/index.d.ts +4 -4
  277. package/es/hooks/use-throttle-render/index.mjs.map +1 -1
  278. package/es/utils/index.d.ts +2 -2
  279. package/es/utils/typescript.d.ts +2 -1
  280. package/es/utils/typescript.mjs.map +1 -1
  281. package/es/version.d.ts +1 -1
  282. package/es/version.mjs +1 -1
  283. package/es/version.mjs.map +1 -1
  284. package/lib/components/affix/src/affix.vue.d.ts +4 -4
  285. package/lib/components/alert/src/alert.d.ts +1 -1
  286. package/lib/components/alert/src/alert.vue.d.ts +1 -1
  287. package/lib/components/anchor/src/anchor.vue.d.ts +2 -2
  288. package/lib/components/autocomplete/src/autocomplete.d.ts +6 -107
  289. package/lib/components/autocomplete/src/autocomplete.js.map +1 -1
  290. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +5 -5
  291. package/lib/components/autocomplete/src/autocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  292. package/lib/components/autocomplete/src/autocomplete2.js.map +1 -1
  293. package/lib/components/avatar/src/avatar-group-props.d.ts +8 -105
  294. package/lib/components/avatar/src/avatar-group-props.js +9 -1
  295. package/lib/components/avatar/src/avatar-group-props.js.map +1 -1
  296. package/lib/components/avatar/src/avatar-group.d.ts +17 -210
  297. package/lib/components/avatar/src/avatar.d.ts +2 -2
  298. package/lib/components/backtop/src/backtop.vue.d.ts +1 -1
  299. package/lib/components/badge/src/badge.d.ts +3 -7
  300. package/lib/components/badge/src/badge.js +9 -1
  301. package/lib/components/badge/src/badge.js.map +1 -1
  302. package/lib/components/badge/src/badge.vue.d.ts +2 -0
  303. package/lib/components/badge/src/badge.vue_vue_type_script_setup_true_lang.js.map +1 -1
  304. package/lib/components/badge/src/badge2.js.map +1 -1
  305. package/lib/components/button/src/button-group.d.ts +1 -1
  306. package/lib/components/button/src/button-group.vue.d.ts +1 -1
  307. package/lib/components/button/src/button.d.ts +1 -1
  308. package/lib/components/button/src/button.vue.d.ts +3 -3
  309. package/lib/components/button/src/use-button.d.ts +1 -1
  310. package/lib/components/calendar/src/calendar.js.map +1 -1
  311. package/lib/components/calendar/src/calendar.vue.d.ts +1 -1
  312. package/lib/components/calendar/style/css.js +1 -1
  313. package/lib/components/calendar/style/index.js +1 -1
  314. package/lib/components/card/src/card.d.ts +8 -7
  315. package/lib/components/card/src/card.js +27 -3
  316. package/lib/components/card/src/card.js.map +1 -1
  317. package/lib/components/card/src/card.vue.d.ts +5 -1
  318. package/lib/components/card/src/card.vue_vue_type_script_setup_true_lang.js.map +1 -1
  319. package/lib/components/card/src/card2.js.map +1 -1
  320. package/lib/components/carousel/src/carousel.d.ts +2 -2
  321. package/lib/components/carousel/src/carousel.vue.d.ts +4 -4
  322. package/lib/components/cascader/src/cascader.d.ts +6 -107
  323. package/lib/components/cascader/src/cascader.js.map +1 -1
  324. package/lib/components/cascader/src/cascader.vue.d.ts +20 -18
  325. package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  326. package/lib/components/cascader/src/cascader2.js.map +1 -1
  327. package/lib/components/cascader-panel/src/index.vue.d.ts +3 -3
  328. package/lib/components/checkbox/src/checkbox-button.vue.d.ts +5 -5
  329. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +4 -4
  330. package/lib/components/checkbox/src/checkbox.d.ts +8 -8
  331. package/lib/components/checkbox/src/checkbox.vue.d.ts +5 -5
  332. package/lib/components/col/src/col.vue.d.ts +1 -1
  333. package/lib/components/collapse/src/collapse.d.ts +1 -1
  334. package/lib/components/collapse/src/collapse.vue.d.ts +1 -1
  335. package/lib/components/color-picker/src/color-picker.d.ts +3 -102
  336. package/lib/components/color-picker/src/color-picker.js +1 -0
  337. package/lib/components/color-picker/src/color-picker.js.map +1 -1
  338. package/lib/components/color-picker/src/color-picker.vue.d.ts +13 -11
  339. package/lib/components/color-picker-panel/src/color-picker-panel.d.ts +3 -9
  340. package/lib/components/color-picker-panel/src/color-picker-panel.js +9 -5
  341. package/lib/components/color-picker-panel/src/color-picker-panel.js.map +1 -1
  342. package/lib/components/color-picker-panel/src/color-picker-panel.vue.d.ts +4 -1
  343. package/lib/components/color-picker-panel/src/color-picker-panel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  344. package/lib/components/color-picker-panel/src/color-picker-panel2.js.map +1 -1
  345. package/lib/components/config-provider/src/config-provider.d.ts +1 -1
  346. package/lib/components/date-picker/src/date-picker.d.ts +16 -216
  347. package/lib/components/date-picker/src/props.d.ts +4 -104
  348. package/lib/components/date-picker-panel/src/composables/use-basic-date-table.d.ts +1 -1
  349. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue.d.ts +1 -1
  350. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue.d.ts +1 -1
  351. package/lib/components/date-picker-panel/src/date-picker-com/panel-month-range.vue.d.ts +1 -1
  352. package/lib/components/date-picker-panel/src/date-picker-com/panel-year-range.vue.d.ts +1 -1
  353. package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +4 -4
  354. package/lib/components/date-picker-panel/src/panel-utils.d.ts +9 -9
  355. package/lib/components/date-picker-panel/src/props/basic-date-table.js.map +1 -1
  356. package/lib/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
  357. package/lib/components/descriptions/src/description-item.d.ts +18 -18
  358. package/lib/components/descriptions/src/description.vue.d.ts +1 -1
  359. package/lib/components/dialog/src/dialog-content.d.ts +10 -6
  360. package/lib/components/dialog/src/dialog-content.js +31 -4
  361. package/lib/components/dialog/src/dialog-content.js.map +1 -1
  362. package/lib/components/dialog/src/dialog-content.vue.d.ts +4 -0
  363. package/lib/components/dialog/src/dialog.d.ts +10 -5
  364. package/lib/components/dialog/src/dialog.js +11 -14
  365. package/lib/components/dialog/src/dialog.js.map +1 -1
  366. package/lib/components/dialog/src/dialog.vue.d.ts +8 -3
  367. package/lib/components/divider/src/divider.d.ts +1 -1
  368. package/lib/components/divider/src/divider.vue.d.ts +1 -1
  369. package/lib/components/drawer/src/drawer.d.ts +5 -4
  370. package/lib/components/drawer/src/drawer.vue.d.ts +8 -3
  371. package/lib/components/dropdown/src/dropdown-item-impl.vue.d.ts +1 -1
  372. package/lib/components/dropdown/src/dropdown-item.vue.d.ts +3 -3
  373. package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  374. package/lib/components/dropdown/src/dropdown.d.ts +6 -107
  375. package/lib/components/dropdown/src/dropdown.vue.d.ts +97 -295
  376. package/lib/components/dropdown/style/css.js +1 -1
  377. package/lib/components/dropdown/style/index.js +1 -1
  378. package/lib/components/form/src/form-item.d.ts +2 -2
  379. package/lib/components/form/src/form-item.vue.d.ts +1 -1
  380. package/lib/components/form/src/form.d.ts +2 -2
  381. package/lib/components/image/src/image.js.map +1 -1
  382. package/lib/components/image/src/image.vue.d.ts +3 -3
  383. package/lib/components/image-viewer/src/image-viewer.js.map +1 -1
  384. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
  385. package/lib/components/input/src/input.d.ts +3 -3
  386. package/lib/components/input/src/input.vue.d.ts +16 -16
  387. package/lib/components/input-number/src/input-number.d.ts +2 -2
  388. package/lib/components/input-number/src/input-number.vue.d.ts +7 -7
  389. package/lib/components/input-otp/src/input-otp.vue.d.ts +4 -4
  390. package/lib/components/input-tag/src/input-tag.d.ts +1 -1
  391. package/lib/components/input-tag/src/input-tag.vue.d.ts +10 -10
  392. package/lib/components/link/src/link.d.ts +1 -1
  393. package/lib/components/link/src/link.js.map +1 -1
  394. package/lib/components/link/src/link.vue.d.ts +1 -1
  395. package/lib/components/mention/src/mention.d.ts +5 -106
  396. package/lib/components/mention/src/mention.vue.d.ts +5 -5
  397. package/lib/components/mention/src/mention.vue_vue_type_script_setup_true_lang.js.map +1 -1
  398. package/lib/components/mention/src/mention2.js.map +1 -1
  399. package/lib/components/menu/src/menu.d.ts +17 -29
  400. package/lib/components/menu/src/menu.js +18 -2
  401. package/lib/components/menu/src/menu.js.map +1 -1
  402. package/lib/components/menu/src/sub-menu.d.ts +10 -22
  403. package/lib/components/menu/src/sub-menu.js +18 -2
  404. package/lib/components/menu/src/sub-menu.js.map +1 -1
  405. package/lib/components/message/src/message.d.ts +4 -4
  406. package/lib/components/message/src/message.js +6 -1
  407. package/lib/components/message/src/message.js.map +1 -1
  408. package/lib/components/message/src/message.vue.d.ts +6 -5
  409. package/lib/components/message/src/method.js.map +1 -1
  410. package/lib/components/message-box/src/index.vue.d.ts +59 -67
  411. package/lib/components/notification/src/notification.d.ts +4 -3
  412. package/lib/components/notification/src/notification.js +6 -1
  413. package/lib/components/notification/src/notification.js.map +1 -1
  414. package/lib/components/notification/src/notification.vue.d.ts +5 -4
  415. package/lib/components/overlay/index.d.ts +4 -12
  416. package/lib/components/overlay/src/overlay.d.ts +5 -18
  417. package/lib/components/overlay/src/overlay.js +9 -5
  418. package/lib/components/overlay/src/overlay.js.map +1 -1
  419. package/lib/components/pagination/src/components/sizes.d.ts +4 -13
  420. package/lib/components/pagination/src/components/sizes.js +18 -2
  421. package/lib/components/pagination/src/components/sizes.js.map +1 -1
  422. package/lib/components/pagination/src/components/sizes.vue.d.ts +7 -24
  423. package/lib/components/pagination/src/pagination.d.ts +12 -25
  424. package/lib/components/pagination/src/pagination.js +15 -2
  425. package/lib/components/pagination/src/pagination.js.map +1 -1
  426. package/lib/components/popconfirm/src/popconfirm.d.ts +2 -2
  427. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +5 -5
  428. package/lib/components/popover/src/popover.d.ts +5 -105
  429. package/lib/components/popover/src/popover.js +1 -0
  430. package/lib/components/popover/src/popover.js.map +1 -1
  431. package/lib/components/popover/src/popover.vue.d.ts +13 -12
  432. package/lib/components/popper/src/composables/use-content-dom.d.ts +2 -25
  433. package/lib/components/popper/src/composables/use-content.d.ts +4 -4
  434. package/lib/components/popper/src/content.d.ts +8 -18
  435. package/lib/components/popper/src/content.js +13 -7
  436. package/lib/components/popper/src/content.js.map +1 -1
  437. package/lib/components/popper/src/content.vue.d.ts +17 -15
  438. package/lib/components/popper/src/popper.d.ts +2 -2
  439. package/lib/components/popper/src/popper.js.map +1 -1
  440. package/lib/components/progress/src/progress.d.ts +1 -1
  441. package/lib/components/progress/src/progress.vue.d.ts +1 -1
  442. package/lib/components/radio/src/radio-button.d.ts +3 -3
  443. package/lib/components/radio/src/radio-button.vue.d.ts +2 -2
  444. package/lib/components/radio/src/radio-group.vue.d.ts +5 -5
  445. package/lib/components/radio/src/radio.d.ts +6 -6
  446. package/lib/components/radio/src/radio.vue.d.ts +3 -3
  447. package/lib/components/rate/src/rate.vue.d.ts +1 -1
  448. package/lib/components/rate/src/rate.vue_vue_type_script_setup_true_lang.js.map +1 -1
  449. package/lib/components/rate/src/rate2.js.map +1 -1
  450. package/lib/components/result/src/result.d.ts +1 -1
  451. package/lib/components/row/src/row.d.ts +1 -1
  452. package/lib/components/scrollbar/src/scrollbar.d.ts +5 -4
  453. package/lib/components/scrollbar/src/scrollbar.js +12 -2
  454. package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
  455. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +4 -3
  456. package/lib/components/scrollbar/src/thumb.vue_vue_type_script_setup_true_lang.js.map +1 -1
  457. package/lib/components/scrollbar/src/thumb2.js.map +1 -1
  458. package/lib/components/segmented/index.d.ts +3 -3
  459. package/lib/components/segmented/src/segmented.d.ts +1 -1
  460. package/lib/components/segmented/src/segmented.vue.d.ts +1 -1
  461. package/lib/components/select/src/option.d.ts +2 -2
  462. package/lib/components/select/src/option.vue.d.ts +5 -5
  463. package/lib/components/select/src/select-dropdown.vue.d.ts +2 -1
  464. package/lib/components/select/src/select.d.ts +9 -13
  465. package/lib/components/select/src/select.js +15 -2
  466. package/lib/components/select/src/select.js.map +1 -1
  467. package/lib/components/select/src/select.vue.d.ts +113 -119
  468. package/lib/components/select/src/select.vue_vue_type_script_lang.js.map +1 -1
  469. package/lib/components/select/src/select2.js.map +1 -1
  470. package/lib/components/select/src/useOption.d.ts +2 -2
  471. package/lib/components/select/src/useSelect.d.ts +5 -5
  472. package/lib/components/select/src/useSelect.js.map +1 -1
  473. package/lib/components/select-v2/src/defaults.d.ts +3 -103
  474. package/lib/components/select-v2/src/option-item.vue.d.ts +1 -1
  475. package/lib/components/select-v2/src/select.vue.d.ts +89 -287
  476. package/lib/components/select-v2/src/useSelect.d.ts +1 -1
  477. package/lib/components/skeleton/src/skeleton-item.d.ts +1 -1
  478. package/lib/components/skeleton/src/skeleton.vue.d.ts +1 -1
  479. package/lib/components/slider/src/button.d.ts +2 -1
  480. package/lib/components/slider/src/button.js +9 -1
  481. package/lib/components/slider/src/button.js.map +1 -1
  482. package/lib/components/slider/src/button.vue.d.ts +5 -3
  483. package/lib/components/slider/src/composables/use-marks.js.map +1 -1
  484. package/lib/components/slider/src/slider.d.ts +2 -2
  485. package/lib/components/slider/src/slider.js +6 -1
  486. package/lib/components/slider/src/slider.js.map +1 -1
  487. package/lib/components/slider/src/slider.vue.d.ts +8 -8
  488. package/lib/components/space/src/space.d.ts +7 -7
  489. package/lib/components/space/src/space.js +2 -1
  490. package/lib/components/space/src/space.js.map +1 -1
  491. package/lib/components/space/src/use-space.d.ts +2 -3
  492. package/lib/components/splitter/src/split-bar.vue.d.ts +1 -1
  493. package/lib/components/steps/src/item.d.ts +1 -1
  494. package/lib/components/steps/src/item.vue.d.ts +1 -1
  495. package/lib/components/steps/src/steps.d.ts +2 -2
  496. package/lib/components/steps/src/steps.vue.d.ts +1 -1
  497. package/lib/components/switch/src/switch.vue.d.ts +3 -3
  498. package/lib/components/table/src/filter-panel.vue.d.ts +89 -86
  499. package/lib/components/table/src/table/defaults.d.ts +5 -5
  500. package/lib/components/table/src/table/defaults.js.map +1 -1
  501. package/lib/components/table/src/table/style-helper.d.ts +1 -1
  502. package/lib/components/table/src/table-body/events-helper.js.map +1 -1
  503. package/lib/components/table/src/table-column/defaults.d.ts +4 -4
  504. package/lib/components/table/src/table-header/index.d.ts +14 -14
  505. package/lib/components/table/src/table.vue.d.ts +4 -4
  506. package/lib/components/tabs/src/tab-nav.d.ts +1 -1
  507. package/lib/components/tabs/src/tab-pane.vue.d.ts +1 -1
  508. package/lib/components/tabs/src/tabs.d.ts +5 -5
  509. package/lib/components/tag/src/tag.vue.d.ts +2 -2
  510. package/lib/components/text/src/text.vue.d.ts +1 -1
  511. package/lib/components/time-picker/src/common/picker-range-trigger.vue.d.ts +6 -6
  512. package/lib/components/time-picker/src/common/picker.vue.d.ts +22 -222
  513. package/lib/components/time-picker/src/common/props.d.ts +4 -104
  514. package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +2 -2
  515. package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +2 -2
  516. package/lib/components/time-picker/src/time-picker.d.ts +16 -216
  517. package/lib/components/time-select/src/time-select.d.ts +6 -10
  518. package/lib/components/time-select/src/time-select.js +15 -2
  519. package/lib/components/time-select/src/time-select.js.map +1 -1
  520. package/lib/components/time-select/src/time-select.vue.d.ts +11 -10
  521. package/lib/components/timeline/src/timeline-item.vue.d.ts +2 -2
  522. package/lib/components/tooltip/src/content.d.ts +4 -199
  523. package/lib/components/tooltip/src/content.vue.d.ts +18 -16
  524. package/lib/components/tooltip/src/tooltip.d.ts +5 -202
  525. package/lib/components/tooltip/src/tooltip.vue.d.ts +19 -18
  526. package/lib/components/tooltip/src/trigger.d.ts +1 -1
  527. package/lib/components/tour/src/content.d.ts +1 -1
  528. package/lib/components/tour/src/content.vue.d.ts +1 -1
  529. package/lib/components/tour/src/step.d.ts +1 -1
  530. package/lib/components/tour/src/tour.d.ts +1 -1
  531. package/lib/components/tour/src/tour.vue.d.ts +3 -3
  532. package/lib/components/transfer/src/transfer.vue.d.ts +1 -1
  533. package/lib/components/tree/src/tree-node.vue.d.ts +14 -14
  534. package/lib/components/tree/src/tree.vue.d.ts +16 -16
  535. package/lib/components/tree-select/src/select.js +1 -5
  536. package/lib/components/tree-select/src/select.js.map +1 -1
  537. package/lib/components/tree-select/src/tree-select-option.d.ts +5 -5
  538. package/lib/components/tree-select/src/tree-select.vue.d.ts +33 -41
  539. package/lib/components/tree-v2/src/composables/useTree.d.ts +9 -8
  540. package/lib/components/tree-v2/src/tree.vue.d.ts +2 -2
  541. package/lib/components/upload/src/upload-content.d.ts +1 -1
  542. package/lib/components/upload/src/upload-content.vue.d.ts +2 -2
  543. package/lib/components/upload/src/upload-list.d.ts +1 -1
  544. package/lib/components/upload/src/upload.d.ts +2 -2
  545. package/lib/components/upload/src/upload.js.map +1 -1
  546. package/lib/components/upload/src/upload.vue.d.ts +3 -3
  547. package/lib/components/virtual-list/src/builders/build-grid.d.ts +4 -3
  548. package/lib/components/virtual-list/src/builders/build-list.d.ts +5 -4
  549. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +4 -3
  550. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +5 -4
  551. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +4 -3
  552. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +5 -4
  553. package/lib/components/virtual-list/src/components/scrollbar.d.ts +5 -3
  554. package/lib/components/virtual-list/src/props.d.ts +5 -4
  555. package/lib/components/virtual-list/src/props.js +15 -2
  556. package/lib/components/virtual-list/src/props.js.map +1 -1
  557. package/lib/components/watermark/src/watermark.js.map +1 -1
  558. package/lib/hooks/use-floating/index.d.ts +8 -8
  559. package/lib/hooks/use-popper/index.d.ts +4 -4
  560. package/lib/hooks/use-throttle-render/index.js.map +1 -1
  561. package/lib/utils/index.d.ts +2 -2
  562. package/lib/utils/typescript.d.ts +2 -1
  563. package/lib/utils/typescript.js.map +1 -1
  564. package/lib/version.d.ts +1 -1
  565. package/lib/version.js +1 -1
  566. package/lib/version.js.map +1 -1
  567. package/package.json +2 -2
  568. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.js","names":["buildProps","inputProps","definePropType","NOOP","useTooltipContentProps","UPDATE_MODEL_EVENT","isNumber","INPUT_EVENT","CHANGE_EVENT"],"sources":["../../../../../../packages/components/autocomplete/src/autocomplete.ts"],"sourcesContent":["import {\n NOOP,\n buildProps,\n definePropType,\n isNumber,\n isObject,\n isString,\n} from '@element-plus/utils'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { inputProps } from '@element-plus/components/input'\n\nimport type { ComponentInstance, ExtractPublicPropTypes } from 'vue'\nimport type { ComponentExposed } from 'vue-component-type-helpers'\nimport type Autocomplete from './autocomplete.vue'\nimport type { Options, Placement } from '@element-plus/components/popper'\nimport type { Awaitable } from '@element-plus/utils'\nimport type { InputProps } from '@element-plus/components/input'\nimport type { ElTooltipContentProps } from '@element-plus/components/tooltip'\n\nexport type AutocompleteDataItem = Record<string, any>\nexport type AutocompleteData<\n T extends AutocompleteDataItem = AutocompleteDataItem,\n> = T[]\nexport type AutocompleteFetchSuggestionsCallback<\n T extends AutocompleteDataItem = AutocompleteDataItem,\n> = (data: AutocompleteData<T>) => void\nexport type AutocompleteFetchSuggestions<\n T extends AutocompleteDataItem = AutocompleteDataItem,\n> =\n | ((\n queryString: string,\n cb: AutocompleteFetchSuggestionsCallback<T>\n ) => Awaitable<AutocompleteData<T> | void>)\n | AutocompleteData<T>\n\nexport type AutocompletePlacement =\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n\nexport interface AutocompleteProps<\n T extends AutocompleteDataItem = AutocompleteDataItem,\n> extends InputProps {\n /**\n * @description key name of the input suggestion object for display\n */\n valueKey?: string\n /**\n * @description binding value\n */\n modelValue?: string | number\n /**\n * @description debounce delay when typing, in milliseconds\n */\n debounce?: number\n /**\n * @description placement of the popup menu\n */\n placement?: AutocompletePlacement\n /**\n * @description a method to fetch input suggestions. When suggestions are ready, invoke `callback(data:[])` to return them to Autocomplete\n */\n fetchSuggestions?: AutocompleteFetchSuggestions<T>\n /**\n * @description custom class name for autocomplete's dropdown\n */\n popperClass?: ElTooltipContentProps['popperClass']\n /**\n * @description custom style for autocomplete's dropdown\n */\n popperStyle?: ElTooltipContentProps['popperStyle']\n /**\n * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n */\n popperOptions?: Partial<Options>\n /**\n * @description determines whether the arrow is displayed\n */\n showArrow?: boolean\n /**\n * @description whether show suggestions when input focus\n */\n triggerOnFocus?: boolean\n /**\n * @description whether to emit a `select` event on enter when there is no autocomplete match\n */\n selectWhenUnmatched?: boolean\n /**\n * @description whether to hide the loading icon in remote search\n */\n hideLoading?: boolean\n /**\n * @description whether select dropdown is teleported to the body\n */\n teleported?: ElTooltipContentProps['teleported']\n /**\n * @description which select dropdown appends to\n */\n appendTo?: ElTooltipContentProps['appendTo']\n /**\n * @description whether to highlight first item in remote search suggestions by default\n */\n highlightFirstItem?: boolean\n /**\n * @description whether the width of the dropdown is the same as the input\n */\n fitInputWidth?: boolean\n /**\n * @description whether keyboard navigation loops from end to start\n */\n loopNavigation?: boolean\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `AutocompleteProps` instead.\n */\nexport const autocompleteProps = buildProps({\n ...inputProps,\n /**\n * @description key name of the input suggestion object for display\n */\n valueKey: {\n type: String,\n default: 'value',\n },\n /**\n * @description binding value\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description debounce delay when typing, in milliseconds\n */\n debounce: {\n type: Number,\n default: 300,\n },\n /**\n * @description placement of the popup menu\n */\n placement: {\n type: definePropType<Placement>(String),\n values: [\n 'top',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n ],\n default: 'bottom-start',\n },\n /**\n * @description a method to fetch input suggestions. When suggestions are ready, invoke `callback(data:[])` to return them to Autocomplete\n */\n fetchSuggestions: {\n type: definePropType<AutocompleteFetchSuggestions>([Function, Array]),\n default: NOOP,\n },\n /**\n * @description custom class name for autocomplete's dropdown\n */\n popperClass: useTooltipContentProps.popperClass,\n /**\n * @description custom style for autocomplete's dropdown\n */\n popperStyle: useTooltipContentProps.popperStyle,\n /**\n * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n */\n popperOptions: useTooltipContentProps.popperOptions,\n /**\n * @description determines whether the arrow is displayed\n */\n showArrow: {\n type: Boolean,\n default: true,\n },\n /**\n * @description whether show suggestions when input focus\n */\n triggerOnFocus: {\n type: Boolean,\n default: true,\n },\n /**\n * @description whether to emit a `select` event on enter when there is no autocomplete match\n */\n selectWhenUnmatched: Boolean,\n /**\n * @description whether to hide the loading icon in remote search\n */\n hideLoading: Boolean,\n /**\n * @description whether select dropdown is teleported to the body\n */\n teleported: useTooltipContentProps.teleported,\n /**\n * @description which select dropdown appends to\n */\n appendTo: useTooltipContentProps.appendTo,\n /**\n * @description whether to highlight first item in remote search suggestions by default\n */\n highlightFirstItem: Boolean,\n /**\n * @description whether the width of the dropdown is the same as the input\n */\n fitInputWidth: Boolean,\n /**\n * @description whether keyboard navigation loops from end to start\n */\n loopNavigation: {\n type: Boolean,\n default: true,\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `AutocompleteProps` instead.\n */\nexport type AutocompletePropsPublic = ExtractPublicPropTypes<\n typeof autocompleteProps\n>\n\nexport const autocompleteEmits = {\n [UPDATE_MODEL_EVENT]: (value: string | number) =>\n isString(value) || isNumber(value),\n [INPUT_EVENT]: (value: string | number) => isString(value) || isNumber(value),\n [CHANGE_EVENT]: (value: string | number) =>\n isString(value) || isNumber(value),\n focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n clear: () => true,\n select: (item: Record<string, any>) => isObject(item),\n}\nexport type AutocompleteEmits = typeof autocompleteEmits\n\nexport type AutocompleteInstance = ComponentInstance<typeof Autocomplete> &\n ComponentExposed<typeof Autocomplete>\n"],"mappings":";;;;;;;;;;;;AA4HA,MAAa,oBAAoBA,kBAAAA,WAAW;CAC1C,GAAGC,cAAAA;;;;CAIH,UAAU;EACR,MAAM;EACN,SAAS;EACV;;;;CAID,YAAY;EACV,MAAM,CAAC,QAAQ,OAAO;EACtB,SAAS;EACV;;;;CAID,UAAU;EACR,MAAM;EACN,SAAS;EACV;;;;CAID,WAAW;EACT,MAAMC,kBAAAA,eAA0B,OAAO;EACvC,QAAQ;GACN;GACA;GACA;GACA;GACA;GACA;GACD;EACD,SAAS;EACV;;;;CAID,kBAAkB;EAChB,MAAMA,kBAAAA,eAA6C,CAAC,UAAU,MAAM,CAAC;EACrE,SAASC,YAAAA;EACV;;;;CAID,aAAaC,gBAAAA,uBAAuB;;;;CAIpC,aAAaA,gBAAAA,uBAAuB;;;;CAIpC,eAAeA,gBAAAA,uBAAuB;;;;CAItC,WAAW;EACT,MAAM;EACN,SAAS;EACV;;;;CAID,gBAAgB;EACd,MAAM;EACN,SAAS;EACV;;;;CAID,qBAAqB;;;;CAIrB,aAAa;;;;CAIb,YAAYA,gBAAAA,uBAAuB;;;;CAInC,UAAUA,gBAAAA,uBAAuB;;;;CAIjC,oBAAoB;;;;CAIpB,eAAe;;;;CAIf,gBAAgB;EACd,MAAM;EACN,SAAS;EACV;CACF,CAAU;AASX,MAAa,oBAAoB;EAC9BC,cAAAA,sBAAsB,WAAA,GAAA,YAAA,UACZ,MAAM,IAAIC,cAAAA,SAAS,MAAM;EACnCC,cAAAA,eAAe,WAAA,GAAA,YAAA,UAAoC,MAAM,IAAID,cAAAA,SAAS,MAAM;EAC5EE,cAAAA,gBAAgB,WAAA,GAAA,YAAA,UACN,MAAM,IAAIF,cAAAA,SAAS,MAAM;CACpC,QAAQ,QAAoB,eAAe;CAC3C,OAAO,QAAoB,eAAe;CAC1C,aAAa;CACb,SAAS,UAAA,GAAA,YAAA,UAAuC,KAAK;CACtD"}
1
+ {"version":3,"file":"autocomplete.js","names":["buildProps","inputProps","definePropType","NOOP","useTooltipContentProps","UPDATE_MODEL_EVENT","isNumber","INPUT_EVENT","CHANGE_EVENT"],"sources":["../../../../../../packages/components/autocomplete/src/autocomplete.ts"],"sourcesContent":["import {\n NOOP,\n buildProps,\n definePropType,\n isNumber,\n isObject,\n isString,\n} from '@element-plus/utils'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { inputProps } from '@element-plus/components/input'\n\nimport type { ComponentInstance, ExtractPublicPropTypes } from 'vue'\nimport type { ComponentExposed } from 'vue-component-type-helpers'\nimport type Autocomplete from './autocomplete.vue'\nimport type { Options, Placement } from '@element-plus/components/popper'\nimport type { Awaitable } from '@element-plus/utils'\nimport type { InputProps } from '@element-plus/components/input'\nimport type { ElTooltipContentProps } from '@element-plus/components/tooltip'\n\nexport type AutocompleteDataItem = Record<string, any>\nexport type AutocompleteData<\n T extends AutocompleteDataItem = AutocompleteDataItem,\n> = T[]\nexport type AutocompleteFetchSuggestionsCallback<\n T extends AutocompleteDataItem = AutocompleteDataItem,\n> = (data: AutocompleteData<T>) => void\nexport type AutocompleteFetchSuggestions<\n T extends AutocompleteDataItem = AutocompleteDataItem,\n> =\n | ((\n queryString: string,\n cb: AutocompleteFetchSuggestionsCallback<T>\n ) => Awaitable<AutocompleteData<T> | void>)\n | AutocompleteData<T>\n\nexport type AutocompletePlacement =\n 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end'\n\nexport interface AutocompleteProps<\n T extends AutocompleteDataItem = AutocompleteDataItem,\n> extends InputProps {\n /**\n * @description key name of the input suggestion object for display\n */\n valueKey?: string\n /**\n * @description binding value\n */\n modelValue?: string | number\n /**\n * @description debounce delay when typing, in milliseconds\n */\n debounce?: number\n /**\n * @description placement of the popup menu\n */\n placement?: AutocompletePlacement\n /**\n * @description a method to fetch input suggestions. When suggestions are ready, invoke `callback(data:[])` to return them to Autocomplete\n */\n fetchSuggestions?: AutocompleteFetchSuggestions<T>\n /**\n * @description custom class name for autocomplete's dropdown\n */\n popperClass?: ElTooltipContentProps['popperClass']\n /**\n * @description custom style for autocomplete's dropdown\n */\n popperStyle?: ElTooltipContentProps['popperStyle']\n /**\n * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n */\n popperOptions?: Partial<Options>\n /**\n * @description determines whether the arrow is displayed\n */\n showArrow?: boolean\n /**\n * @description whether show suggestions when input focus\n */\n triggerOnFocus?: boolean\n /**\n * @description whether to emit a `select` event on enter when there is no autocomplete match\n */\n selectWhenUnmatched?: boolean\n /**\n * @description whether to hide the loading icon in remote search\n */\n hideLoading?: boolean\n /**\n * @description whether select dropdown is teleported to the body\n */\n teleported?: ElTooltipContentProps['teleported']\n /**\n * @description which select dropdown appends to\n */\n appendTo?: ElTooltipContentProps['appendTo']\n /**\n * @description whether to highlight first item in remote search suggestions by default\n */\n highlightFirstItem?: boolean\n /**\n * @description whether the width of the dropdown is the same as the input\n */\n fitInputWidth?: boolean\n /**\n * @description whether keyboard navigation loops from end to start\n */\n loopNavigation?: boolean\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `AutocompleteProps` instead.\n */\nexport const autocompleteProps = buildProps({\n ...inputProps,\n /**\n * @description key name of the input suggestion object for display\n */\n valueKey: {\n type: String,\n default: 'value',\n },\n /**\n * @description binding value\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description debounce delay when typing, in milliseconds\n */\n debounce: {\n type: Number,\n default: 300,\n },\n /**\n * @description placement of the popup menu\n */\n placement: {\n type: definePropType<Placement>(String),\n values: [\n 'top',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n ],\n default: 'bottom-start',\n },\n /**\n * @description a method to fetch input suggestions. When suggestions are ready, invoke `callback(data:[])` to return them to Autocomplete\n */\n fetchSuggestions: {\n type: definePropType<AutocompleteFetchSuggestions>([Function, Array]),\n default: NOOP,\n },\n /**\n * @description custom class name for autocomplete's dropdown\n */\n popperClass: useTooltipContentProps.popperClass,\n /**\n * @description custom style for autocomplete's dropdown\n */\n popperStyle: useTooltipContentProps.popperStyle,\n /**\n * @description [popper.js](https://popper.js.org/docs/v2/) parameters\n */\n popperOptions: useTooltipContentProps.popperOptions,\n /**\n * @description determines whether the arrow is displayed\n */\n showArrow: {\n type: Boolean,\n default: true,\n },\n /**\n * @description whether show suggestions when input focus\n */\n triggerOnFocus: {\n type: Boolean,\n default: true,\n },\n /**\n * @description whether to emit a `select` event on enter when there is no autocomplete match\n */\n selectWhenUnmatched: Boolean,\n /**\n * @description whether to hide the loading icon in remote search\n */\n hideLoading: Boolean,\n /**\n * @description whether select dropdown is teleported to the body\n */\n teleported: useTooltipContentProps.teleported,\n /**\n * @description which select dropdown appends to\n */\n appendTo: useTooltipContentProps.appendTo,\n /**\n * @description whether to highlight first item in remote search suggestions by default\n */\n highlightFirstItem: Boolean,\n /**\n * @description whether the width of the dropdown is the same as the input\n */\n fitInputWidth: Boolean,\n /**\n * @description whether keyboard navigation loops from end to start\n */\n loopNavigation: {\n type: Boolean,\n default: true,\n },\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `AutocompleteProps` instead.\n */\nexport type AutocompletePropsPublic = ExtractPublicPropTypes<\n typeof autocompleteProps\n>\n\nexport const autocompleteEmits = {\n [UPDATE_MODEL_EVENT]: (value: string | number) =>\n isString(value) || isNumber(value),\n [INPUT_EVENT]: (value: string | number) => isString(value) || isNumber(value),\n [CHANGE_EVENT]: (value: string | number) =>\n isString(value) || isNumber(value),\n focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n clear: () => true,\n select: (item: Record<string, any>) => isObject(item),\n}\nexport type AutocompleteEmits = typeof autocompleteEmits\n\nexport type AutocompleteInstance = ComponentInstance<typeof Autocomplete> &\n ComponentExposed<typeof Autocomplete>\n"],"mappings":";;;;;;;;;;;;AAuHA,MAAa,oBAAoBA,kBAAAA,WAAW;CAC1C,GAAGC,cAAAA;;;;CAIH,UAAU;EACR,MAAM;EACN,SAAS;EACV;;;;CAID,YAAY;EACV,MAAM,CAAC,QAAQ,OAAO;EACtB,SAAS;EACV;;;;CAID,UAAU;EACR,MAAM;EACN,SAAS;EACV;;;;CAID,WAAW;EACT,MAAMC,kBAAAA,eAA0B,OAAO;EACvC,QAAQ;GACN;GACA;GACA;GACA;GACA;GACA;GACD;EACD,SAAS;EACV;;;;CAID,kBAAkB;EAChB,MAAMA,kBAAAA,eAA6C,CAAC,UAAU,MAAM,CAAC;EACrE,SAASC,YAAAA;EACV;;;;CAID,aAAaC,gBAAAA,uBAAuB;;;;CAIpC,aAAaA,gBAAAA,uBAAuB;;;;CAIpC,eAAeA,gBAAAA,uBAAuB;;;;CAItC,WAAW;EACT,MAAM;EACN,SAAS;EACV;;;;CAID,gBAAgB;EACd,MAAM;EACN,SAAS;EACV;;;;CAID,qBAAqB;;;;CAIrB,aAAa;;;;CAIb,YAAYA,gBAAAA,uBAAuB;;;;CAInC,UAAUA,gBAAAA,uBAAuB;;;;CAIjC,oBAAoB;;;;CAIpB,eAAe;;;;CAIf,gBAAgB;EACd,MAAM;EACN,SAAS;EACV;CACF,CAAU;AASX,MAAa,oBAAoB;EAC9BC,cAAAA,sBAAsB,WAAA,GAAA,YAAA,UACZ,MAAM,IAAIC,cAAAA,SAAS,MAAM;EACnCC,cAAAA,eAAe,WAAA,GAAA,YAAA,UAAoC,MAAM,IAAID,cAAAA,SAAS,MAAM;EAC5EE,cAAAA,gBAAgB,WAAA,GAAA,YAAA,UACN,MAAM,IAAIF,cAAAA,SAAS,MAAM;CACpC,QAAQ,QAAoB,eAAe;CAC3C,OAAO,QAAoB,eAAe;CAC1C,aAAa;CACb,SAAS,UAAA,GAAA,YAAA,UAAuC,KAAK;CACtD"}
@@ -7,13 +7,13 @@ import { Ref } from "vue";
7
7
  //#region ../../packages/components/autocomplete/src/autocomplete.vue.d.ts
8
8
  declare const __VLS_export: <T extends AutocompleteDataItem = AutocompleteDataItem>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
9
9
  props: _$vue.PublicProps & __VLS_PrettifyLocal<AutocompleteProps<T> & {
10
+ "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
10
11
  onChange?: ((value: string | number) => any) | undefined;
11
12
  onInput?: ((value: string | number) => any) | undefined;
12
- onSelect?: ((item: Record<string, any>) => any) | undefined;
13
- onBlur?: ((evt: FocusEvent) => any) | undefined;
14
- onFocus?: ((evt: FocusEvent) => any) | undefined;
15
13
  onClear?: (() => any) | undefined;
16
- "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
14
+ onFocus?: ((evt: FocusEvent) => any) | undefined;
15
+ onBlur?: ((evt: FocusEvent) => any) | undefined;
16
+ onSelect?: ((item: Record<string, any>) => any) | undefined;
17
17
  }> & (typeof globalThis extends {
18
18
  __VLS_PROPS_FALLBACK: infer P;
19
19
  } ? P : {});
@@ -52,7 +52,7 @@ declare const __VLS_export: <T extends AutocompleteDataItem = AutocompleteDataIt
52
52
  } & {
53
53
  footer?: (props: {}) => any;
54
54
  };
55
- emit: ((event: "select", item: Record<string, any>) => void) & ((event: "blur", evt: FocusEvent) => void) & ((event: "focus", evt: FocusEvent) => void) & ((event: "clear") => void) & ((event: "update:modelValue", value: string | number) => void) & ((event: "change", value: string | number) => void) & ((event: "input", value: string | number) => void);
55
+ emit: ((event: "update:modelValue", value: string | number) => void) & ((event: "change", value: string | number) => void) & ((event: "input", value: string | number) => void) & ((event: "clear") => void) & ((event: "focus", evt: FocusEvent) => void) & ((event: "blur", evt: FocusEvent) => void) & ((event: "select", item: Record<string, any>) => void);
56
56
  }>) => _$vue.VNode & {
57
57
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
58
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.vue_vue_type_script_setup_true_lang.js","names":["$slots","$attrs"],"sources":["../../../../../../packages/components/autocomplete/src/autocomplete.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popperRef\"\n :visible=\"suggestionVisible\"\n :placement=\"placement\"\n :fallback-placements=\"['bottom-start', 'top-start']\"\n :popper-class=\"[ns.e('popper'), popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"popperOptions\"\n :show-arrow=\"showArrow\"\n :teleported=\"teleported\"\n :append-to=\"appendTo\"\n :gpu-acceleration=\"false\"\n pure\n manual-mode\n effect=\"light\"\n trigger=\"click\"\n :transition=\"`${ns.namespace.value}-zoom-in-top`\"\n persistent\n role=\"listbox\"\n @before-show=\"onSuggestionShow\"\n @hide=\"onHide\"\n >\n <div\n ref=\"listboxRef\"\n :class=\"[ns.b(), $attrs.class]\"\n :style=\"styles\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"suggestionVisible\"\n :aria-owns=\"listboxId\"\n >\n <el-input\n ref=\"inputRef\"\n v-bind=\"mergeProps(passInputProps, $attrs)\"\n :model-value=\"modelValue\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @clear=\"handleClear\"\n @keydown=\"handleKeydown\"\n @mousedown=\"handleMouseDown\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\" />\n </template>\n <template v-if=\"$slots.suffix\" #suffix>\n <slot name=\"suffix\" />\n </template>\n </el-input>\n </div>\n <template #content>\n <div\n ref=\"regionRef\"\n :class=\"[ns.b('suggestion'), ns.is('loading', suggestionLoading)]\"\n :style=\"{\n [fitInputWidth ? 'width' : 'minWidth']: dropdownWidth,\n outline: 'none',\n }\"\n role=\"region\"\n >\n <div\n v-if=\"$slots.header\"\n :class=\"ns.be('suggestion', 'header')\"\n @click.stop\n >\n <slot name=\"header\" />\n </div>\n <el-scrollbar\n :id=\"listboxId\"\n tag=\"ul\"\n :wrap-class=\"ns.be('suggestion', 'wrap')\"\n :view-class=\"ns.be('suggestion', 'list')\"\n role=\"listbox\"\n >\n <li v-if=\"suggestionLoading\">\n <slot name=\"loading\">\n <el-icon :class=\"ns.is('loading')\">\n <Loading />\n </el-icon>\n </slot>\n </li>\n <template v-else>\n <li\n v-for=\"(item, index) in suggestions\"\n :id=\"`${listboxId}-item-${index}`\"\n :key=\"index\"\n :class=\"{ highlighted: highlightedIndex === index }\"\n role=\"option\"\n :aria-selected=\"highlightedIndex === index\"\n @click=\"handleSelect(item)\"\n >\n <slot :item=\"item\">{{ item[valueKey] }}</slot>\n </li>\n </template>\n </el-scrollbar>\n <div\n v-if=\"$slots.footer\"\n :class=\"ns.be('suggestion', 'footer')\"\n @click.stop\n >\n <slot name=\"footer\" />\n </div>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script\n lang=\"ts\"\n setup\n generic=\"T extends AutocompleteDataItem = AutocompleteDataItem\"\n>\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n onMounted,\n ref,\n useAttrs as useRawAttrs,\n} from 'vue'\nimport { pick } from 'lodash-unified'\nimport { onClickOutside, useDebounceFn } from '@vueuse/core'\nimport { Loading } from '@element-plus/icons-vue'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport { NOOP, getEventCode, isArray, throwError } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElInput, { inputPropsDefaults } from '@element-plus/components/input'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElIcon from '@element-plus/components/icon'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { autocompleteEmits } from './autocomplete'\n\nimport type {\n AutocompleteData,\n AutocompleteDataItem,\n AutocompleteProps,\n} from './autocomplete'\nimport type { Ref, StyleValue } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { InputInstance } from '@element-plus/components/input'\n\nconst COMPONENT_NAME = 'ElAutocomplete'\ndefineOptions({\n name: COMPONENT_NAME,\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<AutocompleteProps<T>>(), {\n ...inputPropsDefaults,\n valueKey: 'value',\n modelValue: '',\n debounce: 300,\n placement: 'bottom-start',\n fetchSuggestions: NOOP,\n triggerOnFocus: true,\n loopNavigation: true,\n teleported: true,\n showArrow: true,\n popperOptions: () => ({}),\n})\nconst emit = defineEmits(autocompleteEmits)\nconst passInputProps = computed(() => {\n const inputProps = ElInput.props ?? []\n const keys = isArray(inputProps) ? inputProps : Object.keys(inputProps)\n return pick(props, keys)\n})\n\nconst rawAttrs = useRawAttrs()\nconst disabled = useFormDisabled()\nconst ns = useNamespace('autocomplete')\n\nconst inputRef = ref<InputInstance>()\nconst regionRef = ref<HTMLElement>()\nconst popperRef = ref<TooltipInstance>()\nconst listboxRef = ref<HTMLElement>()\n\nlet readonly = false\nlet ignoreFocusEvent = false\nconst suggestions = ref([]) as Ref<AutocompleteData<T>>\nconst highlightedIndex = ref(-1)\nconst dropdownWidth = ref('')\nconst activated = ref(false)\nconst suggestionDisabled = ref(false)\nconst loading = ref(false)\n\nconst listboxId = useId()\nconst styles = computed(() => rawAttrs.style as StyleValue)\n\nconst suggestionVisible = computed(() => {\n const isValidData = suggestions.value.length > 0\n return (isValidData || loading.value) && activated.value\n})\n\nconst suggestionLoading = computed(() => !props.hideLoading && loading.value)\n\nconst refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n return Array.from<HTMLInputElement>(\n inputRef.value.$el.querySelectorAll('input')\n )\n }\n return []\n})\n\nconst onSuggestionShow = () => {\n if (suggestionVisible.value) {\n dropdownWidth.value = `${inputRef.value!.$el.offsetWidth}px`\n }\n}\n\nconst onHide = () => {\n highlightedIndex.value = -1\n}\n\nconst getData = async (queryString: string) => {\n if (suggestionDisabled.value) return\n\n const cb = (suggestionList: AutocompleteData<T>) => {\n loading.value = false\n if (suggestionDisabled.value) return\n\n if (isArray(suggestionList)) {\n suggestions.value = suggestionList\n highlightedIndex.value = props.highlightFirstItem ? 0 : -1\n } else {\n throwError(COMPONENT_NAME, 'autocomplete suggestions must be an array')\n }\n }\n\n loading.value = true\n if (isArray(props.fetchSuggestions)) {\n cb(props.fetchSuggestions)\n } else {\n const result = await props.fetchSuggestions(queryString, cb)\n if (isArray(result)) cb(result)\n }\n}\n\nconst debounce = computed(() => props.debounce)\nconst debouncedGetData = useDebounceFn(getData, debounce)\n\nconst handleInput = (value: string) => {\n const valuePresented = !!value\n\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n\n suggestionDisabled.value = false\n activated.value ||= valuePresented\n\n if (!props.triggerOnFocus && !value) {\n suggestionDisabled.value = true\n suggestions.value = []\n return\n }\n\n debouncedGetData(value)\n}\n\nconst handleMouseDown = (event: MouseEvent) => {\n if (disabled.value) return\n if (\n (event.target as HTMLElement)?.tagName !== 'INPUT' ||\n refInput.value.includes(document.activeElement as HTMLInputElement)\n ) {\n activated.value = true\n }\n}\n\nconst handleChange = (value: string | number) => {\n emit(CHANGE_EVENT, value)\n}\n\nconst handleFocus = (evt: FocusEvent) => {\n if (!ignoreFocusEvent) {\n activated.value = true\n emit('focus', evt)\n const queryString = props.modelValue ?? ''\n if (props.triggerOnFocus && !readonly) {\n debouncedGetData(String(queryString))\n }\n } else {\n ignoreFocusEvent = false\n }\n}\n\nconst handleBlur = (evt: FocusEvent) => {\n setTimeout(() => {\n // validate current focus event is inside el-tooltip-content\n // if so, ignore the blur event and the next focus event\n if (popperRef.value?.isFocusInsideContent()) {\n ignoreFocusEvent = true\n return\n }\n activated.value && close()\n emit('blur', evt)\n })\n}\n\nconst handleClear = () => {\n activated.value = false\n emit(UPDATE_MODEL_EVENT, '')\n emit('clear')\n}\n\nconst handleKeyEnter = async () => {\n if (inputRef.value?.isComposing) {\n return\n }\n\n if (\n suggestionVisible.value &&\n highlightedIndex.value >= 0 &&\n highlightedIndex.value < suggestions.value.length\n ) {\n handleSelect(suggestions.value[highlightedIndex.value])\n } else {\n if (props.selectWhenUnmatched) {\n emit('select', { value: props.modelValue })\n suggestions.value = []\n highlightedIndex.value = -1\n }\n activated.value = true\n debouncedGetData(String(props.modelValue))\n }\n}\n\nconst handleKeyEscape = (evt: Event) => {\n if (suggestionVisible.value) {\n evt.preventDefault()\n evt.stopPropagation()\n close()\n }\n}\n\nconst close = () => {\n activated.value = false\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nconst handleSelect = async (item: T) => {\n emit(INPUT_EVENT, item[props.valueKey])\n emit(UPDATE_MODEL_EVENT, item[props.valueKey])\n emit('select', item)\n suggestions.value = []\n highlightedIndex.value = -1\n}\n\nconst highlight = (index: number) => {\n if (!suggestionVisible.value || loading.value) return\n\n if (index < 0) {\n if (!props.loopNavigation) {\n highlightedIndex.value = -1\n return\n }\n index = suggestions.value.length - 1\n }\n\n if (index >= suggestions.value.length) {\n index = props.loopNavigation ? 0 : suggestions.value.length - 1\n }\n const [suggestion, suggestionList] = getSuggestionContext()\n const highlightItem = suggestionList[index]\n const scrollTop = suggestion.scrollTop\n const { offsetTop, scrollHeight } = highlightItem\n\n if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {\n suggestion.scrollTop = offsetTop + scrollHeight - suggestion.clientHeight\n }\n if (offsetTop < scrollTop) {\n suggestion.scrollTop = offsetTop\n }\n highlightedIndex.value = index\n inputRef.value?.ref?.setAttribute(\n 'aria-activedescendant',\n `${listboxId.value}-item-${highlightedIndex.value}`\n )\n}\nconst getSuggestionContext = () => {\n const suggestion = regionRef.value!.querySelector(\n `.${ns.be('suggestion', 'wrap')}`\n )!\n const suggestionList = suggestion.querySelectorAll<HTMLElement>(\n `.${ns.be('suggestion', 'list')} li`\n )\n return [suggestion, suggestionList] as const\n}\n\nconst stopHandle = onClickOutside(listboxRef, (event: FocusEvent) => {\n // Prevent closing if focus is inside popper content\n if (popperRef.value?.isFocusInsideContent()) return\n const hadIgnoredFocus = ignoreFocusEvent\n ignoreFocusEvent = false\n if (!suggestionVisible.value) return\n if (hadIgnoredFocus) {\n handleBlur(new FocusEvent('blur', event))\n } else {\n close()\n }\n})\n\nconst handleKeydown = (e: KeyboardEvent | Event) => {\n const code = getEventCode(e as KeyboardEvent)\n switch (code) {\n case EVENT_CODE.up:\n e.preventDefault()\n highlight(highlightedIndex.value - 1)\n break\n case EVENT_CODE.down:\n e.preventDefault()\n highlight(highlightedIndex.value + 1)\n break\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n e.preventDefault()\n handleKeyEnter()\n break\n case EVENT_CODE.tab:\n close()\n break\n case EVENT_CODE.esc:\n handleKeyEscape(e)\n break\n case EVENT_CODE.home:\n e.preventDefault()\n highlight(0)\n break\n case EVENT_CODE.end:\n e.preventDefault()\n highlight(suggestions.value.length - 1)\n break\n case EVENT_CODE.pageUp:\n e.preventDefault()\n highlight(Math.max(0, highlightedIndex.value - 10))\n break\n case EVENT_CODE.pageDown:\n e.preventDefault()\n highlight(\n Math.min(suggestions.value.length - 1, highlightedIndex.value + 10)\n )\n break\n }\n}\n\nonBeforeUnmount(() => {\n stopHandle?.()\n})\n\nonMounted(() => {\n const inputElement = inputRef.value?.ref\n if (!inputElement) return\n ;[\n { key: 'role', value: 'textbox' },\n { key: 'aria-autocomplete', value: 'list' },\n { key: 'aria-controls', value: listboxId.value },\n {\n key: 'aria-activedescendant',\n value: `${listboxId.value}-item-${highlightedIndex.value}`,\n },\n ].forEach(({ key, value }) => inputElement.setAttribute(key, value))\n // get readonly attr\n readonly = inputElement.hasAttribute('readonly')\n})\n\ndefineExpose({\n /** @description the index of the currently highlighted item */\n highlightedIndex,\n /** @description autocomplete whether activated */\n activated,\n /** @description remote search loading status */\n loading,\n /** @description el-input component instance */\n inputRef,\n /** @description el-tooltip component instance */\n popperRef,\n /** @description fetch suggestions result */\n suggestions,\n /** @description triggers when a suggestion is clicked */\n handleSelect,\n /** @description handle keyboard enter event */\n handleKeyEnter,\n /** @description focus the input element */\n focus,\n /** @description blur the input element */\n blur,\n /** @description close suggestion */\n close,\n /** @description highlight an item in a suggestion */\n highlight,\n /** @description loading suggestion list */\n getData,\n})\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"autocomplete.vue_vue_type_script_setup_true_lang.js","names":["$slots","$attrs"],"sources":["../../../../../../packages/components/autocomplete/src/autocomplete.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popperRef\"\n :visible=\"suggestionVisible\"\n :placement=\"placement\"\n :fallback-placements=\"['bottom-start', 'top-start']\"\n :popper-class=\"[ns.e('popper'), popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"popperOptions\"\n :show-arrow=\"showArrow\"\n :teleported=\"teleported\"\n :append-to=\"appendTo\"\n :gpu-acceleration=\"false\"\n pure\n manual-mode\n effect=\"light\"\n trigger=\"click\"\n :transition=\"`${ns.namespace.value}-zoom-in-top`\"\n persistent\n role=\"listbox\"\n @before-show=\"onSuggestionShow\"\n @hide=\"onHide\"\n >\n <div\n ref=\"listboxRef\"\n :class=\"[ns.b(), $attrs.class]\"\n :style=\"styles\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"suggestionVisible\"\n :aria-owns=\"listboxId\"\n >\n <el-input\n ref=\"inputRef\"\n v-bind=\"mergeProps(passInputProps, $attrs)\"\n :model-value=\"modelValue\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @clear=\"handleClear\"\n @keydown=\"handleKeydown\"\n @mousedown=\"handleMouseDown\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\" />\n </template>\n <template v-if=\"$slots.suffix\" #suffix>\n <slot name=\"suffix\" />\n </template>\n </el-input>\n </div>\n <template #content>\n <div\n ref=\"regionRef\"\n :class=\"[ns.b('suggestion'), ns.is('loading', suggestionLoading)]\"\n :style=\"{\n [fitInputWidth ? 'width' : 'minWidth']: dropdownWidth,\n outline: 'none',\n }\"\n role=\"region\"\n >\n <div\n v-if=\"$slots.header\"\n :class=\"ns.be('suggestion', 'header')\"\n @click.stop\n >\n <slot name=\"header\" />\n </div>\n <el-scrollbar\n :id=\"listboxId\"\n tag=\"ul\"\n :wrap-class=\"ns.be('suggestion', 'wrap')\"\n :view-class=\"ns.be('suggestion', 'list')\"\n role=\"listbox\"\n >\n <li v-if=\"suggestionLoading\">\n <slot name=\"loading\">\n <el-icon :class=\"ns.is('loading')\">\n <Loading />\n </el-icon>\n </slot>\n </li>\n <template v-else>\n <li\n v-for=\"(item, index) in suggestions\"\n :id=\"`${listboxId}-item-${index}`\"\n :key=\"index\"\n :class=\"{ highlighted: highlightedIndex === index }\"\n role=\"option\"\n :aria-selected=\"highlightedIndex === index\"\n @click=\"handleSelect(item)\"\n >\n <slot :item=\"item\">{{ item[valueKey] }}</slot>\n </li>\n </template>\n </el-scrollbar>\n <div\n v-if=\"$slots.footer\"\n :class=\"ns.be('suggestion', 'footer')\"\n @click.stop\n >\n <slot name=\"footer\" />\n </div>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script\n lang=\"ts\"\n setup\n generic=\"T extends AutocompleteDataItem = AutocompleteDataItem\"\n>\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n onMounted,\n ref,\n useAttrs as useRawAttrs,\n} from 'vue'\nimport { pick } from 'lodash-unified'\nimport { onClickOutside, useDebounceFn } from '@vueuse/core'\nimport { Loading } from '@element-plus/icons-vue'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport { NOOP, getEventCode, isArray, throwError } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElInput, { inputPropsDefaults } from '@element-plus/components/input'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElIcon from '@element-plus/components/icon'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { autocompleteEmits } from './autocomplete'\n\nimport type {\n AutocompleteData,\n AutocompleteDataItem,\n AutocompleteProps,\n} from './autocomplete'\nimport type { Ref, StyleValue } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { InputInstance } from '@element-plus/components/input'\n\nconst COMPONENT_NAME = 'ElAutocomplete'\ndefineOptions({\n name: COMPONENT_NAME,\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<AutocompleteProps<T>>(), {\n ...inputPropsDefaults,\n valueKey: 'value',\n modelValue: '',\n debounce: 300,\n placement: 'bottom-start',\n fetchSuggestions: NOOP,\n triggerOnFocus: true,\n loopNavigation: true,\n teleported: true,\n showArrow: true,\n popperClass: undefined,\n popperStyle: undefined,\n popperOptions: () => ({}),\n})\nconst emit = defineEmits(autocompleteEmits)\nconst passInputProps = computed(() => {\n const inputProps = ElInput.props ?? []\n const keys = isArray(inputProps) ? inputProps : Object.keys(inputProps)\n return pick(props, keys)\n})\n\nconst rawAttrs = useRawAttrs()\nconst disabled = useFormDisabled()\nconst ns = useNamespace('autocomplete')\n\nconst inputRef = ref<InputInstance>()\nconst regionRef = ref<HTMLElement>()\nconst popperRef = ref<TooltipInstance>()\nconst listboxRef = ref<HTMLElement>()\n\nlet readonly = false\nlet ignoreFocusEvent = false\nconst suggestions = ref([]) as Ref<AutocompleteData<T>>\nconst highlightedIndex = ref(-1)\nconst dropdownWidth = ref('')\nconst activated = ref(false)\nconst suggestionDisabled = ref(false)\nconst loading = ref(false)\n\nconst listboxId = useId()\nconst styles = computed(() => rawAttrs.style as StyleValue)\n\nconst suggestionVisible = computed(() => {\n const isValidData = suggestions.value.length > 0\n return (isValidData || loading.value) && activated.value\n})\n\nconst suggestionLoading = computed(() => !props.hideLoading && loading.value)\n\nconst refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n return Array.from<HTMLInputElement>(\n inputRef.value.$el.querySelectorAll('input')\n )\n }\n return []\n})\n\nconst onSuggestionShow = () => {\n if (suggestionVisible.value) {\n dropdownWidth.value = `${inputRef.value!.$el.offsetWidth}px`\n }\n}\n\nconst onHide = () => {\n highlightedIndex.value = -1\n}\n\nconst getData = async (queryString: string) => {\n if (suggestionDisabled.value) return\n\n const cb = (suggestionList: AutocompleteData<T>) => {\n loading.value = false\n if (suggestionDisabled.value) return\n\n if (isArray(suggestionList)) {\n suggestions.value = suggestionList\n highlightedIndex.value = props.highlightFirstItem ? 0 : -1\n } else {\n throwError(COMPONENT_NAME, 'autocomplete suggestions must be an array')\n }\n }\n\n loading.value = true\n if (isArray(props.fetchSuggestions)) {\n cb(props.fetchSuggestions)\n } else {\n const result = await props.fetchSuggestions(queryString, cb)\n if (isArray(result)) cb(result)\n }\n}\n\nconst debounce = computed(() => props.debounce)\nconst debouncedGetData = useDebounceFn(getData, debounce)\n\nconst handleInput = (value: string) => {\n const valuePresented = !!value\n\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n\n suggestionDisabled.value = false\n activated.value ||= valuePresented\n\n if (!props.triggerOnFocus && !value) {\n suggestionDisabled.value = true\n suggestions.value = []\n return\n }\n\n debouncedGetData(value)\n}\n\nconst handleMouseDown = (event: MouseEvent) => {\n if (disabled.value) return\n if (\n (event.target as HTMLElement)?.tagName !== 'INPUT' ||\n refInput.value.includes(document.activeElement as HTMLInputElement)\n ) {\n activated.value = true\n }\n}\n\nconst handleChange = (value: string | number) => {\n emit(CHANGE_EVENT, value)\n}\n\nconst handleFocus = (evt: FocusEvent) => {\n if (!ignoreFocusEvent) {\n activated.value = true\n emit('focus', evt)\n const queryString = props.modelValue ?? ''\n if (props.triggerOnFocus && !readonly) {\n debouncedGetData(String(queryString))\n }\n } else {\n ignoreFocusEvent = false\n }\n}\n\nconst handleBlur = (evt: FocusEvent) => {\n setTimeout(() => {\n // validate current focus event is inside el-tooltip-content\n // if so, ignore the blur event and the next focus event\n if (popperRef.value?.isFocusInsideContent()) {\n ignoreFocusEvent = true\n return\n }\n activated.value && close()\n emit('blur', evt)\n })\n}\n\nconst handleClear = () => {\n activated.value = false\n emit(UPDATE_MODEL_EVENT, '')\n emit('clear')\n}\n\nconst handleKeyEnter = async () => {\n if (inputRef.value?.isComposing) {\n return\n }\n\n if (\n suggestionVisible.value &&\n highlightedIndex.value >= 0 &&\n highlightedIndex.value < suggestions.value.length\n ) {\n handleSelect(suggestions.value[highlightedIndex.value])\n } else {\n if (props.selectWhenUnmatched) {\n emit('select', { value: props.modelValue })\n suggestions.value = []\n highlightedIndex.value = -1\n }\n activated.value = true\n debouncedGetData(String(props.modelValue))\n }\n}\n\nconst handleKeyEscape = (evt: Event) => {\n if (suggestionVisible.value) {\n evt.preventDefault()\n evt.stopPropagation()\n close()\n }\n}\n\nconst close = () => {\n activated.value = false\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nconst handleSelect = async (item: T) => {\n emit(INPUT_EVENT, item[props.valueKey])\n emit(UPDATE_MODEL_EVENT, item[props.valueKey])\n emit('select', item)\n suggestions.value = []\n highlightedIndex.value = -1\n}\n\nconst highlight = (index: number) => {\n if (!suggestionVisible.value || loading.value) return\n\n if (index < 0) {\n if (!props.loopNavigation) {\n highlightedIndex.value = -1\n return\n }\n index = suggestions.value.length - 1\n }\n\n if (index >= suggestions.value.length) {\n index = props.loopNavigation ? 0 : suggestions.value.length - 1\n }\n const [suggestion, suggestionList] = getSuggestionContext()\n const highlightItem = suggestionList[index]\n const scrollTop = suggestion.scrollTop\n const { offsetTop, scrollHeight } = highlightItem\n\n if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {\n suggestion.scrollTop = offsetTop + scrollHeight - suggestion.clientHeight\n }\n if (offsetTop < scrollTop) {\n suggestion.scrollTop = offsetTop\n }\n highlightedIndex.value = index\n inputRef.value?.ref?.setAttribute(\n 'aria-activedescendant',\n `${listboxId.value}-item-${highlightedIndex.value}`\n )\n}\nconst getSuggestionContext = () => {\n const suggestion = regionRef.value!.querySelector(\n `.${ns.be('suggestion', 'wrap')}`\n )!\n const suggestionList = suggestion.querySelectorAll<HTMLElement>(\n `.${ns.be('suggestion', 'list')} li`\n )\n return [suggestion, suggestionList] as const\n}\n\nconst stopHandle = onClickOutside(listboxRef, (event: FocusEvent) => {\n // Prevent closing if focus is inside popper content\n if (popperRef.value?.isFocusInsideContent()) return\n const hadIgnoredFocus = ignoreFocusEvent\n ignoreFocusEvent = false\n if (!suggestionVisible.value) return\n if (hadIgnoredFocus) {\n handleBlur(new FocusEvent('blur', event))\n } else {\n close()\n }\n})\n\nconst handleKeydown = (e: KeyboardEvent | Event) => {\n const code = getEventCode(e as KeyboardEvent)\n switch (code) {\n case EVENT_CODE.up:\n e.preventDefault()\n highlight(highlightedIndex.value - 1)\n break\n case EVENT_CODE.down:\n e.preventDefault()\n highlight(highlightedIndex.value + 1)\n break\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n e.preventDefault()\n handleKeyEnter()\n break\n case EVENT_CODE.tab:\n close()\n break\n case EVENT_CODE.esc:\n handleKeyEscape(e)\n break\n case EVENT_CODE.home:\n e.preventDefault()\n highlight(0)\n break\n case EVENT_CODE.end:\n e.preventDefault()\n highlight(suggestions.value.length - 1)\n break\n case EVENT_CODE.pageUp:\n e.preventDefault()\n highlight(Math.max(0, highlightedIndex.value - 10))\n break\n case EVENT_CODE.pageDown:\n e.preventDefault()\n highlight(\n Math.min(suggestions.value.length - 1, highlightedIndex.value + 10)\n )\n break\n }\n}\n\nonBeforeUnmount(() => {\n stopHandle?.()\n})\n\nonMounted(() => {\n const inputElement = inputRef.value?.ref\n if (!inputElement) return\n ;[\n { key: 'role', value: 'textbox' },\n { key: 'aria-autocomplete', value: 'list' },\n { key: 'aria-controls', value: listboxId.value },\n {\n key: 'aria-activedescendant',\n value: `${listboxId.value}-item-${highlightedIndex.value}`,\n },\n ].forEach(({ key, value }) => inputElement.setAttribute(key, value))\n // get readonly attr\n readonly = inputElement.hasAttribute('readonly')\n})\n\ndefineExpose({\n /** @description the index of the currently highlighted item */\n highlightedIndex,\n /** @description autocomplete whether activated */\n activated,\n /** @description remote search loading status */\n loading,\n /** @description el-input component instance */\n inputRef,\n /** @description el-tooltip component instance */\n popperRef,\n /** @description fetch suggestions result */\n suggestions,\n /** @description triggers when a suggestion is clicked */\n handleSelect,\n /** @description handle keyboard enter event */\n handleKeyEnter,\n /** @description focus the input element */\n focus,\n /** @description blur the input element */\n blur,\n /** @description close suggestion */\n close,\n /** @description highlight an item in a suggestion */\n highlight,\n /** @description loading suggestion list */\n getData,\n})\n</script>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete2.js","names":[],"sources":["../../../../../../packages/components/autocomplete/src/autocomplete.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popperRef\"\n :visible=\"suggestionVisible\"\n :placement=\"placement\"\n :fallback-placements=\"['bottom-start', 'top-start']\"\n :popper-class=\"[ns.e('popper'), popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"popperOptions\"\n :show-arrow=\"showArrow\"\n :teleported=\"teleported\"\n :append-to=\"appendTo\"\n :gpu-acceleration=\"false\"\n pure\n manual-mode\n effect=\"light\"\n trigger=\"click\"\n :transition=\"`${ns.namespace.value}-zoom-in-top`\"\n persistent\n role=\"listbox\"\n @before-show=\"onSuggestionShow\"\n @hide=\"onHide\"\n >\n <div\n ref=\"listboxRef\"\n :class=\"[ns.b(), $attrs.class]\"\n :style=\"styles\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"suggestionVisible\"\n :aria-owns=\"listboxId\"\n >\n <el-input\n ref=\"inputRef\"\n v-bind=\"mergeProps(passInputProps, $attrs)\"\n :model-value=\"modelValue\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @clear=\"handleClear\"\n @keydown=\"handleKeydown\"\n @mousedown=\"handleMouseDown\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\" />\n </template>\n <template v-if=\"$slots.suffix\" #suffix>\n <slot name=\"suffix\" />\n </template>\n </el-input>\n </div>\n <template #content>\n <div\n ref=\"regionRef\"\n :class=\"[ns.b('suggestion'), ns.is('loading', suggestionLoading)]\"\n :style=\"{\n [fitInputWidth ? 'width' : 'minWidth']: dropdownWidth,\n outline: 'none',\n }\"\n role=\"region\"\n >\n <div\n v-if=\"$slots.header\"\n :class=\"ns.be('suggestion', 'header')\"\n @click.stop\n >\n <slot name=\"header\" />\n </div>\n <el-scrollbar\n :id=\"listboxId\"\n tag=\"ul\"\n :wrap-class=\"ns.be('suggestion', 'wrap')\"\n :view-class=\"ns.be('suggestion', 'list')\"\n role=\"listbox\"\n >\n <li v-if=\"suggestionLoading\">\n <slot name=\"loading\">\n <el-icon :class=\"ns.is('loading')\">\n <Loading />\n </el-icon>\n </slot>\n </li>\n <template v-else>\n <li\n v-for=\"(item, index) in suggestions\"\n :id=\"`${listboxId}-item-${index}`\"\n :key=\"index\"\n :class=\"{ highlighted: highlightedIndex === index }\"\n role=\"option\"\n :aria-selected=\"highlightedIndex === index\"\n @click=\"handleSelect(item)\"\n >\n <slot :item=\"item\">{{ item[valueKey] }}</slot>\n </li>\n </template>\n </el-scrollbar>\n <div\n v-if=\"$slots.footer\"\n :class=\"ns.be('suggestion', 'footer')\"\n @click.stop\n >\n <slot name=\"footer\" />\n </div>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script\n lang=\"ts\"\n setup\n generic=\"T extends AutocompleteDataItem = AutocompleteDataItem\"\n>\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n onMounted,\n ref,\n useAttrs as useRawAttrs,\n} from 'vue'\nimport { pick } from 'lodash-unified'\nimport { onClickOutside, useDebounceFn } from '@vueuse/core'\nimport { Loading } from '@element-plus/icons-vue'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport { NOOP, getEventCode, isArray, throwError } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElInput, { inputPropsDefaults } from '@element-plus/components/input'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElIcon from '@element-plus/components/icon'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { autocompleteEmits } from './autocomplete'\n\nimport type {\n AutocompleteData,\n AutocompleteDataItem,\n AutocompleteProps,\n} from './autocomplete'\nimport type { Ref, StyleValue } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { InputInstance } from '@element-plus/components/input'\n\nconst COMPONENT_NAME = 'ElAutocomplete'\ndefineOptions({\n name: COMPONENT_NAME,\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<AutocompleteProps<T>>(), {\n ...inputPropsDefaults,\n valueKey: 'value',\n modelValue: '',\n debounce: 300,\n placement: 'bottom-start',\n fetchSuggestions: NOOP,\n triggerOnFocus: true,\n loopNavigation: true,\n teleported: true,\n showArrow: true,\n popperOptions: () => ({}),\n})\nconst emit = defineEmits(autocompleteEmits)\nconst passInputProps = computed(() => {\n const inputProps = ElInput.props ?? []\n const keys = isArray(inputProps) ? inputProps : Object.keys(inputProps)\n return pick(props, keys)\n})\n\nconst rawAttrs = useRawAttrs()\nconst disabled = useFormDisabled()\nconst ns = useNamespace('autocomplete')\n\nconst inputRef = ref<InputInstance>()\nconst regionRef = ref<HTMLElement>()\nconst popperRef = ref<TooltipInstance>()\nconst listboxRef = ref<HTMLElement>()\n\nlet readonly = false\nlet ignoreFocusEvent = false\nconst suggestions = ref([]) as Ref<AutocompleteData<T>>\nconst highlightedIndex = ref(-1)\nconst dropdownWidth = ref('')\nconst activated = ref(false)\nconst suggestionDisabled = ref(false)\nconst loading = ref(false)\n\nconst listboxId = useId()\nconst styles = computed(() => rawAttrs.style as StyleValue)\n\nconst suggestionVisible = computed(() => {\n const isValidData = suggestions.value.length > 0\n return (isValidData || loading.value) && activated.value\n})\n\nconst suggestionLoading = computed(() => !props.hideLoading && loading.value)\n\nconst refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n return Array.from<HTMLInputElement>(\n inputRef.value.$el.querySelectorAll('input')\n )\n }\n return []\n})\n\nconst onSuggestionShow = () => {\n if (suggestionVisible.value) {\n dropdownWidth.value = `${inputRef.value!.$el.offsetWidth}px`\n }\n}\n\nconst onHide = () => {\n highlightedIndex.value = -1\n}\n\nconst getData = async (queryString: string) => {\n if (suggestionDisabled.value) return\n\n const cb = (suggestionList: AutocompleteData<T>) => {\n loading.value = false\n if (suggestionDisabled.value) return\n\n if (isArray(suggestionList)) {\n suggestions.value = suggestionList\n highlightedIndex.value = props.highlightFirstItem ? 0 : -1\n } else {\n throwError(COMPONENT_NAME, 'autocomplete suggestions must be an array')\n }\n }\n\n loading.value = true\n if (isArray(props.fetchSuggestions)) {\n cb(props.fetchSuggestions)\n } else {\n const result = await props.fetchSuggestions(queryString, cb)\n if (isArray(result)) cb(result)\n }\n}\n\nconst debounce = computed(() => props.debounce)\nconst debouncedGetData = useDebounceFn(getData, debounce)\n\nconst handleInput = (value: string) => {\n const valuePresented = !!value\n\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n\n suggestionDisabled.value = false\n activated.value ||= valuePresented\n\n if (!props.triggerOnFocus && !value) {\n suggestionDisabled.value = true\n suggestions.value = []\n return\n }\n\n debouncedGetData(value)\n}\n\nconst handleMouseDown = (event: MouseEvent) => {\n if (disabled.value) return\n if (\n (event.target as HTMLElement)?.tagName !== 'INPUT' ||\n refInput.value.includes(document.activeElement as HTMLInputElement)\n ) {\n activated.value = true\n }\n}\n\nconst handleChange = (value: string | number) => {\n emit(CHANGE_EVENT, value)\n}\n\nconst handleFocus = (evt: FocusEvent) => {\n if (!ignoreFocusEvent) {\n activated.value = true\n emit('focus', evt)\n const queryString = props.modelValue ?? ''\n if (props.triggerOnFocus && !readonly) {\n debouncedGetData(String(queryString))\n }\n } else {\n ignoreFocusEvent = false\n }\n}\n\nconst handleBlur = (evt: FocusEvent) => {\n setTimeout(() => {\n // validate current focus event is inside el-tooltip-content\n // if so, ignore the blur event and the next focus event\n if (popperRef.value?.isFocusInsideContent()) {\n ignoreFocusEvent = true\n return\n }\n activated.value && close()\n emit('blur', evt)\n })\n}\n\nconst handleClear = () => {\n activated.value = false\n emit(UPDATE_MODEL_EVENT, '')\n emit('clear')\n}\n\nconst handleKeyEnter = async () => {\n if (inputRef.value?.isComposing) {\n return\n }\n\n if (\n suggestionVisible.value &&\n highlightedIndex.value >= 0 &&\n highlightedIndex.value < suggestions.value.length\n ) {\n handleSelect(suggestions.value[highlightedIndex.value])\n } else {\n if (props.selectWhenUnmatched) {\n emit('select', { value: props.modelValue })\n suggestions.value = []\n highlightedIndex.value = -1\n }\n activated.value = true\n debouncedGetData(String(props.modelValue))\n }\n}\n\nconst handleKeyEscape = (evt: Event) => {\n if (suggestionVisible.value) {\n evt.preventDefault()\n evt.stopPropagation()\n close()\n }\n}\n\nconst close = () => {\n activated.value = false\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nconst handleSelect = async (item: T) => {\n emit(INPUT_EVENT, item[props.valueKey])\n emit(UPDATE_MODEL_EVENT, item[props.valueKey])\n emit('select', item)\n suggestions.value = []\n highlightedIndex.value = -1\n}\n\nconst highlight = (index: number) => {\n if (!suggestionVisible.value || loading.value) return\n\n if (index < 0) {\n if (!props.loopNavigation) {\n highlightedIndex.value = -1\n return\n }\n index = suggestions.value.length - 1\n }\n\n if (index >= suggestions.value.length) {\n index = props.loopNavigation ? 0 : suggestions.value.length - 1\n }\n const [suggestion, suggestionList] = getSuggestionContext()\n const highlightItem = suggestionList[index]\n const scrollTop = suggestion.scrollTop\n const { offsetTop, scrollHeight } = highlightItem\n\n if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {\n suggestion.scrollTop = offsetTop + scrollHeight - suggestion.clientHeight\n }\n if (offsetTop < scrollTop) {\n suggestion.scrollTop = offsetTop\n }\n highlightedIndex.value = index\n inputRef.value?.ref?.setAttribute(\n 'aria-activedescendant',\n `${listboxId.value}-item-${highlightedIndex.value}`\n )\n}\nconst getSuggestionContext = () => {\n const suggestion = regionRef.value!.querySelector(\n `.${ns.be('suggestion', 'wrap')}`\n )!\n const suggestionList = suggestion.querySelectorAll<HTMLElement>(\n `.${ns.be('suggestion', 'list')} li`\n )\n return [suggestion, suggestionList] as const\n}\n\nconst stopHandle = onClickOutside(listboxRef, (event: FocusEvent) => {\n // Prevent closing if focus is inside popper content\n if (popperRef.value?.isFocusInsideContent()) return\n const hadIgnoredFocus = ignoreFocusEvent\n ignoreFocusEvent = false\n if (!suggestionVisible.value) return\n if (hadIgnoredFocus) {\n handleBlur(new FocusEvent('blur', event))\n } else {\n close()\n }\n})\n\nconst handleKeydown = (e: KeyboardEvent | Event) => {\n const code = getEventCode(e as KeyboardEvent)\n switch (code) {\n case EVENT_CODE.up:\n e.preventDefault()\n highlight(highlightedIndex.value - 1)\n break\n case EVENT_CODE.down:\n e.preventDefault()\n highlight(highlightedIndex.value + 1)\n break\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n e.preventDefault()\n handleKeyEnter()\n break\n case EVENT_CODE.tab:\n close()\n break\n case EVENT_CODE.esc:\n handleKeyEscape(e)\n break\n case EVENT_CODE.home:\n e.preventDefault()\n highlight(0)\n break\n case EVENT_CODE.end:\n e.preventDefault()\n highlight(suggestions.value.length - 1)\n break\n case EVENT_CODE.pageUp:\n e.preventDefault()\n highlight(Math.max(0, highlightedIndex.value - 10))\n break\n case EVENT_CODE.pageDown:\n e.preventDefault()\n highlight(\n Math.min(suggestions.value.length - 1, highlightedIndex.value + 10)\n )\n break\n }\n}\n\nonBeforeUnmount(() => {\n stopHandle?.()\n})\n\nonMounted(() => {\n const inputElement = inputRef.value?.ref\n if (!inputElement) return\n ;[\n { key: 'role', value: 'textbox' },\n { key: 'aria-autocomplete', value: 'list' },\n { key: 'aria-controls', value: listboxId.value },\n {\n key: 'aria-activedescendant',\n value: `${listboxId.value}-item-${highlightedIndex.value}`,\n },\n ].forEach(({ key, value }) => inputElement.setAttribute(key, value))\n // get readonly attr\n readonly = inputElement.hasAttribute('readonly')\n})\n\ndefineExpose({\n /** @description the index of the currently highlighted item */\n highlightedIndex,\n /** @description autocomplete whether activated */\n activated,\n /** @description remote search loading status */\n loading,\n /** @description el-input component instance */\n inputRef,\n /** @description el-tooltip component instance */\n popperRef,\n /** @description fetch suggestions result */\n suggestions,\n /** @description triggers when a suggestion is clicked */\n handleSelect,\n /** @description handle keyboard enter event */\n handleKeyEnter,\n /** @description focus the input element */\n focus,\n /** @description blur the input element */\n blur,\n /** @description close suggestion */\n close,\n /** @description highlight an item in a suggestion */\n highlight,\n /** @description loading suggestion list */\n getData,\n})\n</script>\n"],"mappings":""}
1
+ {"version":3,"file":"autocomplete2.js","names":[],"sources":["../../../../../../packages/components/autocomplete/src/autocomplete.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popperRef\"\n :visible=\"suggestionVisible\"\n :placement=\"placement\"\n :fallback-placements=\"['bottom-start', 'top-start']\"\n :popper-class=\"[ns.e('popper'), popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"popperOptions\"\n :show-arrow=\"showArrow\"\n :teleported=\"teleported\"\n :append-to=\"appendTo\"\n :gpu-acceleration=\"false\"\n pure\n manual-mode\n effect=\"light\"\n trigger=\"click\"\n :transition=\"`${ns.namespace.value}-zoom-in-top`\"\n persistent\n role=\"listbox\"\n @before-show=\"onSuggestionShow\"\n @hide=\"onHide\"\n >\n <div\n ref=\"listboxRef\"\n :class=\"[ns.b(), $attrs.class]\"\n :style=\"styles\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"suggestionVisible\"\n :aria-owns=\"listboxId\"\n >\n <el-input\n ref=\"inputRef\"\n v-bind=\"mergeProps(passInputProps, $attrs)\"\n :model-value=\"modelValue\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @clear=\"handleClear\"\n @keydown=\"handleKeydown\"\n @mousedown=\"handleMouseDown\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\" />\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\" />\n </template>\n <template v-if=\"$slots.suffix\" #suffix>\n <slot name=\"suffix\" />\n </template>\n </el-input>\n </div>\n <template #content>\n <div\n ref=\"regionRef\"\n :class=\"[ns.b('suggestion'), ns.is('loading', suggestionLoading)]\"\n :style=\"{\n [fitInputWidth ? 'width' : 'minWidth']: dropdownWidth,\n outline: 'none',\n }\"\n role=\"region\"\n >\n <div\n v-if=\"$slots.header\"\n :class=\"ns.be('suggestion', 'header')\"\n @click.stop\n >\n <slot name=\"header\" />\n </div>\n <el-scrollbar\n :id=\"listboxId\"\n tag=\"ul\"\n :wrap-class=\"ns.be('suggestion', 'wrap')\"\n :view-class=\"ns.be('suggestion', 'list')\"\n role=\"listbox\"\n >\n <li v-if=\"suggestionLoading\">\n <slot name=\"loading\">\n <el-icon :class=\"ns.is('loading')\">\n <Loading />\n </el-icon>\n </slot>\n </li>\n <template v-else>\n <li\n v-for=\"(item, index) in suggestions\"\n :id=\"`${listboxId}-item-${index}`\"\n :key=\"index\"\n :class=\"{ highlighted: highlightedIndex === index }\"\n role=\"option\"\n :aria-selected=\"highlightedIndex === index\"\n @click=\"handleSelect(item)\"\n >\n <slot :item=\"item\">{{ item[valueKey] }}</slot>\n </li>\n </template>\n </el-scrollbar>\n <div\n v-if=\"$slots.footer\"\n :class=\"ns.be('suggestion', 'footer')\"\n @click.stop\n >\n <slot name=\"footer\" />\n </div>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script\n lang=\"ts\"\n setup\n generic=\"T extends AutocompleteDataItem = AutocompleteDataItem\"\n>\nimport {\n computed,\n mergeProps,\n onBeforeUnmount,\n onMounted,\n ref,\n useAttrs as useRawAttrs,\n} from 'vue'\nimport { pick } from 'lodash-unified'\nimport { onClickOutside, useDebounceFn } from '@vueuse/core'\nimport { Loading } from '@element-plus/icons-vue'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport { NOOP, getEventCode, isArray, throwError } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElInput, { inputPropsDefaults } from '@element-plus/components/input'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElIcon from '@element-plus/components/icon'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { autocompleteEmits } from './autocomplete'\n\nimport type {\n AutocompleteData,\n AutocompleteDataItem,\n AutocompleteProps,\n} from './autocomplete'\nimport type { Ref, StyleValue } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { InputInstance } from '@element-plus/components/input'\n\nconst COMPONENT_NAME = 'ElAutocomplete'\ndefineOptions({\n name: COMPONENT_NAME,\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<AutocompleteProps<T>>(), {\n ...inputPropsDefaults,\n valueKey: 'value',\n modelValue: '',\n debounce: 300,\n placement: 'bottom-start',\n fetchSuggestions: NOOP,\n triggerOnFocus: true,\n loopNavigation: true,\n teleported: true,\n showArrow: true,\n popperClass: undefined,\n popperStyle: undefined,\n popperOptions: () => ({}),\n})\nconst emit = defineEmits(autocompleteEmits)\nconst passInputProps = computed(() => {\n const inputProps = ElInput.props ?? []\n const keys = isArray(inputProps) ? inputProps : Object.keys(inputProps)\n return pick(props, keys)\n})\n\nconst rawAttrs = useRawAttrs()\nconst disabled = useFormDisabled()\nconst ns = useNamespace('autocomplete')\n\nconst inputRef = ref<InputInstance>()\nconst regionRef = ref<HTMLElement>()\nconst popperRef = ref<TooltipInstance>()\nconst listboxRef = ref<HTMLElement>()\n\nlet readonly = false\nlet ignoreFocusEvent = false\nconst suggestions = ref([]) as Ref<AutocompleteData<T>>\nconst highlightedIndex = ref(-1)\nconst dropdownWidth = ref('')\nconst activated = ref(false)\nconst suggestionDisabled = ref(false)\nconst loading = ref(false)\n\nconst listboxId = useId()\nconst styles = computed(() => rawAttrs.style as StyleValue)\n\nconst suggestionVisible = computed(() => {\n const isValidData = suggestions.value.length > 0\n return (isValidData || loading.value) && activated.value\n})\n\nconst suggestionLoading = computed(() => !props.hideLoading && loading.value)\n\nconst refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n return Array.from<HTMLInputElement>(\n inputRef.value.$el.querySelectorAll('input')\n )\n }\n return []\n})\n\nconst onSuggestionShow = () => {\n if (suggestionVisible.value) {\n dropdownWidth.value = `${inputRef.value!.$el.offsetWidth}px`\n }\n}\n\nconst onHide = () => {\n highlightedIndex.value = -1\n}\n\nconst getData = async (queryString: string) => {\n if (suggestionDisabled.value) return\n\n const cb = (suggestionList: AutocompleteData<T>) => {\n loading.value = false\n if (suggestionDisabled.value) return\n\n if (isArray(suggestionList)) {\n suggestions.value = suggestionList\n highlightedIndex.value = props.highlightFirstItem ? 0 : -1\n } else {\n throwError(COMPONENT_NAME, 'autocomplete suggestions must be an array')\n }\n }\n\n loading.value = true\n if (isArray(props.fetchSuggestions)) {\n cb(props.fetchSuggestions)\n } else {\n const result = await props.fetchSuggestions(queryString, cb)\n if (isArray(result)) cb(result)\n }\n}\n\nconst debounce = computed(() => props.debounce)\nconst debouncedGetData = useDebounceFn(getData, debounce)\n\nconst handleInput = (value: string) => {\n const valuePresented = !!value\n\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n\n suggestionDisabled.value = false\n activated.value ||= valuePresented\n\n if (!props.triggerOnFocus && !value) {\n suggestionDisabled.value = true\n suggestions.value = []\n return\n }\n\n debouncedGetData(value)\n}\n\nconst handleMouseDown = (event: MouseEvent) => {\n if (disabled.value) return\n if (\n (event.target as HTMLElement)?.tagName !== 'INPUT' ||\n refInput.value.includes(document.activeElement as HTMLInputElement)\n ) {\n activated.value = true\n }\n}\n\nconst handleChange = (value: string | number) => {\n emit(CHANGE_EVENT, value)\n}\n\nconst handleFocus = (evt: FocusEvent) => {\n if (!ignoreFocusEvent) {\n activated.value = true\n emit('focus', evt)\n const queryString = props.modelValue ?? ''\n if (props.triggerOnFocus && !readonly) {\n debouncedGetData(String(queryString))\n }\n } else {\n ignoreFocusEvent = false\n }\n}\n\nconst handleBlur = (evt: FocusEvent) => {\n setTimeout(() => {\n // validate current focus event is inside el-tooltip-content\n // if so, ignore the blur event and the next focus event\n if (popperRef.value?.isFocusInsideContent()) {\n ignoreFocusEvent = true\n return\n }\n activated.value && close()\n emit('blur', evt)\n })\n}\n\nconst handleClear = () => {\n activated.value = false\n emit(UPDATE_MODEL_EVENT, '')\n emit('clear')\n}\n\nconst handleKeyEnter = async () => {\n if (inputRef.value?.isComposing) {\n return\n }\n\n if (\n suggestionVisible.value &&\n highlightedIndex.value >= 0 &&\n highlightedIndex.value < suggestions.value.length\n ) {\n handleSelect(suggestions.value[highlightedIndex.value])\n } else {\n if (props.selectWhenUnmatched) {\n emit('select', { value: props.modelValue })\n suggestions.value = []\n highlightedIndex.value = -1\n }\n activated.value = true\n debouncedGetData(String(props.modelValue))\n }\n}\n\nconst handleKeyEscape = (evt: Event) => {\n if (suggestionVisible.value) {\n evt.preventDefault()\n evt.stopPropagation()\n close()\n }\n}\n\nconst close = () => {\n activated.value = false\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nconst handleSelect = async (item: T) => {\n emit(INPUT_EVENT, item[props.valueKey])\n emit(UPDATE_MODEL_EVENT, item[props.valueKey])\n emit('select', item)\n suggestions.value = []\n highlightedIndex.value = -1\n}\n\nconst highlight = (index: number) => {\n if (!suggestionVisible.value || loading.value) return\n\n if (index < 0) {\n if (!props.loopNavigation) {\n highlightedIndex.value = -1\n return\n }\n index = suggestions.value.length - 1\n }\n\n if (index >= suggestions.value.length) {\n index = props.loopNavigation ? 0 : suggestions.value.length - 1\n }\n const [suggestion, suggestionList] = getSuggestionContext()\n const highlightItem = suggestionList[index]\n const scrollTop = suggestion.scrollTop\n const { offsetTop, scrollHeight } = highlightItem\n\n if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {\n suggestion.scrollTop = offsetTop + scrollHeight - suggestion.clientHeight\n }\n if (offsetTop < scrollTop) {\n suggestion.scrollTop = offsetTop\n }\n highlightedIndex.value = index\n inputRef.value?.ref?.setAttribute(\n 'aria-activedescendant',\n `${listboxId.value}-item-${highlightedIndex.value}`\n )\n}\nconst getSuggestionContext = () => {\n const suggestion = regionRef.value!.querySelector(\n `.${ns.be('suggestion', 'wrap')}`\n )!\n const suggestionList = suggestion.querySelectorAll<HTMLElement>(\n `.${ns.be('suggestion', 'list')} li`\n )\n return [suggestion, suggestionList] as const\n}\n\nconst stopHandle = onClickOutside(listboxRef, (event: FocusEvent) => {\n // Prevent closing if focus is inside popper content\n if (popperRef.value?.isFocusInsideContent()) return\n const hadIgnoredFocus = ignoreFocusEvent\n ignoreFocusEvent = false\n if (!suggestionVisible.value) return\n if (hadIgnoredFocus) {\n handleBlur(new FocusEvent('blur', event))\n } else {\n close()\n }\n})\n\nconst handleKeydown = (e: KeyboardEvent | Event) => {\n const code = getEventCode(e as KeyboardEvent)\n switch (code) {\n case EVENT_CODE.up:\n e.preventDefault()\n highlight(highlightedIndex.value - 1)\n break\n case EVENT_CODE.down:\n e.preventDefault()\n highlight(highlightedIndex.value + 1)\n break\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n e.preventDefault()\n handleKeyEnter()\n break\n case EVENT_CODE.tab:\n close()\n break\n case EVENT_CODE.esc:\n handleKeyEscape(e)\n break\n case EVENT_CODE.home:\n e.preventDefault()\n highlight(0)\n break\n case EVENT_CODE.end:\n e.preventDefault()\n highlight(suggestions.value.length - 1)\n break\n case EVENT_CODE.pageUp:\n e.preventDefault()\n highlight(Math.max(0, highlightedIndex.value - 10))\n break\n case EVENT_CODE.pageDown:\n e.preventDefault()\n highlight(\n Math.min(suggestions.value.length - 1, highlightedIndex.value + 10)\n )\n break\n }\n}\n\nonBeforeUnmount(() => {\n stopHandle?.()\n})\n\nonMounted(() => {\n const inputElement = inputRef.value?.ref\n if (!inputElement) return\n ;[\n { key: 'role', value: 'textbox' },\n { key: 'aria-autocomplete', value: 'list' },\n { key: 'aria-controls', value: listboxId.value },\n {\n key: 'aria-activedescendant',\n value: `${listboxId.value}-item-${highlightedIndex.value}`,\n },\n ].forEach(({ key, value }) => inputElement.setAttribute(key, value))\n // get readonly attr\n readonly = inputElement.hasAttribute('readonly')\n})\n\ndefineExpose({\n /** @description the index of the currently highlighted item */\n highlightedIndex,\n /** @description autocomplete whether activated */\n activated,\n /** @description remote search loading status */\n loading,\n /** @description el-input component instance */\n inputRef,\n /** @description el-tooltip component instance */\n popperRef,\n /** @description fetch suggestions result */\n suggestions,\n /** @description triggers when a suggestion is clicked */\n handleSelect,\n /** @description handle keyboard enter event */\n handleKeyEnter,\n /** @description focus the input element */\n focus,\n /** @description blur the input element */\n blur,\n /** @description close suggestion */\n close,\n /** @description highlight an item in a suggestion */\n highlight,\n /** @description loading suggestion list */\n getData,\n})\n</script>\n"],"mappings":""}
@@ -1,4 +1,5 @@
1
- import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
1
+ import { EpPropFinalized } from "../../../utils/vue/props/types.js";
2
+ import { ClassValue } from "../../../utils/typescript.js";
2
3
  import { PopperEffect } from "../../popper/src/popper.js";
3
4
  import { Placement } from "../../popper/index.js";
4
5
  import * as _$vue from "vue";
@@ -18,7 +19,7 @@ declare const avatarGroupProps: {
18
19
  * @description control the shape of avatars in this avatar-group
19
20
  */
20
21
  readonly shape: {
21
- readonly type: _$vue.PropType<"circle" | "square" | undefined>;
22
+ readonly type: _$vue.PropType<"square" | "circle" | undefined>;
22
23
  readonly values: readonly ["circle", "square"];
23
24
  };
24
25
  /**
@@ -54,108 +55,7 @@ declare const avatarGroupProps: {
54
55
  /**
55
56
  * @description custom class name for tooltip
56
57
  */
57
- readonly popperClass: {
58
- readonly type: _$vue.PropType<EpPropMergeType<(new (...args: any[]) => string | {
59
- [x: string]: boolean;
60
- } | (string | {
61
- [x: string]: boolean;
62
- } | (string | {
63
- [x: string]: boolean;
64
- } | (string | {
65
- [x: string]: boolean;
66
- } | (string | {
67
- [x: string]: boolean;
68
- } | (string | {
69
- [x: string]: boolean;
70
- } | (string | {
71
- [x: string]: boolean;
72
- } | (string | {
73
- [x: string]: boolean;
74
- } | (string | {
75
- [x: string]: boolean;
76
- } | (string | {
77
- [x: string]: boolean;
78
- } | (string | {
79
- [x: string]: boolean;
80
- } | (string | {
81
- [x: string]: boolean;
82
- } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
83
- [x: string]: boolean;
84
- } | (string | {
85
- [x: string]: boolean;
86
- } | (string | {
87
- [x: string]: boolean;
88
- } | (string | {
89
- [x: string]: boolean;
90
- } | (string | {
91
- [x: string]: boolean;
92
- } | (string | {
93
- [x: string]: boolean;
94
- } | (string | {
95
- [x: string]: boolean;
96
- } | (string | {
97
- [x: string]: boolean;
98
- } | (string | {
99
- [x: string]: boolean;
100
- } | (string | {
101
- [x: string]: boolean;
102
- } | (string | {
103
- [x: string]: boolean;
104
- } | (string | {
105
- [x: string]: boolean;
106
- } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[]) | (((new (...args: any[]) => string | {
107
- [x: string]: boolean;
108
- } | (string | {
109
- [x: string]: boolean;
110
- } | (string | {
111
- [x: string]: boolean;
112
- } | (string | {
113
- [x: string]: boolean;
114
- } | (string | {
115
- [x: string]: boolean;
116
- } | (string | {
117
- [x: string]: boolean;
118
- } | (string | {
119
- [x: string]: boolean;
120
- } | (string | {
121
- [x: string]: boolean;
122
- } | (string | {
123
- [x: string]: boolean;
124
- } | (string | {
125
- [x: string]: boolean;
126
- } | (string | {
127
- [x: string]: boolean;
128
- } | (string | {
129
- [x: string]: boolean;
130
- } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
131
- [x: string]: boolean;
132
- } | (string | {
133
- [x: string]: boolean;
134
- } | (string | {
135
- [x: string]: boolean;
136
- } | (string | {
137
- [x: string]: boolean;
138
- } | (string | {
139
- [x: string]: boolean;
140
- } | (string | {
141
- [x: string]: boolean;
142
- } | (string | {
143
- [x: string]: boolean;
144
- } | (string | {
145
- [x: string]: boolean;
146
- } | (string | {
147
- [x: string]: boolean;
148
- } | (string | {
149
- [x: string]: boolean;
150
- } | (string | {
151
- [x: string]: boolean;
152
- } | (string | {
153
- [x: string]: boolean;
154
- } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[])) | null)[], unknown, unknown>>;
155
- readonly required: false;
156
- readonly validator: ((val: unknown) => boolean) | undefined;
157
- __epPropKey: true;
158
- };
58
+ readonly popperClass: EpPropFinalized<(new (...args: any[]) => string | false | Record<string, any> | ClassValue[]) | (() => ClassValue) | (((new (...args: any[]) => string | false | Record<string, any> | ClassValue[]) | (() => ClassValue)) | null)[], unknown, unknown, undefined, boolean>;
159
59
  /**
160
60
  * @description custom style for tooltip
161
61
  */
@@ -163,7 +63,10 @@ declare const avatarGroupProps: {
163
63
  /**
164
64
  * @description custom class name for the collapse-avatar
165
65
  */
166
- readonly collapseClass: StringConstructor;
66
+ readonly collapseClass: {
67
+ readonly type: _$vue.PropType<ClassValue>;
68
+ readonly default: undefined;
69
+ };
167
70
  /**
168
71
  * @description custom style for the collapse-avatar
169
72
  */
@@ -63,7 +63,15 @@ const avatarGroupProps = {
63
63
  /**
64
64
  * @description custom class name for the collapse-avatar
65
65
  */
66
- collapseClass: String,
66
+ collapseClass: {
67
+ type: require_runtime$1.definePropType([
68
+ String,
69
+ Array,
70
+ Object,
71
+ Boolean
72
+ ]),
73
+ default: void 0
74
+ },
67
75
  /**
68
76
  * @description custom style for the collapse-avatar
69
77
  */
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-group-props.js","names":["definePropType","componentSizes","isNumber","placements","useTooltipContentProps"],"sources":["../../../../../../packages/components/avatar/src/avatar-group-props.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport { definePropType, isNumber } from '@element-plus/utils'\nimport { componentSizes } from '@element-plus/constants'\n\nimport type { AvatarProps } from './avatar'\nimport type { ExtractPropTypes, ExtractPublicPropTypes, StyleValue } from 'vue'\nimport type { Placement, PopperEffect } from '@element-plus/components/popper'\n\nexport const avatarGroupProps = {\n /**\n * @description control the size of avatars in this avatar-group\n */\n size: {\n type: definePropType<AvatarProps['size']>([Number, String]),\n values: componentSizes,\n validator: (val: unknown): val is number => isNumber(val),\n },\n /**\n * @description control the shape of avatars in this avatar-group\n */\n shape: {\n type: definePropType<AvatarProps['shape']>(String),\n values: ['circle', 'square'] as const,\n },\n /**\n * @description whether to collapse avatars\n */\n collapseAvatars: Boolean,\n /**\n * @description whether show all collapsed avatars when mouse hover text of the collapse-avatar. To use this, `collapse-avatars` must be true\n */\n collapseAvatarsTooltip: Boolean,\n /**\n * @description the max avatars number to be shown. To use this, `collapse-avatars` must be true\n */\n maxCollapseAvatars: {\n type: Number,\n default: 1,\n },\n /**\n * @description tooltip theme, built-in theme: `dark` / `light`\n */\n effect: {\n type: definePropType<PopperEffect>(String),\n default: 'light',\n },\n /**\n * @description placement of tooltip\n */\n placement: {\n type: definePropType<Placement>(String),\n values: placements,\n default: 'top',\n },\n /**\n * @description custom class name for tooltip\n */\n popperClass: useTooltipContentProps.popperClass,\n /**\n * @description custom style for tooltip\n */\n popperStyle: useTooltipContentProps.popperStyle,\n /**\n * @description custom class name for the collapse-avatar\n */\n collapseClass: String,\n /**\n * @description custom style for the collapse-avatar\n */\n collapseStyle: {\n type: definePropType<StyleValue>([String, Array, Object, Boolean]),\n default: undefined,\n },\n} as const\nexport type AvatarGroupProps = ExtractPropTypes<typeof avatarGroupProps>\nexport type AvatarGroupPropsPublic = ExtractPublicPropTypes<\n typeof avatarGroupProps\n>\n"],"mappings":";;;;;;;;AASA,MAAa,mBAAmB;;;;CAI9B,MAAM;EACJ,MAAMA,kBAAAA,eAAoC,CAAC,QAAQ,OAAO,CAAC;EAC3D,QAAQC,aAAAA;EACR,YAAY,QAAgCC,cAAAA,SAAS,IAAI;EAC1D;;;;CAID,OAAO;EACL,MAAMF,kBAAAA,eAAqC,OAAO;EAClD,QAAQ,CAAC,UAAU,SAAS;EAC7B;;;;CAID,iBAAiB;;;;CAIjB,wBAAwB;;;;CAIxB,oBAAoB;EAClB,MAAM;EACN,SAAS;EACV;;;;CAID,QAAQ;EACN,MAAMA,kBAAAA,eAA6B,OAAO;EAC1C,SAAS;EACV;;;;CAID,WAAW;EACT,MAAMA,kBAAAA,eAA0B,OAAO;EACvC,QAAQG,eAAAA;EACR,SAAS;EACV;;;;CAID,aAAaC,gBAAAA,uBAAuB;;;;CAIpC,aAAaA,gBAAAA,uBAAuB;;;;CAIpC,eAAe;;;;CAIf,eAAe;EACb,MAAMJ,kBAAAA,eAA2B;GAAC;GAAQ;GAAO;GAAQ;GAAQ,CAAC;EAClE,SAAS,KAAA;EACV;CACF"}
1
+ {"version":3,"file":"avatar-group-props.js","names":["definePropType","componentSizes","isNumber","placements","useTooltipContentProps"],"sources":["../../../../../../packages/components/avatar/src/avatar-group-props.ts"],"sourcesContent":["import { placements } from '@popperjs/core'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport { definePropType, isNumber } from '@element-plus/utils'\nimport { componentSizes } from '@element-plus/constants'\n\nimport type { AvatarProps } from './avatar'\nimport type { ExtractPropTypes, ExtractPublicPropTypes, StyleValue } from 'vue'\nimport type { Placement, PopperEffect } from '@element-plus/components/popper'\nimport type { ClassValue } from '@element-plus/utils'\n\nexport const avatarGroupProps = {\n /**\n * @description control the size of avatars in this avatar-group\n */\n size: {\n type: definePropType<AvatarProps['size']>([Number, String]),\n values: componentSizes,\n validator: (val: unknown): val is number => isNumber(val),\n },\n /**\n * @description control the shape of avatars in this avatar-group\n */\n shape: {\n type: definePropType<AvatarProps['shape']>(String),\n values: ['circle', 'square'] as const,\n },\n /**\n * @description whether to collapse avatars\n */\n collapseAvatars: Boolean,\n /**\n * @description whether show all collapsed avatars when mouse hover text of the collapse-avatar. To use this, `collapse-avatars` must be true\n */\n collapseAvatarsTooltip: Boolean,\n /**\n * @description the max avatars number to be shown. To use this, `collapse-avatars` must be true\n */\n maxCollapseAvatars: {\n type: Number,\n default: 1,\n },\n /**\n * @description tooltip theme, built-in theme: `dark` / `light`\n */\n effect: {\n type: definePropType<PopperEffect>(String),\n default: 'light',\n },\n /**\n * @description placement of tooltip\n */\n placement: {\n type: definePropType<Placement>(String),\n values: placements,\n default: 'top',\n },\n /**\n * @description custom class name for tooltip\n */\n popperClass: useTooltipContentProps.popperClass,\n /**\n * @description custom style for tooltip\n */\n popperStyle: useTooltipContentProps.popperStyle,\n /**\n * @description custom class name for the collapse-avatar\n */\n collapseClass: {\n type: definePropType<ClassValue>([String, Array, Object, Boolean]),\n default: undefined,\n },\n /**\n * @description custom style for the collapse-avatar\n */\n collapseStyle: {\n type: definePropType<StyleValue>([String, Array, Object, Boolean]),\n default: undefined,\n },\n} as const\nexport type AvatarGroupProps = ExtractPropTypes<typeof avatarGroupProps>\nexport type AvatarGroupPropsPublic = ExtractPublicPropTypes<\n typeof avatarGroupProps\n>\n"],"mappings":";;;;;;;;AAUA,MAAa,mBAAmB;;;;CAI9B,MAAM;EACJ,MAAMA,kBAAAA,eAAoC,CAAC,QAAQ,OAAO,CAAC;EAC3D,QAAQC,aAAAA;EACR,YAAY,QAAgCC,cAAAA,SAAS,IAAI;EAC1D;;;;CAID,OAAO;EACL,MAAMF,kBAAAA,eAAqC,OAAO;EAClD,QAAQ,CAAC,UAAU,SAAS;EAC7B;;;;CAID,iBAAiB;;;;CAIjB,wBAAwB;;;;CAIxB,oBAAoB;EAClB,MAAM;EACN,SAAS;EACV;;;;CAID,QAAQ;EACN,MAAMA,kBAAAA,eAA6B,OAAO;EAC1C,SAAS;EACV;;;;CAID,WAAW;EACT,MAAMA,kBAAAA,eAA0B,OAAO;EACvC,QAAQG,eAAAA;EACR,SAAS;EACV;;;;CAID,aAAaC,gBAAAA,uBAAuB;;;;CAIpC,aAAaA,gBAAAA,uBAAuB;;;;CAIpC,eAAe;EACb,MAAMJ,kBAAAA,eAA2B;GAAC;GAAQ;GAAO;GAAQ;GAAQ,CAAC;EAClE,SAAS,KAAA;EACV;;;;CAID,eAAe;EACb,MAAMA,kBAAAA,eAA2B;GAAC;GAAQ;GAAO;GAAQ;GAAQ,CAAC;EAClE,SAAS,KAAA;EACV;CACF"}