element-pe 2.2.47 → 2.2.49

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 (714) hide show
  1. package/dist/index.full.js +13 -13
  2. package/dist/index.full.min.js +2 -2
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +9 -9
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +13 -13
  7. package/es/components/affix/index.mjs +2 -2
  8. package/es/components/affix/src/affix.mjs +26 -119
  9. package/es/components/affix/src/affix.mjs.map +1 -1
  10. package/es/components/affix/src/affix2.mjs +119 -26
  11. package/es/components/affix/src/affix2.mjs.map +1 -1
  12. package/es/components/alert/index.d.ts +4 -4
  13. package/es/components/alert/src/alert.d.ts +1 -1
  14. package/es/components/alert/src/alert.vue.d.ts +4 -4
  15. package/es/components/autocomplete/index.d.ts +65 -65
  16. package/es/components/autocomplete/index.mjs +2 -2
  17. package/es/components/autocomplete/src/autocomplete.mjs +82 -362
  18. package/es/components/autocomplete/src/autocomplete.mjs.map +1 -1
  19. package/es/components/autocomplete/src/autocomplete.vue.d.ts +65 -65
  20. package/es/components/autocomplete/src/autocomplete2.mjs +362 -82
  21. package/es/components/autocomplete/src/autocomplete2.mjs.map +1 -1
  22. package/es/components/avatar/index.mjs +2 -2
  23. package/es/components/avatar/src/avatar.mjs +32 -69
  24. package/es/components/avatar/src/avatar.mjs.map +1 -1
  25. package/es/components/avatar/src/avatar2.mjs +69 -32
  26. package/es/components/avatar/src/avatar2.mjs.map +1 -1
  27. package/es/components/backtop/index.mjs +2 -2
  28. package/es/components/backtop/src/backtop.mjs +23 -61
  29. package/es/components/backtop/src/backtop.mjs.map +1 -1
  30. package/es/components/backtop/src/backtop2.mjs +61 -23
  31. package/es/components/backtop/src/backtop2.mjs.map +1 -1
  32. package/es/components/badge/index.mjs +2 -2
  33. package/es/components/badge/src/badge.mjs +59 -17
  34. package/es/components/badge/src/badge.mjs.map +1 -1
  35. package/es/components/badge/src/badge2.mjs +17 -59
  36. package/es/components/badge/src/badge2.mjs.map +1 -1
  37. package/es/components/button/index.d.ts +5 -5
  38. package/es/components/button/index.mjs +1 -1
  39. package/es/components/button/src/button-group.mjs +6 -30
  40. package/es/components/button/src/button-group.mjs.map +1 -1
  41. package/es/components/button/src/button-group2.mjs +30 -6
  42. package/es/components/button/src/button-group2.mjs.map +1 -1
  43. package/es/components/button/src/button.d.ts +1 -1
  44. package/es/components/button/src/button.vue.d.ts +5 -5
  45. package/es/components/button/src/use-button.d.ts +1 -1
  46. package/es/components/calendar/index.d.ts +5 -5
  47. package/es/components/calendar/src/calendar.vue.d.ts +5 -5
  48. package/es/components/carousel/index.d.ts +5 -5
  49. package/es/components/carousel/index.mjs +4 -4
  50. package/es/components/carousel/src/carousel-item.mjs +8 -63
  51. package/es/components/carousel/src/carousel-item.mjs.map +1 -1
  52. package/es/components/carousel/src/carousel-item2.mjs +63 -8
  53. package/es/components/carousel/src/carousel-item2.mjs.map +1 -1
  54. package/es/components/carousel/src/carousel.d.ts +1 -1
  55. package/es/components/carousel/src/carousel.mjs +56 -164
  56. package/es/components/carousel/src/carousel.mjs.map +1 -1
  57. package/es/components/carousel/src/carousel.vue.d.ts +5 -5
  58. package/es/components/carousel/src/carousel2.mjs +164 -56
  59. package/es/components/carousel/src/carousel2.mjs.map +1 -1
  60. package/es/components/cascader/index.d.ts +128 -128
  61. package/es/components/cascader/index.mjs +2 -2
  62. package/es/components/cascader/src/cascader.mjs +63 -622
  63. package/es/components/cascader/src/cascader.mjs.map +1 -1
  64. package/es/components/cascader/src/cascader.vue.d.ts +64 -64
  65. package/es/components/cascader/src/cascader2.mjs +622 -63
  66. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  67. package/es/components/check-tag/index.mjs +2 -2
  68. package/es/components/check-tag/src/check-tag.mjs +30 -12
  69. package/es/components/check-tag/src/check-tag.mjs.map +1 -1
  70. package/es/components/check-tag/src/check-tag2.mjs +12 -30
  71. package/es/components/check-tag/src/check-tag2.mjs.map +1 -1
  72. package/es/components/checkbox/index.mjs +2 -2
  73. package/es/components/checkbox/src/checkbox-group.mjs +28 -72
  74. package/es/components/checkbox/src/checkbox-group.mjs.map +1 -1
  75. package/es/components/checkbox/src/checkbox-group2.mjs +72 -28
  76. package/es/components/checkbox/src/checkbox-group2.mjs.map +1 -1
  77. package/es/components/col/index.mjs +2 -2
  78. package/es/components/col/src/col.mjs +66 -43
  79. package/es/components/col/src/col.mjs.map +1 -1
  80. package/es/components/col/src/col2.mjs +43 -66
  81. package/es/components/col/src/col2.mjs.map +1 -1
  82. package/es/components/collection/index.mjs +1 -1
  83. package/es/components/collection/src/collection.mjs +10 -62
  84. package/es/components/collection/src/collection.mjs.map +1 -1
  85. package/es/components/collection/src/collection2.mjs +62 -10
  86. package/es/components/collection/src/collection2.mjs.map +1 -1
  87. package/es/components/color-picker/index.d.ts +35 -35
  88. package/es/components/color-picker/src/color-picker.vue.d.ts +35 -35
  89. package/es/components/countdown/index.mjs +2 -2
  90. package/es/components/countdown/src/countdown.mjs +23 -76
  91. package/es/components/countdown/src/countdown.mjs.map +1 -1
  92. package/es/components/countdown/src/countdown2.mjs +76 -23
  93. package/es/components/countdown/src/countdown2.mjs.map +1 -1
  94. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +17 -17
  95. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +17 -17
  96. package/es/components/date-picker/src/panel-utils.d.ts +34 -34
  97. package/es/components/descriptions/index.mjs +2 -2
  98. package/es/components/descriptions/src/description.mjs +120 -27
  99. package/es/components/descriptions/src/description.mjs.map +1 -1
  100. package/es/components/descriptions/src/description2.mjs +27 -120
  101. package/es/components/descriptions/src/description2.mjs.map +1 -1
  102. package/es/components/dialog/index.d.ts +1 -1
  103. package/es/components/dialog/index.mjs +2 -2
  104. package/es/components/dialog/src/dialog-content.mjs +94 -39
  105. package/es/components/dialog/src/dialog-content.mjs.map +1 -1
  106. package/es/components/dialog/src/dialog-content2.mjs +39 -94
  107. package/es/components/dialog/src/dialog-content2.mjs.map +1 -1
  108. package/es/components/dialog/src/dialog.mjs +174 -73
  109. package/es/components/dialog/src/dialog.mjs.map +1 -1
  110. package/es/components/dialog/src/dialog.vue.d.ts +1 -1
  111. package/es/components/dialog/src/dialog2.mjs +73 -174
  112. package/es/components/dialog/src/dialog2.mjs.map +1 -1
  113. package/es/components/drawer/src/drawer.mjs +1 -1
  114. package/es/components/dropdown/index.d.ts +28 -28
  115. package/es/components/dropdown/index.mjs +2 -2
  116. package/es/components/dropdown/src/dropdown-item-impl.mjs +6 -6
  117. package/es/components/dropdown/src/dropdown-item-impl.mjs.map +1 -1
  118. package/es/components/dropdown/src/dropdown-item-impl.vue.d.ts +4 -4
  119. package/es/components/dropdown/src/dropdown-item.mjs +2 -2
  120. package/es/components/dropdown/src/dropdown-item.mjs.map +1 -1
  121. package/es/components/dropdown/src/dropdown-item.vue.d.ts +1 -1
  122. package/es/components/dropdown/src/dropdown-menu.mjs +6 -6
  123. package/es/components/dropdown/src/dropdown-menu.mjs.map +1 -1
  124. package/es/components/dropdown/src/dropdown-menu.vue.d.ts +7 -7
  125. package/es/components/dropdown/src/dropdown.mjs +105 -310
  126. package/es/components/dropdown/src/dropdown.mjs.map +1 -1
  127. package/es/components/dropdown/src/dropdown.vue.d.ts +12 -12
  128. package/es/components/dropdown/src/dropdown2.mjs +310 -105
  129. package/es/components/dropdown/src/dropdown2.mjs.map +1 -1
  130. package/es/components/focus-trap/src/focus-trap.mjs +2 -1
  131. package/es/components/focus-trap/src/focus-trap.mjs.map +1 -1
  132. package/es/components/focus-trap/src/focus-trap.vue.d.ts +1 -1
  133. package/es/components/form/index.d.ts +12 -12
  134. package/es/components/form/index.mjs +2 -2
  135. package/es/components/form/src/form-item.d.ts +1 -1
  136. package/es/components/form/src/form-item.mjs +326 -46
  137. package/es/components/form/src/form-item.mjs.map +1 -1
  138. package/es/components/form/src/form-item.vue.d.ts +5 -5
  139. package/es/components/form/src/form-item2.mjs +46 -326
  140. package/es/components/form/src/form-item2.mjs.map +1 -1
  141. package/es/components/icon/index.mjs +2 -2
  142. package/es/components/icon/src/icon.mjs +36 -8
  143. package/es/components/icon/src/icon.mjs.map +1 -1
  144. package/es/components/icon/src/icon2.mjs +8 -36
  145. package/es/components/icon/src/icon2.mjs.map +1 -1
  146. package/es/components/image/index.d.ts +1 -1
  147. package/es/components/image/index.mjs +2 -2
  148. package/es/components/image/src/image.mjs +65 -226
  149. package/es/components/image/src/image.mjs.map +1 -1
  150. package/es/components/image/src/image.vue.d.ts +1 -1
  151. package/es/components/image/src/image2.mjs +226 -65
  152. package/es/components/image/src/image2.mjs.map +1 -1
  153. package/es/components/index.mjs +41 -41
  154. package/es/components/input/index.d.ts +12 -12
  155. package/es/components/input/src/input.vue.d.ts +12 -12
  156. package/es/components/input-number/index.d.ts +45 -45
  157. package/es/components/input-number/src/input-number.vue.d.ts +45 -45
  158. package/es/components/menu/index.d.ts +3 -3
  159. package/es/components/menu/index.mjs +4 -4
  160. package/es/components/menu/src/menu-item-group.mjs +35 -4
  161. package/es/components/menu/src/menu-item-group.mjs.map +1 -1
  162. package/es/components/menu/src/menu-item-group2.mjs +4 -35
  163. package/es/components/menu/src/menu-item-group2.mjs.map +1 -1
  164. package/es/components/menu/src/menu-item.mjs +97 -14
  165. package/es/components/menu/src/menu-item.mjs.map +1 -1
  166. package/es/components/menu/src/menu-item2.mjs +14 -97
  167. package/es/components/menu/src/menu-item2.mjs.map +1 -1
  168. package/es/components/menu/src/menu.d.ts +4 -4
  169. package/es/components/message/index.mjs +1 -1
  170. package/es/components/message/src/message.d.ts +1 -1
  171. package/es/components/message/src/message.mjs +151 -86
  172. package/es/components/message/src/message.mjs.map +1 -1
  173. package/es/components/message/src/message.vue.d.ts +4 -4
  174. package/es/components/message/src/message2.mjs +86 -151
  175. package/es/components/message/src/message2.mjs.map +1 -1
  176. package/es/components/message/src/method.mjs +2 -2
  177. package/es/components/notification/index.mjs +1 -1
  178. package/es/components/notification/src/notification.d.ts +1 -1
  179. package/es/components/notification/src/notification.mjs +69 -149
  180. package/es/components/notification/src/notification.mjs.map +1 -1
  181. package/es/components/notification/src/notification.vue.d.ts +4 -4
  182. package/es/components/notification/src/notification2.mjs +149 -69
  183. package/es/components/notification/src/notification2.mjs.map +1 -1
  184. package/es/components/notification/src/notify.mjs +2 -2
  185. package/es/components/page-header/index.mjs +2 -2
  186. package/es/components/page-header/src/page-header.mjs +103 -17
  187. package/es/components/page-header/src/page-header.mjs.map +1 -1
  188. package/es/components/page-header/src/page-header2.mjs +17 -103
  189. package/es/components/page-header/src/page-header2.mjs.map +1 -1
  190. package/es/components/pagination/src/components/jumper.vue.d.ts +12 -12
  191. package/es/components/pagination/src/components/pager.mjs +17 -216
  192. package/es/components/pagination/src/components/pager.mjs.map +1 -1
  193. package/es/components/pagination/src/components/pager2.mjs +216 -17
  194. package/es/components/pagination/src/components/pager2.mjs.map +1 -1
  195. package/es/components/pagination/src/components/prev.mjs +38 -18
  196. package/es/components/pagination/src/components/prev.mjs.map +1 -1
  197. package/es/components/pagination/src/components/prev2.mjs +18 -38
  198. package/es/components/pagination/src/components/prev2.mjs.map +1 -1
  199. package/es/components/pagination/src/components/sizes.vue.d.ts +14 -14
  200. package/es/components/pagination/src/pagination.mjs +2 -2
  201. package/es/components/popconfirm/index.d.ts +23 -23
  202. package/es/components/popconfirm/src/popconfirm.mjs +1 -1
  203. package/es/components/popconfirm/src/popconfirm.vue.d.ts +23 -23
  204. package/es/components/popover/index.d.ts +18 -18
  205. package/es/components/popover/index.mjs +2 -2
  206. package/es/components/popover/src/popover.mjs +111 -66
  207. package/es/components/popover/src/popover.mjs.map +1 -1
  208. package/es/components/popover/src/popover.vue.d.ts +18 -18
  209. package/es/components/popover/src/popover2.mjs +66 -111
  210. package/es/components/popover/src/popover2.mjs.map +1 -1
  211. package/es/components/popper/index.mjs +4 -4
  212. package/es/components/popper/src/content.vue.d.ts +6 -6
  213. package/es/components/popper/src/popper.mjs +25 -32
  214. package/es/components/popper/src/popper.mjs.map +1 -1
  215. package/es/components/popper/src/popper2.mjs +32 -25
  216. package/es/components/popper/src/popper2.mjs.map +1 -1
  217. package/es/components/popper/src/trigger.mjs +121 -31
  218. package/es/components/popper/src/trigger.mjs.map +1 -1
  219. package/es/components/popper/src/trigger2.mjs +31 -121
  220. package/es/components/popper/src/trigger2.mjs.map +1 -1
  221. package/es/components/progress/index.mjs +2 -2
  222. package/es/components/progress/src/progress.mjs +204 -59
  223. package/es/components/progress/src/progress.mjs.map +1 -1
  224. package/es/components/progress/src/progress2.mjs +59 -204
  225. package/es/components/progress/src/progress2.mjs.map +1 -1
  226. package/es/components/radio/index.mjs +2 -2
  227. package/es/components/radio/src/radio-group.mjs +70 -36
  228. package/es/components/radio/src/radio-group.mjs.map +1 -1
  229. package/es/components/radio/src/radio-group2.mjs +36 -70
  230. package/es/components/radio/src/radio-group2.mjs.map +1 -1
  231. package/es/components/rate/index.mjs +2 -2
  232. package/es/components/rate/src/rate.mjs +257 -87
  233. package/es/components/rate/src/rate.mjs.map +1 -1
  234. package/es/components/rate/src/rate2.mjs +87 -257
  235. package/es/components/rate/src/rate2.mjs.map +1 -1
  236. package/es/components/result/index.d.ts +4 -4
  237. package/es/components/result/src/result.d.ts +1 -1
  238. package/es/components/result/src/result.vue.d.ts +4 -4
  239. package/es/components/roving-focus-group/src/roving-focus-group.mjs +1 -1
  240. package/es/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
  241. package/es/components/scrollbar/index.mjs +2 -2
  242. package/es/components/scrollbar/src/scrollbar.mjs +176 -46
  243. package/es/components/scrollbar/src/scrollbar.mjs.map +1 -1
  244. package/es/components/scrollbar/src/scrollbar2.mjs +46 -176
  245. package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
  246. package/es/components/select/index.d.ts +14 -14
  247. package/es/components/select/src/select.mjs +2 -2
  248. package/es/components/select/src/select.vue.d.ts +14 -14
  249. package/es/components/select/src/useSelect.d.ts +12 -12
  250. package/es/components/select-v2/index.d.ts +30 -30
  251. package/es/components/select-v2/src/defaults.mjs +1 -1
  252. package/es/components/select-v2/src/option-item.vue.d.ts +1 -1
  253. package/es/components/select-v2/src/select.vue.d.ts +15 -15
  254. package/es/components/select-v2/src/useSelect.d.ts +13 -13
  255. package/es/components/skeleton/index.mjs +4 -4
  256. package/es/components/skeleton/src/skeleton-item.mjs +18 -23
  257. package/es/components/skeleton/src/skeleton-item.mjs.map +1 -1
  258. package/es/components/skeleton/src/skeleton-item2.mjs +23 -18
  259. package/es/components/skeleton/src/skeleton-item2.mjs.map +1 -1
  260. package/es/components/skeleton/src/skeleton.mjs +22 -49
  261. package/es/components/skeleton/src/skeleton.mjs.map +1 -1
  262. package/es/components/skeleton/src/skeleton2.mjs +49 -22
  263. package/es/components/skeleton/src/skeleton2.mjs.map +1 -1
  264. package/es/components/slider/index.d.ts +75 -75
  265. package/es/components/slider/index.mjs +2 -2
  266. package/es/components/slider/src/button.vue.d.ts +6 -6
  267. package/es/components/slider/src/composables/use-slide.d.ts +24 -24
  268. package/es/components/slider/src/slider.mjs +233 -91
  269. package/es/components/slider/src/slider.mjs.map +1 -1
  270. package/es/components/slider/src/slider.vue.d.ts +75 -75
  271. package/es/components/slider/src/slider2.mjs +91 -233
  272. package/es/components/slider/src/slider2.mjs.map +1 -1
  273. package/es/components/steps/index.d.ts +16 -16
  274. package/es/components/steps/index.mjs +2 -2
  275. package/es/components/steps/src/item.d.ts +1 -1
  276. package/es/components/steps/src/item.mjs +19 -190
  277. package/es/components/steps/src/item.mjs.map +1 -1
  278. package/es/components/steps/src/item.vue.d.ts +4 -4
  279. package/es/components/steps/src/item2.mjs +190 -19
  280. package/es/components/steps/src/item2.mjs.map +1 -1
  281. package/es/components/steps/src/steps.d.ts +2 -2
  282. package/es/components/steps/src/steps.vue.d.ts +8 -8
  283. package/es/components/switch/index.mjs +2 -2
  284. package/es/components/switch/src/switch.mjs +243 -88
  285. package/es/components/switch/src/switch.mjs.map +1 -1
  286. package/es/components/switch/src/switch2.mjs +88 -243
  287. package/es/components/switch/src/switch2.mjs.map +1 -1
  288. package/es/components/table/index.d.ts +1 -1
  289. package/es/components/table/src/filter-panel.vue.d.ts +12 -12
  290. package/es/components/table/src/table.vue.d.ts +1 -1
  291. package/es/components/tabs/index.mjs +2 -2
  292. package/es/components/tabs/src/tab-pane.mjs +14 -73
  293. package/es/components/tabs/src/tab-pane.mjs.map +1 -1
  294. package/es/components/tabs/src/tab-pane2.mjs +73 -14
  295. package/es/components/tabs/src/tab-pane2.mjs.map +1 -1
  296. package/es/components/tag/index.d.ts +1 -1
  297. package/es/components/tag/index.mjs +2 -2
  298. package/es/components/tag/src/tag.mjs +98 -33
  299. package/es/components/tag/src/tag.mjs.map +1 -1
  300. package/es/components/tag/src/tag.vue.d.ts +1 -1
  301. package/es/components/tag/src/tag2.mjs +33 -98
  302. package/es/components/tag/src/tag2.mjs.map +1 -1
  303. package/es/components/time-picker/src/common/picker.vue.d.ts +34 -34
  304. package/es/components/time-select/index.d.ts +62 -62
  305. package/es/components/time-select/src/time-select.vue.d.ts +31 -31
  306. package/es/components/tooltip/index.d.ts +6 -6
  307. package/es/components/tooltip/index.mjs +1 -1
  308. package/es/components/tooltip/src/content.mjs +179 -31
  309. package/es/components/tooltip/src/content.mjs.map +1 -1
  310. package/es/components/tooltip/src/content.vue.d.ts +6 -6
  311. package/es/components/tooltip/src/content2.mjs +31 -179
  312. package/es/components/tooltip/src/content2.mjs.map +1 -1
  313. package/es/components/tooltip/src/tooltip.mjs +2 -2
  314. package/es/components/tooltip/src/tooltip.vue.d.ts +6 -6
  315. package/es/components/tooltip/src/tooltip2.mjs +1 -1
  316. package/es/components/tooltip/src/trigger.mjs +1 -1
  317. package/es/components/tooltip/src/trigger2.mjs +1 -1
  318. package/es/components/tooltip-v2/index.d.ts +4 -4
  319. package/es/components/tooltip-v2/index.mjs +1 -1
  320. package/es/components/tooltip-v2/src/arrow.mjs +37 -22
  321. package/es/components/tooltip-v2/src/arrow.mjs.map +1 -1
  322. package/es/components/tooltip-v2/src/arrow2.mjs +22 -37
  323. package/es/components/tooltip-v2/src/arrow2.mjs.map +1 -1
  324. package/es/components/tooltip-v2/src/content2.mjs +1 -1
  325. package/es/components/tooltip-v2/src/tooltip.mjs +1 -1
  326. package/es/components/tooltip-v2/src/tooltip.vue.d.ts +4 -4
  327. package/es/components/tooltip-v2/src/tooltip2.mjs +2 -2
  328. package/es/components/transfer/index.d.ts +65 -65
  329. package/es/components/transfer/index.mjs +2 -2
  330. package/es/components/transfer/src/composables/use-check.mjs +1 -1
  331. package/es/components/transfer/src/composables/use-checked-change.mjs +1 -1
  332. package/es/components/transfer/src/transfer-panel.mjs +19 -128
  333. package/es/components/transfer/src/transfer-panel.mjs.map +1 -1
  334. package/es/components/transfer/src/transfer-panel.vue.d.ts +12 -12
  335. package/es/components/transfer/src/transfer-panel2.mjs +128 -19
  336. package/es/components/transfer/src/transfer-panel2.mjs.map +1 -1
  337. package/es/components/transfer/src/transfer.mjs +69 -162
  338. package/es/components/transfer/src/transfer.mjs.map +1 -1
  339. package/es/components/transfer/src/transfer.vue.d.ts +65 -65
  340. package/es/components/transfer/src/transfer2.mjs +162 -69
  341. package/es/components/transfer/src/transfer2.mjs.map +1 -1
  342. package/es/components/tree-v2/index.d.ts +1 -1
  343. package/es/components/tree-v2/src/tree-node.vue.d.ts +1 -1
  344. package/es/components/tree-v2/src/tree.vue.d.ts +1 -1
  345. package/es/components/upload/index.d.ts +5 -5
  346. package/es/components/upload/index.mjs +1 -1
  347. package/es/components/upload/src/upload-content.mjs +178 -33
  348. package/es/components/upload/src/upload-content.mjs.map +1 -1
  349. package/es/components/upload/src/upload-content.vue.d.ts +1 -1
  350. package/es/components/upload/src/upload-content2.mjs +33 -178
  351. package/es/components/upload/src/upload-content2.mjs.map +1 -1
  352. package/es/components/upload/src/upload.vue.d.ts +5 -5
  353. package/es/components/upload/src/upload2.mjs +1 -1
  354. package/es/components/visual-hidden/index.mjs +3 -3
  355. package/es/components/visual-hidden/src/visual-hidden.mjs +35 -7
  356. package/es/components/visual-hidden/src/visual-hidden.mjs.map +1 -1
  357. package/es/components/visual-hidden/src/visual-hidden2.mjs +7 -35
  358. package/es/components/visual-hidden/src/visual-hidden2.mjs.map +1 -1
  359. package/es/index.mjs +41 -41
  360. package/lib/components/affix/index.js +2 -2
  361. package/lib/components/affix/src/affix.js +27 -119
  362. package/lib/components/affix/src/affix.js.map +1 -1
  363. package/lib/components/affix/src/affix2.js +119 -27
  364. package/lib/components/affix/src/affix2.js.map +1 -1
  365. package/lib/components/alert/index.d.ts +4 -4
  366. package/lib/components/alert/src/alert.d.ts +1 -1
  367. package/lib/components/alert/src/alert.vue.d.ts +4 -4
  368. package/lib/components/autocomplete/index.d.ts +65 -65
  369. package/lib/components/autocomplete/index.js +2 -2
  370. package/lib/components/autocomplete/src/autocomplete.js +82 -361
  371. package/lib/components/autocomplete/src/autocomplete.js.map +1 -1
  372. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +65 -65
  373. package/lib/components/autocomplete/src/autocomplete2.js +361 -82
  374. package/lib/components/autocomplete/src/autocomplete2.js.map +1 -1
  375. package/lib/components/avatar/index.js +2 -2
  376. package/lib/components/avatar/src/avatar.js +33 -69
  377. package/lib/components/avatar/src/avatar.js.map +1 -1
  378. package/lib/components/avatar/src/avatar2.js +69 -33
  379. package/lib/components/avatar/src/avatar2.js.map +1 -1
  380. package/lib/components/backtop/index.js +2 -2
  381. package/lib/components/backtop/src/backtop.js +24 -61
  382. package/lib/components/backtop/src/backtop.js.map +1 -1
  383. package/lib/components/backtop/src/backtop2.js +61 -24
  384. package/lib/components/backtop/src/backtop2.js.map +1 -1
  385. package/lib/components/badge/index.js +2 -2
  386. package/lib/components/badge/src/badge.js +59 -17
  387. package/lib/components/badge/src/badge.js.map +1 -1
  388. package/lib/components/badge/src/badge2.js +17 -59
  389. package/lib/components/badge/src/badge2.js.map +1 -1
  390. package/lib/components/button/index.d.ts +5 -5
  391. package/lib/components/button/index.js +1 -1
  392. package/lib/components/button/src/button-group.js +6 -30
  393. package/lib/components/button/src/button-group.js.map +1 -1
  394. package/lib/components/button/src/button-group2.js +30 -6
  395. package/lib/components/button/src/button-group2.js.map +1 -1
  396. package/lib/components/button/src/button.d.ts +1 -1
  397. package/lib/components/button/src/button.vue.d.ts +5 -5
  398. package/lib/components/button/src/use-button.d.ts +1 -1
  399. package/lib/components/calendar/index.d.ts +5 -5
  400. package/lib/components/calendar/src/calendar.vue.d.ts +5 -5
  401. package/lib/components/carousel/index.d.ts +5 -5
  402. package/lib/components/carousel/index.js +4 -4
  403. package/lib/components/carousel/src/carousel-item.js +8 -63
  404. package/lib/components/carousel/src/carousel-item.js.map +1 -1
  405. package/lib/components/carousel/src/carousel-item2.js +63 -8
  406. package/lib/components/carousel/src/carousel-item2.js.map +1 -1
  407. package/lib/components/carousel/src/carousel.d.ts +1 -1
  408. package/lib/components/carousel/src/carousel.js +57 -164
  409. package/lib/components/carousel/src/carousel.js.map +1 -1
  410. package/lib/components/carousel/src/carousel.vue.d.ts +5 -5
  411. package/lib/components/carousel/src/carousel2.js +164 -57
  412. package/lib/components/carousel/src/carousel2.js.map +1 -1
  413. package/lib/components/cascader/index.d.ts +128 -128
  414. package/lib/components/cascader/index.js +2 -2
  415. package/lib/components/cascader/src/cascader.js +64 -622
  416. package/lib/components/cascader/src/cascader.js.map +1 -1
  417. package/lib/components/cascader/src/cascader.vue.d.ts +64 -64
  418. package/lib/components/cascader/src/cascader2.js +622 -64
  419. package/lib/components/cascader/src/cascader2.js.map +1 -1
  420. package/lib/components/check-tag/index.js +2 -2
  421. package/lib/components/check-tag/src/check-tag.js +30 -13
  422. package/lib/components/check-tag/src/check-tag.js.map +1 -1
  423. package/lib/components/check-tag/src/check-tag2.js +13 -30
  424. package/lib/components/check-tag/src/check-tag2.js.map +1 -1
  425. package/lib/components/checkbox/index.js +2 -2
  426. package/lib/components/checkbox/src/checkbox-group.js +29 -72
  427. package/lib/components/checkbox/src/checkbox-group.js.map +1 -1
  428. package/lib/components/checkbox/src/checkbox-group2.js +72 -29
  429. package/lib/components/checkbox/src/checkbox-group2.js.map +1 -1
  430. package/lib/components/col/index.js +2 -2
  431. package/lib/components/col/src/col.js +66 -43
  432. package/lib/components/col/src/col.js.map +1 -1
  433. package/lib/components/col/src/col2.js +43 -66
  434. package/lib/components/col/src/col2.js.map +1 -1
  435. package/lib/components/collection/index.js +1 -1
  436. package/lib/components/collection/src/collection.js +9 -62
  437. package/lib/components/collection/src/collection.js.map +1 -1
  438. package/lib/components/collection/src/collection2.js +62 -9
  439. package/lib/components/collection/src/collection2.js.map +1 -1
  440. package/lib/components/color-picker/index.d.ts +35 -35
  441. package/lib/components/color-picker/src/color-picker.vue.d.ts +35 -35
  442. package/lib/components/countdown/index.js +2 -2
  443. package/lib/components/countdown/src/countdown.js +24 -76
  444. package/lib/components/countdown/src/countdown.js.map +1 -1
  445. package/lib/components/countdown/src/countdown2.js +76 -24
  446. package/lib/components/countdown/src/countdown2.js.map +1 -1
  447. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +17 -17
  448. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +17 -17
  449. package/lib/components/date-picker/src/panel-utils.d.ts +34 -34
  450. package/lib/components/descriptions/index.js +2 -2
  451. package/lib/components/descriptions/src/description.js +120 -27
  452. package/lib/components/descriptions/src/description.js.map +1 -1
  453. package/lib/components/descriptions/src/description2.js +27 -120
  454. package/lib/components/descriptions/src/description2.js.map +1 -1
  455. package/lib/components/dialog/index.d.ts +1 -1
  456. package/lib/components/dialog/index.js +2 -2
  457. package/lib/components/dialog/src/dialog-content.js +93 -39
  458. package/lib/components/dialog/src/dialog-content.js.map +1 -1
  459. package/lib/components/dialog/src/dialog-content2.js +39 -93
  460. package/lib/components/dialog/src/dialog-content2.js.map +1 -1
  461. package/lib/components/dialog/src/dialog.js +173 -73
  462. package/lib/components/dialog/src/dialog.js.map +1 -1
  463. package/lib/components/dialog/src/dialog.vue.d.ts +1 -1
  464. package/lib/components/dialog/src/dialog2.js +73 -173
  465. package/lib/components/dialog/src/dialog2.js.map +1 -1
  466. package/lib/components/drawer/src/drawer.js +1 -1
  467. package/lib/components/dropdown/index.d.ts +28 -28
  468. package/lib/components/dropdown/index.js +2 -2
  469. package/lib/components/dropdown/src/dropdown-item-impl.js +6 -6
  470. package/lib/components/dropdown/src/dropdown-item-impl.js.map +1 -1
  471. package/lib/components/dropdown/src/dropdown-item-impl.vue.d.ts +4 -4
  472. package/lib/components/dropdown/src/dropdown-item.js +2 -2
  473. package/lib/components/dropdown/src/dropdown-item.js.map +1 -1
  474. package/lib/components/dropdown/src/dropdown-item.vue.d.ts +1 -1
  475. package/lib/components/dropdown/src/dropdown-menu.js +6 -6
  476. package/lib/components/dropdown/src/dropdown-menu.js.map +1 -1
  477. package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +7 -7
  478. package/lib/components/dropdown/src/dropdown.js +114 -310
  479. package/lib/components/dropdown/src/dropdown.js.map +1 -1
  480. package/lib/components/dropdown/src/dropdown.vue.d.ts +12 -12
  481. package/lib/components/dropdown/src/dropdown2.js +310 -114
  482. package/lib/components/dropdown/src/dropdown2.js.map +1 -1
  483. package/lib/components/focus-trap/src/focus-trap.js +6 -5
  484. package/lib/components/focus-trap/src/focus-trap.js.map +1 -1
  485. package/lib/components/focus-trap/src/focus-trap.vue.d.ts +1 -1
  486. package/lib/components/form/index.d.ts +12 -12
  487. package/lib/components/form/index.js +2 -2
  488. package/lib/components/form/src/form-item.d.ts +1 -1
  489. package/lib/components/form/src/form-item.js +330 -47
  490. package/lib/components/form/src/form-item.js.map +1 -1
  491. package/lib/components/form/src/form-item.vue.d.ts +5 -5
  492. package/lib/components/form/src/form-item2.js +47 -330
  493. package/lib/components/form/src/form-item2.js.map +1 -1
  494. package/lib/components/icon/index.js +2 -2
  495. package/lib/components/icon/src/icon.js +36 -8
  496. package/lib/components/icon/src/icon.js.map +1 -1
  497. package/lib/components/icon/src/icon2.js +8 -36
  498. package/lib/components/icon/src/icon2.js.map +1 -1
  499. package/lib/components/image/index.d.ts +1 -1
  500. package/lib/components/image/index.js +2 -2
  501. package/lib/components/image/src/image.js +65 -225
  502. package/lib/components/image/src/image.js.map +1 -1
  503. package/lib/components/image/src/image.vue.d.ts +1 -1
  504. package/lib/components/image/src/image2.js +225 -65
  505. package/lib/components/image/src/image2.js.map +1 -1
  506. package/lib/components/index.js +41 -41
  507. package/lib/components/input/index.d.ts +12 -12
  508. package/lib/components/input/src/input.vue.d.ts +12 -12
  509. package/lib/components/input-number/index.d.ts +45 -45
  510. package/lib/components/input-number/src/input-number.vue.d.ts +45 -45
  511. package/lib/components/menu/index.d.ts +3 -3
  512. package/lib/components/menu/index.js +4 -4
  513. package/lib/components/menu/src/menu-item-group.js +35 -4
  514. package/lib/components/menu/src/menu-item-group.js.map +1 -1
  515. package/lib/components/menu/src/menu-item-group2.js +4 -35
  516. package/lib/components/menu/src/menu-item-group2.js.map +1 -1
  517. package/lib/components/menu/src/menu-item.js +97 -15
  518. package/lib/components/menu/src/menu-item.js.map +1 -1
  519. package/lib/components/menu/src/menu-item2.js +15 -97
  520. package/lib/components/menu/src/menu-item2.js.map +1 -1
  521. package/lib/components/menu/src/menu.d.ts +4 -4
  522. package/lib/components/message/index.js +1 -1
  523. package/lib/components/message/src/message.d.ts +1 -1
  524. package/lib/components/message/src/message.js +150 -88
  525. package/lib/components/message/src/message.js.map +1 -1
  526. package/lib/components/message/src/message.vue.d.ts +4 -4
  527. package/lib/components/message/src/message2.js +88 -150
  528. package/lib/components/message/src/message2.js.map +1 -1
  529. package/lib/components/message/src/method.js +2 -2
  530. package/lib/components/notification/index.js +1 -1
  531. package/lib/components/notification/src/notification.d.ts +1 -1
  532. package/lib/components/notification/src/notification.js +70 -148
  533. package/lib/components/notification/src/notification.js.map +1 -1
  534. package/lib/components/notification/src/notification.vue.d.ts +4 -4
  535. package/lib/components/notification/src/notification2.js +148 -70
  536. package/lib/components/notification/src/notification2.js.map +1 -1
  537. package/lib/components/notification/src/notify.js +2 -2
  538. package/lib/components/page-header/index.js +2 -2
  539. package/lib/components/page-header/src/page-header.js +103 -18
  540. package/lib/components/page-header/src/page-header.js.map +1 -1
  541. package/lib/components/page-header/src/page-header2.js +18 -103
  542. package/lib/components/page-header/src/page-header2.js.map +1 -1
  543. package/lib/components/pagination/src/components/jumper.vue.d.ts +12 -12
  544. package/lib/components/pagination/src/components/pager.js +17 -216
  545. package/lib/components/pagination/src/components/pager.js.map +1 -1
  546. package/lib/components/pagination/src/components/pager2.js +216 -17
  547. package/lib/components/pagination/src/components/pager2.js.map +1 -1
  548. package/lib/components/pagination/src/components/prev.js +38 -19
  549. package/lib/components/pagination/src/components/prev.js.map +1 -1
  550. package/lib/components/pagination/src/components/prev2.js +19 -38
  551. package/lib/components/pagination/src/components/prev2.js.map +1 -1
  552. package/lib/components/pagination/src/components/sizes.vue.d.ts +14 -14
  553. package/lib/components/pagination/src/pagination.js +2 -2
  554. package/lib/components/popconfirm/index.d.ts +23 -23
  555. package/lib/components/popconfirm/src/popconfirm.js +1 -1
  556. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +23 -23
  557. package/lib/components/popover/index.d.ts +18 -18
  558. package/lib/components/popover/index.js +2 -2
  559. package/lib/components/popover/src/popover.js +111 -67
  560. package/lib/components/popover/src/popover.js.map +1 -1
  561. package/lib/components/popover/src/popover.vue.d.ts +18 -18
  562. package/lib/components/popover/src/popover2.js +67 -111
  563. package/lib/components/popover/src/popover2.js.map +1 -1
  564. package/lib/components/popper/index.js +4 -4
  565. package/lib/components/popper/src/content.vue.d.ts +6 -6
  566. package/lib/components/popper/src/popper.js +28 -32
  567. package/lib/components/popper/src/popper.js.map +1 -1
  568. package/lib/components/popper/src/popper2.js +32 -28
  569. package/lib/components/popper/src/popper2.js.map +1 -1
  570. package/lib/components/popper/src/trigger.js +121 -32
  571. package/lib/components/popper/src/trigger.js.map +1 -1
  572. package/lib/components/popper/src/trigger2.js +32 -121
  573. package/lib/components/popper/src/trigger2.js.map +1 -1
  574. package/lib/components/progress/index.js +2 -2
  575. package/lib/components/progress/src/progress.js +204 -59
  576. package/lib/components/progress/src/progress.js.map +1 -1
  577. package/lib/components/progress/src/progress2.js +59 -204
  578. package/lib/components/progress/src/progress2.js.map +1 -1
  579. package/lib/components/radio/index.js +2 -2
  580. package/lib/components/radio/src/radio-group.js +70 -37
  581. package/lib/components/radio/src/radio-group.js.map +1 -1
  582. package/lib/components/radio/src/radio-group2.js +37 -70
  583. package/lib/components/radio/src/radio-group2.js.map +1 -1
  584. package/lib/components/rate/index.js +2 -2
  585. package/lib/components/rate/src/rate.js +256 -87
  586. package/lib/components/rate/src/rate.js.map +1 -1
  587. package/lib/components/rate/src/rate2.js +87 -256
  588. package/lib/components/rate/src/rate2.js.map +1 -1
  589. package/lib/components/result/index.d.ts +4 -4
  590. package/lib/components/result/src/result.d.ts +1 -1
  591. package/lib/components/result/src/result.vue.d.ts +4 -4
  592. package/lib/components/roving-focus-group/src/roving-focus-group.js +1 -1
  593. package/lib/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
  594. package/lib/components/scrollbar/index.js +2 -2
  595. package/lib/components/scrollbar/src/scrollbar.js +176 -47
  596. package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
  597. package/lib/components/scrollbar/src/scrollbar2.js +47 -176
  598. package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
  599. package/lib/components/select/index.d.ts +14 -14
  600. package/lib/components/select/src/select.js +2 -2
  601. package/lib/components/select/src/select.vue.d.ts +14 -14
  602. package/lib/components/select/src/useSelect.d.ts +12 -12
  603. package/lib/components/select-v2/index.d.ts +30 -30
  604. package/lib/components/select-v2/src/defaults.js +1 -1
  605. package/lib/components/select-v2/src/option-item.vue.d.ts +1 -1
  606. package/lib/components/select-v2/src/select.vue.d.ts +15 -15
  607. package/lib/components/select-v2/src/useSelect.d.ts +13 -13
  608. package/lib/components/skeleton/index.js +4 -4
  609. package/lib/components/skeleton/src/skeleton-item.js +18 -23
  610. package/lib/components/skeleton/src/skeleton-item.js.map +1 -1
  611. package/lib/components/skeleton/src/skeleton-item2.js +23 -18
  612. package/lib/components/skeleton/src/skeleton-item2.js.map +1 -1
  613. package/lib/components/skeleton/src/skeleton.js +22 -49
  614. package/lib/components/skeleton/src/skeleton.js.map +1 -1
  615. package/lib/components/skeleton/src/skeleton2.js +49 -22
  616. package/lib/components/skeleton/src/skeleton2.js.map +1 -1
  617. package/lib/components/slider/index.d.ts +75 -75
  618. package/lib/components/slider/index.js +2 -2
  619. package/lib/components/slider/src/button.vue.d.ts +6 -6
  620. package/lib/components/slider/src/composables/use-slide.d.ts +24 -24
  621. package/lib/components/slider/src/slider.js +233 -92
  622. package/lib/components/slider/src/slider.js.map +1 -1
  623. package/lib/components/slider/src/slider.vue.d.ts +75 -75
  624. package/lib/components/slider/src/slider2.js +92 -233
  625. package/lib/components/slider/src/slider2.js.map +1 -1
  626. package/lib/components/steps/index.d.ts +16 -16
  627. package/lib/components/steps/index.js +2 -2
  628. package/lib/components/steps/src/item.d.ts +1 -1
  629. package/lib/components/steps/src/item.js +19 -190
  630. package/lib/components/steps/src/item.js.map +1 -1
  631. package/lib/components/steps/src/item.vue.d.ts +4 -4
  632. package/lib/components/steps/src/item2.js +190 -19
  633. package/lib/components/steps/src/item2.js.map +1 -1
  634. package/lib/components/steps/src/steps.d.ts +2 -2
  635. package/lib/components/steps/src/steps.vue.d.ts +8 -8
  636. package/lib/components/switch/index.js +2 -2
  637. package/lib/components/switch/src/switch.js +242 -88
  638. package/lib/components/switch/src/switch.js.map +1 -1
  639. package/lib/components/switch/src/switch2.js +88 -242
  640. package/lib/components/switch/src/switch2.js.map +1 -1
  641. package/lib/components/table/index.d.ts +1 -1
  642. package/lib/components/table/src/filter-panel.vue.d.ts +12 -12
  643. package/lib/components/table/src/table.vue.d.ts +1 -1
  644. package/lib/components/tabs/index.js +2 -2
  645. package/lib/components/tabs/src/tab-pane.js +14 -73
  646. package/lib/components/tabs/src/tab-pane.js.map +1 -1
  647. package/lib/components/tabs/src/tab-pane2.js +73 -14
  648. package/lib/components/tabs/src/tab-pane2.js.map +1 -1
  649. package/lib/components/tag/index.d.ts +1 -1
  650. package/lib/components/tag/index.js +2 -2
  651. package/lib/components/tag/src/tag.js +98 -34
  652. package/lib/components/tag/src/tag.js.map +1 -1
  653. package/lib/components/tag/src/tag.vue.d.ts +1 -1
  654. package/lib/components/tag/src/tag2.js +34 -98
  655. package/lib/components/tag/src/tag2.js.map +1 -1
  656. package/lib/components/time-picker/src/common/picker.vue.d.ts +34 -34
  657. package/lib/components/time-select/index.d.ts +62 -62
  658. package/lib/components/time-select/src/time-select.vue.d.ts +31 -31
  659. package/lib/components/tooltip/index.d.ts +6 -6
  660. package/lib/components/tooltip/index.js +1 -1
  661. package/lib/components/tooltip/src/content.js +179 -31
  662. package/lib/components/tooltip/src/content.js.map +1 -1
  663. package/lib/components/tooltip/src/content.vue.d.ts +6 -6
  664. package/lib/components/tooltip/src/content2.js +31 -179
  665. package/lib/components/tooltip/src/content2.js.map +1 -1
  666. package/lib/components/tooltip/src/tooltip.js +2 -2
  667. package/lib/components/tooltip/src/tooltip.vue.d.ts +6 -6
  668. package/lib/components/tooltip/src/tooltip2.js +1 -1
  669. package/lib/components/tooltip/src/trigger.js +1 -1
  670. package/lib/components/tooltip/src/trigger2.js +1 -1
  671. package/lib/components/tooltip-v2/index.d.ts +4 -4
  672. package/lib/components/tooltip-v2/index.js +1 -1
  673. package/lib/components/tooltip-v2/src/arrow.js +37 -23
  674. package/lib/components/tooltip-v2/src/arrow.js.map +1 -1
  675. package/lib/components/tooltip-v2/src/arrow2.js +23 -37
  676. package/lib/components/tooltip-v2/src/arrow2.js.map +1 -1
  677. package/lib/components/tooltip-v2/src/content2.js +1 -1
  678. package/lib/components/tooltip-v2/src/tooltip.js +1 -1
  679. package/lib/components/tooltip-v2/src/tooltip.vue.d.ts +4 -4
  680. package/lib/components/tooltip-v2/src/tooltip2.js +2 -2
  681. package/lib/components/transfer/index.d.ts +65 -65
  682. package/lib/components/transfer/index.js +2 -2
  683. package/lib/components/transfer/src/composables/use-check.js +1 -1
  684. package/lib/components/transfer/src/composables/use-checked-change.js +1 -1
  685. package/lib/components/transfer/src/transfer-panel.js +21 -128
  686. package/lib/components/transfer/src/transfer-panel.js.map +1 -1
  687. package/lib/components/transfer/src/transfer-panel.vue.d.ts +12 -12
  688. package/lib/components/transfer/src/transfer-panel2.js +128 -21
  689. package/lib/components/transfer/src/transfer-panel2.js.map +1 -1
  690. package/lib/components/transfer/src/transfer.js +73 -162
  691. package/lib/components/transfer/src/transfer.js.map +1 -1
  692. package/lib/components/transfer/src/transfer.vue.d.ts +65 -65
  693. package/lib/components/transfer/src/transfer2.js +162 -73
  694. package/lib/components/transfer/src/transfer2.js.map +1 -1
  695. package/lib/components/tree-v2/index.d.ts +1 -1
  696. package/lib/components/tree-v2/src/tree-node.vue.d.ts +1 -1
  697. package/lib/components/tree-v2/src/tree.vue.d.ts +1 -1
  698. package/lib/components/upload/index.d.ts +5 -5
  699. package/lib/components/upload/index.js +1 -1
  700. package/lib/components/upload/src/upload-content.js +176 -31
  701. package/lib/components/upload/src/upload-content.js.map +1 -1
  702. package/lib/components/upload/src/upload-content.vue.d.ts +1 -1
  703. package/lib/components/upload/src/upload-content2.js +31 -176
  704. package/lib/components/upload/src/upload-content2.js.map +1 -1
  705. package/lib/components/upload/src/upload.vue.d.ts +5 -5
  706. package/lib/components/upload/src/upload2.js +1 -1
  707. package/lib/components/visual-hidden/index.js +2 -2
  708. package/lib/components/visual-hidden/src/visual-hidden.js +35 -7
  709. package/lib/components/visual-hidden/src/visual-hidden.js.map +1 -1
  710. package/lib/components/visual-hidden/src/visual-hidden2.js +7 -35
  711. package/lib/components/visual-hidden/src/visual-hidden2.js.map +1 -1
  712. package/lib/index.js +41 -41
  713. package/package.json +1 -1
  714. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"focus-trap.mjs","sources":["../../../../../../packages/components/focus-trap/src/focus-trap.vue"],"sourcesContent":["<template>\n <slot :handle-keydown=\"onKeydown\" />\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n unref,\n watch,\n} from 'vue'\nimport { useGlobalConfig } from '../../config-provider'\nimport { isNil } from 'lodash-unified'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useEscapeKeydown } from '@element-plus/hooks'\nimport { isString } from '@element-plus/utils'\nimport {\n createFocusOutPreventedEvent,\n focusFirstDescendant,\n focusableStack,\n getEdges,\n isFocusCausedByUserEvent,\n obtainAllFocusableElements,\n tryFocus,\n useFocusReason,\n} from './utils'\nimport {\n FOCUS_AFTER_RELEASED,\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS,\n FOCUS_TRAP_INJECTION_KEY,\n ON_RELEASE_FOCUS_EVT,\n ON_TRAP_FOCUS_EVT,\n} from './tokens'\n\nimport type { PropType } from 'vue'\nimport type { FocusLayer } from './utils'\n\nexport default defineComponent({\n name: 'ElFocusTrap',\n inheritAttrs: false,\n props: {\n loop: Boolean,\n trapped: Boolean,\n focusTrapEl: Object as PropType<HTMLElement>,\n focusStartEl: {\n type: [Object, String] as PropType<'container' | 'first' | HTMLElement>,\n default: 'first',\n },\n },\n emits: [\n ON_TRAP_FOCUS_EVT,\n ON_RELEASE_FOCUS_EVT,\n 'focusin',\n 'focusout',\n 'focusout-prevented',\n 'release-requested',\n ],\n setup(props, ctx) {\n const forEditor = useGlobalConfig('forEditor')\n const emit = forEditor.value ? (name: string, evt: Event) => {} : ctx.emit\n\n const forwardRef = ref<HTMLElement | undefined>()\n let lastFocusBeforeTrapped: HTMLElement | null\n let lastFocusAfterTrapped: HTMLElement | null\n\n const { focusReason } = useFocusReason()\n\n useEscapeKeydown((event) => {\n if (props.trapped && !focusLayer.paused) {\n emit('release-requested', event)\n }\n })\n\n const focusLayer: FocusLayer = {\n paused: false,\n pause() {\n this.paused = true\n },\n resume() {\n this.paused = false\n },\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n if (!props.loop && !props.trapped) return\n if (focusLayer.paused) return\n\n const { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e\n const { loop } = props\n const isTabbing =\n key === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey\n\n const currentFocusingEl = document.activeElement\n if (isTabbing && currentFocusingEl) {\n const container = currentTarget as HTMLElement\n const [first, last] = getEdges(container)\n const isTabbable = first && last\n if (!isTabbable) {\n if (currentFocusingEl === container) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n }\n }\n } else {\n if (!shiftKey && currentFocusingEl === last) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n if (loop) tryFocus(first, true)\n }\n } else if (\n shiftKey &&\n [first, container].includes(currentFocusingEl as HTMLElement)\n ) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n if (loop) tryFocus(last, true)\n }\n }\n }\n }\n }\n\n provide(FOCUS_TRAP_INJECTION_KEY, {\n focusTrapRef: forwardRef,\n onKeydown,\n })\n\n watch(\n () => props.focusTrapEl,\n (focusTrapEl) => {\n if (focusTrapEl) {\n forwardRef.value = focusTrapEl\n }\n },\n { immediate: true }\n )\n\n watch([forwardRef], ([forwardRef], [oldForwardRef]) => {\n if (forwardRef) {\n forwardRef.addEventListener('keydown', onKeydown)\n forwardRef.addEventListener('focusin', onFocusIn)\n forwardRef.addEventListener('focusout', onFocusOut)\n }\n if (oldForwardRef) {\n oldForwardRef.removeEventListener('keydown', onKeydown)\n oldForwardRef.removeEventListener('focusin', onFocusIn)\n oldForwardRef.removeEventListener('focusout', onFocusOut)\n }\n })\n\n const trapOnFocus = (e: Event) => {\n emit(ON_TRAP_FOCUS_EVT, e)\n }\n const releaseOnFocus = (e: Event) => emit(ON_RELEASE_FOCUS_EVT, e)\n\n const onFocusIn = (e: FocusEvent) => {\n const trapContainer = unref(forwardRef)\n if (!trapContainer) return\n\n const target = e.target as HTMLElement | null\n const relatedTarget = e.relatedTarget as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n\n if (!props.trapped) {\n const isPrevFocusedInTrap =\n relatedTarget && trapContainer.contains(relatedTarget)\n if (!isPrevFocusedInTrap) {\n lastFocusBeforeTrapped = relatedTarget\n }\n }\n\n if (isFocusedInTrap) emit('focusin', e)\n\n if (focusLayer.paused) return\n\n if (props.trapped) {\n if (isFocusedInTrap) {\n lastFocusAfterTrapped = target\n } else {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }\n\n const onFocusOut = (e: Event) => {\n const trapContainer = unref(forwardRef)\n if (focusLayer.paused || !trapContainer) return\n\n if (props.trapped) {\n const relatedTarget = (e as FocusEvent)\n .relatedTarget as HTMLElement | null\n if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {\n // Give embedded focus layer time to pause this layer before reclaiming focus\n // And only reclaim focus if it should currently be trapping\n setTimeout(() => {\n if (!focusLayer.paused && props.trapped) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }, 0)\n }\n } else {\n const target = e.target as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n if (!isFocusedInTrap) emit('focusout', e)\n }\n }\n\n async function startTrap() {\n // Wait for forwardRef to resolve\n await nextTick()\n const trapContainer = unref(forwardRef)\n if (trapContainer) {\n focusableStack.push(focusLayer)\n const prevFocusedElement = trapContainer.contains(\n document.activeElement\n )\n ? lastFocusBeforeTrapped\n : document.activeElement\n lastFocusBeforeTrapped = prevFocusedElement as HTMLElement | null\n const isPrevFocusContained = trapContainer.contains(prevFocusedElement)\n if (!isPrevFocusContained) {\n const focusEvent = new Event(\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS\n )\n trapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n trapContainer.dispatchEvent(focusEvent)\n if (!focusEvent.defaultPrevented) {\n nextTick(() => {\n let focusStartEl = props.focusStartEl\n if (!isString(focusStartEl)) {\n tryFocus(focusStartEl)\n if (document.activeElement !== focusStartEl) {\n focusStartEl = 'first'\n }\n }\n if (focusStartEl === 'first') {\n focusFirstDescendant(\n obtainAllFocusableElements(trapContainer),\n true\n )\n }\n if (\n document.activeElement === prevFocusedElement ||\n focusStartEl === 'container'\n ) {\n tryFocus(trapContainer)\n }\n })\n }\n }\n }\n }\n\n function stopTrap() {\n const trapContainer = unref(forwardRef)\n\n if (trapContainer) {\n trapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n\n const releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, {\n ...FOCUS_AFTER_TRAPPED_OPTS,\n detail: {\n focusReason: focusReason.value,\n },\n })\n trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus)\n trapContainer.dispatchEvent(releasedEvent)\n if (\n !releasedEvent.defaultPrevented &&\n (focusReason.value == 'keyboard' ||\n !isFocusCausedByUserEvent() ||\n trapContainer.contains(document.activeElement))\n ) {\n tryFocus(lastFocusBeforeTrapped ?? document.body)\n }\n\n trapContainer.removeEventListener(FOCUS_AFTER_RELEASED, trapOnFocus)\n focusableStack.remove(focusLayer)\n }\n }\n\n onMounted(() => {\n if (props.trapped) {\n startTrap()\n }\n\n watch(\n () => props.trapped,\n (trapped) => {\n if (trapped) {\n startTrap()\n } else {\n stopTrap()\n }\n }\n )\n })\n\n onBeforeUnmount(() => {\n if (props.trapped) {\n stopTrap()\n }\n })\n\n return {\n onKeydown,\n }\n },\n})\n</script>\n"],"names":["_renderSlot"],"mappings":";;;;;;;;;;;;;;AAyCA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,IAAM,EAAA,aAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,OAAA;AAAA,IACT,WAAa,EAAA,MAAA;AAAA,IACb,YAAc,EAAA;AAAA,MACZ,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA,OAAA;AAAA,KACX;AAAA,GACF;AAAA,EACA,KAAO,EAAA;AAAA,IACL,iBAAA;AAAA,IACA,oBAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,oBAAA;AAAA,IACA,mBAAA;AAAA,GACF;AAAA,EACA,KAAA,CAAM,OAAO,GAAK,EAAA;AAChB,IAAM,MAAA,SAAA,GAAY,gBAAgB,WAAW,CAAA,CAAA;AAC7C,IAAA,MAAM,IAAO,GAAA,SAAA,CAAU,KAAQ,GAAA,CAAC,MAAc,GAAe,KAAA;AAAA,QAAK,GAAI,CAAA,IAAA,CAAA;AAEtE,IAAA,MAAM,aAAa,GAA6B,EAAA,CAAA;AAChD,IAAI,IAAA,sBAAA,CAAA;AACJ,IAAI,IAAA,qBAAA,CAAA;AAEJ,IAAM,MAAA,EAAE,gBAAgB,cAAe,EAAA,CAAA;AAEvC,IAAA,gBAAA,CAAiB,CAAC,KAAU,KAAA;AAC1B,MAAA,IAAI,KAAM,CAAA,OAAA,IAAW,CAAC,UAAA,CAAW,MAAQ,EAAA;AACvC,QAAA,IAAA,CAAK,qBAAqB,KAAK,CAAA,CAAA;AAAA,OACjC;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,UAAyB,GAAA;AAAA,MAC7B,MAAQ,EAAA,KAAA;AAAA,MACR,KAAQ,GAAA;AACN,QAAA,IAAA,CAAK,MAAS,GAAA,IAAA,CAAA;AAAA,OAChB;AAAA,MACA,MAAS,GAAA;AACP,QAAA,IAAA,CAAK,MAAS,GAAA,KAAA,CAAA;AAAA,OAChB;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,SAAA,GAAY,CAAC,CAAqB,KAAA;AACtC,MAAA,IAAI,CAAC,KAAA,CAAM,IAAQ,IAAA,CAAC,KAAM,CAAA,OAAA;AAAS,QAAA,OAAA;AACnC,MAAA,IAAI,UAAW,CAAA,MAAA;AAAQ,QAAA,OAAA;AAEvB,MAAA,MAAM,EAAE,GAAK,EAAA,MAAA,EAAQ,OAAS,EAAA,OAAA,EAAS,eAAe,QAAa,EAAA,GAAA,CAAA,CAAA;AACnE,MAAA,MAAM,EAAE,IAAS,EAAA,GAAA,KAAA,CAAA;AACjB,MAAM,MAAA,SAAA,GACJ,QAAQ,UAAW,CAAA,GAAA,IAAO,CAAC,MAAU,IAAA,CAAC,WAAW,CAAC,OAAA,CAAA;AAEpD,MAAA,MAAM,oBAAoB,QAAS,CAAA,aAAA,CAAA;AACnC,MAAA,IAAI,aAAa,iBAAmB,EAAA;AAClC,QAAA,MAAM,SAAY,GAAA,aAAA,CAAA;AAClB,QAAA,MAAM,CAAC,KAAA,EAAO,IAAQ,CAAA,GAAA,QAAA,CAAS,SAAS,CAAA,CAAA;AACxC,QAAA,MAAM,aAAa,KAAS,IAAA,IAAA,CAAA;AAC5B,QAAA,IAAI,CAAC,UAAY,EAAA;AACf,UAAA,IAAI,sBAAsB,SAAW,EAAA;AACnC,YAAA,MAAM,yBAAyB,4BAA6B,CAAA;AAAA,cAC1D,aAAa,WAAY,CAAA,KAAA;AAAA,aAC1B,CAAA,CAAA;AACD,YAAA,IAAA,CAAK,sBAAsB,sBAAsB,CAAA,CAAA;AACjD,YAAI,IAAA,CAAC,uBAAuB,gBAAkB,EAAA;AAC5C,cAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAAA,aACnB;AAAA,WACF;AAAA,SACK,MAAA;AACL,UAAI,IAAA,CAAC,QAAY,IAAA,iBAAA,KAAsB,IAAM,EAAA;AAC3C,YAAA,MAAM,yBAAyB,4BAA6B,CAAA;AAAA,cAC1D,aAAa,WAAY,CAAA,KAAA;AAAA,aAC1B,CAAA,CAAA;AACD,YAAA,IAAA,CAAK,sBAAsB,sBAAsB,CAAA,CAAA;AACjD,YAAI,IAAA,CAAC,uBAAuB,gBAAkB,EAAA;AAC5C,cAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,cAAI,IAAA,IAAA;AAAM,gBAAA,QAAA,CAAS,OAAO,IAAI,CAAA,CAAA;AAAA,aAChC;AAAA,WACF,MAAA,IACE,YACA,CAAC,KAAA,EAAO,SAAS,CAAE,CAAA,QAAA,CAAS,iBAAgC,CAC5D,EAAA;AACA,YAAA,MAAM,yBAAyB,4BAA6B,CAAA;AAAA,cAC1D,aAAa,WAAY,CAAA,KAAA;AAAA,aAC1B,CAAA,CAAA;AACD,YAAA,IAAA,CAAK,sBAAsB,sBAAsB,CAAA,CAAA;AACjD,YAAI,IAAA,CAAC,uBAAuB,gBAAkB,EAAA;AAC5C,cAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,cAAI,IAAA,IAAA;AAAM,gBAAA,QAAA,CAAS,MAAM,IAAI,CAAA,CAAA;AAAA,aAC/B;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF,CAAA;AAEA,IAAA,OAAA,CAAQ,wBAA0B,EAAA;AAAA,MAChC,YAAc,EAAA,UAAA;AAAA,MACd,SAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,KAAA,CACE,MAAM,KAAA,CAAM,WACZ,EAAA,CAAC,WAAgB,KAAA;AACf,MAAA,IAAI,WAAa,EAAA;AACf,QAAA,UAAA,CAAW,KAAQ,GAAA,WAAA,CAAA;AAAA,OACrB;AAAA,KAEF,EAAA,EAAE,SAAW,EAAA,IAAA,EACf,CAAA,CAAA;AAEA,IAAA,KAAA,CAAM,CAAC,UAAU,CAAA,EAAG,CAAC,CAAC,WAAA,CAAA,EAAa,CAAC,aAAmB,CAAA,KAAA;AACrD,MAAA,IAAI,WAAY,EAAA;AACd,QAAW,WAAA,CAAA,gBAAA,CAAiB,WAAW,SAAS,CAAA,CAAA;AAChD,QAAW,WAAA,CAAA,gBAAA,CAAiB,WAAW,SAAS,CAAA,CAAA;AAChD,QAAW,WAAA,CAAA,gBAAA,CAAiB,YAAY,UAAU,CAAA,CAAA;AAAA,OACpD;AACA,MAAA,IAAI,aAAe,EAAA;AACjB,QAAc,aAAA,CAAA,mBAAA,CAAoB,WAAW,SAAS,CAAA,CAAA;AACtD,QAAc,aAAA,CAAA,mBAAA,CAAoB,WAAW,SAAS,CAAA,CAAA;AACtD,QAAc,aAAA,CAAA,mBAAA,CAAoB,YAAY,UAAU,CAAA,CAAA;AAAA,OAC1D;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAc,CAAC,CAAa,KAAA;AAChC,MAAA,IAAA,CAAK,mBAAmB,CAAC,CAAA,CAAA;AAAA,KAC3B,CAAA;AACA,IAAA,MAAM,cAAiB,GAAA,CAAC,CAAa,KAAA,IAAA,CAAK,sBAAsB,CAAC,CAAA,CAAA;AAEjE,IAAM,MAAA,SAAA,GAAY,CAAC,CAAkB,KAAA;AACnC,MAAM,MAAA,aAAA,GAAgB,MAAM,UAAU,CAAA,CAAA;AACtC,MAAA,IAAI,CAAC,aAAA;AAAe,QAAA,OAAA;AAEpB,MAAA,MAAM,SAAS,CAAE,CAAA,MAAA,CAAA;AACjB,MAAA,MAAM,gBAAgB,CAAE,CAAA,aAAA,CAAA;AACxB,MAAA,MAAM,eAAkB,GAAA,MAAA,IAAU,aAAc,CAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AAE/D,MAAI,IAAA,CAAC,MAAM,OAAS,EAAA;AAClB,QAAA,MAAM,mBACJ,GAAA,aAAA,IAAiB,aAAc,CAAA,QAAA,CAAS,aAAa,CAAA,CAAA;AACvD,QAAA,IAAI,CAAC,mBAAqB,EAAA;AACxB,UAAyB,sBAAA,GAAA,aAAA,CAAA;AAAA,SAC3B;AAAA,OACF;AAEA,MAAI,IAAA,eAAA;AAAiB,QAAA,IAAA,CAAK,WAAW,CAAC,CAAA,CAAA;AAEtC,MAAA,IAAI,UAAW,CAAA,MAAA;AAAQ,QAAA,OAAA;AAEvB,MAAA,IAAI,MAAM,OAAS,EAAA;AACjB,QAAA,IAAI,eAAiB,EAAA;AACnB,UAAwB,qBAAA,GAAA,MAAA,CAAA;AAAA,SACnB,MAAA;AACL,UAAA,QAAA,CAAS,uBAAuB,IAAI,CAAA,CAAA;AAAA,SACtC;AAAA,OACF;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,UAAA,GAAa,CAAC,CAAa,KAAA;AAC/B,MAAM,MAAA,aAAA,GAAgB,MAAM,UAAU,CAAA,CAAA;AACtC,MAAI,IAAA,UAAA,CAAW,UAAU,CAAC,aAAA;AAAe,QAAA,OAAA;AAEzC,MAAA,IAAI,MAAM,OAAS,EAAA;AACjB,QAAA,MAAM,gBAAiB,CACpB,CAAA,aAAA,CAAA;AACH,QAAI,IAAA,CAAC,MAAM,aAAa,CAAA,IAAK,CAAC,aAAc,CAAA,QAAA,CAAS,aAAa,CAAG,EAAA;AAGnE,UAAA,UAAA,CAAW,MAAM;AACf,YAAA,IAAI,CAAC,UAAA,CAAW,MAAU,IAAA,KAAA,CAAM,OAAS,EAAA;AACvC,cAAA,MAAM,yBAAyB,4BAA6B,CAAA;AAAA,gBAC1D,aAAa,WAAY,CAAA,KAAA;AAAA,eAC1B,CAAA,CAAA;AACD,cAAA,IAAA,CAAK,sBAAsB,sBAAsB,CAAA,CAAA;AACjD,cAAI,IAAA,CAAC,uBAAuB,gBAAkB,EAAA;AAC5C,gBAAA,QAAA,CAAS,uBAAuB,IAAI,CAAA,CAAA;AAAA,eACtC;AAAA,aACF;AAAA,aACC,CAAC,CAAA,CAAA;AAAA,SACN;AAAA,OACK,MAAA;AACL,QAAA,MAAM,SAAS,CAAE,CAAA,MAAA,CAAA;AACjB,QAAA,MAAM,eAAkB,GAAA,MAAA,IAAU,aAAc,CAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AAC/D,QAAA,IAAI,CAAC,eAAA;AAAiB,UAAA,IAAA,CAAK,YAAY,CAAC,CAAA,CAAA;AAAA,OAC1C;AAAA,KACF,CAAA;AAEA,IAA2B,eAAA,SAAA,GAAA;AAEzB,MAAA,MAAM,QAAS,EAAA,CAAA;AACf,MAAM,MAAA,aAAA,GAAgB,MAAM,UAAU,CAAA,CAAA;AACtC,MAAA,IAAI,aAAe,EAAA;AACjB,QAAA,cAAA,CAAe,KAAK,UAAU,CAAA,CAAA;AAC9B,QAAA,MAAM,qBAAqB,aAAc,CAAA,QAAA,CACvC,SAAS,aACX,CAAA,GACI,yBACA,QAAS,CAAA,aAAA,CAAA;AACb,QAAyB,sBAAA,GAAA,kBAAA,CAAA;AACzB,QAAM,MAAA,oBAAA,GAAuB,aAAc,CAAA,QAAA,CAAS,kBAAkB,CAAA,CAAA;AACtE,QAAA,IAAI,CAAC,oBAAsB,EAAA;AACzB,UAAA,MAAM,UAAa,GAAA,IAAI,KACrB,CAAA,mBAAA,EACA,wBACF,CAAA,CAAA;AACA,UAAc,aAAA,CAAA,gBAAA,CAAiB,qBAAqB,WAAW,CAAA,CAAA;AAC/D,UAAA,aAAA,CAAc,cAAc,UAAU,CAAA,CAAA;AACtC,UAAI,IAAA,CAAC,WAAW,gBAAkB,EAAA;AAChC,YAAA,QAAA,CAAS,MAAM;AACb,cAAA,IAAI,eAAe,KAAM,CAAA,YAAA,CAAA;AACzB,cAAI,IAAA,CAAC,QAAS,CAAA,YAAY,CAAG,EAAA;AAC3B,gBAAA,QAAA,CAAS,YAAY,CAAA,CAAA;AACrB,gBAAI,IAAA,QAAA,CAAS,kBAAkB,YAAc,EAAA;AAC3C,kBAAe,YAAA,GAAA,OAAA,CAAA;AAAA,iBACjB;AAAA,eACF;AACA,cAAA,IAAI,iBAAiB,OAAS,EAAA;AAC5B,gBACE,oBAAA,CAAA,0BAAA,CAA2B,aAAa,CAAA,EACxC,IACF,CAAA,CAAA;AAAA,eACF;AACA,cAAA,IACE,QAAS,CAAA,aAAA,KAAkB,kBAC3B,IAAA,YAAA,KAAiB,WACjB,EAAA;AACA,gBAAA,QAAA,CAAS,aAAa,CAAA,CAAA;AAAA,eACxB;AAAA,aACD,CAAA,CAAA;AAAA,WACH;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEA,IAAoB,SAAA,QAAA,GAAA;AAClB,MAAM,MAAA,aAAA,GAAgB,MAAM,UAAU,CAAA,CAAA;AAEtC,MAAA,IAAI,aAAe,EAAA;AACjB,QAAc,aAAA,CAAA,mBAAA,CAAoB,qBAAqB,WAAW,CAAA,CAAA;AAElE,QAAM,MAAA,aAAA,GAAgB,IAAI,WAAA,CAAY,oBAAsB,EAAA;AAAA,UAC1D,GAAG,wBAAA;AAAA,UACH,MAAQ,EAAA;AAAA,YACN,aAAa,WAAY,CAAA,KAAA;AAAA,WAC3B;AAAA,SACD,CAAA,CAAA;AACD,QAAc,aAAA,CAAA,gBAAA,CAAiB,sBAAsB,cAAc,CAAA,CAAA;AACnE,QAAA,aAAA,CAAc,cAAc,aAAa,CAAA,CAAA;AACzC,QAAA,IACE,CAAC,aAAA,CAAc,gBACd,KAAA,WAAA,CAAY,KAAS,IAAA,UAAA,IACpB,CAAC,wBAAA,EACD,IAAA,aAAA,CAAc,QAAS,CAAA,QAAA,CAAS,aAAa,CAC/C,CAAA,EAAA;AACA,UAAS,QAAA,CAAA,sBAAA,IAA0B,6BAAa,GAAA,QAAA,CAAA,IAAA,CAAA,CAAA;AAAA,SAClD;AAEA,QAAc,aAAA,CAAA,mBAAA,CAAoB,sBAAsB,WAAW,CAAA,CAAA;AACnE,QAAA,cAAA,CAAe,OAAO,UAAU,CAAA,CAAA;AAAA,OAClC;AAAA,KACF;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,MAAM,OAAS,EAAA;AACjB,QAAU,SAAA,EAAA,CAAA;AAAA,OACZ;AAEA,MAAA,KAAA,CACE,MAAM,KAAA,CAAM,OACZ,EAAA,CAAC,OAAY,KAAA;AACX,QAAA,IAAI,OAAS,EAAA;AACX,UAAU,SAAA,EAAA,CAAA;AAAA,SACL,MAAA;AACL,UAAS,QAAA,EAAA,CAAA;AAAA,SACX;AAAA,OAEJ,CAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,IAAI,MAAM,OAAS,EAAA;AACjB,QAAS,QAAA,EAAA,CAAA;AAAA,OACX;AAAA,KACD,CAAA,CAAA;AAED,IAAO,OAAA;AAAA,MACL,SAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA,CAAA;;SA1UCA,UAAoC,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA,EAA7B,eAAgB,IAAS,CAAA,SAAA,EAAA,CAAA,CAAA;;;;;;"}
1
+ {"version":3,"file":"focus-trap.mjs","sources":["../../../../../../packages/components/focus-trap/src/focus-trap.vue"],"sourcesContent":["<template>\n <slot :handle-keydown=\"onKeydown\" />\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n unref,\n} from 'vue'\nimport { useGlobalConfig, watch } from '../../config-provider'\nimport { isNil } from 'lodash-unified'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useEscapeKeydown } from '@element-plus/hooks'\nimport { isString } from '@element-plus/utils'\nimport {\n createFocusOutPreventedEvent,\n focusFirstDescendant,\n focusableStack,\n getEdges,\n isFocusCausedByUserEvent,\n obtainAllFocusableElements,\n tryFocus,\n useFocusReason,\n} from './utils'\nimport {\n FOCUS_AFTER_RELEASED,\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS,\n FOCUS_TRAP_INJECTION_KEY,\n ON_RELEASE_FOCUS_EVT,\n ON_TRAP_FOCUS_EVT,\n} from './tokens'\n\nimport type { PropType } from 'vue'\nimport type { FocusLayer } from './utils'\n\nexport default defineComponent({\n name: 'ElFocusTrap',\n inheritAttrs: false,\n props: {\n loop: Boolean,\n trapped: Boolean,\n focusTrapEl: Object as PropType<HTMLElement>,\n focusStartEl: {\n type: [Object, String] as PropType<'container' | 'first' | HTMLElement>,\n default: 'first',\n },\n },\n emits: [\n ON_TRAP_FOCUS_EVT,\n ON_RELEASE_FOCUS_EVT,\n 'focusin',\n 'focusout',\n 'focusout-prevented',\n 'release-requested',\n ],\n setup(props, ctx) {\n const forEditor = useGlobalConfig('forEditor')\n const emit = forEditor.value ? (name: string, evt: Event) => {} : ctx.emit\n\n const forwardRef = ref<HTMLElement | undefined>()\n let lastFocusBeforeTrapped: HTMLElement | null\n let lastFocusAfterTrapped: HTMLElement | null\n\n const { focusReason } = useFocusReason()\n\n useEscapeKeydown((event) => {\n if (props.trapped && !focusLayer.paused) {\n emit('release-requested', event)\n }\n })\n\n const focusLayer: FocusLayer = {\n paused: false,\n pause() {\n this.paused = true\n },\n resume() {\n this.paused = false\n },\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n if (!props.loop && !props.trapped) return\n if (focusLayer.paused) return\n\n const { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e\n const { loop } = props\n const isTabbing =\n key === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey\n\n const currentFocusingEl = document.activeElement\n if (isTabbing && currentFocusingEl) {\n const container = currentTarget as HTMLElement\n const [first, last] = getEdges(container)\n const isTabbable = first && last\n if (!isTabbable) {\n if (currentFocusingEl === container) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n }\n }\n } else {\n if (!shiftKey && currentFocusingEl === last) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n if (loop) tryFocus(first, true)\n }\n } else if (\n shiftKey &&\n [first, container].includes(currentFocusingEl as HTMLElement)\n ) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n e.preventDefault()\n if (loop) tryFocus(last, true)\n }\n }\n }\n }\n }\n\n provide(FOCUS_TRAP_INJECTION_KEY, {\n focusTrapRef: forwardRef,\n onKeydown,\n })\n\n watch(\n () => props.focusTrapEl,\n (focusTrapEl) => {\n if (focusTrapEl) {\n forwardRef.value = focusTrapEl\n }\n },\n { immediate: true }\n )\n\n watch([forwardRef], ([forwardRef], [oldForwardRef]) => {\n if (forwardRef) {\n forwardRef.addEventListener('keydown', onKeydown)\n forwardRef.addEventListener('focusin', onFocusIn)\n forwardRef.addEventListener('focusout', onFocusOut)\n }\n if (oldForwardRef) {\n oldForwardRef.removeEventListener('keydown', onKeydown)\n oldForwardRef.removeEventListener('focusin', onFocusIn)\n oldForwardRef.removeEventListener('focusout', onFocusOut)\n }\n })\n\n const trapOnFocus = (e: Event) => {\n emit(ON_TRAP_FOCUS_EVT, e)\n }\n const releaseOnFocus = (e: Event) => emit(ON_RELEASE_FOCUS_EVT, e)\n\n const onFocusIn = (e: FocusEvent) => {\n const trapContainer = unref(forwardRef)\n if (!trapContainer) return\n\n const target = e.target as HTMLElement | null\n const relatedTarget = e.relatedTarget as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n\n if (!props.trapped) {\n const isPrevFocusedInTrap =\n relatedTarget && trapContainer.contains(relatedTarget)\n if (!isPrevFocusedInTrap) {\n lastFocusBeforeTrapped = relatedTarget\n }\n }\n\n if (isFocusedInTrap) emit('focusin', e)\n\n if (focusLayer.paused) return\n\n if (props.trapped) {\n if (isFocusedInTrap) {\n lastFocusAfterTrapped = target\n } else {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }\n\n const onFocusOut = (e: Event) => {\n const trapContainer = unref(forwardRef)\n if (focusLayer.paused || !trapContainer) return\n\n if (props.trapped) {\n const relatedTarget = (e as FocusEvent)\n .relatedTarget as HTMLElement | null\n if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {\n // Give embedded focus layer time to pause this layer before reclaiming focus\n // And only reclaim focus if it should currently be trapping\n setTimeout(() => {\n if (!focusLayer.paused && props.trapped) {\n const focusoutPreventedEvent = createFocusOutPreventedEvent({\n focusReason: focusReason.value,\n })\n emit('focusout-prevented', focusoutPreventedEvent)\n if (!focusoutPreventedEvent.defaultPrevented) {\n tryFocus(lastFocusAfterTrapped, true)\n }\n }\n }, 0)\n }\n } else {\n const target = e.target as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\n if (!isFocusedInTrap) emit('focusout', e)\n }\n }\n\n async function startTrap() {\n // Wait for forwardRef to resolve\n await nextTick()\n const trapContainer = unref(forwardRef)\n if (trapContainer) {\n focusableStack.push(focusLayer)\n const prevFocusedElement = trapContainer.contains(\n document.activeElement\n )\n ? lastFocusBeforeTrapped\n : document.activeElement\n lastFocusBeforeTrapped = prevFocusedElement as HTMLElement | null\n const isPrevFocusContained = trapContainer.contains(prevFocusedElement)\n if (!isPrevFocusContained) {\n const focusEvent = new Event(\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS\n )\n trapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n trapContainer.dispatchEvent(focusEvent)\n if (!focusEvent.defaultPrevented) {\n nextTick(() => {\n let focusStartEl = props.focusStartEl\n if (!isString(focusStartEl)) {\n tryFocus(focusStartEl)\n if (document.activeElement !== focusStartEl) {\n focusStartEl = 'first'\n }\n }\n if (focusStartEl === 'first') {\n focusFirstDescendant(\n obtainAllFocusableElements(trapContainer),\n true\n )\n }\n if (\n document.activeElement === prevFocusedElement ||\n focusStartEl === 'container'\n ) {\n tryFocus(trapContainer)\n }\n })\n }\n }\n }\n }\n\n function stopTrap() {\n const trapContainer = unref(forwardRef)\n\n if (trapContainer) {\n trapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n\n const releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, {\n ...FOCUS_AFTER_TRAPPED_OPTS,\n detail: {\n focusReason: focusReason.value,\n },\n })\n trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus)\n trapContainer.dispatchEvent(releasedEvent)\n if (\n !releasedEvent.defaultPrevented &&\n (focusReason.value == 'keyboard' ||\n !isFocusCausedByUserEvent() ||\n trapContainer.contains(document.activeElement))\n ) {\n tryFocus(lastFocusBeforeTrapped ?? document.body)\n }\n\n trapContainer.removeEventListener(FOCUS_AFTER_RELEASED, trapOnFocus)\n focusableStack.remove(focusLayer)\n }\n }\n\n onMounted(() => {\n if (props.trapped) {\n startTrap()\n }\n\n watch(\n () => props.trapped,\n (trapped) => {\n if (trapped) {\n startTrap()\n } else {\n stopTrap()\n }\n }\n )\n })\n\n onBeforeUnmount(() => {\n if (props.trapped) {\n stopTrap()\n }\n })\n\n return {\n onKeydown,\n }\n },\n})\n</script>\n"],"names":["_renderSlot"],"mappings":";;;;;;;;;;;;;;;AAwCA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,IAAM,EAAA,aAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,OAAA;AAAA,IACT,WAAa,EAAA,MAAA;AAAA,IACb,YAAc,EAAA;AAAA,MACZ,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA,OAAA;AAAA,KACX;AAAA,GACF;AAAA,EACA,KAAO,EAAA;AAAA,IACL,iBAAA;AAAA,IACA,oBAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,oBAAA;AAAA,IACA,mBAAA;AAAA,GACF;AAAA,EACA,KAAA,CAAM,OAAO,GAAK,EAAA;AAChB,IAAM,MAAA,SAAA,GAAY,gBAAgB,WAAW,CAAA,CAAA;AAC7C,IAAA,MAAM,IAAO,GAAA,SAAA,CAAU,KAAQ,GAAA,CAAC,MAAc,GAAe,KAAA;AAAA,QAAK,GAAI,CAAA,IAAA,CAAA;AAEtE,IAAA,MAAM,aAAa,GAA6B,EAAA,CAAA;AAChD,IAAI,IAAA,sBAAA,CAAA;AACJ,IAAI,IAAA,qBAAA,CAAA;AAEJ,IAAM,MAAA,EAAE,gBAAgB,cAAe,EAAA,CAAA;AAEvC,IAAA,gBAAA,CAAiB,CAAC,KAAU,KAAA;AAC1B,MAAA,IAAI,KAAM,CAAA,OAAA,IAAW,CAAC,UAAA,CAAW,MAAQ,EAAA;AACvC,QAAA,IAAA,CAAK,qBAAqB,KAAK,CAAA,CAAA;AAAA,OACjC;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,UAAyB,GAAA;AAAA,MAC7B,MAAQ,EAAA,KAAA;AAAA,MACR,KAAQ,GAAA;AACN,QAAA,IAAA,CAAK,MAAS,GAAA,IAAA,CAAA;AAAA,OAChB;AAAA,MACA,MAAS,GAAA;AACP,QAAA,IAAA,CAAK,MAAS,GAAA,KAAA,CAAA;AAAA,OAChB;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,SAAA,GAAY,CAAC,CAAqB,KAAA;AACtC,MAAA,IAAI,CAAC,KAAA,CAAM,IAAQ,IAAA,CAAC,KAAM,CAAA,OAAA;AAAS,QAAA,OAAA;AACnC,MAAA,IAAI,UAAW,CAAA,MAAA;AAAQ,QAAA,OAAA;AAEvB,MAAA,MAAM,EAAE,GAAK,EAAA,MAAA,EAAQ,OAAS,EAAA,OAAA,EAAS,eAAe,QAAa,EAAA,GAAA,CAAA,CAAA;AACnE,MAAA,MAAM,EAAE,IAAS,EAAA,GAAA,KAAA,CAAA;AACjB,MAAM,MAAA,SAAA,GACJ,QAAQ,UAAW,CAAA,GAAA,IAAO,CAAC,MAAU,IAAA,CAAC,WAAW,CAAC,OAAA,CAAA;AAEpD,MAAA,MAAM,oBAAoB,QAAS,CAAA,aAAA,CAAA;AACnC,MAAA,IAAI,aAAa,iBAAmB,EAAA;AAClC,QAAA,MAAM,SAAY,GAAA,aAAA,CAAA;AAClB,QAAA,MAAM,CAAC,KAAA,EAAO,IAAQ,CAAA,GAAA,QAAA,CAAS,SAAS,CAAA,CAAA;AACxC,QAAA,MAAM,aAAa,KAAS,IAAA,IAAA,CAAA;AAC5B,QAAA,IAAI,CAAC,UAAY,EAAA;AACf,UAAA,IAAI,sBAAsB,SAAW,EAAA;AACnC,YAAA,MAAM,yBAAyB,4BAA6B,CAAA;AAAA,cAC1D,aAAa,WAAY,CAAA,KAAA;AAAA,aAC1B,CAAA,CAAA;AACD,YAAA,IAAA,CAAK,sBAAsB,sBAAsB,CAAA,CAAA;AACjD,YAAI,IAAA,CAAC,uBAAuB,gBAAkB,EAAA;AAC5C,cAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAAA,aACnB;AAAA,WACF;AAAA,SACK,MAAA;AACL,UAAI,IAAA,CAAC,QAAY,IAAA,iBAAA,KAAsB,IAAM,EAAA;AAC3C,YAAA,MAAM,yBAAyB,4BAA6B,CAAA;AAAA,cAC1D,aAAa,WAAY,CAAA,KAAA;AAAA,aAC1B,CAAA,CAAA;AACD,YAAA,IAAA,CAAK,sBAAsB,sBAAsB,CAAA,CAAA;AACjD,YAAI,IAAA,CAAC,uBAAuB,gBAAkB,EAAA;AAC5C,cAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,cAAI,IAAA,IAAA;AAAM,gBAAA,QAAA,CAAS,OAAO,IAAI,CAAA,CAAA;AAAA,aAChC;AAAA,WACF,MAAA,IACE,YACA,CAAC,KAAA,EAAO,SAAS,CAAE,CAAA,QAAA,CAAS,iBAAgC,CAC5D,EAAA;AACA,YAAA,MAAM,yBAAyB,4BAA6B,CAAA;AAAA,cAC1D,aAAa,WAAY,CAAA,KAAA;AAAA,aAC1B,CAAA,CAAA;AACD,YAAA,IAAA,CAAK,sBAAsB,sBAAsB,CAAA,CAAA;AACjD,YAAI,IAAA,CAAC,uBAAuB,gBAAkB,EAAA;AAC5C,cAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,cAAI,IAAA,IAAA;AAAM,gBAAA,QAAA,CAAS,MAAM,IAAI,CAAA,CAAA;AAAA,aAC/B;AAAA,WACF;AAAA,SACF;AAAA,OACF;AAAA,KACF,CAAA;AAEA,IAAA,OAAA,CAAQ,wBAA0B,EAAA;AAAA,MAChC,YAAc,EAAA,UAAA;AAAA,MACd,SAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,KAAA,CACE,MAAM,KAAA,CAAM,WACZ,EAAA,CAAC,WAAgB,KAAA;AACf,MAAA,IAAI,WAAa,EAAA;AACf,QAAA,UAAA,CAAW,KAAQ,GAAA,WAAA,CAAA;AAAA,OACrB;AAAA,KAEF,EAAA,EAAE,SAAW,EAAA,IAAA,EACf,CAAA,CAAA;AAEA,IAAA,KAAA,CAAM,CAAC,UAAU,CAAA,EAAG,CAAC,CAAC,WAAA,CAAA,EAAa,CAAC,aAAmB,CAAA,KAAA;AACrD,MAAA,IAAI,WAAY,EAAA;AACd,QAAW,WAAA,CAAA,gBAAA,CAAiB,WAAW,SAAS,CAAA,CAAA;AAChD,QAAW,WAAA,CAAA,gBAAA,CAAiB,WAAW,SAAS,CAAA,CAAA;AAChD,QAAW,WAAA,CAAA,gBAAA,CAAiB,YAAY,UAAU,CAAA,CAAA;AAAA,OACpD;AACA,MAAA,IAAI,aAAe,EAAA;AACjB,QAAc,aAAA,CAAA,mBAAA,CAAoB,WAAW,SAAS,CAAA,CAAA;AACtD,QAAc,aAAA,CAAA,mBAAA,CAAoB,WAAW,SAAS,CAAA,CAAA;AACtD,QAAc,aAAA,CAAA,mBAAA,CAAoB,YAAY,UAAU,CAAA,CAAA;AAAA,OAC1D;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAc,CAAC,CAAa,KAAA;AAChC,MAAA,IAAA,CAAK,mBAAmB,CAAC,CAAA,CAAA;AAAA,KAC3B,CAAA;AACA,IAAA,MAAM,cAAiB,GAAA,CAAC,CAAa,KAAA,IAAA,CAAK,sBAAsB,CAAC,CAAA,CAAA;AAEjE,IAAM,MAAA,SAAA,GAAY,CAAC,CAAkB,KAAA;AACnC,MAAM,MAAA,aAAA,GAAgB,MAAM,UAAU,CAAA,CAAA;AACtC,MAAA,IAAI,CAAC,aAAA;AAAe,QAAA,OAAA;AAEpB,MAAA,MAAM,SAAS,CAAE,CAAA,MAAA,CAAA;AACjB,MAAA,MAAM,gBAAgB,CAAE,CAAA,aAAA,CAAA;AACxB,MAAA,MAAM,eAAkB,GAAA,MAAA,IAAU,aAAc,CAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AAE/D,MAAI,IAAA,CAAC,MAAM,OAAS,EAAA;AAClB,QAAA,MAAM,mBACJ,GAAA,aAAA,IAAiB,aAAc,CAAA,QAAA,CAAS,aAAa,CAAA,CAAA;AACvD,QAAA,IAAI,CAAC,mBAAqB,EAAA;AACxB,UAAyB,sBAAA,GAAA,aAAA,CAAA;AAAA,SAC3B;AAAA,OACF;AAEA,MAAI,IAAA,eAAA;AAAiB,QAAA,IAAA,CAAK,WAAW,CAAC,CAAA,CAAA;AAEtC,MAAA,IAAI,UAAW,CAAA,MAAA;AAAQ,QAAA,OAAA;AAEvB,MAAA,IAAI,MAAM,OAAS,EAAA;AACjB,QAAA,IAAI,eAAiB,EAAA;AACnB,UAAwB,qBAAA,GAAA,MAAA,CAAA;AAAA,SACnB,MAAA;AACL,UAAA,QAAA,CAAS,uBAAuB,IAAI,CAAA,CAAA;AAAA,SACtC;AAAA,OACF;AAAA,KACF,CAAA;AAEA,IAAM,MAAA,UAAA,GAAa,CAAC,CAAa,KAAA;AAC/B,MAAM,MAAA,aAAA,GAAgB,MAAM,UAAU,CAAA,CAAA;AACtC,MAAI,IAAA,UAAA,CAAW,UAAU,CAAC,aAAA;AAAe,QAAA,OAAA;AAEzC,MAAA,IAAI,MAAM,OAAS,EAAA;AACjB,QAAA,MAAM,gBAAiB,CACpB,CAAA,aAAA,CAAA;AACH,QAAI,IAAA,CAAC,MAAM,aAAa,CAAA,IAAK,CAAC,aAAc,CAAA,QAAA,CAAS,aAAa,CAAG,EAAA;AAGnE,UAAA,UAAA,CAAW,MAAM;AACf,YAAA,IAAI,CAAC,UAAA,CAAW,MAAU,IAAA,KAAA,CAAM,OAAS,EAAA;AACvC,cAAA,MAAM,yBAAyB,4BAA6B,CAAA;AAAA,gBAC1D,aAAa,WAAY,CAAA,KAAA;AAAA,eAC1B,CAAA,CAAA;AACD,cAAA,IAAA,CAAK,sBAAsB,sBAAsB,CAAA,CAAA;AACjD,cAAI,IAAA,CAAC,uBAAuB,gBAAkB,EAAA;AAC5C,gBAAA,QAAA,CAAS,uBAAuB,IAAI,CAAA,CAAA;AAAA,eACtC;AAAA,aACF;AAAA,aACC,CAAC,CAAA,CAAA;AAAA,SACN;AAAA,OACK,MAAA;AACL,QAAA,MAAM,SAAS,CAAE,CAAA,MAAA,CAAA;AACjB,QAAA,MAAM,eAAkB,GAAA,MAAA,IAAU,aAAc,CAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AAC/D,QAAA,IAAI,CAAC,eAAA;AAAiB,UAAA,IAAA,CAAK,YAAY,CAAC,CAAA,CAAA;AAAA,OAC1C;AAAA,KACF,CAAA;AAEA,IAA2B,eAAA,SAAA,GAAA;AAEzB,MAAA,MAAM,QAAS,EAAA,CAAA;AACf,MAAM,MAAA,aAAA,GAAgB,MAAM,UAAU,CAAA,CAAA;AACtC,MAAA,IAAI,aAAe,EAAA;AACjB,QAAA,cAAA,CAAe,KAAK,UAAU,CAAA,CAAA;AAC9B,QAAA,MAAM,qBAAqB,aAAc,CAAA,QAAA,CACvC,SAAS,aACX,CAAA,GACI,yBACA,QAAS,CAAA,aAAA,CAAA;AACb,QAAyB,sBAAA,GAAA,kBAAA,CAAA;AACzB,QAAM,MAAA,oBAAA,GAAuB,aAAc,CAAA,QAAA,CAAS,kBAAkB,CAAA,CAAA;AACtE,QAAA,IAAI,CAAC,oBAAsB,EAAA;AACzB,UAAA,MAAM,UAAa,GAAA,IAAI,KACrB,CAAA,mBAAA,EACA,wBACF,CAAA,CAAA;AACA,UAAc,aAAA,CAAA,gBAAA,CAAiB,qBAAqB,WAAW,CAAA,CAAA;AAC/D,UAAA,aAAA,CAAc,cAAc,UAAU,CAAA,CAAA;AACtC,UAAI,IAAA,CAAC,WAAW,gBAAkB,EAAA;AAChC,YAAA,QAAA,CAAS,MAAM;AACb,cAAA,IAAI,eAAe,KAAM,CAAA,YAAA,CAAA;AACzB,cAAI,IAAA,CAAC,QAAS,CAAA,YAAY,CAAG,EAAA;AAC3B,gBAAA,QAAA,CAAS,YAAY,CAAA,CAAA;AACrB,gBAAI,IAAA,QAAA,CAAS,kBAAkB,YAAc,EAAA;AAC3C,kBAAe,YAAA,GAAA,OAAA,CAAA;AAAA,iBACjB;AAAA,eACF;AACA,cAAA,IAAI,iBAAiB,OAAS,EAAA;AAC5B,gBACE,oBAAA,CAAA,0BAAA,CAA2B,aAAa,CAAA,EACxC,IACF,CAAA,CAAA;AAAA,eACF;AACA,cAAA,IACE,QAAS,CAAA,aAAA,KAAkB,kBAC3B,IAAA,YAAA,KAAiB,WACjB,EAAA;AACA,gBAAA,QAAA,CAAS,aAAa,CAAA,CAAA;AAAA,eACxB;AAAA,aACD,CAAA,CAAA;AAAA,WACH;AAAA,SACF;AAAA,OACF;AAAA,KACF;AAEA,IAAoB,SAAA,QAAA,GAAA;AAClB,MAAM,MAAA,aAAA,GAAgB,MAAM,UAAU,CAAA,CAAA;AAEtC,MAAA,IAAI,aAAe,EAAA;AACjB,QAAc,aAAA,CAAA,mBAAA,CAAoB,qBAAqB,WAAW,CAAA,CAAA;AAElE,QAAM,MAAA,aAAA,GAAgB,IAAI,WAAA,CAAY,oBAAsB,EAAA;AAAA,UAC1D,GAAG,wBAAA;AAAA,UACH,MAAQ,EAAA;AAAA,YACN,aAAa,WAAY,CAAA,KAAA;AAAA,WAC3B;AAAA,SACD,CAAA,CAAA;AACD,QAAc,aAAA,CAAA,gBAAA,CAAiB,sBAAsB,cAAc,CAAA,CAAA;AACnE,QAAA,aAAA,CAAc,cAAc,aAAa,CAAA,CAAA;AACzC,QAAA,IACE,CAAC,aAAA,CAAc,gBACd,KAAA,WAAA,CAAY,KAAS,IAAA,UAAA,IACpB,CAAC,wBAAA,EACD,IAAA,aAAA,CAAc,QAAS,CAAA,QAAA,CAAS,aAAa,CAC/C,CAAA,EAAA;AACA,UAAS,QAAA,CAAA,sBAAA,IAA0B,6BAAa,GAAA,QAAA,CAAA,IAAA,CAAA,CAAA;AAAA,SAClD;AAEA,QAAc,aAAA,CAAA,mBAAA,CAAoB,sBAAsB,WAAW,CAAA,CAAA;AACnE,QAAA,cAAA,CAAe,OAAO,UAAU,CAAA,CAAA;AAAA,OAClC;AAAA,KACF;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,MAAM,OAAS,EAAA;AACjB,QAAU,SAAA,EAAA,CAAA;AAAA,OACZ;AAEA,MAAA,KAAA,CACE,MAAM,KAAA,CAAM,OACZ,EAAA,CAAC,OAAY,KAAA;AACX,QAAA,IAAI,OAAS,EAAA;AACX,UAAU,SAAA,EAAA,CAAA;AAAA,SACL,MAAA;AACL,UAAS,QAAA,EAAA,CAAA;AAAA,SACX;AAAA,OAEJ,CAAA,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,IAAI,MAAM,OAAS,EAAA;AACjB,QAAS,QAAA,EAAA,CAAA;AAAA,OACX;AAAA,KACD,CAAA,CAAA;AAED,IAAO,OAAA;AAAA,MACL,SAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA,CAAA;;SAzUCA,UAAoC,CAAA,IAAA,CAAA,MAAA,EAAA,SAAA,EAAA,EAA7B,eAAgB,IAAS,CAAA,SAAA,EAAA,CAAA,CAAA;;;;;;"}
@@ -9,7 +9,7 @@ declare const _default: import("vue").DefineComponent<{
9
9
  };
10
10
  }, {
11
11
  onKeydown: (e: KeyboardEvent) => void;
12
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focusAfterTrapped" | "focusAfterReleased" | "focusin" | "focusout" | "focusout-prevented" | "release-requested")[], "focusAfterTrapped" | "focusAfterReleased" | "focusin" | "focusout" | "focusout-prevented" | "release-requested", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
12
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focusin" | "focusout" | "focusAfterTrapped" | "focusAfterReleased" | "focusout-prevented" | "release-requested")[], "focusin" | "focusout" | "focusAfterTrapped" | "focusAfterReleased" | "focusout-prevented" | "release-requested", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
13
13
  loop: BooleanConstructor;
14
14
  trapped: BooleanConstructor;
15
15
  focusTrapEl: PropType<HTMLElement>;
@@ -171,7 +171,7 @@ export declare const ElForm: import("element-pe/es/utils").SFCWithInstall<import
171
171
  };
172
172
  readonly error: StringConstructor;
173
173
  readonly validateStatus: {
174
- readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "success" | "error" | "validating", unknown>>;
174
+ readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
175
175
  readonly required: false;
176
176
  readonly validator: ((val: unknown) => boolean) | undefined;
177
177
  __epPropKey: true;
@@ -211,7 +211,7 @@ export declare const ElForm: import("element-pe/es/utils").SFCWithInstall<import
211
211
  };
212
212
  readonly error: StringConstructor;
213
213
  readonly validateStatus: {
214
- readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "success" | "error" | "validating", unknown>>;
214
+ readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
215
215
  readonly required: false;
216
216
  readonly validator: ((val: unknown) => boolean) | undefined;
217
217
  __epPropKey: true;
@@ -260,8 +260,8 @@ export declare const ElForm: import("element-pe/es/utils").SFCWithInstall<import
260
260
  };
261
261
  labelId: string;
262
262
  inputIds: import("vue").Ref<string[]>;
263
- validateState: import("vue").Ref<"" | "success" | "error" | "validating">;
264
- validateStateDebounced: Readonly<import("vue").Ref<"" | "success" | "error" | "validating">>;
263
+ validateState: import("vue").Ref<"" | "error" | "success" | "validating">;
264
+ validateStateDebounced: Readonly<import("vue").Ref<"" | "error" | "success" | "validating">>;
265
265
  validateMessage: import("vue").Ref<string>;
266
266
  formItemRef: import("vue").Ref<HTMLDivElement | undefined>;
267
267
  initialValue: any;
@@ -287,7 +287,7 @@ export declare const ElForm: import("element-pe/es/utils").SFCWithInstall<import
287
287
  isRequired: import("vue").ComputedRef<boolean>;
288
288
  shouldShowError: import("vue").ComputedRef<import("element-pe/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>>;
289
289
  currentLabel: import("vue").ComputedRef<string>;
290
- setValidationState: (state: "" | "success" | "error" | "validating") => void;
290
+ setValidationState: (state: "" | "error" | "success" | "validating") => void;
291
291
  onValidationFailed: (error: import("./src/types").FormValidateFailure) => void;
292
292
  onValidationSucceeded: () => void;
293
293
  doValidate: (rules: import("async-validator").RuleItem[]) => Promise<true>;
@@ -325,7 +325,7 @@ export declare const ElForm: import("element-pe/es/utils").SFCWithInstall<import
325
325
  };
326
326
  readonly error: StringConstructor;
327
327
  readonly validateStatus: {
328
- readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "success" | "error" | "validating", unknown>>;
328
+ readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
329
329
  readonly required: false;
330
330
  readonly validator: ((val: unknown) => boolean) | undefined;
331
331
  __epPropKey: true;
@@ -371,7 +371,7 @@ export declare const ElFormItem: import("element-pe/es/utils").SFCWithInstall<im
371
371
  };
372
372
  readonly error: StringConstructor;
373
373
  readonly validateStatus: {
374
- readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "success" | "error" | "validating", unknown>>;
374
+ readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
375
375
  readonly required: false;
376
376
  readonly validator: ((val: unknown) => boolean) | undefined;
377
377
  __epPropKey: true;
@@ -411,7 +411,7 @@ export declare const ElFormItem: import("element-pe/es/utils").SFCWithInstall<im
411
411
  };
412
412
  readonly error: StringConstructor;
413
413
  readonly validateStatus: {
414
- readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "success" | "error" | "validating", unknown>>;
414
+ readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
415
415
  readonly required: false;
416
416
  readonly validator: ((val: unknown) => boolean) | undefined;
417
417
  __epPropKey: true;
@@ -460,8 +460,8 @@ export declare const ElFormItem: import("element-pe/es/utils").SFCWithInstall<im
460
460
  };
461
461
  labelId: string;
462
462
  inputIds: import("vue").Ref<string[]>;
463
- validateState: import("vue").Ref<"" | "success" | "error" | "validating">;
464
- validateStateDebounced: Readonly<import("vue").Ref<"" | "success" | "error" | "validating">>;
463
+ validateState: import("vue").Ref<"" | "error" | "success" | "validating">;
464
+ validateStateDebounced: Readonly<import("vue").Ref<"" | "error" | "success" | "validating">>;
465
465
  validateMessage: import("vue").Ref<string>;
466
466
  formItemRef: import("vue").Ref<HTMLDivElement | undefined>;
467
467
  initialValue: any;
@@ -487,7 +487,7 @@ export declare const ElFormItem: import("element-pe/es/utils").SFCWithInstall<im
487
487
  isRequired: import("vue").ComputedRef<boolean>;
488
488
  shouldShowError: import("vue").ComputedRef<import("element-pe/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>>;
489
489
  currentLabel: import("vue").ComputedRef<string>;
490
- setValidationState: (state: "" | "success" | "error" | "validating") => void;
490
+ setValidationState: (state: "" | "error" | "success" | "validating") => void;
491
491
  onValidationFailed: (error: import("./src/types").FormValidateFailure) => void;
492
492
  onValidationSucceeded: () => void;
493
493
  doValidate: (rules: import("async-validator").RuleItem[]) => Promise<true>;
@@ -525,7 +525,7 @@ export declare const ElFormItem: import("element-pe/es/utils").SFCWithInstall<im
525
525
  };
526
526
  readonly error: StringConstructor;
527
527
  readonly validateStatus: {
528
- readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "success" | "error" | "validating", unknown>>;
528
+ readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
529
529
  readonly required: false;
530
530
  readonly validator: ((val: unknown) => boolean) | undefined;
531
531
  __epPropKey: true;
@@ -1,8 +1,8 @@
1
1
  import '../../utils/index.mjs';
2
2
  import Form from './src/form2.mjs';
3
- import FormItem from './src/form-item2.mjs';
3
+ import FormItem from './src/form-item.mjs';
4
4
  export { formEmits, formProps } from './src/form.mjs';
5
- export { formItemProps, formItemValidateStates } from './src/form-item.mjs';
5
+ export { formItemProps, formItemValidateStates } from './src/form-item2.mjs';
6
6
  import './src/types.mjs';
7
7
  export { formContextKey, formItemContextKey } from './src/constants.mjs';
8
8
  import './src/hooks/index.mjs';
@@ -22,7 +22,7 @@ export declare const formItemProps: {
22
22
  };
23
23
  readonly error: StringConstructor;
24
24
  readonly validateStatus: {
25
- readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "success" | "error" | "validating", unknown>>;
25
+ readonly type: import("vue").PropType<import("element-pe/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
26
26
  readonly required: false;
27
27
  readonly validator: ((val: unknown) => boolean) | undefined;
28
28
  __epPropKey: true;
@@ -1,52 +1,332 @@
1
- import '../../../constants/index.mjs';
1
+ import { defineComponent, useSlots, inject, ref, computed, nextTick, reactive, toRefs, provide, onMounted, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, unref, createVNode, withCtx, createBlock, resolveDynamicComponent, normalizeStyle, renderSlot, createTextVNode, toDisplayString, createCommentVNode, createElementVNode, TransitionGroup } from 'vue';
2
+ import '../../config-provider/index.mjs';
3
+ import AsyncValidator from 'async-validator';
4
+ import { castArray, clone } from 'lodash-unified';
5
+ import { refDebounced } from '@vueuse/core';
2
6
  import '../../../utils/index.mjs';
3
- import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
4
- import { componentSizes } from '../../../constants/size.mjs';
7
+ import '../../../hooks/index.mjs';
8
+ import './hooks/index.mjs';
9
+ import { formItemProps } from './form-item2.mjs';
10
+ import FormLabelWrap from './form-label-wrap.mjs';
11
+ import { formContextKey, formItemContextKey } from './constants.mjs';
12
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
13
+ import { useGlobalConfig } from '../../config-provider/src/hooks/use-global-config.mjs';
14
+ import { useFormSize } from './hooks/use-form-common-props.mjs';
15
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
16
+ import { useId } from '../../../hooks/use-id/index.mjs';
17
+ import { addUnit } from '../../../utils/dom/style.mjs';
18
+ import { isBoolean } from '../../../utils/types.mjs';
19
+ import { isString, isFunction } from '@vue/shared';
20
+ import { getProp } from '../../../utils/objects.mjs';
21
+ import { watch } from '../../config-provider/src/for-editor.mjs';
5
22
 
6
- const formItemValidateStates = [
7
- "",
8
- "error",
9
- "validating",
10
- "success"
11
- ];
12
- const formItemProps = buildProps({
13
- label: String,
14
- labelWidth: {
15
- type: [String, Number],
16
- default: ""
17
- },
18
- prop: {
19
- type: definePropType([String, Array])
20
- },
21
- required: {
22
- type: Boolean,
23
- default: void 0
24
- },
25
- rules: {
26
- type: definePropType([Object, Array])
27
- },
28
- error: String,
29
- validateStatus: {
30
- type: String,
31
- values: formItemValidateStates
32
- },
33
- for: String,
34
- inlineMessage: {
35
- type: [String, Boolean],
36
- default: ""
37
- },
38
- showMessage: {
39
- type: Boolean,
40
- default: true
41
- },
42
- size: {
43
- type: String,
44
- values: componentSizes
45
- },
46
- widget: {
47
- type: String
23
+ const _hoisted_1 = ["role", "aria-labelledby", "widget"];
24
+ const _hoisted_2 = ["widget"];
25
+ const __default__ = defineComponent({
26
+ name: "ElFormItem"
27
+ });
28
+ const _sfc_main = /* @__PURE__ */ defineComponent({
29
+ ...__default__,
30
+ props: formItemProps,
31
+ setup(__props, { expose }) {
32
+ const props = __props;
33
+ const forEditor = useGlobalConfig("forEditor");
34
+ const slots = useSlots();
35
+ const formContext = inject(formContextKey, void 0);
36
+ const parentFormItemContext = inject(formItemContextKey, void 0);
37
+ const _size = useFormSize(void 0, { formItem: false });
38
+ const ns = useNamespace("form-item");
39
+ const labelId = useId().value;
40
+ const inputIds = ref([]);
41
+ const validateState = ref("");
42
+ const validateStateDebounced = refDebounced(validateState, 100);
43
+ const validateMessage = ref("");
44
+ const formItemRef = ref();
45
+ let initialValue = void 0;
46
+ let isResettingField = false;
47
+ const labelStyle = computed(() => {
48
+ if ((formContext == null ? void 0 : formContext.labelPosition) === "top") {
49
+ return {};
50
+ }
51
+ const labelWidth = addUnit(props.labelWidth || (formContext == null ? void 0 : formContext.labelWidth) || "");
52
+ if (labelWidth)
53
+ return { width: labelWidth };
54
+ return {};
55
+ });
56
+ const contentStyle = computed(() => {
57
+ if ((formContext == null ? void 0 : formContext.labelPosition) === "top" || (formContext == null ? void 0 : formContext.inline)) {
58
+ return {};
59
+ }
60
+ if (!props.label && !props.labelWidth && isNested) {
61
+ return {};
62
+ }
63
+ const labelWidth = addUnit(props.labelWidth || (formContext == null ? void 0 : formContext.labelWidth) || "");
64
+ if (!props.label && !slots.label) {
65
+ return { marginLeft: labelWidth };
66
+ }
67
+ return {};
68
+ });
69
+ const formItemClasses = computed(() => [
70
+ ns.b(),
71
+ ns.m(_size.value),
72
+ ns.is("error", validateState.value === "error"),
73
+ ns.is("validating", validateState.value === "validating"),
74
+ ns.is("success", validateState.value === "success"),
75
+ ns.is("required", isRequired.value || props.required),
76
+ ns.is("no-asterisk", formContext == null ? void 0 : formContext.hideRequiredAsterisk),
77
+ (formContext == null ? void 0 : formContext.requireAsteriskPosition) === "right" ? "asterisk-right" : "asterisk-left",
78
+ { [ns.m("feedback")]: formContext == null ? void 0 : formContext.statusIcon }
79
+ ]);
80
+ const _inlineMessage = computed(() => isBoolean(props.inlineMessage) ? props.inlineMessage : (formContext == null ? void 0 : formContext.inlineMessage) || false);
81
+ const validateClasses = computed(() => [
82
+ ns.e("error"),
83
+ { [ns.em("error", "inline")]: _inlineMessage.value }
84
+ ]);
85
+ const propString = computed(() => {
86
+ if (!props.prop)
87
+ return "";
88
+ return isString(props.prop) ? props.prop : props.prop.join(".");
89
+ });
90
+ const hasLabel = computed(() => {
91
+ return !!(props.label || slots.label);
92
+ });
93
+ const labelFor = computed(() => {
94
+ return props.for || inputIds.value.length === 1 ? inputIds.value[0] : void 0;
95
+ });
96
+ const isGroup = computed(() => {
97
+ return !labelFor.value && hasLabel.value;
98
+ });
99
+ const isNested = !!parentFormItemContext;
100
+ const fieldValue = computed(() => {
101
+ const model = formContext == null ? void 0 : formContext.model;
102
+ if (!model || !props.prop) {
103
+ return;
104
+ }
105
+ return getProp(model, props.prop).value;
106
+ });
107
+ const normalizedRules = computed(() => {
108
+ const { required } = props;
109
+ const rules = [];
110
+ if (props.rules) {
111
+ rules.push(...castArray(props.rules));
112
+ }
113
+ const formRules = formContext == null ? void 0 : formContext.rules;
114
+ if (formRules && props.prop) {
115
+ const _rules = getProp(formRules, props.prop).value;
116
+ if (_rules) {
117
+ rules.push(...castArray(_rules));
118
+ }
119
+ }
120
+ if (required !== void 0) {
121
+ const requiredRules = rules.map((rule, i) => [rule, i]).filter(([rule]) => Object.keys(rule).includes("required"));
122
+ if (requiredRules.length > 0) {
123
+ for (const [rule, i] of requiredRules) {
124
+ if (rule.required === required)
125
+ continue;
126
+ rules[i] = { ...rule, required };
127
+ }
128
+ } else {
129
+ rules.push({ required });
130
+ }
131
+ }
132
+ return rules;
133
+ });
134
+ const validateEnabled = computed(() => normalizedRules.value.length > 0);
135
+ const getFilteredRule = (trigger) => {
136
+ const rules = normalizedRules.value;
137
+ return rules.filter((rule) => {
138
+ if (!rule.trigger || !trigger)
139
+ return true;
140
+ if (Array.isArray(rule.trigger)) {
141
+ return rule.trigger.includes(trigger);
142
+ } else {
143
+ return rule.trigger === trigger;
144
+ }
145
+ }).map(({ trigger: trigger2, ...rule }) => rule);
146
+ };
147
+ const isRequired = computed(() => normalizedRules.value.some((rule) => rule.required));
148
+ const shouldShowError = computed(() => {
149
+ var _a;
150
+ return validateStateDebounced.value === "error" && props.showMessage && ((_a = formContext == null ? void 0 : formContext.showMessage) != null ? _a : true);
151
+ });
152
+ const currentLabel = computed(() => `${props.label || ""}${(formContext == null ? void 0 : formContext.labelSuffix) || ""}`);
153
+ const setValidationState = (state) => {
154
+ validateState.value = state;
155
+ };
156
+ const onValidationFailed = (error) => {
157
+ var _a, _b;
158
+ const { errors, fields } = error;
159
+ if (!errors || !fields) {
160
+ console.error(error);
161
+ }
162
+ setValidationState("error");
163
+ validateMessage.value = errors ? (_b = (_a = errors == null ? void 0 : errors[0]) == null ? void 0 : _a.message) != null ? _b : `${props.prop} is required` : "";
164
+ formContext == null ? void 0 : formContext.emit("validate", props.prop, false, validateMessage.value);
165
+ };
166
+ const onValidationSucceeded = () => {
167
+ setValidationState("success");
168
+ formContext == null ? void 0 : formContext.emit("validate", props.prop, true, "");
169
+ };
170
+ const doValidate = async (rules) => {
171
+ const modelName = propString.value;
172
+ const validator = new AsyncValidator({
173
+ [modelName]: rules
174
+ });
175
+ return validator.validate({ [modelName]: fieldValue.value }, { firstFields: true }).then(() => {
176
+ onValidationSucceeded();
177
+ return true;
178
+ }).catch((err) => {
179
+ onValidationFailed(err);
180
+ return Promise.reject(err);
181
+ });
182
+ };
183
+ const validate = async (trigger, callback) => {
184
+ if (isResettingField || !props.prop) {
185
+ return false;
186
+ }
187
+ const hasCallback = isFunction(callback);
188
+ if (!validateEnabled.value) {
189
+ callback == null ? void 0 : callback(false);
190
+ return false;
191
+ }
192
+ const rules = getFilteredRule(trigger);
193
+ if (rules.length === 0) {
194
+ callback == null ? void 0 : callback(true);
195
+ return true;
196
+ }
197
+ setValidationState("validating");
198
+ return doValidate(rules).then(() => {
199
+ callback == null ? void 0 : callback(true);
200
+ return true;
201
+ }).catch((err) => {
202
+ const { fields } = err;
203
+ callback == null ? void 0 : callback(false, fields);
204
+ return hasCallback ? false : Promise.reject(fields);
205
+ });
206
+ };
207
+ const clearValidate = () => {
208
+ setValidationState("");
209
+ validateMessage.value = "";
210
+ isResettingField = false;
211
+ };
212
+ const resetField = async () => {
213
+ const model = formContext == null ? void 0 : formContext.model;
214
+ if (!model || !props.prop)
215
+ return;
216
+ const computedValue = getProp(model, props.prop);
217
+ isResettingField = true;
218
+ computedValue.value = clone(initialValue);
219
+ await nextTick();
220
+ clearValidate();
221
+ isResettingField = false;
222
+ };
223
+ const addInputId = (id) => {
224
+ if (!inputIds.value.includes(id)) {
225
+ inputIds.value.push(id);
226
+ }
227
+ };
228
+ const removeInputId = (id) => {
229
+ inputIds.value = inputIds.value.filter((listId) => listId !== id);
230
+ };
231
+ watch(() => props.error, (val) => {
232
+ validateMessage.value = val || "";
233
+ setValidationState(val ? "error" : "");
234
+ }, { immediate: true });
235
+ watch(() => props.validateStatus, (val) => setValidationState(val || ""));
236
+ const context = reactive({
237
+ ...toRefs(props),
238
+ $el: formItemRef,
239
+ size: _size,
240
+ validateState,
241
+ labelId,
242
+ inputIds,
243
+ isGroup,
244
+ hasLabel,
245
+ addInputId,
246
+ removeInputId,
247
+ resetField,
248
+ clearValidate,
249
+ validate
250
+ });
251
+ provide(formItemContextKey, context);
252
+ onMounted(() => {
253
+ if (props.prop) {
254
+ formContext == null ? void 0 : formContext.addField(context);
255
+ initialValue = clone(fieldValue.value);
256
+ }
257
+ });
258
+ onBeforeUnmount(() => {
259
+ formContext == null ? void 0 : formContext.removeField(context);
260
+ });
261
+ expose({
262
+ size: _size,
263
+ validateMessage,
264
+ validateState,
265
+ validate,
266
+ clearValidate,
267
+ resetField
268
+ });
269
+ return (_ctx, _cache) => {
270
+ var _a;
271
+ return openBlock(), createElementBlock("div", {
272
+ ref_key: "formItemRef",
273
+ ref: formItemRef,
274
+ class: normalizeClass(unref(formItemClasses)),
275
+ role: unref(isGroup) ? "group" : void 0,
276
+ "aria-labelledby": unref(isGroup) ? unref(labelId) : void 0,
277
+ widget: _ctx.widget
278
+ }, [
279
+ createVNode(unref(FormLabelWrap), {
280
+ "is-auto-width": unref(labelStyle).width === "auto",
281
+ "update-all": ((_a = unref(formContext)) == null ? void 0 : _a.labelWidth) === "auto"
282
+ }, {
283
+ default: withCtx(() => [
284
+ unref(hasLabel) ? (openBlock(), createBlock(resolveDynamicComponent(unref(labelFor) ? "label" : "div"), {
285
+ key: 0,
286
+ id: unref(labelId),
287
+ for: unref(labelFor),
288
+ class: normalizeClass(unref(ns).e("label")),
289
+ style: normalizeStyle(unref(labelStyle)),
290
+ widget: _ctx.widget ? "form-item:label:" + _ctx.widget.split(":")[1] : void 0
291
+ }, {
292
+ default: withCtx(() => [
293
+ renderSlot(_ctx.$slots, "label", { label: unref(currentLabel) }, () => [
294
+ createTextVNode(toDisplayString(unref(currentLabel)), 1)
295
+ ])
296
+ ]),
297
+ _: 3
298
+ }, 8, ["id", "for", "class", "style", "widget"])) : createCommentVNode("v-if", true)
299
+ ]),
300
+ _: 3
301
+ }, 8, ["is-auto-width", "update-all"]),
302
+ createElementVNode("div", {
303
+ class: normalizeClass(unref(ns).e("content")),
304
+ style: normalizeStyle(unref(contentStyle)),
305
+ widget: _ctx.widget ? "form-item:default:" + _ctx.widget.split(":")[1] : void 0
306
+ }, [
307
+ renderSlot(_ctx.$slots, "default"),
308
+ createVNode(TransitionGroup, {
309
+ duration: unref(forEditor) ? -1 : 0,
310
+ name: `${unref(ns).namespace.value}-zoom-in-top`
311
+ }, {
312
+ default: withCtx(() => [
313
+ unref(shouldShowError) ? renderSlot(_ctx.$slots, "error", {
314
+ key: 0,
315
+ error: validateMessage.value
316
+ }, () => [
317
+ createElementVNode("div", {
318
+ class: normalizeClass(unref(validateClasses))
319
+ }, toDisplayString(validateMessage.value), 3)
320
+ ]) : createCommentVNode("v-if", true)
321
+ ]),
322
+ _: 3
323
+ }, 8, ["duration", "name"])
324
+ ], 14, _hoisted_2)
325
+ ], 10, _hoisted_1);
326
+ };
48
327
  }
49
328
  });
329
+ var FormItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/Users/meng/workspace/element-pe/packages/components/form/src/form-item.vue"]]);
50
330
 
51
- export { formItemProps, formItemValidateStates };
331
+ export { FormItem as default };
52
332
  //# sourceMappingURL=form-item.mjs.map