vft 0.0.4 → 0.0.6
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/dist/index.css +1 -1
- package/es/component.mjs +9 -6
- package/es/component.mjs.map +1 -1
- package/es/components/avatar/avatar.vue2.mjs +12 -11
- package/es/components/avatar/avatar.vue2.mjs.map +1 -1
- package/es/components/avatar/index.mjs +2 -0
- package/es/components/avatar/index.mjs.map +1 -1
- package/es/components/back-top/back-top.vue2.mjs +20 -18
- package/es/components/back-top/back-top.vue2.mjs.map +1 -1
- package/es/components/back-top/index.mjs +2 -0
- package/es/components/back-top/index.mjs.map +1 -1
- package/es/components/divider/divider.vue2.mjs +4 -2
- package/es/components/divider/divider.vue2.mjs.map +1 -1
- package/es/components/divider/index.mjs +5 -3
- package/es/components/divider/index.mjs.map +1 -1
- package/es/components/empty/empty.vue2.mjs.map +1 -1
- package/es/components/empty/index.mjs +7 -5
- package/es/components/empty/index.mjs.map +1 -1
- package/es/components/exception/index.mjs +5 -3
- package/es/components/exception/index.mjs.map +1 -1
- package/es/components/icon/icon.vue2.mjs +11 -10
- package/es/components/icon/icon.vue2.mjs.map +1 -1
- package/es/components/icon/index.mjs +5 -3
- package/es/components/icon/index.mjs.map +1 -1
- package/es/components/index.d.ts +1 -0
- package/es/components/index.mjs +11 -6
- package/es/components/index.mjs.map +1 -1
- package/es/components/result/index.mjs +5 -3
- package/es/components/result/index.mjs.map +1 -1
- package/es/components/result/result.vue2.mjs +4 -2
- package/es/components/result/result.vue2.mjs.map +1 -1
- package/es/components/tabs/index.d.ts +356 -0
- package/es/components/tabs/index.mjs +15 -0
- package/es/components/tabs/index.mjs.map +1 -0
- package/es/components/tabs/style/css.d.ts +0 -0
- package/es/components/tabs/style/css.mjs +3 -0
- package/es/components/tabs/style/css.mjs.map +1 -0
- package/es/components/tabs/style/index.d.ts +0 -0
- package/es/components/tabs/style/index.mjs +3 -0
- package/es/components/tabs/style/index.mjs.map +1 -0
- package/es/components/tabs/tab-bar.vue.d.ts +51 -0
- package/es/components/tabs/tab-bar.vue.mjs +5 -0
- package/es/components/tabs/tab-bar.vue.mjs.map +1 -0
- package/es/components/tabs/tab-bar.vue2.mjs +53 -0
- package/es/components/tabs/tab-bar.vue2.mjs.map +1 -0
- package/es/components/tabs/tab-nav.vue.d.ts +121 -0
- package/es/components/tabs/tab-nav.vue.mjs +5 -0
- package/es/components/tabs/tab-nav.vue.mjs.map +1 -0
- package/es/components/tabs/tab-nav.vue2.mjs +167 -0
- package/es/components/tabs/tab-nav.vue2.mjs.map +1 -0
- package/es/components/tabs/tab-pane.vue.d.ts +45 -0
- package/es/components/tabs/tab-pane.vue.mjs +5 -0
- package/es/components/tabs/tab-pane.vue.mjs.map +1 -0
- package/es/components/tabs/tab-pane.vue2.mjs +57 -0
- package/es/components/tabs/tab-pane.vue2.mjs.map +1 -0
- package/es/components/tabs/tabs.vue.d.ts +159 -0
- package/es/components/tabs/tabs.vue.mjs +5 -0
- package/es/components/tabs/tabs.vue.mjs.map +1 -0
- package/es/components/tabs/tabs.vue2.mjs +151 -0
- package/es/components/tabs/tabs.vue2.mjs.map +1 -0
- package/es/components/tabs/types.d.ts +58 -0
- package/es/components/tabs/types.mjs +5 -0
- package/es/components/tabs/types.mjs.map +1 -0
- package/es/hooks/index.d.ts +1 -0
- package/es/hooks/index.mjs +6 -4
- package/es/hooks/index.mjs.map +1 -1
- package/es/hooks/use-ordered-children/index.d.ts +8 -0
- package/es/hooks/use-ordered-children/index.mjs +27 -0
- package/es/hooks/use-ordered-children/index.mjs.map +1 -0
- package/es/index.d.ts +1 -1
- package/es/index.mjs +42 -35
- package/es/index.mjs.map +1 -1
- package/es/package.json.mjs +1 -1
- package/es/style.css +1 -1
- package/es/theme-style/src/tabs.scss.mjs +5 -0
- package/es/theme-style/src/tabs.scss.mjs.map +1 -0
- package/es/utils/index.mjs +23 -10
- package/es/utils/index.mjs.map +1 -1
- package/es/utils/vue/index.d.ts +1 -0
- package/es/utils/vue/index.mjs +18 -5
- package/es/utils/vue/index.mjs.map +1 -1
- package/es/utils/vue/vnode.d.ts +51 -0
- package/es/utils/vue/vnode.mjs +67 -0
- package/es/utils/vue/vnode.mjs.map +1 -0
- package/lib/component.js +1 -1
- package/lib/component.js.map +1 -1
- package/lib/components/avatar/avatar.vue2.js +1 -1
- package/lib/components/avatar/avatar.vue2.js.map +1 -1
- package/lib/components/avatar/index.js +1 -1
- package/lib/components/avatar/index.js.map +1 -1
- package/lib/components/back-top/back-top.vue2.js +1 -1
- package/lib/components/back-top/back-top.vue2.js.map +1 -1
- package/lib/components/back-top/index.js +1 -1
- package/lib/components/back-top/index.js.map +1 -1
- package/lib/components/divider/divider.vue2.js +1 -1
- package/lib/components/divider/divider.vue2.js.map +1 -1
- package/lib/components/divider/index.js +1 -1
- package/lib/components/divider/index.js.map +1 -1
- package/lib/components/empty/empty.vue2.js.map +1 -1
- package/lib/components/empty/index.js +1 -1
- package/lib/components/empty/index.js.map +1 -1
- package/lib/components/exception/index.js +1 -1
- package/lib/components/exception/index.js.map +1 -1
- package/lib/components/icon/icon.vue2.js +1 -1
- package/lib/components/icon/icon.vue2.js.map +1 -1
- package/lib/components/icon/index.js +1 -1
- package/lib/components/icon/index.js.map +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +1 -1
- package/lib/components/result/index.js +1 -1
- package/lib/components/result/index.js.map +1 -1
- package/lib/components/result/result.vue2.js +1 -1
- package/lib/components/result/result.vue2.js.map +1 -1
- package/lib/components/tabs/index.d.ts +356 -0
- package/lib/components/tabs/index.js +2 -0
- package/lib/components/tabs/index.js.map +1 -0
- package/lib/components/tabs/style/css.d.ts +0 -0
- package/lib/components/tabs/style/css.js +2 -0
- package/lib/components/tabs/style/css.js.map +1 -0
- package/lib/components/tabs/style/index.d.ts +0 -0
- package/lib/components/tabs/style/index.js +2 -0
- package/lib/components/tabs/style/index.js.map +1 -0
- package/lib/components/tabs/tab-bar.vue.d.ts +51 -0
- package/lib/components/tabs/tab-bar.vue.js +2 -0
- package/lib/components/tabs/tab-bar.vue.js.map +1 -0
- package/lib/components/tabs/tab-bar.vue2.js +2 -0
- package/lib/components/tabs/tab-bar.vue2.js.map +1 -0
- package/lib/components/tabs/tab-nav.vue.d.ts +121 -0
- package/lib/components/tabs/tab-nav.vue.js +2 -0
- package/lib/components/tabs/tab-nav.vue.js.map +1 -0
- package/lib/components/tabs/tab-nav.vue2.js +2 -0
- package/lib/components/tabs/tab-nav.vue2.js.map +1 -0
- package/lib/components/tabs/tab-pane.vue.d.ts +45 -0
- package/lib/components/tabs/tab-pane.vue.js +2 -0
- package/lib/components/tabs/tab-pane.vue.js.map +1 -0
- package/lib/components/tabs/tab-pane.vue2.js +2 -0
- package/lib/components/tabs/tab-pane.vue2.js.map +1 -0
- package/lib/components/tabs/tabs.vue.d.ts +159 -0
- package/lib/components/tabs/tabs.vue.js +2 -0
- package/lib/components/tabs/tabs.vue.js.map +1 -0
- package/lib/components/tabs/tabs.vue2.js +2 -0
- package/lib/components/tabs/tabs.vue2.js.map +1 -0
- package/lib/components/tabs/types.d.ts +58 -0
- package/lib/components/tabs/types.js +2 -0
- package/lib/components/tabs/types.js.map +1 -0
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +1 -1
- package/lib/hooks/use-ordered-children/index.d.ts +8 -0
- package/lib/hooks/use-ordered-children/index.js +2 -0
- package/lib/hooks/use-ordered-children/index.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json.js +1 -1
- package/lib/theme-style/src/tabs.scss.js +2 -0
- package/lib/theme-style/src/tabs.scss.js.map +1 -0
- package/lib/utils/index.js +1 -1
- package/lib/utils/vue/index.d.ts +1 -0
- package/lib/utils/vue/index.js +1 -1
- package/lib/utils/vue/vnode.d.ts +51 -0
- package/lib/utils/vue/vnode.js +2 -0
- package/lib/utils/vue/vnode.js.map +1 -0
- package/package.json +4 -1
- package/theme-style/index.css +1 -1
- package/theme-style/src/index.scss +1 -0
- package/theme-style/src/tabs.scss +582 -0
- package/theme-style/vft-tabs.css +1 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { defineComponent as w, getCurrentInstance as g, useSlots as M, ref as h, watch as I, nextTick as D, computed as i, createVNode as s, provide as F } from "vue";
|
|
2
|
+
import { useNamespace as O } from "../../hooks/use-namespace/index.mjs";
|
|
3
|
+
import { useOrderedChildren as U } from "../../hooks/use-ordered-children/index.mjs";
|
|
4
|
+
import { UPDATE_MODEL_EVENT as $ } from "@vft/constants";
|
|
5
|
+
import { isNumberish as f, isUndefined as y } from "@vft/utils";
|
|
6
|
+
import K from "./tab-nav.vue2.mjs";
|
|
7
|
+
import { TabsRootContextKey as S } from "./types.mjs";
|
|
8
|
+
const r = (
|
|
9
|
+
/* hoist-static*/
|
|
10
|
+
O("tabs")
|
|
11
|
+
), j = w({
|
|
12
|
+
name: r.b()
|
|
13
|
+
}), Z = /* @__PURE__ */ w({
|
|
14
|
+
...j,
|
|
15
|
+
props: {
|
|
16
|
+
type: {
|
|
17
|
+
default: ""
|
|
18
|
+
},
|
|
19
|
+
closable: {
|
|
20
|
+
type: Boolean
|
|
21
|
+
},
|
|
22
|
+
addable: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: !1
|
|
25
|
+
},
|
|
26
|
+
modelValue: null,
|
|
27
|
+
editable: {
|
|
28
|
+
type: Boolean
|
|
29
|
+
},
|
|
30
|
+
tabPosition: {
|
|
31
|
+
default: "top"
|
|
32
|
+
},
|
|
33
|
+
beforeLeave: {
|
|
34
|
+
type: Function
|
|
35
|
+
},
|
|
36
|
+
stretch: {
|
|
37
|
+
type: Boolean
|
|
38
|
+
},
|
|
39
|
+
closeIconCfg: null,
|
|
40
|
+
addIconCfg: null,
|
|
41
|
+
arrowLeftIconCfg: null,
|
|
42
|
+
arrowRightIconCfg: null
|
|
43
|
+
},
|
|
44
|
+
emits: {
|
|
45
|
+
[$]: (a) => f(a),
|
|
46
|
+
/** 点击 */
|
|
47
|
+
tabClick: (a, d) => d instanceof Event,
|
|
48
|
+
/** 右键点击 */
|
|
49
|
+
tabContextMenu: (a, d, t) => t instanceof Event,
|
|
50
|
+
tabChange: (a) => f(a),
|
|
51
|
+
edit: (a, d) => ["remove", "add"].includes(d),
|
|
52
|
+
/** 移除 */
|
|
53
|
+
tabRemove: (a) => f(a),
|
|
54
|
+
/** 增加 */
|
|
55
|
+
tabAdd: () => !0
|
|
56
|
+
},
|
|
57
|
+
setup(a, {
|
|
58
|
+
expose: d,
|
|
59
|
+
emit: t
|
|
60
|
+
}) {
|
|
61
|
+
const T = g(), l = M(), u = h(), c = h(a.modelValue ?? "0"), R = (e) => {
|
|
62
|
+
c.value = e, t("update:modelValue", e), t("tabChange", e);
|
|
63
|
+
}, b = async (e) => {
|
|
64
|
+
var n, o, C;
|
|
65
|
+
if (!(c.value === e || y(e)))
|
|
66
|
+
try {
|
|
67
|
+
await ((n = a.beforeLeave) == null ? void 0 : n.call(a, e, c.value)) !== !1 && (R(e), (C = (o = u.value) == null ? void 0 : o.removeFocus) == null || C.call(o));
|
|
68
|
+
} catch {
|
|
69
|
+
}
|
|
70
|
+
}, p = (e, n, o) => {
|
|
71
|
+
e.props.disabled || (b(n), t("tabClick", e, o));
|
|
72
|
+
}, L = (e, n) => {
|
|
73
|
+
e.props.disabled || y(e.props.name) || (n.stopPropagation(), t("edit", e.props.name, "remove"), t("tabRemove", e.props.name));
|
|
74
|
+
};
|
|
75
|
+
I(() => a.modelValue, (e) => b(e)), I(c, async () => {
|
|
76
|
+
var e;
|
|
77
|
+
await D(), (e = u.value) == null || e.scrollToActiveTab();
|
|
78
|
+
});
|
|
79
|
+
const N = () => {
|
|
80
|
+
t("edit", void 0, "add"), t("tabAdd");
|
|
81
|
+
}, x = (e, n, o) => {
|
|
82
|
+
t("tabContextMenu", e, n, o);
|
|
83
|
+
}, m = i(() => {
|
|
84
|
+
var e;
|
|
85
|
+
return s("div", {
|
|
86
|
+
class: r.e("content")
|
|
87
|
+
}, [(e = l.default) == null ? void 0 : e.call(l)]);
|
|
88
|
+
}), {
|
|
89
|
+
children: P,
|
|
90
|
+
addChild: k,
|
|
91
|
+
removeChild: A
|
|
92
|
+
} = U(g(), "vri-tab-pane");
|
|
93
|
+
F(S, {
|
|
94
|
+
props: T.props,
|
|
95
|
+
currentName: c,
|
|
96
|
+
registerPane: k,
|
|
97
|
+
unregisterPane: A
|
|
98
|
+
}), d({
|
|
99
|
+
currentName: c
|
|
100
|
+
});
|
|
101
|
+
const E = i(() => ({
|
|
102
|
+
icon: "vi-add",
|
|
103
|
+
color: "black",
|
|
104
|
+
size: 12,
|
|
105
|
+
...a.addIconCfg
|
|
106
|
+
})), V = i(() => ({
|
|
107
|
+
icon: "vi-close",
|
|
108
|
+
size: 12,
|
|
109
|
+
...a.closeIconCfg
|
|
110
|
+
})), z = i(() => ({
|
|
111
|
+
icon: "vi-arrow-left",
|
|
112
|
+
size: 18,
|
|
113
|
+
...a.arrowLeftIconCfg
|
|
114
|
+
})), B = i(() => ({
|
|
115
|
+
icon: "vi-arrow-right",
|
|
116
|
+
size: 18,
|
|
117
|
+
...a.arrowRightIconCfg
|
|
118
|
+
})), v = i(() => {
|
|
119
|
+
var e;
|
|
120
|
+
return s("div", {
|
|
121
|
+
class: [r.e("header"), r.is(a.tabPosition)]
|
|
122
|
+
}, [s(K, {
|
|
123
|
+
ref: u,
|
|
124
|
+
currentName: c.value,
|
|
125
|
+
panes: P.value,
|
|
126
|
+
stretch: a.stretch,
|
|
127
|
+
closeIconCfg: V.value,
|
|
128
|
+
addIconCfg: E.value,
|
|
129
|
+
arrowRightIconCfg: B.value,
|
|
130
|
+
arrowLeftIconCfg: z.value,
|
|
131
|
+
editable: a.editable,
|
|
132
|
+
addable: a.addable,
|
|
133
|
+
type: a.type,
|
|
134
|
+
onTabClick: p,
|
|
135
|
+
onTabRemove: L,
|
|
136
|
+
onTabAdd: N,
|
|
137
|
+
onTabContextmenu: x
|
|
138
|
+
}, null), (e = l.headerRight) == null ? void 0 : e.call(l)]);
|
|
139
|
+
});
|
|
140
|
+
return () => s("div", {
|
|
141
|
+
class: [r.b(), r.m(a.tabPosition), {
|
|
142
|
+
[r.m("card")]: a.type === "card",
|
|
143
|
+
[r.m("border-card")]: a.type === "border-card"
|
|
144
|
+
}]
|
|
145
|
+
}, [...a.tabPosition !== "bottom" ? [v.value, m.value] : [m.value, v.value]]);
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
export {
|
|
149
|
+
Z as default
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=tabs.vue2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.vue2.mjs","sources":["../../../../../packages/components/tabs/tabs.vue"],"sourcesContent":["<script lang=\"tsx\">\nconst ns = /* hoist-static*/ useNamespace('tabs')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script setup lang=\"tsx\">\nimport { type IconProps } from '@vft-ui/components';\nimport { useNamespace, useOrderedChildren } from '@vft-ui/hooks';\nimport { UPDATE_MODEL_EVENT } from '@vft/constants';\nimport { isNumberish, isUndefined } from '@vft/utils';\nimport { computed, getCurrentInstance, nextTick, provide, ref, useSlots, watch } from 'vue';\nimport TabNav from './tab-nav.vue';\nimport { type TabsPaneContext, type TabsProps, TabsRootContextKey, type TabsType } from './types';\n\ninterface TabsProps {\n /** 风格类型 */\n type?: TabsType;\n /** 标签是否可关闭 */\n closable?: boolean;\n /** 标签是否可增加 */\n addable?: boolean;\n /** 绑定值,选中选项卡的 name */\n modelValue: Numberish;\n /** 标签是否同时可增加和关闭 */\n editable?: boolean;\n /** 选项卡所在位置 */\n tabPosition?: 'top' | 'right' | 'bottom' | 'left';\n /** 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n beforeLeave?: Function;\n /** 是否自动撑开宽度 */\n stretch?: boolean;\n /** icon 配置 */\n closeIconCfg?: IconProps;\n addIconCfg?: IconProps;\n arrowLeftIconCfg?: IconProps;\n arrowRightIconCfg?: IconProps;\n}\n\ndefineProps({\n \"type\": { default: '' },\n \"closable\": { type: Boolean, },\n \"addable\": { type: Boolean, default: false },\n \"modelValue\": null,\n \"editable\": { type: Boolean, },\n \"tabPosition\": { default: 'top' },\n \"beforeLeave\": { type: Function, },\n \"stretch\": { type: Boolean, },\n \"closeIconCfg\": null,\n \"addIconCfg\": null,\n \"arrowLeftIconCfg\": null,\n \"arrowRightIconCfg\": null\n})\n\nconst emit = defineEmits({\n [UPDATE_MODEL_EVENT]: (name: Numberish) => isNumberish(name),\n /** 点击 */\n tabClick: (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n /** 右键点击 */\n tabContextMenu: (pane: TabsPaneContext, index: number, ev: Event) => ev instanceof Event,\n tabChange: (name: Numberish) => isNumberish(name),\n edit: (paneName: Numberish | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n /** 移除 */\n tabRemove: (name: Numberish) => isNumberish(name),\n /** 增加 */\n tabAdd: () => true\n});\n\n\n\n;\n\nconst vm = getCurrentInstance()!;\n\nconst slots = useSlots();\n\n// tab-nav 实例\nconst nav$ = ref();\n\n// 默认的激活的 tab\nconst currentName = ref<Numberish>(__props.modelValue ?? '0');\n\n// 更新当前 current tab 触发 tabChange 以及更新 modelValue\nconst changeCurrentName = (value: Numberish) => {\n currentName.value = value;\n emit('update:modelValue', value);\n emit('tabChange', value);\n};\n\n// value 值为当前点击的 tab 值\nconst setCurrentName = async (value?: Numberish) => {\n // 如果 currentName 等于原值,或者 value 不存在,不执行\n if (currentName.value === value || isUndefined(value)) return;\n\n try {\n // 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n const canLeave = await __props.beforeLeave?.(value, currentName.value);\n if (canLeave !== false) {\n // 更新 tab 值\n changeCurrentName(value);\n //\n nav$.value?.removeFocus?.();\n }\n } catch {}\n};\n\n/**\n * @description tab 点击事件\n * @author wfd\n * @date 2022/10/18 09:07\n * @example\n * @param {TabsPaneContext} tab 当前被点击的 tab 信息\n * @param {Numberish} tabName 被点击的 tab 值\n * @param {Event} event\n */\nconst handleTabClick = (tab: TabsPaneContext, tabName: Numberish, event: Event) => {\n // 如果 TabPaneProps 中设置了 disabled 则禁止点击\n if (tab.props.disabled) return;\n // 更新 currentName\n setCurrentName(tabName);\n // 抛出 tabClick 事件\n emit('tabClick', tab, event);\n};\n\nconst handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled || isUndefined(pane.props.name)) return;\n ev.stopPropagation();\n emit('edit', pane.props.name, 'remove');\n emit('tabRemove', pane.props.name);\n};\n\n// 监听 modelValue 改变触发改变 currentName\nwatch(\n () => __props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n);\n\n// 当前激活的 tab 变化触发 nav$ scrollToActiveTab 方法\nwatch(currentName, async () => {\n await nextTick();\n nav$.value?.scrollToActiveTab();\n});\n\n// 增加 tab 事件\nconst handleTabAdd = () => {\n emit('edit', undefined, 'add');\n emit('tabAdd');\n};\n\nconst handleContextmenu = (pane: TabsPaneContext, index: number, ev: Event) => {\n emit('tabContextMenu', pane, index, ev);\n};\n\n// 默认渲染的内容区域\nconst panels = computed(() => {\n return <div class={ns.e('content')}>{slots.default?.()}</div>;\n});\n\n// 找出当前 tab 组件下 vri-tab-pane 的组件实例对象\nconst { children: panes, addChild: registerPane, removeChild: unregisterPane } = useOrderedChildren<TabsPaneContext>(getCurrentInstance()!, 'vri-tab-pane');\n\nprovide(TabsRootContextKey, {\n props: vm.props as unknown as TabsProps,\n currentName,\n registerPane,\n unregisterPane\n});\n\ndefineExpose({\n currentName\n});\n\n// 图标相关\nconst _addIconCfg = computed(() => {\n return {\n icon: 'vi-add',\n color: 'black',\n size: 12,\n ...__props.addIconCfg\n };\n});\n\nconst _closeIconCfg = computed(() => {\n return {\n icon: 'vi-close',\n size: 12,\n ...__props.closeIconCfg\n };\n});\n\nconst _arrowLeftIconCfg = computed(() => {\n return {\n icon: 'vi-arrow-left',\n size: 18,\n ...__props.arrowLeftIconCfg\n };\n});\n\nconst _arrowRightIconCfg = computed(() => {\n return {\n icon: 'vi-arrow-right',\n size: 18,\n ...__props.arrowRightIconCfg\n };\n});\n\nconst header = computed(() => {\n return (\n <div class={[ns.e('header'), ns.is(__props.tabPosition)]}>\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n panes={panes.value}\n stretch={__props.stretch}\n closeIconCfg={_closeIconCfg.value}\n addIconCfg={_addIconCfg.value}\n arrowRightIconCfg={_arrowRightIconCfg.value}\n arrowLeftIconCfg={_arrowLeftIconCfg.value}\n editable={__props.editable}\n addable={__props.addable}\n type={__props.type}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n onTabAdd={handleTabAdd}\n onTabContextmenu={handleContextmenu}\n />\n {slots.headerRight?.()}\n </div>\n );\n});\n\ndefineRender(() => {\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' ? [header.value, panels.value] : [panels.value, header.value]}\n </div>\n );\n});\n</script>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","name","b","vm","getCurrentInstance","slots","useSlots","nav$","ref","currentName","__props","modelValue","changeCurrentName","value","emit","setCurrentName","isUndefined","beforeLeave","removeFocus","handleTabClick","tab","tabName","event","props","disabled","handleTabRemove","pane","ev","stopPropagation","watch","nextTick","scrollToActiveTab","handleTabAdd","undefined","handleContextmenu","index","panels","computed","_createVNode","e","default","children","panes","addChild","registerPane","removeChild","unregisterPane","useOrderedChildren","provide","TabsRootContextKey","expose","_addIconCfg","icon","color","size","addIconCfg","_closeIconCfg","closeIconCfg","_arrowLeftIconCfg","arrowLeftIconCfg","_arrowRightIconCfg","arrowRightIconCfg","header","is","tabPosition","TabNav","stretch","editable","addable","type","headerRight","m"],"mappings":";;;;;;;AACA,MAAMA;AAAAA;AAAAA,EAAuBC,EAAa,MAAM;AAAA,GAGhDC,IAA6BC,EAAmB;AAAA,EAC9CC,MAAMJ,EAAGK,EAAC;AACZ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoED,UAAMC,IAAKC,KAELC,IAAQC,KAGRC,IAAOC,KAGPC,IAAcD,EAAeE,EAAQC,cAAc,GAAG,GAGtDC,IAAqBC,CAAAA,MAAqB;AAC9CJ,MAAAA,EAAYI,QAAQA,GACpBC,EAAK,qBAAqBD,CAAK,GAC/BC,EAAK,aAAaD,CAAK;AAAA,OAInBE,IAAiB,OAAOF,MAAsB;;AAElD,UAAIJ,EAAAA,EAAYI,UAAUA,KAASG,EAAYH,CAAK;AAEpD,YAAI;AAGF,UADiB,QAAMH,IAAAA,EAAQO,gBAARP,gBAAAA,EAAAA,KAAAA,GAAsBG,GAAOJ,EAAYI,YAC/C,OAEfD,EAAkBC,CAAK,IAEvBN,KAAAA,IAAAA,EAAKM,UAALN,gBAAAA,EAAYW,gBAAZX,QAAAA,EAAAA,KAAAA;AAAAA,QAEH,QAAC;AAAA,QAAO;AAAA,OAYLY,IAAiBA,CAACC,GAAsBC,GAAoBC,MAAiB;AAEjF,MAAIF,EAAIG,MAAMC,aAEdT,EAAeM,CAAO,GAEtBP,EAAK,YAAYM,GAAKE,CAAK;AAAA,OAGvBG,IAAkBA,CAACC,GAAuBC,MAAc;AAC5D,MAAID,EAAKH,MAAMC,YAAYR,EAAYU,EAAKH,MAAMtB,IAAI,MACtD0B,EAAGC,gBAAe,GAClBd,EAAK,QAAQY,EAAKH,MAAMtB,MAAM,QAAQ,GACtCa,EAAK,aAAaY,EAAKH,MAAMtB,IAAI;AAAA;AAInC4B,IAAAA,EACE,MAAMnB,EAAQC,YACbA,CAAAA,MAAeI,EAAeJ,CAAU,CAAC,GAI5CkB,EAAMpB,GAAa,YAAY;;AAC7B,YAAMqB,EAAQ,IACdvB,IAAAA,EAAKM,UAALN,QAAAA,EAAYwB;AAAAA,IACd,CAAC;AAGD,UAAMC,IAAeA,MAAM;AACzBlB,MAAAA,EAAK,QAAQmB,QAAW,KAAK,GAC7BnB,EAAK,QAAQ;AAAA,OAGToB,IAAoBA,CAACR,GAAuBS,GAAeR,MAAc;AAC7Eb,MAAAA,EAAK,kBAAkBY,GAAMS,GAAOR,CAAE;AAAA,OAIlCS,IAASC,EAAS,MAAM;;AAC5B,aAAAC,EAAA,OAAA;AAAA,QAAA,OAAmBzC,EAAG0C,EAAE,SAAS;AAAA,MAAIlC,GAAAA,EAAAA,IAAAA,EAAMmC,YAANnC,gBAAAA,EAAAA,KAAAA,EAAiB,CAAA;AAAA,IACxD,CAAC,GAGK;AAAA,MAAEoC,UAAUC;AAAAA,MAAOC,UAAUC;AAAAA,MAAcC,aAAaC;AAAAA,IAAgB,IAAGC,EAAoC3C,KAAuB,cAAc;AAE1J4C,IAAAA,EAAQC,GAAoB;AAAA,MAC1B1B,OAAOpB,EAAGoB;AAAAA,MACVd,aAAAA;AAAAA,MACAmC,cAAAA;AAAAA,MACAE,gBAAAA;AAAAA,IACF,CAAC,GAEDI,EAAa;AAAA,MACXzC,aAAAA;AAAAA,IACF,CAAC;AAGD,UAAM0C,IAAcd,EAAS,OACpB;AAAA,MACLe,MAAM;AAAA,MACNC,OAAO;AAAA,MACPC,MAAM;AAAA,MACN,GAAG5C,EAAQ6C;AAAAA,MAEd,GAEKC,IAAgBnB,EAAS,OACtB;AAAA,MACLe,MAAM;AAAA,MACNE,MAAM;AAAA,MACN,GAAG5C,EAAQ+C;AAAAA,MAEd,GAEKC,IAAoBrB,EAAS,OAC1B;AAAA,MACLe,MAAM;AAAA,MACNE,MAAM;AAAA,MACN,GAAG5C,EAAQiD;AAAAA,MAEd,GAEKC,IAAqBvB,EAAS,OAC3B;AAAA,MACLe,MAAM;AAAA,MACNE,MAAM;AAAA,MACN,GAAG5C,EAAQmD;AAAAA,MAEd,GAEKC,IAASzB,EAAS,MAAM;;AAC5B,aAAAC,EAAA,OAAA;AAAA,QAAA,OACc,CAACzC,EAAG0C,EAAE,QAAQ,GAAG1C,EAAGkE,GAAGrD,EAAQsD,WAAW,CAAC;AAAA,SAAC1B,CAAAA,EAAA2B,GAAA;AAAA,QAAA,KAE/C1D;AAAAA,QAAI,aACIE,EAAYI;AAAAA,QAAK,OACvB6B,EAAM7B;AAAAA,QAAK,SACTH,EAAQwD;AAAAA,QAAO,cACVV,EAAc3C;AAAAA,QAAK,YACrBsC,EAAYtC;AAAAA,QAAK,mBACV+C,EAAmB/C;AAAAA,QAAK,kBACzB6C,EAAkB7C;AAAAA,QAAK,UAC/BH,EAAQyD;AAAAA,QAAQ,SACjBzD,EAAQ0D;AAAAA,QAAO,MAClB1D,EAAQ2D;AAAAA,QAAI,YACNlD;AAAAA,QAAc,aACbM;AAAAA,QAAe,UAClBO;AAAAA,QAAY,kBACJE;AAAAA,MAEnB7B,GAAAA,IAAAA,IAAAA,IAAAA,EAAMiE,gBAANjE,gBAAAA,EAAAA,KAAAA,EAAqB,CAAA;AAAA,IAG5B,CAAC;AAEY,WAAA,MACXiC,EAAA,OAAA;AAAA,MAAA,OAEW,CACLzC,EAAGK,EAAG,GACNL,EAAG0E,EAAE7D,EAAQsD,WAAW,GACxB;AAAA,QACE,CAACnE,EAAG0E,EAAE,MAAM,CAAC,GAAG7D,EAAQ2D,SAAS;AAAA,QACjC,CAACxE,EAAG0E,EAAE,aAAa,CAAC,GAAG7D,EAAQ2D,SAAS;AAAA,OACzC;AAAA,OAGC3D,CAAAA,GAAAA,EAAQsD,gBAAgB,WAAW,CAACF,EAAOjD,OAAOuB,EAAOvB,KAAK,IAAI,CAACuB,EAAOvB,OAAOiD,EAAOjD,KAAK,CAAC,CAAA;AAAA;;"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ComputedRef, InjectionKey, Ref, Slots, UnwrapRef } from 'vue';
|
|
2
|
+
import { type IconProps } from 'vft/es/components';
|
|
3
|
+
export type TabsPaneContext = UnwrapRef<{
|
|
4
|
+
uid: number;
|
|
5
|
+
slots: Slots;
|
|
6
|
+
props: TabPaneProps;
|
|
7
|
+
paneName: ComputedRef<string | number | undefined>;
|
|
8
|
+
active: ComputedRef<boolean>;
|
|
9
|
+
index: Ref<string | undefined>;
|
|
10
|
+
isClosable: ComputedRef<boolean>;
|
|
11
|
+
attrs: Record<string, any>;
|
|
12
|
+
}>;
|
|
13
|
+
export type TabsType = 'card' | 'border-card' | '';
|
|
14
|
+
export interface TabsRootContext {
|
|
15
|
+
props: TabsProps;
|
|
16
|
+
currentName: Ref<string | number>;
|
|
17
|
+
registerPane: (pane: TabsPaneContext) => void;
|
|
18
|
+
unregisterPane: (uid: number) => void;
|
|
19
|
+
}
|
|
20
|
+
export interface TabPaneProps {
|
|
21
|
+
/** 选项卡标题 */
|
|
22
|
+
label: string;
|
|
23
|
+
/** 与选项卡绑定值 value 对应的标识符,表示选项卡别名 */
|
|
24
|
+
name: Numberish;
|
|
25
|
+
/** 标签是否可关闭 */
|
|
26
|
+
closable: boolean;
|
|
27
|
+
/** 是否禁用 */
|
|
28
|
+
disabled: boolean;
|
|
29
|
+
/** 标签是否延迟渲染 */
|
|
30
|
+
lazy: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface TabsProps {
|
|
33
|
+
/** 风格类型 */
|
|
34
|
+
type?: TabsType;
|
|
35
|
+
/** 标签是否可关闭 */
|
|
36
|
+
closable?: boolean;
|
|
37
|
+
/** 标签是否可增加 */
|
|
38
|
+
addable?: boolean;
|
|
39
|
+
/** 绑定值,选中选项卡的 name */
|
|
40
|
+
modelValue: Numberish;
|
|
41
|
+
/** 标签是否同时可增加和关闭 */
|
|
42
|
+
editable?: boolean;
|
|
43
|
+
/** 选项卡所在位置 */
|
|
44
|
+
tabPosition?: 'top' | 'right' | 'bottom' | 'left';
|
|
45
|
+
/** 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */
|
|
46
|
+
beforeLeave?: Function;
|
|
47
|
+
stretch?: boolean;
|
|
48
|
+
closeIconCfg?: IconProps;
|
|
49
|
+
addIconCfg?: IconProps;
|
|
50
|
+
arrowLeftIconCfg?: IconProps;
|
|
51
|
+
arrowRightIconCfg?: IconProps;
|
|
52
|
+
}
|
|
53
|
+
export declare const TabsRootContextKey: InjectionKey<TabsRootContext>;
|
|
54
|
+
export interface Scrollable {
|
|
55
|
+
next?: boolean;
|
|
56
|
+
prev?: number;
|
|
57
|
+
}
|
|
58
|
+
export type TabsPanes = Record<number, TabsPaneContext>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.mjs","sources":["../../../../../packages/components/tabs/types.ts"],"sourcesContent":["import type { ComputedRef, InjectionKey, Ref, Slots, UnwrapRef } from 'vue';\nimport { type IconProps } from '@vft-ui/components';\n\nexport type TabsPaneContext = UnwrapRef<{\n uid: number;\n slots: Slots;\n props: TabPaneProps;\n paneName: ComputedRef<string | number | undefined>;\n active: ComputedRef<boolean>;\n index: Ref<string | undefined>;\n isClosable: ComputedRef<boolean>;\n attrs: Record<string, any>;\n}>;\n\nexport type TabsType = 'card' | 'border-card' | '';\n\nexport interface TabsRootContext {\n props: TabsProps;\n currentName: Ref<string | number>;\n registerPane: (pane: TabsPaneContext) => void;\n unregisterPane: (uid: number) => void;\n}\n\nexport interface TabPaneProps {\n /** 选项卡标题 */\n label: string;\n /** 与选项卡绑定值 value 对应的标识符,表示选项卡别名 */\n name: Numberish;\n /** 标签是否可关闭 */\n closable: boolean;\n /** 是否禁用 */\n disabled: boolean;\n /** 标签是否延迟渲染 */\n lazy: boolean;\n}\n\nexport interface TabsProps {\n /** 风格类型 */\n type?: TabsType;\n /** 标签是否可关闭 */\n closable?: boolean;\n /** 标签是否可增加 */\n addable?: boolean;\n /** 绑定值,选中选项卡的 name */\n modelValue: Numberish;\n /** 标签是否同时可增加和关闭 */\n editable?: boolean;\n /** 选项卡所在位置 */\n tabPosition?: 'top' | 'right' | 'bottom' | 'left';\n /** 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */\n beforeLeave?: Function;\n stretch?: boolean;\n closeIconCfg?: IconProps;\n addIconCfg?: IconProps;\n arrowLeftIconCfg?: IconProps;\n arrowRightIconCfg?: IconProps;\n}\n\nexport const TabsRootContextKey: InjectionKey<TabsRootContext> = Symbol('tabsRootContextKey');\n\nexport interface Scrollable {\n next?: boolean;\n prev?: number;\n}\n\nexport type TabsPanes = Record<number, TabsPaneContext>;\n"],"names":["TabsRootContextKey"],"mappings":"AA0Da,MAAAA,IAAoD,OAAO,oBAAoB;"}
|
package/es/hooks/index.d.ts
CHANGED
package/es/hooks/index.mjs
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { _bem as
|
|
1
|
+
import { _bem as a, defaultNamespace as m, useNamespace as d } from "./use-namespace/index.mjs";
|
|
2
|
+
import { useOrderedChildren as p } from "./use-ordered-children/index.mjs";
|
|
2
3
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
a as _bem,
|
|
5
|
+
m as defaultNamespace,
|
|
6
|
+
d as useNamespace,
|
|
7
|
+
p as useOrderedChildren
|
|
6
8
|
};
|
|
7
9
|
//# sourceMappingURL=index.mjs.map
|
package/es/hooks/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ComponentInternalInstance } from 'vue';
|
|
2
|
+
export declare const useOrderedChildren: <T extends {
|
|
3
|
+
uid: number;
|
|
4
|
+
}>(vm: ComponentInternalInstance, childComponentName: string) => {
|
|
5
|
+
children: import("vue").ShallowRef<T[]>;
|
|
6
|
+
addChild: (child: T) => void;
|
|
7
|
+
removeChild: (uid: number) => void;
|
|
8
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { shallowRef as s, isVNode as m } from "vue";
|
|
2
|
+
import "@vue/shared";
|
|
3
|
+
import { flattedChildren as c } from "../../utils/vue/vnode.mjs";
|
|
4
|
+
import "@vft/utils";
|
|
5
|
+
const u = (t, i, d) => c(t.subTree).filter(
|
|
6
|
+
(e) => {
|
|
7
|
+
var r;
|
|
8
|
+
return m(e) && ((r = e.type) == null ? void 0 : r.name) === i && !!e.component;
|
|
9
|
+
}
|
|
10
|
+
).map((e) => e.component.uid).map((e) => d[e]).filter((e) => !!e), f = (t, i) => {
|
|
11
|
+
const d = {}, o = s([]);
|
|
12
|
+
return {
|
|
13
|
+
children: o,
|
|
14
|
+
addChild: (r) => {
|
|
15
|
+
d[r.uid] = r, o.value = u(t, i, d);
|
|
16
|
+
},
|
|
17
|
+
removeChild: (r) => {
|
|
18
|
+
delete d[r], o.value = o.value.filter(
|
|
19
|
+
(l) => l.uid !== r
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
f as useOrderedChildren
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-ordered-children/index.ts"],"sourcesContent":["import { isVNode, shallowRef } from 'vue';\nimport { flattedChildren } from '@vft-ui/utils'\n\n\nimport type { ComponentInternalInstance, VNode } from 'vue'\n\nconst getOrderedChildren = <T> (\n\tvm: ComponentInternalInstance,\n\tchildComponentName: string,\n\tchildren: Record<number, T>\n): T[] => {\n\tconst nodes = flattedChildren(vm.subTree).filter(\n\t\t(n): n is VNode =>\n\t\t\tisVNode(n) &&\n\t\t\t(n.type as any)?.name === childComponentName &&\n\t\t\t!!n.component\n\t)\n\tconst uids = nodes.map((n) => n.component!.uid)\n\treturn uids.map((uid) => children[uid]).filter((p) => !!p)\n}\n\nexport const useOrderedChildren = <T extends {uid: number}> (\n\tvm: ComponentInternalInstance,\n\tchildComponentName: string\n) => {\n\tconst children: Record<number, T> = {}\n\tconst orderedChildren = shallowRef<T[]>([])\n\t\n\tconst addChild = (child: T) => {\n\t\tchildren[child.uid] = child\n\t\torderedChildren.value = getOrderedChildren(vm, childComponentName, children)\n\t}\n\tconst removeChild = (uid: number) => {\n\t\tdelete children[uid]\n\t\torderedChildren.value = orderedChildren.value.filter(\n\t\t\t(children) => children.uid !== uid\n\t\t)\n\t}\n\t\n\treturn {\n\t\tchildren: orderedChildren,\n\t\taddChild,\n\t\tremoveChild,\n\t}\n}\n"],"names":["getOrderedChildren","vm","childComponentName","children","flattedChildren","n","isVNode","_a","uid","p","useOrderedChildren","orderedChildren","shallowRef","child"],"mappings":";;;;AAMA,MAAMA,IAAqB,CAC1BC,GACAC,GACAC,MAEcC,EAAgBH,EAAG,OAAO,EAAE;AAAA,EACzC,CAACI,MACA;;AAAA,WAAAC,EAAQD,CAAC,OACRE,IAAAF,EAAE,SAAF,gBAAAE,EAAgB,UAASL,KAC1B,CAAC,CAACG,EAAE;AAAA;AAAA,EAEa,IAAI,CAACA,MAAMA,EAAE,UAAW,GAAG,EAClC,IAAI,CAACG,MAAQL,EAASK,CAAG,CAAC,EAAE,OAAO,CAACC,MAAM,CAAC,CAACA,CAAC,GAG7CC,IAAqB,CACjCT,GACAC,MACI;AACJ,QAAMC,IAA8B,CAAA,GAC9BQ,IAAkBC,EAAgB,CAAA,CAAE;AAanC,SAAA;AAAA,IACN,UAAUD;AAAA,IACV,UAbgB,CAACE,MAAa;AACrB,MAAAV,EAAAU,EAAM,GAAG,IAAIA,GACtBF,EAAgB,QAAQX,EAAmBC,GAAIC,GAAoBC,CAAQ;AAAA,IAAA;AAAA,IAY3E,aAVmB,CAACK,MAAgB;AACpC,aAAOL,EAASK,CAAG,GACHG,EAAA,QAAQA,EAAgB,MAAM;AAAA,QAC7C,CAACR,MAAaA,EAAS,QAAQK;AAAA,MAAA;AAAA,IAChC;AAAA,EAMA;AAEF;"}
|
package/es/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import installer from './defaults';
|
|
2
2
|
export * from 'vft/es/components';
|
|
3
3
|
export * from 'vft/es/constants';
|
|
4
|
-
export * from 'vft/es/
|
|
4
|
+
export * from 'vft/es/hooks';
|
|
5
5
|
export * from './make-installer';
|
|
6
6
|
export declare const install: (app: import("vue").App<any>, options?: any) => void;
|
|
7
7
|
export declare const version: string;
|
package/es/index.mjs
CHANGED
|
@@ -1,44 +1,51 @@
|
|
|
1
1
|
import o from "./defaults.mjs";
|
|
2
|
-
import { VftDivider as
|
|
3
|
-
import { VftIcon as
|
|
4
|
-
import { VftAvatar as
|
|
2
|
+
import { VftDivider as p } from "./components/divider/index.mjs";
|
|
3
|
+
import { VftIcon as x } from "./components/icon/index.mjs";
|
|
4
|
+
import { VftAvatar as E } from "./components/avatar/index.mjs";
|
|
5
5
|
import { VftEmpty as i } from "./components/empty/index.mjs";
|
|
6
6
|
import { VftResult as V } from "./components/result/index.mjs";
|
|
7
|
-
import { VftException as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
|
|
7
|
+
import { VftException as c } from "./components/exception/index.mjs";
|
|
8
|
+
import { VftTabPane as N, VftTabs as _ } from "./components/tabs/index.mjs";
|
|
9
|
+
import { EVENT_CODE as D } from "./constants/aria.mjs";
|
|
10
|
+
import { WEEK_DAYS as A, datePickTypes as b } from "./constants/date.mjs";
|
|
11
|
+
import { CHANGE_EVENT as C, INPUT_EVENT as I, UPDATE_MODEL_EVENT as P } from "./constants/event.mjs";
|
|
12
|
+
import { INSTALLED_KEY as K } from "./constants/key.mjs";
|
|
13
|
+
import { componentSizeMap as O, componentSizes as k } from "./constants/size.mjs";
|
|
14
|
+
import { _bem as M, defaultNamespace as R, useNamespace as U } from "./hooks/use-namespace/index.mjs";
|
|
15
|
+
import { useOrderedChildren as h } from "./hooks/use-ordered-children/index.mjs";
|
|
16
|
+
import { makeInstaller as G } from "./make-installer.mjs";
|
|
17
|
+
import { default as W } from "dayjs";
|
|
18
|
+
import { EmptyEnum as q } from "./components/empty/constants.mjs";
|
|
19
|
+
import { TabsRootContextKey as B } from "./components/tabs/types.mjs";
|
|
20
|
+
const r = o.install, t = o.version;
|
|
18
21
|
export {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
C as CHANGE_EVENT,
|
|
23
|
+
D as EVENT_CODE,
|
|
24
|
+
q as EmptyEnum,
|
|
25
|
+
I as INPUT_EVENT,
|
|
26
|
+
K as INSTALLED_KEY,
|
|
27
|
+
B as TabsRootContextKey,
|
|
28
|
+
P as UPDATE_MODEL_EVENT,
|
|
29
|
+
E as VftAvatar,
|
|
30
|
+
p as VftDivider,
|
|
27
31
|
i as VftEmpty,
|
|
28
|
-
|
|
29
|
-
|
|
32
|
+
c as VftException,
|
|
33
|
+
x as VftIcon,
|
|
30
34
|
V as VftResult,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
N as VftTabPane,
|
|
36
|
+
_ as VftTabs,
|
|
37
|
+
A as WEEK_DAYS,
|
|
38
|
+
M as _bem,
|
|
39
|
+
O as componentSizeMap,
|
|
40
|
+
k as componentSizes,
|
|
41
|
+
b as datePickTypes,
|
|
42
|
+
W as dayjs,
|
|
37
43
|
o as default,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
R as defaultNamespace,
|
|
45
|
+
r as install,
|
|
46
|
+
G as makeInstaller,
|
|
47
|
+
U as useNamespace,
|
|
48
|
+
h as useOrderedChildren,
|
|
49
|
+
t as version
|
|
43
50
|
};
|
|
44
51
|
//# sourceMappingURL=index.mjs.map
|
package/es/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../packages/vft/index.ts"],"sourcesContent":["import installer from './defaults'\nexport * from '@vft-ui/components'\nexport * from '@vft-ui/constants'\nexport * from '@vft-ui/
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../packages/vft/index.ts"],"sourcesContent":["import installer from './defaults'\nexport * from '@vft-ui/components'\nexport * from '@vft-ui/constants'\nexport * from '@vft-ui/hooks'\nexport * from './make-installer'\n\nexport const install = installer.install\nexport const version = installer.version\nexport default installer\n\nexport { default as dayjs } from 'dayjs'\n"],"names":["install","installer","version"],"mappings":";;;;;;;;;;;;;;;;;;;AAMO,MAAMA,IAAUC,EAAU,SACpBC,IAAUD,EAAU;"}
|
package/es/package.json.mjs
CHANGED
package/es/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@charset "UTF-8";:root{--vft-avatar-text-color: var(--vft-color-white);--vft-avatar-bg-color: var(--vft-text-disabled-color);--vft-avatar-text-size: 14px;--vft-avatar-icon-size: 18px;--vft-avatar-border-radius: var(--vft-border-radius-base)}.vft-avatar{--vft-avatar-size-large: 56px;--vft-avatar-size-small: 24px;--vft-avatar-size: 40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--vft-avatar-text-color);background:var(--vft-avatar-bg-color);width:var(--vft-avatar-size);height:var(--vft-avatar-size);font-size:var(--vft-avatar-text-size)}.vft-avatar>img{display:block;height:100%}.vft-avatar--circle{border-radius:50%}.vft-avatar--square{border-radius:var(--vft-avatar-border-radius)}.vft-avatar--icon{font-size:var(--vft-avatar-icon-size)}.vft-avatar--small{--vft-avatar-size: 24px}.vft-avatar--large{--vft-avatar-size: 56px}.vft-back-top{--vft-backtop-bg-color: var(--vft-bg-color-overlay);--vft-backtop-text-color: var(--vft-primary-color);--vft-backtop-hover-bg-color: var(--vft-border-color-extra-light);position:fixed;background-color:var(--vft-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--vft-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--vft-box-shadow-lighter);cursor:pointer;z-index:5}.vft-back-top:hover{background-color:var(--vft-backtop-hover-bg-color)}.vft-back-top__icon{font-size:20px}:root{--vft-color-white: #fff;--vft-color-black: #000;--vft-theme-color: #fff;--vft-theme-color-reverse: #000;--vft-font-size-extra-large: 20px;--vft-font-size-large: 18px;--vft-font-size-medium: 16px;--vft-font-size-base: 14px;--vft-font-size-small: 13px;--vft-font-size-extra-small: 12px;--vft-font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "\5fae\8f6f\96c5\9ed1", Arial, sans-serif;--vft-font-weight-primary: 500;--vft-font-line-height-primary: 24px;--vft-index-normal: 1;--vft-index-top: 1000;--vft-index-popper: 2000;--vft-border-radius-base: 4px;--vft-border-radius-small: 2px;--vft-border-radius-round: 20px;--vft-border-radius-circle: 100%;--vft-transition-duration: .3s;--vft-transition-duration-fast: .2s;--vft-transition-function-ease-in-out-bezier: cubic-bezier(.645, .045, .355, 1);--vft-transition-function-fast-bezier: cubic-bezier(.23, 1, .32, 1);--vft-transition-all: all var(--vft-transition-duration) var(--vft-transition-function-ease-in-out-bezier);--vft-transition-fade: opacity var(--vft-transition-duration) var(--vft-transition-function-fast-bezier);--vft-transition-md-fade: transform var(--vft-transition-duration) var(--vft-transition-function-fast-bezier), opacity var(--vft-transition-duration) var(--vft-transition-function-fast-bezier);--vft-transition-fade-linear: opacity var(--vft-transition-duration-fast) linear;--vft-transition-border: border-color var(--vft-transition-duration-fast) var(--vft-transition-function-ease-in-out-bezier);--vft-transition-box-shadow: box-shadow var(--vft-transition-duration-fast) var(--vft-transition-function-ease-in-out-bezier);--vft-transition-color: color var(--vft-transition-duration-fast) var(--vft-transition-function-ease-in-out-bezier)}:root{color-scheme:light;--vft-primary-color: #2196f3;--vft-primary-color-light-3: #64b6f7;--vft-primary-color-light-5: #90cbf9;--vft-primary-color-light-7: #bce0fb;--vft-primary-color-light-8: #d3eafd;--vft-primary-color-light-9: #e9f5fe;--vft-primary-color-dark-2: #1a78c2;--vft-success-color: #3eaf7c;--vft-success-color-light-3: #78c7a3;--vft-success-color-light-5: #9fd7be;--vft-success-color-light-7: #c5e7d8;--vft-success-color-light-8: #d8efe5;--vft-success-color-light-9: #ecf7f2;--vft-success-color-dark-2: #328c63;--vft-warning-color: #fb9b5f;--vft-warning-color-light-3: #fcb98f;--vft-warning-color-light-5: #fdcdaf;--vft-warning-color-light-7: #fee1cf;--vft-warning-color-light-8: #feebdf;--vft-warning-color-light-9: #fff5ef;--vft-warning-color-dark-2: #c97c4c;--vft-danger-color: #f26d6d;--vft-danger-color-light-3: #f69999;--vft-danger-color-light-5: #f9b6b6;--vft-danger-color-light-7: #fbd3d3;--vft-danger-color-light-8: #fce2e2;--vft-danger-color-light-9: #fef0f0;--vft-danger-color-dark-2: #c25757;--vft-error-color: #f26d6d;--vft-error-color-light-3: #f69999;--vft-error-color-light-5: #f9b6b6;--vft-error-color-light-7: #fbd3d3;--vft-error-color-light-8: #fce2e2;--vft-error-color-light-9: #fef0f0;--vft-error-color-dark-2: #c25757;--vft-info-color: #909399;--vft-info-color-light-3: #b1b3b8;--vft-info-color-light-5: #c8c9cc;--vft-info-color-light-7: #dedfe0;--vft-info-color-light-8: #e9e9eb;--vft-info-color-light-9: #f4f4f5;--vft-info-color-dark-2: #73767a;--vft-bg-color: #fff;--vft-bg-color-page: #f2f3f5;--vft-bg-color-overlay: #fff;--vft-text-primary-color: #303133;--vft-text-regular-color: #606266;--vft-text-secondary-color: #909399;--vft-text-placeholder-color: #a8abb2;--vft-text-disabled-color: #c0c4cc;--vft-border-color: #dcdfe6;--vft-border-color-light: #e4e7ed;--vft-border-color-lighter: #ebeef5;--vft-border-color-extra-light: #f2f6fc;--vft-border-color-dark: #d4d7de;--vft-border-color-darker: #cdd0d6;--vft-fill-color: #f0f2f5;--vft-fill-color-light: #f5f7fa;--vft-fill-color-lighter: #fafafa;--vft-fill-color-extra-light: #fafcff;--vft-fill-color-dark: #ebedf0;--vft-fill-color-darker: #e6e8eb;--vft-fill-color-blank: #fff;--vft-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .04), 0px 8px 20px rgba(0, 0, 0, .08);--vft-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);--vft-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);--vft-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16);--vft-disabled-bg-color: var(--vft-fill-color-light);--vft-disabled-text-color: var(--vft-text-color-placeholder);--vft-disabled-border-color: var(--vft-border-color-light);--vft-overlay-color: rgba(0, 0, 0, .8);--vft-overlay-color-light: rgba(0, 0, 0, .7);--vft-overlay-color-lighter: rgba(0, 0, 0, .5);--vft-mask-color: rgba(255, 255, 255, .9);--vft-mask-color-extra-light: rgba(255, 255, 255, .3);--vft-border-width: 1px;--vft-border-style: solid;--vft-border-color-hover: var(--vft-text-disabled-color);--vft-border: var(--vft-border-width) var(--vft-border-style) var(--vft-border-color);--vft-svg-monochrome-grey: var(--vft-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--vft-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.vft-fade-in-linear-enter-active,.vft-fade-in-linear-leave-active{transition:var(--vft-transition-fade-linear)}.vft-fade-in-linear-enter-from,.vft-fade-in-linear-leave-to{opacity:0}.vft-fade-in-enter-active,.vft-fade-in-leave-active{transition:all var(--vft-transition-duration) cubic-bezier(.55,0,.1,1)}.vft-fade-in-enter-from,.vft-fade-in-leave-active{opacity:0}.vft-zoom-in-center-enter-active,.vft-zoom-in-center-leave-active{transition:all var(--vft-transition-duration) cubic-bezier(.55,0,.1,1)}.vft-zoom-in-center-enter-from,.vft-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.vft-zoom-in-top-enter-active,.vft-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--vft-transition-md-fade);transform-origin:center top}.vft-zoom-in-top-enter-active[data-popper-placement^=top],.vft-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.vft-zoom-in-top-enter-from,.vft-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.vft-zoom-in-bottom-enter-active,.vft-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--vft-transition-md-fade);transform-origin:center bottom}.vft-zoom-in-bottom-enter-from,.vft-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.vft-zoom-in-left-enter-active,.vft-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--vft-transition-md-fade);transform-origin:top left}.vft-zoom-in-left-enter-from,.vft-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--vft-transition-duration) height ease-in-out,var(--vft-transition-duration) padding-top ease-in-out,var(--vft-transition-duration) padding-bottom ease-in-out}.vft-collapse-transition-leave-active,.vft-collapse-transition-enter-active{transition:var(--vft-transition-duration) max-height ease-in-out,var(--vft-transition-duration) padding-top ease-in-out,var(--vft-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--vft-transition-duration) width ease-in-out,var(--vft-transition-duration) padding-left ease-in-out,var(--vft-transition-duration) padding-right ease-in-out}.vft-list-enter-active,.vft-list-leave-active{transition:all 1s}.vft-list-enter-from,.vft-list-leave-to{opacity:0;transform:translateY(-30px)}.vft-list-leave-active{position:absolute!important}.vft-opacity-transition{transition:opacity var(--vft-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--vft-divider-margin-y: 24px;--vft-divider-margin-x: 8px;--vft-divider-border-color: #dcdfe6;--vft-divider-border-style: solid}.vft-divider{position:relative}.vft-divider--horizontal{display:block;height:1px;width:100%;margin:var(--vft-divider-margin-y) 0;border-top:1px var(--vft-divider-border-color) var(--vft-divider-border-style)}.vft-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 var(--vft-divider-margin-x);vertical-align:middle;position:relative;border-left:1px var(--vft-divider-border-color) var(--vft-divider-border-style)}.vft-divider__text{position:absolute;background-color:var(--vft-bg-color);padding:0 20px;font-weight:500;color:var(--vft-text-primary-color);font-size:14px}.vft-divider__text.is-left{left:20px;transform:translateY(-50%)}.vft-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.vft-divider__text.is-right{right:20px;transform:translateY(-50%)}:root{--vft-empty-img-size: 160px;--vft-empty-img-size-small: 80px;--vft-empty-img-size-large: 240px;--vft-empty-text-color: white;--vft-empty-desc-top: 10px;--vft-empty-desc-color: var(--vft-text-placeholder-color);--vft-empty-desc-size: 14px}.vft-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;padding:10px 0}.vft-empty__image{width:var(--vft-empty-img-size);height:var(--vft-empty-img-size)}.vft-empty__image img{width:100%;height:100%;object-fit:contain}.vft-empty--large .vft-empty__image{width:var(--vft-empty-img-size-large);height:var(--vft-empty-img-size-large)}.vft-empty--small .vft-empty__image{width:var(--vft-empty-img-size-small);height:var(--vft-empty-img-size-small)}.vft-empty__desc{margin-top:var(--vft-empty-desc-top);color:var(--vft-empty-desc-color);font-size:var(--vft-empty-desc-size)}.vft-empty__bottom{margin-top:5px}:root{--vft-icon-text-color: black}.vft-icon{position:relative;display:inline-block;font: 14px/1 iconfont;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;transition:all .2s ease;color:var(--vft-icon-text-color)}.vft-icon:before{display:inline-block}.vft-icon__image{display:block;width:1em;height:1em;object-fit:contain}:root{--vft-result-padding: 40px 30px;--vft-result-icon-font-size: 64px;--vft-result-title-font-size: 20px;--vft-result-title-margin-top: 20px;--vft-result-sub-title-margin-top: 10px;--vft-result-extra-margin-top: 30px}.vft-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--vft-result-padding)}.vft-result__icon svg{width:var(--vft-result-icon-font-size);height:var(--vft-result-icon-font-size)}.vft-result__icon [class~=vft-icon]{font-size:var(--vft-result-icon-font-size)}.vft-result__title{margin-top:var(--vft-result-title-margin-top)}.vft-result__title p{margin:0;font-size:var(--vft-result-title-font-size);color:var(--vft-text-color-primary);line-height:1.3}.vft-result__sub-title{margin-top:var(--vft-result-sub-title-margin-top)}.vft-result__sub-title p{margin:0;font-size:var(--vft-font-size-base);color:var(--vft-text-color-regular);line-height:1.3}.vft-result__extra{margin-top:var(--vft-result-extra-margin-top)}.vft-result .icon-primary{--vft-result-color: var(--vft-color-primary);color:var(--vft-result-color)}.vft-result .icon-success{--vft-result-color: var(--vft-color-success);color:var(--vft-result-color)}.vft-result .icon-warning{--vft-result-color: var(--vft-color-warning);color:var(--vft-result-color)}.vft-result .icon-danger{--vft-result-color: var(--vft-color-danger);color:var(--vft-result-color)}.vft-result .icon-error{--vft-result-color: var(--vft-color-error);color:var(--vft-result-color)}.vft-result .icon-info{--vft-result-color: var(--vft-color-info);color:var(--vft-result-color)}
|
|
1
|
+
@charset "UTF-8";:root{--vft-avatar-text-color: var(--vft-color-white);--vft-avatar-bg-color: var(--vft-text-disabled-color);--vft-avatar-text-size: 14px;--vft-avatar-icon-size: 18px;--vft-avatar-border-radius: var(--vft-border-radius-base)}.vft-avatar{--vft-avatar-size-large: 56px;--vft-avatar-size-small: 24px;--vft-avatar-size: 40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;color:var(--vft-avatar-text-color);background:var(--vft-avatar-bg-color);width:var(--vft-avatar-size);height:var(--vft-avatar-size);font-size:var(--vft-avatar-text-size)}.vft-avatar>img{display:block;height:100%}.vft-avatar--circle{border-radius:50%}.vft-avatar--square{border-radius:var(--vft-avatar-border-radius)}.vft-avatar--icon{font-size:var(--vft-avatar-icon-size)}.vft-avatar--small{--vft-avatar-size: 24px}.vft-avatar--large{--vft-avatar-size: 56px}.vft-back-top{--vft-backtop-bg-color: var(--vft-bg-color-overlay);--vft-backtop-text-color: var(--vft-primary-color);--vft-backtop-hover-bg-color: var(--vft-border-color-extra-light);position:fixed;background-color:var(--vft-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--vft-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--vft-box-shadow-lighter);cursor:pointer;z-index:5}.vft-back-top:hover{background-color:var(--vft-backtop-hover-bg-color)}.vft-back-top__icon{font-size:20px}:root{--vft-color-white: #fff;--vft-color-black: #000;--vft-theme-color: #fff;--vft-theme-color-reverse: #000;--vft-font-size-extra-large: 20px;--vft-font-size-large: 18px;--vft-font-size-medium: 16px;--vft-font-size-base: 14px;--vft-font-size-small: 13px;--vft-font-size-extra-small: 12px;--vft-font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "\5fae\8f6f\96c5\9ed1", Arial, sans-serif;--vft-font-weight-primary: 500;--vft-font-line-height-primary: 24px;--vft-index-normal: 1;--vft-index-top: 1000;--vft-index-popper: 2000;--vft-border-radius-base: 4px;--vft-border-radius-small: 2px;--vft-border-radius-round: 20px;--vft-border-radius-circle: 100%;--vft-transition-duration: .3s;--vft-transition-duration-fast: .2s;--vft-transition-function-ease-in-out-bezier: cubic-bezier(.645, .045, .355, 1);--vft-transition-function-fast-bezier: cubic-bezier(.23, 1, .32, 1);--vft-transition-all: all var(--vft-transition-duration) var(--vft-transition-function-ease-in-out-bezier);--vft-transition-fade: opacity var(--vft-transition-duration) var(--vft-transition-function-fast-bezier);--vft-transition-md-fade: transform var(--vft-transition-duration) var(--vft-transition-function-fast-bezier), opacity var(--vft-transition-duration) var(--vft-transition-function-fast-bezier);--vft-transition-fade-linear: opacity var(--vft-transition-duration-fast) linear;--vft-transition-border: border-color var(--vft-transition-duration-fast) var(--vft-transition-function-ease-in-out-bezier);--vft-transition-box-shadow: box-shadow var(--vft-transition-duration-fast) var(--vft-transition-function-ease-in-out-bezier);--vft-transition-color: color var(--vft-transition-duration-fast) var(--vft-transition-function-ease-in-out-bezier)}:root{color-scheme:light;--vft-primary-color: #2196f3;--vft-primary-color-light-3: #64b6f7;--vft-primary-color-light-5: #90cbf9;--vft-primary-color-light-7: #bce0fb;--vft-primary-color-light-8: #d3eafd;--vft-primary-color-light-9: #e9f5fe;--vft-primary-color-dark-2: #1a78c2;--vft-success-color: #3eaf7c;--vft-success-color-light-3: #78c7a3;--vft-success-color-light-5: #9fd7be;--vft-success-color-light-7: #c5e7d8;--vft-success-color-light-8: #d8efe5;--vft-success-color-light-9: #ecf7f2;--vft-success-color-dark-2: #328c63;--vft-warning-color: #fb9b5f;--vft-warning-color-light-3: #fcb98f;--vft-warning-color-light-5: #fdcdaf;--vft-warning-color-light-7: #fee1cf;--vft-warning-color-light-8: #feebdf;--vft-warning-color-light-9: #fff5ef;--vft-warning-color-dark-2: #c97c4c;--vft-danger-color: #f26d6d;--vft-danger-color-light-3: #f69999;--vft-danger-color-light-5: #f9b6b6;--vft-danger-color-light-7: #fbd3d3;--vft-danger-color-light-8: #fce2e2;--vft-danger-color-light-9: #fef0f0;--vft-danger-color-dark-2: #c25757;--vft-error-color: #f26d6d;--vft-error-color-light-3: #f69999;--vft-error-color-light-5: #f9b6b6;--vft-error-color-light-7: #fbd3d3;--vft-error-color-light-8: #fce2e2;--vft-error-color-light-9: #fef0f0;--vft-error-color-dark-2: #c25757;--vft-info-color: #909399;--vft-info-color-light-3: #b1b3b8;--vft-info-color-light-5: #c8c9cc;--vft-info-color-light-7: #dedfe0;--vft-info-color-light-8: #e9e9eb;--vft-info-color-light-9: #f4f4f5;--vft-info-color-dark-2: #73767a;--vft-bg-color: #fff;--vft-bg-color-page: #f2f3f5;--vft-bg-color-overlay: #fff;--vft-text-primary-color: #303133;--vft-text-regular-color: #606266;--vft-text-secondary-color: #909399;--vft-text-placeholder-color: #a8abb2;--vft-text-disabled-color: #c0c4cc;--vft-border-color: #dcdfe6;--vft-border-color-light: #e4e7ed;--vft-border-color-lighter: #ebeef5;--vft-border-color-extra-light: #f2f6fc;--vft-border-color-dark: #d4d7de;--vft-border-color-darker: #cdd0d6;--vft-fill-color: #f0f2f5;--vft-fill-color-light: #f5f7fa;--vft-fill-color-lighter: #fafafa;--vft-fill-color-extra-light: #fafcff;--vft-fill-color-dark: #ebedf0;--vft-fill-color-darker: #e6e8eb;--vft-fill-color-blank: #fff;--vft-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .04), 0px 8px 20px rgba(0, 0, 0, .08);--vft-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .12);--vft-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .12);--vft-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .08), 0px 12px 32px rgba(0, 0, 0, .12), 0px 8px 16px -8px rgba(0, 0, 0, .16);--vft-disabled-bg-color: var(--vft-fill-color-light);--vft-disabled-text-color: var(--vft-text-color-placeholder);--vft-disabled-border-color: var(--vft-border-color-light);--vft-overlay-color: rgba(0, 0, 0, .8);--vft-overlay-color-light: rgba(0, 0, 0, .7);--vft-overlay-color-lighter: rgba(0, 0, 0, .5);--vft-mask-color: rgba(255, 255, 255, .9);--vft-mask-color-extra-light: rgba(255, 255, 255, .3);--vft-border-width: 1px;--vft-border-style: solid;--vft-border-color-hover: var(--vft-text-disabled-color);--vft-border: var(--vft-border-width) var(--vft-border-style) var(--vft-border-color);--vft-svg-monochrome-grey: var(--vft-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--vft-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.vft-fade-in-linear-enter-active,.vft-fade-in-linear-leave-active{transition:var(--vft-transition-fade-linear)}.vft-fade-in-linear-enter-from,.vft-fade-in-linear-leave-to{opacity:0}.vft-fade-in-enter-active,.vft-fade-in-leave-active{transition:all var(--vft-transition-duration) cubic-bezier(.55,0,.1,1)}.vft-fade-in-enter-from,.vft-fade-in-leave-active{opacity:0}.vft-zoom-in-center-enter-active,.vft-zoom-in-center-leave-active{transition:all var(--vft-transition-duration) cubic-bezier(.55,0,.1,1)}.vft-zoom-in-center-enter-from,.vft-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.vft-zoom-in-top-enter-active,.vft-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:var(--vft-transition-md-fade);transform-origin:center top}.vft-zoom-in-top-enter-active[data-popper-placement^=top],.vft-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.vft-zoom-in-top-enter-from,.vft-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.vft-zoom-in-bottom-enter-active,.vft-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:var(--vft-transition-md-fade);transform-origin:center bottom}.vft-zoom-in-bottom-enter-from,.vft-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.vft-zoom-in-left-enter-active,.vft-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:var(--vft-transition-md-fade);transform-origin:top left}.vft-zoom-in-left-enter-from,.vft-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--vft-transition-duration) height ease-in-out,var(--vft-transition-duration) padding-top ease-in-out,var(--vft-transition-duration) padding-bottom ease-in-out}.vft-collapse-transition-leave-active,.vft-collapse-transition-enter-active{transition:var(--vft-transition-duration) max-height ease-in-out,var(--vft-transition-duration) padding-top ease-in-out,var(--vft-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--vft-transition-duration) width ease-in-out,var(--vft-transition-duration) padding-left ease-in-out,var(--vft-transition-duration) padding-right ease-in-out}.vft-list-enter-active,.vft-list-leave-active{transition:all 1s}.vft-list-enter-from,.vft-list-leave-to{opacity:0;transform:translateY(-30px)}.vft-list-leave-active{position:absolute!important}.vft-opacity-transition{transition:opacity var(--vft-transition-duration) cubic-bezier(.55,0,.1,1)}:root{--vft-divider-margin-y: 24px;--vft-divider-margin-x: 8px;--vft-divider-border-color: #dcdfe6;--vft-divider-border-style: solid}.vft-divider{position:relative}.vft-divider--horizontal{display:block;height:1px;width:100%;margin:var(--vft-divider-margin-y) 0;border-top:1px var(--vft-divider-border-color) var(--vft-divider-border-style)}.vft-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 var(--vft-divider-margin-x);vertical-align:middle;position:relative;border-left:1px var(--vft-divider-border-color) var(--vft-divider-border-style)}.vft-divider__text{position:absolute;background-color:var(--vft-bg-color);padding:0 20px;font-weight:500;color:var(--vft-text-primary-color);font-size:14px}.vft-divider__text.is-left{left:20px;transform:translateY(-50%)}.vft-divider__text.is-center{left:50%;transform:translate(-50%) translateY(-50%)}.vft-divider__text.is-right{right:20px;transform:translateY(-50%)}:root{--vft-empty-img-size: 160px;--vft-empty-img-size-small: 80px;--vft-empty-img-size-large: 240px;--vft-empty-text-color: white;--vft-empty-desc-top: 10px;--vft-empty-desc-color: var(--vft-text-placeholder-color);--vft-empty-desc-size: 14px}.vft-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;padding:10px 0}.vft-empty__image{width:var(--vft-empty-img-size);height:var(--vft-empty-img-size)}.vft-empty__image img{width:100%;height:100%;object-fit:contain}.vft-empty--large .vft-empty__image{width:var(--vft-empty-img-size-large);height:var(--vft-empty-img-size-large)}.vft-empty--small .vft-empty__image{width:var(--vft-empty-img-size-small);height:var(--vft-empty-img-size-small)}.vft-empty__desc{margin-top:var(--vft-empty-desc-top);color:var(--vft-empty-desc-color);font-size:var(--vft-empty-desc-size)}.vft-empty__bottom{margin-top:5px}:root{--vft-icon-text-color: black}.vft-icon{position:relative;display:inline-block;font: 14px/1 iconfont;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;transition:all .2s ease;color:var(--vft-icon-text-color)}.vft-icon:before{display:inline-block}.vft-icon__image{display:block;width:1em;height:1em;object-fit:contain}:root{--vft-result-padding: 40px 30px;--vft-result-icon-font-size: 64px;--vft-result-title-font-size: 20px;--vft-result-title-margin-top: 20px;--vft-result-sub-title-margin-top: 10px;--vft-result-extra-margin-top: 30px}.vft-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--vft-result-padding)}.vft-result__icon svg{width:var(--vft-result-icon-font-size);height:var(--vft-result-icon-font-size)}.vft-result__icon [class~=vft-icon]{font-size:var(--vft-result-icon-font-size)}.vft-result__title{margin-top:var(--vft-result-title-margin-top)}.vft-result__title p{margin:0;font-size:var(--vft-result-title-font-size);color:var(--vft-text-color-primary);line-height:1.3}.vft-result__sub-title{margin-top:var(--vft-result-sub-title-margin-top)}.vft-result__sub-title p{margin:0;font-size:var(--vft-font-size-base);color:var(--vft-text-color-regular);line-height:1.3}.vft-result__extra{margin-top:var(--vft-result-extra-margin-top)}.vft-result .icon-primary{--vft-result-color: var(--vft-color-primary);color:var(--vft-result-color)}.vft-result .icon-success{--vft-result-color: var(--vft-color-success);color:var(--vft-result-color)}.vft-result .icon-warning{--vft-result-color: var(--vft-color-warning);color:var(--vft-result-color)}.vft-result .icon-danger{--vft-result-color: var(--vft-color-danger);color:var(--vft-result-color)}.vft-result .icon-error{--vft-result-color: var(--vft-color-error);color:var(--vft-result-color)}.vft-result .icon-info{--vft-result-color: var(--vft-color-info);color:var(--vft-result-color)}:root{--vft-tabs-padding: 0;--vft-tabs-font-size: 14px;--vft-tabs-font-weight: 400;--vft-tabs-font-weight-active: 500;--vft-tabs-header-height: 40px;--vft-tabs-border-bottom: 1px solid #eee;--vft-tabs-nav-color: #eee;--vft-tabs-header-margin: 0 0 15px;--vft-tabs-header-padding: 0;--vft-tabs-header-border-bottom: none;--vft-tabs-item-padding: 0 20px;--vft-tabs-item-max-width: 100%;--vft-tabs-item-bg-color: white;--vft-tabs-item-bg-color-active: #15b4f1;--vft-tabs-item-bg-color-hover: #15b4f1;--vft-tabs-item-color: black;--vft-tabs-item-color-active: white;--vft-tabs-item-color-hover: white;--vft-tabs-item-border: 1px solid #eee;--vft-tabs-item-border-active: 0 solid transparent;--vft-tabs-item-border-hover: 0 solid transparent;--vft-tabs-item-distance: 10px;--vft-tabs-item-border-radius: 2px 2px 0 0;--vft-tabs-close-icon-left: 5px;--vft-tabs-close-icon-hover-color: white;--vft-tabs-close-icon-hover-bg-color: #a8abb2;--vft-tabs-add-icon-right: 30px;--vft-tabs-add-icon-padding-left: 20px;--vft-tabs-scroll-padding: 0 60px 0 20px;--vft-tabs-active-distance: 14px;--vft-tabs-show-border-bottom: block}.vft-tabs{padding:var(--vft-tabs-padding)}.vft-tabs__header{padding:var(--vft-tabs-header-padding);border-bottom:var(--vft-tabs-header-border-bottom);position:relative;margin:var(--vft-tabs-header-margin)}.vft-tabs__item{padding:var(--vft-tabs-item-padding);height:var(--vft-tabs-header-height);box-sizing:border-box;display:inline-flex;justify-content:flex-start;align-items:center;list-style:none;line-height:1;font-size:var(--vft-tabs-font-size);font-weight:var(--vft-tabs-font-weight);color:var(--vft-tabs-item-color);background-color:var(--vft-tabs-item-bg-color);border:var(--vft-tabs-item-border);margin-right:var(--vft-tabs-item-distance)}.vft-tabs__item:focus,.vft-tabs__item:focus:active{outline:none}.vft-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--vft-primary-color) inset;border-radius:3px}.vft-tabs__item .is-icon-close{transition:all var(--vft-transition-duration) var(--vft-transition-function-ease-in-out-bezier);margin-left:var(--vft-tabs-close-icon-left);display:flex;justify-content:center;align-items:center;height:var(--vft-tabs-active-distance);width:var(--vft-tabs-active-distance);border-radius:50%}.vft-tabs__item .is-icon-close:hover{background-color:var(--vft-tabs-close-icon-hover-bg-color)}.vft-tabs__item .is-icon-close:hover i{color:var(--vft-tabs-close-icon-hover-color)!important}.vft-tabs__item.is-active{color:var(--vft-tabs-item-color-active);background-color:var(--vft-tabs-item-bg-color-active);font-weight:var(--vft-tabs-font-weight-active);border:var(--vft-tabs-item-border-active)}.vft-tabs__item:hover{color:var(--vft-tabs-item-color-hover);background-color:var(--vft-tabs-item-bg-color-hover);border:var(--vft-tabs-item-border-hover);cursor:pointer}.vft-tabs__item.is-disabled{color:var(--vft-disabled-text-color);cursor:not-allowed}.vft-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--vft-primary-color);z-index:1;transition:width var(--vft-transition-duration) var(--vft-transition-function-ease-in-out-bezier),transform var(--vft-transition-duration) var(--vft-transition-function-ease-in-out-bezier);list-style:none}.vft-tabs__new-tab{cursor:pointer;transition:all .15s;position:absolute;right:auto;display:inline-flex;align-items:center;height:100%;padding-left:var(--vft-tabs-add-icon-padding-left)}.vft-tabs__new-tab:hover{color:var(--vft-primary-color)}.vft-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.vft-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--vft-tabs-nav-color);z-index:var(--vft-index-normal);display:var(--vft-tabs-show-border-bottom)}.vft-tabs__nav-wrap.is-scrollable{padding:var(--vft-tabs-scroll-padding);box-sizing:border-box}.vft-tabs__nav-wrap.is-scrollable .vft-tabs__new-tab{right:var(--vft-tabs-add-icon-right)}.vft-tabs__nav-scroll{overflow:hidden}.vft-tabs__nav-next,.vft-tabs__nav-prev{position:absolute;cursor:pointer;display:inline-flex;align-items:center;height:100%}.vft-tabs__nav-next{right:0}.vft-tabs__nav-prev{left:0}.vft-tabs__nav{display:flex;white-space:nowrap;position:relative;transition:transform var(--vft-transition-duration);float:left;z-index:calc(var(--vft-index-normal) + 1)}.vft-tabs__nav.is-stretch{min-width:100%;display:flex}.vft-tabs__nav.is-stretch>*{flex:1;text-align:center}.vft-tabs__content{overflow:hidden;position:relative}.vft-tabs--card>.vft-tabs__header{border-bottom:var(--vft-tabs-border-bottom);height:var(--vft-tabs-header-height)}.vft-tabs--card>.vft-tabs__header .vft-tabs__nav-wrap:after{content:none}.vft-tabs--card>.vft-tabs__header .vft-tabs__nav{border-radius:4px 4px 0 0;box-sizing:border-box}.vft-tabs--card>.vft-tabs__header .vft-tabs__active-bar{display:none}.vft-tabs--card>.vft-tabs__header .vft-tabs__item .is-icon-close{width:0}.vft-tabs--card>.vft-tabs__header .vft-tabs__item{border-radius:var(--vft-tabs-item-border-radius);transition:var(--vft-transition-function-ease-in-out-bezier),padding var(--vft-transition-duration) var(--vft-transition-function-ease-in-out-bezier);max-width:var(--vft-tabs-item-max-width)}.vft-tabs--card>.vft-tabs__header .vft-tabs__item.is-closable:hover .is-icon-close{width:var(--vft-tabs-active-distance)}.vft-tabs--card>.vft-tabs__header .vft-tabs__item.is-active.is-closable .is-icon-close{width:var(--vft-tabs-active-distance)}.vft-tabs--top .vft-tabs__item.is-top:last-child,.vft-tabs--top .vft-tabs__item.is-bottom:last-child,.vft-tabs--bottom .vft-tabs__item.is-top:last-child,.vft-tabs--bottom .vft-tabs__item.is-bottom:last-child{margin-right:0}.vft-tabs--bottom .vft-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.vft-tabs--bottom.vft-tabs--border-card .vft-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--vft-border-color)}.vft-tabs--bottom.vft-tabs--border-card .vft-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.vft-tabs--bottom.vft-tabs--border-card .vft-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.vft-tabs--bottom.vft-tabs--border-card .vft-tabs__item.is-bottom{margin:0 -1px -1px}.vft-tabs--left,.vft-tabs--right{overflow:hidden}.vft-tabs--left .vft-tabs__header.is-left,.vft-tabs--left .vft-tabs__header.is-right,.vft-tabs--left .vft-tabs__nav-wrap.is-left,.vft-tabs--left .vft-tabs__nav-wrap.is-right,.vft-tabs--left .vft-tabs__nav-scroll,.vft-tabs--right .vft-tabs__header.is-left,.vft-tabs--right .vft-tabs__header.is-right,.vft-tabs--right .vft-tabs__nav-wrap.is-left,.vft-tabs--right .vft-tabs__nav-wrap.is-right,.vft-tabs--right .vft-tabs__nav-scroll{height:100%}.vft-tabs--left .vft-tabs__active-bar.is-left,.vft-tabs--left .vft-tabs__active-bar.is-right,.vft-tabs--right .vft-tabs__active-bar.is-left,.vft-tabs--right .vft-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.vft-tabs--left .vft-tabs__nav-wrap.is-left,.vft-tabs--left .vft-tabs__nav-wrap.is-right,.vft-tabs--right .vft-tabs__nav-wrap.is-left,.vft-tabs--right .vft-tabs__nav-wrap.is-right{margin-bottom:0}.vft-tabs--left .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-prev,.vft-tabs--left .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-next,.vft-tabs--left .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-prev,.vft-tabs--left .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-next,.vft-tabs--right .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-prev,.vft-tabs--right .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-next,.vft-tabs--right .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-prev,.vft-tabs--right .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-next{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.vft-tabs--left .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-prev i,.vft-tabs--left .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-next i,.vft-tabs--left .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-prev i,.vft-tabs--left .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-next i,.vft-tabs--right .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-prev i,.vft-tabs--right .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-next i,.vft-tabs--right .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-prev i,.vft-tabs--right .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-next i{transform:rotate(90deg)}.vft-tabs--left .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-prev,.vft-tabs--left .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-prev,.vft-tabs--right .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-prev,.vft-tabs--right .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-prev{left:auto;top:0}.vft-tabs--left .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-next,.vft-tabs--left .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-next,.vft-tabs--right .vft-tabs__nav-wrap.is-left>.vft-tabs__nav-next,.vft-tabs--right .vft-tabs__nav-wrap.is-right>.vft-tabs__nav-next{right:auto;bottom:0}.vft-tabs--left .vft-tabs__nav-wrap.is-left.is-scrollable,.vft-tabs--left .vft-tabs__nav-wrap.is-right.is-scrollable,.vft-tabs--right .vft-tabs__nav-wrap.is-left.is-scrollable,.vft-tabs--right .vft-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.vft-tabs--left .vft-tabs__nav-wrap.is-left:after,.vft-tabs--left .vft-tabs__nav-wrap.is-right:after,.vft-tabs--right .vft-tabs__nav-wrap.is-left:after,.vft-tabs--right .vft-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.vft-tabs--left .vft-tabs__nav.is-left,.vft-tabs--left .vft-tabs__nav.is-right,.vft-tabs--right .vft-tabs__nav.is-left,.vft-tabs--right .vft-tabs__nav.is-right{float:none}.vft-tabs--left .vft-tabs__item.is-left,.vft-tabs--left .vft-tabs__item.is-right,.vft-tabs--right .vft-tabs__item.is-left,.vft-tabs--right .vft-tabs__item.is-right{display:block}.vft-tabs--left .vft-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.vft-tabs--left .vft-tabs__nav-wrap.is-left{margin-right:-1px}.vft-tabs--left .vft-tabs__nav-wrap.is-left:after{left:auto;right:0}.vft-tabs--left .vft-tabs__active-bar.is-left{right:0;left:auto}.vft-tabs--left .vft-tabs__item.is-left{text-align:right}.vft-tabs--left.vft-tabs--card .vft-tabs__active-bar.is-left{display:none}.vft-tabs--left.vft-tabs--card .vft-tabs__item.is-left{border-left:none;border-right:1px solid var(--vft-border-color-light);border-bottom:none;border-top:1px solid var(--vft-border-color-light);text-align:left}.vft-tabs--left.vft-tabs--card .vft-tabs__item.is-left:first-child{border-right:1px solid var(--vft-border-color-light);border-top:none}.vft-tabs--left.vft-tabs--card .vft-tabs__item.is-left.is-active{border:1px solid var(--vft-border-color-light);border-right-color:#fff;border-left:none;border-bottom:none}.vft-tabs--left.vft-tabs--card .vft-tabs__item.is-left.is-active:first-child{border-top:none}.vft-tabs--left.vft-tabs--card .vft-tabs__item.is-left.is-active:last-child{border-bottom:none}.vft-tabs--left.vft-tabs--card .vft-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid var(--vft-border-color-light);border-right:none}.vft-tabs--left.vft-tabs--card .vft-tabs__new-tab{float:none}.vft-tabs--left.vft-tabs--border-card .vft-tabs__header.is-left{border-right:1px solid var(--vft-border-color)}.vft-tabs--left.vft-tabs--border-card .vft-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.vft-tabs--left.vft-tabs--border-card .vft-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.vft-tabs--right .vft-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.vft-tabs--right .vft-tabs__nav-wrap.is-right{margin-left:-1px}.vft-tabs--right .vft-tabs__nav-wrap.is-right:after{left:0;right:auto}.vft-tabs--right .vft-tabs__active-bar.is-right{left:0}.vft-tabs--right.vft-tabs--card .vft-tabs__active-bar.is-right{display:none}.vft-tabs--right.vft-tabs--card .vft-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--vft-border-color-light)}.vft-tabs--right.vft-tabs--card .vft-tabs__item.is-right:first-child{border-left:1px solid var(--vft-border-color-light);border-top:none}.vft-tabs--right.vft-tabs--card .vft-tabs__item.is-right.is-active{border:1px solid var(--vft-border-color-light);border-left-color:#fff;border-right:none;border-bottom:none}.vft-tabs--right.vft-tabs--card .vft-tabs__item.is-right.is-active:first-child{border-top:none}.vft-tabs--right.vft-tabs--card .vft-tabs__item.is-right.is-active:last-child{border-bottom:none}.vft-tabs--right.vft-tabs--card .vft-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid var(--vft-border-color-light);border-left:none}.vft-tabs--right.vft-tabs--border-card .vft-tabs__header.is-right{border-left:1px solid var(--vft-border-color)}.vft-tabs--right.vft-tabs--border-card .vft-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.vft-tabs--right.vft-tabs--border-card .vft-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInRight-transition,.slideInLeft-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--vft-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;animation:slideInRight-leave var(--vft-transition-duration)}.slideInLeft-enter{animation:slideInLeft-enter var(--vft-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;animation:slideInLeft-leave var(--vft-transition-duration)}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(100%);opacity:0}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translate(0);opacity:1}to{transform-origin:0 0;transform:translate(-100%);opacity:0}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.scss.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/es/utils/index.mjs
CHANGED
|
@@ -1,13 +1,26 @@
|
|
|
1
|
-
import { withInstall as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { withInstall as r, withInstallDirective as i, withInstallFunction as l, withNoopInstall as o } from "./vue/install.mjs";
|
|
2
|
+
import { PatchFlags as a, ensureOnlyChild as s, flattedChildren as d, getFirstValidNode as m, getNormalizedProps as h, isComment as p, isFragment as f, isTemplate as g, isText as w, isValidElementNode as x, renderBlock as I, renderIf as c } from "./vue/vnode.mjs";
|
|
3
|
+
import { getSizeType as N } from "./helper.mjs";
|
|
4
|
+
import { debugWarn as C, throwError as T } from "./error.mjs";
|
|
4
5
|
export {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
a as PatchFlags,
|
|
7
|
+
C as debugWarn,
|
|
8
|
+
s as ensureOnlyChild,
|
|
9
|
+
d as flattedChildren,
|
|
10
|
+
m as getFirstValidNode,
|
|
11
|
+
h as getNormalizedProps,
|
|
12
|
+
N as getSizeType,
|
|
13
|
+
p as isComment,
|
|
14
|
+
f as isFragment,
|
|
15
|
+
g as isTemplate,
|
|
16
|
+
w as isText,
|
|
17
|
+
x as isValidElementNode,
|
|
18
|
+
I as renderBlock,
|
|
19
|
+
c as renderIf,
|
|
20
|
+
T as throwError,
|
|
21
|
+
r as withInstall,
|
|
22
|
+
i as withInstallDirective,
|
|
23
|
+
l as withInstallFunction,
|
|
24
|
+
o as withNoopInstall
|
|
12
25
|
};
|
|
13
26
|
//# sourceMappingURL=index.mjs.map
|
package/es/utils/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
package/es/utils/vue/index.d.ts
CHANGED
package/es/utils/vue/index.mjs
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
|
-
import { withInstall as
|
|
1
|
+
import { withInstall as l, withInstallDirective as i, withInstallFunction as r, withNoopInstall as n } from "./install.mjs";
|
|
2
|
+
import { PatchFlags as s, ensureOnlyChild as a, flattedChildren as d, getFirstValidNode as m, getNormalizedProps as h, isComment as p, isFragment as I, isTemplate as c, isText as f, isValidElementNode as g, renderBlock as w, renderIf as F } from "./vnode.mjs";
|
|
2
3
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
s as PatchFlags,
|
|
5
|
+
a as ensureOnlyChild,
|
|
6
|
+
d as flattedChildren,
|
|
7
|
+
m as getFirstValidNode,
|
|
8
|
+
h as getNormalizedProps,
|
|
9
|
+
p as isComment,
|
|
10
|
+
I as isFragment,
|
|
11
|
+
c as isTemplate,
|
|
12
|
+
f as isText,
|
|
13
|
+
g as isValidElementNode,
|
|
14
|
+
w as renderBlock,
|
|
15
|
+
F as renderIf,
|
|
16
|
+
l as withInstall,
|
|
17
|
+
i as withInstallDirective,
|
|
18
|
+
r as withInstallFunction,
|
|
19
|
+
n as withNoopInstall
|
|
7
20
|
};
|
|
8
21
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|