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
@@ -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,4 @@
1
+ import f from "./AsideSubMenuItem.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -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,4 @@
1
+ import f from "./AsideSubMenus.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -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,4 @@
1
+ import f from "./AsideTabMenus.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -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,4 @@
1
+ import f from "./AsideUser.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -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,7 @@
1
+ import e from "./HeaderBar.vue2.js";
2
+ /* empty css */
3
+ import o from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ o(e, [["__scopeId", "data-v-9ee7aec2"]]);
5
+ export {
6
+ m as default
7
+ };
@@ -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,4 @@
1
+ import f from "./HeaderMenuToggle.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -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,8 @@
1
+ import o from "./LanguageSelect.vue2.js";
2
+ /* empty css */
3
+ /* empty css */
4
+ import t from "../../_virtual/_plugin-vue_export-helper.js";
5
+ const p = /* @__PURE__ */ t(o, [["__scopeId", "data-v-48306ad1"]]);
6
+ export {
7
+ p as default
8
+ };
@@ -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;
@@ -0,0 +1,7 @@
1
+ import o from "./LayoutBreadcrumb.vue2.js";
2
+ /* empty css */
3
+ import r from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const c = /* @__PURE__ */ r(o, [["__scopeId", "data-v-21c4b2fb"]]);
5
+ export {
6
+ c as default
7
+ };