@element-plus/nightly 0.0.20220904 → 0.0.20220907

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 (362) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +95 -79
  4. package/dist/index.full.min.js +14 -14
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +14 -14
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +95 -80
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar.js +1 -1
  14. package/dist/locale/ar.min.js +1 -1
  15. package/dist/locale/ar.min.mjs +1 -1
  16. package/dist/locale/ar.mjs +1 -1
  17. package/dist/locale/az.js +1 -1
  18. package/dist/locale/az.min.js +1 -1
  19. package/dist/locale/az.min.mjs +1 -1
  20. package/dist/locale/az.mjs +1 -1
  21. package/dist/locale/bg.js +1 -1
  22. package/dist/locale/bg.min.js +1 -1
  23. package/dist/locale/bg.min.mjs +1 -1
  24. package/dist/locale/bg.mjs +1 -1
  25. package/dist/locale/bn.js +1 -1
  26. package/dist/locale/bn.min.js +1 -1
  27. package/dist/locale/bn.min.mjs +1 -1
  28. package/dist/locale/bn.mjs +1 -1
  29. package/dist/locale/ca.js +1 -1
  30. package/dist/locale/ca.min.js +1 -1
  31. package/dist/locale/ca.min.mjs +1 -1
  32. package/dist/locale/ca.mjs +1 -1
  33. package/dist/locale/cs.js +1 -1
  34. package/dist/locale/cs.min.js +1 -1
  35. package/dist/locale/cs.min.mjs +1 -1
  36. package/dist/locale/cs.mjs +1 -1
  37. package/dist/locale/da.js +1 -1
  38. package/dist/locale/da.min.js +1 -1
  39. package/dist/locale/da.min.mjs +1 -1
  40. package/dist/locale/da.mjs +1 -1
  41. package/dist/locale/de.js +1 -1
  42. package/dist/locale/de.min.js +1 -1
  43. package/dist/locale/de.min.mjs +1 -1
  44. package/dist/locale/de.mjs +1 -1
  45. package/dist/locale/el.js +1 -1
  46. package/dist/locale/el.min.js +1 -1
  47. package/dist/locale/el.min.mjs +1 -1
  48. package/dist/locale/el.mjs +1 -1
  49. package/dist/locale/en.js +1 -1
  50. package/dist/locale/en.min.js +1 -1
  51. package/dist/locale/en.min.mjs +1 -1
  52. package/dist/locale/en.mjs +1 -1
  53. package/dist/locale/eo.js +1 -1
  54. package/dist/locale/eo.min.js +1 -1
  55. package/dist/locale/eo.min.mjs +1 -1
  56. package/dist/locale/eo.mjs +1 -1
  57. package/dist/locale/es.js +1 -1
  58. package/dist/locale/es.min.js +1 -1
  59. package/dist/locale/es.min.mjs +1 -1
  60. package/dist/locale/es.mjs +1 -1
  61. package/dist/locale/et.js +1 -1
  62. package/dist/locale/et.min.js +1 -1
  63. package/dist/locale/et.min.mjs +1 -1
  64. package/dist/locale/et.mjs +1 -1
  65. package/dist/locale/eu.js +1 -1
  66. package/dist/locale/eu.min.js +1 -1
  67. package/dist/locale/eu.min.mjs +1 -1
  68. package/dist/locale/eu.mjs +1 -1
  69. package/dist/locale/fa.js +1 -1
  70. package/dist/locale/fa.min.js +1 -1
  71. package/dist/locale/fa.min.mjs +1 -1
  72. package/dist/locale/fa.mjs +1 -1
  73. package/dist/locale/fi.js +1 -1
  74. package/dist/locale/fi.min.js +1 -1
  75. package/dist/locale/fi.min.mjs +1 -1
  76. package/dist/locale/fi.mjs +1 -1
  77. package/dist/locale/fr.js +1 -1
  78. package/dist/locale/fr.min.js +1 -1
  79. package/dist/locale/fr.min.mjs +1 -1
  80. package/dist/locale/fr.mjs +1 -1
  81. package/dist/locale/he.js +1 -1
  82. package/dist/locale/he.min.js +1 -1
  83. package/dist/locale/he.min.mjs +1 -1
  84. package/dist/locale/he.mjs +1 -1
  85. package/dist/locale/hr.js +1 -1
  86. package/dist/locale/hr.min.js +1 -1
  87. package/dist/locale/hr.min.mjs +1 -1
  88. package/dist/locale/hr.mjs +1 -1
  89. package/dist/locale/hu.js +1 -1
  90. package/dist/locale/hu.min.js +1 -1
  91. package/dist/locale/hu.min.mjs +1 -1
  92. package/dist/locale/hu.mjs +1 -1
  93. package/dist/locale/hy-am.js +1 -1
  94. package/dist/locale/hy-am.min.js +1 -1
  95. package/dist/locale/hy-am.min.mjs +1 -1
  96. package/dist/locale/hy-am.mjs +1 -1
  97. package/dist/locale/id.js +1 -1
  98. package/dist/locale/id.min.js +1 -1
  99. package/dist/locale/id.min.mjs +1 -1
  100. package/dist/locale/id.mjs +1 -1
  101. package/dist/locale/it.js +1 -1
  102. package/dist/locale/it.min.js +1 -1
  103. package/dist/locale/it.min.mjs +1 -1
  104. package/dist/locale/it.mjs +1 -1
  105. package/dist/locale/ja.js +1 -1
  106. package/dist/locale/ja.min.js +1 -1
  107. package/dist/locale/ja.min.mjs +1 -1
  108. package/dist/locale/ja.mjs +1 -1
  109. package/dist/locale/kk.js +1 -1
  110. package/dist/locale/kk.min.js +1 -1
  111. package/dist/locale/kk.min.mjs +1 -1
  112. package/dist/locale/kk.mjs +1 -1
  113. package/dist/locale/km.js +1 -1
  114. package/dist/locale/km.min.js +1 -1
  115. package/dist/locale/km.min.mjs +1 -1
  116. package/dist/locale/km.mjs +1 -1
  117. package/dist/locale/ko.js +1 -1
  118. package/dist/locale/ko.min.js +1 -1
  119. package/dist/locale/ko.min.mjs +1 -1
  120. package/dist/locale/ko.mjs +1 -1
  121. package/dist/locale/ku.js +1 -1
  122. package/dist/locale/ku.min.js +1 -1
  123. package/dist/locale/ku.min.mjs +1 -1
  124. package/dist/locale/ku.mjs +1 -1
  125. package/dist/locale/ky.js +1 -1
  126. package/dist/locale/ky.min.js +1 -1
  127. package/dist/locale/ky.min.mjs +1 -1
  128. package/dist/locale/ky.mjs +1 -1
  129. package/dist/locale/lt.js +1 -1
  130. package/dist/locale/lt.min.js +1 -1
  131. package/dist/locale/lt.min.mjs +1 -1
  132. package/dist/locale/lt.mjs +1 -1
  133. package/dist/locale/lv.js +1 -1
  134. package/dist/locale/lv.min.js +1 -1
  135. package/dist/locale/lv.min.mjs +1 -1
  136. package/dist/locale/lv.mjs +1 -1
  137. package/dist/locale/mg.js +1 -1
  138. package/dist/locale/mg.min.js +1 -1
  139. package/dist/locale/mg.min.mjs +1 -1
  140. package/dist/locale/mg.mjs +1 -1
  141. package/dist/locale/mn.js +1 -1
  142. package/dist/locale/mn.min.js +1 -1
  143. package/dist/locale/mn.min.mjs +1 -1
  144. package/dist/locale/mn.mjs +1 -1
  145. package/dist/locale/nb-no.js +1 -1
  146. package/dist/locale/nb-no.min.js +1 -1
  147. package/dist/locale/nb-no.min.mjs +1 -1
  148. package/dist/locale/nb-no.mjs +1 -1
  149. package/dist/locale/nl.js +1 -1
  150. package/dist/locale/nl.min.js +1 -1
  151. package/dist/locale/nl.min.mjs +1 -1
  152. package/dist/locale/nl.mjs +1 -1
  153. package/dist/locale/pa.js +1 -1
  154. package/dist/locale/pa.min.js +1 -1
  155. package/dist/locale/pa.min.mjs +1 -1
  156. package/dist/locale/pa.mjs +1 -1
  157. package/dist/locale/pl.js +1 -1
  158. package/dist/locale/pl.min.js +1 -1
  159. package/dist/locale/pl.min.mjs +1 -1
  160. package/dist/locale/pl.mjs +1 -1
  161. package/dist/locale/pt-br.js +1 -1
  162. package/dist/locale/pt-br.min.js +1 -1
  163. package/dist/locale/pt-br.min.mjs +1 -1
  164. package/dist/locale/pt-br.mjs +1 -1
  165. package/dist/locale/pt.js +1 -1
  166. package/dist/locale/pt.min.js +1 -1
  167. package/dist/locale/pt.min.mjs +1 -1
  168. package/dist/locale/pt.mjs +1 -1
  169. package/dist/locale/ro.js +1 -1
  170. package/dist/locale/ro.min.js +1 -1
  171. package/dist/locale/ro.min.mjs +1 -1
  172. package/dist/locale/ro.mjs +1 -1
  173. package/dist/locale/ru.js +1 -1
  174. package/dist/locale/ru.min.js +1 -1
  175. package/dist/locale/ru.min.mjs +1 -1
  176. package/dist/locale/ru.mjs +1 -1
  177. package/dist/locale/sk.js +1 -1
  178. package/dist/locale/sk.min.js +1 -1
  179. package/dist/locale/sk.min.mjs +1 -1
  180. package/dist/locale/sk.mjs +1 -1
  181. package/dist/locale/sl.js +1 -1
  182. package/dist/locale/sl.min.js +1 -1
  183. package/dist/locale/sl.min.mjs +1 -1
  184. package/dist/locale/sl.mjs +1 -1
  185. package/dist/locale/sr.js +1 -1
  186. package/dist/locale/sr.min.js +1 -1
  187. package/dist/locale/sr.min.mjs +1 -1
  188. package/dist/locale/sr.mjs +1 -1
  189. package/dist/locale/sv.js +1 -1
  190. package/dist/locale/sv.min.js +1 -1
  191. package/dist/locale/sv.min.mjs +1 -1
  192. package/dist/locale/sv.mjs +1 -1
  193. package/dist/locale/ta.js +1 -1
  194. package/dist/locale/ta.min.js +1 -1
  195. package/dist/locale/ta.min.mjs +1 -1
  196. package/dist/locale/ta.mjs +1 -1
  197. package/dist/locale/th.js +1 -1
  198. package/dist/locale/th.min.js +1 -1
  199. package/dist/locale/th.min.mjs +1 -1
  200. package/dist/locale/th.mjs +1 -1
  201. package/dist/locale/tk.js +1 -1
  202. package/dist/locale/tk.min.js +1 -1
  203. package/dist/locale/tk.min.mjs +1 -1
  204. package/dist/locale/tk.mjs +1 -1
  205. package/dist/locale/tr.js +1 -1
  206. package/dist/locale/tr.min.js +1 -1
  207. package/dist/locale/tr.min.mjs +1 -1
  208. package/dist/locale/tr.mjs +1 -1
  209. package/dist/locale/ug-cn.js +1 -1
  210. package/dist/locale/ug-cn.min.js +1 -1
  211. package/dist/locale/ug-cn.min.mjs +1 -1
  212. package/dist/locale/ug-cn.mjs +1 -1
  213. package/dist/locale/uk.js +1 -1
  214. package/dist/locale/uk.min.js +1 -1
  215. package/dist/locale/uk.min.mjs +1 -1
  216. package/dist/locale/uk.mjs +1 -1
  217. package/dist/locale/uz-uz.js +1 -1
  218. package/dist/locale/uz-uz.min.js +1 -1
  219. package/dist/locale/uz-uz.min.mjs +1 -1
  220. package/dist/locale/uz-uz.mjs +1 -1
  221. package/dist/locale/vi.js +1 -1
  222. package/dist/locale/vi.min.js +1 -1
  223. package/dist/locale/vi.min.mjs +1 -1
  224. package/dist/locale/vi.mjs +1 -1
  225. package/dist/locale/zh-cn.js +1 -1
  226. package/dist/locale/zh-cn.min.js +1 -1
  227. package/dist/locale/zh-cn.min.mjs +1 -1
  228. package/dist/locale/zh-cn.mjs +1 -1
  229. package/dist/locale/zh-tw.js +1 -1
  230. package/dist/locale/zh-tw.min.js +1 -1
  231. package/dist/locale/zh-tw.min.mjs +1 -1
  232. package/dist/locale/zh-tw.mjs +1 -1
  233. package/es/components/cascader-panel/src/node.mjs +2 -1
  234. package/es/components/cascader-panel/src/node.mjs.map +1 -1
  235. package/es/components/index.mjs +1 -1
  236. package/es/components/loading/src/loading.mjs +3 -8
  237. package/es/components/loading/src/loading.mjs.map +1 -1
  238. package/es/components/message/src/method.mjs +3 -1
  239. package/es/components/message/src/method.mjs.map +1 -1
  240. package/es/components/pagination/src/components/sizes.vue.d.ts +21 -0
  241. package/es/components/rate/index.d.ts +4 -3
  242. package/es/components/rate/src/rate.vue.d.ts +17 -16
  243. package/es/components/rate/src/rate2.mjs +23 -19
  244. package/es/components/rate/src/rate2.mjs.map +1 -1
  245. package/es/components/select/index.d.ts +21 -0
  246. package/es/components/select/src/select.mjs +20 -6
  247. package/es/components/select/src/select.mjs.map +1 -1
  248. package/es/components/select/src/select.vue.d.ts +28 -7
  249. package/es/components/select/src/useSelect.mjs +5 -2
  250. package/es/components/select/src/useSelect.mjs.map +1 -1
  251. package/es/components/table/src/table-column/render-helper.mjs +1 -1
  252. package/es/components/table/src/table-column/render-helper.mjs.map +1 -1
  253. package/es/components/table/src/table.mjs +1 -1
  254. package/es/components/table/src/table.mjs.map +1 -1
  255. package/es/components/table/src/util.mjs +3 -0
  256. package/es/components/table/src/util.mjs.map +1 -1
  257. package/es/components/table-v2/src/table-v2.mjs +2 -2
  258. package/es/components/table-v2/src/table-v2.mjs.map +1 -1
  259. package/es/components/tabs/index.d.ts +8 -8
  260. package/es/components/tabs/index.mjs +1 -1
  261. package/es/components/tabs/src/tab-bar2.mjs +1 -1
  262. package/es/components/tabs/src/tab-bar2.mjs.map +1 -1
  263. package/es/components/tabs/src/tab-nav.d.ts +45 -58
  264. package/es/components/tabs/src/tab-nav.mjs +12 -14
  265. package/es/components/tabs/src/tab-nav.mjs.map +1 -1
  266. package/es/components/tabs/src/tab-pane2.mjs.map +1 -1
  267. package/es/components/tabs/src/tabs.d.ts +12 -12
  268. package/es/components/tabs/src/tabs.mjs +8 -8
  269. package/es/components/tabs/src/tabs.mjs.map +1 -1
  270. package/es/components/time-select/index.d.ts +84 -0
  271. package/es/components/time-select/src/time-select.vue.d.ts +42 -0
  272. package/es/components/tree/src/model/util.d.ts +3 -1
  273. package/es/components/tree/src/model/util.mjs +9 -1
  274. package/es/components/tree/src/model/util.mjs.map +1 -1
  275. package/es/components/tree/src/tree-node.mjs +2 -4
  276. package/es/components/tree/src/tree-node.mjs.map +1 -1
  277. package/es/components/tree/src/tree.mjs +3 -13
  278. package/es/components/tree/src/tree.mjs.map +1 -1
  279. package/es/hooks/use-popper-container/index.mjs +4 -1
  280. package/es/hooks/use-popper-container/index.mjs.map +1 -1
  281. package/es/index.mjs +1 -1
  282. package/es/utils/index.mjs +2 -2
  283. package/es/utils/strings.d.ts +2 -1
  284. package/es/utils/strings.mjs +4 -2
  285. package/es/utils/strings.mjs.map +1 -1
  286. package/es/version.d.ts +1 -1
  287. package/es/version.mjs +1 -1
  288. package/es/version.mjs.map +1 -1
  289. package/lib/components/cascader-panel/src/node.js +3 -2
  290. package/lib/components/cascader-panel/src/node.js.map +1 -1
  291. package/lib/components/index.js +1 -0
  292. package/lib/components/index.js.map +1 -1
  293. package/lib/components/loading/src/loading.js +3 -8
  294. package/lib/components/loading/src/loading.js.map +1 -1
  295. package/lib/components/message/src/method.js +3 -1
  296. package/lib/components/message/src/method.js.map +1 -1
  297. package/lib/components/pagination/src/components/sizes.vue.d.ts +21 -0
  298. package/lib/components/rate/index.d.ts +4 -3
  299. package/lib/components/rate/src/rate.vue.d.ts +17 -16
  300. package/lib/components/rate/src/rate2.js +21 -17
  301. package/lib/components/rate/src/rate2.js.map +1 -1
  302. package/lib/components/select/index.d.ts +21 -0
  303. package/lib/components/select/src/select.js +19 -5
  304. package/lib/components/select/src/select.js.map +1 -1
  305. package/lib/components/select/src/select.vue.d.ts +28 -7
  306. package/lib/components/select/src/useSelect.js +5 -2
  307. package/lib/components/select/src/useSelect.js.map +1 -1
  308. package/lib/components/table/src/table-column/render-helper.js +1 -1
  309. package/lib/components/table/src/table-column/render-helper.js.map +1 -1
  310. package/lib/components/table/src/table.js +1 -1
  311. package/lib/components/table/src/table.js.map +1 -1
  312. package/lib/components/table/src/util.js +3 -0
  313. package/lib/components/table/src/util.js.map +1 -1
  314. package/lib/components/table-v2/src/table-v2.js +2 -2
  315. package/lib/components/table-v2/src/table-v2.js.map +1 -1
  316. package/lib/components/tabs/index.d.ts +8 -8
  317. package/lib/components/tabs/index.js +1 -0
  318. package/lib/components/tabs/index.js.map +1 -1
  319. package/lib/components/tabs/src/tab-bar2.js +3 -3
  320. package/lib/components/tabs/src/tab-bar2.js.map +1 -1
  321. package/lib/components/tabs/src/tab-nav.d.ts +45 -58
  322. package/lib/components/tabs/src/tab-nav.js +17 -18
  323. package/lib/components/tabs/src/tab-nav.js.map +1 -1
  324. package/lib/components/tabs/src/tab-pane2.js.map +1 -1
  325. package/lib/components/tabs/src/tabs.d.ts +12 -12
  326. package/lib/components/tabs/src/tabs.js +8 -8
  327. package/lib/components/tabs/src/tabs.js.map +1 -1
  328. package/lib/components/time-select/index.d.ts +84 -0
  329. package/lib/components/time-select/src/time-select.vue.d.ts +42 -0
  330. package/lib/components/tree/src/model/util.d.ts +3 -1
  331. package/lib/components/tree/src/model/util.js +9 -0
  332. package/lib/components/tree/src/model/util.js.map +1 -1
  333. package/lib/components/tree/src/tree-node.js +1 -3
  334. package/lib/components/tree/src/tree-node.js.map +1 -1
  335. package/lib/components/tree/src/tree.js +2 -12
  336. package/lib/components/tree/src/tree.js.map +1 -1
  337. package/lib/hooks/use-popper-container/index.js +4 -1
  338. package/lib/hooks/use-popper-container/index.js.map +1 -1
  339. package/lib/index.js +1 -0
  340. package/lib/index.js.map +1 -1
  341. package/lib/utils/index.js +1 -4
  342. package/lib/utils/index.js.map +1 -1
  343. package/lib/utils/strings.d.ts +2 -1
  344. package/lib/utils/strings.js +2 -4
  345. package/lib/utils/strings.js.map +1 -1
  346. package/lib/version.d.ts +1 -1
  347. package/lib/version.js +1 -1
  348. package/lib/version.js.map +1 -1
  349. package/package.json +2 -2
  350. package/tags.json +1 -1
  351. package/theme-chalk/el-select-v2.css +1 -1
  352. package/theme-chalk/el-select.css +1 -1
  353. package/theme-chalk/index.css +1 -1
  354. package/theme-chalk/src/select-v2.scss +1 -0
  355. package/theme-chalk/src/select.scss +7 -3
  356. package/web-types.json +1 -1
  357. package/es/components/popper/src/container.d.ts +0 -3
  358. package/es/components/popper/src/container.mjs +0 -23
  359. package/es/components/popper/src/container.mjs.map +0 -1
  360. package/lib/components/popper/src/container.d.ts +0 -3
  361. package/lib/components/popper/src/container.js +0 -29
  362. package/lib/components/popper/src/container.js.map +0 -1
@@ -225,7 +225,7 @@ const TableV2 = vue.defineComponent({
225
225
  let _slot;
226
226
  return slots.cell ? vue.createVNode(cell["default"], vue.mergeProps(props3, tableCellProps, {
227
227
  "style": _columnsStyles[props3.column.key]
228
- }), _isSlot(_slot = slots.cell()) ? _slot : {
228
+ }), _isSlot(_slot = slots.cell(props3)) ? _slot : {
229
229
  default: () => [_slot]
230
230
  }) : vue.createVNode(cell["default"], vue.mergeProps(props3, tableCellProps, {
231
231
  "style": _columnsStyles[props3.column.key]
@@ -238,7 +238,7 @@ const TableV2 = vue.defineComponent({
238
238
  let _slot2;
239
239
  return slots["header-cell"] ? vue.createVNode(headerCell["default"], vue.mergeProps(props3, tableHeaderCellProps, {
240
240
  "style": _columnsStyles[props3.column.key]
241
- }), _isSlot(_slot2 = slots["header-cell"]()) ? _slot2 : {
241
+ }), _isSlot(_slot2 = slots["header-cell"](props3)) ? _slot2 : {
242
242
  default: () => [_slot2]
243
243
  }) : vue.createVNode(headerCell["default"], vue.mergeProps(props3, tableHeaderCellProps, {
244
244
  "style": _columnsStyles[props3.column.key]
@@ -1 +1 @@
1
- {"version":3,"file":"table-v2.js","sources":["../../../../../../packages/components/table-v2/src/table-v2.tsx"],"sourcesContent":["// @ts-nocheck\nimport { defineComponent, provide, unref } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useTable } from './use-table'\nimport { TableV2InjectionKey } from './tokens'\nimport { tableV2Props } from './table'\n// renderers\nimport MainTable from './renderers/main-table'\nimport LeftTable from './renderers/left-table'\nimport RightTable from './renderers/right-table'\nimport Row from './renderers/row'\nimport Cell from './renderers/cell'\nimport Header from './renderers/header'\nimport HeaderCell from './renderers/header-cell'\nimport Footer from './renderers/footer'\nimport Empty from './renderers/empty'\nimport Overlay from './renderers/overlay'\n\nimport type { TableGridRowSlotParams } from './table-grid'\nimport type { ScrollStrategy } from './composables/use-scrollbar'\nimport type {\n TableV2HeaderRendererParams,\n TableV2HeaderRowCellRendererParams,\n TableV2RowCellRenderParam,\n} from './components'\n\nconst COMPONENT_NAME = 'ElTableV2'\n\nconst TableV2 = defineComponent({\n name: COMPONENT_NAME,\n props: tableV2Props,\n setup(props, { slots, expose }) {\n const ns = useNamespace('table-v2')\n\n const {\n columnsStyles,\n fixedColumnsOnLeft,\n fixedColumnsOnRight,\n mainColumns,\n mainTableHeight,\n fixedTableHeight,\n leftTableWidth,\n rightTableWidth,\n data,\n depthMap,\n expandedRowKeys,\n hasFixedColumns,\n hoveringRowKey,\n mainTableRef,\n leftTableRef,\n rightTableRef,\n isDynamic,\n isResetting,\n isScrolling,\n\n bodyWidth,\n emptyStyle,\n rootStyle,\n headerWidth,\n footerHeight,\n\n showEmpty,\n\n // exposes\n scrollTo,\n scrollToLeft,\n scrollToTop,\n scrollToRow,\n\n getRowHeight,\n onColumnSorted,\n onRowHeightChange,\n onRowHovered,\n onRowExpanded,\n onRowsRendered,\n onScroll,\n onVerticalScroll,\n } = useTable(props)\n\n expose({\n /**\n * @description scroll to a given position\n * @params params {{ scrollLeft?: number, scrollTop?: number }} where to scroll to.\n */\n scrollTo,\n /**\n * @description scroll to a given position horizontally\n * @params scrollLeft {Number} where to scroll to.\n */\n scrollToLeft,\n /**\n * @description scroll to a given position vertically\n * @params scrollTop { Number } where to scroll to.\n */\n scrollToTop,\n /**\n * @description scroll to a given row\n * @params row {Number} which row to scroll to\n * @params @optional strategy {ScrollStrategy} use what strategy to scroll to\n */\n scrollToRow,\n })\n\n provide(TableV2InjectionKey, {\n ns,\n isResetting,\n hoveringRowKey,\n isScrolling,\n })\n\n return () => {\n const {\n cache,\n cellProps,\n estimatedRowHeight,\n expandColumnKey,\n fixedData,\n headerHeight,\n headerClass,\n headerProps,\n headerCellProps,\n sortBy,\n sortState,\n rowHeight,\n rowClass,\n rowEventHandlers,\n rowKey,\n rowProps,\n scrollbarAlwaysOn,\n indentSize,\n iconSize,\n useIsScrolling,\n vScrollbarSize,\n width,\n } = props\n\n const _data = unref(data)\n\n const mainTableProps = {\n cache,\n class: ns.e('main'),\n columns: unref(mainColumns),\n data: _data,\n fixedData,\n estimatedRowHeight,\n bodyWidth: unref(bodyWidth),\n headerHeight,\n headerWidth: unref(headerWidth),\n height: unref(mainTableHeight),\n mainTableRef,\n rowKey,\n rowHeight,\n scrollbarAlwaysOn,\n scrollbarStartGap: 2,\n scrollbarEndGap: vScrollbarSize,\n useIsScrolling,\n width,\n getRowHeight,\n onRowsRendered,\n onScroll,\n }\n\n const leftColumnsWidth = unref(leftTableWidth)\n const _fixedTableHeight = unref(fixedTableHeight)\n\n const leftTableProps = {\n cache,\n class: ns.e('left'),\n columns: unref(fixedColumnsOnLeft),\n data: _data,\n estimatedRowHeight,\n leftTableRef,\n rowHeight,\n bodyWidth: leftColumnsWidth,\n headerWidth: leftColumnsWidth,\n headerHeight,\n height: _fixedTableHeight,\n rowKey,\n scrollbarAlwaysOn,\n scrollbarStartGap: 2,\n scrollbarEndGap: vScrollbarSize,\n useIsScrolling,\n width: leftColumnsWidth,\n getRowHeight,\n onScroll: onVerticalScroll,\n }\n\n const rightColumnsWidth = unref(rightTableWidth)\n const rightColumnsWidthWithScrollbar = rightColumnsWidth + vScrollbarSize\n\n const rightTableProps = {\n cache,\n class: ns.e('right'),\n columns: unref(fixedColumnsOnRight),\n data: _data,\n estimatedRowHeight,\n rightTableRef,\n rowHeight,\n bodyWidth: rightColumnsWidthWithScrollbar,\n headerWidth: rightColumnsWidthWithScrollbar,\n headerHeight,\n height: _fixedTableHeight,\n rowKey,\n scrollbarAlwaysOn,\n scrollbarStartGap: 2,\n scrollbarEndGap: vScrollbarSize,\n width: rightColumnsWidthWithScrollbar,\n style: `--${unref(\n ns.namespace\n )}-table-scrollbar-size: ${vScrollbarSize}px`,\n useIsScrolling,\n getRowHeight,\n onScroll: onVerticalScroll,\n }\n const _columnsStyles = unref(columnsStyles)\n\n const tableRowProps = {\n ns,\n depthMap: unref(depthMap),\n columnsStyles: _columnsStyles,\n expandColumnKey,\n expandedRowKeys: unref(expandedRowKeys),\n estimatedRowHeight,\n hasFixedColumns: unref(hasFixedColumns),\n hoveringRowKey: unref(hoveringRowKey),\n rowProps,\n rowClass,\n rowKey,\n rowEventHandlers,\n onRowHovered,\n onRowExpanded,\n onRowHeightChange,\n }\n\n const tableCellProps = {\n cellProps,\n expandColumnKey,\n indentSize,\n iconSize,\n rowKey,\n expandedRowKeys: unref(expandedRowKeys),\n ns,\n }\n\n const tableHeaderProps = {\n ns,\n headerClass,\n headerProps,\n columnsStyles: _columnsStyles,\n }\n\n const tableHeaderCellProps = {\n ns,\n\n sortBy,\n sortState,\n headerCellProps,\n onColumnSorted,\n }\n\n const tableSlots = {\n row: (props: TableGridRowSlotParams) => (\n <Row {...props} {...tableRowProps}>\n {{\n row: slots.row,\n cell: (props: TableV2RowCellRenderParam) =>\n slots.cell ? (\n <Cell\n {...props}\n {...tableCellProps}\n style={_columnsStyles[props.column.key]}\n >\n {slots.cell()}\n </Cell>\n ) : (\n <Cell\n {...props}\n {...tableCellProps}\n style={_columnsStyles[props.column.key]}\n />\n ),\n }}\n </Row>\n ),\n header: (props: TableV2HeaderRendererParams) => (\n <Header {...props} {...tableHeaderProps}>\n {{\n header: slots.header,\n cell: (props: TableV2HeaderRowCellRendererParams) =>\n slots['header-cell'] ? (\n <HeaderCell\n {...props}\n {...tableHeaderCellProps}\n style={_columnsStyles[props.column.key]}\n >\n {slots['header-cell']()}\n </HeaderCell>\n ) : (\n <HeaderCell\n {...props}\n {...tableHeaderCellProps}\n style={_columnsStyles[props.column.key]}\n />\n ),\n }}\n </Header>\n ),\n }\n\n const rootKls = [\n props.class,\n ns.b(),\n ns.e('root'),\n {\n [ns.is('dynamic')]: unref(isDynamic),\n },\n ]\n\n const footerProps = {\n class: ns.e('footer'),\n style: unref(footerHeight),\n }\n\n return (\n <div class={rootKls} style={unref(rootStyle)}>\n <MainTable {...mainTableProps}>{tableSlots}</MainTable>\n <LeftTable {...leftTableProps}>{tableSlots}</LeftTable>\n <RightTable {...rightTableProps}>{tableSlots}</RightTable>\n {slots.footer && (\n <Footer {...footerProps}>{{ default: slots.footer }}</Footer>\n )}\n {unref(showEmpty) && (\n <Empty class={ns.e('empty')} style={unref(emptyStyle)}>\n {{ default: slots.empty }}\n </Empty>\n )}\n {slots.overlay && (\n <Overlay class={ns.e('overlay')}>\n {{ default: slots.overlay }}\n </Overlay>\n )}\n </div>\n )\n }\n },\n})\n\nexport default TableV2\n\nexport type TableV2Instance = InstanceType<typeof TableV2> & {\n /**\n * @description scroll to a given position\n * @params params {{ scrollLeft?: number, scrollTop?: number }} where to scroll to.\n */\n scrollTo: (param: { scrollLeft?: number; scrollTop?: number }) => void\n /**\n * @description scroll to a given position horizontally\n * @params scrollLeft {Number} where to scroll to.\n */\n scrollToLeft: (scrollLeft: number) => void\n /**\n * @description scroll to a given position vertically\n * @params scrollTop { Number } where to scroll to.\n */\n scrollToTop: (scrollTop: number) => void\n /**\n * @description scroll to a given row\n * @params row {Number} which row to scroll to\n * @params strategy {ScrollStrategy} use what strategy to scroll to\n */\n scrollToRow(row: number, strategy?: ScrollStrategy): void\n}\n"],"names":["Empty","Overlay","_isVNode","COMPONENT_NAME","TableV2","name","props","expose","columnsStyles","fixedColumnsOnLeft","fixedColumnsOnRight","mainColumns","mainTableHeight","fixedTableHeight","leftTableWidth","rightTableWidth","data","depthMap","expandedRowKeys","hasFixedColumns","hoveringRowKey","mainTableRef","leftTableRef","rightTableRef","isDynamic","isResetting","isScrolling","bodyWidth","emptyStyle","rootStyle","headerWidth","footerHeight","showEmpty","scrollTo","scrollToLeft","scrollToTop","scrollToRow","getRowHeight","onColumnSorted","useTable","onRowExpanded","onRowsRendered","onScroll","onVerticalScroll","TableV2InjectionKey","unref","cache","cellProps","estimatedRowHeight","expandColumnKey","fixedData","headerHeight","headerClass","headerProps","headerCellProps","sortBy","sortState","rowHeight","rowClass","rowEventHandlers","rowKey","rowProps","scrollbarAlwaysOn","indentSize","iconSize","useIsScrolling","vScrollbarSize","width","class","columns","height","scrollbarStartGap","scrollbarEndGap","_data","style","tableRowProps","ns","_createVNode","Cell","_mergeProps","onRowHeightChange","Header","HeaderCell","_columnsStyles","row","cell","slots","Footer","header"],"mappings":"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"}
1
+ {"version":3,"file":"table-v2.js","sources":["../../../../../../packages/components/table-v2/src/table-v2.tsx"],"sourcesContent":["// @ts-nocheck\nimport { defineComponent, provide, unref } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useTable } from './use-table'\nimport { TableV2InjectionKey } from './tokens'\nimport { tableV2Props } from './table'\n// renderers\nimport MainTable from './renderers/main-table'\nimport LeftTable from './renderers/left-table'\nimport RightTable from './renderers/right-table'\nimport Row from './renderers/row'\nimport Cell from './renderers/cell'\nimport Header from './renderers/header'\nimport HeaderCell from './renderers/header-cell'\nimport Footer from './renderers/footer'\nimport Empty from './renderers/empty'\nimport Overlay from './renderers/overlay'\n\nimport type { TableGridRowSlotParams } from './table-grid'\nimport type { ScrollStrategy } from './composables/use-scrollbar'\nimport type {\n TableV2HeaderRendererParams,\n TableV2HeaderRowCellRendererParams,\n TableV2RowCellRenderParam,\n} from './components'\n\nconst COMPONENT_NAME = 'ElTableV2'\n\nconst TableV2 = defineComponent({\n name: COMPONENT_NAME,\n props: tableV2Props,\n setup(props, { slots, expose }) {\n const ns = useNamespace('table-v2')\n\n const {\n columnsStyles,\n fixedColumnsOnLeft,\n fixedColumnsOnRight,\n mainColumns,\n mainTableHeight,\n fixedTableHeight,\n leftTableWidth,\n rightTableWidth,\n data,\n depthMap,\n expandedRowKeys,\n hasFixedColumns,\n hoveringRowKey,\n mainTableRef,\n leftTableRef,\n rightTableRef,\n isDynamic,\n isResetting,\n isScrolling,\n\n bodyWidth,\n emptyStyle,\n rootStyle,\n headerWidth,\n footerHeight,\n\n showEmpty,\n\n // exposes\n scrollTo,\n scrollToLeft,\n scrollToTop,\n scrollToRow,\n\n getRowHeight,\n onColumnSorted,\n onRowHeightChange,\n onRowHovered,\n onRowExpanded,\n onRowsRendered,\n onScroll,\n onVerticalScroll,\n } = useTable(props)\n\n expose({\n /**\n * @description scroll to a given position\n * @params params {{ scrollLeft?: number, scrollTop?: number }} where to scroll to.\n */\n scrollTo,\n /**\n * @description scroll to a given position horizontally\n * @params scrollLeft {Number} where to scroll to.\n */\n scrollToLeft,\n /**\n * @description scroll to a given position vertically\n * @params scrollTop { Number } where to scroll to.\n */\n scrollToTop,\n /**\n * @description scroll to a given row\n * @params row {Number} which row to scroll to\n * @params @optional strategy {ScrollStrategy} use what strategy to scroll to\n */\n scrollToRow,\n })\n\n provide(TableV2InjectionKey, {\n ns,\n isResetting,\n hoveringRowKey,\n isScrolling,\n })\n\n return () => {\n const {\n cache,\n cellProps,\n estimatedRowHeight,\n expandColumnKey,\n fixedData,\n headerHeight,\n headerClass,\n headerProps,\n headerCellProps,\n sortBy,\n sortState,\n rowHeight,\n rowClass,\n rowEventHandlers,\n rowKey,\n rowProps,\n scrollbarAlwaysOn,\n indentSize,\n iconSize,\n useIsScrolling,\n vScrollbarSize,\n width,\n } = props\n\n const _data = unref(data)\n\n const mainTableProps = {\n cache,\n class: ns.e('main'),\n columns: unref(mainColumns),\n data: _data,\n fixedData,\n estimatedRowHeight,\n bodyWidth: unref(bodyWidth),\n headerHeight,\n headerWidth: unref(headerWidth),\n height: unref(mainTableHeight),\n mainTableRef,\n rowKey,\n rowHeight,\n scrollbarAlwaysOn,\n scrollbarStartGap: 2,\n scrollbarEndGap: vScrollbarSize,\n useIsScrolling,\n width,\n getRowHeight,\n onRowsRendered,\n onScroll,\n }\n\n const leftColumnsWidth = unref(leftTableWidth)\n const _fixedTableHeight = unref(fixedTableHeight)\n\n const leftTableProps = {\n cache,\n class: ns.e('left'),\n columns: unref(fixedColumnsOnLeft),\n data: _data,\n estimatedRowHeight,\n leftTableRef,\n rowHeight,\n bodyWidth: leftColumnsWidth,\n headerWidth: leftColumnsWidth,\n headerHeight,\n height: _fixedTableHeight,\n rowKey,\n scrollbarAlwaysOn,\n scrollbarStartGap: 2,\n scrollbarEndGap: vScrollbarSize,\n useIsScrolling,\n width: leftColumnsWidth,\n getRowHeight,\n onScroll: onVerticalScroll,\n }\n\n const rightColumnsWidth = unref(rightTableWidth)\n const rightColumnsWidthWithScrollbar = rightColumnsWidth + vScrollbarSize\n\n const rightTableProps = {\n cache,\n class: ns.e('right'),\n columns: unref(fixedColumnsOnRight),\n data: _data,\n estimatedRowHeight,\n rightTableRef,\n rowHeight,\n bodyWidth: rightColumnsWidthWithScrollbar,\n headerWidth: rightColumnsWidthWithScrollbar,\n headerHeight,\n height: _fixedTableHeight,\n rowKey,\n scrollbarAlwaysOn,\n scrollbarStartGap: 2,\n scrollbarEndGap: vScrollbarSize,\n width: rightColumnsWidthWithScrollbar,\n style: `--${unref(\n ns.namespace\n )}-table-scrollbar-size: ${vScrollbarSize}px`,\n useIsScrolling,\n getRowHeight,\n onScroll: onVerticalScroll,\n }\n const _columnsStyles = unref(columnsStyles)\n\n const tableRowProps = {\n ns,\n depthMap: unref(depthMap),\n columnsStyles: _columnsStyles,\n expandColumnKey,\n expandedRowKeys: unref(expandedRowKeys),\n estimatedRowHeight,\n hasFixedColumns: unref(hasFixedColumns),\n hoveringRowKey: unref(hoveringRowKey),\n rowProps,\n rowClass,\n rowKey,\n rowEventHandlers,\n onRowHovered,\n onRowExpanded,\n onRowHeightChange,\n }\n\n const tableCellProps = {\n cellProps,\n expandColumnKey,\n indentSize,\n iconSize,\n rowKey,\n expandedRowKeys: unref(expandedRowKeys),\n ns,\n }\n\n const tableHeaderProps = {\n ns,\n headerClass,\n headerProps,\n columnsStyles: _columnsStyles,\n }\n\n const tableHeaderCellProps = {\n ns,\n\n sortBy,\n sortState,\n headerCellProps,\n onColumnSorted,\n }\n\n const tableSlots = {\n row: (props: TableGridRowSlotParams) => (\n <Row {...props} {...tableRowProps}>\n {{\n row: slots.row,\n cell: (props: TableV2RowCellRenderParam) =>\n slots.cell ? (\n <Cell\n {...props}\n {...tableCellProps}\n style={_columnsStyles[props.column.key]}\n >\n {slots.cell(props)}\n </Cell>\n ) : (\n <Cell\n {...props}\n {...tableCellProps}\n style={_columnsStyles[props.column.key]}\n />\n ),\n }}\n </Row>\n ),\n header: (props: TableV2HeaderRendererParams) => (\n <Header {...props} {...tableHeaderProps}>\n {{\n header: slots.header,\n cell: (props: TableV2HeaderRowCellRendererParams) =>\n slots['header-cell'] ? (\n <HeaderCell\n {...props}\n {...tableHeaderCellProps}\n style={_columnsStyles[props.column.key]}\n >\n {slots['header-cell'](props)}\n </HeaderCell>\n ) : (\n <HeaderCell\n {...props}\n {...tableHeaderCellProps}\n style={_columnsStyles[props.column.key]}\n />\n ),\n }}\n </Header>\n ),\n }\n\n const rootKls = [\n props.class,\n ns.b(),\n ns.e('root'),\n {\n [ns.is('dynamic')]: unref(isDynamic),\n },\n ]\n\n const footerProps = {\n class: ns.e('footer'),\n style: unref(footerHeight),\n }\n\n return (\n <div class={rootKls} style={unref(rootStyle)}>\n <MainTable {...mainTableProps}>{tableSlots}</MainTable>\n <LeftTable {...leftTableProps}>{tableSlots}</LeftTable>\n <RightTable {...rightTableProps}>{tableSlots}</RightTable>\n {slots.footer && (\n <Footer {...footerProps}>{{ default: slots.footer }}</Footer>\n )}\n {unref(showEmpty) && (\n <Empty class={ns.e('empty')} style={unref(emptyStyle)}>\n {{ default: slots.empty }}\n </Empty>\n )}\n {slots.overlay && (\n <Overlay class={ns.e('overlay')}>\n {{ default: slots.overlay }}\n </Overlay>\n )}\n </div>\n )\n }\n },\n})\n\nexport default TableV2\n\nexport type TableV2Instance = InstanceType<typeof TableV2> & {\n /**\n * @description scroll to a given position\n * @params params {{ scrollLeft?: number, scrollTop?: number }} where to scroll to.\n */\n scrollTo: (param: { scrollLeft?: number; scrollTop?: number }) => void\n /**\n * @description scroll to a given position horizontally\n * @params scrollLeft {Number} where to scroll to.\n */\n scrollToLeft: (scrollLeft: number) => void\n /**\n * @description scroll to a given position vertically\n * @params scrollTop { Number } where to scroll to.\n */\n scrollToTop: (scrollTop: number) => void\n /**\n * @description scroll to a given row\n * @params row {Number} which row to scroll to\n * @params strategy {ScrollStrategy} use what strategy to scroll to\n */\n scrollToRow(row: number, strategy?: ScrollStrategy): void\n}\n"],"names":["Empty","Overlay","_isVNode","COMPONENT_NAME","TableV2","name","props","expose","columnsStyles","fixedColumnsOnLeft","fixedColumnsOnRight","mainColumns","mainTableHeight","fixedTableHeight","leftTableWidth","rightTableWidth","data","depthMap","expandedRowKeys","hasFixedColumns","hoveringRowKey","mainTableRef","leftTableRef","rightTableRef","isDynamic","isResetting","isScrolling","bodyWidth","emptyStyle","rootStyle","headerWidth","footerHeight","showEmpty","scrollTo","scrollToLeft","scrollToTop","scrollToRow","getRowHeight","onColumnSorted","useTable","onRowExpanded","onRowsRendered","onScroll","onVerticalScroll","TableV2InjectionKey","unref","cache","cellProps","estimatedRowHeight","expandColumnKey","fixedData","headerHeight","headerClass","headerProps","headerCellProps","sortBy","sortState","rowHeight","rowClass","rowEventHandlers","rowKey","rowProps","scrollbarAlwaysOn","indentSize","iconSize","useIsScrolling","vScrollbarSize","width","class","columns","height","scrollbarStartGap","scrollbarEndGap","_data","style","tableRowProps","ns","_createVNode","Cell","_mergeProps","onRowHeightChange","Header","HeaderCell","_columnsStyles","row","cell","LeftTable","slots","Footer","header"],"mappings":"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"}
@@ -28,7 +28,7 @@ export declare const ElTabs: import("element-plus/es/utils").SFCWithInstall<impo
28
28
  readonly stretch: BooleanConstructor;
29
29
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
30
30
  "update:modelValue": (name: import("./src/tabs").TabPanelName) => boolean;
31
- 'tab-click': (pane: {
31
+ tabClick: (pane: {
32
32
  uid: number;
33
33
  slots: Readonly<{
34
34
  [name: string]: import("vue").Slot | undefined;
@@ -45,10 +45,10 @@ export declare const ElTabs: import("element-plus/es/utils").SFCWithInstall<impo
45
45
  index: string | undefined;
46
46
  isClosable: boolean;
47
47
  }, ev: Event) => boolean;
48
- 'tab-change': (name: import("./src/tabs").TabPanelName) => boolean;
48
+ tabChange: (name: import("./src/tabs").TabPanelName) => boolean;
49
49
  edit: (paneName: import("./src/tabs").TabPanelName | undefined, action: "add" | "remove") => boolean;
50
- 'tab-remove': (name: import("./src/tabs").TabPanelName) => boolean;
51
- 'tab-add': () => boolean;
50
+ tabRemove: (name: import("./src/tabs").TabPanelName) => boolean;
51
+ tabAdd: () => boolean;
52
52
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
53
53
  readonly type: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "" | "card" | "border-card", unknown, "", boolean>;
54
54
  readonly activeName: {
@@ -79,7 +79,7 @@ export declare const ElTabs: import("element-plus/es/utils").SFCWithInstall<impo
79
79
  readonly stretch: BooleanConstructor;
80
80
  }>> & {
81
81
  "onUpdate:modelValue"?: ((name: import("./src/tabs").TabPanelName) => any) | undefined;
82
- "onTab-click"?: ((pane: {
82
+ onTabClick?: ((pane: {
83
83
  uid: number;
84
84
  slots: Readonly<{
85
85
  [name: string]: import("vue").Slot | undefined;
@@ -96,10 +96,10 @@ export declare const ElTabs: import("element-plus/es/utils").SFCWithInstall<impo
96
96
  index: string | undefined;
97
97
  isClosable: boolean;
98
98
  }, ev: Event) => any) | undefined;
99
- "onTab-change"?: ((name: import("./src/tabs").TabPanelName) => any) | undefined;
99
+ onTabChange?: ((name: import("./src/tabs").TabPanelName) => any) | undefined;
100
100
  onEdit?: ((paneName: import("./src/tabs").TabPanelName | undefined, action: "add" | "remove") => any) | undefined;
101
- "onTab-remove"?: ((name: import("./src/tabs").TabPanelName) => any) | undefined;
102
- "onTab-add"?: (() => any) | undefined;
101
+ onTabRemove?: ((name: import("./src/tabs").TabPanelName) => any) | undefined;
102
+ onTabAdd?: (() => any) | undefined;
103
103
  }, {
104
104
  readonly type: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "card" | "border-card", unknown>;
105
105
  readonly closable: boolean;
@@ -18,6 +18,7 @@ const ElTabPane = install.withNoopInstall(tabPane$1["default"]);
18
18
  exports.tabsEmits = tabs.tabsEmits;
19
19
  exports.tabsProps = tabs.tabsProps;
20
20
  exports.tabBarProps = tabBar.tabBarProps;
21
+ exports.tabNavEmits = tabNav.tabNavEmits;
21
22
  exports.tabNavProps = tabNav.tabNavProps;
22
23
  exports.tabPaneProps = tabPane.tabPaneProps;
23
24
  exports.ElTabPane = ElTabPane;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/components/tabs/index.ts"],"sourcesContent":["import { withInstall, withNoopInstall } from '@element-plus/utils'\nimport Tabs from './src/tabs'\nimport TabPane from './src/tab-pane.vue'\n\nexport const ElTabs = withInstall(Tabs, {\n TabPane,\n})\nexport const ElTabPane = withNoopInstall(TabPane)\nexport default ElTabs\n\nexport * from './src/tabs'\nexport * from './src/tab-bar'\nexport * from './src/tab-nav'\nexport * from './src/tab-pane'\n"],"names":["withInstall","Tabs","TabPane","withNoopInstall"],"mappings":";;;;;;;;;;;;AAGY,MAAC,MAAM,GAAGA,mBAAW,CAACC,eAAI,EAAE;AACxC,WAAEC,oBAAO;AACT,CAAC,EAAE;AACS,MAAC,SAAS,GAAGC,uBAAe,CAACD,oBAAO;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/components/tabs/index.ts"],"sourcesContent":["import { withInstall, withNoopInstall } from '@element-plus/utils'\nimport Tabs from './src/tabs'\nimport TabPane from './src/tab-pane.vue'\n\nexport const ElTabs = withInstall(Tabs, {\n TabPane,\n})\nexport const ElTabPane = withNoopInstall(TabPane)\nexport default ElTabs\n\nexport * from './src/tabs'\nexport * from './src/tab-bar'\nexport * from './src/tab-nav'\nexport * from './src/tab-pane'\n"],"names":["withInstall","Tabs","TabPane","withNoopInstall"],"mappings":";;;;;;;;;;;;AAGY,MAAC,MAAM,GAAGA,mBAAW,CAACC,eAAI,EAAE;AACxC,WAAEC,oBAAO;AACT,CAAC,EAAE;AACS,MAAC,SAAS,GAAGC,uBAAe,CAACD,oBAAO;;;;;;;;;;;;"}
@@ -12,7 +12,7 @@ var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper
12
12
  var tabs = require('../../../tokens/tabs.js');
13
13
  var error = require('../../../utils/error.js');
14
14
  var index = require('../../../hooks/use-namespace/index.js');
15
- var shared = require('@vue/shared');
15
+ var strings = require('../../../utils/strings.js');
16
16
 
17
17
  const __default__ = {
18
18
  name: "ElTabBar"
@@ -43,7 +43,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
43
43
  if (!tab.active) {
44
44
  return true;
45
45
  }
46
- tabSize = $el[`client${shared.capitalize(sizeName)}`];
46
+ tabSize = $el[`client${strings.capitalize(sizeName)}`];
47
47
  const position = sizeDir === "x" ? "left" : "top";
48
48
  offset = $el.getBoundingClientRect()[position] - ((_d = (_c = $el.parentElement) == null ? void 0 : _c.getBoundingClientRect()[position]) != null ? _d : 0);
49
49
  const tabStyles = window.getComputedStyle($el);
@@ -57,7 +57,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
57
57
  });
58
58
  return {
59
59
  [sizeName]: `${tabSize}px`,
60
- transform: `translate${shared.capitalize(sizeDir)}(${offset}px)`
60
+ transform: `translate${strings.capitalize(sizeDir)}(${offset}px)`
61
61
  };
62
62
  };
63
63
  const update = () => barStyle.value = getBarStyle();
@@ -1 +1 @@
1
- {"version":3,"file":"tab-bar2.js","sources":["../../../../../../packages/components/tabs/src/tab-bar.vue"],"sourcesContent":["<template>\n <div\n ref=\"barRef\"\n :class=\"[ns.e('active-bar'), ns.is(rootTabs.props.tabPosition)]\"\n :style=\"barStyle\"\n />\n</template>\n<script lang=\"ts\" setup>\n// @ts-nocheck\nimport { getCurrentInstance, inject, nextTick, ref, watch } from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { capitalize, throwError } from '@element-plus/utils'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useNamespace } from '@element-plus/hooks'\nimport { tabBarProps } from './tab-bar'\n\nimport type { CSSProperties } from 'vue'\n\nconst COMPONENT_NAME = 'ElTabBar'\ndefineOptions({\n name: 'ElTabBar',\n})\nconst props = defineProps(tabBarProps)\n\nconst instance = getCurrentInstance()!\nconst rootTabs = inject(tabsRootContextKey)\nif (!rootTabs) throwError(COMPONENT_NAME, '<el-tabs><el-tab-bar /></el-tabs>')\n\nconst ns = useNamespace('tabs')\n\nconst barRef = ref<HTMLDivElement>()\nconst barStyle = ref<CSSProperties>()\n\nconst getBarStyle = (): CSSProperties => {\n let offset = 0\n let tabSize = 0\n\n const sizeName = ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ? 'width'\n : 'height'\n const sizeDir = sizeName === 'width' ? 'x' : 'y'\n\n props.tabs.every((tab) => {\n const $el = instance.parent?.refs?.[`tab-${tab.uid}`] as HTMLElement\n if (!$el) return false\n\n if (!tab.active) {\n return true\n }\n\n tabSize = $el[`client${capitalize(sizeName)}`]\n const position = sizeDir === 'x' ? 'left' : 'top'\n offset =\n $el.getBoundingClientRect()[position] -\n ($el.parentElement?.getBoundingClientRect()[position] ?? 0)\n const tabStyles = window.getComputedStyle($el)\n\n if (sizeName === 'width') {\n if (props.tabs.length > 1) {\n tabSize -=\n Number.parseFloat(tabStyles.paddingLeft) +\n Number.parseFloat(tabStyles.paddingRight)\n }\n offset += Number.parseFloat(tabStyles.paddingLeft)\n }\n return false\n })\n\n return {\n [sizeName]: `${tabSize}px`,\n transform: `translate${capitalize(sizeDir)}(${offset}px)`,\n }\n}\n\nconst update = () => (barStyle.value = getBarStyle())\n\nwatch(\n () => props.tabs,\n async () => {\n await nextTick()\n update()\n },\n { immediate: true }\n)\nuseResizeObserver(barRef, () => update())\n\ndefineExpose({\n /** @description tab root html element */\n ref: barRef,\n /** @description method to manually update tab bar style */\n update,\n})\n</script>\n"],"names":["getCurrentInstance","inject","tabsRootContextKey","throwError","useNamespace","ref","capitalize","watch","nextTick","useResizeObserver"],"mappings":"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"}
1
+ {"version":3,"file":"tab-bar2.js","sources":["../../../../../../packages/components/tabs/src/tab-bar.vue"],"sourcesContent":["<template>\n <div\n ref=\"barRef\"\n :class=\"[ns.e('active-bar'), ns.is(rootTabs.props.tabPosition)]\"\n :style=\"barStyle\"\n />\n</template>\n\n<script lang=\"ts\" setup>\nimport { getCurrentInstance, inject, nextTick, ref, watch } from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { capitalize, throwError } from '@element-plus/utils'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useNamespace } from '@element-plus/hooks'\nimport { tabBarProps } from './tab-bar'\n\nimport type { CSSProperties } from 'vue'\n\nconst COMPONENT_NAME = 'ElTabBar'\ndefineOptions({\n name: 'ElTabBar',\n})\nconst props = defineProps(tabBarProps)\n\nconst instance = getCurrentInstance()!\nconst rootTabs = inject(tabsRootContextKey)\nif (!rootTabs) throwError(COMPONENT_NAME, '<el-tabs><el-tab-bar /></el-tabs>')\n\nconst ns = useNamespace('tabs')\n\nconst barRef = ref<HTMLDivElement>()\nconst barStyle = ref<CSSProperties>()\n\nconst getBarStyle = (): CSSProperties => {\n let offset = 0\n let tabSize = 0\n\n const sizeName = ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ? 'width'\n : 'height'\n const sizeDir = sizeName === 'width' ? 'x' : 'y'\n\n props.tabs.every((tab) => {\n const $el = instance.parent?.refs?.[`tab-${tab.uid}`] as HTMLElement\n if (!$el) return false\n\n if (!tab.active) {\n return true\n }\n\n tabSize = $el[`client${capitalize(sizeName)}`]\n const position = sizeDir === 'x' ? 'left' : 'top'\n offset =\n $el.getBoundingClientRect()[position] -\n ($el.parentElement?.getBoundingClientRect()[position] ?? 0)\n const tabStyles = window.getComputedStyle($el)\n\n if (sizeName === 'width') {\n if (props.tabs.length > 1) {\n tabSize -=\n Number.parseFloat(tabStyles.paddingLeft) +\n Number.parseFloat(tabStyles.paddingRight)\n }\n offset += Number.parseFloat(tabStyles.paddingLeft)\n }\n return false\n })\n\n return {\n [sizeName]: `${tabSize}px`,\n transform: `translate${capitalize(sizeDir)}(${offset}px)`,\n }\n}\n\nconst update = () => (barStyle.value = getBarStyle())\n\nwatch(\n () => props.tabs,\n async () => {\n await nextTick()\n update()\n },\n { immediate: true }\n)\nuseResizeObserver(barRef, () => update())\n\ndefineExpose({\n /** @description tab root html element */\n ref: barRef,\n /** @description method to manually update tab bar style */\n update,\n})\n</script>\n"],"names":["getCurrentInstance","inject","tabsRootContextKey","throwError","useNamespace","ref","capitalize","watch","nextTick","useResizeObserver"],"mappings":"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"}
@@ -69,28 +69,15 @@ export declare const tabNavProps: {
69
69
  }[]))[], unknown, unknown, () => [], boolean>;
70
70
  readonly currentName: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
71
71
  readonly editable: BooleanConstructor;
72
- readonly onTabClick: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | (() => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | {
73
- (): (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void;
74
- new (): any;
75
- readonly prototype: any;
76
- } | ((new (...args: any[]) => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | (() => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | {
77
- (): (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void;
78
- new (): any;
79
- readonly prototype: any;
80
- })[], unknown, unknown, () => void, boolean>;
81
- readonly onTabRemove: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (tab: TabsPaneContext, ev: Event) => void) | (() => (tab: TabsPaneContext, ev: Event) => void) | {
82
- (): (tab: TabsPaneContext, ev: Event) => void;
83
- new (): any;
84
- readonly prototype: any;
85
- } | ((new (...args: any[]) => (tab: TabsPaneContext, ev: Event) => void) | (() => (tab: TabsPaneContext, ev: Event) => void) | {
86
- (): (tab: TabsPaneContext, ev: Event) => void;
87
- new (): any;
88
- readonly prototype: any;
89
- })[], unknown, unknown, () => void, boolean>;
90
72
  readonly type: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "" | "card" | "border-card", unknown, "", boolean>;
91
73
  readonly stretch: BooleanConstructor;
92
74
  };
75
+ export declare const tabNavEmits: {
76
+ tabClick: (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => boolean;
77
+ tabRemove: (tab: TabsPaneContext, ev: Event) => boolean;
78
+ };
93
79
  export declare type TabNavProps = ExtractPropTypes<typeof tabNavProps>;
80
+ export declare type TabNavEmits = typeof tabNavEmits;
94
81
  declare const TabNav: import("vue").DefineComponent<{
95
82
  readonly panes: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => {
96
83
  uid: number;
@@ -159,27 +146,12 @@ declare const TabNav: import("vue").DefineComponent<{
159
146
  }[]))[], unknown, unknown, () => [], boolean>;
160
147
  readonly currentName: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
161
148
  readonly editable: BooleanConstructor;
162
- readonly onTabClick: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | (() => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | {
163
- (): (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void;
164
- new (): any;
165
- readonly prototype: any;
166
- } | ((new (...args: any[]) => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | (() => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | {
167
- (): (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void;
168
- new (): any;
169
- readonly prototype: any;
170
- })[], unknown, unknown, () => void, boolean>;
171
- readonly onTabRemove: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (tab: TabsPaneContext, ev: Event) => void) | (() => (tab: TabsPaneContext, ev: Event) => void) | {
172
- (): (tab: TabsPaneContext, ev: Event) => void;
173
- new (): any;
174
- readonly prototype: any;
175
- } | ((new (...args: any[]) => (tab: TabsPaneContext, ev: Event) => void) | (() => (tab: TabsPaneContext, ev: Event) => void) | {
176
- (): (tab: TabsPaneContext, ev: Event) => void;
177
- new (): any;
178
- readonly prototype: any;
179
- })[], unknown, unknown, () => void, boolean>;
180
149
  readonly type: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "" | "card" | "border-card", unknown, "", boolean>;
181
150
  readonly stretch: BooleanConstructor;
182
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
151
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
152
+ tabClick: (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => boolean;
153
+ tabRemove: (tab: TabsPaneContext, ev: Event) => boolean;
154
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
183
155
  readonly panes: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => {
184
156
  uid: number;
185
157
  slots: Readonly<{
@@ -247,27 +219,44 @@ declare const TabNav: import("vue").DefineComponent<{
247
219
  }[]))[], unknown, unknown, () => [], boolean>;
248
220
  readonly currentName: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
249
221
  readonly editable: BooleanConstructor;
250
- readonly onTabClick: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | (() => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | {
251
- (): (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void;
252
- new (): any;
253
- readonly prototype: any;
254
- } | ((new (...args: any[]) => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | (() => (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void) | {
255
- (): (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void;
256
- new (): any;
257
- readonly prototype: any;
258
- })[], unknown, unknown, () => void, boolean>;
259
- readonly onTabRemove: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (tab: TabsPaneContext, ev: Event) => void) | (() => (tab: TabsPaneContext, ev: Event) => void) | {
260
- (): (tab: TabsPaneContext, ev: Event) => void;
261
- new (): any;
262
- readonly prototype: any;
263
- } | ((new (...args: any[]) => (tab: TabsPaneContext, ev: Event) => void) | (() => (tab: TabsPaneContext, ev: Event) => void) | {
264
- (): (tab: TabsPaneContext, ev: Event) => void;
265
- new (): any;
266
- readonly prototype: any;
267
- })[], unknown, unknown, () => void, boolean>;
268
222
  readonly type: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "" | "card" | "border-card", unknown, "", boolean>;
269
223
  readonly stretch: BooleanConstructor;
270
- }>>, {
224
+ }>> & {
225
+ onTabClick?: ((tab: {
226
+ uid: number;
227
+ slots: Readonly<{
228
+ [name: string]: import("vue").Slot | undefined;
229
+ }>;
230
+ props: {
231
+ readonly disabled: boolean;
232
+ readonly label: string;
233
+ readonly closable: boolean;
234
+ readonly lazy: boolean;
235
+ readonly name?: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
236
+ };
237
+ paneName: string | number | undefined;
238
+ active: boolean;
239
+ index: string | undefined;
240
+ isClosable: boolean;
241
+ }, tabName: TabPanelName, ev: Event) => any) | undefined;
242
+ onTabRemove?: ((tab: {
243
+ uid: number;
244
+ slots: Readonly<{
245
+ [name: string]: import("vue").Slot | undefined;
246
+ }>;
247
+ props: {
248
+ readonly disabled: boolean;
249
+ readonly label: string;
250
+ readonly closable: boolean;
251
+ readonly lazy: boolean;
252
+ readonly name?: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
253
+ };
254
+ paneName: string | number | undefined;
255
+ active: boolean;
256
+ index: string | undefined;
257
+ isClosable: boolean;
258
+ }, ev: Event) => any) | undefined;
259
+ }, {
271
260
  readonly type: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "card" | "border-card", unknown>;
272
261
  readonly editable: boolean;
273
262
  readonly stretch: boolean;
@@ -289,8 +278,6 @@ declare const TabNav: import("vue").DefineComponent<{
289
278
  isClosable: boolean;
290
279
  }[];
291
280
  readonly currentName: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
292
- readonly onTabClick: (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void;
293
- readonly onTabRemove: (tab: TabsPaneContext, ev: Event) => void;
294
281
  }>;
295
282
  export declare type TabNavInstance = InstanceType<typeof TabNav>;
296
283
  export default TabNav;
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var vue = require('vue');
6
- var shared = require('@vue/shared');
7
6
  var core = require('@vueuse/core');
8
7
  require('../../../utils/index.js');
9
8
  require('../../../constants/index.js');
@@ -17,6 +16,7 @@ var typescript = require('../../../utils/typescript.js');
17
16
  var tabs = require('../../../tokens/tabs.js');
18
17
  var error = require('../../../utils/error.js');
19
18
  var index = require('../../../hooks/use-namespace/index.js');
19
+ var strings = require('../../../utils/strings.js');
20
20
  var aria = require('../../../constants/aria.js');
21
21
 
22
22
  const tabNavProps = runtime.buildProps({
@@ -29,14 +29,6 @@ const tabNavProps = runtime.buildProps({
29
29
  default: ""
30
30
  },
31
31
  editable: Boolean,
32
- onTabClick: {
33
- type: runtime.definePropType(Function),
34
- default: shared.NOOP
35
- },
36
- onTabRemove: {
37
- type: runtime.definePropType(Function),
38
- default: shared.NOOP
39
- },
40
32
  type: {
41
33
  type: String,
42
34
  values: ["card", "border-card", ""],
@@ -44,12 +36,18 @@ const tabNavProps = runtime.buildProps({
44
36
  },
45
37
  stretch: Boolean
46
38
  });
39
+ const tabNavEmits = {
40
+ tabClick: (tab, tabName, ev) => ev instanceof Event,
41
+ tabRemove: (tab, ev) => ev instanceof Event
42
+ };
47
43
  const COMPONENT_NAME = "ElTabNav";
48
44
  const TabNav = vue.defineComponent({
49
45
  name: COMPONENT_NAME,
50
46
  props: tabNavProps,
47
+ emits: tabNavEmits,
51
48
  setup(props, {
52
- expose
49
+ expose,
50
+ emit
53
51
  }) {
54
52
  const vm = vue.getCurrentInstance();
55
53
  const rootTabs = vue.inject(tabs.tabsRootContextKey);
@@ -75,7 +73,7 @@ const TabNav = vue.defineComponent({
75
73
  const scrollPrev = () => {
76
74
  if (!navScroll$.value)
77
75
  return;
78
- const containerSize = navScroll$.value[`offset${shared.capitalize(sizeName.value)}`];
76
+ const containerSize = navScroll$.value[`offset${strings.capitalize(sizeName.value)}`];
79
77
  const currentOffset = navOffset.value;
80
78
  if (!currentOffset)
81
79
  return;
@@ -85,8 +83,8 @@ const TabNav = vue.defineComponent({
85
83
  const scrollNext = () => {
86
84
  if (!navScroll$.value || !nav$.value)
87
85
  return;
88
- const navSize = nav$.value[`offset${shared.capitalize(sizeName.value)}`];
89
- const containerSize = navScroll$.value[`offset${shared.capitalize(sizeName.value)}`];
86
+ const navSize = nav$.value[`offset${strings.capitalize(sizeName.value)}`];
87
+ const containerSize = navScroll$.value[`offset${strings.capitalize(sizeName.value)}`];
90
88
  const currentOffset = navOffset.value;
91
89
  if (navSize - currentOffset <= containerSize)
92
90
  return;
@@ -129,8 +127,8 @@ const TabNav = vue.defineComponent({
129
127
  const update = () => {
130
128
  if (!nav$.value || !navScroll$.value)
131
129
  return;
132
- const navSize = nav$.value[`offset${shared.capitalize(sizeName.value)}`];
133
- const containerSize = navScroll$.value[`offset${shared.capitalize(sizeName.value)}`];
130
+ const navSize = nav$.value[`offset${strings.capitalize(sizeName.value)}`];
131
+ const containerSize = navScroll$.value[`offset${strings.capitalize(sizeName.value)}`];
134
132
  const currentOffset = navOffset.value;
135
133
  if (containerSize < navSize) {
136
134
  const currentOffset2 = navOffset.value;
@@ -227,7 +225,7 @@ const TabNav = vue.defineComponent({
227
225
  pane.index = `${index}`;
228
226
  const btnClose = closable ? vue.createVNode(index$1.ElIcon, {
229
227
  "class": "is-icon-close",
230
- "onClick": (ev) => props.onTabRemove(pane, ev)
228
+ "onClick": (ev) => emit("tabRemove", pane, ev)
231
229
  }, {
232
230
  default: () => [vue.createVNode(iconsVue.Close, null, null)]
233
231
  }) : null;
@@ -246,11 +244,11 @@ const TabNav = vue.defineComponent({
246
244
  "onBlur": () => removeFocus(),
247
245
  "onClick": (ev) => {
248
246
  removeFocus();
249
- props.onTabClick(pane, tabName, ev);
247
+ emit("tabClick", pane, tabName, ev);
250
248
  },
251
249
  "onKeydown": (ev) => {
252
250
  if (closable && (ev.code === aria.EVENT_CODE.delete || ev.code === aria.EVENT_CODE.backspace)) {
253
- props.onTabRemove(pane, ev);
251
+ emit("tabRemove", pane, ev);
254
252
  }
255
253
  }
256
254
  }, [...[tabLabelContent, btnClose]]);
@@ -275,5 +273,6 @@ const TabNav = vue.defineComponent({
275
273
  });
276
274
 
277
275
  exports["default"] = TabNav;
276
+ exports.tabNavEmits = tabNavEmits;
278
277
  exports.tabNavProps = tabNavProps;
279
278
  //# sourceMappingURL=tab-nav.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-nav.js","sources":["../../../../../../packages/components/tabs/src/tab-nav.tsx"],"sourcesContent":["// @ts-nocheck\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n inject,\n nextTick,\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 vm = getCurrentInstance()!\n\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 = async () => {\n const nav = nav$.value\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return\n\n await nextTick()\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]:not(.is-disabled)'\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 watch(\n () => props.panes,\n () => vm.update(),\n { flush: 'post' }\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 = !disabled && (pane.isClosable || 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 // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n onClick={(ev: MouseEvent) => props.onTabRemove(pane, ev)}\n >\n <Close />\n </ElIcon>\n ) : null\n\n const tabLabelContent = pane.slots.label?.() || pane.props.label\n const tabindex = !disabled && pane.active ? 0 : -1\n\n return (\n <div\n ref={`tab-${uid}`}\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 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":["TabBar","buildProps","tabNavProps","panes","definePropType","type","Array","default","currentName","String","editable","Boolean","onTabClick","onTabRemove","values","stretch","COMPONENT_NAME","TabNav","defineComponent","name","props","expose","inject","tabsRootContextKey","vm","getCurrentInstance","throwError","ns","useDocumentVisibility","visibility","useWindowFocus","focused","navScroll$","ref","nav$","el$","scrollable","navOffset","isFocus","focusable","computed","sizeName","dir","transform","scrollPrev","value","capitalize","containerSize","newOffset","currentOffset","scrollNext","navSize","scrollToActiveTab","nav","activeTab","activeTabBounding","navScrollBounding","maxOffset","isHorizontal","right","top","bottom","update","prev","changeTab","EVENT_CODE","code","up","currentIndex","nextIndex","tabList","watch","focus","setFocus","useResizeObserver","_createVNode","ElIcon","ArrowLeft","setTimeout","onUpdated","ArrowRight","removeFocus","flush","e","is","pane","uid","disabled","isClosable","index","btnClose","closable","ev","rootTabs","tabLabelContent"],"mappings":"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"}
1
+ {"version":3,"file":"tab-nav.js","sources":["../../../../../../packages/components/tabs/src/tab-nav.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n getCurrentInstance,\n inject,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n watch,\n} from 'vue'\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 type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n stretch: Boolean,\n} as const)\n\nexport const tabNavEmits = {\n tabClick: (tab: TabsPaneContext, tabName: TabPanelName, 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 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 vm = getCurrentInstance()!\n\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 = async () => {\n const nav = nav$.value\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return\n\n await nextTick()\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]:not(.is-disabled)'\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 watch(\n () => props.panes,\n () => vm.update(),\n { flush: 'post' }\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 = !disabled && (pane.isClosable || 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 // eslint-disable-next-line @typescript-eslint/ban-ts-comment\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 = !disabled && pane.active ? 0 : -1\n\n return (\n <div\n ref={`tab-${uid}`}\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 if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n emit('tabRemove', 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","values","stretch","tabNavEmits","tabClick","tab","tabName","ev","Event","tabRemove","COMPONENT_NAME","TabNav","defineComponent","name","props","emits","expose","emit","getCurrentInstance","vm","throwError","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","navScroll","navScrollBounding","maxOffset","isHorizontal","offsetWidth","activeTabBounding","right","top","bottom","max","update","navSize","next","changeTab","EVENT_CODE","down","currentTarget","currentIndex","nextIndex","tabList","watch","focus","click","setFocus","_createVNode","ElIcon","useResizeObserver","ArrowLeft","setTimeout","onUpdated","removeFocus","flush","is","prev","pane","disabled","btnClose","active","uid","tabLabelContent","TabBar"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsCaA,MAAAA,WAAW,GAAGC,kBAAU,CAAC;AACpCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAEC,sBAAc,CAAoBC,KAApB,CADf;AAELC,IAAAA,OAAO,EAAE,MAAMC,kBAAO,CAAC,EAAD,CAAA;GAHY;AAKpCC,EAAAA,WAAW,EAAE;AACXL,IAAAA,IAAI,EAAE,CAACM,MAAD,EAASC,MAAT,CADK;AAEXJ,IAAAA,OAAO,EAAE,EAAA;GAPyB;AASpCK,EAAAA,QAAQ,EAAEC,OAT0B;AAUpCT,EAAAA,IAAI,EAAE;AACJA,IAAAA,IAAI,EAAEM,MADF;AAEJI,IAAAA,MAAM,EAAE,CAAC,MAAD,EAAS,aAAT,EAAwB,EAAxB,CAFJ;AAGJP,IAAAA,OAAO,EAAE,EAAA;GAbyB;AAepCQ,EAAAA,OAAO,EAAEF,OAAAA;AAf2B,CAAD,EAA9B;AAkBA,MAAMG,WAAW,GAAG;EACzBC,QAAQ,EAAE,CAACC,GAAD,EAAuBC,OAAvB,EAA8CC,EAA9C,KACRA,EAAE,YAAYC,KAFS;AAGzBC,EAAAA,SAAS,EAAE,CAACJ,GAAD,EAAuBE,EAAvB,KAAqCA,EAAE,YAAYC,KAAAA;AAHrC,EAApB;AASP,MAAME,cAAc,GAAG,UAAvB,CAAA;AACMC,MAAAA,MAAM,GAAGC,mBAAe,CAAC;AAC7BC,EAAAA,IAAI,EAAEH,cADuB;AAE7BI,EAAAA,KAAK,EAAE1B,WAFsB;AAG7B2B,EAAAA,KAAK,EAAEZ,WAHsB;;IAIxB;IAAUa,IAAF;AAAUC,GAAAA,EAAAA;AAAV,IAAkB,MAAA,EAAA,GAAAC,sBAAA,EAAA,CAAA;IAC7B,MAAMC,QAAKD,GAAAA,UAAAA,CAAAA,uBAAX,CAAA,CAAA;AAEA,IAAA,IAAA,CAAA,QAAc;MACVE,iBAAJ,cAAyB,EAAA,CAAA;AAEzB,IAAA,MAAMC,EAAE,GAAGC,kBAAY,CAAC,MAAD,CAAvB,CAAA;IACA,MAAMC,UAAU,GAAGC,0BAAqB,EAAxC,CAAA;IACA,MAAMC,OAAO,GAAGC,mBAAc,EAA9B,CAAA;IAEA,MAAMC,UAAU,GAAGC,OAAG,EAAtB,CAAA;IACA,MAAMC,IAAI,GAAGD,OAAG,EAAhB,CAAA;IACA,MAAME,GAAG,GAAGF,OAAG,EAAf,CAAA;AAEA,IAAA,MAAMG,UAAU,GAAGH,OAAG,CAAqB,KAArB,CAAtB,CAAA;AACA,IAAA,MAAMI,SAAS,GAAGJ,OAAG,CAAC,CAAD,CAArB,CAAA;AACA,IAAA,MAAMK,OAAO,GAAGL,OAAG,CAAC,KAAD,CAAnB,CAAA;AACA,IAAA,MAAMM,SAAS,GAAGN,OAAG,CAAC,IAAD,CAArB,CAAA;IAEA,MAAMO,QAAQ,GAAGC,YAAQ,CAAC,MACxB,CAAC,KAAD,EAAQ,QAAR,CAAA,CAAkBC,QAAlB,CAA2BC,QAAQ,CAACxB,KAAT,CAAeyB,WAA1C,CACI,GAAA,OADJ,GAEI,QAHmB,CAAzB,CAAA;AAKA,IAAA,MAAMC,QAAQ,GAAGJ,YAAQ,CAAgB,MAAM;MAC7C,MAAMK,GAAG,GAAGN,QAAQ,CAACO,KAAT,KAAmB,OAAnB,GAA6B,GAA7B,GAAmC,GAA/C,CAAA;MACA,OAAO;AACLC,QAAAA,SAAS,EAAG,CAAWF,SAAAA,EAAAA,GAAI,CAAIT,EAAAA,EAAAA,SAAS,CAACU,KAAM,CAAA,GAAA,CAAA;OADjD,CAAA;AAGD,KALwB,CAAzB,CAAA;;MAOME,IAAAA,CAAAA,gBAAmB;AACvB,QAAA,OAAKjB;AAEL,MAAA,MAAMkB,aAAa,GACjBlB,UAAU,CAACe,KAAX,CAAkB,CAAA,MAAA,EAAQI,kBAAU,CAACX,QAAQ,CAACO,KAAV,CAAiB,EAArD,CADF,CAAA;AAEA,MAAA,MAAMK,aAAa,GAAGf,SAAS,CAACU,KAAhC,CAAA;MAEA,IAAI,CAACK,aAAL;QAEMC,OAAAA;MAGNhB,MAAS,SAAT,GAAkBgB,aAAlB,GAAA,aAAA,GAAA,aAAA,GAAA,aAAA,GAAA,CAAA,CAAA;MAZF,SAAA,CAAA,KAAA,GAAA,SAAA,CAAA;;IAeA,MAAMC,UAAU,GAAG,MAAM;MACvB,IAAI,CAACtB,UAAU,CAACe,KAAZ,IAAqB,CAACb,IAAI,CAACa,KAA/B;AAEA,QAAA,OAAa;AACb,MAAA,MAAMG,OAAa,GAAA,IAAA,CAAA,KACP,CAAA,CAAA,0BAAQ,CAAA,QAAkB,CAAA,KAAS,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/C,MAAA,MAAME,aAAa,GAAGf,UAAUU,CAAhC,KAAA,CAAA,CAAA,MAAA,EAAAI,kBAAA,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,MAAA,MAAW,aAAP,GAAA,SAA2BD;AAE/B,MAAA,IAAA,uBACYE,IAAAA,aAAgBF;QAInB,OAAA;MAfX,MAAA,SAAA,GAAA,OAAA,GAAA,aAAA,GAAA,aAAA,GAAA,CAAA,GAAA,aAAA,GAAA,aAAA,GAAA,OAAA,GAAA,aAAA,CAAA;;KAkBMK,CAAAA;AACJ,IAAA,MAAA,iBAAA,GAAA,YAAA;AACA,MAAA,MAAe,GAAA,GAAA,IAACR,CAAZ,KAAA,CAAA;AAEJ,MAAA,IAAA,CAAA,UAAA,CAAA,KAAA,IAAA,CAAA,GAAA,CAAA,KAAA,IAAA,CAAA,UAAA,CAAA,KAAA,IAAA,CAAA,GAAA;QAEMS,OAAAA;MACN,kBAAA,EAAgB,CAAA;AAEhB,MAAA,MAAMC,SAAS,GAAGzB,GAAU,CAAA,KAAA,CAAA,aAA5B,CAAA,YAAA,CAAA,CAAA;AACA,MAAA,IAAA,CAAA,SAAkB;AAGlB,QAAA,OAAuB;AACvB,MAAA,MAAM0B,SAAiB,GAAA,UAAY,CAAA,KAAA,CAAA;AACnC,MAAA,MAAMC,YAAYC,GAAAA,CAAAA,KAAAA,EAAAA,QACVC,WAAJ,QAAkBH,CAAAA,KAAAA,CAAAA,WADQ;AAG9B,MAAA,MAAMN,iBAAyB,GAAA,SAA/B,CAAA,qBAAA,EAAA,CAAA;MACA,MAAIC,iBAAJ,GAAA,SAAA,CAAA,qBAAA,EAAA,CAAA;;AAEA,MAAA,mBAAkB,GAAA,SAAA,CAAA,KAAA,CAAA;AAChB,MAAA,IAAA;UACEA,YACED,EAAa;AAChB,QAAA,IAAA,iBAAA,CAAA,IAAA,GAAA,iBAAA,CAAA,IAAA,EAAA;;AACD,SAAA;YACW,uBACM,GAAGU,iBAAiB,CAACC,KAAlC,EAAA;AACH,UAAA,SAAA,GAAA,aAAA,GAAA,iBAAA,CAAA,KAAA,GAAA,iBAAA,CAAA,KAAA,CAAA;AACF,SAAM;AACL,OAAA;YACW,iBACM,CAAA,GAAA,GAAA,iBAAqB,CAAA,GAACC;AACtC,UAAA,SAAA,GAAA,aAAA,IAAA,iBAAA,CAAA,GAAA,GAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;AACD,QAAA,IAAIF,iBAAiB,CAACG,MAAlB,GAA2BP,iBAAiB,CAACO,MAAjD,EAAyD;UACvDZ,SAAS,GACPD,aAAa,IACZU,iBAAiB,CAACG,MAAlB,GAA2BP,iBAAiB,CAACO,MADjC,CADf,CAAA;AAGD,SAAA;AACF,OAAA;;MACDZ,SAAS,CAAA,QAAQa,IAAL,CAAA,GAAA,CAAA,SAAZ,EAAA,SAAA,CAAA,CAAA;MACA7B;IACD,MA3CD,MAAA,GAAA,MAAA;;QA6CM8B,OAAAA;MACJ,aAAUpB,OAAUf,CAAAA,KAAAA,CAAAA,CAAAA,MAAWe,EAA/BI,kBAAsC,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEtC,MAAA,MAAMiB,aAAc,aAAQ,CAAA,KAAkB,CAAA,CAAA,MAAA,EAASjB,kBAAT,CAAA,QAA9C,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,MAAA,MAAMD,aAAa,GACjBlB,SAAU,CAAA,MAAV;AACF,MAAA,IAAA,aAAmB,GAAA,OAAY,EAAA;;QAE3BkB,UAAAA,CAAAA,KAAgBkB,GAAAA,UAAS,CAAA,KAAA,IAAA,EAAA,CAAA;AAC3B,QAAA,UAAmB,CAAA,KAAA,CAAA,IAAA,GAAY,cAA/B,CAAA;AACAhC,QAAAA,UAAU,CAACW,KAAX,CAAA,wBAAA,aAAA,GAAA,OAAA,CAAA;AACAX,QAAAA,IAAAA,OAAWW,GAAAA,cAAX,GAAA,aAAA,EAAA;UACU,SAACA,MAAMsB,GAAAA,OAAoB,GAAA,aAAb,CAAA;;AACxB,OAAA,MAAW;AACThC,QAAAA,UAAAA,CAAS,KAACU,GAAQqB,KAAAA,CAAAA;AACnB,QAAA,IAAA,aAAA,GAAA,CAAA,EAAA;AACF,UAAM,SAAA,CAAA,KAAA,GAAA,CAAA,CAAA;SACK;;;UAER/B,SAAS,GAAT,CAAA,CAAA,KAAA;AACD,MAAA,MAAA,IAAA,GAAA,CAAA,CAAA,IAAA,CAAA;AACF,MAAA,MAAA;QArBH,EAAA;;QAwBMiC,IAAAA;AACJ,QAAA,KAAU;OAEJ,GAAAC,eAAA,CAAA;UAAA,CAAA,CAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,KAAA,CAAA,CAAA,QAAA,CAAA,IAAA,CAAA;QAAMC,OAAN;YAAA,OAAA,GAAA,KAAA,CAAA,IAAA,CAAA,CAAA,CAAA,aAAA,CAAA,gBAAA,CAAA,8BAAA,CAAA,CAAA,CAAA;AAAkBT,MAAAA,MAAAA,YAAAA,GAAAA,OAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA;AAAlB,MAAA,IAA4BQ,SAAlC,CAAA;AACA,MAAA,IAAI,IAAC,KAAKC,IAAL,IAAA,IAAA;;AAGL,UAAA,SAAa,GAAG1E,cACX2E,GAAAA,CAAAA,CAAAA;SAICC,MAAAA;AAEN,UAAIC,SAAJ,GAAA,YAAA,GAAA,CAAA,CAAA;;AACA,OAAA;AACE,QAAA,IAAA,YAAA,GAAA,OAAA,CAAA,MAAA,GAAA,CAAA,EAAA;UACID,SAAAA,GAAAA,YAAoB,GAAA,CAAA,CAAA;AACtB,SAAA,MAAA;AACAC,UAAAA,SAAS,GAAGC,CAAAA,CAAAA;AACb,SAHD;;AAKC,MAAA,OAAA,CAAA,SAAA,CAAA,CAAA,KAAA,EAAA,CAAA;AACF,MAAA,OAAM,CAAA,SAAA,CAAA,CAAA,KAAA,EAAA,CAAA;AACL,MAAA,QAAA,EAAA,CAAA;AACA,KAAA,CAAA;AACE,IAAA,MAAA,QAAA,GAAA,MAAA;UACAD,SAAS,CAAA,KAAe;AACzB,QAAA,OAAM,CAAA,KAAA,GAAA,IAAA,CAAA;AACLA,KAAAA,CAAAA;AACD,IAAA,MAAA,WAAA,GAAA,MAAA,OAAA,CAAA,KAAA,GAAA,KAAA,CAAA;AACF,IAAAE,SAAA,CAAA,UAAA,EAAA,CAAA,WAAA,KAAA;;AACDD,QAAAA,SAAO,CAAA,KAAA,GAAYE;;AACnBF,QAAAA,UAAO,CAAA,MAAYG,SAAQ,CAAA,KAAA,GAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;MAC3BC,CAAQ;IACTH,SAnCD,CAAA,OAAA,EAAA,CAAA,QAAA,KAAA;;QAqCMG,UAAQ,OAAS,SAAA,CAAA,KAAA,GAAA,IAAA,EAAA,EAAA,CAAA,CAAA;OACjBzC,MAAAA;QADN,SAAA,CAAA,KAAA,GAAA,KAAA,CAAA;;AAGA,KAAA,CAAA,CAAA;;AAEAsC,IAAAA,aAAMjD,CAAAA,MAAD,UAAcA,CAAAA,MAAe,iBAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;iBAC5BA,CAAAA,MAAU,MAAK,EAAA,CAAA,CAAA;UACR,CAAA;AACV,MAAA,iBAAoB;iBACT;AACX,KAAA,CAAA,CAAA;AACF,IAAAiD,SAND,CAAA,MAAA,KAAA,CAAA,KAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,EAAA;AAOAA,MAAAA,KAAM/C,EAAAA,MAAUA;AACd,KAAA,CAAA,CAAA;WACY,MAAA;AACX,MAAA,MAAM,SAAA,GAAA,UAAA,CAAA,KAAA,GAAA,CAAAmD,eAAA,CAAA,MAAA,EAAA;QACL1C,OAAS,EAAA,CAACQ,EAAV,CAAA,CAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,CAAA,UAAA,CAAA,KAAA,CAAA,IAAA,CAAA,CAAA;AACD,QAAA,SAAA,EAAA,UAAA;AACF,OAND,EAAA,CAAAkC,eAAA,CAAAC,cAAA,EAAA,IAAA,EAAA;AAQAC,QAAAA,OAAAA,EAAAA,MAAkBhD,CAAAA,eAAlB,CAAAiD,kBAAA,EAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAES,CAAA,CAAA,CAAA,EAAAH,eAAOI,CAAAA,MAAW,EAAA;AAC3BC,QAAAA,OAAU,EAAA,CAAA,EAAMnB,CAAM,CAAA,CAAA,UAAtB,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,CAAA,UAAA,CAAA,KAAA,CAAA,IAAA,CAAA,CAAA;AAEA9C,QAAAA,SAAO,EAAA,UAAA;OAAA,EAAA,CAAA4D,eAAA,CAAAC,cAAA,EAAA,IAAA,EAAA;AAELK,QAAAA,OAAAA,EAAAA,MAAAA,CAAAA,eAAAA,CAAAA,mBAAAA,EAAAA,IAAAA,EAAAA,IAAAA,CAAAA,CAAAA;AAFK,OAAP,CAAA,CAAA,CAAA,CAAA,GAAA,IAAA,CAAA;MAKK,MACGpE,IAAAA,GAAAA,KAAMxB,CAAAA,KACZ,CAAA,GAAA,CAAM6B,CAAE,IAAF,EAAA,KACN,KAAA;AAAEgE,QAAAA,IAAO,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAAT,QAHF,MAAA,GAAA,GAAA,IAAA,CAAA,GAAA,CAAA;AAMA,QAAA,MAAa,QAAA,GAAA,IAAA,CAAA,KAAA,CAAA,QAAA,CAAA;AACX,QAAA,MAAe,OAAA,GAAGpD,CAAU,EAAA,GAAA,CAAA,EAAA,OAAV,CACd,KAAA,CAAA,IAAA,KAAA,IAAA,GAAA,EAAA,GAAA,IAAA,CAAA,KAAA,KAAA,IAAA,GAAA,EAAA,GAAA,CAAA,EAAA,KAAA,CAAA,CAAA,CAAA;QAAA,MAEW,QACL,GAAA,CAAA,QADK,KAEFqD,IAAG,CAAA,UAAY,IAACrD,KAAAA,CAAAA,QAAiBsD,CAApC,CAAA;QAJN,IAMazC,CAAAA,KAAAA,GAAAA,CAAAA,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA;AANb,QAAA,MAAA,QAAA,GAAA,QAAA,GAAAgC,eAAA,CAAAC,cAAA,EAAA;AAAA,UAAA,OAAA,EAAA,eAAA;AAAA,UAAA,SAAA,EAAA,CAAA,EAAA,KAAA,IAAA,CAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA;SAaW,EAAA;UAIE5B,OAAAA,EAAAA,MAAAA,CAAAA,eAAAA,CAAAA,cAAAA,EAAAA,IAAAA,EAAAA,IAAAA,CAAAA,CAAAA;AAjBb,SAAA,CAAA,GAAA,IAAA,CAAA;AAAA,QAAA,MAAA,eAAA,GAAA,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAA,KAAA,EAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAA,KAAA,IAAA,CAAA,KAAA,CAAA,KAAA,CAAA;AAAA,QAAA,MAwBA,QAzBJ,GAAA,CAAA,QAAA,IAAA,IAAA,CAAA,MAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAAA;AA2BA,QAAA,OAAU2B,eAAG,CAAA,KAAA,EAAgB;AAC3B,UAAA,KAAS,EAAA,CAAA,IAAO,EAAA,GAAhB,CAAA,CAAA;AACA,UAAA,YAAc,CAAGU,CAAAA,CAAAA,MAAKxE,CAAAA,EAAAA,EAAMyE,CAA5B,EAAA,CAAA,QAAA,CAAA,KAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,QAAA,EAAA,IAAA,CAAA,MAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AACA,UAAA,IAAMjF,EAAO,CAAA,IAAA,EAAA;AACb,UAAA,KAAc,EAAA,CAAA,IAAA,EAAA,GAAIiF,CAAAA,CAAAA;AAClBD,UAAAA,uBAAA,EAAA,OAAA,CAAA,CAAA;UAEME,MAAAA,EAAAA;AAAmB,UAAA,eAAA,EAAA,IAAA,CAAA,MAAA;UAAA,UAMXjF,EAAAA,QAAuB;AANZ,UAAA,SAAA,EAAA,MAAA,QAAA,EAAA;AAAA,UAAA,QAAA,EAAA,MAAA,WAAA,EAAA;AAAA,UAAA,SAAzB,EAAA,CAAA,EAAA,KAAA;AAYA,YAAA,WAAqB,EAAA,CAAA;AACrB,YAAA,IAAc,CAAA,UAAIgF,EAAAA,IAAAA,EAAYD,OAAI,EAACG,EAAAA,CAAAA,CAAAA;AAEnC,WAAA;UAAA,WAEU,EAAA,CAAMC,OAFhB;YAGW,IAAA,QACL,KAAA,EAAA,CADK,IAEH,KAAIpD,eAASxB,CAAAA,MAAMyB,IAAAA,EAAAA,CAAAA,IACrBlB,KAAA6C,eAAA,CAAgBoB,SAAhB,CAAA,EAHK;cAQF,IAAA,CAAA,WAAc,EAXvB,IAAA,EAAA,EAAA,CAAA,CAAA;aAYU;WACU;AAbpB,SAAA,EAAA,CAAA,GAAA,CAAA,eAAA,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,MAAA,OAAAV,eAAA,CAAA,KAAA,EAAA;aAiBa,EAAA,GAAA;eACD,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,eAlBZ,CAAA,EAAA,CAAA,YAAA,EAAA,CAAA,CAAA,UAAA,CAAA,KAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,QAAA,CAAA,KAAA,CAAA,WAAA,CAAA,CAAA;AAAA,OAAA,EAAA,CAAA,SAAA,EAmBcrE,eAAmB,CAAA,KAAA,EAAA;eAChB,EAAA,EAAA,CAAA,CAAA,CAAA,YAAA,CAAA;aACP,EAAA;UACLqE,eAtBL,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAuBgBrE,KAAsB,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,QAAA,CAAA,KAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,EAAA,CAAA,SAAA,EAAA,KAAA,CAAA,OAAA,IAAA,CAAA,KAAA,EAAA,QAAA,CAAA,CAAA,QAAA,CAAA,QAAA,CAAA,KAAA,CAAA,WAAA,CAAA,CAAA,CAAA;AAChC,QAAA,KAAA,EAAA;AAKEU,QAAAA,OAAAA,EAAAA,QAAI,CAAA,KAAA;AACL,QAAA,MAAA,EAAA,SAAA;AACF,QAAA,WAAA,EAAA,SAAA;AA/BL,OAAA,EAAA,CAAA,GAAA,CAAA,CAiCQ,KAAC0E,CAAAA,IAAAA,GAAAA,eAAiBH,CAAlBI,iBAjCR,EAAA;AAoCD,QA1DD,MAAA,EAAA,CAAA,GAAA,KAAA,CAAA,KAAA,CAAA;AA4DA,OAAA,EAAA,IAAA,CAAA,GAAA,IAAA,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GAAA;AAAA,CAAA;;;;;;"}