@ithinkdt/ui 4.0.0-700 → 4.0.0-800

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/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { n as useI18n, t as UI_I18N_INJECTION } from "./use-i18n-D-AJ8KbA.js";
2
- import { g as useStyle, i as cM, n as cB, r as cE, t as c } from "./use-style-DrH-89qR.js";
3
- import { i as vTooltip, n as vSpin, r as TooltipDirectiveProvider, t as SpinDirectiveProvider } from "./directives-RPqFovTo.js";
2
+ import { g as useStyle, i as cM, n as cB, r as cE, t as c } from "./use-style-BGq0HdRK.js";
3
+ import { i as vTooltip, n as vSpin, r as TooltipDirectiveProvider, t as SpinDirectiveProvider } from "./directives-CBQhJ3zJ.js";
4
4
  import { Fragment, computed, createVNode, defineComponent, inject, isVNode, mergeProps, provide, reactive, ref, renderSlot, shallowRef, toRef, toValue, unref, useTemplateRef, watch, withDirectives } from "vue";
5
5
  import { computedAsync, promiseTimeout, useElementHover, useElementSize, useEventListener, useFullscreen, watchDebounced } from "@vueuse/core";
6
6
  import { NAvatar, NBadge, NBreadcrumb, NBreadcrumbItem, NButton, NDrawer, NDrawerContent, NDropdown, NEmpty, NIcon, NList, NListItem, NMenu, NPagination, NPopover, NScrollbar, NText, NThing, useThemeVars } from "ithinkdt-ui";
@@ -9,8 +9,8 @@ import { RouterLink, useRouter } from "vue-router";
9
9
  import { walkTree } from "@ithinkdt/common/tree";
10
10
  import { getOpaqueColor } from "@ithinkdt/common/color";
11
11
  import { format } from "date-fns";
12
- function _isSlot$4(d) {
13
- return typeof d == "function" || Object.prototype.toString.call(d) === "[object Object]" && !isVNode(d);
12
+ function _isSlot$4(e) {
13
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
14
14
  }
15
15
  const AppAccount = /* @__PURE__ */ defineComponent({
16
16
  name: "AppAccount",
@@ -28,8 +28,8 @@ const AppAccount = /* @__PURE__ */ defineComponent({
28
28
  }
29
29
  },
30
30
  emit: ["logout", "change-pwd"],
31
- setup(z, { emit: B, slots: V }) {
32
- let H = computed(() => /^[\u4E00-\u9FA5]+$/.test(z.nickname) ? z.nickname?.slice(z.nickname?.length > 3 ? 2 : 1) : z.nickname?.split(" ")[0]), { t: U } = useI18n(), W = createVNode(NIcon, { size: "28" }, { default: () => [createVNode("svg", {
31
+ setup(t, { emit: n, slots: r }) {
32
+ let i = computed(() => /^[\u4E00-\u9FA5]+$/.test(t.nickname) ? t.nickname?.slice(t.nickname?.length > 3 ? 2 : 1) : t.nickname?.split(" ")[0]), { t: a } = useI18n(), o = createVNode(NIcon, { size: "28" }, { default: () => [createVNode("svg", {
33
33
  xmlns: "http://www.w3.org/2000/svg",
34
34
  width: "1em",
35
35
  height: "1em",
@@ -37,7 +37,7 @@ const AppAccount = /* @__PURE__ */ defineComponent({
37
37
  }, [createVNode("path", {
38
38
  fill: "currentColor",
39
39
  d: "M12 12q-1.65 0-2.825-1.175T8 8t1.175-2.825T12 4t2.825 1.175T16 8t-1.175 2.825T12 12m-8 6v-.8q0-.85.438-1.562T5.6 14.55q1.55-.775 3.15-1.162T12 13t3.25.388t3.15 1.162q.725.375 1.163 1.088T20 17.2v.8q0 .825-.587 1.413T18 20H6q-.825 0-1.412-.587T4 18"
40
- }, null)])] }), K = createVNode("svg", {
40
+ }, null)])] }), l = createVNode("svg", {
41
41
  xmlns: "http://www.w3.org/2000/svg",
42
42
  width: "1em",
43
43
  height: "1em",
@@ -52,22 +52,22 @@ const AppAccount = /* @__PURE__ */ defineComponent({
52
52
  quaternary: !0,
53
53
  style: "--n-padding: 0 12px"
54
54
  }, { default: () => [createVNode("div", { style: "display: flex; align-items: center; gap: 8px" }, [createVNode(NAvatar, {
55
- key: z.head ? "head" : "no-head",
56
- src: z.head,
55
+ key: t.head ? "head" : "no-head",
56
+ src: t.head,
57
57
  round: !0,
58
58
  size: "small",
59
59
  radix: .78,
60
60
  color: "var(--color-primary-hover)"
61
61
  }, {
62
- fallback: () => W,
63
- placeholder: () => W,
64
- default: z.head ? void 0 : () => H.value
65
- }), createVNode("span", { style: "font-size: 14px" }, [z.username ?? ""])])] }),
62
+ fallback: () => o,
63
+ placeholder: () => o,
64
+ default: t.head ? void 0 : () => i.value
65
+ }), createVNode("span", { style: "font-size: 14px" }, [t.username ?? ""])])] }),
66
66
  default: () => {
67
- let d = () => z.showChangePwd ? createVNode(NButton, {
67
+ let e = () => t.showChangePwd ? createVNode(NButton, {
68
68
  quaternary: !0,
69
69
  style: "justify-content: left",
70
- onClick: () => B("change-pwd")
70
+ onClick: () => n("change-pwd")
71
71
  }, {
72
72
  icon: () => createVNode(NIcon, null, { default: () => [createVNode("svg", {
73
73
  xmlns: "http://www.w3.org/2000/svg",
@@ -83,33 +83,33 @@ const AppAccount = /* @__PURE__ */ defineComponent({
83
83
  r: "2",
84
84
  fill: "currentColor"
85
85
  }, null)])] }),
86
- default: () => U("common.account.changePwd")
87
- }) : void 0, H = () => z.showLogoutButton ? void 0 : createVNode(NButton, {
86
+ default: () => a("common.account.changePwd")
87
+ }) : void 0, i = () => t.showLogoutButton ? void 0 : createVNode(NButton, {
88
88
  quaternary: !0,
89
89
  style: "justify-content: left",
90
- onClick: () => B("logout")
90
+ onClick: () => n("logout")
91
91
  }, {
92
- icon: () => createVNode(NIcon, null, _isSlot$4(K) ? K : { default: () => [K] }),
93
- default: () => U("common.account.logout")
92
+ icon: () => createVNode(NIcon, null, _isSlot$4(l) ? l : { default: () => [l] }),
93
+ default: () => a("common.account.logout")
94
94
  });
95
- return V.dropdown ? V.dropdown({
96
- pwd: d,
97
- logout: H
95
+ return r.dropdown ? r.dropdown({
96
+ pwd: e,
97
+ logout: i
98
98
  }) : createVNode("div", { style: "display: flex; flex-direction: column" }, [
99
- d(),
100
- V.dropdownExtra?.(),
101
- H()
99
+ e(),
100
+ r.dropdownExtra?.(),
101
+ i()
102
102
  ]);
103
103
  }
104
104
  }),
105
- V.extra?.(),
106
- z.showLogoutButton ? withDirectives(createVNode(NButton, {
105
+ r.extra?.(),
106
+ t.showLogoutButton ? withDirectives(createVNode(NButton, {
107
107
  quaternary: !0,
108
108
  style: "--n-padding: 0 12px",
109
- onClick: () => z.username && B("logout")
110
- }, { default: () => [V.logoutButton?.() ?? createVNode(NIcon, { size: "16" }, _isSlot$4(K) ? K : { default: () => [K] })] }), [[
109
+ onClick: () => t.username && n("logout")
110
+ }, { default: () => [r.logoutButton?.() ?? createVNode(NIcon, { size: "16" }, _isSlot$4(l) ? l : { default: () => [l] })] }), [[
111
111
  vTooltip,
112
- U("common.account.logout"),
112
+ a("common.account.logout"),
113
113
  void 0,
114
114
  { "bottom-end": !0 }
115
115
  ]]) : void 0
@@ -119,15 +119,15 @@ const AppAccount = /* @__PURE__ */ defineComponent({
119
119
  name: "AppAppearance",
120
120
  props: { mode: String },
121
121
  emit: ["update:mode"],
122
- setup(z, { emit: B }) {
123
- let { t: V } = useI18n();
122
+ setup(t, { emit: n }) {
123
+ let { t: r } = useI18n();
124
124
  return () => withDirectives(createVNode(NButton, {
125
125
  quaternary: !0,
126
126
  style: "--n-padding: 0 12px",
127
127
  onClick: () => {
128
- B("update:mode", z.mode === "light" ? "dark" : z.mode === "dark" ? "auto" : "light");
128
+ n("update:mode", t.mode === "light" ? "dark" : t.mode === "dark" ? "auto" : "light");
129
129
  }
130
- }, { default: () => [createVNode(NIcon, { size: "18" }, { default: () => [z.mode === "light" ? createVNode("svg", {
130
+ }, { default: () => [createVNode(NIcon, { size: "18" }, { default: () => [t.mode === "light" ? createVNode("svg", {
131
131
  xmlns: "http://www.w3.org/2000/svg",
132
132
  "xmlns:xlink": "http://www.w3.org/1999/xlink",
133
133
  role: "img",
@@ -137,7 +137,7 @@ const AppAccount = /* @__PURE__ */ defineComponent({
137
137
  }, [createVNode("path", {
138
138
  fill: "currentColor",
139
139
  d: "M12 15q1.25 0 2.125-.875T15 12q0-1.25-.875-2.125T12 9q-1.25 0-2.125.875T9 12q0 1.25.875 2.125T12 15Zm0 2q-2.075 0-3.537-1.463Q7 14.075 7 12t1.463-3.538Q9.925 7 12 7t3.538 1.462Q17 9.925 17 12q0 2.075-1.462 3.537Q14.075 17 12 17ZM1 13v-2h4v2Zm18 0v-2h4v2Zm-8-8V1h2v4Zm0 18v-4h2v4ZM6.35 7.75L3.875 5.275l1.4-1.4L7.75 6.35Zm12.375 12.375L16.25 17.65l1.4-1.4l2.475 2.475ZM17.65 7.75l-1.4-1.4l2.475-2.475l1.4 1.4ZM5.275 20.125l-1.4-1.4L6.35 16.25l1.4 1.4ZM12 12Z"
140
- }, null)]) : z.mode === "dark" ? createVNode("svg", {
140
+ }, null)]) : t.mode === "dark" ? createVNode("svg", {
141
141
  xmlns: "http://www.w3.org/2000/svg",
142
142
  "xmlns:xlink": "http://www.w3.org/1999/xlink",
143
143
  role: "img",
@@ -159,7 +159,7 @@ const AppAccount = /* @__PURE__ */ defineComponent({
159
159
  d: "M11 19q1.35 0 2.513-.538q1.162-.537 1.987-1.487q-3.15-.2-5.325-2.488Q8 12.2 8 9q0-.325.025-.638q.025-.312.075-.612q-1.4.775-2.25 2.162Q5 11.3 5 13q0 2.5 1.75 4.25T11 19Zm0 2q-3.35 0-5.675-2.325Q3 16.35 3 13q0-3.35 2.325-5.675Q7.65 5 11 5q.125 0 .25.012q.125.013.25.013q-.725.8-1.113 1.812Q10 7.85 10 9q0 2.5 1.75 4.25T16 15q.8 0 1.525-.2q.725-.2 1.375-.55q-.45 2.875-2.662 4.812Q14.025 21 11 21Zm2.8-10L17 2h2l3.2 9h-1.9l-.7-2h-3.2l-.7 2Zm3.05-3.35h2.3L18 4Z"
160
160
  }, null)])] })] }), [[
161
161
  vTooltip,
162
- z.mode === "light" ? V("common.layout.mode.light") : z.mode === "dark" ? V("common.layout.mode.dark") : V("common.layout.mode.auto"),
162
+ t.mode === "light" ? r("common.layout.mode.light") : t.mode === "dark" ? r("common.layout.mode.dark") : r("common.layout.mode.auto"),
163
163
  void 0,
164
164
  { bottom: !0 }
165
165
  ]]);
@@ -175,8 +175,8 @@ const AppAccount = /* @__PURE__ */ defineComponent({
175
175
  fill: "currentColor",
176
176
  d: "m17 18l-5-2.18L7 18V5h10m0-2H7a2 2 0 0 0-2 2v16l7-3l7 3V5a2 2 0 0 0-2-2Z"
177
177
  }, null)]), CTX_INJECTION_KEY = "__APP_CTX__", getCtx = () => inject(CTX_INJECTION_KEY);
178
- function _isSlot$3(d) {
179
- return typeof d == "function" || Object.prototype.toString.call(d) === "[object Object]" && !isVNode(d);
178
+ function _isSlot$3(e) {
179
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
180
180
  }
181
181
  const AppBreadcrumb = /* @__PURE__ */ defineComponent({
182
182
  name: "AppBreadcrumb",
@@ -190,36 +190,36 @@ const AppBreadcrumb = /* @__PURE__ */ defineComponent({
190
190
  default: void 0
191
191
  }
192
192
  },
193
- setup(d) {
194
- let z = useRouter(), B = Symbol(), V = Symbol();
195
- return watch(() => d.items, (z) => {
196
- walkTree(z, (z) => {
197
- z.icon && (typeof z.icon == "string" ? (z[B] = d.getIcon?.(z.icon), z[V] = () => z[B]?.() || IBookmark()) : z[V] = z.icon);
193
+ setup(e) {
194
+ let t = useRouter(), n = Symbol(), r = Symbol();
195
+ return watch(() => e.items, (t) => {
196
+ walkTree(t, (t) => {
197
+ t.icon && (typeof t.icon == "string" ? (t[n] = e.getIcon?.(t.icon), t[r] = () => t[n]?.() || IBookmark()) : t[r] = t.icon);
198
198
  });
199
199
  }, { immediate: !0 }), () => {
200
- let B;
201
- return createVNode(NBreadcrumb, null, _isSlot$3(B = d.items.map((d) => createVNode(NBreadcrumbItem, {
202
- clickable: d.href?.length > 0,
203
- separator: d.separator,
204
- onClick: d.href && ((B) => {
205
- B.stopPropagation(), z.push(d.href);
200
+ let n;
201
+ return createVNode(NBreadcrumb, null, _isSlot$3(n = e.items.map((e) => createVNode(NBreadcrumbItem, {
202
+ clickable: e.href?.length > 0,
203
+ separator: e.separator,
204
+ onClick: e.href && ((n) => {
205
+ n.stopPropagation(), t.push(e.href);
206
206
  })
207
- }, { default: () => [d.icon ? createVNode(Fragment, null, [createVNode(NIcon, { component: d[V] }, null), " "]) : void 0, toValue(d.title)] }))) ? B : { default: () => [B] });
207
+ }, { default: () => [e.icon ? createVNode(Fragment, null, [createVNode(NIcon, { component: e[r] }, null), " "]) : void 0, toValue(e.title)] }))) ? n : { default: () => [n] });
208
208
  };
209
209
  }
210
210
  }), AppFullscreen = /* @__PURE__ */ defineComponent({
211
211
  name: "AppFullscreen",
212
212
  props: {},
213
213
  emit: ["change"],
214
- setup(z, { emit: B }) {
215
- let { t: V } = useI18n(), { isFullscreen: H, toggle: U } = useFullscreen();
214
+ setup(t, { emit: n }) {
215
+ let { t: r } = useI18n(), { isFullscreen: i, toggle: a } = useFullscreen();
216
216
  return () => withDirectives(createVNode(NButton, {
217
217
  quaternary: !0,
218
218
  style: "--n-padding: 0 12px",
219
219
  onClick: () => {
220
- U(), B("change", H.value);
220
+ a(), n("change", i.value);
221
221
  }
222
- }, { default: () => [createVNode(NIcon, { size: "18" }, { default: () => [H.value ? createVNode("svg", {
222
+ }, { default: () => [createVNode(NIcon, { size: "18" }, { default: () => [i.value ? createVNode("svg", {
223
223
  xmlns: "http://www.w3.org/2000/svg",
224
224
  width: "1em",
225
225
  height: "1em",
@@ -245,7 +245,7 @@ const AppBreadcrumb = /* @__PURE__ */ defineComponent({
245
245
  d: "M3.75 8.345V6.25a2.5 2.5 0 0 1 2.5-2.5h2.095M3.75 15.655v2.095a2.5 2.5 0 0 0 2.5 2.5h2.095M20.25 8.345V6.25a2.5 2.5 0 0 0-2.5-2.5h-2.095m4.595 11.905v2.095a2.5 2.5 0 0 1-2.5 2.5h-2.095"
246
246
  }, null)])] })] }), [[
247
247
  vTooltip,
248
- H.value ? V("common.layout.screen.exitfull") : V("common.layout.screen.full"),
248
+ i.value ? r("common.layout.screen.exitfull") : r("common.layout.screen.full"),
249
249
  void 0,
250
250
  { bottom: !0 }
251
251
  ]]);
@@ -257,12 +257,12 @@ const AppBreadcrumb = /* @__PURE__ */ defineComponent({
257
257
  supports: Array
258
258
  },
259
259
  emit: ["update:lang"],
260
- setup(d, { emit: z }) {
260
+ setup(e, { emit: t }) {
261
261
  return () => createVNode(NDropdown, {
262
- options: d.supports,
262
+ options: e.supports,
263
263
  keyField: "value",
264
264
  showArrow: !0,
265
- onSelect: (d) => z("update:lang", d)
265
+ onSelect: (e) => t("update:lang", e)
266
266
  }, { default: () => [createVNode(NButton, {
267
267
  quaternary: !0,
268
268
  style: "--n-padding: 0 12px"
@@ -369,28 +369,28 @@ const AppLayout = /* @__PURE__ */ defineComponent({
369
369
  },
370
370
  fullContent: Boolean
371
371
  },
372
- setup(d, { slots: z }) {
372
+ setup(e, { slots: t }) {
373
373
  useStyle("-layout", style, ref("app"), !1);
374
- let V = reactive({
374
+ let r = reactive({
375
375
  siderWidth: "0px",
376
376
  headerHeight: "0px",
377
377
  footerHeight: "0px",
378
378
  hasMultiTab: !1
379
379
  });
380
- return provide(CTX_INJECTION_KEY, V), () => {
381
- let { layout: B } = d;
380
+ return provide(CTX_INJECTION_KEY, r), () => {
381
+ let { layout: n } = e;
382
382
  return createVNode("div", {
383
383
  class: {
384
384
  "app-layout": !0,
385
- "app-layout--full-header": B === "top2bottom",
386
- "app-layout--full-content": d.fullContent
385
+ "app-layout--full-header": n === "top2bottom",
386
+ "app-layout--full-content": e.fullContent
387
387
  },
388
388
  style: {
389
- "--app-sider-width": V.siderWidth,
390
- "--app-header-height": V.headerHeight,
391
- "--app-footer-height": V.footerHeight
389
+ "--app-sider-width": r.siderWidth,
390
+ "--app-header-height": r.headerHeight,
391
+ "--app-footer-height": r.footerHeight
392
392
  }
393
- }, [renderSlot(z, "default")]);
393
+ }, [renderSlot(t, "default")]);
394
394
  };
395
395
  }
396
396
  }), AppHeader = /* @__PURE__ */ defineComponent({
@@ -399,12 +399,12 @@ const AppLayout = /* @__PURE__ */ defineComponent({
399
399
  type: Number,
400
400
  default: 44
401
401
  } },
402
- setup(d, { slots: z }) {
403
- let B = getCtx();
404
- return () => (B.headerHeight = d.height + "px", createVNode("div", { class: "app-header" }, [renderSlot(z, "default")]));
402
+ setup(e, { slots: t }) {
403
+ let n = getCtx();
404
+ return () => (n.headerHeight = e.height + "px", createVNode("div", { class: "app-header" }, [renderSlot(t, "default")]));
405
405
  }
406
- }), AppSider = /* @__PURE__ */ defineComponent({
407
- name: "AppSider",
406
+ }), AppSidebar = /* @__PURE__ */ defineComponent({
407
+ name: "AppSidebar",
408
408
  props: {
409
409
  showCollapseBtn: {
410
410
  type: Boolean,
@@ -421,21 +421,21 @@ const AppLayout = /* @__PURE__ */ defineComponent({
421
421
  }
422
422
  },
423
423
  emits: { "update:collapsed": () => !0 },
424
- setup(z, { emit: B, slots: V }) {
425
- provide(COLLAPSED_INJECTION_KEY, toRef(z, "collapsed"));
426
- let { t: H } = useI18n(), U = getCtx();
427
- return () => (U.siderWidth = (z.collapsed ? z.collapsedWidth : z.width) + "px", createVNode("div", { class: "app-sider" }, [renderSlot(V, "default"), z.showCollapseBtn ? withDirectives(createVNode(NButton, {
424
+ setup(t, { emit: n, slots: r }) {
425
+ provide(COLLAPSED_INJECTION_KEY, toRef(t, "collapsed"));
426
+ let { t: i } = useI18n(), a = getCtx();
427
+ return () => (a.siderWidth = (t.collapsed ? t.collapsedWidth : t.width) + "px", createVNode("div", { class: "app-sider" }, [renderSlot(r, "default"), t.showCollapseBtn ? withDirectives(createVNode(NButton, {
428
428
  class: "app-sider__collapse-btn",
429
429
  quaternary: !0,
430
430
  onClick: () => {
431
- B("update:collapsed", !z.collapsed);
431
+ n("update:collapsed", !t.collapsed);
432
432
  }
433
- }, { default: () => [createVNode(NIcon, { size: "20" }, { default: () => [z.collapsed ? createVNode(IUnfold, null, null) : createVNode(IFold, null, null)] })] }), [[vTooltip, z.collapsed ? H("common.layout.sider.expand") : H("common.layout.sider.collapse")]]) : void 0]));
433
+ }, { default: () => [createVNode(NIcon, { size: "20" }, { default: () => [t.collapsed ? createVNode(IUnfold, null, null) : createVNode(IFold, null, null)] })] }), [[vTooltip, t.collapsed ? i("common.layout.sider.expand") : i("common.layout.sider.collapse")]]) : void 0]));
434
434
  }
435
435
  }), AppContent = /* @__PURE__ */ defineComponent({
436
436
  name: "AppContent",
437
- setup(d, { slots: z }) {
438
- return () => createVNode("div", { class: "app-content" }, [renderSlot(z, "default")]);
437
+ setup(e, { slots: t }) {
438
+ return () => createVNode("div", { class: "app-content" }, [renderSlot(t, "default")]);
439
439
  }
440
440
  }), AppFooter = /* @__PURE__ */ defineComponent({
441
441
  name: "AppFooter",
@@ -443,13 +443,13 @@ const AppLayout = /* @__PURE__ */ defineComponent({
443
443
  type: Number,
444
444
  default: 30
445
445
  } },
446
- setup(d, { slots: z }) {
447
- let B = getCtx();
448
- return () => (B.footerHeight = d.height + "px", createVNode("div", { class: "app-footer" }, [renderSlot(z, "default")]));
446
+ setup(e, { slots: t }) {
447
+ let n = getCtx();
448
+ return () => (n.footerHeight = e.height + "px", createVNode("div", { class: "app-footer" }, [renderSlot(t, "default")]));
449
449
  }
450
450
  });
451
- function _isSlot$2(d) {
452
- return typeof d == "function" || Object.prototype.toString.call(d) === "[object Object]" && !isVNode(d);
451
+ function _isSlot$2(e) {
452
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
453
453
  }
454
454
  const AppLogo = /* @__PURE__ */ defineComponent({
455
455
  name: "AppLogo",
@@ -469,47 +469,47 @@ const AppLogo = /* @__PURE__ */ defineComponent({
469
469
  default: !0
470
470
  }
471
471
  },
472
- setup(d, { slots: z }) {
473
- let B = computedAsync(() => typeof d.src == "function" ? d.src() : d.src), V = inject(COLLAPSED_INJECTION_KEY, !1);
472
+ setup(e, { slots: t }) {
473
+ let n = computedAsync(() => typeof e.src == "function" ? e.src() : e.src), r = inject(COLLAPSED_INJECTION_KEY, !1);
474
474
  return () => {
475
- let { name: H, collapsed: U, center: W, link: G } = d;
476
- U ??= unref(V);
477
- let K = U ? 1 : 1 / 1.1;
475
+ let { name: i, collapsed: a, center: o, link: s } = e;
476
+ a ??= unref(r);
477
+ let l = a ? 1 : 1 / 1.1;
478
478
  return createVNode("div", {
479
479
  class: "app-logo",
480
480
  style: {
481
481
  "--app-logo-img-size": "32px",
482
482
  "--app-logo-name-size": "22px",
483
- width: W ? "100%" : "auto",
483
+ width: o ? "100%" : "auto",
484
484
  overflow: "hidden",
485
485
  display: "flex",
486
486
  alignItems: "center",
487
- justifyContent: W ? "center" : "flex-start",
488
- cursor: G ? "pointer" : void 0
487
+ justifyContent: o ? "center" : "flex-start",
488
+ cursor: s ? "pointer" : void 0
489
489
  }
490
- }, [z.default ? z.default() : createVNode("div", {
490
+ }, [t.default ? t.default() : createVNode("div", {
491
491
  class: "app-logo__img",
492
492
  style: `
493
- width: ${U ? "var(--app-sider-width, 60px)" : "56px"};
494
- font-size: ${U ? "calc(var(--app-sider-width, 60px) - 24px)" : "32px"};
493
+ width: ${a ? "var(--app-sider-width, 60px)" : "56px"};
494
+ font-size: ${a ? "calc(var(--app-sider-width, 60px) - 24px)" : "32px"};
495
495
  transition: width 0.2s ease-in-out 0.1s;
496
496
  flex: 0 0 auto;
497
497
  display: flex;
498
498
  justify-content: center
499
499
  `
500
- }, [z.icon ? z.icon() : createVNode("img", {
501
- src: B.value,
500
+ }, [t.icon ? t.icon() : createVNode("img", {
501
+ src: n.value,
502
502
  alt: "App Logo",
503
- style: `transition: height 0.2s ease-in-out; height: calc(var(--app-logo-img-size) * ${K})`
504
- }, null)]), H ? createVNode(NText, {
503
+ style: `transition: height 0.2s ease-in-out; height: calc(var(--app-logo-img-size) * ${l})`
504
+ }, null)]), i ? createVNode(NText, {
505
505
  class: "app-logo__name",
506
506
  style: "font-size: var(--app-logo-name-size); font-weight: bold; white-space: nowrap; flex: 0 1 auto; overflow: hidden"
507
- }, _isSlot$2(H) ? H : { default: () => [H] }) : ""]);
507
+ }, _isSlot$2(i) ? i : { default: () => [i] }) : ""]);
508
508
  };
509
509
  }
510
510
  });
511
- function _isSlot$1(d) {
512
- return typeof d == "function" || Object.prototype.toString.call(d) === "[object Object]" && !isVNode(d);
511
+ function _isSlot$1(e) {
512
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
513
513
  }
514
514
  const AppMenu = /* @__PURE__ */ defineComponent({
515
515
  name: "AppMenu",
@@ -534,52 +534,52 @@ const AppMenu = /* @__PURE__ */ defineComponent({
534
534
  default: 60
535
535
  }
536
536
  },
537
- setup(d) {
538
- let z = shallowRef([]);
539
- watch([() => d.menus, () => d.single], ([B, V]) => {
540
- if (z.value = [], !B?.length) return;
541
- let H = (z, B = 0) => {
542
- let U = [];
543
- for (let W of z) {
544
- if (W.type === "action") continue;
545
- let z = W.type === "view" ? void 0 : H(W.children ?? [], B + 1), G = {
546
- _: W,
547
- key: W.key,
548
- label: () => d.renderLabel?.(W) ?? W.name,
549
- icon: B === 0 || W.icon ? d.getIcon?.(W.icon) ?? IBookmark : void 0,
550
- children: V ? void 0 : z,
551
- path: W.path || (V ? z?.[0]?.path : void 0),
552
- depth: B
537
+ setup(e) {
538
+ let t = shallowRef([]);
539
+ watch([() => e.menus, () => e.single], ([n, r]) => {
540
+ if (t.value = [], !n?.length) return;
541
+ let i = (t, n = 0) => {
542
+ let a = [];
543
+ for (let o of t) {
544
+ if (o.type === "action") continue;
545
+ let t = o.type === "view" ? void 0 : i(o.children ?? [], n + 1), s = {
546
+ _: o,
547
+ key: o.key,
548
+ label: () => e.renderLabel?.(o) ?? o.name,
549
+ icon: n === 0 || o.icon ? e.getIcon?.(o.icon) ?? IBookmark : void 0,
550
+ children: r ? void 0 : t,
551
+ path: o.path || (r ? t?.[0]?.path : void 0),
552
+ depth: n
553
553
  };
554
- delete G.type, U.push(G);
554
+ delete s.type, a.push(s);
555
555
  }
556
- return U;
556
+ return a;
557
557
  };
558
- z.value = H(B);
559
- }, { immediate: !0 }), watch([useTemplateRef("menu"), () => d.current], ([d, z]) => {
560
- d?.showOption(z);
558
+ t.value = i(n);
559
+ }, { immediate: !0 }), watch([useTemplateRef("menu"), () => e.current], ([e, t]) => {
560
+ e?.showOption(t);
561
561
  }, { immediate: !0 });
562
- let B = inject(COLLAPSED_INJECTION_KEY, !1), V = (z) => {
563
- let V = d.collapsed ?? unref(B), H;
564
- if (z._.type === "view") if (z.isExternal && z.externalEmbed) H = createVNode("a", {
565
- href: z.externalLink,
562
+ let n = inject(COLLAPSED_INJECTION_KEY, !1), r = (t) => {
563
+ let r = e.collapsed ?? unref(n), i;
564
+ if (t._.type === "view") if (t.isExternal && t.externalEmbed) i = createVNode("a", {
565
+ href: t.externalLink,
566
566
  target: "_blank",
567
- onClick: (d) => d.stopPropagation()
568
- }, [z.label()]);
567
+ onClick: (e) => e.stopPropagation()
568
+ }, [t.label()]);
569
569
  else {
570
- let d;
571
- H = createVNode(RouterLink, { to: z.path }, _isSlot$1(d = z.label()) ? d : { default: () => [d] });
570
+ let e;
571
+ i = createVNode(RouterLink, { to: t.path }, _isSlot$1(e = t.label()) ? e : { default: () => [e] });
572
572
  }
573
- else H = createVNode("span", null, [z.label()]);
574
- return H.key = `${z.key}:${V ? 1 : 0}`, z.depth === 0 && !V && (H = withDirectives(createVNode("div", null, [H]), [[
573
+ else i = createVNode("span", null, [t.label()]);
574
+ return i.key = `${t.key}:${r ? 1 : 0}`, t.depth === 0 && !r && (i = withDirectives(createVNode("div", null, [i]), [[
575
575
  vTooltip,
576
- z.label(),
576
+ t.label(),
577
577
  void 0,
578
578
  {
579
579
  auto: !0,
580
580
  right: !0
581
581
  }
582
- ]])), z.isNew && (H = createVNode("div", { style: "display: flex; width: 100%" }, [createVNode("span", { style: "flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis" }, [H]), createVNode("svg", {
582
+ ]])), t.isNew && (i = createVNode("div", { style: "display: flex; width: 100%" }, [createVNode("span", { style: "flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis" }, [i]), createVNode("svg", {
583
583
  xmlns: "http://www.w3.org/2000/svg",
584
584
  width: "24",
585
585
  height: "24",
@@ -588,48 +588,48 @@ const AppMenu = /* @__PURE__ */ defineComponent({
588
588
  }, [createVNode("path", {
589
589
  d: "M245.76 286.72h552.96c124.928 0 225.28 100.352 225.28 225.28s-100.352 225.28-225.28 225.28H0V532.48c0-135.168 110.592-245.76 245.76-245.76z m133.12 348.16V401.408H348.16v178.176l-112.64-178.176H204.8V634.88h30.72v-178.176L348.16 634.88h30.72z m182.272-108.544v-24.576h-96.256v-75.776h110.592v-24.576h-141.312V634.88h143.36v-24.576h-112.64v-83.968h96.256z m100.352 28.672l-34.816-151.552h-34.816l55.296 233.472H675.84l47.104-161.792 4.096-20.48 4.096 20.48 47.104 161.792h28.672l57.344-233.472h-34.816l-32.768 151.552-4.096 30.72-6.144-30.72-40.96-151.552h-30.72l-40.96 151.552-6.144 30.72-6.144-30.72z",
590
590
  fill: "var(--color-danger)"
591
- }, null)])])), H;
591
+ }, null)])])), i;
592
592
  };
593
593
  return () => {
594
- let H = createVNode(NMenu, {
594
+ let i = createVNode(NMenu, {
595
595
  ref: "menu",
596
- options: z.value,
596
+ options: t.value,
597
597
  rootIndent: 16,
598
- accordion: d.accordion,
599
- collapsed: d.collapsed ?? unref(B),
598
+ accordion: e.accordion,
599
+ collapsed: e.collapsed ?? unref(n),
600
600
  dropdownProps: { showArrow: !0 },
601
- mode: d.horizontal ? "horizontal" : "vertical",
602
- value: d.current ?? null,
603
- renderLabel: V,
601
+ mode: e.horizontal ? "horizontal" : "vertical",
602
+ value: e.current ?? null,
603
+ renderLabel: r,
604
604
  responsive: !0,
605
- collapsedWidth: d.collapsedWidth,
606
- width: d.width
605
+ collapsedWidth: e.collapsedWidth,
606
+ width: e.width
607
607
  }, null);
608
- return d.horizontal ? H : createVNode(NScrollbar, null, _isSlot$1(H) ? H : { default: () => [H] });
608
+ return e.horizontal ? i : createVNode(NScrollbar, null, _isSlot$1(i) ? i : { default: () => [i] });
609
609
  };
610
610
  }
611
611
  });
612
- function useCtxMenu(z, B, V) {
613
- let { t: H } = useI18n(), U = reactive({
612
+ function useCtxMenu(t, n, r) {
613
+ let { t: i } = useI18n(), a = reactive({
614
614
  visible: !1,
615
615
  x: 0,
616
616
  y: 0
617
- }), W = async (d, z) => {
618
- d.preventDefault(), d.stopPropagation(), !(U.visible && U.tab === z) && (U.tab = z, U.visible && (U.visible = !1, await promiseTimeout(130)), U.visible = !0, U.x = d.clientX, U.y = d.clientY);
619
- }, G = async () => {
617
+ }), o = async (e, t) => {
618
+ e.preventDefault(), e.stopPropagation(), !(a.visible && a.tab === t) && (a.tab = t, a.visible && (a.visible = !1, await promiseTimeout(130)), a.visible = !0, a.x = e.clientX, a.y = e.clientY);
619
+ }, s = async () => {
620
620
  requestIdleCallback(() => {
621
- U.visible = !1;
621
+ a.visible = !1;
622
622
  }, { timeout: 30 });
623
- }, K = useRouter();
623
+ }, l = useRouter();
624
624
  return {
625
- ctx: U,
626
- onCtx: W,
627
- onClickoutside: G,
625
+ ctx: a,
626
+ onCtx: o,
627
+ onClickOutside: s,
628
628
  options: computed(() => [
629
629
  {
630
630
  key: "reload",
631
- label: H("common.layout.tabs.reloadTab"),
632
- disabled: !U.tab || U.tab.key !== B.value,
631
+ label: i("common.layout.tabs.reloadTab"),
632
+ disabled: !a.tab || a.tab.key !== n.value,
633
633
  icon: () => createVNode(NIcon, { size: 20 }, { default: () => [createVNode("svg", {
634
634
  xmlns: "http://www.w3.org/2000/svg",
635
635
  "xmlns:xlink": "http://www.w3.org/1999/xlink",
@@ -644,7 +644,7 @@ function useCtxMenu(z, B, V) {
644
644
  },
645
645
  {
646
646
  key: "fullTab",
647
- label: H("common.layout.tabs.fullTab"),
647
+ label: i("common.layout.tabs.fullTab"),
648
648
  icon: () => createVNode(NIcon, { size: 16 }, { default: () => [createVNode("svg", {
649
649
  xmlns: "http://www.w3.org/2000/svg",
650
650
  width: "1em",
@@ -663,8 +663,8 @@ function useCtxMenu(z, B, V) {
663
663
  },
664
664
  {
665
665
  key: "open",
666
- label: H("common.layout.tabs.openTabBlank"),
667
- disabled: !U.tab,
666
+ label: i("common.layout.tabs.openTabBlank"),
667
+ disabled: !a.tab,
668
668
  icon: () => createVNode(NIcon, { size: 20 }, { default: () => [createVNode("svg", {
669
669
  xmlns: "http://www.w3.org/2000/svg",
670
670
  "xmlns:xlink": "http://www.w3.org/1999/xlink",
@@ -681,7 +681,7 @@ function useCtxMenu(z, B, V) {
681
681
  },
682
682
  {
683
683
  key: "closeAll",
684
- label: H("common.layout.tabs.closeAllTabs"),
684
+ label: i("common.layout.tabs.closeAllTabs"),
685
685
  icon: () => createVNode(NIcon, { size: 20 }, { default: () => [createVNode("svg", {
686
686
  xmlns: "http://www.w3.org/2000/svg",
687
687
  "xmlns:xlink": "http://www.w3.org/1999/xlink",
@@ -696,8 +696,8 @@ function useCtxMenu(z, B, V) {
696
696
  },
697
697
  {
698
698
  key: "closeLeft",
699
- label: H("common.layout.tabs.closeLeftTabs"),
700
- disabled: !U.tab,
699
+ label: i("common.layout.tabs.closeLeftTabs"),
700
+ disabled: !a.tab,
701
701
  icon: () => createVNode(NIcon, { size: 20 }, { default: () => [createVNode("svg", {
702
702
  xmlns: "http://www.w3.org/2000/svg",
703
703
  "xmlns:xlink": "http://www.w3.org/1999/xlink",
@@ -712,8 +712,8 @@ function useCtxMenu(z, B, V) {
712
712
  },
713
713
  {
714
714
  key: "closeRight",
715
- label: H("common.layout.tabs.closeRightTabs"),
716
- disabled: !U.tab,
715
+ label: i("common.layout.tabs.closeRightTabs"),
716
+ disabled: !a.tab,
717
717
  icon: () => createVNode(NIcon, { size: 20 }, { default: () => [createVNode("svg", {
718
718
  xmlns: "http://www.w3.org/2000/svg",
719
719
  "xmlns:xlink": "http://www.w3.org/1999/xlink",
@@ -728,8 +728,8 @@ function useCtxMenu(z, B, V) {
728
728
  },
729
729
  {
730
730
  key: "closeOther",
731
- label: H("common.layout.tabs.closeOtherTabs"),
732
- disabled: !U.tab,
731
+ label: i("common.layout.tabs.closeOtherTabs"),
732
+ disabled: !a.tab,
733
733
  icon: () => createVNode(NIcon, { size: 20 }, { default: () => [" ", createVNode("svg", {
734
734
  xmlns: "http://www.w3.org/2000/svg",
735
735
  "xmlns:xlink": "http://www.w3.org/1999/xlink",
@@ -743,63 +743,63 @@ function useCtxMenu(z, B, V) {
743
743
  }, null)])] })
744
744
  }
745
745
  ]),
746
- onSelect: async (d) => {
747
- U.visible = !1;
748
- let H = [...z.value];
749
- if (d === "closeAll") {
750
- await K.push("/");
751
- for (let d of H) d.key !== B.value && d.close(!1);
746
+ onSelect: async (e) => {
747
+ a.visible = !1;
748
+ let i = [...t.value];
749
+ if (e === "closeAll") {
750
+ await l.push("/");
751
+ for (let e of i) e.key !== n.value && e.close(!1);
752
752
  return;
753
753
  }
754
- if (d === "fullTab") {
755
- V();
754
+ if (e === "fullTab") {
755
+ r();
756
756
  return;
757
757
  }
758
- if (U.tab) switch (d) {
758
+ if (a.tab) switch (e) {
759
759
  case "open":
760
- window.open(U.tab.href, "_blank");
760
+ window.open(a.tab.href, "_blank");
761
761
  break;
762
762
  case "reload":
763
- U.tab.reloading || (U.tab.reloading = !0, await promiseTimeout(220), U.tab.reloading = !1);
763
+ a.tab.reloading || (a.tab.reloading = !0, await promiseTimeout(220), a.tab.reloading = !1);
764
764
  break;
765
765
  case "close":
766
- U.tab?.close();
766
+ a.tab?.close();
767
767
  break;
768
768
  case "closeOther":
769
- B.value !== U.tab.key && await K.push(U.tab.fullPath);
770
- for (let d of H) d.key !== U.tab.key && d.close(!1);
769
+ n.value !== a.tab.key && await l.push(a.tab.fullPath);
770
+ for (let e of i) e.key !== a.tab.key && e.close(!1);
771
771
  break;
772
772
  case "closeLeft":
773
- B.value !== U.tab.key && await K.push(U.tab.fullPath);
774
- for (let d of z.value.slice(0, H.indexOf(U.tab))) d.close(!1);
773
+ n.value !== a.tab.key && await l.push(a.tab.fullPath);
774
+ for (let e of t.value.slice(0, i.indexOf(a.tab))) e.close(!1);
775
775
  break;
776
776
  case "closeRight":
777
- B.value !== U.tab.key && await K.push(U.tab.fullPath);
778
- for (let d of z.value.slice(H.indexOf(U.tab) + 1)) d.close(!1);
777
+ n.value !== a.tab.key && await l.push(a.tab.fullPath);
778
+ for (let e of t.value.slice(i.indexOf(a.tab) + 1)) e.close(!1);
779
779
  break;
780
780
  }
781
781
  }
782
782
  };
783
783
  }
784
- function useContentScroll(d, z, B) {
785
- function V(B) {
786
- if (B === -1 || !z.value?.children.length) return;
787
- let V = z.value.children[B];
788
- d.value.scrollTo({
784
+ function useContentScroll(e, t, n) {
785
+ function r(n) {
786
+ if (n === -1 || !t.value?.children.length) return;
787
+ let r = t.value.children[n];
788
+ e.value.scrollTo({
789
789
  behavior: "smooth",
790
- left: Math.max(0, z.value.offsetLeft + V.offsetLeft - d.value.clientWidth / 2 + V.clientWidth / 2 + 10)
790
+ left: Math.max(0, t.value.offsetLeft + r.offsetLeft - e.value.clientWidth / 2 + r.clientWidth / 2 + 10)
791
791
  });
792
792
  }
793
- return watchDebounced(useElementHover(d), (d) => {
794
- d || V(B.value);
795
- }, { debounce: 333 }), watch(B, V, { flush: "post" }), useEventListener(d, "wheel", (z) => {
796
- z.deltaMode === WheelEvent.DOM_DELTA_PIXEL && (z.preventDefault(), d.value.scrollBy({ left: z.deltaY }));
793
+ return watchDebounced(useElementHover(e), (e) => {
794
+ e || r(n.value);
795
+ }, { debounce: 333 }), watch(n, r, { flush: "post" }), useEventListener(e, "wheel", (t) => {
796
+ t.deltaMode === WheelEvent.DOM_DELTA_PIXEL && (t.preventDefault(), e.value.scrollBy({ left: t.deltaY }));
797
797
  }, { passive: !1 }), {
798
- el: d,
799
- content: z
798
+ el: e,
799
+ content: t
800
800
  };
801
801
  }
802
- var IBg = (d) => createVNode("svg", d, [
802
+ var IBg = (e) => createVNode("svg", e, [
803
803
  createVNode("defs", null, [
804
804
  createVNode("symbol", {
805
805
  id: "geometry-left",
@@ -845,39 +845,39 @@ var IBg = (d) => createVNode("svg", d, [
845
845
  dark: Boolean
846
846
  },
847
847
  emits: ["close"],
848
- setup(d, { emit: z, slots: B }) {
849
- let V = ref(), H = useElementHover(V), U = ref(), W = ref(), { width: G } = useElementSize(W);
850
- watch(G, async () => {
851
- await promiseTimeout(1), U.value.style.width = W.value.scrollWidth + "px";
848
+ setup(e, { emit: t, slots: n }) {
849
+ let r = ref(), i = useElementHover(r), a = ref(), o = ref(), { width: s } = useElementSize(o);
850
+ watch(s, async () => {
851
+ await promiseTimeout(1), a.value.style.width = o.value.scrollWidth + "px";
852
852
  });
853
- let K = useThemeVars(), q = computed(() => ({
853
+ let l = useThemeVars(), u = computed(() => ({
854
854
  fontSize: "14px",
855
- color: d.isCurrent ? K.value.primaryColor : K.value.textColor3,
855
+ color: e.isCurrent ? l.value.primaryColor : l.value.textColor3,
856
856
  maxWidth: "355px",
857
857
  overflow: "hidden"
858
- })), J = computed(() => ({
858
+ })), d = computed(() => ({
859
859
  width: "calc(100% + 27px)",
860
860
  height: "100%",
861
861
  position: "absolute",
862
862
  top: "0",
863
863
  left: "-14px",
864
- zIndex: d.isCurrent ? -1 : -2,
865
- color: d.isCurrent ? getOpaqueColor(K.value.primaryColor, d.dark ? .3 : .12, d.dark ? "#000" : "#fff") : H.value ? K.value.borderColor : "transparent"
864
+ zIndex: e.isCurrent ? -1 : -2,
865
+ color: e.isCurrent ? getOpaqueColor(l.value.primaryColor, e.dark ? .3 : .12, e.dark ? "#000" : "#fff") : i.value ? l.value.borderColor : "transparent"
866
866
  }));
867
867
  return () => createVNode("div", {
868
- ref: V,
868
+ ref: r,
869
869
  style: "position: relative; padding: 2px 10px 5px; cursor: pointer"
870
870
  }, [
871
871
  createVNode("div", {
872
- ref: U,
872
+ ref: a,
873
873
  style: "transition: width 300ms; overflow: hidden"
874
874
  }, [createVNode("div", {
875
- ref: W,
875
+ ref: o,
876
876
  style: "display: flex; align-items: center; gap: 4px; width: fit-content"
877
- }, [createVNode("span", { style: q.value }, [B.default?.()]), d.closable !== !1 && (d.isCurrent || H.value) ? createVNode("span", { style: "line-height: 0; display: inline-block; text-align: right; padding-top: 2px" }, [createVNode(NButton, {
877
+ }, [createVNode("span", { style: u.value }, [n.default?.()]), e.closable !== !1 && (e.isCurrent || i.value) ? createVNode("span", { style: "line-height: 0; display: inline-block; text-align: right; padding-top: 2px" }, [createVNode(NButton, {
878
878
  text: !0,
879
- onClick: (d) => {
880
- d.stopPropagation(), z("close");
879
+ onClick: (e) => {
880
+ e.stopPropagation(), t("close");
881
881
  }
882
882
  }, { default: () => [createVNode(NIcon, { size: 18 }, { default: () => [createVNode("svg", {
883
883
  xmlns: "http://www.w3.org/2000/svg",
@@ -889,7 +889,7 @@ var IBg = (d) => createVNode("svg", d, [
889
889
  d: "m6.4 18.308l-.708-.708l5.6-5.6l-5.6-5.6l.708-.708l5.6 5.6l5.6-5.6l.708.708l-5.6 5.6l5.6 5.6l-.708.708l-5.6-5.6z"
890
890
  }, null)])] })] })]) : void 0])]),
891
891
  createVNode("span", { style: "height: 50%; width: 1px; background: #aaa; display: inline-block; position: absolute; top: 20%; right: -4px; z-index: -3" }, null),
892
- createVNode(IBg, { style: J.value }, null)
892
+ createVNode(IBg, { style: d.value }, null)
893
893
  ]);
894
894
  }
895
895
  });
@@ -903,53 +903,53 @@ const AppMultiTabs = /* @__PURE__ */ defineComponent({
903
903
  dark: Boolean
904
904
  },
905
905
  emits: ["update:fullTab"],
906
- setup(d, { emit: z, slots: B }) {
907
- let V = getCtx();
908
- V.hasMultiTab = !0;
909
- let H = useRouter(), { ctx: U, onCtx: W, onClickoutside: G, options: K, onSelect: q } = useCtxMenu(toRef(d, "tabs"), computed(() => d.current?.key), () => z("update:fullTab", !d.fullTab)), J = computed(() => d.current ? d.tabs.findIndex((z) => z.key === d.current?.key) : -1), Y = ref(), Z = ref();
910
- return useContentScroll(Y, Z, J), () => createVNode("div", { style: "width: 100%; height: 100%; overflow: hidden; display: flex; justify-content: space-between" }, [createVNode("div", {
911
- ref: Y,
906
+ setup(e, { emit: t, slots: n }) {
907
+ let r = getCtx();
908
+ r.hasMultiTab = !0;
909
+ let i = useRouter(), { ctx: a, onCtx: o, onClickOutside: s, options: l, onSelect: u } = useCtxMenu(toRef(e, "tabs"), computed(() => e.current?.key), () => t("update:fullTab", !e.fullTab)), d = computed(() => e.current ? e.tabs.findIndex((t) => t.key === e.current?.key) : -1), f = ref(), m = ref();
910
+ return useContentScroll(f, m, d), () => createVNode("div", { style: "width: 100%; height: 100%; overflow: hidden; display: flex; justify-content: space-between" }, [createVNode("div", {
911
+ ref: f,
912
912
  style: "flex: 1 1 100%; height: 100%; display: flex; overflow: hidden; align-items: center; position: relative"
913
913
  }, [
914
914
  createVNode("div", { style: "height: 100%; flex: 0 0 16px; z-index: 1; position: sticky; left: 0; backdrop-filter: opacity(0.9) blur(5px)" }, null),
915
915
  createVNode("div", {
916
- ref: Z,
916
+ ref: m,
917
917
  style: "padding-inline: 12px; flex: 1 1 auto; display: flex; align-items: end; gap: 8px; height: 100%",
918
- onContextmenu: (d) => W(d)
919
- }, [d.tabs.map((z, V, U) => {
920
- let G = d.current?.key === z.key, K = z.title ?? z.path;
918
+ onContextmenu: (e) => o(e)
919
+ }, [e.tabs.map((t, r, a) => {
920
+ let s = e.current?.key === t.key, l = t.title ?? t.path;
921
921
  return createVNode(AppTab, {
922
- key: z.key,
923
- isCurrent: G,
924
- isLast: V === U.length - 1,
925
- onClose: z.close,
926
- closable: z.closable,
927
- dark: d.dark,
922
+ key: t.key,
923
+ isCurrent: s,
924
+ isLast: r === a.length - 1,
925
+ onClose: t.close,
926
+ closable: t.closable,
927
+ dark: e.dark,
928
928
  onClick: () => {
929
- G || H.push(z.fullPath);
929
+ s || i.push(t.fullPath);
930
930
  },
931
- onContextmenu: (d) => W(d, z)
932
- }, { default: () => [B.name ? B.name({
933
- isCurrent: G,
934
- name: K,
935
- tab: z
936
- }) : K] });
931
+ onContextmenu: (e) => o(e, t)
932
+ }, { default: () => [n.name ? n.name({
933
+ isCurrent: s,
934
+ name: l,
935
+ tab: t
936
+ }) : l] });
937
937
  })]),
938
938
  createVNode("div", { style: "height: 100%; flex: 0 0 16px; z-index: 1; position: sticky; right: 0; backdrop-filter: opacity(0.9) blur(5px)" }, null)
939
939
  ]), createVNode(NDropdown, {
940
940
  placement: "bottom-start",
941
941
  trigger: "manual",
942
- show: U.visible,
943
- x: U.x,
944
- y: U.y,
945
- options: K.value,
946
- onClickoutside: G,
947
- onSelect: q
942
+ show: a.visible,
943
+ x: a.x,
944
+ y: a.y,
945
+ options: l.value,
946
+ onClickoutside: s,
947
+ onSelect: u
948
948
  }, null)]);
949
949
  }
950
950
  });
951
- function _isSlot(d) {
952
- return typeof d == "function" || Object.prototype.toString.call(d) === "[object Object]" && !isVNode(d);
951
+ function _isSlot(e) {
952
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
953
953
  }
954
954
  const AppNotification = /* @__PURE__ */ defineComponent({
955
955
  name: "AppNotification",
@@ -964,36 +964,36 @@ const AppNotification = /* @__PURE__ */ defineComponent({
964
964
  default: 3e4
965
965
  }
966
966
  },
967
- setup(z, { slots: B, attrs: V }) {
968
- let { t: H } = useI18n(), U = ref(!1), W = ref("unread"), q = reactive({
967
+ setup(t, { slots: n, attrs: r }) {
968
+ let { t: i } = useI18n(), a = ref(!1), o = ref("unread"), u = reactive({
969
969
  page: 1,
970
970
  size: 10,
971
971
  loading: !1,
972
972
  records: [],
973
973
  total: 0,
974
974
  unread: 0
975
- }), { sync: J, post: X } = useAtomicBroadcast({
975
+ }), { sync: d, post: p } = useAtomicBroadcast({
976
976
  channel: "__ithinkdt_mc_shared_channel",
977
- onMsg: (d) => {
978
- q.unread = d;
977
+ onMsg: (e) => {
978
+ u.unread = e;
979
979
  },
980
- getMsg: () => (U.value && (q.loading = !0, Promise.resolve(z.getPage?.(W.value, q.page, q.size) ?? []).then(({ records: d, total: z }) => {
981
- q.records = d, W.value === "unread" ? (q.unread = z, X(z)) : q.total = z;
980
+ getMsg: () => (a.value && (u.loading = !0, Promise.resolve(t.getPage?.(o.value, u.page, u.size) ?? []).then(({ records: e, total: t }) => {
981
+ u.records = e, o.value === "unread" ? (u.unread = t, p(t)) : u.total = t;
982
982
  }).finally(() => {
983
- q.loading = !1;
984
- })), z.getUnreadCount?.() ?? 0),
985
- timeout: () => z.interval,
983
+ u.loading = !1;
984
+ })), t.getUnreadCount?.() ?? 0),
985
+ timeout: () => t.interval,
986
986
  immediate: !0
987
987
  });
988
988
  return () => {
989
- let d = withDirectives(createVNode(NButton, mergeProps(V, {
989
+ let e = withDirectives(createVNode(NButton, mergeProps(r, {
990
990
  quaternary: !0,
991
991
  style: "--n-padding: 0 12px",
992
992
  onClick: () => {
993
- U.value = !0, W.value = q.unread > 0 ? "unread" : "all", setTimeout(J, 300);
993
+ a.value = !0, o.value = u.unread > 0 ? "unread" : "all", setTimeout(d, 300);
994
994
  }
995
- }), { default: () => [B.icon ? B.icon() : createVNode(NBadge, {
996
- show: q.unread > 0,
995
+ }), { default: () => [n.icon ? n.icon() : createVNode(NBadge, {
996
+ show: u.unread > 0,
997
997
  dot: !0,
998
998
  offset: [-2, 5],
999
999
  processing: !0
@@ -1011,47 +1011,47 @@ const AppNotification = /* @__PURE__ */ defineComponent({
1011
1011
  color: "currentColor"
1012
1012
  }, [createVNode("path", { d: "M2.53 14.77c-.213 1.394.738 2.361 1.902 2.843c4.463 1.85 10.673 1.85 15.136 0c1.164-.482 2.115-1.45 1.902-2.843c-.13-.857-.777-1.57-1.256-2.267c-.627-.924-.689-1.931-.69-3.003C19.525 5.358 16.157 2 12 2S4.475 5.358 4.475 9.5c0 1.072-.062 2.08-.69 3.003c-.478.697-1.124 1.41-1.255 2.267" }, null), createVNode("path", { d: "M8 19c.458 1.725 2.076 3 4 3c1.925 0 3.541-1.275 4-3" }, null)])])] })] })] }), [[
1013
1013
  vTooltip,
1014
- H("common.notification.tip", { count: q.unread }),
1014
+ i("common.notification.tip", { count: u.unread }),
1015
1015
  void 0,
1016
1016
  { bottom: !0 }
1017
- ]]), X = () => {
1018
- let d, z;
1017
+ ]]), p = () => {
1018
+ let e, t;
1019
1019
  return createVNode("div", { style: "display: flex; align-items: baseline; gap: 20px" }, [
1020
- createVNode("div", { style: "padding-right: 12px" }, [H("common.notification.title")]),
1020
+ createVNode("div", { style: "padding-right: 12px" }, [i("common.notification.title")]),
1021
1021
  createVNode(NButton, {
1022
1022
  text: !0,
1023
- type: W.value === "all" ? "primary" : "default",
1023
+ type: o.value === "all" ? "primary" : "default",
1024
1024
  onClick: () => {
1025
- W.value = "all", J();
1025
+ o.value = "all", d();
1026
1026
  }
1027
- }, _isSlot(d = H("common.notification.all")) ? d : { default: () => [d] }),
1027
+ }, _isSlot(e = i("common.notification.all")) ? e : { default: () => [e] }),
1028
1028
  createVNode(NButton, {
1029
1029
  text: !0,
1030
- type: W.value === "unread" ? "primary" : "default",
1030
+ type: o.value === "unread" ? "primary" : "default",
1031
1031
  onClick: () => {
1032
- W.value = "unread", J();
1032
+ o.value = "unread", d();
1033
1033
  }
1034
- }, _isSlot(z = H("common.notification.unread", { count: q.unread > 99 ? "99+" : q.unread.toString() })) ? z : { default: () => [z] })
1034
+ }, _isSlot(t = i("common.notification.unread", { count: u.unread > 99 ? "99+" : u.unread.toString() })) ? t : { default: () => [t] })
1035
1035
  ]);
1036
- }, Z = (d) => createVNode(NListItem, {
1037
- key: d.key,
1036
+ }, m = (e) => createVNode(NListItem, {
1037
+ key: e.key,
1038
1038
  onClick: () => {
1039
- d.status === "unread" && (z.markRead?.([d.key]).then(() => {
1040
- d.status = "read";
1041
- }), q.unread--), d.link && window.open(d.link, "_target");
1039
+ e.status === "unread" && (t.markRead?.([e.key]).then(() => {
1040
+ e.status = "read";
1041
+ }), u.unread--), e.link && window.open(e.link, "_target");
1042
1042
  }
1043
1043
  }, { default: () => [createVNode(NThing, {
1044
1044
  bordered: !1,
1045
1045
  closable: !0,
1046
1046
  contentIndented: !0,
1047
1047
  size: "small",
1048
- onMouseenter: () => d.hover = !0,
1049
- onMouseleave: () => d.hover = !1,
1048
+ onMouseenter: () => e.hover = !0,
1049
+ onMouseleave: () => e.hover = !1,
1050
1050
  style: "padding: 0 4px"
1051
1051
  }, {
1052
1052
  avatar: () => createVNode(NIcon, {
1053
1053
  size: 22,
1054
- color: d.status === "unread" ? "var(--color-primary)" : void 0
1054
+ color: e.status === "unread" ? "var(--color-primary)" : void 0
1055
1055
  }, { default: () => [createVNode("svg", {
1056
1056
  xmlns: "http://www.w3.org/2000/svg",
1057
1057
  width: "1em",
@@ -1061,48 +1061,48 @@ const AppNotification = /* @__PURE__ */ defineComponent({
1061
1061
  fill: "currentColor",
1062
1062
  d: "M12.3 7.29c.2-.18.44-.29.7-.29c.27 0 .5.11.71.29c.19.21.29.45.29.71c0 .27-.1.5-.29.71c-.21.19-.44.29-.71.29c-.26 0-.5-.1-.7-.29c-.19-.21-.3-.44-.3-.71c0-.26.11-.5.3-.71m-2.5 4.68s2.17-1.72 2.96-1.79c.74-.06.59.79.52 1.23l-.01.06c-.14.53-.31 1.17-.48 1.78c-.38 1.39-.75 2.75-.66 3c.1.34.72-.09 1.17-.39c.06-.04.11-.08.16-.11c0 0 .08-.08.16.03c.02.03.04.06.06.08c.09.14.14.19.02.27l-.04.02c-.22.15-1.16.81-1.54 1.05c-.41.27-1.98 1.17-1.74-.58c.21-1.23.49-2.29.71-3.12c.41-1.5.59-2.18-.33-1.59c-.37.22-.59.36-.72.45c-.11.08-.12.08-.19-.05l-.03-.06l-.05-.08c-.07-.1-.07-.11.03-.2M22 12c0 5.5-4.5 10-10 10S2 17.5 2 12S6.5 2 12 2s10 4.5 10 10m-2 0c0-4.42-3.58-8-8-8s-8 3.58-8 8s3.58 8 8 8s8-3.58 8-8"
1063
1063
  }, null)])] }),
1064
- header: () => d.title,
1064
+ header: () => e.title,
1065
1065
  "header-extra": () => {
1066
- let B, V;
1067
- return d.hover ? createVNode("div", {
1066
+ let n, r;
1067
+ return e.hover ? createVNode("div", {
1068
1068
  style: "display: flex; justify-content: end; gap: 12px",
1069
- onClick: (d) => {
1070
- d.preventDefault(), d.stopPropagation();
1069
+ onClick: (e) => {
1070
+ e.preventDefault(), e.stopPropagation();
1071
1071
  }
1072
- }, [d.status === "unread" ? createVNode(NButton, {
1072
+ }, [e.status === "unread" ? createVNode(NButton, {
1073
1073
  text: !0,
1074
1074
  type: "primary",
1075
1075
  onClick: () => {
1076
- z.markRead?.([d.key]).then(() => {
1077
- d.status = "read", q.unread--;
1076
+ t.markRead?.([e.key]).then(() => {
1077
+ e.status = "read", u.unread--;
1078
1078
  });
1079
1079
  }
1080
- }, _isSlot(B = H("common.notification.markRead")) ? B : { default: () => [B] }) : void 0, createVNode(NButton, {
1080
+ }, _isSlot(n = i("common.notification.markRead")) ? n : { default: () => [n] }) : void 0, createVNode(NButton, {
1081
1081
  text: !0,
1082
1082
  type: "error",
1083
1083
  onClick: () => {
1084
- q.records === 1 ? (q.records = [], J()) : q.records.splice(q.records.findIndex((z) => z.key == d.key), 1), z.markDelete?.([d.key]);
1084
+ u.records === 1 ? (u.records = [], d()) : u.records.splice(u.records.findIndex((t) => t.key == e.key), 1), t.markDelete?.([e.key]);
1085
1085
  }
1086
- }, _isSlot(V = H("common.notification.markDelete")) ? V : { default: () => [V] })]) : void 0;
1086
+ }, _isSlot(r = i("common.notification.markDelete")) ? r : { default: () => [r] })]) : void 0;
1087
1087
  },
1088
- default: d.content,
1089
- footer: () => createVNode("span", { style: "color: gray" }, [d.hover ? format(d.date, H("common.notification.time")) : H("common.timeago", { time: d.date })])
1090
- })] }), Q = () => {
1091
- let d;
1092
- return withDirectives(q.records.length > 0 ? createVNode(NList, {
1088
+ default: e.content,
1089
+ footer: () => createVNode("span", { style: "color: gray" }, [e.hover ? format(e.date, i("common.notification.time")) : i("common.timeago", { time: e.date })])
1090
+ })] }), h = () => {
1091
+ let e;
1092
+ return withDirectives(u.records.length > 0 ? createVNode(NList, {
1093
1093
  clickable: !0,
1094
1094
  hoverable: !0,
1095
1095
  style: "min-height: 50vh"
1096
- }, _isSlot(d = q.records.map((d) => Z(d))) ? d : { default: () => [d] }) : createVNode(NEmpty, { style: "margin-top: 30vh" }, null), [[vSpin, q.loading]]);
1097
- }, $ = () => createVNode("div", { style: "display: flex; justify-content: space-between; width: 100%" }, [W.value === "unread" ? createVNode(NButton, {
1096
+ }, _isSlot(e = u.records.map((e) => m(e))) ? e : { default: () => [e] }) : createVNode(NEmpty, { style: "margin-top: 30vh" }, null), [[vSpin, u.loading]]);
1097
+ }, g = () => createVNode("div", { style: "display: flex; justify-content: space-between; width: 100%" }, [o.value === "unread" ? createVNode(NButton, {
1098
1098
  text: !0,
1099
1099
  type: "primary",
1100
- disabled: q.records.length === 0,
1100
+ disabled: u.records.length === 0,
1101
1101
  onClick: () => {
1102
- let d = q.records.filter((d) => d.status === "unread").map((d) => d.key);
1103
- z.markRead(d).then(() => {
1104
- for (; q.unread - d.length <= q.size * (q.page - 1);) q.page--;
1105
- J();
1102
+ let e = u.records.filter((e) => e.status === "unread").map((e) => e.key);
1103
+ t.markRead(e).then(() => {
1104
+ for (; u.unread - e.length <= u.size * (u.page - 1);) u.page--;
1105
+ d();
1106
1106
  });
1107
1107
  }
1108
1108
  }, {
@@ -1115,42 +1115,42 @@ const AppNotification = /* @__PURE__ */ defineComponent({
1115
1115
  fill: "currentColor",
1116
1116
  d: "M.41 13.41L6 19l1.41-1.42L1.83 12m20.41-6.42L11.66 16.17L7.5 12l-1.43 1.41L11.66 19l12-12M18 7l-1.41-1.42l-6.35 6.35l1.42 1.41z"
1117
1117
  }, null)])] }),
1118
- default: () => H("common.notification.markPageRead")
1118
+ default: () => i("common.notification.markPageRead")
1119
1119
  }) : createVNode("span", null, null), createVNode(NPagination, {
1120
1120
  simple: !0,
1121
- pageSize: q.size,
1122
- page: q.page,
1123
- itemCount: W.value === "unread" ? q.unread : q.total,
1124
- onUpdatePage: (d) => {
1125
- q.page = d, J();
1121
+ pageSize: u.size,
1122
+ page: u.page,
1123
+ itemCount: o.value === "unread" ? u.unread : u.total,
1124
+ onUpdatePage: (e) => {
1125
+ u.page = e, d();
1126
1126
  }
1127
1127
  }, null)]);
1128
- return createVNode(Fragment, null, [d, createVNode(NDrawer, {
1129
- show: U.value,
1130
- "onUpdate:show": (d) => U.value = d,
1128
+ return createVNode(Fragment, null, [e, createVNode(NDrawer, {
1129
+ show: a.value,
1130
+ "onUpdate:show": (e) => a.value = e,
1131
1131
  showMask: !1,
1132
1132
  width: 400
1133
1133
  }, { default: () => [createVNode(NDrawerContent, {
1134
- title: H("common.notification.title"),
1134
+ title: i("common.notification.title"),
1135
1135
  closable: !0,
1136
1136
  nativeScrollbar: !1,
1137
1137
  bodyContentStyle: { padding: "0" }
1138
1138
  }, {
1139
- header: X,
1140
- default: Q,
1141
- footer: $
1139
+ header: p,
1140
+ default: h,
1141
+ footer: g
1142
1142
  })] })]);
1143
1143
  };
1144
1144
  }
1145
1145
  });
1146
- var ICheck = (d) => createVNode("svg", mergeProps({
1146
+ var ICheck = (e) => createVNode("svg", mergeProps({
1147
1147
  xmlns: "http://www.w3.org/2000/svg",
1148
1148
  "xmlns:xlink": "http://www.w3.org/1999/xlink",
1149
1149
  role: "img",
1150
1150
  width: "1em",
1151
1151
  height: "1em",
1152
1152
  viewBox: "0 0 24 24"
1153
- }, d), [createVNode("path", {
1153
+ }, e), [createVNode("path", {
1154
1154
  fill: "currentColor",
1155
1155
  d: "m9.55 18l-5.7-5.7l1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4z"
1156
1156
  }, null)]);
@@ -1161,27 +1161,27 @@ const AppTenant = /* @__PURE__ */ defineComponent({
1161
1161
  current: String
1162
1162
  },
1163
1163
  emit: ["update:current"],
1164
- setup(z, { emit: B }) {
1165
- let { t: V } = useI18n(), H = (d) => d.disabled ? createVNode("div", null, [d.name]) : createVNode("div", { style: "display: flex; align-items: center; justify-content: space-between; gap: 20px" }, [createVNode("div", { style: "display: flex; align-items: center; gap: 8px" }, [createVNode(NAvatar, {
1164
+ setup(t, { emit: n }) {
1165
+ let { t: r } = useI18n(), i = (e) => e.disabled ? createVNode("div", null, [e.name]) : createVNode("div", { style: "display: flex; align-items: center; justify-content: space-between; gap: 20px" }, [createVNode("div", { style: "display: flex; align-items: center; gap: 8px" }, [createVNode(NAvatar, {
1166
1166
  round: !0,
1167
1167
  size: 22,
1168
1168
  color: "var(--color-primary-hover)"
1169
- }, { default: () => [d.icon?.() || d.name[0]] }), createVNode("span", { style: d.id === z.current ? "color: var(--color-primary)" : "" }, [d.name])]), d.id === z.current ? createVNode(ICheck, { style: "color: var(--color-primary); font-size: 20px" }, null) : createVNode("div", null, null)]), U = computed(() => [{
1169
+ }, { default: () => [e.icon?.() || e.name[0]] }), createVNode("span", { style: e.id === t.current ? "color: var(--color-primary)" : "" }, [e.name])]), e.id === t.current ? createVNode(ICheck, { style: "color: var(--color-primary); font-size: 20px" }, null) : createVNode("div", null, null)]), a = computed(() => [{
1170
1170
  id: "___",
1171
- name: V("common.account.changeTenant"),
1171
+ name: r("common.account.changeTenant"),
1172
1172
  disabled: !0
1173
- }, ...z.options ?? []]);
1173
+ }, ...t.options ?? []]);
1174
1174
  return () => {
1175
- if (!z.options?.length) return;
1176
- let d = z.options.find((d) => d.id === z.current);
1175
+ if (!t.options?.length) return;
1176
+ let e = t.options.find((e) => e.id === t.current);
1177
1177
  return createVNode(NDropdown, {
1178
- options: U.value,
1178
+ options: a.value,
1179
1179
  placement: "bottom-end",
1180
1180
  keyField: "id",
1181
1181
  labelField: "name",
1182
1182
  showArrow: !0,
1183
- renderLabel: H,
1184
- onSelect: (d) => d !== z.current && B("update:current", d)
1183
+ renderLabel: i,
1184
+ onSelect: (e) => e !== t.current && n("update:current", e)
1185
1185
  }, { default: () => [createVNode(NButton, {
1186
1186
  quaternary: !0,
1187
1187
  style: "--n-padding: 0 6px"
@@ -1197,15 +1197,15 @@ const AppTenant = /* @__PURE__ */ defineComponent({
1197
1197
  d: "M728 600.2c8.1-13.2 4-30.4-9.1-38.5-30.7-19-63.6-33.8-97.8-44.4 69.4-43 115.6-119.8 115.6-207.4C736.7 175.2 627.5 66 492.8 66S249 175.2 249 309.9c0 88.2 46.8 165.5 117 208.3-12.9 4.1-25.6 8.8-38.1 14.1-51.1 21.8-97 53-136.4 92.7-39.4 39.7-70.3 85.9-91.9 137.4-22.4 53.3-33.7 109.9-33.7 168.2 0 15.5 12.5 28 28 28s28-12.5 28-28c0-207.5 167.4-376.3 373.2-376.3 68.8 0 136.1 19 194.4 55 13.1 8.2 30.4 4.1 38.5-9.1zM305 309.9c0-50.2 19.5-97.4 55-132.8 35.5-35.5 82.7-55 132.8-55 50.2 0 97.4 19.5 132.8 55 35.5 35.5 55 82.7 55 132.8s-19.5 97.4-55 132.8c-35.5 35.5-82.7 55-132.8 55-50.2 0-97.4-19.5-132.8-55-35.5-35.5-55-82.6-55-132.8zM606.2 746.4h325.1c11.3 0 21.5-6.8 25.9-17.3s1.9-22.5-6.1-30.5L844.5 592.1c-10.9-10.9-28.7-10.9-39.6 0-10.9 10.9-10.9 28.7 0 39.6l58.7 58.6H606.2c-15.5 0-28 12.5-28 28s12.6 28.1 28 28.1zM931.4 794.6H606.3c-11.3 0-21.5 6.8-25.9 17.3s-1.9 22.5 6.1 30.5l106.6 106.4c5.5 5.5 12.6 8.2 19.8 8.2 7.2 0 14.4-2.7 19.8-8.2 10.9-10.9 10.9-28.7 0-39.6L674 850.6h257.4c15.5 0 28-12.5 28-28s-12.5-28-28-28z",
1198
1198
  fill: "currentColor"
1199
1199
  }, null)])] }),
1200
- default: () => d?.shotName || d?.name
1200
+ default: () => e?.shotName || e?.name
1201
1201
  })] });
1202
1202
  };
1203
1203
  }
1204
1204
  }), UIProvider = /* @__PURE__ */ defineComponent({
1205
1205
  name: "UIProvider",
1206
1206
  props: { i18n: Function },
1207
- setup(d, { slots: B }) {
1208
- return provide(UI_I18N_INJECTION, toRef(d, "i18n")), () => B.default();
1207
+ setup(e, { slots: n }) {
1208
+ return provide(UI_I18N_INJECTION, toRef(e, "i18n")), () => n.default();
1209
1209
  }
1210
1210
  });
1211
- export { AppAccount, AppAppearance, AppBreadcrumb, AppContent, AppFooter, AppFullscreen, AppHeader, AppLanguage, AppLayout, AppLogo, AppMenu, AppMultiTabs, AppNotification, AppSider, AppTenant, SpinDirectiveProvider, TooltipDirectiveProvider, UIProvider, vSpin, vTooltip };
1211
+ export { AppAccount, AppAppearance, AppBreadcrumb, AppContent, AppFooter, AppFullscreen, AppHeader, AppLanguage, AppLayout, AppLogo, AppMenu, AppMultiTabs, AppNotification, AppSidebar, AppTenant, SpinDirectiveProvider, TooltipDirectiveProvider, UIProvider, vSpin, vTooltip };