savor-ui 0.18.0 → 0.20.0
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/CHANGELOG.md +21 -0
- package/dist/es/components/index.mjs +1 -1
- package/dist/es/components/src/badge/badge.vue_vue_type_script_setup_true_vapor_true_lang.mjs +2 -2
- package/dist/es/components/src/card/card.vue_vue_type_script_setup_true_vapor_true_lang.mjs +39 -32
- package/dist/es/components/src/card/index.d.ts +3 -0
- package/dist/es/components/src/card/types.d.ts +5 -0
- package/dist/es/components/src/carousel/carousel.vue_vue_type_script_setup_true_vapor_true_lang.mjs +6 -6
- package/dist/es/components/src/carousel/index.d.ts +1 -1
- package/dist/es/components/src/carousel/types.d.ts +2 -2
- package/dist/es/components/src/drawer/drawer.vue_vue_type_script_setup_true_vapor_true_lang.mjs +94 -87
- package/dist/es/components/src/drawer/index.d.ts +1 -0
- package/dist/es/components/src/drawer/types.d.ts +2 -0
- package/dist/es/components/src/dropdown/dropdown.vue_vue_type_script_setup_true_vapor_true_lang.mjs +13 -10
- package/dist/es/components/src/dropdown/index.d.ts +1 -0
- package/dist/es/components/src/dropdown/types.d.ts +2 -0
- package/dist/es/components/src/menu/menu.vue_vue_type_script_setup_true_vapor_true_lang.mjs +31 -28
- package/dist/es/components/src/menu/sub-menu.vue_vue_type_script_setup_true_vapor_true_lang.mjs +87 -85
- package/dist/es/components/src/menu/types.d.ts +2 -1
- package/dist/es/core/components.mjs +70 -70
- package/dist/es/core/index.mjs +63 -63
- package/dist/es/theme/components/card.scss +3 -1
- package/dist/es/theme/components/drawer.scss +13 -0
- package/dist/es/theme/components/form.scss +1 -0
- package/dist/json/vetur-attributes.json +17 -2
- package/dist/json/vetur-tags.json +6 -2
- package/dist/json/web-types.json +35 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,27 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
# [0.20.0](https://gitee.com/mach552/savor-ui/compare/v0.19.0...v0.20.0) (2026-08-10)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **drawer:** 新增`desc`属性 ([28ac722](https://gitee.com/mach552/savor-ui/commits/28ac722dfb797062d01512f79092df889e66a4b8))
|
|
11
|
+
* **dropdown:** 新增延迟关闭属性 ([8a563e1](https://gitee.com/mach552/savor-ui/commits/8a563e1731542bf3297ffa595bd8c7953d48234d))
|
|
12
|
+
|
|
13
|
+
# [0.19.0](https://gitee.com/mach552/savor-ui/compare/v0.18.0...v0.19.0) (2026-08-09)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* **menu:** 修复弹层菜单无样式变量的问题 ([96a315a](https://gitee.com/mach552/savor-ui/commits/96a315a59f06ab072835b14e6addb35ad60dcd1b))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* **card:** 新增边框属性 ([7842ba8](https://gitee.com/mach552/savor-ui/commits/7842ba8774566893065f4ae9f3adac02a38cc506))
|
|
24
|
+
* **card:** 新增标题文本属性 ([fa5c634](https://gitee.com/mach552/savor-ui/commits/fa5c6342a7ae74c7801d061c545a381441e22136))
|
|
25
|
+
|
|
5
26
|
# [0.18.0](https://gitee.com/mach552/savor-ui/compare/v0.17.0...v0.18.0) (2026-08-08)
|
|
6
27
|
|
|
7
28
|
|
|
@@ -15,6 +15,7 @@ import "./src/auto-complete/index.mjs";
|
|
|
15
15
|
import "./src/avatar/index.mjs";
|
|
16
16
|
import "./src/badge/index.mjs";
|
|
17
17
|
import "./src/button/index.mjs";
|
|
18
|
+
import "./src/text/index.mjs";
|
|
18
19
|
import "./src/card/index.mjs";
|
|
19
20
|
import "./src/carousel/index.mjs";
|
|
20
21
|
import "./src/empty/index.mjs";
|
|
@@ -78,7 +79,6 @@ import "./src/table/types.mjs";
|
|
|
78
79
|
import "./src/table/index.mjs";
|
|
79
80
|
import "./src/tabs/types.mjs";
|
|
80
81
|
import "./src/tabs/index.mjs";
|
|
81
|
-
import "./src/text/index.mjs";
|
|
82
82
|
import "./src/textarea/index.mjs";
|
|
83
83
|
import "./src/timeline/types.mjs";
|
|
84
84
|
import "./src/timeline/index.mjs";
|
package/dist/es/components/src/badge/badge.vue_vue_type_script_setup_true_vapor_true_lang.mjs
CHANGED
|
@@ -13,8 +13,8 @@ var m = u("<div>"), h = u("<div> "), g = u("<div>", 1), _ = /*@__PURE__*/ i({
|
|
|
13
13
|
},
|
|
14
14
|
setup(i, { slots: u }) {
|
|
15
15
|
let _ = i, v = e("badge"), y = t(() => ({
|
|
16
|
-
height: "
|
|
17
|
-
width: "
|
|
16
|
+
height: "6px",
|
|
17
|
+
width: "6px",
|
|
18
18
|
..._.dotStyle
|
|
19
19
|
})), b = t(() => _.max && _.count > _.max ? `${_.max}+` : _.count), x = g();
|
|
20
20
|
return a(() => {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useNamespace as e } from "../../../hooks/src/use-namespace.mjs";
|
|
2
2
|
import "../../../hooks/index.mjs";
|
|
3
|
-
import t from "../text/
|
|
4
|
-
import { child as n, createComponent as r, createIf as i, createSlot as a, defineVaporComponent as o, renderEffect as s, setClass as c, setInsertionState as l, setStyle as u,
|
|
3
|
+
import { SText as t } from "../text/index.mjs";
|
|
4
|
+
import { child as n, createComponent as r, createIf as i, createSlot as a, defineVaporComponent as o, renderEffect as s, setClass as c, setInsertionState as l, setStyle as u, template as d, unref as f } from "vue";
|
|
5
5
|
//#region ../components/src/card/card.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
6
|
-
var
|
|
6
|
+
var p = d("<div>"), m = d("<div><div></div>"), h = d("<div><div>", 1), g = /*@__PURE__*/ o({
|
|
7
7
|
name: "SCard",
|
|
8
8
|
__name: "card",
|
|
9
9
|
props: {
|
|
@@ -11,41 +11,48 @@ var h = f("<div>"), g = f(" "), _ = f("<div><div></div>"), v = f("<div><div>", 1
|
|
|
11
11
|
subtitle: {},
|
|
12
12
|
bar: { type: Boolean },
|
|
13
13
|
shadow: { default: "never" },
|
|
14
|
-
|
|
14
|
+
bordered: { type: Boolean },
|
|
15
|
+
bodyStyle: {},
|
|
16
|
+
titleProps: {}
|
|
15
17
|
},
|
|
16
|
-
setup(o, { slots:
|
|
17
|
-
let
|
|
18
|
+
setup(o, { slots: d }) {
|
|
19
|
+
let g = e("card"), _ = h(), v = n(_, 1);
|
|
18
20
|
return s(() => {
|
|
19
|
-
let e =
|
|
20
|
-
c(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
let e = f(g);
|
|
22
|
+
c(_, [
|
|
23
|
+
e.b(),
|
|
24
|
+
e.m(o.shadow),
|
|
25
|
+
{ [e.m("bordered")]: o.bordered }
|
|
26
|
+
]);
|
|
27
|
+
}), l(_, 0, 0), i(() => d.image, () => {
|
|
28
|
+
let e = p();
|
|
29
|
+
return s(() => c(e, [f(g).e("image")])), l(e, null, 0), a("image"), e;
|
|
24
30
|
}), s(() => {
|
|
25
|
-
c(
|
|
26
|
-
}), l(
|
|
27
|
-
let e =
|
|
31
|
+
c(v, [f(g).e("body")]), u(v, o.bodyStyle);
|
|
32
|
+
}), l(v, null, 0), i(() => d.title || o.title || d.expand, () => {
|
|
33
|
+
let e = m(), u = n(e);
|
|
28
34
|
return s(() => {
|
|
29
|
-
let t =
|
|
35
|
+
let t = f(g);
|
|
30
36
|
c(e, [t.e("header")]), c(u, [t.e("title")]);
|
|
31
|
-
}), l(u, null, 0), a("title", null, () => r(t, {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
}), l(u, null, 0), a("title", null, () => r(f(t), { $: [() => ({
|
|
38
|
+
bar: o.bar,
|
|
39
|
+
label: o.title,
|
|
40
|
+
...o.titleProps
|
|
41
|
+
})] })), l(e, null, 1), i(() => d.expand, () => {
|
|
42
|
+
let e = p();
|
|
43
|
+
return s(() => c(e, [f(g).e("expand")])), l(e, null, 0), a("expand"), e;
|
|
37
44
|
}), e;
|
|
38
|
-
}), l(
|
|
39
|
-
let e =
|
|
40
|
-
return s(() => c(e, [
|
|
41
|
-
}), l(
|
|
42
|
-
let e =
|
|
43
|
-
return s(() => c(e, [
|
|
44
|
-
}), l(
|
|
45
|
-
let e =
|
|
46
|
-
return s(() => c(e, [
|
|
47
|
-
}),
|
|
45
|
+
}), l(v, null, 1), i(() => d.subtitle, () => {
|
|
46
|
+
let e = p();
|
|
47
|
+
return s(() => c(e, [f(g).e("subtitle")])), l(e, null, 0), a("subtitle"), e;
|
|
48
|
+
}), l(v, null, 2), i(() => d.default, () => {
|
|
49
|
+
let e = p();
|
|
50
|
+
return s(() => c(e, [f(g).e("content")])), l(e, null, 0), a(), e;
|
|
51
|
+
}), l(v, null, 3), i(() => d.footer, () => {
|
|
52
|
+
let e = p();
|
|
53
|
+
return s(() => c(e, [f(g).e("footer")])), l(e, null, 0), a("footer"), e;
|
|
54
|
+
}), _;
|
|
48
55
|
}
|
|
49
56
|
});
|
|
50
57
|
//#endregion
|
|
51
|
-
export {
|
|
58
|
+
export { g as default };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CardSlots } from './types';
|
|
2
2
|
import { PublicProps, VNode, Plugin } from 'vue';
|
|
3
|
+
import { TextProps } from '../text';
|
|
3
4
|
export declare const SCard: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: {
|
|
4
5
|
attrs: any;
|
|
5
6
|
slots: CardSlots;
|
|
@@ -10,7 +11,9 @@ export declare const SCard: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setu
|
|
|
10
11
|
subtitle?: string | undefined;
|
|
11
12
|
bar?: boolean | undefined;
|
|
12
13
|
shadow?: "always" | "hover" | "never" | undefined;
|
|
14
|
+
bordered?: boolean | undefined;
|
|
13
15
|
bodyStyle?: Record<string, string> | undefined;
|
|
16
|
+
titleProps?: TextProps | undefined;
|
|
14
17
|
} & (typeof globalThis extends {
|
|
15
18
|
__VLS_PROPS_FALLBACK: infer P;
|
|
16
19
|
} ? P : {});
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TextProps } from '../text';
|
|
1
2
|
export interface CardProps {
|
|
2
3
|
/** 卡片标题 */
|
|
3
4
|
title?: string;
|
|
@@ -7,8 +8,12 @@ export interface CardProps {
|
|
|
7
8
|
bar?: boolean;
|
|
8
9
|
/** 卡片阴影 */
|
|
9
10
|
shadow?: "always" | "hover" | "never";
|
|
11
|
+
/** 卡片边框 */
|
|
12
|
+
bordered?: boolean;
|
|
10
13
|
/** 卡片内容区域样式 */
|
|
11
14
|
bodyStyle?: Record<string, string>;
|
|
15
|
+
/** 卡片标题属性 */
|
|
16
|
+
titleProps?: TextProps;
|
|
12
17
|
}
|
|
13
18
|
export interface CardSlots {
|
|
14
19
|
/** 自定义卡片内容 */
|
package/dist/es/components/src/carousel/carousel.vue_vue_type_script_setup_true_vapor_true_lang.mjs
CHANGED
|
@@ -18,7 +18,7 @@ var D = /*@__PURE__*/ u({
|
|
|
18
18
|
items: { default: () => [] },
|
|
19
19
|
autoplay: { type: Boolean },
|
|
20
20
|
speed: { default: 2e3 },
|
|
21
|
-
|
|
21
|
+
solid: { type: Boolean },
|
|
22
22
|
showArrow: { type: Boolean },
|
|
23
23
|
indicator: {
|
|
24
24
|
type: Boolean,
|
|
@@ -34,13 +34,13 @@ var D = /*@__PURE__*/ u({
|
|
|
34
34
|
let d = u, f = t("carousel"), b = C("listRef"), D = S(u, "modelValue"), O = (e) => {
|
|
35
35
|
b.value && (b.value.style.transform = `translateX(-${e * 100}%)`, b.value.style.transition = "transform 0.3s"), D.value = e;
|
|
36
36
|
}, k = () => {
|
|
37
|
-
if (d.
|
|
37
|
+
if (d.solid) D.value--, D.value < 0 && (D.value = 0), console.log(D.value), N();
|
|
38
38
|
else {
|
|
39
39
|
if (!b.value) return;
|
|
40
40
|
D.value === 0 ? (b.value.style.transition = "none", b.value.style.transform = `translateX(-${d.items.length * 100}%)`, b.value.offsetHeight, O(d.items.length - 1)) : O(D.value - 1);
|
|
41
41
|
}
|
|
42
42
|
}, A = () => {
|
|
43
|
-
if (d.
|
|
43
|
+
if (d.solid) D.value++, D.value > d.items.length - 1 && (D.value = d.items.length - 1), console.log(D.value), N();
|
|
44
44
|
else {
|
|
45
45
|
if (!b.value) return;
|
|
46
46
|
D.value === d.items.length - 1 ? (b.value.style.transition = "none", b.value.style.transform = "translateX(100%)", b.value.offsetHeight, O(0)) : O(D.value + 1);
|
|
@@ -62,14 +62,14 @@ var D = /*@__PURE__*/ u({
|
|
|
62
62
|
n.style.zIndex = String(l);
|
|
63
63
|
}
|
|
64
64
|
}, P = (e) => {
|
|
65
|
-
d.
|
|
65
|
+
d.solid ? (D.value = e, N()) : O(e);
|
|
66
66
|
}, F = null, I = () => {
|
|
67
67
|
d.autoplay && (F = setInterval(() => {
|
|
68
68
|
A();
|
|
69
69
|
}, d.speed));
|
|
70
70
|
};
|
|
71
71
|
p(() => {
|
|
72
|
-
d.
|
|
72
|
+
d.solid ? N() : j(), I();
|
|
73
73
|
}), m(() => {
|
|
74
74
|
clearInterval(F);
|
|
75
75
|
});
|
|
@@ -77,7 +77,7 @@ var D = /*@__PURE__*/ u({
|
|
|
77
77
|
return h(() => {
|
|
78
78
|
let t = x(f), n = u.indicatorPosition;
|
|
79
79
|
g(R, [t.b(), { [t.m("indicator-position-" + n)]: n === "outside" }]), y(R, { height: x(e)(u.height) }), g(z, [t.e("wrapper")]);
|
|
80
|
-
}), _(z, null, 0), s(() => u.
|
|
80
|
+
}), _(z, null, 0), s(() => u.solid, () => {
|
|
81
81
|
let e = T();
|
|
82
82
|
return h(() => g(e, [x(f).e("list-3d")])), _(e, null, 0), o(() => u.items, (e, t) => {
|
|
83
83
|
let n = w(), r = i(n);
|
|
@@ -10,7 +10,7 @@ export declare const SCarousel: ((__VLS_props: NonNullable<Awaited<typeof __VLS_
|
|
|
10
10
|
items: string[];
|
|
11
11
|
autoplay?: boolean | undefined;
|
|
12
12
|
speed?: number | undefined;
|
|
13
|
-
|
|
13
|
+
solid?: boolean | undefined;
|
|
14
14
|
showArrow?: boolean | undefined;
|
|
15
15
|
indicator?: boolean | undefined;
|
|
16
16
|
indicatorPosition?: "top" | "bottom" | "left" | "right" | "outside" | undefined;
|
package/dist/es/components/src/drawer/drawer.vue_vue_type_script_setup_true_vapor_true_lang.mjs
CHANGED
|
@@ -7,16 +7,16 @@ import "../../../hooks/index.mjs";
|
|
|
7
7
|
import i from "../../../icons/src/close.vue.mjs";
|
|
8
8
|
import "../../../icons/index.mjs";
|
|
9
9
|
import a from "../button/button.vue.mjs";
|
|
10
|
-
import
|
|
11
|
-
import { STransition as
|
|
12
|
-
import { VaporTeleport as
|
|
10
|
+
import o from "../scrollbar/scrollbar.vue.mjs";
|
|
11
|
+
import { STransition as s } from "../transition/index.mjs";
|
|
12
|
+
import { VaporTeleport as c, applyVShow as l, child as u, computed as d, createComponent as f, createIf as p, createInvoker as m, createSlot as h, createTemplateRefSetter as ee, defineVaporComponent as g, delegateEvents as _, mergeModels as v, nextTick as y, onMounted as te, onUnmounted as b, ref as x, renderEffect as S, setClass as C, setInsertionState as w, setStyle as T, setText as E, template as D, toDisplayString as O, txt as k, unref as A, useModel as ne, watch as j, watchEffect as re } from "vue";
|
|
13
13
|
//#region ../components/src/drawer/drawer.vue?vue&type=script&setup=true&vapor=true&lang.ts
|
|
14
|
-
var
|
|
15
|
-
|
|
16
|
-
var N = /*@__PURE__*/
|
|
14
|
+
var M = D("<div>"), ie = D("<div> "), ae = D("<div><div> </div>"), oe = D("<div><div><div></div>");
|
|
15
|
+
_("click", "mousedown");
|
|
16
|
+
var N = /*@__PURE__*/ g({
|
|
17
17
|
name: "SDrawer",
|
|
18
18
|
__name: "drawer",
|
|
19
|
-
props: /*@__PURE__*/
|
|
19
|
+
props: /*@__PURE__*/ v({
|
|
20
20
|
modelValue: { type: Boolean },
|
|
21
21
|
closeOnEsc: {
|
|
22
22
|
type: Boolean,
|
|
@@ -40,6 +40,7 @@ var N = /*@__PURE__*/ h({
|
|
|
40
40
|
resizable: { type: Boolean },
|
|
41
41
|
to: { default: "body" },
|
|
42
42
|
title: {},
|
|
43
|
+
desc: {},
|
|
43
44
|
header: {
|
|
44
45
|
type: Boolean,
|
|
45
46
|
default: !0
|
|
@@ -65,7 +66,7 @@ var N = /*@__PURE__*/ h({
|
|
|
65
66
|
},
|
|
66
67
|
modelModifiers: {}
|
|
67
68
|
}),
|
|
68
|
-
emits: /*@__PURE__*/
|
|
69
|
+
emits: /*@__PURE__*/ v([
|
|
69
70
|
"esc",
|
|
70
71
|
"maskClick",
|
|
71
72
|
"open",
|
|
@@ -73,45 +74,45 @@ var N = /*@__PURE__*/ h({
|
|
|
73
74
|
"close",
|
|
74
75
|
"closed"
|
|
75
76
|
], ["update:modelValue"]),
|
|
76
|
-
setup(
|
|
77
|
-
let
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
setup(g, { emit: _ }) {
|
|
78
|
+
let v = g, D = _, N = t("drawer"), { nextZIndex: P } = r(), F = x(0), { lockScroll: se, unlockScroll: ce } = n(), I = ne(g, "modelValue"), L = x(!1), R = x(!1), z = x(!1), B = x(""), V = x("");
|
|
79
|
+
re(() => {
|
|
80
|
+
B.value = e(v.width), V.value = e(v.height);
|
|
80
81
|
});
|
|
81
|
-
let
|
|
82
|
+
let H = d(() => ({
|
|
82
83
|
zIndex: F.value,
|
|
83
|
-
position:
|
|
84
|
-
})),
|
|
85
|
-
let e = { ...
|
|
86
|
-
return (
|
|
87
|
-
}),
|
|
88
|
-
|
|
89
|
-
},
|
|
90
|
-
|
|
91
|
-
Z.value && (Z.value.style.transition = "", Z.value.style.transform = ""),
|
|
84
|
+
position: v.to === "body" ? "fixed" : "absolute"
|
|
85
|
+
})), U = d(() => {
|
|
86
|
+
let e = { ...v.drawerStyle };
|
|
87
|
+
return (v.placement === "left" || v.placement === "right") && (e.width = B.value), (v.placement === "top" || v.placement === "bottom") && (e.height = V.value), e;
|
|
88
|
+
}), W = () => {
|
|
89
|
+
D("opened");
|
|
90
|
+
}, le = () => {
|
|
91
|
+
R.value = !1, D("closed"), y(() => {
|
|
92
|
+
Z.value && (Z.value.style.transition = "", Z.value.style.transform = ""), ce();
|
|
92
93
|
});
|
|
93
94
|
}, G = () => {
|
|
94
|
-
|
|
95
|
-
},
|
|
96
|
-
|
|
97
|
-
},
|
|
98
|
-
e.preventDefault(),
|
|
95
|
+
I.value = !1, D("close");
|
|
96
|
+
}, ue = () => {
|
|
97
|
+
v.closeOnMask && (G(), D("maskClick"));
|
|
98
|
+
}, de = (e) => {
|
|
99
|
+
e.preventDefault(), z.value = !0;
|
|
99
100
|
}, K = (e) => {
|
|
100
|
-
if (
|
|
101
|
-
if (
|
|
101
|
+
if (z.value) {
|
|
102
|
+
if (v.placement === "right" && (B.value = X(window.innerWidth - e.clientX, v.minWidth, v.maxWidth, !0), $(B.value, !0)), v.placement === "left") {
|
|
102
103
|
let t = e.clientX;
|
|
103
|
-
|
|
104
|
+
B.value = X(t, v.minWidth, v.maxWidth, !0), $(B.value, !0);
|
|
104
105
|
}
|
|
105
|
-
if (
|
|
106
|
+
if (v.placement === "bottom" && (V.value = X(window.innerHeight - e.clientY, v.minHeight, v.maxHeight, !1), $(V.value, !0)), v.placement === "top") {
|
|
106
107
|
let t = e.clientY;
|
|
107
|
-
|
|
108
|
+
V.value = X(t, v.minHeight, v.maxHeight, !1), $(V.value, !0);
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
111
|
}, q = () => {
|
|
111
|
-
|
|
112
|
+
z.value &&= !1;
|
|
112
113
|
}, J = (e) => {
|
|
113
|
-
e.key === "Escape" &&
|
|
114
|
-
},
|
|
114
|
+
e.key === "Escape" && v.closeOnEsc && I.value && (G(), D("esc"));
|
|
115
|
+
}, fe = (e) => {
|
|
115
116
|
let t = String(e).trim().match(/^(\d*\.?\d+)(.*)$/);
|
|
116
117
|
return t ? {
|
|
117
118
|
num: parseFloat(t[1]),
|
|
@@ -121,7 +122,7 @@ var N = /*@__PURE__*/ h({
|
|
|
121
122
|
unit: "px"
|
|
122
123
|
};
|
|
123
124
|
}, Y = (e, t) => {
|
|
124
|
-
let { num: n, unit: r } =
|
|
125
|
+
let { num: n, unit: r } = fe(e), i = t ? window.innerWidth : window.innerHeight;
|
|
125
126
|
switch (r) {
|
|
126
127
|
case "%":
|
|
127
128
|
case "vw":
|
|
@@ -132,74 +133,80 @@ var N = /*@__PURE__*/ h({
|
|
|
132
133
|
}, X = (e, t, n, r) => {
|
|
133
134
|
let i = Y(t, r), a = Y(n, r);
|
|
134
135
|
return Math.max(i, Math.min(e, a)) + "px";
|
|
135
|
-
}, Z =
|
|
136
|
-
|
|
136
|
+
}, Z = x(null), Q = () => {
|
|
137
|
+
v.to === "body" ? Z.value = document.querySelector("#app") : v.to instanceof HTMLElement ? Z.value = v.to : typeof v.to == "string" && (Z.value = document.querySelector(v.to));
|
|
137
138
|
}, $ = (e, t) => {
|
|
138
|
-
|
|
139
|
+
v.push && Z.value && (t ? (Z.value.style.transition = "transform 0.3s var(--s-bezier-out)", v.placement === "left" ? Z.value.style.transform = `translateX(${e})` : v.placement === "right" ? Z.value.style.transform = `translateX(-${e})` : v.placement === "top" ? Z.value.style.transform = `translateY(${e})` : v.placement === "bottom" && (Z.value.style.transform = `translateY(-${e})`)) : (Z.value.style.transition = "transform 0.3s var(--s-bezier-in)", Z.value.style.transform = "translate(0,0)"));
|
|
139
140
|
};
|
|
140
|
-
|
|
141
|
-
e ? (F.value = P(),
|
|
142
|
-
|
|
143
|
-
})) : (
|
|
144
|
-
}, { immediate: !0 }),
|
|
141
|
+
j(() => v.to, Q), j(() => I.value, (e) => {
|
|
142
|
+
e ? (F.value = P(), se(), R.value = !0, y(() => {
|
|
143
|
+
L.value = !0, v.placement === "left" || v.placement === "right" ? $(U.value.width, !0) : (v.placement === "top" || v.placement === "bottom") && $(U.value.height, !0), v.closeOnEsc && (document.removeEventListener("keydown", J), document.addEventListener("keydown", J)), D("open");
|
|
144
|
+
})) : (L.value = !1, document.removeEventListener("keydown", J), $("0", !1));
|
|
145
|
+
}, { immediate: !0 }), j(() => v.resizable, (e) => {
|
|
145
146
|
e ? (window.addEventListener("mousemove", K), window.addEventListener("mouseup", q)) : (window.removeEventListener("mousemove", K), window.removeEventListener("mouseup", q));
|
|
146
|
-
}, { immediate: !0 }),
|
|
147
|
+
}, { immediate: !0 }), te(() => {
|
|
147
148
|
Q();
|
|
148
|
-
}),
|
|
149
|
+
}), b(() => {
|
|
149
150
|
document.removeEventListener("keydown", J), window.removeEventListener("mousemove", K), window.removeEventListener("mouseup", q);
|
|
150
151
|
});
|
|
151
|
-
let
|
|
152
|
-
return
|
|
153
|
-
to: () =>
|
|
152
|
+
let pe = ee();
|
|
153
|
+
return f(c, {
|
|
154
|
+
to: () => g.to,
|
|
154
155
|
defer: ""
|
|
155
156
|
}, () => {
|
|
156
|
-
let e =
|
|
157
|
-
return
|
|
158
|
-
|
|
159
|
-
}),
|
|
160
|
-
let e =
|
|
161
|
-
return
|
|
162
|
-
|
|
157
|
+
let e = M();
|
|
158
|
+
return S(() => {
|
|
159
|
+
C(e, [A(N).e("container")]), T(e, H.value);
|
|
160
|
+
}), w(e, null, 0), f(A(s), { type: "opacity" }, () => p(() => g.mask, () => {
|
|
161
|
+
let e = M();
|
|
162
|
+
return l(e, () => L.value), e.$evtclick = m(ue), S(() => {
|
|
163
|
+
C(e, [A(N).e("mask")]), T(e, g.maskStyle);
|
|
163
164
|
}), e;
|
|
164
|
-
}, null, 129)),
|
|
165
|
+
}, null, 129)), w(e, null, 1), f(A(s), {
|
|
165
166
|
type: "side",
|
|
166
|
-
placement: () =>
|
|
167
|
-
onAfterLeave: () =>
|
|
168
|
-
onAfterEnter: () =>
|
|
167
|
+
placement: () => g.placement,
|
|
168
|
+
onAfterLeave: () => le,
|
|
169
|
+
onAfterEnter: () => W
|
|
169
170
|
}, () => {
|
|
170
|
-
let e =
|
|
171
|
-
return
|
|
172
|
-
let t =
|
|
173
|
-
|
|
174
|
-
}),
|
|
175
|
-
let e =
|
|
176
|
-
return e.$evtmousedown =
|
|
177
|
-
let t =
|
|
178
|
-
|
|
171
|
+
let e = oe(), t = u(e, 1), n = u(t, 1);
|
|
172
|
+
return S(() => {
|
|
173
|
+
let t = A(N);
|
|
174
|
+
C(e, [t.b(), t.m(g.placement)]), T(e, U.value);
|
|
175
|
+
}), w(e, 0, 0), p(() => g.resizable, () => {
|
|
176
|
+
let e = M();
|
|
177
|
+
return e.$evtmousedown = m(de), S(() => {
|
|
178
|
+
let t = A(N);
|
|
179
|
+
C(e, [t.e("trigger"), t.is("dragging", z.value)]);
|
|
179
180
|
}), e;
|
|
180
|
-
}),
|
|
181
|
-
let e =
|
|
182
|
-
return
|
|
183
|
-
let e =
|
|
184
|
-
return
|
|
185
|
-
|
|
181
|
+
}), S(() => C(t, [A(N).e("wrapper")])), w(t, 0, 0), p(() => g.header, () => {
|
|
182
|
+
let e = M();
|
|
183
|
+
return S(() => C(e, [A(N).e("header")])), w(e, null, 0), h("header", null, () => {
|
|
184
|
+
let e = ae(), t = u(e), n = k(t);
|
|
185
|
+
return S(() => {
|
|
186
|
+
let r = A(N);
|
|
187
|
+
C(e, [r.e("title")]), C(t, r.e("title-text")), E(n, O(g.title));
|
|
188
|
+
}), w(e, null, 1), p(() => g.desc, () => {
|
|
189
|
+
let e = ie(), t = k(e);
|
|
190
|
+
return S(() => {
|
|
191
|
+
C(e, A(N).e("title-desc")), E(t, O(g.desc));
|
|
192
|
+
}), e;
|
|
186
193
|
}), e;
|
|
187
|
-
}),
|
|
194
|
+
}), w(e, null, 1), p(() => g.closable, () => f(a, {
|
|
188
195
|
circle: "",
|
|
189
196
|
text: "",
|
|
190
197
|
size: "small",
|
|
191
198
|
onClick: () => G
|
|
192
|
-
}, { icon: () =>
|
|
193
|
-
}),
|
|
194
|
-
let e =
|
|
195
|
-
return
|
|
196
|
-
|
|
197
|
-
}),
|
|
198
|
-
},
|
|
199
|
-
let e =
|
|
200
|
-
return
|
|
201
|
-
}),
|
|
202
|
-
}),
|
|
199
|
+
}, { icon: () => f(A(i)) })), e;
|
|
200
|
+
}), S(() => C(n, [A(N).e("body")])), w(n, null, 0), p(() => g.scrollContent, () => f(o, { $: [() => ({ ...g.scrollbarProps })] }, () => h("default", null, null, 4)), () => {
|
|
201
|
+
let e = M();
|
|
202
|
+
return S(() => {
|
|
203
|
+
C(e, [A(N).e("content")]), T(e, g.bodyStyle);
|
|
204
|
+
}), w(e, null, 0), h(), e;
|
|
205
|
+
}, 1541), w(t, null, 2), p(() => g.footer, () => {
|
|
206
|
+
let e = M();
|
|
207
|
+
return S(() => C(e, [A(N).e("footer")])), w(e, null, 0), h("footer"), e;
|
|
208
|
+
}), l(e, () => L.value), e;
|
|
209
|
+
}), l(e, () => R.value), pe(e, "drawerContainerRef"), e;
|
|
203
210
|
}, !0);
|
|
204
211
|
}
|
|
205
212
|
});
|
|
@@ -21,6 +21,7 @@ export declare const SDrawer: ((__VLS_props: NonNullable<Awaited<typeof __VLS_se
|
|
|
21
21
|
resizable?: boolean | undefined;
|
|
22
22
|
to?: (string | HTMLElement) | undefined;
|
|
23
23
|
title?: string | undefined;
|
|
24
|
+
desc?: string | undefined;
|
|
24
25
|
header?: boolean | undefined;
|
|
25
26
|
footer?: boolean | undefined;
|
|
26
27
|
closable?: boolean | undefined;
|
package/dist/es/components/src/dropdown/dropdown.vue_vue_type_script_setup_true_vapor_true_lang.mjs
CHANGED
|
@@ -7,27 +7,30 @@ import { createComponent as r, createSlot as i, defineVaporComponent as a, provi
|
|
|
7
7
|
var m = d("<div>"), h = d("<div>", 1), g = /*@__PURE__*/ a({
|
|
8
8
|
name: "SDropdown",
|
|
9
9
|
__name: "dropdown",
|
|
10
|
-
props: {
|
|
10
|
+
props: {
|
|
11
|
+
delayClose: { type: Boolean },
|
|
12
|
+
popoverProps: {}
|
|
13
|
+
},
|
|
11
14
|
setup(a) {
|
|
12
|
-
let d = e("dropdown"),
|
|
13
|
-
|
|
15
|
+
let d = a, g = e("dropdown"), _ = p("popoverRef"), v = null, y = () => {
|
|
16
|
+
v &&= (v(), null);
|
|
14
17
|
};
|
|
15
|
-
o(n, { itemClick: () => (
|
|
16
|
-
|
|
18
|
+
o(n, { itemClick: () => (_.value?.hide(), new Promise((e) => {
|
|
19
|
+
d.delayClose ? v = e : e();
|
|
17
20
|
})) });
|
|
18
|
-
let
|
|
19
|
-
return s(() => c(
|
|
21
|
+
let b = h();
|
|
22
|
+
return s(() => c(b, [f(g).b()])), l(b, null, 0), u(r(f(t), { $: [() => ({
|
|
20
23
|
trigger: "click",
|
|
21
24
|
placement: a.popoverProps?.trigger === "contextmenu" ? "bottom-start" : "bottom",
|
|
22
25
|
alignPoint: a.popoverProps?.trigger === "contextmenu",
|
|
23
26
|
...a.popoverProps
|
|
24
|
-
}), { onAfterLeave: () =>
|
|
27
|
+
}), { onAfterLeave: () => y }] }, {
|
|
25
28
|
content: () => {
|
|
26
29
|
let e = m();
|
|
27
|
-
return s(() => c(e, f(
|
|
30
|
+
return s(() => c(e, f(g).e("list"))), l(e, null, 0), i("content"), e;
|
|
28
31
|
},
|
|
29
32
|
default: () => i("default", null, null, 4)
|
|
30
|
-
}),
|
|
33
|
+
}), _, null, "popoverRef"), b;
|
|
31
34
|
}
|
|
32
35
|
});
|
|
33
36
|
//#endregion
|
|
@@ -7,6 +7,7 @@ export declare const SDropdown: ((__VLS_props: NonNullable<Awaited<typeof __VLS_
|
|
|
7
7
|
emit: {};
|
|
8
8
|
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
9
9
|
props: PublicProps & {
|
|
10
|
+
delayClose?: boolean | undefined;
|
|
10
11
|
popoverProps?: PopoverProps | undefined;
|
|
11
12
|
} & (typeof globalThis extends {
|
|
12
13
|
__VLS_PROPS_FALLBACK: infer P;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { InjectionKey } from 'vue';
|
|
2
2
|
import { PopoverProps } from '../popover';
|
|
3
3
|
export interface DropdownProps {
|
|
4
|
+
/** 延迟关闭(用于卸载组件时延迟关闭) */
|
|
5
|
+
delayClose?: boolean;
|
|
4
6
|
/** 弹出层属性 [PopoverProps](/components/other/popover#popover-props)*/
|
|
5
7
|
popoverProps?: PopoverProps;
|
|
6
8
|
}
|