@element-plus/nightly 0.0.20220714 → 0.0.20220717

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 (344) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +25 -14
  3. package/dist/index.full.min.js +14 -14
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +14 -14
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +25 -14
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar.js +1 -1
  13. package/dist/locale/ar.min.js +1 -1
  14. package/dist/locale/ar.min.mjs +1 -1
  15. package/dist/locale/ar.mjs +1 -1
  16. package/dist/locale/az.js +1 -1
  17. package/dist/locale/az.min.js +1 -1
  18. package/dist/locale/az.min.mjs +1 -1
  19. package/dist/locale/az.mjs +1 -1
  20. package/dist/locale/bg.js +1 -1
  21. package/dist/locale/bg.min.js +1 -1
  22. package/dist/locale/bg.min.mjs +1 -1
  23. package/dist/locale/bg.mjs +1 -1
  24. package/dist/locale/bn.js +1 -1
  25. package/dist/locale/bn.min.js +1 -1
  26. package/dist/locale/bn.min.mjs +1 -1
  27. package/dist/locale/bn.mjs +1 -1
  28. package/dist/locale/ca.js +1 -1
  29. package/dist/locale/ca.min.js +1 -1
  30. package/dist/locale/ca.min.mjs +1 -1
  31. package/dist/locale/ca.mjs +1 -1
  32. package/dist/locale/cs.js +1 -1
  33. package/dist/locale/cs.min.js +1 -1
  34. package/dist/locale/cs.min.mjs +1 -1
  35. package/dist/locale/cs.mjs +1 -1
  36. package/dist/locale/da.js +1 -1
  37. package/dist/locale/da.min.js +1 -1
  38. package/dist/locale/da.min.mjs +1 -1
  39. package/dist/locale/da.mjs +1 -1
  40. package/dist/locale/de.js +1 -1
  41. package/dist/locale/de.min.js +1 -1
  42. package/dist/locale/de.min.mjs +1 -1
  43. package/dist/locale/de.mjs +1 -1
  44. package/dist/locale/el.js +1 -1
  45. package/dist/locale/el.min.js +1 -1
  46. package/dist/locale/el.min.mjs +1 -1
  47. package/dist/locale/el.mjs +1 -1
  48. package/dist/locale/en.js +1 -1
  49. package/dist/locale/en.min.js +1 -1
  50. package/dist/locale/en.min.mjs +1 -1
  51. package/dist/locale/en.mjs +1 -1
  52. package/dist/locale/eo.js +1 -1
  53. package/dist/locale/eo.min.js +1 -1
  54. package/dist/locale/eo.min.mjs +1 -1
  55. package/dist/locale/eo.mjs +1 -1
  56. package/dist/locale/es.js +1 -1
  57. package/dist/locale/es.min.js +1 -1
  58. package/dist/locale/es.min.mjs +1 -1
  59. package/dist/locale/es.mjs +1 -1
  60. package/dist/locale/et.js +1 -1
  61. package/dist/locale/et.min.js +1 -1
  62. package/dist/locale/et.min.mjs +1 -1
  63. package/dist/locale/et.mjs +1 -1
  64. package/dist/locale/eu.js +1 -1
  65. package/dist/locale/eu.min.js +1 -1
  66. package/dist/locale/eu.min.mjs +1 -1
  67. package/dist/locale/eu.mjs +1 -1
  68. package/dist/locale/fa.js +1 -1
  69. package/dist/locale/fa.min.js +1 -1
  70. package/dist/locale/fa.min.mjs +1 -1
  71. package/dist/locale/fa.mjs +1 -1
  72. package/dist/locale/fi.js +1 -1
  73. package/dist/locale/fi.min.js +1 -1
  74. package/dist/locale/fi.min.mjs +1 -1
  75. package/dist/locale/fi.mjs +1 -1
  76. package/dist/locale/fr.js +1 -1
  77. package/dist/locale/fr.min.js +1 -1
  78. package/dist/locale/fr.min.mjs +1 -1
  79. package/dist/locale/fr.mjs +1 -1
  80. package/dist/locale/he.js +1 -1
  81. package/dist/locale/he.min.js +1 -1
  82. package/dist/locale/he.min.mjs +1 -1
  83. package/dist/locale/he.mjs +1 -1
  84. package/dist/locale/hr.js +1 -1
  85. package/dist/locale/hr.min.js +1 -1
  86. package/dist/locale/hr.min.mjs +1 -1
  87. package/dist/locale/hr.mjs +1 -1
  88. package/dist/locale/hu.js +1 -1
  89. package/dist/locale/hu.min.js +1 -1
  90. package/dist/locale/hu.min.mjs +1 -1
  91. package/dist/locale/hu.mjs +1 -1
  92. package/dist/locale/hy-am.js +1 -1
  93. package/dist/locale/hy-am.min.js +1 -1
  94. package/dist/locale/hy-am.min.mjs +1 -1
  95. package/dist/locale/hy-am.mjs +1 -1
  96. package/dist/locale/id.js +1 -1
  97. package/dist/locale/id.min.js +1 -1
  98. package/dist/locale/id.min.mjs +1 -1
  99. package/dist/locale/id.mjs +1 -1
  100. package/dist/locale/it.js +1 -1
  101. package/dist/locale/it.min.js +1 -1
  102. package/dist/locale/it.min.mjs +1 -1
  103. package/dist/locale/it.mjs +1 -1
  104. package/dist/locale/ja.js +1 -1
  105. package/dist/locale/ja.min.js +1 -1
  106. package/dist/locale/ja.min.mjs +1 -1
  107. package/dist/locale/ja.mjs +1 -1
  108. package/dist/locale/kk.js +1 -1
  109. package/dist/locale/kk.min.js +1 -1
  110. package/dist/locale/kk.min.mjs +1 -1
  111. package/dist/locale/kk.mjs +1 -1
  112. package/dist/locale/km.js +1 -1
  113. package/dist/locale/km.min.js +1 -1
  114. package/dist/locale/km.min.mjs +1 -1
  115. package/dist/locale/km.mjs +1 -1
  116. package/dist/locale/ko.js +29 -4
  117. package/dist/locale/ko.min.js +1 -1
  118. package/dist/locale/ko.min.js.map +1 -1
  119. package/dist/locale/ko.min.mjs +1 -1
  120. package/dist/locale/ko.min.mjs.map +1 -1
  121. package/dist/locale/ko.mjs +29 -4
  122. package/dist/locale/ku.js +1 -1
  123. package/dist/locale/ku.min.js +1 -1
  124. package/dist/locale/ku.min.mjs +1 -1
  125. package/dist/locale/ku.mjs +1 -1
  126. package/dist/locale/ky.js +1 -1
  127. package/dist/locale/ky.min.js +1 -1
  128. package/dist/locale/ky.min.mjs +1 -1
  129. package/dist/locale/ky.mjs +1 -1
  130. package/dist/locale/lt.js +1 -1
  131. package/dist/locale/lt.min.js +1 -1
  132. package/dist/locale/lt.min.mjs +1 -1
  133. package/dist/locale/lt.mjs +1 -1
  134. package/dist/locale/lv.js +1 -1
  135. package/dist/locale/lv.min.js +1 -1
  136. package/dist/locale/lv.min.mjs +1 -1
  137. package/dist/locale/lv.mjs +1 -1
  138. package/dist/locale/mg.js +1 -1
  139. package/dist/locale/mg.min.js +1 -1
  140. package/dist/locale/mg.min.mjs +1 -1
  141. package/dist/locale/mg.mjs +1 -1
  142. package/dist/locale/mn.js +1 -1
  143. package/dist/locale/mn.min.js +1 -1
  144. package/dist/locale/mn.min.mjs +1 -1
  145. package/dist/locale/mn.mjs +1 -1
  146. package/dist/locale/nb-no.js +1 -1
  147. package/dist/locale/nb-no.min.js +1 -1
  148. package/dist/locale/nb-no.min.mjs +1 -1
  149. package/dist/locale/nb-no.mjs +1 -1
  150. package/dist/locale/nl.js +1 -1
  151. package/dist/locale/nl.min.js +1 -1
  152. package/dist/locale/nl.min.mjs +1 -1
  153. package/dist/locale/nl.mjs +1 -1
  154. package/dist/locale/pa.js +1 -1
  155. package/dist/locale/pa.min.js +1 -1
  156. package/dist/locale/pa.min.mjs +1 -1
  157. package/dist/locale/pa.mjs +1 -1
  158. package/dist/locale/pl.js +1 -1
  159. package/dist/locale/pl.min.js +1 -1
  160. package/dist/locale/pl.min.mjs +1 -1
  161. package/dist/locale/pl.mjs +1 -1
  162. package/dist/locale/pt-br.js +1 -1
  163. package/dist/locale/pt-br.min.js +1 -1
  164. package/dist/locale/pt-br.min.mjs +1 -1
  165. package/dist/locale/pt-br.mjs +1 -1
  166. package/dist/locale/pt.js +1 -1
  167. package/dist/locale/pt.min.js +1 -1
  168. package/dist/locale/pt.min.mjs +1 -1
  169. package/dist/locale/pt.mjs +1 -1
  170. package/dist/locale/ro.js +1 -1
  171. package/dist/locale/ro.min.js +1 -1
  172. package/dist/locale/ro.min.mjs +1 -1
  173. package/dist/locale/ro.mjs +1 -1
  174. package/dist/locale/ru.js +1 -1
  175. package/dist/locale/ru.min.js +1 -1
  176. package/dist/locale/ru.min.mjs +1 -1
  177. package/dist/locale/ru.mjs +1 -1
  178. package/dist/locale/sk.js +1 -1
  179. package/dist/locale/sk.min.js +1 -1
  180. package/dist/locale/sk.min.mjs +1 -1
  181. package/dist/locale/sk.mjs +1 -1
  182. package/dist/locale/sl.js +1 -1
  183. package/dist/locale/sl.min.js +1 -1
  184. package/dist/locale/sl.min.mjs +1 -1
  185. package/dist/locale/sl.mjs +1 -1
  186. package/dist/locale/sr.js +1 -1
  187. package/dist/locale/sr.min.js +1 -1
  188. package/dist/locale/sr.min.mjs +1 -1
  189. package/dist/locale/sr.mjs +1 -1
  190. package/dist/locale/sv.js +1 -1
  191. package/dist/locale/sv.min.js +1 -1
  192. package/dist/locale/sv.min.mjs +1 -1
  193. package/dist/locale/sv.mjs +1 -1
  194. package/dist/locale/ta.js +1 -1
  195. package/dist/locale/ta.min.js +1 -1
  196. package/dist/locale/ta.min.mjs +1 -1
  197. package/dist/locale/ta.mjs +1 -1
  198. package/dist/locale/th.js +1 -1
  199. package/dist/locale/th.min.js +1 -1
  200. package/dist/locale/th.min.mjs +1 -1
  201. package/dist/locale/th.mjs +1 -1
  202. package/dist/locale/tk.js +1 -1
  203. package/dist/locale/tk.min.js +1 -1
  204. package/dist/locale/tk.min.mjs +1 -1
  205. package/dist/locale/tk.mjs +1 -1
  206. package/dist/locale/tr.js +1 -1
  207. package/dist/locale/tr.min.js +1 -1
  208. package/dist/locale/tr.min.mjs +1 -1
  209. package/dist/locale/tr.mjs +1 -1
  210. package/dist/locale/ug-cn.js +1 -1
  211. package/dist/locale/ug-cn.min.js +1 -1
  212. package/dist/locale/ug-cn.min.mjs +1 -1
  213. package/dist/locale/ug-cn.mjs +1 -1
  214. package/dist/locale/uk.js +1 -1
  215. package/dist/locale/uk.min.js +1 -1
  216. package/dist/locale/uk.min.mjs +1 -1
  217. package/dist/locale/uk.mjs +1 -1
  218. package/dist/locale/uz-uz.js +1 -1
  219. package/dist/locale/uz-uz.min.js +1 -1
  220. package/dist/locale/uz-uz.min.mjs +1 -1
  221. package/dist/locale/uz-uz.mjs +1 -1
  222. package/dist/locale/vi.js +1 -1
  223. package/dist/locale/vi.min.js +1 -1
  224. package/dist/locale/vi.min.mjs +1 -1
  225. package/dist/locale/vi.mjs +1 -1
  226. package/dist/locale/zh-cn.js +1 -1
  227. package/dist/locale/zh-cn.min.js +1 -1
  228. package/dist/locale/zh-cn.min.mjs +1 -1
  229. package/dist/locale/zh-cn.mjs +1 -1
  230. package/dist/locale/zh-tw.js +1 -1
  231. package/dist/locale/zh-tw.min.js +1 -1
  232. package/dist/locale/zh-tw.min.mjs +1 -1
  233. package/dist/locale/zh-tw.mjs +1 -1
  234. package/es/components/cascader/src/index.mjs +1 -1
  235. package/es/components/index.mjs +2 -2
  236. package/es/components/message/src/method.mjs +3 -1
  237. package/es/components/message/src/method.mjs.map +1 -1
  238. package/es/components/popover/index.d.ts +20 -0
  239. package/es/components/popover/src/popover.d.ts +11 -5
  240. package/es/components/popover/src/popover.mjs +3 -0
  241. package/es/components/popover/src/popover.mjs.map +1 -1
  242. package/es/components/popover/src/popover.vue.d.ts +20 -0
  243. package/es/components/popover/src/popover2.mjs +7 -2
  244. package/es/components/popover/src/popover2.mjs.map +1 -1
  245. package/es/components/select/src/select.mjs +1 -1
  246. package/es/components/slider/src/button.mjs +92 -21
  247. package/es/components/slider/src/button.mjs.map +1 -1
  248. package/es/components/slider/src/button2.mjs +21 -92
  249. package/es/components/slider/src/button2.mjs.map +1 -1
  250. package/es/components/slider/src/slider2.mjs +1 -1
  251. package/es/components/steps/index.mjs +2 -2
  252. package/es/components/steps/src/item.mjs +184 -20
  253. package/es/components/steps/src/item.mjs.map +1 -1
  254. package/es/components/steps/src/item2.mjs +20 -184
  255. package/es/components/steps/src/item2.mjs.map +1 -1
  256. package/es/components/table/index.d.ts +2 -2
  257. package/es/components/table/src/table/defaults.d.ts +2 -2
  258. package/es/components/table/src/table/defaults.mjs.map +1 -1
  259. package/es/components/table/src/table.vue.d.ts +2 -2
  260. package/es/components/tabs/src/tab-nav.mjs +5 -4
  261. package/es/components/tabs/src/tab-nav.mjs.map +1 -1
  262. package/es/components/tag/index.mjs +2 -2
  263. package/es/components/tag/src/tag.mjs +93 -33
  264. package/es/components/tag/src/tag.mjs.map +1 -1
  265. package/es/components/tag/src/tag2.mjs +33 -93
  266. package/es/components/tag/src/tag2.mjs.map +1 -1
  267. package/es/components/time-picker/src/common/picker.mjs +0 -1
  268. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  269. package/es/components/tooltip/src/tooltip2.mjs +2 -2
  270. package/es/components/tooltip/src/tooltip2.mjs.map +1 -1
  271. package/es/components/virtual-list/src/components/dynamic-size-grid.mjs +1 -1
  272. package/es/components/virtual-list/src/components/dynamic-size-grid.mjs.map +1 -1
  273. package/es/directives/click-outside/index.mjs.map +1 -1
  274. package/es/directives/trap-focus/index.d.ts +1 -1
  275. package/es/directives/trap-focus/index.mjs +2 -3
  276. package/es/directives/trap-focus/index.mjs.map +1 -1
  277. package/es/hooks/use-model-toggle/index.d.ts +2 -0
  278. package/es/hooks/use-model-toggle/index.mjs +2 -1
  279. package/es/hooks/use-model-toggle/index.mjs.map +1 -1
  280. package/es/index.mjs +2 -2
  281. package/es/locale/lang/ko.d.ts +25 -0
  282. package/es/locale/lang/ko.mjs +28 -3
  283. package/es/locale/lang/ko.mjs.map +1 -1
  284. package/es/version.d.ts +1 -1
  285. package/es/version.mjs +1 -1
  286. package/es/version.mjs.map +1 -1
  287. package/lib/components/cascader/src/index.js +1 -1
  288. package/lib/components/index.js +2 -2
  289. package/lib/components/message/src/method.js +3 -1
  290. package/lib/components/message/src/method.js.map +1 -1
  291. package/lib/components/popover/index.d.ts +20 -0
  292. package/lib/components/popover/src/popover.d.ts +11 -5
  293. package/lib/components/popover/src/popover.js +3 -0
  294. package/lib/components/popover/src/popover.js.map +1 -1
  295. package/lib/components/popover/src/popover.vue.d.ts +20 -0
  296. package/lib/components/popover/src/popover2.js +6 -1
  297. package/lib/components/popover/src/popover2.js.map +1 -1
  298. package/lib/components/select/src/select.js +1 -1
  299. package/lib/components/slider/src/button.js +92 -22
  300. package/lib/components/slider/src/button.js.map +1 -1
  301. package/lib/components/slider/src/button2.js +22 -92
  302. package/lib/components/slider/src/button2.js.map +1 -1
  303. package/lib/components/slider/src/slider2.js +1 -1
  304. package/lib/components/steps/index.js +2 -2
  305. package/lib/components/steps/src/item.js +184 -20
  306. package/lib/components/steps/src/item.js.map +1 -1
  307. package/lib/components/steps/src/item2.js +20 -184
  308. package/lib/components/steps/src/item2.js.map +1 -1
  309. package/lib/components/table/index.d.ts +2 -2
  310. package/lib/components/table/src/table/defaults.d.ts +2 -2
  311. package/lib/components/table/src/table/defaults.js.map +1 -1
  312. package/lib/components/table/src/table.vue.d.ts +2 -2
  313. package/lib/components/tabs/src/tab-nav.js +5 -4
  314. package/lib/components/tabs/src/tab-nav.js.map +1 -1
  315. package/lib/components/tag/index.js +2 -2
  316. package/lib/components/tag/src/tag.js +93 -34
  317. package/lib/components/tag/src/tag.js.map +1 -1
  318. package/lib/components/tag/src/tag2.js +34 -93
  319. package/lib/components/tag/src/tag2.js.map +1 -1
  320. package/lib/components/time-picker/src/common/picker.js +0 -1
  321. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  322. package/lib/components/tooltip/src/tooltip2.js +2 -2
  323. package/lib/components/tooltip/src/tooltip2.js.map +1 -1
  324. package/lib/components/virtual-list/src/components/dynamic-size-grid.js +1 -1
  325. package/lib/components/virtual-list/src/components/dynamic-size-grid.js.map +1 -1
  326. package/lib/directives/click-outside/index.js.map +1 -1
  327. package/lib/directives/trap-focus/index.d.ts +1 -1
  328. package/lib/directives/trap-focus/index.js +2 -3
  329. package/lib/directives/trap-focus/index.js.map +1 -1
  330. package/lib/hooks/use-model-toggle/index.d.ts +2 -0
  331. package/lib/hooks/use-model-toggle/index.js +2 -1
  332. package/lib/hooks/use-model-toggle/index.js.map +1 -1
  333. package/lib/index.js +2 -2
  334. package/lib/locale/lang/ko.d.ts +25 -0
  335. package/lib/locale/lang/ko.js +28 -3
  336. package/lib/locale/lang/ko.js.map +1 -1
  337. package/lib/version.d.ts +1 -1
  338. package/lib/version.js +1 -1
  339. package/lib/version.js.map +1 -1
  340. package/package.json +2 -2
  341. package/theme-chalk/el-tabs.css +1 -1
  342. package/theme-chalk/index.css +1 -1
  343. package/theme-chalk/src/tabs.scss +1 -1
  344. package/web-types.json +1 -1
@@ -1,189 +1,25 @@
1
- import { defineComponent, ref, inject, getCurrentInstance, onMounted, watch, onBeforeUnmount, computed, reactive, openBlock, createElementBlock, normalizeStyle, unref, normalizeClass, createCommentVNode, createElementVNode, renderSlot, createBlock, withCtx, resolveDynamicComponent, toDisplayString, createTextVNode } from 'vue';
2
- import '../../../hooks/index.mjs';
3
- import { ElIcon } from '../../icon/index.mjs';
4
- import { Check, Close } from '@element-plus/icons-vue';
5
- import { stepProps } from './item.mjs';
6
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
7
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
1
+ import '../../../utils/index.mjs';
2
+ import { buildProps } from '../../../utils/vue/props/runtime.mjs';
3
+ import { iconPropType } from '../../../utils/vue/icon.mjs';
8
4
 
9
- const __default__ = {
10
- name: "ElStep"
11
- };
12
- const _sfc_main = defineComponent({
13
- ...__default__,
14
- props: stepProps,
15
- setup(__props) {
16
- const props = __props;
17
- const ns = useNamespace("step");
18
- const index = ref(-1);
19
- const lineStyle = ref({});
20
- const internalStatus = ref("");
21
- const parent = inject("ElSteps");
22
- const currentInstance = getCurrentInstance();
23
- onMounted(() => {
24
- watch([
25
- () => parent.props.active,
26
- () => parent.props.processStatus,
27
- () => parent.props.finishStatus
28
- ], ([active]) => {
29
- updateStatus(active);
30
- }, { immediate: true });
31
- });
32
- onBeforeUnmount(() => {
33
- parent.steps.value = parent.steps.value.filter((instance) => instance.uid !== (currentInstance == null ? void 0 : currentInstance.uid));
34
- });
35
- const currentStatus = computed(() => {
36
- return props.status || internalStatus.value;
37
- });
38
- const prevStatus = computed(() => {
39
- const prevStep = parent.steps.value[index.value - 1];
40
- return prevStep ? prevStep.currentStatus : "wait";
41
- });
42
- const isCenter = computed(() => {
43
- return parent.props.alignCenter;
44
- });
45
- const isVertical = computed(() => {
46
- return parent.props.direction === "vertical";
47
- });
48
- const isSimple = computed(() => {
49
- return parent.props.simple;
50
- });
51
- const stepsCount = computed(() => {
52
- return parent.steps.value.length;
53
- });
54
- const isLast = computed(() => {
55
- var _a;
56
- return ((_a = parent.steps.value[stepsCount.value - 1]) == null ? void 0 : _a.uid) === (currentInstance == null ? void 0 : currentInstance.uid);
57
- });
58
- const space = computed(() => {
59
- return isSimple.value ? "" : parent.props.space;
60
- });
61
- const style = computed(() => {
62
- const style2 = {
63
- flexBasis: typeof space.value === "number" ? `${space.value}px` : space.value ? space.value : `${100 / (stepsCount.value - (isCenter.value ? 0 : 1))}%`
64
- };
65
- if (isVertical.value)
66
- return style2;
67
- if (isLast.value) {
68
- style2.maxWidth = `${100 / stepsCount.value}%`;
69
- }
70
- return style2;
71
- });
72
- const setIndex = (val) => {
73
- index.value = val;
74
- };
75
- const calcProgress = (status) => {
76
- let step = 100;
77
- const style2 = {};
78
- style2.transitionDelay = `${150 * index.value}ms`;
79
- if (status === parent.props.processStatus) {
80
- step = 0;
81
- } else if (status === "wait") {
82
- step = 0;
83
- style2.transitionDelay = `${-150 * index.value}ms`;
84
- }
85
- style2.borderWidth = step && !isSimple.value ? "1px" : 0;
86
- style2[parent.props.direction === "vertical" ? "height" : "width"] = `${step}%`;
87
- lineStyle.value = style2;
88
- };
89
- const updateStatus = (activeIndex) => {
90
- if (activeIndex > index.value) {
91
- internalStatus.value = parent.props.finishStatus;
92
- } else if (activeIndex === index.value && prevStatus.value !== "error") {
93
- internalStatus.value = parent.props.processStatus;
94
- } else {
95
- internalStatus.value = "wait";
96
- }
97
- const prevChild = parent.steps.value[stepsCount.value - 1];
98
- if (prevChild)
99
- prevChild.calcProgress(internalStatus.value);
100
- };
101
- const stepItemState = reactive({
102
- uid: computed(() => currentInstance == null ? void 0 : currentInstance.uid),
103
- currentStatus,
104
- setIndex,
105
- calcProgress
106
- });
107
- parent.steps.value = [...parent.steps.value, stepItemState];
108
- return (_ctx, _cache) => {
109
- return openBlock(), createElementBlock("div", {
110
- style: normalizeStyle(unref(style)),
111
- class: normalizeClass([
112
- unref(ns).b(),
113
- unref(ns).is(unref(isSimple) ? "simple" : unref(parent).props.direction),
114
- unref(ns).is("flex", unref(isLast) && !unref(space) && !unref(isCenter)),
115
- unref(ns).is("center", unref(isCenter) && !unref(isVertical) && !unref(isSimple))
116
- ])
117
- }, [
118
- createCommentVNode(" icon & line "),
119
- createElementVNode("div", {
120
- class: normalizeClass([unref(ns).e("head"), unref(ns).is(unref(currentStatus))])
121
- }, [
122
- !unref(isSimple) ? (openBlock(), createElementBlock("div", {
123
- key: 0,
124
- class: normalizeClass(unref(ns).e("line"))
125
- }, [
126
- createElementVNode("i", {
127
- class: normalizeClass(unref(ns).e("line-inner")),
128
- style: normalizeStyle(lineStyle.value)
129
- }, null, 6)
130
- ], 2)) : createCommentVNode("v-if", true),
131
- createElementVNode("div", {
132
- class: normalizeClass([unref(ns).e("icon"), unref(ns).is(_ctx.icon || _ctx.$slots.icon ? "icon" : "text")])
133
- }, [
134
- unref(currentStatus) !== "success" && unref(currentStatus) !== "error" ? renderSlot(_ctx.$slots, "icon", { key: 0 }, () => [
135
- _ctx.icon ? (openBlock(), createBlock(unref(ElIcon), {
136
- key: 0,
137
- class: normalizeClass(unref(ns).e("icon-inner"))
138
- }, {
139
- default: withCtx(() => [
140
- (openBlock(), createBlock(resolveDynamicComponent(_ctx.icon)))
141
- ]),
142
- _: 1
143
- }, 8, ["class"])) : createCommentVNode("v-if", true),
144
- !_ctx.icon && !unref(isSimple) ? (openBlock(), createElementBlock("div", {
145
- key: 1,
146
- class: normalizeClass(unref(ns).e("icon-inner"))
147
- }, toDisplayString(index.value + 1), 3)) : createCommentVNode("v-if", true)
148
- ]) : (openBlock(), createBlock(unref(ElIcon), {
149
- key: 1,
150
- class: normalizeClass([unref(ns).e("icon-inner"), unref(ns).is("status")])
151
- }, {
152
- default: withCtx(() => [
153
- unref(currentStatus) === "success" ? (openBlock(), createBlock(unref(Check), { key: 0 })) : (openBlock(), createBlock(unref(Close), { key: 1 }))
154
- ]),
155
- _: 1
156
- }, 8, ["class"]))
157
- ], 2)
158
- ], 2),
159
- createCommentVNode(" title & description "),
160
- createElementVNode("div", {
161
- class: normalizeClass(unref(ns).e("main"))
162
- }, [
163
- createElementVNode("div", {
164
- class: normalizeClass([unref(ns).e("title"), unref(ns).is(unref(currentStatus))])
165
- }, [
166
- renderSlot(_ctx.$slots, "title", {}, () => [
167
- createTextVNode(toDisplayString(_ctx.title), 1)
168
- ])
169
- ], 2),
170
- unref(isSimple) ? (openBlock(), createElementBlock("div", {
171
- key: 0,
172
- class: normalizeClass(unref(ns).e("arrow"))
173
- }, null, 2)) : (openBlock(), createElementBlock("div", {
174
- key: 1,
175
- class: normalizeClass([unref(ns).e("description"), unref(ns).is(unref(currentStatus))])
176
- }, [
177
- renderSlot(_ctx.$slots, "description", {}, () => [
178
- createTextVNode(toDisplayString(_ctx.description), 1)
179
- ])
180
- ], 2))
181
- ], 2)
182
- ], 6);
183
- };
5
+ const stepProps = buildProps({
6
+ title: {
7
+ type: String,
8
+ default: ""
9
+ },
10
+ icon: {
11
+ type: iconPropType
12
+ },
13
+ description: {
14
+ type: String,
15
+ default: ""
16
+ },
17
+ status: {
18
+ type: String,
19
+ values: ["", "wait", "process", "finish", "error", "success"],
20
+ default: ""
184
21
  }
185
22
  });
186
- var Step = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/steps/src/item.vue"]]);
187
23
 
188
- export { Step as default };
24
+ export { stepProps };
189
25
  //# sourceMappingURL=item2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"item2.mjs","sources":["../../../../../../packages/components/steps/src/item.vue"],"sourcesContent":["<template>\n <div\n :style=\"style\"\n :class=\"[\n ns.b(),\n ns.is(isSimple ? 'simple' : parent.props.direction),\n ns.is('flex', isLast && !space && !isCenter),\n ns.is('center', isCenter && !isVertical && !isSimple),\n ]\"\n >\n <!-- icon & line -->\n <div :class=\"[ns.e('head'), ns.is(currentStatus)]\">\n <div v-if=\"!isSimple\" :class=\"ns.e('line')\">\n <i :class=\"ns.e('line-inner')\" :style=\"lineStyle\" />\n </div>\n\n <div\n :class=\"[ns.e('icon'), ns.is(icon || $slots.icon ? 'icon' : 'text')]\"\n >\n <slot\n v-if=\"currentStatus !== 'success' && currentStatus !== 'error'\"\n name=\"icon\"\n >\n <el-icon v-if=\"icon\" :class=\"ns.e('icon-inner')\">\n <component :is=\"icon\" />\n </el-icon>\n <div v-if=\"!icon && !isSimple\" :class=\"ns.e('icon-inner')\">\n {{ index + 1 }}\n </div>\n </slot>\n <el-icon v-else :class=\"[ns.e('icon-inner'), ns.is('status')]\">\n <Check v-if=\"currentStatus === 'success'\" />\n <Close v-else />\n </el-icon>\n </div>\n </div>\n <!-- title & description -->\n <div :class=\"ns.e('main')\">\n <div :class=\"[ns.e('title'), ns.is(currentStatus)]\">\n <slot name=\"title\">{{ title }}</slot>\n </div>\n <div v-if=\"isSimple\" :class=\"ns.e('arrow')\" />\n <div v-else :class=\"[ns.e('description'), ns.is(currentStatus)]\">\n <slot name=\"description\">{{ description }}</slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onMounted,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { Check, Close } from '@element-plus/icons-vue'\nimport { stepProps } from './item'\n\nimport type { CSSProperties, Ref } from 'vue'\n\nexport interface IStepsProps {\n space: number | string\n active: number\n direction: string\n alignCenter: boolean\n simple: boolean\n finishStatus: string\n processStatus: string\n}\n\nexport interface StepItemState {\n uid: number | undefined\n currentStatus: string\n setIndex: (val: number) => void\n calcProgress: (status: string) => void\n}\n\nexport interface IStepsInject {\n props: IStepsProps\n steps: Ref<StepItemState[]>\n}\n\ndefineOptions({\n name: 'ElStep',\n})\n\nconst props = defineProps(stepProps)\nconst ns = useNamespace('step')\nconst index = ref(-1)\nconst lineStyle = ref({})\nconst internalStatus = ref('')\nconst parent = inject('ElSteps') as IStepsInject\nconst currentInstance = getCurrentInstance()\n\nonMounted(() => {\n watch(\n [\n () => parent.props.active,\n () => parent.props.processStatus,\n () => parent.props.finishStatus,\n ],\n ([active]) => {\n updateStatus(active)\n },\n { immediate: true }\n )\n})\n\nonBeforeUnmount(() => {\n parent.steps.value = parent.steps.value.filter(\n (instance) => instance.uid !== currentInstance?.uid\n )\n})\n\nconst currentStatus = computed(() => {\n return props.status || internalStatus.value\n})\n\nconst prevStatus = computed(() => {\n const prevStep = parent.steps.value[index.value - 1]\n return prevStep ? prevStep.currentStatus : 'wait'\n})\n\nconst isCenter = computed(() => {\n return parent.props.alignCenter\n})\n\nconst isVertical = computed(() => {\n return parent.props.direction === 'vertical'\n})\n\nconst isSimple = computed(() => {\n return parent.props.simple\n})\n\nconst stepsCount = computed(() => {\n return parent.steps.value.length\n})\n\nconst isLast = computed(() => {\n return parent.steps.value[stepsCount.value - 1]?.uid === currentInstance?.uid\n})\n\nconst space = computed(() => {\n return isSimple.value ? '' : parent.props.space\n})\n\nconst style = computed(() => {\n const style: CSSProperties = {\n flexBasis:\n typeof space.value === 'number'\n ? `${space.value}px`\n : space.value\n ? space.value\n : `${100 / (stepsCount.value - (isCenter.value ? 0 : 1))}%`,\n }\n if (isVertical.value) return style\n if (isLast.value) {\n style.maxWidth = `${100 / stepsCount.value}%`\n }\n return style\n})\n\nconst setIndex = (val: number) => {\n index.value = val\n}\n\nconst calcProgress = (status: string) => {\n let step = 100\n const style: CSSProperties = {}\n style.transitionDelay = `${150 * index.value}ms`\n if (status === parent.props.processStatus) {\n step = 0\n } else if (status === 'wait') {\n step = 0\n style.transitionDelay = `${-150 * index.value}ms`\n }\n style.borderWidth = step && !isSimple.value ? '1px' : 0\n style[parent.props.direction === 'vertical' ? 'height' : 'width'] = `${step}%`\n lineStyle.value = style\n}\n\nconst updateStatus = (activeIndex: number) => {\n if (activeIndex > index.value) {\n internalStatus.value = parent.props.finishStatus\n } else if (activeIndex === index.value && prevStatus.value !== 'error') {\n internalStatus.value = parent.props.processStatus\n } else {\n internalStatus.value = 'wait'\n }\n const prevChild = parent.steps.value[stepsCount.value - 1]\n if (prevChild) prevChild.calcProgress(internalStatus.value)\n}\n\nconst stepItemState = reactive({\n uid: computed(() => currentInstance?.uid),\n currentStatus,\n setIndex,\n calcProgress,\n})\n\nparent.steps.value = [...parent.steps.value, stepItemState]\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"item2.mjs","sources":["../../../../../../packages/components/steps/src/item.ts"],"sourcesContent":["import { buildProps, iconPropType } from '@element-plus/utils'\nimport type Step from './item.vue'\nimport type { ExtractPropTypes } from 'vue'\n\nexport const stepProps = buildProps({\n title: {\n type: String,\n default: '',\n },\n icon: {\n type: iconPropType,\n },\n description: {\n type: String,\n default: '',\n },\n status: {\n type: String,\n values: ['', 'wait', 'process', 'finish', 'error', 'success'],\n default: '',\n },\n} as const)\n\nexport type StepProps = ExtractPropTypes<typeof stepProps>\n\nexport type StepInstance = InstanceType<typeof Step>\n"],"names":[],"mappings":";;;;AACY,MAAC,SAAS,GAAG,UAAU,CAAC;AACpC,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,YAAY;AACtB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;AACjE,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,CAAC;;;;"}
@@ -64,7 +64,7 @@ export declare const ElTable: import("element-plus/es/utils").SFCWithInstall<imp
64
64
  }) => number[] | {
65
65
  rowspan: number;
66
66
  colspan: number;
67
- }) | undefined>;
67
+ } | undefined) | undefined>;
68
68
  selectOnIndeterminate: {
69
69
  type: BooleanConstructor;
70
70
  default: boolean;
@@ -257,7 +257,7 @@ export declare const ElTable: import("element-plus/es/utils").SFCWithInstall<imp
257
257
  }) => number[] | {
258
258
  rowspan: number;
259
259
  colspan: number;
260
- }) | undefined>;
260
+ } | undefined) | undefined>;
261
261
  selectOnIndeterminate: {
262
262
  type: BooleanConstructor;
263
263
  default: boolean;
@@ -107,7 +107,7 @@ interface TableProps<T> {
107
107
  }) => number[] | {
108
108
  rowspan: number;
109
109
  colspan: number;
110
- };
110
+ } | undefined;
111
111
  selectOnIndeterminate?: boolean;
112
112
  indent?: number;
113
113
  treeProps?: {
@@ -195,7 +195,7 @@ declare const _default: {
195
195
  }) => number[] | {
196
196
  rowspan: number;
197
197
  colspan: number;
198
- }) | undefined>;
198
+ } | undefined) | undefined>;
199
199
  selectOnIndeterminate: {
200
200
  type: BooleanConstructor;
201
201
  default: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.mjs","sources":["../../../../../../../packages/components/table/src/table/defaults.ts"],"sourcesContent":["// @ts-nocheck\nimport type {\n CSSProperties,\n ComponentInternalInstance,\n PropType,\n Ref,\n VNode,\n} from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type { Store } from '../store'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type TableLayout from '../table-layout'\n\nexport type DefaultRow = any\n\ninterface TableRefs {\n tableWrapper: HTMLElement\n headerWrapper: HTMLElement\n footerWrapper: HTMLElement\n fixedBodyWrapper: HTMLElement\n rightFixedBodyWrapper: HTMLElement\n bodyWrapper: HTMLElement\n [key: string]: any\n}\n\ninterface TableState {\n isGroup: Ref<boolean>\n resizeState: Ref<{\n width: any\n height: any\n }>\n doLayout: () => void\n debouncedUpdateLayout: () => void\n}\n\ntype HoverState<T> = Nullable<{\n cell: HTMLElement\n column: TableColumnCtx<T>\n row: T\n}>\n\ntype RIS<T> = { row: T; $index: number; store: Store<T>; expanded: boolean }\n\ntype RenderExpanded<T> = ({\n row,\n $index,\n store,\n expanded: boolean,\n}: RIS<T>) => VNode\n\ntype SummaryMethod<T> = (data: {\n columns: TableColumnCtx<T>[]\n data: T[]\n}) => string[]\n\ninterface Table<T> extends ComponentInternalInstance {\n $ready: boolean\n hoverState?: HoverState<T>\n renderExpanded: RenderExpanded<T>\n store: Store<T>\n layout: TableLayout<T>\n refs: TableRefs\n tableId: string\n state: TableState\n}\n\ntype ColumnCls<T> = string | ((data: { row: T; rowIndex: number }) => string)\ntype ColumnStyle<T> =\n | CSSProperties\n | ((data: { row: T; rowIndex: number }) => CSSProperties)\ntype CellCls<T> =\n | string\n | ((data: {\n row: T\n rowIndex: number\n column: TableColumnCtx<T>\n columnIndex: number\n }) => string)\ntype CellStyle<T> =\n | CSSProperties\n | ((data: {\n row: T\n rowIndex: number\n column: TableColumnCtx<T>\n columnIndex: number\n }) => CSSProperties)\ntype Layout = 'fixed' | 'auto'\ninterface TableProps<T> {\n data: T[]\n size?: string\n width?: string | number\n height?: string | number\n maxHeight?: string | number\n fit?: boolean\n stripe?: boolean\n border?: boolean\n rowKey?: string | ((row: T) => string)\n context?: Table<T>\n showHeader?: boolean\n showSummary?: boolean\n sumText?: string\n summaryMethod?: SummaryMethod<T>\n rowClassName?: ColumnCls<T>\n rowStyle?: ColumnStyle<T>\n cellClassName?: CellCls<T>\n cellStyle?: CellStyle<T>\n headerRowClassName?: ColumnCls<T>\n headerRowStyle?: ColumnStyle<T>\n headerCellClassName?: CellCls<T>\n headerCellStyle?: CellStyle<T>\n highlightCurrentRow?: boolean\n currentRowKey?: string | number\n emptyText?: string\n expandRowKeys?: any[]\n defaultExpandAll?: boolean\n defaultSort?: Sort\n tooltipEffect?: string\n spanMethod?: (data: {\n row: T\n rowIndex: number\n column: TableColumnCtx<T>\n columnIndex: number\n }) =>\n | number[]\n | {\n rowspan: number\n colspan: number\n }\n selectOnIndeterminate?: boolean\n indent?: number\n treeProps?: {\n hasChildren?: string\n children?: string\n }\n lazy?: boolean\n load?: (row: T, treeNode: TreeNode, resolve: (data: T[]) => void) => void\n className?: string\n style?: CSSProperties\n tableLayout: Layout\n flexible: boolean\n}\n\ninterface Sort {\n prop: string\n order: 'ascending' | 'descending'\n init?: any\n silent?: any\n}\n\ninterface Filter<T> {\n column: TableColumnCtx<T>\n values: string[]\n silent: any\n}\n\ninterface TreeNode {\n expanded?: boolean\n loading?: boolean\n noLazyChildren?: boolean\n indent?: number\n level?: number\n display?: boolean\n}\n\ninterface RenderRowData<T> {\n store: Store<T>\n _self: Table<T>\n column: TableColumnCtx<T>\n row: T\n $index: number\n treeNode?: TreeNode\n expanded: boolean\n}\n\nexport default {\n data: {\n type: Array as PropType<DefaultRow[]>,\n default: () => {\n return []\n },\n },\n size: String,\n width: [String, Number],\n height: [String, Number],\n maxHeight: [String, Number],\n fit: {\n type: Boolean,\n default: true,\n },\n stripe: Boolean,\n border: Boolean,\n rowKey: [String, Function] as PropType<TableProps<DefaultRow>['rowKey']>,\n showHeader: {\n type: Boolean,\n default: true,\n },\n showSummary: Boolean,\n sumText: String,\n summaryMethod: Function as PropType<TableProps<DefaultRow>['summaryMethod']>,\n rowClassName: [String, Function] as PropType<\n TableProps<DefaultRow>['rowClassName']\n >,\n rowStyle: [Object, Function] as PropType<TableProps<DefaultRow>['rowStyle']>,\n cellClassName: [String, Function] as PropType<\n TableProps<DefaultRow>['cellClassName']\n >,\n cellStyle: [Object, Function] as PropType<\n TableProps<DefaultRow>['cellStyle']\n >,\n headerRowClassName: [String, Function] as PropType<\n TableProps<DefaultRow>['headerRowClassName']\n >,\n headerRowStyle: [Object, Function] as PropType<\n TableProps<DefaultRow>['headerRowStyle']\n >,\n headerCellClassName: [String, Function] as PropType<\n TableProps<DefaultRow>['headerCellClassName']\n >,\n headerCellStyle: [Object, Function] as PropType<\n TableProps<DefaultRow>['headerCellStyle']\n >,\n highlightCurrentRow: Boolean,\n currentRowKey: [String, Number],\n emptyText: String,\n expandRowKeys: Array as PropType<TableProps<DefaultRow>['expandRowKeys']>,\n defaultExpandAll: Boolean,\n defaultSort: Object as PropType<TableProps<DefaultRow>['defaultSort']>,\n tooltipEffect: String,\n spanMethod: Function as PropType<TableProps<DefaultRow>['spanMethod']>,\n selectOnIndeterminate: {\n type: Boolean,\n default: true,\n },\n indent: {\n type: Number,\n default: 16,\n },\n treeProps: {\n type: Object as PropType<TableProps<DefaultRow>['treeProps']>,\n default: () => {\n return {\n hasChildren: 'hasChildren',\n children: 'children',\n }\n },\n },\n lazy: Boolean,\n load: Function as PropType<TableProps<DefaultRow>['load']>,\n style: {\n type: Object as PropType<CSSProperties>,\n default: () => ({}),\n },\n className: {\n type: String,\n default: '',\n },\n tableLayout: {\n type: String as PropType<Layout>,\n default: 'fixed',\n },\n scrollbarAlwaysOn: {\n type: Boolean,\n default: false,\n },\n flexible: Boolean,\n}\nexport type {\n SummaryMethod,\n Table,\n TableProps,\n TableRefs,\n ColumnCls,\n ColumnStyle,\n TreeNode,\n RenderRowData,\n Sort,\n Filter,\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.mjs","sources":["../../../../../../../packages/components/table/src/table/defaults.ts"],"sourcesContent":["// @ts-nocheck\nimport type {\n CSSProperties,\n ComponentInternalInstance,\n PropType,\n Ref,\n VNode,\n} from 'vue'\nimport type { Nullable } from '@element-plus/utils'\nimport type { Store } from '../store'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type TableLayout from '../table-layout'\n\nexport type DefaultRow = any\n\ninterface TableRefs {\n tableWrapper: HTMLElement\n headerWrapper: HTMLElement\n footerWrapper: HTMLElement\n fixedBodyWrapper: HTMLElement\n rightFixedBodyWrapper: HTMLElement\n bodyWrapper: HTMLElement\n [key: string]: any\n}\n\ninterface TableState {\n isGroup: Ref<boolean>\n resizeState: Ref<{\n width: any\n height: any\n }>\n doLayout: () => void\n debouncedUpdateLayout: () => void\n}\n\ntype HoverState<T> = Nullable<{\n cell: HTMLElement\n column: TableColumnCtx<T>\n row: T\n}>\n\ntype RIS<T> = { row: T; $index: number; store: Store<T>; expanded: boolean }\n\ntype RenderExpanded<T> = ({\n row,\n $index,\n store,\n expanded: boolean,\n}: RIS<T>) => VNode\n\ntype SummaryMethod<T> = (data: {\n columns: TableColumnCtx<T>[]\n data: T[]\n}) => string[]\n\ninterface Table<T> extends ComponentInternalInstance {\n $ready: boolean\n hoverState?: HoverState<T>\n renderExpanded: RenderExpanded<T>\n store: Store<T>\n layout: TableLayout<T>\n refs: TableRefs\n tableId: string\n state: TableState\n}\n\ntype ColumnCls<T> = string | ((data: { row: T; rowIndex: number }) => string)\ntype ColumnStyle<T> =\n | CSSProperties\n | ((data: { row: T; rowIndex: number }) => CSSProperties)\ntype CellCls<T> =\n | string\n | ((data: {\n row: T\n rowIndex: number\n column: TableColumnCtx<T>\n columnIndex: number\n }) => string)\ntype CellStyle<T> =\n | CSSProperties\n | ((data: {\n row: T\n rowIndex: number\n column: TableColumnCtx<T>\n columnIndex: number\n }) => CSSProperties)\ntype Layout = 'fixed' | 'auto'\ninterface TableProps<T> {\n data: T[]\n size?: string\n width?: string | number\n height?: string | number\n maxHeight?: string | number\n fit?: boolean\n stripe?: boolean\n border?: boolean\n rowKey?: string | ((row: T) => string)\n context?: Table<T>\n showHeader?: boolean\n showSummary?: boolean\n sumText?: string\n summaryMethod?: SummaryMethod<T>\n rowClassName?: ColumnCls<T>\n rowStyle?: ColumnStyle<T>\n cellClassName?: CellCls<T>\n cellStyle?: CellStyle<T>\n headerRowClassName?: ColumnCls<T>\n headerRowStyle?: ColumnStyle<T>\n headerCellClassName?: CellCls<T>\n headerCellStyle?: CellStyle<T>\n highlightCurrentRow?: boolean\n currentRowKey?: string | number\n emptyText?: string\n expandRowKeys?: any[]\n defaultExpandAll?: boolean\n defaultSort?: Sort\n tooltipEffect?: string\n spanMethod?: (data: {\n row: T\n rowIndex: number\n column: TableColumnCtx<T>\n columnIndex: number\n }) =>\n | number[]\n | {\n rowspan: number\n colspan: number\n }\n | undefined\n selectOnIndeterminate?: boolean\n indent?: number\n treeProps?: {\n hasChildren?: string\n children?: string\n }\n lazy?: boolean\n load?: (row: T, treeNode: TreeNode, resolve: (data: T[]) => void) => void\n className?: string\n style?: CSSProperties\n tableLayout: Layout\n flexible: boolean\n}\n\ninterface Sort {\n prop: string\n order: 'ascending' | 'descending'\n init?: any\n silent?: any\n}\n\ninterface Filter<T> {\n column: TableColumnCtx<T>\n values: string[]\n silent: any\n}\n\ninterface TreeNode {\n expanded?: boolean\n loading?: boolean\n noLazyChildren?: boolean\n indent?: number\n level?: number\n display?: boolean\n}\n\ninterface RenderRowData<T> {\n store: Store<T>\n _self: Table<T>\n column: TableColumnCtx<T>\n row: T\n $index: number\n treeNode?: TreeNode\n expanded: boolean\n}\n\nexport default {\n data: {\n type: Array as PropType<DefaultRow[]>,\n default: () => {\n return []\n },\n },\n size: String,\n width: [String, Number],\n height: [String, Number],\n maxHeight: [String, Number],\n fit: {\n type: Boolean,\n default: true,\n },\n stripe: Boolean,\n border: Boolean,\n rowKey: [String, Function] as PropType<TableProps<DefaultRow>['rowKey']>,\n showHeader: {\n type: Boolean,\n default: true,\n },\n showSummary: Boolean,\n sumText: String,\n summaryMethod: Function as PropType<TableProps<DefaultRow>['summaryMethod']>,\n rowClassName: [String, Function] as PropType<\n TableProps<DefaultRow>['rowClassName']\n >,\n rowStyle: [Object, Function] as PropType<TableProps<DefaultRow>['rowStyle']>,\n cellClassName: [String, Function] as PropType<\n TableProps<DefaultRow>['cellClassName']\n >,\n cellStyle: [Object, Function] as PropType<\n TableProps<DefaultRow>['cellStyle']\n >,\n headerRowClassName: [String, Function] as PropType<\n TableProps<DefaultRow>['headerRowClassName']\n >,\n headerRowStyle: [Object, Function] as PropType<\n TableProps<DefaultRow>['headerRowStyle']\n >,\n headerCellClassName: [String, Function] as PropType<\n TableProps<DefaultRow>['headerCellClassName']\n >,\n headerCellStyle: [Object, Function] as PropType<\n TableProps<DefaultRow>['headerCellStyle']\n >,\n highlightCurrentRow: Boolean,\n currentRowKey: [String, Number],\n emptyText: String,\n expandRowKeys: Array as PropType<TableProps<DefaultRow>['expandRowKeys']>,\n defaultExpandAll: Boolean,\n defaultSort: Object as PropType<TableProps<DefaultRow>['defaultSort']>,\n tooltipEffect: String,\n spanMethod: Function as PropType<TableProps<DefaultRow>['spanMethod']>,\n selectOnIndeterminate: {\n type: Boolean,\n default: true,\n },\n indent: {\n type: Number,\n default: 16,\n },\n treeProps: {\n type: Object as PropType<TableProps<DefaultRow>['treeProps']>,\n default: () => {\n return {\n hasChildren: 'hasChildren',\n children: 'children',\n }\n },\n },\n lazy: Boolean,\n load: Function as PropType<TableProps<DefaultRow>['load']>,\n style: {\n type: Object as PropType<CSSProperties>,\n default: () => ({}),\n },\n className: {\n type: String,\n default: '',\n },\n tableLayout: {\n type: String as PropType<Layout>,\n default: 'fixed',\n },\n scrollbarAlwaysOn: {\n type: Boolean,\n default: false,\n },\n flexible: Boolean,\n}\nexport type {\n SummaryMethod,\n Table,\n TableProps,\n TableRefs,\n ColumnCls,\n ColumnStyle,\n TreeNode,\n RenderRowData,\n Sort,\n Filter,\n}\n"],"names":[],"mappings":"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"}
@@ -66,7 +66,7 @@ declare const _default: import("vue").DefineComponent<{
66
66
  }) => number[] | {
67
67
  rowspan: number;
68
68
  colspan: number;
69
- }) | undefined>;
69
+ } | undefined) | undefined>;
70
70
  selectOnIndeterminate: {
71
71
  type: BooleanConstructor;
72
72
  default: boolean;
@@ -259,7 +259,7 @@ declare const _default: import("vue").DefineComponent<{
259
259
  }) => number[] | {
260
260
  rowspan: number;
261
261
  colspan: number;
262
- }) | undefined>;
262
+ } | undefined) | undefined>;
263
263
  selectOnIndeterminate: {
264
264
  type: BooleanConstructor;
265
265
  default: boolean;
@@ -153,7 +153,7 @@ const TabNav = defineComponent({
153
153
  } = EVENT_CODE;
154
154
  if (![up, down, left, right].includes(code))
155
155
  return;
156
- const tabList = Array.from(e.currentTarget.querySelectorAll("[role=tab]"));
156
+ const tabList = Array.from(e.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)"));
157
157
  const currentIndex = tabList.indexOf(e.target);
158
158
  let nextIndex;
159
159
  if (code === left || code === up) {
@@ -216,8 +216,9 @@ const TabNav = defineComponent({
216
216
  })])] : null;
217
217
  const tabs = props.panes.map((pane, index) => {
218
218
  var _a, _b, _c, _d;
219
+ const disabled = pane.props.disabled;
219
220
  const tabName = (_b = (_a = pane.props.name) != null ? _a : pane.index) != null ? _b : `${index}`;
220
- const closable = pane.isClosable || props.editable;
221
+ const closable = !disabled && (pane.isClosable || props.editable);
221
222
  pane.index = `${index}`;
222
223
  const btnClose = closable ? createVNode(ElIcon, {
223
224
  "class": "is-icon-close",
@@ -226,10 +227,10 @@ const TabNav = defineComponent({
226
227
  default: () => [createVNode(Close, null, null)]
227
228
  }) : null;
228
229
  const tabLabelContent = ((_d = (_c = pane.slots).label) == null ? void 0 : _d.call(_c)) || pane.props.label;
229
- const tabindex = pane.active ? 0 : -1;
230
+ const tabindex = !disabled && pane.active ? 0 : -1;
230
231
  return createVNode("div", {
231
232
  "ref": `tab-${tabName}`,
232
- "class": [ns.e("item"), ns.is(rootTabs.props.tabPosition), ns.is("active", pane.active), ns.is("disabled", pane.props.disabled), ns.is("closable", closable), ns.is("focus", isFocus.value)],
233
+ "class": [ns.e("item"), ns.is(rootTabs.props.tabPosition), ns.is("active", pane.active), ns.is("disabled", disabled), ns.is("closable", closable), ns.is("focus", isFocus.value)],
233
234
  "id": `tab-${tabName}`,
234
235
  "key": `tab-${tabName}`,
235
236
  "aria-controls": `pane-${tabName}`,
@@ -1 +1 @@
1
- {"version":3,"file":"tab-nav.mjs","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]'\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 tabName = pane.props.name ?? pane.index ?? `${index}`\n const closable: boolean = pane.isClosable || props.editable\n pane.index = `${index}`\n\n const btnClose = closable ? (\n <ElIcon\n class=\"is-icon-close\"\n // `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 = pane.active ? 0 : -1\n\n return (\n <div\n ref={`tab-${tabName}`}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition),\n ns.is('active', pane.active),\n ns.is('disabled', pane.props.disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value),\n ]}\n id={`tab-${tabName}`}\n key={`tab-${tabName}`}\n aria-controls={`pane-${tabName}`}\n role=\"tab\"\n aria-selected={pane.active}\n tabindex={tabindex}\n onFocus={() => setFocus()}\n onBlur={() => removeFocus()}\n onClick={(ev: MouseEvent) => {\n removeFocus()\n props.onTabClick(pane, tabName, ev)\n }}\n onKeydown={(ev: KeyboardEvent) => {\n if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n props.onTabRemove(pane, ev)\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n )\n })\n\n return (\n <div\n ref={el$}\n class={[\n ns.e('nav-wrap'),\n ns.is('scrollable', !!scrollable.value),\n ns.is(rootTabs.props.tabPosition),\n ]}\n >\n {scrollBtn}\n <div class={ns.e('nav-scroll')} ref={navScroll$}>\n <div\n class={[\n ns.e('nav'),\n ns.is(rootTabs.props.tabPosition),\n ns.is(\n 'stretch',\n props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ),\n ]}\n ref={nav$}\n style={navStyle.value}\n role=\"tablist\"\n onKeydown={changeTab}\n >\n {...[\n !props.type ? <TabBar tabs={[...props.panes]} /> : null,\n tabs,\n ]}\n </div>\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav>\nexport default TabNav\n"],"names":["TabBar","tabNavProps","panes","type","definePropType","Array","default","currentName","String","editable","Boolean","onTabClick","onTabRemove","values","stretch","COMPONENT_NAME","TabNav","defineComponent","name","props","expose","vm","getCurrentInstance","throwError","ns","visibility","useDocumentVisibility","focused","useWindowFocus","navScroll$","ref","nav$","el$","scrollable","navOffset","isFocus","focusable","sizeName","computed","dir","transform","scrollPrev","value","containerSize","newOffset","currentOffset","scrollNext","navSize","capitalize","scrollToActiveTab","nav","activeTab","activeTabBounding","navScrollBounding","maxOffset","isHorizontal","right","top","bottom","update","prev","changeTab","code","up","EVENT_CODE","currentIndex","nextIndex","tabList","focus","setFocus","watch","_createVNode","useResizeObserver","setTimeout","onUpdated","removeFocus","flush","is","map","pane","closable","index","btnClose","ev","tabindex","tabName","rootTabs","tabLabelContent"],"mappings":"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"}
1
+ {"version":3,"file":"tab-nav.mjs","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 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-${tabName}`}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition),\n ns.is('active', pane.active),\n ns.is('disabled', disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value),\n ]}\n id={`tab-${tabName}`}\n key={`tab-${tabName}`}\n aria-controls={`pane-${tabName}`}\n role=\"tab\"\n aria-selected={pane.active}\n tabindex={tabindex}\n onFocus={() => setFocus()}\n onBlur={() => removeFocus()}\n onClick={(ev: MouseEvent) => {\n removeFocus()\n props.onTabClick(pane, tabName, ev)\n }}\n onKeydown={(ev: KeyboardEvent) => {\n if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n props.onTabRemove(pane, ev)\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n )\n })\n\n return (\n <div\n ref={el$}\n class={[\n ns.e('nav-wrap'),\n ns.is('scrollable', !!scrollable.value),\n ns.is(rootTabs.props.tabPosition),\n ]}\n >\n {scrollBtn}\n <div class={ns.e('nav-scroll')} ref={navScroll$}>\n <div\n class={[\n ns.e('nav'),\n ns.is(rootTabs.props.tabPosition),\n ns.is(\n 'stretch',\n props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ),\n ]}\n ref={nav$}\n style={navStyle.value}\n role=\"tablist\"\n onKeydown={changeTab}\n >\n {...[\n !props.type ? <TabBar tabs={[...props.panes]} /> : null,\n tabs,\n ]}\n </div>\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav>\nexport default TabNav\n"],"names":["TabBar","tabNavProps","panes","type","definePropType","Array","default","currentName","String","editable","Boolean","onTabClick","onTabRemove","values","stretch","COMPONENT_NAME","TabNav","defineComponent","name","props","expose","vm","getCurrentInstance","throwError","ns","visibility","useDocumentVisibility","focused","useWindowFocus","navScroll$","ref","nav$","el$","scrollable","navOffset","isFocus","focusable","sizeName","computed","dir","transform","scrollPrev","value","containerSize","newOffset","currentOffset","scrollNext","navSize","capitalize","scrollToActiveTab","nav","activeTab","activeTabBounding","navScrollBounding","maxOffset","isHorizontal","right","top","bottom","update","prev","changeTab","code","up","EVENT_CODE","currentIndex","nextIndex","tabList","focus","setFocus","watch","_createVNode","useResizeObserver","setTimeout","onUpdated","removeFocus","flush","scrollBtn","map","pane","disabled","isClosable","index","btnClose","closable","ev","tabName","is","rootTabs","tabLabelContent"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import '../../utils/index.mjs';
2
- import Tag from './src/tag2.mjs';
3
- export { tagEmits, tagProps } from './src/tag.mjs';
2
+ import Tag from './src/tag.mjs';
3
+ export { tagEmits, tagProps } from './src/tag2.mjs';
4
4
  import { withInstall } from '../../utils/vue/install.mjs';
5
5
 
6
6
  const ElTag = withInstall(Tag);
@@ -1,37 +1,97 @@
1
- import '../../../utils/index.mjs';
2
- import '../../../constants/index.mjs';
3
- import { buildProps } from '../../../utils/vue/props/runtime.mjs';
4
- import { componentSizes } from '../../../constants/size.mjs';
1
+ import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, normalizeStyle, createElementVNode, renderSlot, createBlock, withModifiers, withCtx, createVNode, createCommentVNode, Transition } from 'vue';
2
+ import { ElIcon } from '../../icon/index.mjs';
3
+ import { Close } from '@element-plus/icons-vue';
4
+ import '../../../hooks/index.mjs';
5
+ import { tagProps, tagEmits } from './tag2.mjs';
6
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
7
+ import { useSize } from '../../../hooks/use-common-props/index.mjs';
8
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
5
9
 
6
- const tagProps = buildProps({
7
- closable: Boolean,
8
- type: {
9
- type: String,
10
- values: ["success", "info", "warning", "danger", ""],
11
- default: ""
12
- },
13
- hit: Boolean,
14
- disableTransitions: Boolean,
15
- color: {
16
- type: String,
17
- default: ""
18
- },
19
- size: {
20
- type: String,
21
- values: componentSizes,
22
- default: ""
23
- },
24
- effect: {
25
- type: String,
26
- values: ["dark", "light", "plain"],
27
- default: "light"
28
- },
29
- round: Boolean
30
- });
31
- const tagEmits = {
32
- close: (evt) => evt instanceof MouseEvent,
33
- click: (evt) => evt instanceof MouseEvent
10
+ const __default__ = {
11
+ name: "ElTag"
34
12
  };
13
+ const _sfc_main = /* @__PURE__ */ defineComponent({
14
+ ...__default__,
15
+ props: tagProps,
16
+ emits: tagEmits,
17
+ setup(__props, { emit }) {
18
+ const props = __props;
19
+ const tagSize = useSize();
20
+ const ns = useNamespace("tag");
21
+ const classes = computed(() => {
22
+ const { type, hit, effect, closable, round } = props;
23
+ return [
24
+ ns.b(),
25
+ ns.is("closable", closable),
26
+ ns.m(type),
27
+ ns.m(tagSize.value),
28
+ ns.m(effect),
29
+ ns.is("hit", hit),
30
+ ns.is("round", round)
31
+ ];
32
+ });
33
+ const handleClose = (event) => {
34
+ emit("close", event);
35
+ };
36
+ const handleClick = (event) => {
37
+ emit("click", event);
38
+ };
39
+ return (_ctx, _cache) => {
40
+ return _ctx.disableTransitions ? (openBlock(), createElementBlock("span", {
41
+ key: 0,
42
+ class: normalizeClass(unref(classes)),
43
+ style: normalizeStyle({ backgroundColor: _ctx.color }),
44
+ onClick: handleClick
45
+ }, [
46
+ createElementVNode("span", {
47
+ class: normalizeClass(unref(ns).e("content"))
48
+ }, [
49
+ renderSlot(_ctx.$slots, "default")
50
+ ], 2),
51
+ _ctx.closable ? (openBlock(), createBlock(unref(ElIcon), {
52
+ key: 0,
53
+ class: normalizeClass(unref(ns).e("close")),
54
+ onClick: withModifiers(handleClose, ["stop"])
55
+ }, {
56
+ default: withCtx(() => [
57
+ createVNode(unref(Close))
58
+ ]),
59
+ _: 1
60
+ }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
61
+ ], 6)) : (openBlock(), createBlock(Transition, {
62
+ key: 1,
63
+ name: `${unref(ns).namespace.value}-zoom-in-center`,
64
+ appear: ""
65
+ }, {
66
+ default: withCtx(() => [
67
+ createElementVNode("span", {
68
+ class: normalizeClass(unref(classes)),
69
+ style: normalizeStyle({ backgroundColor: _ctx.color }),
70
+ onClick: handleClick
71
+ }, [
72
+ createElementVNode("span", {
73
+ class: normalizeClass(unref(ns).e("content"))
74
+ }, [
75
+ renderSlot(_ctx.$slots, "default")
76
+ ], 2),
77
+ _ctx.closable ? (openBlock(), createBlock(unref(ElIcon), {
78
+ key: 0,
79
+ class: normalizeClass(unref(ns).e("close")),
80
+ onClick: withModifiers(handleClose, ["stop"])
81
+ }, {
82
+ default: withCtx(() => [
83
+ createVNode(unref(Close))
84
+ ]),
85
+ _: 1
86
+ }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true)
87
+ ], 6)
88
+ ]),
89
+ _: 3
90
+ }, 8, ["name"]));
91
+ };
92
+ }
93
+ });
94
+ var Tag = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/tag/src/tag.vue"]]);
35
95
 
36
- export { tagEmits, tagProps };
96
+ export { Tag as default };
37
97
  //# sourceMappingURL=tag.mjs.map