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
package/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# mamba-layout
|
|
2
|
+
|
|
3
|
+
Shared Mamba Vue layout shell, styles, locale helpers, and a standalone browser layout build.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npm install mamba-layout
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
`mamba-layout` is designed for Vue 3 applications. Vue, Vue Router, Vue I18n, Element Plus, and Tailwind CSS are peer dependencies for component usage.
|
|
12
|
+
|
|
13
|
+
## Vue Usage
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import { BaseLayout, i18n, initTheme } from "mamba-layout";
|
|
17
|
+
import "mamba-layout/styles";
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
```vue
|
|
21
|
+
<template>
|
|
22
|
+
<BaseLayout :setting="setting" />
|
|
23
|
+
</template>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The consuming app owns user state, menus, account menu entries, app switcher data, and auth actions. Pass those values through the `setting` prop.
|
|
27
|
+
|
|
28
|
+
## Standalone Usage
|
|
29
|
+
|
|
30
|
+
The standalone build bundles Vue, Vue Router, Vue I18n, Element Plus, Element Plus icons, and layout styles. It registers the `<mamba-layout>` custom element and reads config from `window.MAMBA_LAYOUT_CONFIG`.
|
|
31
|
+
|
|
32
|
+
```html
|
|
33
|
+
<link rel="stylesheet" href="./node_modules/mamba-layout/dist/layout.css" />
|
|
34
|
+
<script>
|
|
35
|
+
window.MAMBA_LAYOUT_CONFIG = {
|
|
36
|
+
setting: {
|
|
37
|
+
title: "Mamba",
|
|
38
|
+
menus: [],
|
|
39
|
+
accountMenu: [],
|
|
40
|
+
appList: [],
|
|
41
|
+
user: null
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
</script>
|
|
45
|
+
<mamba-layout></mamba-layout>
|
|
46
|
+
<script src="./node_modules/mamba-layout/dist/layout.global.js"></script>
|
|
47
|
+
```
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const A = "data:image/png;base64,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";
|
|
2
|
+
export {
|
|
3
|
+
A as default
|
|
4
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.user-avatar[data-v-50be58a7]{--el-avatar-bg-color: transparent}.user-avatar--fallback[data-v-50be58a7]{--el-avatar-bg-color: var(--ui-avatar-bg, var(--el-color-primary));color:var(--ui-text-on-brand)}.user-avatar__fallback[data-v-50be58a7]{color:inherit;font-weight:600;line-height:1;-webkit-user-select:none;user-select:none}.user-avatar__icon[data-v-50be58a7]{color:inherit;font-size:1em}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
src?: string;
|
|
3
|
+
name?: string;
|
|
4
|
+
};
|
|
5
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
6
|
+
name: string;
|
|
7
|
+
src: string;
|
|
8
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
export default _default;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { defineComponent as b, ref as w, computed as a, watch as A, resolveComponent as n, createBlock as u, openBlock as s, mergeProps as C, withCtx as v, createElementBlock as y, createCommentVNode as F, toDisplayString as N, createVNode as B, unref as E } from "vue";
|
|
2
|
+
import { User as g } from "@element-plus/icons-vue";
|
|
3
|
+
const x = {
|
|
4
|
+
key: 0,
|
|
5
|
+
class: "user-avatar__fallback"
|
|
6
|
+
}, L = /* @__PURE__ */ b({
|
|
7
|
+
__name: "UserAvatar",
|
|
8
|
+
props: {
|
|
9
|
+
src: { default: "" },
|
|
10
|
+
name: { default: "" }
|
|
11
|
+
},
|
|
12
|
+
setup(d) {
|
|
13
|
+
const r = d, e = w(!1), t = a(() => r.name.trim()), m = a(
|
|
14
|
+
() => t.value.charAt(0).toUpperCase() || "U"
|
|
15
|
+
), p = a(() => t.value || "User avatar"), l = a(() => r.src.trim()), o = a(
|
|
16
|
+
() => !l.value || e.value
|
|
17
|
+
), i = a(
|
|
18
|
+
() => o.value && !!t.value
|
|
19
|
+
), _ = a(
|
|
20
|
+
() => o.value && !t.value
|
|
21
|
+
), c = a(
|
|
22
|
+
() => l.value && !e.value ? l.value : void 0
|
|
23
|
+
);
|
|
24
|
+
A(
|
|
25
|
+
() => r.src,
|
|
26
|
+
() => {
|
|
27
|
+
e.value = !1;
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
const f = () => {
|
|
31
|
+
e.value = !0;
|
|
32
|
+
};
|
|
33
|
+
return (h, I) => {
|
|
34
|
+
const k = n("el-icon"), U = n("el-avatar");
|
|
35
|
+
return s(), u(U, C(h.$attrs, {
|
|
36
|
+
src: c.value,
|
|
37
|
+
"data-src": c.value,
|
|
38
|
+
alt: p.value,
|
|
39
|
+
class: ["user-avatar", { "user-avatar--fallback": o.value }],
|
|
40
|
+
onError: f
|
|
41
|
+
}), {
|
|
42
|
+
default: v(() => [
|
|
43
|
+
i.value ? (s(), y("span", x, N(m.value), 1)) : _.value ? (s(), u(k, {
|
|
44
|
+
key: 1,
|
|
45
|
+
class: "user-avatar__icon",
|
|
46
|
+
"aria-hidden": "true"
|
|
47
|
+
}, {
|
|
48
|
+
default: v(() => [
|
|
49
|
+
B(E(g))
|
|
50
|
+
]),
|
|
51
|
+
_: 1
|
|
52
|
+
})) : F("", !0)
|
|
53
|
+
]),
|
|
54
|
+
_: 1
|
|
55
|
+
}, 16, ["src", "data-src", "alt", "class"]);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
export {
|
|
60
|
+
L as default
|
|
61
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { default as a } from "./UserAvatar/src/UserAvatar.vue.js";
|
|
2
|
+
import { default as f } from "../layout/components/AppSelect.vue.js";
|
|
3
|
+
import { default as d } from "../layout/components/AsideBar.vue.js";
|
|
4
|
+
import { default as u } from "../layout/components/AsideSubMenuItem.vue.js";
|
|
5
|
+
import { default as p } from "../layout/components/AsideSubMenus.vue.js";
|
|
6
|
+
import { default as i } from "../layout/components/AsideTabMenus.vue.js";
|
|
7
|
+
import { default as M } from "../layout/components/AsideUser.vue.js";
|
|
8
|
+
import { default as b } from "../layout/components/HeaderBar.vue.js";
|
|
9
|
+
import { default as c } from "../layout/components/HeaderMenuToggle.vue.js";
|
|
10
|
+
import { default as T } from "../layout/components/LanguageSelect.vue.js";
|
|
11
|
+
import { default as I } from "../layout/components/LayoutBreadcrumb.vue.js";
|
|
12
|
+
import { default as H } from "../layout/components/MenuDrawer.vue.js";
|
|
13
|
+
/* empty css */
|
|
14
|
+
import { default as v } from "../layout/components/MenuItemIcon.vue.js";
|
|
15
|
+
import { default as R } from "../layout/components/NavIconBtn.vue.js";
|
|
16
|
+
import { default as y } from "../layout/components/SHeaderRight.vue.js";
|
|
17
|
+
import { default as D } from "../layout/components/ThemeToggle.vue.js";
|
|
18
|
+
import { default as P } from "../layout/components/TimezoneSelect.vue.js";
|
|
19
|
+
import { default as k } from "../layout/components/UserInfo.vue.js";
|
|
20
|
+
import { default as C } from "../layout/components/mobile/AppSelectMobile.vue.js";
|
|
21
|
+
import { default as F } from "../layout/components/mobile/AsideBarMobile.vue.js";
|
|
22
|
+
import { default as J } from "../layout/components/mobile/AsideUserMobile.vue.js";
|
|
23
|
+
import { default as O } from "../layout/components/mobile/AsideUserMobilePopover.vue.js";
|
|
24
|
+
import { default as V } from "../layout/components/mobile/HeaderRightMobile.vue.js";
|
|
25
|
+
import { default as X } from "../layout/components/mobile/MobileMenuToggle.vue.js";
|
|
26
|
+
export {
|
|
27
|
+
f as AppSelect,
|
|
28
|
+
C as AppSelectMobile,
|
|
29
|
+
d as AsideBar,
|
|
30
|
+
F as AsideBarMobile,
|
|
31
|
+
u as AsideSubMenuItem,
|
|
32
|
+
p as AsideSubMenus,
|
|
33
|
+
i as AsideTabMenus,
|
|
34
|
+
M as AsideUser,
|
|
35
|
+
J as AsideUserMobile,
|
|
36
|
+
O as AsideUserMobilePopover,
|
|
37
|
+
b as HeaderBar,
|
|
38
|
+
c as HeaderMenuToggle,
|
|
39
|
+
V as HeaderRightMobile,
|
|
40
|
+
T as LanguageSelect,
|
|
41
|
+
I as LayoutBreadcrumb,
|
|
42
|
+
H as MenuDrawer,
|
|
43
|
+
v as MenuItemIcon,
|
|
44
|
+
X as MobileMenuToggle,
|
|
45
|
+
R as NavIconBtn,
|
|
46
|
+
y as SHeaderRight,
|
|
47
|
+
D as ThemeToggle,
|
|
48
|
+
P as TimezoneSelect,
|
|
49
|
+
a as UserAvatar,
|
|
50
|
+
k as UserInfo
|
|
51
|
+
};
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { default as BaseLayout } from './layout/BaseLayout.vue';
|
|
2
|
+
export { default, default as LayoutBreadcrumb, } from './layout/components/LayoutBreadcrumb.vue';
|
|
3
|
+
export * from './layout/hooks/useApp';
|
|
4
|
+
export * from './layout/hooks/useSetting';
|
|
5
|
+
export * from './layout/hooks/useState';
|
|
6
|
+
export * from './layout/hooks/useTheme';
|
|
7
|
+
export * from './layout/hooks';
|
|
8
|
+
export * from './layout/utils';
|
|
9
|
+
export * from './components';
|
|
10
|
+
export * from './layout/components';
|
|
11
|
+
export { default as i18n } from './locales';
|
|
12
|
+
export * from './locales/messages';
|
|
13
|
+
export type { RouteItem } from './utils/repoUtils';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { default as r } from "./layout/BaseLayout.vue.js";
|
|
2
|
+
import { default as f, default as s } from "./layout/components/LayoutBreadcrumb.vue.js";
|
|
3
|
+
import { useApp as m } from "./layout/hooks/useApp.js";
|
|
4
|
+
import { provideSetting as l, useSetting as p } from "./layout/hooks/useSetting.js";
|
|
5
|
+
import { injectLayoutContext as i, provideLayoutContext as n, useStateHook as g } from "./layout/hooks/useState.js";
|
|
6
|
+
import { initTheme as S, setTheme as y, syncThemeFromSetting as A, toggleTheme as T, useTheme as L } from "./layout/hooks/useTheme.js";
|
|
7
|
+
import { getLayoutLoginPath as c, getLayoutUserCenterPath as h, getQueryString as B, redirectToLayoutLogin as U, setLayoutStyle as v, setPrimaryColor as H } from "./layout/utils/index.js";
|
|
8
|
+
import { default as C } from "./components/UserAvatar/src/UserAvatar.vue.js";
|
|
9
|
+
import { default as R } from "./layout/components/AppSelect.vue.js";
|
|
10
|
+
import { default as k } from "./layout/components/AsideBar.vue.js";
|
|
11
|
+
import { default as z } from "./layout/components/AsideSubMenuItem.vue.js";
|
|
12
|
+
import { default as F } from "./layout/components/AsideSubMenus.vue.js";
|
|
13
|
+
import { default as Q } from "./layout/components/AsideTabMenus.vue.js";
|
|
14
|
+
import { default as E } from "./layout/components/AsideUser.vue.js";
|
|
15
|
+
import { default as J } from "./layout/components/HeaderBar.vue.js";
|
|
16
|
+
import { default as O } from "./layout/components/HeaderMenuToggle.vue.js";
|
|
17
|
+
import { default as W } from "./layout/components/LanguageSelect.vue.js";
|
|
18
|
+
import { default as Y } from "./layout/components/MenuDrawer.vue.js";
|
|
19
|
+
/* empty css */
|
|
20
|
+
import { default as _ } from "./layout/components/MenuItemIcon.vue.js";
|
|
21
|
+
import { default as ee } from "./layout/components/NavIconBtn.vue.js";
|
|
22
|
+
import { default as oe } from "./layout/components/SHeaderRight.vue.js";
|
|
23
|
+
import { default as ae } from "./layout/components/ThemeToggle.vue.js";
|
|
24
|
+
import { default as se } from "./layout/components/TimezoneSelect.vue.js";
|
|
25
|
+
import { default as me } from "./layout/components/UserInfo.vue.js";
|
|
26
|
+
import { default as le } from "./layout/components/mobile/AppSelectMobile.vue.js";
|
|
27
|
+
import { default as xe } from "./layout/components/mobile/AsideBarMobile.vue.js";
|
|
28
|
+
import { default as ne } from "./layout/components/mobile/AsideUserMobile.vue.js";
|
|
29
|
+
import { default as Me } from "./layout/components/mobile/AsideUserMobilePopover.vue.js";
|
|
30
|
+
import { default as ye } from "./layout/components/mobile/HeaderRightMobile.vue.js";
|
|
31
|
+
import { default as Te } from "./layout/components/mobile/MobileMenuToggle.vue.js";
|
|
32
|
+
import { default as be } from "./locales/index.js";
|
|
33
|
+
import { messages as he } from "./locales/messages.js";
|
|
34
|
+
export {
|
|
35
|
+
R as AppSelect,
|
|
36
|
+
le as AppSelectMobile,
|
|
37
|
+
k as AsideBar,
|
|
38
|
+
xe as AsideBarMobile,
|
|
39
|
+
z as AsideSubMenuItem,
|
|
40
|
+
F as AsideSubMenus,
|
|
41
|
+
Q as AsideTabMenus,
|
|
42
|
+
E as AsideUser,
|
|
43
|
+
ne as AsideUserMobile,
|
|
44
|
+
Me as AsideUserMobilePopover,
|
|
45
|
+
r as BaseLayout,
|
|
46
|
+
J as HeaderBar,
|
|
47
|
+
O as HeaderMenuToggle,
|
|
48
|
+
ye as HeaderRightMobile,
|
|
49
|
+
W as LanguageSelect,
|
|
50
|
+
f as LayoutBreadcrumb,
|
|
51
|
+
Y as MenuDrawer,
|
|
52
|
+
_ as MenuItemIcon,
|
|
53
|
+
Te as MobileMenuToggle,
|
|
54
|
+
ee as NavIconBtn,
|
|
55
|
+
oe as SHeaderRight,
|
|
56
|
+
ae as ThemeToggle,
|
|
57
|
+
se as TimezoneSelect,
|
|
58
|
+
C as UserAvatar,
|
|
59
|
+
me as UserInfo,
|
|
60
|
+
s as default,
|
|
61
|
+
c as getLayoutLoginPath,
|
|
62
|
+
h as getLayoutUserCenterPath,
|
|
63
|
+
B as getQueryString,
|
|
64
|
+
be as i18n,
|
|
65
|
+
S as initTheme,
|
|
66
|
+
i as injectLayoutContext,
|
|
67
|
+
he as messages,
|
|
68
|
+
n as provideLayoutContext,
|
|
69
|
+
l as provideSetting,
|
|
70
|
+
U as redirectToLayoutLogin,
|
|
71
|
+
v as setLayoutStyle,
|
|
72
|
+
H as setPrimaryColor,
|
|
73
|
+
y as setTheme,
|
|
74
|
+
A as syncThemeFromSetting,
|
|
75
|
+
T as toggleTheme,
|
|
76
|
+
m as useApp,
|
|
77
|
+
p as useSetting,
|
|
78
|
+
g as useStateHook,
|
|
79
|
+
L as useTheme
|
|
80
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.layout-shell[data-v-259cbdf0]{background:var(--ui-topnav-bg);color:var(--ui-text-primary)}.layout-shell__overlay[data-v-259cbdf0]{background:#000000b3}.layout-page-view[data-v-259cbdf0]{display:flex;flex:1 1 auto;flex-direction:column;width:100%;min-width:0;min-height:0;background:var(--ui-bg-page);contain:paint}.layout-page-enter-active[data-v-259cbdf0],.layout-page-leave-active[data-v-259cbdf0]{transition:opacity var(--ui-transition-base),transform var(--ui-transition-base);will-change:opacity,transform}.layout-page-enter-from[data-v-259cbdf0]{opacity:0;transform:translate3d(8px,0,0)}.layout-page-leave-to[data-v-259cbdf0]{opacity:0;transform:translate3d(-6px,0,0)}@media (prefers-reduced-motion: reduce){.layout-page-enter-active[data-v-259cbdf0],.layout-page-leave-active[data-v-259cbdf0]{transition:none}.layout-page-enter-from[data-v-259cbdf0],.layout-page-leave-to[data-v-259cbdf0]{opacity:1;transform:none}}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SettingConfig } from './hooks/useSetting';
|
|
2
|
+
type __VLS_Props = {
|
|
3
|
+
setting?: Partial<SettingConfig & {
|
|
4
|
+
[x: string]: unknown;
|
|
5
|
+
}>;
|
|
6
|
+
};
|
|
7
|
+
declare function __VLS_template(): {
|
|
8
|
+
attrs: Partial<{}>;
|
|
9
|
+
slots: {
|
|
10
|
+
'header-right'?(_: {}): any;
|
|
11
|
+
};
|
|
12
|
+
refs: {};
|
|
13
|
+
rootEl: HTMLDivElement;
|
|
14
|
+
};
|
|
15
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
16
|
+
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
17
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
18
|
+
export default _default;
|
|
19
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
20
|
+
new (): {
|
|
21
|
+
$slots: S;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { defineComponent as x, computed as w, watchEffect as k, resolveComponent as L, createElementBlock as r, openBlock as o, createVNode as u, createElementVNode as c, createCommentVNode as b, withCtx as d, renderSlot as B, createBlock as m, unref as f, Transition as C, resolveDynamicComponent as S, normalizeClass as M } from "vue";
|
|
2
|
+
import E from "./components/AsideBar.vue.js";
|
|
3
|
+
import N from "./components/HeaderBar.vue.js";
|
|
4
|
+
import V from "./components/mobile/AsideBarMobile.vue.js";
|
|
5
|
+
import z from "../assets/logo.png.js";
|
|
6
|
+
import { provideSetting as A } from "./hooks/useSetting.js";
|
|
7
|
+
import { useStateHook as H } from "./hooks/useState.js";
|
|
8
|
+
const O = { class: "layout-shell w-full h-screen flex flex-col" }, D = { class: "flex flex-1 min-h-0 rounded-[var(--ui-body-radius)] overflow-hidden" }, T = { class: "flex flex-col flex-1 min-h-0 min-w-0 h-full" }, $ = { class: "flex-1 w-full min-h-0 flex flex-col overflow-hidden bg-[var(--ui-color-background)]" }, P = /* @__PURE__ */ x({
|
|
9
|
+
__name: "BaseLayout",
|
|
10
|
+
props: {
|
|
11
|
+
setting: {}
|
|
12
|
+
},
|
|
13
|
+
setup(_) {
|
|
14
|
+
const e = _, h = w(() => {
|
|
15
|
+
var n, a, l, i, t, g, v;
|
|
16
|
+
return {
|
|
17
|
+
...e.setting || {},
|
|
18
|
+
logo: ((n = e.setting) == null ? void 0 : n.logo) || z,
|
|
19
|
+
menus: ((a = e.setting) == null ? void 0 : a.menus) || [],
|
|
20
|
+
accountMenu: ((l = e.setting) == null ? void 0 : l.accountMenu) || [],
|
|
21
|
+
user: ((i = e.setting) == null ? void 0 : i.user) ?? null,
|
|
22
|
+
appList: ((t = e.setting) == null ? void 0 : t.appList) || [],
|
|
23
|
+
onLogin: (g = e.setting) == null ? void 0 : g.onLogin,
|
|
24
|
+
onLogout: (v = e.setting) == null ? void 0 : v.onLogout
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
k(() => void A(h.value));
|
|
28
|
+
const { isMobile: p, sideOpen: s } = H(), y = () => void (s.value = !s.value);
|
|
29
|
+
return (n, a) => {
|
|
30
|
+
const l = L("router-view");
|
|
31
|
+
return o(), r("div", O, [
|
|
32
|
+
u(N, null, {
|
|
33
|
+
default: d(() => [
|
|
34
|
+
B(n.$slots, "header-right", {}, void 0, !0)
|
|
35
|
+
]),
|
|
36
|
+
_: 3
|
|
37
|
+
}),
|
|
38
|
+
c("div", D, [
|
|
39
|
+
f(p) ? (o(), m(V, { key: 1 })) : (o(), m(E, { key: 0 })),
|
|
40
|
+
c("div", T, [
|
|
41
|
+
c("div", $, [
|
|
42
|
+
u(l, null, {
|
|
43
|
+
default: d(({ Component: i, route: t }) => [
|
|
44
|
+
u(C, {
|
|
45
|
+
name: String(t.meta.transition || "layout-page"),
|
|
46
|
+
mode: "out-in"
|
|
47
|
+
}, {
|
|
48
|
+
default: d(() => [
|
|
49
|
+
(o(), r("div", {
|
|
50
|
+
key: t.path,
|
|
51
|
+
class: "layout-page-view"
|
|
52
|
+
}, [
|
|
53
|
+
(o(), m(S(i)))
|
|
54
|
+
]))
|
|
55
|
+
]),
|
|
56
|
+
_: 2
|
|
57
|
+
}, 1032, ["name"])
|
|
58
|
+
]),
|
|
59
|
+
_: 1
|
|
60
|
+
})
|
|
61
|
+
])
|
|
62
|
+
])
|
|
63
|
+
]),
|
|
64
|
+
f(p) ? (o(), r("div", {
|
|
65
|
+
key: 0,
|
|
66
|
+
class: M(["layout-shell__overlay fixed top-0 left-0 w-full h-full z-100 transition-all", [f(s) ? "visible opacity-100" : "invisible opacity-0"]]),
|
|
67
|
+
onClick: y
|
|
68
|
+
}, null, 2)) : b("", !0)
|
|
69
|
+
]);
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
export {
|
|
74
|
+
P as default
|
|
75
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.app-select[data-v-b6da0897]{display:flex;gap:4px;line-height:1}.app-select__group[data-v-b6da0897]{position:relative;min-height:52px;display:flex;align-items:center}.app-select__group:hover .app-select__link[data-v-b6da0897]:not(.app-select__link--active){color:var(--ui-topnav-foreground);background:var(--ui-topnav-surface)}.app-select__group:hover .app-select__dropdown[data-v-b6da0897]{opacity:1;visibility:visible;transform:translateY(0)}.app-select__link[data-v-b6da0897]{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;height:32px;color:var(--ui-topnav-muted);font-size:13px;font-weight:600;transition:color var(--ui-transition-fast);border-radius:6px}.app-select__link--active[data-v-b6da0897],.app-select__link--active[data-v-b6da0897]:hover{background:var(--ui-topnav-active-bg);color:var(--ui-topnav-active-fg, var(--el-color-primary))}.app-select__dropdown[data-v-b6da0897]{position:absolute;top:calc(100% + 0px);left:0;width:400px;padding:8px;border:1px solid var(--ui-border-default);border-radius:var(--ui-radius-card);background:var(--ui-bg-card, var(--el-bg-color));box-shadow:var(--ui-shadow-pop, var(--el-box-shadow));opacity:0;visibility:hidden;transform:translateY(-5px);transition:opacity var(--ui-transition-fast),visibility var(--ui-transition-fast),transform var(--ui-transition-fast);z-index:20}.app-select__dropdown-item[data-v-b6da0897]{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--ui-radius-control);color:var(--ui-text-primary);transition:background var(--ui-transition-fast),color var(--ui-transition-fast)}.app-select__dropdown-item[data-v-b6da0897]:hover{background:var(--ui-bg-muted)}.app-select__dropdown-item--active[data-v-b6da0897]{color:var(--el-color-primary);background:var(--el-color-primary-light-10)}.app-select__dropdown-icon[data-v-b6da0897]{color:var(--ui-text-muted)}.app-select__dropdown-desc[data-v-b6da0897]{font-size:12px;color:var(--ui-text-muted);line-height:1.4;margin-top:2px}
|
|
@@ -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,69 @@
|
|
|
1
|
+
import { defineComponent as x, resolveComponent as y, createElementBlock as s, createCommentVNode as a, unref as p, openBlock as t, Fragment as g, renderList as w, createElementVNode as o, normalizeClass as _, createBlock as A, toDisplayString as d, withCtx as C, createVNode as I } from "vue";
|
|
2
|
+
import { ArrowDown as B } from "@element-plus/icons-vue";
|
|
3
|
+
import { useApp as L } from "../hooks/useApp.js";
|
|
4
|
+
import { injectLayoutContext as N } from "../hooks/useState.js";
|
|
5
|
+
const V = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "app-select"
|
|
8
|
+
}, D = ["href"], E = {
|
|
9
|
+
key: 0,
|
|
10
|
+
class: "app-select__dropdown"
|
|
11
|
+
}, S = ["href"], j = { class: "app-select__dropdown-icon text-xl" }, z = { class: "app-select__dropdown-desc" }, H = /* @__PURE__ */ x({
|
|
12
|
+
__name: "AppSelect",
|
|
13
|
+
setup(F) {
|
|
14
|
+
const { currentAppId: i } = N(), { appList: u, getAppPath: m } = L(), h = (c) => {
|
|
15
|
+
var r;
|
|
16
|
+
return i.value === c.appId || !!((r = c.children) != null && r.some((l) => l.appId === i.value));
|
|
17
|
+
};
|
|
18
|
+
return (c, r) => {
|
|
19
|
+
var v;
|
|
20
|
+
const l = y("el-icon");
|
|
21
|
+
return (v = p(u)) != null && v.length ? (t(), s("div", V, [
|
|
22
|
+
(t(!0), s(g, null, w(p(u), (e) => {
|
|
23
|
+
var f, k;
|
|
24
|
+
return t(), s("div", {
|
|
25
|
+
key: e.appId,
|
|
26
|
+
class: "app-select__group"
|
|
27
|
+
}, [
|
|
28
|
+
o("a", {
|
|
29
|
+
class: _(["app-select__link", {
|
|
30
|
+
"app-select__link--active": h(e)
|
|
31
|
+
}]),
|
|
32
|
+
href: p(m)(e) || void 0
|
|
33
|
+
}, [
|
|
34
|
+
o("span", null, d(e.name), 1),
|
|
35
|
+
(f = e.children) != null && f.length ? (t(), A(l, { key: 0 }, {
|
|
36
|
+
default: C(() => [
|
|
37
|
+
I(p(B))
|
|
38
|
+
]),
|
|
39
|
+
_: 1
|
|
40
|
+
})) : a("", !0)
|
|
41
|
+
], 10, D),
|
|
42
|
+
(k = e.children) != null && k.length ? (t(), s("div", E, [
|
|
43
|
+
(t(!0), s(g, null, w(e.children, (n) => (t(), s("a", {
|
|
44
|
+
key: n.appId,
|
|
45
|
+
class: _(["app-select__dropdown-item", {
|
|
46
|
+
"app-select__dropdown-item--active": h(n)
|
|
47
|
+
}]),
|
|
48
|
+
href: p(m)(n) || void 0
|
|
49
|
+
}, [
|
|
50
|
+
o("span", j, [
|
|
51
|
+
o("i", {
|
|
52
|
+
class: _(n.icon || "metisicon-moxingku")
|
|
53
|
+
}, null, 2)
|
|
54
|
+
]),
|
|
55
|
+
o("div", null, [
|
|
56
|
+
o("div", null, d(n.name), 1),
|
|
57
|
+
o("div", z, d(n.desc), 1)
|
|
58
|
+
])
|
|
59
|
+
], 10, S))), 128))
|
|
60
|
+
])) : a("", !0)
|
|
61
|
+
]);
|
|
62
|
+
}), 128))
|
|
63
|
+
])) : a("", !0);
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
export {
|
|
68
|
+
H as default
|
|
69
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.aside-bar[data-v-f328029c]{border-right:1px solid var(--ui-sidebar-border, var(--el-border-color));background:var(--ui-sidebar-bg);color:var(--ui-sidebar-foreground)}.aside-bar__mobile-head[data-v-f328029c]{border-bottom:1px solid var(--ui-sidebar-border, var(--el-border-color))}.aside-bar__close[data-v-f328029c]{color:var(--ui-text-muted)}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
declare function __VLS_template(): {
|
|
2
|
+
attrs: Partial<{}>;
|
|
3
|
+
slots: {
|
|
4
|
+
'sidebar-foot'?(_: {}): any;
|
|
5
|
+
};
|
|
6
|
+
refs: {
|
|
7
|
+
leftScrollRef: unknown;
|
|
8
|
+
};
|
|
9
|
+
rootEl: any;
|
|
10
|
+
};
|
|
11
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
12
|
+
declare const __VLS_component: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
13
|
+
leftScrollRef: unknown;
|
|
14
|
+
}, any>;
|
|
15
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
16
|
+
export default _default;
|
|
17
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
18
|
+
new (): {
|
|
19
|
+
$slots: S;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { defineComponent as u, resolveComponent as s, createElementBlock as i, createCommentVNode as a, unref as e, openBlock as c, normalizeClass as b, createVNode as t, renderSlot as x, createElementVNode as d, withCtx as m } from "vue";
|
|
2
|
+
import { Fold as h } from "@element-plus/icons-vue";
|
|
3
|
+
import { injectLayoutContext as v } from "../hooks/useState.js";
|
|
4
|
+
import C from "./AsideSubMenus.vue.js";
|
|
5
|
+
const g = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "aside-bar__mobile-head flex justify-between items-center pt-4 pb-4 px-4"
|
|
8
|
+
}, k = { class: "p-3" }, $ = /* @__PURE__ */ u({
|
|
9
|
+
__name: "AsideBar",
|
|
10
|
+
setup(w) {
|
|
11
|
+
const { menus: l, isMobile: n, sideOpen: o } = v(), _ = () => void (o.value = !o.value);
|
|
12
|
+
return (r, y) => {
|
|
13
|
+
const p = s("el-icon"), f = s("el-scrollbar");
|
|
14
|
+
return e(l).length && !r.$route.meta.hideSidebar ? (c(), i("div", {
|
|
15
|
+
key: 0,
|
|
16
|
+
class: b(["aside-bar flex flex-col h-full min-h-0 w-64 min-width-50", [
|
|
17
|
+
e(n) ? "fixed top-0 left-0 z-200 transition-all" : "",
|
|
18
|
+
e(o) ? "translate-x-[0px]" : "translate-x-[-100%]"
|
|
19
|
+
]])
|
|
20
|
+
}, [
|
|
21
|
+
e(n) ? (c(), i("div", g, [
|
|
22
|
+
d("div", {
|
|
23
|
+
class: "aside-bar__close text-lg cursor-pointer p-2 leading-4",
|
|
24
|
+
onClick: _
|
|
25
|
+
}, [
|
|
26
|
+
t(p, null, {
|
|
27
|
+
default: m(() => [
|
|
28
|
+
t(e(h))
|
|
29
|
+
]),
|
|
30
|
+
_: 1
|
|
31
|
+
})
|
|
32
|
+
])
|
|
33
|
+
])) : a("", !0),
|
|
34
|
+
t(f, { ref: "leftScrollRef" }, {
|
|
35
|
+
default: m(() => [
|
|
36
|
+
d("div", k, [
|
|
37
|
+
t(C, { menus: e(l) }, null, 8, ["menus"])
|
|
38
|
+
])
|
|
39
|
+
]),
|
|
40
|
+
_: 1
|
|
41
|
+
}, 512),
|
|
42
|
+
x(r.$slots, "sidebar-foot", {}, void 0, !0)
|
|
43
|
+
], 2)) : a("", !0);
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
export {
|
|
48
|
+
$ as default
|
|
49
|
+
};
|