@dt-frames/ui 2.0.2 → 2.0.4

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 (69) hide show
  1. package/es/assets/locales/en.ts +1 -1
  2. package/es/components/container/index.d.ts +4 -3
  3. package/es/components/container/index.js +24 -22
  4. package/es/components/container/src/slot-container.d.ts +5 -3
  5. package/es/components/curd/index.js +261 -229
  6. package/es/components/curd/src/components/Curd.d.ts +126 -331
  7. package/es/components/curd/src/props.d.ts +14 -15
  8. package/es/components/drawer/index.d.ts +3 -5
  9. package/es/components/drawer/index.js +55 -54
  10. package/es/components/drawer/src/components/DrawerHeader.d.ts +1 -3
  11. package/es/components/drawer/src/index.d.ts +4 -7
  12. package/es/components/form/index.d.ts +213 -361
  13. package/es/components/form/index.js +210 -163
  14. package/es/components/form/index.less +206 -8
  15. package/es/components/form/src/components/FormButtons.d.ts +3 -3
  16. package/es/components/form/src/components/FormItem.d.ts +152 -304
  17. package/es/components/form/src/components/formIcon.d.ts +4 -4
  18. package/es/components/form/src/components/formInputUseDialog.d.ts +3 -3
  19. package/es/components/form/src/enums/index.d.ts +1 -1
  20. package/es/components/form/src/index.d.ts +199 -347
  21. package/es/components/form/src/props.d.ts +8 -12
  22. package/es/components/form/src/types/form.type.d.ts +2 -2
  23. package/es/components/icons/index.d.ts +496 -2
  24. package/es/components/icons/index.less +5 -0
  25. package/es/components/icons/src/pick-icon.d.ts +5 -5
  26. package/es/components/modal/index.js +76 -74
  27. package/es/components/modal/index.less +10 -0
  28. package/es/components/modal/src/components/Modal.d.ts +108 -215
  29. package/es/components/modal/src/components/ModalFooter.d.ts +3 -3
  30. package/es/components/modal/src/index.d.ts +116 -223
  31. package/es/components/source/hooks/useSource.d.ts +14 -0
  32. package/es/components/source/index.js +66 -27
  33. package/es/components/source/types/source.type.d.ts +4 -8
  34. package/es/components/table/index.js +452 -820
  35. package/es/components/table/index.less +50 -14
  36. package/es/components/table/src/components/TableAction.d.ts +1 -1
  37. package/es/components/table/src/components/TableHeader.d.ts +109 -216
  38. package/es/components/table/src/components/TableRender.d.ts +13 -9
  39. package/es/components/table/src/components/tableSetting/Download.d.ts +107 -214
  40. package/es/components/table/src/components/tableSetting/DownloadCtrl.d.ts +107 -214
  41. package/es/components/table/src/components/tableSetting/index.d.ts +107 -214
  42. package/es/components/table/src/hooks/useDataSource.d.ts +1 -2
  43. package/es/components/table/src/hooks/usePagination.d.ts +3 -118
  44. package/es/components/table/src/index.d.ts +99 -435
  45. package/es/components/table/src/props.d.ts +19 -74
  46. package/es/components/table/src/types/actions.type.d.ts +1 -2
  47. package/es/components/table/src/types/table.type.d.ts +13 -8
  48. package/es/index.d.ts +1 -1
  49. package/es/index.js +2 -3240
  50. package/es/theme/index.js +688 -453
  51. package/es/theme/index.less +150 -0
  52. package/es/theme/src/components/header/components/logo.d.ts +0 -1
  53. package/es/theme/src/components/header/components/notify.d.ts +4 -3
  54. package/es/theme/src/components/header/components/setting-theme.d.ts +2 -1
  55. package/es/theme/src/components/header/components/user-info.d.ts +4 -3
  56. package/es/theme/src/components/header/helper/menu-tree.d.ts +1 -0
  57. package/es/theme/src/components/header/index.d.ts +8 -7
  58. package/es/theme/src/components/header/multiple-header.d.ts +22 -25
  59. package/es/theme/src/components/sider/components/drag-bar.d.ts +1 -1
  60. package/es/theme/src/components/sider/components/sider-trigger.d.ts +0 -1
  61. package/es/theme/src/components/sider/index.d.ts +147 -3
  62. package/es/theme/src/components/sider/mix-sider.d.ts +146 -0
  63. package/es/theme/src/enums/theme.enum.d.ts +2 -1
  64. package/es/theme/src/hooks/useMenu.d.ts +4 -2
  65. package/es/theme/src/index.d.ts +166 -23
  66. package/es/theme/src/stores/theme.store.d.ts +3 -0
  67. package/es/theme/src/types/theme.type.d.ts +2 -1
  68. package/package.json +3 -4
  69. package/vite.config.ts +0 -27
package/es/index.js CHANGED
@@ -1,3242 +1,4 @@
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";
2
- import "ant-design-vue/es/config-provider/style";
3
- import "ant-design-vue/es/layout/style";
4
- import { toRaw, unref as unref$1, computed as computed$1, onMounted as onMounted$1, nextTick as nextTick$1, defineComponent as defineComponent$1, openBlock, createBlock, createCommentVNode, createElementBlock, createElementVNode, normalizeClass, normalizeStyle, withDirectives, toDisplayString, vShow, ref as ref$1, watchEffect, createVNode, withCtx, Fragment, renderList, isRef, resolveDirective, getCurrentInstance, inject, onUnmounted, h as h$1, resolveDynamicComponent, renderSlot, mergeProps, createTextVNode, watch as watch$1, normalizeProps, guardReactiveProps, resolveComponent, reactive, toRef, withModifiers, createSlots, Transition, KeepAlive } from "vue";
5
- import { useRouter as useRouter$1, 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";
7
- import { defineStore } from "pinia";
8
- import { trim } from "lodash-es";
9
- import { useDebounceFn, useFullscreen, useThrottleFn } from "@vueuse/core";
10
- import "ant-design-vue/es/back-top/style";
11
- import "ant-design-vue/es/popover/style";
12
- import "ant-design-vue/es/input/style";
13
- import "ant-design-vue/es/empty/style";
14
- import { Popover as Popover$1, Modal, LayoutFooter } from "ant-design-vue";
15
- import "ant-design-vue/es/button/style";
16
- import zhCN from "ant-design-vue/es/locale/zh_CN";
17
- import en from "ant-design-vue/es/locale/en_US";
18
- import require$$0 from "dayjs";
19
- import "dayjs/locale/zh-cn";
20
- var Theme = /* @__PURE__ */ ((Theme2) => {
21
- Theme2["DARK"] = "dark";
22
- Theme2["LIGHT"] = "light";
23
- return Theme2;
24
- })(Theme || {});
25
- var MenuType = /* @__PURE__ */ ((MenuType2) => {
26
- MenuType2["SIDE"] = "sidebar";
27
- MenuType2["TOP_MENU"] = "top-menu";
28
- MenuType2["MIX"] = "mix";
29
- return MenuType2;
30
- })(MenuType || {});
31
- var MenuMode = /* @__PURE__ */ ((MenuMode2) => {
32
- MenuMode2["INLINE"] = "inline";
33
- MenuMode2["HORIZONTAL"] = "horizontal";
34
- MenuMode2["VERTICAL"] = "vertical";
35
- return MenuMode2;
36
- })(MenuMode || {});
37
- var ContentMode = /* @__PURE__ */ ((ContentMode2) => {
38
- ContentMode2["FULL"] = "full";
39
- ContentMode2["FIXED"] = "fixed";
40
- return ContentMode2;
41
- })(ContentMode || {});
42
- var MenuSplitTye = /* @__PURE__ */ ((MenuSplitTye2) => {
43
- MenuSplitTye2[MenuSplitTye2["NONE"] = 0] = "NONE";
44
- MenuSplitTye2[MenuSplitTye2["TOP"] = 1] = "TOP";
45
- MenuSplitTye2[MenuSplitTye2["LEFT"] = 2] = "LEFT";
46
- return MenuSplitTye2;
47
- })(MenuSplitTye || {});
48
- var UiSize = /* @__PURE__ */ ((UiSize2) => {
49
- UiSize2["LARGE"] = "large";
50
- UiSize2["MIDDLE"] = "middle";
51
- UiSize2["SMALL"] = "small";
52
- return UiSize2;
53
- })(UiSize || {});
54
- const defaultThemeConf = {
55
- content: {
56
- contentMode: ContentMode.FULL
57
- },
58
- headOptions: {
59
- fixed: true,
60
- theme: Theme.LIGHT,
61
- showLogo: true,
62
- showBackToTop: true,
63
- useLockPage: true,
64
- size: UiSize.SMALL,
65
- showSize: true,
66
- showBreadCrumb: true,
67
- showFullScreen: true,
68
- showSearch: true,
69
- showNotice: true,
70
- showLocaleSwitch: true,
71
- showSettingTheme: true,
72
- showLoginOut: true
73
- },
74
- menuOptions: {
75
- fixed: true,
76
- theme: Theme.DARK,
77
- collapsed: false,
78
- collapsedShowTitle: false,
79
- canDrag: true,
80
- show: true,
81
- hidden: false,
82
- split: false,
83
- menuWidth: 240,
84
- trigger: true,
85
- type: MenuType.SIDE,
86
- mode: MenuMode.INLINE
87
- },
88
- footerOptions: {
89
- show: false,
90
- height: 48,
91
- title: "Copyright(C) 2021 by www.ithinkdt.com. All rights reserved.",
92
- subTitle: "Privacy Statement"
93
- },
94
- routeReuse: {
95
- show: true,
96
- cache: true,
97
- canDrag: true,
98
- showQuick: true,
99
- showRedo: true,
100
- showFold: true
101
- }
102
- };
103
- const useThemeStore = defineStore({
104
- id: "dt-theme",
105
- state: () => ({
106
- themeConf: DtCache.getLocal(CacheKey.THEME) ?? defaultThemeConf,
107
- pageLoading: false
108
- }),
109
- getters: {
110
- getThemeConf() {
111
- return this.themeConf;
112
- },
113
- getHeaderConf() {
114
- return this.themeConf.headOptions;
115
- },
116
- getMenuConf() {
117
- return this.themeConf.menuOptions;
118
- },
119
- getFooterConf() {
120
- return this.themeConf.footerOptions;
121
- },
122
- getRouteReuseConf() {
123
- return this.themeConf.routeReuse;
124
- },
125
- getPageLoading() {
126
- return this.pageLoading;
127
- }
128
- },
129
- actions: {
130
- setThemeConf(options = {}) {
131
- let newThemeConf = deepMerge(this.themeConf, options);
132
- this.themeConf = deepMerge(defaultThemeConf, newThemeConf);
133
- DtCache.setLocal(CacheKey.THEME, this.themeConf);
134
- }
135
- }
136
- });
137
- const useRouteReuseStore = defineStore({
138
- id: "route-reuse",
139
- state: () => ({
140
- cacheTabList: /* @__PURE__ */ new Set(),
141
- tabList: DtCache.getLocal(CacheKey.THEME)?.routeReuse?.cache ? DtCache.getLocal(CacheKey.ROUTE_REUSE) || [] : [],
142
- lastDragEndIndex: 0
143
- }),
144
- getters: {
145
- getTabList() {
146
- return this.tabList;
147
- },
148
- getCachedTabList() {
149
- return Array.from(this.cacheTabList);
150
- },
151
- getLastDragEndIndex() {
152
- return this.lastDragEndIndex;
153
- }
154
- },
155
- actions: {
156
- async addTab(route) {
157
- const { path, name, fullPath, params, query, meta } = route;
158
- if (path === Pages.NOT_FOUND || path === Pages.LOGIN || path === Pages.BASE_PAGE) {
159
- return;
160
- }
161
- let updateIndex = -1;
162
- const tabHasExits = this.tabList.some((tab, index2) => {
163
- updateIndex = index2;
164
- return (tab.fullPath || tab.path) === (fullPath || path);
165
- });
166
- if (tabHasExits) {
167
- const curTab = toRaw(this.tabList)[updateIndex];
168
- curTab.params = params || curTab.params;
169
- curTab.query = query || curTab.query;
170
- curTab.fullPath = fullPath || curTab.fullPath;
171
- this.tabList.splice(updateIndex, 1, curTab);
172
- } else {
173
- this.tabList.push(JSON.parse(JSON.stringify(route)));
174
- }
175
- this.updateCacheTab();
176
- },
177
- closeTab(path, router) {
178
- const go = useGo(router);
179
- const index2 = this.tabList.findIndex((item) => item.path === path);
180
- let page;
181
- if (index2 === 0) {
182
- if (this.tabList.length !== 1) {
183
- page = this.tabList[index2 + 1];
184
- }
185
- } else {
186
- page = this.tabList[index2 - 1];
187
- }
188
- this.bulkCloseTabs([path]);
189
- this.updateCacheTab();
190
- path === router.currentRoute.value.path && go(page.path);
191
- },
192
- closeAllTab(currentRoute, router) {
193
- const go = useGo(router);
194
- let filterTabList = this.tabList.filter((item) => item?.meta?.affix ?? false);
195
- const route = filterTabList.length > 0 ? filterTabList[filterTabList.length - 1] : unref$1(currentRoute);
196
- this.tabList = [route];
197
- this.updateCacheTab();
198
- go(route.path);
199
- },
200
- closeLeftTabs(path) {
201
- const index2 = this.tabList.findIndex((item) => item.path === path);
202
- if (index2 > 0) {
203
- const leftTabs = this.tabList.slice(0, index2);
204
- const pathList = [];
205
- for (const item of leftTabs) {
206
- const affix = item?.meta?.affix ?? false;
207
- if (!affix) {
208
- pathList.push(item.fullPath);
209
- }
210
- }
211
- this.bulkCloseTabs(pathList);
212
- }
213
- this.updateCacheTab();
214
- },
215
- closeRightTabs(path) {
216
- const index2 = this.tabList.findIndex((item) => item.path === path);
217
- if (index2 >= 0 && index2 < this.tabList.length - 1) {
218
- const rightTabs = this.tabList.slice(index2 + 1, this.tabList.length);
219
- const pathList = [];
220
- for (const item of rightTabs) {
221
- const affix = item?.meta?.affix ?? false;
222
- if (!affix) {
223
- pathList.push(item.fullPath);
224
- }
225
- }
226
- this.bulkCloseTabs(pathList);
227
- }
228
- this.updateCacheTab();
229
- },
230
- closeOtherTabs(path) {
231
- const pathList = [];
232
- for (let item of this.tabList) {
233
- const affix = item?.meta?.affix ?? false;
234
- if (item.path !== path && !affix) {
235
- pathList.push(item.path);
236
- }
237
- }
238
- this.bulkCloseTabs(pathList);
239
- this.updateCacheTab();
240
- },
241
- bulkCloseTabs(pathList) {
242
- this.tabList = this.tabList.filter((item) => !pathList.includes(item.fullPath));
243
- },
244
- updateCacheTab() {
245
- const cacheTab = DtCache.getLocal(CacheKey.THEME)?.routeReuse?.cache;
246
- cacheTab && DtCache.setLocal(CacheKey.ROUTE_REUSE, this.tabList);
247
- const cacheMap = /* @__PURE__ */ new Set();
248
- for (const tab of this.tabList) {
249
- if (tab.meta?.hideTab) {
250
- continue;
251
- }
252
- const name = tab.name;
253
- cacheMap.add(name);
254
- }
255
- this.cacheTabList = cacheMap;
256
- },
257
- async refreshPage(router) {
258
- const findTab = this.getCachedTabList.find((item) => item === unref$1(router.currentRoute).name);
259
- if (findTab) {
260
- this.cacheTabList.delete(findTab.toString());
261
- }
262
- const redo = useRedo(router);
263
- await redo();
264
- },
265
- sortTabs(oldIndex, newIndex) {
266
- const currentTab = this.tabList[oldIndex];
267
- this.tabList.splice(oldIndex, 1);
268
- this.tabList.splice(newIndex, 0, currentTab);
269
- this.lastDragEndIndex = this.lastDragEndIndex + 1;
270
- }
271
- }
272
- });
273
- function useMenu() {
274
- const { getMenuConf, setThemeConf } = useThemeStore();
275
- const getCollapsedShowTitle = computed$1(() => getMenuConf.collapsedShowTitle);
276
- const getIsSidebarType = computed$1(() => getMenuConf.type === MenuType.SIDE);
277
- const getMenuFixed = computed$1(() => getMenuConf.fixed);
278
- const getShowMenu = computed$1(() => getMenuConf.show);
279
- const getShowSidebar = computed$1(() => {
280
- return unref$1(getSplit) || unref$1(getShowMenu) && unref$1(getMenuMode) !== MenuMode.HORIZONTAL;
281
- });
282
- const getMenuHidden = computed$1(() => getMenuConf.hidden);
283
- const getMenuTheme = computed$1(() => getMenuConf.theme);
284
- const getTrigger = computed$1(() => getMenuConf.trigger);
285
- const getCanDrag = computed$1(() => getMenuConf.canDrag);
286
- const getIsMixMode = computed$1(() => {
287
- return unref$1(getMenuMode) === MenuMode.INLINE && unref$1(getMenuType) === MenuType.MIX;
288
- });
289
- const getMenuWidth = computed$1(() => unref$1(getIsMixMode) ? Number(getMenuConf.menuWidth) - 40 : getMenuConf.menuWidth);
290
- const getLogoWidth = computed$1(() => getMenuConf.menuWidth);
291
- const getMenuType = computed$1(() => getMenuConf.type);
292
- const getIsTopMenu = computed$1(() => unref$1(getMenuType) === MenuType.TOP_MENU);
293
- const getMenuMode = computed$1(() => getMenuConf.mode);
294
- const getSplit = computed$1(() => getMenuConf.split);
295
- const getCollapsed = computed$1(() => getMenuConf.collapsed);
296
- const getIsHorizontal = computed$1(() => unref$1(getMenuMode) === MenuMode.HORIZONTAL);
297
- const setThemeStore = (conf = {}) => setThemeConf(conf);
298
- const toggleCollapsed = () => setThemeStore({
299
- menuOptions: {
300
- collapsed: !unref$1(getCollapsed)
301
- }
302
- });
303
- const getMiniWidthNumber = computed$1(() => getMenuConf.collapsedShowTitle ? 80 : 48);
304
- const getRealWidth = computed$1(() => {
305
- return unref$1(getCollapsed) ? unref$1(getMiniWidthNumber) : unref$1(getMenuWidth);
306
- });
307
- const getCalcContentWidth = computed$1(() => {
308
- const width = unref$1(getIsTopMenu) || !unref$1(getShowMenu) || unref$1(getSplit) && unref$1(getMenuHidden) ? 0 : unref$1(getRealWidth);
309
- return `calc(100% - ${unref$1(width)}px)`;
310
- });
311
- return {
312
- getCollapsedShowTitle,
313
- getIsSidebarType,
314
- getMenuFixed,
315
- getShowMenu,
316
- getShowSidebar,
317
- getMenuHidden,
318
- getMenuTheme,
319
- getTrigger,
320
- getMenuWidth,
321
- getLogoWidth,
322
- getMenuType,
323
- getIsTopMenu,
324
- getMenuMode,
325
- getSplit,
326
- getCollapsed,
327
- getIsHorizontal,
328
- getMiniWidthNumber,
329
- getRealWidth,
330
- getCalcContentWidth,
331
- getIsMixMode,
332
- getCanDrag,
333
- toggleCollapsed,
334
- setThemeStore
335
- };
336
- }
337
- function useMultipleTab() {
338
- const { getRouteReuseConf } = useThemeStore();
339
- const getShowMultipleTab = computed(() => getRouteReuseConf.show);
340
- const getShowQuick = computed(() => getRouteReuseConf.showQuick);
341
- const getShowRedo = computed(() => getRouteReuseConf.showRedo);
342
- const getCanCache = computed(() => getRouteReuseConf.cache);
343
- const getCanDrag = computed(() => getRouteReuseConf.canDrag);
344
- return {
345
- getShowMultipleTab,
346
- getShowQuick,
347
- getShowRedo,
348
- getCanCache,
349
- getCanDrag
350
- };
351
- }
352
- function useHeader() {
353
- const HEADER_HEIGHT = 48;
354
- const TABS_HEIGHT = 33;
355
- const { getHeaderConf = {} } = useThemeStore();
356
- const {
357
- getIsSidebarType,
358
- getMenuType,
359
- getShowMenu,
360
- getMenuHidden,
361
- getTrigger,
362
- getMenuMode,
363
- getSplit,
364
- getIsTopMenu,
365
- getIsMixMode
366
- } = useMenu();
367
- const { getShowMultipleTab } = useMultipleTab();
368
- const getHeaderTheme = computed$1(() => getHeaderConf.theme);
369
- const getFixed = computed$1(() => getHeaderConf.fixed);
370
- const getShowHeaderLogo = computed$1(() => unref$1(getShowLogo) && !unref$1(getIsSidebarType));
371
- const getShowSearch = computed$1(() => getHeaderConf.showSearch);
372
- const getShowHeaderTrigger = computed$1(() => {
373
- if (unref$1(getMenuType) === MenuType.TOP_MENU || !unref$1(getShowMenu) || unref$1(getMenuHidden)) {
374
- return false;
375
- }
376
- return unref$1(getTrigger);
377
- });
378
- const getShowBreadCrumb = computed$1(() => getHeaderConf.showBreadCrumb);
379
- const getShowBread = computed$1(
380
- () => unref$1(getMenuMode) !== MenuMode.HORIZONTAL && !unref$1(getSplit) && unref$1(getShowBreadCrumb)
381
- );
382
- const getShowTopMenu = computed$1(() => unref$1(getMenuMode) === MenuMode.HORIZONTAL || unref$1(getSplit));
383
- const getShowNotice = computed$1(() => getHeaderConf.showNotice);
384
- const getShowFullScreen = computed$1(() => getHeaderConf.showFullScreen);
385
- const getShowLocale = computed$1(() => getHeaderConf.showLocaleSwitch);
386
- const getShowSettingTheme = computed$1(() => getHeaderConf.showSettingTheme);
387
- const getShowFullHeaderRef = computed$1(() => {
388
- return !unref$1(getIsSidebarType) && !unref$1(getIsTopMenu);
389
- });
390
- const getHeaderHeight = computed$1(() => {
391
- let height = 0;
392
- height += HEADER_HEIGHT;
393
- if (unref$1(getShowMultipleTab) && !unref$1(getSplit)) {
394
- height += TABS_HEIGHT;
395
- }
396
- return height;
397
- });
398
- const getTabsHeight = computed$1(() => TABS_HEIGHT);
399
- const getShowInsetHeaderRef = computed$1(() => {
400
- return unref$1(getIsSidebarType) || unref$1(getIsTopMenu);
401
- });
402
- const getShowBackToTop = computed$1(() => getHeaderConf.showBackToTop);
403
- const getIsZH = computed$1(() => {
404
- let local = DtCache.getLocal(CacheKey.LOCALE);
405
- if (!local)
406
- return true;
407
- return local === Language.ZH;
408
- });
409
- const getUiSize = computed$1(() => getHeaderConf?.size ?? UiSize.SMALL);
410
- const getShowUiSize = computed$1(() => getHeaderConf?.showSize);
411
- const getShowLogo = computed$1(() => getHeaderConf.showLogo);
412
- const getShowLoginOut = computed$1(() => getHeaderConf.showLoginOut);
413
- const loginOutClick = getHeaderConf.logoutClick;
414
- return {
415
- getHeaderTheme,
416
- getFixed,
417
- getShowSearch,
418
- getShowHeaderLogo,
419
- getShowHeaderTrigger,
420
- getShowBread,
421
- getShowTopMenu,
422
- getShowFullScreen,
423
- getShowLocale,
424
- getShowSettingTheme,
425
- getShowNotice,
426
- getShowFullHeaderRef,
427
- getHeaderHeight,
428
- getTabsHeight,
429
- getShowInsetHeaderRef,
430
- getShowBackToTop,
431
- getIsZH,
432
- getUiSize,
433
- getShowLogo,
434
- getShowLoginOut,
435
- getShowUiSize,
436
- loginOutClick
437
- };
438
- }
439
- function useTheme() {
440
- const { getThemeConf, getPageLoading } = useThemeStore();
441
- const getLayoutContentMode = computed$1(() => getThemeConf.content.contentMode);
442
- const getFooter = computed$1(() => getThemeConf.footerOptions || {});
443
- const getShowFooter = computed$1(() => isObject(getThemeConf.footerOptions) ? getThemeConf.footerOptions.show : true);
444
- const getContentMode = computed$1(() => getThemeConf.content.contentMode);
445
- const getOpenPageLoading = computed$1(() => getPageLoading);
446
- return {
447
- getLayoutContentMode,
448
- getPageLoading,
449
- getFooter,
450
- getShowFooter,
451
- getContentMode,
452
- getOpenPageLoading
453
- };
454
- }
455
- function deleteChildrenProp(menu) {
456
- let obj = { ...menu };
457
- delete obj.children;
458
- return obj;
459
- }
460
- function getBreadCrumb(path, menus) {
461
- const _menus = menus || DtCache.getLocal(CacheKey.MENUS)?.children || [];
462
- let routes = [];
463
- let getParentByPath = (menu, path2 = "") => {
464
- if (menu.children && menu.children.length) {
465
- menu.children.forEach((subMenu) => {
466
- subMenu.parentMenus = [...menu.parentMenus].concat([deleteChildrenProp(subMenu)]);
467
- getParentByPath(subMenu, path2);
468
- });
469
- }
470
- if (menu.url === path2) {
471
- routes = menu.parentMenus;
472
- }
473
- };
474
- _menus.forEach((menu) => {
475
- menu.parentMenus = [deleteChildrenProp(menu)];
476
- getParentByPath(menu, path);
477
- });
478
- return routes;
479
- }
480
- function getFilterMenu(filter = "", flag = false) {
481
- let _menus = [];
482
- if (!trim(filter) && !flag)
483
- return _menus;
484
- let getTargetMenus = (menusArr) => {
485
- menusArr.forEach((menu) => {
486
- if (menu.children && menu.children.length) {
487
- getTargetMenus(menu.children);
488
- } else if (menu.label.indexOf(filter) !== -1 || flag && !trim(filter)) {
489
- _menus.push(menu);
490
- }
491
- });
492
- };
493
- getTargetMenus(DtCache.getLocal(CacheKey.MENUS)?.children);
494
- return _menus;
495
- }
496
- function useOpenKeys(menuState, menus, type) {
497
- async function setOpenKeys(path) {
498
- if (type === MenuType.TOP_MENU)
499
- return;
500
- useTimeoutFn(
501
- () => {
502
- if (menus?.length === 0) {
503
- menuState.openKeys = [];
504
- return;
505
- }
506
- const parentNodes = getBreadCrumb(path, menus);
507
- menuState.openKeys = parentNodes.map((it) => it.id);
508
- },
509
- 20,
510
- true
511
- );
512
- }
513
- const getOpenKeys = computed$1(() => menuState.openKeys);
514
- function resetKeys() {
515
- menuState.selectedKeys = [];
516
- menuState.openKeys = [];
517
- }
518
- function handleOpenChange(openKeys) {
519
- menuState.openKeys = openKeys;
520
- }
521
- return {
522
- getOpenKeys,
523
- setOpenKeys,
524
- resetKeys,
525
- handleOpenChange
526
- };
527
- }
528
- function useDragLine(siderRef, dragBarRef) {
529
- const { getMiniWidthNumber, getCollapsed, setThemeStore } = useMenu();
530
- onMounted$1(() => {
531
- nextTick$1(() => {
532
- const exec = useDebounceFn(changeWrapWidth, 80);
533
- exec();
534
- });
535
- });
536
- function getEl(elRef) {
537
- const el = unref$1(elRef);
538
- if (!el)
539
- return null;
540
- if (Reflect.has(el, "$el")) {
541
- return unref$1(elRef)?.$el;
542
- }
543
- return unref$1(elRef);
544
- }
545
- function handleMouseMove(ele, wrap, clientX) {
546
- document.onmousemove = function(innerE) {
547
- innerE = innerE || window.event;
548
- let iT = ele.left + (innerE.clientX - clientX);
549
- const maxT = 800;
550
- const minT = unref$1(getMiniWidthNumber);
551
- iT < 0 && (iT = 0);
552
- iT > maxT && (iT = maxT);
553
- iT < minT && (iT = minT);
554
- ele.style.left = wrap.style.width = iT + "px";
555
- return false;
556
- };
557
- }
558
- function removeMouseup(ele) {
559
- const wrap = getEl(siderRef);
560
- document.onmouseup = function() {
561
- document.onmousemove = null;
562
- document.onmouseup = null;
563
- wrap.style.transition = "width 0.2s";
564
- const width = parseInt(wrap.style.width);
565
- setThemeStore({
566
- menuOptions: {
567
- menuWidth: width
568
- }
569
- });
570
- ele.releaseCapture?.();
571
- };
572
- }
573
- function changeWrapWidth() {
574
- const ele = getEl(dragBarRef);
575
- if (!ele)
576
- return;
577
- const wrap = getEl(siderRef);
578
- if (!wrap)
579
- return;
580
- ele.onmousedown = (e) => {
581
- wrap.style.transition = "unset";
582
- const clientX = e?.clientX;
583
- ele.left = ele.offsetLeft;
584
- handleMouseMove(ele, wrap, clientX);
585
- removeMouseup(ele);
586
- ele.setCapture?.();
587
- return false;
588
- };
589
- }
590
- }
591
- const _sfc_main$y = /* @__PURE__ */ defineComponent$1({
592
- __name: "back-top",
593
- setup(__props) {
594
- const getTarget = () => document.getElementById("dt-layout-content");
595
- const { getShowBackToTop } = useHeader();
596
- return (_ctx, _cache) => {
597
- const _component_ABackTop = BackTop;
598
- return unref$1(getShowBackToTop) ? (openBlock(), createBlock(_component_ABackTop, {
599
- key: 0,
600
- target: getTarget,
601
- visibilityHeight: 300
602
- })) : createCommentVNode("", true);
603
- };
604
- }
605
- });
606
- const _sfc_main$x = /* @__PURE__ */ defineComponent$1({
607
- __name: "index",
608
- setup(__props) {
609
- return (_ctx, _cache) => {
610
- return openBlock(), createBlock(_sfc_main$y);
611
- };
612
- }
613
- });
614
- const _sfc_main$w = /* @__PURE__ */ defineComponent$1({
615
- __name: "fullscreen",
616
- setup(__props) {
617
- const { toggle, isFullscreen } = useFullscreen();
618
- return (_ctx, _cache) => {
619
- return openBlock(), createElementBlock("span", {
620
- 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",
621
- onClick: _cache[0] || (_cache[0] = (...args) => unref$1(toggle) && unref$1(toggle)(...args))
622
- }, [
623
- createElementVNode("i", {
624
- class: normalizeClass(["i block", !unref$1(isFullscreen) ? "ic:baseline-fullscreen" : "ic:baseline-fullscreen-exit"])
625
- }, null, 2)
626
- ]);
627
- };
628
- }
629
- });
630
- const DtLogo = "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=";
631
- const _hoisted_1$i = ["src"];
632
- const _sfc_main$v = /* @__PURE__ */ defineComponent$1({
633
- __name: "logo",
634
- props: {
635
- theme: { type: String, validator: (v) => ["light", "dark"].includes(v) },
636
- showTitle: { type: Boolean, default: true }
637
- },
638
- setup(__props) {
639
- const props = __props;
640
- const { t } = useI18n("UI");
641
- const title = t("COMPANY_NAME");
642
- const { getLogoWidth } = useMenu();
643
- const getLogoClass = computed$1(() => {
644
- 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 `;
645
- });
646
- return (_ctx, _cache) => {
647
- return openBlock(), createElementBlock("div", {
648
- class: normalizeClass(unref$1(getLogoClass)),
649
- style: normalizeStyle({
650
- minWidth: `${unref$1(getLogoWidth)}px`
651
- })
652
- }, [
653
- createElementVNode("img", { src: unref$1(DtLogo) }, null, 8, _hoisted_1$i),
654
- withDirectives(createElementVNode("div", { class: "dt-logo__title text-base font-bold transition-all duration-500 pl-3" }, toDisplayString(unref$1(title)), 513), [
655
- [vShow, __props.showTitle]
656
- ])
657
- ], 6);
658
- };
659
- }
660
- });
661
- const _sfc_main$u = /* @__PURE__ */ defineComponent$1({
662
- __name: "trigger",
663
- props: { theme: String },
664
- setup(__props) {
665
- const props = __props;
666
- const { getCollapsed, toggleCollapsed } = useMenu();
667
- return (_ctx, _cache) => {
668
- return openBlock(), createElementBlock("div", {
669
- class: normalizeClass(["flex w-12 h-full cursor-pointer items-center justify-center", props.theme]),
670
- onClick: _cache[0] || (_cache[0] = (...args) => unref$1(toggleCollapsed) && unref$1(toggleCollapsed)(...args))
671
- }, [
672
- createElementVNode("i", {
673
- class: normalizeClass(["i leading-none", unref$1(getCollapsed) ? "ic:baseline-format-indent-increase" : "ic:baseline-format-indent-decrease"])
674
- }, null, 2)
675
- ], 2);
676
- };
677
- }
678
- });
679
- const _default = "";
680
- const index$b = "";
681
- const index$a = "";
682
- const index$9 = "";
683
- const index$8 = "";
684
- const index$7 = "";
685
- const _hoisted_1$h = { class: "dt-breadcrumb" };
686
- const _sfc_main$t = /* @__PURE__ */ defineComponent$1({
687
- __name: "bread-crumb",
688
- setup(__props) {
689
- const { getIsZH } = useHeader();
690
- let routes = ref$1([]);
691
- const { currentRoute = null } = useRouter$1();
692
- watchEffect(() => {
693
- if (!currentRoute || currentRoute.value.path === "/")
694
- return;
695
- routes.value = getBreadCrumb(currentRoute.value.path);
696
- });
697
- return (_ctx, _cache) => {
698
- const _component_ABreadcrumb = Breadcrumb;
699
- return openBlock(), createElementBlock("div", _hoisted_1$h, [
700
- createVNode(_component_ABreadcrumb, { routes: unref$1(routes) }, {
701
- itemRender: withCtx(({ route }) => [
702
- createElementVNode("span", null, toDisplayString((unref$1(getIsZH) ? route.label : route.enLabel) || route.meta?.title), 1)
703
- ]),
704
- _: 1
705
- }, 8, ["routes"])
706
- ]);
707
- };
708
- }
709
- });
710
- const _hoisted_1$g = {
711
- key: 0,
712
- class: "dt-menu-filter h-7 pr-2"
713
- };
714
- const _hoisted_2$8 = ["onClick"];
715
- const _hoisted_3$5 = {
716
- key: 0,
717
- class: "flex items-center justify-center h-full overflow-hidden"
718
- };
719
- const _sfc_main$s = /* @__PURE__ */ defineComponent$1({
720
- __name: "menu-filter",
721
- setup(__props) {
722
- const { t } = useI18n("UI");
723
- const menuList = ref([]);
724
- const router = useRouter$1();
725
- const filter = ref("");
726
- const { getShowSearch, getIsZH } = useHeader();
727
- const isUseDef = computed(() => {
728
- return isBoolean(getShowSearch.value);
729
- });
730
- function visibleChange(e) {
731
- if (e) {
732
- filterMenu();
733
- } else {
734
- filter.value = null;
735
- }
736
- }
737
- function filterMenu() {
738
- menuList.value = getFilterMenu(filter.value, true);
739
- }
740
- function navigation(url) {
741
- router.push(url);
742
- setTimeout(() => {
743
- filter.value = "";
744
- menuList.value = [];
745
- });
746
- }
747
- return (_ctx, _cache) => {
748
- const _component_AEmpty = Empty;
749
- const _component_AInputSearch = InputSearch;
750
- const _component_APopover = Popover;
751
- return unref$1(isUseDef) ? (openBlock(), createElementBlock("div", _hoisted_1$g, [
752
- createVNode(_component_APopover, {
753
- placement: "bottom",
754
- overlayClassName: "dt-menu-filter__popover",
755
- trigger: "focus",
756
- onVisibleChange: visibleChange
757
- }, {
758
- content: withCtx(() => [
759
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref$1(menuList), (menu) => {
760
- return openBlock(), createElementBlock("p", {
761
- onClick: ($event) => navigation(menu.url),
762
- class: "px-5 leading-9 border-gray-200 border-dashed border-b m-0 cursor-pointer transition-all duration-300 text-13"
763
- }, toDisplayString(unref$1(getIsZH) ? menu.label : menu.enLabel), 9, _hoisted_2$8);
764
- }), 256)),
765
- !unref$1(menuList).length ? (openBlock(), createElementBlock("div", _hoisted_3$5, [
766
- createVNode(_component_AEmpty, {
767
- description: "\u6682\u65E0\u6570\u636E",
768
- imageStyle: { width: "100%" }
769
- })
770
- ])) : createCommentVNode("", true)
771
- ]),
772
- default: withCtx(() => [
773
- createVNode(_component_AInputSearch, {
774
- value: unref$1(filter),
775
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => isRef(filter) ? filter.value = $event : null),
776
- placeholder: unref$1(t)("FILTER_MORE"),
777
- onInput: filterMenu,
778
- size: unref$1(UiSize).SMALL
779
- }, null, 8, ["value", "placeholder", "size"])
780
- ]),
781
- _: 1
782
- })
783
- ])) : createCommentVNode("", true);
784
- };
785
- }
786
- });
787
- const _hoisted_1$f = { class: "lang m-0" };
788
- const _hoisted_2$7 = ["onClick"];
789
- const _hoisted_3$4 = {
790
- class: "pr-2",
791
- size: 16
792
- };
793
- const _hoisted_4$2 = /* @__PURE__ */ createElementVNode("span", { class: "dt_header_icon text-lg text-gray-800 cursor-pointer px-3 hover:bg-gray-500 hover:bg-opacity-50 transition-all duration-300" }, [
794
- /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-language" })
795
- ], -1);
796
- const _sfc_main$r = /* @__PURE__ */ defineComponent$1({
797
- __name: "lang-picker",
798
- props: {
799
- reload: { type: Boolean }
800
- },
801
- setup(__props) {
802
- const props = __props;
803
- const visible = ref$1(false);
804
- let currentLang = DtCache.getLocal(CacheKey.LOCALE);
805
- async function toggleLang(lang) {
806
- visible.value = false;
807
- if (lang !== currentLang) {
808
- currentLang = lang;
809
- await changeLocale(lang);
810
- props.reload && location.reload();
811
- }
812
- }
813
- return (_ctx, _cache) => {
814
- const _component_APopover = Popover;
815
- const _directive_icon = resolveDirective("icon");
816
- return openBlock(), createBlock(_component_APopover, {
817
- placement: "bottom",
818
- visible: visible.value,
819
- "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
820
- overlayClassName: "dt-lang-picker__popover",
821
- trigger: "click"
822
- }, {
823
- content: withCtx(() => [
824
- createElementVNode("ul", _hoisted_1$f, [
825
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref$1(localeList), (it) => {
826
- return openBlock(), createElementBlock("li", {
827
- onClick: ($event) => toggleLang(it.event),
828
- 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$1(currentLang) ? "active bg-gray-100" : ""])
829
- }, [
830
- withDirectives(createElementVNode("span", _hoisted_3$4, null, 512), [
831
- [_directive_icon, it.icon]
832
- ]),
833
- createElementVNode("span", null, toDisplayString(it.text), 1)
834
- ], 10, _hoisted_2$7);
835
- }), 256))
836
- ])
837
- ]),
838
- default: withCtx(() => [
839
- _hoisted_4$2
840
- ]),
841
- _: 1
842
- }, 8, ["visible"]);
843
- };
844
- }
845
- });
846
- const isServer = typeof window === "undefined";
847
- const BAR_MAP = {
848
- vertical: {
849
- offset: "offsetHeight",
850
- scroll: "scrollTop",
851
- scrollSize: "scrollHeight",
852
- size: "height",
853
- key: "vertical",
854
- axis: "Y",
855
- client: "clientY",
856
- direction: "top"
857
- },
858
- horizontal: {
859
- offset: "offsetWidth",
860
- scroll: "scrollLeft",
861
- scrollSize: "scrollWidth",
862
- size: "width",
863
- key: "horizontal",
864
- axis: "X",
865
- client: "clientX",
866
- direction: "left"
867
- }
868
- };
869
- function renderThumbStyle({ move, size, bar }) {
870
- const style = {};
871
- const translate = `translate${bar.axis}(${move}%)`;
872
- style[bar.size] = size;
873
- style.transform = translate;
874
- style.msTransform = translate;
875
- style.webkitTransform = translate;
876
- return style;
877
- }
878
- function resizeHandler(entries) {
879
- for (const entry of entries) {
880
- const listeners = entry.target.__resizeListeners__ || [];
881
- if (listeners.length) {
882
- listeners.forEach((fn) => {
883
- fn();
884
- });
885
- }
886
- }
887
- }
888
- function addResizeListener(element, fn) {
889
- if (isServer)
890
- return;
891
- if (!element.__resizeListeners__) {
892
- element.__resizeListeners__ = [];
893
- element.__ro__ = new ResizeObserver(resizeHandler);
894
- element.__ro__.observe(element);
895
- }
896
- element.__resizeListeners__.push(fn);
897
- }
898
- function removeResizeListener(element, fn) {
899
- if (!element || !element.__resizeListeners__)
900
- return;
901
- element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
902
- if (!element.__resizeListeners__.length) {
903
- element.__ro__.disconnect();
904
- }
905
- }
906
- const Bar = defineComponent$1({
907
- name: "Bar",
908
- props: {
909
- vertical: Boolean,
910
- size: String,
911
- move: Number
912
- },
913
- setup(props) {
914
- const instance = getCurrentInstance();
915
- const thumb = ref$1();
916
- const wrap = inject("scroll-bar-wrap", {});
917
- const bar = computed$1(() => {
918
- return BAR_MAP[props.vertical ? "vertical" : "horizontal"];
919
- });
920
- const barStore = ref$1({});
921
- const cursorDown = ref$1();
922
- const clickThumbHandler = (e) => {
923
- if (e.ctrlKey || e.button === 2) {
924
- return;
925
- }
926
- window.getSelection()?.removeAllRanges();
927
- startDrag(e);
928
- barStore.value[bar.value.axis] = e.currentTarget[bar.value.offset] - (e[bar.value.client] - e.currentTarget.getBoundingClientRect()[bar.value.direction]);
929
- };
930
- const clickTrackHandler = (e) => {
931
- const offset = Math.abs(
932
- e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]
933
- );
934
- const thumbHalf = thumb.value[bar.value.offset] / 2;
935
- const thumbPositionPercentage = (offset - thumbHalf) * 100 / instance?.vnode.el?.[bar.value.offset];
936
- wrap.value[bar.value.scroll] = thumbPositionPercentage * wrap.value[bar.value.scrollSize] / 100;
937
- };
938
- const startDrag = (e) => {
939
- e.stopImmediatePropagation();
940
- cursorDown.value = true;
941
- on(document, "mousemove", mouseMoveDocumentHandler);
942
- on(document, "mouseup", mouseUpDocumentHandler);
943
- document.onselectstart = () => false;
944
- };
945
- const mouseMoveDocumentHandler = (e) => {
946
- if (cursorDown.value === false)
947
- return;
948
- const prevPage = barStore.value[bar.value.axis];
949
- if (!prevPage)
950
- return;
951
- const offset = (instance?.vnode.el?.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1;
952
- const thumbClickPosition = thumb.value[bar.value.offset] - prevPage;
953
- const thumbPositionPercentage = (offset - thumbClickPosition) * 100 / instance?.vnode.el?.[bar.value.offset];
954
- wrap.value[bar.value.scroll] = thumbPositionPercentage * wrap.value[bar.value.scrollSize] / 100;
955
- };
956
- function mouseUpDocumentHandler() {
957
- cursorDown.value = false;
958
- barStore.value[bar.value.axis] = 0;
959
- off(document, "mousemove", mouseMoveDocumentHandler);
960
- document.onselectstart = null;
961
- }
962
- onUnmounted(() => {
963
- off(document, "mouseup", mouseUpDocumentHandler);
964
- });
965
- return () => h$1(
966
- "div",
967
- {
968
- class: ["scrollbar__bar", "is-" + bar.value.key],
969
- onMousedown: clickTrackHandler
970
- },
971
- h$1("div", {
972
- ref: thumb,
973
- class: "scrollbar__thumb",
974
- onMousedown: clickThumbHandler,
975
- style: renderThumbStyle({
976
- size: props.size,
977
- move: props.move,
978
- bar: bar.value
979
- })
980
- })
981
- );
982
- }
983
- });
984
- const _hoisted_1$e = { class: "scrollbar relative h-full overflow-hidden" };
985
- const _sfc_main$q = /* @__PURE__ */ defineComponent$1({
986
- __name: "scroll-bar",
987
- props: {
988
- wrapClass: {
989
- type: [String, Array],
990
- default: ""
991
- },
992
- wrapStyle: Array,
993
- viewClass: {
994
- type: [String, Array],
995
- default: ""
996
- },
997
- viewStyle: {
998
- type: [String, Array],
999
- default: ""
1000
- },
1001
- noresize: Boolean,
1002
- tag: {
1003
- type: String,
1004
- default: "div"
1005
- }
1006
- },
1007
- setup(__props) {
1008
- const props = __props;
1009
- const sizeWidth = ref("0");
1010
- const sizeHeight = ref("0");
1011
- const moveX = ref(0);
1012
- const moveY = ref(0);
1013
- const wrap = ref();
1014
- const resize = ref();
1015
- provide("scroll-bar-wrap", wrap);
1016
- const style = computed(() => {
1017
- let rsStyle = {};
1018
- if (Array.isArray(props.wrapStyle)) {
1019
- props.wrapStyle.forEach((it) => {
1020
- if (it)
1021
- rsStyle = Object.assign({}, rsStyle, it);
1022
- });
1023
- }
1024
- return rsStyle;
1025
- });
1026
- const handleScroll = () => {
1027
- moveY.value = unref(wrap).scrollTop * 100 / unref(wrap).clientHeight;
1028
- moveX.value = unref(wrap).scrollLeft * 100 / unref(wrap).clientWidth;
1029
- };
1030
- const update = () => {
1031
- if (!unref(wrap))
1032
- return;
1033
- const heightPercentage = unref(wrap).clientHeight * 100 / unref(wrap).scrollHeight;
1034
- const widthPercentage = unref(wrap).clientWidth * 100 / unref(wrap).scrollWidth;
1035
- sizeHeight.value = heightPercentage < 100 ? heightPercentage + "%" : "";
1036
- sizeWidth.value = widthPercentage < 100 ? widthPercentage + "%" : "";
1037
- };
1038
- onMounted(() => {
1039
- nextTick(update);
1040
- if (!props.noresize) {
1041
- addResizeListener(unref(resize), update);
1042
- addResizeListener(unref(wrap), update);
1043
- addEventListener("resize", update);
1044
- }
1045
- });
1046
- onBeforeUnmount(() => {
1047
- if (!props.noresize) {
1048
- removeResizeListener(unref(resize), update);
1049
- removeResizeListener(unref(wrap), update);
1050
- removeEventListener("resize", update);
1051
- }
1052
- });
1053
- return (_ctx, _cache) => {
1054
- return openBlock(), createElementBlock("div", _hoisted_1$e, [
1055
- createElementVNode("div", {
1056
- ref_key: "wrap",
1057
- ref: wrap,
1058
- class: normalizeClass([[__props.wrapClass, "scrollbar__wrap--hidden-default"], "h-full overflow-auto"]),
1059
- style: normalizeStyle(unref$1(style)),
1060
- onScroll: handleScroll
1061
- }, [
1062
- (openBlock(), createBlock(resolveDynamicComponent(__props.tag), {
1063
- class: normalizeClass(["box-border", __props.viewClass]),
1064
- ref_key: "resize",
1065
- ref: resize,
1066
- style: normalizeStyle(__props.viewStyle)
1067
- }, {
1068
- default: withCtx(() => [
1069
- renderSlot(_ctx.$slots, "default")
1070
- ]),
1071
- _: 3
1072
- }, 8, ["class", "style"]))
1073
- ], 38),
1074
- createVNode(unref$1(Bar), {
1075
- move: unref$1(moveX),
1076
- size: unref$1(sizeWidth)
1077
- }, null, 8, ["move", "size"]),
1078
- createVNode(unref$1(Bar), {
1079
- vertical: "",
1080
- move: unref$1(moveY),
1081
- size: unref$1(sizeHeight)
1082
- }, null, 8, ["move", "size"])
1083
- ]);
1084
- };
1085
- }
1086
- });
1087
- const _sfc_main$p = /* @__PURE__ */ defineComponent$1({
1088
- __name: "scroll-container",
1089
- setup(__props) {
1090
- const scrollbarRef = ref(null);
1091
- return (_ctx, _cache) => {
1092
- return openBlock(), createBlock(_sfc_main$q, mergeProps({
1093
- ref_key: "scrollbarRef",
1094
- ref: scrollbarRef
1095
- }, _ctx.$attrs, { class: "w-full h-full" }), {
1096
- default: withCtx(() => [
1097
- renderSlot(_ctx.$slots, "default")
1098
- ]),
1099
- _: 3
1100
- }, 16);
1101
- };
1102
- }
1103
- });
1104
- const _sfc_main$o = defineComponent({
1105
- name: "slot-container",
1106
- props: {
1107
- template: {
1108
- type: Function
1109
- },
1110
- data: {
1111
- type: Object
1112
- }
1113
- },
1114
- setup(props) {
1115
- return () => {
1116
- return h("div", [props.template(props.data)]);
1117
- };
1118
- }
1119
- });
1120
- const withInstall = (comp) => {
1121
- comp.install = (app) => {
1122
- app.component(comp.name, comp);
1123
- };
1124
- return comp;
1125
- };
1126
- const DtScrollContainer = withInstall(_sfc_main$p);
1127
- const DtSlotContainer = withInstall(_sfc_main$o);
1128
- 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" };
1129
- const _sfc_main$n = /* @__PURE__ */ defineComponent$1({
1130
- __name: "notify",
1131
- setup(__props) {
1132
- const slots = getParentSlots(null, "dt-theme");
1133
- return (_ctx, _cache) => {
1134
- const _component_APopover = Popover;
1135
- const _directive_icon = resolveDirective("icon");
1136
- return openBlock(), createBlock(_component_APopover, {
1137
- trigger: "click",
1138
- overlayClassName: "dt-notify__popover"
1139
- }, {
1140
- content: withCtx(() => [
1141
- unref$1(slots).notify ? (openBlock(), createBlock(unref$1(DtSlotContainer), {
1142
- key: 0,
1143
- template: unref$1(slots).notify
1144
- }, null, 8, ["template"])) : createCommentVNode("", true)
1145
- ]),
1146
- default: withCtx(() => [
1147
- createElementVNode("span", _hoisted_1$d, [
1148
- withDirectives(createElementVNode("span", null, null, 512), [
1149
- [_directive_icon, "ant-design:bell-outlined"]
1150
- ]),
1151
- unref$1(slots).notifyBadge ? (openBlock(), createBlock(unref$1(DtSlotContainer), {
1152
- key: 0,
1153
- template: unref$1(slots).notifyBadge
1154
- }, null, 8, ["template"])) : createCommentVNode("", true)
1155
- ])
1156
- ]),
1157
- _: 1
1158
- });
1159
- };
1160
- }
1161
- });
1162
- const _hoisted_1$c = { class: "lang m-0" };
1163
- const _hoisted_2$6 = ["onClick"];
1164
- 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" }, [
1165
- /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-format-size" })
1166
- ], -1);
1167
- const _sfc_main$m = /* @__PURE__ */ defineComponent$1({
1168
- __name: "size",
1169
- setup(__props) {
1170
- const { t } = useI18n("UI");
1171
- const { setThemeConf } = useThemeStore();
1172
- const { getUiSize } = useHeader();
1173
- const sizeList = [
1174
- {
1175
- text: t("LARGE_SIZE"),
1176
- event: UiSize.LARGE
1177
- },
1178
- {
1179
- text: t("MIDDLE_SIZE"),
1180
- event: UiSize.MIDDLE
1181
- },
1182
- {
1183
- text: t("SMALL_SIZE"),
1184
- event: UiSize.SMALL
1185
- }
1186
- ];
1187
- const visible = ref$1(false);
1188
- async function toggleLang(size) {
1189
- visible.value = false;
1190
- setThemeConf({
1191
- headOptions: {
1192
- size
1193
- }
1194
- });
1195
- }
1196
- return (_ctx, _cache) => {
1197
- return openBlock(), createBlock(unref$1(Popover$1), {
1198
- placement: "bottom",
1199
- visible: visible.value,
1200
- "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
1201
- overlayClassName: "dt-size__popover",
1202
- trigger: "click"
1203
- }, {
1204
- content: withCtx(() => [
1205
- createElementVNode("ul", _hoisted_1$c, [
1206
- (openBlock(), createElementBlock(Fragment, null, renderList(sizeList, (it) => {
1207
- return createElementVNode("li", {
1208
- onClick: ($event) => toggleLang(it.event),
1209
- 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$1(getUiSize) ? "active bg-gray-100" : ""])
1210
- }, [
1211
- createElementVNode("span", null, toDisplayString(it.text), 1)
1212
- ], 10, _hoisted_2$6);
1213
- }), 64))
1214
- ])
1215
- ]),
1216
- default: withCtx(() => [
1217
- _hoisted_3$3
1218
- ]),
1219
- _: 1
1220
- }, 8, ["visible"]);
1221
- };
1222
- }
1223
- });
1224
- const index$6 = "";
1225
- const _imports_0 = "data:image/png;base64,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";
1226
- const _hoisted_1$b = { class: "m-0" };
1227
- const _hoisted_2$5 = {
1228
- class: "pr-2",
1229
- size: 16
1230
- };
1231
- 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" };
1232
- const _hoisted_4$1 = /* @__PURE__ */ createElementVNode("img", { src: _imports_0 }, null, -1);
1233
- const _hoisted_5 = { class: "pl-2 text-13" };
1234
- const _sfc_main$l = /* @__PURE__ */ defineComponent$1({
1235
- __name: "user-info",
1236
- setup(__props) {
1237
- const { t } = useI18n("UI");
1238
- const go = useGo();
1239
- const { getShowLoginOut, loginOutClick } = useHeader();
1240
- const slots = getParentSlots(null, "dt-theme");
1241
- const getUserInfo = DtCache.getLocal(CacheKey.USER_INFO);
1242
- function signOut() {
1243
- if (loginOutClick && isFunction(loginOutClick)) {
1244
- loginOutClick();
1245
- } else {
1246
- go(Pages.LOGIN);
1247
- }
1248
- }
1249
- return (_ctx, _cache) => {
1250
- const _component_AAvatar = Avatar;
1251
- const _component_APopover = Popover;
1252
- const _directive_icon = resolveDirective("icon");
1253
- return openBlock(), createBlock(_component_APopover, {
1254
- placement: "bottom",
1255
- overlayClassName: "dt-user-info__popover",
1256
- trigger: "click"
1257
- }, {
1258
- content: withCtx(() => [
1259
- createElementVNode("div", _hoisted_1$b, [
1260
- unref$1(slots).userInfo ? (openBlock(), createBlock(unref$1(DtSlotContainer), {
1261
- key: 0,
1262
- template: unref$1(slots).userInfo
1263
- }, null, 8, ["template"])) : createCommentVNode("", true),
1264
- unref$1(getShowLoginOut) ? (openBlock(), createElementBlock("div", {
1265
- key: 1,
1266
- onClick: _cache[0] || (_cache[0] = ($event) => signOut()),
1267
- class: "px-4 my-1 leading-9 flex border-gray-200 cursor-pointer hover:bg-gray-100 transition-all duration-300 text-13"
1268
- }, [
1269
- withDirectives(createElementVNode("span", _hoisted_2$5, null, 512), [
1270
- [_directive_icon, "ant-design:logout-outlined"]
1271
- ]),
1272
- createElementVNode("span", null, toDisplayString(unref$1(t)("LOGIN_OUT")), 1)
1273
- ])) : createCommentVNode("", true)
1274
- ])
1275
- ]),
1276
- default: withCtx(() => [
1277
- createElementVNode("div", _hoisted_3$2, [
1278
- createVNode(_component_AAvatar, { size: 28 }, {
1279
- icon: withCtx(() => [
1280
- _hoisted_4$1
1281
- ]),
1282
- _: 1
1283
- }),
1284
- createElementVNode("span", _hoisted_5, toDisplayString(unref$1(getUserInfo)?.userNo), 1)
1285
- ])
1286
- ]),
1287
- _: 1
1288
- });
1289
- };
1290
- }
1291
- });
1292
- const index$5 = "";
1293
- const index$4 = "";
1294
- var HandlerEnum = /* @__PURE__ */ ((HandlerEnum2) => {
1295
- HandlerEnum2[HandlerEnum2["CHANGE_LAYOUT"] = 0] = "CHANGE_LAYOUT";
1296
- HandlerEnum2[HandlerEnum2["SHOW_BREADCRUMB"] = 1] = "SHOW_BREADCRUMB";
1297
- HandlerEnum2[HandlerEnum2["SHOW_SEARCH"] = 2] = "SHOW_SEARCH";
1298
- HandlerEnum2[HandlerEnum2["SHOW_SIZE"] = 3] = "SHOW_SIZE";
1299
- HandlerEnum2[HandlerEnum2["SHOW_NOTICY"] = 4] = "SHOW_NOTICY";
1300
- HandlerEnum2[HandlerEnum2["SHOW_FULL_SCREEN"] = 5] = "SHOW_FULL_SCREEN";
1301
- HandlerEnum2[HandlerEnum2["SHOW_LOCAL"] = 6] = "SHOW_LOCAL";
1302
- HandlerEnum2[HandlerEnum2["SHOW_ROUTE_REUSE"] = 7] = "SHOW_ROUTE_REUSE";
1303
- HandlerEnum2[HandlerEnum2["SHOW_FOOTER"] = 8] = "SHOW_FOOTER";
1304
- HandlerEnum2[HandlerEnum2["CONTENT_MODE"] = 9] = "CONTENT_MODE";
1305
- return HandlerEnum2;
1306
- })(HandlerEnum || {});
1307
- function changeTheme(event, value = {}) {
1308
- let conf = {};
1309
- switch (event) {
1310
- case 0:
1311
- const { mode, type, split, headTheme, menuTheme } = value;
1312
- conf = {
1313
- headOptions: {
1314
- theme: headTheme
1315
- },
1316
- menuOptions: {
1317
- mode,
1318
- type,
1319
- split,
1320
- theme: menuTheme,
1321
- show: true
1322
- }
1323
- };
1324
- break;
1325
- case 1:
1326
- conf = {
1327
- headOptions: {
1328
- showBreadCrumb: value
1329
- }
1330
- };
1331
- break;
1332
- case 2:
1333
- conf = {
1334
- headOptions: {
1335
- showSearch: value
1336
- }
1337
- };
1338
- break;
1339
- case 4:
1340
- conf = {
1341
- headOptions: {
1342
- showNotice: value
1343
- }
1344
- };
1345
- break;
1346
- case 3:
1347
- conf = {
1348
- headOptions: {
1349
- showSize: value
1350
- }
1351
- };
1352
- break;
1353
- case 5:
1354
- conf = {
1355
- headOptions: {
1356
- showFullScreen: value
1357
- }
1358
- };
1359
- break;
1360
- case 6:
1361
- conf = {
1362
- headOptions: {
1363
- showLocaleSwitch: value
1364
- }
1365
- };
1366
- break;
1367
- case 7:
1368
- conf = {
1369
- routeReuse: {
1370
- show: value
1371
- }
1372
- };
1373
- break;
1374
- case 8:
1375
- conf = {
1376
- footerOptions: {
1377
- show: value
1378
- }
1379
- };
1380
- break;
1381
- case 9:
1382
- conf = {
1383
- content: {
1384
- contentMode: value
1385
- }
1386
- };
1387
- break;
1388
- }
1389
- useThemeStore().setThemeConf(conf);
1390
- }
1391
- const _hoisted_1$a = { class: "flex flex-row justify-center dt-menu-type" };
1392
- const _hoisted_2$4 = ["onClick"];
1393
- const _hoisted_3$1 = /* @__PURE__ */ createElementVNode("div", { class: "dt-menu-type__item" }, null, -1);
1394
- const _hoisted_4 = [
1395
- _hoisted_3$1
1396
- ];
1397
- const _sfc_main$k = /* @__PURE__ */ defineComponent$1({
1398
- __name: "menu-type",
1399
- setup(__props) {
1400
- const { getMenuType, getMenuMode } = useMenu();
1401
- const menuTypeList = [
1402
- {
1403
- title: "\u5DE6\u4FA7\u83DC\u5355\u6A21\u5F0F",
1404
- headTheme: Theme.LIGHT,
1405
- menuTheme: Theme.DARK,
1406
- mode: MenuMode.INLINE,
1407
- type: MenuType.SIDE,
1408
- split: false
1409
- },
1410
- {
1411
- title: "\u83DC\u5355\u6DF7\u5408\u6A21\u5F0F",
1412
- headTheme: Theme.DARK,
1413
- menuTheme: Theme.LIGHT,
1414
- mode: MenuMode.INLINE,
1415
- type: MenuType.MIX,
1416
- split: true
1417
- },
1418
- {
1419
- title: "\u9876\u90E8\u83DC\u5355\u6A21\u5F0F",
1420
- headTheme: Theme.DARK,
1421
- menuTheme: Theme.LIGHT,
1422
- mode: MenuMode.HORIZONTAL,
1423
- type: MenuType.TOP_MENU,
1424
- split: false
1425
- }
1426
- ];
1427
- function changeMenuType(item) {
1428
- changeTheme(HandlerEnum.CHANGE_LAYOUT, item);
1429
- }
1430
- return (_ctx, _cache) => {
1431
- const _component_ATooltip = Tooltip;
1432
- return openBlock(), createElementBlock("div", _hoisted_1$a, [
1433
- (openBlock(), createElementBlock(Fragment, null, renderList(menuTypeList, (item) => {
1434
- return createVNode(_component_ATooltip, {
1435
- key: item.title,
1436
- title: item.title,
1437
- placement: "bottom"
1438
- }, {
1439
- default: withCtx(() => [
1440
- createElementVNode("div", {
1441
- onClick: ($event) => changeMenuType(item),
1442
- class: normalizeClass([
1443
- `dt-menu-type__list p-3 relative w-14 h-12 mr-4 overflow-hidden cursor-pointer bg-slate-100 rounded shadow-sm
1444
- shadow-gray-200`,
1445
- `dt-menu-type__item--${item.type}`,
1446
- {
1447
- [`dt-menu-type__item--active`]: unref$1(getMenuType) === item.type && unref$1(getMenuMode) === item.mode
1448
- }
1449
- ])
1450
- }, _hoisted_4, 10, _hoisted_2$4)
1451
- ]),
1452
- _: 2
1453
- }, 1032, ["title"]);
1454
- }), 64))
1455
- ]);
1456
- };
1457
- }
1458
- });
1459
- const index$3 = "";
1460
- const index$2 = "";
1461
- const _hoisted_1$9 = { class: "flex justify-between mb-5" };
1462
- const _sfc_main$j = /* @__PURE__ */ defineComponent$1({
1463
- __name: "select",
1464
- props: {
1465
- event: { type: Number },
1466
- disabled: { type: Boolean },
1467
- title: { type: String },
1468
- def: { type: [String, Number] },
1469
- initValue: { type: [String, Number] },
1470
- options: {
1471
- type: Array,
1472
- default: () => []
1473
- }
1474
- },
1475
- setup(__props) {
1476
- const props = __props;
1477
- const getBindValue = computed(() => {
1478
- return props.def ? { value: props.def, defaultValue: props.initValue || props.def } : {};
1479
- });
1480
- function handleChange(val) {
1481
- props.event && changeTheme(props.event, val);
1482
- }
1483
- return (_ctx, _cache) => {
1484
- const _component_ASelect = Select;
1485
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
1486
- createElementVNode("span", null, toDisplayString(__props.title), 1),
1487
- createVNode(_component_ASelect, mergeProps(unref$1(getBindValue), {
1488
- disabled: __props.disabled,
1489
- size: "small",
1490
- class: "w-32",
1491
- options: __props.options,
1492
- onChange: handleChange
1493
- }), null, 16, ["disabled", "options"])
1494
- ]);
1495
- };
1496
- }
1497
- });
1498
- const index$1 = "";
1499
- const _hoisted_1$8 = { class: "flex justify-between mb-5" };
1500
- const _sfc_main$i = /* @__PURE__ */ defineComponent$1({
1501
- __name: "switch",
1502
- props: {
1503
- event: {
1504
- type: Number
1505
- },
1506
- disabled: { type: Boolean },
1507
- title: { type: String },
1508
- def: {
1509
- type: Boolean
1510
- }
1511
- },
1512
- setup(__props) {
1513
- const props = __props;
1514
- const { t } = useI18n("UI");
1515
- const getBindValue = computed(() => {
1516
- return props.def ? { checked: props.def } : {};
1517
- });
1518
- function handleChange(e) {
1519
- props.event && changeTheme(props.event, e);
1520
- }
1521
- return (_ctx, _cache) => {
1522
- const _component_ASwitch = Switch;
1523
- return openBlock(), createElementBlock("div", _hoisted_1$8, [
1524
- createElementVNode("span", null, toDisplayString(__props.title), 1),
1525
- createVNode(_component_ASwitch, mergeProps(unref$1(getBindValue), {
1526
- disabled: __props.disabled,
1527
- checkedChildren: unref$1(t)("ON"),
1528
- unCheckedChildren: unref$1(t)("OFF"),
1529
- onChange: handleChange
1530
- }), null, 16, ["disabled", "checkedChildren", "unCheckedChildren"])
1531
- ]);
1532
- };
1533
- }
1534
- });
1535
- const _sfc_main$h = /* @__PURE__ */ defineComponent$1({
1536
- __name: "feature",
1537
- setup(__props) {
1538
- const { t } = useI18n("UI");
1539
- const {
1540
- getShowBread,
1541
- getShowSearch,
1542
- getShowUiSize,
1543
- getShowNotice,
1544
- getShowFullScreen,
1545
- getShowLocale
1546
- } = useHeader();
1547
- const { getShowMultipleTab } = useMultipleTab();
1548
- const { getShowFooter, getContentMode } = useTheme();
1549
- const switchItems = [
1550
- {
1551
- title: t("BREAD_CURB"),
1552
- event: HandlerEnum.SHOW_BREADCRUMB,
1553
- def: getShowBread
1554
- },
1555
- {
1556
- title: t("MENU_FILTER"),
1557
- event: HandlerEnum.SHOW_SEARCH,
1558
- def: getShowSearch
1559
- },
1560
- {
1561
- title: t("NOTICE"),
1562
- event: HandlerEnum.SHOW_NOTICY,
1563
- def: getShowNotice
1564
- },
1565
- {
1566
- title: t("SIZE"),
1567
- event: HandlerEnum.SHOW_SIZE,
1568
- def: getShowUiSize
1569
- },
1570
- {
1571
- title: t("SHOW_FULLE"),
1572
- event: HandlerEnum.SHOW_FULL_SCREEN,
1573
- def: getShowFullScreen
1574
- },
1575
- {
1576
- title: t("LOCAL"),
1577
- event: HandlerEnum.SHOW_LOCAL,
1578
- def: getShowLocale
1579
- },
1580
- {
1581
- title: t("ROUTE_REUSE"),
1582
- event: HandlerEnum.SHOW_ROUTE_REUSE,
1583
- def: getShowMultipleTab
1584
- },
1585
- {
1586
- title: t("SHOW_FOOTER"),
1587
- event: HandlerEnum.SHOW_FOOTER,
1588
- def: getShowFooter
1589
- }
1590
- ];
1591
- const selectItems = [
1592
- {
1593
- title: t("CONTENT_FIXED_WIDTH"),
1594
- event: HandlerEnum.CONTENT_MODE,
1595
- def: getContentMode,
1596
- options: [
1597
- {
1598
- value: ContentMode.FULL,
1599
- label: t("FULL")
1600
- },
1601
- {
1602
- value: ContentMode.FIXED,
1603
- label: t("FIXED")
1604
- }
1605
- ]
1606
- }
1607
- ];
1608
- return (_ctx, _cache) => {
1609
- return openBlock(), createElementBlock(Fragment, null, [
1610
- (openBlock(), createElementBlock(Fragment, null, renderList(switchItems, (item) => {
1611
- return createVNode(_sfc_main$i, {
1612
- key: item.title,
1613
- title: item.title,
1614
- event: item.event,
1615
- def: unref$1(item.def)
1616
- }, null, 8, ["title", "event", "def"]);
1617
- }), 64)),
1618
- (openBlock(), createElementBlock(Fragment, null, renderList(selectItems, (item) => {
1619
- return createVNode(_sfc_main$j, {
1620
- key: item.title,
1621
- title: item.title,
1622
- event: item.event,
1623
- def: unref$1(item.def),
1624
- options: item.options
1625
- }, null, 8, ["title", "event", "def", "options"]);
1626
- }), 64))
1627
- ], 64);
1628
- };
1629
- }
1630
- });
1631
- const _hoisted_1$7 = { class: "mt-5" };
1632
- const _hoisted_2$3 = { class: "dt-setting-theme__tips p-3 text-12 bg-gray-100 rounded" };
1633
- const _sfc_main$g = /* @__PURE__ */ defineComponent$1({
1634
- __name: "setting-theme",
1635
- setup(__props) {
1636
- const { t } = useI18n("UI");
1637
- const visible = ref(false);
1638
- const {
1639
- getShowBread,
1640
- getShowSearch,
1641
- getShowUiSize,
1642
- getShowNotice,
1643
- getShowFullScreen,
1644
- getShowLocale
1645
- } = useHeader();
1646
- const { getShowMultipleTab } = useMultipleTab();
1647
- const { getShowFooter, getContentMode } = useTheme();
1648
- const { getMenuType, getMenuMode } = useMenu();
1649
- const defaultConf = getConfig();
1650
- function getConfig() {
1651
- return {
1652
- contentMode: unref(getContentMode),
1653
- menuOptions: {
1654
- mode: unref(getMenuMode),
1655
- type: unref(getMenuType),
1656
- split: unref(getMenuType) === MenuType.MIX ? true : false
1657
- },
1658
- headOptions: {
1659
- showBreadCrumb: unref(getShowBread),
1660
- showSearch: unref(getShowSearch),
1661
- notice: unref(getShowNotice),
1662
- showFullScreen: unref(getShowFullScreen),
1663
- showLocaleSwitch: unref(getShowLocale)
1664
- },
1665
- mulTabsOptions: {
1666
- show: unref(getShowMultipleTab)
1667
- },
1668
- footerOptions: {
1669
- show: unref(getShowFooter)
1670
- }
1671
- };
1672
- }
1673
- function copy() {
1674
- const afterUpdateConfig = getConfig();
1675
- let copyObj = {};
1676
- const isDiff = (newVal, oldVal) => newVal !== oldVal ? newVal : null;
1677
- const isSameObj = (val1, val2) => JSON.stringify(val1) === JSON.stringify(val2);
1678
- const getDiff = (target, orgTarget) => {
1679
- let obj = {};
1680
- for (let it in target) {
1681
- if (isDiff(target[it], orgTarget[it]) !== null) {
1682
- obj[it] = target[it];
1683
- }
1684
- }
1685
- return obj;
1686
- };
1687
- for (let it in afterUpdateConfig) {
1688
- if (!isSameObj(afterUpdateConfig[it], defaultConf[it])) {
1689
- copyObj[it] = getDiff(afterUpdateConfig[it], defaultConf[it]);
1690
- }
1691
- }
1692
- if (Object.keys(copyObj).length) {
1693
- if (copyText(JSON.stringify(copyObj).replaceAll('"', ""))) {
1694
- Modal.success({
1695
- centered: true,
1696
- okText: "\u786E\u5B9A",
1697
- title: "\u64CD\u4F5C\u6210\u529F",
1698
- content: "\u590D\u5236\u6210\u529F,\u8BF7\u5230 src/core/settings/theme.ts \u4E2D\u4FEE\u6539\u914D\u7F6E\uFF01"
1699
- });
1700
- }
1701
- } else {
1702
- Modal.info({
1703
- centered: true,
1704
- okText: "\u786E\u5B9A",
1705
- title: "\u62F7\u8D1D\u63D0\u793A",
1706
- content: "\u672A\u68C0\u6D4B\u5230\u4FEE\u6539\u4EFB\u4F55\u914D\u7F6E\u4FE1\u606F!"
1707
- });
1708
- }
1709
- }
1710
- function reset() {
1711
- useThemeStore().setThemeConf(defaultConf);
1712
- }
1713
- return (_ctx, _cache) => {
1714
- const _component_ADivider = Divider;
1715
- const _component_AButton = Button;
1716
- const _component_ADrawer = Drawer;
1717
- const _directive_icon = resolveDirective("icon");
1718
- return openBlock(), createElementBlock(Fragment, null, [
1719
- createElementVNode("span", {
1720
- onClick: _cache[0] || (_cache[0] = ($event) => visible.value = true),
1721
- 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"
1722
- }, [
1723
- withDirectives(createElementVNode("span", null, null, 512), [
1724
- [_directive_icon, "ant-design:setting-outlined"]
1725
- ])
1726
- ]),
1727
- createVNode(_component_ADrawer, {
1728
- visible: unref$1(visible),
1729
- "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => isRef(visible) ? visible.value = $event : null),
1730
- title: unref$1(t)("PROJECT_SETTING"),
1731
- placement: "right",
1732
- width: "320"
1733
- }, {
1734
- default: withCtx(() => [
1735
- createVNode(_component_ADivider, null, {
1736
- default: withCtx(() => [
1737
- createTextVNode(toDisplayString(unref$1(t)("NAV_MODE")), 1)
1738
- ]),
1739
- _: 1
1740
- }),
1741
- createVNode(unref$1(_sfc_main$k)),
1742
- createVNode(_component_ADivider, null, {
1743
- default: withCtx(() => [
1744
- createTextVNode(toDisplayString(unref$1(t)("PAGE_SHOW")), 1)
1745
- ]),
1746
- _: 1
1747
- }),
1748
- createVNode(unref$1(_sfc_main$h)),
1749
- createVNode(_component_ADivider),
1750
- createElementVNode("div", _hoisted_1$7, [
1751
- createVNode(_component_AButton, {
1752
- onClick: copy,
1753
- class: "mb-3",
1754
- type: "primary",
1755
- block: ""
1756
- }, {
1757
- default: withCtx(() => [
1758
- createTextVNode(toDisplayString(unref$1(t)("COPY")), 1)
1759
- ]),
1760
- _: 1
1761
- }),
1762
- createVNode(_component_AButton, {
1763
- onClick: reset,
1764
- class: "mb-3",
1765
- block: ""
1766
- }, {
1767
- default: withCtx(() => [
1768
- createTextVNode(toDisplayString(unref$1(t)("RESET")), 1)
1769
- ]),
1770
- _: 1
1771
- })
1772
- ]),
1773
- createElementVNode("div", _hoisted_2$3, toDisplayString(unref$1(t)("DRAWER_TIPS")), 1)
1774
- ]),
1775
- _: 1
1776
- }, 8, ["visible", "title"])
1777
- ], 64);
1778
- };
1779
- }
1780
- });
1781
- function useSplitMenu(splitType) {
1782
- const menusRef = ref$1([]);
1783
- const { currentRoute } = useRouter$1();
1784
- const { menusMap } = getMenusMap();
1785
- const { getIsHorizontal, getSplit } = useMenu();
1786
- const throttleHandleSplitLeftMenu = useThrottleFn(handleSplitLeftMenu, 50);
1787
- const splitNotLeft = computed$1(
1788
- () => unref$1(splitType) !== MenuSplitTye.LEFT && !unref$1(getIsHorizontal)
1789
- );
1790
- const getSplitLeft = computed$1(
1791
- () => !unref$1(getSplit) || unref$1(splitType) !== MenuSplitTye.LEFT
1792
- );
1793
- const getSplitTop = computed$1(
1794
- () => unref$1(splitType) === MenuSplitTye.TOP
1795
- );
1796
- const normalType = computed$1(
1797
- () => !unref$1(getSplit) || unref$1(splitType) === MenuSplitTye.NONE
1798
- );
1799
- watch$1(
1800
- [() => unref$1(currentRoute)?.path, () => unref$1(splitType)],
1801
- ([path]) => {
1802
- if (unref$1(splitNotLeft))
1803
- return;
1804
- throttleHandleSplitLeftMenu(path);
1805
- },
1806
- {
1807
- immediate: true
1808
- }
1809
- );
1810
- watch$1(
1811
- () => getSplit.value,
1812
- () => {
1813
- if (unref$1(splitNotLeft))
1814
- return;
1815
- getMenus2();
1816
- }
1817
- );
1818
- function handleSplitLeftMenu(path) {
1819
- if (unref$1(getSplitLeft))
1820
- return;
1821
- menusRef.value = menusMap.filter((it) => it.includesPath.includes(path))[0]?.children;
1822
- }
1823
- async function getMenus2() {
1824
- if (unref$1(normalType)) {
1825
- menusRef.value = DtCache.getLocal(CacheKey.MENUS)?.children;
1826
- return;
1827
- }
1828
- if (unref$1(getSplitTop)) {
1829
- menusRef.value = await getShallowMenus();
1830
- }
1831
- }
1832
- getMenus2();
1833
- return { menusRef };
1834
- }
1835
- function getMenus() {
1836
- return DtCache.getLocal(CacheKey.MENUS)?.children;
1837
- }
1838
- function getFirstMenuPath(item) {
1839
- let isFind = false, path = "";
1840
- const getPath = (menu) => {
1841
- if (isFind)
1842
- return;
1843
- if (menu.children && menu.children.length) {
1844
- menu.children.forEach((node) => getPath(node));
1845
- } else {
1846
- path = menu.url;
1847
- isFind = true;
1848
- }
1849
- };
1850
- getPath(item);
1851
- return path;
1852
- }
1853
- function getMenusMap() {
1854
- const menus = getMenus();
1855
- const menusMap = [];
1856
- const getPaths = (menu, path) => {
1857
- if (menu.children && menu.children.length) {
1858
- menu.children.forEach((node) => getPaths(node, path));
1859
- } else {
1860
- path.push(menu.url);
1861
- }
1862
- return path;
1863
- };
1864
- menus.map((item) => {
1865
- item.url = getFirstMenuPath(item);
1866
- menusMap.push({
1867
- parentPath: item.url,
1868
- children: item.children || [],
1869
- includesPath: getPaths(item, [])
1870
- });
1871
- });
1872
- return { menusMap };
1873
- }
1874
- function getShallowMenus() {
1875
- const menus = getMenus();
1876
- const shallowMenuList = menus.map((item) => {
1877
- item.url = getFirstMenuPath(item);
1878
- return { ...item, children: void 0 };
1879
- });
1880
- return shallowMenuList;
1881
- }
1882
- const BasicMenu = {
1883
- items: {
1884
- type: Array
1885
- },
1886
- collapsedShowTitle: Boolean,
1887
- inlineIndent: {
1888
- default: 20
1889
- },
1890
- mode: {
1891
- type: String,
1892
- default: MenuMode.INLINE
1893
- },
1894
- type: {
1895
- type: String,
1896
- default: MenuType.SIDE
1897
- },
1898
- theme: {
1899
- default: Theme.DARK
1900
- },
1901
- inlineCollapsed: Boolean,
1902
- isHorizontal: Boolean,
1903
- beforeClickFn: {
1904
- type: Function
1905
- },
1906
- mixSider: Boolean
1907
- };
1908
- const ItemProp = {
1909
- item: {
1910
- type: Object,
1911
- default: {}
1912
- },
1913
- theme: {
1914
- type: String,
1915
- default: Theme.DARK
1916
- },
1917
- isHorizontal: Boolean,
1918
- showTitle: Boolean,
1919
- beforeClickFn: {
1920
- type: Function
1921
- }
1922
- };
1923
- const contentProps = {
1924
- item: {
1925
- type: Object,
1926
- default: {}
1927
- },
1928
- showTitle: Boolean,
1929
- level: Number,
1930
- isHorizontal: Boolean
1931
- };
1932
- ({
1933
- items: {
1934
- type: Array,
1935
- default: () => []
1936
- },
1937
- collapse: Boolean,
1938
- mixSider: Boolean,
1939
- theme: {
1940
- default: Theme.DARK
1941
- },
1942
- collapsedShowTitle: Boolean,
1943
- beforeClickFn: {
1944
- type: Function
1945
- },
1946
- isSplitMenu: Boolean
1947
- });
1948
- const _sfc_main$f = /* @__PURE__ */ defineComponent$1({
1949
- __name: "menu-item-content",
1950
- props: contentProps,
1951
- setup(__props) {
1952
- const { getIsZH, getUiSize } = useHeader();
1953
- return (_ctx, _cache) => {
1954
- return openBlock(), createElementBlock("span", {
1955
- class: normalizeClass(["dt-basic-menu-item-content-flex items-center dt-menu-item h-full", unref$1(getUiSize)])
1956
- }, [
1957
- createElementVNode("i", {
1958
- class: normalizeClass(["menu-icon i", _ctx.item.icon])
1959
- }, null, 2),
1960
- createElementVNode("span", null, toDisplayString(unref$1(getIsZH) ? _ctx.item.label : _ctx.item.enLabel), 1)
1961
- ], 2);
1962
- };
1963
- }
1964
- });
1965
- const _sfc_main$e = /* @__PURE__ */ defineComponent$1({
1966
- __name: "basic-menu-item",
1967
- props: ItemProp,
1968
- setup(__props) {
1969
- const props = __props;
1970
- return (_ctx, _cache) => {
1971
- const _component_AMenuItem = MenuItem;
1972
- return openBlock(), createBlock(_component_AMenuItem, {
1973
- key: _ctx.item.url
1974
- }, {
1975
- default: withCtx(() => [
1976
- createVNode(_sfc_main$f, normalizeProps(guardReactiveProps(props)), null, 16)
1977
- ]),
1978
- _: 1
1979
- });
1980
- };
1981
- }
1982
- });
1983
- const _sfc_main$d = /* @__PURE__ */ defineComponent$1({
1984
- __name: "basic-sub-menu-item",
1985
- props: ItemProp,
1986
- setup(__props) {
1987
- const props = __props;
1988
- const { getShowMenu } = useMenu();
1989
- const {
1990
- theme,
1991
- item
1992
- } = props;
1993
- const menuHasChildren = (menu) => {
1994
- return !!menu.children && menu.children.length > 0;
1995
- };
1996
- return (_ctx, _cache) => {
1997
- const _component_BasicSubMenuItem = resolveComponent("BasicSubMenuItem", true);
1998
- const _component_ASubMenu = SubMenu;
1999
- return openBlock(), createElementBlock(Fragment, null, [
2000
- !menuHasChildren(unref$1(item)) && unref$1(getShowMenu) ? (openBlock(), createBlock(_sfc_main$e, normalizeProps(mergeProps({ key: 0 }, props)), null, 16)) : createCommentVNode("", true),
2001
- menuHasChildren(unref$1(item)) && unref$1(getShowMenu) ? (openBlock(), createBlock(_component_ASubMenu, {
2002
- class: normalizeClass([unref$1(theme)]),
2003
- key: unref$1(item).id,
2004
- popupClassName: "app-top-menu-popup"
2005
- }, {
2006
- title: withCtx(() => [
2007
- createVNode(_sfc_main$f, mergeProps(props, { item: unref$1(item) }), null, 16, ["item"])
2008
- ]),
2009
- default: withCtx(() => [
2010
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref$1(item).children, (childrenItem) => {
2011
- return openBlock(), createBlock(_component_BasicSubMenuItem, mergeProps({
2012
- key: childrenItem.id
2013
- }, props, { item: childrenItem }), null, 16, ["item"]);
2014
- }), 128))
2015
- ]),
2016
- _: 1
2017
- }, 8, ["class"])) : createCommentVNode("", true)
2018
- ], 64);
2019
- };
2020
- }
2021
- });
2022
- const _sfc_main$c = /* @__PURE__ */ defineComponent$1({
2023
- __name: "basic-menu",
2024
- props: BasicMenu,
2025
- emits: ["menuClick"],
2026
- setup(__props, { emit: emits }) {
2027
- const {
2028
- theme,
2029
- items,
2030
- mode,
2031
- type,
2032
- isHorizontal,
2033
- inlineIndent,
2034
- mixSider,
2035
- beforeClickFn
2036
- } = __props;
2037
- const { getSplit } = useMenu();
2038
- const { currentRoute } = useRouter$1();
2039
- const menuState = reactive({
2040
- defaultSelectedKeys: [],
2041
- openKeys: [],
2042
- selectedKeys: [],
2043
- collapsedOpenKeys: []
2044
- });
2045
- const { handleOpenChange, setOpenKeys, getOpenKeys } = useOpenKeys(
2046
- menuState,
2047
- items,
2048
- type
2049
- );
2050
- watch$1(
2051
- () => currentRoute.value.path,
2052
- (val) => {
2053
- if (val === "/")
2054
- return;
2055
- handleMenuChange(val);
2056
- },
2057
- {
2058
- immediate: true
2059
- }
2060
- );
2061
- async function handleMenuChange(path) {
2062
- setOpenKeys(path);
2063
- if (isHorizontal && unref$1(getSplit)) {
2064
- const parentPath = getBreadCrumb(path, items);
2065
- menuState.selectedKeys = [parentPath?.[0]?.url];
2066
- } else {
2067
- const parentPaths = await getBreadCrumb(path);
2068
- menuState.selectedKeys = parentPaths.reduce((keys, it) => {
2069
- it.url && keys.push(it.url);
2070
- return keys;
2071
- }, []);
2072
- }
2073
- }
2074
- const { getCollapsed } = useMenu();
2075
- const getInlineCollapsed = computed$1(() => {
2076
- const isInline = unref$1(mode) === MenuMode.INLINE;
2077
- if (isInline) {
2078
- return mixSider ? false : unref$1(getCollapsed);
2079
- }
2080
- return false;
2081
- });
2082
- async function handleMenuClick(item) {
2083
- if (beforeClickFn && isFunction(beforeClickFn)) {
2084
- const flag = await beforeClickFn(item.key);
2085
- if (!flag)
2086
- return;
2087
- }
2088
- emits("menuClick", item.key);
2089
- menuState.selectedKeys = [item.key];
2090
- }
2091
- return (_ctx, _cache) => {
2092
- const _component_AMenu = Menu;
2093
- return openBlock(), createBlock(_component_AMenu, {
2094
- theme: _ctx.theme,
2095
- selectedKeys: menuState.selectedKeys,
2096
- defaultSelectedKeys: menuState.defaultSelectedKeys,
2097
- openKeys: menuState.openKeys,
2098
- inlineIndent: _ctx.inlineIndent,
2099
- subMenuOpenDelay: 0.2,
2100
- mode: _ctx.mode,
2101
- collapsible: "",
2102
- onClick: handleMenuClick,
2103
- onOpenChange: unref$1(handleOpenChange),
2104
- collapsed: unref$1(getInlineCollapsed),
2105
- class: normalizeClass(unref$1(getSplit) ? "dt-split-menu" : "")
2106
- }, {
2107
- default: withCtx(() => [
2108
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
2109
- return openBlock(), createBlock(_sfc_main$d, {
2110
- key: item.id,
2111
- item,
2112
- theme: _ctx.theme,
2113
- isHorizontal: _ctx.isHorizontal
2114
- }, null, 8, ["item", "theme", "isHorizontal"]);
2115
- }), 128))
2116
- ]),
2117
- _: 1
2118
- }, 8, ["theme", "selectedKeys", "defaultSelectedKeys", "openKeys", "inlineIndent", "subMenuOpenDelay", "mode", "onOpenChange", "collapsed", "class"]);
2119
- };
2120
- }
2121
- });
2122
- const _sfc_main$b = defineComponent$1({
2123
- name: "LayoutMenu",
2124
- props: {
2125
- theme: String,
2126
- splitType: {
2127
- type: Number,
2128
- default: MenuSplitTye.NONE
2129
- },
2130
- isHorizontal: Boolean,
2131
- menuMode: String
2132
- },
2133
- setup(props) {
2134
- const {
2135
- getMenuType,
2136
- getMenuMode,
2137
- getMenuTheme,
2138
- getCollapsed,
2139
- getCollapsedShowTitle,
2140
- getIsHorizontal,
2141
- getIsSidebarType,
2142
- getSplit
2143
- } = useMenu();
2144
- const {
2145
- getShowLogo
2146
- } = useHeader();
2147
- const {
2148
- menusRef
2149
- } = useSplitMenu(toRef(props, "splitType"));
2150
- const slots = getParentSlots(null, "dt-theme");
2151
- const getComputedTheme = computed$1(() => props.theme || unref$1(getMenuTheme));
2152
- const getComputedMenuMode = computed$1(() => props.menuMode || unref$1(getMenuMode));
2153
- const getIsShowLogo = computed$1(() => unref$1(getShowLogo) && unref$1(getIsSidebarType));
2154
- const getUseScroll = computed$1(() => {
2155
- return !unref$1(getIsHorizontal) && (unref$1(getIsSidebarType) || props.splitType === MenuSplitTye.LEFT || props.splitType === MenuSplitTye.NONE);
2156
- });
2157
- const getLogoClass = computed$1(() => [`dt-menu-logo`, unref$1(getComputedTheme)]);
2158
- const getMenuProps = computed$1(() => {
2159
- const menus = unref$1(menusRef);
2160
- return {
2161
- menus,
2162
- beforeClickFn: beforeMenuClickFn,
2163
- items: menus,
2164
- theme: unref$1(getComputedTheme),
2165
- collapse: unref$1(getCollapsed),
2166
- collapsedShowTitle: unref$1(getCollapsedShowTitle),
2167
- onMenuClick: handleMenuClick
2168
- };
2169
- });
2170
- const go = useGo();
2171
- function beforeMenuClickFn(path) {
2172
- if (!isUrl(path)) {
2173
- return true;
2174
- }
2175
- openWindow(path);
2176
- return false;
2177
- }
2178
- function handleMenuClick(path) {
2179
- go(path);
2180
- }
2181
- function renderHeader() {
2182
- if (slots.logo) {
2183
- return createVNode(DtSlotContainer, {
2184
- "template": slots.logo,
2185
- "data": {
2186
- theme: unref$1(getComputedTheme),
2187
- collapsed: unref$1(getCollapsed)
2188
- }
2189
- }, null);
2190
- }
2191
- if (!unref$1(getIsShowLogo))
2192
- return null;
2193
- return createVNode(_sfc_main$v, {
2194
- "showTitle": !unref$1(getCollapsed),
2195
- "class": unref$1(getLogoClass),
2196
- "theme": unref$1(getComputedTheme)
2197
- }, null);
2198
- }
2199
- function renderFooter() {
2200
- if (unref$1(getMenuType) === MenuType.SIDE || unref$1(getMenuType) === MenuType.MIX && props.splitType === 2) {
2201
- return slots.menuFooter ? createVNode(DtSlotContainer, {
2202
- "template": slots.menuFooter,
2203
- "data": {
2204
- theme: unref$1(getComputedTheme),
2205
- collapsed: unref$1(getCollapsed)
2206
- }
2207
- }, null) : null;
2208
- }
2209
- return null;
2210
- }
2211
- function renderMenu() {
2212
- const {
2213
- menus,
2214
- ...menuProps
2215
- } = unref$1(getMenuProps);
2216
- if (!menus || !menus.length)
2217
- return null;
2218
- return createVNode(_sfc_main$c, mergeProps(menuProps, {
2219
- "isHorizontal": props.isHorizontal,
2220
- "type": unref$1(getMenuType),
2221
- "showLogo": unref$1(getIsShowLogo),
2222
- "mode": unref$1(getComputedMenuMode),
2223
- "items": menus
2224
- }), null);
2225
- }
2226
- return () => {
2227
- return createVNode(Fragment, null, [renderHeader(), unref$1(getUseScroll) ? createVNode(DtScrollContainer, null, {
2228
- default: () => renderMenu()
2229
- }) : renderMenu(), renderFooter()]);
2230
- };
2231
- }
2232
- });
2233
- const _hoisted_1$6 = { class: "dt-header-left flex h-full items-center" };
2234
- const _hoisted_2$2 = {
2235
- key: 0,
2236
- class: "flex-1 h-full min-w-0 items-center"
2237
- };
2238
- const _sfc_main$a = /* @__PURE__ */ defineComponent$1({
2239
- __name: "index",
2240
- props: {
2241
- fixed: Boolean
2242
- },
2243
- setup(__props) {
2244
- const props = __props;
2245
- const { getSplit } = useMenu();
2246
- const {
2247
- getHeaderTheme,
2248
- getShowHeaderLogo,
2249
- getShowHeaderTrigger,
2250
- getShowBread,
2251
- getShowLocale,
2252
- getShowFullScreen,
2253
- getShowSettingTheme,
2254
- getShowNotice,
2255
- getShowTopMenu,
2256
- getShowSearch,
2257
- getShowUiSize
2258
- } = useHeader();
2259
- const getSplitType = computed$1(() => {
2260
- return unref$1(getSplit) ? MenuSplitTye.TOP : MenuSplitTye.NONE;
2261
- });
2262
- const getMenuMode = computed$1(() => {
2263
- return unref$1(getSplit) ? MenuMode.HORIZONTAL : null;
2264
- });
2265
- const getHeaderCls = computed$1(() => {
2266
- let theme = unref$1(getHeaderTheme);
2267
- let cls = "dt-header flex p-0 items-center justify-between ";
2268
- if (props.fixed) {
2269
- cls += "fixed top-0 left-0 w-full z-10 ";
2270
- }
2271
- cls += `dt-header--${theme}`;
2272
- return cls;
2273
- });
2274
- return (_ctx, _cache) => {
2275
- const _component_ALayoutHeader = LayoutHeader;
2276
- return openBlock(), createBlock(_component_ALayoutHeader, {
2277
- class: normalizeClass([unref$1(getHeaderCls), "flex items-center justify-between"])
2278
- }, {
2279
- default: withCtx(() => [
2280
- createElementVNode("div", _hoisted_1$6, [
2281
- unref$1(getShowHeaderLogo) ? (openBlock(), createBlock(unref$1(_sfc_main$v), {
2282
- key: 0,
2283
- theme: unref$1(getHeaderTheme),
2284
- class: "dt-header-logo"
2285
- }, null, 8, ["theme"])) : createCommentVNode("", true),
2286
- unref$1(getShowHeaderTrigger) && !unref$1(getSplit) ? (openBlock(), createBlock(unref$1(_sfc_main$u), {
2287
- key: 1,
2288
- theme: unref$1(getHeaderTheme)
2289
- }, null, 8, ["theme"])) : createCommentVNode("", true),
2290
- unref$1(getShowBread) ? (openBlock(), createBlock(unref$1(_sfc_main$t), { key: 2 })) : createCommentVNode("", true)
2291
- ]),
2292
- unref$1(getShowTopMenu) ? (openBlock(), createElementBlock("div", _hoisted_2$2, [
2293
- createVNode(_sfc_main$b, {
2294
- isHorizontal: true,
2295
- theme: unref$1(getHeaderTheme),
2296
- splitType: unref$1(getSplitType),
2297
- menuMode: unref$1(getMenuMode)
2298
- }, null, 8, ["theme", "splitType", "menuMode"])
2299
- ])) : createCommentVNode("", true),
2300
- createElementVNode("div", {
2301
- class: "dt-header-action flex items-center",
2302
- style: normalizeStyle({
2303
- "padding-right": unref$1(getShowSettingTheme) ? "" : "20px"
2304
- })
2305
- }, [
2306
- unref$1(getShowSearch) ? (openBlock(), createBlock(unref$1(_sfc_main$s), { key: 0 })) : createCommentVNode("", true),
2307
- unref$1(getShowNotice) ? (openBlock(), createBlock(unref$1(_sfc_main$n), { key: 1 })) : createCommentVNode("", true),
2308
- unref$1(getShowUiSize) ? (openBlock(), createBlock(unref$1(_sfc_main$m), { key: 2 })) : createCommentVNode("", true),
2309
- unref$1(getShowFullScreen) ? (openBlock(), createBlock(unref$1(_sfc_main$w), { key: 3 })) : createCommentVNode("", true),
2310
- unref$1(getShowLocale) ? (openBlock(), createBlock(unref$1(_sfc_main$r), {
2311
- key: 4,
2312
- reload: true
2313
- })) : createCommentVNode("", true),
2314
- createVNode(unref$1(_sfc_main$l)),
2315
- unref$1(getShowSettingTheme) ? (openBlock(), createBlock(unref$1(_sfc_main$g), { key: 5 })) : createCommentVNode("", true)
2316
- ], 4)
2317
- ]),
2318
- _: 1
2319
- }, 8, ["class"]);
2320
- };
2321
- }
2322
- });
2323
- function useMenuSwitch() {
2324
- const brokenRef = ref(false);
2325
- const { getMiniWidthNumber } = useMenu();
2326
- const getCollapsedWidth = computed(() => {
2327
- return unref(brokenRef) ? 0 : unref(getMiniWidthNumber);
2328
- });
2329
- function onBreakPointChange(broken) {
2330
- brokenRef.value = broken;
2331
- }
2332
- return { getCollapsedWidth, onBreakPointChange };
2333
- }
2334
- function useTrigger() {
2335
- const { getTrigger, getSplit } = useMenu();
2336
- const getShowTrigger = computed(() => {
2337
- const trigger = unref(getTrigger);
2338
- return trigger && unref(getSplit);
2339
- });
2340
- const getTriggerAttr = computed(() => {
2341
- if (unref(getShowTrigger)) {
2342
- return {};
2343
- }
2344
- return {
2345
- trigger: null
2346
- };
2347
- });
2348
- return { getTriggerAttr, getShowTrigger };
2349
- }
2350
- const _sfc_main$9 = /* @__PURE__ */ defineComponent$1({
2351
- __name: "sider-trigger",
2352
- props: {
2353
- type: {
2354
- type: String,
2355
- default: null
2356
- }
2357
- },
2358
- setup(__props) {
2359
- const { getCollapsed, toggleCollapsed } = useMenu();
2360
- return (_ctx, _cache) => {
2361
- return openBlock(), createElementBlock("div", {
2362
- onClick: _cache[0] || (_cache[0] = withModifiers(
2363
- (...args) => unref$1(toggleCollapsed) && unref$1(toggleCollapsed)(...args),
2364
- ["stop"]
2365
- ))
2366
- }, [
2367
- createElementVNode("i", {
2368
- class: normalizeClass(["i", unref$1(getCollapsed) ? "ant-design:double-right-outlined" : "ant-design:double-left-outlined"])
2369
- }, null, 2)
2370
- ]);
2371
- };
2372
- }
2373
- });
2374
- const _sfc_main$8 = /* @__PURE__ */ defineComponent$1({
2375
- __name: "drag-bar",
2376
- setup(__props) {
2377
- const { getCollapsed, getCanDrag, getMenuWidth } = useMenu();
2378
- const getDragBarStyle = computed$1(() => {
2379
- if (!unref$1(getCollapsed)) {
2380
- return { left: `${unref$1(getMenuWidth)}px` };
2381
- }
2382
- return {};
2383
- });
2384
- const getClass = computed$1(() => {
2385
- return [
2386
- "dt-darg-bar",
2387
- {
2388
- "dt-darg-bar--hide": !unref$1(getCanDrag)
2389
- }
2390
- ];
2391
- });
2392
- return (_ctx, _cache) => {
2393
- return openBlock(), createElementBlock("div", {
2394
- class: normalizeClass(unref$1(getClass)),
2395
- style: normalizeStyle(unref$1(getDragBarStyle))
2396
- }, null, 6);
2397
- };
2398
- }
2399
- });
2400
- const _sfc_main$7 = /* @__PURE__ */ defineComponent$1({
2401
- __name: "index",
2402
- setup(__props) {
2403
- const {
2404
- getMenuFixed,
2405
- getSplit,
2406
- getMenuHidden,
2407
- getMenuWidth,
2408
- getCollapsed,
2409
- getMenuTheme,
2410
- getRealWidth,
2411
- getIsMixMode
2412
- } = useMenu();
2413
- const {
2414
- getCollapsedWidth,
2415
- onBreakPointChange
2416
- } = useMenuSwitch();
2417
- const {
2418
- getTriggerAttr,
2419
- getShowTrigger
2420
- } = useTrigger();
2421
- const dragBarRef = ref(null);
2422
- const sideRef = ref(null);
2423
- const hiddenDomStyle = computed(() => {
2424
- const width = `${unref(getRealWidth)}px`;
2425
- return {
2426
- width,
2427
- overflow: "hidden",
2428
- flex: `0 0 ${width}`,
2429
- maxWidth: width,
2430
- minWidth: width,
2431
- transition: "all 0.2s"
2432
- };
2433
- });
2434
- const showClassSideBarRef = computed(() => {
2435
- const {
2436
- menusRef
2437
- } = useSplitMenu(getSplitType);
2438
- if (!unref(menusRef)?.length)
2439
- return false;
2440
- return unref(getSplit) ? !unref(getMenuHidden) : true;
2441
- });
2442
- useDragLine(sideRef, dragBarRef);
2443
- const getSiderClass = computed(() => {
2444
- let cls = `dt-sideBar overflow-hidden z-10 `;
2445
- if (unref(getMenuFixed)) {
2446
- cls += `dt-sideBar--fixed t-0 l-0 h-full `;
2447
- }
2448
- if (unref(getIsMixMode)) {
2449
- cls += "dt-sideBar--mix ";
2450
- }
2451
- return cls;
2452
- });
2453
- const getSplitType = computed(() => {
2454
- return unref(getSplit) ? MenuSplitTye.LEFT : MenuSplitTye.NONE;
2455
- });
2456
- const getMode = computed(() => {
2457
- return unref(getSplit) ? MenuMode.INLINE : null;
2458
- });
2459
- const renderTrigger = h(_sfc_main$9);
2460
- return (_ctx, _cache) => {
2461
- const _component_ALayoutSider = LayoutSider;
2462
- return openBlock(), createElementBlock(Fragment, null, [unref$1(getMenuFixed) ? withDirectives((openBlock(), createElementBlock("div", {
2463
- key: 0,
2464
- style: normalizeStyle(unref$1(hiddenDomStyle))
2465
- }, null, 4)), [[vShow, unref$1(showClassSideBarRef)]]) : createCommentVNode("", true), withDirectives(createVNode(_component_ALayoutSider, mergeProps({
2466
- ref_key: "sideRef",
2467
- ref: sideRef,
2468
- collapsible: "",
2469
- breakpoint: "lg",
2470
- class: unref$1(getSiderClass),
2471
- width: unref$1(getMenuWidth),
2472
- collapsed: unref$1(getCollapsed),
2473
- collapsedWidth: unref$1(getCollapsedWidth),
2474
- onBreakpoint: unref$1(onBreakPointChange),
2475
- theme: unref$1(getMenuTheme),
2476
- trigger: unref$1(renderTrigger)
2477
- }, unref$1(getTriggerAttr)), {
2478
- default: withCtx(() => [createVNode(_sfc_main$b, {
2479
- theme: unref$1(getMenuTheme),
2480
- menuMode: unref$1(getMode),
2481
- splitType: unref$1(getSplitType)
2482
- }, null, 8, ["theme", "menuMode", "splitType"]), createVNode(_sfc_main$8, {
2483
- ref_key: "dragBarRef",
2484
- ref: dragBarRef
2485
- }, null, 512)]),
2486
- _: 1
2487
- }, 16, ["class", "width", "collapsed", "collapsedWidth", "onBreakpoint", "theme", "trigger"]), [[vShow, unref$1(showClassSideBarRef)]])], 64);
2488
- };
2489
- }
2490
- });
2491
- const index = "";
2492
- const _hoisted_1$5 = /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-autorenew" }, null, -1);
2493
- const _hoisted_2$1 = [
2494
- _hoisted_1$5
2495
- ];
2496
- const _sfc_main$6 = /* @__PURE__ */ defineComponent$1({
2497
- __name: "TabRedo",
2498
- setup(__props) {
2499
- const tabStore = useRouteReuseStore();
2500
- const router = useRouter();
2501
- function handleRedo() {
2502
- tabStore.refreshPage(router);
2503
- }
2504
- return (_ctx, _cache) => {
2505
- return openBlock(), createElementBlock("span", {
2506
- onClick: handleRedo,
2507
- 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"
2508
- }, _hoisted_2$1);
2509
- };
2510
- }
2511
- });
2512
- function useTabDropdown() {
2513
- const router = useRouter$1();
2514
- const { currentRoute } = router;
2515
- const tabStore = useRouteReuseStore();
2516
- const state = reactive({
2517
- current: null,
2518
- currentIndex: 0
2519
- });
2520
- const getDropMenuList = computed$1(() => {
2521
- const { t } = useI18n("UI");
2522
- const { path, meta } = unref$1(currentRoute);
2523
- const curItem = state.current;
2524
- const isCurItem = curItem ? curItem.path === path : false;
2525
- const index2 = state.currentIndex;
2526
- const closeLeftDisabled = index2 === 0 || !isCurItem;
2527
- const disabled = tabStore.getTabList.length === 1;
2528
- const closeRightDisabled = !isCurItem || index2 === tabStore.getTabList.length - 1 && tabStore.getLastDragEndIndex >= 0;
2529
- const dropMenuList = [
2530
- {
2531
- icon: "ic:baseline-close",
2532
- text: t("CLOSE_CURRENT_TAG"),
2533
- onClick: () => tabStore.closeTab(path, router),
2534
- disabled: !!meta?.affix || disabled,
2535
- divider: true
2536
- },
2537
- {
2538
- icon: "mdi:arrow-collapse-left",
2539
- text: t("CLOSE_LEFT_TAGS"),
2540
- onClick: () => tabStore.closeLeftTabs(path),
2541
- disabled: closeLeftDisabled,
2542
- divider: false
2543
- },
2544
- {
2545
- icon: "mdi:arrow-collapse-right",
2546
- text: t("CLOSE_RIGHT_TAGS"),
2547
- onClick: () => tabStore.closeRightTabs(path),
2548
- disabled: closeRightDisabled,
2549
- divider: true
2550
- },
2551
- {
2552
- icon: "ic:baseline-sync-alt",
2553
- text: t("CLOSE_OTHER_TAGS"),
2554
- onClick: () => tabStore.closeOtherTabs(path),
2555
- disabled: disabled || !isCurItem
2556
- },
2557
- {
2558
- icon: "ic:baseline-horizontal-rule",
2559
- text: t("CLOSE_ALL_TAGE"),
2560
- onClick: () => tabStore.closeAllTab(currentRoute, router),
2561
- disabled
2562
- }
2563
- ];
2564
- return dropMenuList;
2565
- });
2566
- function handleContext(e) {
2567
- e?.preventDefault();
2568
- const { path } = unref$1(currentRoute);
2569
- const index2 = tabStore.getTabList.findIndex((tab) => tab.path === path);
2570
- state.current = unref$1(currentRoute);
2571
- state.currentIndex = index2;
2572
- }
2573
- function handleMenuEvent(item) {
2574
- item.onClick?.();
2575
- }
2576
- return {
2577
- getDropMenuList,
2578
- handleContext,
2579
- handleMenuEvent
2580
- };
2581
- }
2582
- const _hoisted_1$4 = /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-keyboard-arrow-down" }, null, -1);
2583
- const _hoisted_2 = [
2584
- _hoisted_1$4
2585
- ];
2586
- const _hoisted_3 = { class: "text-13" };
2587
- const _sfc_main$5 = /* @__PURE__ */ defineComponent$1({
2588
- __name: "TabContent",
2589
- setup(__props) {
2590
- const { getDropMenuList, handleContext, handleMenuEvent } = useTabDropdown();
2591
- return (_ctx, _cache) => {
2592
- const _component_AMenuItem = MenuItem;
2593
- const _component_AMenuDivider = MenuDivider;
2594
- const _component_AMenu = Menu;
2595
- const _component_ADropdown = Dropdown;
2596
- return openBlock(), createBlock(_component_ADropdown, {
2597
- placement: "bottomRight",
2598
- trigger: ["click"],
2599
- overlayClassName: "dt-reuse-tabs__dropdown"
2600
- }, {
2601
- overlay: withCtx(() => [
2602
- createVNode(_component_AMenu, null, {
2603
- default: withCtx(() => [
2604
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref$1(getDropMenuList), (item, index2) => {
2605
- return openBlock(), createElementBlock(Fragment, { key: index2 }, [
2606
- createVNode(_component_AMenuItem, {
2607
- onClick: ($event) => unref$1(handleMenuEvent)(item),
2608
- disabled: item.disabled
2609
- }, {
2610
- default: withCtx(() => [
2611
- createElementVNode("i", {
2612
- class: normalizeClass(["i pr-4", item.icon])
2613
- }, null, 2),
2614
- createElementVNode("span", _hoisted_3, toDisplayString(item.text), 1)
2615
- ]),
2616
- _: 2
2617
- }, 1032, ["onClick", "disabled"]),
2618
- item.divider ? (openBlock(), createBlock(_component_AMenuDivider, {
2619
- key: `d-${index2}`
2620
- })) : createCommentVNode("", true)
2621
- ], 64);
2622
- }), 128))
2623
- ]),
2624
- _: 1
2625
- })
2626
- ]),
2627
- default: withCtx(() => [
2628
- createElementVNode("span", {
2629
- onClick: _cache[0] || (_cache[0] = (...args) => unref$1(handleContext) && unref$1(handleContext)(...args)),
2630
- 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"
2631
- }, _hoisted_2)
2632
- ]),
2633
- _: 1
2634
- });
2635
- };
2636
- }
2637
- });
2638
- function initAffixTabs() {
2639
- const affixList = ref$1([]);
2640
- const tabStore = useRouteReuseStore();
2641
- const router = useRouter$1();
2642
- const filterAffixTabs = (routes = []) => {
2643
- return routes && routes.reduce((tabs, route) => {
2644
- if (route.meta && route.meta.affix) {
2645
- tabs.push(toRaw(route));
2646
- }
2647
- return tabs;
2648
- }, []);
2649
- };
2650
- const addAffixTabs = () => {
2651
- const affixTabs = filterAffixTabs(router.getRoutes());
2652
- affixList.value = affixTabs;
2653
- for (const tab of affixTabs) {
2654
- tabStore.addTab({
2655
- meta: tab.meta,
2656
- name: tab.name,
2657
- path: tab.path
2658
- });
2659
- }
2660
- };
2661
- let isAddAffix = false;
2662
- if (!isAddAffix) {
2663
- addAffixTabs();
2664
- isAddAffix = true;
2665
- }
2666
- return affixList.value.map((item) => item.meta?.title).filter(Boolean);
2667
- }
2668
- function useSortable(el, options) {
2669
- function initSortable() {
2670
- nextTick$1(async () => {
2671
- if (!el)
2672
- return;
2673
- const Sortable = (await import("sortablejs")).default;
2674
- Sortable.create(unref$1(el), {
2675
- animation: 500,
2676
- delay: 400,
2677
- delayOnTouchOnly: true,
2678
- ...options
2679
- });
2680
- });
2681
- }
2682
- return { initSortable };
2683
- }
2684
- function useTabsDrag(affixList) {
2685
- const tabStore = useRouteReuseStore();
2686
- const { getCanDrag } = useMultipleTab();
2687
- nextTick$1(() => {
2688
- if (!unref$1(getCanDrag))
2689
- return;
2690
- const el = document.querySelectorAll(`.dt-reuse-tabs .ant-tabs-nav-list`)?.[0];
2691
- const { initSortable } = useSortable(el, {
2692
- filter: (e) => {
2693
- const text = e?.target?.innerText;
2694
- if (!text)
2695
- return false;
2696
- return affixList.includes(text);
2697
- },
2698
- onEnd: (evt) => {
2699
- const { oldIndex, newIndex } = evt;
2700
- if (isNullAndUnDef(oldIndex) || isNullAndUnDef(newIndex) || oldIndex === newIndex)
2701
- return;
2702
- tabStore.sortTabs(oldIndex, newIndex);
2703
- }
2704
- });
2705
- initSortable();
2706
- });
2707
- }
2708
- const _hoisted_1$3 = { class: "dt-reuse-tabs leading-8 border-b border-solid border-gray-200" };
2709
- const _sfc_main$4 = /* @__PURE__ */ defineComponent$1({
2710
- __name: "index",
2711
- setup(__props) {
2712
- const { t } = useI18n("UI");
2713
- const router = useRouter();
2714
- const go = useGo(router);
2715
- const tabStore = useRouteReuseStore();
2716
- const { getShowQuick, getShowRedo } = useMultipleTab();
2717
- const menuLabelMap = menuList2Map();
2718
- const activeKeyRef = ref(null);
2719
- const getTabsState = computed(() => {
2720
- return tabStore.getTabList.filter((item) => !item.meta?.hideTab);
2721
- });
2722
- const unClose = computed(() => unref(getTabsState).length === 1);
2723
- function handleChange(activeKey) {
2724
- activeKeyRef.value = activeKey;
2725
- go(activeKey);
2726
- }
2727
- function handleEdit(targetKey) {
2728
- if (unref(unClose))
2729
- return;
2730
- tabStore.closeTab(targetKey, router);
2731
- }
2732
- const affixTextList = initAffixTabs();
2733
- useTabsDrag(affixTextList);
2734
- watch(
2735
- () => router.currentRoute.value.path,
2736
- (v) => {
2737
- if (v === "/" || v === "/login")
2738
- return;
2739
- const { meta = {} } = unref(router.currentRoute);
2740
- const { hideTab = false } = meta;
2741
- if (activeKeyRef.value !== v) {
2742
- activeKeyRef.value = v;
2743
- }
2744
- if (!hideTab) {
2745
- tabStore.addTab(unref(router.currentRoute));
2746
- }
2747
- },
2748
- {
2749
- immediate: true
2750
- }
2751
- );
2752
- return (_ctx, _cache) => {
2753
- const _component_ATabPane = TabPane;
2754
- const _component_ATabs = Tabs;
2755
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
2756
- createVNode(_component_ATabs, {
2757
- type: "editable-card",
2758
- size: "small",
2759
- animated: false,
2760
- hideAdd: true,
2761
- tabBarGutter: 3,
2762
- activeKey: unref$1(activeKeyRef),
2763
- onChange: handleChange,
2764
- onEdit: handleEdit,
2765
- class: "h-8"
2766
- }, createSlots({
2767
- default: withCtx(() => [
2768
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref$1(getTabsState), (item) => {
2769
- return openBlock(), createBlock(_component_ATabPane, {
2770
- key: item.query ? item.fullPath : item.path,
2771
- closable: !(item && item.meta && item.meta.affix)
2772
- }, {
2773
- tab: withCtx(() => [
2774
- createElementVNode("span", null, toDisplayString(unref$1(menuLabelMap).get(item.path) || unref$1(t)("UNKNOWN_ROUTE")), 1)
2775
- ]),
2776
- _: 2
2777
- }, 1032, ["closable"]);
2778
- }), 128))
2779
- ]),
2780
- _: 2
2781
- }, [
2782
- unref$1(getShowRedo) || unref$1(getShowQuick) ? {
2783
- name: "rightExtra",
2784
- fn: withCtx(() => [
2785
- unref$1(getShowRedo) ? (openBlock(), createBlock(unref$1(_sfc_main$6), { key: 0 })) : createCommentVNode("", true),
2786
- unref$1(getShowQuick) ? (openBlock(), createBlock(unref$1(_sfc_main$5), { key: 1 })) : createCommentVNode("", true)
2787
- ]),
2788
- key: "0"
2789
- } : void 0
2790
- ]), 1032, ["activeKey"])
2791
- ]);
2792
- };
2793
- }
2794
- });
2795
- const _sfc_main$3 = /* @__PURE__ */ defineComponent$1({
2796
- __name: "multiple-header",
2797
- setup(__props) {
2798
- const {
2799
- getHeaderHeight,
2800
- getFixed,
2801
- getShowFullHeaderRef,
2802
- getHeaderTheme,
2803
- getShowInsetHeaderRef,
2804
- getTabsHeight
2805
- } = useHeader();
2806
- const { getCalcContentWidth, getIsMixMode, getIsTopMenu, getSplit } = useMenu();
2807
- const { getShowMultipleTab } = useMultipleTab();
2808
- const getPlaceholderDomStyle = computed$1(() => {
2809
- let height = unref$1(getHeaderHeight);
2810
- if (unref$1(getIsMixMode)) {
2811
- height = unref$1(getShowMultipleTab) ? unref$1(getTabsHeight) : 0;
2812
- }
2813
- return {
2814
- height: `${height}px`
2815
- };
2816
- });
2817
- const getSplitType = computed$1(() => {
2818
- return unref$1(getSplit) ? MenuSplitTye.LEFT : MenuSplitTye.NONE;
2819
- });
2820
- const { menusRef } = useSplitMenu(getSplitType);
2821
- const getWrapStyle = computed$1(() => {
2822
- const style = {};
2823
- if (unref$1(getSplit) && !unref$1(menusRef)?.length) {
2824
- style.width = "100%";
2825
- } else if (unref$1(getFixed)) {
2826
- style.width = unref$1(getCalcContentWidth);
2827
- }
2828
- if (unref$1(getShowFullHeaderRef))
2829
- style.top = "48px";
2830
- return style;
2831
- });
2832
- const getClass = computed$1(() => {
2833
- let cls = "transition-width duration-200 flex-auto";
2834
- if (unref$1(getFixed)) {
2835
- cls += " fixed top-0 right-0 w-full";
2836
- }
2837
- return cls;
2838
- });
2839
- return (_ctx, _cache) => {
2840
- return openBlock(), createElementBlock("div", null, [
2841
- unref$1(getFixed) ? (openBlock(), createElementBlock("div", {
2842
- key: 0,
2843
- style: normalizeStyle(unref$1(getPlaceholderDomStyle))
2844
- }, null, 4)) : createCommentVNode("", true),
2845
- createElementVNode("div", {
2846
- style: normalizeStyle(unref$1(getWrapStyle)),
2847
- class: normalizeClass(unref$1(getClass))
2848
- }, [
2849
- unref$1(getShowInsetHeaderRef) ? (openBlock(), createBlock(_sfc_main$a, { key: 0 })) : createCommentVNode("", true),
2850
- unref$1(getShowMultipleTab) ? (openBlock(), createBlock(_sfc_main$4, { key: 1 })) : createCommentVNode("", true)
2851
- ], 6)
2852
- ]);
2853
- };
2854
- }
2855
- });
2856
- const _hoisted_1$2 = { class: "pr-2.5" };
2857
- const _sfc_main$2 = /* @__PURE__ */ defineComponent$1({
2858
- __name: "index",
2859
- setup(__props) {
2860
- const { getFooter } = useTheme();
2861
- const { title, subTitle, height } = unref$1(getFooter);
2862
- const footerOptions = computed$1(() => {
2863
- return {
2864
- lineHeight: `${height - 1}px`,
2865
- height: `${height}px`,
2866
- padding: "0",
2867
- width: `100%`,
2868
- color: "rgb(156,163,175)"
2869
- };
2870
- });
2871
- return (_ctx, _cache) => {
2872
- return openBlock(), createBlock(unref$1(LayoutFooter), {
2873
- class: "text-center p-0 w-full block border-t border-gray-200",
2874
- style: normalizeStyle(unref$1(footerOptions))
2875
- }, {
2876
- default: withCtx(() => [
2877
- createElementVNode("span", _hoisted_1$2, toDisplayString(unref$1(title)), 1),
2878
- createElementVNode("span", null, toDisplayString(unref$1(subTitle)), 1)
2879
- ]),
2880
- _: 1
2881
- }, 8, ["style"]);
2882
- };
2883
- }
2884
- });
2885
- const _hoisted_1$1 = ["loading"];
2886
- const _sfc_main$1 = /* @__PURE__ */ defineComponent$1({
2887
- __name: "index",
2888
- setup(__props) {
2889
- const { getTransitionMode } = useApp();
2890
- const { getLayoutContentMode, getPageLoading, getOpenPageLoading } = useTheme();
2891
- const { getCanCache } = useMultipleTab();
2892
- const tabStore = useRouteReuseStore();
2893
- function getTransitionName(route) {
2894
- return route.meta.transitionName || unref(getTransitionMode);
2895
- }
2896
- const getCaches = computed(() => {
2897
- return tabStore.getCachedTabList;
2898
- });
2899
- return (_ctx, _cache) => {
2900
- const _component_router_view = resolveComponent("router-view");
2901
- const _component_ALayoutContent = LayoutContent;
2902
- return openBlock(), createElementBlock("div", {
2903
- id: "dt-layout-content",
2904
- class: normalizeClass([["dt-layout-content", unref$1(getLayoutContentMode)], "relative flex-auto overflow-x-hidden min-h-0 flex"]),
2905
- loading: unref$1(getPageLoading) && unref$1(getOpenPageLoading)
2906
- }, [
2907
- createVNode(_component_ALayoutContent, null, {
2908
- default: withCtx(() => [
2909
- createVNode(_component_router_view, null, {
2910
- default: withCtx(({ Component, route }) => [
2911
- createVNode(Transition, {
2912
- name: getTransitionName(route)
2913
- }, {
2914
- default: withCtx(() => [
2915
- !route.meta.hideTab && unref$1(getCanCache) ? (openBlock(), createBlock(KeepAlive, {
2916
- key: 0,
2917
- include: unref$1(getCaches)
2918
- }, [
2919
- (openBlock(), createBlock(resolveDynamicComponent(Component), {
2920
- key: route.path
2921
- }))
2922
- ], 1032, ["include"])) : (openBlock(), createBlock(resolveDynamicComponent(Component), { key: 1 }))
2923
- ]),
2924
- _: 2
2925
- }, 1032, ["name"])
2926
- ]),
2927
- _: 1
2928
- })
2929
- ]),
2930
- _: 1
2931
- })
2932
- ], 10, _hoisted_1$1);
2933
- };
2934
- }
2935
- });
2936
- var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
2937
- var esUs = { exports: {} };
2938
- (function(module, exports) {
2939
- !function(e, s) {
2940
- module.exports = s(require$$0);
2941
- }(commonjsGlobal, function(e) {
2942
- function s(e2) {
2943
- return e2 && "object" == typeof e2 && "default" in e2 ? e2 : { default: e2 };
2944
- }
2945
- 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) {
2946
- return e2 + "\xBA";
2947
- }, 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" } };
2948
- return o.default.locale(d, null, true), d;
2949
- });
2950
- })(esUs);
2951
- const _hoisted_1 = { class: "dt-theme w-full h-full" };
2952
- const _sfc_main = /* @__PURE__ */ defineComponent$1({
2953
- __name: "index",
2954
- setup(__props) {
2955
- const { currentRoute } = useRouter$1();
2956
- const { getShowFullHeaderRef, getIsZH, getHeaderHeight, getUiSize } = useHeader();
2957
- const { getSplit, getShowMenu, getShowSidebar } = useMenu();
2958
- const { getFooter, getShowFooter } = useTheme();
2959
- const { height } = unref$1(getFooter);
2960
- require$$0.locale(unref$1(getIsZH) ? "zh-cn" : "en");
2961
- const layoutClass = computed$1(() => {
2962
- let cls = "ant-layout";
2963
- if (unref$1(getShowMenu)) {
2964
- cls += " flex flex-auto min-h-0 flex-row";
2965
- }
2966
- return cls;
2967
- });
2968
- const layoutOption = computed$1(() => {
2969
- if (unref$1(getSplit)) {
2970
- return {
2971
- paddingTop: unref$1(getHeaderHeight) + "px",
2972
- background: "#f0f2f5"
2973
- };
2974
- }
2975
- });
2976
- const getContentStyle = computed$1(() => {
2977
- return {
2978
- flex: unref$1(getSplit) ? `0 0 calc(100% - ${unref$1(getShowFooter) || 0}px)` : `0 0 calc(100% - ${unref$1(getShowFooter) ? height : 0}px - ${unref$1(getHeaderHeight)}px)`,
2979
- overflowY: "auto"
2980
- };
2981
- });
2982
- return (_ctx, _cache) => {
2983
- const _component_ALayout = Layout;
2984
- const _component_AConfigProvider = ConfigProvider;
2985
- return openBlock(), createElementBlock("div", _hoisted_1, [
2986
- createVNode(_component_AConfigProvider, {
2987
- locale: unref$1(getIsZH) ? unref$1(zhCN) : unref$1(en),
2988
- "component-size": unref$1(getUiSize)
2989
- }, {
2990
- default: withCtx(() => [
2991
- unref$1(currentRoute)?.name && unref$1(currentRoute).meta?.requiresAuth !== false ? (openBlock(), createBlock(_component_ALayout, {
2992
- key: 0,
2993
- class: "w-full h-full flex"
2994
- }, {
2995
- default: withCtx(() => [
2996
- createVNode(_sfc_main$x),
2997
- unref$1(getShowFullHeaderRef) ? (openBlock(), createBlock(_sfc_main$a, {
2998
- key: 0,
2999
- fixed: ""
3000
- })) : createCommentVNode("", true),
3001
- createVNode(_component_ALayout, {
3002
- class: normalizeClass(unref$1(layoutClass)),
3003
- style: normalizeStyle(unref$1(layoutOption))
3004
- }, {
3005
- default: withCtx(() => [
3006
- unref$1(getShowSidebar) ? (openBlock(), createBlock(_sfc_main$7, { key: 0 })) : createCommentVNode("", true),
3007
- createVNode(_component_ALayout, { class: "dt-theme-main flex w-full h-ful" }, {
3008
- default: withCtx(() => [
3009
- createVNode(_sfc_main$3),
3010
- createVNode(_sfc_main$1, {
3011
- style: normalizeStyle(unref$1(getContentStyle))
3012
- }, null, 8, ["style"]),
3013
- unref$1(getFooter) && unref$1(getFooter)["show"] ? (openBlock(), createBlock(_sfc_main$2, { key: 0 })) : createCommentVNode("", true)
3014
- ]),
3015
- _: 1
3016
- })
3017
- ]),
3018
- _: 1
3019
- }, 8, ["class", "style"])
3020
- ]),
3021
- _: 1
3022
- })) : (openBlock(), createBlock(unref$1(RouterView), { key: 1 }))
3023
- ]),
3024
- _: 1
3025
- }, 8, ["locale", "component-size"])
3026
- ]);
3027
- };
3028
- }
3029
- });
3030
- const EN = {
3031
- "UI": {
3032
- "ADD": "Add ",
3033
- "DELETE_CONFIRM": "Delete Confirm",
3034
- "CONFIRM_DELETE": "Confirm that you want to delete the selected data\uFF1F",
3035
- "NEED_CURD": "Missing curd function configuration, pass the curd parameter returned by useSource to the useCurd configuration option!",
3036
- "EDIT": "Edit ",
3037
- "EMPTY": "No Selected Data Yet!",
3038
- "EMPTY_URL": "Request Url Can Not Empty!",
3039
- "MULTIFY_DELETE_CONFIRM": "Batch Deletion Confirmation",
3040
- "CONFIRM_MULTIFY_DELETE": "Confirm that you want to delete the selected data in batches?",
3041
- "ADVANCED": "Retract",
3042
- "EXPAND": "Expand",
3043
- "SELECT_ICON": "Select Icon",
3044
- "MUSE_FUNCTION": "openDialog must be a fouction",
3045
- "NEED_RENDER": "Configure the render function",
3046
- "SEARCH": "Search",
3047
- "RESET": "Reset",
3048
- "PLEASE_INPUT": "Please Input",
3049
- "PLEASE_SELECT": "Please Select",
3050
- "PLEASE_SET_ICON": "Please Set The Icon",
3051
- "INPUT_FILTER": "Enter Filter Criteria",
3052
- "EXIT_FULLSCREEN": "Exit Full Screen",
3053
- "FULLSCREEN": "Full Screen",
3054
- "SAVE": "Save",
3055
- "CLOSE": "Close",
3056
- "ADD_SUCCESS": "Add Success!",
3057
- "UPDATE_SUCCESS": "Update data successfully!",
3058
- "MULTIFY": "Batch",
3059
- "DELETE_SUCCESS": "Successfully delete!",
3060
- "COLUMN_CONTROL": "Column Control",
3061
- "COLUMN_SHOW": "Column Show",
3062
- "INDEX": "Serial Number",
3063
- "CHECKBOX": "Checkbox",
3064
- "FIXED_TO_LEFT": "Fixed to the left",
3065
- "FIXED_TO_RIGHT": "Fixed to the right",
3066
- "EXPORT": "Export",
3067
- "EXPORT_CURRENT_PAGE": "Export the current page",
3068
- "EXPORT_SELECT_COLUMN": "Export Selected columns",
3069
- "EXPORT_ALL": "Export all columns",
3070
- "SELECT_ALL": "Select All",
3071
- "SETTING_EXPORT_COLUMN": "Setting the export column",
3072
- "NO_EXPORT_COLUMN": "There are no exported columns!",
3073
- "NUMBER": "Number",
3074
- "ACTIONS": "Actions",
3075
- "TOTAL_PAGE": "Total {total}",
3076
- "FILTER": "Filter",
3077
- "EXPAND_ALL": "Expand All",
3078
- "COLLAPSE_ALL": "Collapse All",
3079
- "SELECT_ALL1": "Select All",
3080
- "CANCEL_SELECT_ALL": "Cancel Select All",
3081
- "LEVEL_CONNECTION": "Level Connection",
3082
- "LEVEL_SOLATE": "Independent Hierarchy",
3083
- "LOADING": "Loading...",
3084
- "SUPPORT_FILES": "Support {message} format",
3085
- "MAX_SIZE": "Not exceeding {maxSize}M",
3086
- "MAX_NUMBER": "A maximum of {maxNumber} files can be selected",
3087
- "SUPPORT_TYPES": "Upload Types: pptx\u3001doc\u3001jpg\u3001jpeg\u3001png\u3001bmp\u3001gif\u3001xls\u3001xlsx\u3001txt\u3001rar\u3001zip\u30017z\u3001tar\u3001gz",
3088
- "FILE_UPLOAD": "Files Upload",
3089
- "FILE_NAME": "File Name",
3090
- "FILE_STATUS": "Upload Status",
3091
- "PREVIEW": "Preview",
3092
- "DELETE": "Delete",
3093
- "HISTORY_UPLOAD": "History Upload",
3094
- "MAX_MB": "Only files up to {maxSize}MB can be uploaded!",
3095
- "PRE_UPLOAD": "To Upload",
3096
- "COMPANY_NAME": "Longi Co overseas tax system",
3097
- "FILTER_MORE": "Menu Search...",
3098
- "LARGE_SIZE": "Large Size",
3099
- "MIDDLE_SIZE": "Middle Size",
3100
- "SMALL_SIZE": "Small Size",
3101
- "MODIFY_PASSWORD": "Modify Password",
3102
- "LOGIN_OUT": "Log out",
3103
- "CLOSE_CURRENT_TAG": "Close the current tab",
3104
- "CLOSE_LEFT_TAGS": "Close the left tab",
3105
- "CLOSE_RIGHT_TAGS": "Close the right tab",
3106
- "CLOSE_OTHER_TAGS": "Close other tabs",
3107
- "CLOSE_ALL_TAGE": "Close All",
3108
- "SETTING_THEME": "Style Settings",
3109
- "PROJECT_SETTING": "Project Configuration",
3110
- "NAV_MODE": "Navigation bar mode",
3111
- "PAGE_SHOW": "Interface Display",
3112
- "COPY": "Copy",
3113
- "DRAWER_TIPS": "The function mainly real-time preview layout effect, more complete configuration in the SRC/core/Settings/theme.ts. The layout preview function will be turned off in production.",
3114
- "FULL": "Flow-based",
3115
- "FIXED": "Fixed width",
3116
- "BREAD_CURB": "Bread crumbs",
3117
- "MENU_FILTER": "Menu search",
3118
- "NOTICE": "Notification",
3119
- "SIZE": "Size",
3120
- "SHOW_FULLE": "Page full screen",
3121
- "LOCAL": "Internationalization",
3122
- "ROUTE_REUSE": "Routing reuse",
3123
- "SHOW_FOOTER": "Show Footer",
3124
- "CONTENT_FIXED_WIDTH": "Content area width",
3125
- "ON": "On",
3126
- "OFF": "Off",
3127
- "UNKNOWN_ROUTE": "Unknown route",
3128
- "COPY_SUCCESS": "Copy Success\uFF01"
3129
- }
3130
- };
3131
- const ZH = {
3132
- "UI": {
3133
- "ADD": "\u65B0\u589E",
3134
- "DELETE_CONFIRM": "\u5220\u9664\u786E\u8BA4",
3135
- "CONFIRM_DELETE": "\u786E\u8BA4\u8981\u5220\u9664\u9009\u4E2D\u7684\u6570\u636E\uFF1F",
3136
- "NEED_CURD": "\u7F3A\u5C11curd\u51FD\u6570\u914D\u7F6E, \u8BF7\u5C06useSource\u4E2D\u8FD4\u56DE\u7684curd\u53C2\u6570\u4F20\u5165useCurd\u914D\u7F6E\u9879\u4E2D!",
3137
- "EDIT": "\u7F16\u8F91",
3138
- "EMPTY": "\u6682\u65E0\u9009\u4E2D\u7684\u6570\u636E!",
3139
- "EMPTY_URL": "\u8BF7\u6C42url\u4E0D\u80FD\u4E3A\u7A7A!",
3140
- "MULTIFY_DELETE_CONFIRM": "\u6279\u91CF\u5220\u9664\u786E\u8BA4",
3141
- "CONFIRM_MULTIFY_DELETE": "\u786E\u8BA4\u8981\u6279\u91CF\u5220\u9664\u9009\u4E2D\u7684\u6570\u636E\uFF1F",
3142
- "ADVANCED": "\u6536\u8D77",
3143
- "EXPAND": "\u5C55\u5F00",
3144
- "SELECT_ICON": "\u9009\u62E9\u5B57\u4F53\u56FE\u6807",
3145
- "MUSE_FUNCTION": "openDialog\u5FC5\u987B\u662F\u51FD\u6570",
3146
- "NEED_RENDER": "\u8BF7\u914D\u7F6Erender\u51FD\u6570",
3147
- "SEARCH": "\u67E5\u8BE2",
3148
- "RESET": "\u91CD\u7F6E",
3149
- "PLEASE_INPUT": "\u8BF7\u8F93\u5165",
3150
- "PLEASE_SELECT": "\u8BF7\u9009\u62E9",
3151
- "PLEASE_SET_ICON": "\u8BF7\u8BBE\u7F6E\u56FE\u6807",
3152
- "INPUT_FILTER": "\u8BF7\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6",
3153
- "EXIT_FULLSCREEN": "\u9000\u51FA\u5168\u5C4F",
3154
- "FULLSCREEN": "\u5168\u5C4F",
3155
- "SAVE": "\u4FDD\u5B58",
3156
- "CLOSE": "\u5173\u95ED",
3157
- "ADD_SUCCESS": "\u65B0\u589E\u6210\u529F\uFF01",
3158
- "UPDATE_SUCCESS": "\u66F4\u65B0\u6570\u636E\u6210\u529F\uFF01",
3159
- "MULTIFY": "\u6279\u91CF",
3160
- "DELETE_SUCCESS": "\u5220\u9664\u6210\u529F\uFF01",
3161
- "COLUMN_CONTROL": "\u5217\u63A7\u5236",
3162
- "COLUMN_SHOW": "\u5217\u5C55\u793A",
3163
- "INDEX": "\u5E8F\u5217\u53F7",
3164
- "CHECKBOX": "\u590D\u9009\u6846",
3165
- "FIXED_TO_LEFT": "\u56FA\u5B9A\u5230\u5DE6\u4FA7",
3166
- "FIXED_TO_RIGHT": "\u56FA\u5B9A\u5230\u53F3\u4FA7",
3167
- "EXPORT": "\u5BFC\u51FA",
3168
- "DOWNLOAD_TEMPLATE": "\u6A21\u677F\u4E0B\u8F7D",
3169
- "EXPORT_CURRENT_PAGE": "\u5BFC\u51FA\u5F53\u524D\u9875",
3170
- "EXPORT_SELECT_COLUMN": "\u5BFC\u51FA\u9009\u4E2D\u5217",
3171
- "EXPORT_ALL": "\u5BFC\u51FA\u6240\u6709\u5217",
3172
- "SELECT_ALL": "\u5168\u9009",
3173
- "SETTING_EXPORT_COLUMN": "\u8BBE\u7F6E\u5BFC\u51FA\u5217",
3174
- "NO_EXPORT_COLUMN": "\u6682\u65E0\u53EF\u5BFC\u51FA\u7684\u5217\uFF01",
3175
- "NUMBER": "\u5E8F\u53F7",
3176
- "ACTIONS": "\u64CD\u4F5C",
3177
- "TOTAL_PAGE": "\u603B\u5171{total}\u6761",
3178
- "FILTER": "\u8FC7\u6EE4",
3179
- "EXPAND_ALL": "\u5C55\u5F00\u5168\u90E8",
3180
- "COLLAPSE_ALL": "\u6298\u53E0\u5168\u90E8",
3181
- "SELECT_ALL1": "\u9009\u62E9\u5168\u90E8",
3182
- "CANCEL_SELECT_ALL": "\u53D6\u6D88\u9009\u62E9",
3183
- "LEVEL_CONNECTION": "\u5C42\u7EA7\u5173\u8054",
3184
- "LEVEL_SOLATE": "\u5C42\u7EA7\u72EC\u7ACB",
3185
- "LOADING": "\u52A0\u8F7D\u4E2D...",
3186
- "SUPPORT_FILES": "\u652F\u6301{message}\u683C\u5F0F",
3187
- "MAX_SIZE": "\u4E0D\u8D85\u8FC7{maxSize}M",
3188
- "MAX_NUMBER": "\u6700\u591A\u53EF\u9009\u62E9{maxNumber}\u4E2A\u6587\u4EF6",
3189
- "SUPPORT_TYPES": "\u8BF7\u4E0A\u4F20pptx\u3001doc\u3001jpg\u3001jpeg\u3001png\u3001bmp\u3001gif\u3001xls\u3001xlsx\u3001txt\u3001rar\u3001zip\u30017z\u3001tar\u3001gz\u683C\u5F0F\u6587\u4EF6",
3190
- "FILE_UPLOAD": "\u6587\u4EF6\u4E0A\u4F20",
3191
- "FILE_NAME": "\u6587\u4EF6\u540D\u79F0",
3192
- "FILE_STATUS": "\u4E0A\u4F20\u72B6\u6001",
3193
- "PREVIEW": "\u9884\u89C8",
3194
- "DELETE": "\u5220\u9664",
3195
- "HISTORY_UPLOAD": "\u5386\u53F2\u4E0A\u4F20",
3196
- "MAX_MB": "\u53EA\u80FD\u4E0A\u4F20\u4E0D\u8D85\u8FC7{maxSize}MB\u7684\u6587\u4EF6!",
3197
- "PRE_UPLOAD": "\u5F85\u4E0A\u4F20",
3198
- "COMPANY_NAME": "\u5B89\u5FBD\u6DF1\u8FEA\u4E2D\u53F0\u7CFB\u7EDF\u6A21\u677F",
3199
- "FILTER_MORE": "\u83DC\u5355\u68C0\u7D22...",
3200
- "LARGE_SIZE": "\u5927\u5C3A\u5BF8",
3201
- "MIDDLE_SIZE": "\u4E2D\u5C3A\u5BF8",
3202
- "SMALL_SIZE": "\u5C0F\u5C3A\u5BF8",
3203
- "MODIFY_PASSWORD": "\u4FEE\u6539\u5BC6\u7801",
3204
- "LOGIN_OUT": "\u9000\u51FA\u7CFB\u7EDF",
3205
- "CLOSE_CURRENT_TAG": "\u5173\u95ED\u5F53\u524D\u6807\u7B7E\u9875",
3206
- "CLOSE_LEFT_TAGS": "\u5173\u95ED\u5DE6\u4FA7\u6807\u7B7E\u9875",
3207
- "CLOSE_RIGHT_TAGS": "\u5173\u95ED\u53F3\u4FA7\u6807\u7B7E\u9875",
3208
- "CLOSE_OTHER_TAGS": "\u5173\u95ED\u5176\u4ED6\u6807\u7B7E\u9875",
3209
- "CLOSE_ALL_TAGE": "\u5173\u95ED\u5168\u90E8\u6807\u7B7E\u9875",
3210
- "SETTING_THEME": "\u98CE\u683C\u8BBE\u7F6E",
3211
- "PROJECT_SETTING": "\u9879\u76EE\u914D\u7F6E",
3212
- "NAV_MODE": "\u5BFC\u822A\u680F\u6A21\u5F0F",
3213
- "PAGE_SHOW": "\u754C\u9762\u663E\u793A",
3214
- "COPY": "\u62F7\u8D1D",
3215
- "DRAWER_TIPS": "\u8BE5\u529F\u80FD\u4E3B\u8981\u5B9E\u65F6\u9884\u89C8\u5404\u79CD\u5E03\u5C40\u6548\u679C\uFF0C\u66F4\u591A\u5B8C\u6574\u914D\u7F6E\u5728 src/core/settings/theme.ts \u4E2D\u8BBE\u7F6E\uFF0C\u5728\u751F\u4EA7\u73AF\u5883\u8BE5\u5E03\u5C40\u9884\u89C8\u529F\u80FD\u5C06\u88AB\u5173\u95ED\u3002",
3216
- "FULL": "\u6D41\u5F0F",
3217
- "FIXED": "\u5B9A\u5BBD",
3218
- "BREAD_CURB": "\u9762\u5305\u5C51",
3219
- "MENU_FILTER": "\u83DC\u5355\u68C0\u7D22",
3220
- "NOTICE": "\u901A\u77E5\u516C\u544A",
3221
- "SIZE": "\u5143\u7D20\u5C3A\u5BF8",
3222
- "SHOW_FULLE": "\u9875\u9762\u5168\u5C4F",
3223
- "LOCAL": "\u56FD\u9645\u5316",
3224
- "ROUTE_REUSE": "\u8DEF\u7531\u590D\u7528",
3225
- "SHOW_FOOTER": "\u663E\u793A\u5E95\u90E8",
3226
- "CONTENT_FIXED_WIDTH": "\u5185\u5BB9\u533A\u57DF\u5BBD\u5EA6",
3227
- "ON": "\u5F00",
3228
- "OFF": "\u5173",
3229
- "DOWNLOAD": "\u4E0B\u8F7D",
3230
- "UNKNOWN_ROUTE": "\u672A\u77E5\u8DEF\u7531",
3231
- "COPY_SUCCESS": "\u62F7\u8D1D\u6210\u529F\uFF01"
3232
- }
3233
- };
3234
- const uiLang = (lang) => lang === Language.ZH ? ZH : EN;
3235
- const DtTheme = withInstall$1(_sfc_main);
1
+ const test = null;
3236
2
  export {
3237
- DtTheme,
3238
- defaultThemeConf,
3239
- uiLang,
3240
- useRouteReuseStore,
3241
- useThemeStore
3
+ test
3242
4
  };