@element-plus/nightly 0.0.20260314 → 0.0.20260316

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 (571) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.full.js +614 -531
  3. package/dist/index.full.min.js +9 -9
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +8 -8
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +614 -531
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar-eg.js +1 -1
  13. package/dist/locale/ar-eg.min.js +1 -1
  14. package/dist/locale/ar-eg.min.mjs +1 -1
  15. package/dist/locale/ar-eg.mjs +1 -1
  16. package/dist/locale/ar.js +1 -1
  17. package/dist/locale/ar.min.js +1 -1
  18. package/dist/locale/ar.min.mjs +1 -1
  19. package/dist/locale/ar.mjs +1 -1
  20. package/dist/locale/az.js +1 -1
  21. package/dist/locale/az.min.js +1 -1
  22. package/dist/locale/az.min.mjs +1 -1
  23. package/dist/locale/az.mjs +1 -1
  24. package/dist/locale/bg.js +1 -1
  25. package/dist/locale/bg.min.js +1 -1
  26. package/dist/locale/bg.min.mjs +1 -1
  27. package/dist/locale/bg.mjs +1 -1
  28. package/dist/locale/bn.js +1 -1
  29. package/dist/locale/bn.min.js +1 -1
  30. package/dist/locale/bn.min.mjs +1 -1
  31. package/dist/locale/bn.mjs +1 -1
  32. package/dist/locale/ca.js +1 -1
  33. package/dist/locale/ca.min.js +1 -1
  34. package/dist/locale/ca.min.mjs +1 -1
  35. package/dist/locale/ca.mjs +1 -1
  36. package/dist/locale/ckb.js +1 -1
  37. package/dist/locale/ckb.min.js +1 -1
  38. package/dist/locale/ckb.min.mjs +1 -1
  39. package/dist/locale/ckb.mjs +1 -1
  40. package/dist/locale/cs.js +1 -1
  41. package/dist/locale/cs.min.js +1 -1
  42. package/dist/locale/cs.min.mjs +1 -1
  43. package/dist/locale/cs.mjs +1 -1
  44. package/dist/locale/da.js +1 -1
  45. package/dist/locale/da.min.js +1 -1
  46. package/dist/locale/da.min.mjs +1 -1
  47. package/dist/locale/da.mjs +1 -1
  48. package/dist/locale/de.js +1 -1
  49. package/dist/locale/de.min.js +1 -1
  50. package/dist/locale/de.min.mjs +1 -1
  51. package/dist/locale/de.mjs +1 -1
  52. package/dist/locale/el.js +1 -1
  53. package/dist/locale/el.min.js +1 -1
  54. package/dist/locale/el.min.mjs +1 -1
  55. package/dist/locale/el.mjs +1 -1
  56. package/dist/locale/en.js +1 -1
  57. package/dist/locale/en.min.js +1 -1
  58. package/dist/locale/en.min.mjs +1 -1
  59. package/dist/locale/en.mjs +1 -1
  60. package/dist/locale/eo.js +1 -1
  61. package/dist/locale/eo.min.js +1 -1
  62. package/dist/locale/eo.min.mjs +1 -1
  63. package/dist/locale/eo.mjs +1 -1
  64. package/dist/locale/es.js +1 -1
  65. package/dist/locale/es.min.js +1 -1
  66. package/dist/locale/es.min.mjs +1 -1
  67. package/dist/locale/es.mjs +1 -1
  68. package/dist/locale/et.js +1 -1
  69. package/dist/locale/et.min.js +1 -1
  70. package/dist/locale/et.min.mjs +1 -1
  71. package/dist/locale/et.mjs +1 -1
  72. package/dist/locale/eu.js +1 -1
  73. package/dist/locale/eu.min.js +1 -1
  74. package/dist/locale/eu.min.mjs +1 -1
  75. package/dist/locale/eu.mjs +1 -1
  76. package/dist/locale/fa.js +1 -1
  77. package/dist/locale/fa.min.js +1 -1
  78. package/dist/locale/fa.min.mjs +1 -1
  79. package/dist/locale/fa.mjs +1 -1
  80. package/dist/locale/fi.js +1 -1
  81. package/dist/locale/fi.min.js +1 -1
  82. package/dist/locale/fi.min.mjs +1 -1
  83. package/dist/locale/fi.mjs +1 -1
  84. package/dist/locale/fr.js +1 -1
  85. package/dist/locale/fr.min.js +1 -1
  86. package/dist/locale/fr.min.mjs +1 -1
  87. package/dist/locale/fr.mjs +1 -1
  88. package/dist/locale/he.js +1 -1
  89. package/dist/locale/he.min.js +1 -1
  90. package/dist/locale/he.min.mjs +1 -1
  91. package/dist/locale/he.mjs +1 -1
  92. package/dist/locale/hi.js +1 -1
  93. package/dist/locale/hi.min.js +1 -1
  94. package/dist/locale/hi.min.mjs +1 -1
  95. package/dist/locale/hi.mjs +1 -1
  96. package/dist/locale/hr.js +1 -1
  97. package/dist/locale/hr.min.js +1 -1
  98. package/dist/locale/hr.min.mjs +1 -1
  99. package/dist/locale/hr.mjs +1 -1
  100. package/dist/locale/hu.js +1 -1
  101. package/dist/locale/hu.min.js +1 -1
  102. package/dist/locale/hu.min.mjs +1 -1
  103. package/dist/locale/hu.mjs +1 -1
  104. package/dist/locale/hy-am.js +1 -1
  105. package/dist/locale/hy-am.min.js +1 -1
  106. package/dist/locale/hy-am.min.mjs +1 -1
  107. package/dist/locale/hy-am.mjs +1 -1
  108. package/dist/locale/id.js +1 -1
  109. package/dist/locale/id.min.js +1 -1
  110. package/dist/locale/id.min.mjs +1 -1
  111. package/dist/locale/id.mjs +1 -1
  112. package/dist/locale/it.js +1 -1
  113. package/dist/locale/it.min.js +1 -1
  114. package/dist/locale/it.min.mjs +1 -1
  115. package/dist/locale/it.mjs +1 -1
  116. package/dist/locale/ja.js +1 -1
  117. package/dist/locale/ja.min.js +1 -1
  118. package/dist/locale/ja.min.mjs +1 -1
  119. package/dist/locale/ja.mjs +1 -1
  120. package/dist/locale/kk.js +1 -1
  121. package/dist/locale/kk.min.js +1 -1
  122. package/dist/locale/kk.min.mjs +1 -1
  123. package/dist/locale/kk.mjs +1 -1
  124. package/dist/locale/km.js +1 -1
  125. package/dist/locale/km.min.js +1 -1
  126. package/dist/locale/km.min.mjs +1 -1
  127. package/dist/locale/km.mjs +1 -1
  128. package/dist/locale/ko.js +1 -1
  129. package/dist/locale/ko.min.js +1 -1
  130. package/dist/locale/ko.min.mjs +1 -1
  131. package/dist/locale/ko.mjs +1 -1
  132. package/dist/locale/ku.js +1 -1
  133. package/dist/locale/ku.min.js +1 -1
  134. package/dist/locale/ku.min.mjs +1 -1
  135. package/dist/locale/ku.mjs +1 -1
  136. package/dist/locale/ky.js +1 -1
  137. package/dist/locale/ky.min.js +1 -1
  138. package/dist/locale/ky.min.mjs +1 -1
  139. package/dist/locale/ky.mjs +1 -1
  140. package/dist/locale/lo.js +1 -1
  141. package/dist/locale/lo.min.js +1 -1
  142. package/dist/locale/lo.min.mjs +1 -1
  143. package/dist/locale/lo.mjs +1 -1
  144. package/dist/locale/lt.js +1 -1
  145. package/dist/locale/lt.min.js +1 -1
  146. package/dist/locale/lt.min.mjs +1 -1
  147. package/dist/locale/lt.mjs +1 -1
  148. package/dist/locale/lv.js +1 -1
  149. package/dist/locale/lv.min.js +1 -1
  150. package/dist/locale/lv.min.mjs +1 -1
  151. package/dist/locale/lv.mjs +1 -1
  152. package/dist/locale/mg.js +1 -1
  153. package/dist/locale/mg.min.js +1 -1
  154. package/dist/locale/mg.min.mjs +1 -1
  155. package/dist/locale/mg.mjs +1 -1
  156. package/dist/locale/mn.js +1 -1
  157. package/dist/locale/mn.min.js +1 -1
  158. package/dist/locale/mn.min.mjs +1 -1
  159. package/dist/locale/mn.mjs +1 -1
  160. package/dist/locale/ms.js +1 -1
  161. package/dist/locale/ms.min.js +1 -1
  162. package/dist/locale/ms.min.mjs +1 -1
  163. package/dist/locale/ms.mjs +1 -1
  164. package/dist/locale/my.js +1 -1
  165. package/dist/locale/my.min.js +1 -1
  166. package/dist/locale/my.min.mjs +1 -1
  167. package/dist/locale/my.mjs +1 -1
  168. package/dist/locale/nb-no.js +1 -1
  169. package/dist/locale/nb-no.min.js +1 -1
  170. package/dist/locale/nb-no.min.mjs +1 -1
  171. package/dist/locale/nb-no.mjs +1 -1
  172. package/dist/locale/nl.js +1 -1
  173. package/dist/locale/nl.min.js +1 -1
  174. package/dist/locale/nl.min.mjs +1 -1
  175. package/dist/locale/nl.mjs +1 -1
  176. package/dist/locale/no.js +1 -1
  177. package/dist/locale/no.min.js +1 -1
  178. package/dist/locale/no.min.mjs +1 -1
  179. package/dist/locale/no.mjs +1 -1
  180. package/dist/locale/pa.js +1 -1
  181. package/dist/locale/pa.min.js +1 -1
  182. package/dist/locale/pa.min.mjs +1 -1
  183. package/dist/locale/pa.mjs +1 -1
  184. package/dist/locale/pl.js +1 -1
  185. package/dist/locale/pl.min.js +1 -1
  186. package/dist/locale/pl.min.mjs +1 -1
  187. package/dist/locale/pl.mjs +1 -1
  188. package/dist/locale/pt-br.js +1 -1
  189. package/dist/locale/pt-br.min.js +1 -1
  190. package/dist/locale/pt-br.min.mjs +1 -1
  191. package/dist/locale/pt-br.mjs +1 -1
  192. package/dist/locale/pt.js +1 -1
  193. package/dist/locale/pt.min.js +1 -1
  194. package/dist/locale/pt.min.mjs +1 -1
  195. package/dist/locale/pt.mjs +1 -1
  196. package/dist/locale/ro.js +1 -1
  197. package/dist/locale/ro.min.js +1 -1
  198. package/dist/locale/ro.min.mjs +1 -1
  199. package/dist/locale/ro.mjs +1 -1
  200. package/dist/locale/ru.js +1 -1
  201. package/dist/locale/ru.min.js +1 -1
  202. package/dist/locale/ru.min.mjs +1 -1
  203. package/dist/locale/ru.mjs +1 -1
  204. package/dist/locale/sk.js +1 -1
  205. package/dist/locale/sk.min.js +1 -1
  206. package/dist/locale/sk.min.mjs +1 -1
  207. package/dist/locale/sk.mjs +1 -1
  208. package/dist/locale/sl.js +1 -1
  209. package/dist/locale/sl.min.js +1 -1
  210. package/dist/locale/sl.min.mjs +1 -1
  211. package/dist/locale/sl.mjs +1 -1
  212. package/dist/locale/sr.js +1 -1
  213. package/dist/locale/sr.min.js +1 -1
  214. package/dist/locale/sr.min.mjs +1 -1
  215. package/dist/locale/sr.mjs +1 -1
  216. package/dist/locale/sv.js +1 -1
  217. package/dist/locale/sv.min.js +1 -1
  218. package/dist/locale/sv.min.mjs +1 -1
  219. package/dist/locale/sv.mjs +1 -1
  220. package/dist/locale/sw.js +1 -1
  221. package/dist/locale/sw.min.js +1 -1
  222. package/dist/locale/sw.min.mjs +1 -1
  223. package/dist/locale/sw.mjs +1 -1
  224. package/dist/locale/ta.js +1 -1
  225. package/dist/locale/ta.min.js +1 -1
  226. package/dist/locale/ta.min.mjs +1 -1
  227. package/dist/locale/ta.mjs +1 -1
  228. package/dist/locale/te.js +1 -1
  229. package/dist/locale/te.min.js +1 -1
  230. package/dist/locale/te.min.mjs +1 -1
  231. package/dist/locale/te.mjs +1 -1
  232. package/dist/locale/th.js +1 -1
  233. package/dist/locale/th.min.js +1 -1
  234. package/dist/locale/th.min.mjs +1 -1
  235. package/dist/locale/th.mjs +1 -1
  236. package/dist/locale/tk.js +1 -1
  237. package/dist/locale/tk.min.js +1 -1
  238. package/dist/locale/tk.min.mjs +1 -1
  239. package/dist/locale/tk.mjs +1 -1
  240. package/dist/locale/tr.js +1 -1
  241. package/dist/locale/tr.min.js +1 -1
  242. package/dist/locale/tr.min.mjs +1 -1
  243. package/dist/locale/tr.mjs +1 -1
  244. package/dist/locale/ug-cn.js +1 -1
  245. package/dist/locale/ug-cn.min.js +1 -1
  246. package/dist/locale/ug-cn.min.mjs +1 -1
  247. package/dist/locale/ug-cn.mjs +1 -1
  248. package/dist/locale/uk.js +1 -1
  249. package/dist/locale/uk.min.js +1 -1
  250. package/dist/locale/uk.min.mjs +1 -1
  251. package/dist/locale/uk.mjs +1 -1
  252. package/dist/locale/uz-uz.js +1 -1
  253. package/dist/locale/uz-uz.min.js +1 -1
  254. package/dist/locale/uz-uz.min.mjs +1 -1
  255. package/dist/locale/uz-uz.mjs +1 -1
  256. package/dist/locale/vi.js +1 -1
  257. package/dist/locale/vi.min.js +1 -1
  258. package/dist/locale/vi.min.mjs +1 -1
  259. package/dist/locale/vi.mjs +1 -1
  260. package/dist/locale/zh-cn.js +1 -1
  261. package/dist/locale/zh-cn.min.js +1 -1
  262. package/dist/locale/zh-cn.min.mjs +1 -1
  263. package/dist/locale/zh-cn.mjs +1 -1
  264. package/dist/locale/zh-hk.js +1 -1
  265. package/dist/locale/zh-hk.min.js +1 -1
  266. package/dist/locale/zh-hk.min.mjs +1 -1
  267. package/dist/locale/zh-hk.mjs +1 -1
  268. package/dist/locale/zh-mo.js +1 -1
  269. package/dist/locale/zh-mo.min.js +1 -1
  270. package/dist/locale/zh-mo.min.mjs +1 -1
  271. package/dist/locale/zh-mo.mjs +1 -1
  272. package/dist/locale/zh-tw.js +1 -1
  273. package/dist/locale/zh-tw.min.js +1 -1
  274. package/dist/locale/zh-tw.min.mjs +1 -1
  275. package/dist/locale/zh-tw.mjs +1 -1
  276. package/es/components/affix/src/affix.d.ts +2 -2
  277. package/es/components/affix/src/affix.vue.d.ts +3 -3
  278. package/es/components/alert/src/alert.d.ts +1 -1
  279. package/es/components/alert/src/alert.vue.d.ts +2 -2
  280. package/es/components/autocomplete/src/autocomplete.d.ts +3 -3
  281. package/es/components/autocomplete/src/autocomplete.vue.d.ts +7 -7
  282. package/es/components/avatar/src/avatar.d.ts +1 -1
  283. package/es/components/backtop/src/backtop.vue.d.ts +2 -2
  284. package/es/components/badge/src/badge.vue.d.ts +1 -1
  285. package/es/components/button/src/button-group.vue.d.ts +1 -1
  286. package/es/components/button/src/button.d.ts +1 -1
  287. package/es/components/button/src/button.vue.d.ts +3 -3
  288. package/es/components/carousel/src/carousel-item.vue.d.ts +1 -1
  289. package/es/components/cascader/src/cascader.d.ts +3 -3
  290. package/es/components/cascader/src/cascader.vue.d.ts +8 -8
  291. package/es/components/cascader-panel/src/index.vue.d.ts +2 -2
  292. package/es/components/checkbox/src/checkbox-button.vue.d.ts +4 -4
  293. package/es/components/checkbox/src/checkbox-group.vue.d.ts +3 -3
  294. package/es/components/checkbox/src/checkbox.d.ts +8 -8
  295. package/es/components/checkbox/src/checkbox.vue.d.ts +4 -4
  296. package/es/components/col/src/col.vue.d.ts +1 -1
  297. package/es/components/collapse/src/collapse.vue.d.ts +1 -1
  298. package/es/components/color-picker/src/color-picker.vue.d.ts +4 -4
  299. package/es/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
  300. package/es/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
  301. package/es/components/countdown/src/countdown.vue.d.ts +1 -1
  302. package/es/components/date-picker/src/date-picker.d.ts +9 -9
  303. package/es/components/date-picker/src/props.d.ts +2 -2
  304. package/es/components/date-picker-panel/src/date-picker-panel.d.ts +4 -4
  305. package/es/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
  306. package/es/components/descriptions/src/description-item.d.ts +12 -12
  307. package/es/components/dialog/src/dialog.vue.d.ts +1 -1
  308. package/es/components/drawer/src/drawer.vue.d.ts +2 -2
  309. package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  310. package/es/components/dropdown/src/dropdown.d.ts +3 -3
  311. package/es/components/dropdown/src/dropdown.vue.d.ts +52 -52
  312. package/es/components/form/src/form-item.d.ts +1 -1
  313. package/es/components/form/src/form.d.ts +1 -1
  314. package/es/components/input/src/input.d.ts +2 -2
  315. package/es/components/input/src/input.vue.d.ts +2 -2
  316. package/es/components/input/src/input.vue_vue_type_script_setup_true_lang.mjs +3 -1
  317. package/es/components/input/src/input.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  318. package/es/components/input/src/input2.mjs.map +1 -1
  319. package/es/components/input-number/src/input-number.d.ts +2 -2
  320. package/es/components/input-number/src/input-number.vue.d.ts +5 -5
  321. package/es/components/input-tag/src/input-tag.d.ts +2 -2
  322. package/es/components/input-tag/src/input-tag.vue.d.ts +7 -7
  323. package/es/components/link/src/link.vue.d.ts +1 -1
  324. package/es/components/mention/src/mention.d.ts +3 -3
  325. package/es/components/mention/src/mention.vue.d.ts +8 -8
  326. package/es/components/menu/src/sub-menu.d.ts +1 -1
  327. package/es/components/message/src/message.d.ts +1 -1
  328. package/es/components/message/src/message.vue.d.ts +3 -3
  329. package/es/components/notification/src/notification.d.ts +1 -1
  330. package/es/components/notification/src/notification.vue.d.ts +2 -2
  331. package/es/components/overlay/index.d.ts +2 -2
  332. package/es/components/overlay/src/overlay.d.ts +1 -1
  333. package/es/components/pagination/src/pagination.d.ts +3 -3
  334. package/es/components/popconfirm/src/popconfirm.d.ts +2 -2
  335. package/es/components/popconfirm/src/popconfirm.vue.d.ts +2 -2
  336. package/es/components/popover/src/popover.d.ts +1 -1
  337. package/es/components/popover/src/popover.vue.d.ts +9 -9
  338. package/es/components/popper/src/composables/use-content.d.ts +3 -3
  339. package/es/components/popper/src/composables/use-content.mjs +9 -0
  340. package/es/components/popper/src/composables/use-content.mjs.map +1 -1
  341. package/es/components/popper/src/content.vue.d.ts +4 -4
  342. package/es/components/popper/src/popper.d.ts +2 -2
  343. package/es/components/radio/src/radio-button.d.ts +3 -3
  344. package/es/components/radio/src/radio-button.vue.d.ts +2 -2
  345. package/es/components/radio/src/radio-group.vue.d.ts +5 -5
  346. package/es/components/radio/src/radio.d.ts +6 -6
  347. package/es/components/radio/src/radio.vue.d.ts +3 -3
  348. package/es/components/rate/src/rate.vue.d.ts +2 -2
  349. package/es/components/row/src/row.d.ts +2 -2
  350. package/es/components/row/src/row.vue.d.ts +1 -1
  351. package/es/components/scrollbar/src/scrollbar.vue.d.ts +1 -1
  352. package/es/components/segmented/index.d.ts +34 -66
  353. package/es/components/segmented/src/segmented.d.ts +6 -5
  354. package/es/components/segmented/src/segmented.mjs.map +1 -1
  355. package/es/components/segmented/src/segmented.vue.d.ts +21 -26
  356. package/es/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.mjs +58 -4
  357. package/es/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  358. package/es/components/segmented/src/segmented2.mjs.map +1 -1
  359. package/es/components/select/src/option.d.ts +2 -2
  360. package/es/components/select/src/option.vue.d.ts +5 -5
  361. package/es/components/select/src/select.d.ts +4 -4
  362. package/es/components/select/src/select.vue.d.ts +59 -59
  363. package/es/components/select/src/select.vue_vue_type_script_lang.mjs +3 -2
  364. package/es/components/select/src/select.vue_vue_type_script_lang.mjs.map +1 -1
  365. package/es/components/select/src/select2.mjs.map +1 -1
  366. package/es/components/select-v2/src/defaults.d.ts +2 -2
  367. package/es/components/select-v2/src/select.vue.d.ts +41 -41
  368. package/es/components/skeleton/src/skeleton-item.d.ts +1 -1
  369. package/es/components/skeleton/src/skeleton.vue.d.ts +1 -1
  370. package/es/components/slider/src/slider.vue.d.ts +5 -5
  371. package/es/components/space/src/space.d.ts +4 -4
  372. package/es/components/steps/src/item.d.ts +1 -1
  373. package/es/components/steps/src/item.vue.d.ts +1 -1
  374. package/es/components/steps/src/steps.d.ts +2 -2
  375. package/es/components/switch/src/switch.vue.d.ts +2 -2
  376. package/es/components/table/src/table-body/events-helper.mjs +1 -3
  377. package/es/components/table/src/table-body/events-helper.mjs.map +1 -1
  378. package/es/components/table/src/table-column/index.d.ts +17 -17
  379. package/es/components/table/src/table-footer/index.d.ts +1 -1
  380. package/es/components/table/src/table-header/index.d.ts +13 -13
  381. package/es/components/table/src/table.vue.d.ts +33 -33
  382. package/es/components/tabs/src/tab-nav.mjs +13 -10
  383. package/es/components/tabs/src/tab-nav.mjs.map +1 -1
  384. package/es/components/tabs/src/tab-pane.vue.d.ts +1 -1
  385. package/es/components/tabs/src/tabs.d.ts +5 -5
  386. package/es/components/tag/src/tag.d.ts +1 -1
  387. package/es/components/time-picker/src/common/picker.vue.d.ts +9 -9
  388. package/es/components/time-picker/src/common/props.d.ts +2 -2
  389. package/es/components/time-picker/src/time-picker.d.ts +9 -9
  390. package/es/components/time-select/src/time-select.vue.d.ts +3 -3
  391. package/es/components/timeline/src/timeline-item.d.ts +1 -1
  392. package/es/components/timeline/src/timeline-item.vue.d.ts +1 -1
  393. package/es/components/tooltip/src/content.vue.d.ts +7 -7
  394. package/es/components/tooltip/src/content.vue_vue_type_script_setup_true_lang.mjs +0 -3
  395. package/es/components/tooltip/src/content.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  396. package/es/components/tooltip/src/content2.mjs.map +1 -1
  397. package/es/components/tooltip/src/tooltip.d.ts +1 -1
  398. package/es/components/tooltip/src/tooltip.vue.d.ts +8 -8
  399. package/es/components/tour/src/content.d.ts +1 -1
  400. package/es/components/tour/src/step.d.ts +1 -1
  401. package/es/components/tour/src/tour.d.ts +1 -1
  402. package/es/components/transfer/src/transfer.vue.d.ts +3 -3
  403. package/es/components/tree/src/tree.vue.d.ts +12 -12
  404. package/es/components/tree-select/src/tree-select.vue.d.ts +22 -22
  405. package/es/components/tree-v2/src/tree.vue.d.ts +1 -1
  406. package/es/components/upload/src/upload-content.vue.d.ts +1 -1
  407. package/es/components/upload/src/upload.vue.d.ts +2 -2
  408. package/es/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  409. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  410. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +1 -1
  411. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  412. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +1 -1
  413. package/es/components/watermark/src/watermark.vue.d.ts +1 -1
  414. package/es/hooks/use-floating/index.d.ts +8 -8
  415. package/es/hooks/use-popper/index.d.ts +3 -3
  416. package/es/utils/index.d.ts +2 -1
  417. package/es/utils/index.mjs +2 -1
  418. package/es/utils/numbers.d.ts +9 -0
  419. package/es/utils/numbers.mjs +13 -0
  420. package/es/utils/numbers.mjs.map +1 -0
  421. package/es/version.mjs +1 -1
  422. package/es/version.mjs.map +1 -1
  423. package/lib/components/affix/src/affix.d.ts +2 -2
  424. package/lib/components/affix/src/affix.vue.d.ts +3 -3
  425. package/lib/components/alert/src/alert.d.ts +1 -1
  426. package/lib/components/alert/src/alert.vue.d.ts +2 -2
  427. package/lib/components/autocomplete/src/autocomplete.d.ts +3 -3
  428. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +7 -7
  429. package/lib/components/avatar/src/avatar.d.ts +1 -1
  430. package/lib/components/backtop/src/backtop.vue.d.ts +2 -2
  431. package/lib/components/badge/src/badge.vue.d.ts +1 -1
  432. package/lib/components/button/src/button-group.vue.d.ts +1 -1
  433. package/lib/components/button/src/button.d.ts +1 -1
  434. package/lib/components/button/src/button.vue.d.ts +3 -3
  435. package/lib/components/carousel/src/carousel-item.vue.d.ts +1 -1
  436. package/lib/components/cascader/src/cascader.d.ts +3 -3
  437. package/lib/components/cascader/src/cascader.vue.d.ts +8 -8
  438. package/lib/components/cascader-panel/src/index.vue.d.ts +2 -2
  439. package/lib/components/checkbox/src/checkbox-button.vue.d.ts +4 -4
  440. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +3 -3
  441. package/lib/components/checkbox/src/checkbox.d.ts +8 -8
  442. package/lib/components/checkbox/src/checkbox.vue.d.ts +4 -4
  443. package/lib/components/col/src/col.vue.d.ts +1 -1
  444. package/lib/components/collapse/src/collapse.vue.d.ts +1 -1
  445. package/lib/components/color-picker/src/color-picker.vue.d.ts +4 -4
  446. package/lib/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
  447. package/lib/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
  448. package/lib/components/countdown/src/countdown.vue.d.ts +1 -1
  449. package/lib/components/date-picker/src/date-picker.d.ts +9 -9
  450. package/lib/components/date-picker/src/props.d.ts +2 -2
  451. package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +4 -4
  452. package/lib/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
  453. package/lib/components/descriptions/src/description-item.d.ts +12 -12
  454. package/lib/components/dialog/src/dialog.vue.d.ts +1 -1
  455. package/lib/components/drawer/src/drawer.vue.d.ts +2 -2
  456. package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  457. package/lib/components/dropdown/src/dropdown.d.ts +3 -3
  458. package/lib/components/dropdown/src/dropdown.vue.d.ts +52 -52
  459. package/lib/components/form/src/form-item.d.ts +1 -1
  460. package/lib/components/form/src/form.d.ts +1 -1
  461. package/lib/components/input/src/input.d.ts +2 -2
  462. package/lib/components/input/src/input.vue.d.ts +2 -2
  463. package/lib/components/input/src/input.vue_vue_type_script_setup_true_lang.js +3 -1
  464. package/lib/components/input/src/input.vue_vue_type_script_setup_true_lang.js.map +1 -1
  465. package/lib/components/input/src/input2.js.map +1 -1
  466. package/lib/components/input-number/src/input-number.d.ts +2 -2
  467. package/lib/components/input-number/src/input-number.vue.d.ts +5 -5
  468. package/lib/components/input-tag/src/input-tag.d.ts +2 -2
  469. package/lib/components/input-tag/src/input-tag.vue.d.ts +7 -7
  470. package/lib/components/link/src/link.vue.d.ts +1 -1
  471. package/lib/components/mention/src/mention.d.ts +3 -3
  472. package/lib/components/mention/src/mention.vue.d.ts +8 -8
  473. package/lib/components/menu/src/sub-menu.d.ts +1 -1
  474. package/lib/components/message/src/message.d.ts +1 -1
  475. package/lib/components/message/src/message.vue.d.ts +3 -3
  476. package/lib/components/notification/src/notification.d.ts +1 -1
  477. package/lib/components/notification/src/notification.vue.d.ts +2 -2
  478. package/lib/components/overlay/index.d.ts +2 -2
  479. package/lib/components/overlay/src/overlay.d.ts +1 -1
  480. package/lib/components/pagination/src/pagination.d.ts +3 -3
  481. package/lib/components/popconfirm/src/popconfirm.d.ts +2 -2
  482. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +2 -2
  483. package/lib/components/popover/src/popover.d.ts +1 -1
  484. package/lib/components/popover/src/popover.vue.d.ts +9 -9
  485. package/lib/components/popper/src/composables/use-content.d.ts +3 -3
  486. package/lib/components/popper/src/composables/use-content.js +9 -0
  487. package/lib/components/popper/src/composables/use-content.js.map +1 -1
  488. package/lib/components/popper/src/content.vue.d.ts +4 -4
  489. package/lib/components/popper/src/popper.d.ts +2 -2
  490. package/lib/components/radio/src/radio-button.d.ts +3 -3
  491. package/lib/components/radio/src/radio-button.vue.d.ts +2 -2
  492. package/lib/components/radio/src/radio-group.vue.d.ts +5 -5
  493. package/lib/components/radio/src/radio.d.ts +6 -6
  494. package/lib/components/radio/src/radio.vue.d.ts +3 -3
  495. package/lib/components/rate/src/rate.vue.d.ts +2 -2
  496. package/lib/components/row/src/row.d.ts +2 -2
  497. package/lib/components/row/src/row.vue.d.ts +1 -1
  498. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +1 -1
  499. package/lib/components/segmented/index.d.ts +34 -66
  500. package/lib/components/segmented/src/segmented.d.ts +6 -5
  501. package/lib/components/segmented/src/segmented.js.map +1 -1
  502. package/lib/components/segmented/src/segmented.vue.d.ts +21 -26
  503. package/lib/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.js +57 -3
  504. package/lib/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.js.map +1 -1
  505. package/lib/components/segmented/src/segmented2.js.map +1 -1
  506. package/lib/components/select/src/option.d.ts +2 -2
  507. package/lib/components/select/src/option.vue.d.ts +5 -5
  508. package/lib/components/select/src/select.d.ts +4 -4
  509. package/lib/components/select/src/select.vue.d.ts +59 -59
  510. package/lib/components/select/src/select.vue_vue_type_script_lang.js +3 -2
  511. package/lib/components/select/src/select.vue_vue_type_script_lang.js.map +1 -1
  512. package/lib/components/select/src/select2.js.map +1 -1
  513. package/lib/components/select-v2/src/defaults.d.ts +2 -2
  514. package/lib/components/select-v2/src/select.vue.d.ts +41 -41
  515. package/lib/components/skeleton/src/skeleton-item.d.ts +1 -1
  516. package/lib/components/skeleton/src/skeleton.vue.d.ts +1 -1
  517. package/lib/components/slider/src/slider.vue.d.ts +5 -5
  518. package/lib/components/space/src/space.d.ts +4 -4
  519. package/lib/components/steps/src/item.d.ts +1 -1
  520. package/lib/components/steps/src/item.vue.d.ts +1 -1
  521. package/lib/components/steps/src/steps.d.ts +2 -2
  522. package/lib/components/switch/src/switch.vue.d.ts +2 -2
  523. package/lib/components/table/src/table-body/events-helper.js +2 -4
  524. package/lib/components/table/src/table-body/events-helper.js.map +1 -1
  525. package/lib/components/table/src/table-column/index.d.ts +17 -17
  526. package/lib/components/table/src/table-footer/index.d.ts +1 -1
  527. package/lib/components/table/src/table-header/index.d.ts +13 -13
  528. package/lib/components/table/src/table.vue.d.ts +33 -33
  529. package/lib/components/tabs/src/tab-nav.js +13 -10
  530. package/lib/components/tabs/src/tab-nav.js.map +1 -1
  531. package/lib/components/tabs/src/tab-pane.vue.d.ts +1 -1
  532. package/lib/components/tabs/src/tabs.d.ts +5 -5
  533. package/lib/components/tag/src/tag.d.ts +1 -1
  534. package/lib/components/time-picker/src/common/picker.vue.d.ts +9 -9
  535. package/lib/components/time-picker/src/common/props.d.ts +2 -2
  536. package/lib/components/time-picker/src/time-picker.d.ts +9 -9
  537. package/lib/components/time-select/src/time-select.vue.d.ts +3 -3
  538. package/lib/components/timeline/src/timeline-item.d.ts +1 -1
  539. package/lib/components/timeline/src/timeline-item.vue.d.ts +1 -1
  540. package/lib/components/tooltip/src/content.vue.d.ts +7 -7
  541. package/lib/components/tooltip/src/content.vue_vue_type_script_setup_true_lang.js +0 -3
  542. package/lib/components/tooltip/src/content.vue_vue_type_script_setup_true_lang.js.map +1 -1
  543. package/lib/components/tooltip/src/content2.js.map +1 -1
  544. package/lib/components/tooltip/src/tooltip.d.ts +1 -1
  545. package/lib/components/tooltip/src/tooltip.vue.d.ts +8 -8
  546. package/lib/components/tour/src/content.d.ts +1 -1
  547. package/lib/components/tour/src/step.d.ts +1 -1
  548. package/lib/components/tour/src/tour.d.ts +1 -1
  549. package/lib/components/transfer/src/transfer.vue.d.ts +3 -3
  550. package/lib/components/tree/src/tree.vue.d.ts +12 -12
  551. package/lib/components/tree-select/src/tree-select.vue.d.ts +22 -22
  552. package/lib/components/tree-v2/src/tree.vue.d.ts +1 -1
  553. package/lib/components/upload/src/upload-content.vue.d.ts +1 -1
  554. package/lib/components/upload/src/upload.vue.d.ts +2 -2
  555. package/lib/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  556. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  557. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +1 -1
  558. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  559. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +1 -1
  560. package/lib/components/watermark/src/watermark.vue.d.ts +1 -1
  561. package/lib/hooks/use-floating/index.d.ts +8 -8
  562. package/lib/hooks/use-popper/index.d.ts +3 -3
  563. package/lib/utils/index.d.ts +2 -1
  564. package/lib/utils/index.js +2 -0
  565. package/lib/utils/numbers.d.ts +9 -0
  566. package/lib/utils/numbers.js +15 -0
  567. package/lib/utils/numbers.js.map +1 -0
  568. package/lib/version.js +1 -1
  569. package/lib/version.js.map +1 -1
  570. package/package.json +4 -3
  571. package/web-types.json +1 -1
@@ -2,10 +2,10 @@ const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
2
2
  const require_aria = require('../../../constants/aria.js');
3
3
  const require_event = require('../../../utils/dom/event.js');
4
4
  const require_raf = require('../../../utils/raf.js');
5
- const require_strings = require('../../../utils/strings.js');
6
5
  const require_error = require('../../../utils/error.js');
7
6
  const require_runtime$1 = require('../../../utils/vue/props/runtime.js');
8
7
  const require_typescript = require('../../../utils/typescript.js');
8
+ const require_numbers = require('../../../utils/numbers.js');
9
9
  const require_index = require('../../../hooks/use-namespace/index.js');
10
10
  const require_index$1 = require('../../icon/index.js');
11
11
  const require_use_wheel = require('../../virtual-list/src/hooks/use-wheel.js');
@@ -100,17 +100,17 @@ const TabNav = /* @__PURE__ */ (0, vue.defineComponent)({
100
100
  };
101
101
  const scrollPrev = () => {
102
102
  if (!navScroll$.value) return;
103
- const containerSize = navScroll$.value[`offset${require_strings.capitalize(sizeName.value)}`];
103
+ const containerSize = navScroll$.value.getBoundingClientRect()[sizeName.value];
104
104
  const currentOffset = navOffset.value;
105
105
  if (!currentOffset) return;
106
106
  navOffset.value = currentOffset > containerSize ? currentOffset - containerSize : 0;
107
107
  };
108
108
  const scrollNext = () => {
109
109
  if (!navScroll$.value || !nav$.value) return;
110
- const navSize = nav$.value[`offset${require_strings.capitalize(sizeName.value)}`];
111
- const containerSize = navScroll$.value[`offset${require_strings.capitalize(sizeName.value)}`];
110
+ const navSize = nav$.value.getBoundingClientRect()[sizeName.value];
111
+ const containerSize = navScroll$.value.getBoundingClientRect()[sizeName.value];
112
112
  const currentOffset = navOffset.value;
113
- if (navSize - currentOffset <= containerSize) return;
113
+ if (!require_numbers.isGreaterThan(navSize - currentOffset, containerSize)) return;
114
114
  navOffset.value = navSize - currentOffset > containerSize * 2 ? currentOffset + containerSize : navSize - containerSize;
115
115
  };
116
116
  const scrollToActiveTab = async () => {
@@ -122,12 +122,15 @@ const TabNav = /* @__PURE__ */ (0, vue.defineComponent)({
122
122
  const navScroll = navScroll$.value;
123
123
  const activeTabBounding = activeTab.getBoundingClientRect();
124
124
  const navScrollBounding = navScroll.getBoundingClientRect();
125
- const maxOffset = isHorizontal.value ? nav.offsetWidth - navScrollBounding.width : nav.offsetHeight - navScrollBounding.height;
125
+ const navScrollLeft = navScrollBounding.left + 1;
126
+ const navScrollRight = navScrollBounding.right - 1;
127
+ const navBounding = nav.getBoundingClientRect();
128
+ const maxOffset = isHorizontal.value ? navBounding.width - navScrollBounding.width : navBounding.height - navScrollBounding.height;
126
129
  const currentOffset = navOffset.value;
127
130
  let newOffset = currentOffset;
128
131
  if (isHorizontal.value) {
129
- if (activeTabBounding.left < navScrollBounding.left) newOffset = currentOffset - (navScrollBounding.left - activeTabBounding.left);
130
- if (activeTabBounding.right > navScrollBounding.right) newOffset = currentOffset + activeTabBounding.right - navScrollBounding.right;
132
+ if (activeTabBounding.left < navScrollLeft) newOffset = currentOffset - (navScrollLeft - activeTabBounding.left);
133
+ if (activeTabBounding.right > navScrollRight) newOffset = currentOffset + activeTabBounding.right - navScrollRight;
131
134
  } else {
132
135
  if (activeTabBounding.top < navScrollBounding.top) newOffset = currentOffset - (navScrollBounding.top - activeTabBounding.top);
133
136
  if (activeTabBounding.bottom > navScrollBounding.bottom) newOffset = currentOffset + (activeTabBounding.bottom - navScrollBounding.bottom);
@@ -144,8 +147,8 @@ const TabNav = /* @__PURE__ */ (0, vue.defineComponent)({
144
147
  if (containerSize < navSize) {
145
148
  scrollable.value = scrollable.value || {};
146
149
  scrollable.value.prev = currentOffset;
147
- scrollable.value.next = currentOffset + containerSize < navSize;
148
- if (navSize - currentOffset < containerSize) navOffset.value = navSize - containerSize;
150
+ scrollable.value.next = require_numbers.isGreaterThan(navSize, currentOffset + containerSize);
151
+ if (require_numbers.isGreaterThan(containerSize, navSize - currentOffset)) navOffset.value = navSize - containerSize;
149
152
  } else {
150
153
  scrollable.value = false;
151
154
  if (currentOffset > 0) navOffset.value = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"tab-nav.js","names":["computed","defineComponent","inject","nextTick","onMounted","onUpdated","ref","shallowRef","triggerRef","watch","createVNode","_createVNode","useDocumentVisibility","useElementSize","useResizeObserver","useWindowFocus","buildProps","capitalize","definePropType","getEventCode","mutable","rAF","throwError","EVENT_CODE","ElIcon","ArrowLeft","ArrowRight","Close","useNamespace","useWheel","clamp","TabBar","tabsRootContextKey","tabNavProps","panes","type","Array","default","currentName","String","Number","editable","Boolean","values","stretch","tabindex","undefined","tabNavEmits","tabClick","tab","tabName","ev","Event","tabRemove","COMPONENT_NAME","TabNav","name","props","emits","setup","expose","emit","rootTabs","ns","visibility","focused","navScroll$","nav$","el$","tabRefsMap","tabBarRef","scrollable","navOffset","isFocus","focusable","isWheelScrolling","tracker","isHorizontal","includes","tabPosition","sizeName","value","navStyle","dir","transition","transform","width","navContainerWidth","height","navContainerHeight","navWidth","navHeight","box","navContainerSize","navSize","onWheel","atStartEdge","atEndEdge","layout","offset","handleWheel","event","scrollPrev","containerSize","currentOffset","newOffset","scrollNext","scrollToActiveTab","nav","activeTab","navScroll","activeTabBounding","getBoundingClientRect","navScrollBounding","maxOffset","offsetWidth","offsetHeight","left","right","top","bottom","Math","max","min","update","prev","next","changeTab","code","step","up","down","tabList","from","currentTarget","querySelectorAll","currentIndex","indexOf","target","nextIndex","length","focus","preventScroll","click","setFocus","removeFocus","setRefs","el","key","focusActiveTab","setTimeout","tabListRef","scheduleRender","scrollBtn","e","is","tabs","map","pane","index","uid","disabled","closable","isClosable","btnClose","tabLabelContent","slots","label","active","onFocus","onBlur","delete","backspace"],"sources":["../../../../../../packages/components/tabs/src/tab-nav.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n shallowRef,\n triggerRef,\n watch,\n} from 'vue'\nimport {\n useDocumentVisibility,\n useElementSize,\n useResizeObserver,\n useWindowFocus,\n} from '@vueuse/core'\nimport {\n buildProps,\n capitalize,\n definePropType,\n getEventCode,\n mutable,\n rAF,\n throwError,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowLeft, ArrowRight, Close } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport useWheel from '@element-plus/components/virtual-list/src/hooks/use-wheel'\nimport { clamp } from 'lodash-unified'\nimport TabBar from './tab-bar.vue'\nimport { tabsRootContextKey } from './constants'\n\nimport type {\n CSSProperties,\n ComponentPublicInstance,\n ExtractPropTypes,\n ExtractPublicPropTypes,\n} from 'vue'\nimport type { TabBarInstance } from './tab-bar'\nimport type { TabPaneName, TabsPaneContext } from './constants'\n\ninterface Scrollable {\n next?: boolean\n prev?: number\n}\n\nexport const tabNavProps = buildProps({\n panes: {\n type: definePropType<TabsPaneContext[]>(Array),\n default: () => mutable([] as const),\n },\n currentName: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n stretch: Boolean,\n /**\n * @description tab-nav tabindex\n */\n tabindex: {\n type: [String, Number],\n default: undefined,\n },\n} as const)\n\nexport const tabNavEmits = {\n tabClick: (tab: TabsPaneContext, tabName: TabPaneName, ev: Event) =>\n ev instanceof Event,\n tabRemove: (tab: TabsPaneContext, ev: Event) => ev instanceof Event,\n}\n\nexport type TabNavProps = ExtractPropTypes<typeof tabNavProps>\nexport type TabNavPropsPublic = ExtractPublicPropTypes<typeof tabNavProps>\nexport type TabNavEmits = typeof tabNavEmits\n\nconst COMPONENT_NAME = 'ElTabNav'\nconst TabNav = defineComponent({\n name: COMPONENT_NAME,\n props: tabNavProps,\n emits: tabNavEmits,\n setup(props, { expose, emit }) {\n const rootTabs = inject(tabsRootContextKey)\n if (!rootTabs) throwError(COMPONENT_NAME, `<el-tabs><tab-nav /></el-tabs>`)\n\n const ns = useNamespace('tabs')\n const visibility = useDocumentVisibility()\n const focused = useWindowFocus()\n\n const navScroll$ = ref<HTMLDivElement>()\n const nav$ = ref<HTMLDivElement>()\n const el$ = ref<HTMLDivElement>()\n const tabRefsMap = ref<{ [key: TabPaneName]: HTMLDivElement }>({})\n\n const tabBarRef = ref<TabBarInstance>()\n\n const scrollable = ref<false | Scrollable>(false)\n const navOffset = ref(0)\n const isFocus = ref(false)\n const focusable = ref(true)\n const isWheelScrolling = ref(false)\n const tracker = shallowRef()\n\n const isHorizontal = computed(() =>\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n )\n\n const sizeName = computed(() => (isHorizontal.value ? 'width' : 'height'))\n const navStyle = computed<CSSProperties>(() => {\n const dir = sizeName.value === 'width' ? 'X' : 'Y'\n return {\n transition: isWheelScrolling.value ? 'none' : undefined,\n transform: `translate${dir}(-${navOffset.value}px)`,\n }\n })\n\n const { width: navContainerWidth, height: navContainerHeight } =\n useElementSize(navScroll$)\n const { width: navWidth, height: navHeight } = useElementSize(\n nav$,\n { width: 0, height: 0 },\n { box: 'border-box' }\n )\n\n const navContainerSize = computed(() =>\n isHorizontal.value ? navContainerWidth.value : navContainerHeight.value\n )\n const navSize = computed(() =>\n isHorizontal.value ? navWidth.value : navHeight.value\n )\n\n const { onWheel } = useWheel(\n {\n atStartEdge: computed(() => navOffset.value <= 0),\n atEndEdge: computed(\n () => navSize.value - navOffset.value <= navContainerSize.value\n ),\n layout: computed(() =>\n isHorizontal.value ? 'horizontal' : 'vertical'\n ),\n },\n (offset) => {\n navOffset.value = clamp(\n navOffset.value + offset,\n 0,\n navSize.value - navContainerSize.value\n )\n }\n )\n\n const handleWheel = (event: WheelEvent) => {\n isWheelScrolling.value = true\n onWheel(event)\n rAF(() => {\n isWheelScrolling.value = false\n })\n }\n\n const scrollPrev = () => {\n if (!navScroll$.value) return\n\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (!currentOffset) return\n\n const newOffset =\n currentOffset > containerSize ? currentOffset - containerSize : 0\n\n navOffset.value = newOffset\n }\n\n const scrollNext = () => {\n if (!navScroll$.value || !nav$.value) return\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`]\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (navSize - currentOffset <= containerSize) return\n\n const newOffset =\n navSize - currentOffset > containerSize * 2\n ? currentOffset + containerSize\n : navSize - containerSize\n\n navOffset.value = newOffset\n }\n\n const scrollToActiveTab = async () => {\n const nav = nav$.value\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return\n\n await nextTick()\n\n const activeTab = tabRefsMap.value[props.currentName]\n if (!activeTab) return\n\n const navScroll = navScroll$.value\n\n const activeTabBounding = activeTab.getBoundingClientRect()\n const navScrollBounding = navScroll.getBoundingClientRect()\n const maxOffset = isHorizontal.value\n ? nav.offsetWidth - navScrollBounding.width\n : nav.offsetHeight - navScrollBounding.height\n const currentOffset = navOffset.value\n let newOffset = currentOffset\n\n if (isHorizontal.value) {\n if (activeTabBounding.left < navScrollBounding.left) {\n newOffset =\n currentOffset - (navScrollBounding.left - activeTabBounding.left)\n }\n if (activeTabBounding.right > navScrollBounding.right) {\n newOffset =\n currentOffset + activeTabBounding.right - navScrollBounding.right\n }\n } else {\n if (activeTabBounding.top < navScrollBounding.top) {\n newOffset =\n currentOffset - (navScrollBounding.top - activeTabBounding.top)\n }\n if (activeTabBounding.bottom > navScrollBounding.bottom) {\n newOffset =\n currentOffset +\n (activeTabBounding.bottom - navScrollBounding.bottom)\n }\n }\n newOffset = Math.max(newOffset, 0)\n navOffset.value = Math.min(newOffset, maxOffset)\n }\n\n const update = () => {\n if (!nav$.value || !navScroll$.value) return\n\n props.stretch && tabBarRef.value?.update()\n\n const navSize = nav$.value.getBoundingClientRect()[sizeName.value]\n const containerSize =\n navScroll$.value.getBoundingClientRect()[sizeName.value]\n const currentOffset = navOffset.value\n\n if (containerSize < navSize) {\n scrollable.value = scrollable.value || {}\n scrollable.value.prev = currentOffset\n scrollable.value.next = currentOffset + containerSize < navSize\n if (navSize - currentOffset < containerSize) {\n navOffset.value = navSize - containerSize\n }\n } else {\n scrollable.value = false\n if (currentOffset > 0) {\n navOffset.value = 0\n }\n }\n }\n\n const changeTab = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n let step = 0\n\n switch (code) {\n case EVENT_CODE.left:\n case EVENT_CODE.up:\n step = -1\n break\n case EVENT_CODE.right:\n case EVENT_CODE.down:\n step = 1\n break\n default:\n return\n }\n\n const tabList = Array.from(\n (\n event.currentTarget as HTMLDivElement\n ).querySelectorAll<HTMLDivElement>('[role=tab]:not(.is-disabled)')\n )\n const currentIndex = tabList.indexOf(event.target as HTMLDivElement)\n let nextIndex = currentIndex + step\n\n if (nextIndex < 0) {\n nextIndex = tabList.length - 1\n } else if (nextIndex >= tabList.length) {\n nextIndex = 0\n }\n\n tabList[nextIndex].focus({ preventScroll: true }) // 改变焦点元素\n tabList[nextIndex].click() // 选中下一个tab\n setFocus()\n }\n\n const setFocus = () => {\n if (focusable.value) isFocus.value = true\n }\n const removeFocus = () => (isFocus.value = false)\n\n const setRefs = (\n el: Element | ComponentPublicInstance | null,\n key: TabPaneName\n ) => {\n tabRefsMap.value[key] = el as HTMLDivElement\n }\n\n const focusActiveTab = async () => {\n await nextTick()\n\n const activeTab = tabRefsMap.value[props.currentName]\n activeTab?.focus({ preventScroll: true })\n }\n\n watch(visibility, (visibility) => {\n if (visibility === 'hidden') {\n focusable.value = false\n } else if (visibility === 'visible') {\n setTimeout(() => (focusable.value = true), 50)\n }\n })\n watch(focused, (focused) => {\n if (focused) {\n setTimeout(() => (focusable.value = true), 50)\n } else {\n focusable.value = false\n }\n })\n\n useResizeObserver(el$, () => {\n rAF(update)\n })\n\n onMounted(() => setTimeout(() => scrollToActiveTab(), 0))\n onUpdated(() => update())\n\n expose({\n scrollToActiveTab,\n removeFocus,\n focusActiveTab,\n tabListRef: nav$,\n tabBarRef,\n scheduleRender: () => triggerRef(tracker),\n })\n\n return () => {\n const scrollBtn = scrollable.value\n ? [\n <span\n class={[\n ns.e('nav-prev'),\n ns.is('disabled', !scrollable.value.prev),\n ]}\n onClick={scrollPrev}\n >\n <ElIcon>\n <ArrowLeft />\n </ElIcon>\n </span>,\n <span\n class={[\n ns.e('nav-next'),\n ns.is('disabled', !scrollable.value.next),\n ]}\n onClick={scrollNext}\n >\n <ElIcon>\n <ArrowRight />\n </ElIcon>\n </span>,\n ]\n : null\n\n const tabs = props.panes.map((pane, index) => {\n const uid = pane.uid\n const disabled = pane.props.disabled\n const tabName = pane.props.name ?? pane.index ?? `${index}`\n const closable =\n !disabled &&\n (pane.isClosable || (pane.props.closable !== false && props.editable))\n pane.index = `${index}`\n\n const btnClose = closable ? (\n <ElIcon\n class=\"is-icon-close\"\n // `onClick` not exist when generate dts\n\n // @ts-ignore\n onClick={(ev: MouseEvent) => emit('tabRemove', pane, ev)}\n >\n <Close />\n </ElIcon>\n ) : null\n\n const tabLabelContent = pane.slots.label?.() || pane.props.label\n const tabindex =\n !disabled && pane.active\n ? (props.tabindex ?? rootTabs.props.tabindex)\n : -1\n\n return (\n <div\n ref={(el) => setRefs(el, tabName)}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition),\n ns.is('active', pane.active),\n ns.is('disabled', disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value),\n ]}\n id={`tab-${tabName}`}\n key={`tab-${uid}`}\n aria-controls={`pane-${tabName}`}\n role=\"tab\"\n aria-selected={pane.active}\n tabindex={tabindex}\n onFocus={() => setFocus()}\n onBlur={() => removeFocus()}\n onClick={(ev: MouseEvent) => {\n removeFocus()\n emit('tabClick', pane, tabName, ev)\n }}\n onKeydown={(ev: KeyboardEvent) => {\n const code = getEventCode(ev)\n if (\n closable &&\n (code === EVENT_CODE.delete || code === EVENT_CODE.backspace)\n ) {\n emit('tabRemove', pane, ev)\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n )\n })\n\n // By tracking the value property, we can schedule a job to re-render `TabNav` when needed.\n // Unlike `instance.update`, the scheduler ensures the job is queued only once even if we trigger it multiple times.\n tracker.value\n\n return (\n <div\n ref={el$}\n class={[\n ns.e('nav-wrap'),\n ns.is('scrollable', !!scrollable.value),\n ns.is(rootTabs.props.tabPosition),\n ]}\n >\n {scrollBtn}\n <div class={ns.e('nav-scroll')} ref={navScroll$}>\n {props.panes.length > 0 ? (\n <div\n class={[\n ns.e('nav'),\n ns.is(rootTabs.props.tabPosition),\n ns.is(\n 'stretch',\n props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ),\n ]}\n ref={nav$}\n style={navStyle.value}\n role=\"tablist\"\n onKeydown={changeTab}\n onWheel={handleWheel}\n >\n {...[\n !props.type ? (\n <TabBar\n ref={tabBarRef}\n tabs={[...props.panes]}\n tabRefs={tabRefsMap.value}\n />\n ) : null,\n tabs,\n ]}\n </div>\n ) : null}\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav> & {\n scrollToActiveTab: () => Promise<void>\n removeFocus: () => void\n focusActiveTab: () => void\n scheduleRender: () => void\n tabListRef: HTMLDivElement | undefined\n tabBarRef: TabBarInstance | undefined\n}\n\nexport default TabNav\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAkDA,MAAaiC,cAAcjB,6BAAW;CACpCkB,OAAO;EACLC,MAAMjB,iCAAkCkB,MAAM;EAC9CC,eAAejB,2BAAQ,EAAW,CAAA;EACnC;CACDkB,aAAa;EACXH,MAAM,CAACI,QAAQC,OAAO;EACtBH,SAAS;EACV;CACDI,UAAUC;CACVP,MAAM;EACJA,MAAMI;EACNI,QAAQ;GAAC;GAAQ;GAAe;GAAG;EACnCN,SAAS;EACV;CACDO,SAASF;CAITG,UAAU;EACRV,MAAM,CAACI,QAAQC,OAAO;EACtBH,SAASS;EACX;CACQ,CAAC;AAEX,MAAaC,cAAc;CACzBC,WAAWC,KAAsBC,SAAsBC,OACrDA,cAAcC;CAChBC,YAAYJ,KAAsBE,OAAcA,cAAcC;CAC/D;AAMD,MAAME,iBAAiB;AACvB,MAAMC,SAAStD,yCAAgB;CAC7BuD,MAAMF;CACNG,OAAOxB;CACPyB,OAAOX;CACPY,MAAMF,OAAO,EAAEG,QAAQC,QAAQ;EAC7B,MAAMC,2BAAkB9B,qCAAmB;AAC3C,MAAI,CAAC8B,SAAUxC,0BAAWgC,gBAAgB,iCAAiC;EAE3E,MAAMS,KAAKnC,2BAAa,OAAO;EAC/B,MAAMoC,sDAAoC;EAC1C,MAAMC,4CAA0B;EAEhC,MAAMC,2BAAkC;EACxC,MAAMC,qBAA4B;EAClC,MAAMC,oBAA2B;EACjC,MAAMC,0BAAyD,EAAE,CAAC;EAElE,MAAMC,0BAAiC;EAEvC,MAAMC,0BAAqC,MAAM;EACjD,MAAMC,yBAAgB,EAAE;EACxB,MAAMC,uBAAc,MAAM;EAC1B,MAAMC,yBAAgB,KAAK;EAC3B,MAAMC,gCAAuB,MAAM;EACnC,MAAMC,+BAAsB;EAE5B,MAAMC,uCACJ,CAAC,OAAO,SAAS,CAACC,SAAShB,SAASL,MAAMsB,YAC5C,CAAC;EAED,MAAMC,mCAA2BH,aAAaI,QAAQ,UAAU,SAAU;EAC1E,MAAMC,mCAAyC;GAC7C,MAAMC,MAAMH,SAASC,UAAU,UAAU,MAAM;AAC/C,UAAO;IACLG,YAAYT,iBAAiBM,QAAQ,SAASnC;IAC9CuC,WAAW,YAAYF,IAAG,IAAKX,UAAUS,MAAK;IAC/C;IACD;EAEF,MAAM,EAAEK,OAAOC,mBAAmBC,QAAQC,wDACzBvB,WAAW;EAC5B,MAAM,EAAEoB,OAAOI,UAAUF,QAAQG,+CAC/BxB,MACA;GAAEmB,OAAO;GAAGE,QAAQ;GAAG,EACvB,EAAEI,KAAK,cACT,CAAC;EAED,MAAMC,2CACJhB,aAAaI,QAAQM,kBAAkBN,QAAQQ,mBAAmBR,MACnE;EACD,MAAMa,kCACJjB,aAAaI,QAAQS,SAAST,QAAQU,UAAUV,MACjD;EAED,MAAM,EAAEc,YAAYlE,0BAClB;GACEmE,qCAA4BxB,UAAUS,SAAS,EAAE;GACjDgB,mCACQH,QAAQb,QAAQT,UAAUS,SAASY,iBAAiBZ,MAC3D;GACDiB,gCACErB,aAAaI,QAAQ,eAAe,WACtC;GACD,GACAkB,WAAW;AACV3B,aAAUS,kCACRT,UAAUS,QAAQkB,QAClB,GACAL,QAAQb,QAAQY,iBAAiBZ,MAClC;IAEJ;EAED,MAAMmB,eAAeC,UAAsB;AACzC1B,oBAAiBM,QAAQ;AACzBc,WAAQM,MAAM;AACdhF,yBAAU;AACRsD,qBAAiBM,QAAQ;KACzB;;EAGJ,MAAMqB,mBAAmB;AACvB,OAAI,CAACpC,WAAWe,MAAO;GAEvB,MAAMsB,gBACJrC,WAAWe,MAAM,SAAShE,2BAAW+D,SAASC,MAAM;GACtD,MAAMuB,gBAAgBhC,UAAUS;AAEhC,OAAI,CAACuB,cAAe;AAKpBhC,aAAUS,QAFRuB,gBAAgBD,gBAAgBC,gBAAgBD,gBAAgB;;EAKpE,MAAMG,mBAAmB;AACvB,OAAI,CAACxC,WAAWe,SAAS,CAACd,KAAKc,MAAO;GAEtC,MAAMa,UAAU3B,KAAKc,MAAM,SAAShE,2BAAW+D,SAASC,MAAM;GAC9D,MAAMsB,gBACJrC,WAAWe,MAAM,SAAShE,2BAAW+D,SAASC,MAAM;GACtD,MAAMuB,gBAAgBhC,UAAUS;AAEhC,OAAIa,UAAUU,iBAAiBD,cAAe;AAO9C/B,aAAUS,QAJRa,UAAUU,gBAAgBD,gBAAgB,IACtCC,gBAAgBD,gBAChBT,UAAUS;;EAKlB,MAAMI,oBAAoB,YAAY;GACpC,MAAMC,MAAMzC,KAAKc;AACjB,OAAI,CAACV,WAAWU,SAAS,CAACb,IAAIa,SAAS,CAACf,WAAWe,SAAS,CAAC2B,IAAK;AAElE,4BAAgB;GAEhB,MAAMC,YAAYxC,WAAWY,MAAMxB,MAAMnB;AACzC,OAAI,CAACuE,UAAW;GAEhB,MAAMC,YAAY5C,WAAWe;GAE7B,MAAM8B,oBAAoBF,UAAUG,uBAAuB;GAC3D,MAAMC,oBAAoBH,UAAUE,uBAAuB;GAC3D,MAAME,YAAYrC,aAAaI,QAC3B2B,IAAIO,cAAcF,kBAAkB3B,QACpCsB,IAAIQ,eAAeH,kBAAkBzB;GACzC,MAAMgB,gBAAgBhC,UAAUS;GAChC,IAAIwB,YAAYD;AAEhB,OAAI3B,aAAaI,OAAO;AACtB,QAAI8B,kBAAkBM,OAAOJ,kBAAkBI,KAC7CZ,aACED,iBAAiBS,kBAAkBI,OAAON,kBAAkBM;AAEhE,QAAIN,kBAAkBO,QAAQL,kBAAkBK,MAC9Cb,aACED,gBAAgBO,kBAAkBO,QAAQL,kBAAkBK;UAE3D;AACL,QAAIP,kBAAkBQ,MAAMN,kBAAkBM,IAC5Cd,aACED,iBAAiBS,kBAAkBM,MAAMR,kBAAkBQ;AAE/D,QAAIR,kBAAkBS,SAASP,kBAAkBO,OAC/Cf,aACED,iBACCO,kBAAkBS,SAASP,kBAAkBO;;AAGpDf,eAAYgB,KAAKC,IAAIjB,WAAW,EAAE;AAClCjC,aAAUS,QAAQwC,KAAKE,IAAIlB,WAAWS,UAAU;;EAGlD,MAAMU,eAAe;AACnB,OAAI,CAACzD,KAAKc,SAAS,CAACf,WAAWe,MAAO;AAEtCxB,SAAMb,WAAW0B,UAAUW,OAAO2C,QAAQ;GAE1C,MAAM9B,UAAU3B,KAAKc,MAAM+B,uBAAuB,CAAChC,SAASC;GAC5D,MAAMsB,gBACJrC,WAAWe,MAAM+B,uBAAuB,CAAChC,SAASC;GACpD,MAAMuB,gBAAgBhC,UAAUS;AAEhC,OAAIsB,gBAAgBT,SAAS;AAC3BvB,eAAWU,QAAQV,WAAWU,SAAS,EAAE;AACzCV,eAAWU,MAAM4C,OAAOrB;AACxBjC,eAAWU,MAAM6C,OAAOtB,gBAAgBD,gBAAgBT;AACxD,QAAIA,UAAUU,gBAAgBD,cAC5B/B,WAAUS,QAAQa,UAAUS;UAEzB;AACLhC,eAAWU,QAAQ;AACnB,QAAIuB,gBAAgB,EAClBhC,WAAUS,QAAQ;;;EAKxB,MAAM8C,aAAa1B,UAAyB;GAC1C,MAAM2B,OAAO7G,2BAAakF,MAAM;GAChC,IAAI4B,OAAO;AAEX,WAAQD,MAAR;IACE,KAAKzG,wBAAW8F;IAChB,KAAK9F,wBAAW2G;AACdD,YAAO;AACP;IACF,KAAK1G,wBAAW+F;IAChB,KAAK/F,wBAAW4G;AACdF,YAAO;AACP;IACF,QACE;;GAGJ,MAAMG,UAAUhG,MAAMiG,KAElBhC,MAAMiC,cACNC,iBAAiC,+BACrC,CAAC;GAED,IAAII,YADiBP,QAAQK,QAAQpC,MAAMqC,OAAyB,GACrCT;AAE/B,OAAIU,YAAY,EACdA,aAAYP,QAAQQ,SAAS;YACpBD,aAAaP,QAAQQ,OAC9BD,aAAY;AAGdP,WAAQO,WAAWE,MAAM,EAAEC,eAAe,MAAM,CAAC;AACjDV,WAAQO,WAAWI,OAAO;AAC1BC,aAAU;;EAGZ,MAAMA,iBAAiB;AACrB,OAAItE,UAAUO,MAAOR,SAAQQ,QAAQ;;EAEvC,MAAMgE,oBAAqBxE,QAAQQ,QAAQ;EAE3C,MAAMiE,WACJC,IACAC,QACG;AACH/E,cAAWY,MAAMmE,OAAOD;;EAG1B,MAAME,iBAAiB,YAAY;AACjC,4BAAgB;AAGhBxC,GADkBxC,WAAWY,MAAMxB,MAAMnB,cAC9BuG,MAAM,EAAEC,eAAe,MAAM,CAAC;;AAG3CrI,iBAAMuD,aAAaA,eAAe;AAChC,OAAIA,eAAe,SACjBU,WAAUO,QAAQ;YACTjB,eAAe,UACxBsF,kBAAkB5E,UAAUO,QAAQ,MAAO,GAAG;IAEhD;AACFxE,iBAAMwD,UAAUA,YAAY;AAC1B,OAAIA,QACFqF,kBAAkB5E,UAAUO,QAAQ,MAAO,GAAG;OAE9CP,WAAUO,QAAQ;IAEpB;AAEFnE,sCAAkBsD,WAAW;AAC3B/C,mBAAIuG,OAAO;IACX;AAEFxH,2BAAgBkJ,iBAAiB3C,mBAAmB,EAAE,EAAE,CAAC;AACzDtG,2BAAgBuH,QAAQ,CAAC;AAEzBhE,SAAO;GACL+C;GACAsC;GACAI;GACAE,YAAYpF;GACZG;GACAkF,0CAAiC5E,QAAO;GACzC,CAAC;AAEF,eAAa;GACX,MAAM6E,YAAYlF,WAAWU,QACzB,sBAAA,QAAA;IAAA,SAEW,CACLlB,GAAG2F,EAAE,WAAW,EAChB3F,GAAG4F,GAAG,YAAY,CAACpF,WAAWU,MAAM4C,KAAK,CAC1C;IAAA,WACQvB;IAAU,EAAA,sBAAA9E,wBAAA,MAAA,EAAAa,eAAA,sBAAAZ,mCAAA,MAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,uBAAA,QAAA;IAAA,SAOZ,CACLsC,GAAG2F,EAAE,WAAW,EAChB3F,GAAG4F,GAAG,YAAY,CAACpF,WAAWU,MAAM6C,KAAK,CAC1C;IAAA,WACQpB;IAAU,EAAA,sBAAAlF,wBAAA,MAAA,EAAAa,eAAA,sBAAAX,oCAAA,MAAA,KAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAMtB,GACD;GAEJ,MAAMkI,OAAOnG,MAAMvB,MAAM2H,KAAKC,MAAMC,UAAU;IAC5C,MAAMC,MAAMF,KAAKE;IACjB,MAAMC,WAAWH,KAAKrG,MAAMwG;IAC5B,MAAM/G,UAAU4G,KAAKrG,MAAMD,QAAQsG,KAAKC,SAAS,GAAGA;IACpD,MAAMG,WACJ,CAACD,aACAH,KAAKK,cAAeL,KAAKrG,MAAMyG,aAAa,SAASzG,MAAMhB;AAC9DqH,SAAKC,QAAQ,GAAGA;IAEhB,MAAMK,WAAWF,gCAAQ1I,wBAAA;KAAA,SAAA;KAAA,YAMX2B,OAAmBU,KAAK,aAAaiG,MAAM3G,GAAE;KAAC,EAAA,EAAAd,eAAA,sBAAAV,+BAAA,MAAA,KAAA,CAAA,EAAA,CAAA,GAIxD;IAEJ,MAAM0I,kBAAkBP,KAAKQ,MAAMC,SAAS,IAAIT,KAAKrG,MAAM8G;IAC3D,MAAM1H,WACJ,CAACoH,YAAYH,KAAKU,SACb/G,MAAMZ,YAAYiB,SAASL,MAAMZ,WAClC;AAEN,gCAAA,OAAA;KAAA,QAEUsG,OAAOD,QAAQC,IAAIjG,QAAQ;KAAA,SAC1B;MACLa,GAAG2F,EAAE,OAAO;MACZ3F,GAAG4F,GAAG7F,SAASL,MAAMsB,YAAY;MACjChB,GAAG4F,GAAG,UAAUG,KAAKU,OAAO;MAC5BzG,GAAG4F,GAAG,YAAYM,SAAS;MAC3BlG,GAAG4F,GAAG,YAAYO,SAAS;MAC3BnG,GAAG4F,GAAG,SAASlF,QAAQQ,MAAM;MAC9B;KAAA,MACG,OAAO/B;KAAS,OACf,OAAO8G;KAAK,iBACF,QAAQ9G;KAAS,QAAA;KAAA,iBAEjB4G,KAAKU;KAAM,YAChB3H;KAAQ,iBACHmG,UAAU;KAAA,gBACXC,aAAa;KAAA,YACjB9F,OAAmB;AAC3B8F,mBAAa;AACbpF,WAAK,YAAYiG,MAAM5G,SAASC,GAAG;;KACpC,cACWA,OAAsB;MAChC,MAAM6E,OAAO7G,2BAAagC,GAAG;AAC7B,UACE+G,aACClC,SAASzG,wBAAWoJ,UAAU3C,SAASzG,wBAAWqJ,WAEnD/G,MAAK,aAAaiG,MAAM3G,GAAG;;KAE9B,EAAA,CAAA,GAEG,CAACkH,iBAAiBD,SAAS,CAAA,CAAA;KAGnC;AAIFxF,WAAQK;AAER,+BAAA,OAAA;IAAA,OAESb;IAAG,SACD;KACLL,GAAG2F,EAAE,WAAW;KAChB3F,GAAG4F,GAAG,cAAc,CAAC,CAACpF,WAAWU,MAAM;KACvClB,GAAG4F,GAAG7F,SAASL,MAAMsB,YAAY;KAAA;IAClC,EAAA,CAEA0E,gCAAS,OAAA;IAAA,SACE1F,GAAG2F,EAAE,aAAa;IAAA,OAAOxF;IAAU,EAAA,CAC5CT,MAAMvB,MAAM0G,SAAS,yBAAC,OAAA;IAAA,SAEZ;KACL7E,GAAG2F,EAAE,MAAM;KACX3F,GAAG4F,GAAG7F,SAASL,MAAMsB,YAAY;KACjChB,GAAG4F,GACD,WACAlG,MAAMb,WACJ,CAAC,OAAO,SAAS,CAACkC,SAAShB,SAASL,MAAMsB,YAC9C,CAAC;KACF;IAAA,OACIZ;IAAI,SACFe,SAASD;IAAK,QAAA;IAAA,aAEV8C;IAAS,WACX3B;IAAW,EAAA,CAAA,GAEhB,CACF,CAAC3C,MAAMtB,4BAAIJ,yBAAA;IAAA,OAEFuC;IAAS,QACR,CAAC,GAAGb,MAAMvB,MAAM;IAAA,WACbmC,WAAWY;IAAK,EAAA,KAAA,GAEzB,MACJ2E,KACD,CAAA,CAAA,GAED,KAAI,CAAA,CAAA,CAAA;;;CAMnB,CAAC"}
1
+ {"version":3,"file":"tab-nav.js","names":["computed","defineComponent","inject","nextTick","onMounted","onUpdated","ref","shallowRef","triggerRef","watch","createVNode","_createVNode","useDocumentVisibility","useElementSize","useResizeObserver","useWindowFocus","buildProps","definePropType","getEventCode","isGreaterThan","mutable","rAF","throwError","EVENT_CODE","ElIcon","ArrowLeft","ArrowRight","Close","useNamespace","useWheel","clamp","TabBar","tabsRootContextKey","tabNavProps","panes","type","Array","default","currentName","String","Number","editable","Boolean","values","stretch","tabindex","undefined","tabNavEmits","tabClick","tab","tabName","ev","Event","tabRemove","COMPONENT_NAME","TabNav","name","props","emits","setup","expose","emit","rootTabs","ns","visibility","focused","navScroll$","nav$","el$","tabRefsMap","tabBarRef","scrollable","navOffset","isFocus","focusable","isWheelScrolling","tracker","isHorizontal","includes","tabPosition","sizeName","value","navStyle","dir","transition","transform","width","navContainerWidth","height","navContainerHeight","navWidth","navHeight","box","navContainerSize","navSize","onWheel","atStartEdge","atEndEdge","layout","offset","handleWheel","event","scrollPrev","containerSize","getBoundingClientRect","currentOffset","newOffset","scrollNext","scrollToActiveTab","nav","activeTab","navScroll","activeTabBounding","navScrollBounding","navScrollLeft","left","navScrollRight","right","navBounding","maxOffset","top","bottom","Math","max","min","update","prev","next","changeTab","code","step","up","down","tabList","from","currentTarget","querySelectorAll","currentIndex","indexOf","target","nextIndex","length","focus","preventScroll","click","setFocus","removeFocus","setRefs","el","key","focusActiveTab","setTimeout","tabListRef","scheduleRender","scrollBtn","e","is","tabs","map","pane","index","uid","disabled","closable","isClosable","btnClose","tabLabelContent","slots","label","active","onFocus","onBlur","delete","backspace"],"sources":["../../../../../../packages/components/tabs/src/tab-nav.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n shallowRef,\n triggerRef,\n watch,\n} from 'vue'\nimport {\n useDocumentVisibility,\n useElementSize,\n useResizeObserver,\n useWindowFocus,\n} from '@vueuse/core'\nimport {\n buildProps,\n definePropType,\n getEventCode,\n isGreaterThan,\n mutable,\n rAF,\n throwError,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowLeft, ArrowRight, Close } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport useWheel from '@element-plus/components/virtual-list/src/hooks/use-wheel'\nimport { clamp } from 'lodash-unified'\nimport TabBar from './tab-bar.vue'\nimport { tabsRootContextKey } from './constants'\n\nimport type {\n CSSProperties,\n ComponentPublicInstance,\n ExtractPropTypes,\n ExtractPublicPropTypes,\n} from 'vue'\nimport type { TabBarInstance } from './tab-bar'\nimport type { TabPaneName, TabsPaneContext } from './constants'\n\ninterface Scrollable {\n next?: boolean\n prev?: number\n}\n\nexport const tabNavProps = buildProps({\n panes: {\n type: definePropType<TabsPaneContext[]>(Array),\n default: () => mutable([] as const),\n },\n currentName: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n stretch: Boolean,\n /**\n * @description tab-nav tabindex\n */\n tabindex: {\n type: [String, Number],\n default: undefined,\n },\n} as const)\n\nexport const tabNavEmits = {\n tabClick: (tab: TabsPaneContext, tabName: TabPaneName, ev: Event) =>\n ev instanceof Event,\n tabRemove: (tab: TabsPaneContext, ev: Event) => ev instanceof Event,\n}\n\nexport type TabNavProps = ExtractPropTypes<typeof tabNavProps>\nexport type TabNavPropsPublic = ExtractPublicPropTypes<typeof tabNavProps>\nexport type TabNavEmits = typeof tabNavEmits\n\nconst COMPONENT_NAME = 'ElTabNav'\nconst TabNav = defineComponent({\n name: COMPONENT_NAME,\n props: tabNavProps,\n emits: tabNavEmits,\n setup(props, { expose, emit }) {\n const rootTabs = inject(tabsRootContextKey)\n if (!rootTabs) throwError(COMPONENT_NAME, `<el-tabs><tab-nav /></el-tabs>`)\n\n const ns = useNamespace('tabs')\n const visibility = useDocumentVisibility()\n const focused = useWindowFocus()\n\n const navScroll$ = ref<HTMLDivElement>()\n const nav$ = ref<HTMLDivElement>()\n const el$ = ref<HTMLDivElement>()\n const tabRefsMap = ref<{ [key: TabPaneName]: HTMLDivElement }>({})\n\n const tabBarRef = ref<TabBarInstance>()\n\n const scrollable = ref<false | Scrollable>(false)\n const navOffset = ref(0)\n const isFocus = ref(false)\n const focusable = ref(true)\n const isWheelScrolling = ref(false)\n const tracker = shallowRef()\n\n const isHorizontal = computed(() =>\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n )\n\n const sizeName = computed(() => (isHorizontal.value ? 'width' : 'height'))\n const navStyle = computed<CSSProperties>(() => {\n const dir = sizeName.value === 'width' ? 'X' : 'Y'\n return {\n transition: isWheelScrolling.value ? 'none' : undefined,\n transform: `translate${dir}(-${navOffset.value}px)`,\n }\n })\n\n const { width: navContainerWidth, height: navContainerHeight } =\n useElementSize(navScroll$)\n const { width: navWidth, height: navHeight } = useElementSize(\n nav$,\n { width: 0, height: 0 },\n { box: 'border-box' }\n )\n\n const navContainerSize = computed(() =>\n isHorizontal.value ? navContainerWidth.value : navContainerHeight.value\n )\n const navSize = computed(() =>\n isHorizontal.value ? navWidth.value : navHeight.value\n )\n\n const { onWheel } = useWheel(\n {\n atStartEdge: computed(() => navOffset.value <= 0),\n atEndEdge: computed(\n () => navSize.value - navOffset.value <= navContainerSize.value\n ),\n layout: computed(() =>\n isHorizontal.value ? 'horizontal' : 'vertical'\n ),\n },\n (offset) => {\n navOffset.value = clamp(\n navOffset.value + offset,\n 0,\n navSize.value - navContainerSize.value\n )\n }\n )\n\n const handleWheel = (event: WheelEvent) => {\n isWheelScrolling.value = true\n onWheel(event)\n rAF(() => {\n isWheelScrolling.value = false\n })\n }\n\n const scrollPrev = () => {\n if (!navScroll$.value) return\n\n const containerSize =\n navScroll$.value.getBoundingClientRect()[sizeName.value]\n const currentOffset = navOffset.value\n\n if (!currentOffset) return\n\n const newOffset =\n currentOffset > containerSize ? currentOffset - containerSize : 0\n\n navOffset.value = newOffset\n }\n\n const scrollNext = () => {\n if (!navScroll$.value || !nav$.value) return\n\n const navSize = nav$.value.getBoundingClientRect()[sizeName.value]\n const containerSize =\n navScroll$.value.getBoundingClientRect()[sizeName.value]\n const currentOffset = navOffset.value\n\n if (!isGreaterThan(navSize - currentOffset, containerSize)) return\n\n const newOffset =\n navSize - currentOffset > containerSize * 2\n ? currentOffset + containerSize\n : navSize - containerSize\n\n navOffset.value = newOffset\n }\n\n const scrollToActiveTab = async () => {\n const nav = nav$.value\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return\n\n await nextTick()\n\n const activeTab = tabRefsMap.value[props.currentName]\n if (!activeTab) return\n\n const navScroll = navScroll$.value\n\n const activeTabBounding = activeTab.getBoundingClientRect()\n const navScrollBounding = navScroll.getBoundingClientRect()\n // nav has a 1px border width\n const navScrollLeft = navScrollBounding.left + 1\n const navScrollRight = navScrollBounding.right - 1\n const navBounding = nav.getBoundingClientRect()\n const maxOffset = isHorizontal.value\n ? navBounding.width - navScrollBounding.width\n : navBounding.height - navScrollBounding.height\n const currentOffset = navOffset.value\n let newOffset = currentOffset\n\n if (isHorizontal.value) {\n if (activeTabBounding.left < navScrollLeft) {\n newOffset = currentOffset - (navScrollLeft - activeTabBounding.left)\n }\n if (activeTabBounding.right > navScrollRight) {\n newOffset = currentOffset + activeTabBounding.right - navScrollRight\n }\n } else {\n if (activeTabBounding.top < navScrollBounding.top) {\n newOffset =\n currentOffset - (navScrollBounding.top - activeTabBounding.top)\n }\n if (activeTabBounding.bottom > navScrollBounding.bottom) {\n newOffset =\n currentOffset +\n (activeTabBounding.bottom - navScrollBounding.bottom)\n }\n }\n newOffset = Math.max(newOffset, 0)\n navOffset.value = Math.min(newOffset, maxOffset)\n }\n\n const update = () => {\n if (!nav$.value || !navScroll$.value) return\n\n props.stretch && tabBarRef.value?.update()\n\n const navSize = nav$.value.getBoundingClientRect()[sizeName.value]\n const containerSize =\n navScroll$.value.getBoundingClientRect()[sizeName.value]\n const currentOffset = navOffset.value\n\n if (containerSize < navSize) {\n scrollable.value = scrollable.value || {}\n scrollable.value.prev = currentOffset\n scrollable.value.next = isGreaterThan(\n navSize,\n currentOffset + containerSize\n )\n if (isGreaterThan(containerSize, navSize - currentOffset)) {\n navOffset.value = navSize - containerSize\n }\n } else {\n scrollable.value = false\n if (currentOffset > 0) {\n navOffset.value = 0\n }\n }\n }\n\n const changeTab = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n let step = 0\n\n switch (code) {\n case EVENT_CODE.left:\n case EVENT_CODE.up:\n step = -1\n break\n case EVENT_CODE.right:\n case EVENT_CODE.down:\n step = 1\n break\n default:\n return\n }\n\n const tabList = Array.from(\n (\n event.currentTarget as HTMLDivElement\n ).querySelectorAll<HTMLDivElement>('[role=tab]:not(.is-disabled)')\n )\n const currentIndex = tabList.indexOf(event.target as HTMLDivElement)\n let nextIndex = currentIndex + step\n\n if (nextIndex < 0) {\n nextIndex = tabList.length - 1\n } else if (nextIndex >= tabList.length) {\n nextIndex = 0\n }\n\n tabList[nextIndex].focus({ preventScroll: true }) // 改变焦点元素\n tabList[nextIndex].click() // 选中下一个tab\n setFocus()\n }\n\n const setFocus = () => {\n if (focusable.value) isFocus.value = true\n }\n const removeFocus = () => (isFocus.value = false)\n\n const setRefs = (\n el: Element | ComponentPublicInstance | null,\n key: TabPaneName\n ) => {\n tabRefsMap.value[key] = el as HTMLDivElement\n }\n\n const focusActiveTab = async () => {\n await nextTick()\n\n const activeTab = tabRefsMap.value[props.currentName]\n activeTab?.focus({ preventScroll: true })\n }\n\n watch(visibility, (visibility) => {\n if (visibility === 'hidden') {\n focusable.value = false\n } else if (visibility === 'visible') {\n setTimeout(() => (focusable.value = true), 50)\n }\n })\n watch(focused, (focused) => {\n if (focused) {\n setTimeout(() => (focusable.value = true), 50)\n } else {\n focusable.value = false\n }\n })\n\n useResizeObserver(el$, () => {\n rAF(update)\n })\n\n onMounted(() => setTimeout(() => scrollToActiveTab(), 0))\n onUpdated(() => update())\n\n expose({\n scrollToActiveTab,\n removeFocus,\n focusActiveTab,\n tabListRef: nav$,\n tabBarRef,\n scheduleRender: () => triggerRef(tracker),\n })\n\n return () => {\n const scrollBtn = scrollable.value\n ? [\n <span\n class={[\n ns.e('nav-prev'),\n ns.is('disabled', !scrollable.value.prev),\n ]}\n onClick={scrollPrev}\n >\n <ElIcon>\n <ArrowLeft />\n </ElIcon>\n </span>,\n <span\n class={[\n ns.e('nav-next'),\n ns.is('disabled', !scrollable.value.next),\n ]}\n onClick={scrollNext}\n >\n <ElIcon>\n <ArrowRight />\n </ElIcon>\n </span>,\n ]\n : null\n\n const tabs = props.panes.map((pane, index) => {\n const uid = pane.uid\n const disabled = pane.props.disabled\n const tabName = pane.props.name ?? pane.index ?? `${index}`\n const closable =\n !disabled &&\n (pane.isClosable || (pane.props.closable !== false && props.editable))\n pane.index = `${index}`\n\n const btnClose = closable ? (\n <ElIcon\n class=\"is-icon-close\"\n // `onClick` not exist when generate dts\n\n // @ts-ignore\n onClick={(ev: MouseEvent) => emit('tabRemove', pane, ev)}\n >\n <Close />\n </ElIcon>\n ) : null\n\n const tabLabelContent = pane.slots.label?.() || pane.props.label\n const tabindex =\n !disabled && pane.active\n ? (props.tabindex ?? rootTabs.props.tabindex)\n : -1\n\n return (\n <div\n ref={(el) => setRefs(el, tabName)}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition),\n ns.is('active', pane.active),\n ns.is('disabled', disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value),\n ]}\n id={`tab-${tabName}`}\n key={`tab-${uid}`}\n aria-controls={`pane-${tabName}`}\n role=\"tab\"\n aria-selected={pane.active}\n tabindex={tabindex}\n onFocus={() => setFocus()}\n onBlur={() => removeFocus()}\n onClick={(ev: MouseEvent) => {\n removeFocus()\n emit('tabClick', pane, tabName, ev)\n }}\n onKeydown={(ev: KeyboardEvent) => {\n const code = getEventCode(ev)\n if (\n closable &&\n (code === EVENT_CODE.delete || code === EVENT_CODE.backspace)\n ) {\n emit('tabRemove', pane, ev)\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n )\n })\n\n // By tracking the value property, we can schedule a job to re-render `TabNav` when needed.\n // Unlike `instance.update`, the scheduler ensures the job is queued only once even if we trigger it multiple times.\n tracker.value\n\n return (\n <div\n ref={el$}\n class={[\n ns.e('nav-wrap'),\n ns.is('scrollable', !!scrollable.value),\n ns.is(rootTabs.props.tabPosition),\n ]}\n >\n {scrollBtn}\n <div class={ns.e('nav-scroll')} ref={navScroll$}>\n {props.panes.length > 0 ? (\n <div\n class={[\n ns.e('nav'),\n ns.is(rootTabs.props.tabPosition),\n ns.is(\n 'stretch',\n props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ),\n ]}\n ref={nav$}\n style={navStyle.value}\n role=\"tablist\"\n onKeydown={changeTab}\n onWheel={handleWheel}\n >\n {...[\n !props.type ? (\n <TabBar\n ref={tabBarRef}\n tabs={[...props.panes]}\n tabRefs={tabRefsMap.value}\n />\n ) : null,\n tabs,\n ]}\n </div>\n ) : null}\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav> & {\n scrollToActiveTab: () => Promise<void>\n removeFocus: () => void\n focusActiveTab: () => void\n scheduleRender: () => void\n tabListRef: HTMLDivElement | undefined\n tabBarRef: TabBarInstance | undefined\n}\n\nexport default TabNav\n"],"mappings":"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"}
@@ -7,8 +7,8 @@ type __VLS_Slots = {} & {
7
7
  default?: (props: typeof __VLS_1) => any;
8
8
  };
9
9
  declare const __VLS_base: vue.DefineComponent<TabPaneProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<TabPaneProps> & Readonly<{}>, {
10
- label: string;
11
10
  closable: boolean;
11
+ label: string;
12
12
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
13
13
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
14
  declare const _default: typeof __VLS_export;
@@ -25,7 +25,7 @@ declare const tabsProps: {
25
25
  __epPropKey: true;
26
26
  };
27
27
  readonly editable: BooleanConstructor;
28
- readonly tabPosition: EpPropFinalized<StringConstructor, "left" | "right" | "bottom" | "top", unknown, "top", boolean>;
28
+ readonly tabPosition: EpPropFinalized<StringConstructor, "top" | "bottom" | "left" | "right", unknown, "top", boolean>;
29
29
  readonly beforeLeave: EpPropFinalized<(new (...args: any[]) => (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>) | (() => (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>) | {
30
30
  (): (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>;
31
31
  new (): any;
@@ -67,7 +67,7 @@ declare const Tabs: vue.DefineComponent<ExtractPropTypes<{
67
67
  __epPropKey: true;
68
68
  };
69
69
  readonly editable: BooleanConstructor;
70
- readonly tabPosition: EpPropFinalized<StringConstructor, "left" | "right" | "bottom" | "top", unknown, "top", boolean>;
70
+ readonly tabPosition: EpPropFinalized<StringConstructor, "top" | "bottom" | "left" | "right", unknown, "top", boolean>;
71
71
  readonly beforeLeave: EpPropFinalized<(new (...args: any[]) => (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>) | (() => (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>) | {
72
72
  (): (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>;
73
73
  new (): any;
@@ -103,7 +103,7 @@ declare const Tabs: vue.DefineComponent<ExtractPropTypes<{
103
103
  __epPropKey: true;
104
104
  };
105
105
  readonly editable: BooleanConstructor;
106
- readonly tabPosition: EpPropFinalized<StringConstructor, "left" | "right" | "bottom" | "top", unknown, "top", boolean>;
106
+ readonly tabPosition: EpPropFinalized<StringConstructor, "top" | "bottom" | "left" | "right", unknown, "top", boolean>;
107
107
  readonly beforeLeave: EpPropFinalized<(new (...args: any[]) => (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>) | (() => (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>) | {
108
108
  (): (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>;
109
109
  new (): any;
@@ -140,11 +140,11 @@ declare const Tabs: vue.DefineComponent<ExtractPropTypes<{
140
140
  onTabAdd?: (() => any) | undefined;
141
141
  }>, {
142
142
  readonly type: EpPropMergeType<StringConstructor, "" | "card" | "border-card", unknown>;
143
+ readonly closable: boolean;
143
144
  readonly tabindex: EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
144
145
  readonly stretch: boolean;
145
- readonly closable: boolean;
146
146
  readonly editable: boolean;
147
- readonly tabPosition: EpPropMergeType<StringConstructor, "left" | "right" | "bottom" | "top", unknown>;
147
+ readonly tabPosition: EpPropMergeType<StringConstructor, "top" | "bottom" | "left" | "right", unknown>;
148
148
  readonly beforeLeave: (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>;
149
149
  readonly addable: boolean;
150
150
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
@@ -55,7 +55,7 @@ declare const tagProps: {
55
55
  readonly validator: ((val: unknown) => boolean) | undefined;
56
56
  __epPropKey: true;
57
57
  };
58
- readonly effect: EpPropFinalized<StringConstructor, "dark" | "light" | "plain", unknown, "light", boolean>;
58
+ readonly effect: EpPropFinalized<StringConstructor, "light" | "dark" | "plain", unknown, "light", boolean>;
59
59
  readonly round: BooleanConstructor;
60
60
  };
61
61
  /**
@@ -59,7 +59,7 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
59
59
  readonly tabindex: EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown, 0, boolean>;
60
60
  readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
61
61
  readonly unlinkPanels: BooleanConstructor;
62
- readonly placement: EpPropFinalized<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown, "bottom", boolean>;
62
+ readonly placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown, "bottom", boolean>;
63
63
  readonly fallbackPlacements: EpPropFinalized<(new (...args: any[]) => _popperjs_core0.Placement[]) | (() => _popperjs_core0.Placement[]) | (((new (...args: any[]) => _popperjs_core0.Placement[]) | (() => _popperjs_core0.Placement[])) | null)[], unknown, unknown, readonly ["bottom", "top", "right", "left"], boolean>;
64
64
  readonly disabledHours: {
65
65
  readonly type: vue.PropType<GetDisabledHours>;
@@ -220,7 +220,7 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
220
220
  readonly disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
221
221
  readonly placeholder: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
222
222
  readonly popperOptions: EpPropFinalized<(new (...args: any[]) => Partial<Options>) | (() => Partial<Options>) | (((new (...args: any[]) => Partial<Options>) | (() => Partial<Options>)) | null)[], unknown, unknown, () => {}, boolean>;
223
- readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown, "", boolean>;
223
+ readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown, "", boolean>;
224
224
  readonly rangeSeparator: EpPropFinalized<StringConstructor, unknown, unknown, "-", boolean>;
225
225
  readonly startPlaceholder: StringConstructor;
226
226
  readonly endPlaceholder: StringConstructor;
@@ -293,7 +293,7 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
293
293
  readonly tabindex: EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown, 0, boolean>;
294
294
  readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
295
295
  readonly unlinkPanels: BooleanConstructor;
296
- readonly placement: EpPropFinalized<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown, "bottom", boolean>;
296
+ readonly placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown, "bottom", boolean>;
297
297
  readonly fallbackPlacements: EpPropFinalized<(new (...args: any[]) => _popperjs_core0.Placement[]) | (() => _popperjs_core0.Placement[]) | (((new (...args: any[]) => _popperjs_core0.Placement[]) | (() => _popperjs_core0.Placement[])) | null)[], unknown, unknown, readonly ["bottom", "top", "right", "left"], boolean>;
298
298
  readonly disabledHours: {
299
299
  readonly type: vue.PropType<GetDisabledHours>;
@@ -454,7 +454,7 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
454
454
  readonly disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
455
455
  readonly placeholder: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
456
456
  readonly popperOptions: EpPropFinalized<(new (...args: any[]) => Partial<Options>) | (() => Partial<Options>) | (((new (...args: any[]) => Partial<Options>) | (() => Partial<Options>)) | null)[], unknown, unknown, () => {}, boolean>;
457
- readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown, "", boolean>;
457
+ readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown, "", boolean>;
458
458
  readonly rangeSeparator: EpPropFinalized<StringConstructor, unknown, unknown, "-", boolean>;
459
459
  readonly startPlaceholder: StringConstructor;
460
460
  readonly endPlaceholder: StringConstructor;
@@ -483,18 +483,18 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
483
483
  "onVisible-change"?: ((...args: any[]) => any) | undefined;
484
484
  }>, {
485
485
  readonly type: string;
486
- readonly modelValue: EpPropMergeType<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown>;
486
+ readonly modelValue: EpPropMergeType<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown>;
487
+ readonly placement: EpPropMergeType<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown>;
487
488
  readonly disabled: EpPropMergeType<BooleanConstructor, unknown, unknown>;
488
- readonly tabindex: EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown>;
489
- readonly validateEvent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
490
489
  readonly placeholder: string;
491
- readonly placement: EpPropMergeType<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown>;
492
- readonly popperOptions: Partial<Options>;
493
490
  readonly readonly: boolean;
494
491
  readonly clearable: EpPropMergeType<BooleanConstructor, unknown, unknown>;
495
492
  readonly clearIcon: EpPropMergeType<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown>;
496
493
  readonly prefixIcon: EpPropMergeType<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown>;
494
+ readonly tabindex: EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown>;
495
+ readonly validateEvent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
497
496
  readonly fallbackPlacements: _popperjs_core0.Placement[];
497
+ readonly popperOptions: Partial<Options>;
498
498
  readonly valueOnClear: EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown>;
499
499
  readonly automaticDropdown: EpPropMergeType<BooleanConstructor, unknown, unknown>;
500
500
  readonly editable: EpPropMergeType<BooleanConstructor, unknown, unknown>;
@@ -41,7 +41,7 @@ declare const timePickerDefaultProps: {
41
41
  readonly tabindex: EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown, 0, boolean>;
42
42
  readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
43
43
  readonly unlinkPanels: BooleanConstructor;
44
- readonly placement: EpPropFinalized<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement$1) | (((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement$1)) | null)[], Placement$1, unknown, "bottom", boolean>;
44
+ readonly placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement$1) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement$1)) | null)[], Placement$1, unknown, "bottom", boolean>;
45
45
  readonly fallbackPlacements: EpPropFinalized<(new (...args: any[]) => Placement$1[]) | (() => Placement$1[]) | (((new (...args: any[]) => Placement$1[]) | (() => Placement$1[])) | null)[], unknown, unknown, readonly ["bottom", "top", "right", "left"], boolean>;
46
46
  readonly disabledHours: {
47
47
  readonly type: vue.PropType<GetDisabledHours>;
@@ -202,7 +202,7 @@ declare const timePickerDefaultProps: {
202
202
  readonly disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
203
203
  readonly placeholder: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
204
204
  readonly popperOptions: EpPropFinalized<(new (...args: any[]) => Partial<Options>) | (() => Partial<Options>) | (((new (...args: any[]) => Partial<Options>) | (() => Partial<Options>)) | null)[], unknown, unknown, () => {}, boolean>;
205
- readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown, "", boolean>;
205
+ readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown, "", boolean>;
206
206
  readonly rangeSeparator: EpPropFinalized<StringConstructor, unknown, unknown, "-", boolean>;
207
207
  readonly startPlaceholder: StringConstructor;
208
208
  readonly endPlaceholder: StringConstructor;
@@ -36,7 +36,7 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
36
36
  tabindex: EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown, 0, boolean>;
37
37
  validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
38
38
  unlinkPanels: BooleanConstructor;
39
- placement: EpPropFinalized<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown, "bottom", boolean>;
39
+ placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown, "bottom", boolean>;
40
40
  fallbackPlacements: EpPropFinalized<(new (...args: any[]) => Placement[]) | (() => Placement[]) | (((new (...args: any[]) => Placement[]) | (() => Placement[])) | null)[], unknown, unknown, readonly ["bottom", "top", "right", "left"], boolean>;
41
41
  disabledHours: {
42
42
  readonly type: vue.PropType<GetDisabledHours>;
@@ -197,7 +197,7 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
197
197
  disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
198
198
  placeholder: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
199
199
  popperOptions: EpPropFinalized<(new (...args: any[]) => Partial<Options>) | (() => Partial<Options>) | (((new (...args: any[]) => Partial<Options>) | (() => Partial<Options>)) | null)[], unknown, unknown, () => {}, boolean>;
200
- modelValue: EpPropFinalized<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown, "", boolean>;
200
+ modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown, "", boolean>;
201
201
  rangeSeparator: EpPropFinalized<StringConstructor, unknown, unknown, "-", boolean>;
202
202
  startPlaceholder: StringConstructor;
203
203
  endPlaceholder: StringConstructor;
@@ -242,7 +242,7 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
242
242
  tabindex: EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown, 0, boolean>;
243
243
  validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
244
244
  unlinkPanels: BooleanConstructor;
245
- placement: EpPropFinalized<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown, "bottom", boolean>;
245
+ placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown, "bottom", boolean>;
246
246
  fallbackPlacements: EpPropFinalized<(new (...args: any[]) => Placement[]) | (() => Placement[]) | (((new (...args: any[]) => Placement[]) | (() => Placement[])) | null)[], unknown, unknown, readonly ["bottom", "top", "right", "left"], boolean>;
247
247
  disabledHours: {
248
248
  readonly type: vue.PropType<GetDisabledHours>;
@@ -403,7 +403,7 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
403
403
  disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
404
404
  placeholder: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
405
405
  popperOptions: EpPropFinalized<(new (...args: any[]) => Partial<Options>) | (() => Partial<Options>) | (((new (...args: any[]) => Partial<Options>) | (() => Partial<Options>)) | null)[], unknown, unknown, () => {}, boolean>;
406
- modelValue: EpPropFinalized<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown, "", boolean>;
406
+ modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown, "", boolean>;
407
407
  rangeSeparator: EpPropFinalized<StringConstructor, unknown, unknown, "-", boolean>;
408
408
  startPlaceholder: StringConstructor;
409
409
  endPlaceholder: StringConstructor;
@@ -423,18 +423,18 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
423
423
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
424
424
  }>, {
425
425
  type: string;
426
- modelValue: EpPropMergeType<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown>;
426
+ modelValue: EpPropMergeType<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown>;
427
+ placement: EpPropMergeType<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown>;
427
428
  disabled: EpPropMergeType<BooleanConstructor, unknown, unknown>;
428
- tabindex: EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown>;
429
- validateEvent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
430
429
  placeholder: string;
431
- placement: EpPropMergeType<(new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "auto" | "left" | "right" | "bottom" | "top" | "bottom-start" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown>;
432
- popperOptions: Partial<Options>;
433
430
  readonly: boolean;
434
431
  clearable: EpPropMergeType<BooleanConstructor, unknown, unknown>;
435
432
  clearIcon: EpPropMergeType<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown>;
436
433
  prefixIcon: EpPropMergeType<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown>;
434
+ tabindex: EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown>;
435
+ validateEvent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
437
436
  fallbackPlacements: Placement[];
437
+ popperOptions: Partial<Options>;
438
438
  valueOnClear: EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown>;
439
439
  automaticDropdown: EpPropMergeType<BooleanConstructor, unknown, unknown>;
440
440
  editable: EpPropMergeType<BooleanConstructor, unknown, unknown>;
@@ -28,15 +28,15 @@ declare const __VLS_export: vue.DefineComponent<TimeSelectProps, {
28
28
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
29
29
  onClear?: ((...args: any[]) => any) | undefined;
30
30
  }>, {
31
- disabled: boolean;
32
31
  effect: PopperEffect;
33
32
  popperClass: string;
34
- end: string;
35
- start: string;
36
33
  popperStyle: string | vue.CSSProperties;
34
+ disabled: boolean;
37
35
  clearable: boolean;
38
36
  clearIcon: IconPropType;
39
37
  prefixIcon: IconPropType;
38
+ end: string;
39
+ start: string;
40
40
  valueOnClear: string | number | boolean | Function | null;
41
41
  editable: boolean;
42
42
  format: string;
@@ -51,7 +51,7 @@ declare const timelineItemProps: {
51
51
  readonly timestamp: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
52
52
  readonly hideTimestamp: BooleanConstructor;
53
53
  readonly center: BooleanConstructor;
54
- readonly placement: EpPropFinalized<StringConstructor, "bottom" | "top", unknown, "bottom", boolean>;
54
+ readonly placement: EpPropFinalized<StringConstructor, "top" | "bottom", unknown, "bottom", boolean>;
55
55
  readonly type: EpPropFinalized<StringConstructor, "info" | "primary" | "success" | "warning" | "danger", unknown, "", boolean>;
56
56
  readonly color: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
57
57
  readonly size: EpPropFinalized<StringConstructor, "large" | "normal", unknown, "normal", boolean>;
@@ -10,8 +10,8 @@ type __VLS_Slots = {} & {
10
10
  };
11
11
  declare const __VLS_base: vue.DefineComponent<TimelineItemProps, {}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<TimelineItemProps> & Readonly<{}>, {
12
12
  type: "primary" | "success" | "warning" | "danger" | "info" | "";
13
- size: "normal" | "large";
14
13
  placement: "top" | "bottom";
14
+ size: "normal" | "large";
15
15
  color: string;
16
16
  timestamp: string;
17
17
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -19,18 +19,15 @@ declare const __VLS_base: vue.DefineComponent<ElTooltipContentProps, {
19
19
  */
20
20
  isFocusInsideContent: (event?: FocusEvent) => boolean | undefined;
21
21
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<ElTooltipContentProps> & Readonly<{}>, {
22
- effect: PopperEffect;
23
- enterable: boolean;
24
- hideAfter: number;
25
22
  offset: number;
23
+ teleported: boolean;
24
+ effect: PopperEffect;
26
25
  placement: Placement;
27
- popperOptions: Partial<Options>;
28
- showAfter: number;
26
+ popperStyle: string | false | vue.CSSProperties | vue.StyleValue[] | null;
29
27
  visible: boolean | null;
30
28
  content: string;
31
29
  style: string | false | vue.CSSProperties | vue.StyleValue[] | null;
32
- teleported: boolean;
33
- popperStyle: string | false | vue.CSSProperties | vue.StyleValue[] | null;
30
+ enterable: boolean;
34
31
  pure: boolean;
35
32
  focusOnShow: boolean;
36
33
  trapping: boolean;
@@ -39,8 +36,11 @@ declare const __VLS_base: vue.DefineComponent<ElTooltipContentProps, {
39
36
  loop: boolean;
40
37
  boundariesPadding: number;
41
38
  gpuAcceleration: boolean;
39
+ popperOptions: Partial<Options>;
42
40
  strategy: "fixed" | "absolute";
43
41
  arrowOffset: number;
42
+ showAfter: number;
43
+ hideAfter: number;
44
44
  autoClose: number;
45
45
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
46
46
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -93,9 +93,6 @@ var content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vu
93
93
  }, { detectIframe: true });
94
94
  }
95
95
  }, { flush: "post" });
96
- (0, vue.watch)(() => props.content, () => {
97
- contentRef.value?.updatePopper?.();
98
- });
99
96
  __expose({
100
97
  contentRef,
101
98
  isFocusInsideContent
@@ -1 +1 @@
1
- {"version":3,"file":"content.vue_vue_type_script_setup_true_lang.js","names":["$attrs"],"sources":["../../../../../../packages/components/tooltip/src/content.vue"],"sourcesContent":["<template>\n <el-teleport :disabled=\"!teleported\" :to=\"appendTo\">\n <transition\n v-if=\"shouldRender || !ariaHidden\"\n :name=\"transitionClass\"\n :appear=\"!persistentRef\"\n @after-leave=\"onTransitionLeave\"\n @before-enter=\"onBeforeEnter\"\n @after-enter=\"onAfterShow\"\n @before-leave=\"onBeforeLeave\"\n >\n <el-popper-content\n v-show=\"shouldShow\"\n :id=\"id\"\n ref=\"contentRef\"\n v-bind=\"$attrs\"\n :aria-label=\"ariaLabel\"\n :aria-hidden=\"ariaHidden\"\n :boundaries-padding=\"boundariesPadding\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"gpuAcceleration\"\n :offset=\"offset\"\n :placement=\"placement\"\n :popper-options=\"popperOptions\"\n :arrow-offset=\"arrowOffset\"\n :strategy=\"strategy\"\n :effect=\"effect\"\n :enterable=\"enterable\"\n :pure=\"pure\"\n :popper-class=\"popperClass\"\n :popper-style=\"[popperStyle!, contentStyle]\"\n :reference-el=\"referenceEl\"\n :trigger-target-el=\"triggerTargetEl\"\n :visible=\"shouldShow\"\n :z-index=\"zIndex\"\n :loop=\"loop\"\n @mouseenter=\"onContentEnter\"\n @mouseleave=\"onContentLeave\"\n @blur=\"onBlur\"\n @close=\"onClose\"\n >\n <slot />\n </el-popper-content>\n </transition>\n </el-teleport>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, ref, unref, watch } from 'vue'\nimport { computedEager, onClickOutside } from '@vueuse/core'\nimport { useNamespace, usePopperContainerId } from '@element-plus/hooks'\nimport {\n castArray,\n composeEventHandlers,\n focusElement,\n} from '@element-plus/utils'\nimport { ElPopperContent } from '@element-plus/components/popper'\nimport ElTeleport from '@element-plus/components/teleport'\nimport { TOOLTIP_INJECTION_KEY } from './constants'\nimport { isTriggerType } from './utils'\nimport { useTooltipContentPropsDefaults } from './content'\n\nimport type { ElTooltipContentProps } from './content'\nimport type { PopperContentInstance } from '@element-plus/components/popper'\n\ndefineOptions({\n name: 'ElTooltipContent',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(\n defineProps<ElTooltipContentProps>(),\n useTooltipContentPropsDefaults\n)\n\nconst { selector } = usePopperContainerId()\nconst ns = useNamespace('tooltip')\n\nconst contentRef = ref<PopperContentInstance>()\nconst popperContentRef = computedEager(() => contentRef.value?.popperContentRef)\nlet stopHandle: ReturnType<typeof onClickOutside>\nconst {\n controlled,\n id,\n open,\n trigger,\n onClose,\n onOpen,\n onShow,\n onHide,\n onBeforeShow,\n onBeforeHide,\n} = inject(TOOLTIP_INJECTION_KEY, undefined)!\nconst transitionClass = computed(() => {\n return props.transition || `${ns.namespace.value}-fade-in-linear`\n})\nconst persistentRef = computed(() => {\n // For testing, we would always want the content to be rendered\n // to the DOM, so we need to return true here.\n if (process.env.NODE_ENV === 'test') {\n if (!process.env.RUN_TEST_WITH_PERSISTENT) {\n return true\n }\n }\n return props.persistent\n})\n\nonBeforeUnmount(() => {\n stopHandle?.()\n})\n\nconst shouldRender = computed(() => {\n return unref(persistentRef) ? true : unref(open)\n})\n\nconst shouldShow = computed(() => {\n return props.disabled ? false : unref(open)\n})\n\nconst appendTo = computed(() => {\n return props.appendTo || selector.value\n})\n\nconst contentStyle = computed(() => props.style ?? {})\n\nconst ariaHidden = ref(true)\n\nconst onTransitionLeave = () => {\n onHide()\n isFocusInsideContent() && focusElement(document.body, { preventScroll: true })\n ariaHidden.value = true\n}\n\nconst stopWhenControlled = () => {\n if (unref(controlled)) return true\n}\n\nconst onContentEnter = composeEventHandlers(stopWhenControlled, () => {\n if (props.enterable && isTriggerType(unref(trigger), 'hover')) {\n onOpen()\n }\n})\n\nconst onContentLeave = composeEventHandlers(stopWhenControlled, () => {\n if (isTriggerType(unref(trigger), 'hover')) {\n onClose()\n }\n})\n\nconst onBeforeEnter = () => {\n contentRef.value?.updatePopper?.()\n onBeforeShow?.()\n}\n\nconst onBeforeLeave = () => {\n onBeforeHide?.()\n}\n\nconst onAfterShow = () => {\n onShow()\n}\n\nconst onBlur = () => {\n if (!props.virtualTriggering) {\n onClose()\n }\n}\n\nconst isFocusInsideContent = (event?: FocusEvent) => {\n const popperContent: HTMLElement | undefined =\n contentRef.value?.popperContentRef\n const activeElement = (event?.relatedTarget as Node) || document.activeElement\n\n return popperContent?.contains(activeElement)\n}\n\nwatch(\n () => unref(open),\n (val) => {\n if (!val) {\n stopHandle?.()\n } else {\n ariaHidden.value = false\n stopHandle = onClickOutside(\n popperContentRef,\n () => {\n if (unref(controlled)) return\n const needClose = castArray(unref(trigger)).every((item) => {\n return item !== 'hover' && item !== 'focus'\n })\n if (needClose) {\n onClose()\n }\n },\n { detectIframe: true }\n )\n }\n },\n {\n flush: 'post',\n }\n)\n\nwatch(\n () => props.content,\n () => {\n contentRef.value?.updatePopper?.()\n }\n)\n\ndefineExpose({\n /**\n * @description el-popper-content component instance\n */\n contentRef,\n /**\n * @description validate current focus event is trigger inside el-popper-content\n */\n isFocusInsideContent,\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAsEA,MAAM,QAAQ;EAKd,MAAM,EAAE,aAAa,sCAAqB;EAC1C,MAAM,KAAK,6BAAa,UAAS;EAEjC,MAAM,2BAAwC;EAC9C,MAAM,yDAAuC,WAAW,OAAO,iBAAgB;EAC/E,IAAI;EACJ,MAAM,EACJ,YACA,IACA,MACA,SACA,SACA,QACA,QACA,QACA,cACA,iCACS,yCAAuB,OAAU;EAC5C,MAAM,0CAAiC;AACrC,UAAO,MAAM,cAAc,GAAG,GAAG,UAAU,MAAM;IAClD;EACD,MAAM,wCAA+B;AAGnC,OAAI,QAAQ,IAAI,aAAa,QAC3B;QAAI,CAAC,QAAQ,IAAI,yBACf,QAAO;;AAGX,UAAO,MAAM;IACd;AAED,iCAAsB;AACpB,iBAAa;IACd;EAED,MAAM,uCAA8B;AAClC,yBAAa,cAAc,GAAG,sBAAa,KAAI;IAChD;EAED,MAAM,qCAA4B;AAChC,UAAO,MAAM,WAAW,uBAAc,KAAI;IAC3C;EAED,MAAM,mCAA0B;AAC9B,UAAO,MAAM,YAAY,SAAS;IACnC;EAED,MAAM,uCAA8B,MAAM,SAAS,EAAE,CAAA;EAErD,MAAM,0BAAiB,KAAI;EAE3B,MAAM,0BAA0B;AAC9B,WAAO;AACP,yBAAsB,IAAI,0BAAa,SAAS,MAAM,EAAE,eAAe,MAAM,CAAA;AAC7E,cAAW,QAAQ;;EAGrB,MAAM,2BAA2B;AAC/B,sBAAU,WAAW,CAAE,QAAO;;EAGhC,MAAM,iBAAiB,mCAAqB,0BAA0B;AACpE,OAAI,MAAM,aAAa,2CAAoB,QAAQ,EAAE,QAAQ,CAC3D,SAAO;IAEV;EAED,MAAM,iBAAiB,mCAAqB,0BAA0B;AACpE,OAAI,2CAAoB,QAAQ,EAAE,QAAQ,CACxC,UAAQ;IAEX;EAED,MAAM,sBAAsB;AAC1B,cAAW,OAAO,gBAAe;AACjC,mBAAe;;EAGjB,MAAM,sBAAsB;AAC1B,mBAAe;;EAGjB,MAAM,oBAAoB;AACxB,WAAO;;EAGT,MAAM,eAAe;AACnB,OAAI,CAAC,MAAM,kBACT,UAAQ;;EAIZ,MAAM,wBAAwB,UAAuB;GACnD,MAAM,gBACJ,WAAW,OAAO;GACpB,MAAM,gBAAiB,OAAO,iBAA0B,SAAS;AAEjE,UAAO,eAAe,SAAS,cAAa;;AAG9C,sCACc,KAAK,GAChB,QAAQ;AACP,OAAI,CAAC,IACH,eAAa;QACR;AACL,eAAW,QAAQ;AACnB,kDACE,wBACM;AACJ,wBAAU,WAAW,CAAE;AAIvB,SAHkB,wCAAgB,QAAQ,CAAC,CAAC,OAAO,SAAS;AAC1D,aAAO,SAAS,WAAW,SAAS;OACrC,CAEC,UAAQ;OAGZ,EAAE,cAAc,MAAK,CACvB;;KAGJ,EACE,OAAO,QACT,CACF;AAEA,uBACQ,MAAM,eACN;AACJ,cAAW,OAAO,gBAAe;IAErC;AAEA,WAAa;GAIX;GAIA;GACD,CAAA;;oEA/Ke,yBAAA,EAAA;IA3CA,UAAQ,CAAG,QAAA;IAAa,IAAI,SAAA;;oCA0C3B,CAxCL,aAAA,SAAY,CAAK,WAAA,oDAwCZ,gBAAA;;KAvCV,MAAM,gBAAA;KACN,QAAM,CAAG,cAAA;KACT,cAAa;KACC;KACd,cAAa;KACC;KAPjB,WAAA;;qCAwCsB,6DAAA,wBAAA,sBAAA;MA7BjB,mBAAI,GAAE;eACH;MAAJ,KAAI;QACIA,KAAAA,QAAM;MACb,cAAY,QAAA;MACZ,eAAa,WAAA;MACb,sBAAoB,QAAA;MACpB,uBAAqB,QAAA;MACrB,oBAAkB,QAAA;MAClB,QAAQ,QAAA;MACR,WAAW,QAAA;MACX,kBAAgB,QAAA;MAChB,gBAAc,QAAA;MACd,UAAU,QAAA;MACV,QAAQ,QAAA;MACR,WAAW,QAAA;MACX,MAAM,QAAA;MACN,gBAAc,QAAA;MACd,gBAAY,CAAG,QAAA,aAAc,aAAA,MAAY;MACzC,gBAAc,QAAA;MACd,qBAAmB,QAAA;MACnB,SAAS,WAAA;MACT,WAAS,QAAA;MACT,MAAM,QAAA;MACN,6BAAY,eAAc;MAC1B,6BAAY,eAAc;MACpB;MACN,wBAAO,QAAA;;sCAEA,qBAAA,KAAA,QAAA,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;sBA7BA,WAAA,MAAU"}
1
+ {"version":3,"file":"content.vue_vue_type_script_setup_true_lang.js","names":["$attrs"],"sources":["../../../../../../packages/components/tooltip/src/content.vue"],"sourcesContent":["<template>\n <el-teleport :disabled=\"!teleported\" :to=\"appendTo\">\n <transition\n v-if=\"shouldRender || !ariaHidden\"\n :name=\"transitionClass\"\n :appear=\"!persistentRef\"\n @after-leave=\"onTransitionLeave\"\n @before-enter=\"onBeforeEnter\"\n @after-enter=\"onAfterShow\"\n @before-leave=\"onBeforeLeave\"\n >\n <el-popper-content\n v-show=\"shouldShow\"\n :id=\"id\"\n ref=\"contentRef\"\n v-bind=\"$attrs\"\n :aria-label=\"ariaLabel\"\n :aria-hidden=\"ariaHidden\"\n :boundaries-padding=\"boundariesPadding\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"gpuAcceleration\"\n :offset=\"offset\"\n :placement=\"placement\"\n :popper-options=\"popperOptions\"\n :arrow-offset=\"arrowOffset\"\n :strategy=\"strategy\"\n :effect=\"effect\"\n :enterable=\"enterable\"\n :pure=\"pure\"\n :popper-class=\"popperClass\"\n :popper-style=\"[popperStyle!, contentStyle]\"\n :reference-el=\"referenceEl\"\n :trigger-target-el=\"triggerTargetEl\"\n :visible=\"shouldShow\"\n :z-index=\"zIndex\"\n :loop=\"loop\"\n @mouseenter=\"onContentEnter\"\n @mouseleave=\"onContentLeave\"\n @blur=\"onBlur\"\n @close=\"onClose\"\n >\n <slot />\n </el-popper-content>\n </transition>\n </el-teleport>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, ref, unref, watch } from 'vue'\nimport { computedEager, onClickOutside } from '@vueuse/core'\nimport { useNamespace, usePopperContainerId } from '@element-plus/hooks'\nimport {\n castArray,\n composeEventHandlers,\n focusElement,\n} from '@element-plus/utils'\nimport { ElPopperContent } from '@element-plus/components/popper'\nimport ElTeleport from '@element-plus/components/teleport'\nimport { TOOLTIP_INJECTION_KEY } from './constants'\nimport { isTriggerType } from './utils'\nimport { useTooltipContentPropsDefaults } from './content'\n\nimport type { ElTooltipContentProps } from './content'\nimport type { PopperContentInstance } from '@element-plus/components/popper'\n\ndefineOptions({\n name: 'ElTooltipContent',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(\n defineProps<ElTooltipContentProps>(),\n useTooltipContentPropsDefaults\n)\n\nconst { selector } = usePopperContainerId()\nconst ns = useNamespace('tooltip')\n\nconst contentRef = ref<PopperContentInstance>()\nconst popperContentRef = computedEager(() => contentRef.value?.popperContentRef)\nlet stopHandle: ReturnType<typeof onClickOutside>\nconst {\n controlled,\n id,\n open,\n trigger,\n onClose,\n onOpen,\n onShow,\n onHide,\n onBeforeShow,\n onBeforeHide,\n} = inject(TOOLTIP_INJECTION_KEY, undefined)!\nconst transitionClass = computed(() => {\n return props.transition || `${ns.namespace.value}-fade-in-linear`\n})\nconst persistentRef = computed(() => {\n // For testing, we would always want the content to be rendered\n // to the DOM, so we need to return true here.\n if (process.env.NODE_ENV === 'test') {\n if (!process.env.RUN_TEST_WITH_PERSISTENT) {\n return true\n }\n }\n return props.persistent\n})\n\nonBeforeUnmount(() => {\n stopHandle?.()\n})\n\nconst shouldRender = computed(() => {\n return unref(persistentRef) ? true : unref(open)\n})\n\nconst shouldShow = computed(() => {\n return props.disabled ? false : unref(open)\n})\n\nconst appendTo = computed(() => {\n return props.appendTo || selector.value\n})\n\nconst contentStyle = computed(() => props.style ?? {})\n\nconst ariaHidden = ref(true)\n\nconst onTransitionLeave = () => {\n onHide()\n isFocusInsideContent() && focusElement(document.body, { preventScroll: true })\n ariaHidden.value = true\n}\n\nconst stopWhenControlled = () => {\n if (unref(controlled)) return true\n}\n\nconst onContentEnter = composeEventHandlers(stopWhenControlled, () => {\n if (props.enterable && isTriggerType(unref(trigger), 'hover')) {\n onOpen()\n }\n})\n\nconst onContentLeave = composeEventHandlers(stopWhenControlled, () => {\n if (isTriggerType(unref(trigger), 'hover')) {\n onClose()\n }\n})\n\nconst onBeforeEnter = () => {\n contentRef.value?.updatePopper?.()\n onBeforeShow?.()\n}\n\nconst onBeforeLeave = () => {\n onBeforeHide?.()\n}\n\nconst onAfterShow = () => {\n onShow()\n}\n\nconst onBlur = () => {\n if (!props.virtualTriggering) {\n onClose()\n }\n}\n\nconst isFocusInsideContent = (event?: FocusEvent) => {\n const popperContent: HTMLElement | undefined =\n contentRef.value?.popperContentRef\n const activeElement = (event?.relatedTarget as Node) || document.activeElement\n\n return popperContent?.contains(activeElement)\n}\n\nwatch(\n () => unref(open),\n (val) => {\n if (!val) {\n stopHandle?.()\n } else {\n ariaHidden.value = false\n stopHandle = onClickOutside(\n popperContentRef,\n () => {\n if (unref(controlled)) return\n const needClose = castArray(unref(trigger)).every((item) => {\n return item !== 'hover' && item !== 'focus'\n })\n if (needClose) {\n onClose()\n }\n },\n { detectIframe: true }\n )\n }\n },\n {\n flush: 'post',\n }\n)\n\ndefineExpose({\n /**\n * @description el-popper-content component instance\n */\n contentRef,\n /**\n * @description validate current focus event is trigger inside el-popper-content\n */\n isFocusInsideContent,\n})\n</script>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"content2.js","names":[],"sources":["../../../../../../packages/components/tooltip/src/content.vue"],"sourcesContent":["<template>\n <el-teleport :disabled=\"!teleported\" :to=\"appendTo\">\n <transition\n v-if=\"shouldRender || !ariaHidden\"\n :name=\"transitionClass\"\n :appear=\"!persistentRef\"\n @after-leave=\"onTransitionLeave\"\n @before-enter=\"onBeforeEnter\"\n @after-enter=\"onAfterShow\"\n @before-leave=\"onBeforeLeave\"\n >\n <el-popper-content\n v-show=\"shouldShow\"\n :id=\"id\"\n ref=\"contentRef\"\n v-bind=\"$attrs\"\n :aria-label=\"ariaLabel\"\n :aria-hidden=\"ariaHidden\"\n :boundaries-padding=\"boundariesPadding\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"gpuAcceleration\"\n :offset=\"offset\"\n :placement=\"placement\"\n :popper-options=\"popperOptions\"\n :arrow-offset=\"arrowOffset\"\n :strategy=\"strategy\"\n :effect=\"effect\"\n :enterable=\"enterable\"\n :pure=\"pure\"\n :popper-class=\"popperClass\"\n :popper-style=\"[popperStyle!, contentStyle]\"\n :reference-el=\"referenceEl\"\n :trigger-target-el=\"triggerTargetEl\"\n :visible=\"shouldShow\"\n :z-index=\"zIndex\"\n :loop=\"loop\"\n @mouseenter=\"onContentEnter\"\n @mouseleave=\"onContentLeave\"\n @blur=\"onBlur\"\n @close=\"onClose\"\n >\n <slot />\n </el-popper-content>\n </transition>\n </el-teleport>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, ref, unref, watch } from 'vue'\nimport { computedEager, onClickOutside } from '@vueuse/core'\nimport { useNamespace, usePopperContainerId } from '@element-plus/hooks'\nimport {\n castArray,\n composeEventHandlers,\n focusElement,\n} from '@element-plus/utils'\nimport { ElPopperContent } from '@element-plus/components/popper'\nimport ElTeleport from '@element-plus/components/teleport'\nimport { TOOLTIP_INJECTION_KEY } from './constants'\nimport { isTriggerType } from './utils'\nimport { useTooltipContentPropsDefaults } from './content'\n\nimport type { ElTooltipContentProps } from './content'\nimport type { PopperContentInstance } from '@element-plus/components/popper'\n\ndefineOptions({\n name: 'ElTooltipContent',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(\n defineProps<ElTooltipContentProps>(),\n useTooltipContentPropsDefaults\n)\n\nconst { selector } = usePopperContainerId()\nconst ns = useNamespace('tooltip')\n\nconst contentRef = ref<PopperContentInstance>()\nconst popperContentRef = computedEager(() => contentRef.value?.popperContentRef)\nlet stopHandle: ReturnType<typeof onClickOutside>\nconst {\n controlled,\n id,\n open,\n trigger,\n onClose,\n onOpen,\n onShow,\n onHide,\n onBeforeShow,\n onBeforeHide,\n} = inject(TOOLTIP_INJECTION_KEY, undefined)!\nconst transitionClass = computed(() => {\n return props.transition || `${ns.namespace.value}-fade-in-linear`\n})\nconst persistentRef = computed(() => {\n // For testing, we would always want the content to be rendered\n // to the DOM, so we need to return true here.\n if (process.env.NODE_ENV === 'test') {\n if (!process.env.RUN_TEST_WITH_PERSISTENT) {\n return true\n }\n }\n return props.persistent\n})\n\nonBeforeUnmount(() => {\n stopHandle?.()\n})\n\nconst shouldRender = computed(() => {\n return unref(persistentRef) ? true : unref(open)\n})\n\nconst shouldShow = computed(() => {\n return props.disabled ? false : unref(open)\n})\n\nconst appendTo = computed(() => {\n return props.appendTo || selector.value\n})\n\nconst contentStyle = computed(() => props.style ?? {})\n\nconst ariaHidden = ref(true)\n\nconst onTransitionLeave = () => {\n onHide()\n isFocusInsideContent() && focusElement(document.body, { preventScroll: true })\n ariaHidden.value = true\n}\n\nconst stopWhenControlled = () => {\n if (unref(controlled)) return true\n}\n\nconst onContentEnter = composeEventHandlers(stopWhenControlled, () => {\n if (props.enterable && isTriggerType(unref(trigger), 'hover')) {\n onOpen()\n }\n})\n\nconst onContentLeave = composeEventHandlers(stopWhenControlled, () => {\n if (isTriggerType(unref(trigger), 'hover')) {\n onClose()\n }\n})\n\nconst onBeforeEnter = () => {\n contentRef.value?.updatePopper?.()\n onBeforeShow?.()\n}\n\nconst onBeforeLeave = () => {\n onBeforeHide?.()\n}\n\nconst onAfterShow = () => {\n onShow()\n}\n\nconst onBlur = () => {\n if (!props.virtualTriggering) {\n onClose()\n }\n}\n\nconst isFocusInsideContent = (event?: FocusEvent) => {\n const popperContent: HTMLElement | undefined =\n contentRef.value?.popperContentRef\n const activeElement = (event?.relatedTarget as Node) || document.activeElement\n\n return popperContent?.contains(activeElement)\n}\n\nwatch(\n () => unref(open),\n (val) => {\n if (!val) {\n stopHandle?.()\n } else {\n ariaHidden.value = false\n stopHandle = onClickOutside(\n popperContentRef,\n () => {\n if (unref(controlled)) return\n const needClose = castArray(unref(trigger)).every((item) => {\n return item !== 'hover' && item !== 'focus'\n })\n if (needClose) {\n onClose()\n }\n },\n { detectIframe: true }\n )\n }\n },\n {\n flush: 'post',\n }\n)\n\nwatch(\n () => props.content,\n () => {\n contentRef.value?.updatePopper?.()\n }\n)\n\ndefineExpose({\n /**\n * @description el-popper-content component instance\n */\n contentRef,\n /**\n * @description validate current focus event is trigger inside el-popper-content\n */\n isFocusInsideContent,\n})\n</script>\n"],"mappings":""}
1
+ {"version":3,"file":"content2.js","names":[],"sources":["../../../../../../packages/components/tooltip/src/content.vue"],"sourcesContent":["<template>\n <el-teleport :disabled=\"!teleported\" :to=\"appendTo\">\n <transition\n v-if=\"shouldRender || !ariaHidden\"\n :name=\"transitionClass\"\n :appear=\"!persistentRef\"\n @after-leave=\"onTransitionLeave\"\n @before-enter=\"onBeforeEnter\"\n @after-enter=\"onAfterShow\"\n @before-leave=\"onBeforeLeave\"\n >\n <el-popper-content\n v-show=\"shouldShow\"\n :id=\"id\"\n ref=\"contentRef\"\n v-bind=\"$attrs\"\n :aria-label=\"ariaLabel\"\n :aria-hidden=\"ariaHidden\"\n :boundaries-padding=\"boundariesPadding\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"gpuAcceleration\"\n :offset=\"offset\"\n :placement=\"placement\"\n :popper-options=\"popperOptions\"\n :arrow-offset=\"arrowOffset\"\n :strategy=\"strategy\"\n :effect=\"effect\"\n :enterable=\"enterable\"\n :pure=\"pure\"\n :popper-class=\"popperClass\"\n :popper-style=\"[popperStyle!, contentStyle]\"\n :reference-el=\"referenceEl\"\n :trigger-target-el=\"triggerTargetEl\"\n :visible=\"shouldShow\"\n :z-index=\"zIndex\"\n :loop=\"loop\"\n @mouseenter=\"onContentEnter\"\n @mouseleave=\"onContentLeave\"\n @blur=\"onBlur\"\n @close=\"onClose\"\n >\n <slot />\n </el-popper-content>\n </transition>\n </el-teleport>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, ref, unref, watch } from 'vue'\nimport { computedEager, onClickOutside } from '@vueuse/core'\nimport { useNamespace, usePopperContainerId } from '@element-plus/hooks'\nimport {\n castArray,\n composeEventHandlers,\n focusElement,\n} from '@element-plus/utils'\nimport { ElPopperContent } from '@element-plus/components/popper'\nimport ElTeleport from '@element-plus/components/teleport'\nimport { TOOLTIP_INJECTION_KEY } from './constants'\nimport { isTriggerType } from './utils'\nimport { useTooltipContentPropsDefaults } from './content'\n\nimport type { ElTooltipContentProps } from './content'\nimport type { PopperContentInstance } from '@element-plus/components/popper'\n\ndefineOptions({\n name: 'ElTooltipContent',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(\n defineProps<ElTooltipContentProps>(),\n useTooltipContentPropsDefaults\n)\n\nconst { selector } = usePopperContainerId()\nconst ns = useNamespace('tooltip')\n\nconst contentRef = ref<PopperContentInstance>()\nconst popperContentRef = computedEager(() => contentRef.value?.popperContentRef)\nlet stopHandle: ReturnType<typeof onClickOutside>\nconst {\n controlled,\n id,\n open,\n trigger,\n onClose,\n onOpen,\n onShow,\n onHide,\n onBeforeShow,\n onBeforeHide,\n} = inject(TOOLTIP_INJECTION_KEY, undefined)!\nconst transitionClass = computed(() => {\n return props.transition || `${ns.namespace.value}-fade-in-linear`\n})\nconst persistentRef = computed(() => {\n // For testing, we would always want the content to be rendered\n // to the DOM, so we need to return true here.\n if (process.env.NODE_ENV === 'test') {\n if (!process.env.RUN_TEST_WITH_PERSISTENT) {\n return true\n }\n }\n return props.persistent\n})\n\nonBeforeUnmount(() => {\n stopHandle?.()\n})\n\nconst shouldRender = computed(() => {\n return unref(persistentRef) ? true : unref(open)\n})\n\nconst shouldShow = computed(() => {\n return props.disabled ? false : unref(open)\n})\n\nconst appendTo = computed(() => {\n return props.appendTo || selector.value\n})\n\nconst contentStyle = computed(() => props.style ?? {})\n\nconst ariaHidden = ref(true)\n\nconst onTransitionLeave = () => {\n onHide()\n isFocusInsideContent() && focusElement(document.body, { preventScroll: true })\n ariaHidden.value = true\n}\n\nconst stopWhenControlled = () => {\n if (unref(controlled)) return true\n}\n\nconst onContentEnter = composeEventHandlers(stopWhenControlled, () => {\n if (props.enterable && isTriggerType(unref(trigger), 'hover')) {\n onOpen()\n }\n})\n\nconst onContentLeave = composeEventHandlers(stopWhenControlled, () => {\n if (isTriggerType(unref(trigger), 'hover')) {\n onClose()\n }\n})\n\nconst onBeforeEnter = () => {\n contentRef.value?.updatePopper?.()\n onBeforeShow?.()\n}\n\nconst onBeforeLeave = () => {\n onBeforeHide?.()\n}\n\nconst onAfterShow = () => {\n onShow()\n}\n\nconst onBlur = () => {\n if (!props.virtualTriggering) {\n onClose()\n }\n}\n\nconst isFocusInsideContent = (event?: FocusEvent) => {\n const popperContent: HTMLElement | undefined =\n contentRef.value?.popperContentRef\n const activeElement = (event?.relatedTarget as Node) || document.activeElement\n\n return popperContent?.contains(activeElement)\n}\n\nwatch(\n () => unref(open),\n (val) => {\n if (!val) {\n stopHandle?.()\n } else {\n ariaHidden.value = false\n stopHandle = onClickOutside(\n popperContentRef,\n () => {\n if (unref(controlled)) return\n const needClose = castArray(unref(trigger)).every((item) => {\n return item !== 'hover' && item !== 'focus'\n })\n if (needClose) {\n onClose()\n }\n },\n { detectIframe: true }\n )\n }\n },\n {\n flush: 'post',\n }\n)\n\ndefineExpose({\n /**\n * @description el-popper-content component instance\n */\n contentRef,\n /**\n * @description validate current focus event is trigger inside el-popper-content\n */\n isFocusInsideContent,\n})\n</script>\n"],"mappings":""}