mamba-layout 0.1.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/README.md +47 -0
- package/dist/_virtual/_plugin-vue_export-helper.js +9 -0
- package/dist/assets/logo.png.js +4 -0
- package/dist/components/UserAvatar/index.d.ts +2 -0
- package/dist/components/UserAvatar/index.js +5 -0
- package/dist/components/UserAvatar/src/UserAvatar.css +1 -0
- package/dist/components/UserAvatar/src/UserAvatar.vue.d.ts +9 -0
- package/dist/components/UserAvatar/src/UserAvatar.vue.js +7 -0
- package/dist/components/UserAvatar/src/UserAvatar.vue2.js +61 -0
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +51 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +80 -0
- package/dist/layout/BaseLayout.css +1 -0
- package/dist/layout/BaseLayout.vue.d.ts +23 -0
- package/dist/layout/BaseLayout.vue.js +7 -0
- package/dist/layout/BaseLayout.vue2.js +75 -0
- package/dist/layout/components/AppSelect.css +1 -0
- package/dist/layout/components/AppSelect.vue.d.ts +2 -0
- package/dist/layout/components/AppSelect.vue.js +7 -0
- package/dist/layout/components/AppSelect.vue2.js +69 -0
- package/dist/layout/components/AsideBar.css +1 -0
- package/dist/layout/components/AsideBar.vue.d.ts +21 -0
- package/dist/layout/components/AsideBar.vue.js +7 -0
- package/dist/layout/components/AsideBar.vue2.js +49 -0
- package/dist/layout/components/AsideSubMenuItem.vue.d.ts +25 -0
- package/dist/layout/components/AsideSubMenuItem.vue.js +84 -0
- package/dist/layout/components/AsideSubMenuItem.vue2.js +4 -0
- package/dist/layout/components/AsideSubMenus.vue.d.ts +16 -0
- package/dist/layout/components/AsideSubMenus.vue.js +36 -0
- package/dist/layout/components/AsideSubMenus.vue2.js +4 -0
- package/dist/layout/components/AsideTabMenus.vue.d.ts +2 -0
- package/dist/layout/components/AsideTabMenus.vue.js +41 -0
- package/dist/layout/components/AsideTabMenus.vue2.js +4 -0
- package/dist/layout/components/AsideUser.vue.d.ts +2 -0
- package/dist/layout/components/AsideUser.vue.js +58 -0
- package/dist/layout/components/AsideUser.vue2.js +4 -0
- package/dist/layout/components/HeaderBar.css +1 -0
- package/dist/layout/components/HeaderBar.vue.d.ts +17 -0
- package/dist/layout/components/HeaderBar.vue.js +7 -0
- package/dist/layout/components/HeaderBar.vue2.js +55 -0
- package/dist/layout/components/HeaderMenuToggle.vue.d.ts +25 -0
- package/dist/layout/components/HeaderMenuToggle.vue.js +40 -0
- package/dist/layout/components/HeaderMenuToggle.vue2.js +4 -0
- package/dist/layout/components/LanguageSelect.css +1 -0
- package/dist/layout/components/LanguageSelect.vue.d.ts +22 -0
- package/dist/layout/components/LanguageSelect.vue.js +8 -0
- package/dist/layout/components/LanguageSelect.vue2.js +101 -0
- package/dist/layout/components/LanguageSelect2.css +1 -0
- package/dist/layout/components/LayoutBreadcrumb.css +1 -0
- package/dist/layout/components/LayoutBreadcrumb.vue.d.ts +29 -0
- package/dist/layout/components/LayoutBreadcrumb.vue.js +7 -0
- package/dist/layout/components/LayoutBreadcrumb.vue2.js +189 -0
- package/dist/layout/components/MenuDrawer.css +1 -0
- package/dist/layout/components/MenuDrawer.vue.d.ts +12 -0
- package/dist/layout/components/MenuDrawer.vue.js +163 -0
- package/dist/layout/components/MenuDrawer.vue3.js +5 -0
- package/dist/layout/components/MenuItemIcon.css +1 -0
- package/dist/layout/components/MenuItemIcon.vue.d.ts +7 -0
- package/dist/layout/components/MenuItemIcon.vue.js +7 -0
- package/dist/layout/components/MenuItemIcon.vue2.js +23 -0
- package/dist/layout/components/NavIconBtn.css +1 -0
- package/dist/layout/components/NavIconBtn.vue.d.ts +26 -0
- package/dist/layout/components/NavIconBtn.vue.js +7 -0
- package/dist/layout/components/NavIconBtn.vue2.js +23 -0
- package/dist/layout/components/SHeaderRight.css +1 -0
- package/dist/layout/components/SHeaderRight.vue.d.ts +2 -0
- package/dist/layout/components/SHeaderRight.vue.js +7 -0
- package/dist/layout/components/SHeaderRight.vue2.js +80 -0
- package/dist/layout/components/ThemeToggle.css +1 -0
- package/dist/layout/components/ThemeToggle.vue.d.ts +2 -0
- package/dist/layout/components/ThemeToggle.vue.js +7 -0
- package/dist/layout/components/ThemeToggle.vue2.js +30 -0
- package/dist/layout/components/TimezoneSelect.css +1 -0
- package/dist/layout/components/TimezoneSelect.vue.d.ts +7 -0
- package/dist/layout/components/TimezoneSelect.vue.js +8 -0
- package/dist/layout/components/TimezoneSelect.vue2.js +78 -0
- package/dist/layout/components/TimezoneSelect2.css +1 -0
- package/dist/layout/components/UserInfo.css +1 -0
- package/dist/layout/components/UserInfo.vue.d.ts +2 -0
- package/dist/layout/components/UserInfo.vue.js +8 -0
- package/dist/layout/components/UserInfo.vue2.js +111 -0
- package/dist/layout/components/UserInfo2.css +1 -0
- package/dist/layout/components/index.d.ts +23 -0
- package/dist/layout/components/index.js +49 -0
- package/dist/layout/components/mobile/AppSelectMobile.vue.d.ts +2 -0
- package/dist/layout/components/mobile/AppSelectMobile.vue.js +60 -0
- package/dist/layout/components/mobile/AppSelectMobile.vue2.js +4 -0
- package/dist/layout/components/mobile/AsideBarMobile.css +1 -0
- package/dist/layout/components/mobile/AsideBarMobile.vue.d.ts +21 -0
- package/dist/layout/components/mobile/AsideBarMobile.vue.js +7 -0
- package/dist/layout/components/mobile/AsideBarMobile.vue2.js +47 -0
- package/dist/layout/components/mobile/AsideUserMobile.css +1 -0
- package/dist/layout/components/mobile/AsideUserMobile.vue.d.ts +2 -0
- package/dist/layout/components/mobile/AsideUserMobile.vue.js +7 -0
- package/dist/layout/components/mobile/AsideUserMobile.vue2.js +56 -0
- package/dist/layout/components/mobile/AsideUserMobilePopover.css +1 -0
- package/dist/layout/components/mobile/AsideUserMobilePopover.vue.d.ts +17 -0
- package/dist/layout/components/mobile/AsideUserMobilePopover.vue.js +7 -0
- package/dist/layout/components/mobile/AsideUserMobilePopover.vue2.js +52 -0
- package/dist/layout/components/mobile/HeaderRightMobile.css +1 -0
- package/dist/layout/components/mobile/HeaderRightMobile.vue.d.ts +2 -0
- package/dist/layout/components/mobile/HeaderRightMobile.vue.js +7 -0
- package/dist/layout/components/mobile/HeaderRightMobile.vue2.js +50 -0
- package/dist/layout/components/mobile/MobileMenuToggle.css +1 -0
- package/dist/layout/components/mobile/MobileMenuToggle.vue.d.ts +2 -0
- package/dist/layout/components/mobile/MobileMenuToggle.vue.js +7 -0
- package/dist/layout/components/mobile/MobileMenuToggle.vue2.js +31 -0
- package/dist/layout/hooks/index.d.ts +4 -0
- package/dist/layout/hooks/index.js +17 -0
- package/dist/layout/hooks/useApp.d.ts +6 -0
- package/dist/layout/hooks/useApp.js +20 -0
- package/dist/layout/hooks/useSetting.d.ts +62 -0
- package/dist/layout/hooks/useSetting.js +24 -0
- package/dist/layout/hooks/useState.d.ts +763 -0
- package/dist/layout/hooks/useState.js +99 -0
- package/dist/layout/hooks/useTheme.d.ts +15 -0
- package/dist/layout/hooks/useTheme.js +44 -0
- package/dist/layout/utils/index.d.ts +7 -0
- package/dist/layout/utils/index.js +59 -0
- package/dist/layout.css +1 -0
- package/dist/layout.es.js +53770 -0
- package/dist/layout.global.js +78 -0
- package/dist/locales/en/account.d.ts +10 -0
- package/dist/locales/en/account.js +12 -0
- package/dist/locales/en/admin.d.ts +207 -0
- package/dist/locales/en/admin.js +209 -0
- package/dist/locales/en/common.d.ts +40 -0
- package/dist/locales/en/common.js +42 -0
- package/dist/locales/en/components.d.ts +37 -0
- package/dist/locales/en/components.js +39 -0
- package/dist/locales/en/constant.d.ts +151 -0
- package/dist/locales/en/constant.js +153 -0
- package/dist/locales/en/filterBox.d.ts +11 -0
- package/dist/locales/en/filterBox.js +13 -0
- package/dist/locales/en/index.d.ts +487 -0
- package/dist/locales/en/index.js +22 -0
- package/dist/locales/en/instanceForm.d.ts +17 -0
- package/dist/locales/en/instanceForm.js +19 -0
- package/dist/locales/en/password.d.ts +18 -0
- package/dist/locales/en/password.js +20 -0
- package/dist/locales/index.d.ts +973 -0
- package/dist/locales/index.js +12 -0
- package/dist/locales/messages.d.ts +973 -0
- package/dist/locales/messages.js +9 -0
- package/dist/locales/zh-cn/account.d.ts +10 -0
- package/dist/locales/zh-cn/account.js +12 -0
- package/dist/locales/zh-cn/admin.d.ts +205 -0
- package/dist/locales/zh-cn/admin.js +207 -0
- package/dist/locales/zh-cn/common.d.ts +40 -0
- package/dist/locales/zh-cn/common.js +42 -0
- package/dist/locales/zh-cn/components.d.ts +37 -0
- package/dist/locales/zh-cn/components.js +39 -0
- package/dist/locales/zh-cn/constant.d.ts +151 -0
- package/dist/locales/zh-cn/constant.js +153 -0
- package/dist/locales/zh-cn/filterBox.d.ts +11 -0
- package/dist/locales/zh-cn/filterBox.js +13 -0
- package/dist/locales/zh-cn/index.d.ts +485 -0
- package/dist/locales/zh-cn/index.js +22 -0
- package/dist/locales/zh-cn/instanceForm.d.ts +17 -0
- package/dist/locales/zh-cn/instanceForm.js +19 -0
- package/dist/locales/zh-cn/password.d.ts +18 -0
- package/dist/locales/zh-cn/password.js +20 -0
- package/dist/standalone.d.ts +0 -0
- package/dist/utils/createContext.d.ts +8 -0
- package/dist/utils/createContext.js +14 -0
- package/dist/utils/repoUtils.d.ts +59 -0
- package/dist/utils/repoUtils.js +160 -0
- package/package.json +110 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { RouteItem } from '../../utils/repoUtils';
|
|
3
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
4
|
+
menu: {
|
|
5
|
+
type: PropType<RouteItem>;
|
|
6
|
+
default: () => {};
|
|
7
|
+
};
|
|
8
|
+
level: {
|
|
9
|
+
type: NumberConstructor;
|
|
10
|
+
default: number;
|
|
11
|
+
};
|
|
12
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
13
|
+
menu: {
|
|
14
|
+
type: PropType<RouteItem>;
|
|
15
|
+
default: () => {};
|
|
16
|
+
};
|
|
17
|
+
level: {
|
|
18
|
+
type: NumberConstructor;
|
|
19
|
+
default: number;
|
|
20
|
+
};
|
|
21
|
+
}>> & Readonly<{}>, {
|
|
22
|
+
menu: RouteItem;
|
|
23
|
+
level: number;
|
|
24
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
25
|
+
export default _default;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { defineComponent as S, computed as l, resolveComponent as A, createElementBlock as m, openBlock as n, Fragment as b, createBlock as s, createCommentVNode as y, resolveDynamicComponent as M, mergeProps as N, unref as i, withCtx as B, createElementVNode as L, normalizeClass as x, toDisplayString as j, renderList as D } from "vue";
|
|
2
|
+
import { useRouter as E } from "vue-router";
|
|
3
|
+
import { hasRoutePermission as R, replaceName as V, tname as W } from "../../utils/repoUtils.js";
|
|
4
|
+
import { injectLayoutContext as w } from "../hooks/useState.js";
|
|
5
|
+
import z from "./MenuItemIcon.vue.js";
|
|
6
|
+
const F = { key: 0 }, J = /* @__PURE__ */ S({
|
|
7
|
+
__name: "AsideSubMenuItem",
|
|
8
|
+
props: {
|
|
9
|
+
menu: {
|
|
10
|
+
type: Object,
|
|
11
|
+
default: () => ({})
|
|
12
|
+
},
|
|
13
|
+
level: {
|
|
14
|
+
type: Number,
|
|
15
|
+
default: 1
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
setup(_) {
|
|
19
|
+
const e = _, r = l(
|
|
20
|
+
() => {
|
|
21
|
+
var t;
|
|
22
|
+
return (t = e.menu.children) == null ? void 0 : t.filter((v) => {
|
|
23
|
+
var a;
|
|
24
|
+
return ((a = v.meta) == null ? void 0 : a.visible) != "0";
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
), { defaultParentActive: c, currentTabPath: p } = w(), k = E(), C = l(() => {
|
|
28
|
+
var t;
|
|
29
|
+
return e.level == 1 && !R(k, e.menu.path || "") ? "div" : /^http/.test(e.menu.path || "") || !((t = e.menu.path) != null && t.startsWith(p.value)) ? "a" : "router-link";
|
|
30
|
+
}), I = l(() => {
|
|
31
|
+
var t;
|
|
32
|
+
return /^http/.test(e.menu.path || "") || !((t = e.menu.path) != null && t.startsWith(p.value)) ? {
|
|
33
|
+
href: e.menu.path || ""
|
|
34
|
+
} : {
|
|
35
|
+
to: e.menu.path || ""
|
|
36
|
+
};
|
|
37
|
+
}), P = l(
|
|
38
|
+
() => {
|
|
39
|
+
var t;
|
|
40
|
+
return String(e.menu.icon || ((t = e.menu.meta) == null ? void 0 : t.icon) || "metisicon-yingyong");
|
|
41
|
+
}
|
|
42
|
+
);
|
|
43
|
+
return (t, v) => {
|
|
44
|
+
var d, h;
|
|
45
|
+
const a = A("AsideSubMenuItem", !0);
|
|
46
|
+
return n(), m(b, null, [
|
|
47
|
+
(n(), s(M(C.value), N({
|
|
48
|
+
class: ["pt-1 pb-1 pl-3 pr-3 flex items-center gap-2 rounded-md", [
|
|
49
|
+
e.menu.path == i(c) ? "bg-[var(--ui-sidebar-active-bg,var(--el-fill-color))] text-[var(--ui-sidebar-active-fg)] font-medium" : "text-[var(--ui-sidebar-foreground)]",
|
|
50
|
+
(d = r.value) != null && d.length ? " h-7" : " h-9.5 cursor-pointer hover:bg-[var(--ui-sidebar-hover-bg)]"
|
|
51
|
+
]],
|
|
52
|
+
style: { paddingLeft: "calc(var(--spacing) * 3)" }
|
|
53
|
+
}, I.value), {
|
|
54
|
+
default: B(() => {
|
|
55
|
+
var o, u, f, g;
|
|
56
|
+
return [
|
|
57
|
+
(o = r.value) != null && o.length ? y("", !0) : (n(), s(z, {
|
|
58
|
+
key: 0,
|
|
59
|
+
icon: P.value,
|
|
60
|
+
class: x(["text-md", [
|
|
61
|
+
e.menu.path == i(c) ? "opacity-100" : "opacity-60"
|
|
62
|
+
]])
|
|
63
|
+
}, null, 8, ["icon", "class"])),
|
|
64
|
+
L("div", {
|
|
65
|
+
class: x(["truncate", (u = r.value) != null && u.length ? "text-xs text-gray-400" : ""])
|
|
66
|
+
}, j(i(V)(i(W)(((g = (f = e.menu) == null ? void 0 : f.meta) == null ? void 0 : g.translations) || {}, "name"))), 3)
|
|
67
|
+
];
|
|
68
|
+
}),
|
|
69
|
+
_: 1
|
|
70
|
+
}, 16, ["class"])),
|
|
71
|
+
(h = r.value) != null && h.length ? (n(), m("div", F, [
|
|
72
|
+
(n(!0), m(b, null, D(r.value, (o, u) => (n(), s(a, {
|
|
73
|
+
menu: o,
|
|
74
|
+
key: u,
|
|
75
|
+
level: e.level + 1
|
|
76
|
+
}, null, 8, ["menu", "level"]))), 128))
|
|
77
|
+
])) : y("", !0)
|
|
78
|
+
], 64);
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
export {
|
|
83
|
+
J as default
|
|
84
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { RouteItem } from '../hooks/useSetting';
|
|
3
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
4
|
+
menus: {
|
|
5
|
+
type: PropType<RouteItem[]>;
|
|
6
|
+
default: () => never[];
|
|
7
|
+
};
|
|
8
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
9
|
+
menus: {
|
|
10
|
+
type: PropType<RouteItem[]>;
|
|
11
|
+
default: () => never[];
|
|
12
|
+
};
|
|
13
|
+
}>> & Readonly<{}>, {
|
|
14
|
+
menus: RouteItem[];
|
|
15
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
|
|
16
|
+
export default _default;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { defineComponent as u, withDirectives as c, createElementBlock as s, openBlock as t, createCommentVNode as l, Fragment as i, renderList as a, createBlock as _, vShow as p } from "vue";
|
|
2
|
+
import d from "./AsideSubMenuItem.vue.js";
|
|
3
|
+
const f = { class: "h-full" }, h = {
|
|
4
|
+
key: 0,
|
|
5
|
+
class: ""
|
|
6
|
+
}, B = /* @__PURE__ */ u({
|
|
7
|
+
__name: "AsideSubMenus",
|
|
8
|
+
props: {
|
|
9
|
+
menus: {
|
|
10
|
+
type: Array,
|
|
11
|
+
default: () => []
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
setup(m) {
|
|
15
|
+
const n = m;
|
|
16
|
+
return (k, v) => {
|
|
17
|
+
var o;
|
|
18
|
+
return c((t(), s("div", f, [
|
|
19
|
+
(o = n.menus) != null && o.length ? (t(), s("div", h, [
|
|
20
|
+
(t(!0), s(i, null, a(n.menus.filter((r) => {
|
|
21
|
+
var e;
|
|
22
|
+
return ((e = r.meta) == null ? void 0 : e.visible) != "0";
|
|
23
|
+
}), (r, e) => (t(), _(d, {
|
|
24
|
+
key: e,
|
|
25
|
+
menu: r
|
|
26
|
+
}, null, 8, ["menu"]))), 128))
|
|
27
|
+
])) : l("", !0)
|
|
28
|
+
], 512)), [
|
|
29
|
+
[p, n.menus.length]
|
|
30
|
+
]);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
export {
|
|
35
|
+
B as default
|
|
36
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { defineComponent as h, createElementBlock as o, openBlock as r, Fragment as _, renderList as f, unref as a, normalizeClass as i, createCommentVNode as m, createElementVNode as u, toDisplayString as x } from "vue";
|
|
2
|
+
import { useRouter as g } from "vue-router";
|
|
3
|
+
import { injectLayoutContext as v } from "../hooks/useState.js";
|
|
4
|
+
const b = { class: "flex-1 p-2 w-full" }, y = ["onClick"], k = {
|
|
5
|
+
key: 0,
|
|
6
|
+
class: "text-lg"
|
|
7
|
+
}, C = { class: "text-xs" }, T = /* @__PURE__ */ h({
|
|
8
|
+
__name: "AsideTabMenus",
|
|
9
|
+
setup(w) {
|
|
10
|
+
const l = g(), { menus: p, currentTabPath: c } = v(), d = (n) => {
|
|
11
|
+
var s, e;
|
|
12
|
+
if (c.value = n.path || "", !((s = n.children) != null && s.length))
|
|
13
|
+
n.path && l.push(n.path);
|
|
14
|
+
else {
|
|
15
|
+
let t = n;
|
|
16
|
+
for (; (e = t.children) != null && e.length; )
|
|
17
|
+
t = t.children[0];
|
|
18
|
+
t.path && l.push(t.path);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
return (n, s) => (r(), o("div", b, [
|
|
22
|
+
(r(!0), o(_, null, f(a(p), (e, t) => (r(), o("div", {
|
|
23
|
+
key: t,
|
|
24
|
+
class: i(["pt-2 pb-2 mt-1 mb-1 flex flex-col items-center cursor-pointer rounded-2xl hover:bg-gray-100", [
|
|
25
|
+
a(c) == e.path ? "bg-gray-100 text-blue-500" : "text-gray-500"
|
|
26
|
+
]]),
|
|
27
|
+
onClick: (B) => d(e)
|
|
28
|
+
}, [
|
|
29
|
+
e.icon ? (r(), o("div", k, [
|
|
30
|
+
u("i", {
|
|
31
|
+
class: i(e.icon)
|
|
32
|
+
}, null, 2)
|
|
33
|
+
])) : m("", !0),
|
|
34
|
+
u("div", C, x(e.name), 1)
|
|
35
|
+
], 10, y))), 128))
|
|
36
|
+
]));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
export {
|
|
40
|
+
T as default
|
|
41
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { defineComponent as b, computed as c, resolveComponent as y, createBlock as x, openBlock as n, withCtx as i, createElementVNode as t, createElementBlock as u, createCommentVNode as p, toDisplayString as a, unref as k } from "vue";
|
|
2
|
+
import { useRouter as C } from "vue-router";
|
|
3
|
+
import h from "../../locales/index.js";
|
|
4
|
+
import { useSetting as T } from "../hooks/useSetting.js";
|
|
5
|
+
const B = { class: "pb-4 flex flex-col items-center cursor-pointer" }, L = { class: "" }, w = {
|
|
6
|
+
key: 1,
|
|
7
|
+
class: "mt-2 mb-2 border border-gray-200 border-t border-b-0"
|
|
8
|
+
}, P = /* @__PURE__ */ b({
|
|
9
|
+
__name: "AsideUser",
|
|
10
|
+
setup(E) {
|
|
11
|
+
const { t: m } = h.global, r = T(), d = {
|
|
12
|
+
0: "管理员",
|
|
13
|
+
1: "创作者",
|
|
14
|
+
2: "用户"
|
|
15
|
+
}, s = c(() => r.value.user || {}), v = c(() => d[s.value.userType]), l = C(), f = () => {
|
|
16
|
+
var o, e;
|
|
17
|
+
Promise.resolve((e = (o = r.value).onLogout) == null ? void 0 : e.call(o)).finally(() => {
|
|
18
|
+
r.value.onLogout || l.replace("/login");
|
|
19
|
+
});
|
|
20
|
+
}, g = (o) => {
|
|
21
|
+
l.push(o);
|
|
22
|
+
};
|
|
23
|
+
return (o, e) => {
|
|
24
|
+
const _ = y("el-popover");
|
|
25
|
+
return n(), x(_, {
|
|
26
|
+
width: 200,
|
|
27
|
+
trigger: "click"
|
|
28
|
+
}, {
|
|
29
|
+
reference: i(() => [
|
|
30
|
+
t("div", B, [
|
|
31
|
+
e[1] || (e[1] = t("div", { class: "text-lg text-blue-500" }, [
|
|
32
|
+
t("i", { class: "metisicon-yonghu1" })
|
|
33
|
+
], -1)),
|
|
34
|
+
t("div", L, a(v.value), 1)
|
|
35
|
+
])
|
|
36
|
+
]),
|
|
37
|
+
default: i(() => [
|
|
38
|
+
t("div", null, [
|
|
39
|
+
s.value.userType == "0" ? (n(), u("div", {
|
|
40
|
+
key: 0,
|
|
41
|
+
class: "cursor-pointer pt-2 pb-2 text-center",
|
|
42
|
+
onClick: e[0] || (e[0] = (N) => g("/admin/user"))
|
|
43
|
+
}, " 用户管理 ")) : p("", !0),
|
|
44
|
+
s.value.userType == "0" ? (n(), u("div", w)) : p("", !0),
|
|
45
|
+
t("div", {
|
|
46
|
+
class: "cursor-pointer pt-2 pb-2 text-center",
|
|
47
|
+
onClick: f
|
|
48
|
+
}, a(k(m)("common.btn.logout")), 1)
|
|
49
|
+
])
|
|
50
|
+
]),
|
|
51
|
+
_: 1
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
export {
|
|
57
|
+
P as default
|
|
58
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.header-bar[data-v-9ee7aec2]{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 12px;background:var(--ui-topnav-bg);color:var(--ui-topnav-muted)}.header-bar__left[data-v-9ee7aec2],.header-bar__right[data-v-9ee7aec2]{display:flex;align-items:center;min-width:0}.header-bar__left[data-v-9ee7aec2]{gap:12px;flex:1}.header-bar__right[data-v-9ee7aec2]{flex-shrink:0}.header-bar__logo-wrap[data-v-9ee7aec2]{display:flex;align-items:center;min-width:0}.header-bar__logo-link[data-v-9ee7aec2]{display:inline-flex;align-items:center;justify-content:center;min-height:40px;color:inherit}.header-bar__divider[data-v-9ee7aec2]{width:1px;height:18px;background:var(--ui-topnav-border)}[header-bar][data-v-9ee7aec2] .el-image .el-image__inner{width:auto;display:block}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
declare function __VLS_template(): {
|
|
2
|
+
attrs: Partial<{}>;
|
|
3
|
+
slots: {
|
|
4
|
+
default?(_: {}): any;
|
|
5
|
+
};
|
|
6
|
+
refs: {};
|
|
7
|
+
rootEl: HTMLDivElement;
|
|
8
|
+
};
|
|
9
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
10
|
+
declare const __VLS_component: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
|
|
11
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { defineComponent as m, computed as u, resolveComponent as p, createElementBlock as d, openBlock as e, createElementVNode as a, createBlock as i, createCommentVNode as r, unref as o, createVNode as h, renderSlot as f } from "vue";
|
|
2
|
+
import { useSetting as g } from "../hooks/useSetting.js";
|
|
3
|
+
import { injectLayoutContext as v } from "../hooks/useState.js";
|
|
4
|
+
import b from "./AppSelect.vue.js";
|
|
5
|
+
import k from "./mobile/HeaderRightMobile.vue.js";
|
|
6
|
+
import y from "./mobile/MobileMenuToggle.vue.js";
|
|
7
|
+
import B from "./SHeaderRight.vue.js";
|
|
8
|
+
const C = {
|
|
9
|
+
"header-bar": "",
|
|
10
|
+
class: "header-bar sticky top-0 z-200"
|
|
11
|
+
}, M = { class: "header-bar__left" }, S = { class: "header-bar__logo-wrap" }, H = {
|
|
12
|
+
href: "/",
|
|
13
|
+
target: "_self",
|
|
14
|
+
rel: "noopener",
|
|
15
|
+
class: "header-bar__logo-link"
|
|
16
|
+
}, N = {
|
|
17
|
+
key: 1,
|
|
18
|
+
class: "header-bar__divider"
|
|
19
|
+
}, V = { class: "header-bar__right" }, L = /* @__PURE__ */ m({
|
|
20
|
+
__name: "HeaderBar",
|
|
21
|
+
setup(x) {
|
|
22
|
+
const l = g(), { isMobile: t } = v(), c = u(
|
|
23
|
+
() => {
|
|
24
|
+
var s, n;
|
|
25
|
+
return !!((s = l.value.user) != null && s.id || (n = l.value.user) != null && n.userId);
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
return (s, n) => {
|
|
29
|
+
const _ = p("el-image");
|
|
30
|
+
return e(), d("div", C, [
|
|
31
|
+
a("div", M, [
|
|
32
|
+
o(t) ? (e(), i(y, { key: 0 })) : r("", !0),
|
|
33
|
+
a("div", S, [
|
|
34
|
+
a("a", H, [
|
|
35
|
+
h(_, {
|
|
36
|
+
src: o(l).logo,
|
|
37
|
+
class: "h-7"
|
|
38
|
+
}, null, 8, ["src"])
|
|
39
|
+
])
|
|
40
|
+
]),
|
|
41
|
+
c.value && !o(t) ? (e(), d("div", N)) : r("", !0),
|
|
42
|
+
c.value && !o(t) ? (e(), i(b, { key: 2 })) : r("", !0)
|
|
43
|
+
]),
|
|
44
|
+
a("div", V, [
|
|
45
|
+
f(s.$slots, "default", {}, void 0, !0),
|
|
46
|
+
o(t) ? r("", !0) : (e(), i(B, { key: 0 })),
|
|
47
|
+
o(t) ? (e(), i(k, { key: 1 })) : r("", !0)
|
|
48
|
+
])
|
|
49
|
+
]);
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
export {
|
|
54
|
+
L as default
|
|
55
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
2
|
+
drawerRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
|
|
3
|
+
modelValue?: boolean;
|
|
4
|
+
}> & Readonly<{
|
|
5
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
6
|
+
}>, {
|
|
7
|
+
visible: import('vue').ModelRef<boolean, string, boolean, boolean>;
|
|
8
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
9
|
+
"update:modelValue": (value: boolean) => any;
|
|
10
|
+
}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
|
|
11
|
+
P: {};
|
|
12
|
+
B: {};
|
|
13
|
+
D: {};
|
|
14
|
+
C: {};
|
|
15
|
+
M: {};
|
|
16
|
+
Defaults: {};
|
|
17
|
+
}, Readonly<{
|
|
18
|
+
modelValue?: boolean;
|
|
19
|
+
}> & Readonly<{
|
|
20
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
21
|
+
}>, {
|
|
22
|
+
visible: import('vue').ModelRef<boolean, string, boolean, boolean>;
|
|
23
|
+
}, {}, {}, {}, {}> | null;
|
|
24
|
+
}, any>;
|
|
25
|
+
export default _default;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { defineComponent as f, ref as r, resolveComponent as p, createElementBlock as d, openBlock as t, Fragment as _, createElementVNode as l, createVNode as a, withCtx as v, createBlock as s, unref as c } from "vue";
|
|
2
|
+
import { Expand as x, Close as g } from "@element-plus/icons-vue";
|
|
3
|
+
import k from "./MenuDrawer.vue.js";
|
|
4
|
+
/* empty css */
|
|
5
|
+
const w = { class: "text-lg w-6 h-6 flex items-center justify-center pointer-events-none" }, b = /* @__PURE__ */ f({
|
|
6
|
+
__name: "HeaderMenuToggle",
|
|
7
|
+
setup(y) {
|
|
8
|
+
const e = r(!1), u = r(), o = () => {
|
|
9
|
+
e.value = !e.value;
|
|
10
|
+
};
|
|
11
|
+
return (C, n) => {
|
|
12
|
+
const i = p("el-icon");
|
|
13
|
+
return t(), d(_, null, [
|
|
14
|
+
l("div", {
|
|
15
|
+
class: "bg-blue-500 h-13 w-13 flex items-center justify-center text-white cursor-pointer",
|
|
16
|
+
onMouseenter: o,
|
|
17
|
+
onClick: o
|
|
18
|
+
}, [
|
|
19
|
+
l("div", w, [
|
|
20
|
+
a(i, null, {
|
|
21
|
+
default: v(() => [
|
|
22
|
+
e.value ? (t(), s(c(g), { key: 1 })) : (t(), s(c(x), { key: 0 }))
|
|
23
|
+
]),
|
|
24
|
+
_: 1
|
|
25
|
+
})
|
|
26
|
+
])
|
|
27
|
+
], 32),
|
|
28
|
+
a(k, {
|
|
29
|
+
modelValue: e.value,
|
|
30
|
+
"onUpdate:modelValue": n[0] || (n[0] = (m) => e.value = m),
|
|
31
|
+
ref_key: "drawerRef",
|
|
32
|
+
ref: u
|
|
33
|
+
}, null, 8, ["modelValue"])
|
|
34
|
+
], 64);
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
export {
|
|
39
|
+
b as default
|
|
40
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.top-language-popover{padding:6px!important;border:1px solid var(--ui-border-default)!important;background:var(--ui-bg-card)!important;box-shadow:var(--ui-shadow-pop)!important}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
showLabel?: boolean;
|
|
3
|
+
};
|
|
4
|
+
declare function __VLS_template(): {
|
|
5
|
+
attrs: Partial<{}>;
|
|
6
|
+
slots: {
|
|
7
|
+
prefix?(_: {}): any;
|
|
8
|
+
};
|
|
9
|
+
refs: {};
|
|
10
|
+
rootEl: any;
|
|
11
|
+
};
|
|
12
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
13
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
14
|
+
showLabel: boolean;
|
|
15
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
16
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
17
|
+
export default _default;
|
|
18
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
19
|
+
new (): {
|
|
20
|
+
$slots: S;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { defineComponent as b, computed as k, resolveComponent as d, createBlock as m, openBlock as o, withCtx as l, createElementVNode as t, createElementBlock as r, Fragment as C, renderList as y, unref as s, normalizeClass as L, toDisplayString as _, createVNode as c, renderSlot as B, createCommentVNode as v } from "vue";
|
|
2
|
+
import { ArrowDown as N } from "@element-plus/icons-vue";
|
|
3
|
+
import S from "../../locales/index.js";
|
|
4
|
+
import { Storage as x } from "../../utils/repoUtils.js";
|
|
5
|
+
import { messages as i } from "../../locales/messages.js";
|
|
6
|
+
import V from "./NavIconBtn.vue.js";
|
|
7
|
+
const j = {
|
|
8
|
+
key: 0,
|
|
9
|
+
class: "language-select__current"
|
|
10
|
+
}, D = { class: "language-select__panel" }, E = ["onClick"], G = /* @__PURE__ */ b({
|
|
11
|
+
__name: "LanguageSelect",
|
|
12
|
+
props: {
|
|
13
|
+
showLabel: { type: Boolean, default: !1 }
|
|
14
|
+
},
|
|
15
|
+
setup(M) {
|
|
16
|
+
const { locale: u } = S.global, n = k(
|
|
17
|
+
() => i[u.value].name
|
|
18
|
+
), f = Object.keys(i).map((e) => ({
|
|
19
|
+
label: i[e].name,
|
|
20
|
+
value: e
|
|
21
|
+
})), h = (e) => {
|
|
22
|
+
x.set("locale", e), location.reload();
|
|
23
|
+
};
|
|
24
|
+
return (e, p) => {
|
|
25
|
+
const g = d("el-icon"), w = d("el-popover");
|
|
26
|
+
return o(), m(w, {
|
|
27
|
+
placement: "bottom",
|
|
28
|
+
width: 180,
|
|
29
|
+
trigger: "hover",
|
|
30
|
+
"popper-class": "top-language-popover"
|
|
31
|
+
}, {
|
|
32
|
+
reference: l(() => [
|
|
33
|
+
c(V, {
|
|
34
|
+
"langselect-toggle": "",
|
|
35
|
+
tag: "div",
|
|
36
|
+
class: "language-select",
|
|
37
|
+
"icon-only": !e.showLabel,
|
|
38
|
+
title: n.value,
|
|
39
|
+
"aria-label": n.value
|
|
40
|
+
}, {
|
|
41
|
+
default: l(() => [
|
|
42
|
+
B(e.$slots, "prefix", {}, void 0, !0),
|
|
43
|
+
c(g, null, {
|
|
44
|
+
default: l(() => p[0] || (p[0] = [
|
|
45
|
+
t("svg", {
|
|
46
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
47
|
+
width: "24",
|
|
48
|
+
height: "24",
|
|
49
|
+
viewBox: "0 0 24 24",
|
|
50
|
+
fill: "none",
|
|
51
|
+
stroke: "currentColor",
|
|
52
|
+
"stroke-width": "2",
|
|
53
|
+
"stroke-linecap": "round",
|
|
54
|
+
"stroke-linejoin": "round",
|
|
55
|
+
"data-lucide": "globe",
|
|
56
|
+
"aria-hidden": "true",
|
|
57
|
+
class: "lucide lucide-globe"
|
|
58
|
+
}, [
|
|
59
|
+
t("circle", {
|
|
60
|
+
cx: "12",
|
|
61
|
+
cy: "12",
|
|
62
|
+
r: "10"
|
|
63
|
+
}),
|
|
64
|
+
t("path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" }),
|
|
65
|
+
t("path", { d: "M2 12h20" })
|
|
66
|
+
], -1)
|
|
67
|
+
])),
|
|
68
|
+
_: 1,
|
|
69
|
+
__: [0]
|
|
70
|
+
}),
|
|
71
|
+
e.showLabel ? (o(), r("span", j, _(n.value), 1)) : v("", !0),
|
|
72
|
+
e.showLabel ? (o(), m(g, {
|
|
73
|
+
key: 1,
|
|
74
|
+
class: "language-select__caret"
|
|
75
|
+
}, {
|
|
76
|
+
default: l(() => [
|
|
77
|
+
c(s(N))
|
|
78
|
+
]),
|
|
79
|
+
_: 1
|
|
80
|
+
})) : v("", !0)
|
|
81
|
+
]),
|
|
82
|
+
_: 3
|
|
83
|
+
}, 8, ["icon-only", "title", "aria-label"])
|
|
84
|
+
]),
|
|
85
|
+
default: l(() => [
|
|
86
|
+
t("div", D, [
|
|
87
|
+
(o(!0), r(C, null, y(s(f), (a) => (o(), r("div", {
|
|
88
|
+
key: a.value,
|
|
89
|
+
class: L(["language-select__option", { "language-select__option--active": a.value === s(u) }]),
|
|
90
|
+
onClick: ($) => h(a.value)
|
|
91
|
+
}, _(a.label), 11, E))), 128))
|
|
92
|
+
])
|
|
93
|
+
]),
|
|
94
|
+
_: 3
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
export {
|
|
100
|
+
G as default
|
|
101
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.language-select[data-v-48306ad1]{flex-shrink:0}.language-select__current[data-v-48306ad1]{font-size:14px;font-weight:600;line-height:1}.language-select__caret[data-v-48306ad1]{font-size:12px}.language-select__panel[data-v-48306ad1]{display:grid;gap:4px}.language-select__option[data-v-48306ad1]{padding:10px 12px;border-radius:var(--ui-radius-control);cursor:pointer;color:var(--ui-text-primary);transition:background var(--ui-transition-fast),color var(--ui-transition-fast)}.language-select__option[data-v-48306ad1]:hover{background:var(--ui-bg-muted)}.language-select__option--active[data-v-48306ad1]{color:var(--el-color-primary);background:var(--el-color-primary-light-10)}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.layout-breadcrumb[data-v-21c4b2fb]{display:flex;min-width:0;align-items:center;gap:6px;color:var(--ui-text-placeholder);line-height:1.4}.layout-breadcrumb__back[data-v-21c4b2fb]{display:inline-flex;width:24px;height:24px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--ui-radius-sm);padding:0;background:transparent;color:var(--ui-text-placeholder);cursor:pointer;font:inherit;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast),color var(--ui-transition-fast)}.layout-breadcrumb__back[data-v-21c4b2fb]:hover{background:var(--ui-bg-muted);color:var(--ui-text-muted)}.layout-breadcrumb__back[data-v-21c4b2fb]:focus-visible{outline:2px solid var(--ui-ring);outline-offset:2px}.layout-breadcrumb__separator[data-v-21c4b2fb]{flex:0 0 auto;color:var(--ui-text-disabled);font-size:11px}.layout-breadcrumb__link[data-v-21c4b2fb],.layout-breadcrumb__current[data-v-21c4b2fb]{display:inline-block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout-breadcrumb__link[data-v-21c4b2fb]{border:0;padding:0;background:transparent;color:var(--ui-text-placeholder);cursor:pointer;font:inherit;transition:color var(--ui-transition-fast)}.layout-breadcrumb__link[data-v-21c4b2fb]:hover{color:var(--ui-text-muted)}.layout-breadcrumb__link[data-v-21c4b2fb]:focus-visible{outline:2px solid var(--ui-ring);outline-offset:2px;border-radius:var(--ui-radius-sm)}.layout-breadcrumb__current[data-v-21c4b2fb]{color:var(--ui-text-muted);font-weight:500}@media (max-width: 768px){.layout-breadcrumb__link[data-v-21c4b2fb],.layout-breadcrumb__current[data-v-21c4b2fb]{max-width:44vw}}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { RouteLocationRaw } from 'vue-router';
|
|
2
|
+
export interface LayoutBreadcrumbItem {
|
|
3
|
+
title: string;
|
|
4
|
+
path?: string;
|
|
5
|
+
to?: RouteLocationRaw;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
children?: LayoutBreadcrumbItem[];
|
|
8
|
+
}
|
|
9
|
+
type __VLS_Props = {
|
|
10
|
+
items?: LayoutBreadcrumbItem[];
|
|
11
|
+
currentTitle?: string;
|
|
12
|
+
parentPath?: string;
|
|
13
|
+
preserveQueryKeys?: string[];
|
|
14
|
+
showCurrent?: boolean;
|
|
15
|
+
showBack?: boolean;
|
|
16
|
+
backTo?: RouteLocationRaw;
|
|
17
|
+
backLabel?: string;
|
|
18
|
+
};
|
|
19
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
20
|
+
parentPath: string;
|
|
21
|
+
currentTitle: string;
|
|
22
|
+
items: LayoutBreadcrumbItem[];
|
|
23
|
+
preserveQueryKeys: string[];
|
|
24
|
+
showCurrent: boolean;
|
|
25
|
+
showBack: boolean;
|
|
26
|
+
backTo: RouteLocationRaw;
|
|
27
|
+
backLabel: string;
|
|
28
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
29
|
+
export default _default;
|