@element-plus/nightly 0.0.20220328 → 0.0.20220331

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 (544) hide show
  1. package/README.md +5 -0
  2. package/attributes.json +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +1934 -1265
  5. package/dist/index.full.min.js +12 -12
  6. package/dist/index.full.min.js.map +1 -1
  7. package/dist/index.full.min.mjs +12 -12
  8. package/dist/index.full.min.mjs.map +1 -1
  9. package/dist/index.full.mjs +1933 -1265
  10. package/dist/locale/af.js +1 -1
  11. package/dist/locale/af.min.js +1 -1
  12. package/dist/locale/af.min.mjs +1 -1
  13. package/dist/locale/af.mjs +1 -1
  14. package/dist/locale/ar.js +1 -1
  15. package/dist/locale/ar.min.js +1 -1
  16. package/dist/locale/ar.min.mjs +1 -1
  17. package/dist/locale/ar.mjs +1 -1
  18. package/dist/locale/az.js +136 -0
  19. package/dist/locale/az.min.js +2 -0
  20. package/dist/locale/az.min.js.map +1 -0
  21. package/dist/locale/az.min.mjs +2 -0
  22. package/dist/locale/az.min.mjs.map +1 -0
  23. package/dist/locale/az.mjs +128 -0
  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/cs.js +1 -1
  37. package/dist/locale/cs.min.js +1 -1
  38. package/dist/locale/cs.min.mjs +1 -1
  39. package/dist/locale/cs.mjs +1 -1
  40. package/dist/locale/da.js +1 -1
  41. package/dist/locale/da.min.js +1 -1
  42. package/dist/locale/da.min.mjs +1 -1
  43. package/dist/locale/da.mjs +1 -1
  44. package/dist/locale/de.js +1 -1
  45. package/dist/locale/de.min.js +1 -1
  46. package/dist/locale/de.min.mjs +1 -1
  47. package/dist/locale/de.mjs +1 -1
  48. package/dist/locale/el.js +1 -1
  49. package/dist/locale/el.min.js +1 -1
  50. package/dist/locale/el.min.mjs +1 -1
  51. package/dist/locale/el.mjs +1 -1
  52. package/dist/locale/en.js +1 -1
  53. package/dist/locale/en.min.js +1 -1
  54. package/dist/locale/en.min.mjs +1 -1
  55. package/dist/locale/en.mjs +1 -1
  56. package/dist/locale/eo.js +1 -1
  57. package/dist/locale/eo.min.js +1 -1
  58. package/dist/locale/eo.min.mjs +1 -1
  59. package/dist/locale/eo.mjs +1 -1
  60. package/dist/locale/es.js +1 -1
  61. package/dist/locale/es.min.js +1 -1
  62. package/dist/locale/es.min.mjs +1 -1
  63. package/dist/locale/es.mjs +1 -1
  64. package/dist/locale/et.js +1 -1
  65. package/dist/locale/et.min.js +1 -1
  66. package/dist/locale/et.min.mjs +1 -1
  67. package/dist/locale/et.mjs +1 -1
  68. package/dist/locale/eu.js +1 -1
  69. package/dist/locale/eu.min.js +1 -1
  70. package/dist/locale/eu.min.mjs +1 -1
  71. package/dist/locale/eu.mjs +1 -1
  72. package/dist/locale/fa.js +1 -1
  73. package/dist/locale/fa.min.js +1 -1
  74. package/dist/locale/fa.min.mjs +1 -1
  75. package/dist/locale/fa.mjs +1 -1
  76. package/dist/locale/fi.js +1 -1
  77. package/dist/locale/fi.min.js +1 -1
  78. package/dist/locale/fi.min.mjs +1 -1
  79. package/dist/locale/fi.mjs +1 -1
  80. package/dist/locale/fr.js +1 -1
  81. package/dist/locale/fr.min.js +1 -1
  82. package/dist/locale/fr.min.mjs +1 -1
  83. package/dist/locale/fr.mjs +1 -1
  84. package/dist/locale/he.js +1 -1
  85. package/dist/locale/he.min.js +1 -1
  86. package/dist/locale/he.min.mjs +1 -1
  87. package/dist/locale/he.mjs +1 -1
  88. package/dist/locale/hr.js +1 -1
  89. package/dist/locale/hr.min.js +1 -1
  90. package/dist/locale/hr.min.mjs +1 -1
  91. package/dist/locale/hr.mjs +1 -1
  92. package/dist/locale/hu.js +1 -1
  93. package/dist/locale/hu.min.js +1 -1
  94. package/dist/locale/hu.min.mjs +1 -1
  95. package/dist/locale/hu.mjs +1 -1
  96. package/dist/locale/hy-am.js +1 -1
  97. package/dist/locale/hy-am.min.js +1 -1
  98. package/dist/locale/hy-am.min.mjs +1 -1
  99. package/dist/locale/hy-am.mjs +1 -1
  100. package/dist/locale/id.js +1 -1
  101. package/dist/locale/id.min.js +1 -1
  102. package/dist/locale/id.min.mjs +1 -1
  103. package/dist/locale/id.mjs +1 -1
  104. package/dist/locale/it.js +1 -1
  105. package/dist/locale/it.min.js +1 -1
  106. package/dist/locale/it.min.mjs +1 -1
  107. package/dist/locale/it.mjs +1 -1
  108. package/dist/locale/ja.js +1 -1
  109. package/dist/locale/ja.min.js +1 -1
  110. package/dist/locale/ja.min.mjs +1 -1
  111. package/dist/locale/ja.mjs +1 -1
  112. package/dist/locale/kk.js +1 -1
  113. package/dist/locale/kk.min.js +1 -1
  114. package/dist/locale/kk.min.mjs +1 -1
  115. package/dist/locale/kk.mjs +1 -1
  116. package/dist/locale/km.js +1 -1
  117. package/dist/locale/km.min.js +1 -1
  118. package/dist/locale/km.min.mjs +1 -1
  119. package/dist/locale/km.mjs +1 -1
  120. package/dist/locale/ko.js +1 -1
  121. package/dist/locale/ko.min.js +1 -1
  122. package/dist/locale/ko.min.mjs +1 -1
  123. package/dist/locale/ko.mjs +1 -1
  124. package/dist/locale/ku.js +1 -1
  125. package/dist/locale/ku.min.js +1 -1
  126. package/dist/locale/ku.min.mjs +1 -1
  127. package/dist/locale/ku.mjs +1 -1
  128. package/dist/locale/ky.js +1 -1
  129. package/dist/locale/ky.min.js +1 -1
  130. package/dist/locale/ky.min.mjs +1 -1
  131. package/dist/locale/ky.mjs +1 -1
  132. package/dist/locale/lt.js +1 -1
  133. package/dist/locale/lt.min.js +1 -1
  134. package/dist/locale/lt.min.mjs +1 -1
  135. package/dist/locale/lt.mjs +1 -1
  136. package/dist/locale/lv.js +1 -1
  137. package/dist/locale/lv.min.js +1 -1
  138. package/dist/locale/lv.min.mjs +1 -1
  139. package/dist/locale/lv.mjs +1 -1
  140. package/dist/locale/mg.js +1 -1
  141. package/dist/locale/mg.min.js +1 -1
  142. package/dist/locale/mg.min.mjs +1 -1
  143. package/dist/locale/mg.mjs +1 -1
  144. package/dist/locale/mn.js +1 -1
  145. package/dist/locale/mn.min.js +1 -1
  146. package/dist/locale/mn.min.mjs +1 -1
  147. package/dist/locale/mn.mjs +1 -1
  148. package/dist/locale/nb-no.js +1 -1
  149. package/dist/locale/nb-no.min.js +1 -1
  150. package/dist/locale/nb-no.min.mjs +1 -1
  151. package/dist/locale/nb-no.mjs +1 -1
  152. package/dist/locale/nl.js +1 -1
  153. package/dist/locale/nl.min.js +1 -1
  154. package/dist/locale/nl.min.mjs +1 -1
  155. package/dist/locale/nl.mjs +1 -1
  156. package/dist/locale/pa.js +1 -1
  157. package/dist/locale/pa.min.js +1 -1
  158. package/dist/locale/pa.min.mjs +1 -1
  159. package/dist/locale/pa.mjs +1 -1
  160. package/dist/locale/pl.js +1 -1
  161. package/dist/locale/pl.min.js +1 -1
  162. package/dist/locale/pl.min.mjs +1 -1
  163. package/dist/locale/pl.mjs +1 -1
  164. package/dist/locale/pt-br.js +1 -1
  165. package/dist/locale/pt-br.min.js +1 -1
  166. package/dist/locale/pt-br.min.mjs +1 -1
  167. package/dist/locale/pt-br.mjs +1 -1
  168. package/dist/locale/pt.js +1 -1
  169. package/dist/locale/pt.min.js +1 -1
  170. package/dist/locale/pt.min.mjs +1 -1
  171. package/dist/locale/pt.mjs +1 -1
  172. package/dist/locale/ro.js +1 -1
  173. package/dist/locale/ro.min.js +1 -1
  174. package/dist/locale/ro.min.mjs +1 -1
  175. package/dist/locale/ro.mjs +1 -1
  176. package/dist/locale/ru.js +1 -1
  177. package/dist/locale/ru.min.js +1 -1
  178. package/dist/locale/ru.min.mjs +1 -1
  179. package/dist/locale/ru.mjs +1 -1
  180. package/dist/locale/sk.js +1 -1
  181. package/dist/locale/sk.min.js +1 -1
  182. package/dist/locale/sk.min.mjs +1 -1
  183. package/dist/locale/sk.mjs +1 -1
  184. package/dist/locale/sl.js +1 -1
  185. package/dist/locale/sl.min.js +1 -1
  186. package/dist/locale/sl.min.mjs +1 -1
  187. package/dist/locale/sl.mjs +1 -1
  188. package/dist/locale/sr.js +1 -1
  189. package/dist/locale/sr.min.js +1 -1
  190. package/dist/locale/sr.min.mjs +1 -1
  191. package/dist/locale/sr.mjs +1 -1
  192. package/dist/locale/sv.js +1 -1
  193. package/dist/locale/sv.min.js +1 -1
  194. package/dist/locale/sv.min.mjs +1 -1
  195. package/dist/locale/sv.mjs +1 -1
  196. package/dist/locale/ta.js +1 -1
  197. package/dist/locale/ta.min.js +1 -1
  198. package/dist/locale/ta.min.mjs +1 -1
  199. package/dist/locale/ta.mjs +1 -1
  200. package/dist/locale/th.js +1 -1
  201. package/dist/locale/th.min.js +1 -1
  202. package/dist/locale/th.min.mjs +1 -1
  203. package/dist/locale/th.mjs +1 -1
  204. package/dist/locale/tk.js +1 -1
  205. package/dist/locale/tk.min.js +1 -1
  206. package/dist/locale/tk.min.mjs +1 -1
  207. package/dist/locale/tk.mjs +1 -1
  208. package/dist/locale/tr.js +1 -1
  209. package/dist/locale/tr.min.js +1 -1
  210. package/dist/locale/tr.min.mjs +1 -1
  211. package/dist/locale/tr.mjs +1 -1
  212. package/dist/locale/ug-cn.js +1 -1
  213. package/dist/locale/ug-cn.min.js +1 -1
  214. package/dist/locale/ug-cn.min.mjs +1 -1
  215. package/dist/locale/ug-cn.mjs +1 -1
  216. package/dist/locale/uk.js +1 -1
  217. package/dist/locale/uk.min.js +1 -1
  218. package/dist/locale/uk.min.mjs +1 -1
  219. package/dist/locale/uk.mjs +1 -1
  220. package/dist/locale/uz-uz.js +1 -1
  221. package/dist/locale/uz-uz.min.js +1 -1
  222. package/dist/locale/uz-uz.min.mjs +1 -1
  223. package/dist/locale/uz-uz.mjs +1 -1
  224. package/dist/locale/vi.js +1 -1
  225. package/dist/locale/vi.min.js +1 -1
  226. package/dist/locale/vi.min.mjs +1 -1
  227. package/dist/locale/vi.mjs +1 -1
  228. package/dist/locale/zh-cn.js +1 -1
  229. package/dist/locale/zh-cn.min.js +1 -1
  230. package/dist/locale/zh-cn.min.mjs +1 -1
  231. package/dist/locale/zh-cn.mjs +1 -1
  232. package/dist/locale/zh-tw.js +1 -1
  233. package/dist/locale/zh-tw.min.js +1 -1
  234. package/dist/locale/zh-tw.min.mjs +1 -1
  235. package/dist/locale/zh-tw.mjs +1 -1
  236. package/es/component.mjs +2 -0
  237. package/es/component.mjs.map +1 -1
  238. package/es/components/autocomplete/index.d.ts +8 -3
  239. package/es/components/autocomplete/src/autocomplete.vue.d.ts +8 -3
  240. package/es/components/autocomplete/src/autocomplete2.mjs +7 -1
  241. package/es/components/autocomplete/src/autocomplete2.mjs.map +1 -1
  242. package/es/components/avatar/index.d.ts +4 -4
  243. package/es/components/avatar/src/avatar.d.ts +1 -1
  244. package/es/components/avatar/src/avatar.mjs +4 -2
  245. package/es/components/avatar/src/avatar.mjs.map +1 -1
  246. package/es/components/avatar/src/avatar.vue.d.ts +4 -4
  247. package/es/components/cascader/index.d.ts +20 -4
  248. package/es/components/cascader/src/index.vue.d.ts +10 -2
  249. package/es/components/config-provider/index.d.ts +3 -3
  250. package/es/components/config-provider/src/config-provider.d.ts +4 -4
  251. package/es/components/config-provider/src/config-provider.mjs +4 -1
  252. package/es/components/config-provider/src/config-provider.mjs.map +1 -1
  253. package/es/components/image/index.d.ts +181 -10
  254. package/es/components/image/index.mjs +2 -2
  255. package/es/components/image/index.mjs.map +1 -1
  256. package/es/components/image/src/image.vue.d.ts +181 -10
  257. package/es/components/image/src/image2.mjs +55 -74
  258. package/es/components/image/src/image2.mjs.map +1 -1
  259. package/es/components/image-viewer/index.d.ts +98 -22
  260. package/es/components/image-viewer/index.mjs +2 -2
  261. package/es/components/image-viewer/index.mjs.map +1 -1
  262. package/es/components/image-viewer/src/image-viewer.d.ts +1 -0
  263. package/es/components/image-viewer/src/image-viewer.mjs.map +1 -1
  264. package/es/components/image-viewer/src/image-viewer.vue.d.ts +99 -23
  265. package/es/components/image-viewer/src/image-viewer2.mjs +166 -202
  266. package/es/components/image-viewer/src/image-viewer2.mjs.map +1 -1
  267. package/es/components/index.mjs +1 -1
  268. package/es/components/input/index.d.ts +1 -1
  269. package/es/components/input/src/input.vue.d.ts +1 -1
  270. package/es/components/input/src/input2.mjs +3 -2
  271. package/es/components/input/src/input2.mjs.map +1 -1
  272. package/es/components/input-number/index.d.ts +2 -2
  273. package/es/components/input-number/src/input-number.vue.d.ts +2 -2
  274. package/es/components/message/src/message-method.mjs +1 -1
  275. package/es/components/message/src/message-method.mjs.map +1 -1
  276. package/es/components/scrollbar/index.d.ts +4 -0
  277. package/es/components/scrollbar/src/scrollbar.vue.d.ts +4 -0
  278. package/es/components/scrollbar/src/scrollbar2.mjs +9 -0
  279. package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
  280. package/es/components/select-v2/src/useSelect.mjs +1 -1
  281. package/es/components/select-v2/src/useSelect.mjs.map +1 -1
  282. package/es/components/table/index.d.ts +1 -4
  283. package/es/components/table/src/composables/use-scrollbar.d.ts +1 -4
  284. package/es/components/table/src/composables/use-scrollbar.mjs +5 -3
  285. package/es/components/table/src/composables/use-scrollbar.mjs.map +1 -1
  286. package/es/components/table/src/config.d.ts +1 -1
  287. package/es/components/table/src/config.mjs +11 -3
  288. package/es/components/table/src/config.mjs.map +1 -1
  289. package/es/components/table/src/table/style-helper.mjs +4 -3
  290. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  291. package/es/components/table/src/table-body/render-helper.mjs +1 -0
  292. package/es/components/table/src/table-body/render-helper.mjs.map +1 -1
  293. package/es/components/table/src/table-column/render-helper.mjs +11 -1
  294. package/es/components/table/src/table-column/render-helper.mjs.map +1 -1
  295. package/es/components/table/src/table.vue.d.ts +1 -4
  296. package/es/components/tabs/index.d.ts +74 -18
  297. package/es/components/tabs/index.mjs +4 -4
  298. package/es/components/tabs/index.mjs.map +1 -1
  299. package/es/components/tabs/src/tab-bar.d.ts +4 -2
  300. package/es/components/tabs/src/tab-bar.mjs +2 -2
  301. package/es/components/tabs/src/tab-bar.mjs.map +1 -1
  302. package/es/components/tabs/src/tab-bar.vue.d.ts +38 -2
  303. package/es/components/tabs/src/tab-bar2.mjs +30 -26
  304. package/es/components/tabs/src/tab-bar2.mjs.map +1 -1
  305. package/es/components/tabs/src/tab-nav.d.ts +12 -100
  306. package/es/components/tabs/src/tab-nav.mjs +65 -81
  307. package/es/components/tabs/src/tab-nav.mjs.map +1 -1
  308. package/es/components/tabs/src/tab-pane.d.ts +2 -0
  309. package/es/components/tabs/src/tab-pane.mjs.map +1 -1
  310. package/es/components/tabs/src/tab-pane.vue.d.ts +29 -0
  311. package/es/components/tabs/src/tab-pane2.mjs +28 -28
  312. package/es/components/tabs/src/tab-pane2.mjs.map +1 -1
  313. package/es/components/tabs/src/tabs.d.ts +24 -24
  314. package/es/components/tabs/src/tabs.mjs +52 -40
  315. package/es/components/tabs/src/tabs.mjs.map +1 -1
  316. package/es/components/tag/index.d.ts +8 -4
  317. package/es/components/tag/src/tag.d.ts +2 -1
  318. package/es/components/tag/src/tag.mjs +6 -2
  319. package/es/components/tag/src/tag.mjs.map +1 -1
  320. package/es/components/tag/src/tag.vue.d.ts +8 -4
  321. package/es/components/tag/src/tag2.mjs +3 -2
  322. package/es/components/tag/src/tag2.mjs.map +1 -1
  323. package/es/components/time-select/index.d.ts +10 -10
  324. package/es/components/time-select/src/time-select.mjs +4 -2
  325. package/es/components/time-select/src/time-select.mjs.map +1 -1
  326. package/es/components/time-select/src/time-select.vue.d.ts +5 -5
  327. package/es/components/tooltip-v2/index.d.ts +578 -0
  328. package/es/components/tooltip-v2/index.mjs +11 -0
  329. package/es/components/tooltip-v2/index.mjs.map +1 -1
  330. package/es/components/tooltip-v2/src/arrow.d.ts +7 -3
  331. package/es/components/tooltip-v2/src/arrow.mjs +11 -3
  332. package/es/components/tooltip-v2/src/arrow.mjs.map +1 -1
  333. package/es/components/tooltip-v2/src/arrow.vue.d.ts +24 -6
  334. package/es/components/tooltip-v2/src/arrow2.mjs +23 -10
  335. package/es/components/tooltip-v2/src/arrow2.mjs.map +1 -1
  336. package/es/components/tooltip-v2/src/common.d.ts +19 -0
  337. package/es/components/tooltip-v2/src/common.mjs +21 -1
  338. package/es/components/tooltip-v2/src/common.mjs.map +1 -1
  339. package/es/components/tooltip-v2/src/content.d.ts +7 -4
  340. package/es/components/tooltip-v2/src/content.mjs +12 -3
  341. package/es/components/tooltip-v2/src/content.mjs.map +1 -1
  342. package/es/components/tooltip-v2/src/content.vue.d.ts +42 -13
  343. package/es/components/tooltip-v2/src/content2.mjs +61 -28
  344. package/es/components/tooltip-v2/src/content2.mjs.map +1 -1
  345. package/es/components/tooltip-v2/src/root.vue.d.ts +14 -0
  346. package/es/components/tooltip-v2/src/root2.mjs +7 -2
  347. package/es/components/tooltip-v2/src/root2.mjs.map +1 -1
  348. package/es/components/tooltip-v2/src/tooltip.d.ts +27 -19
  349. package/es/components/tooltip-v2/src/tooltip.mjs +16 -3
  350. package/es/components/tooltip-v2/src/tooltip.mjs.map +1 -1
  351. package/es/components/tooltip-v2/src/tooltip.vue.d.ts +178 -45
  352. package/es/components/tooltip-v2/src/tooltip2.mjs +38 -12
  353. package/es/components/tooltip-v2/src/tooltip2.mjs.map +1 -1
  354. package/es/components/tooltip-v2/src/trigger.vue.d.ts +2 -1
  355. package/es/components/tooltip-v2/src/trigger2.mjs +10 -7
  356. package/es/components/tooltip-v2/src/trigger2.mjs.map +1 -1
  357. package/es/components/upload/src/upload-content2.mjs +2 -1
  358. package/es/components/upload/src/upload-content2.mjs.map +1 -1
  359. package/es/components/visual-hidden/src/visual-hidden.mjs +4 -2
  360. package/es/components/visual-hidden/src/visual-hidden.mjs.map +1 -1
  361. package/es/defaults.d.ts +1 -1
  362. package/es/hooks/use-floating/index.d.ts +3 -3
  363. package/es/hooks/use-floating/index.mjs +7 -6
  364. package/es/hooks/use-floating/index.mjs.map +1 -1
  365. package/es/hooks/use-global-config/index.d.ts +1 -1
  366. package/es/index.d.ts +1 -1
  367. package/es/index.mjs +2 -2
  368. package/es/locale/index.d.ts +1 -0
  369. package/es/locale/index.mjs +1 -0
  370. package/es/locale/index.mjs.map +1 -1
  371. package/es/locale/lang/az.d.ts +125 -0
  372. package/es/locale/lang/az.mjs +127 -0
  373. package/es/locale/lang/az.mjs.map +1 -0
  374. package/es/locales.mjs +1 -0
  375. package/es/locales.mjs.map +1 -1
  376. package/es/make-installer.d.ts +1 -1
  377. package/es/tokens/index.mjs +1 -1
  378. package/es/tokens/tooltip-v2.d.ts +6 -0
  379. package/es/tokens/tooltip-v2.mjs +2 -1
  380. package/es/tokens/tooltip-v2.mjs.map +1 -1
  381. package/es/version.d.ts +1 -1
  382. package/es/version.mjs +1 -1
  383. package/es/version.mjs.map +1 -1
  384. package/lib/component.js +10 -8
  385. package/lib/component.js.map +1 -1
  386. package/lib/components/autocomplete/index.d.ts +8 -3
  387. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +8 -3
  388. package/lib/components/autocomplete/src/autocomplete2.js +7 -1
  389. package/lib/components/autocomplete/src/autocomplete2.js.map +1 -1
  390. package/lib/components/avatar/index.d.ts +4 -4
  391. package/lib/components/avatar/src/avatar.d.ts +1 -1
  392. package/lib/components/avatar/src/avatar.js +4 -2
  393. package/lib/components/avatar/src/avatar.js.map +1 -1
  394. package/lib/components/avatar/src/avatar.vue.d.ts +4 -4
  395. package/lib/components/cascader/index.d.ts +20 -4
  396. package/lib/components/cascader/src/index.vue.d.ts +10 -2
  397. package/lib/components/config-provider/index.d.ts +3 -3
  398. package/lib/components/config-provider/src/config-provider.d.ts +4 -4
  399. package/lib/components/config-provider/src/config-provider.js +4 -1
  400. package/lib/components/config-provider/src/config-provider.js.map +1 -1
  401. package/lib/components/image/index.d.ts +181 -10
  402. package/lib/components/image/src/image.vue.d.ts +181 -10
  403. package/lib/components/image/src/image2.js +63 -82
  404. package/lib/components/image/src/image2.js.map +1 -1
  405. package/lib/components/image-viewer/index.d.ts +98 -22
  406. package/lib/components/image-viewer/src/image-viewer.d.ts +1 -0
  407. package/lib/components/image-viewer/src/image-viewer.js.map +1 -1
  408. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +99 -23
  409. package/lib/components/image-viewer/src/image-viewer2.js +178 -214
  410. package/lib/components/image-viewer/src/image-viewer2.js.map +1 -1
  411. package/lib/components/index.js +1 -1
  412. package/lib/components/input/index.d.ts +1 -1
  413. package/lib/components/input/src/input.vue.d.ts +1 -1
  414. package/lib/components/input/src/input2.js +2 -1
  415. package/lib/components/input/src/input2.js.map +1 -1
  416. package/lib/components/input-number/index.d.ts +2 -2
  417. package/lib/components/input-number/src/input-number.vue.d.ts +2 -2
  418. package/lib/components/message/src/message-method.js +1 -1
  419. package/lib/components/message/src/message-method.js.map +1 -1
  420. package/lib/components/scrollbar/index.d.ts +4 -0
  421. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +4 -0
  422. package/lib/components/scrollbar/src/scrollbar2.js +9 -0
  423. package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
  424. package/lib/components/select-v2/src/useSelect.js +1 -1
  425. package/lib/components/select-v2/src/useSelect.js.map +1 -1
  426. package/lib/components/table/index.d.ts +1 -4
  427. package/lib/components/table/src/composables/use-scrollbar.d.ts +1 -4
  428. package/lib/components/table/src/composables/use-scrollbar.js +5 -3
  429. package/lib/components/table/src/composables/use-scrollbar.js.map +1 -1
  430. package/lib/components/table/src/config.d.ts +1 -1
  431. package/lib/components/table/src/config.js +11 -3
  432. package/lib/components/table/src/config.js.map +1 -1
  433. package/lib/components/table/src/table/style-helper.js +4 -3
  434. package/lib/components/table/src/table/style-helper.js.map +1 -1
  435. package/lib/components/table/src/table-body/render-helper.js +1 -0
  436. package/lib/components/table/src/table-body/render-helper.js.map +1 -1
  437. package/lib/components/table/src/table-column/render-helper.js +11 -1
  438. package/lib/components/table/src/table-column/render-helper.js.map +1 -1
  439. package/lib/components/table/src/table.vue.d.ts +1 -4
  440. package/lib/components/tabs/index.d.ts +74 -18
  441. package/lib/components/tabs/index.js +1 -1
  442. package/lib/components/tabs/index.js.map +1 -1
  443. package/lib/components/tabs/src/tab-bar.d.ts +4 -2
  444. package/lib/components/tabs/src/tab-bar.js +2 -2
  445. package/lib/components/tabs/src/tab-bar.js.map +1 -1
  446. package/lib/components/tabs/src/tab-bar.vue.d.ts +38 -2
  447. package/lib/components/tabs/src/tab-bar2.js +28 -24
  448. package/lib/components/tabs/src/tab-bar2.js.map +1 -1
  449. package/lib/components/tabs/src/tab-nav.d.ts +12 -100
  450. package/lib/components/tabs/src/tab-nav.js +67 -83
  451. package/lib/components/tabs/src/tab-nav.js.map +1 -1
  452. package/lib/components/tabs/src/tab-pane.d.ts +2 -0
  453. package/lib/components/tabs/src/tab-pane.js.map +1 -1
  454. package/lib/components/tabs/src/tab-pane.vue.d.ts +29 -0
  455. package/lib/components/tabs/src/tab-pane2.js +31 -31
  456. package/lib/components/tabs/src/tab-pane2.js.map +1 -1
  457. package/lib/components/tabs/src/tabs.d.ts +24 -24
  458. package/lib/components/tabs/src/tabs.js +51 -39
  459. package/lib/components/tabs/src/tabs.js.map +1 -1
  460. package/lib/components/tag/index.d.ts +8 -4
  461. package/lib/components/tag/src/tag.d.ts +2 -1
  462. package/lib/components/tag/src/tag.js +6 -2
  463. package/lib/components/tag/src/tag.js.map +1 -1
  464. package/lib/components/tag/src/tag.vue.d.ts +8 -4
  465. package/lib/components/tag/src/tag2.js +3 -2
  466. package/lib/components/tag/src/tag2.js.map +1 -1
  467. package/lib/components/time-select/index.d.ts +10 -10
  468. package/lib/components/time-select/src/time-select.js +4 -2
  469. package/lib/components/time-select/src/time-select.js.map +1 -1
  470. package/lib/components/time-select/src/time-select.vue.d.ts +5 -5
  471. package/lib/components/tooltip-v2/index.d.ts +578 -0
  472. package/lib/components/tooltip-v2/index.js +21 -0
  473. package/lib/components/tooltip-v2/index.js.map +1 -1
  474. package/lib/components/tooltip-v2/src/arrow.d.ts +7 -3
  475. package/lib/components/tooltip-v2/src/arrow.js +11 -2
  476. package/lib/components/tooltip-v2/src/arrow.js.map +1 -1
  477. package/lib/components/tooltip-v2/src/arrow.vue.d.ts +24 -6
  478. package/lib/components/tooltip-v2/src/arrow2.js +21 -8
  479. package/lib/components/tooltip-v2/src/arrow2.js.map +1 -1
  480. package/lib/components/tooltip-v2/src/common.d.ts +19 -0
  481. package/lib/components/tooltip-v2/src/common.js +24 -0
  482. package/lib/components/tooltip-v2/src/common.js.map +1 -1
  483. package/lib/components/tooltip-v2/src/content.d.ts +7 -4
  484. package/lib/components/tooltip-v2/src/content.js +12 -3
  485. package/lib/components/tooltip-v2/src/content.js.map +1 -1
  486. package/lib/components/tooltip-v2/src/content.vue.d.ts +42 -13
  487. package/lib/components/tooltip-v2/src/content2.js +58 -25
  488. package/lib/components/tooltip-v2/src/content2.js.map +1 -1
  489. package/lib/components/tooltip-v2/src/root.vue.d.ts +14 -0
  490. package/lib/components/tooltip-v2/src/root2.js +9 -4
  491. package/lib/components/tooltip-v2/src/root2.js.map +1 -1
  492. package/lib/components/tooltip-v2/src/tooltip.d.ts +27 -19
  493. package/lib/components/tooltip-v2/src/tooltip.js +16 -3
  494. package/lib/components/tooltip-v2/src/tooltip.js.map +1 -1
  495. package/lib/components/tooltip-v2/src/tooltip.vue.d.ts +178 -45
  496. package/lib/components/tooltip-v2/src/tooltip2.js +37 -11
  497. package/lib/components/tooltip-v2/src/tooltip2.js.map +1 -1
  498. package/lib/components/tooltip-v2/src/trigger.vue.d.ts +2 -1
  499. package/lib/components/tooltip-v2/src/trigger2.js +9 -6
  500. package/lib/components/tooltip-v2/src/trigger2.js.map +1 -1
  501. package/lib/components/upload/src/upload-content2.js +2 -1
  502. package/lib/components/upload/src/upload-content2.js.map +1 -1
  503. package/lib/components/visual-hidden/src/visual-hidden.js +3 -1
  504. package/lib/components/visual-hidden/src/visual-hidden.js.map +1 -1
  505. package/lib/defaults.d.ts +1 -1
  506. package/lib/hooks/use-floating/index.d.ts +3 -3
  507. package/lib/hooks/use-floating/index.js +6 -5
  508. package/lib/hooks/use-floating/index.js.map +1 -1
  509. package/lib/hooks/use-global-config/index.d.ts +1 -1
  510. package/lib/index.d.ts +1 -1
  511. package/lib/index.js +2 -1
  512. package/lib/index.js.map +1 -1
  513. package/lib/locale/index.d.ts +1 -0
  514. package/lib/locale/index.js +2 -0
  515. package/lib/locale/index.js.map +1 -1
  516. package/lib/locale/lang/az.d.ts +125 -0
  517. package/lib/locale/lang/az.js +131 -0
  518. package/lib/locale/lang/az.js.map +1 -0
  519. package/lib/locales.js +2 -0
  520. package/lib/locales.js.map +1 -1
  521. package/lib/make-installer.d.ts +1 -1
  522. package/lib/tokens/index.js +1 -0
  523. package/lib/tokens/index.js.map +1 -1
  524. package/lib/tokens/tooltip-v2.d.ts +6 -0
  525. package/lib/tokens/tooltip-v2.js +2 -0
  526. package/lib/tokens/tooltip-v2.js.map +1 -1
  527. package/lib/version.d.ts +1 -1
  528. package/lib/version.js +1 -1
  529. package/lib/version.js.map +1 -1
  530. package/package.json +6 -6
  531. package/tags.json +1 -1
  532. package/theme-chalk/el-avatar.css +1 -1
  533. package/theme-chalk/el-input.css +1 -1
  534. package/theme-chalk/el-tag.css +1 -1
  535. package/theme-chalk/el-tooltip-v2.css +1 -0
  536. package/theme-chalk/index.css +1 -1
  537. package/theme-chalk/src/avatar.scss +10 -2
  538. package/theme-chalk/src/common/var.scss +1 -0
  539. package/theme-chalk/src/index.scss +1 -0
  540. package/theme-chalk/src/input.scss +0 -2
  541. package/theme-chalk/src/tag.scss +3 -0
  542. package/theme-chalk/src/tooltip-v2.scss +91 -0
  543. package/theme-chalk/src/var.scss +1 -1
  544. package/web-types.json +1 -1
@@ -1,9 +1,6 @@
1
1
  import type { ExtractPropTypes } from 'vue';
2
2
  import type { TabsPaneContext } from 'element-plus/es/tokens';
3
- export interface Scrollable {
4
- next?: boolean;
5
- prev?: number;
6
- }
3
+ import type { TabPanelName } from './tabs';
7
4
  export declare const tabNavProps: {
8
5
  readonly panes: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<{
9
6
  uid: number;
@@ -22,13 +19,13 @@ export declare const tabNavProps: {
22
19
  }[]>, () => [], unknown, unknown, unknown>;
23
20
  readonly currentName: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
24
21
  readonly editable: BooleanConstructor;
25
- readonly onTabClick: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: TabsPaneContext, tabName: string | number, ev: Event) => void>, () => void, unknown, unknown, unknown>;
22
+ readonly onTabClick: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void>, () => void, unknown, unknown, unknown>;
26
23
  readonly onTabRemove: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: TabsPaneContext, ev: Event) => void>, () => void, unknown, unknown, unknown>;
27
24
  readonly type: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, "" | "card" | "border-card", unknown>;
28
25
  readonly stretch: BooleanConstructor;
29
26
  };
30
27
  export declare type TabNavProps = ExtractPropTypes<typeof tabNavProps>;
31
- declare const _default: import("vue").DefineComponent<{
28
+ declare const TabNav: import("vue").DefineComponent<{
32
29
  readonly panes: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<{
33
30
  uid: number;
34
31
  instance: import("vue").ShallowReactive<import("vue").ComponentInternalInstance>;
@@ -46,41 +43,11 @@ declare const _default: import("vue").DefineComponent<{
46
43
  }[]>, () => [], unknown, unknown, unknown>;
47
44
  readonly currentName: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
48
45
  readonly editable: BooleanConstructor;
49
- readonly onTabClick: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: {
50
- uid: number;
51
- instance: import("vue").ShallowReactive<import("vue").ComponentInternalInstance>;
52
- props: {
53
- readonly disabled: boolean;
54
- readonly name: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
55
- readonly label: string;
56
- readonly closable: boolean;
57
- readonly lazy: boolean;
58
- };
59
- paneName: string | number | undefined;
60
- active: boolean;
61
- index: string | undefined;
62
- isClosable: boolean;
63
- }, tabName: string | number, ev: Event) => void>, () => void, unknown, unknown, unknown>;
64
- readonly onTabRemove: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: {
65
- uid: number;
66
- instance: import("vue").ShallowReactive<import("vue").ComponentInternalInstance>;
67
- props: {
68
- readonly disabled: boolean;
69
- readonly name: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
70
- readonly label: string;
71
- readonly closable: boolean;
72
- readonly lazy: boolean;
73
- };
74
- paneName: string | number | undefined;
75
- active: boolean;
76
- index: string | undefined;
77
- isClosable: boolean;
78
- }, ev: Event) => void>, () => void, unknown, unknown, unknown>;
46
+ readonly onTabClick: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void>, () => void, unknown, unknown, unknown>;
47
+ readonly onTabRemove: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: TabsPaneContext, ev: Event) => void>, () => void, unknown, unknown, unknown>;
79
48
  readonly type: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, "" | "card" | "border-card", unknown>;
80
49
  readonly stretch: BooleanConstructor;
81
- }, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
82
- [key: string]: any;
83
- }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
50
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
84
51
  readonly panes: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<{
85
52
  uid: number;
86
53
  instance: import("vue").ShallowReactive<import("vue").ComponentInternalInstance>;
@@ -98,36 +65,8 @@ declare const _default: import("vue").DefineComponent<{
98
65
  }[]>, () => [], unknown, unknown, unknown>;
99
66
  readonly currentName: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
100
67
  readonly editable: BooleanConstructor;
101
- readonly onTabClick: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: {
102
- uid: number;
103
- instance: import("vue").ShallowReactive<import("vue").ComponentInternalInstance>;
104
- props: {
105
- readonly disabled: boolean;
106
- readonly name: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
107
- readonly label: string;
108
- readonly closable: boolean;
109
- readonly lazy: boolean;
110
- };
111
- paneName: string | number | undefined;
112
- active: boolean;
113
- index: string | undefined;
114
- isClosable: boolean;
115
- }, tabName: string | number, ev: Event) => void>, () => void, unknown, unknown, unknown>;
116
- readonly onTabRemove: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: {
117
- uid: number;
118
- instance: import("vue").ShallowReactive<import("vue").ComponentInternalInstance>;
119
- props: {
120
- readonly disabled: boolean;
121
- readonly name: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
122
- readonly label: string;
123
- readonly closable: boolean;
124
- readonly lazy: boolean;
125
- };
126
- paneName: string | number | undefined;
127
- active: boolean;
128
- index: string | undefined;
129
- isClosable: boolean;
130
- }, ev: Event) => void>, () => void, unknown, unknown, unknown>;
68
+ readonly onTabClick: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void>, () => void, unknown, unknown, unknown>;
69
+ readonly onTabRemove: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<(tab: TabsPaneContext, ev: Event) => void>, () => void, unknown, unknown, unknown>;
131
70
  readonly type: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, "" | "card" | "border-card", unknown>;
132
71
  readonly stretch: BooleanConstructor;
133
72
  }>>, {
@@ -150,35 +89,8 @@ declare const _default: import("vue").DefineComponent<{
150
89
  isClosable: boolean;
151
90
  }[];
152
91
  currentName: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
153
- onTabClick: (tab: {
154
- uid: number;
155
- instance: import("vue").ShallowReactive<import("vue").ComponentInternalInstance>;
156
- props: {
157
- readonly disabled: boolean;
158
- readonly name: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
159
- readonly label: string;
160
- readonly closable: boolean;
161
- readonly lazy: boolean;
162
- };
163
- paneName: string | number | undefined;
164
- active: boolean;
165
- index: string | undefined;
166
- isClosable: boolean;
167
- }, tabName: string | number, ev: Event) => void;
168
- onTabRemove: (tab: {
169
- uid: number;
170
- instance: import("vue").ShallowReactive<import("vue").ComponentInternalInstance>;
171
- props: {
172
- readonly disabled: boolean;
173
- readonly name: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
174
- readonly label: string;
175
- readonly closable: boolean;
176
- readonly lazy: boolean;
177
- };
178
- paneName: string | number | undefined;
179
- active: boolean;
180
- index: string | undefined;
181
- isClosable: boolean;
182
- }, ev: Event) => void;
92
+ onTabClick: (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void;
93
+ onTabRemove: (tab: TabsPaneContext, ev: Event) => void;
183
94
  }>;
184
- export default _default;
95
+ export declare type TabNavInstance = InstanceType<typeof TabNav>;
96
+ export default TabNav;
@@ -1,4 +1,4 @@
1
- import { defineComponent, inject, ref, computed, watch, onMounted, onUpdated, h } from 'vue';
1
+ import { defineComponent, inject, ref, computed, watch, onMounted, onUpdated, createVNode } from 'vue';
2
2
  import { NOOP, capitalize } from '@vue/shared';
3
3
  import { useDocumentVisibility, useWindowFocus, useResizeObserver } from '@vueuse/core';
4
4
  import '../../../utils/index.mjs';
@@ -6,11 +6,13 @@ import '../../../constants/index.mjs';
6
6
  import { ElIcon } from '../../icon/index.mjs';
7
7
  import { ArrowLeft, ArrowRight, Close } from '@element-plus/icons-vue';
8
8
  import '../../../tokens/index.mjs';
9
- import TabBar from './tab-bar2.mjs';
9
+ import '../../../hooks/index.mjs';
10
+ import _sfc_main from './tab-bar2.mjs';
10
11
  import { buildProps, definePropType } from '../../../utils/vue/props.mjs';
11
12
  import { mutable } from '../../../utils/typescript.mjs';
12
13
  import { tabsRootContextKey } from '../../../tokens/tabs.mjs';
13
14
  import { throwError } from '../../../utils/error.mjs';
15
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
14
16
  import { EVENT_CODE } from '../../../constants/aria.mjs';
15
17
 
16
18
  const tabNavProps = buildProps({
@@ -39,22 +41,25 @@ const tabNavProps = buildProps({
39
41
  stretch: Boolean
40
42
  });
41
43
  const COMPONENT_NAME = "ElTabNav";
42
- var TabNav = defineComponent({
44
+ const TabNav = defineComponent({
43
45
  name: COMPONENT_NAME,
44
46
  props: tabNavProps,
45
- setup(props, { expose }) {
46
- const visibility = useDocumentVisibility();
47
- const focused = useWindowFocus();
47
+ setup(props, {
48
+ expose
49
+ }) {
48
50
  const rootTabs = inject(tabsRootContextKey);
49
51
  if (!rootTabs)
50
- throwError(COMPONENT_NAME, `ElTabNav must be nested inside ElTabs`);
52
+ throwError(COMPONENT_NAME, `<el-tabs><tab-nav /></el-tabs>`);
53
+ const ns = useNamespace("tabs");
54
+ const visibility = useDocumentVisibility();
55
+ const focused = useWindowFocus();
56
+ const navScroll$ = ref();
57
+ const nav$ = ref();
58
+ const el$ = ref();
51
59
  const scrollable = ref(false);
52
60
  const navOffset = ref(0);
53
61
  const isFocus = ref(false);
54
62
  const focusable = ref(true);
55
- const navScroll$ = ref();
56
- const nav$ = ref();
57
- const el$ = ref();
58
63
  const sizeName = computed(() => ["top", "bottom"].includes(rootTabs.props.tabPosition) ? "width" : "height");
59
64
  const navStyle = computed(() => {
60
65
  const dir = sizeName.value === "width" ? "X" : "Y";
@@ -138,7 +143,12 @@ var TabNav = defineComponent({
138
143
  };
139
144
  const changeTab = (e) => {
140
145
  const code = e.code;
141
- const { up, down, left, right } = EVENT_CODE;
146
+ const {
147
+ up,
148
+ down,
149
+ left,
150
+ right
151
+ } = EVENT_CODE;
142
152
  if (![up, down, left, right].includes(code))
143
153
  return;
144
154
  const tabList = Array.from(e.currentTarget.querySelectorAll("[role=tab]"));
@@ -188,93 +198,67 @@ var TabNav = defineComponent({
188
198
  removeFocus
189
199
  });
190
200
  return () => {
191
- const scrollBtn = scrollable.value ? [
192
- h("span", {
193
- class: [
194
- "el-tabs__nav-prev",
195
- scrollable.value.prev ? "" : "is-disabled"
196
- ],
197
- onClick: scrollPrev
198
- }, [h(ElIcon, {}, { default: () => h(ArrowLeft) })]),
199
- h("span", {
200
- class: [
201
- "el-tabs__nav-next",
202
- scrollable.value.next ? "" : "is-disabled"
203
- ],
204
- onClick: scrollNext
205
- }, [h(ElIcon, {}, { default: () => h(ArrowRight) })])
206
- ] : null;
201
+ const scrollBtn = scrollable.value ? [createVNode("span", {
202
+ "class": [ns.e("nav-prev"), ns.is("disabled", !scrollable.value.prev)],
203
+ "onClick": scrollPrev
204
+ }, [createVNode(ElIcon, null, {
205
+ default: () => [createVNode(ArrowLeft, null, null)]
206
+ })]), createVNode("span", {
207
+ "class": [ns.e("nav-next"), ns.is("disabled", !scrollable.value.next)],
208
+ "onClick": scrollNext
209
+ }, [createVNode(ElIcon, null, {
210
+ default: () => [createVNode(ArrowRight, null, null)]
211
+ })])] : null;
207
212
  const tabs = props.panes.map((pane, index) => {
208
213
  var _a, _b;
209
214
  const tabName = pane.props.name || pane.index || `${index}`;
210
215
  const closable = pane.isClosable || props.editable;
211
216
  pane.index = `${index}`;
212
- const btnClose = closable ? h(ElIcon, {
213
- class: "is-icon-close",
214
- onClick: (ev) => props.onTabRemove(pane, ev)
215
- }, { default: () => h(Close) }) : null;
217
+ const btnClose = closable ? createVNode(ElIcon, {
218
+ "class": "is-icon-close",
219
+ "onClick": (ev) => props.onTabRemove(pane, ev)
220
+ }, {
221
+ default: () => [createVNode(Close, null, null)]
222
+ }) : null;
216
223
  const tabLabelContent = ((_b = (_a = pane.instance.slots).label) == null ? void 0 : _b.call(_a)) || pane.props.label;
217
224
  const tabindex = pane.active ? 0 : -1;
218
- return h("div", {
219
- class: {
220
- "el-tabs__item": true,
221
- [`is-${rootTabs.props.tabPosition}`]: true,
222
- "is-active": pane.active,
223
- "is-disabled": pane.props.disabled,
224
- "is-closable": closable,
225
- "is-focus": isFocus
226
- },
227
- id: `tab-${tabName}`,
228
- key: `tab-${tabName}`,
225
+ return createVNode("div", {
226
+ "ref": `tab-${tabName}`,
227
+ "class": [ns.e("item"), ns.is(rootTabs.props.tabPosition), ns.is("active", pane.active), ns.is("disabled", pane.props.disabled), ns.is("closable", closable), ns.is("focus", isFocus.value)],
228
+ "id": `tab-${tabName}`,
229
+ "key": `tab-${tabName}`,
229
230
  "aria-controls": `pane-${tabName}`,
230
- role: "tab",
231
+ "role": "tab",
231
232
  "aria-selected": pane.active,
232
- ref: `tab-${tabName}`,
233
- tabindex,
234
- onFocus: () => setFocus(),
235
- onBlur: () => removeFocus(),
236
- onClick: (ev) => {
233
+ "tabindex": tabindex,
234
+ "onFocus": () => setFocus(),
235
+ "onBlur": () => removeFocus(),
236
+ "onClick": (ev) => {
237
237
  removeFocus();
238
238
  props.onTabClick(pane, tabName, ev);
239
239
  },
240
- onKeydown: (ev) => {
240
+ "onKeydown": (ev) => {
241
241
  if (closable && (ev.code === EVENT_CODE.delete || ev.code === EVENT_CODE.backspace)) {
242
242
  props.onTabRemove(pane, ev);
243
243
  }
244
244
  }
245
- }, [tabLabelContent, btnClose]);
245
+ }, [...[tabLabelContent, btnClose]]);
246
246
  });
247
- return h("div", {
248
- ref: el$,
249
- class: [
250
- "el-tabs__nav-wrap",
251
- scrollable.value ? "is-scrollable" : "",
252
- `is-${rootTabs.props.tabPosition}`
253
- ]
254
- }, [
255
- scrollBtn,
256
- h("div", {
257
- class: "el-tabs__nav-scroll",
258
- ref: navScroll$
259
- }, [
260
- h("div", {
261
- class: [
262
- "el-tabs__nav",
263
- `is-${rootTabs.props.tabPosition}`,
264
- props.stretch && ["top", "bottom"].includes(rootTabs.props.tabPosition) ? "is-stretch" : ""
265
- ],
266
- ref: nav$,
267
- style: navStyle.value,
268
- role: "tablist",
269
- onKeydown: changeTab
270
- }, [
271
- !props.type ? h(TabBar, {
272
- tabs: [...props.panes]
273
- }) : null,
274
- tabs
275
- ])
276
- ])
277
- ]);
247
+ return createVNode("div", {
248
+ "ref": el$,
249
+ "class": [ns.e("nav-wrap"), ns.is("scrollable", !!scrollable.value), ns.is(rootTabs.props.tabPosition)]
250
+ }, [scrollBtn, createVNode("div", {
251
+ "class": ns.e("nav-scroll"),
252
+ "ref": navScroll$
253
+ }, [createVNode("div", {
254
+ "class": [ns.e("nav"), ns.is(rootTabs.props.tabPosition), ns.is("stretch", props.stretch && ["top", "bottom"].includes(rootTabs.props.tabPosition))],
255
+ "ref": nav$,
256
+ "style": navStyle.value,
257
+ "role": "tablist",
258
+ "onKeydown": changeTab
259
+ }, [...[!props.type ? createVNode(_sfc_main, {
260
+ "tabs": [...props.panes]
261
+ }, null) : null, tabs]])])]);
278
262
  };
279
263
  }
280
264
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tab-nav.mjs","sources":["../../../../../../packages/components/tabs/src/tab-nav.ts"],"sourcesContent":["import {\n computed,\n defineComponent,\n h,\n inject,\n onMounted,\n onUpdated,\n ref,\n watch,\n} from 'vue'\nimport { NOOP, capitalize } from '@vue/shared'\nimport {\n useDocumentVisibility,\n useResizeObserver,\n useWindowFocus,\n} from '@vueuse/core'\nimport {\n buildProps,\n definePropType,\n mutable,\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 { tabsRootContextKey } from '@element-plus/tokens'\nimport TabBar from './tab-bar.vue'\nimport type { CSSProperties, ExtractPropTypes } from 'vue'\nimport type { TabsPaneContext } from '@element-plus/tokens'\nexport interface 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 onTabClick: {\n type: definePropType<\n (tab: TabsPaneContext, tabName: string | number, ev: Event) => void\n >(Function),\n default: NOOP,\n },\n onTabRemove: {\n type: definePropType<(tab: TabsPaneContext, ev: Event) => void>(Function),\n default: NOOP,\n },\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n stretch: Boolean,\n} as const)\n\nexport type TabNavProps = ExtractPropTypes<typeof tabNavProps>\n\nconst COMPONENT_NAME = 'ElTabNav'\nexport default defineComponent({\n name: COMPONENT_NAME,\n props: tabNavProps,\n\n setup(props, { expose }) {\n const visibility = useDocumentVisibility()\n const focused = useWindowFocus()\n\n const rootTabs = inject(tabsRootContextKey)\n if (!rootTabs)\n throwError(COMPONENT_NAME, `ElTabNav must be nested inside ElTabs`)\n\n const scrollable = ref<false | Scrollable>(false)\n const navOffset = ref(0)\n const isFocus = ref(false)\n const focusable = ref(true)\n\n const navScroll$ = ref<HTMLDivElement>()\n const nav$ = ref<HTMLDivElement>()\n const el$ = ref<HTMLDivElement>()\n\n const sizeName = computed(() =>\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ? 'width'\n : 'height'\n )\n const navStyle = computed<CSSProperties>(() => {\n const dir = sizeName.value === 'width' ? 'X' : 'Y'\n return {\n transform: `translate${dir}(-${navOffset.value}px)`,\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 = () => {\n const nav = nav$.value\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return\n\n const activeTab = el$.value.querySelector('.is-active')\n if (!activeTab) return\n\n const navScroll = navScroll$.value\n const isHorizontal = ['top', 'bottom'].includes(\n rootTabs.props.tabPosition\n )\n const activeTabBounding = activeTab.getBoundingClientRect()\n const navScrollBounding = navScroll.getBoundingClientRect()\n const maxOffset = isHorizontal\n ? nav.offsetWidth - navScrollBounding.width\n : nav.offsetHeight - navScrollBounding.height\n const currentOffset = navOffset.value\n let newOffset = currentOffset\n\n if (isHorizontal) {\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 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 (containerSize < navSize) {\n const currentOffset = navOffset.value\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 = (e: KeyboardEvent) => {\n const code = e.code\n\n const { up, down, left, right } = EVENT_CODE\n if (![up, down, left, right].includes(code)) return\n\n // 左右上下键更换tab\n const tabList = Array.from(\n (e.currentTarget as HTMLDivElement).querySelectorAll<HTMLDivElement>(\n '[role=tab]'\n )\n )\n const currentIndex = tabList.indexOf(e.target as HTMLDivElement)\n\n let nextIndex: number\n if (code === left || code === up) {\n // left\n if (currentIndex === 0) {\n // first\n nextIndex = tabList.length - 1\n } else {\n nextIndex = currentIndex - 1\n }\n } else {\n // right\n if (currentIndex < tabList.length - 1) {\n // not last\n nextIndex = currentIndex + 1\n } else {\n nextIndex = 0\n }\n }\n tabList[nextIndex].focus() // 改变焦点元素\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 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$, update)\n\n onMounted(() => setTimeout(() => scrollToActiveTab(), 0))\n onUpdated(() => update())\n\n expose({\n scrollToActiveTab,\n removeFocus,\n })\n\n return () => {\n const scrollBtn = scrollable.value\n ? [\n h(\n 'span',\n {\n class: [\n 'el-tabs__nav-prev',\n scrollable.value.prev ? '' : 'is-disabled',\n ],\n onClick: scrollPrev,\n },\n [h(ElIcon, {}, { default: () => h(ArrowLeft) })]\n ),\n h(\n 'span',\n {\n class: [\n 'el-tabs__nav-next',\n scrollable.value.next ? '' : 'is-disabled',\n ],\n onClick: scrollNext,\n },\n [h(ElIcon, {}, { default: () => h(ArrowRight) })]\n ),\n ]\n : null\n\n const tabs = props.panes.map((pane, index) => {\n const tabName = pane.props.name || pane.index || `${index}`\n const closable = pane.isClosable || props.editable\n pane.index = `${index}`\n\n const btnClose = closable\n ? h(\n ElIcon,\n {\n class: 'is-icon-close',\n onClick: (ev: MouseEvent) => props.onTabRemove(pane, ev),\n },\n { default: () => h(Close) }\n )\n : null\n\n const tabLabelContent =\n pane.instance.slots.label?.() || pane.props.label\n const tabindex = pane.active ? 0 : -1\n\n return h(\n 'div',\n {\n class: {\n 'el-tabs__item': true,\n [`is-${rootTabs.props.tabPosition}`]: true,\n 'is-active': pane.active,\n 'is-disabled': pane.props.disabled,\n 'is-closable': closable,\n 'is-focus': isFocus,\n },\n id: `tab-${tabName}`,\n key: `tab-${tabName}`,\n 'aria-controls': `pane-${tabName}`,\n role: 'tab',\n 'aria-selected': pane.active,\n ref: `tab-${tabName}`,\n tabindex,\n onFocus: () => setFocus(),\n onBlur: () => removeFocus(),\n onClick: (ev: MouseEvent) => {\n removeFocus()\n props.onTabClick(pane, tabName, ev)\n },\n onKeydown: (ev: KeyboardEvent) => {\n if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n props.onTabRemove(pane, ev)\n }\n },\n },\n [tabLabelContent, btnClose]\n )\n })\n\n return h(\n 'div',\n {\n ref: el$,\n class: [\n 'el-tabs__nav-wrap',\n scrollable.value ? 'is-scrollable' : '',\n `is-${rootTabs.props.tabPosition}`,\n ],\n },\n [\n scrollBtn,\n h(\n 'div',\n {\n class: 'el-tabs__nav-scroll',\n ref: navScroll$,\n },\n [\n h(\n 'div',\n {\n class: [\n 'el-tabs__nav',\n `is-${rootTabs.props.tabPosition}`,\n props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ? 'is-stretch'\n : '',\n ],\n ref: nav$,\n style: navStyle.value,\n role: 'tablist',\n onKeydown: changeTab,\n },\n [\n !props.type\n ? h(TabBar, {\n tabs: [...props.panes],\n })\n : null,\n tabs,\n ]\n ),\n ]\n ),\n ]\n )\n }\n },\n})\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tab-nav.mjs","sources":["../../../../../../packages/components/tabs/src/tab-nav.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n inject,\n onMounted,\n onUpdated,\n ref,\n watch,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport {\n useDocumentVisibility,\n useResizeObserver,\n useWindowFocus,\n} from '@vueuse/core'\nimport {\n buildProps,\n capitalize,\n definePropType,\n mutable,\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 { tabsRootContextKey } from '@element-plus/tokens'\nimport { useNamespace } from '@element-plus/hooks'\nimport TabBar from './tab-bar.vue'\nimport type { CSSProperties, ExtractPropTypes } from 'vue'\nimport type { TabsPaneContext } from '@element-plus/tokens'\nimport type { TabPanelName } from './tabs'\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 onTabClick: {\n type: definePropType<\n (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void\n >(Function),\n default: NOOP,\n },\n onTabRemove: {\n type: definePropType<(tab: TabsPaneContext, ev: Event) => void>(Function),\n default: NOOP,\n },\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n stretch: Boolean,\n} as const)\n\nexport type TabNavProps = ExtractPropTypes<typeof tabNavProps>\n\nconst COMPONENT_NAME = 'ElTabNav'\nconst TabNav = defineComponent({\n name: COMPONENT_NAME,\n props: tabNavProps,\n\n setup(props, { expose }) {\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\n const scrollable = ref<false | Scrollable>(false)\n const navOffset = ref(0)\n const isFocus = ref(false)\n const focusable = ref(true)\n\n const sizeName = computed(() =>\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ? 'width'\n : 'height'\n )\n const navStyle = computed<CSSProperties>(() => {\n const dir = sizeName.value === 'width' ? 'X' : 'Y'\n return {\n transform: `translate${dir}(-${navOffset.value}px)`,\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 = () => {\n const nav = nav$.value\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return\n\n const activeTab = el$.value.querySelector('.is-active')\n if (!activeTab) return\n\n const navScroll = navScroll$.value\n const isHorizontal = ['top', 'bottom'].includes(\n rootTabs.props.tabPosition\n )\n const activeTabBounding = activeTab.getBoundingClientRect()\n const navScrollBounding = navScroll.getBoundingClientRect()\n const maxOffset = isHorizontal\n ? nav.offsetWidth - navScrollBounding.width\n : nav.offsetHeight - navScrollBounding.height\n const currentOffset = navOffset.value\n let newOffset = currentOffset\n\n if (isHorizontal) {\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 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 (containerSize < navSize) {\n const currentOffset = navOffset.value\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 = (e: KeyboardEvent) => {\n const code = e.code\n\n const { up, down, left, right } = EVENT_CODE\n if (![up, down, left, right].includes(code)) return\n\n // 左右上下键更换tab\n const tabList = Array.from(\n (e.currentTarget as HTMLDivElement).querySelectorAll<HTMLDivElement>(\n '[role=tab]'\n )\n )\n const currentIndex = tabList.indexOf(e.target as HTMLDivElement)\n\n let nextIndex: number\n if (code === left || code === up) {\n // left\n if (currentIndex === 0) {\n // first\n nextIndex = tabList.length - 1\n } else {\n nextIndex = currentIndex - 1\n }\n } else {\n // right\n if (currentIndex < tabList.length - 1) {\n // not last\n nextIndex = currentIndex + 1\n } else {\n nextIndex = 0\n }\n }\n tabList[nextIndex].focus() // 改变焦点元素\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 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$, update)\n\n onMounted(() => setTimeout(() => scrollToActiveTab(), 0))\n onUpdated(() => update())\n\n expose({\n scrollToActiveTab,\n removeFocus,\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 tabName = pane.props.name || pane.index || `${index}`\n const closable: boolean = pane.isClosable || props.editable\n pane.index = `${index}`\n\n const btnClose = closable ? (\n <ElIcon\n class=\"is-icon-close\"\n // @ts-expect-error native event\n onClick={(ev: MouseEvent) => props.onTabRemove(pane, ev)}\n >\n <Close />\n </ElIcon>\n ) : null\n\n const tabLabelContent =\n pane.instance.slots.label?.() || pane.props.label\n const tabindex = pane.active ? 0 : -1\n\n return (\n <div\n ref={`tab-${tabName}`}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition),\n ns.is('active', pane.active),\n ns.is('disabled', pane.props.disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value),\n ]}\n id={`tab-${tabName}`}\n key={`tab-${tabName}`}\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 props.onTabClick(pane, tabName, ev)\n }}\n onKeydown={(ev: KeyboardEvent) => {\n if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n props.onTabRemove(pane, ev)\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n )\n })\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 <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 >\n {...[\n !props.type ? <TabBar tabs={[...props.panes]} /> : null,\n tabs,\n ]}\n </div>\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav>\nexport default TabNav\n"],"names":["tabNavProps","buildProps","panes","type","definePropType","Array","default","mutable","currentName","String","Number","editable","Boolean","onTabClick","Function","NOOP","onTabRemove","values","stretch","COMPONENT_NAME","TabNav","defineComponent","name","props","setup","expose","ns","useNamespace","visibility","useDocumentVisibility","focused","useWindowFocus","navScroll$","ref","nav$","el$","scrollable","navOffset","isFocus","focusable","sizeName","computed","includes","rootTabs","tabPosition","navStyle","dir","value","transform","scrollPrev","containerSize","capitalize","currentOffset","newOffset","scrollNext","scrollToActiveTab","activeTab","querySelector","navScroll","navScrollBounding","maxOffset","isHorizontal","offsetWidth","activeTabBounding","right","top","bottom","update","navSize","next","changeTab","up","down","left","EVENT_CODE","currentTarget","currentIndex","nextIndex","tabList","focus","click","setFocus","watch","setTimeout","_createVNode","useResizeObserver","onMounted","onUpdated","removeFocus","scrollBtn","map","pane","tabName","closable","btnClose","ev","tabindex","active","tabLabelContent","TabBar"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { ExtractPropTypes } from 'vue';
2
+ import type TabPane from './tab-pane.vue';
2
3
  export declare const tabPaneProps: {
3
4
  readonly label: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
4
5
  readonly name: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
@@ -7,3 +8,4 @@ export declare const tabPaneProps: {
7
8
  readonly lazy: BooleanConstructor;
8
9
  };
9
10
  export declare type TabPaneProps = ExtractPropTypes<typeof tabPaneProps>;
11
+ export declare type TabPaneInstance = InstanceType<typeof TabPane>;
@@ -1 +1 @@
1
- {"version":3,"file":"tab-pane.mjs","sources":["../../../../../../packages/components/tabs/src/tab-pane.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\nimport type { ExtractPropTypes } from 'vue'\n\nexport const tabPaneProps = buildProps({\n label: {\n type: String,\n default: '',\n },\n name: {\n type: [String, Number],\n default: '',\n },\n closable: Boolean,\n disabled: Boolean,\n lazy: Boolean,\n} as const)\n\nexport type TabPaneProps = ExtractPropTypes<typeof tabPaneProps>\n"],"names":[],"mappings":";;;AACY,MAAC,YAAY,GAAG,UAAU,CAAC;AACvC,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,IAAI,EAAE,OAAO;AACf,CAAC;;;;"}
1
+ {"version":3,"file":"tab-pane.mjs","sources":["../../../../../../packages/components/tabs/src/tab-pane.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\nimport type { ExtractPropTypes } from 'vue'\nimport type TabPane from './tab-pane.vue'\n\nexport const tabPaneProps = buildProps({\n label: {\n type: String,\n default: '',\n },\n name: {\n type: [String, Number],\n default: '',\n },\n closable: Boolean,\n disabled: Boolean,\n lazy: Boolean,\n} as const)\n\nexport type TabPaneProps = ExtractPropTypes<typeof tabPaneProps>\n\nexport type TabPaneInstance = InstanceType<typeof TabPane>\n"],"names":[],"mappings":";;;AACY,MAAC,YAAY,GAAG,UAAU,CAAC;AACvC,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,IAAI,EAAE,OAAO;AACf,CAAC;;;;"}
@@ -5,7 +5,36 @@ declare const _default: import("vue").DefineComponent<{
5
5
  readonly disabled: BooleanConstructor;
6
6
  readonly lazy: BooleanConstructor;
7
7
  }, {
8
+ COMPONENT_NAME: string;
9
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
10
+ readonly label: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
11
+ readonly name: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
12
+ readonly closable: BooleanConstructor;
13
+ readonly disabled: BooleanConstructor;
14
+ readonly lazy: BooleanConstructor;
15
+ }>> & {
16
+ [x: string & `on${string}`]: ((...args: any[]) => any) | ((...args: unknown[]) => any) | undefined;
17
+ }>>;
18
+ instance: import("vue").ComponentInternalInstance;
19
+ tabsRoot: import("element-plus/es/tokens").TabsRootContext;
20
+ ns: {
21
+ namespace: import("vue").ComputedRef<string>;
22
+ b: (blockSuffix?: string) => string;
23
+ e: (element?: string | undefined) => string;
24
+ m: (modifier?: string | undefined) => string;
25
+ be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
26
+ em: (element?: string | undefined, modifier?: string | undefined) => string;
27
+ bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
28
+ bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
29
+ is: {
30
+ (name: string, state: boolean | undefined): string;
31
+ (name: string): string;
32
+ };
33
+ };
34
+ index: import("vue").Ref<string | undefined>;
35
+ isClosable: import("vue").ComputedRef<boolean>;
8
36
  active: Readonly<import("vue").Ref<boolean>>;
37
+ loaded: import("vue").Ref<boolean>;
9
38
  paneName: import("vue").ComputedRef<import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined>;
10
39
  shouldBeRender: Readonly<import("vue").Ref<boolean>>;
11
40
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -1,21 +1,28 @@
1
- import { defineComponent, getCurrentInstance, inject, ref, computed, watch, reactive, markRaw, withDirectives, openBlock, createElementBlock, renderSlot, vShow, createCommentVNode } from 'vue';
1
+ import { defineComponent, getCurrentInstance, inject, ref, computed, watch, reactive, markRaw, unref, withDirectives, openBlock, createElementBlock, normalizeClass, renderSlot, vShow, createCommentVNode } from 'vue';
2
2
  import { eagerComputed } from '@vueuse/core';
3
3
  import '../../../tokens/index.mjs';
4
4
  import '../../../utils/index.mjs';
5
+ import '../../../hooks/index.mjs';
5
6
  import { tabPaneProps } from './tab-pane.mjs';
6
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
7
7
  import { tabsRootContextKey } from '../../../tokens/tabs.mjs';
8
8
  import { throwError } from '../../../utils/error.mjs';
9
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
9
10
 
10
- const COMPONENT_NAME = "ElTabPane";
11
- const _sfc_main = defineComponent({
12
- name: COMPONENT_NAME,
11
+ const _hoisted_1 = ["id", "aria-hidden", "aria-labelledby"];
12
+ const __default__ = {
13
+ name: "ElTabPane"
14
+ };
15
+ const _sfc_main = /* @__PURE__ */ defineComponent({
16
+ ...__default__,
13
17
  props: tabPaneProps,
14
- setup(props) {
18
+ setup(__props) {
19
+ const props = __props;
20
+ const COMPONENT_NAME = "ElTabPane";
15
21
  const instance = getCurrentInstance();
16
22
  const tabsRoot = inject(tabsRootContextKey);
17
23
  if (!tabsRoot)
18
- throwError(COMPONENT_NAME, `must use with ElTabs`);
24
+ throwError(COMPONENT_NAME, "usage: <el-tabs><el-tab-pane /></el-tabs/>");
25
+ const ns = useNamespace("tab-pane");
19
26
  const index = ref();
20
27
  const isClosable = computed(() => props.closable || tabsRoot.props.closable);
21
28
  const active = eagerComputed(() => tabsRoot.currentName.value === (props.name || index.value));
@@ -35,29 +42,22 @@ const _sfc_main = defineComponent({
35
42
  index,
36
43
  isClosable
37
44
  }));
38
- return {
39
- active,
40
- paneName,
41
- shouldBeRender
45
+ return (_ctx, _cache) => {
46
+ return unref(shouldBeRender) ? withDirectives((openBlock(), createElementBlock("div", {
47
+ key: 0,
48
+ id: `pane-${unref(paneName)}`,
49
+ class: normalizeClass(unref(ns).b()),
50
+ role: "tabpanel",
51
+ "aria-hidden": !unref(active),
52
+ "aria-labelledby": `tab-${unref(paneName)}`
53
+ }, [
54
+ renderSlot(_ctx.$slots, "default")
55
+ ], 10, _hoisted_1)), [
56
+ [vShow, unref(active)]
57
+ ]) : createCommentVNode("v-if", true);
42
58
  };
43
59
  }
44
60
  });
45
- const _hoisted_1 = ["id", "aria-hidden", "aria-labelledby"];
46
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
47
- return _ctx.shouldBeRender ? withDirectives((openBlock(), createElementBlock("div", {
48
- key: 0,
49
- id: `pane-${_ctx.paneName}`,
50
- class: "el-tab-pane",
51
- role: "tabpanel",
52
- "aria-hidden": !_ctx.active,
53
- "aria-labelledby": `tab-${_ctx.paneName}`
54
- }, [
55
- renderSlot(_ctx.$slots, "default")
56
- ], 8, _hoisted_1)), [
57
- [vShow, _ctx.active]
58
- ]) : createCommentVNode("v-if", true);
59
- }
60
- var TabPane = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
61
61
 
62
- export { TabPane as default };
62
+ export { _sfc_main as default };
63
63
  //# sourceMappingURL=tab-pane2.mjs.map