@me-framework/me-ui-antdv-next 0.0.23 → 0.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -0
- package/dist/base/index.js +0 -0
- package/dist/base.css +1 -0
- package/dist/base.d.ts +1 -0
- package/dist/body/index.js +153 -0
- package/dist/{components/body → body}/index.vue.d.ts +3 -3
- package/dist/body.css +1 -0
- package/dist/box/index.js +170 -0
- package/dist/box.css +1 -0
- package/dist/breadcrumb/index.js +99 -0
- package/dist/breadcrumb.css +1 -0
- package/dist/card/index.js +154 -0
- package/dist/card.css +1 -0
- package/dist/chunks/icon-DdoH0MfT.js +156 -0
- package/dist/chunks/input-icon-selector-D5c45QL8.js +227 -0
- package/dist/chunks/message-CPHX2tAR.js +290 -0
- package/dist/chunks/modal-Dke8ng3P.js +178 -0
- package/dist/chunks/rolldown-runtime-DtPi1Y-2.js +13 -0
- package/dist/icon/index.js +27 -0
- package/dist/icon.css +1 -0
- package/dist/index.d.ts +34 -34
- package/dist/input-gps/index.js +451 -0
- package/dist/input-gps.css +1 -0
- package/dist/input-icon-selector/index.js +2 -0
- package/dist/input-icon-selector.css +1 -0
- package/dist/input-radio/index.js +96 -0
- package/dist/{components/input-radio → input-radio}/index.vue.d.ts +3 -3
- package/dist/input-radio.css +1 -0
- package/dist/load-json/index.js +24405 -0
- package/dist/load-json.css +1 -0
- package/dist/login-page/index.js +272 -0
- package/dist/login-page.css +1 -0
- package/dist/me-ui-antdv-next.js +150 -138
- package/dist/me-ui-antdv-next.umd.cjs +2 -2
- package/dist/menu/index.js +465 -0
- package/dist/{components/menu → menu}/types.d.ts +11 -0
- package/dist/menu.css +1 -0
- package/dist/message/index.js +2 -0
- package/dist/message.css +1 -0
- package/dist/modal/index.js +2 -0
- package/dist/modal.css +1 -0
- package/dist/nav/index.js +560 -0
- package/dist/nav.css +1 -0
- package/dist/resolver/index.d.ts +7 -0
- package/dist/resolver/index.js +36 -0
- package/dist/resolver/resolver-map.d.ts +6 -0
- package/dist/resolver/resolver-type.d.ts +19 -0
- package/dist/resolver.d.ts +2 -0
- package/dist/shims-vue.d.ts +3 -0
- package/dist/skeleton/index.js +141 -0
- package/dist/skeleton.css +1 -0
- package/dist/{me-ui-antdv-next.css → style.css} +1 -1
- package/dist/styles/base.d.ts +0 -0
- package/dist/tree-menu/index.js +890 -0
- package/dist/tree-menu.css +1 -0
- package/package.json +15 -6
- package/dist/{components/body → body}/index.d.ts +0 -0
- package/dist/{components/body → body}/types.d.ts +0 -0
- package/dist/{components/box → box}/index.d.ts +0 -0
- package/dist/{components/box → box}/index.vue.d.ts +2 -2
- package/dist/{components/box → box}/types.d.ts +0 -0
- package/dist/{components/breadcrumb → breadcrumb}/index.d.ts +0 -0
- package/dist/{components/breadcrumb → breadcrumb}/index.vue.d.ts +0 -0
- package/dist/{components/breadcrumb → breadcrumb}/types.d.ts +0 -0
- package/dist/{components/card → card}/index.d.ts +0 -0
- package/dist/{components/card → card}/index.vue.d.ts +4 -4
- package/dist/{components/card → card}/types.d.ts +0 -0
- package/dist/{components/icon → icon}/index.d.ts +0 -0
- package/dist/{components/icon → icon}/index.vue.d.ts +2 -2
- package/dist/{components/icon → icon}/types.d.ts +0 -0
- package/dist/{components/input-gps → input-gps}/index.d.ts +0 -0
- package/dist/{components/input-gps → input-gps}/index.vue.d.ts +0 -0
- package/dist/{components/input-gps → input-gps}/map.vue.d.ts +0 -0
- package/dist/{components/input-gps → input-gps}/types.d.ts +0 -0
- package/dist/{components/input-icon-selector → input-icon-selector}/index.d.ts +0 -0
- package/dist/{components/input-icon-selector → input-icon-selector}/index.vue.d.ts +5 -5
- package/dist/{components/input-icon-selector → input-icon-selector}/types.d.ts +0 -0
- package/dist/{components/input-radio → input-radio}/index.d.ts +0 -0
- package/dist/{components/input-radio → input-radio}/types.d.ts +0 -0
- package/dist/{components/load-json → load-json}/index.d.ts +0 -0
- package/dist/{components/load-json → load-json}/index.vue.d.ts +1 -1
- package/dist/{components/load-json → load-json}/types.d.ts +0 -0
- package/dist/{components/login-page → login-page}/index.d.ts +0 -0
- package/dist/{components/login-page → login-page}/index.vue.d.ts +0 -0
- package/dist/{components/login-page → login-page}/types.d.ts +0 -0
- package/dist/{components/menu → menu}/MenuTreeItem.vue.d.ts +0 -0
- package/dist/{components/menu → menu}/index.d.ts +0 -0
- package/dist/{components/menu → menu}/index.vue.d.ts +2 -2
- package/dist/{components/message → message}/index.d.ts +0 -0
- package/dist/{components/message → message}/index.vue.d.ts +4 -4
- package/dist/{components/message → message}/types.d.ts +0 -0
- package/dist/{components/modal → modal}/index.d.ts +0 -0
- package/dist/{components/modal → modal}/index.vue.d.ts +5 -5
- package/dist/{components/modal → modal}/types.d.ts +0 -0
- package/dist/{components/nav → nav}/composables/useNavDrag.d.ts +0 -0
- package/dist/{components/nav → nav}/composables/useNavScroll.d.ts +0 -0
- package/dist/{components/nav → nav}/index.d.ts +0 -0
- package/dist/{components/nav → nav}/index.vue.d.ts +5 -5
- package/dist/{components/nav → nav}/types.d.ts +0 -0
- package/dist/{components/skeleton → skeleton}/index.d.ts +0 -0
- package/dist/{components/skeleton → skeleton}/index.vue.d.ts +0 -0
- package/dist/{components/skeleton → skeleton}/types.d.ts +0 -0
- package/dist/{components/tree-menu → tree-menu}/TreeMenuActions.vue.d.ts +0 -0
- package/dist/{components/tree-menu → tree-menu}/TreeMenuCard.vue.d.ts +1 -1
- package/dist/{components/tree-menu → tree-menu}/TreeMenuEdit.vue.d.ts +2 -2
- package/dist/{components/tree-menu → tree-menu}/TreeMenuNode.vue.d.ts +0 -0
- package/dist/{components/tree-menu → tree-menu}/index.d.ts +0 -0
- package/dist/{components/tree-menu → tree-menu}/index.vue.d.ts +3 -3
- /package/dist/{components/tree-menu → tree-menu}/types.d.ts +0 -0
package/README.md
CHANGED
|
@@ -70,6 +70,47 @@ app.mount('#app')
|
|
|
70
70
|
</template>
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
+
### 按需引入(推荐,减小打包体积)
|
|
74
|
+
|
|
75
|
+
组件库支持**组件级子路径按需导入**,每个组件可独立引入 JS 与样式,避免全量体积负担。
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
import { createApp } from 'vue'
|
|
79
|
+
import Antd from 'antdv-next'
|
|
80
|
+
import 'antdv-next/dist/reset.css'
|
|
81
|
+
// 1) 先引入基础 token 基线(设计变量::root / html.dark),按需引任意组件都需引一次
|
|
82
|
+
import '@me-framework/me-ui-antdv-next/base.css'
|
|
83
|
+
// 2) 按需引入组件
|
|
84
|
+
import MeMenu from '@me-framework/me-ui-antdv-next/menu'
|
|
85
|
+
import '@me-framework/me-ui-antdv-next/menu/style.css'
|
|
86
|
+
|
|
87
|
+
const app = createApp(App)
|
|
88
|
+
app.use(Antd)
|
|
89
|
+
app.use(MeMenu)
|
|
90
|
+
app.mount('#app')
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### 使用 unplugin-vue-components 自动按需引入
|
|
94
|
+
|
|
95
|
+
在 Vite 项目中配置:
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
import { defineConfig } from 'vite'
|
|
99
|
+
import Components from 'unplugin-vue-components/vite'
|
|
100
|
+
import { MeUiAntdvResolver } from '@me-framework/me-ui-antdv-next/resolver'
|
|
101
|
+
|
|
102
|
+
export default defineConfig({
|
|
103
|
+
plugins: [
|
|
104
|
+
Components({ resolvers: [MeUiAntdvResolver()] }),
|
|
105
|
+
],
|
|
106
|
+
})
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
> **注意**
|
|
110
|
+
> - 按需引入时需**先引一次 `base.css`**,否则 `var(--me-*)` 设计 token 缺失导致样式异常;全量引入(`style.css`)已含 base,无需再引。
|
|
111
|
+
> - 组件内部依赖的兄弟组件(如 `menu` 依赖 `icon`)会随子入口自动引入,无需手动补引。
|
|
112
|
+
> - 需要 TypeScript ≥ 4.7 以支持 `exports` 子路径通配解析。
|
|
113
|
+
|
|
73
114
|
#### 参与贡献
|
|
74
115
|
|
|
75
116
|
1. Fork 本仓库
|
|
File without changes
|
package/dist/base.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--me-color-primary:#1677ff;--me-color-primary-light-3:#4096ff;--me-color-primary-light-5:#69b1ff;--me-color-primary-light-7:#91caff;--me-color-primary-light-8:#bae0ff;--me-color-primary-light-9:#e6f4ff;--me-color-primary-dark-2:#0958d9;--me-color-primary-text:#fff;--me-color-success:#52c41a;--me-color-warning:#faad14;--me-color-danger:#ff4d4f;--me-color-info:#1677ff;--me-text-primary:#000000e0;--me-text-regular:#000000a6;--me-text-secondary:#00000073;--me-text-placeholder:#00000040;--me-text-disabled:#00000040;--me-border-radius-base:6px;--me-border-radius-small:4px;--me-border-radius-round:20px;--me-font-size-base:14px;--me-font-size-large:16px;--me-font-size-small:12px;--me-border-color:#d9d9d9;--me-border-color-light:#e8e8e8;--me-border-color-lighter:#f0f0f0;--me-fill-color:#f5f5f5;--me-fill-color-light:#fafafa;--me-bg-color:#fff;--me-bg-color-overlay:#fff;--me-box-shadow:0 6px 16px 0 #00000014, 0 3px 6px -4px #0000001f, 0 9px 28px 8px #0000000d}html.dark{--me-color-primary:#1677ff;--me-color-primary-light-3:#4096ff;--me-color-primary-light-5:#69b1ff;--me-color-primary-light-7:#91caff;--me-color-primary-light-8:#bae0ff;--me-color-primary-light-9:#e6f4ff;--me-color-primary-dark-2:#0958d9;--me-color-primary-text:#fff;--me-color-success:#52c41a;--me-color-warning:#faad14;--me-color-danger:#ff4d4f;--me-color-info:#1677ff;--me-text-primary:#ffffffe0;--me-text-regular:#ffffffa6;--me-text-secondary:#ffffff73;--me-text-placeholder:#ffffff4d;--me-text-disabled:#ffffff40;--me-border-color:#424242;--me-border-color-light:#303030;--me-border-color-lighter:#ffffff0f;--me-fill-color:#ffffff1f;--me-fill-color-light:#ffffff0a;--me-bg-color:#141414;--me-bg-color-overlay:#1f1f1f;--me-box-shadow:0 6px 16px 0 #00000052, 0 3px 6px -4px #0006, 0 9px 28px 8px #0003}.me-ui-antdv-next{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}
|
package/dist/base.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { computed as e, createBlock as t, createElementBlock as n, createElementVNode as r, createTextVNode as i, createVNode as a, defineComponent as o, mergeProps as s, normalizeStyle as c, openBlock as l, renderSlot as u, resolveComponent as d, resolveDynamicComponent as f, withCtx as p } from "vue";
|
|
2
|
+
//#region src/components/body/index.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
+
var m = {
|
|
4
|
+
key: 0,
|
|
5
|
+
class: "me-body__loading"
|
|
6
|
+
}, h = {
|
|
7
|
+
key: 1,
|
|
8
|
+
class: "me-body__loader"
|
|
9
|
+
}, g = {
|
|
10
|
+
key: 1,
|
|
11
|
+
class: "me-body__error-default"
|
|
12
|
+
}, _ = {
|
|
13
|
+
key: 1,
|
|
14
|
+
class: "me-body__empty-default"
|
|
15
|
+
}, v = {
|
|
16
|
+
key: 3,
|
|
17
|
+
class: "me-body__result"
|
|
18
|
+
}, y = { class: "me-body__result-inner" }, b = {
|
|
19
|
+
key: 4,
|
|
20
|
+
class: "me-body--normal"
|
|
21
|
+
}, x = {
|
|
22
|
+
key: 5,
|
|
23
|
+
class: "me-body--full"
|
|
24
|
+
}, S = { class: "me-body__full-header" }, C = { class: "me-body__full-main me-div-scroller" }, w = { class: "me-body__full-footer" }, T = /* @__PURE__ */ o({
|
|
25
|
+
name: "MeBody",
|
|
26
|
+
__name: "index",
|
|
27
|
+
props: {
|
|
28
|
+
background: {
|
|
29
|
+
type: String,
|
|
30
|
+
default: "#fff"
|
|
31
|
+
},
|
|
32
|
+
space: {
|
|
33
|
+
type: [Number, String],
|
|
34
|
+
default: 0
|
|
35
|
+
},
|
|
36
|
+
mode: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: "normal"
|
|
39
|
+
},
|
|
40
|
+
fullScreen: {
|
|
41
|
+
type: Boolean,
|
|
42
|
+
default: !1
|
|
43
|
+
},
|
|
44
|
+
loading: {
|
|
45
|
+
type: [Boolean, Object],
|
|
46
|
+
default: !1
|
|
47
|
+
},
|
|
48
|
+
error: {
|
|
49
|
+
type: [Boolean, Object],
|
|
50
|
+
default: !1
|
|
51
|
+
},
|
|
52
|
+
empty: {
|
|
53
|
+
type: [Boolean, Object],
|
|
54
|
+
default: !1
|
|
55
|
+
},
|
|
56
|
+
emptyDescription: {
|
|
57
|
+
type: String,
|
|
58
|
+
default: "暂无数据"
|
|
59
|
+
},
|
|
60
|
+
result: {
|
|
61
|
+
type: String,
|
|
62
|
+
default: void 0
|
|
63
|
+
},
|
|
64
|
+
title: {
|
|
65
|
+
type: String,
|
|
66
|
+
default: void 0
|
|
67
|
+
},
|
|
68
|
+
subTitle: {
|
|
69
|
+
type: String,
|
|
70
|
+
default: void 0
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
emits: ["retry"],
|
|
74
|
+
setup(o, { emit: T }) {
|
|
75
|
+
let E = o, D = T, O = e(() => E.loading ? "loading" : E.error ? "error" : E.empty ? "empty" : E.result ? "result" : E.mode === "full" ? "full" : "normal"), k = e(() => {
|
|
76
|
+
if (E.fullScreen) return "0";
|
|
77
|
+
let e = E.space;
|
|
78
|
+
return typeof e == "number" ? `${e}px` : e;
|
|
79
|
+
}), A = e(() => ({ height: O.value === "normal" ? "fit-content" : "100%" })), j = e(() => typeof E.loading == "object" && E.loading !== null), M = e(() => typeof E.error == "object" && E.error !== null), N = e(() => typeof E.empty == "object" && E.empty !== null), P = () => {
|
|
80
|
+
D("retry");
|
|
81
|
+
};
|
|
82
|
+
return (e, T) => {
|
|
83
|
+
let D = d("a-button"), F = d("a-result"), I = d("a-empty");
|
|
84
|
+
return l(), n("div", s({
|
|
85
|
+
class: "me-body",
|
|
86
|
+
style: A.value
|
|
87
|
+
}, e.$attrs), [O.value === "loading" ? (l(), n("div", m, [r("div", {
|
|
88
|
+
class: "me-body__loading-inner",
|
|
89
|
+
style: c({
|
|
90
|
+
background: E.background,
|
|
91
|
+
margin: k.value
|
|
92
|
+
})
|
|
93
|
+
}, [u(e.$slots, "me-body-loading", {}, () => [j.value ? (l(), t(f(E.loading), { key: 0 })) : (l(), n("div", h, [...T[0] ||= [r("div", { class: "me-body__loader-text" }, "Loading", -1), r("div", { class: "me-body__loader-mario" }, null, -1)]]))])], 4)])) : O.value === "error" ? (l(), n("div", {
|
|
94
|
+
key: 1,
|
|
95
|
+
class: "me-body__error",
|
|
96
|
+
style: c({ padding: k.value })
|
|
97
|
+
}, [u(e.$slots, "me-body-error", {}, () => [M.value ? (l(), t(f(E.error), { key: 0 })) : (l(), n("div", g, [a(F, {
|
|
98
|
+
status: "error",
|
|
99
|
+
title: "加载失败",
|
|
100
|
+
"sub-title": "请稍后重试"
|
|
101
|
+
}, {
|
|
102
|
+
extra: p(() => [a(D, {
|
|
103
|
+
type: "primary",
|
|
104
|
+
onClick: P
|
|
105
|
+
}, {
|
|
106
|
+
default: p(() => [...T[1] ||= [i("重新加载", -1)]]),
|
|
107
|
+
_: 1
|
|
108
|
+
})]),
|
|
109
|
+
_: 1
|
|
110
|
+
})]))])], 4)) : O.value === "empty" ? (l(), n("div", {
|
|
111
|
+
key: 2,
|
|
112
|
+
class: "me-body__empty",
|
|
113
|
+
style: c({ padding: k.value })
|
|
114
|
+
}, [u(e.$slots, "me-body-empty", {}, () => [N.value ? (l(), t(f(E.empty), { key: 0 })) : (l(), n("div", _, [a(I, { description: o.emptyDescription }, null, 8, ["description"])]))])], 4)) : O.value === "result" ? (l(), n("div", v, [r("div", y, [a(F, {
|
|
115
|
+
status: E.result,
|
|
116
|
+
title: E.title,
|
|
117
|
+
"sub-title": E.subTitle
|
|
118
|
+
}, {
|
|
119
|
+
extra: p(() => [u(e.$slots, "me-body-result", {}, () => [u(e.$slots, "default")])]),
|
|
120
|
+
_: 3
|
|
121
|
+
}, 8, [
|
|
122
|
+
"status",
|
|
123
|
+
"title",
|
|
124
|
+
"sub-title"
|
|
125
|
+
])])])) : O.value === "normal" ? (l(), n("div", b, [r("div", { style: c({
|
|
126
|
+
background: E.background,
|
|
127
|
+
margin: k.value
|
|
128
|
+
}) }, [
|
|
129
|
+
u(e.$slots, "me-body-header"),
|
|
130
|
+
u(e.$slots, "me-body-main", {}, () => [u(e.$slots, "default")]),
|
|
131
|
+
u(e.$slots, "me-body-footer")
|
|
132
|
+
], 4)])) : (l(), n("div", x, [r("div", {
|
|
133
|
+
class: "me-body__full-inner",
|
|
134
|
+
style: c({
|
|
135
|
+
background: E.background,
|
|
136
|
+
margin: k.value
|
|
137
|
+
})
|
|
138
|
+
}, [
|
|
139
|
+
r("div", S, [u(e.$slots, "me-body-header")]),
|
|
140
|
+
r("div", C, [u(e.$slots, "me-body-main", {}, () => [u(e.$slots, "default")])]),
|
|
141
|
+
r("div", w, [u(e.$slots, "me-body-footer")])
|
|
142
|
+
], 4)]))], 16);
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
//#endregion
|
|
147
|
+
//#region src/components/body/index.ts
|
|
148
|
+
T.install = (e) => {
|
|
149
|
+
e.component("MeBody", T);
|
|
150
|
+
};
|
|
151
|
+
var E = T;
|
|
152
|
+
//#endregion
|
|
153
|
+
export { T as MeBody, E as default };
|
|
@@ -155,15 +155,15 @@ declare const __VLS_base: import('vue').DefineComponent<import('vue').ExtractPro
|
|
|
155
155
|
onRetry?: ((...args: any[]) => any) | undefined;
|
|
156
156
|
}>, {
|
|
157
157
|
loading: boolean | Component;
|
|
158
|
-
title: string;
|
|
159
|
-
mode: "normal" | "full";
|
|
160
|
-
result: "success" | "warning" | "info" | "error";
|
|
161
158
|
error: boolean | Component;
|
|
162
159
|
empty: boolean | Component;
|
|
160
|
+
result: "error" | "success" | "warning" | "info";
|
|
163
161
|
background: string;
|
|
164
162
|
space: string | number;
|
|
163
|
+
mode: "normal" | "full";
|
|
165
164
|
fullScreen: boolean;
|
|
166
165
|
emptyDescription: string;
|
|
166
|
+
title: string;
|
|
167
167
|
subTitle: string;
|
|
168
168
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
169
169
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
package/dist/body.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.me-body{box-sizing:border-box;width:100%;height:100%}.me-body__loading{width:100%;height:100%;display:flex;overflow:hidden}.me-body__loading-inner{background:var(--me-bg-color,#fff);flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.me-body__loader{background:linear-gradient(#000 0 0) 0 0/100% 100% no-repeat content-box padding-box;width:fit-content;padding:30px 2px 50px;font-family:monospace;font-size:17px;font-weight:700;line-height:1.4;animation:2s cubic-bezier(1,175,.5,175) infinite me-body-loader-bg;position:relative;overflow:hidden}.me-body__loader-text{animation:2s infinite me-body-loader-text;display:inline-block}.me-body__loader-mario{width:34px;height:28px;animation:inherit;background-color:#0000;background-image:linear-gradient(90deg,#0000 12px,#f92033 0 22px,#0000 0 26px,#fdc98d 0 32px,#0000),linear-gradient(90deg,#0000 10px,#f92033 0 28px,#fdc98d 0 32px,#0000 0),linear-gradient(90deg,#0000 10px,#643700 0 16px,#fdc98d 0 20px,#000 0 22px,#fdc98d 0 24px,#000 0 26px,#f92033 0 32px,#0000 0),linear-gradient(90deg,#0000 8px,#643700 0 10px,#fdc98d 0 12px,#643700 0 14px,#fdc98d 0 20px,#000 0 22px,#fdc98d 0 28px,#f92033 0 32px,#0000 0),linear-gradient(90deg,#0000 8px,#643700 0 10px,#fdc98d 0 12px,#643700 0 16px,#fdc98d 0 22px,#000 0 24px,#fdc98d 0 30px,#f92033 0 32px,#0000 0),linear-gradient(90deg,#0000 8px,#643700 0 12px,#fdc98d 0 20px,#000 0 28px,#f92033 0 30px,#0000 0),linear-gradient(90deg,#0000 12px,#fdc98d 0 26px,#f92033 0 30px,#0000 0),linear-gradient(90deg,#fdc98d 6px,#f92033 0 14px,#222a87 0 16px,#f92033 0 22px,#222a87 0 24px,#f92033 0 28px,#0000 0 32px,#643700 0),linear-gradient(90deg,#fdc98d 6px,#f92033 0 16px,#222a87 0 18px,#f92033 0 24px,#f92033 0 26px,#0000 0 30px,#643700 0),linear-gradient(90deg,#0000 10px,#f92033 0 16px,#222a87 0 24px,#feee49 0 26px,#222a87 0 30px,#643700 0),linear-gradient(90deg,#0000 12px,#222a87 0 18px,#feee49 0 20px,#222a87 0 30px,#643700 0),linear-gradient(90deg,#0000 8px,#643700 0 12px,#222a87 0 30px,#643700 0),linear-gradient(90deg,#0000 6px,#643700 0 14px,#222a87 0 26px,#0000 0),linear-gradient(90deg,#0000 6px,#643700 0 10px,#0000 0);background-position:left 50% bottom 26px,left 50% bottom 24px,left 50% bottom 22px,left 50% bottom 20px,left 50% bottom 18px,left 50% bottom 16px,left 50% bottom 14px,left 50% bottom 12px,left 50% bottom 10px,left 50% bottom 8px,left 50% bottom 6px,left 50% bottom 4px,left 50% bottom 2px,left 50% bottom 0;background-repeat:no-repeat;background-size:34px 2px;background-attachment:scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box,border-box;animation-name:me-body-loader-mario;position:absolute;top:110%;left:calc(50% - 16px)}.me-body__error{box-sizing:border-box;width:100%;height:100%}.me-body__error-default{height:100%}.me-body__error-default .ant-result{background:var(--me-bg-color,#fff);height:100%}.me-body__empty{box-sizing:border-box;width:100%;height:100%}.me-body__empty-default{justify-content:center;align-items:center;height:100%;display:flex}.me-body__result{width:100%;height:100%}.me-body__result-inner{box-sizing:border-box;height:100%;padding:15px}.me-body__result-inner .ant-result{background:var(--me-bg-color,#fff);height:100%}.me-body--normal{width:100%}.me-body--full{width:100%;height:100%;display:flex;overflow:hidden}.me-body__full-inner{flex-direction:column;flex:1;width:100%;display:flex;overflow:hidden}.me-body__full-header{flex-shrink:0}.me-body__full-main{flex:1;height:100%;overflow:auto}.me-body__full-footer{flex-shrink:0}@keyframes me-body-loader-bg{0%,30%{background-position:0 0}50%,to{background-position:0 -.1px}}@keyframes me-body-loader-mario{50%,to{top:109.5%}}@keyframes me-body-loader-text{0%,30%{transform:translateY(0)}80%,to{transform:translateY(-260%)}}html.dark .me-body__loading-inner,html.dark .me-body__error-default .ant-result,html.dark .me-body__result-inner .ant-result{background:var(--me-bg-color,#fff)}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { computed as e, createCommentVNode as t, createElementBlock as n, createElementVNode as r, createTextVNode as i, defineComponent as a, mergeProps as o, normalizeClass as s, normalizeStyle as c, openBlock as l, renderSlot as u, toDisplayString as d, useSlots as f } from "vue";
|
|
2
|
+
//#region src/components/box/index.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
+
var p = {
|
|
4
|
+
key: 1,
|
|
5
|
+
class: "me-box__header-left"
|
|
6
|
+
}, m = {
|
|
7
|
+
key: 2,
|
|
8
|
+
class: "me-box__title"
|
|
9
|
+
}, h = {
|
|
10
|
+
key: 3,
|
|
11
|
+
class: "me-box__header-right"
|
|
12
|
+
}, g = /* @__PURE__ */ a({
|
|
13
|
+
name: "MeBox",
|
|
14
|
+
__name: "index",
|
|
15
|
+
props: {
|
|
16
|
+
type: {
|
|
17
|
+
type: String,
|
|
18
|
+
default: "default"
|
|
19
|
+
},
|
|
20
|
+
title: {
|
|
21
|
+
type: String,
|
|
22
|
+
default: ""
|
|
23
|
+
},
|
|
24
|
+
width: {
|
|
25
|
+
type: String,
|
|
26
|
+
default: ""
|
|
27
|
+
},
|
|
28
|
+
height: {
|
|
29
|
+
type: String,
|
|
30
|
+
default: ""
|
|
31
|
+
},
|
|
32
|
+
showTrafficLights: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
default: !0
|
|
35
|
+
},
|
|
36
|
+
trafficLightPosition: {
|
|
37
|
+
type: String,
|
|
38
|
+
default: "left"
|
|
39
|
+
},
|
|
40
|
+
bodyStyle: {
|
|
41
|
+
type: Object,
|
|
42
|
+
default: () => ({})
|
|
43
|
+
},
|
|
44
|
+
customStyle: {
|
|
45
|
+
type: Object,
|
|
46
|
+
default: () => ({})
|
|
47
|
+
},
|
|
48
|
+
stripeAnimated: {
|
|
49
|
+
type: Boolean,
|
|
50
|
+
default: !0
|
|
51
|
+
},
|
|
52
|
+
stripeDirection: {
|
|
53
|
+
type: String,
|
|
54
|
+
default: "right"
|
|
55
|
+
},
|
|
56
|
+
stripeSpeed: {
|
|
57
|
+
type: Number,
|
|
58
|
+
default: 30
|
|
59
|
+
},
|
|
60
|
+
stripeSize: {
|
|
61
|
+
type: Number,
|
|
62
|
+
default: 24
|
|
63
|
+
},
|
|
64
|
+
stripeThickness: {
|
|
65
|
+
type: Number,
|
|
66
|
+
default: 2
|
|
67
|
+
},
|
|
68
|
+
stripeColor: {
|
|
69
|
+
type: String,
|
|
70
|
+
default: ""
|
|
71
|
+
},
|
|
72
|
+
stripeBgColor: {
|
|
73
|
+
type: String,
|
|
74
|
+
default: ""
|
|
75
|
+
},
|
|
76
|
+
stripeBorderColor: {
|
|
77
|
+
type: String,
|
|
78
|
+
default: ""
|
|
79
|
+
},
|
|
80
|
+
stripeBorderWidth: {
|
|
81
|
+
type: Number,
|
|
82
|
+
default: 2
|
|
83
|
+
},
|
|
84
|
+
stripeAngle: {
|
|
85
|
+
type: String,
|
|
86
|
+
default: "right"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
emits: [
|
|
90
|
+
"close",
|
|
91
|
+
"minimize",
|
|
92
|
+
"maximize"
|
|
93
|
+
],
|
|
94
|
+
setup(a, { emit: g }) {
|
|
95
|
+
let _ = a, v = g, y = f(), b = e(() => _.type === "mac" || !!(_.title || y.title || y["header-left"] || y["header-right"])), x = e(() => {
|
|
96
|
+
let e = {
|
|
97
|
+
width: _.width,
|
|
98
|
+
height: _.height,
|
|
99
|
+
..._.customStyle
|
|
100
|
+
};
|
|
101
|
+
return _.type === "stripe" && (_.stripeBorderColor && (e["--me-box-stripe-border-color"] = _.stripeBorderColor), e["--me-box-stripe-border-width"] = `${_.stripeBorderWidth}px`), e;
|
|
102
|
+
}), S = e(() => {
|
|
103
|
+
if (_.type === "stripe") {
|
|
104
|
+
let e = {
|
|
105
|
+
"--me-box-stripe-speed": `${_.stripeSpeed}px`,
|
|
106
|
+
"--me-box-stripe-size": `${_.stripeSize}px`,
|
|
107
|
+
"--me-box-stripe-thickness": `${_.stripeThickness}px`
|
|
108
|
+
};
|
|
109
|
+
return _.stripeColor && (e["--me-box-stripe-color"] = _.stripeColor), _.stripeBgColor && (e["--me-box-stripe-bg-color"] = _.stripeBgColor), {
|
|
110
|
+
...e,
|
|
111
|
+
..._.bodyStyle
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
return _.bodyStyle;
|
|
115
|
+
}), C = () => {
|
|
116
|
+
v("close");
|
|
117
|
+
}, w = () => {
|
|
118
|
+
v("minimize");
|
|
119
|
+
}, T = () => {
|
|
120
|
+
v("maximize");
|
|
121
|
+
};
|
|
122
|
+
return (e, a) => (l(), n("div", o({
|
|
123
|
+
class: ["me-box", [`me-box--${_.type}`]],
|
|
124
|
+
style: x.value
|
|
125
|
+
}, e.$attrs), [b.value ? (l(), n("div", {
|
|
126
|
+
key: 0,
|
|
127
|
+
class: s(["me-box__header", [_.trafficLightPosition === "right" ? "me-box__header--right" : "me-box__header--left"]])
|
|
128
|
+
}, [
|
|
129
|
+
_.type === "mac" && _.showTrafficLights ? (l(), n("div", {
|
|
130
|
+
key: 0,
|
|
131
|
+
class: s(["me-box__traffic-lights", [_.trafficLightPosition === "right" ? "me-box__traffic-lights--right" : "me-box__traffic-lights--left"]])
|
|
132
|
+
}, [
|
|
133
|
+
r("div", {
|
|
134
|
+
class: "me-box__traffic-light me-box__traffic-light--red",
|
|
135
|
+
title: "关闭",
|
|
136
|
+
onClick: C
|
|
137
|
+
}),
|
|
138
|
+
r("div", {
|
|
139
|
+
class: "me-box__traffic-light me-box__traffic-light--yellow",
|
|
140
|
+
title: "最小化",
|
|
141
|
+
onClick: w
|
|
142
|
+
}),
|
|
143
|
+
r("div", {
|
|
144
|
+
class: "me-box__traffic-light me-box__traffic-light--green",
|
|
145
|
+
title: "最大化",
|
|
146
|
+
onClick: T
|
|
147
|
+
})
|
|
148
|
+
], 2)) : t("", !0),
|
|
149
|
+
e.$slots["header-left"] ? (l(), n("div", p, [u(e.$slots, "header-left")])) : t("", !0),
|
|
150
|
+
_.title || e.$slots.title ? (l(), n("div", m, [u(e.$slots, "title", {}, () => [i(d(_.title), 1)])])) : t("", !0),
|
|
151
|
+
e.$slots["header-right"] ? (l(), n("div", h, [u(e.$slots, "header-right")])) : t("", !0)
|
|
152
|
+
], 2)) : t("", !0), r("div", {
|
|
153
|
+
class: s(["me-box__body", [
|
|
154
|
+
_.type === "stripe" ? "me-box__body--stripe" : "",
|
|
155
|
+
_.type === "stripe" && _.stripeAnimated ? "me-box__body--stripe-animated" : "",
|
|
156
|
+
_.type === "stripe" ? `me-box__body--stripe-dir-${_.stripeDirection}` : "",
|
|
157
|
+
_.type === "stripe" ? `me-box__body--stripe-angle-${_.stripeAngle}` : ""
|
|
158
|
+
]]),
|
|
159
|
+
style: c(S.value)
|
|
160
|
+
}, [u(e.$slots, "default")], 6)], 16));
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
//#endregion
|
|
164
|
+
//#region src/components/box/index.ts
|
|
165
|
+
g.install = (e) => {
|
|
166
|
+
e.component("MeBox", g);
|
|
167
|
+
};
|
|
168
|
+
var _ = g;
|
|
169
|
+
//#endregion
|
|
170
|
+
export { g as MeBox, _ as default };
|
package/dist/box.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.me-box{box-sizing:border-box;background-color:var(--me-bg-color);border:1px solid var(--me-border-color-light);border-radius:var(--me-border-radius-base);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.me-box--mac{--me-box-header-bg:var(--me-fill-color);--me-box-header-height:38px;--me-box-traffic-light-red:#ff5f57;--me-box-traffic-light-yellow:#febc2e;--me-box-traffic-light-green:#28c840;--me-box-shadow:var(--me-box-shadow);box-shadow:var(--me-box-shadow);border-radius:12px}.me-box--mac .me-box__header{height:var(--me-box-header-height);background-color:var(--me-box-header-bg);border-bottom:1px solid var(--me-border-color-light);-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;padding:0 12px;display:flex}.me-box--mac .me-box__header--left{justify-content:flex-start}.me-box--mac .me-box__header--right{justify-content:flex-end}.me-box--mac .me-box__title{color:var(--me-text-primary)}.me-box__traffic-lights{flex-shrink:0;align-items:center;column-gap:8px;display:flex}.me-box__traffic-lights--right{order:2}.me-box__traffic-lights--left{order:0}.me-box__traffic-light{cursor:pointer;border-radius:50%;flex-shrink:0;width:12px;height:12px;transition:filter .15s;display:block;box-shadow:inset 0 0 0 .5px #0003}.me-box__traffic-light:hover{filter:brightness(.9)}.me-box__traffic-light--red{background-color:var(--me-box-traffic-light-red)}.me-box__traffic-light--yellow{background-color:var(--me-box-traffic-light-yellow)}.me-box__traffic-light--green{background-color:var(--me-box-traffic-light-green)}.me-box--stripe{border:var(--me-box-stripe-border-width) dashed var(--me-box-stripe-border-color);--me-box-stripe-border-width:2px;--me-box-stripe-border-color:var(--me-color-primary-light-5);--me-box-stripe-bg-color:var(--me-color-primary-light-9);--me-box-stripe-color:#ffffff8c;--me-box-stripe-size:24px;--me-box-stripe-thickness:2px;--me-box-stripe-speed:30px;border-radius:12px}.me-box--stripe .me-box__body--stripe{isolation:isolate;background-color:var(--me-box-stripe-bg-color);position:relative;overflow:hidden}.me-box--stripe .me-box__body--stripe:before{content:"";pointer-events:none;z-index:-1;width:200%;height:200%;position:absolute;top:-50%;left:-50%}.me-box--stripe .me-box__body--stripe-angle-right:before{background-image:repeating-linear-gradient(-45deg, var(--me-box-stripe-color) 0 var(--me-box-stripe-thickness), transparent var(--me-box-stripe-thickness) var(--me-box-stripe-size));--me-box-stripe-tx:calc(var(--me-box-stripe-size) * .707);--me-box-stripe-ty:calc(var(--me-box-stripe-size) * .707)}.me-box--stripe .me-box__body--stripe-angle-left:before{background-image:repeating-linear-gradient(45deg, var(--me-box-stripe-color) 0 var(--me-box-stripe-thickness), transparent var(--me-box-stripe-thickness) var(--me-box-stripe-size));--me-box-stripe-tx:calc(var(--me-box-stripe-size) * -.707);--me-box-stripe-ty:calc(var(--me-box-stripe-size) * .707)}.me-box--stripe .me-box__body--stripe-animated:before{animation:2s linear infinite me-box-stripe-scroll;animation-duration:calc(var(--me-box-stripe-size) * 1s / var(--me-box-stripe-speed))}.me-box--stripe .me-box__body--stripe-animated.me-box__body--stripe-dir-left:before{animation-direction:reverse}.me-box--default .me-box__header{border-bottom:1px solid var(--me-border-color-light);font-weight:600;font-size:var(--me-font-size-large);padding:12px 16px}.me-box--default .me-box__title{font-size:var(--me-font-size-large);color:var(--me-text-primary);text-align:left;font-weight:600}.me-box__header{flex-shrink:0;align-items:center;display:flex}.me-box__title{text-overflow:ellipsis;white-space:nowrap;flex:1;order:1;overflow:hidden}.me-box__header-right{order:2;align-items:center;display:flex}.me-box__header-left{flex:1;order:1;align-items:center;display:flex}.me-box__body{min-height:0;color:var(--me-text-regular);flex:auto;padding:0;overflow:auto}html.dark .me-box--mac{--me-box-header-bg:var(--me-fill-color);--me-box-shadow:0 4px 20px #0006}html.dark .me-box--stripe{--me-box-stripe-border-color:var(--me-color-primary-dark-2);--me-box-stripe-bg-color:#1677ff1f;--me-box-stripe-color:#ffffff26}@keyframes me-box-stripe-scroll{0%{transform:translate(0)}to{transform:translate(var(--me-box-stripe-tx), var(--me-box-stripe-ty))}}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Fragment as e, createBlock as t, createElementBlock as n, createElementVNode as r, createTextVNode as i, createVNode as a, defineComponent as o, inject as s, mergeProps as c, normalizeClass as l, normalizeStyle as u, openBlock as d, renderList as f, renderSlot as p, resolveComponent as m, toDisplayString as h, unref as g, withCtx as _, withModifiers as v } from "vue";
|
|
2
|
+
import { ChevronDown as y } from "@lucide/vue";
|
|
3
|
+
Array.isArray, Symbol(process.env.NODE_ENV === "production" ? "" : "navigation failure"), Symbol(process.env.NODE_ENV === "production" ? "" : "router view location matched"), Symbol(process.env.NODE_ENV === "production" ? "" : "router view depth");
|
|
4
|
+
var b = Symbol(process.env.NODE_ENV === "production" ? "" : "router");
|
|
5
|
+
Symbol(process.env.NODE_ENV === "production" ? "" : "route location"), Symbol(process.env.NODE_ENV === "production" ? "" : "router view location");
|
|
6
|
+
function x() {
|
|
7
|
+
return s(b);
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/components/breadcrumb/index.vue?vue&type=script&setup=true&lang.ts
|
|
11
|
+
var S = ["onClick"], C = /* @__PURE__ */ o({
|
|
12
|
+
name: "MeBreadcrumb",
|
|
13
|
+
__name: "index",
|
|
14
|
+
props: { items: {
|
|
15
|
+
type: Array,
|
|
16
|
+
default: () => []
|
|
17
|
+
} },
|
|
18
|
+
emits: ["change"],
|
|
19
|
+
setup(o, { emit: s }) {
|
|
20
|
+
let b = s, C = x(), w = null, T = (e, t = "14px -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif") => (w ||= document.createElement("canvas").getContext("2d"), w ? (w.font = t, w.measureText(e).width) : e.length * 14), E = (e) => e.options.map((e) => ({
|
|
21
|
+
value: e.value,
|
|
22
|
+
label: e.label
|
|
23
|
+
})), D = (e) => ({
|
|
24
|
+
selectedKeys: e.activeValue === void 0 ? [] : [String(e.activeValue)],
|
|
25
|
+
items: e.options.map((e) => ({
|
|
26
|
+
key: String(e.value),
|
|
27
|
+
label: e.label
|
|
28
|
+
}))
|
|
29
|
+
}), O = (e) => e.options.find((t) => t.value === e.value)?.label || "", k = (e) => {
|
|
30
|
+
if (e.type !== "select") return "auto";
|
|
31
|
+
let t = O(e), n = T(t), r = Math.ceil(n) + 48;
|
|
32
|
+
return `${Math.max(r, 80)}px`;
|
|
33
|
+
}, A = (e, t, n) => {
|
|
34
|
+
let r = t.options.find((t) => t.value === e);
|
|
35
|
+
r && (t.onChange?.(r), b("change", {
|
|
36
|
+
option: r,
|
|
37
|
+
index: n
|
|
38
|
+
}));
|
|
39
|
+
}, j = (e, t, n) => {
|
|
40
|
+
let r = e.options.find((e) => String(e.value) === n);
|
|
41
|
+
r && (e.onChange?.(r), b("change", {
|
|
42
|
+
option: r,
|
|
43
|
+
index: t
|
|
44
|
+
}));
|
|
45
|
+
}, M = (e) => e.type === "select" ? O(e) : e.label, N = (e) => {
|
|
46
|
+
e.to && C.push(e.to);
|
|
47
|
+
};
|
|
48
|
+
return (s, b) => {
|
|
49
|
+
let x = m("a-select"), C = m("a-dropdown"), w = m("a-breadcrumb-item"), T = m("a-breadcrumb");
|
|
50
|
+
return d(), t(T, c(s.$attrs, { class: "me-breadcrumb" }), {
|
|
51
|
+
separator: _(() => [p(s.$slots, "separator")]),
|
|
52
|
+
default: _(() => [(d(!0), n(e, null, f(o.items, (e, o) => (d(), t(w, { key: `${M(e)}-${o}` }, {
|
|
53
|
+
default: _(() => [e.type === "select" ? (d(), t(x, {
|
|
54
|
+
key: 0,
|
|
55
|
+
value: e.value,
|
|
56
|
+
class: l(["me-breadcrumb__select", { "is-bold": e.bold }]),
|
|
57
|
+
options: E(e),
|
|
58
|
+
variant: "borderless",
|
|
59
|
+
style: u({ width: k(e) }),
|
|
60
|
+
onChange: (t) => A(t, e, o),
|
|
61
|
+
onClick: b[0] ||= v(() => {}, ["stop"])
|
|
62
|
+
}, null, 8, [
|
|
63
|
+
"value",
|
|
64
|
+
"class",
|
|
65
|
+
"options",
|
|
66
|
+
"style",
|
|
67
|
+
"onChange"
|
|
68
|
+
])) : e.type === "menu" ? (d(), t(C, {
|
|
69
|
+
key: 1,
|
|
70
|
+
menu: D(e),
|
|
71
|
+
trigger: "click",
|
|
72
|
+
onMenuClick: ({ key: t }) => j(e, o, t),
|
|
73
|
+
onClick: b[1] ||= v(() => {}, ["stop"])
|
|
74
|
+
}, {
|
|
75
|
+
default: _(() => [r("span", { class: l(["me-breadcrumb__menu-trigger", { "is-bold": e.bold }]) }, [i(h(e.label) + " ", 1), a(g(y), {
|
|
76
|
+
size: 14,
|
|
77
|
+
"stroke-width": 2
|
|
78
|
+
})], 2)]),
|
|
79
|
+
_: 2
|
|
80
|
+
}, 1032, ["menu", "onMenuClick"])) : (d(), n("span", {
|
|
81
|
+
key: 2,
|
|
82
|
+
class: l([{ "is-bold": e.bold }, { "me-breadcrumb__item-link": !!e.to }]),
|
|
83
|
+
onClick: (t) => N(e)
|
|
84
|
+
}, h(e.label), 11, S))]),
|
|
85
|
+
_: 2
|
|
86
|
+
}, 1024))), 128))]),
|
|
87
|
+
_: 3
|
|
88
|
+
}, 16);
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
//#endregion
|
|
93
|
+
//#region src/components/breadcrumb/index.ts
|
|
94
|
+
C.install = (e) => {
|
|
95
|
+
e.component("MeBreadcrumb", C);
|
|
96
|
+
};
|
|
97
|
+
var w = C;
|
|
98
|
+
//#endregion
|
|
99
|
+
export { C as MeBreadcrumb, w as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.me-breadcrumb{align-items:center;margin-bottom:0;display:flex}.me-breadcrumb .ant-breadcrumb{align-items:center;display:flex}.me-breadcrumb .ant-breadcrumb-item{align-items:center;height:22px;line-height:22px;display:inline-flex}.me-breadcrumb__select{vertical-align:middle;align-items:center;min-width:80px;height:22px;margin-bottom:0;display:inline-flex}.me-breadcrumb__select .ant-select-selector{padding:0 8px;height:22px!important;min-height:22px!important;line-height:22px!important}.me-breadcrumb__select .ant-select-selection-item{align-items:center;height:22px;line-height:22px;display:inline-flex;padding-inline-end:20px!important}.me-breadcrumb__select .ant-select-arrow{top:50%;transform:translateY(-50%)}.me-breadcrumb__select.is-bold .ant-select-selection-item{font-weight:600}.me-breadcrumb__menu-trigger{cursor:pointer;align-items:center;gap:2px;height:22px;line-height:22px;display:inline-flex}.me-breadcrumb .is-bold{font-weight:600}.me-breadcrumb__item-link{cursor:pointer;color:var(--me-text-primary);transition:color .2s}.me-breadcrumb__item-link:hover{color:var(--me-color-primary)}html.dark .me-breadcrumb__item-link{color:var(--me-text-primary)}html.dark .me-breadcrumb__item-link:hover{color:var(--me-color-primary-light-3)}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { computed as e, createBlock as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createVNode as a, defineComponent as o, mergeProps as s, normalizeClass as c, openBlock as l, ref as u, renderSlot as d, resolveComponent as f, resolveDynamicComponent as p, toDisplayString as m, unref as h, useSlots as g, vShow as _, watch as v, withCtx as y, withDirectives as b } from "vue";
|
|
2
|
+
import { ChevronDown as x, Maximize2 as S, Minimize2 as C } from "@lucide/vue";
|
|
3
|
+
//#region src/components/card/index.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var w = { class: "me-card__title-wrapper" }, T = { class: "me-card__title" }, E = { class: "me-card__actions" }, D = { class: "me-card__content" }, O = { class: "me-card__body" }, k = {
|
|
5
|
+
key: 0,
|
|
6
|
+
class: "me-card__footer"
|
|
7
|
+
}, A = /* @__PURE__ */ o({
|
|
8
|
+
name: "MeCard",
|
|
9
|
+
__name: "index",
|
|
10
|
+
props: {
|
|
11
|
+
title: {
|
|
12
|
+
type: String,
|
|
13
|
+
default: ""
|
|
14
|
+
},
|
|
15
|
+
collapsible: {
|
|
16
|
+
type: Boolean,
|
|
17
|
+
default: !1
|
|
18
|
+
},
|
|
19
|
+
defaultCollapsed: {
|
|
20
|
+
type: Boolean,
|
|
21
|
+
default: !1
|
|
22
|
+
},
|
|
23
|
+
collapsed: {
|
|
24
|
+
type: Boolean,
|
|
25
|
+
default: void 0
|
|
26
|
+
},
|
|
27
|
+
fullscreenable: {
|
|
28
|
+
type: Boolean,
|
|
29
|
+
default: !1
|
|
30
|
+
},
|
|
31
|
+
fullscreen: {
|
|
32
|
+
type: Boolean,
|
|
33
|
+
default: void 0
|
|
34
|
+
},
|
|
35
|
+
defaultFullscreen: {
|
|
36
|
+
type: Boolean,
|
|
37
|
+
default: !1
|
|
38
|
+
},
|
|
39
|
+
height: {
|
|
40
|
+
type: [String, Number],
|
|
41
|
+
default: ""
|
|
42
|
+
},
|
|
43
|
+
loading: {
|
|
44
|
+
type: Boolean,
|
|
45
|
+
default: void 0
|
|
46
|
+
},
|
|
47
|
+
defaultLoading: {
|
|
48
|
+
type: Boolean,
|
|
49
|
+
default: !1
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
emits: [
|
|
53
|
+
"update:collapsed",
|
|
54
|
+
"collapse-change",
|
|
55
|
+
"update:fullscreen",
|
|
56
|
+
"fullscreen-change",
|
|
57
|
+
"update:loading",
|
|
58
|
+
"loading-change"
|
|
59
|
+
],
|
|
60
|
+
setup(o, { emit: A }) {
|
|
61
|
+
let j = o, M = A, N = g(), P = e(() => !!N.footer), F = u(j.defaultLoading), I = e(() => j.loading !== void 0), L = e(() => I.value ? j.loading : F.value);
|
|
62
|
+
v(() => j.loading, (e) => {
|
|
63
|
+
e !== void 0 && (F.value = e);
|
|
64
|
+
});
|
|
65
|
+
let R = e(() => {
|
|
66
|
+
if (!j.height) return 3;
|
|
67
|
+
let e = typeof j.height == "number" ? j.height : parseFloat(j.height);
|
|
68
|
+
if (isNaN(e)) return 3;
|
|
69
|
+
let t = e - 48;
|
|
70
|
+
return Math.max(2, Math.floor(t / 32));
|
|
71
|
+
}), z = e(() => {
|
|
72
|
+
let e = {};
|
|
73
|
+
return j.height && !W.value && (e.height = typeof j.height == "number" ? `${j.height}px` : j.height), e;
|
|
74
|
+
}), B = u(j.defaultCollapsed), V = e(() => j.collapsed !== void 0), H = e(() => V.value ? j.collapsed : B.value);
|
|
75
|
+
v(() => j.collapsed, (e) => {
|
|
76
|
+
e !== void 0 && (B.value = e);
|
|
77
|
+
});
|
|
78
|
+
let U = () => {
|
|
79
|
+
let e = !H.value;
|
|
80
|
+
V.value || (B.value = e), M("update:collapsed", e), M("collapse-change", e);
|
|
81
|
+
}, W = u(j.defaultFullscreen), G = e(() => j.fullscreen !== void 0), K = e(() => G.value ? j.fullscreen : W.value);
|
|
82
|
+
v(() => j.fullscreen, (e) => {
|
|
83
|
+
e !== void 0 && (W.value = e);
|
|
84
|
+
});
|
|
85
|
+
let q = () => {
|
|
86
|
+
let e = !K.value;
|
|
87
|
+
G.value || (W.value = e), M("update:fullscreen", e), M("fullscreen-change", e);
|
|
88
|
+
}, J = e(() => {
|
|
89
|
+
let { title: e, collapsible: t, defaultCollapsed: n, collapsed: r, fullscreenable: i, fullscreen: a, defaultFullscreen: o, height: s, loading: c, defaultLoading: l, ...u } = j;
|
|
90
|
+
return { ...u };
|
|
91
|
+
});
|
|
92
|
+
return (e, o) => {
|
|
93
|
+
let u = f("a-button"), g = f("a-skeleton"), v = f("a-card");
|
|
94
|
+
return l(), t(v, s(J.value, {
|
|
95
|
+
style: z.value,
|
|
96
|
+
class: ["me-card", {
|
|
97
|
+
"me-card--collapsed": B.value,
|
|
98
|
+
"me-card--fullscreen": W.value,
|
|
99
|
+
"me-card--collapsible": j.collapsible,
|
|
100
|
+
"me-card--fullscreenable": j.fullscreenable,
|
|
101
|
+
"me-card--has-height": !!j.height,
|
|
102
|
+
"me-card--has-footer": P.value,
|
|
103
|
+
"me-card--loading": L.value
|
|
104
|
+
}]
|
|
105
|
+
}), {
|
|
106
|
+
title: y(() => [i("div", w, [d(e.$slots, "title", {}, () => [i("span", T, m(j.title), 1)]), i("div", E, [
|
|
107
|
+
d(e.$slots, "actions"),
|
|
108
|
+
d(e.$slots, "extra"),
|
|
109
|
+
j.fullscreenable ? (l(), t(u, {
|
|
110
|
+
key: 0,
|
|
111
|
+
type: "text",
|
|
112
|
+
size: "small",
|
|
113
|
+
class: "me-card__action-btn",
|
|
114
|
+
onClick: q
|
|
115
|
+
}, {
|
|
116
|
+
default: y(() => [(l(), t(p(W.value ? h(C) : h(S)), { size: 16 }))]),
|
|
117
|
+
_: 1
|
|
118
|
+
})) : n("", !0),
|
|
119
|
+
j.collapsible ? (l(), t(u, {
|
|
120
|
+
key: 1,
|
|
121
|
+
type: "text",
|
|
122
|
+
size: "small",
|
|
123
|
+
class: c(["me-card__action-btn", { "me-card__collapse-btn--collapsed": B.value }]),
|
|
124
|
+
onClick: U
|
|
125
|
+
}, {
|
|
126
|
+
default: y(() => [a(h(x), {
|
|
127
|
+
size: 16,
|
|
128
|
+
class: "me-card__collapse-icon"
|
|
129
|
+
})]),
|
|
130
|
+
_: 1
|
|
131
|
+
}, 8, ["class"])) : n("", !0)
|
|
132
|
+
])])]),
|
|
133
|
+
default: y(() => [b(i("div", D, [i("div", O, [L.value ? (l(), t(g, {
|
|
134
|
+
key: 0,
|
|
135
|
+
active: "",
|
|
136
|
+
rows: R.value,
|
|
137
|
+
title: !1
|
|
138
|
+
}, {
|
|
139
|
+
default: y(() => [d(e.$slots, "default")]),
|
|
140
|
+
_: 3
|
|
141
|
+
}, 8, ["rows"])) : d(e.$slots, "default", {}, void 0, void 0, 1)]), P.value ? (l(), r("div", k, [d(e.$slots, "footer")])) : n("", !0)], 512), [[_, !B.value]])]),
|
|
142
|
+
_: 3
|
|
143
|
+
}, 16, ["style", "class"]);
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
//#endregion
|
|
148
|
+
//#region src/components/card/index.ts
|
|
149
|
+
A.install = (e) => {
|
|
150
|
+
e.component("MeCard", A);
|
|
151
|
+
};
|
|
152
|
+
var j = A;
|
|
153
|
+
//#endregion
|
|
154
|
+
export { A as MeCard, j as default };
|