@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.
- package/README.md +4 -0
- package/attributes.json +1 -1
- package/dist/index.full.js +15 -2
- package/dist/index.full.min.js +7 -7
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +7 -7
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +15 -2
- package/dist/locale/af.js +1 -1
- package/dist/locale/af.min.js +1 -1
- package/dist/locale/af.min.mjs +1 -1
- package/dist/locale/af.mjs +1 -1
- package/dist/locale/ar.js +1 -1
- package/dist/locale/ar.min.js +1 -1
- package/dist/locale/ar.min.mjs +1 -1
- package/dist/locale/ar.mjs +1 -1
- package/dist/locale/az.js +1 -1
- package/dist/locale/az.min.js +1 -1
- package/dist/locale/az.min.mjs +1 -1
- package/dist/locale/az.mjs +1 -1
- package/dist/locale/bg.js +1 -1
- package/dist/locale/bg.min.js +1 -1
- package/dist/locale/bg.min.mjs +1 -1
- package/dist/locale/bg.mjs +1 -1
- package/dist/locale/bn.js +1 -1
- package/dist/locale/bn.min.js +1 -1
- package/dist/locale/bn.min.mjs +1 -1
- package/dist/locale/bn.mjs +1 -1
- package/dist/locale/ca.js +1 -1
- package/dist/locale/ca.min.js +1 -1
- package/dist/locale/ca.min.mjs +1 -1
- package/dist/locale/ca.mjs +1 -1
- package/dist/locale/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/hr.js +1 -1
- package/dist/locale/hr.min.js +1 -1
- package/dist/locale/hr.min.mjs +1 -1
- package/dist/locale/hr.mjs +1 -1
- package/dist/locale/hu.js +1 -1
- package/dist/locale/hu.min.js +1 -1
- package/dist/locale/hu.min.mjs +1 -1
- package/dist/locale/hu.mjs +1 -1
- package/dist/locale/hy-am.js +1 -1
- package/dist/locale/hy-am.min.js +1 -1
- package/dist/locale/hy-am.min.mjs +1 -1
- package/dist/locale/hy-am.mjs +1 -1
- package/dist/locale/id.js +1 -1
- package/dist/locale/id.min.js +1 -1
- package/dist/locale/id.min.mjs +1 -1
- package/dist/locale/id.mjs +1 -1
- package/dist/locale/it.js +1 -1
- package/dist/locale/it.min.js +1 -1
- package/dist/locale/it.min.mjs +1 -1
- package/dist/locale/it.mjs +1 -1
- package/dist/locale/ja.js +1 -1
- package/dist/locale/ja.min.js +1 -1
- package/dist/locale/ja.min.mjs +1 -1
- package/dist/locale/ja.mjs +1 -1
- package/dist/locale/kk.js +1 -1
- package/dist/locale/kk.min.js +1 -1
- package/dist/locale/kk.min.mjs +1 -1
- package/dist/locale/kk.mjs +1 -1
- package/dist/locale/km.js +1 -1
- package/dist/locale/km.min.js +1 -1
- package/dist/locale/km.min.mjs +1 -1
- package/dist/locale/km.mjs +1 -1
- package/dist/locale/ko.js +1 -1
- package/dist/locale/ko.min.js +1 -1
- package/dist/locale/ko.min.mjs +1 -1
- package/dist/locale/ko.mjs +1 -1
- package/dist/locale/ku.js +1 -1
- package/dist/locale/ku.min.js +1 -1
- package/dist/locale/ku.min.mjs +1 -1
- package/dist/locale/ku.mjs +1 -1
- package/dist/locale/ky.js +1 -1
- package/dist/locale/ky.min.js +1 -1
- package/dist/locale/ky.min.mjs +1 -1
- package/dist/locale/ky.mjs +1 -1
- package/dist/locale/lt.js +1 -1
- package/dist/locale/lt.min.js +1 -1
- package/dist/locale/lt.min.mjs +1 -1
- package/dist/locale/lt.mjs +1 -1
- package/dist/locale/lv.js +1 -1
- package/dist/locale/lv.min.js +1 -1
- package/dist/locale/lv.min.mjs +1 -1
- package/dist/locale/lv.mjs +1 -1
- package/dist/locale/mg.js +1 -1
- package/dist/locale/mg.min.js +1 -1
- package/dist/locale/mg.min.mjs +1 -1
- package/dist/locale/mg.mjs +1 -1
- package/dist/locale/mn.js +1 -1
- package/dist/locale/mn.min.js +1 -1
- package/dist/locale/mn.min.mjs +1 -1
- package/dist/locale/mn.mjs +1 -1
- package/dist/locale/nb-no.js +1 -1
- package/dist/locale/nb-no.min.js +1 -1
- package/dist/locale/nb-no.min.mjs +1 -1
- package/dist/locale/nb-no.mjs +1 -1
- package/dist/locale/nl.js +1 -1
- package/dist/locale/nl.min.js +1 -1
- package/dist/locale/nl.min.mjs +1 -1
- package/dist/locale/nl.mjs +1 -1
- package/dist/locale/pa.js +1 -1
- package/dist/locale/pa.min.js +1 -1
- package/dist/locale/pa.min.mjs +1 -1
- package/dist/locale/pa.mjs +1 -1
- package/dist/locale/pl.js +1 -1
- package/dist/locale/pl.min.js +1 -1
- package/dist/locale/pl.min.mjs +1 -1
- package/dist/locale/pl.mjs +1 -1
- package/dist/locale/pt-br.js +1 -1
- package/dist/locale/pt-br.min.js +1 -1
- package/dist/locale/pt-br.min.mjs +1 -1
- package/dist/locale/pt-br.mjs +1 -1
- package/dist/locale/pt.js +1 -1
- package/dist/locale/pt.min.js +1 -1
- package/dist/locale/pt.min.mjs +1 -1
- package/dist/locale/pt.mjs +1 -1
- package/dist/locale/ro.js +1 -1
- package/dist/locale/ro.min.js +1 -1
- package/dist/locale/ro.min.mjs +1 -1
- package/dist/locale/ro.mjs +1 -1
- package/dist/locale/ru.js +1 -1
- package/dist/locale/ru.min.js +1 -1
- package/dist/locale/ru.min.mjs +1 -1
- package/dist/locale/ru.mjs +1 -1
- package/dist/locale/sk.js +1 -1
- package/dist/locale/sk.min.js +1 -1
- package/dist/locale/sk.min.mjs +1 -1
- package/dist/locale/sk.mjs +1 -1
- package/dist/locale/sl.js +1 -1
- package/dist/locale/sl.min.js +1 -1
- package/dist/locale/sl.min.mjs +1 -1
- package/dist/locale/sl.mjs +1 -1
- package/dist/locale/sr.js +1 -1
- package/dist/locale/sr.min.js +1 -1
- package/dist/locale/sr.min.mjs +1 -1
- package/dist/locale/sr.mjs +1 -1
- package/dist/locale/sv.js +1 -1
- package/dist/locale/sv.min.js +1 -1
- package/dist/locale/sv.min.mjs +1 -1
- package/dist/locale/sv.mjs +1 -1
- package/dist/locale/ta.js +1 -1
- package/dist/locale/ta.min.js +1 -1
- package/dist/locale/ta.min.mjs +1 -1
- package/dist/locale/ta.mjs +1 -1
- package/dist/locale/th.js +1 -1
- package/dist/locale/th.min.js +1 -1
- package/dist/locale/th.min.mjs +1 -1
- package/dist/locale/th.mjs +1 -1
- package/dist/locale/tk.js +1 -1
- package/dist/locale/tk.min.js +1 -1
- package/dist/locale/tk.min.mjs +1 -1
- package/dist/locale/tk.mjs +1 -1
- package/dist/locale/tr.js +1 -1
- package/dist/locale/tr.min.js +1 -1
- package/dist/locale/tr.min.mjs +1 -1
- package/dist/locale/tr.mjs +1 -1
- package/dist/locale/ug-cn.js +1 -1
- package/dist/locale/ug-cn.min.js +1 -1
- package/dist/locale/ug-cn.min.mjs +1 -1
- package/dist/locale/ug-cn.mjs +1 -1
- package/dist/locale/uk.js +1 -1
- package/dist/locale/uk.min.js +1 -1
- package/dist/locale/uk.min.mjs +1 -1
- package/dist/locale/uk.mjs +1 -1
- package/dist/locale/uz-uz.js +1 -1
- package/dist/locale/uz-uz.min.js +1 -1
- package/dist/locale/uz-uz.min.mjs +1 -1
- package/dist/locale/uz-uz.mjs +1 -1
- package/dist/locale/vi.js +1 -1
- package/dist/locale/vi.min.js +1 -1
- package/dist/locale/vi.min.mjs +1 -1
- package/dist/locale/vi.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/dist/locale/zh-tw.js +1 -1
- package/dist/locale/zh-tw.min.js +1 -1
- package/dist/locale/zh-tw.min.mjs +1 -1
- package/dist/locale/zh-tw.mjs +1 -1
- package/es/components/tabs/index.d.ts +2 -0
- package/es/components/tabs/src/tabs.d.ts +5 -0
- package/es/components/tabs/src/tabs.mjs +16 -2
- package/es/components/tabs/src/tabs.mjs.map +1 -1
- package/es/hooks/use-deprecated/index.d.ts +1 -1
- package/es/hooks/use-deprecated/index.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/tabs/index.d.ts +2 -0
- package/lib/components/tabs/src/tabs.d.ts +5 -0
- package/lib/components/tabs/src/tabs.js +18 -4
- package/lib/components/tabs/src/tabs.js.map +1 -1
- package/lib/hooks/use-deprecated/index.d.ts +1 -1
- package/lib/hooks/use-deprecated/index.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/tags.json +1 -1
- 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.
|
|
1
|
+
export declare const version = "0.0.20220403";
|
package/es/version.mjs
CHANGED
package/es/version.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.
|
|
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$
|
|
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-
|
|
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
|
-
|
|
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$
|
|
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.
|
|
1
|
+
export declare const version = "0.0.20220403";
|
package/lib/version.js
CHANGED
package/lib/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sources":["../../../packages/element-plus/version.ts"],"sourcesContent":["export const version = '0.0.
|
|
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.
|
|
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": "
|
|
82
|
+
"gitHead": "1f17b30e63822ac68bd3c39f69c1876da9ace566"
|
|
83
83
|
}
|