@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":"cascader2.mjs","names":[],"sources":["../../../../../../packages/components/cascader/src/cascader.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n :visible=\"popperVisible\"\n :teleported=\"teleported\"\n :popper-class=\"[nsCascader.e('dropdown'), popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"fallbackPlacements\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n :placement=\"placement\"\n :transition=\"`${nsCascader.namespace.value}-zoom-in-top`\"\n :effect=\"effect\"\n pure\n :persistent=\"persistent\"\n @hide=\"hideSuggestionPanel\"\n >\n <template #default>\n <div\n ref=\"wrapperRef\"\n v-clickoutside:[contentRef]=\"handleClickOutside\"\n :class=\"cascaderKls\"\n :style=\"cascaderStyle\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"inputRef\"\n v-model=\"inputValue\"\n :placeholder=\"currentPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"inputClass\"\n :tabindex=\"multiple && filterable && !isDisabled ? -1 : undefined\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @input=\"handleInput\"\n >\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\" />\n </template>\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n :class=\"[nsInput.e('icon'), 'icon-circle-close']\"\n @click.stop=\"handleClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"cascaderIconKls\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div\n v-if=\"multiple\"\n ref=\"tagWrapper\"\n :class=\"[\n nsCascader.e('tags'),\n nsCascader.is('validate', Boolean(validateState)),\n ]\"\n >\n <slot name=\"tag\" :data=\"tags\" :delete-tag=\"deleteTag\">\n <el-tag\n v-for=\"tag in showTagList\"\n :key=\"tag.key\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :effect=\"tagEffect\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <span>{{ tag.text }}</span>\n </el-tag>\n </slot>\n <el-tooltip\n v-if=\"collapseTags && tags.length > maxCollapseTags\"\n ref=\"tagTooltipRef\"\n :disabled=\"popperVisible || !collapseTagsTooltip\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n placement=\"bottom\"\n :popper-class=\"popperClass\"\n :popper-style=\"popperStyle\"\n :effect=\"effect\"\n :persistent=\"persistent\"\n >\n <template #default>\n <el-tag\n :closable=\"false\"\n :size=\"tagSize\"\n :type=\"tagType\"\n :effect=\"tagEffect\"\n disable-transitions\n >\n <span :class=\"nsCascader.e('tags-text')\">\n + {{ tags.length - maxCollapseTags }}\n </span>\n </el-tag>\n </template>\n <template #content>\n <el-scrollbar :max-height=\"maxCollapseTagsTooltipHeight\">\n <div :class=\"nsCascader.e('collapse-tags')\">\n <div\n v-for=\"(tag, idx) in collapseTagList\"\n :key=\"idx\"\n :class=\"nsCascader.e('collapse-tag')\"\n >\n <el-tag\n :key=\"tag.key\"\n class=\"in-tooltip\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :effect=\"tagEffect\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <span>{{ tag.text }}</span>\n </el-tag>\n </div>\n </div>\n </el-scrollbar>\n </template>\n </el-tooltip>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model=\"searchInputValue\"\n type=\"text\"\n :class=\"nsCascader.e('search-input')\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e as InputEvent)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n />\n </div>\n </div>\n </template>\n\n <template #content>\n <div v-if=\"$slots.header\" :class=\"nsCascader.e('header')\" @click.stop>\n <slot name=\"header\" />\n </div>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"cascaderPanelRef\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props.props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n :virtual-scroll=\"virtualScroll\"\n :item-size=\"itemSize\"\n :height=\"height\"\n @expand-change=\"handleExpandChange\"\n @close=\"$nextTick(() => togglePopperVisible(false))\"\n >\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </el-cascader-panel>\n <template v-if=\"filterable\">\n <el-scrollbar\n v-if=\"!virtualScroll\"\n v-show=\"filtering\"\n :ref=\"(ref) => (suggestionPanel = (ref as ScrollbarInstance)?.$el)\"\n tag=\"ul\"\n :class=\"nsCascader.e('suggestion-panel')\"\n :wrap-class=\"nsCascader.e('suggestion-wrap')\"\n :view-class=\"nsCascader.e('suggestion-list')\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n nsCascader.e('suggestion-item'),\n nsCascader.is('checked', item.checked),\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <slot name=\"suggestion-item\" :item=\"item\">\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\">\n <check />\n </el-icon>\n </slot>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li :class=\"nsCascader.e('empty-text')\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n <div\n v-else\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n :class=\"nsCascader.e('suggestion-panel')\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <el-fixed-size-list\n v-show=\"suggestions.length\"\n ref=\"suggestionVirtualListRef\"\n :height=\"clampedSuggestionListHeight\"\n :item-size=\"itemSize\"\n :data=\"suggestions\"\n :total=\"suggestions.length\"\n :class-name=\"nsCascader.e('suggestion-list')\"\n inner-element=\"ul\"\n :inner-width=\"suggestionListWidth\"\n >\n <template #default=\"{ data, index, style }\">\n <li\n :id=\"`suggestion-${data[index].uid}`\"\n :key=\"data[index].uid\"\n :data-suggestion-index=\"index\"\n :class=\"[\n nsCascader.e('suggestion-item'),\n nsCascader.is('checked', data[index].checked),\n ]\"\n :tabindex=\"-1\"\n :style=\"style\"\n @click=\"handleSuggestionClick(data[index])\"\n >\n <slot name=\"suggestion-item\" :item=\"data[index]\">\n <span>{{ data[index].text }}</span>\n <el-icon v-if=\"data[index].checked\">\n <check />\n </el-icon>\n </slot>\n </li>\n </template>\n </el-fixed-size-list>\n <slot v-if=\"!suggestions.length\" name=\"empty\">\n <ul :class=\"nsCascader.e('suggestion-list')\">\n <li :class=\"nsCascader.e('empty-text')\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </ul>\n </slot>\n </div>\n </template>\n <div v-if=\"$slots.footer\" :class=\"nsCascader.e('footer')\" @click.stop>\n <slot name=\"footer\" />\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n markRaw,\n nextTick,\n onMounted,\n ref,\n useAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { clamp, cloneDeep } from 'lodash-unified'\nimport { useCssVar, useDebounceFn, useResizeObserver } from '@vueuse/core'\nimport {\n NOOP,\n focusNode,\n getEventCode,\n getSibling,\n isClient,\n isNumber,\n isPromise,\n} from '@element-plus/utils'\nimport ElCascaderPanel, {\n CASCADER_PANEL_HEIGHT,\n CASCADER_PANEL_ITEM_SIZE,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport { FixedSizeList as ElFixedSizeList } from '@element-plus/components/virtual-list'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport {\n useFormDisabled,\n useFormItem,\n useFormSize,\n} from '@element-plus/components/form'\nimport { ClickOutside as vClickoutside } from '@element-plus/directives'\nimport {\n useComposition,\n useEmptyValues,\n useFocusController,\n useLocale,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { ArrowDown, Check, CircleClose } from '@element-plus/icons-vue'\nimport { cascaderEmits } from './cascader'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, StyleValue } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { ScrollbarInstance } from '@element-plus/components/scrollbar'\nimport type { FixedSizeListInstance } from '@element-plus/components/virtual-list'\nimport type {\n CascaderNode,\n CascaderPanelInstance,\n CascaderValue,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { CascaderComponentProps } from './cascader'\n\nconst SUGGESTION_ITEM_EXTRA_WIDTH = 34 // span margin-right (10px) + check icon width (24px)\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state\n if (['right', 'left', 'bottom', 'top'].includes(placement)) return\n if (modifiersData.arrow) {\n modifiersData.arrow.x = 35\n }\n },\n requires: ['arrow'],\n },\n ],\n}\n\ndefineOptions({\n name: 'ElCascader',\n})\n\nconst props = withDefaults(defineProps<CascaderComponentProps>(), {\n options: () => [],\n props: () => ({}),\n disabled: undefined,\n clearIcon: markRaw(CircleClose),\n filterMethod: (node, keyword) => node.text.includes(keyword),\n separator: ' / ',\n showAllLevels: true,\n maxCollapseTags: 1,\n debounce: 300,\n beforeFilter: () => true,\n placement: 'bottom-start',\n fallbackPlacements: () => [\n 'bottom-start',\n 'bottom',\n 'top-start',\n 'top',\n 'right',\n 'left',\n ],\n teleported: true,\n effect: 'light',\n tagType: 'info',\n tagEffect: 'light',\n validateEvent: true,\n persistent: true,\n showCheckedStrategy: 'child',\n showPrefix: true,\n popperStyle: undefined,\n valueOnClear: undefined,\n itemSize: CASCADER_PANEL_ITEM_SIZE,\n height: CASCADER_PANEL_HEIGHT,\n})\nconst emit = defineEmits(cascaderEmits)\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nlet inputInitialHeight = 0\nlet pressDeleteCount = 0\n\nconst nsCascader = useNamespace('cascader')\nconst nsInput = useNamespace('input')\nconst sizeMapPadding = {\n small: 7,\n default: 11,\n large: 15,\n}\n\nconst { t } = useLocale()\nconst { formItem } = useFormItem()\nconst isDisabled = useFormDisabled()\nconst { valueOnClear } = useEmptyValues(props)\nconst { isComposing, handleComposition } = useComposition({\n afterComposition(event) {\n const text = (event.target as HTMLInputElement)?.value\n handleInput(text)\n },\n})\n\nconst tooltipRef = ref<TooltipInstance>()\nconst tagTooltipRef = ref<TooltipInstance>()\nconst inputRef = ref<InputInstance>()\nconst tagWrapper = ref<HTMLDivElement>()\nconst cascaderPanelRef = ref<CascaderPanelInstance>()\nconst suggestionPanel = ref<HTMLElement>()\nconst suggestionVirtualListRef = ref<FixedSizeListInstance>()\nconst popperVisible = ref(false)\nconst inputHover = ref(false)\nconst filtering = ref(false)\nconst inputValue = ref('')\nconst searchInputValue = ref('')\nconst tags = ref<Tag[]>([])\nconst suggestions = ref<CascaderNode[]>([])\nconst suggestionListWidth = ref<string | number>('100%')\nconst hasCustomSuggestionItemSlot = computed(() => !!slots['suggestion-item'])\nconst clampedSuggestionListHeight = computed(() =>\n clamp(suggestions.value.length * props.itemSize, props.itemSize, props.height)\n)\n\nconst showTagList = computed(() => {\n if (!props.props.multiple) {\n return []\n }\n return props.collapseTags\n ? tags.value.slice(0, props.maxCollapseTags)\n : tags.value\n})\n\nconst collapseTagList = computed(() => {\n if (!props.props.multiple) {\n return []\n }\n return props.collapseTags ? tags.value.slice(props.maxCollapseTags) : []\n})\n\nconst cascaderStyle = computed(() => {\n return attrs.style as StyleValue\n})\n\nconst inputPlaceholder = computed(\n () => props.placeholder ?? t('el.cascader.placeholder')\n)\nconst currentPlaceholder = computed(() =>\n searchInputValue.value || tags.value.length > 0 || isComposing.value\n ? ''\n : inputPlaceholder.value\n)\nconst realSize = useFormSize()\nconst tagSize = computed(() =>\n realSize.value === 'small' ? 'small' : 'default'\n)\nconst multiple = computed(() => !!props.props.multiple)\nconst readonly = computed(() => !props.filterable || multiple.value)\nconst searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n)\nconst checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => cascaderPanelRef.value?.checkedNodes || []\n)\n\nconst { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, {\n disabled: isDisabled,\n beforeBlur(event) {\n return (\n tooltipRef.value?.isFocusInsideContent(event) ||\n tagTooltipRef.value?.isFocusInsideContent(event)\n )\n },\n afterBlur() {\n if (props.validateEvent) {\n formItem?.validate?.('blur').catch(NOOP)\n }\n },\n})\n\nconst clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n (!inputHover.value && !isFocused.value)\n )\n return false\n\n return !!checkedNodes.value.length\n})\nconst presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ''\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n})\n\nconst validateState = computed(() => formItem?.validateState || '')\n\nconst checkedValue = computed<CascaderValue>({\n get() {\n return cloneDeep(props.modelValue) as CascaderValue\n },\n set(val) {\n // https://github.com/element-plus/element-plus/issues/17647\n const value = val ?? valueOnClear.value\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n if (props.validateEvent) {\n formItem?.validate('change').catch(NOOP)\n }\n },\n})\n\nconst cascaderKls = computed(() => {\n return [\n nsCascader.b(),\n nsCascader.m(realSize.value),\n nsCascader.is('disabled', isDisabled.value),\n attrs.class,\n ]\n})\n\nconst cascaderIconKls = computed(() => {\n return [\n nsInput.e('icon'),\n 'icon-arrow-down',\n nsCascader.is('reverse', popperVisible.value),\n ]\n})\n\nconst inputClass = computed(() => nsCascader.is('focus', isFocused.value))\n\nconst contentRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n})\n\nconst handleClickOutside = (event: Event) => {\n if (isFocused.value) {\n const _event = new FocusEvent('blur', event)\n handleBlur(_event)\n }\n togglePopperVisible(false)\n}\n\nconst togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n inputRef.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n cascaderPanelRef.value &&\n nextTick(cascaderPanelRef.value.scrollToExpandingNode)\n } else if (props.filterable) {\n syncPresentTextValue()\n }\n\n emit('visibleChange', visible)\n }\n}\n\nconst updatePopperPosition = () => {\n nextTick(() => {\n tooltipRef.value?.updatePopper()\n })\n}\nconst hideSuggestionPanel = () => {\n filtering.value = false\n}\n\nconst genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n }\n}\n\nconst deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n cascaderPanelRef.value?.calculateCheckedValue()\n emit('removeTag', node.valueByOption)\n}\n\nconst getStrategyCheckedNodes = (): CascaderNode[] => {\n switch (props.showCheckedStrategy) {\n case 'child':\n return checkedNodes.value\n case 'parent': {\n const clickedNodes = getCheckedNodes(false)\n const clickedNodesValue = clickedNodes!.map((o) => o.value)\n const parentNodes = clickedNodes!.filter(\n (o) => !o.parent || !clickedNodesValue.includes(o.parent.value)\n )\n return parentNodes\n }\n default:\n return []\n }\n}\n\nconst calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = getStrategyCheckedNodes()\n\n const allTags: Tag[] = []\n nodes.forEach((node) => allTags.push(genTag(node)))\n tags.value = allTags\n}\n\nconst calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = cascaderPanelRef.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n tags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n nextTick(() => {\n if (props.virtualScroll && suggestions.value.length > 0) {\n suggestionVirtualListRef.value?.scrollToItem(0)\n }\n updateStyle()\n })\n updatePopperPosition()\n}\n\nconst getSuggestionPanelEl = (selector?: string): HTMLElement | undefined => {\n const el = suggestionPanel.value\n return selector ? (el?.querySelector(selector) ?? undefined) : el\n}\n\nconst focusFirstNode = () => {\n let firstNode: HTMLElement | undefined\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = getSuggestionPanelEl(`.${nsCascader.e('suggestion-item')}`)\n } else {\n firstNode = cascaderPanelRef.value?.$el.querySelector(\n `.${nsCascader.b('node')}[tabindex=\"-1\"]`\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n if (\n !filtering.value &&\n firstNode.getAttribute('aria-haspopup') === 'true'\n ) {\n firstNode.click()\n }\n }\n}\n\nconst updateSuggestionPanelWidth = (inputWidth: number) => {\n const suggestionPanelEl = getSuggestionPanelEl()\n if (!suggestionPanelEl) return\n\n const panelWidth = isNumber(props.fitInputWidth)\n ? `${props.fitInputWidth}px`\n : `${inputWidth}px`\n\n const setPanelStyle = (el: HTMLElement) => {\n if (props.fitInputWidth !== false) {\n el.style.width = panelWidth\n el.style.minWidth = ''\n } else {\n el.style.width = ''\n el.style.minWidth = panelWidth\n }\n }\n\n setPanelStyle(suggestionPanelEl)\n\n if (props.virtualScroll) {\n suggestionListWidth.value =\n props.fitInputWidth !== false\n ? panelWidth\n : hasCustomSuggestionItemSlot.value\n ? `${inputWidth}px`\n : `${Math.max(inputWidth, calculateSuggestionMaxWidth())}px`\n return\n }\n\n const suggestionList = getSuggestionPanelEl(\n `.${nsCascader.e('suggestion-list')}`\n )\n if (suggestionList) {\n setPanelStyle(suggestionList)\n }\n}\n\nconst getTagWrapperLeft = () => {\n if (!slots.prefix) return 0\n\n const prefix = inputRef.value?.$el.querySelector(\n `.${nsInput.e('prefix')}`\n ) as HTMLElement | null\n if (!prefix) return 0\n\n const prefixWidth = prefix.getBoundingClientRect().width\n if (prefixWidth <= 0) return 0\n return prefixWidth + sizeMapPadding[realSize.value || 'default']\n}\n\nconst updateStyle = () => {\n const inputInner = inputRef.value?.input\n const inputWrapper = inputRef.value?.$el\n if (!isClient || !inputInner || !inputWrapper) return\n\n if (suggestionPanel.value) {\n updateSuggestionPanelWidth(inputWrapper.getBoundingClientRect().width)\n }\n\n const tagWrapperEl = tagWrapper.value\n if (tagWrapperEl) {\n const height =\n tags.value.length > 0\n ? `${Math.max(tagWrapperEl.offsetHeight, inputInitialHeight) - 2}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n tagWrapperEl.style.left = `${getTagWrapperLeft()}px`\n updatePopperPosition()\n }\n}\n\nconst calculateSuggestionMaxWidth = () => {\n if (hasCustomSuggestionItemSlot.value) return 0\n if (!suggestions.value.length) return 0\n\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n if (!ctx) return 0\n\n const renderedSuggestion = getSuggestionPanelEl(\n `.${nsCascader.e('suggestion-item')}`\n )\n if (!renderedSuggestion || !isClient) return 0\n\n const style = getComputedStyle(renderedSuggestion)\n const padding =\n Number.parseFloat(style.paddingLeft) + Number.parseFloat(style.paddingRight)\n // Use bold font for all items to ensure width is sufficient\n ctx.font = `bold ${style.fontSize} ${style.fontFamily}`\n\n let maxWidth = 0\n let hasChecked = false\n\n for (const suggestion of suggestions.value) {\n const text = suggestion.text || ''\n const metrics = ctx.measureText(text)\n maxWidth = Math.max(maxWidth, metrics.width)\n if (suggestion.checked && !hasChecked) hasChecked = true\n }\n\n return maxWidth + padding + (hasChecked ? SUGGESTION_ITEM_EXTRA_WIDTH : 0)\n}\n\nconst getCheckedNodes = (leafOnly: boolean) => {\n return cascaderPanelRef.value?.getCheckedNodes(leafOnly)\n}\n\nconst handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expandChange', value)\n}\n\nconst handleKeyDown = (e: KeyboardEvent) => {\n if (isComposing.value) return\n const code = getEventCode(e)\n\n switch (code) {\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n if (popperVisible.value === true) {\n e.preventDefault()\n e.stopPropagation()\n togglePopperVisible(false)\n }\n break\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n}\n\nconst handleClear = () => {\n cascaderPanelRef.value?.clearCheckedNodes()\n if (!popperVisible.value && props.filterable) {\n syncPresentTextValue()\n }\n togglePopperVisible(false)\n emit('clear')\n}\n\nconst syncPresentTextValue = () => {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n}\n\nconst handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n cascaderPanelRef.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && cascaderPanelRef.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n}\n\nconst getSuggestionIndexFromTarget = (target: HTMLElement) => {\n const suggestionItem = target.closest<HTMLElement>('[data-suggestion-index]')\n const indexStr = suggestionItem?.dataset.suggestionIndex\n\n if (!indexStr) return -1\n\n const index = Number.parseInt(indexStr, 10)\n if (Number.isNaN(index) || index < 0 || index >= suggestions.value.length) {\n return -1\n }\n\n return index\n}\n\nconst handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const code = getEventCode(e)\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n e.preventDefault()\n const distance = code === EVENT_CODE.up ? -1 : 1\n\n if (props.virtualScroll && suggestionVirtualListRef.value) {\n const currentIndex = getSuggestionIndexFromTarget(target)\n if (currentIndex >= 0) {\n const length = suggestions.value.length\n const targetIndex = (currentIndex + distance + length) % length\n\n suggestionVirtualListRef.value.scrollToItem(targetIndex)\n\n nextTick(() => {\n const targetItem = getSuggestionPanelEl(\n `#suggestion-${suggestions.value[targetIndex].uid}`\n )\n targetItem && focusNode(targetItem)\n })\n return\n }\n }\n\n // use DOM-based navigation\n focusNode(\n getSibling(\n target,\n distance,\n `.${nsCascader.e('suggestion-item')}[tabindex=\"-1\"]`\n ) as HTMLElement\n )\n break\n }\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n target.click()\n break\n }\n}\n\nconst handleDelete = () => {\n const lastTag = tags.value[tags.value.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (\n !lastTag ||\n !pressDeleteCount ||\n (props.collapseTags && tags.value.length > 1)\n )\n return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n}\n\nconst debounce = computed(() => props.debounce)\nconst handleFilter = useDebounceFn(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n}, debounce)\n\nconst handleInput = (val: string, e?: InputEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n if (val) {\n handleFilter()\n } else {\n const passed = props.beforeFilter('')\n if (isPromise(passed)) {\n passed.catch(() => {\n /* prevent log error */\n })\n }\n hideSuggestionPanel()\n }\n}\n\nconst getInputInnerHeight = (inputInner: HTMLElement): number =>\n Number.parseFloat(\n useCssVar(nsInput.cssVarName('input-height'), inputInner).value!\n ) - 2\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nwatch(filtering, updatePopperPosition)\n\nwatch(\n [\n checkedNodes,\n isDisabled,\n () => props.collapseTags,\n () => props.maxCollapseTags,\n ],\n calculatePresentTags\n)\n\nwatch(tags, () => {\n nextTick(() => updateStyle())\n})\n\nwatch(realSize, async () => {\n await nextTick()\n const inputInner = inputRef.value!.input!\n inputInitialHeight = getInputInnerHeight(inputInner) || inputInitialHeight\n updateStyle()\n})\n\nwatch(presentText, syncPresentTextValue, { immediate: true })\n\nwatch(\n () => popperVisible.value,\n (val) => {\n if (val && props.props.lazy && props.props.lazyLoad) {\n cascaderPanelRef.value?.loadLazyRootNodes()\n }\n }\n)\n\nonMounted(() => {\n const inputInner = inputRef.value!.input!\n const inputWrapper = inputRef.value!.$el!\n\n const inputInnerHeight = getInputInnerHeight(inputInner)\n\n inputInitialHeight = inputInner.offsetHeight || inputInnerHeight\n useResizeObserver(inputWrapper, updateStyle)\n})\n\ndefineExpose({\n /**\n * @description get an array of currently selected node,(leafOnly) whether only return the leaf checked nodes, default is `false`\n */\n getCheckedNodes,\n /**\n * @description cascader panel ref\n */\n cascaderPanelRef,\n /**\n * @description toggle the visible of popper\n */\n togglePopperVisible,\n /**\n * @description cascader content ref\n */\n contentRef,\n /**\n * @description selected content text\n */\n presentText,\n /** @description focus the input element */\n focus,\n /** @description blur the input element */\n blur,\n})\n</script>\n"],"mappings":""}
1
+ {"version":3,"file":"cascader2.mjs","names":[],"sources":["../../../../../../packages/components/cascader/src/cascader.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n :visible=\"popperVisible\"\n :teleported=\"teleported\"\n :popper-class=\"[nsCascader.e('dropdown'), popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"fallbackPlacements\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n :placement=\"placement\"\n :transition=\"`${nsCascader.namespace.value}-zoom-in-top`\"\n :effect=\"effect\"\n pure\n :persistent=\"persistent\"\n @hide=\"hideSuggestionPanel\"\n >\n <template #default>\n <div\n ref=\"wrapperRef\"\n v-clickoutside:[contentRef]=\"handleClickOutside\"\n :class=\"cascaderKls\"\n :style=\"cascaderStyle\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"inputRef\"\n v-model=\"inputValue\"\n :placeholder=\"currentPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"inputClass\"\n :tabindex=\"multiple && filterable && !isDisabled ? -1 : undefined\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @input=\"handleInput\"\n >\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\" />\n </template>\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n :class=\"[nsInput.e('icon'), 'icon-circle-close']\"\n @click.stop=\"handleClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"cascaderIconKls\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div\n v-if=\"multiple\"\n ref=\"tagWrapper\"\n :class=\"[\n nsCascader.e('tags'),\n nsCascader.is('validate', Boolean(validateState)),\n ]\"\n >\n <slot name=\"tag\" :data=\"tags\" :delete-tag=\"deleteTag\">\n <el-tag\n v-for=\"tag in showTagList\"\n :key=\"tag.key\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :effect=\"tagEffect\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <span>{{ tag.text }}</span>\n </el-tag>\n </slot>\n <el-tooltip\n v-if=\"collapseTags && tags.length > maxCollapseTags\"\n ref=\"tagTooltipRef\"\n :disabled=\"popperVisible || !collapseTagsTooltip\"\n :fallback-placements=\"['bottom', 'top', 'right', 'left']\"\n placement=\"bottom\"\n :popper-class=\"popperClass\"\n :popper-style=\"popperStyle\"\n :effect=\"effect\"\n :persistent=\"persistent\"\n >\n <template #default>\n <el-tag\n :closable=\"false\"\n :size=\"tagSize\"\n :type=\"tagType\"\n :effect=\"tagEffect\"\n disable-transitions\n >\n <span :class=\"nsCascader.e('tags-text')\">\n + {{ tags.length - maxCollapseTags }}\n </span>\n </el-tag>\n </template>\n <template #content>\n <el-scrollbar :max-height=\"maxCollapseTagsTooltipHeight\">\n <div :class=\"nsCascader.e('collapse-tags')\">\n <div\n v-for=\"(tag, idx) in collapseTagList\"\n :key=\"idx\"\n :class=\"nsCascader.e('collapse-tag')\"\n >\n <el-tag\n :key=\"tag.key\"\n class=\"in-tooltip\"\n :type=\"tagType\"\n :size=\"tagSize\"\n :effect=\"tagEffect\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <span>{{ tag.text }}</span>\n </el-tag>\n </div>\n </div>\n </el-scrollbar>\n </template>\n </el-tooltip>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model=\"searchInputValue\"\n type=\"text\"\n :class=\"nsCascader.e('search-input')\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e as InputEvent)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n />\n </div>\n </div>\n </template>\n\n <template #content>\n <div v-if=\"$slots.header\" :class=\"nsCascader.e('header')\" @click.stop>\n <slot name=\"header\" />\n </div>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"cascaderPanelRef\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props.props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n :virtual-scroll=\"virtualScroll\"\n :item-size=\"itemSize\"\n :height=\"height\"\n @expand-change=\"handleExpandChange\"\n @close=\"$nextTick(() => togglePopperVisible(false))\"\n >\n <template #empty>\n <slot name=\"empty\" />\n </template>\n </el-cascader-panel>\n <template v-if=\"filterable\">\n <el-scrollbar\n v-if=\"!virtualScroll\"\n v-show=\"filtering\"\n :ref=\"(ref) => (suggestionPanel = (ref as ScrollbarInstance)?.$el)\"\n tag=\"ul\"\n :class=\"nsCascader.e('suggestion-panel')\"\n :wrap-class=\"nsCascader.e('suggestion-wrap')\"\n :view-class=\"nsCascader.e('suggestion-list')\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n nsCascader.e('suggestion-item'),\n nsCascader.is('checked', item.checked),\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <slot name=\"suggestion-item\" :item=\"item\">\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\">\n <check />\n </el-icon>\n </slot>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li :class=\"nsCascader.e('empty-text')\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n <div\n v-else\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n :class=\"nsCascader.e('suggestion-panel')\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <el-fixed-size-list\n v-show=\"suggestions.length\"\n ref=\"suggestionVirtualListRef\"\n :height=\"clampedSuggestionListHeight\"\n :item-size=\"itemSize\"\n :data=\"suggestions\"\n :total=\"suggestions.length\"\n :class-name=\"nsCascader.e('suggestion-list')\"\n inner-element=\"ul\"\n :inner-width=\"suggestionListWidth\"\n >\n <template #default=\"{ data, index, style }\">\n <li\n :id=\"`suggestion-${data[index].uid}`\"\n :key=\"data[index].uid\"\n :data-suggestion-index=\"index\"\n :class=\"[\n nsCascader.e('suggestion-item'),\n nsCascader.is('checked', data[index].checked),\n ]\"\n :tabindex=\"-1\"\n :style=\"style\"\n @click=\"handleSuggestionClick(data[index])\"\n >\n <slot name=\"suggestion-item\" :item=\"data[index]\">\n <span>{{ data[index].text }}</span>\n <el-icon v-if=\"data[index].checked\">\n <check />\n </el-icon>\n </slot>\n </li>\n </template>\n </el-fixed-size-list>\n <slot v-if=\"!suggestions.length\" name=\"empty\">\n <ul :class=\"nsCascader.e('suggestion-list')\">\n <li :class=\"nsCascader.e('empty-text')\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </ul>\n </slot>\n </div>\n </template>\n <div v-if=\"$slots.footer\" :class=\"nsCascader.e('footer')\" @click.stop>\n <slot name=\"footer\" />\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n markRaw,\n nextTick,\n onMounted,\n ref,\n useAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport { clamp, cloneDeep } from 'lodash-unified'\nimport { useCssVar, useDebounceFn, useResizeObserver } from '@vueuse/core'\nimport {\n NOOP,\n focusNode,\n getEventCode,\n getSibling,\n isClient,\n isNumber,\n isPromise,\n} from '@element-plus/utils'\nimport ElCascaderPanel, {\n CASCADER_PANEL_HEIGHT,\n CASCADER_PANEL_ITEM_SIZE,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport { FixedSizeList as ElFixedSizeList } from '@element-plus/components/virtual-list'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport {\n useFormDisabled,\n useFormItem,\n useFormSize,\n} from '@element-plus/components/form'\nimport { ClickOutside as vClickoutside } from '@element-plus/directives'\nimport {\n useComposition,\n useEmptyValues,\n useFocusController,\n useLocale,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { ArrowDown, Check, CircleClose } from '@element-plus/icons-vue'\nimport { cascaderEmits } from './cascader'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, StyleValue } from 'vue'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { ScrollbarInstance } from '@element-plus/components/scrollbar'\nimport type { FixedSizeListInstance } from '@element-plus/components/virtual-list'\nimport type {\n CascaderNode,\n CascaderPanelInstance,\n CascaderValue,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { CascaderComponentProps } from './cascader'\n\nconst SUGGESTION_ITEM_EXTRA_WIDTH = 34 // span margin-right (10px) + check icon width (24px)\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state\n if (['right', 'left', 'bottom', 'top'].includes(placement)) return\n if (modifiersData.arrow) {\n modifiersData.arrow.x = 35\n }\n },\n requires: ['arrow'],\n },\n ],\n}\n\ndefineOptions({\n name: 'ElCascader',\n})\n\nconst props = withDefaults(defineProps<CascaderComponentProps>(), {\n options: () => [],\n props: () => ({}),\n disabled: undefined,\n clearIcon: markRaw(CircleClose),\n filterMethod: (node, keyword) => node.text.includes(keyword),\n separator: ' / ',\n showAllLevels: true,\n maxCollapseTags: 1,\n debounce: 300,\n beforeFilter: () => true,\n placement: 'bottom-start',\n fallbackPlacements: () => [\n 'bottom-start',\n 'bottom',\n 'top-start',\n 'top',\n 'right',\n 'left',\n ],\n teleported: true,\n effect: 'light',\n tagType: 'info',\n tagEffect: 'light',\n validateEvent: true,\n persistent: true,\n showCheckedStrategy: 'child',\n showPrefix: true,\n popperClass: undefined,\n popperStyle: undefined,\n valueOnClear: undefined,\n itemSize: CASCADER_PANEL_ITEM_SIZE,\n height: CASCADER_PANEL_HEIGHT,\n})\nconst emit = defineEmits(cascaderEmits)\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nlet inputInitialHeight = 0\nlet pressDeleteCount = 0\n\nconst nsCascader = useNamespace('cascader')\nconst nsInput = useNamespace('input')\nconst sizeMapPadding = {\n small: 7,\n default: 11,\n large: 15,\n}\n\nconst { t } = useLocale()\nconst { formItem } = useFormItem()\nconst isDisabled = useFormDisabled()\nconst { valueOnClear } = useEmptyValues(props)\nconst { isComposing, handleComposition } = useComposition({\n afterComposition(event) {\n const text = (event.target as HTMLInputElement)?.value\n handleInput(text)\n },\n})\n\nconst tooltipRef = ref<TooltipInstance>()\nconst tagTooltipRef = ref<TooltipInstance>()\nconst inputRef = ref<InputInstance>()\nconst tagWrapper = ref<HTMLDivElement>()\nconst cascaderPanelRef = ref<CascaderPanelInstance>()\nconst suggestionPanel = ref<HTMLElement>()\nconst suggestionVirtualListRef = ref<FixedSizeListInstance>()\nconst popperVisible = ref(false)\nconst inputHover = ref(false)\nconst filtering = ref(false)\nconst inputValue = ref('')\nconst searchInputValue = ref('')\nconst tags = ref<Tag[]>([])\nconst suggestions = ref<CascaderNode[]>([])\nconst suggestionListWidth = ref<string | number>('100%')\nconst hasCustomSuggestionItemSlot = computed(() => !!slots['suggestion-item'])\nconst clampedSuggestionListHeight = computed(() =>\n clamp(suggestions.value.length * props.itemSize, props.itemSize, props.height)\n)\n\nconst showTagList = computed(() => {\n if (!props.props.multiple) {\n return []\n }\n return props.collapseTags\n ? tags.value.slice(0, props.maxCollapseTags)\n : tags.value\n})\n\nconst collapseTagList = computed(() => {\n if (!props.props.multiple) {\n return []\n }\n return props.collapseTags ? tags.value.slice(props.maxCollapseTags) : []\n})\n\nconst cascaderStyle = computed(() => {\n return attrs.style as StyleValue\n})\n\nconst inputPlaceholder = computed(\n () => props.placeholder ?? t('el.cascader.placeholder')\n)\nconst currentPlaceholder = computed(() =>\n searchInputValue.value || tags.value.length > 0 || isComposing.value\n ? ''\n : inputPlaceholder.value\n)\nconst realSize = useFormSize()\nconst tagSize = computed(() =>\n realSize.value === 'small' ? 'small' : 'default'\n)\nconst multiple = computed(() => !!props.props.multiple)\nconst readonly = computed(() => !props.filterable || multiple.value)\nconst searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n)\nconst checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => cascaderPanelRef.value?.checkedNodes || []\n)\n\nconst { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, {\n disabled: isDisabled,\n beforeBlur(event) {\n return (\n tooltipRef.value?.isFocusInsideContent(event) ||\n tagTooltipRef.value?.isFocusInsideContent(event)\n )\n },\n afterBlur() {\n if (props.validateEvent) {\n formItem?.validate?.('blur').catch(NOOP)\n }\n },\n})\n\nconst clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n (!inputHover.value && !isFocused.value)\n )\n return false\n\n return !!checkedNodes.value.length\n})\nconst presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ''\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n})\n\nconst validateState = computed(() => formItem?.validateState || '')\n\nconst checkedValue = computed<CascaderValue>({\n get() {\n return cloneDeep(props.modelValue) as CascaderValue\n },\n set(val) {\n // https://github.com/element-plus/element-plus/issues/17647\n const value = val ?? valueOnClear.value\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n if (props.validateEvent) {\n formItem?.validate('change').catch(NOOP)\n }\n },\n})\n\nconst cascaderKls = computed(() => {\n return [\n nsCascader.b(),\n nsCascader.m(realSize.value),\n nsCascader.is('disabled', isDisabled.value),\n attrs.class,\n ]\n})\n\nconst cascaderIconKls = computed(() => {\n return [\n nsInput.e('icon'),\n 'icon-arrow-down',\n nsCascader.is('reverse', popperVisible.value),\n ]\n})\n\nconst inputClass = computed(() => nsCascader.is('focus', isFocused.value))\n\nconst contentRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n})\n\nconst handleClickOutside = (event: Event) => {\n if (isFocused.value) {\n const _event = new FocusEvent('blur', event)\n handleBlur(_event)\n }\n togglePopperVisible(false)\n}\n\nconst togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n inputRef.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n cascaderPanelRef.value &&\n nextTick(cascaderPanelRef.value.scrollToExpandingNode)\n } else if (props.filterable) {\n syncPresentTextValue()\n }\n\n emit('visibleChange', visible)\n }\n}\n\nconst updatePopperPosition = () => {\n nextTick(() => {\n tooltipRef.value?.updatePopper()\n })\n}\nconst hideSuggestionPanel = () => {\n filtering.value = false\n}\n\nconst genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n }\n}\n\nconst deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n cascaderPanelRef.value?.calculateCheckedValue()\n emit('removeTag', node.valueByOption)\n}\n\nconst getStrategyCheckedNodes = (): CascaderNode[] => {\n switch (props.showCheckedStrategy) {\n case 'child':\n return checkedNodes.value\n case 'parent': {\n const clickedNodes = getCheckedNodes(false)\n const clickedNodesValue = clickedNodes!.map((o) => o.value)\n const parentNodes = clickedNodes!.filter(\n (o) => !o.parent || !clickedNodesValue.includes(o.parent.value)\n )\n return parentNodes\n }\n default:\n return []\n }\n}\n\nconst calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = getStrategyCheckedNodes()\n\n const allTags: Tag[] = []\n nodes.forEach((node) => allTags.push(genTag(node)))\n tags.value = allTags\n}\n\nconst calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = cascaderPanelRef.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n tags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n nextTick(() => {\n if (props.virtualScroll && suggestions.value.length > 0) {\n suggestionVirtualListRef.value?.scrollToItem(0)\n }\n updateStyle()\n })\n updatePopperPosition()\n}\n\nconst getSuggestionPanelEl = (selector?: string): HTMLElement | undefined => {\n const el = suggestionPanel.value\n return selector ? (el?.querySelector(selector) ?? undefined) : el\n}\n\nconst focusFirstNode = () => {\n let firstNode: HTMLElement | undefined\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = getSuggestionPanelEl(`.${nsCascader.e('suggestion-item')}`)\n } else {\n firstNode = cascaderPanelRef.value?.$el.querySelector(\n `.${nsCascader.b('node')}[tabindex=\"-1\"]`\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n if (\n !filtering.value &&\n firstNode.getAttribute('aria-haspopup') === 'true'\n ) {\n firstNode.click()\n }\n }\n}\n\nconst updateSuggestionPanelWidth = (inputWidth: number) => {\n const suggestionPanelEl = getSuggestionPanelEl()\n if (!suggestionPanelEl) return\n\n const panelWidth = isNumber(props.fitInputWidth)\n ? `${props.fitInputWidth}px`\n : `${inputWidth}px`\n\n const setPanelStyle = (el: HTMLElement) => {\n if (props.fitInputWidth !== false) {\n el.style.width = panelWidth\n el.style.minWidth = ''\n } else {\n el.style.width = ''\n el.style.minWidth = panelWidth\n }\n }\n\n setPanelStyle(suggestionPanelEl)\n\n if (props.virtualScroll) {\n suggestionListWidth.value =\n props.fitInputWidth !== false\n ? panelWidth\n : hasCustomSuggestionItemSlot.value\n ? `${inputWidth}px`\n : `${Math.max(inputWidth, calculateSuggestionMaxWidth())}px`\n return\n }\n\n const suggestionList = getSuggestionPanelEl(\n `.${nsCascader.e('suggestion-list')}`\n )\n if (suggestionList) {\n setPanelStyle(suggestionList)\n }\n}\n\nconst getTagWrapperLeft = () => {\n if (!slots.prefix) return 0\n\n const prefix = inputRef.value?.$el.querySelector(\n `.${nsInput.e('prefix')}`\n ) as HTMLElement | null\n if (!prefix) return 0\n\n const prefixWidth = prefix.getBoundingClientRect().width\n if (prefixWidth <= 0) return 0\n return prefixWidth + sizeMapPadding[realSize.value || 'default']\n}\n\nconst updateStyle = () => {\n const inputInner = inputRef.value?.input\n const inputWrapper = inputRef.value?.$el\n if (!isClient || !inputInner || !inputWrapper) return\n\n if (suggestionPanel.value) {\n updateSuggestionPanelWidth(inputWrapper.getBoundingClientRect().width)\n }\n\n const tagWrapperEl = tagWrapper.value\n if (tagWrapperEl) {\n const height =\n tags.value.length > 0\n ? `${Math.max(tagWrapperEl.offsetHeight, inputInitialHeight) - 2}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n tagWrapperEl.style.left = `${getTagWrapperLeft()}px`\n updatePopperPosition()\n }\n}\n\nconst calculateSuggestionMaxWidth = () => {\n if (hasCustomSuggestionItemSlot.value) return 0\n if (!suggestions.value.length) return 0\n\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n if (!ctx) return 0\n\n const renderedSuggestion = getSuggestionPanelEl(\n `.${nsCascader.e('suggestion-item')}`\n )\n if (!renderedSuggestion || !isClient) return 0\n\n const style = getComputedStyle(renderedSuggestion)\n const padding =\n Number.parseFloat(style.paddingLeft) + Number.parseFloat(style.paddingRight)\n // Use bold font for all items to ensure width is sufficient\n ctx.font = `bold ${style.fontSize} ${style.fontFamily}`\n\n let maxWidth = 0\n let hasChecked = false\n\n for (const suggestion of suggestions.value) {\n const text = suggestion.text || ''\n const metrics = ctx.measureText(text)\n maxWidth = Math.max(maxWidth, metrics.width)\n if (suggestion.checked && !hasChecked) hasChecked = true\n }\n\n return maxWidth + padding + (hasChecked ? SUGGESTION_ITEM_EXTRA_WIDTH : 0)\n}\n\nconst getCheckedNodes = (leafOnly: boolean) => {\n return cascaderPanelRef.value?.getCheckedNodes(leafOnly)\n}\n\nconst handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expandChange', value)\n}\n\nconst handleKeyDown = (e: KeyboardEvent) => {\n if (isComposing.value) return\n const code = getEventCode(e)\n\n switch (code) {\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n if (popperVisible.value === true) {\n e.preventDefault()\n e.stopPropagation()\n togglePopperVisible(false)\n }\n break\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n}\n\nconst handleClear = () => {\n cascaderPanelRef.value?.clearCheckedNodes()\n if (!popperVisible.value && props.filterable) {\n syncPresentTextValue()\n }\n togglePopperVisible(false)\n emit('clear')\n}\n\nconst syncPresentTextValue = () => {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n}\n\nconst handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n cascaderPanelRef.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && cascaderPanelRef.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n}\n\nconst getSuggestionIndexFromTarget = (target: HTMLElement) => {\n const suggestionItem = target.closest<HTMLElement>('[data-suggestion-index]')\n const indexStr = suggestionItem?.dataset.suggestionIndex\n\n if (!indexStr) return -1\n\n const index = Number.parseInt(indexStr, 10)\n if (Number.isNaN(index) || index < 0 || index >= suggestions.value.length) {\n return -1\n }\n\n return index\n}\n\nconst handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const code = getEventCode(e)\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n e.preventDefault()\n const distance = code === EVENT_CODE.up ? -1 : 1\n\n if (props.virtualScroll && suggestionVirtualListRef.value) {\n const currentIndex = getSuggestionIndexFromTarget(target)\n if (currentIndex >= 0) {\n const length = suggestions.value.length\n const targetIndex = (currentIndex + distance + length) % length\n\n suggestionVirtualListRef.value.scrollToItem(targetIndex)\n\n nextTick(() => {\n const targetItem = getSuggestionPanelEl(\n `#suggestion-${suggestions.value[targetIndex].uid}`\n )\n targetItem && focusNode(targetItem)\n })\n return\n }\n }\n\n // use DOM-based navigation\n focusNode(\n getSibling(\n target,\n distance,\n `.${nsCascader.e('suggestion-item')}[tabindex=\"-1\"]`\n ) as HTMLElement\n )\n break\n }\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n target.click()\n break\n }\n}\n\nconst handleDelete = () => {\n const lastTag = tags.value[tags.value.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (\n !lastTag ||\n !pressDeleteCount ||\n (props.collapseTags && tags.value.length > 1)\n )\n return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n}\n\nconst debounce = computed(() => props.debounce)\nconst handleFilter = useDebounceFn(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n}, debounce)\n\nconst handleInput = (val: string, e?: InputEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n if (val) {\n handleFilter()\n } else {\n const passed = props.beforeFilter('')\n if (isPromise(passed)) {\n passed.catch(() => {\n /* prevent log error */\n })\n }\n hideSuggestionPanel()\n }\n}\n\nconst getInputInnerHeight = (inputInner: HTMLElement): number =>\n Number.parseFloat(\n useCssVar(nsInput.cssVarName('input-height'), inputInner).value!\n ) - 2\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nwatch(filtering, updatePopperPosition)\n\nwatch(\n [\n checkedNodes,\n isDisabled,\n () => props.collapseTags,\n () => props.maxCollapseTags,\n ],\n calculatePresentTags\n)\n\nwatch(tags, () => {\n nextTick(() => updateStyle())\n})\n\nwatch(realSize, async () => {\n await nextTick()\n const inputInner = inputRef.value!.input!\n inputInitialHeight = getInputInnerHeight(inputInner) || inputInitialHeight\n updateStyle()\n})\n\nwatch(presentText, syncPresentTextValue, { immediate: true })\n\nwatch(\n () => popperVisible.value,\n (val) => {\n if (val && props.props.lazy && props.props.lazyLoad) {\n cascaderPanelRef.value?.loadLazyRootNodes()\n }\n }\n)\n\nonMounted(() => {\n const inputInner = inputRef.value!.input!\n const inputWrapper = inputRef.value!.$el!\n\n const inputInnerHeight = getInputInnerHeight(inputInner)\n\n inputInitialHeight = inputInner.offsetHeight || inputInnerHeight\n useResizeObserver(inputWrapper, updateStyle)\n})\n\ndefineExpose({\n /**\n * @description get an array of currently selected node,(leafOnly) whether only return the leaf checked nodes, default is `false`\n */\n getCheckedNodes,\n /**\n * @description cascader panel ref\n */\n cascaderPanelRef,\n /**\n * @description toggle the visible of popper\n */\n togglePopperVisible,\n /**\n * @description cascader content ref\n */\n contentRef,\n /**\n * @description selected content text\n */\n presentText,\n /** @description focus the input element */\n focus,\n /** @description blur the input element */\n blur,\n})\n</script>\n"],"mappings":""}
@@ -268,21 +268,21 @@ declare const __VLS_base: _$vue.DefineComponent<CascaderPanelProps, {
268
268
  scrollToExpandingNode: () => void;
269
269
  loadLazyRootNodes: () => void;
270
270
  }, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
271
- close: () => void;
272
271
  "update:modelValue": (value: CascaderValue | null | undefined) => void;
273
272
  change: (value: CascaderValue | null | undefined) => void;
273
+ close: () => void;
274
274
  "expand-change": (value: CascaderNodePathValue) => void;
275
275
  }, string, _$vue.PublicProps, Readonly<CascaderPanelProps> & Readonly<{
276
+ "onUpdate:modelValue"?: ((value: CascaderValue | null | undefined) => any) | undefined;
276
277
  onChange?: ((value: CascaderValue | null | undefined) => any) | undefined;
277
278
  onClose?: (() => any) | undefined;
278
- "onUpdate:modelValue"?: ((value: CascaderValue | null | undefined) => any) | undefined;
279
279
  "onExpand-change"?: ((value: CascaderNodePathValue) => any) | undefined;
280
280
  }>, {
281
281
  props: CascaderProps;
282
282
  height: number;
283
+ border: boolean;
283
284
  options: CascaderOption[];
284
285
  itemSize: number;
285
- border: boolean;
286
286
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
287
287
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
288
288
  declare const _default: typeof __VLS_export;
@@ -7,19 +7,19 @@ type __VLS_Slots = {} & {
7
7
  default?: (props: typeof __VLS_1) => any;
8
8
  };
9
9
  declare const __VLS_base: _$vue.DefineComponent<CheckboxProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
10
- change: (val: CheckboxValueType) => void;
11
10
  "update:modelValue": (val: CheckboxValueType) => void;
11
+ change: (val: CheckboxValueType) => void;
12
12
  }, string, _$vue.PublicProps, Readonly<CheckboxProps> & Readonly<{
13
- onChange?: ((val: CheckboxValueType) => any) | undefined;
14
13
  "onUpdate:modelValue"?: ((val: CheckboxValueType) => any) | undefined;
14
+ onChange?: ((val: CheckboxValueType) => any) | undefined;
15
15
  }>, {
16
16
  id: string;
17
17
  disabled: boolean;
18
+ modelValue: number | string | boolean;
19
+ validateEvent: boolean;
18
20
  name: string;
19
- label: string | boolean | number | object;
20
21
  value: string | boolean | number | object;
21
- validateEvent: boolean;
22
- modelValue: number | string | boolean;
22
+ label: string | boolean | number | object;
23
23
  trueValue: string | number;
24
24
  falseValue: string | number;
25
25
  trueLabel: string | number;
@@ -8,21 +8,21 @@ type __VLS_Slots = {} & {
8
8
  default?: (props: typeof __VLS_8) => any;
9
9
  };
10
10
  declare const __VLS_base: _$vue.DefineComponent<CheckboxGroupProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
11
- change: (val: CheckboxValueType[]) => void;
12
11
  "update:modelValue": (val: CheckboxGroupValueType) => void;
12
+ change: (val: CheckboxValueType[]) => void;
13
13
  }, string, _$vue.PublicProps, Readonly<CheckboxGroupProps> & Readonly<{
14
- onChange?: ((val: CheckboxValueType[]) => any) | undefined;
15
14
  "onUpdate:modelValue"?: ((val: CheckboxGroupValueType) => any) | undefined;
15
+ onChange?: ((val: CheckboxValueType[]) => any) | undefined;
16
16
  }>, {
17
17
  type: "checkbox" | "button";
18
- disabled: boolean;
19
18
  props: {
20
19
  value?: string;
21
20
  label?: string;
22
21
  disabled?: string;
23
22
  };
24
- validateEvent: boolean;
23
+ disabled: boolean;
25
24
  modelValue: CheckboxGroupValueType;
25
+ validateEvent: boolean;
26
26
  tag: string;
27
27
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
28
28
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -84,21 +84,21 @@ declare const checkboxProps: {
84
84
  * @description binding value
85
85
  */
86
86
  modelValue: {
87
- type: (NumberConstructor | StringConstructor | BooleanConstructor)[];
87
+ type: (BooleanConstructor | StringConstructor | NumberConstructor)[];
88
88
  default: undefined;
89
89
  };
90
90
  /**
91
91
  * @description label of the Checkbox when used inside a `checkbox-group`
92
92
  */
93
93
  label: {
94
- type: (NumberConstructor | StringConstructor | BooleanConstructor | ObjectConstructor)[];
94
+ type: (BooleanConstructor | ObjectConstructor | StringConstructor | NumberConstructor)[];
95
95
  default: undefined;
96
96
  };
97
97
  /**
98
98
  * @description value of the Checkbox when used inside a `checkbox-group`
99
99
  */
100
100
  value: {
101
- type: (NumberConstructor | StringConstructor | BooleanConstructor | ObjectConstructor)[];
101
+ type: (BooleanConstructor | ObjectConstructor | StringConstructor | NumberConstructor)[];
102
102
  default: undefined;
103
103
  };
104
104
  /**
@@ -127,14 +127,14 @@ declare const checkboxProps: {
127
127
  * @description value of the Checkbox if it's checked
128
128
  */
129
129
  trueValue: {
130
- type: (NumberConstructor | StringConstructor)[];
130
+ type: (StringConstructor | NumberConstructor)[];
131
131
  default: undefined;
132
132
  };
133
133
  /**
134
134
  * @description value of the Checkbox if it's not checked
135
135
  */
136
136
  falseValue: {
137
- type: (NumberConstructor | StringConstructor)[];
137
+ type: (StringConstructor | NumberConstructor)[];
138
138
  default: undefined;
139
139
  };
140
140
  /**
@@ -142,7 +142,7 @@ declare const checkboxProps: {
142
142
  * @description value of the Checkbox if it's checked
143
143
  */
144
144
  trueLabel: {
145
- type: (NumberConstructor | StringConstructor)[];
145
+ type: (StringConstructor | NumberConstructor)[];
146
146
  default: undefined;
147
147
  };
148
148
  /**
@@ -150,7 +150,7 @@ declare const checkboxProps: {
150
150
  * @description value of the Checkbox if it's not checked
151
151
  */
152
152
  falseLabel: {
153
- type: (NumberConstructor | StringConstructor)[];
153
+ type: (StringConstructor | NumberConstructor)[];
154
154
  default: undefined;
155
155
  };
156
156
  /**
@@ -176,7 +176,7 @@ declare const checkboxProps: {
176
176
  /**
177
177
  * @description input tabindex
178
178
  */
179
- tabindex: (NumberConstructor | StringConstructor)[];
179
+ tabindex: (StringConstructor | NumberConstructor)[];
180
180
  /**
181
181
  * @description whether to trigger form validation
182
182
  */
@@ -7,19 +7,19 @@ type __VLS_Slots = {} & {
7
7
  default?: (props: typeof __VLS_10) => any;
8
8
  };
9
9
  declare const __VLS_base: _$vue.DefineComponent<CheckboxProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
10
- change: (val: CheckboxValueType) => void;
11
10
  "update:modelValue": (val: CheckboxValueType) => void;
11
+ change: (val: CheckboxValueType) => void;
12
12
  }, string, _$vue.PublicProps, Readonly<CheckboxProps> & Readonly<{
13
- onChange?: ((val: CheckboxValueType) => any) | undefined;
14
13
  "onUpdate:modelValue"?: ((val: CheckboxValueType) => any) | undefined;
14
+ onChange?: ((val: CheckboxValueType) => any) | undefined;
15
15
  }>, {
16
16
  id: string;
17
17
  disabled: boolean;
18
+ modelValue: number | string | boolean;
19
+ validateEvent: boolean;
18
20
  name: string;
19
- label: string | boolean | number | object;
20
21
  value: string | boolean | number | object;
21
- validateEvent: boolean;
22
- modelValue: number | string | boolean;
22
+ label: string | boolean | number | object;
23
23
  trueValue: string | number;
24
24
  falseValue: string | number;
25
25
  trueLabel: string | number;
@@ -9,8 +9,8 @@ type __VLS_Slots = {} & {
9
9
  declare const __VLS_base: _$vue.DefineComponent<ColProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<ColProps> & Readonly<{}>, {
10
10
  offset: number;
11
11
  push: number;
12
- span: number;
13
12
  tag: string;
13
+ span: number;
14
14
  pull: number;
15
15
  xs: ColSize;
16
16
  sm: ColSize;
@@ -32,7 +32,7 @@ interface CollapseProps {
32
32
  declare const collapseProps: {
33
33
  readonly accordion: BooleanConstructor;
34
34
  readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | CollapseActiveName[]) | (() => CollapseModelValue) | (((new (...args: any[]) => string | number | CollapseActiveName[]) | (() => CollapseModelValue)) | null)[], unknown, unknown, () => [], boolean>;
35
- readonly expandIconPosition: EpPropFinalized<(new (...args: any[]) => "right" | "left") | (() => CollapseIconPositionType) | (((new (...args: any[]) => "right" | "left") | (() => CollapseIconPositionType)) | null)[], unknown, unknown, "right", boolean>;
35
+ readonly expandIconPosition: EpPropFinalized<(new (...args: any[]) => "left" | "right") | (() => CollapseIconPositionType) | (((new (...args: any[]) => "left" | "right") | (() => CollapseIconPositionType)) | null)[], unknown, unknown, "right", boolean>;
36
36
  readonly beforeCollapse: {
37
37
  readonly type: _$vue.PropType<(name: CollapseActiveName) => Awaitable<boolean>>;
38
38
  readonly required: false;
@@ -13,8 +13,8 @@ declare const __VLS_base: _$vue.DefineComponent<CollapseProps, {
13
13
  "update:modelValue": (value: CollapseModelValue) => void;
14
14
  change: (value: CollapseModelValue) => void;
15
15
  }, string, _$vue.PublicProps, Readonly<CollapseProps> & Readonly<{
16
- onChange?: ((value: CollapseModelValue) => any) | undefined;
17
16
  "onUpdate:modelValue"?: ((value: CollapseModelValue) => any) | undefined;
17
+ onChange?: ((value: CollapseModelValue) => any) | undefined;
18
18
  }>, {
19
19
  modelValue: CollapseModelValue;
20
20
  expandIconPosition: CollapseIconPositionType;
@@ -1,5 +1,6 @@
1
1
  import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
2
2
  import { ComponentSize } from "../../../constants/size.js";
3
+ import { ClassValue } from "../../../utils/typescript.js";
3
4
  import { ElTooltipContentProps } from "../../tooltip/src/content.js";
4
5
  import _default from "./color-picker.vue.js";
5
6
  import { UseEmptyValuesProps } from "../../../hooks/use-empty-values/index.js";
@@ -96,108 +97,7 @@ declare const colorPickerProps: {
96
97
  readonly validator: ((val: unknown) => boolean) | undefined;
97
98
  __epPropKey: true;
98
99
  };
99
- readonly popperClass: {
100
- readonly type: _$vue.PropType<EpPropMergeType<(new (...args: any[]) => string | {
101
- [x: string]: boolean;
102
- } | (string | {
103
- [x: string]: boolean;
104
- } | (string | {
105
- [x: string]: boolean;
106
- } | (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
- } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
125
- [x: string]: boolean;
126
- } | (string | {
127
- [x: string]: boolean;
128
- } | (string | {
129
- [x: string]: boolean;
130
- } | (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
- } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[]) | (((new (...args: any[]) => string | {
149
- [x: string]: boolean;
150
- } | (string | {
151
- [x: string]: boolean;
152
- } | (string | {
153
- [x: string]: boolean;
154
- } | (string | {
155
- [x: string]: boolean;
156
- } | (string | {
157
- [x: string]: boolean;
158
- } | (string | {
159
- [x: string]: boolean;
160
- } | (string | {
161
- [x: string]: boolean;
162
- } | (string | {
163
- [x: string]: boolean;
164
- } | (string | {
165
- [x: string]: boolean;
166
- } | (string | {
167
- [x: string]: boolean;
168
- } | (string | {
169
- [x: string]: boolean;
170
- } | (string | {
171
- [x: string]: boolean;
172
- } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[]) | (() => string | {
173
- [x: string]: boolean;
174
- } | (string | {
175
- [x: string]: boolean;
176
- } | (string | {
177
- [x: string]: boolean;
178
- } | (string | {
179
- [x: string]: boolean;
180
- } | (string | {
181
- [x: string]: boolean;
182
- } | (string | {
183
- [x: string]: boolean;
184
- } | (string | {
185
- [x: string]: boolean;
186
- } | (string | {
187
- [x: string]: boolean;
188
- } | (string | {
189
- [x: string]: boolean;
190
- } | (string | {
191
- [x: string]: boolean;
192
- } | (string | {
193
- [x: string]: boolean;
194
- } | (string | {
195
- [x: string]: boolean;
196
- } | /*elided*/any)[])[])[])[])[])[])[])[])[])[])[])) | null)[], unknown, unknown>>;
197
- readonly required: false;
198
- readonly validator: ((val: unknown) => boolean) | undefined;
199
- __epPropKey: true;
200
- };
100
+ 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>;
201
101
  readonly popperStyle: EpPropFinalized<(new (...args: any[]) => string | false | _$vue.CSSProperties | _$vue.StyleValue[]) | (() => _$vue.StyleValue) | (((new (...args: any[]) => string | false | _$vue.CSSProperties | _$vue.StyleValue[]) | (() => _$vue.StyleValue)) | null)[], unknown, unknown, undefined, boolean>;
202
102
  readonly tabindex: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, 0, boolean>;
203
103
  readonly teleported: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
@@ -237,6 +137,7 @@ declare const colorPickerPropsDefaults: {
237
137
  readonly modelValue: undefined;
238
138
  readonly disabled: undefined;
239
139
  readonly clearable: true;
140
+ readonly popperClass: undefined;
240
141
  readonly popperStyle: undefined;
241
142
  readonly tabindex: 0;
242
143
  readonly teleported: true;
@@ -108,6 +108,7 @@ const colorPickerPropsDefaults = {
108
108
  modelValue: void 0,
109
109
  disabled: void 0,
110
110
  clearable: true,
111
+ popperClass: void 0,
111
112
  popperStyle: void 0,
112
113
  tabindex: 0,
113
114
  teleported: true,
@@ -1 +1 @@
1
- {"version":3,"file":"color-picker.mjs","names":[],"sources":["../../../../../../packages/components/color-picker/src/color-picker.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport { buildProps, definePropType, isString } from '@element-plus/utils'\nimport {\n useAriaProps,\n useEmptyValuesProps,\n useSizeProp,\n} from '@element-plus/hooks'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\n\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type { ColorFormats } from '@ctrl/tinycolor'\nimport type ColorPicker from './color-picker.vue'\nimport type { AriaProps, UseEmptyValuesProps } from '@element-plus/hooks'\nimport type { ComponentSize } from '@element-plus/constants'\nimport type { ElTooltipContentProps } from '@element-plus/components/tooltip'\n\nexport interface ColorPickerProps\n extends UseEmptyValuesProps, Pick<AriaProps, 'ariaLabel'> {\n /**\n * @description when color-picker inactive and persistent is false, the color panel will be destroyed\n */\n persistent?: boolean\n /**\n * @description binding value\n */\n modelValue?: string | null\n /**\n * @description ColorPicker id\n */\n id?: string\n /**\n * @description whether to display the alpha slider\n */\n showAlpha?: boolean\n /**\n * @description color format of v-model\n */\n colorFormat?: ColorFormats\n /**\n * @description whether to disable the ColorPicker\n */\n disabled?: boolean\n /**\n * @description whether to show clear button\n */\n clearable?: boolean\n /**\n * @description size of ColorPicker\n */\n size?: ComponentSize\n /**\n * @description custom class name for ColorPicker's dropdown\n */\n popperClass?: ElTooltipContentProps['popperClass']\n /**\n * @description custom style for ColorPicker's dropdown\n */\n popperStyle?: ElTooltipContentProps['popperStyle']\n /**\n * @description ColorPicker tabindex\n */\n tabindex?: string | number\n /**\n * @description whether color-picker popper is teleported to the body\n */\n teleported?: ElTooltipContentProps['teleported']\n /**\n * @description which color-picker panel appends to\n */\n appendTo?: ElTooltipContentProps['appendTo']\n /**\n * @description predefined color options\n */\n predefine?: string[]\n /**\n * @description whether to trigger form validation\n */\n validateEvent?: boolean\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `ColorPickerProps` instead.\n */\nexport const colorPickerProps = buildProps({\n /**\n * @description when color-picker inactive and persistent is false, the color panel will be destroyed\n */\n persistent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description binding value\n */\n modelValue: {\n type: definePropType<string | null>(String),\n default: undefined,\n },\n /**\n * @description ColorPicker id\n */\n id: String,\n /**\n * @description whether to display the alpha slider\n */\n showAlpha: Boolean,\n /**\n * @description color format of v-model\n */\n colorFormat: {\n type: definePropType<ColorFormats>(String),\n },\n /**\n * @description whether to disable the ColorPicker\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description whether to show clear button\n */\n clearable: {\n type: Boolean,\n default: true,\n },\n /**\n * @description size of ColorPicker\n */\n size: useSizeProp,\n /**\n * @description custom class name for ColorPicker's dropdown\n */\n popperClass: useTooltipContentProps.popperClass,\n /**\n * @description custom style for ColorPicker's dropdown\n */\n popperStyle: useTooltipContentProps.popperStyle,\n /**\n * @description ColorPicker tabindex\n */\n tabindex: {\n type: [String, Number],\n default: 0,\n },\n /**\n * @description whether color-picker popper is teleported to the body\n */\n teleported: useTooltipContentProps.teleported,\n /**\n * @description which color-picker panel appends to\n */\n appendTo: useTooltipContentProps.appendTo,\n /**\n * @description predefined color options\n */\n predefine: {\n type: definePropType<string[]>(Array),\n },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n ...useEmptyValuesProps,\n ...useAriaProps(['ariaLabel']),\n} as const)\nexport const colorPickerEmits = {\n [UPDATE_MODEL_EVENT]: (val: string | null) => isString(val) || isNil(val),\n [CHANGE_EVENT]: (val: string | null) => isString(val) || isNil(val),\n activeChange: (val: string | null) => isString(val) || isNil(val),\n focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n clear: () => true,\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `ColorPickerProps` instead.\n */\nexport type ColorPickerPropsPublic = ExtractPublicPropTypes<\n typeof colorPickerProps\n>\nexport type ColorPickerEmits = typeof colorPickerEmits\nexport type ColorPickerInstance = InstanceType<typeof ColorPicker> & unknown\n\n/**\n * @description default values for ColorPickerProps, used in components that extend ColorPickerProps\n */\nexport const colorPickerPropsDefaults = {\n persistent: true,\n modelValue: undefined,\n disabled: undefined,\n clearable: true,\n popperStyle: undefined,\n tabindex: 0,\n teleported: true,\n validateEvent: true,\n valueOnClear: undefined,\n} as const\n"],"mappings":";;;;;;;;;;;;AAoFA,MAAa,mBAAmB,WAAW;;;;CAIzC,YAAY;EACV,MAAM;EACN,SAAS;EACV;;;;CAID,YAAY;EACV,MAAM,eAA8B,OAAO;EAC3C,SAAS,KAAA;EACV;;;;CAID,IAAI;;;;CAIJ,WAAW;;;;CAIX,aAAa,EACX,MAAM,eAA6B,OAAO,EAC3C;;;;CAID,UAAU;EACR,MAAM;EACN,SAAS,KAAA;EACV;;;;CAID,WAAW;EACT,MAAM;EACN,SAAS;EACV;;;;CAID,MAAM;;;;CAIN,aAAa,uBAAuB;;;;CAIpC,aAAa,uBAAuB;;;;CAIpC,UAAU;EACR,MAAM,CAAC,QAAQ,OAAO;EACtB,SAAS;EACV;;;;CAID,YAAY,uBAAuB;;;;CAInC,UAAU,uBAAuB;;;;CAIjC,WAAW,EACT,MAAM,eAAyB,MAAM,EACtC;;;;CAID,eAAe;EACb,MAAM;EACN,SAAS;EACV;CACD,GAAG;CACH,GAAG,aAAa,CAAC,YAAY,CAAC;CAC/B,CAAU;AACX,MAAa,mBAAmB;EAC7B,sBAAsB,QAAuB,SAAS,IAAI,IAAI,MAAM,IAAI;EACxE,gBAAgB,QAAuB,SAAS,IAAI,IAAI,MAAM,IAAI;CACnE,eAAe,QAAuB,SAAS,IAAI,IAAI,MAAM,IAAI;CACjE,QAAQ,QAAoB,eAAe;CAC3C,OAAO,QAAoB,eAAe;CAC1C,aAAa;CACd;;;;AAcD,MAAa,2BAA2B;CACtC,YAAY;CACZ,YAAY,KAAA;CACZ,UAAU,KAAA;CACV,WAAW;CACX,aAAa,KAAA;CACb,UAAU;CACV,YAAY;CACZ,eAAe;CACf,cAAc,KAAA;CACf"}
1
+ {"version":3,"file":"color-picker.mjs","names":[],"sources":["../../../../../../packages/components/color-picker/src/color-picker.ts"],"sourcesContent":["import { isNil } from 'lodash-unified'\nimport { buildProps, definePropType, isString } from '@element-plus/utils'\nimport {\n useAriaProps,\n useEmptyValuesProps,\n useSizeProp,\n} from '@element-plus/hooks'\nimport { useTooltipContentProps } from '@element-plus/components/tooltip'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\n\nimport type { ExtractPublicPropTypes } from 'vue'\nimport type { ColorFormats } from '@ctrl/tinycolor'\nimport type ColorPicker from './color-picker.vue'\nimport type { AriaProps, UseEmptyValuesProps } from '@element-plus/hooks'\nimport type { ComponentSize } from '@element-plus/constants'\nimport type { ElTooltipContentProps } from '@element-plus/components/tooltip'\n\nexport interface ColorPickerProps\n extends UseEmptyValuesProps, Pick<AriaProps, 'ariaLabel'> {\n /**\n * @description when color-picker inactive and persistent is false, the color panel will be destroyed\n */\n persistent?: boolean\n /**\n * @description binding value\n */\n modelValue?: string | null\n /**\n * @description ColorPicker id\n */\n id?: string\n /**\n * @description whether to display the alpha slider\n */\n showAlpha?: boolean\n /**\n * @description color format of v-model\n */\n colorFormat?: ColorFormats\n /**\n * @description whether to disable the ColorPicker\n */\n disabled?: boolean\n /**\n * @description whether to show clear button\n */\n clearable?: boolean\n /**\n * @description size of ColorPicker\n */\n size?: ComponentSize\n /**\n * @description custom class name for ColorPicker's dropdown\n */\n popperClass?: ElTooltipContentProps['popperClass']\n /**\n * @description custom style for ColorPicker's dropdown\n */\n popperStyle?: ElTooltipContentProps['popperStyle']\n /**\n * @description ColorPicker tabindex\n */\n tabindex?: string | number\n /**\n * @description whether color-picker popper is teleported to the body\n */\n teleported?: ElTooltipContentProps['teleported']\n /**\n * @description which color-picker panel appends to\n */\n appendTo?: ElTooltipContentProps['appendTo']\n /**\n * @description predefined color options\n */\n predefine?: string[]\n /**\n * @description whether to trigger form validation\n */\n validateEvent?: boolean\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `ColorPickerProps` instead.\n */\nexport const colorPickerProps = buildProps({\n /**\n * @description when color-picker inactive and persistent is false, the color panel will be destroyed\n */\n persistent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description binding value\n */\n modelValue: {\n type: definePropType<string | null>(String),\n default: undefined,\n },\n /**\n * @description ColorPicker id\n */\n id: String,\n /**\n * @description whether to display the alpha slider\n */\n showAlpha: Boolean,\n /**\n * @description color format of v-model\n */\n colorFormat: {\n type: definePropType<ColorFormats>(String),\n },\n /**\n * @description whether to disable the ColorPicker\n */\n disabled: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description whether to show clear button\n */\n clearable: {\n type: Boolean,\n default: true,\n },\n /**\n * @description size of ColorPicker\n */\n size: useSizeProp,\n /**\n * @description custom class name for ColorPicker's dropdown\n */\n popperClass: useTooltipContentProps.popperClass,\n /**\n * @description custom style for ColorPicker's dropdown\n */\n popperStyle: useTooltipContentProps.popperStyle,\n /**\n * @description ColorPicker tabindex\n */\n tabindex: {\n type: [String, Number],\n default: 0,\n },\n /**\n * @description whether color-picker popper is teleported to the body\n */\n teleported: useTooltipContentProps.teleported,\n /**\n * @description which color-picker panel appends to\n */\n appendTo: useTooltipContentProps.appendTo,\n /**\n * @description predefined color options\n */\n predefine: {\n type: definePropType<string[]>(Array),\n },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n ...useEmptyValuesProps,\n ...useAriaProps(['ariaLabel']),\n} as const)\nexport const colorPickerEmits = {\n [UPDATE_MODEL_EVENT]: (val: string | null) => isString(val) || isNil(val),\n [CHANGE_EVENT]: (val: string | null) => isString(val) || isNil(val),\n activeChange: (val: string | null) => isString(val) || isNil(val),\n focus: (evt: FocusEvent) => evt instanceof FocusEvent,\n blur: (evt: FocusEvent) => evt instanceof FocusEvent,\n clear: () => true,\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `ColorPickerProps` instead.\n */\nexport type ColorPickerPropsPublic = ExtractPublicPropTypes<\n typeof colorPickerProps\n>\nexport type ColorPickerEmits = typeof colorPickerEmits\nexport type ColorPickerInstance = InstanceType<typeof ColorPicker> & unknown\n\n/**\n * @description default values for ColorPickerProps, used in components that extend ColorPickerProps\n */\nexport const colorPickerPropsDefaults = {\n persistent: true,\n modelValue: undefined,\n disabled: undefined,\n clearable: true,\n popperClass: undefined,\n popperStyle: undefined,\n tabindex: 0,\n teleported: true,\n validateEvent: true,\n valueOnClear: undefined,\n} as const\n"],"mappings":";;;;;;;;;;;;AAoFA,MAAa,mBAAmB,WAAW;;;;CAIzC,YAAY;EACV,MAAM;EACN,SAAS;EACV;;;;CAID,YAAY;EACV,MAAM,eAA8B,OAAO;EAC3C,SAAS,KAAA;EACV;;;;CAID,IAAI;;;;CAIJ,WAAW;;;;CAIX,aAAa,EACX,MAAM,eAA6B,OAAO,EAC3C;;;;CAID,UAAU;EACR,MAAM;EACN,SAAS,KAAA;EACV;;;;CAID,WAAW;EACT,MAAM;EACN,SAAS;EACV;;;;CAID,MAAM;;;;CAIN,aAAa,uBAAuB;;;;CAIpC,aAAa,uBAAuB;;;;CAIpC,UAAU;EACR,MAAM,CAAC,QAAQ,OAAO;EACtB,SAAS;EACV;;;;CAID,YAAY,uBAAuB;;;;CAInC,UAAU,uBAAuB;;;;CAIjC,WAAW,EACT,MAAM,eAAyB,MAAM,EACtC;;;;CAID,eAAe;EACb,MAAM;EACN,SAAS;EACV;CACD,GAAG;CACH,GAAG,aAAa,CAAC,YAAY,CAAC;CAC/B,CAAU;AACX,MAAa,mBAAmB;EAC7B,sBAAsB,QAAuB,SAAS,IAAI,IAAI,MAAM,IAAI;EACxE,gBAAgB,QAAuB,SAAS,IAAI,IAAI,MAAM,IAAI;CACnE,eAAe,QAAuB,SAAS,IAAI,IAAI,MAAM,IAAI;CACjE,QAAQ,QAAoB,eAAe;CAC3C,OAAO,QAAoB,eAAe;CAC1C,aAAa;CACd;;;;AAcD,MAAa,2BAA2B;CACtC,YAAY;CACZ,YAAY,KAAA;CACZ,UAAU,KAAA;CACV,WAAW;CACX,aAAa,KAAA;CACb,aAAa,KAAA;CACb,UAAU;CACV,YAAY;CACZ,eAAe;CACf,cAAc,KAAA;CACf"}
@@ -1,3 +1,4 @@
1
+ import { ClassValue } from "../../../utils/typescript.js";
1
2
  import Color from "../../color-picker-panel/src/utils/color.js";
2
3
  import { ColorPickerProps } from "./color-picker.js";
3
4
  import * as _$vue from "vue";
@@ -29,29 +30,30 @@ declare const __VLS_export: _$vue.DefineComponent<ColorPickerProps, {
29
30
  */
30
31
  blur: typeof blur;
31
32
  }, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
32
- blur: (evt: FocusEvent) => void;
33
- focus: (evt: FocusEvent) => void;
34
- clear: () => void;
35
33
  "update:modelValue": (val: string | null) => void;
36
34
  change: (val: string | null) => void;
35
+ clear: () => void;
36
+ focus: (evt: FocusEvent) => void;
37
+ blur: (evt: FocusEvent) => void;
37
38
  activeChange: (val: string | null) => void;
38
39
  }, string, _$vue.PublicProps, Readonly<ColorPickerProps> & Readonly<{
40
+ "onUpdate:modelValue"?: ((val: string | null) => any) | undefined;
39
41
  onChange?: ((val: string | null) => any) | undefined;
40
- onBlur?: ((evt: FocusEvent) => any) | undefined;
41
- onFocus?: ((evt: FocusEvent) => any) | undefined;
42
42
  onClear?: (() => any) | undefined;
43
- "onUpdate:modelValue"?: ((val: string | null) => any) | undefined;
43
+ onFocus?: ((evt: FocusEvent) => any) | undefined;
44
+ onBlur?: ((evt: FocusEvent) => any) | undefined;
44
45
  onActiveChange?: ((val: string | null) => any) | undefined;
45
46
  }>, {
46
- popperStyle: string | false | _$vue.CSSProperties | _$vue.StyleValue[] | null;
47
+ valueOnClear: string | number | boolean | Function | null;
47
48
  teleported: boolean;
48
- persistent: boolean;
49
49
  disabled: boolean;
50
- clearable: boolean;
51
- validateEvent: boolean;
52
50
  modelValue: string | null;
53
- valueOnClear: string | number | boolean | Function | null;
51
+ clearable: boolean;
54
52
  tabindex: string | number;
53
+ validateEvent: boolean;
54
+ popperClass: string | false | Record<string, any> | ClassValue[] | null;
55
+ popperStyle: string | false | _$vue.CSSProperties | _$vue.StyleValue[] | null;
56
+ persistent: boolean;
55
57
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
56
58
  declare const _default: typeof __VLS_export;
57
59
  //#endregion
@@ -1,4 +1,5 @@
1
1
  import { EpPropFinalized, EpPropMergeType } from "../../../utils/vue/props/types.js";
2
+ import { ClassValue } from "../../../utils/typescript.js";
2
3
  import Color from "./utils/color.js";
3
4
  import _default from "./color-picker-panel.vue.js";
4
5
  import * as _$vue from "vue";
@@ -6,8 +7,6 @@ import { ComputedRef, ExtractPublicPropTypes, InjectionKey, StyleValue } from "v
6
7
  import { ColorFormats } from "@ctrl/tinycolor";
7
8
 
8
9
  //#region ../../packages/components/color-picker-panel/src/color-picker-panel.d.ts
9
- type ClassObjectType = Record<string, boolean>;
10
- type ClassType = string | ClassObjectType | ClassType[];
11
10
  interface ColorPickerPanelProps {
12
11
  /**
13
12
  * @description binding value
@@ -40,7 +39,7 @@ interface ColorPickerPanelProps {
40
39
  /**
41
40
  * @description class names will be passed to hue-slider
42
41
  */
43
- hueSliderClass?: ClassType;
42
+ hueSliderClass?: ClassValue;
44
43
  /**
45
44
  * @description styles will be passed to hue-slider
46
45
  */
@@ -67,12 +66,7 @@ declare const colorPickerPanelProps: {
67
66
  __epPropKey: true;
68
67
  };
69
68
  readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
70
- readonly hueSliderClass: {
71
- readonly type: _$vue.PropType<EpPropMergeType<(new (...args: any[]) => string | ClassObjectType | ClassType[]) | (() => ClassType) | (((new (...args: any[]) => string | ClassObjectType | ClassType[]) | (() => ClassType)) | null)[], unknown, unknown>>;
72
- readonly required: false;
73
- readonly validator: ((val: unknown) => boolean) | undefined;
74
- __epPropKey: true;
75
- };
69
+ readonly hueSliderClass: 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>;
76
70
  readonly hueSliderStyle: EpPropFinalized<(new (...args: any[]) => string | false | _$vue.CSSProperties | StyleValue[]) | (() => StyleValue) | (((new (...args: any[]) => string | false | _$vue.CSSProperties | StyleValue[]) | (() => StyleValue)) | null)[], unknown, unknown, undefined, boolean>;
77
71
  };
78
72
  declare const colorPickerPanelEmits: {