element-plus 1.2.0-beta.1 → 1.2.0-beta.2

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 (524) hide show
  1. package/README.md +5 -0
  2. package/attributes.json +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +930 -690
  5. package/dist/index.full.min.js +11 -11
  6. package/dist/index.full.min.js.map +1 -1
  7. package/dist/index.full.min.mjs +11 -11
  8. package/dist/index.full.min.mjs.map +1 -1
  9. package/dist/index.full.mjs +937 -699
  10. package/es/components/affix/src/affix.vue_vue&type=script&lang.mjs +1 -0
  11. package/es/components/affix/src/affix.vue_vue&type=script&lang.mjs.map +1 -1
  12. package/es/components/affix/src/affix.vue_vue&type=template&id=0745df9e&lang.mjs.map +1 -1
  13. package/es/components/alert/src/alert.vue_vue&type=script&lang.mjs.map +1 -1
  14. package/es/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.mjs +1 -1
  15. package/es/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.mjs.map +1 -1
  16. package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.mjs +4 -0
  17. package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.mjs.map +1 -1
  18. package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=template&id=2f37792a&lang.mjs.map +1 -1
  19. package/es/components/button/index.d.ts +6 -1
  20. package/es/components/button/src/button.d.ts +4 -0
  21. package/es/components/button/src/button.mjs +4 -1
  22. package/es/components/button/src/button.mjs.map +1 -1
  23. package/es/components/button/src/button.vue.d.ts +6 -1
  24. package/es/components/button/src/button.vue_vue&type=script&lang.mjs +7 -1
  25. package/es/components/button/src/button.vue_vue&type=script&lang.mjs.map +1 -1
  26. package/es/components/button/src/button.vue_vue&type=template&id=802c5c76&lang.mjs.map +1 -1
  27. package/es/components/cascader/index.d.ts +8430 -12
  28. package/es/components/cascader/src/index.vue.d.ts +4216 -6
  29. package/es/components/cascader/src/index.vue_vue&type=script&lang.mjs +25 -16
  30. package/es/components/cascader/src/index.vue_vue&type=script&lang.mjs.map +1 -1
  31. package/es/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.mjs.map +1 -1
  32. package/es/components/cascader-panel/index.d.ts +238 -10
  33. package/es/components/cascader-panel/src/index.vue.d.ts +122 -8
  34. package/es/components/cascader-panel/src/index.vue_vue&type=script&lang.mjs +31 -12
  35. package/es/components/cascader-panel/src/index.vue_vue&type=script&lang.mjs.map +1 -1
  36. package/es/components/cascader-panel/src/index.vue_vue&type=template&id=97c48f5c&lang.mjs.map +1 -1
  37. package/es/components/cascader-panel/src/menu.vue.d.ts +2 -2
  38. package/es/components/cascader-panel/src/menu.vue_vue&type=script&lang.mjs.map +1 -1
  39. package/es/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.mjs +14 -11
  40. package/es/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.mjs.map +1 -1
  41. package/es/components/cascader-panel/src/node.vue.d.ts +1 -1
  42. package/es/components/cascader-panel/src/node.vue_vue&type=script&lang.mjs.map +1 -1
  43. package/es/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.mjs +1 -1
  44. package/es/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.mjs.map +1 -1
  45. package/es/components/color-picker/src/color.mjs +20 -13
  46. package/es/components/color-picker/src/color.mjs.map +1 -1
  47. package/es/components/config-provider/index.d.ts +12 -5
  48. package/es/components/config-provider/index.mjs +1 -1
  49. package/es/components/config-provider/index.mjs.map +1 -1
  50. package/es/components/config-provider/src/config-provider.d.ts +7 -0
  51. package/es/components/config-provider/src/config-provider.mjs +18 -0
  52. package/es/components/config-provider/src/config-provider.mjs.map +1 -0
  53. package/es/components/config-provider/src/index.d.ts +18 -0
  54. package/es/components/config-provider/src/index.mjs +22 -0
  55. package/es/components/config-provider/src/index.mjs.map +1 -0
  56. package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs +1 -1
  57. package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs.map +1 -1
  58. package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.mjs +1 -1
  59. package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.mjs.map +1 -1
  60. package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=template&id=0572814e&lang.mjs.map +1 -1
  61. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.mjs +23 -16
  62. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.mjs.map +1 -1
  63. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=template&id=78e07aa7&lang.mjs.map +1 -1
  64. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.mjs +2 -0
  65. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.mjs.map +1 -1
  66. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=template&id=62b45ab2&lang.mjs.map +1 -1
  67. package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.mjs +2 -1
  68. package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.mjs.map +1 -1
  69. package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=template&id=2e377892&lang.mjs.map +1 -1
  70. package/es/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.mjs +2 -0
  71. package/es/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.mjs.map +1 -1
  72. package/es/components/dropdown/src/dropdown-item.vue_vue&type=template&id=396ed16b&lang.mjs.map +1 -1
  73. package/es/components/dropdown/src/dropdown.vue_vue&type=script&lang.mjs.map +1 -1
  74. package/es/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.mjs +68 -68
  75. package/es/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.mjs.map +1 -1
  76. package/es/components/form/index.d.ts +2 -2
  77. package/es/components/form/src/form-item.vue_vue&type=script&lang.mjs +4 -3
  78. package/es/components/form/src/form-item.vue_vue&type=script&lang.mjs.map +1 -1
  79. package/es/components/form/src/form-item.vue_vue&type=template&id=24eda48b&lang.mjs.map +1 -1
  80. package/es/components/form/src/form.type.d.ts +1 -3
  81. package/es/components/form/src/form.vue.d.ts +2 -3
  82. package/es/components/image/index.d.ts +4 -0
  83. package/es/components/image/src/image.d.ts +1 -0
  84. package/es/components/image/src/image.mjs +4 -0
  85. package/es/components/image/src/image.mjs.map +1 -1
  86. package/es/components/image/src/image.vue.d.ts +4 -0
  87. package/es/components/image/src/image.vue_vue&type=script&lang.mjs +2 -2
  88. package/es/components/image/src/image.vue_vue&type=script&lang.mjs.map +1 -1
  89. package/es/components/image/src/image.vue_vue&type=template&id=34467287&lang.mjs.map +1 -1
  90. package/es/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
  91. package/es/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs +2 -2
  92. package/es/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs.map +1 -1
  93. package/es/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.mjs +2 -2
  94. package/es/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.mjs.map +1 -1
  95. package/es/components/input/src/input.vue_vue&type=script&lang.mjs +2 -2
  96. package/es/components/input/src/input.vue_vue&type=script&lang.mjs.map +1 -1
  97. package/es/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.mjs +18 -16
  98. package/es/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.mjs.map +1 -1
  99. package/es/components/loading/src/createLoadingComponent.mjs +3 -7
  100. package/es/components/loading/src/createLoadingComponent.mjs.map +1 -1
  101. package/es/components/menu/src/menu.mjs +1 -1
  102. package/es/components/menu/src/menu.mjs.map +1 -1
  103. package/es/components/menu/src/sub-menu.mjs +1 -1
  104. package/es/components/menu/src/sub-menu.mjs.map +1 -1
  105. package/es/components/message/src/message-method.mjs +13 -0
  106. package/es/components/message/src/message-method.mjs.map +1 -1
  107. package/es/components/message/src/message.d.ts +2 -0
  108. package/es/components/message/src/message.mjs +8 -0
  109. package/es/components/message/src/message.mjs.map +1 -1
  110. package/es/components/message/src/message.vue.d.ts +8 -0
  111. package/es/components/message/src/message.vue_vue&type=script&lang.mjs +7 -1
  112. package/es/components/message/src/message.vue_vue&type=script&lang.mjs.map +1 -1
  113. package/es/components/message/src/message.vue_vue&type=template&id=031967c2&lang.mjs +56 -46
  114. package/es/components/message/src/message.vue_vue&type=template&id=031967c2&lang.mjs.map +1 -1
  115. package/es/components/page-header/src/page-header.vue_vue&type=script&lang.mjs.map +1 -1
  116. package/es/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.mjs +3 -3
  117. package/es/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.mjs.map +1 -1
  118. package/es/components/popconfirm/src/popconfirm.vue_vue&type=script&lang.mjs.map +1 -1
  119. package/es/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.mjs +1 -1
  120. package/es/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.mjs.map +1 -1
  121. package/es/components/result/src/index.vue_vue&type=script&lang.mjs.map +1 -1
  122. package/es/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.mjs +4 -3
  123. package/es/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.mjs.map +1 -1
  124. package/es/components/select/index.d.ts +5 -1
  125. package/es/components/select/src/select.vue.d.ts +5 -1
  126. package/es/components/select/src/select.vue_vue&type=script&lang.mjs +4 -1
  127. package/es/components/select/src/select.vue_vue&type=script&lang.mjs.map +1 -1
  128. package/es/components/select/src/select.vue_vue&type=template&id=33774f85&lang.mjs +6 -5
  129. package/es/components/select/src/select.vue_vue&type=template&id=33774f85&lang.mjs.map +1 -1
  130. package/es/components/select/src/useSelect.mjs +1 -1
  131. package/es/components/select/src/useSelect.mjs.map +1 -1
  132. package/es/components/select-v2/index.d.ts +14 -0
  133. package/es/components/select-v2/src/defaults.d.ts +4 -0
  134. package/es/components/select-v2/src/defaults.mjs +4 -0
  135. package/es/components/select-v2/src/defaults.mjs.map +1 -1
  136. package/es/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.mjs +1 -0
  137. package/es/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.mjs.map +1 -1
  138. package/es/components/select-v2/src/select.vue.d.ts +7 -0
  139. package/es/components/select-v2/src/select.vue_vue&type=script&lang.mjs.map +1 -1
  140. package/es/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.mjs +9 -7
  141. package/es/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.mjs.map +1 -1
  142. package/es/components/table/src/config.mjs +22 -2
  143. package/es/components/table/src/config.mjs.map +1 -1
  144. package/es/components/table/src/store/watcher.mjs +15 -7
  145. package/es/components/table/src/store/watcher.mjs.map +1 -1
  146. package/es/components/table/src/table/style-helper.mjs +2 -2
  147. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  148. package/es/components/table/src/table-body/render-helper.mjs +2 -3
  149. package/es/components/table/src/table-body/render-helper.mjs.map +1 -1
  150. package/es/components/table/src/table-header/event-helper.mjs +3 -1
  151. package/es/components/table/src/table-header/event-helper.mjs.map +1 -1
  152. package/es/components/tabs/src/tab-nav.vue_vue&type=script&lang.mjs +3 -3
  153. package/es/components/tabs/src/tab-nav.vue_vue&type=script&lang.mjs.map +1 -1
  154. package/es/components/tabs/src/tabs.mjs +1 -1
  155. package/es/components/tabs/src/tabs.mjs.map +1 -1
  156. package/es/components/teleport/index.d.ts +23 -0
  157. package/es/components/teleport/index.mjs +9 -0
  158. package/es/components/teleport/index.mjs.map +1 -0
  159. package/es/components/teleport/src/teleport.d.ts +7 -0
  160. package/es/components/teleport/src/teleport.mjs +18 -0
  161. package/es/components/teleport/src/teleport.mjs.map +1 -0
  162. package/es/components/teleport/src/teleport.vue.d.ts +22 -0
  163. package/es/components/teleport/src/teleport.vue_vue&type=script&lang.mjs +28 -0
  164. package/es/components/teleport/src/teleport.vue_vue&type=script&lang.mjs.map +1 -0
  165. package/es/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.mjs +19 -0
  166. package/es/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.mjs.map +1 -0
  167. package/es/components/teleport/src/teleport2.mjs +7 -0
  168. package/es/components/teleport/src/teleport2.mjs.map +1 -0
  169. package/es/components/teleport/style/css.d.ts +0 -0
  170. package/es/components/teleport/style/css.mjs +2 -0
  171. package/es/components/teleport/style/css.mjs.map +1 -0
  172. package/es/components/teleport/style/index.d.ts +0 -0
  173. package/es/components/teleport/style/index.mjs +2 -0
  174. package/es/components/teleport/style/index.mjs.map +1 -0
  175. package/es/components/time-picker/src/common/picker.vue_vue&type=script&lang.mjs.map +1 -1
  176. package/es/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.mjs +11 -8
  177. package/es/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.mjs.map +1 -1
  178. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=script&lang.mjs.map +1 -1
  179. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.mjs +9 -1
  180. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.mjs.map +1 -1
  181. package/es/components/time-select/src/time-select.vue_vue&type=script&lang.mjs.map +1 -1
  182. package/es/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.mjs +6 -3
  183. package/es/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.mjs.map +1 -1
  184. package/es/components/transfer/src/transfer-panel.vue_vue&type=script&lang.mjs +2 -0
  185. package/es/components/transfer/src/transfer-panel.vue_vue&type=script&lang.mjs.map +1 -1
  186. package/es/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs +3 -2
  187. package/es/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs.map +1 -1
  188. package/es/components/transfer/src/useMove.mjs +3 -0
  189. package/es/components/transfer/src/useMove.mjs.map +1 -1
  190. package/es/components/tree/index.d.ts +6 -0
  191. package/es/components/tree/src/tree-node.vue.d.ts +1 -0
  192. package/es/components/tree/src/tree-node.vue_vue&type=script&lang.mjs +20 -0
  193. package/es/components/tree/src/tree-node.vue_vue&type=script&lang.mjs.map +1 -1
  194. package/es/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.mjs +10 -7
  195. package/es/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.mjs.map +1 -1
  196. package/es/components/tree/src/tree.type.d.ts +3 -0
  197. package/es/components/tree/src/tree.vue.d.ts +3 -0
  198. package/es/components/tree/src/tree.vue_vue&type=script&lang.mjs.map +1 -1
  199. package/es/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.mjs +2 -1
  200. package/es/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.mjs.map +1 -1
  201. package/es/components/tree-v2/src/tree-node.vue_vue&type=script&lang.mjs +4 -2
  202. package/es/components/tree-v2/src/tree-node.vue_vue&type=script&lang.mjs.map +1 -1
  203. package/es/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.mjs +5 -4
  204. package/es/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.mjs.map +1 -1
  205. package/es/components/tree-v2/src/tree.vue_vue&type=script&lang.mjs.map +1 -1
  206. package/es/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.mjs +2 -1
  207. package/es/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.mjs.map +1 -1
  208. package/es/components/virtual-list/src/builders/build-grid.d.ts +7 -2
  209. package/es/components/virtual-list/src/builders/build-list.d.ts +9 -3
  210. package/es/components/virtual-list/src/builders/build-list.mjs +7 -4
  211. package/es/components/virtual-list/src/builders/build-list.mjs.map +1 -1
  212. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +7 -2
  213. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +9 -3
  214. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +7 -2
  215. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +9 -3
  216. package/es/components/virtual-list/src/components/scrollbar.mjs +1 -2
  217. package/es/components/virtual-list/src/components/scrollbar.mjs.map +1 -1
  218. package/es/components/virtual-list/src/props.d.ts +6 -3
  219. package/es/components/virtual-list/src/props.mjs +5 -1
  220. package/es/components/virtual-list/src/props.mjs.map +1 -1
  221. package/es/hooks/index.d.ts +1 -0
  222. package/es/hooks/index.mjs +1 -0
  223. package/es/hooks/index.mjs.map +1 -1
  224. package/es/hooks/use-global-config/index.d.ts +1 -0
  225. package/es/hooks/use-global-config/index.mjs +15 -0
  226. package/es/hooks/use-global-config/index.mjs.map +1 -0
  227. package/es/hooks/use-locale/index.d.ts +2 -4
  228. package/es/hooks/use-locale/index.mjs +4 -3
  229. package/es/hooks/use-locale/index.mjs.map +1 -1
  230. package/es/hooks/use-popper/index.mjs +6 -5
  231. package/es/hooks/use-popper/index.mjs.map +1 -1
  232. package/es/index.mjs +2 -0
  233. package/es/index.mjs.map +1 -1
  234. package/es/tokens/config-provider.d.ts +4 -0
  235. package/es/tokens/config-provider.mjs +4 -0
  236. package/es/tokens/config-provider.mjs.map +1 -0
  237. package/es/tokens/index.d.ts +1 -0
  238. package/es/tokens/index.mjs +1 -0
  239. package/es/tokens/index.mjs.map +1 -1
  240. package/es/version.d.ts +1 -1
  241. package/es/version.mjs +1 -1
  242. package/es/version.mjs.map +1 -1
  243. package/lib/components/affix/src/affix.vue_vue&type=script&lang.js +1 -0
  244. package/lib/components/affix/src/affix.vue_vue&type=script&lang.js.map +1 -1
  245. package/lib/components/affix/src/affix.vue_vue&type=template&id=0745df9e&lang.js.map +1 -1
  246. package/lib/components/alert/src/alert.vue_vue&type=script&lang.js.map +1 -1
  247. package/lib/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.js +1 -1
  248. package/lib/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.js.map +1 -1
  249. package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.js +4 -0
  250. package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.js.map +1 -1
  251. package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=template&id=2f37792a&lang.js.map +1 -1
  252. package/lib/components/button/index.d.ts +6 -1
  253. package/lib/components/button/src/button.d.ts +4 -0
  254. package/lib/components/button/src/button.js +4 -1
  255. package/lib/components/button/src/button.js.map +1 -1
  256. package/lib/components/button/src/button.vue.d.ts +6 -1
  257. package/lib/components/button/src/button.vue_vue&type=script&lang.js +9 -3
  258. package/lib/components/button/src/button.vue_vue&type=script&lang.js.map +1 -1
  259. package/lib/components/button/src/button.vue_vue&type=template&id=802c5c76&lang.js.map +1 -1
  260. package/lib/components/cascader/index.d.ts +8430 -12
  261. package/lib/components/cascader/src/index.vue.d.ts +4216 -6
  262. package/lib/components/cascader/src/index.vue_vue&type=script&lang.js +25 -16
  263. package/lib/components/cascader/src/index.vue_vue&type=script&lang.js.map +1 -1
  264. package/lib/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.js.map +1 -1
  265. package/lib/components/cascader-panel/index.d.ts +238 -10
  266. package/lib/components/cascader-panel/src/index.vue.d.ts +122 -8
  267. package/lib/components/cascader-panel/src/index.vue_vue&type=script&lang.js +31 -12
  268. package/lib/components/cascader-panel/src/index.vue_vue&type=script&lang.js.map +1 -1
  269. package/lib/components/cascader-panel/src/index.vue_vue&type=template&id=97c48f5c&lang.js.map +1 -1
  270. package/lib/components/cascader-panel/src/menu.vue.d.ts +2 -2
  271. package/lib/components/cascader-panel/src/menu.vue_vue&type=script&lang.js.map +1 -1
  272. package/lib/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.js +14 -11
  273. package/lib/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.js.map +1 -1
  274. package/lib/components/cascader-panel/src/node.vue.d.ts +1 -1
  275. package/lib/components/cascader-panel/src/node.vue_vue&type=script&lang.js.map +1 -1
  276. package/lib/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.js +1 -1
  277. package/lib/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.js.map +1 -1
  278. package/lib/components/color-picker/src/color.js +20 -13
  279. package/lib/components/color-picker/src/color.js.map +1 -1
  280. package/lib/components/config-provider/index.d.ts +12 -5
  281. package/lib/components/config-provider/index.js +2 -2
  282. package/lib/components/config-provider/index.js.map +1 -1
  283. package/lib/components/config-provider/src/config-provider.d.ts +7 -0
  284. package/lib/components/config-provider/src/config-provider.js +22 -0
  285. package/lib/components/config-provider/src/config-provider.js.map +1 -0
  286. package/lib/components/config-provider/src/index.d.ts +18 -0
  287. package/lib/components/config-provider/src/index.js +26 -0
  288. package/lib/components/config-provider/src/index.js.map +1 -0
  289. package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js +1 -1
  290. package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js.map +1 -1
  291. package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.js +1 -1
  292. package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.js.map +1 -1
  293. package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=template&id=0572814e&lang.js.map +1 -1
  294. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.js +22 -15
  295. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.js.map +1 -1
  296. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=template&id=78e07aa7&lang.js.map +1 -1
  297. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.js +4 -2
  298. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.js.map +1 -1
  299. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=template&id=62b45ab2&lang.js.map +1 -1
  300. package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.js +4 -3
  301. package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.js.map +1 -1
  302. package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=template&id=2e377892&lang.js.map +1 -1
  303. package/lib/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.js +2 -0
  304. package/lib/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.js.map +1 -1
  305. package/lib/components/dropdown/src/dropdown-item.vue_vue&type=template&id=396ed16b&lang.js.map +1 -1
  306. package/lib/components/dropdown/src/dropdown.vue_vue&type=script&lang.js.map +1 -1
  307. package/lib/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.js +67 -67
  308. package/lib/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.js.map +1 -1
  309. package/lib/components/form/index.d.ts +2 -2
  310. package/lib/components/form/src/form-item.vue_vue&type=script&lang.js +3 -2
  311. package/lib/components/form/src/form-item.vue_vue&type=script&lang.js.map +1 -1
  312. package/lib/components/form/src/form-item.vue_vue&type=template&id=24eda48b&lang.js.map +1 -1
  313. package/lib/components/form/src/form.type.d.ts +1 -3
  314. package/lib/components/form/src/form.vue.d.ts +2 -3
  315. package/lib/components/image/index.d.ts +4 -0
  316. package/lib/components/image/src/image.d.ts +1 -0
  317. package/lib/components/image/src/image.js +4 -0
  318. package/lib/components/image/src/image.js.map +1 -1
  319. package/lib/components/image/src/image.vue.d.ts +4 -0
  320. package/lib/components/image/src/image.vue_vue&type=script&lang.js +2 -2
  321. package/lib/components/image/src/image.vue_vue&type=script&lang.js.map +1 -1
  322. package/lib/components/image/src/image.vue_vue&type=template&id=34467287&lang.js.map +1 -1
  323. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
  324. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js +2 -2
  325. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js.map +1 -1
  326. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.js +2 -2
  327. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.js.map +1 -1
  328. package/lib/components/input/src/input.vue_vue&type=script&lang.js +1 -1
  329. package/lib/components/input/src/input.vue_vue&type=script&lang.js.map +1 -1
  330. package/lib/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.js +17 -15
  331. package/lib/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.js.map +1 -1
  332. package/lib/components/loading/src/createLoadingComponent.js +3 -7
  333. package/lib/components/loading/src/createLoadingComponent.js.map +1 -1
  334. package/lib/components/menu/src/menu.js +1 -1
  335. package/lib/components/menu/src/menu.js.map +1 -1
  336. package/lib/components/menu/src/sub-menu.js +1 -1
  337. package/lib/components/menu/src/sub-menu.js.map +1 -1
  338. package/lib/components/message/src/message-method.js +13 -0
  339. package/lib/components/message/src/message-method.js.map +1 -1
  340. package/lib/components/message/src/message.d.ts +2 -0
  341. package/lib/components/message/src/message.js +8 -0
  342. package/lib/components/message/src/message.js.map +1 -1
  343. package/lib/components/message/src/message.vue.d.ts +8 -0
  344. package/lib/components/message/src/message.vue_vue&type=script&lang.js +8 -2
  345. package/lib/components/message/src/message.vue_vue&type=script&lang.js.map +1 -1
  346. package/lib/components/message/src/message.vue_vue&type=template&id=031967c2&lang.js +55 -45
  347. package/lib/components/message/src/message.vue_vue&type=template&id=031967c2&lang.js.map +1 -1
  348. package/lib/components/page-header/src/page-header.vue_vue&type=script&lang.js.map +1 -1
  349. package/lib/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.js +2 -2
  350. package/lib/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.js.map +1 -1
  351. package/lib/components/popconfirm/src/popconfirm.vue_vue&type=script&lang.js.map +1 -1
  352. package/lib/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.js +1 -1
  353. package/lib/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.js.map +1 -1
  354. package/lib/components/result/src/index.vue_vue&type=script&lang.js.map +1 -1
  355. package/lib/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.js +3 -2
  356. package/lib/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.js.map +1 -1
  357. package/lib/components/select/index.d.ts +5 -1
  358. package/lib/components/select/src/select.vue.d.ts +5 -1
  359. package/lib/components/select/src/select.vue_vue&type=script&lang.js +4 -1
  360. package/lib/components/select/src/select.vue_vue&type=script&lang.js.map +1 -1
  361. package/lib/components/select/src/select.vue_vue&type=template&id=33774f85&lang.js +6 -5
  362. package/lib/components/select/src/select.vue_vue&type=template&id=33774f85&lang.js.map +1 -1
  363. package/lib/components/select/src/useSelect.js +1 -1
  364. package/lib/components/select/src/useSelect.js.map +1 -1
  365. package/lib/components/select-v2/index.d.ts +14 -0
  366. package/lib/components/select-v2/src/defaults.d.ts +4 -0
  367. package/lib/components/select-v2/src/defaults.js +4 -0
  368. package/lib/components/select-v2/src/defaults.js.map +1 -1
  369. package/lib/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.js +1 -0
  370. package/lib/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.js.map +1 -1
  371. package/lib/components/select-v2/src/select.vue.d.ts +7 -0
  372. package/lib/components/select-v2/src/select.vue_vue&type=script&lang.js.map +1 -1
  373. package/lib/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.js +9 -7
  374. package/lib/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.js.map +1 -1
  375. package/lib/components/table/src/config.js +22 -2
  376. package/lib/components/table/src/config.js.map +1 -1
  377. package/lib/components/table/src/store/watcher.js +14 -6
  378. package/lib/components/table/src/store/watcher.js.map +1 -1
  379. package/lib/components/table/src/table/style-helper.js +2 -2
  380. package/lib/components/table/src/table/style-helper.js.map +1 -1
  381. package/lib/components/table/src/table-body/render-helper.js +2 -3
  382. package/lib/components/table/src/table-body/render-helper.js.map +1 -1
  383. package/lib/components/table/src/table-header/event-helper.js +3 -1
  384. package/lib/components/table/src/table-header/event-helper.js.map +1 -1
  385. package/lib/components/tabs/src/tab-nav.vue_vue&type=script&lang.js +3 -3
  386. package/lib/components/tabs/src/tab-nav.vue_vue&type=script&lang.js.map +1 -1
  387. package/lib/components/tabs/src/tabs.js +1 -1
  388. package/lib/components/tabs/src/tabs.js.map +1 -1
  389. package/lib/components/teleport/index.d.ts +23 -0
  390. package/lib/components/teleport/index.js +15 -0
  391. package/lib/components/teleport/index.js.map +1 -0
  392. package/lib/components/teleport/src/teleport.d.ts +7 -0
  393. package/lib/components/teleport/src/teleport.js +22 -0
  394. package/lib/components/teleport/src/teleport.js.map +1 -0
  395. package/lib/components/teleport/src/teleport.vue.d.ts +22 -0
  396. package/lib/components/teleport/src/teleport.vue_vue&type=script&lang.js +32 -0
  397. package/lib/components/teleport/src/teleport.vue_vue&type=script&lang.js.map +1 -0
  398. package/lib/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.js +23 -0
  399. package/lib/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.js.map +1 -0
  400. package/lib/components/teleport/src/teleport2.js +12 -0
  401. package/lib/components/teleport/src/teleport2.js.map +1 -0
  402. package/lib/components/teleport/style/css.d.ts +0 -0
  403. package/lib/components/teleport/style/css.js +3 -0
  404. package/lib/components/teleport/style/css.js.map +1 -0
  405. package/lib/components/teleport/style/index.d.ts +0 -0
  406. package/lib/components/teleport/style/index.js +3 -0
  407. package/lib/components/teleport/style/index.js.map +1 -0
  408. package/lib/components/time-picker/src/common/picker.vue_vue&type=script&lang.js.map +1 -1
  409. package/lib/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.js +10 -7
  410. package/lib/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.js.map +1 -1
  411. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=script&lang.js.map +1 -1
  412. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.js +9 -1
  413. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.js.map +1 -1
  414. package/lib/components/time-select/src/time-select.vue_vue&type=script&lang.js.map +1 -1
  415. package/lib/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.js +5 -2
  416. package/lib/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.js.map +1 -1
  417. package/lib/components/transfer/src/transfer-panel.vue_vue&type=script&lang.js +4 -2
  418. package/lib/components/transfer/src/transfer-panel.vue_vue&type=script&lang.js.map +1 -1
  419. package/lib/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.js +3 -2
  420. package/lib/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.js.map +1 -1
  421. package/lib/components/transfer/src/useMove.js +3 -0
  422. package/lib/components/transfer/src/useMove.js.map +1 -1
  423. package/lib/components/tree/index.d.ts +6 -0
  424. package/lib/components/tree/src/tree-node.vue.d.ts +1 -0
  425. package/lib/components/tree/src/tree-node.vue_vue&type=script&lang.js +20 -0
  426. package/lib/components/tree/src/tree-node.vue_vue&type=script&lang.js.map +1 -1
  427. package/lib/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.js +9 -6
  428. package/lib/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.js.map +1 -1
  429. package/lib/components/tree/src/tree.type.d.ts +3 -0
  430. package/lib/components/tree/src/tree.vue.d.ts +3 -0
  431. package/lib/components/tree/src/tree.vue_vue&type=script&lang.js.map +1 -1
  432. package/lib/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.js +2 -1
  433. package/lib/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.js.map +1 -1
  434. package/lib/components/tree-v2/src/tree-node.vue_vue&type=script&lang.js +4 -2
  435. package/lib/components/tree-v2/src/tree-node.vue_vue&type=script&lang.js.map +1 -1
  436. package/lib/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.js +4 -3
  437. package/lib/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.js.map +1 -1
  438. package/lib/components/tree-v2/src/tree.vue_vue&type=script&lang.js.map +1 -1
  439. package/lib/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.js +2 -1
  440. package/lib/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.js.map +1 -1
  441. package/lib/components/virtual-list/src/builders/build-grid.d.ts +7 -2
  442. package/lib/components/virtual-list/src/builders/build-list.d.ts +9 -3
  443. package/lib/components/virtual-list/src/builders/build-list.js +7 -4
  444. package/lib/components/virtual-list/src/builders/build-list.js.map +1 -1
  445. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +7 -2
  446. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +9 -3
  447. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +7 -2
  448. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +9 -3
  449. package/lib/components/virtual-list/src/components/scrollbar.js +1 -2
  450. package/lib/components/virtual-list/src/components/scrollbar.js.map +1 -1
  451. package/lib/components/virtual-list/src/props.d.ts +6 -3
  452. package/lib/components/virtual-list/src/props.js +5 -1
  453. package/lib/components/virtual-list/src/props.js.map +1 -1
  454. package/lib/hooks/index.d.ts +1 -0
  455. package/lib/hooks/index.js +2 -0
  456. package/lib/hooks/index.js.map +1 -1
  457. package/lib/hooks/use-global-config/index.d.ts +1 -0
  458. package/lib/hooks/use-global-config/index.js +19 -0
  459. package/lib/hooks/use-global-config/index.js.map +1 -0
  460. package/lib/hooks/use-locale/index.d.ts +2 -4
  461. package/lib/hooks/use-locale/index.js +4 -3
  462. package/lib/hooks/use-locale/index.js.map +1 -1
  463. package/lib/hooks/use-popper/index.js +6 -5
  464. package/lib/hooks/use-popper/index.js.map +1 -1
  465. package/lib/index.js +4 -0
  466. package/lib/index.js.map +1 -1
  467. package/lib/tokens/config-provider.d.ts +4 -0
  468. package/lib/tokens/config-provider.js +8 -0
  469. package/lib/tokens/config-provider.js.map +1 -0
  470. package/lib/tokens/index.d.ts +1 -0
  471. package/lib/tokens/index.js +2 -0
  472. package/lib/tokens/index.js.map +1 -1
  473. package/lib/version.d.ts +1 -1
  474. package/lib/version.js +1 -1
  475. package/lib/version.js.map +1 -1
  476. package/package.json +2 -2
  477. package/tags.json +1 -1
  478. package/theme-chalk/el-checkbox.css +1 -1
  479. package/theme-chalk/el-date-picker.css +1 -1
  480. package/theme-chalk/el-form.css +1 -1
  481. package/theme-chalk/el-input-number.css +1 -1
  482. package/theme-chalk/el-input.css +1 -1
  483. package/theme-chalk/el-menu.css +1 -1
  484. package/theme-chalk/el-message.css +1 -1
  485. package/theme-chalk/el-select.css +1 -1
  486. package/theme-chalk/el-tabs.css +1 -1
  487. package/theme-chalk/el-time-picker.css +1 -1
  488. package/theme-chalk/el-time-select.css +1 -1
  489. package/theme-chalk/el-virtual-list.css +1 -1
  490. package/theme-chalk/index.css +1 -1
  491. package/theme-chalk/src/checkbox.scss +1 -1
  492. package/theme-chalk/src/common/var.scss +0 -2
  493. package/theme-chalk/src/date-picker/picker.scss +0 -1
  494. package/theme-chalk/src/form.scss +1 -1
  495. package/theme-chalk/src/input-number.scss +1 -0
  496. package/theme-chalk/src/input.scss +14 -15
  497. package/theme-chalk/src/menu.scss +16 -14
  498. package/theme-chalk/src/message.scss +6 -1
  499. package/theme-chalk/src/select.scss +2 -3
  500. package/theme-chalk/src/tabs.scss +6 -0
  501. package/theme-chalk/src/virtual-list.scss +16 -0
  502. package/web-types.json +1 -1
  503. package/es/components/affix/index.d.ts +0 -48
  504. package/es/components/affix/src/affix.vue.d.ts +0 -48
  505. package/es/components/color-picker/src/components/alpha-slider.vue.d.ts +0 -30
  506. package/es/components/config-provider/config-provider.d.ts +0 -11
  507. package/es/components/config-provider/config-provider.mjs +0 -20
  508. package/es/components/config-provider/config-provider.mjs.map +0 -1
  509. package/es/components/select/src/useSelect.d.ts +0 -76
  510. package/es/components/slider/index.d.ts +0 -307
  511. package/es/components/slider/src/index.vue.d.ts +0 -155
  512. package/es/components/slider/src/useSlide.d.ts +0 -21
  513. package/es/components/tree-v2/src/composables/useTree.d.ts +0 -29
  514. package/lib/components/affix/index.d.ts +0 -48
  515. package/lib/components/affix/src/affix.vue.d.ts +0 -48
  516. package/lib/components/color-picker/src/components/alpha-slider.vue.d.ts +0 -30
  517. package/lib/components/config-provider/config-provider.d.ts +0 -11
  518. package/lib/components/config-provider/config-provider.js +0 -24
  519. package/lib/components/config-provider/config-provider.js.map +0 -1
  520. package/lib/components/select/src/useSelect.d.ts +0 -76
  521. package/lib/components/slider/index.d.ts +0 -307
  522. package/lib/components/slider/src/index.vue.d.ts +0 -155
  523. package/lib/components/slider/src/useSlide.d.ts +0 -21
  524. package/lib/components/tree-v2/src/composables/useTree.d.ts +0 -29
@@ -170,15 +170,16 @@ var script = defineComponent({
170
170
  return (_a = popper.value) == null ? void 0 : _a.popperRef;
171
171
  });
172
172
  const togglePopperVisible = (visible) => {
173
+ var _a, _b, _c;
173
174
  if (isDisabled.value)
174
175
  return;
175
176
  visible = visible != null ? visible : !popperVisible.value;
176
177
  if (visible !== popperVisible.value) {
177
178
  popperVisible.value = visible;
178
- input.value.input.setAttribute("aria-expanded", visible);
179
+ (_b = (_a = input.value) == null ? void 0 : _a.input) == null ? void 0 : _b.setAttribute("aria-expanded", `${visible}`);
179
180
  if (visible) {
180
181
  updatePopperPosition();
181
- nextTick(panel.value.scrollToExpandingNode);
182
+ nextTick((_c = panel.value) == null ? void 0 : _c.scrollToExpandingNode);
182
183
  } else if (props.filterable) {
183
184
  const { value } = presentText;
184
185
  inputValue.value = value;
@@ -188,7 +189,8 @@ var script = defineComponent({
188
189
  }
189
190
  };
190
191
  const updatePopperPosition = () => {
191
- nextTick(popper.value.update);
192
+ var _a;
193
+ nextTick((_a = popper.value) == null ? void 0 : _a.update);
192
194
  };
193
195
  const hideSuggestionPanel = () => {
194
196
  filtering.value = false;
@@ -204,9 +206,10 @@ var script = defineComponent({
204
206
  };
205
207
  };
206
208
  const deleteTag = (tag) => {
207
- const { node } = tag;
209
+ var _a;
210
+ const node = tag.node;
208
211
  node.doCheck(false);
209
- panel.value.calculateCheckedValue();
212
+ (_a = panel.value) == null ? void 0 : _a.calculateCheckedValue();
210
213
  emit("remove-tag", node.valueByOption);
211
214
  };
212
215
  const calculatePresentTags = () => {
@@ -233,8 +236,9 @@ var script = defineComponent({
233
236
  presentTags.value = tags;
234
237
  };
235
238
  const calculateSuggestions = () => {
239
+ var _a, _b;
236
240
  const { filterMethod, showAllLevels, separator } = props;
237
- const res = panel.value.getFlattedNodes(!props.props.checkStrictly).filter((node) => {
241
+ const res = (_b = (_a = panel.value) == null ? void 0 : _a.getFlattedNodes(!props.props.checkStrictly)) == null ? void 0 : _b.filter((node) => {
238
242
  if (node.isDisabled)
239
243
  return false;
240
244
  node.calcText(showAllLevels, separator);
@@ -251,7 +255,7 @@ var script = defineComponent({
251
255
  };
252
256
  const focusFirstNode = () => {
253
257
  var _a;
254
- let firstNode = null;
258
+ let firstNode;
255
259
  if (filtering.value && suggestionPanel.value) {
256
260
  firstNode = suggestionPanel.value.$el.querySelector(".el-cascader__suggestion-item");
257
261
  } else {
@@ -263,10 +267,10 @@ var script = defineComponent({
263
267
  }
264
268
  };
265
269
  const updateStyle = () => {
266
- var _a;
267
- const inputInner = input.value.input;
270
+ var _a, _b;
271
+ const inputInner = (_a = input.value) == null ? void 0 : _a.input;
268
272
  const tagWrapperEl = tagWrapper.value;
269
- const suggestionPanelEl = (_a = suggestionPanel.value) == null ? void 0 : _a.$el;
273
+ const suggestionPanelEl = (_b = suggestionPanel.value) == null ? void 0 : _b.$el;
270
274
  if (isServer || !inputInner)
271
275
  return;
272
276
  if (suggestionPanelEl) {
@@ -281,7 +285,8 @@ var script = defineComponent({
281
285
  }
282
286
  };
283
287
  const getCheckedNodes = (leafOnly) => {
284
- return panel.value.getCheckedNodes(leafOnly);
288
+ var _a;
289
+ return (_a = panel.value) == null ? void 0 : _a.getCheckedNodes(leafOnly);
285
290
  };
286
291
  const handleExpandChange = (value) => {
287
292
  updatePopperPosition();
@@ -317,15 +322,17 @@ var script = defineComponent({
317
322
  }
318
323
  };
319
324
  const handleClear = () => {
320
- panel.value.clearCheckedNodes();
325
+ var _a;
326
+ (_a = panel.value) == null ? void 0 : _a.clearCheckedNodes();
321
327
  togglePopperVisible(false);
322
328
  };
323
329
  const handleSuggestionClick = (node) => {
330
+ var _a, _b;
324
331
  const { checked } = node;
325
332
  if (multiple.value) {
326
- panel.value.handleCheckChange(node, !checked, false);
333
+ (_a = panel.value) == null ? void 0 : _a.handleCheckChange(node, !checked, false);
327
334
  } else {
328
- !checked && panel.value.handleCheckChange(node, true, false);
335
+ !checked && ((_b = panel.value) == null ? void 0 : _b.handleCheckChange(node, true, false));
329
336
  togglePopperVisible(false);
330
337
  }
331
338
  };
@@ -387,12 +394,14 @@ var script = defineComponent({
387
394
  });
388
395
  watch(presentText, (val) => inputValue.value = val, { immediate: true });
389
396
  onMounted(() => {
390
- const inputEl = input.value.$el;
397
+ var _a;
398
+ const inputEl = (_a = input.value) == null ? void 0 : _a.$el;
391
399
  inputInitialHeight = (inputEl == null ? void 0 : inputEl.offsetHeight) || INPUT_HEIGHT_MAP[realSize.value] || DEFAULT_INPUT_HEIGHT;
392
400
  addResizeListener(inputEl, updateStyle);
393
401
  });
394
402
  onBeforeUnmount(() => {
395
- removeResizeListener(input.value.$el, updateStyle);
403
+ var _a;
404
+ removeResizeListener((_a = input.value) == null ? void 0 : _a.$el, updateStyle);
396
405
  });
397
406
  return {
398
407
  Effect,
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/cascader/src/index.vue"],"sourcesContent":["<template>\n <el-popper\n ref=\"popper\"\n v-model:visible=\"popperVisible\"\n manual-mode\n :append-to-body=\"popperAppendToBody\"\n placement=\"bottom-start\"\n :popper-class=\"`el-cascader__dropdown ${popperClass}`\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :stop-popper-mouse-event=\"false\"\n transition=\"el-zoom-in-top\"\n :gpu-acceleration=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n @after-leave=\"hideSuggestionPanel\"\n >\n <template #trigger>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n 'el-cascader',\n realSize && `el-cascader--${realSize}`,\n { 'is-disabled': isDisabled },\n ]\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model.trim=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"{ 'is-focus': popperVisible }\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n class=\"el-input__icon icon-circle-close\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n 'el-input__icon',\n 'icon-arrow-down',\n popperVisible && 'is-reverse',\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" class=\"el-cascader__tags\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n type=\"info\"\n :size=\"tagSize\"\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 <input\n v-if=\"filterable && !isDisabled\"\n v-model.trim=\"searchInputValue\"\n type=\"text\"\n class=\"el-cascader__search-input\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\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 #default>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"togglePopperVisible(false)\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n class=\"el-cascader__suggestion-panel\"\n view-class=\"el-cascader__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 'el-cascader__suggestion-item',\n item.checked && 'is-checked',\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\"><check /></el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li class=\"el-cascader__empty-text\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onBeforeUnmount,\n ref,\n watch,\n} from 'vue'\nimport { isPromise } from '@vue/shared'\nimport debounce from 'lodash/debounce'\n\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport { useLocaleInject } from '@element-plus/hooks'\n\nimport { EVENT_CODE, focusNode, getSibling } from '@element-plus/utils/aria'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport isServer from '@element-plus/utils/isServer'\nimport { useGlobalConfig } from '@element-plus/utils/util'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { CircleClose, Check, ArrowDown } from '@element-plus/icons'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type {\n CascaderValue,\n CascaderNode,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/utils/types'\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n medium: 36,\n small: 32,\n mini: 28,\n}\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'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\n\nexport default defineComponent({\n name: 'ElCascader',\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElPopper,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const { t } = useLocaleInject()\n const $ELEMENT = useGlobalConfig()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const popper = ref(null)\n const input = ref(null)\n const tagWrapper = ref(null)\n const panel = ref(null)\n const suggestionPanel = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || elForm.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize: ComputedRef<ComponentSize> = computed(\n () => props.size || elFormItem.size || $ELEMENT.size\n )\n const tagSize = computed(() =>\n ['small', 'mini'].includes(realSize.value) ? 'mini' : 'small'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const 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\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n elFormItem.validate?.('change')\n },\n })\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n const 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 input.value.input.setAttribute('aria-expanded', visible)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value.scrollToExpandingNode)\n } else if (props.filterable) {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(popper.value.update)\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const 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\n const deleteTag = (tag: Tag) => {\n const { node } = tag\n node.doCheck(false)\n panel.value.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.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 presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode = null\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n '.el-cascader__suggestion-item'\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n '.el-cascader-node[tabindex=\"-1\"]'\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (isServer || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n '.el-cascader__suggestion-list'\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\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 case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value.clearCheckedNodes()\n togglePopperVisible(false)\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n '.el-cascader__suggestion-item[tabindex=\"-1\"]'\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount) return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\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 }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n addResizeListener(inputEl, updateStyle)\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(input.value.$el, updateStyle)\n })\n\n return {\n Effect,\n popperOptions,\n popper,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["ElCascaderPanel","ElPopper","ElScrollbar","Clickoutside"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/cascader/src/index.vue"],"sourcesContent":["<template>\n <el-popper\n ref=\"popper\"\n v-model:visible=\"popperVisible\"\n manual-mode\n :append-to-body=\"popperAppendToBody\"\n placement=\"bottom-start\"\n :popper-class=\"`el-cascader__dropdown ${popperClass}`\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :stop-popper-mouse-event=\"false\"\n transition=\"el-zoom-in-top\"\n :gpu-acceleration=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n @after-leave=\"hideSuggestionPanel\"\n >\n <template #trigger>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n 'el-cascader',\n realSize && `el-cascader--${realSize}`,\n { 'is-disabled': isDisabled },\n ]\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model.trim=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"{ 'is-focus': popperVisible }\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n class=\"el-input__icon icon-circle-close\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n 'el-input__icon',\n 'icon-arrow-down',\n popperVisible && 'is-reverse',\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" class=\"el-cascader__tags\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n type=\"info\"\n :size=\"tagSize\"\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 <input\n v-if=\"filterable && !isDisabled\"\n v-model.trim=\"searchInputValue\"\n type=\"text\"\n class=\"el-cascader__search-input\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\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 #default>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"togglePopperVisible(false)\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n class=\"el-cascader__suggestion-panel\"\n view-class=\"el-cascader__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 'el-cascader__suggestion-item',\n item.checked && 'is-checked',\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\"><check /></el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li class=\"el-cascader__empty-text\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onBeforeUnmount,\n ref,\n watch,\n} from 'vue'\nimport { isPromise } from '@vue/shared'\nimport debounce from 'lodash/debounce'\n\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport { useLocaleInject } from '@element-plus/hooks'\n\nimport { EVENT_CODE, focusNode, getSibling } from '@element-plus/utils/aria'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport isServer from '@element-plus/utils/isServer'\nimport { useGlobalConfig } from '@element-plus/utils/util'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { CircleClose, Check, ArrowDown } from '@element-plus/icons'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type {\n CascaderValue,\n CascaderNode,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/utils/types'\n\ntype cascaderPanelType = InstanceType<typeof ElCascaderPanel>\ntype popperType = InstanceType<typeof ElPopper>\ntype inputType = InstanceType<typeof ElInput>\ntype suggestionPanelType = InstanceType<typeof ElScrollbar>\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n medium: 36,\n small: 32,\n mini: 28,\n}\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 as any\n if (['right', 'left'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\n\nexport default defineComponent({\n name: 'ElCascader',\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElPopper,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const { t } = useLocaleInject()\n const $ELEMENT = useGlobalConfig()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const popper: Ref<popperType | null> = ref(null)\n const input: Ref<inputType | null> = ref(null)\n const tagWrapper = ref(null)\n const panel: Ref<cascaderPanelType | null> = ref(null)\n const suggestionPanel: Ref<suggestionPanelType | null> = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || elForm.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize: ComputedRef<ComponentSize> = computed(\n () => props.size || elFormItem.size || $ELEMENT.size\n )\n const tagSize = computed(() =>\n ['small', 'mini'].includes(realSize.value) ? 'mini' : 'small'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const 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\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n elFormItem.validate?.('change')\n },\n })\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n const 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 input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(popper.value?.update)\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const 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\n const deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n panel.value?.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.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 presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n '.el-cascader__suggestion-item'\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n '.el-cascader-node[tabindex=\"-1\"]'\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (isServer || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n '.el-cascader__suggestion-list'\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value?.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\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 case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value?.clearCheckedNodes()\n togglePopperVisible(false)\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n '.el-cascader__suggestion-item[tabindex=\"-1\"]'\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount) return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\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 }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value?.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n addResizeListener(inputEl, updateStyle)\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(input.value?.$el, updateStyle)\n })\n\n return {\n Effect,\n popperOptions,\n popper,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["ElCascaderPanel","ElPopper","ElScrollbar","Clickoutside"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue_vue&type=template&id=0429c2db&lang.mjs","sources":["../../../../../../packages/components/cascader/src/index.vue?vue&type=template&id=0429c2db&lang.js"],"sourcesContent":["<template>\n <el-popper\n ref=\"popper\"\n v-model:visible=\"popperVisible\"\n manual-mode\n :append-to-body=\"popperAppendToBody\"\n placement=\"bottom-start\"\n :popper-class=\"`el-cascader__dropdown ${popperClass}`\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :stop-popper-mouse-event=\"false\"\n transition=\"el-zoom-in-top\"\n :gpu-acceleration=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n @after-leave=\"hideSuggestionPanel\"\n >\n <template #trigger>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n 'el-cascader',\n realSize && `el-cascader--${realSize}`,\n { 'is-disabled': isDisabled },\n ]\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model.trim=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"{ 'is-focus': popperVisible }\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n class=\"el-input__icon icon-circle-close\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n 'el-input__icon',\n 'icon-arrow-down',\n popperVisible && 'is-reverse',\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" class=\"el-cascader__tags\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n type=\"info\"\n :size=\"tagSize\"\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 <input\n v-if=\"filterable && !isDisabled\"\n v-model.trim=\"searchInputValue\"\n type=\"text\"\n class=\"el-cascader__search-input\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\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 #default>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"togglePopperVisible(false)\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n class=\"el-cascader__suggestion-panel\"\n view-class=\"el-cascader__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 'el-cascader__suggestion-item',\n item.checked && 'is-checked',\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\"><check /></el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li class=\"el-cascader__empty-text\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onBeforeUnmount,\n ref,\n watch,\n} from 'vue'\nimport { isPromise } from '@vue/shared'\nimport debounce from 'lodash/debounce'\n\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport { useLocaleInject } from '@element-plus/hooks'\n\nimport { EVENT_CODE, focusNode, getSibling } from '@element-plus/utils/aria'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport isServer from '@element-plus/utils/isServer'\nimport { useGlobalConfig } from '@element-plus/utils/util'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { CircleClose, Check, ArrowDown } from '@element-plus/icons'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type {\n CascaderValue,\n CascaderNode,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/utils/types'\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n medium: 36,\n small: 32,\n mini: 28,\n}\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'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\n\nexport default defineComponent({\n name: 'ElCascader',\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElPopper,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const { t } = useLocaleInject()\n const $ELEMENT = useGlobalConfig()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const popper = ref(null)\n const input = ref(null)\n const tagWrapper = ref(null)\n const panel = ref(null)\n const suggestionPanel = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || elForm.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize: ComputedRef<ComponentSize> = computed(\n () => props.size || elFormItem.size || $ELEMENT.size\n )\n const tagSize = computed(() =>\n ['small', 'mini'].includes(realSize.value) ? 'mini' : 'small'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const 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\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n elFormItem.validate?.('change')\n },\n })\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n const 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 input.value.input.setAttribute('aria-expanded', visible)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value.scrollToExpandingNode)\n } else if (props.filterable) {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(popper.value.update)\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const 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\n const deleteTag = (tag: Tag) => {\n const { node } = tag\n node.doCheck(false)\n panel.value.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.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 presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode = null\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n '.el-cascader__suggestion-item'\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n '.el-cascader-node[tabindex=\"-1\"]'\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (isServer || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n '.el-cascader__suggestion-list'\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\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 case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value.clearCheckedNodes()\n togglePopperVisible(false)\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n '.el-cascader__suggestion-item[tabindex=\"-1\"]'\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount) return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\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 }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n addResizeListener(inputEl, updateStyle)\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(input.value.$el, updateStyle)\n })\n\n return {\n Effect,\n popperOptions,\n popper,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_createElementVNode","_createVNode","_createElementBlock","_renderSlot"],"mappings":";;;;EAsE6B,KAAI;AAAA,EAAa,OAAM;AAAA;;;qBAmEtC,OAAM;;;;;;;;;;;;sBAxIlBA;IACE,KAAI;AAAA,IACI,SAAS;gEAAA;IACjB,eAAA;AAAA,IACC,kBAAgB;IACjB,WAAU;AAAA,IACT,yCAAuC;IACvC,kBAAgB;IAChB,uBAAqB;IACrB,2BAAyB;AAAA,IAC1B,YAAW;AAAA,IACV,oBAAkB;AAAA,IAClB,QAAQ,YAAO;AAAA,IAChB,MAAA;AAAA,IACC,cAAa;;IAEH,iBACT;qBAAAC;QAEG;;;;;QAKA,2CAAa,yBAAoB,gBAAW;QAC5C,oDAAS;QACT,sDAAY;QACZ,sDAAY;;QAEbC;UACE,KAAI;AAAA,sBACU;uEAAA;0BAAd;UACC,aAAa;UACb,UAAU;UACV,UAAU;UACV,kBAAgB;AAAA,UAChB,MAAM;UACN,oCAAqB;UACrB,oBAAkB;UAClB,qBAAmB;UACnB,kBAAgB;UAChB,oCAAQ,MAAM,oBAAe;AAAA,UAC7B,mCAAO,MAAM,mBAAc;AAAA,UAC3B,SAAO;;UAEG,gBACT;YACQ,qCADRF;cAEE,KAAI;AAAA,cACJ,OAAM;AAAA,cACL,uBAAY;;+BAEb;gBAAAE;;;gDAEFF;cAEE,KAAI;AAAA,cACH;;;;;cAKA,6DAAY;;+BAEb;gBAAAE;;;;;;;QAKK,8BAAXC,0BAAA;4BACEA,8CACgB,mBAAP;gCADTH;cAEG,KAAK,IAAI;AAAA,cACV,MAAK;AAAA,cACJ,MAAM;cACN,KAAK,IAAI;AAAA,cACT,UAAU,IAAI;AAAA,cACf,uBAAA;AAAA,cACC,qBAAO,eAAU;AAAA;+BAElB;gBAAAC,iDAAS,IAAI;;;;;UAGP,oBAAe,+CADvBE;;yEAEgB;YACd,MAAK;AAAA,YACL,OAAM;AAAA,YACL,aAAa,wBAAmB;YAChC,oCAAQ,MAAM,iBAAY,uBAAkB;AAAA,YAC5C,6DAAY;YACZ,2DAAgB;YAChB,2DAAkB;YAClB,4DAAmB;YACnB,2DAAgB;;;;cATH;;sBAAd;AAAA;AAAA;;;wCAlEkC,iCAAvB;;;IAiFR,iBACT;qBAAAD;QAEE,KAAI;AAAA,oBACK;uEAAA;QACR,SAAS;QACT,OAAO;QACP,QAAQ;AAAA,QACR,gBAAc,YAAO;AAAA,QACrB,gBAAe;QACf,iDAAO;;iBARC;;MAWH,+CADRF;;QAGE,KAAI;AAAA,QACJ,KAAI;AAAA,QACJ,OAAM;AAAA,QACN,cAAW;AAAA,QACV,WAAS;;yBAEV;UAAgB,iBAAY,2BAC1BG,oDACiB,mBAAR;gCADTA;cAEG,KAAK,KAAK;AAAA,cACV;;;;cAIA,UAAU;AAAA,cACV,qBAAO,2BAAsB;AAAA;cAE9BF,iDAAS,KAAK;cACC,KAAK,wBAApBD;iCAA6B;kBAAAE,YAAS;AAAA;AAAA;;;sBAG1CE,6CAAA;YACEH,yBAAA,4BACK;;;;;gBAxBC;;;;;;;;;"}
1
+ {"version":3,"file":"index.vue_vue&type=template&id=0429c2db&lang.mjs","sources":["../../../../../../packages/components/cascader/src/index.vue?vue&type=template&id=0429c2db&lang.js"],"sourcesContent":["<template>\n <el-popper\n ref=\"popper\"\n v-model:visible=\"popperVisible\"\n manual-mode\n :append-to-body=\"popperAppendToBody\"\n placement=\"bottom-start\"\n :popper-class=\"`el-cascader__dropdown ${popperClass}`\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :stop-popper-mouse-event=\"false\"\n transition=\"el-zoom-in-top\"\n :gpu-acceleration=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n @after-leave=\"hideSuggestionPanel\"\n >\n <template #trigger>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n 'el-cascader',\n realSize && `el-cascader--${realSize}`,\n { 'is-disabled': isDisabled },\n ]\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model.trim=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"{ 'is-focus': popperVisible }\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n class=\"el-input__icon icon-circle-close\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n 'el-input__icon',\n 'icon-arrow-down',\n popperVisible && 'is-reverse',\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" class=\"el-cascader__tags\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n type=\"info\"\n :size=\"tagSize\"\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 <input\n v-if=\"filterable && !isDisabled\"\n v-model.trim=\"searchInputValue\"\n type=\"text\"\n class=\"el-cascader__search-input\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\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 #default>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"togglePopperVisible(false)\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n class=\"el-cascader__suggestion-panel\"\n view-class=\"el-cascader__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 'el-cascader__suggestion-item',\n item.checked && 'is-checked',\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\"><check /></el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li class=\"el-cascader__empty-text\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onBeforeUnmount,\n ref,\n watch,\n} from 'vue'\nimport { isPromise } from '@vue/shared'\nimport debounce from 'lodash/debounce'\n\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport { useLocaleInject } from '@element-plus/hooks'\n\nimport { EVENT_CODE, focusNode, getSibling } from '@element-plus/utils/aria'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport isServer from '@element-plus/utils/isServer'\nimport { useGlobalConfig } from '@element-plus/utils/util'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { CircleClose, Check, ArrowDown } from '@element-plus/icons'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type {\n CascaderValue,\n CascaderNode,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/utils/types'\n\ntype cascaderPanelType = InstanceType<typeof ElCascaderPanel>\ntype popperType = InstanceType<typeof ElPopper>\ntype inputType = InstanceType<typeof ElInput>\ntype suggestionPanelType = InstanceType<typeof ElScrollbar>\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n medium: 36,\n small: 32,\n mini: 28,\n}\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 as any\n if (['right', 'left'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\n\nexport default defineComponent({\n name: 'ElCascader',\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElPopper,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const { t } = useLocaleInject()\n const $ELEMENT = useGlobalConfig()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const popper: Ref<popperType | null> = ref(null)\n const input: Ref<inputType | null> = ref(null)\n const tagWrapper = ref(null)\n const panel: Ref<cascaderPanelType | null> = ref(null)\n const suggestionPanel: Ref<suggestionPanelType | null> = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || elForm.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize: ComputedRef<ComponentSize> = computed(\n () => props.size || elFormItem.size || $ELEMENT.size\n )\n const tagSize = computed(() =>\n ['small', 'mini'].includes(realSize.value) ? 'mini' : 'small'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const 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\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n elFormItem.validate?.('change')\n },\n })\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n const 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 input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(popper.value?.update)\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const 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\n const deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n panel.value?.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.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 presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n '.el-cascader__suggestion-item'\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n '.el-cascader-node[tabindex=\"-1\"]'\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (isServer || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n '.el-cascader__suggestion-list'\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value?.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\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 case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value?.clearCheckedNodes()\n togglePopperVisible(false)\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n '.el-cascader__suggestion-item[tabindex=\"-1\"]'\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount) return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\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 }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value?.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n addResizeListener(inputEl, updateStyle)\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(input.value?.$el, updateStyle)\n })\n\n return {\n Effect,\n popperOptions,\n popper,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_createElementVNode","_createVNode","_createElementBlock","_renderSlot"],"mappings":";;;;EAsE6B,KAAI;AAAA,EAAa,OAAM;AAAA;;;qBAmEtC,OAAM;;;;;;;;;;;;sBAxIlBA;IACE,KAAI;AAAA,IACI,SAAS;gEAAA;IACjB,eAAA;AAAA,IACC,kBAAgB;IACjB,WAAU;AAAA,IACT,yCAAuC;IACvC,kBAAgB;IAChB,uBAAqB;IACrB,2BAAyB;AAAA,IAC1B,YAAW;AAAA,IACV,oBAAkB;AAAA,IAClB,QAAQ,YAAO;AAAA,IAChB,MAAA;AAAA,IACC,cAAa;;IAEH,iBACT;qBAAAC;QAEG;;;;;QAKA,2CAAa,yBAAoB,gBAAW;QAC5C,oDAAS;QACT,sDAAY;QACZ,sDAAY;;QAEbC;UACE,KAAI;AAAA,sBACU;uEAAA;0BAAd;UACC,aAAa;UACb,UAAU;UACV,UAAU;UACV,kBAAgB;AAAA,UAChB,MAAM;UACN,oCAAqB;UACrB,oBAAkB;UAClB,qBAAmB;UACnB,kBAAgB;UAChB,oCAAQ,MAAM,oBAAe;AAAA,UAC7B,mCAAO,MAAM,mBAAc;AAAA,UAC3B,SAAO;;UAEG,gBACT;YACQ,qCADRF;cAEE,KAAI;AAAA,cACJ,OAAM;AAAA,cACL,uBAAY;;+BAEb;gBAAAE;;;gDAEFF;cAEE,KAAI;AAAA,cACH;;;;;cAKA,6DAAY;;+BAEb;gBAAAE;;;;;;;QAKK,8BAAXC,0BAAA;4BACEA,8CACgB,mBAAP;gCADTH;cAEG,KAAK,IAAI;AAAA,cACV,MAAK;AAAA,cACJ,MAAM;cACN,KAAK,IAAI;AAAA,cACT,UAAU,IAAI;AAAA,cACf,uBAAA;AAAA,cACC,qBAAO,eAAU;AAAA;+BAElB;gBAAAC,iDAAS,IAAI;;;;;UAGP,oBAAe,+CADvBE;;yEAEgB;YACd,MAAK;AAAA,YACL,OAAM;AAAA,YACL,aAAa,wBAAmB;YAChC,oCAAQ,MAAM,iBAAY,uBAAkB;AAAA,YAC5C,6DAAY;YACZ,2DAAgB;YAChB,2DAAkB;YAClB,4DAAmB;YACnB,2DAAgB;;;;cATH;;sBAAd;AAAA;AAAA;;;wCAlEkC,iCAAvB;;;IAiFR,iBACT;qBAAAD;QAEE,KAAI;AAAA,oBACK;uEAAA;QACR,SAAS;QACT,OAAO;QACP,QAAQ;AAAA,QACR,gBAAc,YAAO;AAAA,QACrB,gBAAe;QACf,iDAAO;;iBARC;;MAWH,+CADRF;;QAGE,KAAI;AAAA,QACJ,KAAI;AAAA,QACJ,OAAM;AAAA,QACN,cAAW;AAAA,QACV,WAAS;;yBAEV;UAAgB,iBAAY,2BAC1BG,oDACiB,mBAAR;gCADTA;cAEG,KAAK,KAAK;AAAA,cACV;;;;cAIA,UAAU;AAAA,cACV,qBAAO,2BAAsB;AAAA;cAE9BF,iDAAS,KAAK;cACC,KAAK,wBAApBD;iCAA6B;kBAAAE,YAAS;AAAA;AAAA;;;sBAG1CE,6CAAA;YACEH,yBAAA,4BACK;;;;;gBAxBC;;;;;;;;;"}
@@ -15,13 +15,127 @@ declare const _CascaderPanel: SFCWithInstall<import("vue").DefineComponent<{
15
15
  default: () => import("./src/node").CascaderProps;
16
16
  };
17
17
  }, {
18
- menuList: import("vue").Ref<never[]>;
19
- menus: import("vue").Ref<import("./src/node").default[][]>;
20
- checkedNodes: import("vue").Ref<import("./src/node").default[]>;
18
+ menuList: import("vue").Ref<any[]>;
19
+ menus: import("vue").Ref<{
20
+ readonly uid: number;
21
+ readonly level: number;
22
+ readonly value: import("./src/node").CascaderNodeValue;
23
+ readonly label: string;
24
+ readonly pathNodes: any[];
25
+ readonly pathValues: import("./src/node").CascaderNodeValue[];
26
+ readonly pathLabels: string[];
27
+ childrenData: {
28
+ [x: string]: unknown;
29
+ label?: string | undefined;
30
+ value?: import("./src/node").CascaderNodeValue | undefined;
31
+ children?: any[] | undefined;
32
+ disabled?: boolean | undefined;
33
+ leaf?: boolean | undefined;
34
+ }[] | undefined;
35
+ children: any[];
36
+ text: string;
37
+ loaded: boolean;
38
+ checked: boolean;
39
+ indeterminate: boolean;
40
+ loading: boolean;
41
+ readonly data: {
42
+ [x: string]: unknown;
43
+ label?: string | undefined;
44
+ value?: import("./src/node").CascaderNodeValue | undefined;
45
+ children?: any[] | undefined;
46
+ disabled?: boolean | undefined;
47
+ leaf?: boolean | undefined;
48
+ } | null;
49
+ readonly config: {
50
+ expandTrigger: import("./src/node").ExpandTrigger;
51
+ multiple: boolean;
52
+ checkStrictly: boolean;
53
+ emitPath: boolean;
54
+ lazy: boolean;
55
+ lazyLoad: import("./src/node").LazyLoad;
56
+ value: string;
57
+ label: string;
58
+ children: string;
59
+ disabled: string | import("./src/node").isDisabled;
60
+ leaf: string | import("./src/node").isLeaf;
61
+ hoverThreshold: number;
62
+ };
63
+ readonly parent?: any | undefined;
64
+ readonly root: boolean;
65
+ readonly isDisabled: boolean;
66
+ readonly isLeaf: boolean;
67
+ readonly valueByOption: import("./src/node").CascaderNodeValue | import("./src/node").CascaderNodeValue[];
68
+ appendChild: (childData: import("./src/node").CascaderOption) => import("./src/node").default;
69
+ calcText: (allLevels: boolean, separator: string) => string;
70
+ broadcast: (event: string, ...args: unknown[]) => void;
71
+ emit: (event: string, ...args: unknown[]) => void;
72
+ onParentCheck: (checked: boolean) => void;
73
+ onChildCheck: () => void;
74
+ setCheckState: (checked: boolean) => void;
75
+ doCheck: (checked: boolean) => void;
76
+ }[][]>;
77
+ checkedNodes: import("vue").Ref<{
78
+ readonly uid: number;
79
+ readonly level: number;
80
+ readonly value: import("./src/node").CascaderNodeValue;
81
+ readonly label: string;
82
+ readonly pathNodes: any[];
83
+ readonly pathValues: import("./src/node").CascaderNodeValue[];
84
+ readonly pathLabels: string[];
85
+ childrenData: {
86
+ [x: string]: unknown;
87
+ label?: string | undefined;
88
+ value?: import("./src/node").CascaderNodeValue | undefined;
89
+ children?: any[] | undefined;
90
+ disabled?: boolean | undefined;
91
+ leaf?: boolean | undefined;
92
+ }[] | undefined;
93
+ children: any[];
94
+ text: string;
95
+ loaded: boolean;
96
+ checked: boolean;
97
+ indeterminate: boolean;
98
+ loading: boolean;
99
+ readonly data: {
100
+ [x: string]: unknown;
101
+ label?: string | undefined;
102
+ value?: import("./src/node").CascaderNodeValue | undefined;
103
+ children?: any[] | undefined;
104
+ disabled?: boolean | undefined;
105
+ leaf?: boolean | undefined;
106
+ } | null;
107
+ readonly config: {
108
+ expandTrigger: import("./src/node").ExpandTrigger;
109
+ multiple: boolean;
110
+ checkStrictly: boolean;
111
+ emitPath: boolean;
112
+ lazy: boolean;
113
+ lazyLoad: import("./src/node").LazyLoad;
114
+ value: string;
115
+ label: string;
116
+ children: string;
117
+ disabled: string | import("./src/node").isDisabled;
118
+ leaf: string | import("./src/node").isLeaf;
119
+ hoverThreshold: number;
120
+ };
121
+ readonly parent?: any | undefined;
122
+ readonly root: boolean;
123
+ readonly isDisabled: boolean;
124
+ readonly isLeaf: boolean;
125
+ readonly valueByOption: import("./src/node").CascaderNodeValue | import("./src/node").CascaderNodeValue[];
126
+ appendChild: (childData: import("./src/node").CascaderOption) => import("./src/node").default;
127
+ calcText: (allLevels: boolean, separator: string) => string;
128
+ broadcast: (event: string, ...args: unknown[]) => void;
129
+ emit: (event: string, ...args: unknown[]) => void;
130
+ onParentCheck: (checked: boolean) => void;
131
+ onChildCheck: () => void;
132
+ setCheckState: (checked: boolean) => void;
133
+ doCheck: (checked: boolean) => void;
134
+ }[]>;
21
135
  handleKeyDown: (e: KeyboardEvent) => void;
22
136
  handleCheckChange: (node: import("./src/node").default, checked: boolean, emitClose?: boolean | undefined) => void;
23
- getFlattedNodes: (leafOnly: boolean) => import("./src/node").default[];
24
- getCheckedNodes: (leafOnly: boolean) => import("./src/node").default[];
137
+ getFlattedNodes: (leafOnly: boolean) => import("./src/node").default[] | undefined;
138
+ getCheckedNodes: (leafOnly: boolean) => import("./src/node").default[] | undefined;
25
139
  clearCheckedNodes: () => void;
26
140
  calculateCheckedValue: () => void;
27
141
  scrollToExpandingNode: () => void;
@@ -65,13 +179,127 @@ export declare const ElCascaderPanel: SFCWithInstall<import("vue").DefineCompone
65
179
  default: () => import("./src/node").CascaderProps;
66
180
  };
67
181
  }, {
68
- menuList: import("vue").Ref<never[]>;
69
- menus: import("vue").Ref<import("./src/node").default[][]>;
70
- checkedNodes: import("vue").Ref<import("./src/node").default[]>;
182
+ menuList: import("vue").Ref<any[]>;
183
+ menus: import("vue").Ref<{
184
+ readonly uid: number;
185
+ readonly level: number;
186
+ readonly value: import("./src/node").CascaderNodeValue;
187
+ readonly label: string;
188
+ readonly pathNodes: any[];
189
+ readonly pathValues: import("./src/node").CascaderNodeValue[];
190
+ readonly pathLabels: string[];
191
+ childrenData: {
192
+ [x: string]: unknown;
193
+ label?: string | undefined;
194
+ value?: import("./src/node").CascaderNodeValue | undefined;
195
+ children?: any[] | undefined;
196
+ disabled?: boolean | undefined;
197
+ leaf?: boolean | undefined;
198
+ }[] | undefined;
199
+ children: any[];
200
+ text: string;
201
+ loaded: boolean;
202
+ checked: boolean;
203
+ indeterminate: boolean;
204
+ loading: boolean;
205
+ readonly data: {
206
+ [x: string]: unknown;
207
+ label?: string | undefined;
208
+ value?: import("./src/node").CascaderNodeValue | undefined;
209
+ children?: any[] | undefined;
210
+ disabled?: boolean | undefined;
211
+ leaf?: boolean | undefined;
212
+ } | null;
213
+ readonly config: {
214
+ expandTrigger: import("./src/node").ExpandTrigger;
215
+ multiple: boolean;
216
+ checkStrictly: boolean;
217
+ emitPath: boolean;
218
+ lazy: boolean;
219
+ lazyLoad: import("./src/node").LazyLoad;
220
+ value: string;
221
+ label: string;
222
+ children: string;
223
+ disabled: string | import("./src/node").isDisabled;
224
+ leaf: string | import("./src/node").isLeaf;
225
+ hoverThreshold: number;
226
+ };
227
+ readonly parent?: any | undefined;
228
+ readonly root: boolean;
229
+ readonly isDisabled: boolean;
230
+ readonly isLeaf: boolean;
231
+ readonly valueByOption: import("./src/node").CascaderNodeValue | import("./src/node").CascaderNodeValue[];
232
+ appendChild: (childData: import("./src/node").CascaderOption) => import("./src/node").default;
233
+ calcText: (allLevels: boolean, separator: string) => string;
234
+ broadcast: (event: string, ...args: unknown[]) => void;
235
+ emit: (event: string, ...args: unknown[]) => void;
236
+ onParentCheck: (checked: boolean) => void;
237
+ onChildCheck: () => void;
238
+ setCheckState: (checked: boolean) => void;
239
+ doCheck: (checked: boolean) => void;
240
+ }[][]>;
241
+ checkedNodes: import("vue").Ref<{
242
+ readonly uid: number;
243
+ readonly level: number;
244
+ readonly value: import("./src/node").CascaderNodeValue;
245
+ readonly label: string;
246
+ readonly pathNodes: any[];
247
+ readonly pathValues: import("./src/node").CascaderNodeValue[];
248
+ readonly pathLabels: string[];
249
+ childrenData: {
250
+ [x: string]: unknown;
251
+ label?: string | undefined;
252
+ value?: import("./src/node").CascaderNodeValue | undefined;
253
+ children?: any[] | undefined;
254
+ disabled?: boolean | undefined;
255
+ leaf?: boolean | undefined;
256
+ }[] | undefined;
257
+ children: any[];
258
+ text: string;
259
+ loaded: boolean;
260
+ checked: boolean;
261
+ indeterminate: boolean;
262
+ loading: boolean;
263
+ readonly data: {
264
+ [x: string]: unknown;
265
+ label?: string | undefined;
266
+ value?: import("./src/node").CascaderNodeValue | undefined;
267
+ children?: any[] | undefined;
268
+ disabled?: boolean | undefined;
269
+ leaf?: boolean | undefined;
270
+ } | null;
271
+ readonly config: {
272
+ expandTrigger: import("./src/node").ExpandTrigger;
273
+ multiple: boolean;
274
+ checkStrictly: boolean;
275
+ emitPath: boolean;
276
+ lazy: boolean;
277
+ lazyLoad: import("./src/node").LazyLoad;
278
+ value: string;
279
+ label: string;
280
+ children: string;
281
+ disabled: string | import("./src/node").isDisabled;
282
+ leaf: string | import("./src/node").isLeaf;
283
+ hoverThreshold: number;
284
+ };
285
+ readonly parent?: any | undefined;
286
+ readonly root: boolean;
287
+ readonly isDisabled: boolean;
288
+ readonly isLeaf: boolean;
289
+ readonly valueByOption: import("./src/node").CascaderNodeValue | import("./src/node").CascaderNodeValue[];
290
+ appendChild: (childData: import("./src/node").CascaderOption) => import("./src/node").default;
291
+ calcText: (allLevels: boolean, separator: string) => string;
292
+ broadcast: (event: string, ...args: unknown[]) => void;
293
+ emit: (event: string, ...args: unknown[]) => void;
294
+ onParentCheck: (checked: boolean) => void;
295
+ onChildCheck: () => void;
296
+ setCheckState: (checked: boolean) => void;
297
+ doCheck: (checked: boolean) => void;
298
+ }[]>;
71
299
  handleKeyDown: (e: KeyboardEvent) => void;
72
300
  handleCheckChange: (node: import("./src/node").default, checked: boolean, emitClose?: boolean | undefined) => void;
73
- getFlattedNodes: (leafOnly: boolean) => import("./src/node").default[];
74
- getCheckedNodes: (leafOnly: boolean) => import("./src/node").default[];
301
+ getFlattedNodes: (leafOnly: boolean) => import("./src/node").default[] | undefined;
302
+ getCheckedNodes: (leafOnly: boolean) => import("./src/node").default[] | undefined;
75
303
  clearCheckedNodes: () => void;
76
304
  calculateCheckedValue: () => void;
77
305
  scrollToExpandingNode: () => void;