@dt-frames/ui 2.0.3 → 2.0.5

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 (141) hide show
  1. package/es/assets/locales/en.ts +1 -1
  2. package/es/components/curd/index.js +346 -331
  3. package/es/components/curd/src/components/Curd.d.ts +0 -8
  4. package/es/components/curd/src/props.d.ts +0 -4
  5. package/es/components/drawer/index.d.ts +1 -1
  6. package/es/components/drawer/index.js +27 -27
  7. package/es/components/drawer/src/index.d.ts +2 -3
  8. package/es/components/form/index.d.ts +0 -33
  9. package/es/components/form/index.js +72 -36
  10. package/es/components/form/index.less +212 -9
  11. package/es/components/form/src/components/FormItem.d.ts +3 -7
  12. package/es/components/form/src/components/formIcon.d.ts +14 -14
  13. package/es/components/form/src/components/formInputUseDialog.d.ts +8 -8
  14. package/es/components/form/src/enums/index.d.ts +1 -1
  15. package/es/components/form/src/index.d.ts +0 -25
  16. package/es/components/form/src/props.d.ts +2 -6
  17. package/es/components/form/src/types/form.type.d.ts +1 -1
  18. package/es/components/icons/index.less +5 -0
  19. package/es/components/modal/index.js +35 -34
  20. package/es/components/modal/index.less +10 -0
  21. package/es/components/modal/src/components/ModalFooter.d.ts +3 -3
  22. package/es/components/modal/src/index.d.ts +9 -9
  23. package/es/components/source/hooks/useSource.d.ts +14 -0
  24. package/es/components/source/index.js +72 -31
  25. package/es/components/source/types/source.type.d.ts +5 -8
  26. package/es/components/table/index.js +418 -305
  27. package/es/components/table/index.less +62 -14
  28. package/es/components/table/src/components/TableAction.d.ts +1 -1
  29. package/es/components/table/src/index.d.ts +30 -10
  30. package/es/components/table/src/props.d.ts +12 -4
  31. package/es/components/table/src/types/table.type.d.ts +4 -5
  32. package/es/components/tree/index.d.ts +2 -0
  33. package/es/components/tree/index.js +1087 -0
  34. package/es/components/tree/index.less +119 -0
  35. package/es/components/tree/src/basicProps.d.ts +146 -0
  36. package/es/components/tree/src/components/ContextMenu.d.ts +64 -0
  37. package/es/components/tree/src/components/TreeHeader.d.ts +98 -0
  38. package/es/components/tree/src/enums/index.d.ts +6 -0
  39. package/es/components/tree/src/hooks/useContextMenu.d.ts +2 -0
  40. package/es/components/tree/src/hooks/useTree.d.ts +14 -0
  41. package/es/components/tree/src/index.d.ts +6526 -0
  42. package/es/components/tree/src/type/menu.d.ts +33 -0
  43. package/es/components/tree/src/type/tree.d.ts +55 -0
  44. package/es/components/tree/src/utils/tree.d.ts +5 -0
  45. package/es/packages/ui/src/assets/locales/en.d.ts +101 -0
  46. package/es/packages/ui/src/assets/locales/index.d.ts +2 -0
  47. package/es/packages/ui/src/assets/locales/zh.d.ts +103 -0
  48. package/es/packages/ui/src/components/container/index.d.ts +94 -0
  49. package/es/packages/ui/src/components/container/src/components/bar.d.ts +14 -0
  50. package/es/packages/ui/src/components/container/src/components/scroll-bar.d.ts +70 -0
  51. package/es/packages/ui/src/components/container/src/hooks/scroll.d.ts +10 -0
  52. package/es/packages/ui/src/components/container/src/scroll-container.d.ts +76 -0
  53. package/es/packages/ui/src/components/container/src/slot-container.d.ts +20 -0
  54. package/es/packages/ui/src/components/container/src/types/scroll.type.d.ts +22 -0
  55. package/es/packages/ui/src/components/container/src/utils/scroll.d.ts +5 -0
  56. package/es/packages/ui/src/global.d.ts +7 -0
  57. package/es/packages/ui/src/theme/index.d.ts +10 -0
  58. package/es/packages/ui/src/theme/src/components/content/index.d.ts +27 -0
  59. package/es/packages/ui/src/theme/src/components/feature/back-top.d.ts +5 -0
  60. package/es/packages/ui/src/theme/src/components/feature/index.d.ts +7 -0
  61. package/es/packages/ui/src/theme/src/components/footer/index.d.ts +31 -0
  62. package/es/packages/ui/src/theme/src/components/header/components/bread-crumb.d.ts +6 -0
  63. package/es/packages/ui/src/theme/src/components/header/components/fullscreen.d.ts +5 -0
  64. package/es/packages/ui/src/theme/src/components/header/components/index.d.ts +11 -0
  65. package/es/packages/ui/src/theme/src/components/header/components/lang-picker.d.ts +23 -0
  66. package/es/packages/ui/src/theme/src/components/header/components/logo.d.ts +56 -0
  67. package/es/packages/ui/src/theme/src/components/header/components/menu-filter.d.ts +22 -0
  68. package/es/packages/ui/src/theme/src/components/header/components/notify.d.ts +24 -0
  69. package/es/packages/ui/src/theme/src/components/header/components/setting-theme.d.ts +223 -0
  70. package/es/packages/ui/src/theme/src/components/header/components/size.d.ts +282 -0
  71. package/es/packages/ui/src/theme/src/components/header/components/theme-drawer/feature.d.ts +138 -0
  72. package/es/packages/ui/src/theme/src/components/header/components/theme-drawer/index.d.ts +3 -0
  73. package/es/packages/ui/src/theme/src/components/header/components/theme-drawer/menu-type.d.ts +16 -0
  74. package/es/packages/ui/src/theme/src/components/header/components/theme-drawer/select.d.ts +58 -0
  75. package/es/packages/ui/src/theme/src/components/header/components/theme-drawer/switch.d.ts +49 -0
  76. package/es/packages/ui/src/theme/src/components/header/components/trigger.d.ts +10 -0
  77. package/es/packages/ui/src/theme/src/components/header/components/user-info.d.ts +37 -0
  78. package/es/packages/ui/src/theme/src/components/header/helper/change-theme.d.ts +13 -0
  79. package/es/packages/ui/src/theme/src/components/header/helper/menu-tree.d.ts +4 -0
  80. package/es/packages/ui/src/theme/src/components/header/index.d.ts +720 -0
  81. package/es/packages/ui/src/theme/src/components/header/multiple-header.d.ts +806 -0
  82. package/es/packages/ui/src/theme/src/components/sider/components/basic-menu/basic-menu-item.d.ts +62 -0
  83. package/es/packages/ui/src/theme/src/components/sider/components/basic-menu/basic-menu.d.ts +207 -0
  84. package/es/packages/ui/src/theme/src/components/sider/components/basic-menu/basic-sub-menu-item.d.ts +127 -0
  85. package/es/packages/ui/src/theme/src/components/sider/components/basic-menu/menu-item-content.d.ts +26 -0
  86. package/es/packages/ui/src/theme/src/components/sider/components/drag-bar.d.ts +14 -0
  87. package/es/packages/ui/src/theme/src/components/sider/components/layout-menu.d.ts +22 -0
  88. package/es/packages/ui/src/theme/src/components/sider/components/props.d.ts +69 -0
  89. package/es/packages/ui/src/theme/src/components/sider/components/sider-trigger.d.ts +17 -0
  90. package/es/packages/ui/src/theme/src/components/sider/helper/sider.d.ts +12 -0
  91. package/es/packages/ui/src/theme/src/components/sider/helper/split-menu.d.ts +10 -0
  92. package/es/packages/ui/src/theme/src/components/sider/index.d.ts +235 -0
  93. package/es/packages/ui/src/theme/src/components/sider/mix-sider.d.ts +167 -0
  94. package/es/packages/ui/src/theme/src/components/tabs/components/TabContent.d.ts +6 -0
  95. package/es/packages/ui/src/theme/src/components/tabs/components/TabRedo.d.ts +21 -0
  96. package/es/packages/ui/src/theme/src/components/tabs/components/index.d.ts +3 -0
  97. package/es/packages/ui/src/theme/src/components/tabs/hooks/useMultifyTabs.d.ts +7 -0
  98. package/es/packages/ui/src/theme/src/components/tabs/hooks/useTabDropdown.d.ts +6 -0
  99. package/es/packages/ui/src/theme/src/components/tabs/index.d.ts +63 -0
  100. package/es/packages/ui/src/theme/src/components/tabs/types/tabs.type.d.ts +7 -0
  101. package/es/packages/ui/src/theme/src/enums/index.d.ts +1 -0
  102. package/es/packages/ui/src/theme/src/enums/theme.enum.d.ts +34 -0
  103. package/es/packages/ui/src/theme/src/hooks/index.d.ts +6 -0
  104. package/es/packages/ui/src/theme/src/hooks/useDragLine.d.ts +2 -0
  105. package/es/packages/ui/src/theme/src/hooks/useHeader.d.ts +25 -0
  106. package/es/packages/ui/src/theme/src/hooks/useMenu.d.ts +29 -0
  107. package/es/packages/ui/src/theme/src/hooks/useMultifyTab.d.ts +8 -0
  108. package/es/packages/ui/src/theme/src/hooks/useOpenKeys.d.ts +7 -0
  109. package/es/packages/ui/src/theme/src/hooks/useTheme.d.ts +9 -0
  110. package/es/packages/ui/src/theme/src/index.d.ts +1851 -0
  111. package/es/packages/ui/src/theme/src/setting/theme.setting.d.ts +2 -0
  112. package/es/packages/ui/src/theme/src/stores/index.d.ts +3 -0
  113. package/es/packages/ui/src/theme/src/stores/routeReuse.store.d.ts +23 -0
  114. package/es/packages/ui/src/theme/src/stores/theme.store.d.ts +18 -0
  115. package/es/packages/ui/src/theme/src/types/index.d.ts +3 -0
  116. package/es/packages/ui/src/theme/src/types/menu.type.d.ts +15 -0
  117. package/es/packages/ui/src/theme/src/types/theme.type.d.ts +62 -0
  118. package/es/packages/ui/src/utils/withInstall.d.ts +4 -0
  119. package/es/theme/index.d.ts +2 -1
  120. package/es/theme/index.js +898 -683
  121. package/es/theme/index.less +205 -0
  122. package/es/theme/src/components/header/components/logo.d.ts +22 -0
  123. package/es/theme/src/components/header/components/size.d.ts +5 -5
  124. package/es/theme/src/components/header/helper/menu-tree.d.ts +1 -0
  125. package/es/theme/src/components/header/index.d.ts +92 -5
  126. package/es/theme/src/components/header/multiple-header.d.ts +94 -7
  127. package/es/theme/src/components/sider/components/drag-bar.d.ts +1 -1
  128. package/es/theme/src/components/sider/components/sider-trigger.d.ts +0 -1
  129. package/es/theme/src/components/sider/index.d.ts +169 -3
  130. package/es/theme/src/components/sider/mix-sider.d.ts +168 -0
  131. package/es/theme/src/enums/theme.enum.d.ts +2 -1
  132. package/es/theme/src/hooks/useMenu.d.ts +5 -3
  133. package/es/theme/src/hooks/useMultifyTab.d.ts +1 -0
  134. package/es/theme/src/index.d.ts +356 -15
  135. package/es/theme/src/stores/theme.store.d.ts +3 -0
  136. package/es/theme/src/types/theme.type.d.ts +2 -0
  137. package/index.d.ts +2 -1
  138. package/index.js +6 -2
  139. package/package.json +4 -4
  140. package/tsconfig.json +1 -0
  141. package/vite.config.ts +1 -0
package/es/theme/index.js CHANGED
@@ -1,13 +1,16 @@
1
- import { BackTop, Breadcrumb, Empty, InputSearch, Popover, Avatar, Tooltip, Select, Switch, Divider, Button, Drawer, MenuItem, SubMenu, Menu, LayoutHeader, LayoutSider, MenuDivider, Dropdown, TabPane, Tabs, LayoutContent, Layout, ConfigProvider } from "ant-design-vue/es";
1
+ import { BackTop, MenuItem, MenuDivider, Menu, Dropdown, TabPane, Tabs, Breadcrumb, Empty, InputSearch, Popover, Avatar, Tooltip, Select, Switch, Divider, Button, Drawer, SubMenu, LayoutHeader, LayoutSider, LayoutContent, Layout, ConfigProvider } from "ant-design-vue/es";
2
2
  import "ant-design-vue/es/config-provider/style";
3
3
  import "ant-design-vue/es/layout/style";
4
- import { toRaw, unref, computed, onMounted, nextTick, defineComponent, openBlock, createBlock, createCommentVNode, createElementBlock, createElementVNode, normalizeClass, normalizeStyle, withDirectives, toDisplayString, vShow, ref, watchEffect, createVNode, withCtx, Fragment, renderList, resolveDirective, getCurrentInstance, inject, onUnmounted, h, provide, onBeforeUnmount, resolveDynamicComponent, renderSlot, mergeProps, createTextVNode, watch, normalizeProps, guardReactiveProps, resolveComponent, reactive, toRef, withModifiers, createSlots, Transition, KeepAlive } from "vue";
4
+ import { toRaw, unref, computed, onMounted, nextTick, defineComponent, openBlock, createBlock, createCommentVNode, createElementBlock, createElementVNode, reactive, withCtx, createVNode, Fragment, renderList, normalizeClass, toDisplayString, ref, watch, createSlots, getCurrentInstance, inject, onUnmounted, h, provide, onBeforeUnmount, normalizeStyle, resolveDynamicComponent, renderSlot, mergeProps, withDirectives, vShow, watchEffect, resolveDirective, createTextVNode, normalizeProps, guardReactiveProps, resolveComponent, toRef, withModifiers, Transition, KeepAlive } from "vue";
5
5
  import { useRouter, RouterView } from "vue-router";
6
- import { DtCache, CacheKey, deepMerge, Pages, useGo, useRedo, Language, isObject, useTimeoutFn, useI18n, isBoolean, localeList, changeLocale, off, on, getParentSlots, isFunction, copyText, isUrl, openWindow, isNullAndUnDef, menuList2Map, useApp, withInstall as withInstall$1 } from "@dt-frames/core";
6
+ import { DtCache, CacheKey, deepMerge, Pages, useGo, useRedo, Language, isObject, useTimeoutFn, useI18n, isNullAndUnDef, menuList2Map, off, on, getParentSlots, isBoolean, localeList, changeLocale, isFunction, copyText, isUrl, openWindow, useApp, withInstall as withInstall$1 } from "@dt-frames/core";
7
7
  import { defineStore } from "pinia";
8
8
  import { trim } from "lodash-es";
9
9
  import { useDebounceFn, useFullscreen, useThrottleFn } from "@vueuse/core";
10
10
  import "ant-design-vue/es/back-top/style";
11
+ import "ant-design-vue/es/tabs/style";
12
+ import "ant-design-vue/es/dropdown/style";
13
+ import "ant-design-vue/es/menu/style";
11
14
  import "ant-design-vue/es/breadcrumb/style";
12
15
  import "ant-design-vue/es/popover/style";
13
16
  import "ant-design-vue/es/input/style";
@@ -20,12 +23,11 @@ import "ant-design-vue/es/divider/style";
20
23
  import "ant-design-vue/es/tooltip/style";
21
24
  import "ant-design-vue/es/select/style";
22
25
  import "ant-design-vue/es/switch/style";
23
- import "ant-design-vue/es/menu/style";
24
- import "ant-design-vue/es/tabs/style";
25
- import "ant-design-vue/es/dropdown/style";
26
26
  import zhCN from "ant-design-vue/es/locale/zh_CN";
27
27
  import en from "ant-design-vue/es/locale/en_US";
28
- import require$$0 from "dayjs";
28
+ import dayjs from "dayjs";
29
+ import "dayjs/locale/zh-cn";
30
+ import "dayjs/locale/es-us";
29
31
  var Theme = /* @__PURE__ */ ((Theme2) => {
30
32
  Theme2["DARK"] = "dark";
31
33
  Theme2["LIGHT"] = "light";
@@ -35,6 +37,7 @@ var MenuType = /* @__PURE__ */ ((MenuType2) => {
35
37
  MenuType2["SIDE"] = "sidebar";
36
38
  MenuType2["TOP_MENU"] = "top-menu";
37
39
  MenuType2["MIX"] = "mix";
40
+ MenuType2["MIX_SIDEBAR"] = "mix-sidebar";
38
41
  return MenuType2;
39
42
  })(MenuType || {});
40
43
  var MenuMode = /* @__PURE__ */ ((MenuMode2) => {
@@ -92,7 +95,8 @@ const defaultThemeConf = {
92
95
  menuWidth: 240,
93
96
  trigger: true,
94
97
  type: MenuType.SIDE,
95
- mode: MenuMode.INLINE
98
+ mode: MenuMode.INLINE,
99
+ mixSideTrigger: "hover"
96
100
  },
97
101
  footerOptions: {
98
102
  show: false,
@@ -113,7 +117,8 @@ const useThemeStore = defineStore({
113
117
  id: "dt-theme",
114
118
  state: () => ({
115
119
  themeConf: DtCache.getLocal(CacheKey.THEME) ?? defaultThemeConf,
116
- pageLoading: false
120
+ pageLoading: false,
121
+ mixSiderHasSubMenu: false
117
122
  }),
118
123
  getters: {
119
124
  getThemeConf() {
@@ -133,6 +138,9 @@ const useThemeStore = defineStore({
133
138
  },
134
139
  getPageLoading() {
135
140
  return this.pageLoading;
141
+ },
142
+ getMixSiderIsHasMenu() {
143
+ return this.mixSiderHasSubMenu;
136
144
  }
137
145
  },
138
146
  actions: {
@@ -140,6 +148,9 @@ const useThemeStore = defineStore({
140
148
  let newThemeConf = deepMerge(this.themeConf, options);
141
149
  this.themeConf = deepMerge(defaultThemeConf, newThemeConf);
142
150
  DtCache.setLocal(CacheKey.THEME, this.themeConf);
151
+ },
152
+ setMixSiderIsHasMenu(val) {
153
+ this.mixSiderHasSubMenu = val;
143
154
  }
144
155
  }
145
156
  });
@@ -295,8 +306,18 @@ function useMenu() {
295
306
  const getIsMixMode = computed(() => {
296
307
  return unref(getMenuMode) === MenuMode.INLINE && unref(getMenuType) === MenuType.MIX;
297
308
  });
298
- const getMenuWidth = computed(() => unref(getIsMixMode) ? Number(getMenuConf.menuWidth) - 40 : getMenuConf.menuWidth);
299
- const getLogoWidth = computed(() => getMenuConf.menuWidth);
309
+ const getIsMixSidebar = computed(() => unref(getMenuType) === MenuType.MIX_SIDEBAR);
310
+ const getMenuWidth = computed(() => {
311
+ if (unref(getIsMixMode)) {
312
+ return Number(getMenuConf.menuWidth) - 40;
313
+ } else if (unref(getIsMixSidebar)) {
314
+ return Number(getMenuConf.menuWidth) - 10;
315
+ } else {
316
+ return Number(getMenuConf.menuWidth);
317
+ }
318
+ });
319
+ const getMixSideTrigger = computed(() => getMenuConf.mixSideTrigger);
320
+ const getLogoWidth = computed(() => unref(getIsMixSidebar) ? "80px" : getMenuConf.menuWidth);
300
321
  const getMenuType = computed(() => getMenuConf.type);
301
322
  const getIsTopMenu = computed(() => unref(getMenuType) === MenuType.TOP_MENU);
302
323
  const getMenuMode = computed(() => getMenuConf.mode);
@@ -338,7 +359,9 @@ function useMenu() {
338
359
  getRealWidth,
339
360
  getCalcContentWidth,
340
361
  getIsMixMode,
362
+ getIsMixSidebar,
341
363
  getCanDrag,
364
+ getMixSideTrigger,
342
365
  toggleCollapsed,
343
366
  setThemeStore
344
367
  };
@@ -347,12 +370,14 @@ function useMultipleTab() {
347
370
  const { getRouteReuseConf } = useThemeStore();
348
371
  const getShowMultipleTab = computed(() => getRouteReuseConf.show);
349
372
  const getShowQuick = computed(() => getRouteReuseConf.showQuick);
373
+ const getMultipleTabPosIsTop = computed(() => getRouteReuseConf.position === "top");
350
374
  const getShowRedo = computed(() => getRouteReuseConf.showRedo);
351
375
  const getCanCache = computed(() => getRouteReuseConf.cache);
352
376
  const getCanDrag = computed(() => getRouteReuseConf.canDrag);
353
377
  return {
354
378
  getShowMultipleTab,
355
379
  getShowQuick,
380
+ getMultipleTabPosIsTop,
356
381
  getShowRedo,
357
382
  getCanCache,
358
383
  getCanDrag
@@ -371,12 +396,12 @@ function useHeader() {
371
396
  getMenuMode,
372
397
  getSplit,
373
398
  getIsTopMenu,
374
- getIsMixMode
399
+ getIsMixSidebar
375
400
  } = useMenu();
376
- const { getShowMultipleTab } = useMultipleTab();
401
+ const { getShowMultipleTab, getMultipleTabPosIsTop } = useMultipleTab();
377
402
  const getHeaderTheme = computed(() => getHeaderConf.theme);
378
403
  const getFixed = computed(() => getHeaderConf.fixed);
379
- const getShowHeaderLogo = computed(() => unref(getShowLogo) && !unref(getIsSidebarType));
404
+ const getShowHeaderLogo = computed(() => unref(getShowLogo) && !unref(getIsSidebarType) && !unref(getIsMixSidebar));
380
405
  const getShowSearch = computed(() => getHeaderConf.showSearch);
381
406
  const getShowHeaderTrigger = computed(() => {
382
407
  if (unref(getMenuType) === MenuType.TOP_MENU || !unref(getShowMenu) || unref(getMenuHidden)) {
@@ -394,19 +419,19 @@ function useHeader() {
394
419
  const getShowLocale = computed(() => getHeaderConf.showLocaleSwitch);
395
420
  const getShowSettingTheme = computed(() => getHeaderConf.showSettingTheme);
396
421
  const getShowFullHeaderRef = computed(() => {
397
- return !unref(getIsSidebarType) && !unref(getIsTopMenu);
422
+ return !unref(getIsSidebarType) && !unref(getIsMixSidebar) && !unref(getIsTopMenu);
398
423
  });
399
424
  const getHeaderHeight = computed(() => {
400
425
  let height = 0;
401
426
  height += HEADER_HEIGHT;
402
- if (unref(getShowMultipleTab) && !unref(getSplit)) {
427
+ if (unref(getShowMultipleTab) && !unref(getSplit) && !unref(getMultipleTabPosIsTop)) {
403
428
  height += TABS_HEIGHT;
404
429
  }
405
430
  return height;
406
431
  });
407
432
  const getTabsHeight = computed(() => TABS_HEIGHT);
408
433
  const getShowInsetHeaderRef = computed(() => {
409
- return unref(getIsSidebarType) || unref(getIsTopMenu);
434
+ return unref(getIsSidebarType) || unref(getIsTopMenu) || unref(getIsMixSidebar);
410
435
  });
411
436
  const getShowBackToTop = computed(() => getHeaderConf.showBackToTop);
412
437
  const getIsZH = computed(() => {
@@ -502,6 +527,26 @@ function getFilterMenu(filter = "", flag = false) {
502
527
  getTargetMenus(DtCache.getLocal(CacheKey.MENUS)?.children);
503
528
  return _menus;
504
529
  }
530
+ function getParentTreeByPath(path) {
531
+ const _menus = DtCache.getLocal(CacheKey.MENUS)?.children || [];
532
+ let routes = [];
533
+ let getParentByPath = (menu, path2 = "") => {
534
+ if (menu.children && menu.children.length) {
535
+ menu.children.forEach((subMenu) => {
536
+ subMenu.parentMenus = [...menu.parentMenus].concat([subMenu]);
537
+ getParentByPath(subMenu, path2);
538
+ });
539
+ }
540
+ if (menu.url === path2) {
541
+ routes = menu.parentMenus;
542
+ }
543
+ };
544
+ _menus.forEach((menu) => {
545
+ menu.parentMenus = [menu];
546
+ getParentByPath(menu, path);
547
+ });
548
+ return routes.length ? routes[0] : { id: null, children: [], icon: "", label: "" };
549
+ }
505
550
  function useOpenKeys(menuState, menus, type) {
506
551
  async function setOpenKeys(path) {
507
552
  if (type === MenuType.TOP_MENU)
@@ -597,7 +642,7 @@ function useDragLine(siderRef, dragBarRef) {
597
642
  };
598
643
  }
599
644
  }
600
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
645
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
601
646
  __name: "back-top",
602
647
  setup(__props) {
603
648
  const getTarget = () => document.getElementById("dt-layout-content");
@@ -612,236 +657,330 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
612
657
  };
613
658
  }
614
659
  });
615
- const _sfc_main$x = /* @__PURE__ */ defineComponent({
660
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
616
661
  __name: "index",
617
662
  setup(__props) {
618
663
  return (_ctx, _cache) => {
619
- return openBlock(), createBlock(_sfc_main$y);
664
+ return openBlock(), createBlock(_sfc_main$z);
620
665
  };
621
666
  }
622
667
  });
623
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
624
- __name: "fullscreen",
668
+ const _hoisted_1$i = /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-autorenew" }, null, -1);
669
+ const _hoisted_2$9 = [
670
+ _hoisted_1$i
671
+ ];
672
+ const _sfc_main$x = /* @__PURE__ */ defineComponent({
673
+ __name: "TabRedo",
625
674
  setup(__props) {
626
- const { toggle, isFullscreen } = useFullscreen();
675
+ const tabStore = useRouteReuseStore();
676
+ const router = useRouter();
677
+ function handleRedo() {
678
+ tabStore.refreshPage(router);
679
+ }
627
680
  return (_ctx, _cache) => {
628
681
  return openBlock(), createElementBlock("span", {
629
- class: "dt_header_icon text-lg text-gray-800 cursor-pointer px-3 hover:bg-gray-500 hover:bg-opacity-50 transition-all duration-300",
630
- onClick: _cache[0] || (_cache[0] = (...args) => unref(toggle) && unref(toggle)(...args))
631
- }, [
632
- createElementVNode("i", {
633
- class: normalizeClass(["i block", !unref(isFullscreen) ? "ic:baseline-fullscreen" : "ic:baseline-fullscreen-exit"])
634
- }, null, 2)
635
- ]);
682
+ onClick: handleRedo,
683
+ class: "inline-block w-9 h-9 leading-9 -mt-0.5 text-zinc-600 text-center cursor-pointer border-l border-zinc-300 hover:text-zinc-900"
684
+ }, _hoisted_2$9);
636
685
  };
637
686
  }
638
687
  });
639
- const _hoisted_1$i = ["src"];
640
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
641
- __name: "logo",
642
- props: {
643
- theme: { type: String, validator: (v) => ["light", "dark"].includes(v) },
644
- showTitle: { type: Boolean, default: true }
645
- },
646
- setup(__props) {
647
- const props = __props;
688
+ function useTabDropdown() {
689
+ const router = useRouter();
690
+ const { currentRoute } = router;
691
+ const tabStore = useRouteReuseStore();
692
+ const state = reactive({
693
+ current: null,
694
+ currentIndex: 0
695
+ });
696
+ const getDropMenuList = computed(() => {
648
697
  const { t } = useI18n("UI");
649
- const title = t("COMPANY_NAME");
650
- const { getLogoWidth } = useMenu();
651
- const getLogoClass = computed(() => {
652
- return `${props.theme} dt-logo px-2.5 text-sm flex items-center pl-2.5 cursor-pointer text-center transition-all duration-200 ease-in-out `;
653
- });
654
- return (_ctx, _cache) => {
655
- return openBlock(), createElementBlock("div", {
656
- class: normalizeClass(unref(getLogoClass)),
657
- style: normalizeStyle({
658
- minWidth: `${unref(getLogoWidth)}px`
659
- })
660
- }, [
661
- createElementVNode("img", { src: "/node_modules/@dt-frames/ui/es/assets/imgs/logo/logo.png" }, null, 8, _hoisted_1$i),
662
- withDirectives(createElementVNode("div", { class: "dt-logo__title text-base font-bold transition-all duration-500 pl-3" }, toDisplayString(unref(title)), 513), [
663
- [vShow, __props.showTitle]
664
- ])
665
- ], 6);
666
- };
698
+ const { path, meta } = unref(currentRoute);
699
+ const curItem = state.current;
700
+ const isCurItem = curItem ? curItem.path === path : false;
701
+ const index = state.currentIndex;
702
+ const closeLeftDisabled = index === 0 || !isCurItem;
703
+ const disabled = tabStore.getTabList.length === 1;
704
+ const closeRightDisabled = !isCurItem || index === tabStore.getTabList.length - 1 && tabStore.getLastDragEndIndex >= 0;
705
+ const dropMenuList = [
706
+ {
707
+ icon: "ic:baseline-close",
708
+ text: t("CLOSE_CURRENT_TAG"),
709
+ onClick: () => tabStore.closeTab(path, router),
710
+ disabled: !!meta?.affix || disabled,
711
+ divider: true
712
+ },
713
+ {
714
+ icon: "mdi:arrow-collapse-left",
715
+ text: t("CLOSE_LEFT_TAGS"),
716
+ onClick: () => tabStore.closeLeftTabs(path),
717
+ disabled: closeLeftDisabled,
718
+ divider: false
719
+ },
720
+ {
721
+ icon: "mdi:arrow-collapse-right",
722
+ text: t("CLOSE_RIGHT_TAGS"),
723
+ onClick: () => tabStore.closeRightTabs(path),
724
+ disabled: closeRightDisabled,
725
+ divider: true
726
+ },
727
+ {
728
+ icon: "ic:baseline-sync-alt",
729
+ text: t("CLOSE_OTHER_TAGS"),
730
+ onClick: () => tabStore.closeOtherTabs(path),
731
+ disabled: disabled || !isCurItem
732
+ },
733
+ {
734
+ icon: "ic:baseline-horizontal-rule",
735
+ text: t("CLOSE_ALL_TAGE"),
736
+ onClick: () => tabStore.closeAllTab(currentRoute, router),
737
+ disabled
738
+ }
739
+ ];
740
+ return dropMenuList;
741
+ });
742
+ function handleContext(e) {
743
+ e?.preventDefault();
744
+ const { path } = unref(currentRoute);
745
+ const index = tabStore.getTabList.findIndex((tab) => tab.path === path);
746
+ state.current = unref(currentRoute);
747
+ state.currentIndex = index;
667
748
  }
668
- });
669
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
670
- __name: "trigger",
671
- props: { theme: String },
672
- setup(__props) {
673
- const props = __props;
674
- const { getCollapsed, toggleCollapsed } = useMenu();
675
- return (_ctx, _cache) => {
676
- return openBlock(), createElementBlock("div", {
677
- class: normalizeClass(["flex w-12 h-full cursor-pointer items-center justify-center", props.theme]),
678
- onClick: _cache[0] || (_cache[0] = (...args) => unref(toggleCollapsed) && unref(toggleCollapsed)(...args))
679
- }, [
680
- createElementVNode("i", {
681
- class: normalizeClass(["i leading-none", unref(getCollapsed) ? "ic:baseline-format-indent-increase" : "ic:baseline-format-indent-decrease"])
682
- }, null, 2)
683
- ], 2);
684
- };
749
+ function handleMenuEvent(item) {
750
+ item.onClick?.();
685
751
  }
686
- });
687
- const _hoisted_1$h = { class: "dt-breadcrumb" };
688
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
689
- __name: "bread-crumb",
752
+ return {
753
+ getDropMenuList,
754
+ handleContext,
755
+ handleMenuEvent
756
+ };
757
+ }
758
+ const _hoisted_1$h = /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-keyboard-arrow-down" }, null, -1);
759
+ const _hoisted_2$8 = [
760
+ _hoisted_1$h
761
+ ];
762
+ const _hoisted_3$6 = { class: "text-13" };
763
+ const _sfc_main$w = /* @__PURE__ */ defineComponent({
764
+ __name: "TabContent",
690
765
  setup(__props) {
691
- const { getIsZH } = useHeader();
692
- let routes = ref([]);
693
- const { currentRoute = null } = useRouter();
694
- watchEffect(() => {
695
- if (!currentRoute || currentRoute.value.path === "/")
696
- return;
697
- routes.value = getBreadCrumb(currentRoute.value.path);
698
- });
766
+ const { getDropMenuList, handleContext, handleMenuEvent } = useTabDropdown();
699
767
  return (_ctx, _cache) => {
700
- const _component_ABreadcrumb = Breadcrumb;
701
- return openBlock(), createElementBlock("div", _hoisted_1$h, [
702
- createVNode(_component_ABreadcrumb, { routes: unref(routes) }, {
703
- itemRender: withCtx(({ route }) => [
704
- createElementVNode("span", null, toDisplayString((unref(getIsZH) ? route.label : route.enLabel) || route.meta?.title), 1)
705
- ]),
706
- _: 1
707
- }, 8, ["routes"])
708
- ]);
768
+ const _component_AMenuItem = MenuItem;
769
+ const _component_AMenuDivider = MenuDivider;
770
+ const _component_AMenu = Menu;
771
+ const _component_ADropdown = Dropdown;
772
+ return openBlock(), createBlock(_component_ADropdown, {
773
+ placement: "bottomRight",
774
+ trigger: ["click"],
775
+ overlayClassName: "dt-reuse-tabs__dropdown"
776
+ }, {
777
+ overlay: withCtx(() => [
778
+ createVNode(_component_AMenu, null, {
779
+ default: withCtx(() => [
780
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getDropMenuList), (item, index) => {
781
+ return openBlock(), createElementBlock(Fragment, { key: index }, [
782
+ createVNode(_component_AMenuItem, {
783
+ onClick: ($event) => unref(handleMenuEvent)(item),
784
+ disabled: item.disabled
785
+ }, {
786
+ default: withCtx(() => [
787
+ createElementVNode("i", {
788
+ class: normalizeClass(["i pr-4", item.icon])
789
+ }, null, 2),
790
+ createElementVNode("span", _hoisted_3$6, toDisplayString(item.text), 1)
791
+ ]),
792
+ _: 2
793
+ }, 1032, ["onClick", "disabled"]),
794
+ item.divider ? (openBlock(), createBlock(_component_AMenuDivider, {
795
+ key: `d-${index}`
796
+ })) : createCommentVNode("", true)
797
+ ], 64);
798
+ }), 128))
799
+ ]),
800
+ _: 1
801
+ })
802
+ ]),
803
+ default: withCtx(() => [
804
+ createElementVNode("span", {
805
+ onClick: _cache[0] || (_cache[0] = (...args) => unref(handleContext) && unref(handleContext)(...args)),
806
+ class: "inline-block w-9 h-9 leading-9 -mt-0.5 text-zinc-600 text-center cursor-pointer border-l border-zinc-300 hover:text-zinc-900"
807
+ }, _hoisted_2$8)
808
+ ]),
809
+ _: 1
810
+ });
709
811
  };
710
812
  }
711
813
  });
712
- const _hoisted_1$g = {
713
- key: 0,
714
- class: "dt-menu-filter h-7 pr-2"
715
- };
716
- const _hoisted_2$8 = ["onClick"];
717
- const _hoisted_3$5 = {
718
- key: 0,
719
- class: "flex items-center justify-center h-full overflow-hidden"
720
- };
721
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
722
- __name: "menu-filter",
723
- setup(__props) {
724
- const { t } = useI18n("UI");
725
- const menuList = ref([]);
726
- const router = useRouter();
727
- const filter = ref("");
728
- const { getShowSearch, getIsZH } = useHeader();
729
- const isUseDef = computed(() => {
730
- return isBoolean(getShowSearch.value);
731
- });
732
- function visibleChange(e) {
733
- if (e) {
734
- filterMenu();
735
- } else {
736
- filter.value = null;
814
+ function initAffixTabs() {
815
+ const affixList = ref([]);
816
+ const tabStore = useRouteReuseStore();
817
+ const router = useRouter();
818
+ const filterAffixTabs = (routes = []) => {
819
+ return routes && routes.reduce((tabs, route) => {
820
+ if (route.meta && route.meta.affix) {
821
+ tabs.push(toRaw(route));
737
822
  }
738
- }
739
- function filterMenu() {
740
- menuList.value = getFilterMenu(filter.value, true);
741
- }
742
- function navigation(url) {
743
- router.push(url);
744
- setTimeout(() => {
745
- filter.value = "";
746
- menuList.value = [];
823
+ return tabs;
824
+ }, []);
825
+ };
826
+ const addAffixTabs = () => {
827
+ const affixTabs = filterAffixTabs(router.getRoutes());
828
+ affixList.value = affixTabs;
829
+ for (const tab of affixTabs) {
830
+ tabStore.addTab({
831
+ meta: tab.meta,
832
+ name: tab.name,
833
+ path: tab.path
834
+ });
835
+ }
836
+ };
837
+ let isAddAffix = false;
838
+ if (!isAddAffix) {
839
+ addAffixTabs();
840
+ isAddAffix = true;
841
+ }
842
+ return affixList.value.map((item) => item.meta?.title).filter(Boolean);
843
+ }
844
+ function useSortable(el, options) {
845
+ function initSortable() {
846
+ nextTick(async () => {
847
+ if (!el)
848
+ return;
849
+ const Sortable = (await import("sortablejs")).default;
850
+ Sortable.create(unref(el), {
851
+ animation: 500,
852
+ delay: 400,
853
+ delayOnTouchOnly: true,
854
+ ...options
747
855
  });
856
+ });
857
+ }
858
+ return { initSortable };
859
+ }
860
+ function useTabsDrag(affixList) {
861
+ const tabStore = useRouteReuseStore();
862
+ const { getCanDrag } = useMultipleTab();
863
+ nextTick(() => {
864
+ if (!unref(getCanDrag))
865
+ return;
866
+ const el = document.querySelectorAll(`.dt-reuse-tabs .ant-tabs-nav-list`)?.[0];
867
+ const { initSortable } = useSortable(el, {
868
+ filter: (e) => {
869
+ const text = e?.target?.innerText;
870
+ if (!text)
871
+ return false;
872
+ return affixList.includes(text);
873
+ },
874
+ onEnd: (evt) => {
875
+ const { oldIndex, newIndex } = evt;
876
+ if (isNullAndUnDef(oldIndex) || isNullAndUnDef(newIndex) || oldIndex === newIndex)
877
+ return;
878
+ tabStore.sortTabs(oldIndex, newIndex);
879
+ }
880
+ });
881
+ initSortable();
882
+ });
883
+ }
884
+ const _hoisted_1$g = { class: "dt-reuse-tabs leading-8 border-b border-solid border-gray-200" };
885
+ const _sfc_main$v = /* @__PURE__ */ defineComponent({
886
+ __name: "index",
887
+ setup(__props) {
888
+ const { t } = useI18n("UI");
889
+ const router = useRouter();
890
+ const go = useGo(router);
891
+ const tabStore = useRouteReuseStore();
892
+ const { getShowQuick, getShowRedo } = useMultipleTab();
893
+ const menuLabelMap = menuList2Map();
894
+ const activeKeyRef = ref(null);
895
+ const getTabsState = computed(() => {
896
+ return tabStore.getTabList.filter((item) => !item.meta?.hideTab);
897
+ });
898
+ const unClose = computed(() => unref(getTabsState).length === 1);
899
+ function handleChange(activeKey) {
900
+ activeKeyRef.value = activeKey;
901
+ go(activeKey);
748
902
  }
903
+ function handleEdit(targetKey) {
904
+ if (unref(unClose))
905
+ return;
906
+ tabStore.closeTab(targetKey, router);
907
+ }
908
+ const affixTextList = initAffixTabs();
909
+ useTabsDrag(affixTextList);
910
+ watch(
911
+ () => router.currentRoute.value.path,
912
+ (v) => {
913
+ if (v === "/" || v === "/login")
914
+ return;
915
+ const { meta = {} } = unref(router.currentRoute);
916
+ const { hideTab = false } = meta;
917
+ if (activeKeyRef.value !== v) {
918
+ activeKeyRef.value = v;
919
+ }
920
+ if (!hideTab) {
921
+ tabStore.addTab(unref(router.currentRoute));
922
+ }
923
+ },
924
+ {
925
+ immediate: true
926
+ }
927
+ );
749
928
  return (_ctx, _cache) => {
750
- const _component_AEmpty = Empty;
751
- const _component_AInputSearch = InputSearch;
752
- const _component_APopover = Popover;
753
- return unref(isUseDef) ? (openBlock(), createElementBlock("div", _hoisted_1$g, [
754
- createVNode(_component_APopover, {
755
- placement: "bottom",
756
- overlayClassName: "dt-menu-filter__popover",
757
- trigger: "focus",
758
- onVisibleChange: visibleChange
759
- }, {
760
- content: withCtx(() => [
761
- (openBlock(true), createElementBlock(Fragment, null, renderList(menuList.value, (menu) => {
762
- return openBlock(), createElementBlock("p", {
763
- onClick: ($event) => navigation(menu.url),
764
- class: "px-5 leading-9 border-gray-200 border-dashed border-b m-0 cursor-pointer transition-all duration-300 text-13"
765
- }, toDisplayString(unref(getIsZH) ? menu.label : menu.enLabel), 9, _hoisted_2$8);
766
- }), 256)),
767
- !menuList.value.length ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
768
- createVNode(_component_AEmpty, {
769
- description: "\u6682\u65E0\u6570\u636E",
770
- imageStyle: { width: "100%" }
771
- })
772
- ])) : createCommentVNode("", true)
773
- ]),
929
+ const _component_ATabPane = TabPane;
930
+ const _component_ATabs = Tabs;
931
+ return openBlock(), createElementBlock("div", _hoisted_1$g, [
932
+ createVNode(_component_ATabs, {
933
+ type: "editable-card",
934
+ size: "small",
935
+ animated: false,
936
+ hideAdd: true,
937
+ tabBarGutter: 3,
938
+ activeKey: activeKeyRef.value,
939
+ onChange: handleChange,
940
+ onEdit: handleEdit,
941
+ class: "h-8"
942
+ }, createSlots({
774
943
  default: withCtx(() => [
775
- createVNode(_component_AInputSearch, {
776
- value: filter.value,
777
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => filter.value = $event),
778
- placeholder: unref(t)("FILTER_MORE"),
779
- onInput: filterMenu,
780
- size: unref(UiSize).SMALL
781
- }, null, 8, ["value", "placeholder", "size"])
944
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getTabsState), (item) => {
945
+ return openBlock(), createBlock(_component_ATabPane, {
946
+ key: item.query ? item.fullPath : item.path,
947
+ closable: !(item && item.meta && item.meta.affix)
948
+ }, {
949
+ tab: withCtx(() => [
950
+ createElementVNode("span", null, toDisplayString(unref(menuLabelMap).get(item.path) || unref(t)("UNKNOWN_ROUTE")), 1)
951
+ ]),
952
+ _: 2
953
+ }, 1032, ["closable"]);
954
+ }), 128))
782
955
  ]),
783
- _: 1
784
- })
785
- ])) : createCommentVNode("", true);
956
+ _: 2
957
+ }, [
958
+ unref(getShowRedo) || unref(getShowQuick) ? {
959
+ name: "rightExtra",
960
+ fn: withCtx(() => [
961
+ unref(getShowRedo) ? (openBlock(), createBlock(unref(_sfc_main$x), { key: 0 })) : createCommentVNode("", true),
962
+ unref(getShowQuick) ? (openBlock(), createBlock(unref(_sfc_main$w), { key: 1 })) : createCommentVNode("", true)
963
+ ]),
964
+ key: "0"
965
+ } : void 0
966
+ ]), 1032, ["activeKey"])
967
+ ]);
786
968
  };
787
969
  }
788
970
  });
789
- const _hoisted_1$f = { class: "lang m-0" };
790
- const _hoisted_2$7 = ["onClick"];
791
- const _hoisted_3$4 = {
792
- class: "pr-2",
793
- size: 16
794
- };
795
- const _hoisted_4$2 = /* @__PURE__ */ createElementVNode("span", { class: "dt_header_icon text-lg text-gray-800 cursor-pointer px-3 hover:bg-gray-500 hover:bg-opacity-50 transition-all duration-300" }, [
796
- /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-language" })
797
- ], -1);
798
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
799
- __name: "lang-picker",
800
- props: {
801
- reload: { type: Boolean }
802
- },
971
+ const _sfc_main$u = /* @__PURE__ */ defineComponent({
972
+ __name: "fullscreen",
803
973
  setup(__props) {
804
- const props = __props;
805
- const visible = ref(false);
806
- let currentLang = DtCache.getLocal(CacheKey.LOCALE);
807
- async function toggleLang(lang) {
808
- visible.value = false;
809
- if (lang !== currentLang) {
810
- currentLang = lang;
811
- await changeLocale(lang);
812
- props.reload && location.reload();
813
- }
814
- }
974
+ const { toggle, isFullscreen } = useFullscreen();
815
975
  return (_ctx, _cache) => {
816
- const _component_APopover = Popover;
817
- const _directive_icon = resolveDirective("icon");
818
- return openBlock(), createBlock(_component_APopover, {
819
- placement: "bottom",
820
- visible: visible.value,
821
- "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
822
- overlayClassName: "dt-lang-picker__popover",
823
- trigger: "click"
824
- }, {
825
- content: withCtx(() => [
826
- createElementVNode("ul", _hoisted_1$f, [
827
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(localeList), (it) => {
828
- return openBlock(), createElementBlock("li", {
829
- onClick: ($event) => toggleLang(it.event),
830
- class: normalizeClass(["px-4 my-1 leading-9 flex border-gray-200 cursor-pointer hover:bg-gray-100 transition-all duration-300 text-13", it.event === unref(currentLang) ? "active bg-gray-100" : ""])
831
- }, [
832
- withDirectives(createElementVNode("span", _hoisted_3$4, null, 512), [
833
- [_directive_icon, it.icon]
834
- ]),
835
- createElementVNode("span", null, toDisplayString(it.text), 1)
836
- ], 10, _hoisted_2$7);
837
- }), 256))
838
- ])
839
- ]),
840
- default: withCtx(() => [
841
- _hoisted_4$2
842
- ]),
843
- _: 1
844
- }, 8, ["visible"]);
976
+ return openBlock(), createElementBlock("span", {
977
+ class: "dt_header_icon text-lg text-gray-800 cursor-pointer px-3 hover:bg-gray-500 hover:bg-opacity-50 transition-all duration-300",
978
+ onClick: _cache[0] || (_cache[0] = (...args) => unref(toggle) && unref(toggle)(...args))
979
+ }, [
980
+ createElementVNode("i", {
981
+ class: normalizeClass(["i block", !unref(isFullscreen) ? "ic:baseline-fullscreen" : "ic:baseline-fullscreen-exit"])
982
+ }, null, 2)
983
+ ]);
845
984
  };
846
985
  }
847
986
  });
@@ -983,8 +1122,8 @@ const Bar = defineComponent({
983
1122
  );
984
1123
  }
985
1124
  });
986
- const _hoisted_1$e = { class: "scrollbar relative h-full overflow-hidden" };
987
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
1125
+ const _hoisted_1$f = { class: "scrollbar relative h-full overflow-hidden" };
1126
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
988
1127
  __name: "scroll-bar",
989
1128
  props: {
990
1129
  wrapClass: {
@@ -1053,7 +1192,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
1053
1192
  }
1054
1193
  });
1055
1194
  return (_ctx, _cache) => {
1056
- return openBlock(), createElementBlock("div", _hoisted_1$e, [
1195
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
1057
1196
  createElementVNode("div", {
1058
1197
  ref_key: "wrap",
1059
1198
  ref: wrap,
@@ -1086,12 +1225,12 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
1086
1225
  };
1087
1226
  }
1088
1227
  });
1089
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
1228
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
1090
1229
  __name: "scroll-container",
1091
1230
  setup(__props) {
1092
1231
  const scrollbarRef = ref(null);
1093
1232
  return (_ctx, _cache) => {
1094
- return openBlock(), createBlock(_sfc_main$q, mergeProps({
1233
+ return openBlock(), createBlock(_sfc_main$t, mergeProps({
1095
1234
  ref_key: "scrollbarRef",
1096
1235
  ref: scrollbarRef
1097
1236
  }, _ctx.$attrs, { class: "w-full h-full" }), {
@@ -1103,7 +1242,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
1103
1242
  };
1104
1243
  }
1105
1244
  });
1106
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
1245
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
1107
1246
  __name: "slot-container",
1108
1247
  props: {
1109
1248
  template: {
@@ -1127,18 +1266,234 @@ const withInstall = (comp) => {
1127
1266
  };
1128
1267
  return comp;
1129
1268
  };
1130
- const DtScrollContainer = withInstall(_sfc_main$p);
1131
- const DtSlotContainer = withInstall(_sfc_main$o);
1132
- const _hoisted_1$d = { class: "dt_header_icon text-lg text-gray-800 cursor-pointer px-3 hover:bg-gray-500 hover:bg-opacity-50 transition-all duration-300 relative" };
1133
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
1134
- __name: "notify",
1269
+ const DtScrollContainer = withInstall(_sfc_main$s);
1270
+ const DtSlotContainer = withInstall(_sfc_main$r);
1271
+ const logoUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAzfGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wNS0wNlQxMToyNzoyOCswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0xMC0yNFQxNDozMToxNiswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjEtMTAtMjRUMTQ6MzE6MTYrMDg6MDAiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NWU1YmFlNWUtOTQzOS1lYjQ4LWJiMjEtZjZjM2UwOWYxODM2IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZGU4M2YxYWYtODBkMS1kMTRlLTg5ZWMtNGE1MjUzNzFkZTcwIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTg1ODkwODQtMjkyYi01ODRiLTkzODAtNWJmY2E3NjJmYzk5Ij4gPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHJkZjpCYWc+IDxyZGY6bGk+MDBCQTBEMEExQ0M5RDAwNTMxNTlBMjBGRTcxOTA2RTg8L3JkZjpsaT4gPHJkZjpsaT4wMTQwNjdEM0ZDNjM5OTM3RTc4QkFCNDFBMzdCNzMwNTwvcmRmOmxpPiA8cmRmOmxpPjAyRDI2REY0MDMxREJFOUM5N0Q5Mzg1RjE5QTUwMUQ0PC9yZGY6bGk+IDxyZGY6bGk+MDcxNDVGQzc5RjkxODMwQjNGRUNFOUZCODNEMDZDN0M8L3JkZjpsaT4gPHJkZjpsaT4wRDgyMkI0MThFM0E2RjZCMjBDMEM2NjkwOUI0QTc5QTwvcmRmOmxpPiA8cmRmOmxpPjBGOUM0NTJBMkZGQTE3QzU4RTQ5MzVFQUU3RUJEQzI1PC9yZGY6bGk+IDxyZGY6bGk+MTY2N0I2OTg3MUJGRjQ4MThEODU5RENGMjIzOTUyMjg8L3JkZjpsaT4gPHJkZjpsaT4xOTNFMUQ2M0ExRDJEN0VBN0U0MTFBMzlBQzNENkJBMzwvcmRmOmxpPiA8cmRmOmxpPjIwNjY1MENBM0RBNUM2OURFQjZCRjAyMTQ3MEUzM0Y1PC9yZGY6bGk+IDxyZGY6bGk+MjE1QzM3NDMwNUM1MUVDQ0FENUM1RDUzQThCMEMwMkI8L3JkZjpsaT4gPHJkZjpsaT4yMThDREMzM0Y0OTE1NTMzQzRFQjMwRUIzQTU3MjM1RjwvcmRmOmxpPiA8cmRmOmxpPjI0N0QxRUVDRThCMjkzOTJCNzQ3RjVCMzQ3Rjc5RDRGPC9yZGY6bGk+IDxyZGY6bGk+MkVDOURBNDM2NEQ2RTBCRjYwNzExRDJFOUY1OEM4ODg8L3JkZjpsaT4gPHJkZjpsaT4zNzEyQTgyQjE3NEM0OUMwMDg2MTUxMEJBODEzMDlBOTwvcmRmOmxpPiA8cmRmOmxpPjNEQjIwQTEwQzQyQjZGMkZEMEMwQkYyNUZDNEU5NzFFPC9yZGY6bGk+IDxyZGY6bGk+NDFDMTBEM0IzRUFBQTUwQjI5ODRBNzY1MEM5QzQzMTc8L3JkZjpsaT4gPHJkZjpsaT40OTQxN0MwQjQxMDgxRkJDRDQxNjAwQTM1QUE0MkEwMzwvcmRmOmxpPiA8cmRmOmxpPjRCQUVBREUyQjhFMTk4MTA2MkM5RjQzMTFCREI5Njg5PC9yZGY6bGk+IDxyZGY6bGk+NEU5NTUxOEI4OUI2MjEwOTRFNDdGMEU3MUQ4MUYxRjQ8L3JkZjpsaT4gPHJkZjpsaT41NDlEOUJFODJBRjc3NzVFOTMzRDc3QjJDOEY4N0QwMDwvcmRmOmxpPiA8cmRmOmxpPjU1NTQ4QzhDN0VEODdCRDI2MUI1RTNDRTBCQzdGNUM3PC9yZGY6bGk+IDxyZGY6bGk+NTg0RjVFMjNEMEFFMDA0NUQ4OENBM0I3MTUxNDQyODk8L3JkZjpsaT4gPHJkZjpsaT41OUVDMTdCMzk5Q0Y3QzFDQkJEN0FBMDUwODYyMzY1OTwvcmRmOmxpPiA8cmRmOmxpPjVDRUFCMzA0QUVFMTUyMzVGMDM3Mjg1NTdDMjFCQTBBPC9yZGY6bGk+IDxyZGY6bGk+NUUwRkI3MDI4QjU5NDlBNEFDRkU0NjIwNjRCQjVFNTc8L3JkZjpsaT4gPHJkZjpsaT42NzlCNDI1OEZGQjVDQTZBQUM2MDgzQkJBQTNFMDYwRTwvcmRmOmxpPiA8cmRmOmxpPjZDMDkzMzdDRjQxRTU3NTQ2NTFFMTJCNkRDMTU5OTcyPC9yZGY6bGk+IDxyZGY6bGk+NzU1RTZBRjM1MzM3ODA5MkM3NzlCNDE1MDAwRDg0RkE8L3JkZjpsaT4gPHJkZjpsaT43OUJDMjI2N0QxODVCOTM4MTA4RDQ2N0ZBNEI0QzVBOTwvcmRmOmxpPiA8cmRmOmxpPjdDMTMzQkQ1NDA3MzQ3RTVBREJFMzJBNDlCODIzRUFEPC9yZGY6bGk+IDxyZGY6bGk+ODE2QzZGQUI0NTQ4NzMyNjU5NTc2NkNCNEYzNDFEQUQ8L3JkZjpsaT4gPHJkZjpsaT44MzZFNkZCNjlEMDk4Njg5RDc4RDdEQjlEQjhDREExRTwvcmRmOmxpPiA8cmRmOmxpPjg1QTM5MUEyMkM2NEY1Q0IwQTM3QTg2MzZFNTRGOUY2PC9yZGY6bGk+IDxyZGY6bGk+OEE0QkZEOTQzQUZGOTlEMDdEREU1MUYwMDFDNEE5REE8L3JkZjpsaT4gPHJkZjpsaT45NEMzMkU2QTE1MTdCNzBBNDM5ODVBQTc2NTM0NEI2OTwvcmRmOmxpPiA8cmRmOmxpPkFCMzlENjBENTExNEVFOEE4RkJBREUyRTkyMEM0NUExPC9yZGY6bGk+IDxyZGY6bGk+QjIwMUZGOTM3QzYwNzkxMEY4MUY5REJERkNDRkZGRTk8L3JkZjpsaT4gPHJkZjpsaT5CRTYxMzMxREQ1MkI2MjlFNjgwNUVCMzQ3MkRFRTJEMjwvcmRmOmxpPiA8cmRmOmxpPkJFQzM4NTRBODA1RkQ1NkM3RThEMkUxN0M0NzA5ODkwPC9yZGY6bGk+IDxyZGY6bGk+Qzg5NkI0OTZGMTgyREU1MTgzNTg3MEIwOTM0MUQ4RTg8L3JkZjpsaT4gPHJkZjpsaT5DQkJEN0U5OEM1MEI0RTE0RDA0MkNFNTMzQUE1QTgyMDwvcmRmOmxpPiA8cmRmOmxpPkQ5NjQzNUIwNkRFNTQ2OTg4MDUyMjVDNERBRkUzOEIyPC9yZGY6bGk+IDxyZGY6bGk+RTJCNTc3NDY4ODE4NEI2Mzk4OTE0RTI4MkQ5RThFODQ8L3JkZjpsaT4gPHJkZjpsaT5FNDJCMEFDNjg1OTAyMTcyQzIxNjEyQkJGMjFGRjg0QjwvcmRmOmxpPiA8cmRmOmxpPkU1QjQzNTBCREVFMTQ1NUMxM0UxNTU1NEM2MEY2QjQ0PC9yZGY6bGk+IDxyZGY6bGk+RUI3NzhBRjNENDVERUNBQkFCRUEwRkZDQTg4QTEyNDM8L3JkZjpsaT4gPHJkZjpsaT5GNTY3RjdBNDRCNTJFQUMwNTYxNkVBODdGRjlEMzMxQzwvcmRmOmxpPiA8cmRmOmxpPkY1RjgzQTQyMzI4N0E0MUUyMTM5ODdDNTRERjhFOUQ3PC9yZGY6bGk+IDxyZGY6bGk+RkVBQkZDQTQyQzY1N0ZFN0Y1MjEzOEQ0NkQyRTQ2MjM8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MDQ3NzM4NzYtZTg2Zi0xMWU3LTg4MmMtYWRiZmQ5NWE3NjU0PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjA4ZjFmZmI5LWM1MWUtMTE3OS1iNTJlLWFkNGFiZjVjNmRhZDwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDowYjM2MmY4Yi1hY2I2LTExZTUtOGZmZS1lMzQ2MTgxMGQzZTk8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MTAwMDFlZTUtZGVmNy03MjRiLTg3OTctZDg4YjE0ZWI3YjExPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjE0Y2YxMGI4LWNlOTItMTE3OS04ZDJhLWIzNjcyY2QwOWI2MzwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDoxNzM4ZDA5ZS05YTk4LTExZTUtOTE3ZS1kNGExOTRhYWE2N2U8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MWZkODY3YmItYzJlOC0xMTc5LWFkOTYtZjBjODUzNzZkYjFkPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjIxMzMzNjE3LWNjYWItMDg0OS04YWFmLWE0MzQwY2ZiZGVmZjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDoyNGI4YzllYS05MDU3LTExZTYtODBkYi04ZTk5ZjZiZDFiNTY8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MmRmNzZkN2YtOWMyMy0xMWU1LWJlOTUtZDNiYjFlNDBhYmZhPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjM0NDUxNTQyLTlhYjQtMTFlNS05MTdlLWQ0YTE5NGFhYTY3ZTwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDozNTU4NmExZi00M2FiLTExNzktYTg2Ny1hMmFiMmIxYjU2OTY8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6Mzg2ZDAwYzAtNmRjMi0xMTc3LWFiNjUtYTIwYWMzNDdjYzI2PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjNhNDdmMTQxLWJlNmItZjE0My1hMzM3LTM4ZmIwZGQzMzljYjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDozYjk1ZmY2Zi1hYjAwLTExNzktOGEyYS1lYmY4MzMyOTc0NTc8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6NDVjOGUzYjMtYjg5Mi00ZTQwLTg3YjUtYWIwNTk0NmFjMDE2PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQ4YTI0ZDkyLWUyMzMtMjM0NC1iNTQ1LWE3OTA3MDY1MjJiMzwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo0YmNiZWZkMS04MTBlLTJkNGEtYTA4NS04MGVmYmMwZjJiODA8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6NTUzNTRjMmEtYzMyOC0xMTc5LWFkOTYtZjBjODUzNzZkYjFkPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjcxODQ0ZWUwLWMwY2MtMTE3OS05ODliLWNlNWRkM2Y3NmNhYjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo3MzFhNjYwZC1jY2Q4LWNiNDQtOWZkYS1jOTY1NjAwYTlmOTI8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6NzdiYjEwZmYtYjI4ZC0xMWU4LThiN2UtZjE3MTY4ZDMxZTljPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjgyNGIxODI5LTliYTUtMTFlNS1hZmM2LTg3NjcxZTA3ZTBjNDwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4MzQ2YzY1NC1kMzM0LTEwNDMtYjZjNS1kYTM3N2QwYWIyNTg8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6OTgyODRiN2UtOWIzNi0xMWU1LTkxN2UtZDRhMTk0YWFhNjdlPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjlkNDM5Y2UwLWIyM2UtMTFlNS05MTYxLWY5ZDdjYzE1OTQzMjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo5ZWQ1MWIzNS1hYzM2LTExNzktYmE0ZS1kZjIxY2JlNzI1Yjk8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6YTE2NTQzNjYtODg0ZS0xMWU1LThjOTAtYzY5MjYzYzdiOTYxPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmEzMzUzZGI3LWE4MDItOTc0Mi1iZmYzLTI0Mzk4YjY5OTI5ZTwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDphZDM0MWU1Ni1iMjczLTE2NDktODY2ZC0xN2E5MjcxZjExODg8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6YmExNjlmMjMtOTA1OC0xMWU2LTgwZGItOGU5OWY2YmQxYjU2PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmJlNjYzNjRhLWUwM2YtNWU0OS05YmY0LWM0YjIwMTc3NTliNTwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpiZTY2YzcxYy1hYTQ1LTExZTUtYmY4Yi1hZWNlNTk4MWMzNmQ8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6Yzc5Yzc3YzYtOWMxOS0xMWU1LWJlOTUtZDNiYjFlNDBhYmZhPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmNjZDJjZGNhLTQ2OWUtMTE3OS1iYzUzLWRmNDJmNjRkYjZhYzwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkZDE2YWYyNi1iNGI2LTExNzktODkwYi05YjY5NDhiZDgzZTk8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTNmZmVlNjgtM2MxMi03MzQzLWE1NTItOTAxYmFkMTViOGMwPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmVhOGYyYzNkLTkwNTMtMTFlNi04MGRiLThlOTlmNmJkMWI1NjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmMTc1NDg3ZC05YjcwLTExZTUtYWU3Mi1lYmI4OWUwZmQwZWY8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6Zjg4Y2M5NGQtYzcwZS0xMTc5LWJjNzQtYzljNmY5NjcyYTQ0PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmY5MTdmNjM5LTkwNGUtMTFlNi05MThjLWZmZjgyYjQxY2YyZTwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmYWU1ZDczNy05YTIzLTExZTUtOTJlNC04YzM5MzI2N2QwMWM8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjAwMWU2NDI1LWI5ZTgtMWQ0My1hY2EzLWQwMzM3MDM4NGFjYzwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTgwODNBMzJBMUI2ODVERTQ8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjAyZDdmMjgzLTE0ZTUtNDAyOS1hZWZhLThmMGIwOTk0NWQyMDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MDUyN2I1ODctZGRiZi1jNzQ2LWI3YzYtZGQ5MDlhNzhhZDllPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDowRUVEMzFGQkQxQjBFMjExQjc5OUFEQTUzNjYzOTg5NTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MGNkOWFiZWMtM2UyOC1hZjQ3LTk1NjctZjBlY2EwZTU4MGFkPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDoxMDdGMjg5NDUxNTAxMUU4QkNGOEU4NzI4QzNERDBCMDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MTBjZGNiZGMtY2M2NS00ZWJmLWEzZmEtMWZmNjIyMTc2ODZjPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDoxM2Q2YjY5My0zM2QwLWZmNDctOTk1Yy0yZGRkYzQ0NTgxMTI8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjFGRjAyMjJBNzI3RkUzMTE4QTIyRkI5QzU1Rjk3RkVGPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDoxY2MzNWUzOC0yMTY3LTk4NDgtOTNhOC05ZmMyNTAxNGMzMzM8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjI2NzdiOWEzLTQxZDItMzE0NC1iNTI0LWQ3N2U1YTYyZGI0MDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MjZlYjJmNWItNWViYy00ODk3LWEyZmItYjc0MGQ5ZTMwZDc2PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDoyQkU5QjkyOUIyNkExMUU1QjIxNjhFODMzRDJENUU0RjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MmEyYTA2OWEtNjEwNS00NzM3LWE0ZjktNmJiNWEwNzI2ZjdhPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDoyYzRhZDFjYy1lNzUwLTFlNDctYTlmMi0xNTEwZTFiMDRiOTM8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjJkZWZlNGVjLTdjYzctYmU0OS1iYzg5LTQ5OGUzZmQ1ZjVmZjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MzRDNjBDN0JCMkQwMTFFNTg4NUM5MjhFNTk3ODMxQ0Y8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjM2Y2ViMGI3LTU4MTktNTQ0NC1iN2NmLWU2OWEyODBmNWFhMTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6M0VBQzJERDc1MzUxRTgxMTk3NkFGMzlCNEI2QUZCRjg8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjNhNWFiMjgwLTQwZmUtNGY1ZS05ZmE2LTcxNjE2YjczODEyYjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6M2Q1Njg0OTgtOTg0ZC00NThhLWIyNDktZWFjYzMyMjUyYTIwPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo0MTk0ZmE2Mi1jYWRlLThmNDktYTIxNy1lY2E3ZWUzZDIyYTA8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjQ0MzMyRjU5QjI2MDExRTU4RDNGOEJEQUJDMENEMEFDPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo0NmVkZjRlNC05MTUyLTVlNGItODA4Ny1kYTQzN2JjNWRjM2M8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjQ4RTNEMDA3MDgyMDY4MTE4MjJBRDdEMjNEMDQ0QTk1PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo1Y2EzNTUzMS1lOTZmLTRjMjAtOWViYi01M2U3NTJkMDMxYWQ8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjVlODc5ZTZmLWE3MjMtMjI0Ny1iOGQ4LWE5MDI4YzY4YmQyZjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6NjViOTJlMzAtNWU0NC0wNjRmLTk3YWQtMzg2YWI5ZTQ3NzEwPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo2ODc0QjFFNzZBMjA2ODExODIyQUM2N0Y1OEJFQTE3OTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6NjliYWZkZWItNDM4NS04MjQ4LTk2NDgtMTIyN2YxMTE2ZTViPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo2QTc0QjFFNzZBMjA2ODExODIyQUM2N0Y1OEJFQTE3OTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6NkZENTNBMzgwQTIwNjgxMTgyMkFDRjE5MTgwRTgxQjI8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjZlYjFkY2Y1LTliNjctOWQ0NC05MWJmLWZmODQzYWNmMTZmMTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6NzI2MGY1YjQtY2MxNy1kZjRlLWIwMWUtZjEzYWQyMWQwODkwPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo3NDljYmFlOC0xNTRmLTM5NDAtOWVlNi0yMmQxZjgwZmEzYTE8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjc3OUQyNjQwQjI1QjExRTU5M0MxRDg5NTlDNDg0NDg1PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo3YTE1ZGNmMS1kYTE4LTQ3YzUtYWI0ZS1iOTQ4NTUyOTAyNjc8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjdhOTJkNDBiLTY5ZTctNDlhMy04ZDIzLTIzZjNkNzc0ZmVkYTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6N2MwMmQ3YjEtMDNkYS00Zjg1LTk5YzAtMDBiM2YwMzI5MDNmPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo3ZGRjODNmMS1jYTIxLTlhNDMtYWFlMS1kMjhkZTkyMjc3OWQ8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjhEMzA2NTQ0OTYxQjExRTQ4OTM3REM3Rjg4OUZGMDQzPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo4RkNCRUNBRkIyNkMxMUU1OUExNDgwMjUxQTI3MzQzNjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6OGM2NWIxOTYtOWNhNC1mNDQ0LTlkMzQtZDM1MzM4YTllMjE1PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo4Y2M3ODA2MS0yNzk2LTRlYTAtYTVhZC1hNjk3ZDRjMjA3OGU8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjkzNTk1Mzc0LTc5MjUtM2U0ZC1iMDRjLTk2YzU2OTY1NGNkYjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6OTU5NkI5OTE3NzIwNjgxMTgyMkFDNjdGNThCRUExNzk8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjlGMUZFMkJFRTNDMEU1MTE5QUU5OUNFNTZGNjc4NzY3PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpCQkFFMjI5OEYxMTlFOTExODhFMjgzQjVGRjY0QkU5MjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6QzM3MTlGNDQwMkM0RTUxMUJBNDE4NUE1ODhCNTEwODc8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOkM5NjUwQ0I5MDcyMDY4MTE4MDgzQTE1REU3MzQzNjUyPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpENTNBODdBQzQxNjdFNDExQkZERUY2ODdGMzU2NEY5NzwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6REJDMjdENjQyRTZCRTUxMTlGQkVGMkREMkU4REFDRUY8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOkRFQjkwOEE1OEI3OEU1MTE5MTk5OUVFQkJCRDI4M0UyPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpGODdGMTE3NDA3MjA2ODExODIyQUNCNkU2OTFDMjRGRjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6YTIyZmVmZDItNTM0MS05NDQ4LWFiNDQtYWJhZjhmNDgxOTlhPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDphMjk1Y2U2Ny1iOWIxLThhNGUtOGZmYS02YjJjOTIxMDlmMTY8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmE2NDcwMTE5LTg3ZWUtOGU0ZC04ODZlLTM1MDUwY2Y3YTBjYzwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6YTdiMjA5MmItMDg2Zi02NTQ3LWJhNTUtNzEzN2ZhOTRmZjVjPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDphN2M2ZjA0NS1lNTE3LTVlNGUtOTUzZi1mY2I3ODMyMzZkMDY8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmE4NGU1MWFmLWJhZTYtNGNiOS05ZGQ3LTZmOTJjYWVjZDQ1NDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6YWVkZjcwYWMtOGExNy05OTQ1LTgxYzctM2FmNWFlM2UwM2VhPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpiMjljYzBmMi05MTg1LTQ0ZjEtOWU5YS1kMzhkMTkwMmU5OGQ8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmJhMGJjNGViLTJjYzgtMTg0ZC1iN2Q1LTE2MzQxM2JkY2I5MjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6YmMxYzdmNWYtNTMzMy1kZDQ3LTg1NmMtMDFlNTJhN2NiMWY4PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpiZTE0OWFhNy0zZDM4LTc5NGEtOWVhMi0xYWFiMDAxNGMwNzY8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmJmYWIwNDVmLTQ4MTItNDdlNi05N2NlLWNjNzk1NmUzYTFhNzwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6YzIxNWY4ODUtNGI4Ny01YjQxLTg1M2YtM2Q5NmRlNWMxOThlPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpjNWIxODhiNC1hZTMzLTRiODctYmRjZC05M2U5Yzk0MWM1YjA8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmM5YTI2YzkyLTQ1MTgtNGI1YS04NjIwLWIxYjExMTZlMGZkZDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6Y2YwMDViZTUtNWYzZi1mMTQ1LWI5OGEtYTU2YjU1NTk4YzkyPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpkZDliOTBkMi01MjcyLTQyOWUtODQ2Zi1mMTMxMmE0ODNlNjE8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmU1NmQyNjUyLWM3YzQtMzk0ZC05MzA4LTlmM2Q5YmQzMGU1MDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6ZTcwNTM5OWQtNDY0ZS00M2ZmLWE1MmMtY2RjOGE4YmY3ZWE2PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDplZDAxYWNlYS0xNDYwLTYxNGQtODdlNC1mMmEzNDM1NjA3Njk8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmVlNDYzYjU0LTRjMjItNGMyZC1hZjQwLTdlN2U0Yzc2YTcwMDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6ZWVlNzBjZjMtZDRiZC05MjQxLThiNzAtN2NjYmFkMzViZGU2PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDplZmQ5MzI1Mi01MjBkLWYxNDEtOTAxMy0wZGI3MTBhZWRmNzU8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmY1YjljZjZkLTM2YjgtYTc0MS1iMGZmLTE3ZGU0YzQwNjZjNjwvcmRmOmxpPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjk4NTg5MDg0LTI5MmItNTg0Yi05MzgwLTViZmNhNzYyZmM5OSIgc3RFdnQ6d2hlbj0iMjAxOS0wNS0wNlQxMToyNzoyOCswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplY2UyZWZjMi01NDlkLTBkNDgtYTExNi1kZTI1ZmU1NzNkYzkiIHN0RXZ0OndoZW49IjIwMTktMDUtMDZUMTE6NDM6MjQrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NDQ5NDBhMmEtNzEwNy00YmFlLThjOTMtY2ZjNGRkM2UyYjc2IiBzdEV2dDp3aGVuPSIyMDE5LTA3LTAyVDEyOjIwOjE5KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iZGVyaXZlZCIgc3RFdnQ6cGFyYW1ldGVycz0iY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjZlYjlkOTFjLTI5NDAtNGMwZS1iMjEwLTg3NGMwNmY5NzBkMyIgc3RFdnQ6d2hlbj0iMjAxOS0wNy0wMlQxMjoyMDoxOSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1ZTViYWU1ZS05NDM5LWViNDgtYmIyMS1mNmMzZTA5ZjE4MzYiIHN0RXZ0OndoZW49IjIwMjEtMTAtMjRUMTQ6MzE6MTYrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDQ5NDBhMmEtNzEwNy00YmFlLThjOTMtY2ZjNGRkM2UyYjc2IiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NWJmZGU1MDUtMmVkMy1lZjQxLWFiYjgtNWRjYTRhNjUxZjVlIiBzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTg1ODkwODQtMjkyYi01ODRiLTkzODAtNWJmY2E3NjJmYzk5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+UQTyIAAAAptJREFUaN7l2ktoE0EYwPH/xtRXbRupRlsQ04JoRRQE8aQiYhHFg+JFRD1oC4oVfJx6UDwIRSsURYUiorWCiohaRSz0IIoExMfBS7A+wEIjqXFpFySm6XrYTTEmpunuJu7OfJdsJjNf8svMJDPsKLqu82covWpmQWliDHgF3ARuAKqdZHpjIOO5D3eED1gNnAcGgHPAHCeTuy3KgaPAB/PRLyIyHQGzR18CS0RFpmOVOV+3i4wEmAXcBY6LjARQgLPACZGR6TgFHPAEUkGnpixKtf+7leYXgK2uRU5XErTVtvJ1WYjI0gYuLThkJc0UoAsIFVLZX+re6wrtZVPl0/GyZ9paO38x14D1gO6antxc9SQDGBudS3d8l52U64B9rhquO2ffGr9WUwF2f7nOcKrSbtrTQIWjwzVYBg0zrH2aqcoYfSMbePtzBZ1DzUST85z47oLAYRObe5pMdheyoxo6661tVEJvFIZTRRkkg+aP0C8370LsRg2wzbHhOpCAB/Hs8uXlUDfNuA6PwLdkdp1kcXeqB4HbjiDDGoQ1Jau8faFOXdC47ogq9Kol7801Zo8OirCsy7e2bRRl7ZovtsiA3JjLJBoyACwSHQmwUgbkYhmQ9TIga2VAzpcBWSEDskoG5EwZkKMyIDUZkDEZkP0yICMyIN/LgHwhOvIj8El05P1chaIhu0VHvgbeiY5s/9cLoiAjwB3Rkccwjq4Ji3wEPM5XwevIGNA8USUvI3VgPzlu8IiEbAUeFlLRq8iLQFuhlb2I7ABaJtPA57E5eBI4wgTndv4Ov0eAKrAH6LHS2As9+RzjTlWP1QRuRv4AmjBOXX22k8iNw1UDLgNngCEnEroJGQeumLuJmJOJ/zdSB/qAq8A9IFGMN/kNt6GNd9kLeHQAAAAASUVORK5CYII=";
1272
+ const _hoisted_1$e = ["src"];
1273
+ const _sfc_main$q = /* @__PURE__ */ defineComponent({
1274
+ __name: "logo",
1275
+ props: {
1276
+ theme: { type: String, validator: (v) => ["light", "dark"].includes(v) },
1277
+ showTitle: { type: Boolean, default: true }
1278
+ },
1135
1279
  setup(__props) {
1280
+ const props = __props;
1281
+ const { t } = useI18n("UI");
1136
1282
  const slots = getParentSlots(null, "dt-theme");
1283
+ const title = t("COMPANY_NAME");
1284
+ const { getLogoWidth } = useMenu();
1285
+ const getLogoClass = computed(() => {
1286
+ return `${props.theme} dt-logo px-2.5 text-sm flex items-center pl-2.5 cursor-pointer text-center transition-all duration-200 ease-in-out `;
1287
+ });
1137
1288
  return (_ctx, _cache) => {
1138
- const _component_APopover = Popover;
1139
- const _directive_icon = resolveDirective("icon");
1140
- return openBlock(), createBlock(_component_APopover, {
1141
- trigger: "click",
1289
+ return openBlock(), createElementBlock("div", {
1290
+ class: normalizeClass(unref(getLogoClass)),
1291
+ style: normalizeStyle({
1292
+ minWidth: `${unref(getLogoWidth)}px`
1293
+ })
1294
+ }, [
1295
+ unref(slots).logo ? (openBlock(), createBlock(unref(DtSlotContainer), {
1296
+ key: 0,
1297
+ template: unref(slots).logo
1298
+ }, null, 8, ["template"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1299
+ createElementVNode("img", { src: unref(logoUrl) }, null, 8, _hoisted_1$e),
1300
+ withDirectives(createElementVNode("div", { class: "dt-logo__title text-base font-bold transition-all duration-500 pl-3" }, toDisplayString(unref(title)), 513), [
1301
+ [vShow, __props.showTitle]
1302
+ ])
1303
+ ], 64))
1304
+ ], 6);
1305
+ };
1306
+ }
1307
+ });
1308
+ const _sfc_main$p = /* @__PURE__ */ defineComponent({
1309
+ __name: "trigger",
1310
+ props: { theme: String },
1311
+ setup(__props) {
1312
+ const props = __props;
1313
+ const { getCollapsed, toggleCollapsed } = useMenu();
1314
+ return (_ctx, _cache) => {
1315
+ return openBlock(), createElementBlock("div", {
1316
+ class: normalizeClass(["flex w-12 h-full cursor-pointer items-center justify-center", props.theme]),
1317
+ onClick: _cache[0] || (_cache[0] = (...args) => unref(toggleCollapsed) && unref(toggleCollapsed)(...args))
1318
+ }, [
1319
+ createElementVNode("i", {
1320
+ class: normalizeClass(["i leading-none", unref(getCollapsed) ? "ic:baseline-format-indent-increase" : "ic:baseline-format-indent-decrease"])
1321
+ }, null, 2)
1322
+ ], 2);
1323
+ };
1324
+ }
1325
+ });
1326
+ const _hoisted_1$d = { class: "dt-breadcrumb" };
1327
+ const _sfc_main$o = /* @__PURE__ */ defineComponent({
1328
+ __name: "bread-crumb",
1329
+ setup(__props) {
1330
+ const { getIsZH } = useHeader();
1331
+ let routes = ref([]);
1332
+ const { currentRoute = null } = useRouter();
1333
+ watchEffect(() => {
1334
+ if (!currentRoute || currentRoute.value.path === "/")
1335
+ return;
1336
+ routes.value = getBreadCrumb(currentRoute.value.path);
1337
+ });
1338
+ return (_ctx, _cache) => {
1339
+ const _component_ABreadcrumb = Breadcrumb;
1340
+ return openBlock(), createElementBlock("div", _hoisted_1$d, [
1341
+ createVNode(_component_ABreadcrumb, { routes: unref(routes) }, {
1342
+ itemRender: withCtx(({ route }) => [
1343
+ createElementVNode("span", null, toDisplayString((unref(getIsZH) ? route.label : route.enLabel) || route.meta?.title), 1)
1344
+ ]),
1345
+ _: 1
1346
+ }, 8, ["routes"])
1347
+ ]);
1348
+ };
1349
+ }
1350
+ });
1351
+ const _hoisted_1$c = {
1352
+ key: 0,
1353
+ class: "dt-menu-filter h-7 pr-2"
1354
+ };
1355
+ const _hoisted_2$7 = ["onClick"];
1356
+ const _hoisted_3$5 = {
1357
+ key: 0,
1358
+ class: "flex items-center justify-center h-full overflow-hidden"
1359
+ };
1360
+ const _sfc_main$n = /* @__PURE__ */ defineComponent({
1361
+ __name: "menu-filter",
1362
+ setup(__props) {
1363
+ const { t } = useI18n("UI");
1364
+ const menuList = ref([]);
1365
+ const router = useRouter();
1366
+ const filter = ref("");
1367
+ const { getShowSearch, getIsZH } = useHeader();
1368
+ const isUseDef = computed(() => {
1369
+ return isBoolean(getShowSearch.value);
1370
+ });
1371
+ function visibleChange(e) {
1372
+ if (e) {
1373
+ filterMenu();
1374
+ } else {
1375
+ filter.value = null;
1376
+ }
1377
+ }
1378
+ function filterMenu() {
1379
+ menuList.value = getFilterMenu(filter.value, true);
1380
+ }
1381
+ function navigation(url) {
1382
+ router.push(url);
1383
+ setTimeout(() => {
1384
+ filter.value = "";
1385
+ menuList.value = [];
1386
+ });
1387
+ }
1388
+ return (_ctx, _cache) => {
1389
+ const _component_AEmpty = Empty;
1390
+ const _component_AInputSearch = InputSearch;
1391
+ const _component_APopover = Popover;
1392
+ return unref(isUseDef) ? (openBlock(), createElementBlock("div", _hoisted_1$c, [
1393
+ createVNode(_component_APopover, {
1394
+ placement: "bottom",
1395
+ overlayClassName: "dt-menu-filter__popover",
1396
+ trigger: "focus",
1397
+ onVisibleChange: visibleChange
1398
+ }, {
1399
+ content: withCtx(() => [
1400
+ (openBlock(true), createElementBlock(Fragment, null, renderList(menuList.value, (menu) => {
1401
+ return openBlock(), createElementBlock("p", {
1402
+ onClick: ($event) => navigation(menu.url),
1403
+ class: "px-5 leading-9 border-gray-200 border-dashed border-b m-0 cursor-pointer transition-all duration-300 text-13"
1404
+ }, toDisplayString(unref(getIsZH) ? menu.label : menu.enLabel), 9, _hoisted_2$7);
1405
+ }), 256)),
1406
+ !menuList.value.length ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
1407
+ createVNode(_component_AEmpty, {
1408
+ description: "\u6682\u65E0\u6570\u636E",
1409
+ imageStyle: { width: "100%" }
1410
+ })
1411
+ ])) : createCommentVNode("", true)
1412
+ ]),
1413
+ default: withCtx(() => [
1414
+ createVNode(_component_AInputSearch, {
1415
+ value: filter.value,
1416
+ "onUpdate:value": _cache[0] || (_cache[0] = ($event) => filter.value = $event),
1417
+ placeholder: unref(t)("FILTER_MORE"),
1418
+ onInput: filterMenu,
1419
+ size: unref(UiSize).SMALL
1420
+ }, null, 8, ["value", "placeholder", "size"])
1421
+ ]),
1422
+ _: 1
1423
+ })
1424
+ ])) : createCommentVNode("", true);
1425
+ };
1426
+ }
1427
+ });
1428
+ const _hoisted_1$b = { class: "lang m-0" };
1429
+ const _hoisted_2$6 = ["onClick"];
1430
+ const _hoisted_3$4 = {
1431
+ class: "pr-2",
1432
+ size: 16
1433
+ };
1434
+ const _hoisted_4$3 = /* @__PURE__ */ createElementVNode("span", { class: "dt_header_icon text-lg text-gray-800 cursor-pointer px-3 hover:bg-gray-500 hover:bg-opacity-50 transition-all duration-300" }, [
1435
+ /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-language" })
1436
+ ], -1);
1437
+ const _sfc_main$m = /* @__PURE__ */ defineComponent({
1438
+ __name: "lang-picker",
1439
+ props: {
1440
+ reload: { type: Boolean }
1441
+ },
1442
+ setup(__props) {
1443
+ const props = __props;
1444
+ const visible = ref(false);
1445
+ let currentLang = DtCache.getLocal(CacheKey.LOCALE);
1446
+ async function toggleLang(lang) {
1447
+ visible.value = false;
1448
+ if (lang !== currentLang) {
1449
+ currentLang = lang;
1450
+ await changeLocale(lang);
1451
+ props.reload && location.reload();
1452
+ }
1453
+ }
1454
+ return (_ctx, _cache) => {
1455
+ const _component_APopover = Popover;
1456
+ const _directive_icon = resolveDirective("icon");
1457
+ return openBlock(), createBlock(_component_APopover, {
1458
+ placement: "bottom",
1459
+ visible: visible.value,
1460
+ "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
1461
+ overlayClassName: "dt-lang-picker__popover",
1462
+ trigger: "click"
1463
+ }, {
1464
+ content: withCtx(() => [
1465
+ createElementVNode("ul", _hoisted_1$b, [
1466
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(localeList), (it) => {
1467
+ return openBlock(), createElementBlock("li", {
1468
+ onClick: ($event) => toggleLang(it.event),
1469
+ class: normalizeClass(["px-4 my-1 leading-9 flex border-gray-200 cursor-pointer hover:bg-gray-100 transition-all duration-300 text-13", it.event === unref(currentLang) ? "active bg-gray-100" : ""])
1470
+ }, [
1471
+ withDirectives(createElementVNode("span", _hoisted_3$4, null, 512), [
1472
+ [_directive_icon, it.icon]
1473
+ ]),
1474
+ createElementVNode("span", null, toDisplayString(it.text), 1)
1475
+ ], 10, _hoisted_2$6);
1476
+ }), 256))
1477
+ ])
1478
+ ]),
1479
+ default: withCtx(() => [
1480
+ _hoisted_4$3
1481
+ ]),
1482
+ _: 1
1483
+ }, 8, ["visible"]);
1484
+ };
1485
+ }
1486
+ });
1487
+ const _hoisted_1$a = { class: "dt_header_icon text-lg text-gray-800 cursor-pointer px-3 hover:bg-gray-500 hover:bg-opacity-50 transition-all duration-300 relative" };
1488
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
1489
+ __name: "notify",
1490
+ setup(__props) {
1491
+ const slots = getParentSlots(null, "dt-theme");
1492
+ return (_ctx, _cache) => {
1493
+ const _component_APopover = Popover;
1494
+ const _directive_icon = resolveDirective("icon");
1495
+ return openBlock(), createBlock(_component_APopover, {
1496
+ trigger: "click",
1142
1497
  overlayClassName: "dt-notify__popover"
1143
1498
  }, {
1144
1499
  content: withCtx(() => [
@@ -1148,7 +1503,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
1148
1503
  }, null, 8, ["template"])) : createCommentVNode("", true)
1149
1504
  ]),
1150
1505
  default: withCtx(() => [
1151
- createElementVNode("span", _hoisted_1$d, [
1506
+ createElementVNode("span", _hoisted_1$a, [
1152
1507
  withDirectives(createElementVNode("span", null, null, 512), [
1153
1508
  [_directive_icon, "ant-design:bell-outlined"]
1154
1509
  ]),
@@ -1163,12 +1518,12 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
1163
1518
  };
1164
1519
  }
1165
1520
  });
1166
- const _hoisted_1$c = { class: "lang m-0" };
1167
- const _hoisted_2$6 = ["onClick"];
1521
+ const _hoisted_1$9 = { class: "lang m-0" };
1522
+ const _hoisted_2$5 = ["onClick"];
1168
1523
  const _hoisted_3$3 = /* @__PURE__ */ createElementVNode("span", { class: "dt_header_icon text-lg text-gray-800 cursor-pointer px-3 hover:bg-gray-500 hover:bg-opacity-50 transition-all duration-300" }, [
1169
1524
  /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-format-size" })
1170
1525
  ], -1);
1171
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
1526
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
1172
1527
  __name: "size",
1173
1528
  setup(__props) {
1174
1529
  const { t } = useI18n("UI");
@@ -1206,14 +1561,14 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
1206
1561
  trigger: "click"
1207
1562
  }, {
1208
1563
  content: withCtx(() => [
1209
- createElementVNode("ul", _hoisted_1$c, [
1564
+ createElementVNode("ul", _hoisted_1$9, [
1210
1565
  (openBlock(), createElementBlock(Fragment, null, renderList(sizeList, (it) => {
1211
1566
  return createElementVNode("li", {
1212
1567
  onClick: ($event) => toggleLang(it.event),
1213
1568
  class: normalizeClass(["px-4 my-1 leading-9 flex border-gray-200 cursor-pointer hover:bg-gray-100 transition-all duration-300 text-13", it.event === unref(getUiSize) ? "active bg-gray-100" : ""])
1214
1569
  }, [
1215
1570
  createElementVNode("span", null, toDisplayString(it.text), 1)
1216
- ], 10, _hoisted_2$6);
1571
+ ], 10, _hoisted_2$5);
1217
1572
  }), 64))
1218
1573
  ])
1219
1574
  ]),
@@ -1225,15 +1580,15 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
1225
1580
  };
1226
1581
  }
1227
1582
  });
1228
- const _hoisted_1$b = { class: "m-0" };
1229
- const _hoisted_2$5 = {
1583
+ const _hoisted_1$8 = { class: "m-0" };
1584
+ const _hoisted_2$4 = {
1230
1585
  class: "pr-2",
1231
1586
  size: 16
1232
1587
  };
1233
1588
  const _hoisted_3$2 = { class: "dt_header_icon h-12 text-lg text-gray-800 cursor-pointer px-3 hover:bg-gray-500 hover:bg-opacity-50 transition-all duration-300 flex items-center" };
1234
- const _hoisted_4$1 = ["src"];
1235
- const _hoisted_5 = { class: "pl-2 text-13" };
1236
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
1589
+ const _hoisted_4$2 = ["src"];
1590
+ const _hoisted_5$1 = { class: "pl-2 text-13" };
1591
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
1237
1592
  __name: "user-info",
1238
1593
  setup(__props) {
1239
1594
  const { t } = useI18n("UI");
@@ -1258,7 +1613,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
1258
1613
  trigger: "click"
1259
1614
  }, {
1260
1615
  content: withCtx(() => [
1261
- createElementVNode("div", _hoisted_1$b, [
1616
+ createElementVNode("div", _hoisted_1$8, [
1262
1617
  unref(slots).userInfo ? (openBlock(), createBlock(unref(DtSlotContainer), {
1263
1618
  key: 0,
1264
1619
  template: unref(slots).userInfo
@@ -1268,7 +1623,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
1268
1623
  onClick: _cache[0] || (_cache[0] = ($event) => signOut()),
1269
1624
  class: "px-4 my-1 leading-9 flex border-gray-200 cursor-pointer hover:bg-gray-100 transition-all duration-300 text-13"
1270
1625
  }, [
1271
- withDirectives(createElementVNode("span", _hoisted_2$5, null, 512), [
1626
+ withDirectives(createElementVNode("span", _hoisted_2$4, null, 512), [
1272
1627
  [_directive_icon, "ant-design:logout-outlined"]
1273
1628
  ]),
1274
1629
  createElementVNode("span", null, toDisplayString(unref(t)("LOGIN_OUT")), 1)
@@ -1279,11 +1634,11 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
1279
1634
  createElementVNode("div", _hoisted_3$2, [
1280
1635
  createVNode(_component_AAvatar, { size: 28 }, {
1281
1636
  icon: withCtx(() => [
1282
- createElementVNode("img", { src: "/node_modules/@dt-frames/ui/es/assets/imgs/header/avatar.png" }, null, 8, _hoisted_4$1)
1637
+ createElementVNode("img", { src: "/node_modules/@dt-frames/ui/es/assets/imgs/header/avatar.png" }, null, 8, _hoisted_4$2)
1283
1638
  ]),
1284
1639
  _: 1
1285
1640
  }),
1286
- createElementVNode("span", _hoisted_5, toDisplayString(unref(getUserInfo)?.userNo), 1)
1641
+ createElementVNode("span", _hoisted_5$1, toDisplayString(unref(getUserInfo)?.userNo), 1)
1287
1642
  ])
1288
1643
  ]),
1289
1644
  _: 1
@@ -1388,13 +1743,13 @@ function changeTheme(event, value = {}) {
1388
1743
  }
1389
1744
  useThemeStore().setThemeConf(conf);
1390
1745
  }
1391
- const _hoisted_1$a = { class: "flex flex-row justify-center dt-menu-type" };
1392
- const _hoisted_2$4 = ["onClick"];
1746
+ const _hoisted_1$7 = { class: "flex flex-row justify-center dt-menu-type" };
1747
+ const _hoisted_2$3 = ["onClick"];
1393
1748
  const _hoisted_3$1 = /* @__PURE__ */ createElementVNode("div", { class: "dt-menu-type__item" }, null, -1);
1394
- const _hoisted_4 = [
1749
+ const _hoisted_4$1 = [
1395
1750
  _hoisted_3$1
1396
1751
  ];
1397
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
1752
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1398
1753
  __name: "menu-type",
1399
1754
  setup(__props) {
1400
1755
  const { getMenuType, getMenuMode } = useMenu();
@@ -1422,6 +1777,14 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
1422
1777
  mode: MenuMode.HORIZONTAL,
1423
1778
  type: MenuType.TOP_MENU,
1424
1779
  split: false
1780
+ },
1781
+ {
1782
+ title: "\u5DE6\u4FA7\u83DC\u5355\u6DF7\u5408\u6A21\u5F0F",
1783
+ headTheme: Theme.LIGHT,
1784
+ menuTheme: Theme.DARK,
1785
+ mode: MenuMode.INLINE,
1786
+ type: MenuType.MIX_SIDEBAR,
1787
+ split: false
1425
1788
  }
1426
1789
  ];
1427
1790
  function changeMenuType(item) {
@@ -1429,7 +1792,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
1429
1792
  }
1430
1793
  return (_ctx, _cache) => {
1431
1794
  const _component_ATooltip = Tooltip;
1432
- return openBlock(), createElementBlock("div", _hoisted_1$a, [
1795
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
1433
1796
  (openBlock(), createElementBlock(Fragment, null, renderList(menuTypeList, (item) => {
1434
1797
  return createVNode(_component_ATooltip, {
1435
1798
  key: item.title,
@@ -1447,7 +1810,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
1447
1810
  [`dt-menu-type__item--active`]: unref(getMenuType) === item.type && unref(getMenuMode) === item.mode
1448
1811
  }
1449
1812
  ])
1450
- }, _hoisted_4, 10, _hoisted_2$4)
1813
+ }, _hoisted_4$1, 10, _hoisted_2$3)
1451
1814
  ]),
1452
1815
  _: 2
1453
1816
  }, 1032, ["title"]);
@@ -1456,8 +1819,8 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
1456
1819
  };
1457
1820
  }
1458
1821
  });
1459
- const _hoisted_1$9 = { class: "flex justify-between mb-5" };
1460
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
1822
+ const _hoisted_1$6 = { class: "flex justify-between mb-5" };
1823
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1461
1824
  __name: "select",
1462
1825
  props: {
1463
1826
  event: { type: Number },
@@ -1480,7 +1843,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
1480
1843
  }
1481
1844
  return (_ctx, _cache) => {
1482
1845
  const _component_ASelect = Select;
1483
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
1846
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
1484
1847
  createElementVNode("span", null, toDisplayString(__props.title), 1),
1485
1848
  createVNode(_component_ASelect, mergeProps(unref(getBindValue), {
1486
1849
  disabled: __props.disabled,
@@ -1493,8 +1856,8 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
1493
1856
  };
1494
1857
  }
1495
1858
  });
1496
- const _hoisted_1$8 = { class: "flex justify-between mb-5" };
1497
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
1859
+ const _hoisted_1$5 = { class: "flex justify-between mb-5" };
1860
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
1498
1861
  __name: "switch",
1499
1862
  props: {
1500
1863
  event: {
@@ -1517,7 +1880,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1517
1880
  }
1518
1881
  return (_ctx, _cache) => {
1519
1882
  const _component_ASwitch = Switch;
1520
- return openBlock(), createElementBlock("div", _hoisted_1$8, [
1883
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
1521
1884
  createElementVNode("span", null, toDisplayString(__props.title), 1),
1522
1885
  createVNode(_component_ASwitch, mergeProps(unref(getBindValue), {
1523
1886
  disabled: __props.disabled,
@@ -1529,7 +1892,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1529
1892
  };
1530
1893
  }
1531
1894
  });
1532
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
1895
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
1533
1896
  __name: "feature",
1534
1897
  setup(__props) {
1535
1898
  const { t } = useI18n("UI");
@@ -1605,7 +1968,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1605
1968
  return (_ctx, _cache) => {
1606
1969
  return openBlock(), createElementBlock(Fragment, null, [
1607
1970
  (openBlock(), createElementBlock(Fragment, null, renderList(switchItems, (item) => {
1608
- return createVNode(_sfc_main$i, {
1971
+ return createVNode(_sfc_main$g, {
1609
1972
  key: item.title,
1610
1973
  title: item.title,
1611
1974
  event: item.event,
@@ -1613,7 +1976,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1613
1976
  }, null, 8, ["title", "event", "def"]);
1614
1977
  }), 64)),
1615
1978
  (openBlock(), createElementBlock(Fragment, null, renderList(selectItems, (item) => {
1616
- return createVNode(_sfc_main$j, {
1979
+ return createVNode(_sfc_main$h, {
1617
1980
  key: item.title,
1618
1981
  title: item.title,
1619
1982
  event: item.event,
@@ -1625,9 +1988,9 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1625
1988
  };
1626
1989
  }
1627
1990
  });
1628
- const _hoisted_1$7 = { class: "mt-5" };
1629
- const _hoisted_2$3 = { class: "dt-setting-theme__tips p-3 text-12 bg-gray-100 rounded" };
1630
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
1991
+ const _hoisted_1$4 = { class: "mt-5" };
1992
+ const _hoisted_2$2 = { class: "dt-setting-theme__tips p-3 text-12 bg-gray-100 rounded" };
1993
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1631
1994
  __name: "setting-theme",
1632
1995
  setup(__props) {
1633
1996
  const { t } = useI18n("UI");
@@ -1735,16 +2098,16 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
1735
2098
  ]),
1736
2099
  _: 1
1737
2100
  }),
1738
- createVNode(unref(_sfc_main$k)),
2101
+ createVNode(unref(_sfc_main$i)),
1739
2102
  createVNode(_component_ADivider, null, {
1740
2103
  default: withCtx(() => [
1741
2104
  createTextVNode(toDisplayString(unref(t)("PAGE_SHOW")), 1)
1742
2105
  ]),
1743
2106
  _: 1
1744
2107
  }),
1745
- createVNode(unref(_sfc_main$h)),
2108
+ createVNode(unref(_sfc_main$f)),
1746
2109
  createVNode(_component_ADivider),
1747
- createElementVNode("div", _hoisted_1$7, [
2110
+ createElementVNode("div", _hoisted_1$4, [
1748
2111
  createVNode(_component_AButton, {
1749
2112
  onClick: copy,
1750
2113
  class: "mb-3",
@@ -1767,7 +2130,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
1767
2130
  _: 1
1768
2131
  })
1769
2132
  ]),
1770
- createElementVNode("div", _hoisted_2$3, toDisplayString(unref(t)("DRAWER_TIPS")), 1)
2133
+ createElementVNode("div", _hoisted_2$2, toDisplayString(unref(t)("DRAWER_TIPS")), 1)
1771
2134
  ]),
1772
2135
  _: 1
1773
2136
  }, 8, ["visible", "title"])
@@ -1942,7 +2305,7 @@ const contentProps = {
1942
2305
  },
1943
2306
  isSplitMenu: Boolean
1944
2307
  });
1945
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
2308
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
1946
2309
  __name: "menu-item-content",
1947
2310
  props: contentProps,
1948
2311
  setup(__props) {
@@ -1959,7 +2322,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
1959
2322
  };
1960
2323
  }
1961
2324
  });
1962
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
2325
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
1963
2326
  __name: "basic-menu-item",
1964
2327
  props: ItemProp,
1965
2328
  setup(__props) {
@@ -1970,14 +2333,14 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
1970
2333
  key: _ctx.item.url
1971
2334
  }, {
1972
2335
  default: withCtx(() => [
1973
- createVNode(_sfc_main$f, normalizeProps(guardReactiveProps(props)), null, 16)
2336
+ createVNode(_sfc_main$d, normalizeProps(guardReactiveProps(props)), null, 16)
1974
2337
  ]),
1975
2338
  _: 1
1976
2339
  });
1977
2340
  };
1978
2341
  }
1979
2342
  });
1980
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
2343
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1981
2344
  __name: "basic-sub-menu-item",
1982
2345
  props: ItemProp,
1983
2346
  setup(__props) {
@@ -1994,14 +2357,14 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
1994
2357
  const _component_BasicSubMenuItem = resolveComponent("BasicSubMenuItem", true);
1995
2358
  const _component_ASubMenu = SubMenu;
1996
2359
  return openBlock(), createElementBlock(Fragment, null, [
1997
- !menuHasChildren(unref(item)) && unref(getShowMenu) ? (openBlock(), createBlock(_sfc_main$e, normalizeProps(mergeProps({ key: 0 }, props)), null, 16)) : createCommentVNode("", true),
2360
+ !menuHasChildren(unref(item)) && unref(getShowMenu) ? (openBlock(), createBlock(_sfc_main$c, normalizeProps(mergeProps({ key: 0 }, props)), null, 16)) : createCommentVNode("", true),
1998
2361
  menuHasChildren(unref(item)) && unref(getShowMenu) ? (openBlock(), createBlock(_component_ASubMenu, {
1999
2362
  class: normalizeClass([unref(theme)]),
2000
2363
  key: unref(item).id,
2001
2364
  popupClassName: "app-top-menu-popup"
2002
2365
  }, {
2003
2366
  title: withCtx(() => [
2004
- createVNode(_sfc_main$f, mergeProps(props, { item: unref(item) }), null, 16, ["item"])
2367
+ createVNode(_sfc_main$d, mergeProps(props, { item: unref(item) }), null, 16, ["item"])
2005
2368
  ]),
2006
2369
  default: withCtx(() => [
2007
2370
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(item).children, (childrenItem) => {
@@ -2016,7 +2379,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2016
2379
  };
2017
2380
  }
2018
2381
  });
2019
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
2382
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
2020
2383
  __name: "basic-menu",
2021
2384
  props: BasicMenu,
2022
2385
  emits: ["menuClick"],
@@ -2103,7 +2466,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
2103
2466
  }, {
2104
2467
  default: withCtx(() => [
2105
2468
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
2106
- return openBlock(), createBlock(_sfc_main$d, {
2469
+ return openBlock(), createBlock(_sfc_main$b, {
2107
2470
  key: item.id,
2108
2471
  item,
2109
2472
  theme: _ctx.theme,
@@ -2116,7 +2479,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
2116
2479
  };
2117
2480
  }
2118
2481
  });
2119
- const _sfc_main$b = defineComponent({
2482
+ const _sfc_main$9 = defineComponent({
2120
2483
  name: "LayoutMenu",
2121
2484
  props: {
2122
2485
  theme: String,
@@ -2176,6 +2539,8 @@ const _sfc_main$b = defineComponent({
2176
2539
  go(path);
2177
2540
  }
2178
2541
  function renderHeader() {
2542
+ if (!unref(getIsShowLogo))
2543
+ return null;
2179
2544
  if (slots.logo) {
2180
2545
  return createVNode(DtSlotContainer, {
2181
2546
  "template": slots.logo,
@@ -2185,9 +2550,7 @@ const _sfc_main$b = defineComponent({
2185
2550
  }
2186
2551
  }, null);
2187
2552
  }
2188
- if (!unref(getIsShowLogo))
2189
- return null;
2190
- return createVNode(_sfc_main$v, {
2553
+ return createVNode(_sfc_main$q, {
2191
2554
  "showTitle": !unref(getCollapsed),
2192
2555
  "class": unref(getLogoClass),
2193
2556
  "theme": unref(getComputedTheme)
@@ -2212,7 +2575,7 @@ const _sfc_main$b = defineComponent({
2212
2575
  } = unref(getMenuProps);
2213
2576
  if (!menus || !menus.length)
2214
2577
  return null;
2215
- return createVNode(_sfc_main$c, mergeProps(menuProps, {
2578
+ return createVNode(_sfc_main$a, mergeProps(menuProps, {
2216
2579
  "isHorizontal": props.isHorizontal,
2217
2580
  "type": unref(getMenuType),
2218
2581
  "showLogo": unref(getIsShowLogo),
@@ -2227,12 +2590,15 @@ const _sfc_main$b = defineComponent({
2227
2590
  };
2228
2591
  }
2229
2592
  });
2230
- const _hoisted_1$6 = { class: "dt-header-left flex h-full items-center" };
2231
- const _hoisted_2$2 = {
2593
+ const _hoisted_1$3 = {
2594
+ key: 3,
2595
+ class: "max-w-full pl-3 pr-20 dt-reuse-tabs__top"
2596
+ };
2597
+ const _hoisted_2$1 = {
2232
2598
  key: 0,
2233
2599
  class: "flex-1 h-full min-w-0 items-center"
2234
2600
  };
2235
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
2601
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2236
2602
  __name: "index",
2237
2603
  props: {
2238
2604
  fixed: Boolean
@@ -2253,12 +2619,14 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
2253
2619
  getShowSearch,
2254
2620
  getShowUiSize
2255
2621
  } = useHeader();
2622
+ const { getShowMultipleTab, getMultipleTabPosIsTop } = useMultipleTab();
2256
2623
  const getSplitType = computed(() => {
2257
2624
  return unref(getSplit) ? MenuSplitTye.TOP : MenuSplitTye.NONE;
2258
2625
  });
2259
2626
  const getMenuMode = computed(() => {
2260
2627
  return unref(getSplit) ? MenuMode.HORIZONTAL : null;
2261
2628
  });
2629
+ const getShowTab = computed(() => unref(getShowMultipleTab) && unref(getMultipleTabPosIsTop));
2262
2630
  const getHeaderCls = computed(() => {
2263
2631
  let theme = unref(getHeaderTheme);
2264
2632
  let cls = "dt-header flex p-0 items-center justify-between ";
@@ -2274,20 +2642,27 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
2274
2642
  class: normalizeClass([unref(getHeaderCls), "flex items-center justify-between"])
2275
2643
  }, {
2276
2644
  default: withCtx(() => [
2277
- createElementVNode("div", _hoisted_1$6, [
2278
- unref(getShowHeaderLogo) ? (openBlock(), createBlock(unref(_sfc_main$v), {
2645
+ createElementVNode("div", {
2646
+ class: normalizeClass(["dt-header-left flex h-full items-center", {
2647
+ "w-0 flex-1": unref(getShowTab)
2648
+ }])
2649
+ }, [
2650
+ unref(getShowHeaderLogo) ? (openBlock(), createBlock(unref(_sfc_main$q), {
2279
2651
  key: 0,
2280
2652
  theme: unref(getHeaderTheme),
2281
2653
  class: "dt-header-logo"
2282
2654
  }, null, 8, ["theme"])) : createCommentVNode("", true),
2283
- unref(getShowHeaderTrigger) && !unref(getSplit) ? (openBlock(), createBlock(unref(_sfc_main$u), {
2655
+ unref(getShowHeaderTrigger) && !unref(getSplit) && !unref(getShowTab) ? (openBlock(), createBlock(unref(_sfc_main$p), {
2284
2656
  key: 1,
2285
2657
  theme: unref(getHeaderTheme)
2286
2658
  }, null, 8, ["theme"])) : createCommentVNode("", true),
2287
- unref(getShowBread) ? (openBlock(), createBlock(unref(_sfc_main$t), { key: 2 })) : createCommentVNode("", true)
2288
- ]),
2289
- unref(getShowTopMenu) ? (openBlock(), createElementBlock("div", _hoisted_2$2, [
2290
- createVNode(_sfc_main$b, {
2659
+ unref(getShowBread) && !unref(getShowTab) ? (openBlock(), createBlock(unref(_sfc_main$o), { key: 2 })) : createCommentVNode("", true),
2660
+ unref(getShowTab) ? (openBlock(), createElementBlock("div", _hoisted_1$3, [
2661
+ createVNode(_sfc_main$v)
2662
+ ])) : createCommentVNode("", true)
2663
+ ], 2),
2664
+ unref(getShowTopMenu) ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
2665
+ createVNode(_sfc_main$9, {
2291
2666
  isHorizontal: true,
2292
2667
  theme: unref(getHeaderTheme),
2293
2668
  splitType: unref(getSplitType),
@@ -2300,16 +2675,16 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
2300
2675
  "padding-right": unref(getShowSettingTheme) ? "" : "20px"
2301
2676
  })
2302
2677
  }, [
2303
- unref(getShowSearch) ? (openBlock(), createBlock(unref(_sfc_main$s), { key: 0 })) : createCommentVNode("", true),
2304
- unref(getShowNotice) ? (openBlock(), createBlock(unref(_sfc_main$n), { key: 1 })) : createCommentVNode("", true),
2305
- unref(getShowUiSize) ? (openBlock(), createBlock(unref(_sfc_main$m), { key: 2 })) : createCommentVNode("", true),
2306
- unref(getShowFullScreen) ? (openBlock(), createBlock(unref(_sfc_main$w), { key: 3 })) : createCommentVNode("", true),
2307
- unref(getShowLocale) ? (openBlock(), createBlock(unref(_sfc_main$r), {
2678
+ unref(getShowSearch) ? (openBlock(), createBlock(unref(_sfc_main$n), { key: 0 })) : createCommentVNode("", true),
2679
+ unref(getShowNotice) ? (openBlock(), createBlock(unref(_sfc_main$l), { key: 1 })) : createCommentVNode("", true),
2680
+ unref(getShowUiSize) ? (openBlock(), createBlock(unref(_sfc_main$k), { key: 2 })) : createCommentVNode("", true),
2681
+ unref(getShowFullScreen) ? (openBlock(), createBlock(unref(_sfc_main$u), { key: 3 })) : createCommentVNode("", true),
2682
+ unref(getShowLocale) ? (openBlock(), createBlock(unref(_sfc_main$m), {
2308
2683
  key: 4,
2309
2684
  reload: true
2310
2685
  })) : createCommentVNode("", true),
2311
- createVNode(unref(_sfc_main$l)),
2312
- unref(getShowSettingTheme) ? (openBlock(), createBlock(unref(_sfc_main$g), { key: 5 })) : createCommentVNode("", true)
2686
+ createVNode(unref(_sfc_main$j)),
2687
+ unref(getShowSettingTheme) ? (openBlock(), createBlock(unref(_sfc_main$e), { key: 5 })) : createCommentVNode("", true)
2313
2688
  ], 4)
2314
2689
  ]),
2315
2690
  _: 1
@@ -2344,7 +2719,7 @@ function useTrigger() {
2344
2719
  });
2345
2720
  return { getTriggerAttr, getShowTrigger };
2346
2721
  }
2347
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
2722
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2348
2723
  __name: "sider-trigger",
2349
2724
  props: {
2350
2725
  type: {
@@ -2368,7 +2743,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
2368
2743
  };
2369
2744
  }
2370
2745
  });
2371
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2746
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2372
2747
  __name: "drag-bar",
2373
2748
  setup(__props) {
2374
2749
  const { getCollapsed, getCanDrag, getMenuWidth } = useMenu();
@@ -2394,29 +2769,193 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2394
2769
  };
2395
2770
  }
2396
2771
  });
2397
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2398
- __name: "index",
2772
+ const _hoisted_1$2 = { class: "dt-mix-sider__shallow-menu" };
2773
+ const _hoisted_2 = { class: "m-0" };
2774
+ const _hoisted_3 = { class: "dt-mix-sider__sub-shallow-menu" };
2775
+ const _hoisted_4 = { key: 0 };
2776
+ const _hoisted_5 = { class: "opacity-60 m-0 py-3 text-lg pt-6" };
2777
+ const _hoisted_6 = ["onClick"];
2778
+ const _hoisted_7 = { class: "m-0" };
2779
+ const _hoisted_8 = ["onClick"];
2780
+ const _hoisted_9 = { class: "m-0" };
2781
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2782
+ __name: "mix-sider",
2399
2783
  setup(__props) {
2400
- const {
2401
- getMenuFixed,
2402
- getSplit,
2403
- getMenuHidden,
2404
- getMenuWidth,
2405
- getCollapsed,
2406
- getMenuTheme,
2407
- getRealWidth,
2408
- getIsMixMode
2409
- } = useMenu();
2410
- const {
2411
- getCollapsedWidth,
2412
- onBreakPointChange
2413
- } = useMenuSwitch();
2414
- const {
2415
- getTriggerAttr,
2416
- getShowTrigger
2417
- } = useTrigger();
2418
- const dragBarRef = ref(null);
2419
- const sideRef = ref(null);
2784
+ const MENU_WIDTH = 80;
2785
+ const go = useGo();
2786
+ const { getMenuWidth, getMenuTheme, getMixSideTrigger } = useMenu();
2787
+ const { setMixSiderIsHasMenu } = useThemeStore();
2788
+ const menuModules = getShallowMenus();
2789
+ const activeId = ref("");
2790
+ const subMenus = ref([]);
2791
+ const getDomStyle = computed(() => setDomWidth(`${unref(subMenus)?.length ? unref(getMenuWidth) : MENU_WIDTH}px`));
2792
+ const getWrapStyle = computed(() => setDomWidth(`${MENU_WIDTH}px`));
2793
+ const getSubMenuStyle = computed(() => {
2794
+ return {
2795
+ width: `${unref(getMenuWidth) - MENU_WIDTH}px`,
2796
+ left: `${MENU_WIDTH}px`
2797
+ };
2798
+ });
2799
+ function setDomWidth(width) {
2800
+ return {
2801
+ width,
2802
+ minWidth: width,
2803
+ maxWidth: width,
2804
+ flex: `0 0 ${width}`,
2805
+ transition: "all 0.2s"
2806
+ };
2807
+ }
2808
+ const getMenuEvents = {
2809
+ onMouseleave: () => {
2810
+ setActive(currentRoute.value.path);
2811
+ }
2812
+ };
2813
+ const getItemEvents = (item) => {
2814
+ if (unref(getMixSideTrigger) === "hover") {
2815
+ return {
2816
+ onMouseenter: () => handleModuleClick(item.url, true),
2817
+ onClick: () => handleModuleClick(item.url)
2818
+ };
2819
+ }
2820
+ return {
2821
+ onClick: () => handleModuleClick(item.url)
2822
+ };
2823
+ };
2824
+ const { currentRoute = null } = useRouter();
2825
+ function setActive(path) {
2826
+ const pTree = getParentTreeByPath(path);
2827
+ activeId.value = pTree.id;
2828
+ subMenus.value = pTree.children;
2829
+ setMixSiderIsHasMenu(Boolean(pTree.children?.length));
2830
+ }
2831
+ function handleModuleClick(path, isHover = false) {
2832
+ setActive(path);
2833
+ if (!isHover) {
2834
+ go(path);
2835
+ }
2836
+ }
2837
+ watchEffect(() => {
2838
+ if (!currentRoute || currentRoute.value.path === "/")
2839
+ return;
2840
+ setActive(currentRoute.value.path);
2841
+ });
2842
+ return (_ctx, _cache) => {
2843
+ return openBlock(), createElementBlock(Fragment, null, [
2844
+ createElementVNode("div", {
2845
+ class: "h-full overflow-hidden",
2846
+ style: normalizeStyle(unref(getDomStyle))
2847
+ }, null, 4),
2848
+ createElementVNode("div", mergeProps({
2849
+ style: unref(getWrapStyle),
2850
+ class: ["dt-mix-sider fixed top-0 left-0 h-full overflow-hidden", unref(getMenuTheme)]
2851
+ }, getMenuEvents), [
2852
+ createVNode(_sfc_main$q, {
2853
+ showTitle: false,
2854
+ class: normalizeClass("justify-center z-10")
2855
+ }),
2856
+ createVNode(unref(DtScrollContainer), { class: "z-10" }, {
2857
+ default: withCtx(() => [
2858
+ createElementVNode("ul", _hoisted_1$2, [
2859
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(menuModules), (item) => {
2860
+ return openBlock(), createElementBlock("li", mergeProps({
2861
+ key: item.id,
2862
+ class: ["py-3 cursor-pointer relative text-center", {
2863
+ "active-menu": item.id === activeId.value
2864
+ }]
2865
+ }, getItemEvents(item)), [
2866
+ createElementVNode("i", {
2867
+ class: normalizeClass(["i", item.icon])
2868
+ }, null, 2),
2869
+ createElementVNode("p", _hoisted_2, toDisplayString(item.label), 1)
2870
+ ], 16);
2871
+ }), 128))
2872
+ ])
2873
+ ]),
2874
+ _: 1
2875
+ }),
2876
+ createVNode(Transition, { name: "dt-mix-sider__animate" }, {
2877
+ default: withCtx(() => [
2878
+ subMenus.value?.length ? (openBlock(), createElementBlock("div", {
2879
+ key: 0,
2880
+ class: "fixed top-0 h-full sub-menu bg-white",
2881
+ style: normalizeStyle(unref(getSubMenuStyle))
2882
+ }, [
2883
+ createVNode(unref(DtScrollContainer), null, {
2884
+ default: withCtx(() => [
2885
+ createElementVNode("ul", _hoisted_3, [
2886
+ (openBlock(true), createElementBlock(Fragment, null, renderList(subMenus.value, (menu) => {
2887
+ return openBlock(), createElementBlock("li", {
2888
+ key: menu.id
2889
+ }, [
2890
+ menu.children?.length ? (openBlock(), createElementBlock("div", _hoisted_4, [
2891
+ createElementVNode("p", _hoisted_5, toDisplayString(menu.label), 1),
2892
+ createElementVNode("ul", null, [
2893
+ (openBlock(true), createElementBlock(Fragment, null, renderList(menu.children, (subMenu) => {
2894
+ return openBlock(), createElementBlock("li", {
2895
+ key: subMenu.id,
2896
+ class: normalizeClass(["flex cursor-pointer", {
2897
+ "active-menu": subMenu.url === unref(currentRoute).fullPath
2898
+ }]),
2899
+ onClick: ($event) => unref(go)(subMenu.url)
2900
+ }, [
2901
+ createElementVNode("i", {
2902
+ class: normalizeClass(["i opacity-50 pr-2", subMenu.icon])
2903
+ }, null, 2),
2904
+ createElementVNode("p", _hoisted_7, toDisplayString(subMenu.label), 1)
2905
+ ], 10, _hoisted_6);
2906
+ }), 128))
2907
+ ])
2908
+ ])) : (openBlock(), createElementBlock("div", {
2909
+ key: 1,
2910
+ class: normalizeClass(["sub-menu flex cursor-pointer", {
2911
+ "active-menu": menu.url === unref(currentRoute).fullPath
2912
+ }]),
2913
+ onClick: ($event) => unref(go)(menu.url)
2914
+ }, [
2915
+ createElementVNode("i", {
2916
+ class: normalizeClass(["i opacity-50 pr-2", menu.icon])
2917
+ }, null, 2),
2918
+ createElementVNode("p", _hoisted_9, toDisplayString(menu.label), 1)
2919
+ ], 10, _hoisted_8))
2920
+ ]);
2921
+ }), 128))
2922
+ ])
2923
+ ]),
2924
+ _: 1
2925
+ })
2926
+ ], 4)) : createCommentVNode("", true)
2927
+ ]),
2928
+ _: 1
2929
+ })
2930
+ ], 16)
2931
+ ], 64);
2932
+ };
2933
+ }
2934
+ });
2935
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2936
+ __name: "index",
2937
+ setup(__props) {
2938
+ const {
2939
+ getMenuFixed,
2940
+ getSplit,
2941
+ getMenuHidden,
2942
+ getMenuWidth,
2943
+ getCollapsed,
2944
+ getMenuTheme,
2945
+ getRealWidth,
2946
+ getIsMixMode,
2947
+ getIsMixSidebar
2948
+ } = useMenu();
2949
+ const {
2950
+ getCollapsedWidth,
2951
+ onBreakPointChange
2952
+ } = useMenuSwitch();
2953
+ const {
2954
+ getTriggerAttr,
2955
+ getShowTrigger
2956
+ } = useTrigger();
2957
+ const dragBarRef = ref(null);
2958
+ const sideRef = ref(null);
2420
2959
  const hiddenDomStyle = computed(() => {
2421
2960
  const width = `${unref(getRealWidth)}px`;
2422
2961
  return {
@@ -2453,10 +2992,14 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2453
2992
  const getMode = computed(() => {
2454
2993
  return unref(getSplit) ? MenuMode.INLINE : null;
2455
2994
  });
2456
- const renderTrigger = h(_sfc_main$9);
2995
+ const renderTrigger = h(_sfc_main$7);
2457
2996
  return (_ctx, _cache) => {
2458
2997
  const _component_ALayoutSider = LayoutSider;
2459
- return openBlock(), createElementBlock(Fragment, null, [unref(getMenuFixed) ? withDirectives((openBlock(), createElementBlock("div", {
2998
+ return unref(getIsMixSidebar) ? (openBlock(), createBlock(_sfc_main$5, {
2999
+ key: 0
3000
+ })) : (openBlock(), createElementBlock(Fragment, {
3001
+ key: 1
3002
+ }, [unref(getMenuFixed) ? withDirectives((openBlock(), createElementBlock("div", {
2460
3003
  key: 0,
2461
3004
  style: normalizeStyle(unref(hiddenDomStyle))
2462
3005
  }, null, 4)), [[vShow, unref(showClassSideBarRef)]]) : createCommentVNode("", true), withDirectives(createVNode(_component_ALayoutSider, mergeProps({
@@ -2472,319 +3015,16 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2472
3015
  theme: unref(getMenuTheme),
2473
3016
  trigger: unref(renderTrigger)
2474
3017
  }, unref(getTriggerAttr)), {
2475
- default: withCtx(() => [createVNode(_sfc_main$b, {
3018
+ default: withCtx(() => [createVNode(_sfc_main$9, {
2476
3019
  theme: unref(getMenuTheme),
2477
3020
  menuMode: unref(getMode),
2478
3021
  splitType: unref(getSplitType)
2479
- }, null, 8, ["theme", "menuMode", "splitType"]), createVNode(_sfc_main$8, {
3022
+ }, null, 8, ["theme", "menuMode", "splitType"]), createVNode(_sfc_main$6, {
2480
3023
  ref_key: "dragBarRef",
2481
3024
  ref: dragBarRef
2482
3025
  }, null, 512)]),
2483
3026
  _: 1
2484
- }, 16, ["class", "width", "collapsed", "collapsedWidth", "onBreakpoint", "theme", "trigger"]), [[vShow, unref(showClassSideBarRef)]])], 64);
2485
- };
2486
- }
2487
- });
2488
- const _hoisted_1$5 = /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-autorenew" }, null, -1);
2489
- const _hoisted_2$1 = [
2490
- _hoisted_1$5
2491
- ];
2492
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2493
- __name: "TabRedo",
2494
- setup(__props) {
2495
- const tabStore = useRouteReuseStore();
2496
- const router = useRouter();
2497
- function handleRedo() {
2498
- tabStore.refreshPage(router);
2499
- }
2500
- return (_ctx, _cache) => {
2501
- return openBlock(), createElementBlock("span", {
2502
- onClick: handleRedo,
2503
- class: "inline-block w-9 h-9 leading-9 -mt-0.5 text-zinc-600 text-center cursor-pointer border-l border-zinc-300 hover:text-zinc-900"
2504
- }, _hoisted_2$1);
2505
- };
2506
- }
2507
- });
2508
- function useTabDropdown() {
2509
- const router = useRouter();
2510
- const { currentRoute } = router;
2511
- const tabStore = useRouteReuseStore();
2512
- const state = reactive({
2513
- current: null,
2514
- currentIndex: 0
2515
- });
2516
- const getDropMenuList = computed(() => {
2517
- const { t } = useI18n("UI");
2518
- const { path, meta } = unref(currentRoute);
2519
- const curItem = state.current;
2520
- const isCurItem = curItem ? curItem.path === path : false;
2521
- const index = state.currentIndex;
2522
- const closeLeftDisabled = index === 0 || !isCurItem;
2523
- const disabled = tabStore.getTabList.length === 1;
2524
- const closeRightDisabled = !isCurItem || index === tabStore.getTabList.length - 1 && tabStore.getLastDragEndIndex >= 0;
2525
- const dropMenuList = [
2526
- {
2527
- icon: "ic:baseline-close",
2528
- text: t("CLOSE_CURRENT_TAG"),
2529
- onClick: () => tabStore.closeTab(path, router),
2530
- disabled: !!meta?.affix || disabled,
2531
- divider: true
2532
- },
2533
- {
2534
- icon: "mdi:arrow-collapse-left",
2535
- text: t("CLOSE_LEFT_TAGS"),
2536
- onClick: () => tabStore.closeLeftTabs(path),
2537
- disabled: closeLeftDisabled,
2538
- divider: false
2539
- },
2540
- {
2541
- icon: "mdi:arrow-collapse-right",
2542
- text: t("CLOSE_RIGHT_TAGS"),
2543
- onClick: () => tabStore.closeRightTabs(path),
2544
- disabled: closeRightDisabled,
2545
- divider: true
2546
- },
2547
- {
2548
- icon: "ic:baseline-sync-alt",
2549
- text: t("CLOSE_OTHER_TAGS"),
2550
- onClick: () => tabStore.closeOtherTabs(path),
2551
- disabled: disabled || !isCurItem
2552
- },
2553
- {
2554
- icon: "ic:baseline-horizontal-rule",
2555
- text: t("CLOSE_ALL_TAGE"),
2556
- onClick: () => tabStore.closeAllTab(currentRoute, router),
2557
- disabled
2558
- }
2559
- ];
2560
- return dropMenuList;
2561
- });
2562
- function handleContext(e) {
2563
- e?.preventDefault();
2564
- const { path } = unref(currentRoute);
2565
- const index = tabStore.getTabList.findIndex((tab) => tab.path === path);
2566
- state.current = unref(currentRoute);
2567
- state.currentIndex = index;
2568
- }
2569
- function handleMenuEvent(item) {
2570
- item.onClick?.();
2571
- }
2572
- return {
2573
- getDropMenuList,
2574
- handleContext,
2575
- handleMenuEvent
2576
- };
2577
- }
2578
- const _hoisted_1$4 = /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-keyboard-arrow-down" }, null, -1);
2579
- const _hoisted_2 = [
2580
- _hoisted_1$4
2581
- ];
2582
- const _hoisted_3 = { class: "text-13" };
2583
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2584
- __name: "TabContent",
2585
- setup(__props) {
2586
- const { getDropMenuList, handleContext, handleMenuEvent } = useTabDropdown();
2587
- return (_ctx, _cache) => {
2588
- const _component_AMenuItem = MenuItem;
2589
- const _component_AMenuDivider = MenuDivider;
2590
- const _component_AMenu = Menu;
2591
- const _component_ADropdown = Dropdown;
2592
- return openBlock(), createBlock(_component_ADropdown, {
2593
- placement: "bottomRight",
2594
- trigger: ["click"],
2595
- overlayClassName: "dt-reuse-tabs__dropdown"
2596
- }, {
2597
- overlay: withCtx(() => [
2598
- createVNode(_component_AMenu, null, {
2599
- default: withCtx(() => [
2600
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getDropMenuList), (item, index) => {
2601
- return openBlock(), createElementBlock(Fragment, { key: index }, [
2602
- createVNode(_component_AMenuItem, {
2603
- onClick: ($event) => unref(handleMenuEvent)(item),
2604
- disabled: item.disabled
2605
- }, {
2606
- default: withCtx(() => [
2607
- createElementVNode("i", {
2608
- class: normalizeClass(["i pr-4", item.icon])
2609
- }, null, 2),
2610
- createElementVNode("span", _hoisted_3, toDisplayString(item.text), 1)
2611
- ]),
2612
- _: 2
2613
- }, 1032, ["onClick", "disabled"]),
2614
- item.divider ? (openBlock(), createBlock(_component_AMenuDivider, {
2615
- key: `d-${index}`
2616
- })) : createCommentVNode("", true)
2617
- ], 64);
2618
- }), 128))
2619
- ]),
2620
- _: 1
2621
- })
2622
- ]),
2623
- default: withCtx(() => [
2624
- createElementVNode("span", {
2625
- onClick: _cache[0] || (_cache[0] = (...args) => unref(handleContext) && unref(handleContext)(...args)),
2626
- class: "inline-block w-9 h-9 leading-9 -mt-0.5 text-zinc-600 text-center cursor-pointer border-l border-zinc-300 hover:text-zinc-900"
2627
- }, _hoisted_2)
2628
- ]),
2629
- _: 1
2630
- });
2631
- };
2632
- }
2633
- });
2634
- function initAffixTabs() {
2635
- const affixList = ref([]);
2636
- const tabStore = useRouteReuseStore();
2637
- const router = useRouter();
2638
- const filterAffixTabs = (routes = []) => {
2639
- return routes && routes.reduce((tabs, route) => {
2640
- if (route.meta && route.meta.affix) {
2641
- tabs.push(toRaw(route));
2642
- }
2643
- return tabs;
2644
- }, []);
2645
- };
2646
- const addAffixTabs = () => {
2647
- const affixTabs = filterAffixTabs(router.getRoutes());
2648
- affixList.value = affixTabs;
2649
- for (const tab of affixTabs) {
2650
- tabStore.addTab({
2651
- meta: tab.meta,
2652
- name: tab.name,
2653
- path: tab.path
2654
- });
2655
- }
2656
- };
2657
- let isAddAffix = false;
2658
- if (!isAddAffix) {
2659
- addAffixTabs();
2660
- isAddAffix = true;
2661
- }
2662
- return affixList.value.map((item) => item.meta?.title).filter(Boolean);
2663
- }
2664
- function useSortable(el, options) {
2665
- function initSortable() {
2666
- nextTick(async () => {
2667
- if (!el)
2668
- return;
2669
- const Sortable = (await import("sortablejs")).default;
2670
- Sortable.create(unref(el), {
2671
- animation: 500,
2672
- delay: 400,
2673
- delayOnTouchOnly: true,
2674
- ...options
2675
- });
2676
- });
2677
- }
2678
- return { initSortable };
2679
- }
2680
- function useTabsDrag(affixList) {
2681
- const tabStore = useRouteReuseStore();
2682
- const { getCanDrag } = useMultipleTab();
2683
- nextTick(() => {
2684
- if (!unref(getCanDrag))
2685
- return;
2686
- const el = document.querySelectorAll(`.dt-reuse-tabs .ant-tabs-nav-list`)?.[0];
2687
- const { initSortable } = useSortable(el, {
2688
- filter: (e) => {
2689
- const text = e?.target?.innerText;
2690
- if (!text)
2691
- return false;
2692
- return affixList.includes(text);
2693
- },
2694
- onEnd: (evt) => {
2695
- const { oldIndex, newIndex } = evt;
2696
- if (isNullAndUnDef(oldIndex) || isNullAndUnDef(newIndex) || oldIndex === newIndex)
2697
- return;
2698
- tabStore.sortTabs(oldIndex, newIndex);
2699
- }
2700
- });
2701
- initSortable();
2702
- });
2703
- }
2704
- const _hoisted_1$3 = { class: "dt-reuse-tabs leading-8 border-b border-solid border-gray-200" };
2705
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2706
- __name: "index",
2707
- setup(__props) {
2708
- const { t } = useI18n("UI");
2709
- const router = useRouter();
2710
- const go = useGo(router);
2711
- const tabStore = useRouteReuseStore();
2712
- const { getShowQuick, getShowRedo } = useMultipleTab();
2713
- const menuLabelMap = menuList2Map();
2714
- const activeKeyRef = ref(null);
2715
- const getTabsState = computed(() => {
2716
- return tabStore.getTabList.filter((item) => !item.meta?.hideTab);
2717
- });
2718
- const unClose = computed(() => unref(getTabsState).length === 1);
2719
- function handleChange(activeKey) {
2720
- activeKeyRef.value = activeKey;
2721
- go(activeKey);
2722
- }
2723
- function handleEdit(targetKey) {
2724
- if (unref(unClose))
2725
- return;
2726
- tabStore.closeTab(targetKey, router);
2727
- }
2728
- const affixTextList = initAffixTabs();
2729
- useTabsDrag(affixTextList);
2730
- watch(
2731
- () => router.currentRoute.value.path,
2732
- (v) => {
2733
- if (v === "/" || v === "/login")
2734
- return;
2735
- const { meta = {} } = unref(router.currentRoute);
2736
- const { hideTab = false } = meta;
2737
- if (activeKeyRef.value !== v) {
2738
- activeKeyRef.value = v;
2739
- }
2740
- if (!hideTab) {
2741
- tabStore.addTab(unref(router.currentRoute));
2742
- }
2743
- },
2744
- {
2745
- immediate: true
2746
- }
2747
- );
2748
- return (_ctx, _cache) => {
2749
- const _component_ATabPane = TabPane;
2750
- const _component_ATabs = Tabs;
2751
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
2752
- createVNode(_component_ATabs, {
2753
- type: "editable-card",
2754
- size: "small",
2755
- animated: false,
2756
- hideAdd: true,
2757
- tabBarGutter: 3,
2758
- activeKey: activeKeyRef.value,
2759
- onChange: handleChange,
2760
- onEdit: handleEdit,
2761
- class: "h-8"
2762
- }, createSlots({
2763
- default: withCtx(() => [
2764
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getTabsState), (item) => {
2765
- return openBlock(), createBlock(_component_ATabPane, {
2766
- key: item.query ? item.fullPath : item.path,
2767
- closable: !(item && item.meta && item.meta.affix)
2768
- }, {
2769
- tab: withCtx(() => [
2770
- createElementVNode("span", null, toDisplayString(unref(menuLabelMap).get(item.path) || unref(t)("UNKNOWN_ROUTE")), 1)
2771
- ]),
2772
- _: 2
2773
- }, 1032, ["closable"]);
2774
- }), 128))
2775
- ]),
2776
- _: 2
2777
- }, [
2778
- unref(getShowRedo) || unref(getShowQuick) ? {
2779
- name: "rightExtra",
2780
- fn: withCtx(() => [
2781
- unref(getShowRedo) ? (openBlock(), createBlock(unref(_sfc_main$6), { key: 0 })) : createCommentVNode("", true),
2782
- unref(getShowQuick) ? (openBlock(), createBlock(unref(_sfc_main$5), { key: 1 })) : createCommentVNode("", true)
2783
- ]),
2784
- key: "0"
2785
- } : void 0
2786
- ]), 1032, ["activeKey"])
2787
- ]);
3027
+ }, 16, ["class", "width", "collapsed", "collapsedWidth", "onBreakpoint", "theme", "trigger"]), [[vShow, unref(showClassSideBarRef)]])], 64));
2788
3028
  };
2789
3029
  }
2790
3030
  });
@@ -2795,12 +3035,11 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2795
3035
  getHeaderHeight,
2796
3036
  getFixed,
2797
3037
  getShowFullHeaderRef,
2798
- getHeaderTheme,
2799
3038
  getShowInsetHeaderRef,
2800
3039
  getTabsHeight
2801
3040
  } = useHeader();
2802
- const { getCalcContentWidth, getIsMixMode, getIsTopMenu, getSplit } = useMenu();
2803
- const { getShowMultipleTab } = useMultipleTab();
3041
+ const { getCalcContentWidth, getIsMixMode, getSplit, getIsMixSidebar } = useMenu();
3042
+ const { getShowMultipleTab, getMultipleTabPosIsTop } = useMultipleTab();
2804
3043
  const getPlaceholderDomStyle = computed(() => {
2805
3044
  let height = unref(getHeaderHeight);
2806
3045
  if (unref(getIsMixMode)) {
@@ -2816,7 +3055,9 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2816
3055
  const { menusRef } = useSplitMenu(getSplitType);
2817
3056
  const getWrapStyle = computed(() => {
2818
3057
  const style = {};
2819
- if (unref(getSplit) && !unref(menusRef)?.length) {
3058
+ if (unref(getIsMixSidebar)) {
3059
+ style.width = useThemeStore().getMixSiderIsHasMenu ? unref(getCalcContentWidth) : "calc(100% - 80px)";
3060
+ } else if (unref(getSplit) && !unref(menusRef)?.length) {
2820
3061
  style.width = "100%";
2821
3062
  } else if (unref(getFixed)) {
2822
3063
  style.width = unref(getCalcContentWidth);
@@ -2842,14 +3083,14 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2842
3083
  style: normalizeStyle(unref(getWrapStyle)),
2843
3084
  class: normalizeClass(unref(getClass))
2844
3085
  }, [
2845
- unref(getShowInsetHeaderRef) ? (openBlock(), createBlock(_sfc_main$a, { key: 0 })) : createCommentVNode("", true),
2846
- unref(getShowMultipleTab) ? (openBlock(), createBlock(_sfc_main$4, { key: 1 })) : createCommentVNode("", true)
3086
+ unref(getShowInsetHeaderRef) ? (openBlock(), createBlock(_sfc_main$8, { key: 0 })) : createCommentVNode("", true),
3087
+ unref(getShowMultipleTab) && !unref(getMultipleTabPosIsTop) ? (openBlock(), createBlock(_sfc_main$v, { key: 1 })) : createCommentVNode("", true)
2847
3088
  ], 6)
2848
3089
  ]);
2849
3090
  };
2850
3091
  }
2851
3092
  });
2852
- const _hoisted_1$2 = { class: "pr-2.5" };
3093
+ const _hoisted_1$1 = { class: "pr-2.5" };
2853
3094
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
2854
3095
  __name: "index",
2855
3096
  setup(__props) {
@@ -2870,7 +3111,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
2870
3111
  style: normalizeStyle(unref(footerOptions))
2871
3112
  }, {
2872
3113
  default: withCtx(() => [
2873
- createElementVNode("span", _hoisted_1$2, toDisplayString(unref(title)), 1),
3114
+ createElementVNode("span", _hoisted_1$1, toDisplayString(unref(title)), 1),
2874
3115
  createElementVNode("span", null, toDisplayString(unref(subTitle)), 1)
2875
3116
  ]),
2876
3117
  _: 1
@@ -2878,7 +3119,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
2878
3119
  };
2879
3120
  }
2880
3121
  });
2881
- const _hoisted_1$1 = ["loading"];
3122
+ const _hoisted_1 = ["loading"];
2882
3123
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2883
3124
  __name: "index",
2884
3125
  setup(__props) {
@@ -2925,54 +3166,24 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2925
3166
  ]),
2926
3167
  _: 1
2927
3168
  })
2928
- ], 10, _hoisted_1$1);
3169
+ ], 10, _hoisted_1);
2929
3170
  };
2930
3171
  }
2931
3172
  });
2932
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
2933
- var zhCn = { exports: {} };
2934
- (function(module, exports) {
2935
- !function(e, _) {
2936
- module.exports = _(require$$0);
2937
- }(commonjsGlobal, function(e) {
2938
- function _(e2) {
2939
- return e2 && "object" == typeof e2 && "default" in e2 ? e2 : { default: e2 };
2940
- }
2941
- var t = _(e), d = { name: "zh-cn", weekdays: "\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"), weekdaysShort: "\u5468\u65E5_\u5468\u4E00_\u5468\u4E8C_\u5468\u4E09_\u5468\u56DB_\u5468\u4E94_\u5468\u516D".split("_"), weekdaysMin: "\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"), months: "\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"), monthsShort: "1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"), ordinal: function(e2, _2) {
2942
- return "W" === _2 ? e2 + "\u5468" : e2 + "\u65E5";
2943
- }, weekStart: 1, yearStart: 4, formats: { LT: "HH:mm", LTS: "HH:mm:ss", L: "YYYY/MM/DD", LL: "YYYY\u5E74M\u6708D\u65E5", LLL: "YYYY\u5E74M\u6708D\u65E5Ah\u70B9mm\u5206", LLLL: "YYYY\u5E74M\u6708D\u65E5ddddAh\u70B9mm\u5206", l: "YYYY/M/D", ll: "YYYY\u5E74M\u6708D\u65E5", lll: "YYYY\u5E74M\u6708D\u65E5 HH:mm", llll: "YYYY\u5E74M\u6708D\u65E5dddd HH:mm" }, relativeTime: { future: "%s\u5185", past: "%s\u524D", s: "\u51E0\u79D2", m: "1 \u5206\u949F", mm: "%d \u5206\u949F", h: "1 \u5C0F\u65F6", hh: "%d \u5C0F\u65F6", d: "1 \u5929", dd: "%d \u5929", M: "1 \u4E2A\u6708", MM: "%d \u4E2A\u6708", y: "1 \u5E74", yy: "%d \u5E74" }, meridiem: function(e2, _2) {
2944
- var t2 = 100 * e2 + _2;
2945
- return t2 < 600 ? "\u51CC\u6668" : t2 < 900 ? "\u65E9\u4E0A" : t2 < 1100 ? "\u4E0A\u5348" : t2 < 1300 ? "\u4E2D\u5348" : t2 < 1800 ? "\u4E0B\u5348" : "\u665A\u4E0A";
2946
- } };
2947
- return t.default.locale(d, null, true), d;
2948
- });
2949
- })(zhCn);
2950
- var esUs = { exports: {} };
2951
- (function(module, exports) {
2952
- !function(e, s) {
2953
- module.exports = s(require$$0);
2954
- }(commonjsGlobal, function(e) {
2955
- function s(e2) {
2956
- return e2 && "object" == typeof e2 && "default" in e2 ? e2 : { default: e2 };
2957
- }
2958
- var o = s(e), d = { name: "es-us", weekdays: "domingo_lunes_martes_mi\xE9rcoles_jueves_viernes_s\xE1bado".split("_"), weekdaysShort: "dom._lun._mar._mi\xE9._jue._vie._s\xE1b.".split("_"), weekdaysMin: "do_lu_ma_mi_ju_vi_s\xE1".split("_"), months: "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"), monthsShort: "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"), relativeTime: { future: "en %s", past: "hace %s", s: "unos segundos", m: "un minuto", mm: "%d minutos", h: "una hora", hh: "%d horas", d: "un d\xEDa", dd: "%d d\xEDas", M: "un mes", MM: "%d meses", y: "un a\xF1o", yy: "%d a\xF1os" }, ordinal: function(e2) {
2959
- return e2 + "\xBA";
2960
- }, formats: { LT: "h:mm A", LTS: "h:mm:ss A", L: "MM/DD/YYYY", LL: "D [de] MMMM [de] YYYY", LLL: "D [de] MMMM [de] YYYY h:mm A", LLLL: "dddd, D [de] MMMM [de] YYYY h:mm A" } };
2961
- return o.default.locale(d, null, true), d;
2962
- });
2963
- })(esUs);
2964
- const _hoisted_1 = { class: "dt-theme w-full h-full" };
2965
3173
  const _sfc_main = /* @__PURE__ */ defineComponent({
2966
3174
  __name: "index",
2967
3175
  setup(__props) {
2968
3176
  const { currentRoute } = useRouter();
2969
3177
  const { getShowFullHeaderRef, getIsZH, getHeaderHeight, getUiSize } = useHeader();
2970
- const { getSplit, getShowMenu, getShowSidebar } = useMenu();
3178
+ const { getSplit, getShowMenu, getShowSidebar, getIsMixSidebar } = useMenu();
2971
3179
  const { getFooter, getShowFooter } = useTheme();
2972
3180
  const { height } = unref(getFooter);
2973
- require$$0.locale(unref(getIsZH) ? "zh-cn" : "en");
3181
+ dayjs.locale(unref(getIsZH) ? "zh-cn" : "en");
2974
3182
  const layoutClass = computed(() => {
2975
3183
  let cls = "ant-layout";
3184
+ if (unref(getIsMixSidebar)) {
3185
+ cls += " ant-layout-has-sider";
3186
+ }
2976
3187
  if (unref(getShowMenu)) {
2977
3188
  cls += " flex flex-auto min-h-0 flex-row";
2978
3189
  }
@@ -2995,7 +3206,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2995
3206
  return (_ctx, _cache) => {
2996
3207
  const _component_ALayout = Layout;
2997
3208
  const _component_AConfigProvider = ConfigProvider;
2998
- return openBlock(), createElementBlock("div", _hoisted_1, [
3209
+ return openBlock(), createElementBlock("div", {
3210
+ class: normalizeClass(["dt-theme w-full h-full", `dt-theme-${unref(getUiSize)}`])
3211
+ }, [
2999
3212
  createVNode(_component_AConfigProvider, {
3000
3213
  locale: unref(getIsZH) ? unref(zhCN) : unref(en),
3001
3214
  "component-size": unref(getUiSize)
@@ -3006,8 +3219,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3006
3219
  class: "w-full h-full flex"
3007
3220
  }, {
3008
3221
  default: withCtx(() => [
3009
- createVNode(_sfc_main$x),
3010
- unref(getShowFullHeaderRef) ? (openBlock(), createBlock(_sfc_main$a, {
3222
+ createVNode(_sfc_main$y),
3223
+ unref(getShowFullHeaderRef) ? (openBlock(), createBlock(_sfc_main$8, {
3011
3224
  key: 0,
3012
3225
  fixed: ""
3013
3226
  })) : createCommentVNode("", true),
@@ -3016,8 +3229,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3016
3229
  style: normalizeStyle(unref(layoutOption))
3017
3230
  }, {
3018
3231
  default: withCtx(() => [
3019
- unref(getShowSidebar) ? (openBlock(), createBlock(_sfc_main$7, { key: 0 })) : createCommentVNode("", true),
3020
- createVNode(_component_ALayout, { class: "dt-theme-main flex w-full h-ful" }, {
3232
+ unref(getShowSidebar) ? (openBlock(), createBlock(_sfc_main$4, { key: 0 })) : createCommentVNode("", true),
3233
+ createVNode(_component_ALayout, { class: "dt-theme-main flex w-full h-ful transition-width duration-200" }, {
3021
3234
  default: withCtx(() => [
3022
3235
  createVNode(_sfc_main$3),
3023
3236
  createVNode(_sfc_main$1, {
@@ -3036,7 +3249,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3036
3249
  ]),
3037
3250
  _: 1
3038
3251
  }, 8, ["locale", "component-size"])
3039
- ]);
3252
+ ], 2);
3040
3253
  };
3041
3254
  }
3042
3255
  });
@@ -3123,7 +3336,7 @@ const EN = {
3123
3336
  "NAV_MODE": "Navigation bar mode",
3124
3337
  "PAGE_SHOW": "Interface Display",
3125
3338
  "COPY": "Copy",
3126
- "DRAWER_TIPS": "The function mainly real-time preview layout effect, more complete configuration in the SRC/core/Settings/theme.ts. The layout preview function will be turned off in production.",
3339
+ "DRAWER_TIPS": "The function mainly real-time preview layout effect, more complete configuration in the src/core/Settings/theme.ts. The layout preview function will be turned off in production.",
3127
3340
  "FULL": "Flow-based",
3128
3341
  "FIXED": "Fixed width",
3129
3342
  "BREAD_CURB": "Bread crumbs",
@@ -3247,7 +3460,9 @@ const ZH = {
3247
3460
  const uiLang = (lang) => lang === Language.ZH ? ZH : EN;
3248
3461
  const DtTheme = withInstall$1(_sfc_main);
3249
3462
  export {
3463
+ ContentMode,
3250
3464
  DtTheme,
3465
+ UiSize,
3251
3466
  defaultThemeConf,
3252
3467
  uiLang,
3253
3468
  useRouteReuseStore,