@dt-frames/ui 2.0.4 → 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 (117) hide show
  1. package/es/components/curd/index.js +80 -75
  2. package/es/components/curd/src/components/Curd.d.ts +0 -8
  3. package/es/components/curd/src/props.d.ts +0 -4
  4. package/es/components/form/index.d.ts +20 -53
  5. package/es/components/form/index.js +17 -27
  6. package/es/components/form/index.less +8 -3
  7. package/es/components/form/src/index.d.ts +16 -41
  8. package/es/components/source/index.js +8 -5
  9. package/es/components/source/types/source.type.d.ts +1 -0
  10. package/es/components/table/index.js +145 -95
  11. package/es/components/table/index.less +26 -5
  12. package/es/components/table/src/components/TableAction.d.ts +1 -1
  13. package/es/components/table/src/index.d.ts +10 -0
  14. package/es/components/table/src/props.d.ts +4 -0
  15. package/es/components/tree/index.d.ts +2 -0
  16. package/es/components/tree/index.js +1087 -0
  17. package/es/components/tree/index.less +119 -0
  18. package/es/components/tree/src/basicProps.d.ts +146 -0
  19. package/es/components/tree/src/components/ContextMenu.d.ts +64 -0
  20. package/es/components/tree/src/components/TreeHeader.d.ts +98 -0
  21. package/es/components/tree/src/enums/index.d.ts +6 -0
  22. package/es/components/tree/src/hooks/useContextMenu.d.ts +2 -0
  23. package/es/components/tree/src/hooks/useTree.d.ts +14 -0
  24. package/es/components/tree/src/index.d.ts +6526 -0
  25. package/es/components/tree/src/type/menu.d.ts +33 -0
  26. package/es/components/tree/src/type/tree.d.ts +55 -0
  27. package/es/components/tree/src/utils/tree.d.ts +5 -0
  28. package/es/packages/ui/src/assets/locales/en.d.ts +101 -0
  29. package/es/packages/ui/src/assets/locales/index.d.ts +2 -0
  30. package/es/packages/ui/src/assets/locales/zh.d.ts +103 -0
  31. package/es/packages/ui/src/components/container/index.d.ts +94 -0
  32. package/es/packages/ui/src/components/container/src/components/bar.d.ts +14 -0
  33. package/es/packages/ui/src/components/container/src/components/scroll-bar.d.ts +70 -0
  34. package/es/packages/ui/src/components/container/src/hooks/scroll.d.ts +10 -0
  35. package/es/packages/ui/src/components/container/src/scroll-container.d.ts +76 -0
  36. package/es/packages/ui/src/components/container/src/slot-container.d.ts +20 -0
  37. package/es/packages/ui/src/components/container/src/types/scroll.type.d.ts +22 -0
  38. package/es/packages/ui/src/components/container/src/utils/scroll.d.ts +5 -0
  39. package/es/packages/ui/src/global.d.ts +7 -0
  40. package/es/packages/ui/src/theme/index.d.ts +10 -0
  41. package/es/packages/ui/src/theme/src/components/content/index.d.ts +27 -0
  42. package/es/packages/ui/src/theme/src/components/feature/back-top.d.ts +5 -0
  43. package/es/packages/ui/src/theme/src/components/feature/index.d.ts +7 -0
  44. package/es/packages/ui/src/theme/src/components/footer/index.d.ts +31 -0
  45. package/es/packages/ui/src/theme/src/components/header/components/bread-crumb.d.ts +6 -0
  46. package/es/packages/ui/src/theme/src/components/header/components/fullscreen.d.ts +5 -0
  47. package/es/packages/ui/src/theme/src/components/header/components/index.d.ts +11 -0
  48. package/es/packages/ui/src/theme/src/components/header/components/lang-picker.d.ts +23 -0
  49. package/es/packages/ui/src/theme/src/components/header/components/logo.d.ts +56 -0
  50. package/es/packages/ui/src/theme/src/components/header/components/menu-filter.d.ts +22 -0
  51. package/es/packages/ui/src/theme/src/components/header/components/notify.d.ts +24 -0
  52. package/es/packages/ui/src/theme/src/components/header/components/setting-theme.d.ts +223 -0
  53. package/es/packages/ui/src/theme/src/components/header/components/size.d.ts +282 -0
  54. package/es/packages/ui/src/theme/src/components/header/components/theme-drawer/feature.d.ts +138 -0
  55. package/es/packages/ui/src/theme/src/components/header/components/theme-drawer/index.d.ts +3 -0
  56. package/es/packages/ui/src/theme/src/components/header/components/theme-drawer/menu-type.d.ts +16 -0
  57. package/es/packages/ui/src/theme/src/components/header/components/theme-drawer/select.d.ts +58 -0
  58. package/es/packages/ui/src/theme/src/components/header/components/theme-drawer/switch.d.ts +49 -0
  59. package/es/packages/ui/src/theme/src/components/header/components/trigger.d.ts +10 -0
  60. package/es/packages/ui/src/theme/src/components/header/components/user-info.d.ts +37 -0
  61. package/es/packages/ui/src/theme/src/components/header/helper/change-theme.d.ts +13 -0
  62. package/es/packages/ui/src/theme/src/components/header/helper/menu-tree.d.ts +4 -0
  63. package/es/packages/ui/src/theme/src/components/header/index.d.ts +720 -0
  64. package/es/packages/ui/src/theme/src/components/header/multiple-header.d.ts +806 -0
  65. package/es/packages/ui/src/theme/src/components/sider/components/basic-menu/basic-menu-item.d.ts +62 -0
  66. package/es/packages/ui/src/theme/src/components/sider/components/basic-menu/basic-menu.d.ts +207 -0
  67. package/es/packages/ui/src/theme/src/components/sider/components/basic-menu/basic-sub-menu-item.d.ts +127 -0
  68. package/es/packages/ui/src/theme/src/components/sider/components/basic-menu/menu-item-content.d.ts +26 -0
  69. package/es/packages/ui/src/theme/src/components/sider/components/drag-bar.d.ts +14 -0
  70. package/es/packages/ui/src/theme/src/components/sider/components/layout-menu.d.ts +22 -0
  71. package/es/packages/ui/src/theme/src/components/sider/components/props.d.ts +69 -0
  72. package/es/packages/ui/src/theme/src/components/sider/components/sider-trigger.d.ts +17 -0
  73. package/es/packages/ui/src/theme/src/components/sider/helper/sider.d.ts +12 -0
  74. package/es/packages/ui/src/theme/src/components/sider/helper/split-menu.d.ts +10 -0
  75. package/es/packages/ui/src/theme/src/components/sider/index.d.ts +235 -0
  76. package/es/packages/ui/src/theme/src/components/sider/mix-sider.d.ts +167 -0
  77. package/es/packages/ui/src/theme/src/components/tabs/components/TabContent.d.ts +6 -0
  78. package/es/packages/ui/src/theme/src/components/tabs/components/TabRedo.d.ts +21 -0
  79. package/es/packages/ui/src/theme/src/components/tabs/components/index.d.ts +3 -0
  80. package/es/packages/ui/src/theme/src/components/tabs/hooks/useMultifyTabs.d.ts +7 -0
  81. package/es/packages/ui/src/theme/src/components/tabs/hooks/useTabDropdown.d.ts +6 -0
  82. package/es/packages/ui/src/theme/src/components/tabs/index.d.ts +63 -0
  83. package/es/packages/ui/src/theme/src/components/tabs/types/tabs.type.d.ts +7 -0
  84. package/es/packages/ui/src/theme/src/enums/index.d.ts +1 -0
  85. package/es/packages/ui/src/theme/src/enums/theme.enum.d.ts +34 -0
  86. package/es/packages/ui/src/theme/src/hooks/index.d.ts +6 -0
  87. package/es/packages/ui/src/theme/src/hooks/useDragLine.d.ts +2 -0
  88. package/es/packages/ui/src/theme/src/hooks/useHeader.d.ts +25 -0
  89. package/es/packages/ui/src/theme/src/hooks/useMenu.d.ts +29 -0
  90. package/es/packages/ui/src/theme/src/hooks/useMultifyTab.d.ts +8 -0
  91. package/es/packages/ui/src/theme/src/hooks/useOpenKeys.d.ts +7 -0
  92. package/es/packages/ui/src/theme/src/hooks/useTheme.d.ts +9 -0
  93. package/es/packages/ui/src/theme/src/index.d.ts +1851 -0
  94. package/es/packages/ui/src/theme/src/setting/theme.setting.d.ts +2 -0
  95. package/es/packages/ui/src/theme/src/stores/index.d.ts +3 -0
  96. package/es/packages/ui/src/theme/src/stores/routeReuse.store.d.ts +23 -0
  97. package/es/packages/ui/src/theme/src/stores/theme.store.d.ts +18 -0
  98. package/es/packages/ui/src/theme/src/types/index.d.ts +3 -0
  99. package/es/packages/ui/src/theme/src/types/menu.type.d.ts +15 -0
  100. package/es/packages/ui/src/theme/src/types/theme.type.d.ts +62 -0
  101. package/es/packages/ui/src/utils/withInstall.d.ts +4 -0
  102. package/es/theme/index.d.ts +2 -1
  103. package/es/theme/index.js +658 -665
  104. package/es/theme/index.less +55 -0
  105. package/es/theme/src/components/header/components/logo.d.ts +22 -0
  106. package/es/theme/src/components/header/index.d.ts +87 -0
  107. package/es/theme/src/components/header/multiple-header.d.ts +88 -0
  108. package/es/theme/src/components/sider/index.d.ts +22 -0
  109. package/es/theme/src/components/sider/mix-sider.d.ts +22 -0
  110. package/es/theme/src/hooks/useMultifyTab.d.ts +1 -0
  111. package/es/theme/src/index.d.ts +197 -0
  112. package/es/theme/src/types/theme.type.d.ts +1 -0
  113. package/index.d.ts +2 -1
  114. package/index.js +6 -2
  115. package/package.json +4 -2
  116. package/tsconfig.json +1 -0
  117. 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, Transition, createSlots, 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";
@@ -368,12 +370,14 @@ function useMultipleTab() {
368
370
  const { getRouteReuseConf } = useThemeStore();
369
371
  const getShowMultipleTab = computed(() => getRouteReuseConf.show);
370
372
  const getShowQuick = computed(() => getRouteReuseConf.showQuick);
373
+ const getMultipleTabPosIsTop = computed(() => getRouteReuseConf.position === "top");
371
374
  const getShowRedo = computed(() => getRouteReuseConf.showRedo);
372
375
  const getCanCache = computed(() => getRouteReuseConf.cache);
373
376
  const getCanDrag = computed(() => getRouteReuseConf.canDrag);
374
377
  return {
375
378
  getShowMultipleTab,
376
379
  getShowQuick,
380
+ getMultipleTabPosIsTop,
377
381
  getShowRedo,
378
382
  getCanCache,
379
383
  getCanDrag
@@ -394,7 +398,7 @@ function useHeader() {
394
398
  getIsTopMenu,
395
399
  getIsMixSidebar
396
400
  } = useMenu();
397
- const { getShowMultipleTab } = useMultipleTab();
401
+ const { getShowMultipleTab, getMultipleTabPosIsTop } = useMultipleTab();
398
402
  const getHeaderTheme = computed(() => getHeaderConf.theme);
399
403
  const getFixed = computed(() => getHeaderConf.fixed);
400
404
  const getShowHeaderLogo = computed(() => unref(getShowLogo) && !unref(getIsSidebarType) && !unref(getIsMixSidebar));
@@ -420,7 +424,7 @@ function useHeader() {
420
424
  const getHeaderHeight = computed(() => {
421
425
  let height = 0;
422
426
  height += HEADER_HEIGHT;
423
- if (unref(getShowMultipleTab) && !unref(getSplit)) {
427
+ if (unref(getShowMultipleTab) && !unref(getSplit) && !unref(getMultipleTabPosIsTop)) {
424
428
  height += TABS_HEIGHT;
425
429
  }
426
430
  return height;
@@ -661,228 +665,322 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
661
665
  };
662
666
  }
663
667
  });
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
+ ];
664
672
  const _sfc_main$x = /* @__PURE__ */ defineComponent({
665
- __name: "fullscreen",
673
+ __name: "TabRedo",
666
674
  setup(__props) {
667
- const { toggle, isFullscreen } = useFullscreen();
675
+ const tabStore = useRouteReuseStore();
676
+ const router = useRouter();
677
+ function handleRedo() {
678
+ tabStore.refreshPage(router);
679
+ }
668
680
  return (_ctx, _cache) => {
669
681
  return openBlock(), createElementBlock("span", {
670
- 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",
671
- onClick: _cache[0] || (_cache[0] = (...args) => unref(toggle) && unref(toggle)(...args))
672
- }, [
673
- createElementVNode("i", {
674
- class: normalizeClass(["i block", !unref(isFullscreen) ? "ic:baseline-fullscreen" : "ic:baseline-fullscreen-exit"])
675
- }, null, 2)
676
- ]);
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);
677
685
  };
678
686
  }
679
687
  });
680
- const _hoisted_1$i = ["src"];
681
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
682
- __name: "logo",
683
- props: {
684
- theme: { type: String, validator: (v) => ["light", "dark"].includes(v) },
685
- showTitle: { type: Boolean, default: true }
686
- },
687
- setup(__props) {
688
- 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(() => {
689
697
  const { t } = useI18n("UI");
690
- const title = t("COMPANY_NAME");
691
- const { getLogoWidth } = useMenu();
692
- const getLogoClass = computed(() => {
693
- 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 `;
694
- });
695
- return (_ctx, _cache) => {
696
- return openBlock(), createElementBlock("div", {
697
- class: normalizeClass(unref(getLogoClass)),
698
- style: normalizeStyle({
699
- minWidth: `${unref(getLogoWidth)}px`
700
- })
701
- }, [
702
- createElementVNode("img", { src: "/node_modules/@dt-frames/ui/es/assets/imgs/logo/logo.png" }, null, 8, _hoisted_1$i),
703
- withDirectives(createElementVNode("div", { class: "dt-logo__title text-base font-bold transition-all duration-500 pl-3" }, toDisplayString(unref(title)), 513), [
704
- [vShow, __props.showTitle]
705
- ])
706
- ], 6);
707
- };
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;
708
748
  }
709
- });
710
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
711
- __name: "trigger",
712
- props: { theme: String },
713
- setup(__props) {
714
- const props = __props;
715
- const { getCollapsed, toggleCollapsed } = useMenu();
716
- return (_ctx, _cache) => {
717
- return openBlock(), createElementBlock("div", {
718
- class: normalizeClass(["flex w-12 h-full cursor-pointer items-center justify-center", props.theme]),
719
- onClick: _cache[0] || (_cache[0] = (...args) => unref(toggleCollapsed) && unref(toggleCollapsed)(...args))
720
- }, [
721
- createElementVNode("i", {
722
- class: normalizeClass(["i leading-none", unref(getCollapsed) ? "ic:baseline-format-indent-increase" : "ic:baseline-format-indent-decrease"])
723
- }, null, 2)
724
- ], 2);
725
- };
749
+ function handleMenuEvent(item) {
750
+ item.onClick?.();
726
751
  }
727
- });
728
- const _hoisted_1$h = { class: "dt-breadcrumb" };
729
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
730
- __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",
731
765
  setup(__props) {
732
- const { getIsZH } = useHeader();
733
- let routes = ref([]);
734
- const { currentRoute = null } = useRouter();
735
- watchEffect(() => {
736
- if (!currentRoute || currentRoute.value.path === "/")
737
- return;
738
- routes.value = getBreadCrumb(currentRoute.value.path);
739
- });
766
+ const { getDropMenuList, handleContext, handleMenuEvent } = useTabDropdown();
740
767
  return (_ctx, _cache) => {
741
- const _component_ABreadcrumb = Breadcrumb;
742
- return openBlock(), createElementBlock("div", _hoisted_1$h, [
743
- createVNode(_component_ABreadcrumb, { routes: unref(routes) }, {
744
- itemRender: withCtx(({ route }) => [
745
- createElementVNode("span", null, toDisplayString((unref(getIsZH) ? route.label : route.enLabel) || route.meta?.title), 1)
746
- ]),
747
- _: 1
748
- }, 8, ["routes"])
749
- ]);
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
+ });
750
811
  };
751
812
  }
752
813
  });
753
- const _hoisted_1$g = {
754
- key: 0,
755
- class: "dt-menu-filter h-7 pr-2"
756
- };
757
- const _hoisted_2$9 = ["onClick"];
758
- const _hoisted_3$6 = {
759
- key: 0,
760
- class: "flex items-center justify-center h-full overflow-hidden"
761
- };
762
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
763
- __name: "menu-filter",
764
- setup(__props) {
765
- const { t } = useI18n("UI");
766
- const menuList = ref([]);
767
- const router = useRouter();
768
- const filter = ref("");
769
- const { getShowSearch, getIsZH } = useHeader();
770
- const isUseDef = computed(() => {
771
- return isBoolean(getShowSearch.value);
772
- });
773
- function visibleChange(e) {
774
- if (e) {
775
- filterMenu();
776
- } else {
777
- 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));
778
822
  }
779
- }
780
- function filterMenu() {
781
- menuList.value = getFilterMenu(filter.value, true);
782
- }
783
- function navigation(url) {
784
- router.push(url);
785
- setTimeout(() => {
786
- filter.value = "";
787
- 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
788
834
  });
789
835
  }
790
- return (_ctx, _cache) => {
791
- const _component_AEmpty = Empty;
792
- const _component_AInputSearch = InputSearch;
793
- const _component_APopover = Popover;
794
- return unref(isUseDef) ? (openBlock(), createElementBlock("div", _hoisted_1$g, [
795
- createVNode(_component_APopover, {
796
- placement: "bottom",
797
- overlayClassName: "dt-menu-filter__popover",
798
- trigger: "focus",
799
- onVisibleChange: visibleChange
800
- }, {
801
- content: withCtx(() => [
802
- (openBlock(true), createElementBlock(Fragment, null, renderList(menuList.value, (menu) => {
803
- return openBlock(), createElementBlock("p", {
804
- onClick: ($event) => navigation(menu.url),
805
- class: "px-5 leading-9 border-gray-200 border-dashed border-b m-0 cursor-pointer transition-all duration-300 text-13"
806
- }, toDisplayString(unref(getIsZH) ? menu.label : menu.enLabel), 9, _hoisted_2$9);
807
- }), 256)),
808
- !menuList.value.length ? (openBlock(), createElementBlock("div", _hoisted_3$6, [
809
- createVNode(_component_AEmpty, {
810
- description: "\u6682\u65E0\u6570\u636E",
811
- imageStyle: { width: "100%" }
812
- })
813
- ])) : createCommentVNode("", true)
814
- ]),
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
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);
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
+ );
928
+ return (_ctx, _cache) => {
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({
815
943
  default: withCtx(() => [
816
- createVNode(_component_AInputSearch, {
817
- value: filter.value,
818
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => filter.value = $event),
819
- placeholder: unref(t)("FILTER_MORE"),
820
- onInput: filterMenu,
821
- size: unref(UiSize).SMALL
822
- }, 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))
823
955
  ]),
824
- _: 1
825
- })
826
- ])) : 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
+ ]);
827
968
  };
828
969
  }
829
970
  });
830
- const _hoisted_1$f = { class: "lang m-0" };
831
- const _hoisted_2$8 = ["onClick"];
832
- const _hoisted_3$5 = {
833
- class: "pr-2",
834
- size: 16
835
- };
836
- 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" }, [
837
- /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-language" })
838
- ], -1);
839
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
840
- __name: "lang-picker",
841
- props: {
842
- reload: { type: Boolean }
843
- },
971
+ const _sfc_main$u = /* @__PURE__ */ defineComponent({
972
+ __name: "fullscreen",
844
973
  setup(__props) {
845
- const props = __props;
846
- const visible = ref(false);
847
- let currentLang = DtCache.getLocal(CacheKey.LOCALE);
848
- async function toggleLang(lang) {
849
- visible.value = false;
850
- if (lang !== currentLang) {
851
- currentLang = lang;
852
- await changeLocale(lang);
853
- props.reload && location.reload();
854
- }
855
- }
974
+ const { toggle, isFullscreen } = useFullscreen();
856
975
  return (_ctx, _cache) => {
857
- const _component_APopover = Popover;
858
- const _directive_icon = resolveDirective("icon");
859
- return openBlock(), createBlock(_component_APopover, {
860
- placement: "bottom",
861
- visible: visible.value,
862
- "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
863
- overlayClassName: "dt-lang-picker__popover",
864
- trigger: "click"
865
- }, {
866
- content: withCtx(() => [
867
- createElementVNode("ul", _hoisted_1$f, [
868
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(localeList), (it) => {
869
- return openBlock(), createElementBlock("li", {
870
- onClick: ($event) => toggleLang(it.event),
871
- 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" : ""])
872
- }, [
873
- withDirectives(createElementVNode("span", _hoisted_3$5, null, 512), [
874
- [_directive_icon, it.icon]
875
- ]),
876
- createElementVNode("span", null, toDisplayString(it.text), 1)
877
- ], 10, _hoisted_2$8);
878
- }), 256))
879
- ])
880
- ]),
881
- default: withCtx(() => [
882
- _hoisted_4$3
883
- ]),
884
- _: 1
885
- }, 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
+ ]);
886
984
  };
887
985
  }
888
986
  });
@@ -1024,8 +1122,8 @@ const Bar = defineComponent({
1024
1122
  );
1025
1123
  }
1026
1124
  });
1027
- const _hoisted_1$e = { class: "scrollbar relative h-full overflow-hidden" };
1028
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
1125
+ const _hoisted_1$f = { class: "scrollbar relative h-full overflow-hidden" };
1126
+ const _sfc_main$t = /* @__PURE__ */ defineComponent({
1029
1127
  __name: "scroll-bar",
1030
1128
  props: {
1031
1129
  wrapClass: {
@@ -1094,7 +1192,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
1094
1192
  }
1095
1193
  });
1096
1194
  return (_ctx, _cache) => {
1097
- return openBlock(), createElementBlock("div", _hoisted_1$e, [
1195
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
1098
1196
  createElementVNode("div", {
1099
1197
  ref_key: "wrap",
1100
1198
  ref: wrap,
@@ -1127,12 +1225,12 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
1127
1225
  };
1128
1226
  }
1129
1227
  });
1130
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
1228
+ const _sfc_main$s = /* @__PURE__ */ defineComponent({
1131
1229
  __name: "scroll-container",
1132
1230
  setup(__props) {
1133
1231
  const scrollbarRef = ref(null);
1134
1232
  return (_ctx, _cache) => {
1135
- return openBlock(), createBlock(_sfc_main$r, mergeProps({
1233
+ return openBlock(), createBlock(_sfc_main$t, mergeProps({
1136
1234
  ref_key: "scrollbarRef",
1137
1235
  ref: scrollbarRef
1138
1236
  }, _ctx.$attrs, { class: "w-full h-full" }), {
@@ -1144,7 +1242,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
1144
1242
  };
1145
1243
  }
1146
1244
  });
1147
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
1245
+ const _sfc_main$r = /* @__PURE__ */ defineComponent({
1148
1246
  __name: "slot-container",
1149
1247
  props: {
1150
1248
  template: {
@@ -1168,48 +1266,264 @@ const withInstall = (comp) => {
1168
1266
  };
1169
1267
  return comp;
1170
1268
  };
1171
- const DtScrollContainer = withInstall(_sfc_main$q);
1172
- const DtSlotContainer = withInstall(_sfc_main$p);
1173
- 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" };
1174
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
1175
- __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
+ },
1176
1279
  setup(__props) {
1280
+ const props = __props;
1281
+ const { t } = useI18n("UI");
1177
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
+ });
1178
1288
  return (_ctx, _cache) => {
1179
- const _component_APopover = Popover;
1180
- const _directive_icon = resolveDirective("icon");
1181
- return openBlock(), createBlock(_component_APopover, {
1182
- trigger: "click",
1183
- overlayClassName: "dt-notify__popover"
1184
- }, {
1185
- content: withCtx(() => [
1186
- unref(slots).notify ? (openBlock(), createBlock(unref(DtSlotContainer), {
1187
- key: 0,
1188
- template: unref(slots).notify
1189
- }, null, 8, ["template"])) : createCommentVNode("", true)
1190
- ]),
1191
- default: withCtx(() => [
1192
- createElementVNode("span", _hoisted_1$d, [
1193
- withDirectives(createElementVNode("span", null, null, 512), [
1194
- [_directive_icon, "ant-design:bell-outlined"]
1195
- ]),
1196
- unref(slots).notifyBadge ? (openBlock(), createBlock(unref(DtSlotContainer), {
1197
- key: 0,
1198
- template: unref(slots).notifyBadge
1199
- }, null, 8, ["template"])) : createCommentVNode("", true)
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]
1200
1302
  ])
1201
- ]),
1202
- _: 1
1203
- });
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
+ ]);
1204
1348
  };
1205
1349
  }
1206
1350
  });
1207
- const _hoisted_1$c = { class: "lang m-0" };
1351
+ const _hoisted_1$c = {
1352
+ key: 0,
1353
+ class: "dt-menu-filter h-7 pr-2"
1354
+ };
1208
1355
  const _hoisted_2$7 = ["onClick"];
1209
- const _hoisted_3$4 = /* @__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" }, [
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",
1497
+ overlayClassName: "dt-notify__popover"
1498
+ }, {
1499
+ content: withCtx(() => [
1500
+ unref(slots).notify ? (openBlock(), createBlock(unref(DtSlotContainer), {
1501
+ key: 0,
1502
+ template: unref(slots).notify
1503
+ }, null, 8, ["template"])) : createCommentVNode("", true)
1504
+ ]),
1505
+ default: withCtx(() => [
1506
+ createElementVNode("span", _hoisted_1$a, [
1507
+ withDirectives(createElementVNode("span", null, null, 512), [
1508
+ [_directive_icon, "ant-design:bell-outlined"]
1509
+ ]),
1510
+ unref(slots).notifyBadge ? (openBlock(), createBlock(unref(DtSlotContainer), {
1511
+ key: 0,
1512
+ template: unref(slots).notifyBadge
1513
+ }, null, 8, ["template"])) : createCommentVNode("", true)
1514
+ ])
1515
+ ]),
1516
+ _: 1
1517
+ });
1518
+ };
1519
+ }
1520
+ });
1521
+ const _hoisted_1$9 = { class: "lang m-0" };
1522
+ const _hoisted_2$5 = ["onClick"];
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" }, [
1210
1524
  /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-format-size" })
1211
1525
  ], -1);
1212
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
1526
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
1213
1527
  __name: "size",
1214
1528
  setup(__props) {
1215
1529
  const { t } = useI18n("UI");
@@ -1247,34 +1561,34 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
1247
1561
  trigger: "click"
1248
1562
  }, {
1249
1563
  content: withCtx(() => [
1250
- createElementVNode("ul", _hoisted_1$c, [
1564
+ createElementVNode("ul", _hoisted_1$9, [
1251
1565
  (openBlock(), createElementBlock(Fragment, null, renderList(sizeList, (it) => {
1252
1566
  return createElementVNode("li", {
1253
1567
  onClick: ($event) => toggleLang(it.event),
1254
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" : ""])
1255
1569
  }, [
1256
1570
  createElementVNode("span", null, toDisplayString(it.text), 1)
1257
- ], 10, _hoisted_2$7);
1571
+ ], 10, _hoisted_2$5);
1258
1572
  }), 64))
1259
1573
  ])
1260
1574
  ]),
1261
1575
  default: withCtx(() => [
1262
- _hoisted_3$4
1576
+ _hoisted_3$3
1263
1577
  ]),
1264
1578
  _: 1
1265
1579
  }, 8, ["visible"]);
1266
1580
  };
1267
1581
  }
1268
1582
  });
1269
- const _hoisted_1$b = { class: "m-0" };
1270
- const _hoisted_2$6 = {
1583
+ const _hoisted_1$8 = { class: "m-0" };
1584
+ const _hoisted_2$4 = {
1271
1585
  class: "pr-2",
1272
1586
  size: 16
1273
1587
  };
1274
- const _hoisted_3$3 = { 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" };
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" };
1275
1589
  const _hoisted_4$2 = ["src"];
1276
1590
  const _hoisted_5$1 = { class: "pl-2 text-13" };
1277
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
1591
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
1278
1592
  __name: "user-info",
1279
1593
  setup(__props) {
1280
1594
  const { t } = useI18n("UI");
@@ -1299,7 +1613,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
1299
1613
  trigger: "click"
1300
1614
  }, {
1301
1615
  content: withCtx(() => [
1302
- createElementVNode("div", _hoisted_1$b, [
1616
+ createElementVNode("div", _hoisted_1$8, [
1303
1617
  unref(slots).userInfo ? (openBlock(), createBlock(unref(DtSlotContainer), {
1304
1618
  key: 0,
1305
1619
  template: unref(slots).userInfo
@@ -1309,7 +1623,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
1309
1623
  onClick: _cache[0] || (_cache[0] = ($event) => signOut()),
1310
1624
  class: "px-4 my-1 leading-9 flex border-gray-200 cursor-pointer hover:bg-gray-100 transition-all duration-300 text-13"
1311
1625
  }, [
1312
- withDirectives(createElementVNode("span", _hoisted_2$6, null, 512), [
1626
+ withDirectives(createElementVNode("span", _hoisted_2$4, null, 512), [
1313
1627
  [_directive_icon, "ant-design:logout-outlined"]
1314
1628
  ]),
1315
1629
  createElementVNode("span", null, toDisplayString(unref(t)("LOGIN_OUT")), 1)
@@ -1317,7 +1631,7 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
1317
1631
  ])
1318
1632
  ]),
1319
1633
  default: withCtx(() => [
1320
- createElementVNode("div", _hoisted_3$3, [
1634
+ createElementVNode("div", _hoisted_3$2, [
1321
1635
  createVNode(_component_AAvatar, { size: 28 }, {
1322
1636
  icon: withCtx(() => [
1323
1637
  createElementVNode("img", { src: "/node_modules/@dt-frames/ui/es/assets/imgs/header/avatar.png" }, null, 8, _hoisted_4$2)
@@ -1429,13 +1743,13 @@ function changeTheme(event, value = {}) {
1429
1743
  }
1430
1744
  useThemeStore().setThemeConf(conf);
1431
1745
  }
1432
- const _hoisted_1$a = { class: "flex flex-row justify-center dt-menu-type" };
1433
- const _hoisted_2$5 = ["onClick"];
1434
- const _hoisted_3$2 = /* @__PURE__ */ createElementVNode("div", { class: "dt-menu-type__item" }, null, -1);
1746
+ const _hoisted_1$7 = { class: "flex flex-row justify-center dt-menu-type" };
1747
+ const _hoisted_2$3 = ["onClick"];
1748
+ const _hoisted_3$1 = /* @__PURE__ */ createElementVNode("div", { class: "dt-menu-type__item" }, null, -1);
1435
1749
  const _hoisted_4$1 = [
1436
- _hoisted_3$2
1750
+ _hoisted_3$1
1437
1751
  ];
1438
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
1752
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1439
1753
  __name: "menu-type",
1440
1754
  setup(__props) {
1441
1755
  const { getMenuType, getMenuMode } = useMenu();
@@ -1478,7 +1792,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
1478
1792
  }
1479
1793
  return (_ctx, _cache) => {
1480
1794
  const _component_ATooltip = Tooltip;
1481
- return openBlock(), createElementBlock("div", _hoisted_1$a, [
1795
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
1482
1796
  (openBlock(), createElementBlock(Fragment, null, renderList(menuTypeList, (item) => {
1483
1797
  return createVNode(_component_ATooltip, {
1484
1798
  key: item.title,
@@ -1496,7 +1810,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
1496
1810
  [`dt-menu-type__item--active`]: unref(getMenuType) === item.type && unref(getMenuMode) === item.mode
1497
1811
  }
1498
1812
  ])
1499
- }, _hoisted_4$1, 10, _hoisted_2$5)
1813
+ }, _hoisted_4$1, 10, _hoisted_2$3)
1500
1814
  ]),
1501
1815
  _: 2
1502
1816
  }, 1032, ["title"]);
@@ -1505,8 +1819,8 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
1505
1819
  };
1506
1820
  }
1507
1821
  });
1508
- const _hoisted_1$9 = { class: "flex justify-between mb-5" };
1509
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
1822
+ const _hoisted_1$6 = { class: "flex justify-between mb-5" };
1823
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1510
1824
  __name: "select",
1511
1825
  props: {
1512
1826
  event: { type: Number },
@@ -1529,7 +1843,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
1529
1843
  }
1530
1844
  return (_ctx, _cache) => {
1531
1845
  const _component_ASelect = Select;
1532
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
1846
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
1533
1847
  createElementVNode("span", null, toDisplayString(__props.title), 1),
1534
1848
  createVNode(_component_ASelect, mergeProps(unref(getBindValue), {
1535
1849
  disabled: __props.disabled,
@@ -1542,8 +1856,8 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
1542
1856
  };
1543
1857
  }
1544
1858
  });
1545
- const _hoisted_1$8 = { class: "flex justify-between mb-5" };
1546
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
1859
+ const _hoisted_1$5 = { class: "flex justify-between mb-5" };
1860
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
1547
1861
  __name: "switch",
1548
1862
  props: {
1549
1863
  event: {
@@ -1566,7 +1880,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
1566
1880
  }
1567
1881
  return (_ctx, _cache) => {
1568
1882
  const _component_ASwitch = Switch;
1569
- return openBlock(), createElementBlock("div", _hoisted_1$8, [
1883
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
1570
1884
  createElementVNode("span", null, toDisplayString(__props.title), 1),
1571
1885
  createVNode(_component_ASwitch, mergeProps(unref(getBindValue), {
1572
1886
  disabled: __props.disabled,
@@ -1578,7 +1892,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
1578
1892
  };
1579
1893
  }
1580
1894
  });
1581
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
1895
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
1582
1896
  __name: "feature",
1583
1897
  setup(__props) {
1584
1898
  const { t } = useI18n("UI");
@@ -1654,7 +1968,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1654
1968
  return (_ctx, _cache) => {
1655
1969
  return openBlock(), createElementBlock(Fragment, null, [
1656
1970
  (openBlock(), createElementBlock(Fragment, null, renderList(switchItems, (item) => {
1657
- return createVNode(_sfc_main$j, {
1971
+ return createVNode(_sfc_main$g, {
1658
1972
  key: item.title,
1659
1973
  title: item.title,
1660
1974
  event: item.event,
@@ -1662,7 +1976,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1662
1976
  }, null, 8, ["title", "event", "def"]);
1663
1977
  }), 64)),
1664
1978
  (openBlock(), createElementBlock(Fragment, null, renderList(selectItems, (item) => {
1665
- return createVNode(_sfc_main$k, {
1979
+ return createVNode(_sfc_main$h, {
1666
1980
  key: item.title,
1667
1981
  title: item.title,
1668
1982
  event: item.event,
@@ -1674,9 +1988,9 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
1674
1988
  };
1675
1989
  }
1676
1990
  });
1677
- const _hoisted_1$7 = { class: "mt-5" };
1678
- const _hoisted_2$4 = { class: "dt-setting-theme__tips p-3 text-12 bg-gray-100 rounded" };
1679
- const _sfc_main$h = /* @__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({
1680
1994
  __name: "setting-theme",
1681
1995
  setup(__props) {
1682
1996
  const { t } = useI18n("UI");
@@ -1784,16 +2098,16 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1784
2098
  ]),
1785
2099
  _: 1
1786
2100
  }),
1787
- createVNode(unref(_sfc_main$l)),
2101
+ createVNode(unref(_sfc_main$i)),
1788
2102
  createVNode(_component_ADivider, null, {
1789
2103
  default: withCtx(() => [
1790
2104
  createTextVNode(toDisplayString(unref(t)("PAGE_SHOW")), 1)
1791
2105
  ]),
1792
2106
  _: 1
1793
2107
  }),
1794
- createVNode(unref(_sfc_main$i)),
2108
+ createVNode(unref(_sfc_main$f)),
1795
2109
  createVNode(_component_ADivider),
1796
- createElementVNode("div", _hoisted_1$7, [
2110
+ createElementVNode("div", _hoisted_1$4, [
1797
2111
  createVNode(_component_AButton, {
1798
2112
  onClick: copy,
1799
2113
  class: "mb-3",
@@ -1816,7 +2130,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
1816
2130
  _: 1
1817
2131
  })
1818
2132
  ]),
1819
- createElementVNode("div", _hoisted_2$4, toDisplayString(unref(t)("DRAWER_TIPS")), 1)
2133
+ createElementVNode("div", _hoisted_2$2, toDisplayString(unref(t)("DRAWER_TIPS")), 1)
1820
2134
  ]),
1821
2135
  _: 1
1822
2136
  }, 8, ["visible", "title"])
@@ -1991,7 +2305,7 @@ const contentProps = {
1991
2305
  },
1992
2306
  isSplitMenu: Boolean
1993
2307
  });
1994
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
2308
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
1995
2309
  __name: "menu-item-content",
1996
2310
  props: contentProps,
1997
2311
  setup(__props) {
@@ -2008,7 +2322,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
2008
2322
  };
2009
2323
  }
2010
2324
  });
2011
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
2325
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
2012
2326
  __name: "basic-menu-item",
2013
2327
  props: ItemProp,
2014
2328
  setup(__props) {
@@ -2019,14 +2333,14 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
2019
2333
  key: _ctx.item.url
2020
2334
  }, {
2021
2335
  default: withCtx(() => [
2022
- createVNode(_sfc_main$g, normalizeProps(guardReactiveProps(props)), null, 16)
2336
+ createVNode(_sfc_main$d, normalizeProps(guardReactiveProps(props)), null, 16)
2023
2337
  ]),
2024
2338
  _: 1
2025
2339
  });
2026
2340
  };
2027
2341
  }
2028
2342
  });
2029
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
2343
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2030
2344
  __name: "basic-sub-menu-item",
2031
2345
  props: ItemProp,
2032
2346
  setup(__props) {
@@ -2043,14 +2357,14 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
2043
2357
  const _component_BasicSubMenuItem = resolveComponent("BasicSubMenuItem", true);
2044
2358
  const _component_ASubMenu = SubMenu;
2045
2359
  return openBlock(), createElementBlock(Fragment, null, [
2046
- !menuHasChildren(unref(item)) && unref(getShowMenu) ? (openBlock(), createBlock(_sfc_main$f, 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),
2047
2361
  menuHasChildren(unref(item)) && unref(getShowMenu) ? (openBlock(), createBlock(_component_ASubMenu, {
2048
2362
  class: normalizeClass([unref(theme)]),
2049
2363
  key: unref(item).id,
2050
2364
  popupClassName: "app-top-menu-popup"
2051
2365
  }, {
2052
2366
  title: withCtx(() => [
2053
- createVNode(_sfc_main$g, mergeProps(props, { item: unref(item) }), null, 16, ["item"])
2367
+ createVNode(_sfc_main$d, mergeProps(props, { item: unref(item) }), null, 16, ["item"])
2054
2368
  ]),
2055
2369
  default: withCtx(() => [
2056
2370
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(item).children, (childrenItem) => {
@@ -2065,7 +2379,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
2065
2379
  };
2066
2380
  }
2067
2381
  });
2068
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
2382
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
2069
2383
  __name: "basic-menu",
2070
2384
  props: BasicMenu,
2071
2385
  emits: ["menuClick"],
@@ -2152,7 +2466,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2152
2466
  }, {
2153
2467
  default: withCtx(() => [
2154
2468
  (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
2155
- return openBlock(), createBlock(_sfc_main$e, {
2469
+ return openBlock(), createBlock(_sfc_main$b, {
2156
2470
  key: item.id,
2157
2471
  item,
2158
2472
  theme: _ctx.theme,
@@ -2165,7 +2479,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
2165
2479
  };
2166
2480
  }
2167
2481
  });
2168
- const _sfc_main$c = defineComponent({
2482
+ const _sfc_main$9 = defineComponent({
2169
2483
  name: "LayoutMenu",
2170
2484
  props: {
2171
2485
  theme: String,
@@ -2225,6 +2539,8 @@ const _sfc_main$c = defineComponent({
2225
2539
  go(path);
2226
2540
  }
2227
2541
  function renderHeader() {
2542
+ if (!unref(getIsShowLogo))
2543
+ return null;
2228
2544
  if (slots.logo) {
2229
2545
  return createVNode(DtSlotContainer, {
2230
2546
  "template": slots.logo,
@@ -2234,9 +2550,7 @@ const _sfc_main$c = defineComponent({
2234
2550
  }
2235
2551
  }, null);
2236
2552
  }
2237
- if (!unref(getIsShowLogo))
2238
- return null;
2239
- return createVNode(_sfc_main$w, {
2553
+ return createVNode(_sfc_main$q, {
2240
2554
  "showTitle": !unref(getCollapsed),
2241
2555
  "class": unref(getLogoClass),
2242
2556
  "theme": unref(getComputedTheme)
@@ -2261,7 +2575,7 @@ const _sfc_main$c = defineComponent({
2261
2575
  } = unref(getMenuProps);
2262
2576
  if (!menus || !menus.length)
2263
2577
  return null;
2264
- return createVNode(_sfc_main$d, mergeProps(menuProps, {
2578
+ return createVNode(_sfc_main$a, mergeProps(menuProps, {
2265
2579
  "isHorizontal": props.isHorizontal,
2266
2580
  "type": unref(getMenuType),
2267
2581
  "showLogo": unref(getIsShowLogo),
@@ -2276,12 +2590,15 @@ const _sfc_main$c = defineComponent({
2276
2590
  };
2277
2591
  }
2278
2592
  });
2279
- const _hoisted_1$6 = { class: "dt-header-left flex h-full items-center" };
2280
- const _hoisted_2$3 = {
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 = {
2281
2598
  key: 0,
2282
2599
  class: "flex-1 h-full min-w-0 items-center"
2283
2600
  };
2284
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
2601
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2285
2602
  __name: "index",
2286
2603
  props: {
2287
2604
  fixed: Boolean
@@ -2302,12 +2619,14 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2302
2619
  getShowSearch,
2303
2620
  getShowUiSize
2304
2621
  } = useHeader();
2622
+ const { getShowMultipleTab, getMultipleTabPosIsTop } = useMultipleTab();
2305
2623
  const getSplitType = computed(() => {
2306
2624
  return unref(getSplit) ? MenuSplitTye.TOP : MenuSplitTye.NONE;
2307
2625
  });
2308
2626
  const getMenuMode = computed(() => {
2309
2627
  return unref(getSplit) ? MenuMode.HORIZONTAL : null;
2310
2628
  });
2629
+ const getShowTab = computed(() => unref(getShowMultipleTab) && unref(getMultipleTabPosIsTop));
2311
2630
  const getHeaderCls = computed(() => {
2312
2631
  let theme = unref(getHeaderTheme);
2313
2632
  let cls = "dt-header flex p-0 items-center justify-between ";
@@ -2323,20 +2642,27 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2323
2642
  class: normalizeClass([unref(getHeaderCls), "flex items-center justify-between"])
2324
2643
  }, {
2325
2644
  default: withCtx(() => [
2326
- createElementVNode("div", _hoisted_1$6, [
2327
- unref(getShowHeaderLogo) ? (openBlock(), createBlock(unref(_sfc_main$w), {
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), {
2328
2651
  key: 0,
2329
2652
  theme: unref(getHeaderTheme),
2330
2653
  class: "dt-header-logo"
2331
2654
  }, null, 8, ["theme"])) : createCommentVNode("", true),
2332
- unref(getShowHeaderTrigger) && !unref(getSplit) ? (openBlock(), createBlock(unref(_sfc_main$v), {
2655
+ unref(getShowHeaderTrigger) && !unref(getSplit) && !unref(getShowTab) ? (openBlock(), createBlock(unref(_sfc_main$p), {
2333
2656
  key: 1,
2334
2657
  theme: unref(getHeaderTheme)
2335
2658
  }, null, 8, ["theme"])) : createCommentVNode("", true),
2336
- unref(getShowBread) ? (openBlock(), createBlock(unref(_sfc_main$u), { key: 2 })) : createCommentVNode("", true)
2337
- ]),
2338
- unref(getShowTopMenu) ? (openBlock(), createElementBlock("div", _hoisted_2$3, [
2339
- createVNode(_sfc_main$c, {
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, {
2340
2666
  isHorizontal: true,
2341
2667
  theme: unref(getHeaderTheme),
2342
2668
  splitType: unref(getSplitType),
@@ -2349,16 +2675,16 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2349
2675
  "padding-right": unref(getShowSettingTheme) ? "" : "20px"
2350
2676
  })
2351
2677
  }, [
2352
- unref(getShowSearch) ? (openBlock(), createBlock(unref(_sfc_main$t), { key: 0 })) : createCommentVNode("", true),
2353
- unref(getShowNotice) ? (openBlock(), createBlock(unref(_sfc_main$o), { key: 1 })) : createCommentVNode("", true),
2354
- unref(getShowUiSize) ? (openBlock(), createBlock(unref(_sfc_main$n), { key: 2 })) : createCommentVNode("", true),
2355
- unref(getShowFullScreen) ? (openBlock(), createBlock(unref(_sfc_main$x), { key: 3 })) : createCommentVNode("", true),
2356
- unref(getShowLocale) ? (openBlock(), createBlock(unref(_sfc_main$s), {
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), {
2357
2683
  key: 4,
2358
2684
  reload: true
2359
2685
  })) : createCommentVNode("", true),
2360
- createVNode(unref(_sfc_main$m)),
2361
- unref(getShowSettingTheme) ? (openBlock(), createBlock(unref(_sfc_main$h), { key: 5 })) : createCommentVNode("", true)
2686
+ createVNode(unref(_sfc_main$j)),
2687
+ unref(getShowSettingTheme) ? (openBlock(), createBlock(unref(_sfc_main$e), { key: 5 })) : createCommentVNode("", true)
2362
2688
  ], 4)
2363
2689
  ]),
2364
2690
  _: 1
@@ -2393,7 +2719,7 @@ function useTrigger() {
2393
2719
  });
2394
2720
  return { getTriggerAttr, getShowTrigger };
2395
2721
  }
2396
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
2722
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2397
2723
  __name: "sider-trigger",
2398
2724
  props: {
2399
2725
  type: {
@@ -2417,7 +2743,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
2417
2743
  };
2418
2744
  }
2419
2745
  });
2420
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
2746
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2421
2747
  __name: "drag-bar",
2422
2748
  setup(__props) {
2423
2749
  const { getCollapsed, getCanDrag, getMenuWidth } = useMenu();
@@ -2443,16 +2769,16 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
2443
2769
  };
2444
2770
  }
2445
2771
  });
2446
- const _hoisted_1$5 = { class: "dt-mix-sider__shallow-menu" };
2447
- const _hoisted_2$2 = { class: "m-0" };
2448
- const _hoisted_3$1 = { class: "dt-mix-sider__sub-shallow-menu" };
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" };
2449
2775
  const _hoisted_4 = { key: 0 };
2450
2776
  const _hoisted_5 = { class: "opacity-60 m-0 py-3 text-lg pt-6" };
2451
2777
  const _hoisted_6 = ["onClick"];
2452
2778
  const _hoisted_7 = { class: "m-0" };
2453
2779
  const _hoisted_8 = ["onClick"];
2454
2780
  const _hoisted_9 = { class: "m-0" };
2455
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2781
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2456
2782
  __name: "mix-sider",
2457
2783
  setup(__props) {
2458
2784
  const MENU_WIDTH = 80;
@@ -2523,13 +2849,13 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2523
2849
  style: unref(getWrapStyle),
2524
2850
  class: ["dt-mix-sider fixed top-0 left-0 h-full overflow-hidden", unref(getMenuTheme)]
2525
2851
  }, getMenuEvents), [
2526
- createVNode(_sfc_main$w, {
2852
+ createVNode(_sfc_main$q, {
2527
2853
  showTitle: false,
2528
2854
  class: normalizeClass("justify-center z-10")
2529
2855
  }),
2530
2856
  createVNode(unref(DtScrollContainer), { class: "z-10" }, {
2531
2857
  default: withCtx(() => [
2532
- createElementVNode("ul", _hoisted_1$5, [
2858
+ createElementVNode("ul", _hoisted_1$2, [
2533
2859
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(menuModules), (item) => {
2534
2860
  return openBlock(), createElementBlock("li", mergeProps({
2535
2861
  key: item.id,
@@ -2540,7 +2866,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2540
2866
  createElementVNode("i", {
2541
2867
  class: normalizeClass(["i", item.icon])
2542
2868
  }, null, 2),
2543
- createElementVNode("p", _hoisted_2$2, toDisplayString(item.label), 1)
2869
+ createElementVNode("p", _hoisted_2, toDisplayString(item.label), 1)
2544
2870
  ], 16);
2545
2871
  }), 128))
2546
2872
  ])
@@ -2556,7 +2882,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2556
2882
  }, [
2557
2883
  createVNode(unref(DtScrollContainer), null, {
2558
2884
  default: withCtx(() => [
2559
- createElementVNode("ul", _hoisted_3$1, [
2885
+ createElementVNode("ul", _hoisted_3, [
2560
2886
  (openBlock(true), createElementBlock(Fragment, null, renderList(subMenus.value, (menu) => {
2561
2887
  return openBlock(), createElementBlock("li", {
2562
2888
  key: menu.id
@@ -2606,7 +2932,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2606
2932
  };
2607
2933
  }
2608
2934
  });
2609
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2935
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2610
2936
  __name: "index",
2611
2937
  setup(__props) {
2612
2938
  const {
@@ -2666,10 +2992,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2666
2992
  const getMode = computed(() => {
2667
2993
  return unref(getSplit) ? MenuMode.INLINE : null;
2668
2994
  });
2669
- const renderTrigger = h(_sfc_main$a);
2995
+ const renderTrigger = h(_sfc_main$7);
2670
2996
  return (_ctx, _cache) => {
2671
2997
  const _component_ALayoutSider = LayoutSider;
2672
- return unref(getIsMixSidebar) ? (openBlock(), createBlock(_sfc_main$8, {
2998
+ return unref(getIsMixSidebar) ? (openBlock(), createBlock(_sfc_main$5, {
2673
2999
  key: 0
2674
3000
  })) : (openBlock(), createElementBlock(Fragment, {
2675
3001
  key: 1
@@ -2689,11 +3015,11 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2689
3015
  theme: unref(getMenuTheme),
2690
3016
  trigger: unref(renderTrigger)
2691
3017
  }, unref(getTriggerAttr)), {
2692
- default: withCtx(() => [createVNode(_sfc_main$c, {
3018
+ default: withCtx(() => [createVNode(_sfc_main$9, {
2693
3019
  theme: unref(getMenuTheme),
2694
3020
  menuMode: unref(getMode),
2695
3021
  splitType: unref(getSplitType)
2696
- }, null, 8, ["theme", "menuMode", "splitType"]), createVNode(_sfc_main$9, {
3022
+ }, null, 8, ["theme", "menuMode", "splitType"]), createVNode(_sfc_main$6, {
2697
3023
  ref_key: "dragBarRef",
2698
3024
  ref: dragBarRef
2699
3025
  }, null, 512)]),
@@ -2702,311 +3028,8 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
2702
3028
  };
2703
3029
  }
2704
3030
  });
2705
- const _hoisted_1$4 = /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-autorenew" }, null, -1);
2706
- const _hoisted_2$1 = [
2707
- _hoisted_1$4
2708
- ];
2709
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
2710
- __name: "TabRedo",
2711
- setup(__props) {
2712
- const tabStore = useRouteReuseStore();
2713
- const router = useRouter();
2714
- function handleRedo() {
2715
- tabStore.refreshPage(router);
2716
- }
2717
- return (_ctx, _cache) => {
2718
- return openBlock(), createElementBlock("span", {
2719
- onClick: handleRedo,
2720
- 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"
2721
- }, _hoisted_2$1);
2722
- };
2723
- }
2724
- });
2725
- function useTabDropdown() {
2726
- const router = useRouter();
2727
- const { currentRoute } = router;
2728
- const tabStore = useRouteReuseStore();
2729
- const state = reactive({
2730
- current: null,
2731
- currentIndex: 0
2732
- });
2733
- const getDropMenuList = computed(() => {
2734
- const { t } = useI18n("UI");
2735
- const { path, meta } = unref(currentRoute);
2736
- const curItem = state.current;
2737
- const isCurItem = curItem ? curItem.path === path : false;
2738
- const index = state.currentIndex;
2739
- const closeLeftDisabled = index === 0 || !isCurItem;
2740
- const disabled = tabStore.getTabList.length === 1;
2741
- const closeRightDisabled = !isCurItem || index === tabStore.getTabList.length - 1 && tabStore.getLastDragEndIndex >= 0;
2742
- const dropMenuList = [
2743
- {
2744
- icon: "ic:baseline-close",
2745
- text: t("CLOSE_CURRENT_TAG"),
2746
- onClick: () => tabStore.closeTab(path, router),
2747
- disabled: !!meta?.affix || disabled,
2748
- divider: true
2749
- },
2750
- {
2751
- icon: "mdi:arrow-collapse-left",
2752
- text: t("CLOSE_LEFT_TAGS"),
2753
- onClick: () => tabStore.closeLeftTabs(path),
2754
- disabled: closeLeftDisabled,
2755
- divider: false
2756
- },
2757
- {
2758
- icon: "mdi:arrow-collapse-right",
2759
- text: t("CLOSE_RIGHT_TAGS"),
2760
- onClick: () => tabStore.closeRightTabs(path),
2761
- disabled: closeRightDisabled,
2762
- divider: true
2763
- },
2764
- {
2765
- icon: "ic:baseline-sync-alt",
2766
- text: t("CLOSE_OTHER_TAGS"),
2767
- onClick: () => tabStore.closeOtherTabs(path),
2768
- disabled: disabled || !isCurItem
2769
- },
2770
- {
2771
- icon: "ic:baseline-horizontal-rule",
2772
- text: t("CLOSE_ALL_TAGE"),
2773
- onClick: () => tabStore.closeAllTab(currentRoute, router),
2774
- disabled
2775
- }
2776
- ];
2777
- return dropMenuList;
2778
- });
2779
- function handleContext(e) {
2780
- e?.preventDefault();
2781
- const { path } = unref(currentRoute);
2782
- const index = tabStore.getTabList.findIndex((tab) => tab.path === path);
2783
- state.current = unref(currentRoute);
2784
- state.currentIndex = index;
2785
- }
2786
- function handleMenuEvent(item) {
2787
- item.onClick?.();
2788
- }
2789
- return {
2790
- getDropMenuList,
2791
- handleContext,
2792
- handleMenuEvent
2793
- };
2794
- }
2795
- const _hoisted_1$3 = /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-keyboard-arrow-down" }, null, -1);
2796
- const _hoisted_2 = [
2797
- _hoisted_1$3
2798
- ];
2799
- const _hoisted_3 = { class: "text-13" };
2800
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
2801
- __name: "TabContent",
2802
- setup(__props) {
2803
- const { getDropMenuList, handleContext, handleMenuEvent } = useTabDropdown();
2804
- return (_ctx, _cache) => {
2805
- const _component_AMenuItem = MenuItem;
2806
- const _component_AMenuDivider = MenuDivider;
2807
- const _component_AMenu = Menu;
2808
- const _component_ADropdown = Dropdown;
2809
- return openBlock(), createBlock(_component_ADropdown, {
2810
- placement: "bottomRight",
2811
- trigger: ["click"],
2812
- overlayClassName: "dt-reuse-tabs__dropdown"
2813
- }, {
2814
- overlay: withCtx(() => [
2815
- createVNode(_component_AMenu, null, {
2816
- default: withCtx(() => [
2817
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getDropMenuList), (item, index) => {
2818
- return openBlock(), createElementBlock(Fragment, { key: index }, [
2819
- createVNode(_component_AMenuItem, {
2820
- onClick: ($event) => unref(handleMenuEvent)(item),
2821
- disabled: item.disabled
2822
- }, {
2823
- default: withCtx(() => [
2824
- createElementVNode("i", {
2825
- class: normalizeClass(["i pr-4", item.icon])
2826
- }, null, 2),
2827
- createElementVNode("span", _hoisted_3, toDisplayString(item.text), 1)
2828
- ]),
2829
- _: 2
2830
- }, 1032, ["onClick", "disabled"]),
2831
- item.divider ? (openBlock(), createBlock(_component_AMenuDivider, {
2832
- key: `d-${index}`
2833
- })) : createCommentVNode("", true)
2834
- ], 64);
2835
- }), 128))
2836
- ]),
2837
- _: 1
2838
- })
2839
- ]),
2840
- default: withCtx(() => [
2841
- createElementVNode("span", {
2842
- onClick: _cache[0] || (_cache[0] = (...args) => unref(handleContext) && unref(handleContext)(...args)),
2843
- 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"
2844
- }, _hoisted_2)
2845
- ]),
2846
- _: 1
2847
- });
2848
- };
2849
- }
2850
- });
2851
- function initAffixTabs() {
2852
- const affixList = ref([]);
2853
- const tabStore = useRouteReuseStore();
2854
- const router = useRouter();
2855
- const filterAffixTabs = (routes = []) => {
2856
- return routes && routes.reduce((tabs, route) => {
2857
- if (route.meta && route.meta.affix) {
2858
- tabs.push(toRaw(route));
2859
- }
2860
- return tabs;
2861
- }, []);
2862
- };
2863
- const addAffixTabs = () => {
2864
- const affixTabs = filterAffixTabs(router.getRoutes());
2865
- affixList.value = affixTabs;
2866
- for (const tab of affixTabs) {
2867
- tabStore.addTab({
2868
- meta: tab.meta,
2869
- name: tab.name,
2870
- path: tab.path
2871
- });
2872
- }
2873
- };
2874
- let isAddAffix = false;
2875
- if (!isAddAffix) {
2876
- addAffixTabs();
2877
- isAddAffix = true;
2878
- }
2879
- return affixList.value.map((item) => item.meta?.title).filter(Boolean);
2880
- }
2881
- function useSortable(el, options) {
2882
- function initSortable() {
2883
- nextTick(async () => {
2884
- if (!el)
2885
- return;
2886
- const Sortable = (await import("sortablejs")).default;
2887
- Sortable.create(unref(el), {
2888
- animation: 500,
2889
- delay: 400,
2890
- delayOnTouchOnly: true,
2891
- ...options
2892
- });
2893
- });
2894
- }
2895
- return { initSortable };
2896
- }
2897
- function useTabsDrag(affixList) {
2898
- const tabStore = useRouteReuseStore();
2899
- const { getCanDrag } = useMultipleTab();
2900
- nextTick(() => {
2901
- if (!unref(getCanDrag))
2902
- return;
2903
- const el = document.querySelectorAll(`.dt-reuse-tabs .ant-tabs-nav-list`)?.[0];
2904
- const { initSortable } = useSortable(el, {
2905
- filter: (e) => {
2906
- const text = e?.target?.innerText;
2907
- if (!text)
2908
- return false;
2909
- return affixList.includes(text);
2910
- },
2911
- onEnd: (evt) => {
2912
- const { oldIndex, newIndex } = evt;
2913
- if (isNullAndUnDef(oldIndex) || isNullAndUnDef(newIndex) || oldIndex === newIndex)
2914
- return;
2915
- tabStore.sortTabs(oldIndex, newIndex);
2916
- }
2917
- });
2918
- initSortable();
2919
- });
2920
- }
2921
- const _hoisted_1$2 = { class: "dt-reuse-tabs leading-8 border-b border-solid border-gray-200" };
2922
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
2923
- __name: "index",
2924
- setup(__props) {
2925
- const { t } = useI18n("UI");
2926
- const router = useRouter();
2927
- const go = useGo(router);
2928
- const tabStore = useRouteReuseStore();
2929
- const { getShowQuick, getShowRedo } = useMultipleTab();
2930
- const menuLabelMap = menuList2Map();
2931
- const activeKeyRef = ref(null);
2932
- const getTabsState = computed(() => {
2933
- return tabStore.getTabList.filter((item) => !item.meta?.hideTab);
2934
- });
2935
- const unClose = computed(() => unref(getTabsState).length === 1);
2936
- function handleChange(activeKey) {
2937
- activeKeyRef.value = activeKey;
2938
- go(activeKey);
2939
- }
2940
- function handleEdit(targetKey) {
2941
- if (unref(unClose))
2942
- return;
2943
- tabStore.closeTab(targetKey, router);
2944
- }
2945
- const affixTextList = initAffixTabs();
2946
- useTabsDrag(affixTextList);
2947
- watch(
2948
- () => router.currentRoute.value.path,
2949
- (v) => {
2950
- if (v === "/" || v === "/login")
2951
- return;
2952
- const { meta = {} } = unref(router.currentRoute);
2953
- const { hideTab = false } = meta;
2954
- if (activeKeyRef.value !== v) {
2955
- activeKeyRef.value = v;
2956
- }
2957
- if (!hideTab) {
2958
- tabStore.addTab(unref(router.currentRoute));
2959
- }
2960
- },
2961
- {
2962
- immediate: true
2963
- }
2964
- );
2965
- return (_ctx, _cache) => {
2966
- const _component_ATabPane = TabPane;
2967
- const _component_ATabs = Tabs;
2968
- return openBlock(), createElementBlock("div", _hoisted_1$2, [
2969
- createVNode(_component_ATabs, {
2970
- type: "editable-card",
2971
- size: "small",
2972
- animated: false,
2973
- hideAdd: true,
2974
- tabBarGutter: 3,
2975
- activeKey: activeKeyRef.value,
2976
- onChange: handleChange,
2977
- onEdit: handleEdit,
2978
- class: "h-8"
2979
- }, createSlots({
2980
- default: withCtx(() => [
2981
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getTabsState), (item) => {
2982
- return openBlock(), createBlock(_component_ATabPane, {
2983
- key: item.query ? item.fullPath : item.path,
2984
- closable: !(item && item.meta && item.meta.affix)
2985
- }, {
2986
- tab: withCtx(() => [
2987
- createElementVNode("span", null, toDisplayString(unref(menuLabelMap).get(item.path) || unref(t)("UNKNOWN_ROUTE")), 1)
2988
- ]),
2989
- _: 2
2990
- }, 1032, ["closable"]);
2991
- }), 128))
2992
- ]),
2993
- _: 2
2994
- }, [
2995
- unref(getShowRedo) || unref(getShowQuick) ? {
2996
- name: "rightExtra",
2997
- fn: withCtx(() => [
2998
- unref(getShowRedo) ? (openBlock(), createBlock(unref(_sfc_main$6), { key: 0 })) : createCommentVNode("", true),
2999
- unref(getShowQuick) ? (openBlock(), createBlock(unref(_sfc_main$5), { key: 1 })) : createCommentVNode("", true)
3000
- ]),
3001
- key: "0"
3002
- } : void 0
3003
- ]), 1032, ["activeKey"])
3004
- ]);
3005
- };
3006
- }
3007
- });
3008
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3009
- __name: "multiple-header",
3031
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3032
+ __name: "multiple-header",
3010
3033
  setup(__props) {
3011
3034
  const {
3012
3035
  getHeaderHeight,
@@ -3016,7 +3039,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3016
3039
  getTabsHeight
3017
3040
  } = useHeader();
3018
3041
  const { getCalcContentWidth, getIsMixMode, getSplit, getIsMixSidebar } = useMenu();
3019
- const { getShowMultipleTab } = useMultipleTab();
3042
+ const { getShowMultipleTab, getMultipleTabPosIsTop } = useMultipleTab();
3020
3043
  const getPlaceholderDomStyle = computed(() => {
3021
3044
  let height = unref(getHeaderHeight);
3022
3045
  if (unref(getIsMixMode)) {
@@ -3060,8 +3083,8 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3060
3083
  style: normalizeStyle(unref(getWrapStyle)),
3061
3084
  class: normalizeClass(unref(getClass))
3062
3085
  }, [
3063
- unref(getShowInsetHeaderRef) ? (openBlock(), createBlock(_sfc_main$b, { key: 0 })) : createCommentVNode("", true),
3064
- 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)
3065
3088
  ], 6)
3066
3089
  ]);
3067
3090
  };
@@ -3147,38 +3170,6 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3147
3170
  };
3148
3171
  }
3149
3172
  });
3150
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
3151
- var zhCn = { exports: {} };
3152
- (function(module, exports) {
3153
- !function(e, _) {
3154
- module.exports = _(require$$0);
3155
- }(commonjsGlobal, function(e) {
3156
- function _(e2) {
3157
- return e2 && "object" == typeof e2 && "default" in e2 ? e2 : { default: e2 };
3158
- }
3159
- 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) {
3160
- return "W" === _2 ? e2 + "\u5468" : e2 + "\u65E5";
3161
- }, 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) {
3162
- var t2 = 100 * e2 + _2;
3163
- return t2 < 600 ? "\u51CC\u6668" : t2 < 900 ? "\u65E9\u4E0A" : t2 < 1100 ? "\u4E0A\u5348" : t2 < 1300 ? "\u4E2D\u5348" : t2 < 1800 ? "\u4E0B\u5348" : "\u665A\u4E0A";
3164
- } };
3165
- return t.default.locale(d, null, true), d;
3166
- });
3167
- })(zhCn);
3168
- var esUs = { exports: {} };
3169
- (function(module, exports) {
3170
- !function(e, s) {
3171
- module.exports = s(require$$0);
3172
- }(commonjsGlobal, function(e) {
3173
- function s(e2) {
3174
- return e2 && "object" == typeof e2 && "default" in e2 ? e2 : { default: e2 };
3175
- }
3176
- 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) {
3177
- return e2 + "\xBA";
3178
- }, 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" } };
3179
- return o.default.locale(d, null, true), d;
3180
- });
3181
- })(esUs);
3182
3173
  const _sfc_main = /* @__PURE__ */ defineComponent({
3183
3174
  __name: "index",
3184
3175
  setup(__props) {
@@ -3187,7 +3178,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3187
3178
  const { getSplit, getShowMenu, getShowSidebar, getIsMixSidebar } = useMenu();
3188
3179
  const { getFooter, getShowFooter } = useTheme();
3189
3180
  const { height } = unref(getFooter);
3190
- require$$0.locale(unref(getIsZH) ? "zh-cn" : "en");
3181
+ dayjs.locale(unref(getIsZH) ? "zh-cn" : "en");
3191
3182
  const layoutClass = computed(() => {
3192
3183
  let cls = "ant-layout";
3193
3184
  if (unref(getIsMixSidebar)) {
@@ -3229,7 +3220,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3229
3220
  }, {
3230
3221
  default: withCtx(() => [
3231
3222
  createVNode(_sfc_main$y),
3232
- unref(getShowFullHeaderRef) ? (openBlock(), createBlock(_sfc_main$b, {
3223
+ unref(getShowFullHeaderRef) ? (openBlock(), createBlock(_sfc_main$8, {
3233
3224
  key: 0,
3234
3225
  fixed: ""
3235
3226
  })) : createCommentVNode("", true),
@@ -3238,7 +3229,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
3238
3229
  style: normalizeStyle(unref(layoutOption))
3239
3230
  }, {
3240
3231
  default: withCtx(() => [
3241
- unref(getShowSidebar) ? (openBlock(), createBlock(_sfc_main$7, { key: 0 })) : createCommentVNode("", true),
3232
+ unref(getShowSidebar) ? (openBlock(), createBlock(_sfc_main$4, { key: 0 })) : createCommentVNode("", true),
3242
3233
  createVNode(_component_ALayout, { class: "dt-theme-main flex w-full h-ful transition-width duration-200" }, {
3243
3234
  default: withCtx(() => [
3244
3235
  createVNode(_sfc_main$3),
@@ -3469,7 +3460,9 @@ const ZH = {
3469
3460
  const uiLang = (lang) => lang === Language.ZH ? ZH : EN;
3470
3461
  const DtTheme = withInstall$1(_sfc_main);
3471
3462
  export {
3463
+ ContentMode,
3472
3464
  DtTheme,
3465
+ UiSize,
3473
3466
  defaultThemeConf,
3474
3467
  uiLang,
3475
3468
  useRouteReuseStore,