@element-plus/nightly 0.0.20220402 → 0.0.20220403

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 (253) hide show
  1. package/README.md +4 -0
  2. package/attributes.json +1 -1
  3. package/dist/index.full.js +15 -2
  4. package/dist/index.full.min.js +7 -7
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +7 -7
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +15 -2
  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/tabs/index.d.ts +2 -0
  234. package/es/components/tabs/src/tabs.d.ts +5 -0
  235. package/es/components/tabs/src/tabs.mjs +16 -2
  236. package/es/components/tabs/src/tabs.mjs.map +1 -1
  237. package/es/hooks/use-deprecated/index.d.ts +1 -1
  238. package/es/hooks/use-deprecated/index.mjs.map +1 -1
  239. package/es/version.d.ts +1 -1
  240. package/es/version.mjs +1 -1
  241. package/es/version.mjs.map +1 -1
  242. package/lib/components/tabs/index.d.ts +2 -0
  243. package/lib/components/tabs/src/tabs.d.ts +5 -0
  244. package/lib/components/tabs/src/tabs.js +18 -4
  245. package/lib/components/tabs/src/tabs.js.map +1 -1
  246. package/lib/hooks/use-deprecated/index.d.ts +1 -1
  247. package/lib/hooks/use-deprecated/index.js.map +1 -1
  248. package/lib/version.d.ts +1 -1
  249. package/lib/version.js +1 -1
  250. package/lib/version.js.map +1 -1
  251. package/package.json +2 -2
  252. package/tags.json +1 -1
  253. package/web-types.json +1 -1
@@ -1,5 +1,5 @@
1
- import { Fragment, defineComponent, getCurrentInstance, ref, onUpdated, onMounted, watch, nextTick, provide, createVNode, renderSlot } from 'vue';
2
- import { isString, isPromise, NOOP } from '@vue/shared';
1
+ import { Fragment, defineComponent, getCurrentInstance, computed, ref, onUpdated, onMounted, watch, nextTick, provide, createVNode, renderSlot } from 'vue';
2
+ import { isString, isFunction, isPromise, NOOP } from '@vue/shared';
3
3
  import '../../../utils/index.mjs';
4
4
  import '../../../constants/index.mjs';
5
5
  import { ElIcon } from '../../icon/index.mjs';
@@ -10,6 +10,7 @@ import TabNav from './tab-nav.mjs';
10
10
  import { buildProps, definePropType } from '../../../utils/vue/props.mjs';
11
11
  import { isNumber } from '@vueuse/core';
12
12
  import { UPDATE_MODEL_EVENT, INPUT_EVENT } from '../../../constants/event.mjs';
13
+ import { useDeprecated } from '../../../hooks/use-deprecated/index.mjs';
13
14
  import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
14
15
  import { tabsRootContextKey } from '../../../tokens/tabs.mjs';
15
16
  import { EVENT_CODE } from '../../../constants/aria.mjs';
@@ -47,6 +48,7 @@ const tabsEmits = {
47
48
  [UPDATE_MODEL_EVENT]: (name) => isPanelName(name),
48
49
  [INPUT_EVENT]: (name) => isPanelName(name),
49
50
  "tab-click": (pane, ev) => ev instanceof Event,
51
+ "tab-change": (name) => isPanelName(name),
50
52
  edit: (paneName, action) => ["remove", "add"].includes(action),
51
53
  "tab-remove": (name) => isPanelName(name),
52
54
  "tab-add": () => true
@@ -74,6 +76,17 @@ var Tabs = defineComponent({
74
76
  expose
75
77
  }) {
76
78
  const instance = getCurrentInstance();
79
+ useDeprecated({
80
+ scope: "el-tabs",
81
+ type: "Event",
82
+ from: "input",
83
+ replacement: "tab-change",
84
+ version: "2.5.0",
85
+ ref: "https://element-plus.org/en-US/component/tabs.html#tabs-events"
86
+ }, computed(() => {
87
+ var _a;
88
+ return isFunction((_a = instance.vnode.props) == null ? void 0 : _a.onInput);
89
+ }));
77
90
  const ns = useNamespace("tabs");
78
91
  const nav$ = ref();
79
92
  const panes = ref([]);
@@ -100,6 +113,7 @@ var Tabs = defineComponent({
100
113
  currentName.value = value;
101
114
  emit(INPUT_EVENT, value);
102
115
  emit(UPDATE_MODEL_EVENT, value);
116
+ emit("tab-change", value);
103
117
  };
104
118
  const setCurrentName = (value) => {
105
119
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.mjs","sources":["../../../../../../packages/components/tabs/src/tabs.tsx"],"sourcesContent":["import {\n Fragment,\n defineComponent,\n getCurrentInstance,\n nextTick,\n onMounted,\n onUpdated,\n provide,\n ref,\n renderSlot,\n watch,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport {\n buildProps,\n definePropType,\n isNumber,\n isPromise,\n isString,\n} from '@element-plus/utils'\nimport {\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElIcon from '@element-plus/components/icon'\nimport { Plus } from '@element-plus/icons-vue'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useNamespace } from '@element-plus/hooks'\nimport TabNav from './tab-nav'\nimport type { TabNavInstance } from './tab-nav'\nimport type { TabsPaneContext } from '@element-plus/tokens'\n\nimport type {\n Component,\n ComponentInternalInstance,\n ExtractPropTypes,\n Ref,\n VNode,\n} from 'vue'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type TabPanelName = string | number\n\nexport const tabsProps = buildProps({\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n activeName: {\n type: [String, Number],\n default: '',\n },\n closable: Boolean,\n addable: Boolean,\n modelValue: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n tabPosition: {\n type: String,\n values: ['top', 'right', 'bottom', 'left'],\n default: 'top',\n },\n beforeLeave: {\n type: definePropType<\n (\n newName: TabPanelName,\n oldName: TabPanelName\n ) => Awaitable<void | boolean>\n >(Function),\n default: () => true,\n },\n stretch: Boolean,\n} as const)\nexport type TabsProps = ExtractPropTypes<typeof tabsProps>\n\nconst isPanelName = (value: unknown): value is string | number =>\n isString(value) || isNumber(value)\n\nexport const tabsEmits = {\n [UPDATE_MODEL_EVENT]: (name: TabPanelName) => isPanelName(name),\n [INPUT_EVENT]: (name: TabPanelName) => isPanelName(name),\n 'tab-click': (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n 'tab-remove': (name: TabPanelName) => isPanelName(name),\n 'tab-add': () => true,\n}\nexport type TabsEmits = typeof tabsEmits\n\nconst getPaneInstanceFromSlot = (\n vnode: VNode,\n paneInstanceList: ComponentInternalInstance[] = []\n) => {\n const children = (vnode.children || []) as ArrayLike<VNode>\n Array.from(children).forEach((node) => {\n let type = node.type\n type = (type as Component).name || type\n if (type === 'ElTabPane' && node.component) {\n paneInstanceList.push(node.component)\n } else if (type === Fragment || type === 'template') {\n getPaneInstanceFromSlot(node, paneInstanceList)\n }\n })\n return paneInstanceList\n}\n\nexport default defineComponent({\n name: 'ElTabs',\n\n props: tabsProps,\n emits: tabsEmits,\n\n setup(props, { emit, slots, expose }) {\n const instance = getCurrentInstance()!\n const ns = useNamespace('tabs')\n\n const nav$ = ref<TabNavInstance>()\n const panes: Ref<TabsPaneContext[]> = ref([])\n const currentName = ref(props.modelValue || props.activeName || '0')\n\n const paneStatesMap: Record<number, TabsPaneContext> = {}\n\n const updatePaneInstances = (isForceUpdate = false) => {\n if (slots.default) {\n const children = instance.subTree.children as ArrayLike<VNode>\n const content = Array.from(children).find(\n ({ props }) => props?.class === ns.e('content')\n )\n if (!content) return\n\n const paneInstanceList: TabsPaneContext[] = getPaneInstanceFromSlot(\n content\n ).map((paneComponent) => paneStatesMap[paneComponent.uid])\n\n const panesChanged = !(\n paneInstanceList.length === panes.value.length &&\n paneInstanceList.every(\n (pane, index) => pane.uid === panes.value[index].uid\n )\n )\n\n if (isForceUpdate || panesChanged) {\n panes.value = paneInstanceList\n }\n } else if (panes.value.length !== 0) {\n panes.value = []\n }\n }\n\n const changeCurrentName = (value: TabPanelName) => {\n currentName.value = value\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n }\n\n const setCurrentName = (value: TabPanelName) => {\n // should do nothing.\n if (currentName.value === value) return\n\n const canLeave = props.beforeLeave?.(value, currentName.value)\n if (isPromise(canLeave)) {\n canLeave.then(\n () => {\n changeCurrentName(value)\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.removeFocus?.()\n },\n // ignore promise rejection in `before-leave` hook\n NOOP\n )\n } else if (canLeave !== false) {\n changeCurrentName(value)\n }\n }\n\n const handleTabClick = (\n tab: TabsPaneContext,\n tabName: TabPanelName,\n event: Event\n ) => {\n if (tab.props.disabled) return\n setCurrentName(tabName)\n emit('tab-click', tab, event)\n }\n\n const handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled) return\n ev.stopPropagation()\n emit('edit', pane.props.name, 'remove')\n emit('tab-remove', pane.props.name)\n }\n\n const handleTabAdd = () => {\n emit('edit', undefined, 'add')\n emit('tab-add')\n }\n\n onUpdated(() => updatePaneInstances())\n onMounted(() => updatePaneInstances())\n\n watch(\n () => props.activeName,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(\n () => props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(currentName, async () => {\n updatePaneInstances(true)\n await nextTick()\n await nav$.value?.$nextTick()\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.scrollToActiveTab()\n })\n\n provide(tabsRootContextKey, {\n props,\n currentName,\n updatePaneState: (pane) => (paneStatesMap[pane.uid] = pane),\n })\n\n expose({\n currentName,\n })\n\n return () => {\n const newButton =\n props.editable || props.addable ? (\n <span\n class={ns.e('new-tab')}\n tabindex=\"0\"\n onClick={handleTabAdd}\n onKeydown={(ev: KeyboardEvent) => {\n if (ev.code === EVENT_CODE.enter) handleTabAdd()\n }}\n >\n <ElIcon class={ns.is('icon-plus')}>\n <Plus />\n </ElIcon>\n </span>\n ) : null\n\n const header = (\n <div class={[ns.e('header'), ns.is(props.tabPosition)]}>\n {newButton}\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n editable={props.editable}\n type={props.type}\n panes={panes.value}\n stretch={props.stretch}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n />\n </div>\n )\n\n const panels = (\n <div class={ns.e('content')}>{renderSlot(slots, 'default')}</div>\n )\n\n return (\n <div\n class={[\n ns.b(),\n ns.m(props.tabPosition),\n {\n [ns.m('card')]: props.type === 'card',\n [ns.m('border-card')]: props.type === 'border-card',\n },\n ]}\n >\n {...props.tabPosition !== 'bottom'\n ? [header, panels]\n : [panels, header]}\n </div>\n )\n }\n },\n})\n"],"names":["tabsProps","buildProps","type","String","values","default","activeName","Number","closable","Boolean","addable","modelValue","editable","tabPosition","beforeLeave","definePropType","Function","stretch","name","isPanelName","pane","ev","Event","edit","paneName","action","getPaneInstanceFromSlot","children","vnode","Array","from","forEach","node","paneInstanceList","props","emits","setup","emit","slots","expose","instance","getCurrentInstance","ns","useNamespace","nav$","currentName","paneStatesMap","updatePaneInstances","content","isForceUpdate","panesChanged","panes","length","changeCurrentName","value","setCurrentName","canLeave","NOOP","handleTabClick","tab","tabName","handleTabRemove","disabled","stopPropagation","handleTabAdd","onUpdated","onMounted","watch","nextTick","_createVNode","provide","updatePaneState","newButton","code"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.mjs","sources":["../../../../../../packages/components/tabs/src/tabs.tsx"],"sourcesContent":["import {\n Fragment,\n computed,\n defineComponent,\n getCurrentInstance,\n nextTick,\n onMounted,\n onUpdated,\n provide,\n ref,\n renderSlot,\n watch,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport {\n buildProps,\n definePropType,\n isFunction,\n isNumber,\n isPromise,\n isString,\n} from '@element-plus/utils'\nimport {\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElIcon from '@element-plus/components/icon'\nimport { Plus } from '@element-plus/icons-vue'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useDeprecated, useNamespace } from '@element-plus/hooks'\nimport TabNav from './tab-nav'\nimport type { TabNavInstance } from './tab-nav'\nimport type { TabsPaneContext } from '@element-plus/tokens'\n\nimport type {\n Component,\n ComponentInternalInstance,\n ExtractPropTypes,\n Ref,\n VNode,\n} from 'vue'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type TabPanelName = string | number\n\nexport const tabsProps = buildProps({\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n activeName: {\n type: [String, Number],\n default: '',\n },\n closable: Boolean,\n addable: Boolean,\n modelValue: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n tabPosition: {\n type: String,\n values: ['top', 'right', 'bottom', 'left'],\n default: 'top',\n },\n beforeLeave: {\n type: definePropType<\n (\n newName: TabPanelName,\n oldName: TabPanelName\n ) => Awaitable<void | boolean>\n >(Function),\n default: () => true,\n },\n stretch: Boolean,\n} as const)\nexport type TabsProps = ExtractPropTypes<typeof tabsProps>\n\nconst isPanelName = (value: unknown): value is string | number =>\n isString(value) || isNumber(value)\n\nexport const tabsEmits = {\n [UPDATE_MODEL_EVENT]: (name: TabPanelName) => isPanelName(name),\n /** @deprecated use `tab-change` instead */\n [INPUT_EVENT]: (name: TabPanelName) => isPanelName(name),\n 'tab-click': (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n 'tab-change': (name: TabPanelName) => isPanelName(name),\n edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n 'tab-remove': (name: TabPanelName) => isPanelName(name),\n 'tab-add': () => true,\n}\nexport type TabsEmits = typeof tabsEmits\n\nconst getPaneInstanceFromSlot = (\n vnode: VNode,\n paneInstanceList: ComponentInternalInstance[] = []\n) => {\n const children = (vnode.children || []) as ArrayLike<VNode>\n Array.from(children).forEach((node) => {\n let type = node.type\n type = (type as Component).name || type\n if (type === 'ElTabPane' && node.component) {\n paneInstanceList.push(node.component)\n } else if (type === Fragment || type === 'template') {\n getPaneInstanceFromSlot(node, paneInstanceList)\n }\n })\n return paneInstanceList\n}\n\nexport default defineComponent({\n name: 'ElTabs',\n\n props: tabsProps,\n emits: tabsEmits,\n\n setup(props, { emit, slots, expose }) {\n const instance = getCurrentInstance()!\n\n useDeprecated(\n {\n scope: 'el-tabs',\n type: 'Event',\n from: 'input',\n replacement: 'tab-change',\n version: '2.5.0',\n ref: 'https://element-plus.org/en-US/component/tabs.html#tabs-events',\n },\n computed(() => isFunction(instance.vnode.props?.onInput))\n )\n\n const ns = useNamespace('tabs')\n\n const nav$ = ref<TabNavInstance>()\n const panes: Ref<TabsPaneContext[]> = ref([])\n const currentName = ref(props.modelValue || props.activeName || '0')\n\n const paneStatesMap: Record<number, TabsPaneContext> = {}\n\n const updatePaneInstances = (isForceUpdate = false) => {\n if (slots.default) {\n const children = instance.subTree.children as ArrayLike<VNode>\n const content = Array.from(children).find(\n ({ props }) => props?.class === ns.e('content')\n )\n if (!content) return\n\n const paneInstanceList: TabsPaneContext[] = getPaneInstanceFromSlot(\n content\n ).map((paneComponent) => paneStatesMap[paneComponent.uid])\n\n const panesChanged = !(\n paneInstanceList.length === panes.value.length &&\n paneInstanceList.every(\n (pane, index) => pane.uid === panes.value[index].uid\n )\n )\n\n if (isForceUpdate || panesChanged) {\n panes.value = paneInstanceList\n }\n } else if (panes.value.length !== 0) {\n panes.value = []\n }\n }\n\n const changeCurrentName = (value: TabPanelName) => {\n currentName.value = value\n /** @deprecated use `tab-change` instead */\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n emit('tab-change', value)\n }\n\n const setCurrentName = (value: TabPanelName) => {\n // should do nothing.\n if (currentName.value === value) return\n\n const canLeave = props.beforeLeave?.(value, currentName.value)\n if (isPromise(canLeave)) {\n canLeave.then(\n () => {\n changeCurrentName(value)\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.removeFocus?.()\n },\n // ignore promise rejection in `before-leave` hook\n NOOP\n )\n } else if (canLeave !== false) {\n changeCurrentName(value)\n }\n }\n\n const handleTabClick = (\n tab: TabsPaneContext,\n tabName: TabPanelName,\n event: Event\n ) => {\n if (tab.props.disabled) return\n setCurrentName(tabName)\n emit('tab-click', tab, event)\n }\n\n const handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled) return\n ev.stopPropagation()\n emit('edit', pane.props.name, 'remove')\n emit('tab-remove', pane.props.name)\n }\n\n const handleTabAdd = () => {\n emit('edit', undefined, 'add')\n emit('tab-add')\n }\n\n onUpdated(() => updatePaneInstances())\n onMounted(() => updatePaneInstances())\n\n watch(\n () => props.activeName,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(\n () => props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(currentName, async () => {\n updatePaneInstances(true)\n await nextTick()\n await nav$.value?.$nextTick()\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.scrollToActiveTab()\n })\n\n provide(tabsRootContextKey, {\n props,\n currentName,\n updatePaneState: (pane) => (paneStatesMap[pane.uid] = pane),\n })\n\n expose({\n currentName,\n })\n\n return () => {\n const newButton =\n props.editable || props.addable ? (\n <span\n class={ns.e('new-tab')}\n tabindex=\"0\"\n onClick={handleTabAdd}\n onKeydown={(ev: KeyboardEvent) => {\n if (ev.code === EVENT_CODE.enter) handleTabAdd()\n }}\n >\n <ElIcon class={ns.is('icon-plus')}>\n <Plus />\n </ElIcon>\n </span>\n ) : null\n\n const header = (\n <div class={[ns.e('header'), ns.is(props.tabPosition)]}>\n {newButton}\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n editable={props.editable}\n type={props.type}\n panes={panes.value}\n stretch={props.stretch}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n />\n </div>\n )\n\n const panels = (\n <div class={ns.e('content')}>{renderSlot(slots, 'default')}</div>\n )\n\n return (\n <div\n class={[\n ns.b(),\n ns.m(props.tabPosition),\n {\n [ns.m('card')]: props.type === 'card',\n [ns.m('border-card')]: props.type === 'border-card',\n },\n ]}\n >\n {...props.tabPosition !== 'bottom'\n ? [header, panels]\n : [panels, header]}\n </div>\n )\n }\n },\n})\n"],"names":["tabsProps","buildProps","type","String","values","default","activeName","Number","closable","Boolean","addable","modelValue","editable","tabPosition","beforeLeave","definePropType","Function","stretch","name","edit","isPanelName","getPaneInstanceFromSlot","vnode","children","Array","forEach","node","paneInstanceList","props","emits","setup","emit","slots","expose","instance","getCurrentInstance","useDeprecated","scope","from","replacement","version","ref","computed","ns","nav$","paneStatesMap","content","class","panesChanged","isForceUpdate","panes","length","changeCurrentName","currentName","setCurrentName","value","canLeave","isPromise","NOOP","handleTabClick","tabName","tab","disabled","handleTabRemove","ev","pane","handleTabAdd","onUpdated","onMounted","watch","updatePaneInstances","_createVNode","provide","tabsRootContextKey","updatePaneState","newButton","e"],"mappings":"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"}
@@ -5,7 +5,7 @@ declare type DeprecationParam = {
5
5
  scope: string;
6
6
  version: string;
7
7
  ref: string;
8
- type?: 'API' | 'Slot';
8
+ type?: 'API' | 'Slot' | 'Event';
9
9
  };
10
10
  export declare const useDeprecated: ({ from, replacement, scope, version, ref, type }: DeprecationParam, condition: MaybeRef<boolean>) => void;
11
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-deprecated/index.ts"],"sourcesContent":["import { unref, watch } from 'vue'\nimport { debugWarn } from '@element-plus/utils'\n\nimport type { MaybeRef } from '@vueuse/core'\n\ntype DeprecationParam = {\n from: string\n replacement: string\n scope: string\n version: string\n ref: string\n type?: 'API' | 'Slot'\n}\n\nexport const useDeprecated = (\n { from, replacement, scope, version, ref, type = 'API' }: DeprecationParam,\n condition: MaybeRef<boolean>\n) => {\n watch(\n () => unref(condition),\n (val) => {\n if (val) {\n debugWarn(\n scope,\n `${type} ${from} is about to be deprecated in version ${version}, please use ${replacement} instead.\nFor more detail, please visit: ${ref}\n`\n )\n }\n },\n {\n immediate: true,\n }\n )\n}\n"],"names":[],"mappings":";;;;AAEY,MAAC,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,SAAS,KAAK;AACtG,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK;AACzC,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,sCAAsC,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC;AAClH,+BAA+B,EAAE,GAAG,CAAC;AACrC,CAAC,CAAC,CAAC;AACH,KAAK;AACL,GAAG,EAAE;AACL,IAAI,SAAS,EAAE,IAAI;AACnB,GAAG,CAAC,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-deprecated/index.ts"],"sourcesContent":["import { unref, watch } from 'vue'\nimport { debugWarn } from '@element-plus/utils'\n\nimport type { MaybeRef } from '@vueuse/core'\n\ntype DeprecationParam = {\n from: string\n replacement: string\n scope: string\n version: string\n ref: string\n type?: 'API' | 'Slot' | 'Event'\n}\n\nexport const useDeprecated = (\n { from, replacement, scope, version, ref, type = 'API' }: DeprecationParam,\n condition: MaybeRef<boolean>\n) => {\n watch(\n () => unref(condition),\n (val) => {\n if (val) {\n debugWarn(\n scope,\n `${type} ${from} is about to be deprecated in version ${version}, please use ${replacement} instead.\nFor more detail, please visit: ${ref}\n`\n )\n }\n },\n {\n immediate: true,\n }\n )\n}\n"],"names":[],"mappings":";;;;AAEY,MAAC,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,SAAS,KAAK;AACtG,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK;AACzC,IAAI,IAAI,GAAG,EAAE;AACb,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,sCAAsC,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC;AAClH,+BAA+B,EAAE,GAAG,CAAC;AACrC,CAAC,CAAC,CAAC;AACH,KAAK;AACL,GAAG,EAAE;AACL,IAAI,SAAS,EAAE,IAAI;AACnB,GAAG,CAAC,CAAC;AACL;;;;"}
package/es/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "0.0.20220402";
1
+ export declare const version = "0.0.20220403";
package/es/version.mjs CHANGED
@@ -1,4 +1,4 @@
1
- const version = "0.0.20220402";
1
+ const version = "0.0.20220403";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.20220402'\n"],"names":[],"mappings":"AAAY,MAAC,OAAO,GAAG;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.20220403'\n"],"names":[],"mappings":"AAAY,MAAC,OAAO,GAAG;;;;"}
@@ -26,6 +26,7 @@ export declare const ElTabs: import("element-plus/es/utils").SFCWithInstall<impo
26
26
  index: string | undefined;
27
27
  isClosable: boolean;
28
28
  }, ev: Event) => boolean;
29
+ 'tab-change': (name: import("./src/tabs").TabPanelName) => boolean;
29
30
  edit: (paneName: import("./src/tabs").TabPanelName | undefined, action: "remove" | "add") => boolean;
30
31
  'tab-remove': (name: import("./src/tabs").TabPanelName) => boolean;
31
32
  'tab-add': () => boolean;
@@ -57,6 +58,7 @@ export declare const ElTabs: import("element-plus/es/utils").SFCWithInstall<impo
57
58
  index: string | undefined;
58
59
  isClosable: boolean;
59
60
  }, ev: Event) => any) | undefined;
61
+ "onTab-change"?: ((name: import("./src/tabs").TabPanelName) => any) | undefined;
60
62
  onEdit?: ((paneName: import("./src/tabs").TabPanelName | undefined, action: "remove" | "add") => any) | undefined;
61
63
  "onTab-remove"?: ((name: import("./src/tabs").TabPanelName) => any) | undefined;
62
64
  "onTab-add"?: (() => any) | undefined;
@@ -16,8 +16,10 @@ export declare const tabsProps: {
16
16
  export declare type TabsProps = ExtractPropTypes<typeof tabsProps>;
17
17
  export declare const tabsEmits: {
18
18
  "update:modelValue": (name: TabPanelName) => boolean;
19
+ /** @deprecated use `tab-change` instead */
19
20
  input: (name: TabPanelName) => boolean;
20
21
  'tab-click': (pane: TabsPaneContext, ev: Event) => boolean;
22
+ 'tab-change': (name: TabPanelName) => boolean;
21
23
  edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') => boolean;
22
24
  'tab-remove': (name: TabPanelName) => boolean;
23
25
  'tab-add': () => boolean;
@@ -35,6 +37,7 @@ declare const _default: import("vue").DefineComponent<{
35
37
  readonly stretch: BooleanConstructor;
36
38
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
37
39
  "update:modelValue": (name: TabPanelName) => boolean;
40
+ /** @deprecated use `tab-change` instead */
38
41
  input: (name: TabPanelName) => boolean;
39
42
  'tab-click': (pane: {
40
43
  uid: number;
@@ -51,6 +54,7 @@ declare const _default: import("vue").DefineComponent<{
51
54
  index: string | undefined;
52
55
  isClosable: boolean;
53
56
  }, ev: Event) => boolean;
57
+ 'tab-change': (name: TabPanelName) => boolean;
54
58
  edit: (paneName: TabPanelName | undefined, action: "remove" | "add") => boolean;
55
59
  'tab-remove': (name: TabPanelName) => boolean;
56
60
  'tab-add': () => boolean;
@@ -82,6 +86,7 @@ declare const _default: import("vue").DefineComponent<{
82
86
  index: string | undefined;
83
87
  isClosable: boolean;
84
88
  }, ev: Event) => any) | undefined;
89
+ "onTab-change"?: ((name: TabPanelName) => any) | undefined;
85
90
  onEdit?: ((paneName: TabPanelName | undefined, action: "remove" | "add") => any) | undefined;
86
91
  "onTab-remove"?: ((name: TabPanelName) => any) | undefined;
87
92
  "onTab-add"?: (() => any) | undefined;
@@ -6,7 +6,7 @@ var vue = require('vue');
6
6
  var shared = require('@vue/shared');
7
7
  require('../../../utils/index.js');
8
8
  require('../../../constants/index.js');
9
- var index$1 = require('../../icon/index.js');
9
+ var index$2 = require('../../icon/index.js');
10
10
  var iconsVue = require('@element-plus/icons-vue');
11
11
  require('../../../tokens/index.js');
12
12
  require('../../../hooks/index.js');
@@ -14,7 +14,8 @@ var tabNav = require('./tab-nav.js');
14
14
  var props = require('../../../utils/vue/props.js');
15
15
  var core = require('@vueuse/core');
16
16
  var event = require('../../../constants/event.js');
17
- var index = require('../../../hooks/use-namespace/index.js');
17
+ var index = require('../../../hooks/use-deprecated/index.js');
18
+ var index$1 = require('../../../hooks/use-namespace/index.js');
18
19
  var tabs = require('../../../tokens/tabs.js');
19
20
  var aria = require('../../../constants/aria.js');
20
21
 
@@ -51,6 +52,7 @@ const tabsEmits = {
51
52
  [event.UPDATE_MODEL_EVENT]: (name) => isPanelName(name),
52
53
  [event.INPUT_EVENT]: (name) => isPanelName(name),
53
54
  "tab-click": (pane, ev) => ev instanceof Event,
55
+ "tab-change": (name) => isPanelName(name),
54
56
  edit: (paneName, action) => ["remove", "add"].includes(action),
55
57
  "tab-remove": (name) => isPanelName(name),
56
58
  "tab-add": () => true
@@ -78,7 +80,18 @@ var Tabs = vue.defineComponent({
78
80
  expose
79
81
  }) {
80
82
  const instance = vue.getCurrentInstance();
81
- const ns = index.useNamespace("tabs");
83
+ index.useDeprecated({
84
+ scope: "el-tabs",
85
+ type: "Event",
86
+ from: "input",
87
+ replacement: "tab-change",
88
+ version: "2.5.0",
89
+ ref: "https://element-plus.org/en-US/component/tabs.html#tabs-events"
90
+ }, vue.computed(() => {
91
+ var _a;
92
+ return shared.isFunction((_a = instance.vnode.props) == null ? void 0 : _a.onInput);
93
+ }));
94
+ const ns = index$1.useNamespace("tabs");
82
95
  const nav$ = vue.ref();
83
96
  const panes = vue.ref([]);
84
97
  const currentName = vue.ref(props.modelValue || props.activeName || "0");
@@ -104,6 +117,7 @@ var Tabs = vue.defineComponent({
104
117
  currentName.value = value;
105
118
  emit(event.INPUT_EVENT, value);
106
119
  emit(event.UPDATE_MODEL_EVENT, value);
120
+ emit("tab-change", value);
107
121
  };
108
122
  const setCurrentName = (value) => {
109
123
  var _a;
@@ -165,7 +179,7 @@ var Tabs = vue.defineComponent({
165
179
  if (ev.code === aria.EVENT_CODE.enter)
166
180
  handleTabAdd();
167
181
  }
168
- }, [vue.createVNode(index$1.ElIcon, {
182
+ }, [vue.createVNode(index$2.ElIcon, {
169
183
  "class": ns.is("icon-plus")
170
184
  }, {
171
185
  default: () => [vue.createVNode(iconsVue.Plus, null, null)]
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":["../../../../../../packages/components/tabs/src/tabs.tsx"],"sourcesContent":["import {\n Fragment,\n defineComponent,\n getCurrentInstance,\n nextTick,\n onMounted,\n onUpdated,\n provide,\n ref,\n renderSlot,\n watch,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport {\n buildProps,\n definePropType,\n isNumber,\n isPromise,\n isString,\n} from '@element-plus/utils'\nimport {\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElIcon from '@element-plus/components/icon'\nimport { Plus } from '@element-plus/icons-vue'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useNamespace } from '@element-plus/hooks'\nimport TabNav from './tab-nav'\nimport type { TabNavInstance } from './tab-nav'\nimport type { TabsPaneContext } from '@element-plus/tokens'\n\nimport type {\n Component,\n ComponentInternalInstance,\n ExtractPropTypes,\n Ref,\n VNode,\n} from 'vue'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type TabPanelName = string | number\n\nexport const tabsProps = buildProps({\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n activeName: {\n type: [String, Number],\n default: '',\n },\n closable: Boolean,\n addable: Boolean,\n modelValue: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n tabPosition: {\n type: String,\n values: ['top', 'right', 'bottom', 'left'],\n default: 'top',\n },\n beforeLeave: {\n type: definePropType<\n (\n newName: TabPanelName,\n oldName: TabPanelName\n ) => Awaitable<void | boolean>\n >(Function),\n default: () => true,\n },\n stretch: Boolean,\n} as const)\nexport type TabsProps = ExtractPropTypes<typeof tabsProps>\n\nconst isPanelName = (value: unknown): value is string | number =>\n isString(value) || isNumber(value)\n\nexport const tabsEmits = {\n [UPDATE_MODEL_EVENT]: (name: TabPanelName) => isPanelName(name),\n [INPUT_EVENT]: (name: TabPanelName) => isPanelName(name),\n 'tab-click': (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n 'tab-remove': (name: TabPanelName) => isPanelName(name),\n 'tab-add': () => true,\n}\nexport type TabsEmits = typeof tabsEmits\n\nconst getPaneInstanceFromSlot = (\n vnode: VNode,\n paneInstanceList: ComponentInternalInstance[] = []\n) => {\n const children = (vnode.children || []) as ArrayLike<VNode>\n Array.from(children).forEach((node) => {\n let type = node.type\n type = (type as Component).name || type\n if (type === 'ElTabPane' && node.component) {\n paneInstanceList.push(node.component)\n } else if (type === Fragment || type === 'template') {\n getPaneInstanceFromSlot(node, paneInstanceList)\n }\n })\n return paneInstanceList\n}\n\nexport default defineComponent({\n name: 'ElTabs',\n\n props: tabsProps,\n emits: tabsEmits,\n\n setup(props, { emit, slots, expose }) {\n const instance = getCurrentInstance()!\n const ns = useNamespace('tabs')\n\n const nav$ = ref<TabNavInstance>()\n const panes: Ref<TabsPaneContext[]> = ref([])\n const currentName = ref(props.modelValue || props.activeName || '0')\n\n const paneStatesMap: Record<number, TabsPaneContext> = {}\n\n const updatePaneInstances = (isForceUpdate = false) => {\n if (slots.default) {\n const children = instance.subTree.children as ArrayLike<VNode>\n const content = Array.from(children).find(\n ({ props }) => props?.class === ns.e('content')\n )\n if (!content) return\n\n const paneInstanceList: TabsPaneContext[] = getPaneInstanceFromSlot(\n content\n ).map((paneComponent) => paneStatesMap[paneComponent.uid])\n\n const panesChanged = !(\n paneInstanceList.length === panes.value.length &&\n paneInstanceList.every(\n (pane, index) => pane.uid === panes.value[index].uid\n )\n )\n\n if (isForceUpdate || panesChanged) {\n panes.value = paneInstanceList\n }\n } else if (panes.value.length !== 0) {\n panes.value = []\n }\n }\n\n const changeCurrentName = (value: TabPanelName) => {\n currentName.value = value\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n }\n\n const setCurrentName = (value: TabPanelName) => {\n // should do nothing.\n if (currentName.value === value) return\n\n const canLeave = props.beforeLeave?.(value, currentName.value)\n if (isPromise(canLeave)) {\n canLeave.then(\n () => {\n changeCurrentName(value)\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.removeFocus?.()\n },\n // ignore promise rejection in `before-leave` hook\n NOOP\n )\n } else if (canLeave !== false) {\n changeCurrentName(value)\n }\n }\n\n const handleTabClick = (\n tab: TabsPaneContext,\n tabName: TabPanelName,\n event: Event\n ) => {\n if (tab.props.disabled) return\n setCurrentName(tabName)\n emit('tab-click', tab, event)\n }\n\n const handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled) return\n ev.stopPropagation()\n emit('edit', pane.props.name, 'remove')\n emit('tab-remove', pane.props.name)\n }\n\n const handleTabAdd = () => {\n emit('edit', undefined, 'add')\n emit('tab-add')\n }\n\n onUpdated(() => updatePaneInstances())\n onMounted(() => updatePaneInstances())\n\n watch(\n () => props.activeName,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(\n () => props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(currentName, async () => {\n updatePaneInstances(true)\n await nextTick()\n await nav$.value?.$nextTick()\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.scrollToActiveTab()\n })\n\n provide(tabsRootContextKey, {\n props,\n currentName,\n updatePaneState: (pane) => (paneStatesMap[pane.uid] = pane),\n })\n\n expose({\n currentName,\n })\n\n return () => {\n const newButton =\n props.editable || props.addable ? (\n <span\n class={ns.e('new-tab')}\n tabindex=\"0\"\n onClick={handleTabAdd}\n onKeydown={(ev: KeyboardEvent) => {\n if (ev.code === EVENT_CODE.enter) handleTabAdd()\n }}\n >\n <ElIcon class={ns.is('icon-plus')}>\n <Plus />\n </ElIcon>\n </span>\n ) : null\n\n const header = (\n <div class={[ns.e('header'), ns.is(props.tabPosition)]}>\n {newButton}\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n editable={props.editable}\n type={props.type}\n panes={panes.value}\n stretch={props.stretch}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n />\n </div>\n )\n\n const panels = (\n <div class={ns.e('content')}>{renderSlot(slots, 'default')}</div>\n )\n\n return (\n <div\n class={[\n ns.b(),\n ns.m(props.tabPosition),\n {\n [ns.m('card')]: props.type === 'card',\n [ns.m('border-card')]: props.type === 'border-card',\n },\n ]}\n >\n {...props.tabPosition !== 'bottom'\n ? [header, panels]\n : [panels, header]}\n </div>\n )\n }\n },\n})\n"],"names":["tabsProps","buildProps","type","String","values","default","activeName","Number","closable","Boolean","addable","modelValue","editable","tabPosition","beforeLeave","definePropType","Function","stretch","INPUT_EVENT","name","isPanelName","pane","ev","Event","edit","paneName","action","getPaneInstanceFromSlot","children","vnode","Array","from","forEach","node","paneInstanceList","defineComponent","props","emits","setup","useNamespace","emit","ref","slots","expose","instance","getCurrentInstance","ns","nav$","currentName","paneStatesMap","updatePaneInstances","content","isForceUpdate","panesChanged","panes","UPDATE_MODEL_EVENT","length","changeCurrentName","value","isPromise","setCurrentName","NOOP","canLeave","handleTabClick","tab","tabName","onUpdated","watch","handleTabRemove","disabled","stopPropagation","nextTick","handleTabAdd","tabsRootContextKey","onMounted","_createVNode","EVENT_CODE","provide","ElIcon","updatePaneState","Plus","TabNav","newButton","code","renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.js","sources":["../../../../../../packages/components/tabs/src/tabs.tsx"],"sourcesContent":["import {\n Fragment,\n computed,\n defineComponent,\n getCurrentInstance,\n nextTick,\n onMounted,\n onUpdated,\n provide,\n ref,\n renderSlot,\n watch,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport {\n buildProps,\n definePropType,\n isFunction,\n isNumber,\n isPromise,\n isString,\n} from '@element-plus/utils'\nimport {\n EVENT_CODE,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport ElIcon from '@element-plus/components/icon'\nimport { Plus } from '@element-plus/icons-vue'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useDeprecated, useNamespace } from '@element-plus/hooks'\nimport TabNav from './tab-nav'\nimport type { TabNavInstance } from './tab-nav'\nimport type { TabsPaneContext } from '@element-plus/tokens'\n\nimport type {\n Component,\n ComponentInternalInstance,\n ExtractPropTypes,\n Ref,\n VNode,\n} from 'vue'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type TabPanelName = string | number\n\nexport const tabsProps = buildProps({\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n activeName: {\n type: [String, Number],\n default: '',\n },\n closable: Boolean,\n addable: Boolean,\n modelValue: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n tabPosition: {\n type: String,\n values: ['top', 'right', 'bottom', 'left'],\n default: 'top',\n },\n beforeLeave: {\n type: definePropType<\n (\n newName: TabPanelName,\n oldName: TabPanelName\n ) => Awaitable<void | boolean>\n >(Function),\n default: () => true,\n },\n stretch: Boolean,\n} as const)\nexport type TabsProps = ExtractPropTypes<typeof tabsProps>\n\nconst isPanelName = (value: unknown): value is string | number =>\n isString(value) || isNumber(value)\n\nexport const tabsEmits = {\n [UPDATE_MODEL_EVENT]: (name: TabPanelName) => isPanelName(name),\n /** @deprecated use `tab-change` instead */\n [INPUT_EVENT]: (name: TabPanelName) => isPanelName(name),\n 'tab-click': (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n 'tab-change': (name: TabPanelName) => isPanelName(name),\n edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n 'tab-remove': (name: TabPanelName) => isPanelName(name),\n 'tab-add': () => true,\n}\nexport type TabsEmits = typeof tabsEmits\n\nconst getPaneInstanceFromSlot = (\n vnode: VNode,\n paneInstanceList: ComponentInternalInstance[] = []\n) => {\n const children = (vnode.children || []) as ArrayLike<VNode>\n Array.from(children).forEach((node) => {\n let type = node.type\n type = (type as Component).name || type\n if (type === 'ElTabPane' && node.component) {\n paneInstanceList.push(node.component)\n } else if (type === Fragment || type === 'template') {\n getPaneInstanceFromSlot(node, paneInstanceList)\n }\n })\n return paneInstanceList\n}\n\nexport default defineComponent({\n name: 'ElTabs',\n\n props: tabsProps,\n emits: tabsEmits,\n\n setup(props, { emit, slots, expose }) {\n const instance = getCurrentInstance()!\n\n useDeprecated(\n {\n scope: 'el-tabs',\n type: 'Event',\n from: 'input',\n replacement: 'tab-change',\n version: '2.5.0',\n ref: 'https://element-plus.org/en-US/component/tabs.html#tabs-events',\n },\n computed(() => isFunction(instance.vnode.props?.onInput))\n )\n\n const ns = useNamespace('tabs')\n\n const nav$ = ref<TabNavInstance>()\n const panes: Ref<TabsPaneContext[]> = ref([])\n const currentName = ref(props.modelValue || props.activeName || '0')\n\n const paneStatesMap: Record<number, TabsPaneContext> = {}\n\n const updatePaneInstances = (isForceUpdate = false) => {\n if (slots.default) {\n const children = instance.subTree.children as ArrayLike<VNode>\n const content = Array.from(children).find(\n ({ props }) => props?.class === ns.e('content')\n )\n if (!content) return\n\n const paneInstanceList: TabsPaneContext[] = getPaneInstanceFromSlot(\n content\n ).map((paneComponent) => paneStatesMap[paneComponent.uid])\n\n const panesChanged = !(\n paneInstanceList.length === panes.value.length &&\n paneInstanceList.every(\n (pane, index) => pane.uid === panes.value[index].uid\n )\n )\n\n if (isForceUpdate || panesChanged) {\n panes.value = paneInstanceList\n }\n } else if (panes.value.length !== 0) {\n panes.value = []\n }\n }\n\n const changeCurrentName = (value: TabPanelName) => {\n currentName.value = value\n /** @deprecated use `tab-change` instead */\n emit(INPUT_EVENT, value)\n emit(UPDATE_MODEL_EVENT, value)\n emit('tab-change', value)\n }\n\n const setCurrentName = (value: TabPanelName) => {\n // should do nothing.\n if (currentName.value === value) return\n\n const canLeave = props.beforeLeave?.(value, currentName.value)\n if (isPromise(canLeave)) {\n canLeave.then(\n () => {\n changeCurrentName(value)\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.removeFocus?.()\n },\n // ignore promise rejection in `before-leave` hook\n NOOP\n )\n } else if (canLeave !== false) {\n changeCurrentName(value)\n }\n }\n\n const handleTabClick = (\n tab: TabsPaneContext,\n tabName: TabPanelName,\n event: Event\n ) => {\n if (tab.props.disabled) return\n setCurrentName(tabName)\n emit('tab-click', tab, event)\n }\n\n const handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled) return\n ev.stopPropagation()\n emit('edit', pane.props.name, 'remove')\n emit('tab-remove', pane.props.name)\n }\n\n const handleTabAdd = () => {\n emit('edit', undefined, 'add')\n emit('tab-add')\n }\n\n onUpdated(() => updatePaneInstances())\n onMounted(() => updatePaneInstances())\n\n watch(\n () => props.activeName,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(\n () => props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(currentName, async () => {\n updatePaneInstances(true)\n await nextTick()\n await nav$.value?.$nextTick()\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.scrollToActiveTab()\n })\n\n provide(tabsRootContextKey, {\n props,\n currentName,\n updatePaneState: (pane) => (paneStatesMap[pane.uid] = pane),\n })\n\n expose({\n currentName,\n })\n\n return () => {\n const newButton =\n props.editable || props.addable ? (\n <span\n class={ns.e('new-tab')}\n tabindex=\"0\"\n onClick={handleTabAdd}\n onKeydown={(ev: KeyboardEvent) => {\n if (ev.code === EVENT_CODE.enter) handleTabAdd()\n }}\n >\n <ElIcon class={ns.is('icon-plus')}>\n <Plus />\n </ElIcon>\n </span>\n ) : null\n\n const header = (\n <div class={[ns.e('header'), ns.is(props.tabPosition)]}>\n {newButton}\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n editable={props.editable}\n type={props.type}\n panes={panes.value}\n stretch={props.stretch}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n />\n </div>\n )\n\n const panels = (\n <div class={ns.e('content')}>{renderSlot(slots, 'default')}</div>\n )\n\n return (\n <div\n class={[\n ns.b(),\n ns.m(props.tabPosition),\n {\n [ns.m('card')]: props.type === 'card',\n [ns.m('border-card')]: props.type === 'border-card',\n },\n ]}\n >\n {...props.tabPosition !== 'bottom'\n ? [header, panels]\n : [panels, header]}\n </div>\n )\n }\n },\n})\n"],"names":["tabsProps","buildProps","type","String","values","default","activeName","Number","closable","Boolean","addable","modelValue","editable","tabPosition","beforeLeave","definePropType","Function","stretch","INPUT_EVENT","name","edit","isPanelName","getPaneInstanceFromSlot","vnode","children","Array","forEach","node","paneInstanceList","props","getCurrentInstance","emits","setup","emit","slots","expose","instance","useDeprecated","scope","isFunction","from","useNamespace","replacement","ref","version","computed","ns","nav$","paneStatesMap","content","class","panesChanged","isForceUpdate","panes","length","UPDATE_MODEL_EVENT","changeCurrentName","currentName","isPromise","setCurrentName","value","canLeave","NOOP","handleTabClick","tabName","tab","disabled","onMounted","watch","handleTabRemove","ev","pane","nextTick","handleTabAdd","tabsRootContextKey","onUpdated","updatePaneInstances","_createVNode","provide","updatePaneState","TabNav","newButton","e","renderSlot"],"mappings":"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"}
@@ -5,7 +5,7 @@ declare type DeprecationParam = {
5
5
  scope: string;
6
6
  version: string;
7
7
  ref: string;
8
- type?: 'API' | 'Slot';
8
+ type?: 'API' | 'Slot' | 'Event';
9
9
  };
10
10
  export declare const useDeprecated: ({ from, replacement, scope, version, ref, type }: DeprecationParam, condition: MaybeRef<boolean>) => void;
11
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../packages/hooks/use-deprecated/index.ts"],"sourcesContent":["import { unref, watch } from 'vue'\nimport { debugWarn } from '@element-plus/utils'\n\nimport type { MaybeRef } from '@vueuse/core'\n\ntype DeprecationParam = {\n from: string\n replacement: string\n scope: string\n version: string\n ref: string\n type?: 'API' | 'Slot'\n}\n\nexport const useDeprecated = (\n { from, replacement, scope, version, ref, type = 'API' }: DeprecationParam,\n condition: MaybeRef<boolean>\n) => {\n watch(\n () => unref(condition),\n (val) => {\n if (val) {\n debugWarn(\n scope,\n `${type} ${from} is about to be deprecated in version ${version}, please use ${replacement} instead.\nFor more detail, please visit: ${ref}\n`\n )\n }\n },\n {\n immediate: true,\n }\n )\n}\n"],"names":["watch","unref","debugWarn"],"mappings":";;;;;;;;AAEY,MAAC,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,SAAS,KAAK;AACtG,EAAEA,SAAK,CAAC,MAAMC,SAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK;AACzC,IAAI,IAAI,GAAG,EAAE;AACb,MAAMC,eAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,sCAAsC,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC;AAClH,+BAA+B,EAAE,GAAG,CAAC;AACrC,CAAC,CAAC,CAAC;AACH,KAAK;AACL,GAAG,EAAE;AACL,IAAI,SAAS,EAAE,IAAI;AACnB,GAAG,CAAC,CAAC;AACL;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/hooks/use-deprecated/index.ts"],"sourcesContent":["import { unref, watch } from 'vue'\nimport { debugWarn } from '@element-plus/utils'\n\nimport type { MaybeRef } from '@vueuse/core'\n\ntype DeprecationParam = {\n from: string\n replacement: string\n scope: string\n version: string\n ref: string\n type?: 'API' | 'Slot' | 'Event'\n}\n\nexport const useDeprecated = (\n { from, replacement, scope, version, ref, type = 'API' }: DeprecationParam,\n condition: MaybeRef<boolean>\n) => {\n watch(\n () => unref(condition),\n (val) => {\n if (val) {\n debugWarn(\n scope,\n `${type} ${from} is about to be deprecated in version ${version}, please use ${replacement} instead.\nFor more detail, please visit: ${ref}\n`\n )\n }\n },\n {\n immediate: true,\n }\n )\n}\n"],"names":["watch","unref","debugWarn"],"mappings":";;;;;;;;AAEY,MAAC,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,SAAS,KAAK;AACtG,EAAEA,SAAK,CAAC,MAAMC,SAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK;AACzC,IAAI,IAAI,GAAG,EAAE;AACb,MAAMC,eAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,sCAAsC,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC;AAClH,+BAA+B,EAAE,GAAG,CAAC;AACrC,CAAC,CAAC,CAAC;AACH,KAAK;AACL,GAAG,EAAE;AACL,IAAI,SAAS,EAAE,IAAI;AACnB,GAAG,CAAC,CAAC;AACL;;;;"}
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const version = "0.0.20220402";
1
+ export declare const version = "0.0.20220403";
package/lib/version.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const version = "0.0.20220402";
5
+ const version = "0.0.20220403";
6
6
 
7
7
  exports.version = version;
8
8
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.20220402'\n"],"names":[],"mappings":";;;;AAAY,MAAC,OAAO,GAAG;;;;"}
1
+ {"version":3,"file":"version.js","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.20220403'\n"],"names":[],"mappings":";;;;AAAY,MAAC,OAAO,GAAG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@element-plus/nightly",
3
- "version": "0.0.20220402",
3
+ "version": "0.0.20220403",
4
4
  "description": "A Component Library for Vue 3",
5
5
  "homepage": "https://element-plus.org/",
6
6
  "keywords": [
@@ -79,5 +79,5 @@
79
79
  "not ie 11",
80
80
  "not op_mini all"
81
81
  ],
82
- "gitHead": "c0e6fd7d72e6be5c9feb828e6034e8a77c5d68f4"
82
+ "gitHead": "1f17b30e63822ac68bd3c39f69c1876da9ace566"
83
83
  }