vft 0.0.241 → 0.0.243
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/es/components/input/input.vue2.js +4 -4
- package/es/components/tabs/index.d.ts +1 -1
- package/es/components/tabs/tabs.vue.d.ts +1 -1
- package/es/components/tabs/tabs.vue2.js +61 -61
- package/es/hooks/use-ordered-children/index.d.ts +3 -1
- package/es/hooks/use-ordered-children/index.js +12 -12
- package/es/package.json.d.ts +1 -1
- package/es/package.json.js +1 -1
- package/lib/components/input/input.vue2.cjs +1 -1
- package/lib/components/tabs/index.d.ts +1 -1
- package/lib/components/tabs/tabs.vue.d.ts +1 -1
- package/lib/components/tabs/tabs.vue2.cjs +1 -1
- package/lib/hooks/use-ordered-children/index.cjs +1 -1
- package/lib/hooks/use-ordered-children/index.d.ts +3 -1
- package/lib/package.json.cjs +1 -1
- package/lib/package.json.d.ts +1 -1
- package/package.json +3 -3
- package/web-types.json +1 -1
|
@@ -13,8 +13,8 @@ import "../../hooks/use-model-toggle/index.js";
|
|
|
13
13
|
import "@popperjs/core";
|
|
14
14
|
import "../../hooks/use-z-index/index.js";
|
|
15
15
|
import { calcTextareaHeight as ye } from "./utils.js";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
16
|
+
import { useFormItem as et, useFormItemInputId as tt } from "../form/hooks/use-form-item.js";
|
|
17
|
+
import { useFormSize as at, useFormDisabled as ot } from "../form/hooks/use-form-common-props.js";
|
|
18
18
|
const nt = ["role"], lt = ["id", "type", "disabled", "formatter", "parser", "readonly", "autocomplete", "tabindex", "aria-label", "placeholder", "form"], st = ["id", "tabindex", "disabled", "readonly", "autocomplete", "aria-label", "placeholder", "form"], It = /* @__PURE__ */ Oe({
|
|
19
19
|
__name: "input",
|
|
20
20
|
props: {
|
|
@@ -85,9 +85,9 @@ const nt = ["role"], lt = ["id", "type", "disabled", "formatter", "parser", "rea
|
|
|
85
85
|
o.is("focus", h.value)
|
|
86
86
|
]), d = Je({
|
|
87
87
|
excludeKeys: l(() => Object.keys(X.value))
|
|
88
|
-
}), { form: Ce, formItem: F } =
|
|
88
|
+
}), { form: Ce, formItem: F } = et(), { inputId: Y } = tt(xe.props, {
|
|
89
89
|
formItemContext: F
|
|
90
|
-
}), ke =
|
|
90
|
+
}), ke = at(), p = ot(), o = pe("input"), Z = pe("textarea"), K = H(), y = H(), h = S(!1), D = S(!1), g = S(!1), M = S(!1), _ = S(), O = H(e.inputStyle), C = l(() => K.value || y.value), T = l(() => J(e.prefixIcon, "icon", { size: 16 })), ee = l(() => J(e.suffixIcon, "icon", { size: 16 })), Ie = l(() => J(e.clearIcon, "icon", {
|
|
91
91
|
icon: "icon-circle-close",
|
|
92
92
|
size: 16
|
|
93
93
|
})), te = l(() => Ce?.statusIcon ?? !1), k = l(() => F?.validateState || ""), ae = l(
|
|
@@ -46,7 +46,7 @@ export declare const VftTabs: import("vft/es/utils").SFCWithInstall<import("vue"
|
|
|
46
46
|
type: import("vue").PropType<"click" | "hover">;
|
|
47
47
|
};
|
|
48
48
|
}>, {
|
|
49
|
-
currentName: import("vue").Ref<
|
|
49
|
+
currentName: import("vue").Ref<import("./types").TabPaneName, import("./types").TabPaneName>;
|
|
50
50
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
51
51
|
"update:modelValue": (name: string | number) => void;
|
|
52
52
|
tabClick: (pane: {
|
|
@@ -27,7 +27,7 @@ export interface TabsProps {
|
|
|
27
27
|
trigger?: 'click' | 'hover';
|
|
28
28
|
}
|
|
29
29
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<TabsProps>>, {
|
|
30
|
-
currentName: import("vue").Ref<
|
|
30
|
+
currentName: import("vue").Ref<TabPaneName, TabPaneName>;
|
|
31
31
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
32
32
|
"update:modelValue": (name: string | number) => void;
|
|
33
33
|
tabClick: (pane: {
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { defineComponent as I, getCurrentInstance as
|
|
1
|
+
import { defineComponent as I, getCurrentInstance as z, useSlots as F, computed as d, ref as h, watch as g, nextTick as M, provide as U, createVNode as l } from "vue";
|
|
2
2
|
import "@vueuse/core";
|
|
3
3
|
import { isUndefined as v } from "@vft/utils";
|
|
4
4
|
import "../../utils/ns-cover.js";
|
|
5
5
|
import "lodash-es";
|
|
6
|
-
import { useNamespace as
|
|
6
|
+
import { useNamespace as W } from "../../hooks/use-namespace/index.js";
|
|
7
7
|
import "../../hooks/use-model-toggle/index.js";
|
|
8
|
-
import { useOrderedChildren as
|
|
8
|
+
import { useOrderedChildren as $ } from "../../hooks/use-ordered-children/index.js";
|
|
9
9
|
import "@popperjs/core";
|
|
10
10
|
import "../../hooks/use-z-index/index.js";
|
|
11
|
-
import { UPDATE_MODEL_EVENT as
|
|
12
|
-
import
|
|
13
|
-
import { TabsRootContextKey as
|
|
14
|
-
const
|
|
11
|
+
import { UPDATE_MODEL_EVENT as D } from "@vft/constants";
|
|
12
|
+
import O from "./tab-nav.vue2.js";
|
|
13
|
+
import { TabsRootContextKey as K } from "./types.js";
|
|
14
|
+
const j = I({
|
|
15
15
|
name: "vft-tabs"
|
|
16
|
-
}),
|
|
17
|
-
...
|
|
16
|
+
}), ne = /* @__PURE__ */ I({
|
|
17
|
+
...j,
|
|
18
18
|
props: {
|
|
19
19
|
closable: {
|
|
20
20
|
type: Boolean
|
|
@@ -57,106 +57,106 @@ const q = I({
|
|
|
57
57
|
expose: w,
|
|
58
58
|
emit: x
|
|
59
59
|
}) {
|
|
60
|
-
const n = x, r =
|
|
61
|
-
children:
|
|
62
|
-
addChild:
|
|
63
|
-
removeChild:
|
|
64
|
-
ChildrenSorter:
|
|
65
|
-
} =
|
|
60
|
+
const n = x, r = W("tabs"), u = z(), f = F(), T = d(() => ["left", "right"].includes(t.tabPosition)), {
|
|
61
|
+
children: m,
|
|
62
|
+
addChild: p,
|
|
63
|
+
removeChild: P,
|
|
64
|
+
ChildrenSorter: R
|
|
65
|
+
} = $(u, "vft-tab-pane"), c = h(), i = h(t.modelValue ?? "0"), b = async (e, a = !1) => {
|
|
66
66
|
if (!(i.value === e || v(e)))
|
|
67
67
|
try {
|
|
68
68
|
let o;
|
|
69
69
|
if (t.beforeLeave) {
|
|
70
|
-
const
|
|
71
|
-
o =
|
|
70
|
+
const s = t.beforeLeave(e, i.value);
|
|
71
|
+
o = s instanceof Promise ? await s : s;
|
|
72
72
|
} else
|
|
73
73
|
o = !0;
|
|
74
74
|
if (o !== !1) {
|
|
75
|
-
const
|
|
76
|
-
i.value = e, a && (n(
|
|
75
|
+
const s = m.value.find((S) => S.paneName === i.value)?.isFocusInsidePane();
|
|
76
|
+
i.value = e, a && (n(D, e), n("tabChange", e)), c.value?.removeFocus?.(), s && c.value?.focusActiveTab();
|
|
77
77
|
}
|
|
78
78
|
} catch {
|
|
79
79
|
}
|
|
80
|
-
},
|
|
81
|
-
e.props.disabled || (n("tabClick", e, o),
|
|
82
|
-
},
|
|
80
|
+
}, y = (e, a, o) => {
|
|
81
|
+
e.props.disabled || (n("tabClick", e, o), b(a, !0));
|
|
82
|
+
}, L = (e, a) => {
|
|
83
83
|
e.props.disabled || v(e.props.name) || (a.stopPropagation(), n("edit", e.props.name, "remove"), n("tabRemove", e.props.name));
|
|
84
|
-
},
|
|
84
|
+
}, N = () => {
|
|
85
85
|
n("edit", void 0, "add"), n("tabAdd");
|
|
86
|
-
},
|
|
86
|
+
}, C = (e) => {
|
|
87
87
|
const a = e.el.firstChild, o = ["bottom", "right"].includes(t.tabPosition) ? e.children[0].el : e.children[1].el;
|
|
88
88
|
a !== o && a.before(o);
|
|
89
89
|
};
|
|
90
|
-
g(() => t.modelValue, (e) =>
|
|
91
|
-
await
|
|
90
|
+
g(() => t.modelValue, (e) => b(e)), g(i, async () => {
|
|
91
|
+
await M(), c.value?.scrollToActiveTab();
|
|
92
92
|
});
|
|
93
|
-
const
|
|
93
|
+
const V = (e, a, o) => {
|
|
94
94
|
n("tabContextMenu", e, a, o);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
W(j, {
|
|
99
|
-
props: T.props,
|
|
95
|
+
};
|
|
96
|
+
U(K, {
|
|
97
|
+
props: u.props,
|
|
100
98
|
currentName: i,
|
|
101
|
-
registerPane:
|
|
102
|
-
unregisterPane:
|
|
103
|
-
nav$:
|
|
99
|
+
registerPane: p,
|
|
100
|
+
unregisterPane: P,
|
|
101
|
+
nav$: c
|
|
104
102
|
}), w({
|
|
105
103
|
currentName: i
|
|
106
104
|
});
|
|
107
|
-
const
|
|
105
|
+
const B = d(() => ({
|
|
108
106
|
icon: "icon-plus",
|
|
109
107
|
size: 12,
|
|
110
108
|
...t.addIconCfg
|
|
111
|
-
})),
|
|
109
|
+
})), A = d(() => ({
|
|
112
110
|
icon: "icon-close",
|
|
113
111
|
size: 14,
|
|
114
112
|
...t.closeIconCfg
|
|
115
|
-
})),
|
|
113
|
+
})), E = d(() => ({
|
|
116
114
|
icon: "icon-arrow-left",
|
|
117
115
|
size: 18,
|
|
118
116
|
...t.arrowLeftIconCfg
|
|
119
|
-
})),
|
|
117
|
+
})), k = d(() => ({
|
|
120
118
|
icon: "icon-arrow-right",
|
|
121
119
|
size: 18,
|
|
122
120
|
...t.arrowRightIconCfg
|
|
123
121
|
}));
|
|
124
122
|
return () => {
|
|
125
|
-
const e = () =>
|
|
126
|
-
ref:
|
|
123
|
+
const e = () => l(O, {
|
|
124
|
+
ref: c,
|
|
127
125
|
currentName: i.value,
|
|
128
126
|
editable: t.editable,
|
|
129
|
-
panes:
|
|
127
|
+
panes: m.value,
|
|
130
128
|
stretch: t.stretch,
|
|
131
129
|
showBar: t.showBar,
|
|
132
|
-
closeIconCfg:
|
|
133
|
-
addIconCfg:
|
|
134
|
-
arrowRightIconCfg:
|
|
135
|
-
arrowLeftIconCfg:
|
|
130
|
+
closeIconCfg: A.value,
|
|
131
|
+
addIconCfg: B.value,
|
|
132
|
+
arrowRightIconCfg: k.value,
|
|
133
|
+
arrowLeftIconCfg: E.value,
|
|
136
134
|
fixTabCount: t.fixTabCount,
|
|
137
135
|
fixExtraScrollWidth: t.fixExtraScrollWidth,
|
|
138
136
|
addable: t.addable,
|
|
139
137
|
trigger: t.trigger,
|
|
140
|
-
onTabClick:
|
|
141
|
-
onTabRemove:
|
|
142
|
-
onTabAdd:
|
|
143
|
-
onTabContextmenu:
|
|
144
|
-
}, null)
|
|
145
|
-
|
|
146
|
-
|
|
138
|
+
onTabClick: y,
|
|
139
|
+
onTabRemove: L,
|
|
140
|
+
onTabAdd: N,
|
|
141
|
+
onTabContextmenu: V
|
|
142
|
+
}, null);
|
|
143
|
+
return l("div", {
|
|
144
|
+
class: [r.b(), r.m(t.tabPosition)],
|
|
145
|
+
onVnodeMounted: C,
|
|
146
|
+
onVnodeUpdated: C
|
|
147
|
+
}, [l("div", {
|
|
148
|
+
className: r.e("content")
|
|
149
|
+
}, [f.default?.()]), l("div", {
|
|
150
|
+
class: [r.e("header"), T.value && r.e("header-vertical"), r.is(t.tabPosition)]
|
|
151
|
+
}, [l(R, null, {
|
|
147
152
|
default: e,
|
|
148
153
|
$stable: !0
|
|
149
|
-
}), f.navRight ?
|
|
154
|
+
}), f.navRight ? l("div", {
|
|
150
155
|
class: "nav-right"
|
|
151
|
-
}, [f.navRight?.()]) : null]);
|
|
152
|
-
return c("div", {
|
|
153
|
-
class: [r.b(), r.m(t.tabPosition)],
|
|
154
|
-
onVnodeMounted: b,
|
|
155
|
-
onVnodeUpdated: b
|
|
156
|
-
}, [A.value, a]);
|
|
156
|
+
}, [f.navRight?.()]) : null])]);
|
|
157
157
|
};
|
|
158
158
|
}
|
|
159
159
|
});
|
|
160
160
|
export {
|
|
161
|
-
|
|
161
|
+
ne as default
|
|
162
162
|
};
|
|
@@ -7,6 +7,8 @@ export declare const useOrderedChildren: <T extends ChildEssential>(vm: Componen
|
|
|
7
7
|
children: import("vue").ShallowRef<T[], T[]>;
|
|
8
8
|
addChild: (child: T) => void;
|
|
9
9
|
removeChild: (child: T) => void;
|
|
10
|
-
ChildrenSorter: import("vue").DefineComponent<{}, () =>
|
|
10
|
+
ChildrenSorter: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
11
13
|
};
|
|
12
14
|
export {};
|
|
@@ -2,37 +2,37 @@ import "@vueuse/core";
|
|
|
2
2
|
import "@vft/utils";
|
|
3
3
|
import "../../utils/ns-cover.js";
|
|
4
4
|
import "lodash-es";
|
|
5
|
-
import { flattedChildren as
|
|
6
|
-
import { shallowRef as
|
|
7
|
-
const S = (l, u, r) =>
|
|
5
|
+
import { flattedChildren as v } from "../../utils/vue/vnode.js";
|
|
6
|
+
import { shallowRef as m, defineComponent as x, h as M, triggerRef as p, onMounted as O, isVNode as R } from "vue";
|
|
7
|
+
const S = (l, u, r) => v(l.subTree).filter(
|
|
8
8
|
(e) => R(e) && e.type?.name === u && !!e.component
|
|
9
9
|
).map((e) => e.component.uid).map((e) => r[e]).filter((e) => !!e), I = (l, u) => {
|
|
10
|
-
const r =
|
|
10
|
+
const r = m({}), c = m([]), d = /* @__PURE__ */ new WeakMap(), e = (t) => {
|
|
11
11
|
r.value[t.uid] = t, p(r), O(() => {
|
|
12
12
|
const o = t.getVnode().el, n = o.parentNode;
|
|
13
13
|
if (!d.has(n)) {
|
|
14
14
|
d.set(n, []);
|
|
15
15
|
const s = n.insertBefore.bind(n);
|
|
16
|
-
n.insertBefore = (i, a) => (d.get(n).some((
|
|
16
|
+
n.insertBefore = (i, a) => (d.get(n).some((h) => i === h || a === h) && p(r), s(i, a));
|
|
17
17
|
}
|
|
18
18
|
d.get(n).push(o);
|
|
19
19
|
});
|
|
20
|
-
},
|
|
20
|
+
}, f = (t) => {
|
|
21
21
|
delete r.value[t.uid], p(r);
|
|
22
22
|
const o = t.getVnode().el, n = o.parentNode, s = d.get(n), i = s.indexOf(o);
|
|
23
23
|
s.splice(i, 1);
|
|
24
|
-
},
|
|
24
|
+
}, C = () => {
|
|
25
25
|
c.value = S(
|
|
26
26
|
l,
|
|
27
27
|
u,
|
|
28
28
|
r.value
|
|
29
29
|
);
|
|
30
|
-
},
|
|
30
|
+
}, g = (t) => t.render(), N = x({
|
|
31
31
|
setup(t, { slots: o }) {
|
|
32
|
-
return () => (
|
|
32
|
+
return () => (C(), o.default ? (
|
|
33
33
|
// Create a new `ReactiveEffect` to ensure `ChildrenSorter` doesn't track any extra dependencies
|
|
34
34
|
// @ts-ignore TODO: Remove this after Vue is upgraded
|
|
35
|
-
|
|
35
|
+
M(g, {
|
|
36
36
|
render: o.default
|
|
37
37
|
})
|
|
38
38
|
) : null);
|
|
@@ -41,8 +41,8 @@ const S = (l, u, r) => x(l.subTree).filter(
|
|
|
41
41
|
return {
|
|
42
42
|
children: c,
|
|
43
43
|
addChild: e,
|
|
44
|
-
removeChild:
|
|
45
|
-
ChildrenSorter:
|
|
44
|
+
removeChild: f,
|
|
45
|
+
ChildrenSorter: N
|
|
46
46
|
};
|
|
47
47
|
};
|
|
48
48
|
export {
|
package/es/package.json.d.ts
CHANGED
package/es/package.json.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),T=require("@vft/constants"),Y=require("@vft/use"),s=require("@vft/utils");require("../form/index.cjs");const b=require("../icon/index.cjs"),Z=require("@vueuse/core"),q=require("../../utils/error.cjs");require("../../utils/ns-cover.cjs");const Be=require("lodash-es"),_=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const ee=require("./utils.cjs"),te=require("../form/hooks/use-form-common-props.cjs"),oe=require("../form/hooks/use-form-item.cjs"),Ve=["role"],Ie=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Se=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],ze=e.defineComponent({__name:"input",props:{id:{},size:{default:""},disabled:{type:Boolean},modelValue:{},type:{default:"text"},resize:{},autosize:{type:[Object,Boolean],default:!1},autocomplete:{default:"off"},formatter:{},parser:{},placeholder:{},form:{},readonly:{type:Boolean},clearable:{type:Boolean},showPassword:{type:Boolean},showWordLimit:{type:Boolean},suffixIcon:{},prefixIcon:{},clearIcon:{},containerRole:{},label:{},tabindex:{default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Boolean,null,String,Object,Array]}},emits:{[T.UPDATE_MODEL_EVENT]:t=>s.isString(t),input:t=>s.isString(t),change:t=>s.isString(t),suffixClick:t=>s.isString(t),prefixClick:t=>s.isString(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,enter:()=>!0,mouseleave:t=>t instanceof MouseEvent,mouseenter:t=>t instanceof MouseEvent,keydown:t=>t instanceof Event,compositionstart:t=>t instanceof CompositionEvent,compositionupdate:t=>t instanceof CompositionEvent,compositionend:t=>t instanceof CompositionEvent},setup(t,{expose:ne,emit:ae}){const l=ae,p=e.useAttrs(),i=e.useSlots(),F=e.computed(()=>{const o={};return t.containerRole==="combobox"&&(o["aria-haspopup"]=p["aria-haspopup"],o["aria-owns"]=p["aria-owns"],o["aria-expanded"]=p["aria-expanded"]),o}),le=e.computed(()=>[t.type==="textarea"?A.b():n.b(),n.m(ie.value),n.is("disabled",c.value),n.is("exceed",fe.value),n.is("focus",m.value),{[n.b("group")]:i.prepend||i.append,[n.bm("group","append")]:i.append,[n.bm("group","prepend")]:i.prepend,[n.m("prefix")]:i.prefix||t.prefixIcon,[n.m("suffix")]:i.suffix||t.suffixIcon||t.clearable||t.showPassword,[n.bm("suffix","password-clear")]:E.value&&z.value},p.class]),se=e.getCurrentInstance(),re=e.computed(()=>[n.e("wrapper"),n.is("focus",m.value)]),r=Y.useAttrs({excludeKeys:e.computed(()=>Object.keys(F.value))}),{form:ue,formItem:C}=oe.useFormItem(),{inputId:M}=oe.useFormItemInputId(se.props,{formItemContext:C}),ie=te.useFormSize(),c=te.useFormDisabled(),n=_.useNamespace("input"),A=_.useNamespace("textarea"),w=e.shallowRef(),d=e.shallowRef(),m=e.ref(!1),V=e.ref(!1),v=e.ref(!1),x=e.ref(!1),D=e.ref(),I=e.shallowRef(t.inputStyle),y=e.computed(()=>w.value||d.value),S=e.computed(()=>s.singleAttrToObj(t.prefixIcon,"icon",{size:16})),O=e.computed(()=>s.singleAttrToObj(t.suffixIcon,"icon",{size:16})),ce=e.computed(()=>s.singleAttrToObj(t.clearIcon,"icon",{icon:"icon-circle-close",size:16})),R=e.computed(()=>ue?.statusIcon??!1),h=e.computed(()=>C?.validateState||""),K=e.computed(()=>h.value&&{validating:"icon-loading",success:"icon-circle-check",error:"icon-circle-close"}[h.value]),de=e.computed(()=>x.value?{icon:"icon-view",size:16}:{icon:"icon-hide",size:16}),me=e.computed(()=>[p.style,t.inputStyle]),$=e.computed(()=>[t.inputStyle,I.value,{resize:t.resize}]),u=e.computed(()=>Be.isNil(t.modelValue)?"":String(t.modelValue)),E=e.computed(()=>t.clearable&&!c.value&&!t.readonly&&!!u.value&&(m.value||V.value)),z=e.computed(()=>t.showPassword&&!c.value&&!t.readonly&&!!u.value&&(!!u.value||m.value)),f=e.computed(()=>t.showWordLimit&&!!r.value.maxlength&&(t.type==="text"||t.type==="textarea")&&!c.value&&!t.readonly&&!t.showPassword),N=e.computed(()=>Array.from(u.value).length),fe=e.computed(()=>!!f.value&&N.value>Number(r.value.maxlength)),pe=e.computed(()=>!!i.suffix||!!t.suffixIcon||E.value||t.showPassword||f.value||!!h.value&&R.value),[ve,ye]=Y.useCursor(w);Z.useResizeObserver(d,o=>{if(!f.value||t.resize!=="both")return;const a=o[0],{width:k}=a.contentRect;D.value={right:`calc(100% - ${k+15+6}px)`}});const B=()=>{if(!(!Z.isClient||t.type!=="textarea"))if(t.autosize){const o=s.isObject(t.autosize)?t.autosize.minRows:void 0,a=s.isObject(t.autosize)?t.autosize.maxRows:void 0;I.value={...ee.calcTextareaHeight(d.value,o,a)}}else I.value={minHeight:ee.calcTextareaHeight(d.value).minHeight}},g=()=>{const o=y.value;!o||o.value===u.value||(o.value=u.value)},P=async o=>{ve();let{value:a}=o.target;if(r.value.maxlength&&a.length>=r.value.maxlength&&(a=a.slice(0,Number(r.value.maxlength))),t.formatter&&(a=t.parser?t.parser(a):a,a=t.formatter(a)),!v.value){if(a===u.value){g();return}l(T.UPDATE_MODEL_EVENT,a),l("input",a),await e.nextTick(),g(),ye()}},j=o=>{l("change",o.target.value)},he=()=>{l("suffixClick",t.modelValue)},ge=()=>{l("prefixClick",t.modelValue)},L=o=>{l("compositionstart",o),v.value=!0},ke=o=>/([(\uAC00-\uD7AF)|\u3130-\u318F])+/.test(o),W=o=>{l("compositionupdate",o);const a=o.target?.value,k=a[a.length-1]||"";v.value=!ke(k)},H=o=>{l("compositionend",o),v.value&&(v.value=!1,P(o))},be=()=>{x.value=!x.value,U()},U=async()=>{await e.nextTick(),y.value?.focus()},Ce=()=>y.value?.blur(),G=o=>{m.value=!0,l("focus",o)},J=o=>{m.value=!1,l("blur",o),t.validateEvent&&C?.validate?.("blur").catch(a=>q.debugWarn(a))},we=o=>{V.value=!1,l("mouseleave",o)},xe=o=>{V.value=!0,l("mouseenter",o)},Q=o=>{let a=o.key;if(o.target.type==="number"&&["e","+","-0","E"].includes(a))return o.returnValue=!1,!1;l("keydown",o)},Ee=()=>{y.value?.select()},X=()=>{l(T.UPDATE_MODEL_EVENT,""),l("change",""),l("clear"),l("input","")};return e.watch(()=>t.modelValue,()=>{e.nextTick(()=>B()),t.validateEvent&&C?.validate?.("change").catch(o=>q.debugWarn(o))}),e.watch(u,()=>g()),e.watch(()=>t.type,async()=>{await e.nextTick(),g(),B()}),e.onMounted(()=>{!t.formatter&&t.parser&&q.debugWarn("VftInput","If you set the parser, you also need to set the formatter."),g(),e.nextTick(B)}),ne({input:w,textarea:d,ref:y,textareaStyle:$,autosize:t.autosize,focus:U,blur:Ce,select:Ee,clear:X,resizeTextarea:B}),(o,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(F.value,{class:le.value,style:me.value,role:o.containerRole,onMouseenter:xe,onMouseleave:we}),[o.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).be("group","prepend"))},[e.renderSlot(o.$slots,"prepend")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(re.value)},[o.$slots.prefix||S.value?.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(n).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("prefix-inner")),onClick:ge},[e.renderSlot(o.$slots,"prefix"),S.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0,pointer:""},S.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(M),ref_key:"input",ref:w,class:e.unref(n).e("inner")},e.unref(r),{type:o.showPassword?x.value?"text":"password":o.type,disabled:e.unref(c),formatter:o.formatter,parser:o.parser,readonly:o.readonly,autocomplete:o.autocomplete,tabindex:o.tabindex,"aria-label":o.label,placeholder:o.placeholder,style:o.inputStyle,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q,onKeyup:a[0]||(a[0]=e.withKeys(k=>l("enter"),["enter"]))}),null,16,Ie),pe.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(n).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("suffix-inner")),onClick:he},[!E.value||!z.value||!f.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(o.$slots,"suffix"),O.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0},O.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:1,pointer:"",class:[e.unref(n).e("icon"),e.unref(n).e("clear")]},ce.value,{onMousedown:e.withModifiers(e.unref(s.noop),["prevent"]),onClick:e.withModifiers(X,["stop"])}),null,16,["class","onMousedown"])):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:2},de.value,{class:[e.unref(n).e("icon"),e.unref(n).e("password")],onClick:be}),null,16,["class"])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(n).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("count-inner"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),3)],2)):e.createCommentVNode("",!0),h.value&&K.value&&R.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),{key:4,icon:K.value,class:e.normalizeClass([e.unref(n).e("icon"),e.unref(n).e("validateIcon"),e.unref(n).is("loading",h.value==="validating")])},null,8,["icon","class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],2),o.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).be("group","append"))},[e.renderSlot(o.$slots,"append")],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("textarea",e.mergeProps({id:e.unref(M),ref_key:"textarea",ref:d,class:e.unref(A).e("inner")},e.unref(r),{tabindex:o.tabindex,disabled:e.unref(c),readonly:o.readonly,autocomplete:o.autocomplete,style:$.value,"aria-label":o.label,placeholder:o.placeholder,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q}),null,16,Se),f.value?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(D.value),class:e.normalizeClass(e.unref(n).e("count"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),7)):e.createCommentVNode("",!0)],64))],16,Ve)),[[e.vShow,o.type!=="hidden"]])}});exports.default=ze;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),T=require("@vft/constants"),Y=require("@vft/use"),s=require("@vft/utils");require("../form/index.cjs");const b=require("../icon/index.cjs"),Z=require("@vueuse/core"),q=require("../../utils/error.cjs");require("../../utils/ns-cover.cjs");const Be=require("lodash-es"),_=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const ee=require("./utils.cjs"),te=require("../form/hooks/use-form-item.cjs"),oe=require("../form/hooks/use-form-common-props.cjs"),Ve=["role"],Ie=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form"],Se=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form"],ze=e.defineComponent({__name:"input",props:{id:{},size:{default:""},disabled:{type:Boolean},modelValue:{},type:{default:"text"},resize:{},autosize:{type:[Object,Boolean],default:!1},autocomplete:{default:"off"},formatter:{},parser:{},placeholder:{},form:{},readonly:{type:Boolean},clearable:{type:Boolean},showPassword:{type:Boolean},showWordLimit:{type:Boolean},suffixIcon:{},prefixIcon:{},clearIcon:{},containerRole:{},label:{},tabindex:{default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:[Boolean,null,String,Object,Array]}},emits:{[T.UPDATE_MODEL_EVENT]:t=>s.isString(t),input:t=>s.isString(t),change:t=>s.isString(t),suffixClick:t=>s.isString(t),prefixClick:t=>s.isString(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,enter:()=>!0,mouseleave:t=>t instanceof MouseEvent,mouseenter:t=>t instanceof MouseEvent,keydown:t=>t instanceof Event,compositionstart:t=>t instanceof CompositionEvent,compositionupdate:t=>t instanceof CompositionEvent,compositionend:t=>t instanceof CompositionEvent},setup(t,{expose:ne,emit:ae}){const l=ae,p=e.useAttrs(),i=e.useSlots(),F=e.computed(()=>{const o={};return t.containerRole==="combobox"&&(o["aria-haspopup"]=p["aria-haspopup"],o["aria-owns"]=p["aria-owns"],o["aria-expanded"]=p["aria-expanded"]),o}),le=e.computed(()=>[t.type==="textarea"?A.b():n.b(),n.m(ie.value),n.is("disabled",c.value),n.is("exceed",fe.value),n.is("focus",m.value),{[n.b("group")]:i.prepend||i.append,[n.bm("group","append")]:i.append,[n.bm("group","prepend")]:i.prepend,[n.m("prefix")]:i.prefix||t.prefixIcon,[n.m("suffix")]:i.suffix||t.suffixIcon||t.clearable||t.showPassword,[n.bm("suffix","password-clear")]:E.value&&z.value},p.class]),se=e.getCurrentInstance(),re=e.computed(()=>[n.e("wrapper"),n.is("focus",m.value)]),r=Y.useAttrs({excludeKeys:e.computed(()=>Object.keys(F.value))}),{form:ue,formItem:C}=te.useFormItem(),{inputId:M}=te.useFormItemInputId(se.props,{formItemContext:C}),ie=oe.useFormSize(),c=oe.useFormDisabled(),n=_.useNamespace("input"),A=_.useNamespace("textarea"),w=e.shallowRef(),d=e.shallowRef(),m=e.ref(!1),V=e.ref(!1),v=e.ref(!1),x=e.ref(!1),D=e.ref(),I=e.shallowRef(t.inputStyle),y=e.computed(()=>w.value||d.value),S=e.computed(()=>s.singleAttrToObj(t.prefixIcon,"icon",{size:16})),O=e.computed(()=>s.singleAttrToObj(t.suffixIcon,"icon",{size:16})),ce=e.computed(()=>s.singleAttrToObj(t.clearIcon,"icon",{icon:"icon-circle-close",size:16})),R=e.computed(()=>ue?.statusIcon??!1),h=e.computed(()=>C?.validateState||""),K=e.computed(()=>h.value&&{validating:"icon-loading",success:"icon-circle-check",error:"icon-circle-close"}[h.value]),de=e.computed(()=>x.value?{icon:"icon-view",size:16}:{icon:"icon-hide",size:16}),me=e.computed(()=>[p.style,t.inputStyle]),$=e.computed(()=>[t.inputStyle,I.value,{resize:t.resize}]),u=e.computed(()=>Be.isNil(t.modelValue)?"":String(t.modelValue)),E=e.computed(()=>t.clearable&&!c.value&&!t.readonly&&!!u.value&&(m.value||V.value)),z=e.computed(()=>t.showPassword&&!c.value&&!t.readonly&&!!u.value&&(!!u.value||m.value)),f=e.computed(()=>t.showWordLimit&&!!r.value.maxlength&&(t.type==="text"||t.type==="textarea")&&!c.value&&!t.readonly&&!t.showPassword),N=e.computed(()=>Array.from(u.value).length),fe=e.computed(()=>!!f.value&&N.value>Number(r.value.maxlength)),pe=e.computed(()=>!!i.suffix||!!t.suffixIcon||E.value||t.showPassword||f.value||!!h.value&&R.value),[ve,ye]=Y.useCursor(w);Z.useResizeObserver(d,o=>{if(!f.value||t.resize!=="both")return;const a=o[0],{width:k}=a.contentRect;D.value={right:`calc(100% - ${k+15+6}px)`}});const B=()=>{if(!(!Z.isClient||t.type!=="textarea"))if(t.autosize){const o=s.isObject(t.autosize)?t.autosize.minRows:void 0,a=s.isObject(t.autosize)?t.autosize.maxRows:void 0;I.value={...ee.calcTextareaHeight(d.value,o,a)}}else I.value={minHeight:ee.calcTextareaHeight(d.value).minHeight}},g=()=>{const o=y.value;!o||o.value===u.value||(o.value=u.value)},P=async o=>{ve();let{value:a}=o.target;if(r.value.maxlength&&a.length>=r.value.maxlength&&(a=a.slice(0,Number(r.value.maxlength))),t.formatter&&(a=t.parser?t.parser(a):a,a=t.formatter(a)),!v.value){if(a===u.value){g();return}l(T.UPDATE_MODEL_EVENT,a),l("input",a),await e.nextTick(),g(),ye()}},j=o=>{l("change",o.target.value)},he=()=>{l("suffixClick",t.modelValue)},ge=()=>{l("prefixClick",t.modelValue)},L=o=>{l("compositionstart",o),v.value=!0},ke=o=>/([(\uAC00-\uD7AF)|\u3130-\u318F])+/.test(o),W=o=>{l("compositionupdate",o);const a=o.target?.value,k=a[a.length-1]||"";v.value=!ke(k)},H=o=>{l("compositionend",o),v.value&&(v.value=!1,P(o))},be=()=>{x.value=!x.value,U()},U=async()=>{await e.nextTick(),y.value?.focus()},Ce=()=>y.value?.blur(),G=o=>{m.value=!0,l("focus",o)},J=o=>{m.value=!1,l("blur",o),t.validateEvent&&C?.validate?.("blur").catch(a=>q.debugWarn(a))},we=o=>{V.value=!1,l("mouseleave",o)},xe=o=>{V.value=!0,l("mouseenter",o)},Q=o=>{let a=o.key;if(o.target.type==="number"&&["e","+","-0","E"].includes(a))return o.returnValue=!1,!1;l("keydown",o)},Ee=()=>{y.value?.select()},X=()=>{l(T.UPDATE_MODEL_EVENT,""),l("change",""),l("clear"),l("input","")};return e.watch(()=>t.modelValue,()=>{e.nextTick(()=>B()),t.validateEvent&&C?.validate?.("change").catch(o=>q.debugWarn(o))}),e.watch(u,()=>g()),e.watch(()=>t.type,async()=>{await e.nextTick(),g(),B()}),e.onMounted(()=>{!t.formatter&&t.parser&&q.debugWarn("VftInput","If you set the parser, you also need to set the formatter."),g(),e.nextTick(B)}),ne({input:w,textarea:d,ref:y,textareaStyle:$,autosize:t.autosize,focus:U,blur:Ce,select:Ee,clear:X,resizeTextarea:B}),(o,a)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(F.value,{class:le.value,style:me.value,role:o.containerRole,onMouseenter:xe,onMouseleave:we}),[o.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).be("group","prepend"))},[e.renderSlot(o.$slots,"prepend")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(re.value)},[o.$slots.prefix||S.value?.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(n).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("prefix-inner")),onClick:ge},[e.renderSlot(o.$slots,"prefix"),S.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0,pointer:""},S.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(M),ref_key:"input",ref:w,class:e.unref(n).e("inner")},e.unref(r),{type:o.showPassword?x.value?"text":"password":o.type,disabled:e.unref(c),formatter:o.formatter,parser:o.parser,readonly:o.readonly,autocomplete:o.autocomplete,tabindex:o.tabindex,"aria-label":o.label,placeholder:o.placeholder,style:o.inputStyle,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q,onKeyup:a[0]||(a[0]=e.withKeys(k=>l("enter"),["enter"]))}),null,16,Ie),pe.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(n).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("suffix-inner")),onClick:he},[!E.value||!z.value||!f.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(o.$slots,"suffix"),O.value?.icon?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:0},O.value,{class:e.unref(n).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:1,pointer:"",class:[e.unref(n).e("icon"),e.unref(n).e("clear")]},ce.value,{onMousedown:e.withModifiers(e.unref(s.noop),["prevent"]),onClick:e.withModifiers(X,["stop"])}),null,16,["class","onMousedown"])):e.createCommentVNode("",!0),z.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),e.mergeProps({key:2},de.value,{class:[e.unref(n).e("icon"),e.unref(n).e("password")],onClick:be}),null,16,["class"])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(n).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(n).e("count-inner"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),3)],2)):e.createCommentVNode("",!0),h.value&&K.value&&R.value?(e.openBlock(),e.createBlock(e.unref(b.VftIcon),{key:4,icon:K.value,class:e.normalizeClass([e.unref(n).e("icon"),e.unref(n).e("validateIcon"),e.unref(n).is("loading",h.value==="validating")])},null,8,["icon","class"])):e.createCommentVNode("",!0)],2)],2)):e.createCommentVNode("",!0)],2),o.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).be("group","append"))},[e.renderSlot(o.$slots,"append")],2)):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("textarea",e.mergeProps({id:e.unref(M),ref_key:"textarea",ref:d,class:e.unref(A).e("inner")},e.unref(r),{tabindex:o.tabindex,disabled:e.unref(c),readonly:o.readonly,autocomplete:o.autocomplete,style:$.value,"aria-label":o.label,placeholder:o.placeholder,form:o.form,onCompositionstart:L,onCompositionupdate:W,onCompositionend:H,onInput:P,onFocus:G,onBlur:J,onChange:j,onKeydown:Q}),null,16,Se),f.value?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(D.value),class:e.normalizeClass(e.unref(n).e("count"))},e.toDisplayString(N.value)+" / "+e.toDisplayString(e.unref(r).maxlength),7)):e.createCommentVNode("",!0)],64))],16,Ve)),[[e.vShow,o.type!=="hidden"]])}});exports.default=ze;
|
|
@@ -46,7 +46,7 @@ export declare const VftTabs: import("vft/es/utils").SFCWithInstall<import("vue"
|
|
|
46
46
|
type: import("vue").PropType<"click" | "hover">;
|
|
47
47
|
};
|
|
48
48
|
}>, {
|
|
49
|
-
currentName: import("vue").Ref<
|
|
49
|
+
currentName: import("vue").Ref<import("./types").TabPaneName, import("./types").TabPaneName>;
|
|
50
50
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
51
51
|
"update:modelValue": (name: string | number) => void;
|
|
52
52
|
tabClick: (pane: {
|
|
@@ -27,7 +27,7 @@ export interface TabsProps {
|
|
|
27
27
|
trigger?: 'click' | 'hover';
|
|
28
28
|
}
|
|
29
29
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<TabsProps>>, {
|
|
30
|
-
currentName: import("vue").Ref<
|
|
30
|
+
currentName: import("vue").Ref<TabPaneName, TabPaneName>;
|
|
31
31
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
32
32
|
"update:modelValue": (name: string | number) => void;
|
|
33
33
|
tabClick: (pane: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("@vueuse/core");const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("@vueuse/core");const g=require("@vft/utils");require("../../utils/ns-cover.cjs");require("lodash-es");const B=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");const S=require("../../hooks/use-ordered-children/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const A=require("@vft/constants"),E=require("./tab-nav.vue2.cjs"),k=require("./types.cjs"),M=t.defineComponent({name:"vft-tabs"}),z=t.defineComponent({...M,props:{closable:{type:Boolean},addable:{type:Boolean,default:!1},modelValue:{},editable:{type:Boolean},tabPosition:{default:"top"},beforeLeave:{},stretch:{type:Boolean},showBar:{type:Boolean,default:!0},closeIconCfg:{},addIconCfg:{},arrowLeftIconCfg:{},arrowRightIconCfg:{},fixTabCount:{default:0},fixExtraScrollWidth:{default:0},trigger:{default:"click"}},emits:["update:modelValue","tabClick","tabContextMenu","tabChange","tabRemove","tabAdd","edit"],setup(a,{expose:h,emit:v}){const r=v,c=B.useNamespace("tabs"),u=t.getCurrentInstance(),d=t.useSlots(),m=t.computed(()=>["left","right"].includes(a.tabPosition)),{children:f,addChild:I,removeChild:w,ChildrenSorter:x}=S.useOrderedChildren(u,"vft-tab-pane"),s=t.ref(),i=t.ref(a.modelValue??"0"),b=async(e,n=!1)=>{if(!(i.value===e||g.isUndefined(e)))try{let o;if(a.beforeLeave){const l=a.beforeLeave(e,i.value);o=l instanceof Promise?await l:l}else o=!0;if(o!==!1){const l=f.value.find(L=>L.paneName===i.value)?.isFocusInsidePane();i.value=e,n&&(r(A.UPDATE_MODEL_EVENT,e),r("tabChange",e)),s.value?.removeFocus?.(),l&&s.value?.focusActiveTab()}}catch{}},T=(e,n,o)=>{e.props.disabled||(r("tabClick",e,o),b(n,!0))},N=(e,n)=>{e.props.disabled||g.isUndefined(e.props.name)||(n.stopPropagation(),r("edit",e.props.name,"remove"),r("tabRemove",e.props.name))},P=()=>{r("edit",void 0,"add"),r("tabAdd")},C=e=>{const n=e.el.firstChild,o=["bottom","right"].includes(a.tabPosition)?e.children[0].el:e.children[1].el;n!==o&&n.before(o)};t.watch(()=>a.modelValue,e=>b(e)),t.watch(i,async()=>{await t.nextTick(),s.value?.scrollToActiveTab()});const V=(e,n,o)=>{r("tabContextMenu",e,n,o)};t.provide(k.TabsRootContextKey,{props:u.props,currentName:i,registerPane:I,unregisterPane:w,nav$:s}),h({currentName:i});const q=t.computed(()=>({icon:"icon-plus",size:12,...a.addIconCfg})),y=t.computed(()=>({icon:"icon-close",size:14,...a.closeIconCfg})),R=t.computed(()=>({icon:"icon-arrow-left",size:18,...a.arrowLeftIconCfg})),p=t.computed(()=>({icon:"icon-arrow-right",size:18,...a.arrowRightIconCfg}));return()=>{const e=()=>t.createVNode(E.default,{ref:s,currentName:i.value,editable:a.editable,panes:f.value,stretch:a.stretch,showBar:a.showBar,closeIconCfg:y.value,addIconCfg:q.value,arrowRightIconCfg:p.value,arrowLeftIconCfg:R.value,fixTabCount:a.fixTabCount,fixExtraScrollWidth:a.fixExtraScrollWidth,addable:a.addable,trigger:a.trigger,onTabClick:T,onTabRemove:N,onTabAdd:P,onTabContextmenu:V},null);return t.createVNode("div",{class:[c.b(),c.m(a.tabPosition)],onVnodeMounted:C,onVnodeUpdated:C},[t.createVNode("div",{className:c.e("content")},[d.default?.()]),t.createVNode("div",{class:[c.e("header"),m.value&&c.e("header-vertical"),c.is(a.tabPosition)]},[t.createVNode(x,null,{default:e,$stable:!0}),d.navRight?t.createVNode("div",{class:"nav-right"},[d.navRight?.()]):null])])}}});exports.default=z;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("@vueuse/core");require("@vft/utils");require("../../utils/ns-cover.cjs");require("lodash-es");const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("@vueuse/core");require("@vft/utils");require("../../utils/ns-cover.cjs");require("lodash-es");const v=require("../../utils/vue/vnode.cjs"),t=require("vue"),N=(u,c,o)=>v.flattedChildren(u.subTree).filter(e=>t.isVNode(e)&&e.type?.name===c&&!!e.component).map(e=>e.component.uid).map(e=>o[e]).filter(e=>!!e),q=(u,c)=>{const o=t.shallowRef({}),a=t.shallowRef([]),s=new WeakMap,e=r=>{o.value[r.uid]=r,t.triggerRef(o),t.onMounted(()=>{const d=r.getVnode().el,n=d.parentNode;if(!s.has(n)){s.set(n,[]);const i=n.insertBefore.bind(n);n.insertBefore=(l,h)=>(s.get(n).some(f=>l===f||h===f)&&t.triggerRef(o),i(l,h))}s.get(n).push(d)})},p=r=>{delete o.value[r.uid],t.triggerRef(o);const d=r.getVnode().el,n=d.parentNode,i=s.get(n),l=i.indexOf(d);i.splice(l,1)},g=()=>{a.value=N(u,c,o.value)},C=r=>r.render(),m=t.defineComponent({setup(r,{slots:d}){return()=>(g(),d.default?t.h(C,{render:d.default}):null)}});return{children:a,addChild:e,removeChild:p,ChildrenSorter:m}};exports.useOrderedChildren=q;
|
|
@@ -7,6 +7,8 @@ export declare const useOrderedChildren: <T extends ChildEssential>(vm: Componen
|
|
|
7
7
|
children: import("vue").ShallowRef<T[], T[]>;
|
|
8
8
|
addChild: (child: T) => void;
|
|
9
9
|
removeChild: (child: T) => void;
|
|
10
|
-
ChildrenSorter: import("vue").DefineComponent<{}, () =>
|
|
10
|
+
ChildrenSorter: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
11
13
|
};
|
|
12
14
|
export {};
|
package/lib/package.json.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.243";exports.version=e;
|
package/lib/package.json.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vft",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.243",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "lib/index.cjs",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -54,11 +54,11 @@
|
|
|
54
54
|
"qrcode": "1.5.3",
|
|
55
55
|
"resize-detector": "0.3.0",
|
|
56
56
|
"sortablejs": "1.15.0",
|
|
57
|
-
"@vft/utils": "0.0.114",
|
|
58
|
-
"@vft/use": "0.0.54",
|
|
59
57
|
"@vft/constants": "0.0.71",
|
|
60
58
|
"@vft/router": "0.0.57",
|
|
61
59
|
"@vft/store": "0.0.42",
|
|
60
|
+
"@vft/use": "0.0.54",
|
|
61
|
+
"@vft/utils": "0.0.114",
|
|
62
62
|
"@vft/directives": "0.0.29"
|
|
63
63
|
},
|
|
64
64
|
"vetur": {
|
package/web-types.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"http://json.schemastore.org/web-types","framework":"vue","name":"vft","version":"0.0.
|
|
1
|
+
{"$schema":"http://json.schemastore.org/web-types","framework":"vue","name":"vft","version":"0.0.243","js-types-syntax":"typescript","description-markup":"markdown","contributions":{"html":{}}}
|