@element-plus/nightly 0.0.20221012 → 0.0.20221014

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 (519) hide show
  1. package/dist/index.full.js +140 -75
  2. package/dist/index.full.min.js +18 -18
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +15 -15
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +141 -76
  7. package/dist/locale/af.js +1 -1
  8. package/dist/locale/af.min.js +1 -1
  9. package/dist/locale/af.min.mjs +1 -1
  10. package/dist/locale/af.mjs +1 -1
  11. package/dist/locale/ar.js +1 -1
  12. package/dist/locale/ar.min.js +1 -1
  13. package/dist/locale/ar.min.mjs +1 -1
  14. package/dist/locale/ar.mjs +1 -1
  15. package/dist/locale/az.js +1 -1
  16. package/dist/locale/az.min.js +1 -1
  17. package/dist/locale/az.min.mjs +1 -1
  18. package/dist/locale/az.mjs +1 -1
  19. package/dist/locale/bg.js +1 -1
  20. package/dist/locale/bg.min.js +1 -1
  21. package/dist/locale/bg.min.mjs +1 -1
  22. package/dist/locale/bg.mjs +1 -1
  23. package/dist/locale/bn.js +1 -1
  24. package/dist/locale/bn.min.js +1 -1
  25. package/dist/locale/bn.min.mjs +1 -1
  26. package/dist/locale/bn.mjs +1 -1
  27. package/dist/locale/ca.js +1 -1
  28. package/dist/locale/ca.min.js +1 -1
  29. package/dist/locale/ca.min.mjs +1 -1
  30. package/dist/locale/ca.mjs +1 -1
  31. package/dist/locale/cs.js +1 -1
  32. package/dist/locale/cs.min.js +1 -1
  33. package/dist/locale/cs.min.mjs +1 -1
  34. package/dist/locale/cs.mjs +1 -1
  35. package/dist/locale/da.js +1 -1
  36. package/dist/locale/da.min.js +1 -1
  37. package/dist/locale/da.min.mjs +1 -1
  38. package/dist/locale/da.mjs +1 -1
  39. package/dist/locale/de.js +1 -1
  40. package/dist/locale/de.min.js +1 -1
  41. package/dist/locale/de.min.mjs +1 -1
  42. package/dist/locale/de.mjs +1 -1
  43. package/dist/locale/el.js +1 -1
  44. package/dist/locale/el.min.js +1 -1
  45. package/dist/locale/el.min.mjs +1 -1
  46. package/dist/locale/el.mjs +1 -1
  47. package/dist/locale/en.js +1 -1
  48. package/dist/locale/en.min.js +1 -1
  49. package/dist/locale/en.min.mjs +1 -1
  50. package/dist/locale/en.mjs +1 -1
  51. package/dist/locale/eo.js +1 -1
  52. package/dist/locale/eo.min.js +1 -1
  53. package/dist/locale/eo.min.mjs +1 -1
  54. package/dist/locale/eo.mjs +1 -1
  55. package/dist/locale/es.js +1 -1
  56. package/dist/locale/es.min.js +1 -1
  57. package/dist/locale/es.min.mjs +1 -1
  58. package/dist/locale/es.mjs +1 -1
  59. package/dist/locale/et.js +1 -1
  60. package/dist/locale/et.min.js +1 -1
  61. package/dist/locale/et.min.mjs +1 -1
  62. package/dist/locale/et.mjs +1 -1
  63. package/dist/locale/eu.js +1 -1
  64. package/dist/locale/eu.min.js +1 -1
  65. package/dist/locale/eu.min.mjs +1 -1
  66. package/dist/locale/eu.mjs +1 -1
  67. package/dist/locale/fa.js +1 -1
  68. package/dist/locale/fa.min.js +1 -1
  69. package/dist/locale/fa.min.mjs +1 -1
  70. package/dist/locale/fa.mjs +1 -1
  71. package/dist/locale/fi.js +1 -1
  72. package/dist/locale/fi.min.js +1 -1
  73. package/dist/locale/fi.min.mjs +1 -1
  74. package/dist/locale/fi.mjs +1 -1
  75. package/dist/locale/fr.js +1 -1
  76. package/dist/locale/fr.min.js +1 -1
  77. package/dist/locale/fr.min.mjs +1 -1
  78. package/dist/locale/fr.mjs +1 -1
  79. package/dist/locale/he.js +1 -1
  80. package/dist/locale/he.min.js +1 -1
  81. package/dist/locale/he.min.mjs +1 -1
  82. package/dist/locale/he.mjs +1 -1
  83. package/dist/locale/hr.js +1 -1
  84. package/dist/locale/hr.min.js +1 -1
  85. package/dist/locale/hr.min.mjs +1 -1
  86. package/dist/locale/hr.mjs +1 -1
  87. package/dist/locale/hu.js +1 -1
  88. package/dist/locale/hu.min.js +1 -1
  89. package/dist/locale/hu.min.mjs +1 -1
  90. package/dist/locale/hu.mjs +1 -1
  91. package/dist/locale/hy-am.js +1 -1
  92. package/dist/locale/hy-am.min.js +1 -1
  93. package/dist/locale/hy-am.min.mjs +1 -1
  94. package/dist/locale/hy-am.mjs +1 -1
  95. package/dist/locale/id.js +1 -1
  96. package/dist/locale/id.min.js +1 -1
  97. package/dist/locale/id.min.mjs +1 -1
  98. package/dist/locale/id.mjs +1 -1
  99. package/dist/locale/it.js +1 -1
  100. package/dist/locale/it.min.js +1 -1
  101. package/dist/locale/it.min.mjs +1 -1
  102. package/dist/locale/it.mjs +1 -1
  103. package/dist/locale/ja.js +1 -1
  104. package/dist/locale/ja.min.js +1 -1
  105. package/dist/locale/ja.min.mjs +1 -1
  106. package/dist/locale/ja.mjs +1 -1
  107. package/dist/locale/kk.js +1 -1
  108. package/dist/locale/kk.min.js +1 -1
  109. package/dist/locale/kk.min.mjs +1 -1
  110. package/dist/locale/kk.mjs +1 -1
  111. package/dist/locale/km.js +1 -1
  112. package/dist/locale/km.min.js +1 -1
  113. package/dist/locale/km.min.mjs +1 -1
  114. package/dist/locale/km.mjs +1 -1
  115. package/dist/locale/ko.js +1 -1
  116. package/dist/locale/ko.min.js +1 -1
  117. package/dist/locale/ko.min.mjs +1 -1
  118. package/dist/locale/ko.mjs +1 -1
  119. package/dist/locale/ku.js +1 -1
  120. package/dist/locale/ku.min.js +1 -1
  121. package/dist/locale/ku.min.mjs +1 -1
  122. package/dist/locale/ku.mjs +1 -1
  123. package/dist/locale/ky.js +1 -1
  124. package/dist/locale/ky.min.js +1 -1
  125. package/dist/locale/ky.min.mjs +1 -1
  126. package/dist/locale/ky.mjs +1 -1
  127. package/dist/locale/lt.js +1 -1
  128. package/dist/locale/lt.min.js +1 -1
  129. package/dist/locale/lt.min.mjs +1 -1
  130. package/dist/locale/lt.mjs +1 -1
  131. package/dist/locale/lv.js +1 -1
  132. package/dist/locale/lv.min.js +1 -1
  133. package/dist/locale/lv.min.mjs +1 -1
  134. package/dist/locale/lv.mjs +1 -1
  135. package/dist/locale/mg.js +1 -1
  136. package/dist/locale/mg.min.js +1 -1
  137. package/dist/locale/mg.min.mjs +1 -1
  138. package/dist/locale/mg.mjs +1 -1
  139. package/dist/locale/mn.js +1 -1
  140. package/dist/locale/mn.min.js +1 -1
  141. package/dist/locale/mn.min.mjs +1 -1
  142. package/dist/locale/mn.mjs +1 -1
  143. package/dist/locale/nb-no.js +1 -1
  144. package/dist/locale/nb-no.min.js +1 -1
  145. package/dist/locale/nb-no.min.mjs +1 -1
  146. package/dist/locale/nb-no.mjs +1 -1
  147. package/dist/locale/nl.js +1 -1
  148. package/dist/locale/nl.min.js +1 -1
  149. package/dist/locale/nl.min.mjs +1 -1
  150. package/dist/locale/nl.mjs +1 -1
  151. package/dist/locale/pa.js +1 -1
  152. package/dist/locale/pa.min.js +1 -1
  153. package/dist/locale/pa.min.mjs +1 -1
  154. package/dist/locale/pa.mjs +1 -1
  155. package/dist/locale/pl.js +1 -1
  156. package/dist/locale/pl.min.js +1 -1
  157. package/dist/locale/pl.min.mjs +1 -1
  158. package/dist/locale/pl.mjs +1 -1
  159. package/dist/locale/pt-br.js +1 -1
  160. package/dist/locale/pt-br.min.js +1 -1
  161. package/dist/locale/pt-br.min.mjs +1 -1
  162. package/dist/locale/pt-br.mjs +1 -1
  163. package/dist/locale/pt.js +1 -1
  164. package/dist/locale/pt.min.js +1 -1
  165. package/dist/locale/pt.min.mjs +1 -1
  166. package/dist/locale/pt.mjs +1 -1
  167. package/dist/locale/ro.js +1 -1
  168. package/dist/locale/ro.min.js +1 -1
  169. package/dist/locale/ro.min.mjs +1 -1
  170. package/dist/locale/ro.mjs +1 -1
  171. package/dist/locale/ru.js +1 -1
  172. package/dist/locale/ru.min.js +1 -1
  173. package/dist/locale/ru.min.mjs +1 -1
  174. package/dist/locale/ru.mjs +1 -1
  175. package/dist/locale/sk.js +1 -1
  176. package/dist/locale/sk.min.js +1 -1
  177. package/dist/locale/sk.min.mjs +1 -1
  178. package/dist/locale/sk.mjs +1 -1
  179. package/dist/locale/sl.js +1 -1
  180. package/dist/locale/sl.min.js +1 -1
  181. package/dist/locale/sl.min.mjs +1 -1
  182. package/dist/locale/sl.mjs +1 -1
  183. package/dist/locale/sr.js +1 -1
  184. package/dist/locale/sr.min.js +1 -1
  185. package/dist/locale/sr.min.mjs +1 -1
  186. package/dist/locale/sr.mjs +1 -1
  187. package/dist/locale/sv.js +1 -1
  188. package/dist/locale/sv.min.js +1 -1
  189. package/dist/locale/sv.min.mjs +1 -1
  190. package/dist/locale/sv.mjs +1 -1
  191. package/dist/locale/ta.js +1 -1
  192. package/dist/locale/ta.min.js +1 -1
  193. package/dist/locale/ta.min.mjs +1 -1
  194. package/dist/locale/ta.mjs +1 -1
  195. package/dist/locale/th.js +1 -1
  196. package/dist/locale/th.min.js +1 -1
  197. package/dist/locale/th.min.mjs +1 -1
  198. package/dist/locale/th.mjs +1 -1
  199. package/dist/locale/tk.js +1 -1
  200. package/dist/locale/tk.min.js +1 -1
  201. package/dist/locale/tk.min.mjs +1 -1
  202. package/dist/locale/tk.mjs +1 -1
  203. package/dist/locale/tr.js +1 -1
  204. package/dist/locale/tr.min.js +1 -1
  205. package/dist/locale/tr.min.mjs +1 -1
  206. package/dist/locale/tr.mjs +1 -1
  207. package/dist/locale/ug-cn.js +1 -1
  208. package/dist/locale/ug-cn.min.js +1 -1
  209. package/dist/locale/ug-cn.min.mjs +1 -1
  210. package/dist/locale/ug-cn.mjs +1 -1
  211. package/dist/locale/uk.js +1 -1
  212. package/dist/locale/uk.min.js +1 -1
  213. package/dist/locale/uk.min.mjs +1 -1
  214. package/dist/locale/uk.mjs +1 -1
  215. package/dist/locale/uz-uz.js +1 -1
  216. package/dist/locale/uz-uz.min.js +1 -1
  217. package/dist/locale/uz-uz.min.mjs +1 -1
  218. package/dist/locale/uz-uz.mjs +1 -1
  219. package/dist/locale/vi.js +1 -1
  220. package/dist/locale/vi.min.js +1 -1
  221. package/dist/locale/vi.min.mjs +1 -1
  222. package/dist/locale/vi.mjs +1 -1
  223. package/dist/locale/zh-cn.js +1 -1
  224. package/dist/locale/zh-cn.min.js +1 -1
  225. package/dist/locale/zh-cn.min.mjs +1 -1
  226. package/dist/locale/zh-cn.mjs +1 -1
  227. package/dist/locale/zh-tw.js +1 -1
  228. package/dist/locale/zh-tw.min.js +1 -1
  229. package/dist/locale/zh-tw.min.mjs +1 -1
  230. package/dist/locale/zh-tw.mjs +1 -1
  231. package/es/components/alert/index.mjs +2 -2
  232. package/es/components/alert/src/alert.mjs +96 -36
  233. package/es/components/alert/src/alert.mjs.map +1 -1
  234. package/es/components/alert/src/alert2.mjs +36 -96
  235. package/es/components/alert/src/alert2.mjs.map +1 -1
  236. package/es/components/autocomplete/index.d.ts +55 -39
  237. package/es/components/autocomplete/src/autocomplete.vue.d.ts +55 -39
  238. package/es/components/avatar/index.mjs +2 -2
  239. package/es/components/avatar/src/avatar.mjs +67 -32
  240. package/es/components/avatar/src/avatar.mjs.map +1 -1
  241. package/es/components/avatar/src/avatar2.mjs +32 -67
  242. package/es/components/avatar/src/avatar2.mjs.map +1 -1
  243. package/es/components/badge/index.mjs +2 -2
  244. package/es/components/badge/src/badge.mjs +55 -17
  245. package/es/components/badge/src/badge.mjs.map +1 -1
  246. package/es/components/badge/src/badge2.mjs +17 -55
  247. package/es/components/badge/src/badge2.mjs.map +1 -1
  248. package/es/components/card/index.mjs +2 -2
  249. package/es/components/card/src/card.mjs +35 -16
  250. package/es/components/card/src/card.mjs.map +1 -1
  251. package/es/components/card/src/card2.mjs +16 -35
  252. package/es/components/card/src/card2.mjs.map +1 -1
  253. package/es/components/cascader/index.d.ts +70 -52
  254. package/es/components/cascader/src/index.mjs +1 -1
  255. package/es/components/cascader/src/index.mjs.map +1 -1
  256. package/es/components/cascader/src/index.vue.d.ts +35 -26
  257. package/es/components/color-picker/index.d.ts +24 -17
  258. package/es/components/color-picker/src/color-picker.vue.d.ts +24 -17
  259. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +18 -11
  260. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +18 -11
  261. package/es/components/date-picker/src/panel-utils.d.ts +36 -22
  262. package/es/components/descriptions/src/description2.mjs +1 -1
  263. package/es/components/descriptions/src/descriptions-row.mjs +64 -7
  264. package/es/components/descriptions/src/descriptions-row.mjs.map +1 -1
  265. package/es/components/descriptions/src/descriptions-row2.mjs +7 -64
  266. package/es/components/descriptions/src/descriptions-row2.mjs.map +1 -1
  267. package/es/components/dropdown/index.d.ts +4 -4
  268. package/es/components/dropdown/src/dropdown.vue.d.ts +4 -4
  269. package/es/components/focus-trap/index.mjs +2 -2
  270. package/es/components/focus-trap/src/focus-trap.mjs +49 -15
  271. package/es/components/focus-trap/src/focus-trap.mjs.map +1 -1
  272. package/es/components/focus-trap/src/tokens.d.ts +2 -0
  273. package/es/components/focus-trap/src/tokens.mjs +6 -1
  274. package/es/components/focus-trap/src/tokens.mjs.map +1 -1
  275. package/es/components/focus-trap/src/utils.d.ts +11 -0
  276. package/es/components/focus-trap/src/utils.mjs +49 -1
  277. package/es/components/focus-trap/src/utils.mjs.map +1 -1
  278. package/es/components/index.mjs +10 -10
  279. package/es/components/input/index.d.ts +18 -11
  280. package/es/components/input/src/input.d.ts +6 -1
  281. package/es/components/input/src/input.mjs +1 -2
  282. package/es/components/input/src/input.mjs.map +1 -1
  283. package/es/components/input/src/input.vue.d.ts +18 -11
  284. package/es/components/input/src/input2.mjs +5 -32
  285. package/es/components/input/src/input2.mjs.map +1 -1
  286. package/es/components/input-number/index.d.ts +49 -33
  287. package/es/components/input-number/index.mjs +2 -2
  288. package/es/components/input-number/src/input-number.mjs +298 -57
  289. package/es/components/input-number/src/input-number.mjs.map +1 -1
  290. package/es/components/input-number/src/input-number.vue.d.ts +49 -33
  291. package/es/components/input-number/src/input-number2.mjs +57 -298
  292. package/es/components/input-number/src/input-number2.mjs.map +1 -1
  293. package/es/components/menu/index.mjs +2 -2
  294. package/es/components/menu/src/menu-item.mjs +100 -14
  295. package/es/components/menu/src/menu-item.mjs.map +1 -1
  296. package/es/components/menu/src/menu-item2.mjs +14 -100
  297. package/es/components/menu/src/menu-item2.mjs.map +1 -1
  298. package/es/components/page-header/index.mjs +2 -2
  299. package/es/components/page-header/src/page-header.mjs +102 -17
  300. package/es/components/page-header/src/page-header.mjs.map +1 -1
  301. package/es/components/page-header/src/page-header2.mjs +17 -102
  302. package/es/components/page-header/src/page-header2.mjs.map +1 -1
  303. package/es/components/pagination/src/components/jumper.vue.d.ts +18 -11
  304. package/es/components/pagination/src/components/prev.mjs +34 -18
  305. package/es/components/pagination/src/components/prev.mjs.map +1 -1
  306. package/es/components/pagination/src/components/prev2.mjs +18 -34
  307. package/es/components/pagination/src/components/prev2.mjs.map +1 -1
  308. package/es/components/pagination/src/components/sizes.vue.d.ts +4 -4
  309. package/es/components/pagination/src/pagination.mjs +1 -1
  310. package/es/components/popconfirm/index.d.ts +6 -6
  311. package/es/components/popconfirm/src/popconfirm.vue.d.ts +6 -6
  312. package/es/components/popover/index.d.ts +6 -6
  313. package/es/components/popover/src/popover.vue.d.ts +6 -6
  314. package/es/components/popper/src/content.vue.d.ts +2 -2
  315. package/es/components/popper/src/content2.mjs +10 -9
  316. package/es/components/popper/src/content2.mjs.map +1 -1
  317. package/es/components/radio/index.mjs +2 -2
  318. package/es/components/radio/src/radio-button.mjs +64 -9
  319. package/es/components/radio/src/radio-button.mjs.map +1 -1
  320. package/es/components/radio/src/radio-button2.mjs +9 -64
  321. package/es/components/radio/src/radio-button2.mjs.map +1 -1
  322. package/es/components/select/index.d.ts +4 -4
  323. package/es/components/select/src/select.vue.d.ts +4 -4
  324. package/es/components/select/src/useSelect.d.ts +4 -4
  325. package/es/components/select/src/useSelect.mjs +3 -1
  326. package/es/components/select/src/useSelect.mjs.map +1 -1
  327. package/es/components/select-v2/index.d.ts +8 -8
  328. package/es/components/select-v2/src/select.vue.d.ts +4 -4
  329. package/es/components/select-v2/src/useSelect.d.ts +4 -4
  330. package/es/components/slider/index.d.ts +59 -43
  331. package/es/components/slider/src/button.vue.d.ts +2 -2
  332. package/es/components/slider/src/composables/use-slide.d.ts +8 -8
  333. package/es/components/slider/src/slider.vue.d.ts +59 -43
  334. package/es/components/steps/index.mjs +2 -2
  335. package/es/components/steps/src/item.mjs +191 -20
  336. package/es/components/steps/src/item.mjs.map +1 -1
  337. package/es/components/steps/src/item2.mjs +20 -191
  338. package/es/components/steps/src/item2.mjs.map +1 -1
  339. package/es/components/table/index.d.ts +4 -0
  340. package/es/components/table/index.mjs.map +1 -1
  341. package/es/components/table/src/filter-panel.vue.d.ts +4 -4
  342. package/es/components/tabs/index.d.ts +17 -17
  343. package/es/components/tabs/index.mjs +2 -2
  344. package/es/components/tabs/src/tab-nav.d.ts +4 -4
  345. package/es/components/tabs/src/tab-nav.mjs.map +1 -1
  346. package/es/components/tabs/src/tab-pane.mjs +73 -13
  347. package/es/components/tabs/src/tab-pane.mjs.map +1 -1
  348. package/es/components/tabs/src/tab-pane2.mjs +13 -73
  349. package/es/components/tabs/src/tab-pane2.mjs.map +1 -1
  350. package/es/components/tabs/src/tabs.d.ts +26 -26
  351. package/es/components/tabs/src/tabs.mjs +4 -4
  352. package/es/components/tabs/src/tabs.mjs.map +1 -1
  353. package/es/components/time-picker/src/common/picker.mjs +9 -4
  354. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  355. package/es/components/time-picker/src/common/picker.vue.d.ts +24 -17
  356. package/es/components/time-select/index.d.ts +16 -16
  357. package/es/components/time-select/src/time-select.vue.d.ts +8 -8
  358. package/es/components/tooltip/index.d.ts +2 -2
  359. package/es/components/tooltip/src/content.vue.d.ts +2 -2
  360. package/es/components/tooltip/src/tooltip.vue.d.ts +2 -2
  361. package/es/components/transfer/index.d.ts +90 -55
  362. package/es/components/transfer/src/composables/use-check.mjs +1 -1
  363. package/es/components/transfer/src/transfer-panel.mjs +131 -19
  364. package/es/components/transfer/src/transfer-panel.mjs.map +1 -1
  365. package/es/components/transfer/src/transfer-panel.vue.d.ts +18 -11
  366. package/es/components/transfer/src/transfer-panel2.mjs +19 -131
  367. package/es/components/transfer/src/transfer-panel2.mjs.map +1 -1
  368. package/es/components/transfer/src/transfer.vue.d.ts +90 -55
  369. package/es/components/transfer/src/transfer2.mjs +1 -1
  370. package/es/index.mjs +10 -10
  371. package/es/version.d.ts +1 -1
  372. package/es/version.mjs +1 -1
  373. package/es/version.mjs.map +1 -1
  374. package/lib/components/alert/index.js +2 -2
  375. package/lib/components/alert/src/alert.js +95 -37
  376. package/lib/components/alert/src/alert.js.map +1 -1
  377. package/lib/components/alert/src/alert2.js +37 -95
  378. package/lib/components/alert/src/alert2.js.map +1 -1
  379. package/lib/components/autocomplete/index.d.ts +55 -39
  380. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +55 -39
  381. package/lib/components/avatar/index.js +2 -2
  382. package/lib/components/avatar/src/avatar.js +67 -33
  383. package/lib/components/avatar/src/avatar.js.map +1 -1
  384. package/lib/components/avatar/src/avatar2.js +33 -67
  385. package/lib/components/avatar/src/avatar2.js.map +1 -1
  386. package/lib/components/badge/index.js +2 -2
  387. package/lib/components/badge/src/badge.js +55 -17
  388. package/lib/components/badge/src/badge.js.map +1 -1
  389. package/lib/components/badge/src/badge2.js +17 -55
  390. package/lib/components/badge/src/badge2.js.map +1 -1
  391. package/lib/components/card/index.js +2 -2
  392. package/lib/components/card/src/card.js +35 -16
  393. package/lib/components/card/src/card.js.map +1 -1
  394. package/lib/components/card/src/card2.js +16 -35
  395. package/lib/components/card/src/card2.js.map +1 -1
  396. package/lib/components/cascader/index.d.ts +70 -52
  397. package/lib/components/cascader/src/index.js +1 -1
  398. package/lib/components/cascader/src/index.js.map +1 -1
  399. package/lib/components/cascader/src/index.vue.d.ts +35 -26
  400. package/lib/components/color-picker/index.d.ts +24 -17
  401. package/lib/components/color-picker/src/color-picker.vue.d.ts +24 -17
  402. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +18 -11
  403. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +18 -11
  404. package/lib/components/date-picker/src/panel-utils.d.ts +36 -22
  405. package/lib/components/descriptions/src/description2.js +1 -1
  406. package/lib/components/descriptions/src/descriptions-row.js +64 -7
  407. package/lib/components/descriptions/src/descriptions-row.js.map +1 -1
  408. package/lib/components/descriptions/src/descriptions-row2.js +7 -64
  409. package/lib/components/descriptions/src/descriptions-row2.js.map +1 -1
  410. package/lib/components/dropdown/index.d.ts +4 -4
  411. package/lib/components/dropdown/src/dropdown.vue.d.ts +4 -4
  412. package/lib/components/focus-trap/index.js +5 -0
  413. package/lib/components/focus-trap/index.js.map +1 -1
  414. package/lib/components/focus-trap/src/focus-trap.js +48 -14
  415. package/lib/components/focus-trap/src/focus-trap.js.map +1 -1
  416. package/lib/components/focus-trap/src/tokens.d.ts +2 -0
  417. package/lib/components/focus-trap/src/tokens.js +7 -0
  418. package/lib/components/focus-trap/src/tokens.js.map +1 -1
  419. package/lib/components/focus-trap/src/utils.d.ts +11 -0
  420. package/lib/components/focus-trap/src/utils.js +51 -0
  421. package/lib/components/focus-trap/src/utils.js.map +1 -1
  422. package/lib/components/index.js +10 -10
  423. package/lib/components/input/index.d.ts +18 -11
  424. package/lib/components/input/src/input.d.ts +6 -1
  425. package/lib/components/input/src/input.js +1 -2
  426. package/lib/components/input/src/input.js.map +1 -1
  427. package/lib/components/input/src/input.vue.d.ts +18 -11
  428. package/lib/components/input/src/input2.js +4 -31
  429. package/lib/components/input/src/input2.js.map +1 -1
  430. package/lib/components/input-number/index.d.ts +49 -33
  431. package/lib/components/input-number/index.js +2 -2
  432. package/lib/components/input-number/src/input-number.js +297 -57
  433. package/lib/components/input-number/src/input-number.js.map +1 -1
  434. package/lib/components/input-number/src/input-number.vue.d.ts +49 -33
  435. package/lib/components/input-number/src/input-number2.js +57 -297
  436. package/lib/components/input-number/src/input-number2.js.map +1 -1
  437. package/lib/components/menu/index.js +2 -2
  438. package/lib/components/menu/src/menu-item.js +100 -15
  439. package/lib/components/menu/src/menu-item.js.map +1 -1
  440. package/lib/components/menu/src/menu-item2.js +15 -100
  441. package/lib/components/menu/src/menu-item2.js.map +1 -1
  442. package/lib/components/page-header/index.js +2 -2
  443. package/lib/components/page-header/src/page-header.js +102 -18
  444. package/lib/components/page-header/src/page-header.js.map +1 -1
  445. package/lib/components/page-header/src/page-header2.js +18 -102
  446. package/lib/components/page-header/src/page-header2.js.map +1 -1
  447. package/lib/components/pagination/src/components/jumper.vue.d.ts +18 -11
  448. package/lib/components/pagination/src/components/prev.js +34 -19
  449. package/lib/components/pagination/src/components/prev.js.map +1 -1
  450. package/lib/components/pagination/src/components/prev2.js +19 -34
  451. package/lib/components/pagination/src/components/prev2.js.map +1 -1
  452. package/lib/components/pagination/src/components/sizes.vue.d.ts +4 -4
  453. package/lib/components/pagination/src/pagination.js +1 -1
  454. package/lib/components/popconfirm/index.d.ts +6 -6
  455. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +6 -6
  456. package/lib/components/popover/index.d.ts +6 -6
  457. package/lib/components/popover/src/popover.vue.d.ts +6 -6
  458. package/lib/components/popper/src/content.vue.d.ts +2 -2
  459. package/lib/components/popper/src/content2.js +10 -9
  460. package/lib/components/popper/src/content2.js.map +1 -1
  461. package/lib/components/radio/index.js +2 -2
  462. package/lib/components/radio/src/radio-button.js +64 -9
  463. package/lib/components/radio/src/radio-button.js.map +1 -1
  464. package/lib/components/radio/src/radio-button2.js +9 -64
  465. package/lib/components/radio/src/radio-button2.js.map +1 -1
  466. package/lib/components/select/index.d.ts +4 -4
  467. package/lib/components/select/src/select.vue.d.ts +4 -4
  468. package/lib/components/select/src/useSelect.d.ts +4 -4
  469. package/lib/components/select/src/useSelect.js +3 -1
  470. package/lib/components/select/src/useSelect.js.map +1 -1
  471. package/lib/components/select-v2/index.d.ts +8 -8
  472. package/lib/components/select-v2/src/select.vue.d.ts +4 -4
  473. package/lib/components/select-v2/src/useSelect.d.ts +4 -4
  474. package/lib/components/slider/index.d.ts +59 -43
  475. package/lib/components/slider/src/button.vue.d.ts +2 -2
  476. package/lib/components/slider/src/composables/use-slide.d.ts +8 -8
  477. package/lib/components/slider/src/slider.vue.d.ts +59 -43
  478. package/lib/components/steps/index.js +2 -2
  479. package/lib/components/steps/src/item.js +191 -20
  480. package/lib/components/steps/src/item.js.map +1 -1
  481. package/lib/components/steps/src/item2.js +20 -191
  482. package/lib/components/steps/src/item2.js.map +1 -1
  483. package/lib/components/table/index.d.ts +4 -0
  484. package/lib/components/table/index.js.map +1 -1
  485. package/lib/components/table/src/filter-panel.vue.d.ts +4 -4
  486. package/lib/components/tabs/index.d.ts +17 -17
  487. package/lib/components/tabs/index.js +2 -2
  488. package/lib/components/tabs/src/tab-nav.d.ts +4 -4
  489. package/lib/components/tabs/src/tab-nav.js.map +1 -1
  490. package/lib/components/tabs/src/tab-pane.js +73 -13
  491. package/lib/components/tabs/src/tab-pane.js.map +1 -1
  492. package/lib/components/tabs/src/tab-pane2.js +13 -73
  493. package/lib/components/tabs/src/tab-pane2.js.map +1 -1
  494. package/lib/components/tabs/src/tabs.d.ts +26 -26
  495. package/lib/components/tabs/src/tabs.js +4 -4
  496. package/lib/components/tabs/src/tabs.js.map +1 -1
  497. package/lib/components/time-picker/src/common/picker.js +8 -3
  498. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  499. package/lib/components/time-picker/src/common/picker.vue.d.ts +24 -17
  500. package/lib/components/time-select/index.d.ts +16 -16
  501. package/lib/components/time-select/src/time-select.vue.d.ts +8 -8
  502. package/lib/components/tooltip/index.d.ts +2 -2
  503. package/lib/components/tooltip/src/content.vue.d.ts +2 -2
  504. package/lib/components/tooltip/src/tooltip.vue.d.ts +2 -2
  505. package/lib/components/transfer/index.d.ts +90 -55
  506. package/lib/components/transfer/src/composables/use-check.js +1 -1
  507. package/lib/components/transfer/src/transfer-panel.js +131 -21
  508. package/lib/components/transfer/src/transfer-panel.js.map +1 -1
  509. package/lib/components/transfer/src/transfer-panel.vue.d.ts +18 -11
  510. package/lib/components/transfer/src/transfer-panel2.js +21 -131
  511. package/lib/components/transfer/src/transfer-panel2.js.map +1 -1
  512. package/lib/components/transfer/src/transfer.vue.d.ts +90 -55
  513. package/lib/components/transfer/src/transfer2.js +1 -1
  514. package/lib/index.js +10 -10
  515. package/lib/version.d.ts +1 -1
  516. package/lib/version.js +1 -1
  517. package/lib/version.js.map +1 -1
  518. package/package.json +2 -2
  519. package/web-types.json +1 -1
@@ -2665,9 +2665,9 @@ export declare const ElDropdown: import("element-plus/es/utils").SFCWithInstall<
2665
2665
  updatePopper: (shouldUpdateZIndex?: boolean) => void;
2666
2666
  togglePopperAlive: () => void;
2667
2667
  onFocusAfterTrapped: () => void;
2668
- onFocusAfterReleased: () => void;
2668
+ onFocusAfterReleased: (event: CustomEvent<any>) => void;
2669
2669
  onFocusInTrap: (event: FocusEvent) => void;
2670
- onFocusoutPrevented: () => void;
2670
+ onFocusoutPrevented: (event: CustomEvent<any>) => void;
2671
2671
  onReleaseRequested: () => void;
2672
2672
  ElFocusTrap: import("vue").DefineComponent<{
2673
2673
  loop: BooleanConstructor;
@@ -5536,9 +5536,9 @@ export declare const ElDropdown: import("element-plus/es/utils").SFCWithInstall<
5536
5536
  updatePopper: (shouldUpdateZIndex?: boolean) => void;
5537
5537
  togglePopperAlive: () => void;
5538
5538
  onFocusAfterTrapped: () => void;
5539
- onFocusAfterReleased: () => void;
5539
+ onFocusAfterReleased: (event: CustomEvent<any>) => void;
5540
5540
  onFocusInTrap: (event: FocusEvent) => void;
5541
- onFocusoutPrevented: () => void;
5541
+ onFocusoutPrevented: (event: CustomEvent<any>) => void;
5542
5542
  onReleaseRequested: () => void;
5543
5543
  ElFocusTrap: import("vue").DefineComponent<{
5544
5544
  loop: BooleanConstructor;
@@ -2666,9 +2666,9 @@ declare const _default: import("vue").DefineComponent<{
2666
2666
  updatePopper: (shouldUpdateZIndex?: boolean) => void;
2667
2667
  togglePopperAlive: () => void;
2668
2668
  onFocusAfterTrapped: () => void;
2669
- onFocusAfterReleased: () => void;
2669
+ onFocusAfterReleased: (event: CustomEvent<any>) => void;
2670
2670
  onFocusInTrap: (event: FocusEvent) => void;
2671
- onFocusoutPrevented: () => void;
2671
+ onFocusoutPrevented: (event: CustomEvent<any>) => void;
2672
2672
  onReleaseRequested: () => void;
2673
2673
  ElFocusTrap: import("vue").DefineComponent<{
2674
2674
  loop: BooleanConstructor;
@@ -5537,9 +5537,9 @@ declare const _default: import("vue").DefineComponent<{
5537
5537
  updatePopper: (shouldUpdateZIndex?: boolean) => void;
5538
5538
  togglePopperAlive: () => void;
5539
5539
  onFocusAfterTrapped: () => void;
5540
- onFocusAfterReleased: () => void;
5540
+ onFocusAfterReleased: (event: CustomEvent<any>) => void;
5541
5541
  onFocusInTrap: (event: FocusEvent) => void;
5542
- onFocusoutPrevented: () => void;
5542
+ onFocusoutPrevented: (event: CustomEvent<any>) => void;
5543
5543
  onReleaseRequested: () => void;
5544
5544
  ElFocusTrap: import("vue").DefineComponent<{
5545
5545
  loop: BooleanConstructor;
@@ -1,5 +1,5 @@
1
1
  import ElFocusTrap from './src/focus-trap.mjs';
2
2
  export { default as ElFocusTrap, default } from './src/focus-trap.mjs';
3
- export { FOCUS_AFTER_RELEASED, FOCUS_AFTER_TRAPPED, FOCUS_AFTER_TRAPPED_OPTS, FOCUS_TRAP_INJECTION_KEY, ON_RELEASE_FOCUS_EVT, ON_TRAP_FOCUS_EVT } from './src/tokens.mjs';
4
- export { focusFirstDescendant, focusableStack, getEdges, getVisibleElement, isHidden, obtainAllFocusableElements, tryFocus } from './src/utils.mjs';
3
+ export { FOCUSOUT_PREVENTED, FOCUSOUT_PREVENTED_OPTS, FOCUS_AFTER_RELEASED, FOCUS_AFTER_TRAPPED, FOCUS_AFTER_TRAPPED_OPTS, FOCUS_TRAP_INJECTION_KEY, ON_RELEASE_FOCUS_EVT, ON_TRAP_FOCUS_EVT } from './src/tokens.mjs';
4
+ export { createFocusOutPreventedEvent, focusFirstDescendant, focusableStack, getEdges, getVisibleElement, isFocusCausedByUserEvent, isHidden, obtainAllFocusableElements, tryFocus, useFocusReason } from './src/utils.mjs';
5
5
  //# sourceMappingURL=index.mjs.map
@@ -3,7 +3,7 @@ import { isNil } from 'lodash-unified';
3
3
  import '../../../constants/index.mjs';
4
4
  import '../../../hooks/index.mjs';
5
5
  import '../../../utils/index.mjs';
6
- import { getEdges, tryFocus, focusableStack, focusFirstDescendant, obtainAllFocusableElements } from './utils.mjs';
6
+ import { useFocusReason, getEdges, createFocusOutPreventedEvent, tryFocus, focusableStack, focusFirstDescendant, obtainAllFocusableElements, isFocusCausedByUserEvent } from './utils.mjs';
7
7
  import { ON_TRAP_FOCUS_EVT, ON_RELEASE_FOCUS_EVT, FOCUS_TRAP_INJECTION_KEY, FOCUS_AFTER_TRAPPED, FOCUS_AFTER_TRAPPED_OPTS, FOCUS_AFTER_RELEASED } from './tokens.mjs';
8
8
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
9
9
  import { useEscapeKeydown } from '../../../hooks/use-escape-keydown/index.mjs';
@@ -34,6 +34,7 @@ const _sfc_main = defineComponent({
34
34
  const forwardRef = ref();
35
35
  let lastFocusBeforeTrapped;
36
36
  let lastFocusAfterTrapped;
37
+ const { focusReason } = useFocusReason();
37
38
  useEscapeKeydown((event) => {
38
39
  if (props.trapped && !focusLayer.paused) {
39
40
  emit("release-requested", event);
@@ -63,20 +64,35 @@ const _sfc_main = defineComponent({
63
64
  const isTabbable = first && last;
64
65
  if (!isTabbable) {
65
66
  if (currentFocusingEl === container) {
66
- e.preventDefault();
67
- emit("focusout-prevented");
67
+ const focusoutPreventedEvent = createFocusOutPreventedEvent({
68
+ focusReason: focusReason.value
69
+ });
70
+ emit("focusout-prevented", focusoutPreventedEvent);
71
+ if (!focusoutPreventedEvent.defaultPrevented) {
72
+ e.preventDefault();
73
+ }
68
74
  }
69
75
  } else {
70
76
  if (!shiftKey && currentFocusingEl === last) {
71
- e.preventDefault();
72
- if (loop)
73
- tryFocus(first, true);
74
- emit("focusout-prevented");
77
+ const focusoutPreventedEvent = createFocusOutPreventedEvent({
78
+ focusReason: focusReason.value
79
+ });
80
+ emit("focusout-prevented", focusoutPreventedEvent);
81
+ if (!focusoutPreventedEvent.defaultPrevented) {
82
+ e.preventDefault();
83
+ if (loop)
84
+ tryFocus(first, true);
85
+ }
75
86
  } else if (shiftKey && [first, container].includes(currentFocusingEl)) {
76
- e.preventDefault();
77
- if (loop)
78
- tryFocus(last, true);
79
- emit("focusout-prevented");
87
+ const focusoutPreventedEvent = createFocusOutPreventedEvent({
88
+ focusReason: focusReason.value
89
+ });
90
+ emit("focusout-prevented", focusoutPreventedEvent);
91
+ if (!focusoutPreventedEvent.defaultPrevented) {
92
+ e.preventDefault();
93
+ if (loop)
94
+ tryFocus(last, true);
95
+ }
80
96
  }
81
97
  }
82
98
  }
@@ -111,7 +127,14 @@ const _sfc_main = defineComponent({
111
127
  if (!trapContainer)
112
128
  return;
113
129
  const target = e.target;
130
+ const relatedTarget = e.relatedTarget;
114
131
  const isFocusedInTrap = target && trapContainer.contains(target);
132
+ if (!props.trapped) {
133
+ const isPrevFocusedInTrap = relatedTarget && trapContainer.contains(relatedTarget);
134
+ if (!isPrevFocusedInTrap) {
135
+ lastFocusBeforeTrapped = relatedTarget;
136
+ }
137
+ }
115
138
  if (isFocusedInTrap)
116
139
  emit("focusin", e);
117
140
  if (focusLayer.paused)
@@ -133,7 +156,13 @@ const _sfc_main = defineComponent({
133
156
  if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {
134
157
  setTimeout(() => {
135
158
  if (!focusLayer.paused && props.trapped) {
136
- tryFocus(lastFocusAfterTrapped, true);
159
+ const focusoutPreventedEvent = createFocusOutPreventedEvent({
160
+ focusReason: focusReason.value
161
+ });
162
+ emit("focusout-prevented", focusoutPreventedEvent);
163
+ if (!focusoutPreventedEvent.defaultPrevented) {
164
+ tryFocus(lastFocusAfterTrapped, true);
165
+ }
137
166
  }
138
167
  }, 0);
139
168
  }
@@ -149,7 +178,7 @@ const _sfc_main = defineComponent({
149
178
  const trapContainer = unref(forwardRef);
150
179
  if (trapContainer) {
151
180
  focusableStack.push(focusLayer);
152
- const prevFocusedElement = document.activeElement;
181
+ const prevFocusedElement = trapContainer.contains(document.activeElement) ? lastFocusBeforeTrapped : document.activeElement;
153
182
  lastFocusBeforeTrapped = prevFocusedElement;
154
183
  const isPrevFocusContained = trapContainer.contains(prevFocusedElement);
155
184
  if (!isPrevFocusContained) {
@@ -180,10 +209,15 @@ const _sfc_main = defineComponent({
180
209
  const trapContainer = unref(forwardRef);
181
210
  if (trapContainer) {
182
211
  trapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus);
183
- const releasedEvent = new Event(FOCUS_AFTER_RELEASED, FOCUS_AFTER_TRAPPED_OPTS);
212
+ const releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, {
213
+ ...FOCUS_AFTER_TRAPPED_OPTS,
214
+ detail: {
215
+ focusReason: focusReason.value
216
+ }
217
+ });
184
218
  trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus);
185
219
  trapContainer.dispatchEvent(releasedEvent);
186
- if (!releasedEvent.defaultPrevented) {
220
+ if (!releasedEvent.defaultPrevented && (focusReason.value == "keyboard" || !isFocusCausedByUserEvent())) {
187
221
  tryFocus(lastFocusBeforeTrapped != null ? lastFocusBeforeTrapped : document.body, true);
188
222
  }
189
223
  trapContainer.removeEventListener(FOCUS_AFTER_RELEASED, trapOnFocus);
@@ -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 { 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 focusFirstDescendant,\n focusableStack,\n getEdges,\n obtainAllFocusableElements,\n tryFocus,\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, { emit }) {\n const forwardRef = ref<HTMLElement | undefined>()\n let lastFocusBeforeTrapped: HTMLElement | null\n let lastFocusAfterTrapped: HTMLElement | null\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 e.preventDefault()\n emit('focusout-prevented')\n }\n } else {\n if (!shiftKey && currentFocusingEl === last) {\n e.preventDefault()\n if (loop) tryFocus(first, true)\n emit('focusout-prevented')\n } else if (\n shiftKey &&\n [first, container].includes(currentFocusingEl as HTMLElement)\n ) {\n e.preventDefault()\n if (loop) tryFocus(last, true)\n emit('focusout-prevented')\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: Event) => {\n const trapContainer = unref(forwardRef)\n if (!trapContainer) return\n\n const target = e.target as HTMLElement | null\n const isFocusedInTrap = target && trapContainer.contains(target)\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 tryFocus(lastFocusAfterTrapped, true)\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 = 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 Event(\n FOCUS_AFTER_RELEASED,\n FOCUS_AFTER_TRAPPED_OPTS\n )\n trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus)\n trapContainer.dispatchEvent(releasedEvent)\n\n if (!releasedEvent.defaultPrevented) {\n tryFocus(lastFocusBeforeTrapped ?? document.body, true)\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":"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"}
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 { 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, { emit }) {\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\n if (\n !releasedEvent.defaultPrevented &&\n (focusReason.value == 'keyboard' || !isFocusCausedByUserEvent())\n ) {\n tryFocus(lastFocusBeforeTrapped ?? document.body, true)\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":"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"}
@@ -1,7 +1,9 @@
1
1
  import type { InjectionKey, Ref } from 'vue';
2
2
  export declare const FOCUS_AFTER_TRAPPED = "focus-trap.focus-after-trapped";
3
3
  export declare const FOCUS_AFTER_RELEASED = "focus-trap.focus-after-released";
4
+ export declare const FOCUSOUT_PREVENTED = "focus-trap.focusout-prevented";
4
5
  export declare const FOCUS_AFTER_TRAPPED_OPTS: EventInit;
6
+ export declare const FOCUSOUT_PREVENTED_OPTS: EventInit;
5
7
  export declare const ON_TRAP_FOCUS_EVT = "focusAfterTrapped";
6
8
  export declare const ON_RELEASE_FOCUS_EVT = "focusAfterReleased";
7
9
  export declare type FocusTrapInjectionContext = {
@@ -1,12 +1,17 @@
1
1
  const FOCUS_AFTER_TRAPPED = "focus-trap.focus-after-trapped";
2
2
  const FOCUS_AFTER_RELEASED = "focus-trap.focus-after-released";
3
+ const FOCUSOUT_PREVENTED = "focus-trap.focusout-prevented";
3
4
  const FOCUS_AFTER_TRAPPED_OPTS = {
4
5
  cancelable: true,
5
6
  bubbles: false
6
7
  };
8
+ const FOCUSOUT_PREVENTED_OPTS = {
9
+ cancelable: true,
10
+ bubbles: false
11
+ };
7
12
  const ON_TRAP_FOCUS_EVT = "focusAfterTrapped";
8
13
  const ON_RELEASE_FOCUS_EVT = "focusAfterReleased";
9
14
  const FOCUS_TRAP_INJECTION_KEY = Symbol("elFocusTrap");
10
15
 
11
- export { FOCUS_AFTER_RELEASED, FOCUS_AFTER_TRAPPED, FOCUS_AFTER_TRAPPED_OPTS, FOCUS_TRAP_INJECTION_KEY, ON_RELEASE_FOCUS_EVT, ON_TRAP_FOCUS_EVT };
16
+ export { FOCUSOUT_PREVENTED, FOCUSOUT_PREVENTED_OPTS, FOCUS_AFTER_RELEASED, FOCUS_AFTER_TRAPPED, FOCUS_AFTER_TRAPPED_OPTS, FOCUS_TRAP_INJECTION_KEY, ON_RELEASE_FOCUS_EVT, ON_TRAP_FOCUS_EVT };
12
17
  //# sourceMappingURL=tokens.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.mjs","sources":["../../../../../../packages/components/focus-trap/src/tokens.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue'\n\nexport const FOCUS_AFTER_TRAPPED = 'focus-trap.focus-after-trapped'\nexport const FOCUS_AFTER_RELEASED = 'focus-trap.focus-after-released'\nexport const FOCUS_AFTER_TRAPPED_OPTS: EventInit = {\n cancelable: true,\n bubbles: false,\n}\n\nexport const ON_TRAP_FOCUS_EVT = 'focusAfterTrapped'\nexport const ON_RELEASE_FOCUS_EVT = 'focusAfterReleased'\n\nexport type FocusTrapInjectionContext = {\n focusTrapRef: Ref<HTMLElement | undefined>\n onKeydown: (e: KeyboardEvent) => void\n}\n\nexport const FOCUS_TRAP_INJECTION_KEY: InjectionKey<FocusTrapInjectionContext> =\n Symbol('elFocusTrap')\n"],"names":[],"mappings":"AAAY,MAAC,mBAAmB,GAAG,iCAAiC;AACxD,MAAC,oBAAoB,GAAG,kCAAkC;AAC1D,MAAC,wBAAwB,GAAG;AACxC,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,OAAO,EAAE,KAAK;AAChB,EAAE;AACU,MAAC,iBAAiB,GAAG,oBAAoB;AACzC,MAAC,oBAAoB,GAAG,qBAAqB;AAC7C,MAAC,wBAAwB,GAAG,MAAM,CAAC,aAAa;;;;"}
1
+ {"version":3,"file":"tokens.mjs","sources":["../../../../../../packages/components/focus-trap/src/tokens.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue'\n\nexport const FOCUS_AFTER_TRAPPED = 'focus-trap.focus-after-trapped'\nexport const FOCUS_AFTER_RELEASED = 'focus-trap.focus-after-released'\nexport const FOCUSOUT_PREVENTED = 'focus-trap.focusout-prevented'\nexport const FOCUS_AFTER_TRAPPED_OPTS: EventInit = {\n cancelable: true,\n bubbles: false,\n}\nexport const FOCUSOUT_PREVENTED_OPTS: EventInit = {\n cancelable: true,\n bubbles: false,\n}\n\nexport const ON_TRAP_FOCUS_EVT = 'focusAfterTrapped'\nexport const ON_RELEASE_FOCUS_EVT = 'focusAfterReleased'\n\nexport type FocusTrapInjectionContext = {\n focusTrapRef: Ref<HTMLElement | undefined>\n onKeydown: (e: KeyboardEvent) => void\n}\n\nexport const FOCUS_TRAP_INJECTION_KEY: InjectionKey<FocusTrapInjectionContext> =\n Symbol('elFocusTrap')\n"],"names":[],"mappings":"AAAY,MAAC,mBAAmB,GAAG,iCAAiC;AACxD,MAAC,oBAAoB,GAAG,kCAAkC;AAC1D,MAAC,kBAAkB,GAAG,gCAAgC;AACtD,MAAC,wBAAwB,GAAG;AACxC,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,OAAO,EAAE,KAAK;AAChB,EAAE;AACU,MAAC,uBAAuB,GAAG;AACvC,EAAE,UAAU,EAAE,IAAI;AAClB,EAAE,OAAO,EAAE,KAAK;AAChB,EAAE;AACU,MAAC,iBAAiB,GAAG,oBAAoB;AACzC,MAAC,oBAAoB,GAAG,qBAAqB;AAC7C,MAAC,wBAAwB,GAAG,MAAM,CAAC,aAAa;;;;"}
@@ -1,3 +1,6 @@
1
+ declare const focusReason: import("vue").Ref<"pointer" | "keyboard" | undefined>;
2
+ declare const lastUserFocusTimestamp: import("vue").Ref<number>;
3
+ declare const lastAutomatedFocusTimestamp: import("vue").Ref<number>;
1
4
  export declare type FocusLayer = {
2
5
  paused: boolean;
3
6
  pause: () => void;
@@ -16,3 +19,11 @@ export declare const focusableStack: {
16
19
  push: (layer: FocusLayer) => void;
17
20
  remove: (layer: FocusLayer) => void;
18
21
  };
22
+ export declare const isFocusCausedByUserEvent: () => boolean;
23
+ export declare const useFocusReason: () => {
24
+ focusReason: typeof focusReason;
25
+ lastUserFocusTimestamp: typeof lastUserFocusTimestamp;
26
+ lastAutomatedFocusTimestamp: typeof lastAutomatedFocusTimestamp;
27
+ };
28
+ export declare const createFocusOutPreventedEvent: (detail: CustomEventInit['detail']) => CustomEvent<any>;
29
+ export {};
@@ -1,3 +1,10 @@
1
+ import { ref, onMounted, onBeforeUnmount } from 'vue';
2
+ import { FOCUSOUT_PREVENTED, FOCUSOUT_PREVENTED_OPTS } from './tokens.mjs';
3
+
4
+ const focusReason = ref();
5
+ const lastUserFocusTimestamp = ref(0);
6
+ const lastAutomatedFocusTimestamp = ref(0);
7
+ let focusReasonUserCount = 0;
1
8
  const obtainAllFocusableElements = (element) => {
2
9
  const nodes = [];
3
10
  const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT, {
@@ -45,6 +52,7 @@ const tryFocus = (element, shouldSelect) => {
45
52
  if (element && element.focus) {
46
53
  const prevFocusedElement = document.activeElement;
47
54
  element.focus({ preventScroll: true });
55
+ lastAutomatedFocusTimestamp.value = window.performance.now();
48
56
  if (element !== prevFocusedElement && isSelectable(element) && shouldSelect) {
49
57
  element.select();
50
58
  }
@@ -87,6 +95,46 @@ const focusFirstDescendant = (elements, shouldSelect = false) => {
87
95
  }
88
96
  };
89
97
  const focusableStack = createFocusableStack();
98
+ const isFocusCausedByUserEvent = () => {
99
+ return lastUserFocusTimestamp.value > lastAutomatedFocusTimestamp.value;
100
+ };
101
+ const notifyFocusReasonPointer = () => {
102
+ focusReason.value = "pointer";
103
+ lastUserFocusTimestamp.value = window.performance.now();
104
+ };
105
+ const notifyFocusReasonKeydown = () => {
106
+ focusReason.value = "keyboard";
107
+ lastUserFocusTimestamp.value = window.performance.now();
108
+ };
109
+ const useFocusReason = () => {
110
+ onMounted(() => {
111
+ if (focusReasonUserCount === 0) {
112
+ document.addEventListener("mousedown", notifyFocusReasonPointer);
113
+ document.addEventListener("touchstart", notifyFocusReasonPointer);
114
+ document.addEventListener("keydown", notifyFocusReasonKeydown);
115
+ }
116
+ focusReasonUserCount++;
117
+ });
118
+ onBeforeUnmount(() => {
119
+ focusReasonUserCount--;
120
+ if (focusReasonUserCount <= 0) {
121
+ document.removeEventListener("mousedown", notifyFocusReasonPointer);
122
+ document.removeEventListener("touchstart", notifyFocusReasonPointer);
123
+ document.removeEventListener("keydown", notifyFocusReasonKeydown);
124
+ }
125
+ });
126
+ return {
127
+ focusReason,
128
+ lastUserFocusTimestamp,
129
+ lastAutomatedFocusTimestamp
130
+ };
131
+ };
132
+ const createFocusOutPreventedEvent = (detail) => {
133
+ return new CustomEvent(FOCUSOUT_PREVENTED, {
134
+ ...FOCUSOUT_PREVENTED_OPTS,
135
+ detail
136
+ });
137
+ };
90
138
 
91
- export { focusFirstDescendant, focusableStack, getEdges, getVisibleElement, isHidden, obtainAllFocusableElements, tryFocus };
139
+ export { createFocusOutPreventedEvent, focusFirstDescendant, focusableStack, getEdges, getVisibleElement, isFocusCausedByUserEvent, isHidden, obtainAllFocusableElements, tryFocus, useFocusReason };
92
140
  //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/focus-trap/src/utils.ts"],"sourcesContent":["export type FocusLayer = {\n paused: boolean\n pause: () => void\n resume: () => void\n}\n\nexport type FocusStack = FocusLayer[]\n\nexport const obtainAllFocusableElements = (\n element: HTMLElement\n): HTMLElement[] => {\n const nodes: HTMLElement[] = []\n const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (\n node: Element & {\n disabled: boolean\n hidden: boolean\n type: string\n tabIndex: number\n }\n ) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden'\n if (node.disabled || node.hidden || isHiddenInput)\n return NodeFilter.FILTER_SKIP\n return node.tabIndex >= 0 || node === document.activeElement\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n },\n })\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement)\n\n return nodes\n}\n\nexport const getVisibleElement = (\n elements: HTMLElement[],\n container: HTMLElement\n) => {\n for (const element of elements) {\n if (!isHidden(element, container)) return element\n }\n}\n\nexport const isHidden = (element: HTMLElement, container: HTMLElement) => {\n if (process.env.NODE_ENV === 'test') return false\n if (getComputedStyle(element).visibility === 'hidden') return true\n\n while (element) {\n if (container && element === container) return false\n if (getComputedStyle(element).display === 'none') return true\n element = element.parentElement as HTMLElement\n }\n\n return false\n}\n\nexport const getEdges = (container: HTMLElement) => {\n const focusable = obtainAllFocusableElements(container)\n const first = getVisibleElement(focusable, container)\n const last = getVisibleElement(focusable.reverse(), container)\n return [first, last]\n}\n\nconst isSelectable = (\n element: any\n): element is HTMLInputElement & { select: () => void } => {\n return element instanceof HTMLInputElement && 'select' in element\n}\n\nexport const tryFocus = (\n element?: HTMLElement | { focus: () => void } | null,\n shouldSelect?: boolean\n) => {\n if (element && element.focus) {\n const prevFocusedElement = document.activeElement\n element.focus({ preventScroll: true })\n if (\n element !== prevFocusedElement &&\n isSelectable(element) &&\n shouldSelect\n ) {\n element.select()\n }\n }\n}\n\nfunction removeFromStack<T>(list: T[], item: T) {\n const copy = [...list]\n\n const idx = list.indexOf(item)\n\n if (idx !== -1) {\n copy.splice(idx, 1)\n }\n return copy\n}\n\nconst createFocusableStack = () => {\n let stack = [] as FocusStack\n\n const push = (layer: FocusLayer) => {\n const currentLayer = stack[0]\n\n if (currentLayer && layer !== currentLayer) {\n currentLayer.pause()\n }\n\n stack = removeFromStack(stack, layer)\n stack.unshift(layer)\n }\n\n const remove = (layer: FocusLayer) => {\n stack = removeFromStack(stack, layer)\n stack[0]?.resume?.()\n }\n\n return {\n push,\n remove,\n }\n}\n\nexport const focusFirstDescendant = (\n elements: HTMLElement[],\n shouldSelect = false\n) => {\n const prevFocusedElement = document.activeElement\n for (const element of elements) {\n tryFocus(element, shouldSelect)\n if (document.activeElement !== prevFocusedElement) return\n }\n}\n\nexport const focusableStack = createFocusableStack()\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/focus-trap/src/utils.ts"],"sourcesContent":["import { onBeforeUnmount, onMounted, ref } from 'vue'\nimport { FOCUSOUT_PREVENTED, FOCUSOUT_PREVENTED_OPTS } from './tokens'\n\nconst focusReason = ref<'pointer' | 'keyboard'>()\nconst lastUserFocusTimestamp = ref<number>(0)\nconst lastAutomatedFocusTimestamp = ref<number>(0)\nlet focusReasonUserCount = 0\n\nexport type FocusLayer = {\n paused: boolean\n pause: () => void\n resume: () => void\n}\n\nexport type FocusStack = FocusLayer[]\n\nexport const obtainAllFocusableElements = (\n element: HTMLElement\n): HTMLElement[] => {\n const nodes: HTMLElement[] = []\n const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (\n node: Element & {\n disabled: boolean\n hidden: boolean\n type: string\n tabIndex: number\n }\n ) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden'\n if (node.disabled || node.hidden || isHiddenInput)\n return NodeFilter.FILTER_SKIP\n return node.tabIndex >= 0 || node === document.activeElement\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n },\n })\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement)\n\n return nodes\n}\n\nexport const getVisibleElement = (\n elements: HTMLElement[],\n container: HTMLElement\n) => {\n for (const element of elements) {\n if (!isHidden(element, container)) return element\n }\n}\n\nexport const isHidden = (element: HTMLElement, container: HTMLElement) => {\n if (process.env.NODE_ENV === 'test') return false\n if (getComputedStyle(element).visibility === 'hidden') return true\n\n while (element) {\n if (container && element === container) return false\n if (getComputedStyle(element).display === 'none') return true\n element = element.parentElement as HTMLElement\n }\n\n return false\n}\n\nexport const getEdges = (container: HTMLElement) => {\n const focusable = obtainAllFocusableElements(container)\n const first = getVisibleElement(focusable, container)\n const last = getVisibleElement(focusable.reverse(), container)\n return [first, last]\n}\n\nconst isSelectable = (\n element: any\n): element is HTMLInputElement & { select: () => void } => {\n return element instanceof HTMLInputElement && 'select' in element\n}\n\nexport const tryFocus = (\n element?: HTMLElement | { focus: () => void } | null,\n shouldSelect?: boolean\n) => {\n if (element && element.focus) {\n const prevFocusedElement = document.activeElement\n element.focus({ preventScroll: true })\n lastAutomatedFocusTimestamp.value = window.performance.now()\n if (\n element !== prevFocusedElement &&\n isSelectable(element) &&\n shouldSelect\n ) {\n element.select()\n }\n }\n}\n\nfunction removeFromStack<T>(list: T[], item: T) {\n const copy = [...list]\n\n const idx = list.indexOf(item)\n\n if (idx !== -1) {\n copy.splice(idx, 1)\n }\n return copy\n}\n\nconst createFocusableStack = () => {\n let stack = [] as FocusStack\n\n const push = (layer: FocusLayer) => {\n const currentLayer = stack[0]\n\n if (currentLayer && layer !== currentLayer) {\n currentLayer.pause()\n }\n\n stack = removeFromStack(stack, layer)\n stack.unshift(layer)\n }\n\n const remove = (layer: FocusLayer) => {\n stack = removeFromStack(stack, layer)\n stack[0]?.resume?.()\n }\n\n return {\n push,\n remove,\n }\n}\n\nexport const focusFirstDescendant = (\n elements: HTMLElement[],\n shouldSelect = false\n) => {\n const prevFocusedElement = document.activeElement\n for (const element of elements) {\n tryFocus(element, shouldSelect)\n if (document.activeElement !== prevFocusedElement) return\n }\n}\n\nexport const focusableStack = createFocusableStack()\n\nexport const isFocusCausedByUserEvent = (): boolean => {\n return lastUserFocusTimestamp.value > lastAutomatedFocusTimestamp.value\n}\n\nconst notifyFocusReasonPointer = () => {\n focusReason.value = 'pointer'\n lastUserFocusTimestamp.value = window.performance.now()\n}\n\nconst notifyFocusReasonKeydown = () => {\n focusReason.value = 'keyboard'\n lastUserFocusTimestamp.value = window.performance.now()\n}\n\nexport const useFocusReason = (): {\n focusReason: typeof focusReason\n lastUserFocusTimestamp: typeof lastUserFocusTimestamp\n lastAutomatedFocusTimestamp: typeof lastAutomatedFocusTimestamp\n} => {\n onMounted(() => {\n if (focusReasonUserCount === 0) {\n document.addEventListener('mousedown', notifyFocusReasonPointer)\n document.addEventListener('touchstart', notifyFocusReasonPointer)\n document.addEventListener('keydown', notifyFocusReasonKeydown)\n }\n focusReasonUserCount++\n })\n\n onBeforeUnmount(() => {\n focusReasonUserCount--\n if (focusReasonUserCount <= 0) {\n document.removeEventListener('mousedown', notifyFocusReasonPointer)\n document.removeEventListener('touchstart', notifyFocusReasonPointer)\n document.removeEventListener('keydown', notifyFocusReasonKeydown)\n }\n })\n\n return {\n focusReason,\n lastUserFocusTimestamp,\n lastAutomatedFocusTimestamp,\n }\n}\n\nexport const createFocusOutPreventedEvent = (\n detail: CustomEventInit['detail']\n) => {\n return new CustomEvent(FOCUSOUT_PREVENTED, {\n ...FOCUSOUT_PREVENTED_OPTS,\n detail,\n })\n}\n"],"names":[],"mappings":"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"}
@@ -73,16 +73,16 @@ export { ElMessageBox } from './message-box/index.mjs';
73
73
  export { ElNotification } from './notification/index.mjs';
74
74
  export { ElPopover, ElPopoverDirective } from './popover/index.mjs';
75
75
  export { affixEmits, affixProps } from './affix/src/affix.mjs';
76
- export { alertEffects, alertEmits, alertProps } from './alert/src/alert.mjs';
76
+ export { alertEffects, alertEmits, alertProps } from './alert/src/alert2.mjs';
77
77
  export { autocompleteEmits, autocompleteProps } from './autocomplete/src/autocomplete.mjs';
78
- export { avatarEmits, avatarProps } from './avatar/src/avatar.mjs';
78
+ export { avatarEmits, avatarProps } from './avatar/src/avatar2.mjs';
79
79
  export { backtopEmits, backtopProps } from './backtop/src/backtop.mjs';
80
- export { badgeProps } from './badge/src/badge.mjs';
80
+ export { badgeProps } from './badge/src/badge2.mjs';
81
81
  export { breadcrumbProps } from './breadcrumb/src/breadcrumb.mjs';
82
82
  export { breadcrumbItemProps } from './breadcrumb/src/breadcrumb-item.mjs';
83
83
  export { buttonEmits, buttonNativeTypes, buttonProps, buttonTypes } from './button/src/button.mjs';
84
84
  export { calendarEmits, calendarProps } from './calendar/src/calendar.mjs';
85
- export { cardProps } from './card/src/card.mjs';
85
+ export { cardProps } from './card/src/card2.mjs';
86
86
  export { carouselEmits, carouselProps } from './carousel/src/carousel.mjs';
87
87
  export { carouselItemProps } from './carousel/src/carousel-item.mjs';
88
88
  export { CASCADER_PANEL_INJECTION_KEY } from './cascader-panel/src/types.mjs';
@@ -109,14 +109,14 @@ export { iconProps } from './icon/src/icon.mjs';
109
109
  export { imageEmits, imageProps } from './image/src/image.mjs';
110
110
  export { imageViewerEmits, imageViewerProps } from './image-viewer/src/image-viewer.mjs';
111
111
  export { inputEmits, inputProps } from './input/src/input.mjs';
112
- export { inputNumberEmits, inputNumberProps } from './input-number/src/input-number.mjs';
112
+ export { inputNumberEmits, inputNumberProps } from './input-number/src/input-number2.mjs';
113
113
  export { linkEmits, linkProps } from './link/src/link.mjs';
114
114
  export { menuEmits, menuProps } from './menu/src/menu.mjs';
115
- export { menuItemEmits, menuItemProps } from './menu/src/menu-item.mjs';
115
+ export { menuItemEmits, menuItemProps } from './menu/src/menu-item2.mjs';
116
116
  export { menuItemGroupProps } from './menu/src/menu-item-group.mjs';
117
117
  export { subMenuProps } from './menu/src/sub-menu.mjs';
118
118
  export { overlayEmits, overlayProps } from './overlay/src/overlay.mjs';
119
- export { pageHeaderEmits, pageHeaderProps } from './page-header/src/page-header.mjs';
119
+ export { pageHeaderEmits, pageHeaderProps } from './page-header/src/page-header2.mjs';
120
120
  export { paginationEmits, paginationProps } from './pagination/src/pagination.mjs';
121
121
  export { popconfirmProps } from './popconfirm/src/popconfirm.mjs';
122
122
  export { Effect, popperProps, roleTypes, usePopperProps } from './popper/src/popper.mjs';
@@ -129,7 +129,7 @@ export { default as ElPopperContent } from './popper/src/content2.mjs';
129
129
  export { progressProps } from './progress/src/progress.mjs';
130
130
  export { radioEmits, radioProps, radioPropsBase } from './radio/src/radio.mjs';
131
131
  export { radioGroupEmits, radioGroupProps } from './radio/src/radio-group.mjs';
132
- export { radioButtonProps } from './radio/src/radio-button.mjs';
132
+ export { radioButtonProps } from './radio/src/radio-button2.mjs';
133
133
  export { rateEmits, rateProps } from './rate/src/rate.mjs';
134
134
  export { IconComponentMap, IconMap, resultProps } from './result/src/result.mjs';
135
135
  export { RowAlign, RowJustify, rowProps } from './row/src/row.mjs';
@@ -143,7 +143,7 @@ export { skeletonItemProps } from './skeleton/src/skeleton-item.mjs';
143
143
  export { sliderEmits, sliderProps } from './slider/src/slider.mjs';
144
144
  export { spaceProps } from './space/src/space.mjs';
145
145
  export { useSpace } from './space/src/use-space.mjs';
146
- export { stepProps } from './steps/src/item.mjs';
146
+ export { stepProps } from './steps/src/item2.mjs';
147
147
  export { stepsEmits, stepsProps } from './steps/src/steps.mjs';
148
148
  export { switchEmits, switchProps } from './switch/src/switch.mjs';
149
149
  export { Alignment as TableV2Alignment, FixedDir as TableV2FixedDir, SortOrder as TableV2SortOrder } from './table-v2/src/constants.mjs';
@@ -155,7 +155,7 @@ export { tableV2RowProps } from './table-v2/src/row.mjs';
155
155
  export { tabsEmits, tabsProps } from './tabs/src/tabs.mjs';
156
156
  export { tabBarProps } from './tabs/src/tab-bar.mjs';
157
157
  export { tabNavEmits, tabNavProps } from './tabs/src/tab-nav.mjs';
158
- export { tabPaneProps } from './tabs/src/tab-pane.mjs';
158
+ export { tabPaneProps } from './tabs/src/tab-pane2.mjs';
159
159
  export { tagEmits, tagProps } from './tag/src/tag.mjs';
160
160
  export { buildTimeList, dateEquals, extractDateFormat, extractTimeFormat, formatter, makeList, parseDate, rangeArr, valueEquals } from './time-picker/src/utils.mjs';
161
161
  export { DEFAULT_FORMATS_DATE, DEFAULT_FORMATS_DATEPICKER, DEFAULT_FORMATS_TIME, timeUnits } from './time-picker/src/constants.mjs';
@@ -35,7 +35,12 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
35
35
  readonly validator: ((val: unknown) => boolean) | undefined;
36
36
  __epPropKey: true;
37
37
  };
38
- readonly form: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
38
+ readonly form: {
39
+ readonly type: import("vue").PropType<string>;
40
+ readonly required: false;
41
+ readonly validator: ((val: unknown) => boolean) | undefined;
42
+ __epPropKey: true;
43
+ };
39
44
  readonly readonly: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
40
45
  readonly clearable: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
41
46
  readonly showPassword: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
@@ -58,10 +63,6 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
58
63
  readonly validateEvent: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
59
64
  readonly inputStyle: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue) | ((new (...args: any[]) => import("vue").StyleValue & {}) | (() => import("vue").StyleValue))[], unknown, unknown, () => import("element-plus/es/utils").Mutable<{}>, boolean>;
60
65
  }, {
61
- PENDANT_MAP: {
62
- readonly suffix: "append";
63
- readonly prefix: "prepend";
64
- };
65
66
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
66
67
  readonly id: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
67
68
  readonly size: {
@@ -99,7 +100,12 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
99
100
  readonly validator: ((val: unknown) => boolean) | undefined;
100
101
  __epPropKey: true;
101
102
  };
102
- readonly form: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
103
+ readonly form: {
104
+ readonly type: import("vue").PropType<string>;
105
+ readonly required: false;
106
+ readonly validator: ((val: unknown) => boolean) | undefined;
107
+ __epPropKey: true;
108
+ };
103
109
  readonly readonly: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
104
110
  readonly clearable: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
105
111
  readonly showPassword: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
@@ -136,7 +142,6 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
136
142
  onCompositionend?: ((evt: CompositionEvent) => any) | undefined;
137
143
  }>>;
138
144
  emit: ((event: "update:modelValue", value: string) => void) & ((event: "change", value: string) => void) & ((event: "input", value: string) => void) & ((event: "focus", evt: FocusEvent) => void) & ((event: "blur", evt: FocusEvent) => void) & ((event: "clear") => void) & ((event: "mouseleave", evt: MouseEvent) => void) & ((event: "mouseenter", evt: MouseEvent) => void) & ((event: "keydown", evt: Event | KeyboardEvent) => void) & ((event: "compositionstart", evt: CompositionEvent) => void) & ((event: "compositionupdate", evt: CompositionEvent) => void) & ((event: "compositionend", evt: CompositionEvent) => void);
139
- instance: import("vue").ComponentInternalInstance;
140
145
  rawAttrs: {
141
146
  [x: string]: unknown;
142
147
  };
@@ -212,8 +217,6 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
212
217
  setCursor: () => void;
213
218
  resizeTextarea: () => void;
214
219
  setNativeInputValue: () => void;
215
- calcIconOffset: (place: "suffix" | "prefix") => void;
216
- updateIconOffset: () => void;
217
220
  handleInput: (event: Event) => Promise<void>;
218
221
  handleChange: (event: Event) => void;
219
222
  handleCompositionStart: (event: CompositionEvent) => void;
@@ -344,7 +347,12 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
344
347
  readonly validator: ((val: unknown) => boolean) | undefined;
345
348
  __epPropKey: true;
346
349
  };
347
- readonly form: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
350
+ readonly form: {
351
+ readonly type: import("vue").PropType<string>;
352
+ readonly required: false;
353
+ readonly validator: ((val: unknown) => boolean) | undefined;
354
+ __epPropKey: true;
355
+ };
348
356
  readonly readonly: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
349
357
  readonly clearable: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
350
358
  readonly showPassword: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
@@ -388,7 +396,6 @@ export declare const ElInput: import("element-plus/es/utils").SFCWithInstall<imp
388
396
  readonly id: string;
389
397
  readonly autosize: import("./src/input").InputAutoSize;
390
398
  readonly autocomplete: string;
391
- readonly form: string;
392
399
  readonly readonly: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
393
400
  readonly clearable: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
394
401
  readonly showPassword: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
@@ -41,7 +41,12 @@ export declare const inputProps: {
41
41
  readonly validator: ((val: unknown) => boolean) | undefined;
42
42
  __epPropKey: true;
43
43
  };
44
- readonly form: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
44
+ readonly form: {
45
+ readonly type: import("vue").PropType<string>;
46
+ readonly required: false;
47
+ readonly validator: ((val: unknown) => boolean) | undefined;
48
+ __epPropKey: true;
49
+ };
45
50
  readonly readonly: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
46
51
  readonly clearable: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
47
52
  readonly showPassword: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
@@ -49,8 +49,7 @@ const inputProps = buildProps({
49
49
  type: String
50
50
  },
51
51
  form: {
52
- type: String,
53
- default: ""
52
+ type: String
54
53
  },
55
54
  readonly: {
56
55
  type: Boolean,