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.
Files changed (169) hide show
  1. package/README.md +47 -0
  2. package/dist/_virtual/_plugin-vue_export-helper.js +9 -0
  3. package/dist/assets/logo.png.js +4 -0
  4. package/dist/components/UserAvatar/index.d.ts +2 -0
  5. package/dist/components/UserAvatar/index.js +5 -0
  6. package/dist/components/UserAvatar/src/UserAvatar.css +1 -0
  7. package/dist/components/UserAvatar/src/UserAvatar.vue.d.ts +9 -0
  8. package/dist/components/UserAvatar/src/UserAvatar.vue.js +7 -0
  9. package/dist/components/UserAvatar/src/UserAvatar.vue2.js +61 -0
  10. package/dist/components/index.d.ts +2 -0
  11. package/dist/components/index.js +51 -0
  12. package/dist/index.d.ts +13 -0
  13. package/dist/index.js +80 -0
  14. package/dist/layout/BaseLayout.css +1 -0
  15. package/dist/layout/BaseLayout.vue.d.ts +23 -0
  16. package/dist/layout/BaseLayout.vue.js +7 -0
  17. package/dist/layout/BaseLayout.vue2.js +75 -0
  18. package/dist/layout/components/AppSelect.css +1 -0
  19. package/dist/layout/components/AppSelect.vue.d.ts +2 -0
  20. package/dist/layout/components/AppSelect.vue.js +7 -0
  21. package/dist/layout/components/AppSelect.vue2.js +69 -0
  22. package/dist/layout/components/AsideBar.css +1 -0
  23. package/dist/layout/components/AsideBar.vue.d.ts +21 -0
  24. package/dist/layout/components/AsideBar.vue.js +7 -0
  25. package/dist/layout/components/AsideBar.vue2.js +49 -0
  26. package/dist/layout/components/AsideSubMenuItem.vue.d.ts +25 -0
  27. package/dist/layout/components/AsideSubMenuItem.vue.js +84 -0
  28. package/dist/layout/components/AsideSubMenuItem.vue2.js +4 -0
  29. package/dist/layout/components/AsideSubMenus.vue.d.ts +16 -0
  30. package/dist/layout/components/AsideSubMenus.vue.js +36 -0
  31. package/dist/layout/components/AsideSubMenus.vue2.js +4 -0
  32. package/dist/layout/components/AsideTabMenus.vue.d.ts +2 -0
  33. package/dist/layout/components/AsideTabMenus.vue.js +41 -0
  34. package/dist/layout/components/AsideTabMenus.vue2.js +4 -0
  35. package/dist/layout/components/AsideUser.vue.d.ts +2 -0
  36. package/dist/layout/components/AsideUser.vue.js +58 -0
  37. package/dist/layout/components/AsideUser.vue2.js +4 -0
  38. package/dist/layout/components/HeaderBar.css +1 -0
  39. package/dist/layout/components/HeaderBar.vue.d.ts +17 -0
  40. package/dist/layout/components/HeaderBar.vue.js +7 -0
  41. package/dist/layout/components/HeaderBar.vue2.js +55 -0
  42. package/dist/layout/components/HeaderMenuToggle.vue.d.ts +25 -0
  43. package/dist/layout/components/HeaderMenuToggle.vue.js +40 -0
  44. package/dist/layout/components/HeaderMenuToggle.vue2.js +4 -0
  45. package/dist/layout/components/LanguageSelect.css +1 -0
  46. package/dist/layout/components/LanguageSelect.vue.d.ts +22 -0
  47. package/dist/layout/components/LanguageSelect.vue.js +8 -0
  48. package/dist/layout/components/LanguageSelect.vue2.js +101 -0
  49. package/dist/layout/components/LanguageSelect2.css +1 -0
  50. package/dist/layout/components/LayoutBreadcrumb.css +1 -0
  51. package/dist/layout/components/LayoutBreadcrumb.vue.d.ts +29 -0
  52. package/dist/layout/components/LayoutBreadcrumb.vue.js +7 -0
  53. package/dist/layout/components/LayoutBreadcrumb.vue2.js +189 -0
  54. package/dist/layout/components/MenuDrawer.css +1 -0
  55. package/dist/layout/components/MenuDrawer.vue.d.ts +12 -0
  56. package/dist/layout/components/MenuDrawer.vue.js +163 -0
  57. package/dist/layout/components/MenuDrawer.vue3.js +5 -0
  58. package/dist/layout/components/MenuItemIcon.css +1 -0
  59. package/dist/layout/components/MenuItemIcon.vue.d.ts +7 -0
  60. package/dist/layout/components/MenuItemIcon.vue.js +7 -0
  61. package/dist/layout/components/MenuItemIcon.vue2.js +23 -0
  62. package/dist/layout/components/NavIconBtn.css +1 -0
  63. package/dist/layout/components/NavIconBtn.vue.d.ts +26 -0
  64. package/dist/layout/components/NavIconBtn.vue.js +7 -0
  65. package/dist/layout/components/NavIconBtn.vue2.js +23 -0
  66. package/dist/layout/components/SHeaderRight.css +1 -0
  67. package/dist/layout/components/SHeaderRight.vue.d.ts +2 -0
  68. package/dist/layout/components/SHeaderRight.vue.js +7 -0
  69. package/dist/layout/components/SHeaderRight.vue2.js +80 -0
  70. package/dist/layout/components/ThemeToggle.css +1 -0
  71. package/dist/layout/components/ThemeToggle.vue.d.ts +2 -0
  72. package/dist/layout/components/ThemeToggle.vue.js +7 -0
  73. package/dist/layout/components/ThemeToggle.vue2.js +30 -0
  74. package/dist/layout/components/TimezoneSelect.css +1 -0
  75. package/dist/layout/components/TimezoneSelect.vue.d.ts +7 -0
  76. package/dist/layout/components/TimezoneSelect.vue.js +8 -0
  77. package/dist/layout/components/TimezoneSelect.vue2.js +78 -0
  78. package/dist/layout/components/TimezoneSelect2.css +1 -0
  79. package/dist/layout/components/UserInfo.css +1 -0
  80. package/dist/layout/components/UserInfo.vue.d.ts +2 -0
  81. package/dist/layout/components/UserInfo.vue.js +8 -0
  82. package/dist/layout/components/UserInfo.vue2.js +111 -0
  83. package/dist/layout/components/UserInfo2.css +1 -0
  84. package/dist/layout/components/index.d.ts +23 -0
  85. package/dist/layout/components/index.js +49 -0
  86. package/dist/layout/components/mobile/AppSelectMobile.vue.d.ts +2 -0
  87. package/dist/layout/components/mobile/AppSelectMobile.vue.js +60 -0
  88. package/dist/layout/components/mobile/AppSelectMobile.vue2.js +4 -0
  89. package/dist/layout/components/mobile/AsideBarMobile.css +1 -0
  90. package/dist/layout/components/mobile/AsideBarMobile.vue.d.ts +21 -0
  91. package/dist/layout/components/mobile/AsideBarMobile.vue.js +7 -0
  92. package/dist/layout/components/mobile/AsideBarMobile.vue2.js +47 -0
  93. package/dist/layout/components/mobile/AsideUserMobile.css +1 -0
  94. package/dist/layout/components/mobile/AsideUserMobile.vue.d.ts +2 -0
  95. package/dist/layout/components/mobile/AsideUserMobile.vue.js +7 -0
  96. package/dist/layout/components/mobile/AsideUserMobile.vue2.js +56 -0
  97. package/dist/layout/components/mobile/AsideUserMobilePopover.css +1 -0
  98. package/dist/layout/components/mobile/AsideUserMobilePopover.vue.d.ts +17 -0
  99. package/dist/layout/components/mobile/AsideUserMobilePopover.vue.js +7 -0
  100. package/dist/layout/components/mobile/AsideUserMobilePopover.vue2.js +52 -0
  101. package/dist/layout/components/mobile/HeaderRightMobile.css +1 -0
  102. package/dist/layout/components/mobile/HeaderRightMobile.vue.d.ts +2 -0
  103. package/dist/layout/components/mobile/HeaderRightMobile.vue.js +7 -0
  104. package/dist/layout/components/mobile/HeaderRightMobile.vue2.js +50 -0
  105. package/dist/layout/components/mobile/MobileMenuToggle.css +1 -0
  106. package/dist/layout/components/mobile/MobileMenuToggle.vue.d.ts +2 -0
  107. package/dist/layout/components/mobile/MobileMenuToggle.vue.js +7 -0
  108. package/dist/layout/components/mobile/MobileMenuToggle.vue2.js +31 -0
  109. package/dist/layout/hooks/index.d.ts +4 -0
  110. package/dist/layout/hooks/index.js +17 -0
  111. package/dist/layout/hooks/useApp.d.ts +6 -0
  112. package/dist/layout/hooks/useApp.js +20 -0
  113. package/dist/layout/hooks/useSetting.d.ts +62 -0
  114. package/dist/layout/hooks/useSetting.js +24 -0
  115. package/dist/layout/hooks/useState.d.ts +763 -0
  116. package/dist/layout/hooks/useState.js +99 -0
  117. package/dist/layout/hooks/useTheme.d.ts +15 -0
  118. package/dist/layout/hooks/useTheme.js +44 -0
  119. package/dist/layout/utils/index.d.ts +7 -0
  120. package/dist/layout/utils/index.js +59 -0
  121. package/dist/layout.css +1 -0
  122. package/dist/layout.es.js +53770 -0
  123. package/dist/layout.global.js +78 -0
  124. package/dist/locales/en/account.d.ts +10 -0
  125. package/dist/locales/en/account.js +12 -0
  126. package/dist/locales/en/admin.d.ts +207 -0
  127. package/dist/locales/en/admin.js +209 -0
  128. package/dist/locales/en/common.d.ts +40 -0
  129. package/dist/locales/en/common.js +42 -0
  130. package/dist/locales/en/components.d.ts +37 -0
  131. package/dist/locales/en/components.js +39 -0
  132. package/dist/locales/en/constant.d.ts +151 -0
  133. package/dist/locales/en/constant.js +153 -0
  134. package/dist/locales/en/filterBox.d.ts +11 -0
  135. package/dist/locales/en/filterBox.js +13 -0
  136. package/dist/locales/en/index.d.ts +487 -0
  137. package/dist/locales/en/index.js +22 -0
  138. package/dist/locales/en/instanceForm.d.ts +17 -0
  139. package/dist/locales/en/instanceForm.js +19 -0
  140. package/dist/locales/en/password.d.ts +18 -0
  141. package/dist/locales/en/password.js +20 -0
  142. package/dist/locales/index.d.ts +973 -0
  143. package/dist/locales/index.js +12 -0
  144. package/dist/locales/messages.d.ts +973 -0
  145. package/dist/locales/messages.js +9 -0
  146. package/dist/locales/zh-cn/account.d.ts +10 -0
  147. package/dist/locales/zh-cn/account.js +12 -0
  148. package/dist/locales/zh-cn/admin.d.ts +205 -0
  149. package/dist/locales/zh-cn/admin.js +207 -0
  150. package/dist/locales/zh-cn/common.d.ts +40 -0
  151. package/dist/locales/zh-cn/common.js +42 -0
  152. package/dist/locales/zh-cn/components.d.ts +37 -0
  153. package/dist/locales/zh-cn/components.js +39 -0
  154. package/dist/locales/zh-cn/constant.d.ts +151 -0
  155. package/dist/locales/zh-cn/constant.js +153 -0
  156. package/dist/locales/zh-cn/filterBox.d.ts +11 -0
  157. package/dist/locales/zh-cn/filterBox.js +13 -0
  158. package/dist/locales/zh-cn/index.d.ts +485 -0
  159. package/dist/locales/zh-cn/index.js +22 -0
  160. package/dist/locales/zh-cn/instanceForm.d.ts +17 -0
  161. package/dist/locales/zh-cn/instanceForm.js +19 -0
  162. package/dist/locales/zh-cn/password.d.ts +18 -0
  163. package/dist/locales/zh-cn/password.js +20 -0
  164. package/dist/standalone.d.ts +0 -0
  165. package/dist/utils/createContext.d.ts +8 -0
  166. package/dist/utils/createContext.js +14 -0
  167. package/dist/utils/repoUtils.d.ts +59 -0
  168. package/dist/utils/repoUtils.js +160 -0
  169. 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,9 @@
1
+ const s = (t, e) => {
2
+ const o = t.__vccOpts || t;
3
+ for (const [r, c] of e)
4
+ o[r] = c;
5
+ return o;
6
+ };
7
+ export {
8
+ s as default
9
+ };
@@ -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,2 @@
1
+ export { default } from './src/UserAvatar.vue';
2
+ export { default as UserAvatar } from './src/UserAvatar.vue';
@@ -0,0 +1,5 @@
1
+ import { default as r, default as t } from "./src/UserAvatar.vue.js";
2
+ export {
3
+ r as UserAvatar,
4
+ t as default
5
+ };
@@ -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,7 @@
1
+ import o from "./UserAvatar.vue2.js";
2
+ /* empty css */
3
+ import r from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-50be58a7"]]);
5
+ export {
6
+ m as default
7
+ };
@@ -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,2 @@
1
+ export { default as UserAvatar } from './UserAvatar';
2
+ export * from '../layout/components';
@@ -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
+ };
@@ -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,7 @@
1
+ import o from "./BaseLayout.vue2.js";
2
+ /* empty css */
3
+ import t from "../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ t(o, [["__scopeId", "data-v-259cbdf0"]]);
5
+ export {
6
+ m as default
7
+ };
@@ -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,7 @@
1
+ import o from "./AppSelect.vue2.js";
2
+ /* empty css */
3
+ import t from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const e = /* @__PURE__ */ t(o, [["__scopeId", "data-v-b6da0897"]]);
5
+ export {
6
+ e as default
7
+ };
@@ -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,7 @@
1
+ import o from "./AsideBar.vue2.js";
2
+ /* empty css */
3
+ import r from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-f328029c"]]);
5
+ export {
6
+ m as default
7
+ };
@@ -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
+ };