@dt-frames/ui 2.0.24 → 4.0.1

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 (667) hide show
  1. package/dist/es/_virtual/preload-helper.mjs +1 -0
  2. package/dist/es/assets/node_modules/.pnpm/nprogress@0.2.0/node_modules/nprogress/nprogress-BgDCIyLK.css +1 -0
  3. package/dist/es/components/drawer/index.d.ts +5 -0
  4. package/dist/es/components/drawer/index.mjs +1 -0
  5. package/dist/es/components/drawer/src/hooks/useDrawer.d.ts +3 -0
  6. package/dist/es/components/drawer/src/index.d.ts +20 -0
  7. package/dist/es/components/drawer/src/types/index.d.ts +208 -0
  8. package/dist/es/components/drawer/src/types/index.ts +223 -0
  9. package/dist/es/components/drawer/styles/index.scss +0 -0
  10. package/dist/es/components/form/index.d.ts +9 -0
  11. package/dist/es/components/form/index.mjs +1 -0
  12. package/dist/es/components/form/src/conponents/FormButtons.d.ts +29 -0
  13. package/dist/es/components/form/src/conponents/FormItems.d.ts +19 -0
  14. package/dist/es/components/form/src/conponents/RadioGroup.d.ts +10 -0
  15. package/dist/es/components/form/src/conponents/componentMap.d.ts +4 -0
  16. package/dist/es/components/form/src/hooks/useForm.d.ts +8 -0
  17. package/dist/es/components/form/src/hooks/useFormActions.d.ts +32 -0
  18. package/dist/es/components/form/src/hooks/useFormEvent.d.ts +29 -0
  19. package/dist/es/components/form/src/hooks/useFormValues.d.ts +13 -0
  20. package/dist/es/components/form/src/index.d.ts +493 -0
  21. package/dist/es/components/form/src/types/form.d.ts +355 -0
  22. package/dist/es/components/form/src/types/form.ts +391 -0
  23. package/dist/es/components/form/src/types/item.d.ts +3036 -0
  24. package/dist/es/components/form/src/types/item.ts +3169 -0
  25. package/{es/components/form/src/hooks/helper.d.ts → dist/es/components/form/src/utils/index.d.ts} +7 -5
  26. package/dist/es/components/form/styles/index.scss +10 -0
  27. package/dist/es/components/hover-card/index.d.ts +7 -0
  28. package/dist/es/components/hover-card/index.mjs +1 -0
  29. package/dist/es/components/hover-card/src/hover-card-content.d.ts +24 -0
  30. package/dist/es/components/hover-card/src/hover-card-trigger.d.ts +18 -0
  31. package/dist/es/components/hover-card/src/hover-card.d.ts +22 -0
  32. package/dist/es/components/icon/index.d.ts +4 -0
  33. package/dist/es/components/icon/index.mjs +1 -0
  34. package/dist/es/components/icon/src/index.d.ts +31 -0
  35. package/dist/es/components/icon/src/types/index.d.ts +6 -0
  36. package/dist/es/components/icon-picker/index.d.ts +4 -0
  37. package/dist/es/components/icon-picker/index.mjs +9 -0
  38. package/dist/es/components/icon-picker/src/components/IconPicker.d.ts +23 -0
  39. package/dist/es/components/icon-picker/src/components/SelectIcon.d.ts +39 -0
  40. package/dist/es/components/icon-picker/src/icon.d.ts +13 -0
  41. package/dist/es/components/icon-picker/src/index.d.ts +27 -0
  42. package/dist/es/components/icon-picker/styles/index.scss +0 -0
  43. package/dist/es/components/iframe/index.d.ts +4 -0
  44. package/dist/es/components/iframe/index.mjs +1 -0
  45. package/dist/es/components/iframe/src/index.d.ts +46 -0
  46. package/dist/es/components/modal/index.d.ts +7 -0
  47. package/dist/es/components/modal/index.mjs +1 -0
  48. package/dist/es/components/modal/src/components/Header.d.ts +8 -0
  49. package/dist/es/components/modal/src/hooks/useModal.d.ts +24 -0
  50. package/dist/es/components/modal/src/index.d.ts +822 -0
  51. package/dist/es/components/modal/src/types/modal.d.ts +246 -0
  52. package/dist/es/components/modal/src/types/modal.ts +265 -0
  53. package/dist/es/components/modal/styles/index.scss +8 -0
  54. package/dist/es/components/table/index.d.ts +9 -0
  55. package/dist/es/components/table/index.mjs +1 -0
  56. package/dist/es/components/table/src/components/Pagination.d.ts +15 -0
  57. package/dist/es/components/table/src/components/TableAction.d.ts +18 -0
  58. package/dist/es/components/table/src/components/TableHeader.d.ts +28 -0
  59. package/dist/es/components/table/src/components/TableLoading.d.ts +2 -0
  60. package/dist/es/components/table/src/components/tableSetting/Column.d.ts +222 -0
  61. package/dist/es/components/table/src/components/tableSetting/Download.d.ts +6 -0
  62. package/dist/es/components/table/src/components/tableSetting/DownloadCtrl.d.ts +2 -0
  63. package/dist/es/components/table/src/components/tableSetting/Fullscreen.d.ts +2 -0
  64. package/dist/es/components/table/src/components/tableSetting/Search.d.ts +5 -0
  65. package/dist/es/components/table/src/components/tableSetting/index.d.ts +7 -0
  66. package/dist/es/components/table/src/hooks/useColumns.d.ts +18 -0
  67. package/dist/es/components/table/src/hooks/useDataSource.d.ts +17 -0
  68. package/dist/es/components/table/src/hooks/useLoading.d.ts +7 -0
  69. package/dist/es/components/table/src/hooks/usePagination.d.ts +9 -0
  70. package/dist/es/components/table/src/hooks/useRowSelection.d.ts +7 -0
  71. package/dist/es/components/table/src/hooks/useTable.d.ts +3 -0
  72. package/dist/es/components/table/src/hooks/useTableIns.d.ts +12 -0
  73. package/dist/es/components/table/src/index.d.ts +775 -0
  74. package/dist/es/components/table/src/types/pagination.d.ts +100 -0
  75. package/dist/es/components/table/src/types/pagination.ts +102 -0
  76. package/dist/es/components/table/src/types/table.d.ts +632 -0
  77. package/dist/es/components/table/src/types/table.ts +668 -0
  78. package/dist/es/components/table/styles/index.scss +66 -0
  79. package/dist/es/components/tree/index.d.ts +7 -0
  80. package/dist/es/components/tree/index.mjs +1 -0
  81. package/dist/es/components/tree/src/components/ContextMenu.d.ts +80 -0
  82. package/dist/es/components/tree/src/components/TreeHeader.d.ts +31 -0
  83. package/dist/es/components/tree/src/hooks/useContextMenu.d.ts +11 -0
  84. package/dist/es/components/tree/src/hooks/useTree.d.ts +2 -0
  85. package/dist/es/components/tree/src/index.d.ts +116 -0
  86. package/dist/es/components/tree/src/types/index.d.ts +758 -0
  87. package/dist/es/components/tree/src/types/index.ts +788 -0
  88. package/dist/es/components/tree/styles/index.scss +15 -0
  89. package/dist/es/components/upload/assets/docx-preview-BLYEK_jf.js +38 -0
  90. package/dist/es/components/upload/assets/index-CUsgWuYW.css +1 -0
  91. package/dist/es/components/upload/assets/nprogress-BgDCIyLK.css +1 -0
  92. package/dist/es/components/upload/index.d.ts +6 -0
  93. package/dist/es/components/upload/index.mjs +1 -0
  94. package/dist/es/components/upload/src/components/PdfView.d.ts +2 -0
  95. package/dist/es/components/upload/src/components/WordView.d.ts +4 -0
  96. package/dist/es/components/upload/src/hooks/useFile.d.ts +14 -0
  97. package/dist/es/components/upload/src/index.d.ts +23 -0
  98. package/dist/es/components/upload/src/types/index.d.ts +229 -0
  99. package/dist/es/components/upload/src/utils/index.d.ts +15 -0
  100. package/dist/es/components/upload/styles/index.scss +0 -0
  101. package/dist/es/components/virtual-list/index.d.ts +4 -0
  102. package/dist/es/components/virtual-list/index.mjs +1 -0
  103. package/dist/es/components/virtual-list/src/index.d.ts +32 -0
  104. package/dist/es/components/virtual-list/src/types/index.d.ts +26 -0
  105. package/dist/es/components/virtual-list/styles/index.scss +0 -0
  106. package/dist/es/components/vxe-table/index.d.ts +7 -0
  107. package/dist/es/components/vxe-table/index.mjs +1 -0
  108. package/dist/es/components/vxe-table/src/components/Header.d.ts +28 -0
  109. package/dist/es/components/vxe-table/src/components/Pagination.d.ts +15 -0
  110. package/dist/es/components/vxe-table/src/components/RenderCell.d.ts +10 -0
  111. package/dist/es/components/vxe-table/src/components/TableAction.d.ts +18 -0
  112. package/dist/es/components/vxe-table/src/components/tableSetting/Column.d.ts +222 -0
  113. package/dist/es/components/vxe-table/src/components/tableSetting/Download.d.ts +6 -0
  114. package/dist/es/components/vxe-table/src/components/tableSetting/DownloadCtrl.d.ts +2 -0
  115. package/dist/es/components/vxe-table/src/components/tableSetting/Fullscreen.d.ts +2 -0
  116. package/dist/es/components/vxe-table/src/components/tableSetting/index.d.ts +7 -0
  117. package/dist/es/components/vxe-table/src/helper/index.d.ts +7 -0
  118. package/dist/es/components/vxe-table/src/hooks/useColumns.d.ts +5 -0
  119. package/dist/es/components/vxe-table/src/hooks/usePagination.d.ts +7 -0
  120. package/dist/es/components/vxe-table/src/hooks/useTableIns.d.ts +15 -0
  121. package/dist/es/components/vxe-table/src/hooks/useVxeTable.d.ts +2 -0
  122. package/dist/es/components/vxe-table/src/index.d.ts +155 -0
  123. package/dist/es/components/vxe-table/src/types/index.d.ts +181 -0
  124. package/dist/es/components/vxe-table/src/types/pagination.d.ts +100 -0
  125. package/dist/es/components/vxe-table/src/types/table.d.ts +25 -0
  126. package/dist/es/components/vxe-table/src/utils/index.d.ts +5 -0
  127. package/dist/es/components/vxe-table/styles/index.scss +6 -0
  128. package/dist/es/hooks/useCurd.d.ts +4 -0
  129. package/dist/es/hooks/useCurd.mjs +1 -0
  130. package/dist/es/hooks/useDownload.d.ts +9 -0
  131. package/dist/es/hooks/useDownload.mjs +1 -0
  132. package/dist/es/hooks/useSource.d.ts +10 -0
  133. package/dist/es/hooks/useSource.mjs +1 -0
  134. package/dist/es/index.d.ts +11 -0
  135. package/dist/es/index.mjs +1 -0
  136. package/dist/es/init/config.d.ts +6 -0
  137. package/dist/es/init/config.mjs +1 -0
  138. package/dist/es/init/index.d.ts +11 -0
  139. package/dist/es/init/index.mjs +1 -0
  140. package/dist/es/init/types/appConf.d.ts +331 -0
  141. package/dist/es/init/vxeTable.d.ts +5 -0
  142. package/dist/es/layout/assets/avator-uscRzRXF.png +0 -0
  143. package/dist/es/layout/index.d.ts +11 -0
  144. package/dist/es/layout/index.mjs +3 -0
  145. package/dist/es/layout/src/components/LayoutContent.d.ts +22 -0
  146. package/dist/es/layout/src/components/LayoutFooter.d.ts +23 -0
  147. package/dist/es/layout/src/components/LayoutHeader.d.ts +49 -0
  148. package/dist/es/layout/src/components/LayoutSidebar.d.ts +116 -0
  149. package/dist/es/layout/src/components/LayoutTabbar.d.ts +20 -0
  150. package/dist/es/layout/src/components/content/Content.d.ts +2 -0
  151. package/dist/es/layout/src/components/footer/CopyRight.d.ts +15 -0
  152. package/dist/es/layout/src/components/header/ArrowRight.d.ts +2 -0
  153. package/dist/es/layout/src/components/header/Breadcrumb.d.ts +13 -0
  154. package/dist/es/layout/src/components/header/FullScreen.d.ts +2 -0
  155. package/dist/es/layout/src/components/header/GlobalSearch.d.ts +417 -0
  156. package/dist/es/layout/src/components/header/Header.d.ts +22 -0
  157. package/dist/es/layout/src/components/header/IconButton.d.ts +29 -0
  158. package/dist/es/layout/src/components/header/LanguageToggle.d.ts +8 -0
  159. package/dist/es/layout/src/components/header/Logo.d.ts +54 -0
  160. package/dist/es/layout/src/components/header/User.d.ts +2 -0
  161. package/dist/es/layout/src/components/header/perferences/block/block.d.ts +22 -0
  162. package/dist/es/layout/src/components/header/perferences/block/component/CheckboxItem.d.ts +38 -0
  163. package/dist/es/layout/src/components/header/perferences/block/component/InputItem.d.ts +35 -0
  164. package/dist/es/layout/src/components/header/perferences/block/component/NumberItem.d.ts +36 -0
  165. package/dist/es/layout/src/components/header/perferences/block/component/SelectItem.d.ts +35 -0
  166. package/dist/es/layout/src/components/header/perferences/block/component/SwitchItem.d.ts +33 -0
  167. package/dist/es/layout/src/components/header/perferences/block/component/ToggleItem.d.ts +32 -0
  168. package/dist/es/layout/src/components/header/perferences/block/general/Animation.d.ts +18 -0
  169. package/dist/es/layout/src/components/header/perferences/block/general/General.d.ts +18 -0
  170. package/dist/es/layout/src/components/header/perferences/block/layout/Breadcrumb.d.ts +24 -0
  171. package/dist/es/layout/src/components/header/perferences/block/layout/Content.d.ts +9 -0
  172. package/dist/es/layout/src/components/header/perferences/block/layout/Copyright.d.ts +27 -0
  173. package/dist/es/layout/src/components/header/perferences/block/layout/Footer.d.ts +12 -0
  174. package/dist/es/layout/src/components/header/perferences/block/layout/Header.d.ts +19 -0
  175. package/dist/es/layout/src/components/header/perferences/block/layout/Layout.d.ts +10 -0
  176. package/dist/es/layout/src/components/header/perferences/block/layout/Navigation.d.ts +19 -0
  177. package/dist/es/layout/src/components/header/perferences/block/layout/Sidebar.d.ts +35 -0
  178. package/dist/es/layout/src/components/header/perferences/block/layout/Tabbar.d.ts +39 -0
  179. package/dist/es/layout/src/components/header/perferences/block/layout/Widget.d.ts +33 -0
  180. package/dist/es/layout/src/components/header/perferences/block/shortcut-keys/Global.d.ts +18 -0
  181. package/dist/es/layout/src/components/header/perferences/block/theme/BuiltinTheme.d.ts +16 -0
  182. package/dist/es/layout/src/components/header/perferences/block/theme/ColorMode.d.ts +12 -0
  183. package/dist/es/layout/src/components/header/perferences/block/theme/Radius.d.ts +9 -0
  184. package/dist/es/layout/src/components/header/perferences/block/theme/Theme.d.ts +15 -0
  185. package/dist/es/layout/src/components/header/perferences/icons/content-compact.d.ts +2 -0
  186. package/dist/es/layout/src/components/header/perferences/icons/full-content.d.ts +2 -0
  187. package/dist/es/layout/src/components/header/perferences/icons/header-mixed-nav.d.ts +2 -0
  188. package/dist/es/layout/src/components/header/perferences/icons/header-nav.d.ts +2 -0
  189. package/dist/es/layout/src/components/header/perferences/icons/header-sidebar-nav.d.ts +2 -0
  190. package/dist/es/layout/src/components/header/perferences/icons/index.d.ts +10 -0
  191. package/dist/es/layout/src/components/header/perferences/icons/mixed-nav.d.ts +2 -0
  192. package/dist/es/layout/src/components/header/perferences/icons/sidebar-mixed-nav.d.ts +2 -0
  193. package/dist/es/layout/src/components/header/perferences/icons/sidebar-nav.d.ts +2 -0
  194. package/dist/es/layout/src/components/header/perferences/preferences-button.d.ts +6 -0
  195. package/dist/es/layout/src/components/header/perferences/preferences-drawer.d.ts +223 -0
  196. package/dist/es/layout/src/components/header/perferences/preferences.d.ts +27 -0
  197. package/dist/es/layout/src/components/lockscreen/Lockscreen.d.ts +2 -0
  198. package/{es/theme/src/components/header/components/lock → dist/es/layout/src/components/lockscreen}/Recharge.d.ts +4 -6
  199. package/dist/es/layout/src/components/lockscreen/lockscreen.store.d.ts +9 -0
  200. package/dist/es/layout/src/components/lockscreen/useBattery.d.ts +16 -0
  201. package/dist/es/layout/src/components/lockscreen/useTime.d.ts +3 -0
  202. package/dist/es/layout/src/components/menu/ExtraMenu.d.ts +11 -0
  203. package/dist/es/layout/src/components/menu/Menu.d.ts +12 -0
  204. package/dist/es/layout/src/components/menu/MixedMenu.d.ts +11 -0
  205. package/dist/es/layout/src/components/menu/SidebarCollapseButton.d.ts +9 -0
  206. package/dist/es/layout/src/components/menu/SidebarFixedButton.d.ts +9 -0
  207. package/dist/es/layout/src/components/menu/basic-menu/BasicMenu.d.ts +37 -0
  208. package/dist/es/layout/src/components/menu/basic-menu/CollapseTransition.d.ts +17 -0
  209. package/dist/es/layout/src/components/menu/basic-menu/HoverCard.d.ts +29 -0
  210. package/dist/es/layout/src/components/menu/basic-menu/Menu.d.ts +5 -0
  211. package/dist/es/layout/src/components/menu/basic-menu/MenuBadge.d.ts +6 -0
  212. package/dist/es/layout/src/components/menu/basic-menu/MenuBadgeDot.d.ts +10 -0
  213. package/dist/es/layout/src/components/menu/basic-menu/MenuItem.d.ts +28 -0
  214. package/dist/es/layout/src/components/menu/basic-menu/NoramalMenu.d.ts +14 -0
  215. package/dist/es/layout/src/components/menu/basic-menu/SubMenu.d.ts +6 -0
  216. package/dist/es/layout/src/components/menu/basic-menu/SubMenuCom.d.ts +25 -0
  217. package/dist/es/layout/src/components/menu/basic-menu/SubMenuContent.d.ts +27 -0
  218. package/dist/es/layout/src/components/menu/basic-menu/index.d.ts +2 -0
  219. package/dist/es/layout/src/components/menu/basic-menu/type.d.ts +127 -0
  220. package/dist/es/layout/src/components/menu/hooks/useMenu.d.ts +9 -0
  221. package/dist/es/layout/src/components/menu/hooks/useMenuScroll.d.ts +9 -0
  222. package/dist/es/layout/src/components/tabbar/Tabbar.d.ts +6 -0
  223. package/dist/es/layout/src/components/tabbar/hooks/useTab.d.ts +25 -0
  224. package/dist/es/layout/src/components/tabbar/hooks/useTabbar.d.ts +15 -0
  225. package/dist/es/layout/src/components/tabbar/hooks/useTabsDrag.d.ts +8 -0
  226. package/dist/es/layout/src/components/tabbar/hooks/useTabsViewScroll.d.ts +11 -0
  227. package/dist/es/layout/src/components/tabbar/tabsView/TabsContent.d.ts +959 -0
  228. package/dist/es/layout/src/components/tabbar/tabsView/ToolScreen.d.ts +9 -0
  229. package/dist/es/layout/src/components/tabbar/tabsView/ToolsMore.d.ts +6 -0
  230. package/dist/es/layout/src/components/tabbar/tabsView/types.d.ts +68 -0
  231. package/dist/es/layout/src/const/constants.d.ts +13 -0
  232. package/dist/es/layout/src/const/preferences.config.d.ts +8 -0
  233. package/dist/es/layout/src/hooks/useContext.d.ts +6 -0
  234. package/dist/es/layout/src/hooks/useDesignTokens.d.ts +1 -0
  235. package/dist/es/layout/src/hooks/useExtraMenu.d.ts +12 -0
  236. package/dist/es/layout/src/hooks/useLayoutStyle.d.ts +36 -0
  237. package/dist/es/layout/src/hooks/useMenu.d.ts +4 -0
  238. package/dist/es/layout/src/hooks/useMixedMenu.d.ts +13 -0
  239. package/dist/es/layout/src/hooks/useNavigation.d.ts +5 -0
  240. package/dist/es/layout/src/hooks/useTheme.d.ts +34 -0
  241. package/dist/es/layout/src/index.d.ts +28 -0
  242. package/dist/es/layout/src/layout.d.ts +71 -0
  243. package/dist/es/layout/src/stores/preferences.store.d.ts +66 -0
  244. package/dist/es/layout/src/stores/useTabbar.store.d.ts +185 -0
  245. package/dist/es/layout/src/types/basic.type.d.ts +5 -0
  246. package/dist/es/layout/src/types/menu.type.d.ts +102 -0
  247. package/dist/es/layout/src/types/perferences.type.d.ts +287 -0
  248. package/dist/es/layout/src/types/route.type.d.ts +109 -0
  249. package/dist/es/layout/src/utils/color.d.ts +19 -0
  250. package/dist/es/layout/src/utils/css.d.ts +14 -0
  251. package/dist/es/layout/src/utils/diff.d.ts +6 -0
  252. package/dist/es/layout/src/utils/dom.d.ts +6 -0
  253. package/dist/es/layout/src/utils/letter.d.ts +20 -0
  254. package/dist/es/layout/src/utils/menu.d.ts +20 -0
  255. package/dist/es/layout/styles/css/animation.css +299 -0
  256. package/dist/es/layout/styles/css/dark.css +232 -0
  257. package/dist/es/layout/styles/css/default.css +174 -0
  258. package/dist/es/layout/styles/css/uncss.css +109 -0
  259. package/dist/es/layout/styles/index.scss +871 -0
  260. package/dist/es/lib/components/drawer/index.d.ts +5 -0
  261. package/dist/es/lib/components/drawer/src/hooks/useDrawer.d.ts +3 -0
  262. package/dist/es/lib/components/drawer/src/types/index.d.ts +208 -0
  263. package/dist/es/lib/components/form/index.d.ts +9 -0
  264. package/dist/es/lib/components/form/src/conponents/componentMap.d.ts +4 -0
  265. package/dist/es/lib/components/form/src/hooks/useForm.d.ts +8 -0
  266. package/dist/es/lib/components/form/src/hooks/useFormActions.d.ts +32 -0
  267. package/dist/es/lib/components/form/src/hooks/useFormEvent.d.ts +29 -0
  268. package/dist/es/lib/components/form/src/hooks/useFormValues.d.ts +13 -0
  269. package/dist/es/lib/components/form/src/types/form.d.ts +355 -0
  270. package/dist/es/lib/components/form/src/types/item.d.ts +3170 -0
  271. package/dist/es/lib/components/form/src/utils/index.d.ts +16 -0
  272. package/dist/es/lib/components/hover-card/index.d.ts +7 -0
  273. package/dist/es/lib/components/icon/index.d.ts +4 -0
  274. package/dist/es/lib/components/icon-picker/index.d.ts +4 -0
  275. package/dist/es/lib/components/icon-picker/src/icon.d.ts +13 -0
  276. package/dist/es/lib/components/iframe/index.d.ts +4 -0
  277. package/dist/es/lib/components/modal/index.d.ts +7 -0
  278. package/dist/es/lib/components/modal/src/hooks/useModal.d.ts +24 -0
  279. package/dist/es/lib/components/modal/src/types/modal.d.ts +246 -0
  280. package/dist/es/lib/components/table/index.d.ts +9 -0
  281. package/dist/es/lib/components/table/src/hooks/useColumns.d.ts +18 -0
  282. package/dist/es/lib/components/table/src/hooks/useDataSource.d.ts +17 -0
  283. package/dist/es/lib/components/table/src/hooks/useLoading.d.ts +7 -0
  284. package/dist/es/lib/components/table/src/hooks/usePagination.d.ts +9 -0
  285. package/dist/es/lib/components/table/src/hooks/useRowSelection.d.ts +7 -0
  286. package/dist/es/lib/components/table/src/hooks/useTable.d.ts +3 -0
  287. package/dist/es/lib/components/table/src/hooks/useTableIns.d.ts +12 -0
  288. package/dist/es/lib/components/table/src/types/pagination.d.ts +100 -0
  289. package/dist/es/lib/components/table/src/types/table.d.ts +632 -0
  290. package/dist/es/lib/components/tree/index.d.ts +7 -0
  291. package/dist/es/lib/components/tree/src/enums/index.d.ts +6 -0
  292. package/dist/es/lib/components/tree/src/hooks/useContextMenu.d.ts +11 -0
  293. package/dist/es/lib/components/tree/src/hooks/useTree.d.ts +2 -0
  294. package/dist/es/lib/components/tree/src/types/index.d.ts +758 -0
  295. package/dist/es/lib/components/upload/index.d.ts +4 -0
  296. package/dist/es/lib/components/upload/src/hooks/useFile.d.ts +14 -0
  297. package/dist/es/lib/components/upload/src/types/index.d.ts +88 -0
  298. package/dist/es/lib/components/upload/src/utils/index.d.ts +15 -0
  299. package/dist/es/lib/components/virtual-list/index.d.ts +4 -0
  300. package/dist/es/lib/components/virtual-list/src/types/index.d.ts +26 -0
  301. package/dist/es/lib/components/vxe-table/index.d.ts +7 -0
  302. package/dist/es/lib/components/vxe-table/src/helper/index.d.ts +7 -0
  303. package/dist/es/lib/components/vxe-table/src/hooks/useColumns.d.ts +5 -0
  304. package/dist/es/lib/components/vxe-table/src/hooks/usePagination.d.ts +7 -0
  305. package/dist/es/lib/components/vxe-table/src/hooks/useTableIns.d.ts +15 -0
  306. package/dist/es/lib/components/vxe-table/src/hooks/useVxeTable.d.ts +2 -0
  307. package/dist/es/lib/components/vxe-table/src/types/index.d.ts +181 -0
  308. package/dist/es/lib/components/vxe-table/src/types/pagination.d.ts +100 -0
  309. package/dist/es/lib/components/vxe-table/src/types/table.d.ts +25 -0
  310. package/dist/es/lib/components/vxe-table/src/utils/index.d.ts +5 -0
  311. package/dist/es/lib/hooks/useCurd.d.ts +4 -0
  312. package/dist/es/lib/hooks/useDownload.d.ts +9 -0
  313. package/dist/es/lib/hooks/useSource.d.ts +10 -0
  314. package/dist/es/lib/index.d.ts +10 -0
  315. package/dist/es/lib/init/config.d.ts +6 -0
  316. package/dist/es/lib/init/index.d.ts +11 -0
  317. package/dist/es/lib/init/types/appConf.d.ts +331 -0
  318. package/dist/es/lib/init/vxeTable.d.ts +9 -0
  319. package/dist/es/lib/layout/index.d.ts +11 -0
  320. package/dist/es/lib/layout/src/components/header/perferences/icons/index.d.ts +10 -0
  321. package/dist/es/lib/layout/src/components/lockscreen/lockscreen.store.d.ts +9 -0
  322. package/{es/theme/src/components/header/components/lock → dist/es/lib/layout/src/components/lockscreen}/useBattery.d.ts +5 -0
  323. package/dist/es/lib/layout/src/components/lockscreen/useTime.d.ts +3 -0
  324. package/dist/es/lib/layout/src/components/menu/basic-menu/index.d.ts +2 -0
  325. package/dist/es/lib/layout/src/components/menu/basic-menu/type.d.ts +127 -0
  326. package/dist/es/lib/layout/src/components/menu/hooks/useMenu.d.ts +9 -0
  327. package/dist/es/lib/layout/src/components/menu/hooks/useMenuScroll.d.ts +9 -0
  328. package/dist/es/lib/layout/src/components/tabbar/hooks/useTab.d.ts +25 -0
  329. package/dist/es/lib/layout/src/components/tabbar/hooks/useTabbar.d.ts +15 -0
  330. package/dist/es/lib/layout/src/components/tabbar/hooks/useTabsDrag.d.ts +8 -0
  331. package/dist/es/lib/layout/src/components/tabbar/hooks/useTabsViewScroll.d.ts +11 -0
  332. package/dist/es/lib/layout/src/components/tabbar/tabsView/types.d.ts +68 -0
  333. package/dist/es/lib/layout/src/const/constants.d.ts +13 -0
  334. package/dist/es/lib/layout/src/const/preferences.config.d.ts +8 -0
  335. package/dist/es/lib/layout/src/hooks/useContext.d.ts +6 -0
  336. package/dist/es/lib/layout/src/hooks/useDesignTokens.d.ts +1 -0
  337. package/dist/es/lib/layout/src/hooks/useExtraMenu.d.ts +12 -0
  338. package/dist/es/lib/layout/src/hooks/useLayoutStyle.d.ts +36 -0
  339. package/dist/es/lib/layout/src/hooks/useMenu.d.ts +4 -0
  340. package/dist/es/lib/layout/src/hooks/useMixedMenu.d.ts +13 -0
  341. package/dist/es/lib/layout/src/hooks/useNavigation.d.ts +5 -0
  342. package/dist/es/lib/layout/src/hooks/useTheme.d.ts +34 -0
  343. package/dist/es/lib/layout/src/stores/preferences.store.d.ts +66 -0
  344. package/dist/es/lib/layout/src/stores/useTabbar.store.d.ts +185 -0
  345. package/dist/es/lib/layout/src/types/basic.type.d.ts +5 -0
  346. package/dist/es/lib/layout/src/types/menu.type.d.ts +102 -0
  347. package/dist/es/lib/layout/src/types/perferences.type.d.ts +287 -0
  348. package/dist/es/lib/layout/src/types/route.type.d.ts +109 -0
  349. package/dist/es/lib/layout/src/utils/color.d.ts +19 -0
  350. package/dist/es/lib/layout/src/utils/css.d.ts +14 -0
  351. package/dist/es/lib/layout/src/utils/diff.d.ts +6 -0
  352. package/dist/es/lib/layout/src/utils/dom.d.ts +6 -0
  353. package/dist/es/lib/layout/src/utils/letter.d.ts +20 -0
  354. package/dist/es/lib/layout/src/utils/menu.d.ts +20 -0
  355. package/dist/es/lib/router/goPage.d.ts +1 -0
  356. package/dist/es/lib/router/guard.d.ts +3 -0
  357. package/dist/es/lib/router/index.d.ts +8 -0
  358. package/dist/es/lib/stores/access.store.d.ts +59 -0
  359. package/dist/es/lib/stores/app.store.d.ts +11 -0
  360. package/dist/es/lib/stores/auth.store.d.ts +35 -0
  361. package/dist/es/lib/stores/user.store.d.ts +19 -0
  362. package/dist/es/lib/types/curd.type.d.ts +55 -0
  363. package/dist/es/lib/types/source.type.d.ts +177 -0
  364. package/dist/es/lib/types/user.type.d.ts +32 -0
  365. package/dist/es/lib/utils/api.d.ts +2 -0
  366. package/dist/es/lib/utils/index.d.ts +4 -0
  367. package/dist/es/lib/utils/namespace.d.ts +17 -0
  368. package/dist/es/lib/utils/progress.d.ts +11 -0
  369. package/dist/es/lib/utils/useAuth.d.ts +3 -0
  370. package/dist/es/lib/utils/withInstall.d.ts +4 -0
  371. package/dist/es/mock/userInfo.d.ts +13 -0
  372. package/dist/es/mock/userInfo.mjs +1 -0
  373. package/dist/es/pages/iframe.d.ts +4 -0
  374. package/dist/es/pages/iframe.vue.mjs +1 -0
  375. package/dist/es/pages/iframe.vue2.mjs +1 -0
  376. package/dist/es/pages/init-project.d.ts +2 -0
  377. package/dist/es/pages/init-project.vue.mjs +1 -0
  378. package/dist/es/pages/init-project.vue2.mjs +1 -0
  379. package/dist/es/pages/not-found.d.ts +2 -0
  380. package/dist/es/pages/not-found.vue.mjs +1 -0
  381. package/dist/es/pages/not-found.vue2.mjs +1 -0
  382. package/dist/es/router/goPage.d.ts +1 -0
  383. package/dist/es/router/goPage.mjs +1 -0
  384. package/dist/es/router/guard.d.ts +3 -0
  385. package/dist/es/router/guard.mjs +1 -0
  386. package/dist/es/router/index.d.ts +8 -0
  387. package/dist/es/router/index.mjs +2 -0
  388. package/dist/es/src/index.d.ts +34 -0
  389. package/dist/es/src/types/index.d.ts +6 -0
  390. package/dist/es/stores/access.store.d.ts +59 -0
  391. package/dist/es/stores/access.store.mjs +1 -0
  392. package/dist/es/stores/app.store.d.ts +11 -0
  393. package/dist/es/stores/app.store.mjs +1 -0
  394. package/dist/es/stores/auth.store.d.ts +35 -0
  395. package/dist/es/stores/auth.store.mjs +1 -0
  396. package/dist/es/stores/user.store.d.ts +19 -0
  397. package/dist/es/stores/user.store.mjs +1 -0
  398. package/dist/es/types/curd.type.d.ts +55 -0
  399. package/dist/es/types/source.type.d.ts +177 -0
  400. package/dist/es/types/user.type.d.ts +32 -0
  401. package/dist/es/utils/api.d.ts +2 -0
  402. package/dist/es/utils/index.d.ts +4 -0
  403. package/dist/es/utils/namespace.d.ts +17 -0
  404. package/dist/es/utils/namespace.mjs +1 -0
  405. package/dist/es/utils/progress.d.ts +11 -0
  406. package/dist/es/utils/progress.mjs +2 -0
  407. package/dist/es/utils/useAuth.d.ts +3 -0
  408. package/dist/es/utils/withInstall.d.ts +4 -0
  409. package/dist/es/utils/withInstall.mjs +1 -0
  410. package/dist/es/vite.config.d.ts +30 -0
  411. package/index.d.ts +83 -13
  412. package/index.ts +16 -0
  413. package/package.json +91 -65
  414. package/README.md +0 -18
  415. package/es/assets/data/icons/actions.d.ts +0 -1
  416. package/es/assets/data/icons/actions.ts +0 -423
  417. package/es/assets/data/icons/code.d.ts +0 -1
  418. package/es/assets/data/icons/code.ts +0 -10
  419. package/es/assets/data/icons/commuticate.d.ts +0 -1
  420. package/es/assets/data/icons/commuticate.ts +0 -182
  421. package/es/assets/data/icons/currency.d.ts +0 -1
  422. package/es/assets/data/icons/currency.ts +0 -44
  423. package/es/assets/data/icons/devices.d.ts +0 -1
  424. package/es/assets/data/icons/devices.ts +0 -126
  425. package/es/assets/data/icons/edit.d.ts +0 -1
  426. package/es/assets/data/icons/edit.ts +0 -163
  427. package/es/assets/data/icons/file.d.ts +0 -1
  428. package/es/assets/data/icons/file.ts +0 -99
  429. package/es/assets/data/icons/math.d.ts +0 -1
  430. package/es/assets/data/icons/math.ts +0 -53
  431. package/es/assets/data/icons/message.d.ts +0 -1
  432. package/es/assets/data/icons/message.ts +0 -68
  433. package/es/assets/data/icons/navigate.d.ts +0 -1
  434. package/es/assets/data/icons/navigate.ts +0 -181
  435. package/es/assets/data/icons/other.d.ts +0 -1
  436. package/es/assets/data/icons/other.ts +0 -324
  437. package/es/assets/data/index.d.ts +0 -4
  438. package/es/assets/data/index.ts +0 -58
  439. package/es/assets/icons/iconfont.css +0 -7266
  440. package/es/assets/icons/iconfont.eot +0 -0
  441. package/es/assets/icons/iconfont.svg +0 -5445
  442. package/es/assets/icons/iconfont.ttf +0 -0
  443. package/es/assets/icons/iconfont.woff +0 -0
  444. package/es/assets/icons/iconfont.woff2 +0 -0
  445. package/es/assets/imgs/header/avatar.png +0 -0
  446. package/es/assets/imgs/logo/logo.png +0 -0
  447. package/es/assets/imgs/table/empty.png +0 -0
  448. package/es/assets/imgs/tree/forder-open.svg +0 -1
  449. package/es/assets/imgs/tree/forder.svg +0 -1
  450. package/es/assets/locales/en.d.ts +0 -103
  451. package/es/assets/locales/en.ts +0 -103
  452. package/es/assets/locales/index.d.ts +0 -2
  453. package/es/assets/locales/index.ts +0 -5
  454. package/es/assets/locales/zh.d.ts +0 -104
  455. package/es/assets/locales/zh.ts +0 -104
  456. package/es/components/container/index.d.ts +0 -94
  457. package/es/components/container/index.js +0 -290
  458. package/es/components/container/index.less +0 -64
  459. package/es/components/container/src/components/bar.d.ts +0 -14
  460. package/es/components/container/src/components/scroll-bar.d.ts +0 -70
  461. package/es/components/container/src/hooks/scroll.d.ts +0 -10
  462. package/es/components/container/src/scroll-container.d.ts +0 -76
  463. package/es/components/container/src/slot-container.d.ts +0 -20
  464. package/es/components/container/src/types/scroll.type.d.ts +0 -22
  465. package/es/components/container/src/utils/scroll.d.ts +0 -5
  466. package/es/components/curd/index.d.ts +0 -2
  467. package/es/components/curd/index.js +0 -216
  468. package/es/components/curd/src/components/Curd.d.ts +0 -384
  469. package/es/components/curd/src/hooks/useCurd.d.ts +0 -110
  470. package/es/components/curd/src/props.d.ts +0 -188
  471. package/es/components/curd/src/types/curd.type.d.ts +0 -13
  472. package/es/components/drawer/index.d.ts +0 -7881
  473. package/es/components/drawer/index.js +0 -397
  474. package/es/components/drawer/index.less +0 -16
  475. package/es/components/drawer/src/components/DrawerFooter.d.ts +0 -56
  476. package/es/components/drawer/src/components/DrawerHeader.d.ts +0 -11
  477. package/es/components/drawer/src/hooks/useDrawer.d.ts +0 -3
  478. package/es/components/drawer/src/index.d.ts +0 -7881
  479. package/es/components/drawer/src/props.d.ts +0 -64
  480. package/es/components/drawer/src/types/index.type.d.ts +0 -50
  481. package/es/components/form/index.d.ts +0 -7
  482. package/es/components/form/index.js +0 -1600
  483. package/es/components/form/index.less +0 -361
  484. package/es/components/form/src/components/FormButtons.d.ts +0 -3157
  485. package/es/components/form/src/components/FormItem.d.ts +0 -158
  486. package/es/components/form/src/components/componentMap.d.ts +0 -4
  487. package/es/components/form/src/components/formIcon.d.ts +0 -14
  488. package/es/components/form/src/components/formInputUseDialog.d.ts +0 -17
  489. package/es/components/form/src/components/index.d.ts +0 -4
  490. package/es/components/form/src/components/radioButton.d.ts +0 -34
  491. package/es/components/form/src/enums/index.d.ts +0 -7
  492. package/es/components/form/src/hooks/useForm.d.ts +0 -6
  493. package/es/components/form/src/hooks/useFormActions.d.ts +0 -12
  494. package/es/components/form/src/hooks/useFormEvent.d.ts +0 -25
  495. package/es/components/form/src/hooks/useFormValue.d.ts +0 -3
  496. package/es/components/form/src/hooks/useFormValues.d.ts +0 -11
  497. package/es/components/form/src/hooks/useLabelWidth.d.ts +0 -6
  498. package/es/components/form/src/props.d.ts +0 -127
  499. package/es/components/form/src/types/actions.type.d.ts +0 -15
  500. package/es/components/form/src/types/form.type.d.ts +0 -80
  501. package/es/components/form/src/types/items.type.d.ts +0 -417
  502. package/es/components/icons/index.d.ts +0 -497
  503. package/es/components/icons/index.js +0 -1969
  504. package/es/components/icons/index.less +0 -47
  505. package/es/components/icons/src/pick-icon.d.ts +0 -455
  506. package/es/components/icons/src/svg-icon.d.ts +0 -44
  507. package/es/components/iframe/index.d.ts +0 -2
  508. package/es/components/iframe/index.js +0 -72
  509. package/es/components/iframe/index.less +0 -29
  510. package/es/components/iframe/src/index.d.ts +0 -38
  511. package/es/components/modal/index.d.ts +0 -4
  512. package/es/components/modal/index.js +0 -646
  513. package/es/components/modal/index.less +0 -82
  514. package/es/components/modal/src/components/CloseIcon.d.ts +0 -40
  515. package/es/components/modal/src/components/Modal.d.ts +0 -108
  516. package/es/components/modal/src/components/ModalFooter.d.ts +0 -62
  517. package/es/components/modal/src/components/ModalWrap.d.ts +0 -79
  518. package/es/components/modal/src/hooks/useDrag.d.ts +0 -7
  519. package/es/components/modal/src/hooks/useFullScreen.d.ts +0 -6
  520. package/es/components/modal/src/hooks/useModal.d.ts +0 -5
  521. package/es/components/modal/src/index.d.ts +0 -543
  522. package/es/components/modal/src/props.d.ts +0 -101
  523. package/es/components/modal/src/types/modal.type.d.ts +0 -17
  524. package/es/components/source/hooks/useDownload.d.ts +0 -8
  525. package/es/components/source/hooks/useSource.d.ts +0 -57
  526. package/es/components/source/index.d.ts +0 -2
  527. package/es/components/source/index.js +0 -419
  528. package/es/components/source/types/source.type.d.ts +0 -35
  529. package/es/components/source/utils/index.d.ts +0 -8
  530. package/es/components/table/index.d.ts +0 -3
  531. package/es/components/table/index.js +0 -2445
  532. package/es/components/table/index.less +0 -280
  533. package/es/components/table/src/components/TableAction.d.ts +0 -83
  534. package/es/components/table/src/components/TableRender.d.ts +0 -17
  535. package/es/components/table/src/components/editTable/CellComponent.d.ts +0 -22
  536. package/es/components/table/src/components/editTable/EditTableCell.d.ts +0 -94
  537. package/es/components/table/src/components/editTable/componentMap.d.ts +0 -4
  538. package/es/components/table/src/components/editTable/index.d.ts +0 -9
  539. package/es/components/table/src/components/editTable/props.d.ts +0 -27
  540. package/es/components/table/src/components/tableSetting/Column.d.ts +0 -69
  541. package/es/components/table/src/components/tableSetting/DownloadCtrl.d.ts +0 -22
  542. package/es/components/table/src/components/tableSetting/Fullscreen.d.ts +0 -22
  543. package/es/components/table/src/enums/table.enum.d.ts +0 -5
  544. package/es/components/table/src/hooks/useColumns.d.ts +0 -14
  545. package/es/components/table/src/hooks/useCustomRow.d.ts +0 -20
  546. package/es/components/table/src/hooks/useDataSource.d.ts +0 -15
  547. package/es/components/table/src/hooks/useHeader.d.ts +0 -8
  548. package/es/components/table/src/hooks/useHeaderCode.d.ts +0 -3
  549. package/es/components/table/src/hooks/useLoading.d.ts +0 -6
  550. package/es/components/table/src/hooks/usePagination.d.ts +0 -7
  551. package/es/components/table/src/hooks/useRow.d.ts +0 -5
  552. package/es/components/table/src/hooks/useRowSelection.d.ts +0 -12
  553. package/es/components/table/src/hooks/useTable.d.ts +0 -9
  554. package/es/components/table/src/hooks/useTableInstance.d.ts +0 -16
  555. package/es/components/table/src/hooks/useTableScroll.d.ts +0 -13
  556. package/es/components/table/src/index.d.ts +0 -625
  557. package/es/components/table/src/props.d.ts +0 -180
  558. package/es/components/table/src/types/actions.type.d.ts +0 -21
  559. package/es/components/table/src/types/header.type.d.ts +0 -23
  560. package/es/components/table/src/types/table.type.d.ts +0 -104
  561. package/es/components/tree/index.d.ts +0 -2
  562. package/es/components/tree/index.js +0 -1203
  563. package/es/components/tree/index.less +0 -200
  564. package/es/components/tree/src/basicProps.d.ts +0 -190
  565. package/es/components/tree/src/components/ContextMenu.d.ts +0 -70
  566. package/es/components/tree/src/components/TreeHeader.d.ts +0 -98
  567. package/es/components/tree/src/hooks/useContextMenu.d.ts +0 -2
  568. package/es/components/tree/src/hooks/useTree.d.ts +0 -15
  569. package/es/components/tree/src/index.d.ts +0 -6617
  570. package/es/components/tree/src/type/menu.d.ts +0 -36
  571. package/es/components/tree/src/type/tree.d.ts +0 -50
  572. package/es/components/tree/src/utils/tree.d.ts +0 -7
  573. package/es/components/upload/index.d.ts +0 -4
  574. package/es/components/upload/index.js +0 -655
  575. package/es/components/upload/index.less +0 -83
  576. package/es/components/upload/src/basicProps.d.ts +0 -91
  577. package/es/components/upload/src/components/PdfView.d.ts +0 -9
  578. package/es/components/upload/src/components/WordView.d.ts +0 -7
  579. package/es/components/upload/src/hooks/useFile.d.ts +0 -17
  580. package/es/components/upload/src/index.d.ts +0 -258
  581. package/es/components/upload/src/type/file.d.ts +0 -17
  582. package/es/components/upload/src/utils/fileSize.d.ts +0 -1
  583. package/es/components/upload/src/utils/upload.d.ts +0 -2
  584. package/es/directives/icon.d.ts +0 -2
  585. package/es/directives/index.d.ts +0 -7
  586. package/es/directives/index.js +0 -2015
  587. package/es/directives/permission.d.ts +0 -2
  588. package/es/global.d.ts +0 -7
  589. package/es/index.d.ts +0 -1
  590. package/es/index.js +0 -4
  591. package/es/theme/index.d.ts +0 -12
  592. package/es/theme/index.js +0 -4024
  593. package/es/theme/index.less +0 -1003
  594. package/es/theme/src/components/content/index.d.ts +0 -31
  595. package/es/theme/src/components/feature/back-top.d.ts +0 -5
  596. package/es/theme/src/components/feature/index.d.ts +0 -7
  597. package/es/theme/src/components/footer/index.d.ts +0 -31
  598. package/es/theme/src/components/header/components/bread-crumb.d.ts +0 -6
  599. package/es/theme/src/components/header/components/fullscreen.d.ts +0 -5
  600. package/es/theme/src/components/header/components/index.d.ts +0 -11
  601. package/es/theme/src/components/header/components/lang-picker.d.ts +0 -23
  602. package/es/theme/src/components/header/components/lock/Lockscreen.d.ts +0 -85
  603. package/es/theme/src/components/header/components/lock/index.d.ts +0 -2
  604. package/es/theme/src/components/header/components/lock/useTime.d.ts +0 -7
  605. package/es/theme/src/components/header/components/logo.d.ts +0 -55
  606. package/es/theme/src/components/header/components/menu-filter.d.ts +0 -22
  607. package/es/theme/src/components/header/components/notify.d.ts +0 -22
  608. package/es/theme/src/components/header/components/setting-theme.d.ts +0 -223
  609. package/es/theme/src/components/header/components/size.d.ts +0 -21
  610. package/es/theme/src/components/header/components/theme-drawer/feature.d.ts +0 -138
  611. package/es/theme/src/components/header/components/theme-drawer/index.d.ts +0 -3
  612. package/es/theme/src/components/header/components/theme-drawer/menu-type.d.ts +0 -16
  613. package/es/theme/src/components/header/components/theme-drawer/select.d.ts +0 -58
  614. package/es/theme/src/components/header/components/theme-drawer/switch.d.ts +0 -49
  615. package/es/theme/src/components/header/components/trigger.d.ts +0 -10
  616. package/es/theme/src/components/header/components/user-info.d.ts +0 -44
  617. package/es/theme/src/components/header/helper/change-theme.d.ts +0 -13
  618. package/es/theme/src/components/header/helper/menu-tree.d.ts +0 -4
  619. package/es/theme/src/components/header/index.d.ts +0 -551
  620. package/es/theme/src/components/header/multiple-header.d.ts +0 -660
  621. package/es/theme/src/components/sider/components/basic-menu/basic-menu-item.d.ts +0 -62
  622. package/es/theme/src/components/sider/components/basic-menu/basic-menu.d.ts +0 -207
  623. package/es/theme/src/components/sider/components/basic-menu/basic-sub-menu-item.d.ts +0 -127
  624. package/es/theme/src/components/sider/components/basic-menu/menu-item-content.d.ts +0 -26
  625. package/es/theme/src/components/sider/components/drag-bar.d.ts +0 -14
  626. package/es/theme/src/components/sider/components/layout-menu.d.ts +0 -22
  627. package/es/theme/src/components/sider/components/props.d.ts +0 -69
  628. package/es/theme/src/components/sider/components/sider-trigger.d.ts +0 -17
  629. package/es/theme/src/components/sider/helper/sider.d.ts +0 -12
  630. package/es/theme/src/components/sider/helper/split-menu.d.ts +0 -10
  631. package/es/theme/src/components/sider/index.d.ts +0 -235
  632. package/es/theme/src/components/sider/mix-sider.d.ts +0 -167
  633. package/es/theme/src/components/tabs/components/TabContent.d.ts +0 -36
  634. package/es/theme/src/components/tabs/components/TabRedo.d.ts +0 -23
  635. package/es/theme/src/components/tabs/components/index.d.ts +0 -3
  636. package/es/theme/src/components/tabs/hooks/useMultifyTabs.d.ts +0 -7
  637. package/es/theme/src/components/tabs/hooks/useTabDropdown.d.ts +0 -8
  638. package/es/theme/src/components/tabs/hooks/useTabs.d.ts +0 -10
  639. package/es/theme/src/components/tabs/index.d.ts +0 -86
  640. package/es/theme/src/components/tabs/types/tabs.type.d.ts +0 -7
  641. package/es/theme/src/enums/index.d.ts +0 -1
  642. package/es/theme/src/enums/theme.enum.d.ts +0 -34
  643. package/es/theme/src/hooks/index.d.ts +0 -6
  644. package/es/theme/src/hooks/useDragLine.d.ts +0 -2
  645. package/es/theme/src/hooks/useHeader.d.ts +0 -26
  646. package/es/theme/src/hooks/useMenu.d.ts +0 -29
  647. package/es/theme/src/hooks/useMultifyTab.d.ts +0 -8
  648. package/es/theme/src/hooks/useOpenKeys.d.ts +0 -7
  649. package/es/theme/src/hooks/useTheme.d.ts +0 -9
  650. package/es/theme/src/index.d.ts +0 -1630
  651. package/es/theme/src/setting/theme.setting.d.ts +0 -2
  652. package/es/theme/src/stores/index.d.ts +0 -3
  653. package/es/theme/src/stores/lockscreen.store.d.ts +0 -7
  654. package/es/theme/src/stores/routeReuse.store.d.ts +0 -25
  655. package/es/theme/src/stores/theme.store.d.ts +0 -19
  656. package/es/theme/src/types/index.d.ts +0 -3
  657. package/es/theme/src/types/menu.type.d.ts +0 -15
  658. package/es/theme/src/types/theme.type.d.ts +0 -62
  659. package/es/theme/transition.less +0 -105
  660. package/es/utils/withInstall.d.ts +0 -4
  661. package/index.js +0 -62
  662. package/manualContentPath.js +0 -138
  663. package/tailwind.config.cjs +0 -11
  664. package/tsconfig.json +0 -42
  665. package/tsconfig.node.json +0 -9
  666. package/vite.config.ts +0 -68
  667. /package/{es → dist/es}/components/tree/src/enums/index.d.ts +0 -0
package/es/theme/index.js DELETED
@@ -1,4024 +0,0 @@
1
- import { BackTop, MenuItem, MenuDivider, Menu, Dropdown, TabPane, Tabs, Breadcrumb, Empty, InputSearch, Popover, Avatar, InputPassword, Button, Modal, Tooltip, Select, Switch, Divider, Drawer, SubMenu, LayoutHeader, LayoutSider, 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, computed, onMounted, nextTick, defineComponent, openBlock, createBlock, createCommentVNode, createElementBlock, createElementVNode, reactive, withCtx, createVNode, Fragment, renderList, normalizeClass, toDisplayString, ref, watch, createSlots, getCurrentInstance, inject, onUnmounted, h, provide, onBeforeUnmount, normalizeStyle, resolveDynamicComponent, renderSlot, mergeProps, withDirectives, vShow, watchEffect, resolveDirective, withKeys, createTextVNode, normalizeProps, guardReactiveProps, resolveComponent, toRef, withModifiers, Transition, KeepAlive, toRefs } from "vue";
5
- import { useRouter, RouterView } from "vue-router";
6
- import { DtCache, CacheKey, deepMerge, Pages, useGo, useRedo, Language, isObject, useTimeoutFn, useI18n, menuList2Map, isNullAndUnDef, off, on, getParentSlots, isBoolean, localeList, changeLocale, isFunction, copyText, isUrl, openWindow, useApp, withInstall as withInstall$1 } from "@dt-frames/core";
7
- import { defineStore } from "pinia";
8
- import { cloneDeep, 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/tabs/style";
12
- import "ant-design-vue/es/dropdown/style";
13
- import "ant-design-vue/es/menu/style";
14
- import "ant-design-vue/es/breadcrumb/style";
15
- import "ant-design-vue/es/popover/style";
16
- import "ant-design-vue/es/input/style";
17
- import "ant-design-vue/es/empty/style";
18
- import { DtSlotContainer as DtSlotContainer$1 } from "../components/container";
19
- import { Popover as Popover$1, Modal as Modal$1, LayoutFooter } from "ant-design-vue";
20
- import "ant-design-vue/es/modal/style";
21
- import "ant-design-vue/es/button/style";
22
- import "ant-design-vue/es/avatar/style";
23
- import "ant-design-vue/es/drawer/style";
24
- import "ant-design-vue/es/divider/style";
25
- import "ant-design-vue/es/tooltip/style";
26
- import "ant-design-vue/es/select/style";
27
- import "ant-design-vue/es/switch/style";
28
- import dayjs from "dayjs";
29
- import zhCN from "ant-design-vue/es/locale/zh_CN";
30
- import en from "ant-design-vue/es/locale/en_US";
31
- import "dayjs/locale/zh-cn";
32
- import "dayjs/locale/es-us";
33
- var Theme = /* @__PURE__ */ ((Theme2) => {
34
- Theme2["DARK"] = "dark";
35
- Theme2["LIGHT"] = "light";
36
- return Theme2;
37
- })(Theme || {});
38
- var MenuType = /* @__PURE__ */ ((MenuType2) => {
39
- MenuType2["SIDE"] = "sidebar";
40
- MenuType2["TOP_MENU"] = "top-menu";
41
- MenuType2["MIX"] = "mix";
42
- MenuType2["MIX_SIDEBAR"] = "mix-sidebar";
43
- return MenuType2;
44
- })(MenuType || {});
45
- var MenuMode = /* @__PURE__ */ ((MenuMode2) => {
46
- MenuMode2["INLINE"] = "inline";
47
- MenuMode2["HORIZONTAL"] = "horizontal";
48
- MenuMode2["VERTICAL"] = "vertical";
49
- return MenuMode2;
50
- })(MenuMode || {});
51
- var ContentMode = /* @__PURE__ */ ((ContentMode2) => {
52
- ContentMode2["FULL"] = "full";
53
- ContentMode2["FIXED"] = "fixed";
54
- return ContentMode2;
55
- })(ContentMode || {});
56
- var MenuSplitTye = /* @__PURE__ */ ((MenuSplitTye2) => {
57
- MenuSplitTye2[MenuSplitTye2["NONE"] = 0] = "NONE";
58
- MenuSplitTye2[MenuSplitTye2["TOP"] = 1] = "TOP";
59
- MenuSplitTye2[MenuSplitTye2["LEFT"] = 2] = "LEFT";
60
- return MenuSplitTye2;
61
- })(MenuSplitTye || {});
62
- var UiSize = /* @__PURE__ */ ((UiSize2) => {
63
- UiSize2["LARGE"] = "large";
64
- UiSize2["MIDDLE"] = "middle";
65
- UiSize2["SMALL"] = "small";
66
- return UiSize2;
67
- })(UiSize || {});
68
- const defaultThemeConf = {
69
- content: {
70
- contentMode: ContentMode.FULL
71
- },
72
- headOptions: {
73
- fixed: true,
74
- theme: Theme.LIGHT,
75
- showLogo: true,
76
- showBackToTop: true,
77
- useLockPage: true,
78
- size: UiSize.SMALL,
79
- showSize: true,
80
- showBreadCrumb: true,
81
- showFullScreen: true,
82
- showSearch: true,
83
- showNotice: true,
84
- showLocaleSwitch: true,
85
- showSettingTheme: true,
86
- showLoginOut: true
87
- },
88
- menuOptions: {
89
- fixed: true,
90
- theme: Theme.DARK,
91
- collapsed: false,
92
- collapsedShowTitle: false,
93
- canDrag: true,
94
- show: true,
95
- hidden: false,
96
- split: false,
97
- menuWidth: 240,
98
- trigger: true,
99
- type: MenuType.SIDE,
100
- mode: MenuMode.INLINE,
101
- mixSideTrigger: "hover"
102
- },
103
- footerOptions: {
104
- show: false,
105
- height: 48,
106
- title: "Copyright(C) 2021 by www.ithinkdt.com. All rights reserved.",
107
- subTitle: "Privacy Statement"
108
- },
109
- routeReuse: {
110
- show: true,
111
- cache: false,
112
- canDrag: true,
113
- showQuick: true,
114
- showRedo: true,
115
- showFold: true
116
- }
117
- };
118
- const useThemeStore = defineStore({
119
- id: "dt-theme",
120
- state: () => ({
121
- themeConf: DtCache.getLocal(CacheKey.THEME) ?? cloneDeep(defaultThemeConf),
122
- pageLoading: false,
123
- mixSiderHasSubMenu: false
124
- }),
125
- getters: {
126
- getThemeConf() {
127
- return this.themeConf;
128
- },
129
- getHeaderConf() {
130
- return this.themeConf.headOptions;
131
- },
132
- getMenuConf() {
133
- return this.themeConf.menuOptions;
134
- },
135
- getFooterConf() {
136
- return this.themeConf.footerOptions;
137
- },
138
- getRouteReuseConf() {
139
- return this.themeConf.routeReuse;
140
- },
141
- getPageLoading() {
142
- return this.pageLoading;
143
- },
144
- getMixSiderIsHasMenu() {
145
- return this.mixSiderHasSubMenu;
146
- }
147
- },
148
- actions: {
149
- setThemeConf(options = {}) {
150
- let newThemeConf = deepMerge(this.themeConf, options);
151
- this.themeConf = deepMerge(defaultThemeConf, newThemeConf);
152
- DtCache.setLocal(CacheKey.THEME, this.themeConf);
153
- },
154
- setMixSiderIsHasMenu(val) {
155
- this.mixSiderHasSubMenu = val;
156
- },
157
- resetState() {
158
- DtCache.removeLocal(CacheKey.THEME);
159
- this.themeConf = cloneDeep(defaultThemeConf);
160
- }
161
- }
162
- });
163
- function handleGotoPage(router) {
164
- const go = useGo(router);
165
- go(unref(router.currentRoute).path, true);
166
- }
167
- const useRouteReuseStore = defineStore({
168
- id: "route-reuse",
169
- state: () => ({
170
- cacheTabList: /* @__PURE__ */ new Set(),
171
- tabList: DtCache.getLocal(CacheKey.ROUTE_REUSE) || [],
172
- lastDragEndIndex: 0
173
- }),
174
- getters: {
175
- getTabList() {
176
- return this.tabList;
177
- },
178
- getCachedTabList() {
179
- return Array.from(this.cacheTabList);
180
- },
181
- getLastDragEndIndex() {
182
- return this.lastDragEndIndex;
183
- }
184
- },
185
- actions: {
186
- async addTab(route) {
187
- const { path, name, fullPath, params, query, meta } = route;
188
- if (path === Pages.NOT_FOUND || path === Pages.LOGIN || path === Pages.BASE_PAGE) {
189
- return;
190
- }
191
- let updateIndex = -1;
192
- const tabHasExits = this.tabList.some((tab, index) => {
193
- updateIndex = index;
194
- return (tab.fullPath || tab.path) === (fullPath || path);
195
- });
196
- if (tabHasExits) {
197
- const curTab = toRaw(this.tabList)[updateIndex];
198
- curTab.params = params || curTab.params;
199
- curTab.query = query || curTab.query;
200
- curTab.fullPath = fullPath || curTab.fullPath;
201
- this.tabList.splice(updateIndex, 1, curTab);
202
- } else {
203
- this.tabList.push(JSON.parse(JSON.stringify(route)));
204
- }
205
- this.updateCacheTab();
206
- },
207
- closeTab(route, router) {
208
- const go = useGo(router);
209
- const index = this.tabList.findIndex((item) => item.path === route.path);
210
- let page;
211
- if (index === 0) {
212
- if (this.tabList.length !== 1) {
213
- page = this.tabList[index + 1];
214
- }
215
- } else {
216
- page = this.tabList[index - 1];
217
- }
218
- this.bulkCloseTabs([route.path]);
219
- this.updateCacheTab();
220
- route.path === router.currentRoute.value.path && go(page.path);
221
- },
222
- closeAllTab(currentRoute, router) {
223
- const go = useGo(router);
224
- let filterTabList = this.tabList.filter((item) => item?.meta?.affix ?? false);
225
- const route = filterTabList.length > 0 ? filterTabList[filterTabList.length - 1] : unref(currentRoute);
226
- this.tabList = [route];
227
- this.updateCacheTab();
228
- go(route.path);
229
- },
230
- closeLeftTabs(route, router) {
231
- const index = this.tabList.findIndex((item) => item.path === route.path);
232
- if (index > 0) {
233
- const leftTabs = this.tabList.slice(0, index);
234
- const pathList = [];
235
- for (const item of leftTabs) {
236
- const affix = item?.meta?.affix ?? false;
237
- if (!affix) {
238
- pathList.push(item.fullPath);
239
- }
240
- }
241
- this.bulkCloseTabs(pathList);
242
- }
243
- this.updateCacheTab();
244
- handleGotoPage(router);
245
- },
246
- closeRightTabs(route, router) {
247
- const index = this.tabList.findIndex((item) => item.path === route.path);
248
- if (index >= 0 && index < this.tabList.length - 1) {
249
- const rightTabs = this.tabList.slice(index + 1, this.tabList.length);
250
- const pathList = [];
251
- for (const item of rightTabs) {
252
- const affix = item?.meta?.affix ?? false;
253
- if (!affix) {
254
- pathList.push(item.fullPath);
255
- }
256
- }
257
- this.bulkCloseTabs(pathList);
258
- }
259
- this.updateCacheTab();
260
- handleGotoPage(router);
261
- },
262
- closeOtherTabs(route, router) {
263
- const pathList = [];
264
- for (let item of this.tabList) {
265
- const affix = item?.meta?.affix ?? false;
266
- if (item.path !== route.path && !affix) {
267
- pathList.push(item.path);
268
- }
269
- }
270
- this.bulkCloseTabs(pathList);
271
- this.updateCacheTab();
272
- handleGotoPage(router);
273
- },
274
- closeTabByKey(path, router) {
275
- const go = useGo(router);
276
- const index = this.tabList.findIndex((item) => item.path === path);
277
- let page;
278
- if (index === 0) {
279
- if (this.tabList.length !== 1) {
280
- page = this.tabList[index + 1];
281
- }
282
- } else {
283
- page = this.tabList[index - 1];
284
- }
285
- this.bulkCloseTabs([path]);
286
- this.updateCacheTab();
287
- path === router.currentRoute.value.path && go(page.path);
288
- },
289
- bulkCloseTabs(pathList) {
290
- this.tabList = this.tabList.filter((item) => !pathList.includes(item.fullPath));
291
- },
292
- updateCacheTab() {
293
- DtCache.setLocal(CacheKey.ROUTE_REUSE, this.tabList);
294
- const cacheMap = /* @__PURE__ */ new Set();
295
- for (const tab of this.tabList) {
296
- if (tab.meta?.hideTab) {
297
- continue;
298
- }
299
- const name = tab.name;
300
- cacheMap.add(name);
301
- }
302
- this.cacheTabList = cacheMap;
303
- },
304
- async refreshPage(router) {
305
- const findTab = this.getCachedTabList.find((item) => item === unref(router.currentRoute).name);
306
- if (findTab) {
307
- this.cacheTabList.delete(findTab.toString());
308
- }
309
- const redo = useRedo(router);
310
- await redo();
311
- },
312
- sortTabs(oldIndex, newIndex) {
313
- const currentTab = this.tabList[oldIndex];
314
- this.tabList.splice(oldIndex, 1);
315
- this.tabList.splice(newIndex, 0, currentTab);
316
- this.lastDragEndIndex = this.lastDragEndIndex + 1;
317
- },
318
- resetState() {
319
- this.tabList = [];
320
- this.updateCacheTab();
321
- }
322
- }
323
- });
324
- function useMenu() {
325
- const { setThemeConf } = useThemeStore();
326
- const getCollapsedShowTitle = computed(() => useThemeStore().getMenuConf.collapsedShowTitle);
327
- const getIsSidebarType = computed(() => useThemeStore().getMenuConf.type === MenuType.SIDE);
328
- const getMenuFixed = computed(() => useThemeStore().getMenuConf.fixed);
329
- const getShowMenu = computed(() => useThemeStore().getMenuConf.show);
330
- const getShowSidebar = computed(() => {
331
- return unref(getSplit) || unref(getShowMenu) && unref(getMenuMode) !== MenuMode.HORIZONTAL;
332
- });
333
- const getMenuHidden = computed(() => useThemeStore().getMenuConf.hidden);
334
- const getMenuTheme = computed(() => useThemeStore().getMenuConf.theme);
335
- const getTrigger = computed(() => useThemeStore().getMenuConf.trigger);
336
- const getCanDrag = computed(() => useThemeStore().getMenuConf.canDrag);
337
- const getIsMixMode = computed(() => {
338
- return unref(getMenuMode) === MenuMode.INLINE && unref(getMenuType) === MenuType.MIX;
339
- });
340
- const getIsMixSidebar = computed(() => unref(getMenuType) === MenuType.MIX_SIDEBAR);
341
- const getMenuWidth = computed(() => {
342
- if (unref(getIsMixMode)) {
343
- return Number(useThemeStore().getMenuConf.menuWidth) - 40;
344
- } else if (unref(getIsMixSidebar)) {
345
- return Number(useThemeStore().getMenuConf.menuWidth) - 10;
346
- } else {
347
- return Number(useThemeStore().getMenuConf.menuWidth);
348
- }
349
- });
350
- const getMixSideTrigger = computed(() => useThemeStore().getMenuConf.mixSideTrigger);
351
- const getLogoWidth = computed(() => unref(getIsMixSidebar) ? "80px" : useThemeStore().getMenuConf.menuWidth);
352
- const getMenuType = computed(() => useThemeStore().getMenuConf.type);
353
- const getIsTopMenu = computed(() => unref(getMenuType) === MenuType.TOP_MENU);
354
- const getMenuMode = computed(() => useThemeStore().getMenuConf.mode);
355
- const getSplit = computed(() => useThemeStore().getMenuConf.split);
356
- const getCollapsed = computed(() => useThemeStore().getMenuConf.collapsed);
357
- const getIsHorizontal = computed(() => unref(getMenuMode) === MenuMode.HORIZONTAL);
358
- const setThemeStore = (conf = {}) => setThemeConf(conf);
359
- const toggleCollapsed = () => setThemeStore({
360
- menuOptions: {
361
- collapsed: !unref(getCollapsed)
362
- }
363
- });
364
- const getMiniWidthNumber = computed(() => useThemeStore().getMenuConf.collapsedShowTitle ? 80 : 48);
365
- const getRealWidth = computed(() => {
366
- return unref(getCollapsed) ? unref(getMiniWidthNumber) : unref(getMenuWidth);
367
- });
368
- const getCalcContentWidth = computed(() => {
369
- const width = unref(getIsTopMenu) || !unref(getShowMenu) || unref(getSplit) && unref(getMenuHidden) ? 0 : unref(getRealWidth);
370
- return `calc(100% - ${unref(width)}px)`;
371
- });
372
- return {
373
- getCollapsedShowTitle,
374
- getIsSidebarType,
375
- getMenuFixed,
376
- getShowMenu,
377
- getShowSidebar,
378
- getMenuHidden,
379
- getMenuTheme,
380
- getTrigger,
381
- getMenuWidth,
382
- getLogoWidth,
383
- getMenuType,
384
- getIsTopMenu,
385
- getMenuMode,
386
- getSplit,
387
- getCollapsed,
388
- getIsHorizontal,
389
- getMiniWidthNumber,
390
- getRealWidth,
391
- getCalcContentWidth,
392
- getIsMixMode,
393
- getIsMixSidebar,
394
- getCanDrag,
395
- getMixSideTrigger,
396
- toggleCollapsed,
397
- setThemeStore
398
- };
399
- }
400
- function useMultipleTab() {
401
- const { getRouteReuseConf } = useThemeStore();
402
- const getShowMultipleTab = computed(() => getRouteReuseConf.show);
403
- const getShowQuick = computed(() => getRouteReuseConf.showQuick);
404
- const getMultipleTabPosIsTop = computed(() => getRouteReuseConf.position === "top");
405
- const getShowRedo = computed(() => getRouteReuseConf.showRedo);
406
- const getCanCache = computed(() => getRouteReuseConf.cache);
407
- const getCanDrag = computed(() => getRouteReuseConf.canDrag);
408
- return {
409
- getShowMultipleTab,
410
- getShowQuick,
411
- getMultipleTabPosIsTop,
412
- getShowRedo,
413
- getCanCache,
414
- getCanDrag
415
- };
416
- }
417
- function useHeader() {
418
- const HEADER_HEIGHT = 48;
419
- const TABS_HEIGHT = 33;
420
- const { getHeaderConf = {} } = useThemeStore();
421
- const {
422
- getIsSidebarType,
423
- getMenuType,
424
- getShowMenu,
425
- getMenuHidden,
426
- getTrigger,
427
- getMenuMode,
428
- getSplit,
429
- getIsTopMenu,
430
- getIsMixSidebar
431
- } = useMenu();
432
- const { getShowMultipleTab, getMultipleTabPosIsTop } = useMultipleTab();
433
- const getHeaderTheme = computed(() => getHeaderConf.theme);
434
- const getFixed = computed(() => getHeaderConf.fixed);
435
- const getShowHeaderLogo = computed(() => unref(getShowLogo) && !unref(getIsSidebarType) && !unref(getIsMixSidebar));
436
- const getShowSearch = computed(() => getHeaderConf.showSearch);
437
- const getShowHeaderTrigger = computed(() => {
438
- if (unref(getMenuType) === MenuType.TOP_MENU || !unref(getShowMenu) || unref(getMenuHidden)) {
439
- return false;
440
- }
441
- return unref(getTrigger);
442
- });
443
- const getShowBreadCrumb = computed(() => getHeaderConf.showBreadCrumb);
444
- const getShowBread = computed(
445
- () => unref(getMenuMode) !== MenuMode.HORIZONTAL && !unref(getSplit) && unref(getShowBreadCrumb)
446
- );
447
- const getShowTopMenu = computed(() => unref(getMenuMode) === MenuMode.HORIZONTAL || unref(getSplit));
448
- const getShowNotice = computed(() => getHeaderConf.showNotice);
449
- const getShowFullScreen = computed(() => getHeaderConf.showFullScreen);
450
- const getShowLocale = computed(() => getHeaderConf.showLocaleSwitch);
451
- const getShowSettingTheme = computed(() => getHeaderConf.showSettingTheme);
452
- const getShowFullHeaderRef = computed(() => {
453
- return !unref(getIsSidebarType) && !unref(getIsMixSidebar) && !unref(getIsTopMenu);
454
- });
455
- const getHeaderHeight = computed(() => {
456
- let height = 0;
457
- height += HEADER_HEIGHT;
458
- if (unref(getShowMultipleTab) && !unref(getSplit) && !unref(getMultipleTabPosIsTop)) {
459
- height += TABS_HEIGHT;
460
- }
461
- return height;
462
- });
463
- const getTabsHeight = computed(() => TABS_HEIGHT);
464
- const getShowInsetHeaderRef = computed(() => {
465
- return unref(getIsSidebarType) || unref(getIsTopMenu) || unref(getIsMixSidebar);
466
- });
467
- const getShowBackToTop = computed(() => getHeaderConf.showBackToTop);
468
- const getIsZH = computed(() => {
469
- let local = DtCache.getLocal(CacheKey.LOCALE);
470
- if (!local)
471
- return true;
472
- return local === Language.ZH;
473
- });
474
- const getUiSize = computed(() => getHeaderConf?.size ?? UiSize.SMALL);
475
- const getShowUiSize = computed(() => getHeaderConf?.showSize);
476
- const getShowLogo = computed(() => getHeaderConf.showLogo);
477
- const getShowLoginOut = computed(() => getHeaderConf.showLoginOut);
478
- const getLockscreen = computed(() => getHeaderConf.useLockPage);
479
- const loginOutClick = getHeaderConf.logoutClick;
480
- return {
481
- getHeaderTheme,
482
- getFixed,
483
- getShowSearch,
484
- getShowHeaderLogo,
485
- getShowHeaderTrigger,
486
- getShowBread,
487
- getShowTopMenu,
488
- getShowFullScreen,
489
- getShowLocale,
490
- getShowSettingTheme,
491
- getShowNotice,
492
- getShowFullHeaderRef,
493
- getHeaderHeight,
494
- getTabsHeight,
495
- getShowInsetHeaderRef,
496
- getShowBackToTop,
497
- getIsZH,
498
- getUiSize,
499
- getShowLogo,
500
- getShowLoginOut,
501
- getShowUiSize,
502
- getLockscreen,
503
- loginOutClick
504
- };
505
- }
506
- function useTheme() {
507
- const { getThemeConf, getPageLoading } = useThemeStore();
508
- const getLayoutContentMode = computed(() => getThemeConf.content.contentMode);
509
- const getFooter = computed(() => getThemeConf.footerOptions || {});
510
- const getShowFooter = computed(() => isObject(getThemeConf.footerOptions) ? getThemeConf.footerOptions.show : true);
511
- const getContentMode = computed(() => getThemeConf.content.contentMode);
512
- const getOpenPageLoading = computed(() => getPageLoading);
513
- return {
514
- getLayoutContentMode,
515
- getPageLoading,
516
- getFooter,
517
- getShowFooter,
518
- getContentMode,
519
- getOpenPageLoading
520
- };
521
- }
522
- function deleteChildrenProp(menu) {
523
- let obj = { ...menu };
524
- delete obj.children;
525
- return obj;
526
- }
527
- function getBreadCrumb(path, menus) {
528
- const _menus = menus || DtCache.getLocal(CacheKey.MENUS)?.children || [];
529
- let routes = [];
530
- let getParentByPath = (menu, path2 = "") => {
531
- if (menu.children && menu.children.length) {
532
- menu.children.forEach((subMenu) => {
533
- subMenu.parentMenus = [...menu.parentMenus].concat([deleteChildrenProp(subMenu)]);
534
- getParentByPath(subMenu, path2);
535
- });
536
- }
537
- if (menu.url === path2) {
538
- routes = menu.parentMenus;
539
- }
540
- };
541
- _menus.forEach((menu) => {
542
- menu.parentMenus = [deleteChildrenProp(menu)];
543
- getParentByPath(menu, path);
544
- });
545
- return routes;
546
- }
547
- function getFilterMenu(filter = "", flag = false) {
548
- let _menus = [];
549
- const { getIsZH } = useHeader();
550
- if (!trim(filter) && !flag)
551
- return _menus;
552
- let getTargetMenus = (menusArr) => {
553
- menusArr.forEach((menu) => {
554
- if (menu.children && menu.children.length) {
555
- getTargetMenus(menu.children);
556
- } else {
557
- let flabel = unref(getIsZH) ? menu.label : menu.enLabel?.toLowerCase();
558
- let ffilter = unref(getIsZH) ? filter : filter.toLowerCase();
559
- if (flabel.indexOf(ffilter) !== -1 || flag && !trim(filter)) {
560
- _menus.push(menu);
561
- }
562
- }
563
- });
564
- };
565
- getTargetMenus(DtCache.getLocal(CacheKey.MENUS)?.children);
566
- return _menus;
567
- }
568
- function getParentTreeByPath(path) {
569
- const _menus = DtCache.getLocal(CacheKey.MENUS)?.children || [];
570
- let routes = [];
571
- let getParentByPath = (menu, path2 = "") => {
572
- if (menu.children && menu.children.length) {
573
- menu.children.forEach((subMenu) => {
574
- subMenu.parentMenus = [...menu.parentMenus].concat([subMenu]);
575
- getParentByPath(subMenu, path2);
576
- });
577
- }
578
- if (menu.url === path2) {
579
- routes = menu.parentMenus;
580
- }
581
- };
582
- _menus.forEach((menu) => {
583
- menu.parentMenus = [menu];
584
- getParentByPath(menu, path);
585
- });
586
- return routes.length ? routes[0] : { id: null, children: [], icon: "", label: "" };
587
- }
588
- function useOpenKeys(menuState, menus, type) {
589
- async function setOpenKeys(path) {
590
- if (type === MenuType.TOP_MENU)
591
- return;
592
- useTimeoutFn(
593
- () => {
594
- if (menus?.length === 0) {
595
- menuState.openKeys = [];
596
- return;
597
- }
598
- const parentNodes = getBreadCrumb(path, menus);
599
- menuState.openKeys = parentNodes.map((it) => it.id);
600
- },
601
- 20,
602
- true
603
- );
604
- }
605
- const getOpenKeys = computed(() => menuState.openKeys);
606
- function resetKeys() {
607
- menuState.selectedKeys = [];
608
- menuState.openKeys = [];
609
- }
610
- function handleOpenChange(openKeys) {
611
- menuState.openKeys = openKeys;
612
- }
613
- return {
614
- getOpenKeys,
615
- setOpenKeys,
616
- resetKeys,
617
- handleOpenChange
618
- };
619
- }
620
- function useDragLine(siderRef, dragBarRef) {
621
- const { getMiniWidthNumber, getCollapsed, setThemeStore } = useMenu();
622
- onMounted(() => {
623
- nextTick(() => {
624
- const exec = useDebounceFn(changeWrapWidth, 80);
625
- exec();
626
- });
627
- });
628
- function getEl(elRef) {
629
- const el = unref(elRef);
630
- if (!el)
631
- return null;
632
- if (Reflect.has(el, "$el")) {
633
- return unref(elRef)?.$el;
634
- }
635
- return unref(elRef);
636
- }
637
- function handleMouseMove(ele, wrap, clientX) {
638
- document.onmousemove = function(innerE) {
639
- innerE = innerE || window.event;
640
- let iT = ele.left + (innerE.clientX - clientX);
641
- const maxT = 800;
642
- const minT = unref(getMiniWidthNumber);
643
- iT < 0 && (iT = 0);
644
- iT > maxT && (iT = maxT);
645
- iT < minT && (iT = minT);
646
- ele.style.left = wrap.style.width = iT + "px";
647
- return false;
648
- };
649
- }
650
- function removeMouseup(ele) {
651
- const wrap = getEl(siderRef);
652
- document.onmouseup = function() {
653
- document.onmousemove = null;
654
- document.onmouseup = null;
655
- wrap.style.transition = "width 0.2s";
656
- const width = parseInt(wrap.style.width);
657
- setThemeStore({
658
- menuOptions: {
659
- menuWidth: width
660
- }
661
- });
662
- ele.releaseCapture?.();
663
- };
664
- }
665
- function changeWrapWidth() {
666
- const ele = getEl(dragBarRef);
667
- if (!ele)
668
- return;
669
- const wrap = getEl(siderRef);
670
- if (!wrap)
671
- return;
672
- ele.onmousedown = (e) => {
673
- wrap.style.transition = "unset";
674
- const clientX = e?.clientX;
675
- ele.left = ele.offsetLeft;
676
- handleMouseMove(ele, wrap, clientX);
677
- removeMouseup(ele);
678
- ele.setCapture?.();
679
- return false;
680
- };
681
- }
682
- }
683
- const _sfc_main$B = /* @__PURE__ */ defineComponent({
684
- __name: "back-top",
685
- setup(__props) {
686
- const getTarget = () => document.getElementById("dt-layout-content");
687
- const { getShowBackToTop } = useHeader();
688
- return (_ctx, _cache) => {
689
- const _component_ABackTop = BackTop;
690
- return unref(getShowBackToTop) ? (openBlock(), createBlock(_component_ABackTop, {
691
- key: 0,
692
- target: getTarget,
693
- visibilityHeight: 300
694
- })) : createCommentVNode("", true);
695
- };
696
- }
697
- });
698
- const _sfc_main$A = /* @__PURE__ */ defineComponent({
699
- __name: "index",
700
- setup(__props) {
701
- return (_ctx, _cache) => {
702
- return openBlock(), createBlock(_sfc_main$B);
703
- };
704
- }
705
- });
706
- const _hoisted_1$k = /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-autorenew" }, null, -1);
707
- const _hoisted_2$b = [
708
- _hoisted_1$k
709
- ];
710
- const _sfc_main$z = /* @__PURE__ */ defineComponent({
711
- __name: "TabRedo",
712
- setup(__props) {
713
- const tabStore = useRouteReuseStore();
714
- const router = useRouter();
715
- function handleRedo() {
716
- tabStore.refreshPage(router);
717
- }
718
- return (_ctx, _cache) => {
719
- return openBlock(), createElementBlock("span", {
720
- onClick: handleRedo,
721
- 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"
722
- }, _hoisted_2$b);
723
- };
724
- }
725
- });
726
- function useTabs(_router) {
727
- const tabStore = useRouteReuseStore();
728
- const router = _router || useRouter();
729
- const { currentRoute } = router;
730
- const getCurrentTab = () => {
731
- const route = unref(currentRoute);
732
- return tabStore.getTabList.find((item) => item.fullPath === route.fullPath);
733
- };
734
- function handleTabAction(action, tab) {
735
- const currentTab = getCurrentTab();
736
- switch (action) {
737
- case 0:
738
- tabStore.refreshPage(router);
739
- break;
740
- case 1:
741
- tabStore.closeAllTab(currentRoute, router);
742
- break;
743
- case 2:
744
- tabStore.closeLeftTabs(currentTab, router);
745
- break;
746
- case 3:
747
- tabStore.closeRightTabs(currentTab, router);
748
- break;
749
- case 4:
750
- tabStore.closeOtherTabs(currentTab, router);
751
- break;
752
- case 5:
753
- case 6:
754
- tabStore.closeTab(tab || currentTab, router);
755
- }
756
- }
757
- return {
758
- refreshPage: () => handleTabAction(0),
759
- closeAll: () => handleTabAction(1),
760
- closeLeft: () => handleTabAction(2),
761
- closeRight: () => handleTabAction(3),
762
- closeOther: () => handleTabAction(4),
763
- closeCurrent: () => handleTabAction(5),
764
- close: (tab) => handleTabAction(6, tab)
765
- };
766
- }
767
- function useTabDropdown(tabItem, getIsTabs) {
768
- const router = useRouter();
769
- const { currentRoute } = router;
770
- const tabStore = useRouteReuseStore();
771
- const { refreshPage, closeAll, close, closeLeft, closeOther, closeRight } = useTabs();
772
- const getTargetTab = computed(() => {
773
- return unref(getIsTabs) ? tabItem : unref(currentRoute);
774
- });
775
- const state = reactive({
776
- current: null,
777
- currentIndex: 0
778
- });
779
- const getDropMenuList = computed(() => {
780
- const { t } = useI18n("UI");
781
- const { meta } = unref(getTargetTab);
782
- const { path } = unref(currentRoute);
783
- const curItem = state.current;
784
- const isCurItem = curItem ? curItem.path === path : false;
785
- const index = state.currentIndex;
786
- const refreshDisabled = !isCurItem;
787
- const closeLeftDisabled = index === 0 || !isCurItem;
788
- const closeRightDisabled = !isCurItem || index === tabStore.getTabList.length - 1 && tabStore.getLastDragEndIndex >= 0;
789
- const disabled = tabStore.getTabList.length === 1;
790
- const dropMenuList = [
791
- {
792
- icon: "ic:baseline-autorenew",
793
- text: t("REFRESH"),
794
- onClick: refreshPage,
795
- disabled: refreshDisabled
796
- },
797
- {
798
- icon: "ic:baseline-close",
799
- text: t("CLOSE_CURRENT_TAG"),
800
- onClick: () => close(tabItem),
801
- disabled: !!meta?.affix || disabled,
802
- divider: true
803
- },
804
- {
805
- icon: "mdi:arrow-collapse-left",
806
- text: t("CLOSE_LEFT_TAGS"),
807
- onClick: closeLeft,
808
- disabled: closeLeftDisabled,
809
- divider: false
810
- },
811
- {
812
- icon: "mdi:arrow-collapse-right",
813
- text: t("CLOSE_RIGHT_TAGS"),
814
- onClick: closeRight,
815
- disabled: closeRightDisabled,
816
- divider: true
817
- },
818
- {
819
- icon: "ic:baseline-sync-alt",
820
- text: t("CLOSE_OTHER_TAGS"),
821
- onClick: closeOther,
822
- disabled: disabled || !isCurItem
823
- },
824
- {
825
- icon: "ic:baseline-horizontal-rule",
826
- text: t("CLOSE_ALL_TAGE"),
827
- onClick: closeAll,
828
- disabled
829
- }
830
- ];
831
- return dropMenuList;
832
- });
833
- function handleContextMenu(tabItem2) {
834
- return (e) => {
835
- if (!tabItem2)
836
- return;
837
- e?.preventDefault();
838
- const index = tabStore.getTabList.findIndex((tab) => tab.path === tabItem2.path);
839
- state.current = tabItem2;
840
- state.currentIndex = index;
841
- };
842
- }
843
- function handleMenuEvent(item) {
844
- item.onClick?.();
845
- }
846
- return {
847
- getDropMenuList,
848
- handleContextMenu,
849
- handleMenuEvent
850
- };
851
- }
852
- const _hoisted_1$j = /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-keyboard-arrow-down" }, null, -1);
853
- const _hoisted_2$a = [
854
- _hoisted_1$j
855
- ];
856
- const _hoisted_3$8 = { class: "text-13" };
857
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
858
- __name: "TabContent",
859
- props: {
860
- tabItem: {
861
- type: Object,
862
- default: null
863
- },
864
- isExtra: Boolean
865
- },
866
- setup(__props) {
867
- const props = __props;
868
- const { t } = useI18n("UI");
869
- const menuLabelMap = menuList2Map();
870
- const getIsTabs = computed(() => !props.isExtra);
871
- const getTrigger = computed(
872
- () => unref(getIsTabs) ? ["contextmenu"] : ["click"]
873
- );
874
- const { getDropMenuList, handleContextMenu, handleMenuEvent } = useTabDropdown(props?.tabItem, getIsTabs);
875
- function handleContext(e) {
876
- props.tabItem && handleContextMenu(props.tabItem)(e);
877
- }
878
- return (_ctx, _cache) => {
879
- const _component_AMenuItem = MenuItem;
880
- const _component_AMenuDivider = MenuDivider;
881
- const _component_AMenu = Menu;
882
- const _component_ADropdown = Dropdown;
883
- return openBlock(), createBlock(_component_ADropdown, {
884
- placement: "bottomRight",
885
- trigger: unref(getTrigger),
886
- overlayClassName: "dt-reuse-tabs__dropdown"
887
- }, {
888
- overlay: withCtx(() => [
889
- createVNode(_component_AMenu, null, {
890
- default: withCtx(() => [
891
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getDropMenuList), (item, index) => {
892
- return openBlock(), createElementBlock(Fragment, null, [
893
- createVNode(_component_AMenuItem, {
894
- onClick: ($event) => unref(handleMenuEvent)(item),
895
- disabled: item.disabled
896
- }, {
897
- default: withCtx(() => [
898
- createElementVNode("i", {
899
- class: normalizeClass(["i pr-4", item.icon])
900
- }, null, 2),
901
- createElementVNode("span", _hoisted_3$8, toDisplayString(item.text), 1)
902
- ]),
903
- _: 2
904
- }, 1032, ["onClick", "disabled"]),
905
- item.divider ? (openBlock(), createBlock(_component_AMenuDivider, {
906
- key: `d-${index}`
907
- })) : createCommentVNode("", true)
908
- ], 64);
909
- }), 256))
910
- ]),
911
- _: 1
912
- })
913
- ]),
914
- default: withCtx(() => [
915
- unref(getIsTabs) ? (openBlock(), createElementBlock("div", {
916
- key: 0,
917
- onContextmenu: handleContext
918
- }, [
919
- createElementVNode("span", null, toDisplayString(unref(menuLabelMap).get(__props.tabItem.path) || __props.tabItem?.meta?.title || unref(t)("UNKNOWN_ROUTE")), 1)
920
- ], 32)) : (openBlock(), createElementBlock("span", {
921
- key: 1,
922
- onClick: handleContext,
923
- 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"
924
- }, _hoisted_2$a))
925
- ]),
926
- _: 1
927
- }, 8, ["trigger"]);
928
- };
929
- }
930
- });
931
- function initAffixTabs() {
932
- const affixList = ref([]);
933
- const tabStore = useRouteReuseStore();
934
- const router = useRouter();
935
- const filterAffixTabs = (routes = []) => {
936
- return routes && routes.reduce((tabs, route) => {
937
- if (route.meta && route.meta.affix) {
938
- tabs.push(toRaw(route));
939
- }
940
- return tabs;
941
- }, []);
942
- };
943
- const addAffixTabs = () => {
944
- const affixTabs = filterAffixTabs(router.getRoutes());
945
- affixList.value = affixTabs;
946
- for (const tab of affixTabs) {
947
- tabStore.addTab({
948
- meta: tab.meta,
949
- name: tab.name,
950
- path: tab.path
951
- });
952
- }
953
- };
954
- let isAddAffix = false;
955
- if (!isAddAffix) {
956
- addAffixTabs();
957
- isAddAffix = true;
958
- }
959
- return affixList.value.map((item) => item.meta?.title).filter(Boolean);
960
- }
961
- function useSortable(el, options) {
962
- function initSortable() {
963
- nextTick(async () => {
964
- if (!el)
965
- return;
966
- const Sortable = (await import("sortablejs")).default;
967
- Sortable.create(unref(el), {
968
- animation: 500,
969
- delay: 400,
970
- delayOnTouchOnly: true,
971
- ...options
972
- });
973
- });
974
- }
975
- return { initSortable };
976
- }
977
- function useTabsDrag(affixList) {
978
- const tabStore = useRouteReuseStore();
979
- const { getCanDrag } = useMultipleTab();
980
- nextTick(() => {
981
- if (!unref(getCanDrag))
982
- return;
983
- const el = document.querySelectorAll(`.dt-reuse-tabs .ant-tabs-nav-list`)?.[0];
984
- const { initSortable } = useSortable(el, {
985
- filter: (e) => {
986
- const text = e?.target?.innerText;
987
- if (!text)
988
- return false;
989
- return affixList.includes(text);
990
- },
991
- onEnd: (evt) => {
992
- const { oldIndex, newIndex } = evt;
993
- if (isNullAndUnDef(oldIndex) || isNullAndUnDef(newIndex) || oldIndex === newIndex)
994
- return;
995
- tabStore.sortTabs(oldIndex, newIndex);
996
- }
997
- });
998
- initSortable();
999
- });
1000
- }
1001
- const _hoisted_1$i = { class: "dt-reuse-tabs leading-8 border-b border-solid border-gray-200" };
1002
- const _sfc_main$x = /* @__PURE__ */ defineComponent({
1003
- __name: "index",
1004
- setup(__props) {
1005
- const router = useRouter();
1006
- const go = useGo(router);
1007
- const tabStore = useRouteReuseStore();
1008
- const { getShowQuick, getShowRedo } = useMultipleTab();
1009
- const activeKeyRef = ref(null);
1010
- const getTabsState = computed(() => {
1011
- return tabStore.getTabList.filter((item) => !item.meta?.hideTab);
1012
- });
1013
- const unClose = computed(() => unref(getTabsState).length === 1);
1014
- function handleChange(activeKey) {
1015
- activeKeyRef.value = activeKey;
1016
- go(activeKey);
1017
- }
1018
- function handleEdit(targetKey) {
1019
- if (unref(unClose))
1020
- return;
1021
- tabStore.closeTabByKey(targetKey, router);
1022
- }
1023
- const affixTextList = initAffixTabs();
1024
- useTabsDrag(affixTextList);
1025
- watch(
1026
- () => router.currentRoute.value.path,
1027
- (v) => {
1028
- if (v === "/" || v === "/login")
1029
- return;
1030
- const { meta = {} } = unref(router.currentRoute);
1031
- const { hideTab = false } = meta;
1032
- if (activeKeyRef.value !== v) {
1033
- activeKeyRef.value = v;
1034
- }
1035
- if (!hideTab) {
1036
- tabStore.addTab(unref(router.currentRoute));
1037
- }
1038
- },
1039
- {
1040
- immediate: true
1041
- }
1042
- );
1043
- return (_ctx, _cache) => {
1044
- const _component_ATabPane = TabPane;
1045
- const _component_ATabs = Tabs;
1046
- return openBlock(), createElementBlock("div", _hoisted_1$i, [
1047
- createVNode(_component_ATabs, {
1048
- type: "editable-card",
1049
- size: "small",
1050
- animated: false,
1051
- hideAdd: true,
1052
- tabBarGutter: 3,
1053
- activeKey: activeKeyRef.value,
1054
- onChange: handleChange,
1055
- onEdit: handleEdit,
1056
- class: "h-8"
1057
- }, createSlots({
1058
- default: withCtx(() => [
1059
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getTabsState), (item) => {
1060
- return openBlock(), createBlock(_component_ATabPane, {
1061
- key: item.query ? item.fullPath : item.path,
1062
- closable: !(item && item.meta && item.meta.affix)
1063
- }, {
1064
- tab: withCtx(() => [
1065
- unref(getShowQuick) ? (openBlock(), createBlock(unref(_sfc_main$y), {
1066
- key: 0,
1067
- tabItem: item
1068
- }, null, 8, ["tabItem"])) : createCommentVNode("", true)
1069
- ]),
1070
- _: 2
1071
- }, 1032, ["closable"]);
1072
- }), 128))
1073
- ]),
1074
- _: 2
1075
- }, [
1076
- unref(getShowRedo) || unref(getShowQuick) ? {
1077
- name: "rightExtra",
1078
- fn: withCtx(() => [
1079
- unref(getShowRedo) ? (openBlock(), createBlock(unref(_sfc_main$z), { key: 0 })) : createCommentVNode("", true),
1080
- unref(getShowQuick) ? (openBlock(), createBlock(unref(_sfc_main$y), {
1081
- key: 1,
1082
- isExtra: "",
1083
- tabItem: _ctx.$route
1084
- }, null, 8, ["tabItem"])) : createCommentVNode("", true)
1085
- ]),
1086
- key: "0"
1087
- } : void 0
1088
- ]), 1032, ["activeKey"])
1089
- ]);
1090
- };
1091
- }
1092
- });
1093
- const _sfc_main$w = /* @__PURE__ */ defineComponent({
1094
- __name: "fullscreen",
1095
- setup(__props) {
1096
- const { toggle, isFullscreen } = useFullscreen();
1097
- return (_ctx, _cache) => {
1098
- return openBlock(), createElementBlock("span", {
1099
- 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",
1100
- onClick: _cache[0] || (_cache[0] = (...args) => unref(toggle) && unref(toggle)(...args))
1101
- }, [
1102
- createElementVNode("i", {
1103
- class: normalizeClass(["i block", !unref(isFullscreen) ? "ic:baseline-fullscreen" : "ic:baseline-fullscreen-exit"])
1104
- }, null, 2)
1105
- ]);
1106
- };
1107
- }
1108
- });
1109
- const isServer = typeof window === "undefined";
1110
- const BAR_MAP = {
1111
- vertical: {
1112
- offset: "offsetHeight",
1113
- scroll: "scrollTop",
1114
- scrollSize: "scrollHeight",
1115
- size: "height",
1116
- key: "vertical",
1117
- axis: "Y",
1118
- client: "clientY",
1119
- direction: "top"
1120
- },
1121
- horizontal: {
1122
- offset: "offsetWidth",
1123
- scroll: "scrollLeft",
1124
- scrollSize: "scrollWidth",
1125
- size: "width",
1126
- key: "horizontal",
1127
- axis: "X",
1128
- client: "clientX",
1129
- direction: "left"
1130
- }
1131
- };
1132
- function renderThumbStyle({ move, size, bar }) {
1133
- const style = {};
1134
- const translate = `translate${bar.axis}(${move}%)`;
1135
- style[bar.size] = size;
1136
- style.transform = translate;
1137
- style.msTransform = translate;
1138
- style.webkitTransform = translate;
1139
- return style;
1140
- }
1141
- function resizeHandler(entries) {
1142
- for (const entry of entries) {
1143
- const listeners = entry.target.__resizeListeners__ || [];
1144
- if (listeners.length) {
1145
- listeners.forEach((fn) => {
1146
- fn();
1147
- });
1148
- }
1149
- }
1150
- }
1151
- function addResizeListener(element, fn) {
1152
- if (isServer)
1153
- return;
1154
- if (!element.__resizeListeners__) {
1155
- element.__resizeListeners__ = [];
1156
- element.__ro__ = new ResizeObserver(resizeHandler);
1157
- element.__ro__.observe(element);
1158
- }
1159
- element.__resizeListeners__.push(fn);
1160
- }
1161
- function removeResizeListener(element, fn) {
1162
- if (!element || !element.__resizeListeners__)
1163
- return;
1164
- element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);
1165
- if (!element.__resizeListeners__.length) {
1166
- element.__ro__.disconnect();
1167
- }
1168
- }
1169
- const Bar = defineComponent({
1170
- name: "Bar",
1171
- props: {
1172
- vertical: Boolean,
1173
- size: String,
1174
- move: Number
1175
- },
1176
- setup(props) {
1177
- const instance = getCurrentInstance();
1178
- const thumb = ref();
1179
- const wrap = inject("scroll-bar-wrap", {});
1180
- const bar = computed(() => {
1181
- return BAR_MAP[props.vertical ? "vertical" : "horizontal"];
1182
- });
1183
- const barStore = ref({});
1184
- const cursorDown = ref();
1185
- const clickThumbHandler = (e) => {
1186
- if (e.ctrlKey || e.button === 2) {
1187
- return;
1188
- }
1189
- window.getSelection()?.removeAllRanges();
1190
- startDrag(e);
1191
- barStore.value[bar.value.axis] = e.currentTarget[bar.value.offset] - (e[bar.value.client] - e.currentTarget.getBoundingClientRect()[bar.value.direction]);
1192
- };
1193
- const clickTrackHandler = (e) => {
1194
- const offset = Math.abs(
1195
- e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]
1196
- );
1197
- const thumbHalf = thumb.value[bar.value.offset] / 2;
1198
- const thumbPositionPercentage = (offset - thumbHalf) * 100 / instance?.vnode.el?.[bar.value.offset];
1199
- wrap.value[bar.value.scroll] = thumbPositionPercentage * wrap.value[bar.value.scrollSize] / 100;
1200
- };
1201
- const startDrag = (e) => {
1202
- e.stopImmediatePropagation();
1203
- cursorDown.value = true;
1204
- on(document, "mousemove", mouseMoveDocumentHandler);
1205
- on(document, "mouseup", mouseUpDocumentHandler);
1206
- document.onselectstart = () => false;
1207
- };
1208
- const mouseMoveDocumentHandler = (e) => {
1209
- if (cursorDown.value === false)
1210
- return;
1211
- const prevPage = barStore.value[bar.value.axis];
1212
- if (!prevPage)
1213
- return;
1214
- const offset = (instance?.vnode.el?.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1;
1215
- const thumbClickPosition = thumb.value[bar.value.offset] - prevPage;
1216
- const thumbPositionPercentage = (offset - thumbClickPosition) * 100 / instance?.vnode.el?.[bar.value.offset];
1217
- wrap.value[bar.value.scroll] = thumbPositionPercentage * wrap.value[bar.value.scrollSize] / 100;
1218
- };
1219
- function mouseUpDocumentHandler() {
1220
- cursorDown.value = false;
1221
- barStore.value[bar.value.axis] = 0;
1222
- off(document, "mousemove", mouseMoveDocumentHandler);
1223
- document.onselectstart = null;
1224
- }
1225
- onUnmounted(() => {
1226
- off(document, "mouseup", mouseUpDocumentHandler);
1227
- });
1228
- return () => h(
1229
- "div",
1230
- {
1231
- class: ["scrollbar__bar", "is-" + bar.value.key],
1232
- onMousedown: clickTrackHandler
1233
- },
1234
- h("div", {
1235
- ref: thumb,
1236
- class: "scrollbar__thumb",
1237
- onMousedown: clickThumbHandler,
1238
- style: renderThumbStyle({
1239
- size: props.size,
1240
- move: props.move,
1241
- bar: bar.value
1242
- })
1243
- })
1244
- );
1245
- }
1246
- });
1247
- const _hoisted_1$h = { class: "scrollbar relative h-full overflow-hidden" };
1248
- const _sfc_main$v = /* @__PURE__ */ defineComponent({
1249
- __name: "scroll-bar",
1250
- props: {
1251
- wrapClass: {
1252
- type: [String, Array],
1253
- default: ""
1254
- },
1255
- wrapStyle: Array,
1256
- viewClass: {
1257
- type: [String, Array],
1258
- default: ""
1259
- },
1260
- viewStyle: {
1261
- type: [String, Array],
1262
- default: ""
1263
- },
1264
- noresize: Boolean,
1265
- tag: {
1266
- type: String,
1267
- default: "div"
1268
- }
1269
- },
1270
- setup(__props) {
1271
- const props = __props;
1272
- const sizeWidth = ref("0");
1273
- const sizeHeight = ref("0");
1274
- const moveX = ref(0);
1275
- const moveY = ref(0);
1276
- const wrap = ref();
1277
- const resize = ref();
1278
- provide("scroll-bar-wrap", wrap);
1279
- const style = computed(() => {
1280
- let rsStyle = {};
1281
- if (Array.isArray(props.wrapStyle)) {
1282
- props.wrapStyle.forEach((it) => {
1283
- if (it)
1284
- rsStyle = Object.assign({}, rsStyle, it);
1285
- });
1286
- }
1287
- return rsStyle;
1288
- });
1289
- const handleScroll = () => {
1290
- moveY.value = unref(wrap).scrollTop * 100 / unref(wrap).clientHeight;
1291
- moveX.value = unref(wrap).scrollLeft * 100 / unref(wrap).clientWidth;
1292
- };
1293
- const update = () => {
1294
- if (!unref(wrap))
1295
- return;
1296
- const heightPercentage = unref(wrap).clientHeight * 100 / unref(wrap).scrollHeight;
1297
- const widthPercentage = unref(wrap).clientWidth * 100 / unref(wrap).scrollWidth;
1298
- sizeHeight.value = heightPercentage < 100 ? heightPercentage + "%" : "";
1299
- sizeWidth.value = widthPercentage < 100 ? widthPercentage + "%" : "";
1300
- };
1301
- onMounted(() => {
1302
- nextTick(update);
1303
- if (!props.noresize) {
1304
- addResizeListener(unref(resize), update);
1305
- addResizeListener(unref(wrap), update);
1306
- addEventListener("resize", update);
1307
- }
1308
- });
1309
- onBeforeUnmount(() => {
1310
- if (!props.noresize) {
1311
- removeResizeListener(unref(resize), update);
1312
- removeResizeListener(unref(wrap), update);
1313
- removeEventListener("resize", update);
1314
- }
1315
- });
1316
- return (_ctx, _cache) => {
1317
- return openBlock(), createElementBlock("div", _hoisted_1$h, [
1318
- createElementVNode("div", {
1319
- ref_key: "wrap",
1320
- ref: wrap,
1321
- class: normalizeClass([[__props.wrapClass, "scrollbar__wrap--hidden-default"], "h-full overflow-auto"]),
1322
- style: normalizeStyle(unref(style)),
1323
- onScroll: handleScroll
1324
- }, [
1325
- (openBlock(), createBlock(resolveDynamicComponent(__props.tag), {
1326
- class: normalizeClass(["box-border", __props.viewClass]),
1327
- ref_key: "resize",
1328
- ref: resize,
1329
- style: normalizeStyle(__props.viewStyle)
1330
- }, {
1331
- default: withCtx(() => [
1332
- renderSlot(_ctx.$slots, "default")
1333
- ]),
1334
- _: 3
1335
- }, 8, ["class", "style"]))
1336
- ], 38),
1337
- createVNode(unref(Bar), {
1338
- move: moveX.value,
1339
- size: sizeWidth.value
1340
- }, null, 8, ["move", "size"]),
1341
- createVNode(unref(Bar), {
1342
- vertical: "",
1343
- move: moveY.value,
1344
- size: sizeHeight.value
1345
- }, null, 8, ["move", "size"])
1346
- ]);
1347
- };
1348
- }
1349
- });
1350
- const _sfc_main$u = /* @__PURE__ */ defineComponent({
1351
- __name: "scroll-container",
1352
- setup(__props) {
1353
- const scrollbarRef = ref(null);
1354
- return (_ctx, _cache) => {
1355
- return openBlock(), createBlock(_sfc_main$v, mergeProps({
1356
- ref_key: "scrollbarRef",
1357
- ref: scrollbarRef
1358
- }, _ctx.$attrs, { class: "w-full h-full" }), {
1359
- default: withCtx(() => [
1360
- renderSlot(_ctx.$slots, "default")
1361
- ]),
1362
- _: 3
1363
- }, 16);
1364
- };
1365
- }
1366
- });
1367
- const _sfc_main$t = /* @__PURE__ */ defineComponent({
1368
- __name: "slot-container",
1369
- props: {
1370
- template: {
1371
- type: Function
1372
- },
1373
- data: {
1374
- type: Object
1375
- }
1376
- },
1377
- setup(__props) {
1378
- const props = __props;
1379
- const Container = h("div", [props.template(props.data)]);
1380
- return (_ctx, _cache) => {
1381
- return openBlock(), createBlock(unref(Container));
1382
- };
1383
- }
1384
- });
1385
- const withInstall = (comp) => {
1386
- comp.install = (app) => {
1387
- app.component(comp.name, comp);
1388
- };
1389
- return comp;
1390
- };
1391
- const DtScrollContainer = withInstall(_sfc_main$u);
1392
- const DtSlotContainer = withInstall(_sfc_main$t);
1393
- const logoUrl = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAzfGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxOS0wNS0wNlQxMToyNzoyOCswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0xMC0yNFQxNDozMToxNiswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjEtMTAtMjRUMTQ6MzE6MTYrMDg6MDAiIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NWU1YmFlNWUtOTQzOS1lYjQ4LWJiMjEtZjZjM2UwOWYxODM2IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6ZGU4M2YxYWYtODBkMS1kMTRlLTg5ZWMtNGE1MjUzNzFkZTcwIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTg1ODkwODQtMjkyYi01ODRiLTkzODAtNWJmY2E3NjJmYzk5Ij4gPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHJkZjpCYWc+IDxyZGY6bGk+MDBCQTBEMEExQ0M5RDAwNTMxNTlBMjBGRTcxOTA2RTg8L3JkZjpsaT4gPHJkZjpsaT4wMTQwNjdEM0ZDNjM5OTM3RTc4QkFCNDFBMzdCNzMwNTwvcmRmOmxpPiA8cmRmOmxpPjAyRDI2REY0MDMxREJFOUM5N0Q5Mzg1RjE5QTUwMUQ0PC9yZGY6bGk+IDxyZGY6bGk+MDcxNDVGQzc5RjkxODMwQjNGRUNFOUZCODNEMDZDN0M8L3JkZjpsaT4gPHJkZjpsaT4wRDgyMkI0MThFM0E2RjZCMjBDMEM2NjkwOUI0QTc5QTwvcmRmOmxpPiA8cmRmOmxpPjBGOUM0NTJBMkZGQTE3QzU4RTQ5MzVFQUU3RUJEQzI1PC9yZGY6bGk+IDxyZGY6bGk+MTY2N0I2OTg3MUJGRjQ4MThEODU5RENGMjIzOTUyMjg8L3JkZjpsaT4gPHJkZjpsaT4xOTNFMUQ2M0ExRDJEN0VBN0U0MTFBMzlBQzNENkJBMzwvcmRmOmxpPiA8cmRmOmxpPjIwNjY1MENBM0RBNUM2OURFQjZCRjAyMTQ3MEUzM0Y1PC9yZGY6bGk+IDxyZGY6bGk+MjE1QzM3NDMwNUM1MUVDQ0FENUM1RDUzQThCMEMwMkI8L3JkZjpsaT4gPHJkZjpsaT4yMThDREMzM0Y0OTE1NTMzQzRFQjMwRUIzQTU3MjM1RjwvcmRmOmxpPiA8cmRmOmxpPjI0N0QxRUVDRThCMjkzOTJCNzQ3RjVCMzQ3Rjc5RDRGPC9yZGY6bGk+IDxyZGY6bGk+MkVDOURBNDM2NEQ2RTBCRjYwNzExRDJFOUY1OEM4ODg8L3JkZjpsaT4gPHJkZjpsaT4zNzEyQTgyQjE3NEM0OUMwMDg2MTUxMEJBODEzMDlBOTwvcmRmOmxpPiA8cmRmOmxpPjNEQjIwQTEwQzQyQjZGMkZEMEMwQkYyNUZDNEU5NzFFPC9yZGY6bGk+IDxyZGY6bGk+NDFDMTBEM0IzRUFBQTUwQjI5ODRBNzY1MEM5QzQzMTc8L3JkZjpsaT4gPHJkZjpsaT40OTQxN0MwQjQxMDgxRkJDRDQxNjAwQTM1QUE0MkEwMzwvcmRmOmxpPiA8cmRmOmxpPjRCQUVBREUyQjhFMTk4MTA2MkM5RjQzMTFCREI5Njg5PC9yZGY6bGk+IDxyZGY6bGk+NEU5NTUxOEI4OUI2MjEwOTRFNDdGMEU3MUQ4MUYxRjQ8L3JkZjpsaT4gPHJkZjpsaT41NDlEOUJFODJBRjc3NzVFOTMzRDc3QjJDOEY4N0QwMDwvcmRmOmxpPiA8cmRmOmxpPjU1NTQ4QzhDN0VEODdCRDI2MUI1RTNDRTBCQzdGNUM3PC9yZGY6bGk+IDxyZGY6bGk+NTg0RjVFMjNEMEFFMDA0NUQ4OENBM0I3MTUxNDQyODk8L3JkZjpsaT4gPHJkZjpsaT41OUVDMTdCMzk5Q0Y3QzFDQkJEN0FBMDUwODYyMzY1OTwvcmRmOmxpPiA8cmRmOmxpPjVDRUFCMzA0QUVFMTUyMzVGMDM3Mjg1NTdDMjFCQTBBPC9yZGY6bGk+IDxyZGY6bGk+NUUwRkI3MDI4QjU5NDlBNEFDRkU0NjIwNjRCQjVFNTc8L3JkZjpsaT4gPHJkZjpsaT42NzlCNDI1OEZGQjVDQTZBQUM2MDgzQkJBQTNFMDYwRTwvcmRmOmxpPiA8cmRmOmxpPjZDMDkzMzdDRjQxRTU3NTQ2NTFFMTJCNkRDMTU5OTcyPC9yZGY6bGk+IDxyZGY6bGk+NzU1RTZBRjM1MzM3ODA5MkM3NzlCNDE1MDAwRDg0RkE8L3JkZjpsaT4gPHJkZjpsaT43OUJDMjI2N0QxODVCOTM4MTA4RDQ2N0ZBNEI0QzVBOTwvcmRmOmxpPiA8cmRmOmxpPjdDMTMzQkQ1NDA3MzQ3RTVBREJFMzJBNDlCODIzRUFEPC9yZGY6bGk+IDxyZGY6bGk+ODE2QzZGQUI0NTQ4NzMyNjU5NTc2NkNCNEYzNDFEQUQ8L3JkZjpsaT4gPHJkZjpsaT44MzZFNkZCNjlEMDk4Njg5RDc4RDdEQjlEQjhDREExRTwvcmRmOmxpPiA8cmRmOmxpPjg1QTM5MUEyMkM2NEY1Q0IwQTM3QTg2MzZFNTRGOUY2PC9yZGY6bGk+IDxyZGY6bGk+OEE0QkZEOTQzQUZGOTlEMDdEREU1MUYwMDFDNEE5REE8L3JkZjpsaT4gPHJkZjpsaT45NEMzMkU2QTE1MTdCNzBBNDM5ODVBQTc2NTM0NEI2OTwvcmRmOmxpPiA8cmRmOmxpPkFCMzlENjBENTExNEVFOEE4RkJBREUyRTkyMEM0NUExPC9yZGY6bGk+IDxyZGY6bGk+QjIwMUZGOTM3QzYwNzkxMEY4MUY5REJERkNDRkZGRTk8L3JkZjpsaT4gPHJkZjpsaT5CRTYxMzMxREQ1MkI2MjlFNjgwNUVCMzQ3MkRFRTJEMjwvcmRmOmxpPiA8cmRmOmxpPkJFQzM4NTRBODA1RkQ1NkM3RThEMkUxN0M0NzA5ODkwPC9yZGY6bGk+IDxyZGY6bGk+Qzg5NkI0OTZGMTgyREU1MTgzNTg3MEIwOTM0MUQ4RTg8L3JkZjpsaT4gPHJkZjpsaT5DQkJEN0U5OEM1MEI0RTE0RDA0MkNFNTMzQUE1QTgyMDwvcmRmOmxpPiA8cmRmOmxpPkQ5NjQzNUIwNkRFNTQ2OTg4MDUyMjVDNERBRkUzOEIyPC9yZGY6bGk+IDxyZGY6bGk+RTJCNTc3NDY4ODE4NEI2Mzk4OTE0RTI4MkQ5RThFODQ8L3JkZjpsaT4gPHJkZjpsaT5FNDJCMEFDNjg1OTAyMTcyQzIxNjEyQkJGMjFGRjg0QjwvcmRmOmxpPiA8cmRmOmxpPkU1QjQzNTBCREVFMTQ1NUMxM0UxNTU1NEM2MEY2QjQ0PC9yZGY6bGk+IDxyZGY6bGk+RUI3NzhBRjNENDVERUNBQkFCRUEwRkZDQTg4QTEyNDM8L3JkZjpsaT4gPHJkZjpsaT5GNTY3RjdBNDRCNTJFQUMwNTYxNkVBODdGRjlEMzMxQzwvcmRmOmxpPiA8cmRmOmxpPkY1RjgzQTQyMzI4N0E0MUUyMTM5ODdDNTRERjhFOUQ3PC9yZGY6bGk+IDxyZGY6bGk+RkVBQkZDQTQyQzY1N0ZFN0Y1MjEzOEQ0NkQyRTQ2MjM8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MDQ3NzM4NzYtZTg2Zi0xMWU3LTg4MmMtYWRiZmQ5NWE3NjU0PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjA4ZjFmZmI5LWM1MWUtMTE3OS1iNTJlLWFkNGFiZjVjNmRhZDwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDowYjM2MmY4Yi1hY2I2LTExZTUtOGZmZS1lMzQ2MTgxMGQzZTk8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MTAwMDFlZTUtZGVmNy03MjRiLTg3OTctZDg4YjE0ZWI3YjExPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjE0Y2YxMGI4LWNlOTItMTE3OS04ZDJhLWIzNjcyY2QwOWI2MzwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDoxNzM4ZDA5ZS05YTk4LTExZTUtOTE3ZS1kNGExOTRhYWE2N2U8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MWZkODY3YmItYzJlOC0xMTc5LWFkOTYtZjBjODUzNzZkYjFkPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjIxMzMzNjE3LWNjYWItMDg0OS04YWFmLWE0MzQwY2ZiZGVmZjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDoyNGI4YzllYS05MDU3LTExZTYtODBkYi04ZTk5ZjZiZDFiNTY8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6MmRmNzZkN2YtOWMyMy0xMWU1LWJlOTUtZDNiYjFlNDBhYmZhPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjM0NDUxNTQyLTlhYjQtMTFlNS05MTdlLWQ0YTE5NGFhYTY3ZTwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDozNTU4NmExZi00M2FiLTExNzktYTg2Ny1hMmFiMmIxYjU2OTY8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6Mzg2ZDAwYzAtNmRjMi0xMTc3LWFiNjUtYTIwYWMzNDdjYzI2PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjNhNDdmMTQxLWJlNmItZjE0My1hMzM3LTM4ZmIwZGQzMzljYjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDozYjk1ZmY2Zi1hYjAwLTExNzktOGEyYS1lYmY4MzMyOTc0NTc8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6NDVjOGUzYjMtYjg5Mi00ZTQwLTg3YjUtYWIwNTk0NmFjMDE2PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQ4YTI0ZDkyLWUyMzMtMjM0NC1iNTQ1LWE3OTA3MDY1MjJiMzwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo0YmNiZWZkMS04MTBlLTJkNGEtYTA4NS04MGVmYmMwZjJiODA8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6NTUzNTRjMmEtYzMyOC0xMTc5LWFkOTYtZjBjODUzNzZkYjFkPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjcxODQ0ZWUwLWMwY2MtMTE3OS05ODliLWNlNWRkM2Y3NmNhYjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo3MzFhNjYwZC1jY2Q4LWNiNDQtOWZkYS1jOTY1NjAwYTlmOTI8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6NzdiYjEwZmYtYjI4ZC0xMWU4LThiN2UtZjE3MTY4ZDMxZTljPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjgyNGIxODI5LTliYTUtMTFlNS1hZmM2LTg3NjcxZTA3ZTBjNDwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo4MzQ2YzY1NC1kMzM0LTEwNDMtYjZjNS1kYTM3N2QwYWIyNTg8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6OTgyODRiN2UtOWIzNi0xMWU1LTkxN2UtZDRhMTk0YWFhNjdlPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjlkNDM5Y2UwLWIyM2UtMTFlNS05MTYxLWY5ZDdjYzE1OTQzMjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo5ZWQ1MWIzNS1hYzM2LTExNzktYmE0ZS1kZjIxY2JlNzI1Yjk8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6YTE2NTQzNjYtODg0ZS0xMWU1LThjOTAtYzY5MjYzYzdiOTYxPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmEzMzUzZGI3LWE4MDItOTc0Mi1iZmYzLTI0Mzk4YjY5OTI5ZTwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDphZDM0MWU1Ni1iMjczLTE2NDktODY2ZC0xN2E5MjcxZjExODg8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6YmExNjlmMjMtOTA1OC0xMWU2LTgwZGItOGU5OWY2YmQxYjU2PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmJlNjYzNjRhLWUwM2YtNWU0OS05YmY0LWM0YjIwMTc3NTliNTwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpiZTY2YzcxYy1hYTQ1LTExZTUtYmY4Yi1hZWNlNTk4MWMzNmQ8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6Yzc5Yzc3YzYtOWMxOS0xMWU1LWJlOTUtZDNiYjFlNDBhYmZhPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmNjZDJjZGNhLTQ2OWUtMTE3OS1iYzUzLWRmNDJmNjRkYjZhYzwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkZDE2YWYyNi1iNGI2LTExNzktODkwYi05YjY5NDhiZDgzZTk8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6ZTNmZmVlNjgtM2MxMi03MzQzLWE1NTItOTAxYmFkMTViOGMwPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmVhOGYyYzNkLTkwNTMtMTFlNi04MGRiLThlOTlmNmJkMWI1NjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmMTc1NDg3ZC05YjcwLTExZTUtYWU3Mi1lYmI4OWUwZmQwZWY8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6Zjg4Y2M5NGQtYzcwZS0xMTc5LWJjNzQtYzljNmY5NjcyYTQ0PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmY5MTdmNjM5LTkwNGUtMTFlNi05MThjLWZmZjgyYjQxY2YyZTwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmYWU1ZDczNy05YTIzLTExZTUtOTJlNC04YzM5MzI2N2QwMWM8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjAwMWU2NDI1LWI5ZTgtMWQ0My1hY2EzLWQwMzM3MDM4NGFjYzwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTgwODNBMzJBMUI2ODVERTQ8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjAyZDdmMjgzLTE0ZTUtNDAyOS1hZWZhLThmMGIwOTk0NWQyMDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MDUyN2I1ODctZGRiZi1jNzQ2LWI3YzYtZGQ5MDlhNzhhZDllPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDowRUVEMzFGQkQxQjBFMjExQjc5OUFEQTUzNjYzOTg5NTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MGNkOWFiZWMtM2UyOC1hZjQ3LTk1NjctZjBlY2EwZTU4MGFkPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDoxMDdGMjg5NDUxNTAxMUU4QkNGOEU4NzI4QzNERDBCMDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MTBjZGNiZGMtY2M2NS00ZWJmLWEzZmEtMWZmNjIyMTc2ODZjPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDoxM2Q2YjY5My0zM2QwLWZmNDctOTk1Yy0yZGRkYzQ0NTgxMTI8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjFGRjAyMjJBNzI3RkUzMTE4QTIyRkI5QzU1Rjk3RkVGPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDoxY2MzNWUzOC0yMTY3LTk4NDgtOTNhOC05ZmMyNTAxNGMzMzM8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjI2NzdiOWEzLTQxZDItMzE0NC1iNTI0LWQ3N2U1YTYyZGI0MDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MjZlYjJmNWItNWViYy00ODk3LWEyZmItYjc0MGQ5ZTMwZDc2PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDoyQkU5QjkyOUIyNkExMUU1QjIxNjhFODMzRDJENUU0RjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MmEyYTA2OWEtNjEwNS00NzM3LWE0ZjktNmJiNWEwNzI2ZjdhPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDoyYzRhZDFjYy1lNzUwLTFlNDctYTlmMi0xNTEwZTFiMDRiOTM8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjJkZWZlNGVjLTdjYzctYmU0OS1iYzg5LTQ5OGUzZmQ1ZjVmZjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6MzRDNjBDN0JCMkQwMTFFNTg4NUM5MjhFNTk3ODMxQ0Y8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjM2Y2ViMGI3LTU4MTktNTQ0NC1iN2NmLWU2OWEyODBmNWFhMTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6M0VBQzJERDc1MzUxRTgxMTk3NkFGMzlCNEI2QUZCRjg8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjNhNWFiMjgwLTQwZmUtNGY1ZS05ZmE2LTcxNjE2YjczODEyYjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6M2Q1Njg0OTgtOTg0ZC00NThhLWIyNDktZWFjYzMyMjUyYTIwPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo0MTk0ZmE2Mi1jYWRlLThmNDktYTIxNy1lY2E3ZWUzZDIyYTA8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjQ0MzMyRjU5QjI2MDExRTU4RDNGOEJEQUJDMENEMEFDPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo0NmVkZjRlNC05MTUyLTVlNGItODA4Ny1kYTQzN2JjNWRjM2M8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjQ4RTNEMDA3MDgyMDY4MTE4MjJBRDdEMjNEMDQ0QTk1PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo1Y2EzNTUzMS1lOTZmLTRjMjAtOWViYi01M2U3NTJkMDMxYWQ8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjVlODc5ZTZmLWE3MjMtMjI0Ny1iOGQ4LWE5MDI4YzY4YmQyZjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6NjViOTJlMzAtNWU0NC0wNjRmLTk3YWQtMzg2YWI5ZTQ3NzEwPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo2ODc0QjFFNzZBMjA2ODExODIyQUM2N0Y1OEJFQTE3OTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6NjliYWZkZWItNDM4NS04MjQ4LTk2NDgtMTIyN2YxMTE2ZTViPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo2QTc0QjFFNzZBMjA2ODExODIyQUM2N0Y1OEJFQTE3OTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6NkZENTNBMzgwQTIwNjgxMTgyMkFDRjE5MTgwRTgxQjI8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjZlYjFkY2Y1LTliNjctOWQ0NC05MWJmLWZmODQzYWNmMTZmMTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6NzI2MGY1YjQtY2MxNy1kZjRlLWIwMWUtZjEzYWQyMWQwODkwPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo3NDljYmFlOC0xNTRmLTM5NDAtOWVlNi0yMmQxZjgwZmEzYTE8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjc3OUQyNjQwQjI1QjExRTU5M0MxRDg5NTlDNDg0NDg1PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo3YTE1ZGNmMS1kYTE4LTQ3YzUtYWI0ZS1iOTQ4NTUyOTAyNjc8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjdhOTJkNDBiLTY5ZTctNDlhMy04ZDIzLTIzZjNkNzc0ZmVkYTwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6N2MwMmQ3YjEtMDNkYS00Zjg1LTk5YzAtMDBiM2YwMzI5MDNmPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo3ZGRjODNmMS1jYTIxLTlhNDMtYWFlMS1kMjhkZTkyMjc3OWQ8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjhEMzA2NTQ0OTYxQjExRTQ4OTM3REM3Rjg4OUZGMDQzPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo4RkNCRUNBRkIyNkMxMUU1OUExNDgwMjUxQTI3MzQzNjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6OGM2NWIxOTYtOWNhNC1mNDQ0LTlkMzQtZDM1MzM4YTllMjE1PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDo4Y2M3ODA2MS0yNzk2LTRlYTAtYTVhZC1hNjk3ZDRjMjA3OGU8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjkzNTk1Mzc0LTc5MjUtM2U0ZC1iMDRjLTk2YzU2OTY1NGNkYjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6OTU5NkI5OTE3NzIwNjgxMTgyMkFDNjdGNThCRUExNzk8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOjlGMUZFMkJFRTNDMEU1MTE5QUU5OUNFNTZGNjc4NzY3PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpCQkFFMjI5OEYxMTlFOTExODhFMjgzQjVGRjY0QkU5MjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6QzM3MTlGNDQwMkM0RTUxMUJBNDE4NUE1ODhCNTEwODc8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOkM5NjUwQ0I5MDcyMDY4MTE4MDgzQTE1REU3MzQzNjUyPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpENTNBODdBQzQxNjdFNDExQkZERUY2ODdGMzU2NEY5NzwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6REJDMjdENjQyRTZCRTUxMTlGQkVGMkREMkU4REFDRUY8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOkRFQjkwOEE1OEI3OEU1MTE5MTk5OUVFQkJCRDI4M0UyPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpGODdGMTE3NDA3MjA2ODExODIyQUNCNkU2OTFDMjRGRjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6YTIyZmVmZDItNTM0MS05NDQ4LWFiNDQtYWJhZjhmNDgxOTlhPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDphMjk1Y2U2Ny1iOWIxLThhNGUtOGZmYS02YjJjOTIxMDlmMTY8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmE2NDcwMTE5LTg3ZWUtOGU0ZC04ODZlLTM1MDUwY2Y3YTBjYzwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6YTdiMjA5MmItMDg2Zi02NTQ3LWJhNTUtNzEzN2ZhOTRmZjVjPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDphN2M2ZjA0NS1lNTE3LTVlNGUtOTUzZi1mY2I3ODMyMzZkMDY8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmE4NGU1MWFmLWJhZTYtNGNiOS05ZGQ3LTZmOTJjYWVjZDQ1NDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6YWVkZjcwYWMtOGExNy05OTQ1LTgxYzctM2FmNWFlM2UwM2VhPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpiMjljYzBmMi05MTg1LTQ0ZjEtOWU5YS1kMzhkMTkwMmU5OGQ8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmJhMGJjNGViLTJjYzgtMTg0ZC1iN2Q1LTE2MzQxM2JkY2I5MjwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6YmMxYzdmNWYtNTMzMy1kZDQ3LTg1NmMtMDFlNTJhN2NiMWY4PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpiZTE0OWFhNy0zZDM4LTc5NGEtOWVhMi0xYWFiMDAxNGMwNzY8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmJmYWIwNDVmLTQ4MTItNDdlNi05N2NlLWNjNzk1NmUzYTFhNzwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6YzIxNWY4ODUtNGI4Ny01YjQxLTg1M2YtM2Q5NmRlNWMxOThlPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpjNWIxODhiNC1hZTMzLTRiODctYmRjZC05M2U5Yzk0MWM1YjA8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmM5YTI2YzkyLTQ1MTgtNGI1YS04NjIwLWIxYjExMTZlMGZkZDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6Y2YwMDViZTUtNWYzZi1mMTQ1LWI5OGEtYTU2YjU1NTk4YzkyPC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDpkZDliOTBkMi01MjcyLTQyOWUtODQ2Zi1mMTMxMmE0ODNlNjE8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmU1NmQyNjUyLWM3YzQtMzk0ZC05MzA4LTlmM2Q5YmQzMGU1MDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6ZTcwNTM5OWQtNDY0ZS00M2ZmLWE1MmMtY2RjOGE4YmY3ZWE2PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDplZDAxYWNlYS0xNDYwLTYxNGQtODdlNC1mMmEzNDM1NjA3Njk8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmVlNDYzYjU0LTRjMjItNGMyZC1hZjQwLTdlN2U0Yzc2YTcwMDwvcmRmOmxpPiA8cmRmOmxpPnhtcC5kaWQ6ZWVlNzBjZjMtZDRiZC05MjQxLThiNzAtN2NjYmFkMzViZGU2PC9yZGY6bGk+IDxyZGY6bGk+eG1wLmRpZDplZmQ5MzI1Mi01MjBkLWYxNDEtOTAxMy0wZGI3MTBhZWRmNzU8L3JkZjpsaT4gPHJkZjpsaT54bXAuZGlkOmY1YjljZjZkLTM2YjgtYTc0MS1iMGZmLTE3ZGU0YzQwNjZjNjwvcmRmOmxpPiA8L3JkZjpCYWc+IDwvcGhvdG9zaG9wOkRvY3VtZW50QW5jZXN0b3JzPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjk4NTg5MDg0LTI5MmItNTg0Yi05MzgwLTViZmNhNzYyZmM5OSIgc3RFdnQ6d2hlbj0iMjAxOS0wNS0wNlQxMToyNzoyOCswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplY2UyZWZjMi01NDlkLTBkNDgtYTExNi1kZTI1ZmU1NzNkYzkiIHN0RXZ0OndoZW49IjIwMTktMDUtMDZUMTE6NDM6MjQrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NDQ5NDBhMmEtNzEwNy00YmFlLThjOTMtY2ZjNGRkM2UyYjc2IiBzdEV2dDp3aGVuPSIyMDE5LTA3LTAyVDEyOjIwOjE5KzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iZGVyaXZlZCIgc3RFdnQ6cGFyYW1ldGVycz0iY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjZlYjlkOTFjLTI5NDAtNGMwZS1iMjEwLTg3NGMwNmY5NzBkMyIgc3RFdnQ6d2hlbj0iMjAxOS0wNy0wMlQxMjoyMDoxOSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1ZTViYWU1ZS05NDM5LWViNDgtYmIyMS1mNmMzZTA5ZjE4MzYiIHN0RXZ0OndoZW49IjIwMjEtMTAtMjRUMTQ6MzE6MTYrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4wIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NDQ5NDBhMmEtNzEwNy00YmFlLThjOTMtY2ZjNGRkM2UyYjc2IiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NWJmZGU1MDUtMmVkMy1lZjQxLWFiYjgtNWRjYTRhNjUxZjVlIiBzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTg1ODkwODQtMjkyYi01ODRiLTkzODAtNWJmY2E3NjJmYzk5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+UQTyIAAAAptJREFUaN7l2ktoE0EYwPH/xtRXbRupRlsQ04JoRRQE8aQiYhHFg+JFRD1oC4oVfJx6UDwIRSsURYUiorWCiohaRSz0IIoExMfBS7A+wEIjqXFpFySm6XrYTTEmpunuJu7OfJdsJjNf8svMJDPsKLqu82covWpmQWliDHgF3ARuAKqdZHpjIOO5D3eED1gNnAcGgHPAHCeTuy3KgaPAB/PRLyIyHQGzR18CS0RFpmOVOV+3i4wEmAXcBY6LjARQgLPACZGR6TgFHPAEUkGnpixKtf+7leYXgK2uRU5XErTVtvJ1WYjI0gYuLThkJc0UoAsIFVLZX+re6wrtZVPl0/GyZ9paO38x14D1gO6antxc9SQDGBudS3d8l52U64B9rhquO2ffGr9WUwF2f7nOcKrSbtrTQIWjwzVYBg0zrH2aqcoYfSMbePtzBZ1DzUST85z47oLAYRObe5pMdheyoxo6661tVEJvFIZTRRkkg+aP0C8370LsRg2wzbHhOpCAB/Hs8uXlUDfNuA6PwLdkdp1kcXeqB4HbjiDDGoQ1Jau8faFOXdC47ogq9Kol7801Zo8OirCsy7e2bRRl7ZovtsiA3JjLJBoyACwSHQmwUgbkYhmQ9TIga2VAzpcBWSEDskoG5EwZkKMyIDUZkDEZkP0yICMyIN/LgHwhOvIj8El05P1chaIhu0VHvgbeiY5s/9cLoiAjwB3Rkccwjq4Ji3wEPM5XwevIGNA8USUvI3VgPzlu8IiEbAUeFlLRq8iLQFuhlb2I7ABaJtPA57E5eBI4wgTndv4Ov0eAKrAH6LHS2As9+RzjTlWP1QRuRv4AmjBOXX22k8iNw1UDLgNngCEnEroJGQeumLuJmJOJ/zdSB/qAq8A9IFGMN/kNt6GNd9kLeHQAAAAASUVORK5CYII=";
1394
- const _hoisted_1$g = ["src"];
1395
- const _sfc_main$s = /* @__PURE__ */ defineComponent({
1396
- __name: "logo",
1397
- props: {
1398
- theme: { type: String, validator: (v) => ["light", "dark"].includes(v) },
1399
- showTitle: { type: Boolean, default: true }
1400
- },
1401
- setup(__props) {
1402
- const props = __props;
1403
- const { t } = useI18n("UI");
1404
- let slots = ref();
1405
- getParentSlots(null, "dt-theme").then((rsp) => {
1406
- slots.value = rsp;
1407
- });
1408
- const title = t("COMPANY_NAME");
1409
- const { getLogoWidth } = useMenu();
1410
- const getLogoClass = computed(() => {
1411
- 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 `;
1412
- });
1413
- return (_ctx, _cache) => {
1414
- return openBlock(), createElementBlock("div", {
1415
- class: normalizeClass(unref(getLogoClass)),
1416
- style: normalizeStyle({
1417
- minWidth: `${unref(getLogoWidth)}px`
1418
- })
1419
- }, [
1420
- unref(slots)?.logo ? (openBlock(), createBlock(unref(DtSlotContainer), {
1421
- key: 0,
1422
- template: unref(slots).logo
1423
- }, null, 8, ["template"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1424
- createElementVNode("img", { src: unref(logoUrl) }, null, 8, _hoisted_1$g),
1425
- withDirectives(createElementVNode("div", { class: "dt-logo__title text-base font-bold transition-all duration-500 pl-3" }, toDisplayString(unref(title)), 513), [
1426
- [vShow, __props.showTitle]
1427
- ])
1428
- ], 64))
1429
- ], 6);
1430
- };
1431
- }
1432
- });
1433
- const _sfc_main$r = /* @__PURE__ */ defineComponent({
1434
- __name: "trigger",
1435
- props: { theme: String },
1436
- setup(__props) {
1437
- const props = __props;
1438
- const { getCollapsed, toggleCollapsed } = useMenu();
1439
- return (_ctx, _cache) => {
1440
- return openBlock(), createElementBlock("div", {
1441
- class: normalizeClass(["flex w-12 h-full cursor-pointer items-center justify-center", props.theme]),
1442
- onClick: _cache[0] || (_cache[0] = (...args) => unref(toggleCollapsed) && unref(toggleCollapsed)(...args))
1443
- }, [
1444
- createElementVNode("i", {
1445
- class: normalizeClass(["i leading-none", unref(getCollapsed) ? "ic:baseline-format-indent-increase" : "ic:baseline-format-indent-decrease"])
1446
- }, null, 2)
1447
- ], 2);
1448
- };
1449
- }
1450
- });
1451
- const _hoisted_1$f = { class: "dt-breadcrumb" };
1452
- const _sfc_main$q = /* @__PURE__ */ defineComponent({
1453
- __name: "bread-crumb",
1454
- setup(__props) {
1455
- const { getIsZH } = useHeader();
1456
- let routes = ref([]);
1457
- const { currentRoute = null } = useRouter();
1458
- watchEffect(() => {
1459
- if (!currentRoute || currentRoute.value.path === "/")
1460
- return;
1461
- const { meta, path } = unref(currentRoute);
1462
- let activePath = meta?.currentActiveMenu || path;
1463
- routes.value = getBreadCrumb(activePath);
1464
- });
1465
- return (_ctx, _cache) => {
1466
- const _component_ABreadcrumb = Breadcrumb;
1467
- return openBlock(), createElementBlock("div", _hoisted_1$f, [
1468
- createVNode(_component_ABreadcrumb, { routes: unref(routes) }, {
1469
- itemRender: withCtx(({ route }) => [
1470
- createElementVNode("span", null, toDisplayString((unref(getIsZH) ? route.label : route.enLabel) || route.meta?.title), 1)
1471
- ]),
1472
- _: 1
1473
- }, 8, ["routes"])
1474
- ]);
1475
- };
1476
- }
1477
- });
1478
- const _hoisted_1$e = {
1479
- key: 0,
1480
- class: "dt-menu-filter h-7 pr-2"
1481
- };
1482
- const _hoisted_2$9 = ["onClick"];
1483
- const _hoisted_3$7 = {
1484
- key: 0,
1485
- class: "flex items-center justify-center h-full overflow-hidden"
1486
- };
1487
- const _sfc_main$p = /* @__PURE__ */ defineComponent({
1488
- __name: "menu-filter",
1489
- setup(__props) {
1490
- const { t } = useI18n("UI");
1491
- const menuList = ref([]);
1492
- const router = useRouter();
1493
- const filter = ref("");
1494
- const { getShowSearch, getIsZH } = useHeader();
1495
- const isUseDef = computed(() => {
1496
- return isBoolean(getShowSearch.value);
1497
- });
1498
- function visibleChange(e) {
1499
- if (e) {
1500
- filterMenu();
1501
- } else {
1502
- filter.value = null;
1503
- }
1504
- }
1505
- function filterMenu() {
1506
- menuList.value = getFilterMenu(filter.value, true);
1507
- }
1508
- function navigation(url) {
1509
- router.push(url);
1510
- setTimeout(() => {
1511
- filter.value = "";
1512
- menuList.value = [];
1513
- });
1514
- }
1515
- return (_ctx, _cache) => {
1516
- const _component_AEmpty = Empty;
1517
- const _component_AInputSearch = InputSearch;
1518
- const _component_APopover = Popover;
1519
- return unref(isUseDef) ? (openBlock(), createElementBlock("div", _hoisted_1$e, [
1520
- createVNode(_component_APopover, {
1521
- placement: "bottom",
1522
- overlayClassName: "dt-menu-filter__popover",
1523
- trigger: "focus",
1524
- onVisibleChange: visibleChange
1525
- }, {
1526
- content: withCtx(() => [
1527
- (openBlock(true), createElementBlock(Fragment, null, renderList(menuList.value, (menu) => {
1528
- return openBlock(), createElementBlock("p", {
1529
- onClick: ($event) => navigation(menu.url),
1530
- class: "px-5 leading-9 border-gray-200 border-dashed border-b m-0 cursor-pointer transition-all duration-300 text-13"
1531
- }, toDisplayString(unref(getIsZH) ? menu.label : menu.enLabel), 9, _hoisted_2$9);
1532
- }), 256)),
1533
- !menuList.value.length ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
1534
- createVNode(_component_AEmpty, {
1535
- description: "\u6682\u65E0\u6570\u636E",
1536
- imageStyle: { width: "100%" }
1537
- })
1538
- ])) : createCommentVNode("", true)
1539
- ]),
1540
- default: withCtx(() => [
1541
- createVNode(_component_AInputSearch, {
1542
- value: filter.value,
1543
- "onUpdate:value": _cache[0] || (_cache[0] = ($event) => filter.value = $event),
1544
- placeholder: unref(t)("FILTER_MORE"),
1545
- onInput: filterMenu,
1546
- size: unref(UiSize).SMALL
1547
- }, null, 8, ["value", "placeholder", "size"])
1548
- ]),
1549
- _: 1
1550
- })
1551
- ])) : createCommentVNode("", true);
1552
- };
1553
- }
1554
- });
1555
- const _hoisted_1$d = { class: "lang m-0" };
1556
- const _hoisted_2$8 = ["onClick"];
1557
- const _hoisted_3$6 = {
1558
- class: "pr-2",
1559
- size: 16
1560
- };
1561
- const _hoisted_4$5 = /* @__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" }, [
1562
- /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-language" })
1563
- ], -1);
1564
- const _sfc_main$o = /* @__PURE__ */ defineComponent({
1565
- __name: "lang-picker",
1566
- props: {
1567
- reload: { type: Boolean }
1568
- },
1569
- setup(__props) {
1570
- const props = __props;
1571
- const visible = ref(false);
1572
- let currentLang = DtCache.getLocal(CacheKey.LOCALE);
1573
- async function toggleLang(lang) {
1574
- visible.value = false;
1575
- if (lang !== currentLang) {
1576
- currentLang = lang;
1577
- await changeLocale(lang);
1578
- props.reload && location.reload();
1579
- }
1580
- }
1581
- return (_ctx, _cache) => {
1582
- const _component_APopover = Popover;
1583
- const _directive_icon = resolveDirective("icon");
1584
- return openBlock(), createBlock(_component_APopover, {
1585
- placement: "bottom",
1586
- visible: visible.value,
1587
- "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
1588
- overlayClassName: "dt-lang-picker__popover",
1589
- trigger: "click"
1590
- }, {
1591
- content: withCtx(() => [
1592
- createElementVNode("ul", _hoisted_1$d, [
1593
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(localeList), (it) => {
1594
- return openBlock(), createElementBlock("li", {
1595
- onClick: ($event) => toggleLang(it.event),
1596
- class: normalizeClass(["px-4 my-1 leading-9 flex border-gray-200 cursor-pointer hover:bg-gray-100 transition-all duration-300 text-13", it.event === unref(currentLang) ? "active bg-gray-100" : ""])
1597
- }, [
1598
- withDirectives(createElementVNode("span", _hoisted_3$6, null, 512), [
1599
- [_directive_icon, it.icon]
1600
- ]),
1601
- createElementVNode("span", null, toDisplayString(it.text), 1)
1602
- ], 10, _hoisted_2$8);
1603
- }), 256))
1604
- ])
1605
- ]),
1606
- default: withCtx(() => [
1607
- _hoisted_4$5
1608
- ]),
1609
- _: 1
1610
- }, 8, ["visible"]);
1611
- };
1612
- }
1613
- });
1614
- const _hoisted_1$c = { 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" };
1615
- const _sfc_main$n = /* @__PURE__ */ defineComponent({
1616
- __name: "notify",
1617
- setup(__props) {
1618
- let slots = ref();
1619
- getParentSlots(null, "dt-theme").then((rsp) => {
1620
- slots.value = rsp;
1621
- });
1622
- return (_ctx, _cache) => {
1623
- const _component_APopover = Popover;
1624
- const _directive_icon = resolveDirective("icon");
1625
- return openBlock(), createBlock(_component_APopover, {
1626
- trigger: "click",
1627
- overlayClassName: "dt-notify__popover"
1628
- }, {
1629
- content: withCtx(() => [
1630
- unref(slots)?.notify ? (openBlock(), createBlock(unref(DtSlotContainer$1), {
1631
- key: 0,
1632
- template: unref(slots).notify
1633
- }, null, 8, ["template"])) : createCommentVNode("", true)
1634
- ]),
1635
- default: withCtx(() => [
1636
- createElementVNode("span", _hoisted_1$c, [
1637
- withDirectives(createElementVNode("span", null, null, 512), [
1638
- [_directive_icon, "ant-design:bell-outlined"]
1639
- ]),
1640
- unref(slots)?.notifyBadge ? (openBlock(), createBlock(unref(DtSlotContainer$1), {
1641
- key: 0,
1642
- template: unref(slots).notifyBadge
1643
- }, null, 8, ["template"])) : createCommentVNode("", true)
1644
- ])
1645
- ]),
1646
- _: 1
1647
- });
1648
- };
1649
- }
1650
- });
1651
- const _hoisted_1$b = { class: "lang m-0" };
1652
- const _hoisted_2$7 = ["onClick"];
1653
- const _hoisted_3$5 = /* @__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" }, [
1654
- /* @__PURE__ */ createElementVNode("i", { class: "block i ic:baseline-format-size" })
1655
- ], -1);
1656
- const _sfc_main$m = /* @__PURE__ */ defineComponent({
1657
- __name: "size",
1658
- setup(__props) {
1659
- const { t } = useI18n("UI");
1660
- const { setThemeConf } = useThemeStore();
1661
- const { getUiSize } = useHeader();
1662
- const sizeList = [
1663
- {
1664
- text: t("LARGE_SIZE"),
1665
- event: UiSize.LARGE
1666
- },
1667
- {
1668
- text: t("MIDDLE_SIZE"),
1669
- event: UiSize.MIDDLE
1670
- },
1671
- {
1672
- text: t("SMALL_SIZE"),
1673
- event: UiSize.SMALL
1674
- }
1675
- ];
1676
- const visible = ref(false);
1677
- async function toggleLang(size) {
1678
- visible.value = false;
1679
- setThemeConf({
1680
- headOptions: {
1681
- size
1682
- }
1683
- });
1684
- }
1685
- return (_ctx, _cache) => {
1686
- return openBlock(), createBlock(unref(Popover$1), {
1687
- placement: "bottom",
1688
- visible: visible.value,
1689
- "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event),
1690
- overlayClassName: "dt-size__popover",
1691
- trigger: "click"
1692
- }, {
1693
- content: withCtx(() => [
1694
- createElementVNode("ul", _hoisted_1$b, [
1695
- (openBlock(), createElementBlock(Fragment, null, renderList(sizeList, (it) => {
1696
- return createElementVNode("li", {
1697
- onClick: ($event) => toggleLang(it.event),
1698
- class: normalizeClass(["px-4 my-1 leading-9 flex border-gray-200 cursor-pointer hover:bg-gray-100 transition-all duration-300 text-13", it.event === unref(getUiSize) ? "active bg-gray-100" : ""])
1699
- }, [
1700
- createElementVNode("span", null, toDisplayString(it.text), 1)
1701
- ], 10, _hoisted_2$7);
1702
- }), 64))
1703
- ])
1704
- ]),
1705
- default: withCtx(() => [
1706
- _hoisted_3$5
1707
- ]),
1708
- _: 1
1709
- }, 8, ["visible"]);
1710
- };
1711
- }
1712
- });
1713
- const _imports_0 = "data:image/png;base64,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";
1714
- const LOCKSCREEN = "_LOCKSCREEN";
1715
- const useLockscreenStore = defineStore({
1716
- id: "lockscreen",
1717
- state: () => ({
1718
- isLock: DtCache.getLocal(LOCKSCREEN)?.isLock === true
1719
- }),
1720
- actions: {
1721
- setLock(payload, pwd) {
1722
- this.isLock = payload;
1723
- let info = DtCache.getLocal(LOCKSCREEN) ?? {};
1724
- if (pwd)
1725
- info.pwd = pwd;
1726
- DtCache.setLocal(LOCKSCREEN, {
1727
- ...info,
1728
- isLock: this.isLock
1729
- });
1730
- }
1731
- }
1732
- });
1733
- const _hoisted_1$a = { class: "m-0" };
1734
- const _hoisted_2$6 = {
1735
- class: "pr-2",
1736
- size: 16
1737
- };
1738
- const _hoisted_3$4 = /* @__PURE__ */ createElementVNode("span", null, "\u9501\u5B9A\u5C4F\u5E55", -1);
1739
- const _hoisted_4$4 = {
1740
- class: "pr-2",
1741
- size: 16
1742
- };
1743
- const _hoisted_5$3 = { class: "dt_header_icon h-12 text-lg text-gray-800 cursor-pointer px-3 hover:bg-gray-500 hover:bg-opacity-50 transition-all duration-300 flex items-center" };
1744
- const _hoisted_6$3 = /* @__PURE__ */ createElementVNode("img", { src: _imports_0 }, null, -1);
1745
- const _hoisted_7$2 = { class: "pl-2 text-13" };
1746
- const _hoisted_8$2 = { class: "login-box" };
1747
- const _hoisted_9$2 = { class: "pl-2 text-13" };
1748
- const _sfc_main$l = /* @__PURE__ */ defineComponent({
1749
- __name: "user-info",
1750
- setup(__props) {
1751
- const { t } = useI18n("UI");
1752
- const go = useGo();
1753
- const { getShowLoginOut, getLockscreen, loginOutClick } = useHeader();
1754
- const useLockscreen = useLockscreenStore();
1755
- let slots = ref();
1756
- getParentSlots(null, "dt-theme").then((rsp) => {
1757
- slots.value = rsp;
1758
- });
1759
- const popoverVisible = ref(false);
1760
- const visible = ref(false);
1761
- const password = ref(null);
1762
- const getUserInfo = DtCache.getLocal(CacheKey.USER_INFO);
1763
- function signOut() {
1764
- popoverVisible.value = false;
1765
- if (loginOutClick && isFunction(loginOutClick)) {
1766
- loginOutClick();
1767
- } else {
1768
- go(Pages.LOGIN);
1769
- }
1770
- }
1771
- function lockScreen() {
1772
- popoverVisible.value = false;
1773
- visible.value = true;
1774
- }
1775
- function onLock() {
1776
- useLockscreen.setLock(true, unref(password));
1777
- visible.value = false;
1778
- popoverVisible.value = false;
1779
- }
1780
- return (_ctx, _cache) => {
1781
- const _component_AAvatar = Avatar;
1782
- const _component_APopover = Popover;
1783
- const _component_AInputPassword = InputPassword;
1784
- const _component_AButton = Button;
1785
- const _component_AModal = Modal;
1786
- const _directive_icon = resolveDirective("icon");
1787
- return openBlock(), createElementBlock(Fragment, null, [
1788
- createVNode(_component_APopover, {
1789
- visible: popoverVisible.value,
1790
- "onUpdate:visible": _cache[2] || (_cache[2] = ($event) => popoverVisible.value = $event),
1791
- placement: "bottom",
1792
- overlayClassName: "dt-user-info__popover",
1793
- trigger: "click"
1794
- }, {
1795
- content: withCtx(() => [
1796
- createElementVNode("div", _hoisted_1$a, [
1797
- unref(slots).userInfo ? (openBlock(), createBlock(unref(DtSlotContainer$1), {
1798
- key: 0,
1799
- template: unref(slots).userInfo
1800
- }, null, 8, ["template"])) : createCommentVNode("", true),
1801
- unref(getLockscreen) ? (openBlock(), createElementBlock("div", {
1802
- key: 1,
1803
- onClick: _cache[0] || (_cache[0] = ($event) => lockScreen()),
1804
- class: "px-4 my-1 leading-9 flex border-gray-200 cursor-pointer hover:bg-gray-100 transition-all duration-300 text-13"
1805
- }, [
1806
- withDirectives(createElementVNode("span", _hoisted_2$6, null, 512), [
1807
- [_directive_icon, "ant-design:lock-filled"]
1808
- ]),
1809
- _hoisted_3$4
1810
- ])) : createCommentVNode("", true),
1811
- unref(getShowLoginOut) ? (openBlock(), createElementBlock("div", {
1812
- key: 2,
1813
- onClick: _cache[1] || (_cache[1] = ($event) => signOut()),
1814
- class: "px-4 my-1 leading-9 flex border-gray-200 cursor-pointer hover:bg-gray-100 transition-all duration-300 text-13"
1815
- }, [
1816
- withDirectives(createElementVNode("span", _hoisted_4$4, null, 512), [
1817
- [_directive_icon, "ant-design:logout-outlined"]
1818
- ]),
1819
- createElementVNode("span", null, toDisplayString(unref(t)("LOGIN_OUT")), 1)
1820
- ])) : createCommentVNode("", true)
1821
- ])
1822
- ]),
1823
- default: withCtx(() => [
1824
- createElementVNode("div", _hoisted_5$3, [
1825
- createVNode(_component_AAvatar, { size: 28 }, createSlots({
1826
- default: withCtx(() => [
1827
- unref(slots)?.icon ? (openBlock(), createBlock(unref(DtSlotContainer$1), {
1828
- key: 0,
1829
- template: unref(slots).icon
1830
- }, null, 8, ["template"])) : createCommentVNode("", true)
1831
- ]),
1832
- _: 2
1833
- }, [
1834
- !unref(slots)?.icon ? {
1835
- name: "icon",
1836
- fn: withCtx(() => [
1837
- _hoisted_6$3
1838
- ]),
1839
- key: "0"
1840
- } : void 0
1841
- ]), 1024),
1842
- createElementVNode("span", _hoisted_7$2, toDisplayString(unref(getUserInfo)?.userNo), 1)
1843
- ])
1844
- ]),
1845
- _: 1
1846
- }, 8, ["visible"]),
1847
- createVNode(_component_AModal, {
1848
- visible: visible.value,
1849
- "onUpdate:visible": _cache[4] || (_cache[4] = ($event) => visible.value = $event),
1850
- title: "\u9501\u5B9A\u5C4F\u5E55",
1851
- class: "lockscreen",
1852
- footer: null
1853
- }, {
1854
- default: withCtx(() => [
1855
- createElementVNode("div", _hoisted_8$2, [
1856
- unref(slots)?.icon ? (openBlock(), createBlock(unref(DtSlotContainer$1), {
1857
- key: 0,
1858
- template: unref(slots).icon
1859
- }, null, 8, ["template"])) : createCommentVNode("", true),
1860
- createElementVNode("span", _hoisted_9$2, toDisplayString(unref(getUserInfo)?.userNo), 1),
1861
- createVNode(_component_AInputPassword, {
1862
- class: "mt-2",
1863
- autofocus: "",
1864
- value: password.value,
1865
- "onUpdate:value": _cache[3] || (_cache[3] = ($event) => password.value = $event),
1866
- onKeyup: withKeys(onLock, ["enter"]),
1867
- placeholder: "\u8BF7\u8F93\u5165\u9501\u5C4F\u5BC6\u7801"
1868
- }, null, 8, ["value", "onKeyup"]),
1869
- createVNode(_component_AButton, {
1870
- class: "mt-4",
1871
- type: "primary",
1872
- onClick: onLock,
1873
- block: ""
1874
- }, {
1875
- default: withCtx(() => [
1876
- createTextVNode("\u9501\u5B9A")
1877
- ]),
1878
- _: 1
1879
- })
1880
- ])
1881
- ]),
1882
- _: 1
1883
- }, 8, ["visible"])
1884
- ], 64);
1885
- };
1886
- }
1887
- });
1888
- var HandlerEnum = /* @__PURE__ */ ((HandlerEnum2) => {
1889
- HandlerEnum2[HandlerEnum2["CHANGE_LAYOUT"] = 0] = "CHANGE_LAYOUT";
1890
- HandlerEnum2[HandlerEnum2["SHOW_BREADCRUMB"] = 1] = "SHOW_BREADCRUMB";
1891
- HandlerEnum2[HandlerEnum2["SHOW_SEARCH"] = 2] = "SHOW_SEARCH";
1892
- HandlerEnum2[HandlerEnum2["SHOW_SIZE"] = 3] = "SHOW_SIZE";
1893
- HandlerEnum2[HandlerEnum2["SHOW_NOTICY"] = 4] = "SHOW_NOTICY";
1894
- HandlerEnum2[HandlerEnum2["SHOW_FULL_SCREEN"] = 5] = "SHOW_FULL_SCREEN";
1895
- HandlerEnum2[HandlerEnum2["SHOW_LOCAL"] = 6] = "SHOW_LOCAL";
1896
- HandlerEnum2[HandlerEnum2["SHOW_ROUTE_REUSE"] = 7] = "SHOW_ROUTE_REUSE";
1897
- HandlerEnum2[HandlerEnum2["SHOW_FOOTER"] = 8] = "SHOW_FOOTER";
1898
- HandlerEnum2[HandlerEnum2["CONTENT_MODE"] = 9] = "CONTENT_MODE";
1899
- return HandlerEnum2;
1900
- })(HandlerEnum || {});
1901
- function changeTheme(event, value = {}) {
1902
- let conf = {};
1903
- switch (event) {
1904
- case 0:
1905
- const { mode, type, split, headTheme, menuTheme } = value;
1906
- conf = {
1907
- headOptions: {
1908
- theme: headTheme
1909
- },
1910
- menuOptions: {
1911
- mode,
1912
- type,
1913
- split,
1914
- theme: menuTheme,
1915
- show: true
1916
- }
1917
- };
1918
- break;
1919
- case 1:
1920
- conf = {
1921
- headOptions: {
1922
- showBreadCrumb: value
1923
- }
1924
- };
1925
- break;
1926
- case 2:
1927
- conf = {
1928
- headOptions: {
1929
- showSearch: value
1930
- }
1931
- };
1932
- break;
1933
- case 4:
1934
- conf = {
1935
- headOptions: {
1936
- showNotice: value
1937
- }
1938
- };
1939
- break;
1940
- case 3:
1941
- conf = {
1942
- headOptions: {
1943
- showSize: value
1944
- }
1945
- };
1946
- break;
1947
- case 5:
1948
- conf = {
1949
- headOptions: {
1950
- showFullScreen: value
1951
- }
1952
- };
1953
- break;
1954
- case 6:
1955
- conf = {
1956
- headOptions: {
1957
- showLocaleSwitch: value
1958
- }
1959
- };
1960
- break;
1961
- case 7:
1962
- conf = {
1963
- routeReuse: {
1964
- show: value
1965
- }
1966
- };
1967
- break;
1968
- case 8:
1969
- conf = {
1970
- footerOptions: {
1971
- show: value
1972
- }
1973
- };
1974
- break;
1975
- case 9:
1976
- conf = {
1977
- content: {
1978
- contentMode: value
1979
- }
1980
- };
1981
- break;
1982
- }
1983
- useThemeStore().setThemeConf(conf);
1984
- }
1985
- const _hoisted_1$9 = { class: "flex flex-row justify-center dt-menu-type" };
1986
- const _hoisted_2$5 = ["onClick"];
1987
- const _hoisted_3$3 = /* @__PURE__ */ createElementVNode("div", { class: "dt-menu-type__item" }, null, -1);
1988
- const _hoisted_4$3 = [
1989
- _hoisted_3$3
1990
- ];
1991
- const _sfc_main$k = /* @__PURE__ */ defineComponent({
1992
- __name: "menu-type",
1993
- setup(__props) {
1994
- const { getMenuType, getMenuMode } = useMenu();
1995
- const menuTypeList = [
1996
- {
1997
- title: "\u5DE6\u4FA7\u83DC\u5355\u6A21\u5F0F",
1998
- headTheme: Theme.LIGHT,
1999
- menuTheme: Theme.DARK,
2000
- mode: MenuMode.INLINE,
2001
- type: MenuType.SIDE,
2002
- split: false
2003
- },
2004
- {
2005
- title: "\u83DC\u5355\u6DF7\u5408\u6A21\u5F0F",
2006
- headTheme: Theme.DARK,
2007
- menuTheme: Theme.LIGHT,
2008
- mode: MenuMode.INLINE,
2009
- type: MenuType.MIX,
2010
- split: true
2011
- },
2012
- {
2013
- title: "\u9876\u90E8\u83DC\u5355\u6A21\u5F0F",
2014
- headTheme: Theme.DARK,
2015
- menuTheme: Theme.LIGHT,
2016
- mode: MenuMode.HORIZONTAL,
2017
- type: MenuType.TOP_MENU,
2018
- split: false
2019
- },
2020
- {
2021
- title: "\u5DE6\u4FA7\u83DC\u5355\u6DF7\u5408\u6A21\u5F0F",
2022
- headTheme: Theme.LIGHT,
2023
- menuTheme: Theme.DARK,
2024
- mode: MenuMode.INLINE,
2025
- type: MenuType.MIX_SIDEBAR,
2026
- split: false
2027
- }
2028
- ];
2029
- function changeMenuType(item) {
2030
- changeTheme(HandlerEnum.CHANGE_LAYOUT, item);
2031
- }
2032
- return (_ctx, _cache) => {
2033
- const _component_ATooltip = Tooltip;
2034
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
2035
- (openBlock(), createElementBlock(Fragment, null, renderList(menuTypeList, (item) => {
2036
- return createVNode(_component_ATooltip, {
2037
- key: item.title,
2038
- title: item.title,
2039
- placement: "bottom"
2040
- }, {
2041
- default: withCtx(() => [
2042
- createElementVNode("div", {
2043
- onClick: ($event) => changeMenuType(item),
2044
- class: normalizeClass([
2045
- `dt-menu-type__list p-3 relative w-14 h-12 mr-4 overflow-hidden cursor-pointer bg-slate-100 rounded shadow-sm
2046
- shadow-gray-200`,
2047
- `dt-menu-type__item--${item.type}`,
2048
- {
2049
- [`dt-menu-type__item--active`]: unref(getMenuType) === item.type && unref(getMenuMode) === item.mode
2050
- }
2051
- ])
2052
- }, _hoisted_4$3, 10, _hoisted_2$5)
2053
- ]),
2054
- _: 2
2055
- }, 1032, ["title"]);
2056
- }), 64))
2057
- ]);
2058
- };
2059
- }
2060
- });
2061
- const _hoisted_1$8 = { class: "flex justify-between mb-5" };
2062
- const _sfc_main$j = /* @__PURE__ */ defineComponent({
2063
- __name: "select",
2064
- props: {
2065
- event: { type: Number },
2066
- disabled: { type: Boolean },
2067
- title: { type: String },
2068
- def: { type: [String, Number] },
2069
- initValue: { type: [String, Number] },
2070
- options: {
2071
- type: Array,
2072
- default: () => []
2073
- }
2074
- },
2075
- setup(__props) {
2076
- const props = __props;
2077
- const getBindValue = computed(() => {
2078
- return props.def ? { value: props.def, defaultValue: props.initValue || props.def } : {};
2079
- });
2080
- function handleChange(val) {
2081
- props.event && changeTheme(props.event, val);
2082
- }
2083
- return (_ctx, _cache) => {
2084
- const _component_ASelect = Select;
2085
- return openBlock(), createElementBlock("div", _hoisted_1$8, [
2086
- createElementVNode("span", null, toDisplayString(__props.title), 1),
2087
- createVNode(_component_ASelect, mergeProps(unref(getBindValue), {
2088
- disabled: __props.disabled,
2089
- size: "small",
2090
- class: "w-32",
2091
- options: __props.options,
2092
- onChange: handleChange
2093
- }), null, 16, ["disabled", "options"])
2094
- ]);
2095
- };
2096
- }
2097
- });
2098
- const _hoisted_1$7 = { class: "flex justify-between mb-5" };
2099
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
2100
- __name: "switch",
2101
- props: {
2102
- event: {
2103
- type: Number
2104
- },
2105
- disabled: { type: Boolean },
2106
- title: { type: String },
2107
- def: {
2108
- type: Boolean
2109
- }
2110
- },
2111
- setup(__props) {
2112
- const props = __props;
2113
- const { t } = useI18n("UI");
2114
- const getBindValue = computed(() => {
2115
- return props.def ? { checked: props.def } : {};
2116
- });
2117
- function handleChange(e) {
2118
- props.event && changeTheme(props.event, e);
2119
- }
2120
- return (_ctx, _cache) => {
2121
- const _component_ASwitch = Switch;
2122
- return openBlock(), createElementBlock("div", _hoisted_1$7, [
2123
- createElementVNode("span", null, toDisplayString(__props.title), 1),
2124
- createVNode(_component_ASwitch, mergeProps(unref(getBindValue), {
2125
- disabled: __props.disabled,
2126
- checkedChildren: unref(t)("ON"),
2127
- unCheckedChildren: unref(t)("OFF"),
2128
- onChange: handleChange
2129
- }), null, 16, ["disabled", "checkedChildren", "unCheckedChildren"])
2130
- ]);
2131
- };
2132
- }
2133
- });
2134
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
2135
- __name: "feature",
2136
- setup(__props) {
2137
- const { t } = useI18n("UI");
2138
- const {
2139
- getShowBread,
2140
- getShowSearch,
2141
- getShowUiSize,
2142
- getShowNotice,
2143
- getShowFullScreen,
2144
- getShowLocale
2145
- } = useHeader();
2146
- const { getShowMultipleTab } = useMultipleTab();
2147
- const { getShowFooter, getContentMode } = useTheme();
2148
- const switchItems = [
2149
- {
2150
- title: t("BREAD_CURB"),
2151
- event: HandlerEnum.SHOW_BREADCRUMB,
2152
- def: getShowBread
2153
- },
2154
- {
2155
- title: t("MENU_FILTER"),
2156
- event: HandlerEnum.SHOW_SEARCH,
2157
- def: getShowSearch
2158
- },
2159
- {
2160
- title: t("NOTICE"),
2161
- event: HandlerEnum.SHOW_NOTICY,
2162
- def: getShowNotice
2163
- },
2164
- {
2165
- title: t("SIZE"),
2166
- event: HandlerEnum.SHOW_SIZE,
2167
- def: getShowUiSize
2168
- },
2169
- {
2170
- title: t("SHOW_FULLE"),
2171
- event: HandlerEnum.SHOW_FULL_SCREEN,
2172
- def: getShowFullScreen
2173
- },
2174
- {
2175
- title: t("LOCAL"),
2176
- event: HandlerEnum.SHOW_LOCAL,
2177
- def: getShowLocale
2178
- },
2179
- {
2180
- title: t("ROUTE_REUSE"),
2181
- event: HandlerEnum.SHOW_ROUTE_REUSE,
2182
- def: getShowMultipleTab
2183
- },
2184
- {
2185
- title: t("SHOW_FOOTER"),
2186
- event: HandlerEnum.SHOW_FOOTER,
2187
- def: getShowFooter
2188
- }
2189
- ];
2190
- const selectItems = [
2191
- {
2192
- title: t("CONTENT_FIXED_WIDTH"),
2193
- event: HandlerEnum.CONTENT_MODE,
2194
- def: getContentMode,
2195
- options: [
2196
- {
2197
- value: ContentMode.FULL,
2198
- label: t("FULL")
2199
- },
2200
- {
2201
- value: ContentMode.FIXED,
2202
- label: t("FIXED")
2203
- }
2204
- ]
2205
- }
2206
- ];
2207
- return (_ctx, _cache) => {
2208
- return openBlock(), createElementBlock(Fragment, null, [
2209
- (openBlock(), createElementBlock(Fragment, null, renderList(switchItems, (item) => {
2210
- return createVNode(_sfc_main$i, {
2211
- key: item.title,
2212
- title: item.title,
2213
- event: item.event,
2214
- def: unref(item.def)
2215
- }, null, 8, ["title", "event", "def"]);
2216
- }), 64)),
2217
- (openBlock(), createElementBlock(Fragment, null, renderList(selectItems, (item) => {
2218
- return createVNode(_sfc_main$j, {
2219
- key: item.title,
2220
- title: item.title,
2221
- event: item.event,
2222
- def: unref(item.def),
2223
- options: item.options
2224
- }, null, 8, ["title", "event", "def", "options"]);
2225
- }), 64))
2226
- ], 64);
2227
- };
2228
- }
2229
- });
2230
- const _hoisted_1$6 = { class: "mt-5" };
2231
- const _hoisted_2$4 = { class: "dt-setting-theme__tips p-3 text-12 bg-gray-100 rounded" };
2232
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
2233
- __name: "setting-theme",
2234
- setup(__props) {
2235
- const { t } = useI18n("UI");
2236
- const visible = ref(false);
2237
- const {
2238
- getShowBread,
2239
- getShowSearch,
2240
- getShowUiSize,
2241
- getShowNotice,
2242
- getShowFullScreen,
2243
- getShowLocale
2244
- } = useHeader();
2245
- const { getShowMultipleTab } = useMultipleTab();
2246
- const { getShowFooter, getContentMode } = useTheme();
2247
- const { getMenuType, getMenuMode } = useMenu();
2248
- const defaultConf = getConfig();
2249
- function getConfig() {
2250
- return {
2251
- contentMode: unref(getContentMode),
2252
- menuOptions: {
2253
- mode: unref(getMenuMode),
2254
- type: unref(getMenuType),
2255
- split: unref(getMenuType) === MenuType.MIX ? true : false
2256
- },
2257
- headOptions: {
2258
- showBreadCrumb: unref(getShowBread),
2259
- showSearch: unref(getShowSearch),
2260
- notice: unref(getShowNotice),
2261
- showFullScreen: unref(getShowFullScreen),
2262
- showLocaleSwitch: unref(getShowLocale)
2263
- },
2264
- mulTabsOptions: {
2265
- show: unref(getShowMultipleTab)
2266
- },
2267
- footerOptions: {
2268
- show: unref(getShowFooter)
2269
- }
2270
- };
2271
- }
2272
- function copy() {
2273
- const afterUpdateConfig = getConfig();
2274
- let copyObj = {};
2275
- const isDiff = (newVal, oldVal) => newVal !== oldVal ? newVal : null;
2276
- const isSameObj = (val1, val2) => JSON.stringify(val1) === JSON.stringify(val2);
2277
- const getDiff = (target, orgTarget) => {
2278
- let obj = {};
2279
- for (let it in target) {
2280
- if (isDiff(target[it], orgTarget[it]) !== null) {
2281
- obj[it] = target[it];
2282
- }
2283
- }
2284
- return obj;
2285
- };
2286
- for (let it in afterUpdateConfig) {
2287
- if (!isSameObj(afterUpdateConfig[it], defaultConf[it])) {
2288
- copyObj[it] = getDiff(afterUpdateConfig[it], defaultConf[it]);
2289
- }
2290
- }
2291
- if (Object.keys(copyObj).length) {
2292
- if (copyText(JSON.stringify(copyObj).replaceAll('"', ""))) {
2293
- Modal$1.success({
2294
- centered: true,
2295
- okText: "\u786E\u5B9A",
2296
- title: "\u64CD\u4F5C\u6210\u529F",
2297
- content: "\u590D\u5236\u6210\u529F,\u8BF7\u5230 src/core/settings/theme.ts \u4E2D\u4FEE\u6539\u914D\u7F6E\uFF01"
2298
- });
2299
- }
2300
- } else {
2301
- Modal$1.info({
2302
- centered: true,
2303
- okText: "\u786E\u5B9A",
2304
- title: "\u62F7\u8D1D\u63D0\u793A",
2305
- content: "\u672A\u68C0\u6D4B\u5230\u4FEE\u6539\u4EFB\u4F55\u914D\u7F6E\u4FE1\u606F!"
2306
- });
2307
- }
2308
- }
2309
- function reset() {
2310
- useThemeStore().setThemeConf(defaultConf);
2311
- }
2312
- return (_ctx, _cache) => {
2313
- const _component_ADivider = Divider;
2314
- const _component_AButton = Button;
2315
- const _component_ADrawer = Drawer;
2316
- const _directive_icon = resolveDirective("icon");
2317
- return openBlock(), createElementBlock(Fragment, null, [
2318
- createElementVNode("span", {
2319
- onClick: _cache[0] || (_cache[0] = ($event) => visible.value = true),
2320
- 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"
2321
- }, [
2322
- withDirectives(createElementVNode("span", null, null, 512), [
2323
- [_directive_icon, "ant-design:setting-outlined"]
2324
- ])
2325
- ]),
2326
- createVNode(_component_ADrawer, {
2327
- visible: visible.value,
2328
- "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => visible.value = $event),
2329
- title: unref(t)("PROJECT_SETTING"),
2330
- placement: "right",
2331
- width: "320"
2332
- }, {
2333
- default: withCtx(() => [
2334
- createVNode(_component_ADivider, null, {
2335
- default: withCtx(() => [
2336
- createTextVNode(toDisplayString(unref(t)("NAV_MODE")), 1)
2337
- ]),
2338
- _: 1
2339
- }),
2340
- createVNode(unref(_sfc_main$k)),
2341
- createVNode(_component_ADivider, null, {
2342
- default: withCtx(() => [
2343
- createTextVNode(toDisplayString(unref(t)("PAGE_SHOW")), 1)
2344
- ]),
2345
- _: 1
2346
- }),
2347
- createVNode(unref(_sfc_main$h)),
2348
- createVNode(_component_ADivider),
2349
- createElementVNode("div", _hoisted_1$6, [
2350
- createVNode(_component_AButton, {
2351
- onClick: copy,
2352
- class: "mb-3",
2353
- type: "primary",
2354
- block: ""
2355
- }, {
2356
- default: withCtx(() => [
2357
- createTextVNode(toDisplayString(unref(t)("COPY")), 1)
2358
- ]),
2359
- _: 1
2360
- }),
2361
- createVNode(_component_AButton, {
2362
- onClick: reset,
2363
- class: "mb-3",
2364
- block: ""
2365
- }, {
2366
- default: withCtx(() => [
2367
- createTextVNode(toDisplayString(unref(t)("RESET")), 1)
2368
- ]),
2369
- _: 1
2370
- })
2371
- ]),
2372
- createElementVNode("div", _hoisted_2$4, toDisplayString(unref(t)("DRAWER_TIPS")), 1)
2373
- ]),
2374
- _: 1
2375
- }, 8, ["visible", "title"])
2376
- ], 64);
2377
- };
2378
- }
2379
- });
2380
- function useSplitMenu(splitType) {
2381
- const menusRef = ref([]);
2382
- const { currentRoute } = useRouter();
2383
- const { menusMap } = getMenusMap();
2384
- const { getIsHorizontal, getSplit } = useMenu();
2385
- const throttleHandleSplitLeftMenu = useThrottleFn(handleSplitLeftMenu, 50);
2386
- const splitNotLeft = computed(
2387
- () => unref(splitType) !== MenuSplitTye.LEFT && !unref(getIsHorizontal)
2388
- );
2389
- const getSplitLeft = computed(
2390
- () => !unref(getSplit) || unref(splitType) !== MenuSplitTye.LEFT
2391
- );
2392
- const getSplitTop = computed(
2393
- () => unref(splitType) === MenuSplitTye.TOP
2394
- );
2395
- const normalType = computed(
2396
- () => !unref(getSplit) || unref(splitType) === MenuSplitTye.NONE
2397
- );
2398
- watch(
2399
- [() => unref(currentRoute)?.path, () => unref(splitType)],
2400
- ([path]) => {
2401
- if (unref(splitNotLeft))
2402
- return;
2403
- throttleHandleSplitLeftMenu(path);
2404
- },
2405
- {
2406
- immediate: true
2407
- }
2408
- );
2409
- watch(
2410
- () => getSplit.value,
2411
- () => {
2412
- if (unref(splitNotLeft))
2413
- return;
2414
- getMenus2();
2415
- }
2416
- );
2417
- function handleSplitLeftMenu(path) {
2418
- if (unref(getSplitLeft))
2419
- return;
2420
- menusRef.value = menusMap.filter((it) => it.includesPath.includes(path))[0]?.children;
2421
- }
2422
- async function getMenus2() {
2423
- if (unref(normalType)) {
2424
- menusRef.value = DtCache.getLocal(CacheKey.MENUS)?.children;
2425
- return;
2426
- }
2427
- if (unref(getSplitTop)) {
2428
- menusRef.value = await getShallowMenus();
2429
- }
2430
- }
2431
- getMenus2();
2432
- return { menusRef };
2433
- }
2434
- function getMenus() {
2435
- return DtCache.getLocal(CacheKey.MENUS)?.children;
2436
- }
2437
- function getFirstMenuPath(item) {
2438
- let isFind = false, path = "";
2439
- const getPath = (menu) => {
2440
- if (isFind)
2441
- return;
2442
- if (menu.children && menu.children.length) {
2443
- menu.children.forEach((node) => getPath(node));
2444
- } else {
2445
- path = menu.url;
2446
- isFind = true;
2447
- }
2448
- };
2449
- getPath(item);
2450
- return path;
2451
- }
2452
- function getMenusMap() {
2453
- const menus = getMenus();
2454
- const menusMap = [];
2455
- const getPaths = (menu, path) => {
2456
- if (menu.children && menu.children.length) {
2457
- menu.children.forEach((node) => getPaths(node, path));
2458
- } else {
2459
- path.push(menu.url);
2460
- }
2461
- return path;
2462
- };
2463
- menus.map((item) => {
2464
- item.url = getFirstMenuPath(item);
2465
- menusMap.push({
2466
- parentPath: item.url,
2467
- children: item.children || [],
2468
- includesPath: getPaths(item, [])
2469
- });
2470
- });
2471
- return { menusMap };
2472
- }
2473
- function getShallowMenus() {
2474
- const menus = getMenus();
2475
- const shallowMenuList = menus.map((item) => {
2476
- item.url = getFirstMenuPath(item);
2477
- return { ...item, children: void 0 };
2478
- });
2479
- return shallowMenuList;
2480
- }
2481
- const BasicMenu = {
2482
- items: {
2483
- type: Array
2484
- },
2485
- collapsedShowTitle: Boolean,
2486
- inlineIndent: {
2487
- default: 20
2488
- },
2489
- mode: {
2490
- type: String,
2491
- default: MenuMode.INLINE
2492
- },
2493
- type: {
2494
- type: String,
2495
- default: MenuType.SIDE
2496
- },
2497
- theme: {
2498
- default: Theme.DARK
2499
- },
2500
- inlineCollapsed: Boolean,
2501
- isHorizontal: Boolean,
2502
- beforeClickFn: {
2503
- type: Function
2504
- },
2505
- mixSider: Boolean
2506
- };
2507
- const ItemProp = {
2508
- item: {
2509
- type: Object,
2510
- default: {}
2511
- },
2512
- theme: {
2513
- type: String,
2514
- default: Theme.DARK
2515
- },
2516
- isHorizontal: Boolean,
2517
- showTitle: Boolean,
2518
- beforeClickFn: {
2519
- type: Function
2520
- }
2521
- };
2522
- const contentProps = {
2523
- item: {
2524
- type: Object,
2525
- default: {}
2526
- },
2527
- showTitle: Boolean,
2528
- level: Number,
2529
- isHorizontal: Boolean
2530
- };
2531
- ({
2532
- items: {
2533
- type: Array,
2534
- default: () => []
2535
- },
2536
- collapse: Boolean,
2537
- mixSider: Boolean,
2538
- theme: {
2539
- default: Theme.DARK
2540
- },
2541
- collapsedShowTitle: Boolean,
2542
- beforeClickFn: {
2543
- type: Function
2544
- },
2545
- isSplitMenu: Boolean
2546
- });
2547
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
2548
- __name: "menu-item-content",
2549
- props: contentProps,
2550
- setup(__props) {
2551
- const { getIsZH, getUiSize } = useHeader();
2552
- return (_ctx, _cache) => {
2553
- return openBlock(), createElementBlock("span", {
2554
- class: normalizeClass(["dt-basic-menu-item-content-flex items-center dt-menu-item h-full", unref(getUiSize)])
2555
- }, [
2556
- createElementVNode("i", {
2557
- class: normalizeClass(["menu-icon i", _ctx.item.icon])
2558
- }, null, 2),
2559
- createElementVNode("span", null, toDisplayString(unref(getIsZH) ? _ctx.item.label : _ctx.item.enLabel), 1)
2560
- ], 2);
2561
- };
2562
- }
2563
- });
2564
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
2565
- __name: "basic-menu-item",
2566
- props: ItemProp,
2567
- setup(__props) {
2568
- const props = __props;
2569
- return (_ctx, _cache) => {
2570
- const _component_AMenuItem = MenuItem;
2571
- return openBlock(), createBlock(_component_AMenuItem, {
2572
- key: _ctx.item.url
2573
- }, {
2574
- default: withCtx(() => [
2575
- createVNode(_sfc_main$f, normalizeProps(guardReactiveProps(props)), null, 16)
2576
- ]),
2577
- _: 1
2578
- });
2579
- };
2580
- }
2581
- });
2582
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
2583
- __name: "basic-sub-menu-item",
2584
- props: ItemProp,
2585
- setup(__props) {
2586
- const props = __props;
2587
- const { getShowMenu } = useMenu();
2588
- const {
2589
- theme,
2590
- item
2591
- } = props;
2592
- const menuHasChildren = (menu) => {
2593
- return !!menu.children && menu.children.length > 0;
2594
- };
2595
- return (_ctx, _cache) => {
2596
- const _component_BasicSubMenuItem = resolveComponent("BasicSubMenuItem", true);
2597
- const _component_ASubMenu = SubMenu;
2598
- return openBlock(), createElementBlock(Fragment, null, [
2599
- !menuHasChildren(unref(item)) && unref(getShowMenu) ? (openBlock(), createBlock(_sfc_main$e, normalizeProps(mergeProps({ key: 0 }, props)), null, 16)) : createCommentVNode("", true),
2600
- menuHasChildren(unref(item)) && unref(getShowMenu) ? (openBlock(), createBlock(_component_ASubMenu, {
2601
- class: normalizeClass([unref(theme)]),
2602
- key: unref(item).id,
2603
- popupClassName: "app-top-menu-popup"
2604
- }, {
2605
- title: withCtx(() => [
2606
- createVNode(_sfc_main$f, mergeProps(props, { item: unref(item) }), null, 16, ["item"])
2607
- ]),
2608
- default: withCtx(() => [
2609
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(item).children, (childrenItem) => {
2610
- return openBlock(), createBlock(_component_BasicSubMenuItem, mergeProps({
2611
- key: childrenItem.id
2612
- }, props, { item: childrenItem }), null, 16, ["item"]);
2613
- }), 128))
2614
- ]),
2615
- _: 1
2616
- }, 8, ["class"])) : createCommentVNode("", true)
2617
- ], 64);
2618
- };
2619
- }
2620
- });
2621
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
2622
- __name: "basic-menu",
2623
- props: BasicMenu,
2624
- emits: ["menuClick"],
2625
- setup(__props, { emit: emits }) {
2626
- const {
2627
- theme,
2628
- items,
2629
- mode,
2630
- type,
2631
- isHorizontal,
2632
- inlineIndent,
2633
- mixSider,
2634
- beforeClickFn
2635
- } = __props;
2636
- const { getSplit } = useMenu();
2637
- const { currentRoute } = useRouter();
2638
- const menuState = reactive({
2639
- defaultSelectedKeys: [],
2640
- openKeys: [],
2641
- selectedKeys: [],
2642
- collapsedOpenKeys: []
2643
- });
2644
- const { handleOpenChange, setOpenKeys, getOpenKeys } = useOpenKeys(
2645
- menuState,
2646
- items,
2647
- type
2648
- );
2649
- watch(
2650
- () => currentRoute.value.path,
2651
- (val) => {
2652
- if (val === "/")
2653
- return;
2654
- const { meta, path } = unref(currentRoute);
2655
- let activePath = meta?.currentActiveMenu || path;
2656
- handleMenuChange(activePath);
2657
- },
2658
- {
2659
- immediate: true
2660
- }
2661
- );
2662
- async function handleMenuChange(path) {
2663
- setOpenKeys(path);
2664
- if (isHorizontal && unref(getSplit)) {
2665
- const parentPath = getBreadCrumb(path, items);
2666
- menuState.selectedKeys = [parentPath?.[0]?.url];
2667
- } else {
2668
- const parentPaths = await getBreadCrumb(path);
2669
- menuState.selectedKeys = parentPaths.reduce((keys, it) => {
2670
- it.url && keys.push(it.url);
2671
- return keys;
2672
- }, []);
2673
- }
2674
- }
2675
- const { getCollapsed } = useMenu();
2676
- const getInlineCollapsed = computed(() => {
2677
- const isInline = unref(mode) === MenuMode.INLINE;
2678
- if (isInline) {
2679
- return mixSider ? false : unref(getCollapsed);
2680
- }
2681
- return false;
2682
- });
2683
- async function handleMenuClick(item) {
2684
- if (beforeClickFn && isFunction(beforeClickFn)) {
2685
- const flag = await beforeClickFn(item.key);
2686
- if (!flag)
2687
- return;
2688
- }
2689
- emits("menuClick", item.key);
2690
- menuState.selectedKeys = [item.key];
2691
- }
2692
- return (_ctx, _cache) => {
2693
- const _component_AMenu = Menu;
2694
- return openBlock(), createBlock(_component_AMenu, {
2695
- theme: _ctx.theme,
2696
- selectedKeys: menuState.selectedKeys,
2697
- defaultSelectedKeys: menuState.defaultSelectedKeys,
2698
- openKeys: menuState.openKeys,
2699
- inlineIndent: _ctx.inlineIndent,
2700
- subMenuOpenDelay: 0.2,
2701
- mode: _ctx.mode,
2702
- collapsible: "",
2703
- onClick: handleMenuClick,
2704
- onOpenChange: unref(handleOpenChange),
2705
- collapsed: unref(getInlineCollapsed),
2706
- class: normalizeClass(unref(getSplit) ? "dt-split-menu" : "")
2707
- }, {
2708
- default: withCtx(() => [
2709
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.items, (item) => {
2710
- return openBlock(), createBlock(_sfc_main$d, {
2711
- key: item.id,
2712
- item,
2713
- theme: _ctx.theme,
2714
- isHorizontal: _ctx.isHorizontal
2715
- }, null, 8, ["item", "theme", "isHorizontal"]);
2716
- }), 128))
2717
- ]),
2718
- _: 1
2719
- }, 8, ["theme", "selectedKeys", "defaultSelectedKeys", "openKeys", "inlineIndent", "subMenuOpenDelay", "mode", "onOpenChange", "collapsed", "class"]);
2720
- };
2721
- }
2722
- });
2723
- const _sfc_main$b = defineComponent({
2724
- name: "LayoutMenu",
2725
- props: {
2726
- theme: String,
2727
- splitType: {
2728
- type: Number,
2729
- default: MenuSplitTye.NONE
2730
- },
2731
- isHorizontal: Boolean,
2732
- menuMode: String
2733
- },
2734
- setup(props) {
2735
- const {
2736
- getMenuType,
2737
- getMenuMode,
2738
- getMenuTheme,
2739
- getCollapsed,
2740
- getCollapsedShowTitle,
2741
- getIsHorizontal,
2742
- getIsSidebarType,
2743
- getSplit
2744
- } = useMenu();
2745
- const {
2746
- getShowLogo
2747
- } = useHeader();
2748
- const {
2749
- menusRef
2750
- } = useSplitMenu(toRef(props, "splitType"));
2751
- const slots = ref();
2752
- getParentSlots(null, "dt-theme").then((rsp) => {
2753
- slots.value = rsp;
2754
- });
2755
- const getComputedTheme = computed(() => props.theme || unref(getMenuTheme));
2756
- const getComputedMenuMode = computed(() => props.menuMode || unref(getMenuMode));
2757
- const getIsShowLogo = computed(() => unref(getShowLogo) && unref(getIsSidebarType));
2758
- const getUseScroll = computed(() => {
2759
- return !unref(getIsHorizontal) && (unref(getIsSidebarType) || props.splitType === MenuSplitTye.LEFT || props.splitType === MenuSplitTye.NONE);
2760
- });
2761
- const getLogoClass = computed(() => [`dt-menu-logo`, unref(getComputedTheme)]);
2762
- const getMenuProps = computed(() => {
2763
- const menus = unref(menusRef);
2764
- return {
2765
- menus,
2766
- beforeClickFn: beforeMenuClickFn,
2767
- items: menus,
2768
- theme: unref(getComputedTheme),
2769
- collapse: unref(getCollapsed),
2770
- collapsedShowTitle: unref(getCollapsedShowTitle),
2771
- onMenuClick: handleMenuClick
2772
- };
2773
- });
2774
- const go = useGo();
2775
- function beforeMenuClickFn(path) {
2776
- if (!isUrl(path)) {
2777
- return true;
2778
- }
2779
- openWindow(path);
2780
- return false;
2781
- }
2782
- function handleMenuClick(path) {
2783
- go(path);
2784
- }
2785
- function renderHeader() {
2786
- if (!unref(getIsShowLogo))
2787
- return null;
2788
- if (slots.value?.logo) {
2789
- return createVNode(DtSlotContainer, {
2790
- "template": slots.value?.logo,
2791
- "data": {
2792
- theme: unref(getComputedTheme),
2793
- collapsed: unref(getCollapsed)
2794
- }
2795
- }, null);
2796
- }
2797
- return createVNode(_sfc_main$s, {
2798
- "showTitle": !unref(getCollapsed),
2799
- "class": unref(getLogoClass),
2800
- "theme": unref(getComputedTheme)
2801
- }, null);
2802
- }
2803
- function renderFooter() {
2804
- if (unref(getMenuType) === MenuType.SIDE || unref(getMenuType) === MenuType.MIX && props.splitType === 2) {
2805
- return slots.value?.menuFooter ? createVNode(DtSlotContainer, {
2806
- "template": slots.value?.menuFooter,
2807
- "data": {
2808
- theme: unref(getComputedTheme),
2809
- collapsed: unref(getCollapsed)
2810
- }
2811
- }, null) : null;
2812
- }
2813
- return null;
2814
- }
2815
- function renderMenu() {
2816
- const {
2817
- menus,
2818
- ...menuProps
2819
- } = unref(getMenuProps);
2820
- if (!menus || !menus.length)
2821
- return null;
2822
- return createVNode(_sfc_main$c, mergeProps(menuProps, {
2823
- "isHorizontal": props.isHorizontal,
2824
- "type": unref(getMenuType),
2825
- "showLogo": unref(getIsShowLogo),
2826
- "mode": unref(getComputedMenuMode),
2827
- "items": menus
2828
- }), null);
2829
- }
2830
- return () => {
2831
- return createVNode(Fragment, null, [renderHeader(), unref(getUseScroll) ? createVNode(DtScrollContainer, null, {
2832
- default: () => renderMenu()
2833
- }) : renderMenu(), renderFooter()]);
2834
- };
2835
- }
2836
- });
2837
- const _hoisted_1$5 = {
2838
- key: 3,
2839
- class: "max-w-full pl-3 pr-20 dt-reuse-tabs__top"
2840
- };
2841
- const _hoisted_2$3 = {
2842
- key: 0,
2843
- class: "flex-1 h-full min-w-0 items-center"
2844
- };
2845
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
2846
- __name: "index",
2847
- props: {
2848
- fixed: Boolean
2849
- },
2850
- setup(__props) {
2851
- const props = __props;
2852
- const { getSplit } = useMenu();
2853
- const {
2854
- getHeaderTheme,
2855
- getShowHeaderLogo,
2856
- getShowHeaderTrigger,
2857
- getShowBread,
2858
- getShowLocale,
2859
- getShowFullScreen,
2860
- getShowSettingTheme,
2861
- getShowNotice,
2862
- getShowTopMenu,
2863
- getShowSearch,
2864
- getShowUiSize
2865
- } = useHeader();
2866
- const { getShowMultipleTab, getMultipleTabPosIsTop } = useMultipleTab();
2867
- const getSplitType = computed(() => {
2868
- return unref(getSplit) ? MenuSplitTye.TOP : MenuSplitTye.NONE;
2869
- });
2870
- const getMenuMode = computed(() => {
2871
- return unref(getSplit) ? MenuMode.HORIZONTAL : null;
2872
- });
2873
- const getShowTab = computed(() => unref(getShowMultipleTab) && unref(getMultipleTabPosIsTop));
2874
- const getHeaderCls = computed(() => {
2875
- let theme = unref(getHeaderTheme);
2876
- let cls = "dt-header flex p-0 items-center justify-between ";
2877
- if (props.fixed) {
2878
- cls += "fixed top-0 left-0 w-full z-10 ";
2879
- }
2880
- cls += `dt-header--${theme}`;
2881
- return cls;
2882
- });
2883
- return (_ctx, _cache) => {
2884
- const _component_ALayoutHeader = LayoutHeader;
2885
- return openBlock(), createBlock(_component_ALayoutHeader, {
2886
- class: normalizeClass([unref(getHeaderCls), "flex items-center justify-between"])
2887
- }, {
2888
- default: withCtx(() => [
2889
- createElementVNode("div", {
2890
- class: normalizeClass(["dt-header-left flex h-full items-center", {
2891
- "w-0 flex-1": unref(getShowTab)
2892
- }])
2893
- }, [
2894
- unref(getShowHeaderLogo) ? (openBlock(), createBlock(unref(_sfc_main$s), {
2895
- key: 0,
2896
- theme: unref(getHeaderTheme),
2897
- class: "dt-header-logo"
2898
- }, null, 8, ["theme"])) : createCommentVNode("", true),
2899
- unref(getShowHeaderTrigger) && !unref(getSplit) && !unref(getShowTab) ? (openBlock(), createBlock(unref(_sfc_main$r), {
2900
- key: 1,
2901
- theme: unref(getHeaderTheme)
2902
- }, null, 8, ["theme"])) : createCommentVNode("", true),
2903
- unref(getShowBread) && !unref(getShowTab) ? (openBlock(), createBlock(unref(_sfc_main$q), { key: 2 })) : createCommentVNode("", true),
2904
- unref(getShowTab) ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
2905
- createVNode(_sfc_main$x)
2906
- ])) : createCommentVNode("", true)
2907
- ], 2),
2908
- unref(getShowTopMenu) ? (openBlock(), createElementBlock("div", _hoisted_2$3, [
2909
- createVNode(_sfc_main$b, {
2910
- isHorizontal: true,
2911
- theme: unref(getHeaderTheme),
2912
- splitType: unref(getSplitType),
2913
- menuMode: unref(getMenuMode)
2914
- }, null, 8, ["theme", "splitType", "menuMode"])
2915
- ])) : createCommentVNode("", true),
2916
- createElementVNode("div", {
2917
- class: "dt-header-action flex items-center",
2918
- style: normalizeStyle({
2919
- "padding-right": unref(getShowSettingTheme) ? "" : "20px"
2920
- })
2921
- }, [
2922
- unref(getShowSearch) ? (openBlock(), createBlock(unref(_sfc_main$p), { key: 0 })) : createCommentVNode("", true),
2923
- unref(getShowNotice) ? (openBlock(), createBlock(unref(_sfc_main$n), { key: 1 })) : createCommentVNode("", true),
2924
- unref(getShowUiSize) ? (openBlock(), createBlock(unref(_sfc_main$m), { key: 2 })) : createCommentVNode("", true),
2925
- unref(getShowFullScreen) ? (openBlock(), createBlock(unref(_sfc_main$w), { key: 3 })) : createCommentVNode("", true),
2926
- unref(getShowLocale) ? (openBlock(), createBlock(unref(_sfc_main$o), {
2927
- key: 4,
2928
- reload: true
2929
- })) : createCommentVNode("", true),
2930
- createVNode(unref(_sfc_main$l)),
2931
- unref(getShowSettingTheme) ? (openBlock(), createBlock(unref(_sfc_main$g), { key: 5 })) : createCommentVNode("", true)
2932
- ], 4)
2933
- ]),
2934
- _: 1
2935
- }, 8, ["class"]);
2936
- };
2937
- }
2938
- });
2939
- function useMenuSwitch() {
2940
- const brokenRef = ref(false);
2941
- const { getMiniWidthNumber } = useMenu();
2942
- const getCollapsedWidth = computed(() => {
2943
- return unref(brokenRef) ? 0 : unref(getMiniWidthNumber);
2944
- });
2945
- function onBreakPointChange(broken) {
2946
- brokenRef.value = broken;
2947
- }
2948
- return { getCollapsedWidth, onBreakPointChange };
2949
- }
2950
- function useTrigger() {
2951
- const { getTrigger, getSplit } = useMenu();
2952
- const getShowTrigger = computed(() => {
2953
- const trigger = unref(getTrigger);
2954
- return trigger && unref(getSplit);
2955
- });
2956
- const getTriggerAttr = computed(() => {
2957
- if (unref(getShowTrigger)) {
2958
- return {};
2959
- }
2960
- return {
2961
- trigger: null
2962
- };
2963
- });
2964
- return { getTriggerAttr, getShowTrigger };
2965
- }
2966
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
2967
- __name: "sider-trigger",
2968
- props: {
2969
- type: {
2970
- type: String,
2971
- default: null
2972
- }
2973
- },
2974
- setup(__props) {
2975
- const { getCollapsed, toggleCollapsed } = useMenu();
2976
- return (_ctx, _cache) => {
2977
- return openBlock(), createElementBlock("div", {
2978
- onClick: _cache[0] || (_cache[0] = withModifiers(
2979
- (...args) => unref(toggleCollapsed) && unref(toggleCollapsed)(...args),
2980
- ["stop"]
2981
- ))
2982
- }, [
2983
- createElementVNode("i", {
2984
- class: normalizeClass(["i", unref(getCollapsed) ? "ant-design:double-right-outlined" : "ant-design:double-left-outlined"])
2985
- }, null, 2)
2986
- ]);
2987
- };
2988
- }
2989
- });
2990
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
2991
- __name: "drag-bar",
2992
- setup(__props) {
2993
- const { getCollapsed, getCanDrag, getMenuWidth } = useMenu();
2994
- const getDragBarStyle = computed(() => {
2995
- if (!unref(getCollapsed)) {
2996
- return { left: `${unref(getMenuWidth)}px` };
2997
- }
2998
- return {};
2999
- });
3000
- const getClass = computed(() => {
3001
- return [
3002
- "dt-darg-bar",
3003
- {
3004
- "dt-darg-bar--hide": !unref(getCanDrag)
3005
- }
3006
- ];
3007
- });
3008
- return (_ctx, _cache) => {
3009
- return openBlock(), createElementBlock("div", {
3010
- class: normalizeClass(unref(getClass)),
3011
- style: normalizeStyle(unref(getDragBarStyle))
3012
- }, null, 6);
3013
- };
3014
- }
3015
- });
3016
- const _hoisted_1$4 = { class: "dt-mix-sider__shallow-menu" };
3017
- const _hoisted_2$2 = { class: "m-0" };
3018
- const _hoisted_3$2 = { class: "dt-mix-sider__sub-shallow-menu" };
3019
- const _hoisted_4$2 = { key: 0 };
3020
- const _hoisted_5$2 = { class: "opacity-60 m-0 py-3 text-lg pt-6" };
3021
- const _hoisted_6$2 = ["onClick"];
3022
- const _hoisted_7$1 = { class: "m-0" };
3023
- const _hoisted_8$1 = ["onClick"];
3024
- const _hoisted_9$1 = { class: "m-0" };
3025
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3026
- __name: "mix-sider",
3027
- setup(__props) {
3028
- const MENU_WIDTH = 80;
3029
- const go = useGo();
3030
- const { getMenuWidth, getMenuTheme, getMixSideTrigger } = useMenu();
3031
- const { setMixSiderIsHasMenu } = useThemeStore();
3032
- const menuModules = getShallowMenus();
3033
- const activeId = ref(null);
3034
- const activePath = ref(null);
3035
- const subMenus = ref([]);
3036
- const getDomStyle = computed(() => setDomWidth(`${unref(subMenus)?.length ? unref(getMenuWidth) : MENU_WIDTH}px`));
3037
- const getWrapStyle = computed(() => setDomWidth(`${MENU_WIDTH}px`));
3038
- const getSubMenuStyle = computed(() => {
3039
- return {
3040
- width: `${unref(getMenuWidth) - MENU_WIDTH}px`,
3041
- left: `${MENU_WIDTH}px`
3042
- };
3043
- });
3044
- function setDomWidth(width) {
3045
- return {
3046
- width,
3047
- minWidth: width,
3048
- maxWidth: width,
3049
- flex: `0 0 ${width}`,
3050
- transition: "all 0.2s"
3051
- };
3052
- }
3053
- const getMenuEvents = {
3054
- onMouseleave: () => {
3055
- setActive(unref(activePath));
3056
- }
3057
- };
3058
- const getItemEvents = (item) => {
3059
- if (unref(getMixSideTrigger) === "hover") {
3060
- return {
3061
- onMouseenter: () => handleModuleClick(item.url, true),
3062
- onClick: () => handleModuleClick(item.url)
3063
- };
3064
- }
3065
- return {
3066
- onClick: () => handleModuleClick(item.url)
3067
- };
3068
- };
3069
- const { currentRoute = null } = useRouter();
3070
- function setActive(path, isHover = false) {
3071
- const pTree = getParentTreeByPath(path);
3072
- if (!isHover) {
3073
- activeId.value = pTree.id;
3074
- }
3075
- subMenus.value = pTree.children;
3076
- setMixSiderIsHasMenu(Boolean(pTree.children?.length));
3077
- }
3078
- function handleModuleClick(path, isHover = false) {
3079
- setActive(path, isHover);
3080
- if (!isHover) {
3081
- go(path);
3082
- }
3083
- }
3084
- watchEffect(() => {
3085
- if (!currentRoute || currentRoute.value.path === "/")
3086
- return;
3087
- const { meta, path } = unref(currentRoute);
3088
- activePath.value = meta?.currentActiveMenu || path;
3089
- setActive(unref(activePath));
3090
- });
3091
- return (_ctx, _cache) => {
3092
- return openBlock(), createElementBlock(Fragment, null, [
3093
- createElementVNode("div", {
3094
- class: "h-full overflow-hidden",
3095
- style: normalizeStyle(unref(getDomStyle))
3096
- }, null, 4),
3097
- createElementVNode("div", mergeProps({
3098
- style: unref(getWrapStyle),
3099
- class: ["dt-mix-sider fixed top-0 left-0 h-full overflow-hidden", unref(getMenuTheme)]
3100
- }, getMenuEvents), [
3101
- createVNode(_sfc_main$s, {
3102
- showTitle: false,
3103
- class: normalizeClass("justify-center z-10")
3104
- }),
3105
- createVNode(unref(DtScrollContainer), { class: "z-10" }, {
3106
- default: withCtx(() => [
3107
- createElementVNode("ul", _hoisted_1$4, [
3108
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(menuModules), (item) => {
3109
- return openBlock(), createElementBlock("li", mergeProps({
3110
- key: item.id,
3111
- class: ["py-3 cursor-pointer relative text-center", {
3112
- "active-menu": item.id === activeId.value
3113
- }]
3114
- }, getItemEvents(item)), [
3115
- createElementVNode("i", {
3116
- class: normalizeClass(["i", item.icon])
3117
- }, null, 2),
3118
- createElementVNode("p", _hoisted_2$2, toDisplayString(item.label), 1)
3119
- ], 16);
3120
- }), 128))
3121
- ])
3122
- ]),
3123
- _: 1
3124
- }),
3125
- createVNode(Transition, { name: "dt-mix-sider__animate" }, {
3126
- default: withCtx(() => [
3127
- subMenus.value?.length ? (openBlock(), createElementBlock("div", {
3128
- key: 0,
3129
- class: "fixed top-0 h-full sub-menu bg-white",
3130
- style: normalizeStyle(unref(getSubMenuStyle))
3131
- }, [
3132
- createVNode(unref(DtScrollContainer), null, {
3133
- default: withCtx(() => [
3134
- createElementVNode("ul", _hoisted_3$2, [
3135
- (openBlock(true), createElementBlock(Fragment, null, renderList(subMenus.value, (menu) => {
3136
- return openBlock(), createElementBlock("li", {
3137
- key: menu.id
3138
- }, [
3139
- menu.children?.length ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
3140
- createElementVNode("p", _hoisted_5$2, toDisplayString(menu.label), 1),
3141
- createElementVNode("ul", null, [
3142
- (openBlock(true), createElementBlock(Fragment, null, renderList(menu.children, (subMenu) => {
3143
- return openBlock(), createElementBlock("li", {
3144
- key: subMenu.id,
3145
- class: normalizeClass(["flex cursor-pointer", {
3146
- "active-menu": subMenu.url === activePath.value
3147
- }]),
3148
- onClick: ($event) => unref(go)(subMenu.url)
3149
- }, [
3150
- subMenu.icon ? (openBlock(), createElementBlock("i", {
3151
- key: 0,
3152
- class: normalizeClass(["i opacity-50 pr-2", subMenu.icon])
3153
- }, null, 2)) : createCommentVNode("", true),
3154
- createElementVNode("p", _hoisted_7$1, toDisplayString(subMenu.label), 1)
3155
- ], 10, _hoisted_6$2);
3156
- }), 128))
3157
- ])
3158
- ])) : (openBlock(), createElementBlock("div", {
3159
- key: 1,
3160
- class: normalizeClass(["sub-menu flex cursor-pointer", {
3161
- "active-menu": menu.url === activePath.value
3162
- }]),
3163
- onClick: ($event) => unref(go)(menu.url)
3164
- }, [
3165
- createElementVNode("i", {
3166
- class: normalizeClass(["i opacity-50 pr-2", menu.icon])
3167
- }, null, 2),
3168
- createElementVNode("p", _hoisted_9$1, toDisplayString(menu.label), 1)
3169
- ], 10, _hoisted_8$1))
3170
- ]);
3171
- }), 128))
3172
- ])
3173
- ]),
3174
- _: 1
3175
- })
3176
- ], 4)) : createCommentVNode("", true)
3177
- ]),
3178
- _: 1
3179
- })
3180
- ], 16)
3181
- ], 64);
3182
- };
3183
- }
3184
- });
3185
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3186
- __name: "index",
3187
- setup(__props) {
3188
- const {
3189
- getMenuFixed,
3190
- getSplit,
3191
- getMenuHidden,
3192
- getMenuWidth,
3193
- getCollapsed,
3194
- getMenuTheme,
3195
- getRealWidth,
3196
- getIsMixMode,
3197
- getIsMixSidebar
3198
- } = useMenu();
3199
- const {
3200
- getCollapsedWidth,
3201
- onBreakPointChange
3202
- } = useMenuSwitch();
3203
- const {
3204
- getTriggerAttr,
3205
- getShowTrigger
3206
- } = useTrigger();
3207
- const dragBarRef = ref(null);
3208
- const sideRef = ref(null);
3209
- const hiddenDomStyle = computed(() => {
3210
- const width = `${unref(getRealWidth)}px`;
3211
- return {
3212
- width,
3213
- overflow: "hidden",
3214
- flex: `0 0 ${width}`,
3215
- maxWidth: width,
3216
- minWidth: width,
3217
- transition: "all 0.2s"
3218
- };
3219
- });
3220
- const showClassSideBarRef = computed(() => {
3221
- const {
3222
- menusRef
3223
- } = useSplitMenu(getSplitType);
3224
- if (!unref(menusRef)?.length)
3225
- return false;
3226
- return unref(getSplit) ? !unref(getMenuHidden) : true;
3227
- });
3228
- useDragLine(sideRef, dragBarRef);
3229
- const getSiderClass = computed(() => {
3230
- let cls = `dt-sideBar overflow-hidden z-10 `;
3231
- if (unref(getMenuFixed)) {
3232
- cls += `dt-sideBar--fixed t-0 l-0 h-full `;
3233
- }
3234
- if (unref(getIsMixMode)) {
3235
- cls += "dt-sideBar--mix ";
3236
- }
3237
- return cls;
3238
- });
3239
- const getSplitType = computed(() => {
3240
- return unref(getSplit) ? MenuSplitTye.LEFT : MenuSplitTye.NONE;
3241
- });
3242
- const getMode = computed(() => {
3243
- return unref(getSplit) ? MenuMode.INLINE : null;
3244
- });
3245
- const renderTrigger = h(_sfc_main$9);
3246
- return (_ctx, _cache) => {
3247
- const _component_ALayoutSider = LayoutSider;
3248
- return unref(getIsMixSidebar) ? (openBlock(), createBlock(_sfc_main$7, {
3249
- key: 0
3250
- })) : (openBlock(), createElementBlock(Fragment, {
3251
- key: 1
3252
- }, [unref(getMenuFixed) ? withDirectives((openBlock(), createElementBlock("div", {
3253
- key: 0,
3254
- style: normalizeStyle(unref(hiddenDomStyle))
3255
- }, null, 4)), [[vShow, unref(showClassSideBarRef)]]) : createCommentVNode("", true), withDirectives(createVNode(_component_ALayoutSider, mergeProps({
3256
- ref_key: "sideRef",
3257
- ref: sideRef,
3258
- collapsible: "",
3259
- breakpoint: "lg",
3260
- class: unref(getSiderClass),
3261
- width: unref(getMenuWidth),
3262
- collapsed: unref(getCollapsed),
3263
- collapsedWidth: unref(getCollapsedWidth),
3264
- onBreakpoint: unref(onBreakPointChange),
3265
- theme: unref(getMenuTheme),
3266
- trigger: unref(renderTrigger)
3267
- }, unref(getTriggerAttr)), {
3268
- default: withCtx(() => [createVNode(_sfc_main$b, {
3269
- theme: unref(getMenuTheme),
3270
- menuMode: unref(getMode),
3271
- splitType: unref(getSplitType)
3272
- }, null, 8, ["theme", "menuMode", "splitType"]), createVNode(_sfc_main$8, {
3273
- ref_key: "dragBarRef",
3274
- ref: dragBarRef
3275
- }, null, 512)]),
3276
- _: 1
3277
- }, 16, ["class", "width", "collapsed", "collapsedWidth", "onBreakpoint", "theme", "trigger"]), [[vShow, unref(showClassSideBarRef)]])], 64));
3278
- };
3279
- }
3280
- });
3281
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3282
- __name: "multiple-header",
3283
- setup(__props) {
3284
- const {
3285
- getHeaderHeight,
3286
- getFixed,
3287
- getShowFullHeaderRef,
3288
- getShowInsetHeaderRef,
3289
- getTabsHeight
3290
- } = useHeader();
3291
- const { getCalcContentWidth, getIsMixMode, getSplit, getIsMixSidebar } = useMenu();
3292
- const { getShowMultipleTab, getMultipleTabPosIsTop } = useMultipleTab();
3293
- const getPlaceholderDomStyle = computed(() => {
3294
- let height = unref(getHeaderHeight);
3295
- if (unref(getIsMixMode)) {
3296
- height = unref(getShowMultipleTab) ? unref(getTabsHeight) : 0;
3297
- }
3298
- return {
3299
- height: `${height}px`
3300
- };
3301
- });
3302
- const getSplitType = computed(() => {
3303
- return unref(getSplit) ? MenuSplitTye.LEFT : MenuSplitTye.NONE;
3304
- });
3305
- const { menusRef } = useSplitMenu(getSplitType);
3306
- const getWrapStyle = computed(() => {
3307
- const style = {};
3308
- if (unref(getIsMixSidebar)) {
3309
- style.width = useThemeStore().getMixSiderIsHasMenu ? unref(getCalcContentWidth) : "calc(100% - 80px)";
3310
- } else if (unref(getSplit) && !unref(menusRef)?.length) {
3311
- style.width = "100%";
3312
- } else if (unref(getFixed)) {
3313
- style.width = unref(getCalcContentWidth);
3314
- }
3315
- if (unref(getShowFullHeaderRef))
3316
- style.top = "48px";
3317
- return style;
3318
- });
3319
- const getClass = computed(() => {
3320
- let cls = "transition-width duration-200 flex-auto";
3321
- if (unref(getFixed)) {
3322
- cls += " fixed top-0 right-0 w-full";
3323
- }
3324
- return cls;
3325
- });
3326
- return (_ctx, _cache) => {
3327
- return openBlock(), createElementBlock("div", null, [
3328
- unref(getFixed) ? (openBlock(), createElementBlock("div", {
3329
- key: 0,
3330
- style: normalizeStyle(unref(getPlaceholderDomStyle))
3331
- }, null, 4)) : createCommentVNode("", true),
3332
- createElementVNode("div", {
3333
- style: normalizeStyle(unref(getWrapStyle)),
3334
- class: normalizeClass(unref(getClass))
3335
- }, [
3336
- unref(getShowInsetHeaderRef) ? (openBlock(), createBlock(_sfc_main$a, { key: 0 })) : createCommentVNode("", true),
3337
- unref(getShowMultipleTab) && !unref(getMultipleTabPosIsTop) ? (openBlock(), createBlock(_sfc_main$x, { key: 1 })) : createCommentVNode("", true)
3338
- ], 6)
3339
- ]);
3340
- };
3341
- }
3342
- });
3343
- const _hoisted_1$3 = { class: "pr-2.5" };
3344
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3345
- __name: "index",
3346
- setup(__props) {
3347
- const { getFooter } = useTheme();
3348
- const { title, subTitle, height } = unref(getFooter);
3349
- const footerOptions = computed(() => {
3350
- return {
3351
- lineHeight: `${height - 1}px`,
3352
- height: `${height}px`,
3353
- padding: "0",
3354
- width: `100%`,
3355
- color: "rgb(156,163,175)"
3356
- };
3357
- });
3358
- return (_ctx, _cache) => {
3359
- return openBlock(), createBlock(unref(LayoutFooter), {
3360
- class: "text-center p-0 w-full block border-t border-gray-200",
3361
- style: normalizeStyle(unref(footerOptions))
3362
- }, {
3363
- default: withCtx(() => [
3364
- createElementVNode("span", _hoisted_1$3, toDisplayString(unref(title)), 1),
3365
- createElementVNode("span", null, toDisplayString(unref(subTitle)), 1)
3366
- ]),
3367
- _: 1
3368
- }, 8, ["style"]);
3369
- };
3370
- }
3371
- });
3372
- const _hoisted_1$2 = ["loading"];
3373
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3374
- __name: "index",
3375
- setup(__props) {
3376
- const { getTransitionMode } = useApp();
3377
- const { getLayoutContentMode, getPageLoading, getOpenPageLoading } = useTheme();
3378
- const { getCanCache } = useMultipleTab();
3379
- const tabStore = useRouteReuseStore();
3380
- const { currentRoute } = useRouter();
3381
- const contentMode = computed(() => unref(currentRoute).meta.contentMode || unref(getLayoutContentMode));
3382
- function getTransitionName(route) {
3383
- return route.meta.transitionName || unref(getTransitionMode);
3384
- }
3385
- const getCaches = computed(() => {
3386
- return tabStore.getCachedTabList;
3387
- });
3388
- return (_ctx, _cache) => {
3389
- const _component_router_view = resolveComponent("router-view");
3390
- const _component_ALayoutContent = LayoutContent;
3391
- return openBlock(), createElementBlock("div", {
3392
- id: "dt-layout-content",
3393
- class: normalizeClass([["dt-layout-content", unref(contentMode)], "relative flex-auto overflow-x-hidden min-h-0 flex"]),
3394
- loading: unref(getPageLoading) && unref(getOpenPageLoading)
3395
- }, [
3396
- createVNode(_component_ALayoutContent, null, {
3397
- default: withCtx(() => [
3398
- createVNode(_component_router_view, null, {
3399
- default: withCtx(({ Component, route }) => [
3400
- createVNode(Transition, {
3401
- name: getTransitionName(route),
3402
- mode: "out-in",
3403
- appear: ""
3404
- }, {
3405
- default: withCtx(() => [
3406
- !route.meta.hideTab && unref(getCanCache) ? (openBlock(), createBlock(KeepAlive, {
3407
- key: 0,
3408
- include: unref(getCaches)
3409
- }, [
3410
- (openBlock(), createBlock(resolveDynamicComponent(Component), {
3411
- key: route.path
3412
- }))
3413
- ], 1032, ["include"])) : (openBlock(), createBlock(resolveDynamicComponent(Component), { key: 1 }))
3414
- ]),
3415
- _: 2
3416
- }, 1032, ["name"])
3417
- ]),
3418
- _: 1
3419
- })
3420
- ]),
3421
- _: 1
3422
- })
3423
- ], 10, _hoisted_1$2);
3424
- };
3425
- }
3426
- });
3427
- const _hoisted_1$1 = { class: "dt-lock-page absolute" };
3428
- const _hoisted_2$1 = { class: "absolute z-10 text-white text-center" };
3429
- const _hoisted_3$1 = { class: "overflow-hidden bg-black" };
3430
- const _hoisted_4$1 = /* @__PURE__ */ createElementVNode("div", { class: "relative box-border circle" }, null, -1);
3431
- const _hoisted_5$1 = { class: "bubbles absolute bottom-0 left-1/2" };
3432
- const _hoisted_6$1 = { class: "charging" };
3433
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
3434
- __name: "Recharge",
3435
- props: {
3436
- battery: {
3437
- type: Object
3438
- },
3439
- calcDischargingTime: {
3440
- type: String
3441
- },
3442
- calcChargingTime: {
3443
- type: String
3444
- },
3445
- batteryStatus: {
3446
- type: String,
3447
- validator: (val) => ["\u5145\u7535\u4E2D", "\u5DF2\u5145\u6EE1", "\u5DF2\u65AD\u5F00\u7535\u6E90"].includes(val)
3448
- }
3449
- },
3450
- setup(__props) {
3451
- return (_ctx, _cache) => {
3452
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
3453
- createElementVNode("div", _hoisted_2$1, toDisplayString(__props.battery?.level) + "%", 1),
3454
- createElementVNode("div", _hoisted_3$1, [
3455
- _hoisted_4$1,
3456
- createElementVNode("ul", _hoisted_5$1, [
3457
- (openBlock(), createElementBlock(Fragment, null, renderList(15, (i) => {
3458
- return createElementVNode("li", { key: i });
3459
- }), 64))
3460
- ])
3461
- ]),
3462
- createElementVNode("div", _hoisted_6$1, [
3463
- createElementVNode("div", null, toDisplayString(__props.batteryStatus), 1),
3464
- withDirectives(createElementVNode("div", null, " \u5269\u4F59\u53EF\u4F7F\u7528\u65F6\u95F4\uFF1A" + toDisplayString(__props.calcDischargingTime), 513), [
3465
- [vShow, Number.isFinite(__props.battery.dischargingTime) && __props.battery.dischargingTime != 0]
3466
- ]),
3467
- withDirectives(createElementVNode("span", null, " \u8DDD\u79BB\u7535\u6C60\u5145\u6EE1\u9700\u8981\uFF1A" + toDisplayString(__props.calcChargingTime), 513), [
3468
- [vShow, Number.isFinite(__props.battery.chargingTime) && __props.battery.chargingTime != 0]
3469
- ])
3470
- ])
3471
- ]);
3472
- };
3473
- }
3474
- });
3475
- function useBattery() {
3476
- const state = reactive({
3477
- battery: {
3478
- charging: false,
3479
- chargingTime: 0,
3480
- dischargingTime: 0,
3481
- level: 100
3482
- }
3483
- });
3484
- function updateBattery(target) {
3485
- for (const key in state.battery) {
3486
- state.battery[key] = target[key];
3487
- }
3488
- state.battery.level = state.battery.level * 100;
3489
- }
3490
- const calcDischargingTime = computed(() => {
3491
- const hour = state.battery.dischargingTime / 3600;
3492
- const minute = state.battery.dischargingTime / 60 % 60;
3493
- return `${~~hour}\u5C0F\u65F6${minute}\u5206\u949F`;
3494
- });
3495
- const calcChargingTime = computed(() => {
3496
- const hour = state.battery.chargingTime / 3600;
3497
- const minute = state.battery.chargingTime / 60 % 60;
3498
- return `${~~hour}\u5C0F\u65F6${~~minute}\u5206\u949F`;
3499
- });
3500
- const batteryStatus = computed(() => {
3501
- if (state.battery.charging && state.battery.level >= 100) {
3502
- return "\u5DF2\u5145\u6EE1";
3503
- } else if (state.battery.charging) {
3504
- return "\u5145\u7535\u4E2D";
3505
- } else {
3506
- return "\u5DF2\u65AD\u5F00\u7535\u6E90";
3507
- }
3508
- });
3509
- onMounted(async () => {
3510
- const BatteryManager = await window.navigator.getBattery();
3511
- updateBattery(BatteryManager);
3512
- BatteryManager.onchargingchange = ({ target }) => {
3513
- updateBattery(target);
3514
- };
3515
- BatteryManager.onchargingtimechange = ({ target }) => {
3516
- updateBattery(target);
3517
- };
3518
- BatteryManager.ondischargingtimechange = ({ target }) => {
3519
- updateBattery(target);
3520
- };
3521
- BatteryManager.onlevelchange = ({ target }) => {
3522
- updateBattery(target);
3523
- };
3524
- });
3525
- return {
3526
- ...toRefs(state),
3527
- batteryStatus,
3528
- calcDischargingTime,
3529
- calcChargingTime
3530
- };
3531
- }
3532
- function useTime() {
3533
- let timer = null;
3534
- let t = reactive({
3535
- month: null,
3536
- week: null,
3537
- date: null,
3538
- hour: null,
3539
- minute: null
3540
- });
3541
- function updateTime() {
3542
- const fillZero = (time) => time < 10 ? `0${time}` : `${time}`;
3543
- t.hour = fillZero(dayjs().get("hour"));
3544
- t.minute = fillZero(dayjs().get("minute"));
3545
- t.month = fillZero(dayjs().get("month") + 1);
3546
- t.date = fillZero(dayjs().get("date"));
3547
- t.week = ["\u4E00", "\u4E8C", "\u4E09", "\u56DB", "\u4E94", "\u516D", "\u65E5"][dayjs().get("day") - 1];
3548
- }
3549
- updateTime();
3550
- onMounted(() => {
3551
- clearInterval(timer);
3552
- timer = setInterval(() => updateTime(), 1e3);
3553
- });
3554
- onUnmounted(() => {
3555
- clearInterval(timer);
3556
- });
3557
- return {
3558
- ...toRefs(t)
3559
- };
3560
- }
3561
- const _hoisted_1 = { class: "lock-box absolute top-5 left-1/2 -translate-x-1/2 z-20" };
3562
- const _hoisted_2 = { class: "flex justify-center" };
3563
- const _hoisted_3 = /* @__PURE__ */ createElementVNode("i", { class: "i ic:baseline-lock" }, null, -1);
3564
- const _hoisted_4 = [
3565
- _hoisted_3
3566
- ];
3567
- const _hoisted_5 = {
3568
- key: 1,
3569
- class: "login-box absolute left-0 top-0 right-0 bottom-0 m-auto w-60 h-80"
3570
- };
3571
- const _hoisted_6 = { class: "pb-3 block text-gray-300" };
3572
- const _hoisted_7 = { class: "w-full mt-1 flex justify-around pt-1" };
3573
- const _hoisted_8 = { class: "local-time absolute" };
3574
- const _hoisted_9 = { class: "time" };
3575
- const _hoisted_10 = { class: "date" };
3576
- const _hoisted_11 = { class: "computer-status absolute flex flex-col" };
3577
- const _hoisted_12 = /* @__PURE__ */ createElementVNode("i", { class: "i ant-design:wifi-outlined" }, null, -1);
3578
- const _hoisted_13 = [
3579
- _hoisted_12
3580
- ];
3581
- const _hoisted_14 = /* @__PURE__ */ createElementVNode("i", { class: "i ant-design:api-outlined" }, null, -1);
3582
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3583
- __name: "Lockscreen",
3584
- setup(__props) {
3585
- const go = useGo();
3586
- let slots = ref();
3587
- getParentSlots(null, "dt-theme").then((rsp) => {
3588
- slots.value = rsp;
3589
- });
3590
- const { loginOutClick } = useHeader();
3591
- const getUserInfo = DtCache.getLocal(CacheKey.USER_INFO);
3592
- const useLockscreen = useLockscreenStore();
3593
- const online = computed(() => navigator.onLine);
3594
- const { month, week, date, hour, minute } = useTime();
3595
- const state = reactive({
3596
- showLogin: false,
3597
- loginLoading: false,
3598
- loginParams: {
3599
- password: ""
3600
- }
3601
- });
3602
- const onLockLogin = (value) => state.showLogin = value;
3603
- const {
3604
- battery,
3605
- batteryStatus,
3606
- calcDischargingTime,
3607
- calcChargingTime
3608
- } = useBattery();
3609
- const goLogin = () => {
3610
- useLockscreen.setLock(false);
3611
- if (loginOutClick && isFunction(loginOutClick)) {
3612
- loginOutClick();
3613
- } else {
3614
- go(Pages.LOGIN);
3615
- }
3616
- };
3617
- function resetLockInfo() {
3618
- useLockscreen.setLock(false);
3619
- DtCache.removeLocal(LOCKSCREEN);
3620
- state.loginParams.password = null;
3621
- }
3622
- const onLogin = () => {
3623
- let pwd = DtCache.getLocal(LOCKSCREEN)?.pwd;
3624
- if (state.loginParams.password === pwd) {
3625
- resetLockInfo();
3626
- }
3627
- };
3628
- return (_ctx, _cache) => {
3629
- const _component_AInputPassword = InputPassword;
3630
- return openBlock(), createElementBlock("div", {
3631
- class: normalizeClass([{ onLockLogin: state.showLogin }, "lockscreen fixed top-0 left-0 flex bg-black text-white overflow-hidden z-50 w-full h-full"]),
3632
- onMousedown: _cache[3] || (_cache[3] = withModifiers(() => {
3633
- }, ["stop"])),
3634
- onContextmenu: _cache[4] || (_cache[4] = withModifiers(() => {
3635
- }, ["prevent"]))
3636
- }, [
3637
- !state.showLogin ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
3638
- createElementVNode("div", _hoisted_1, [
3639
- createElementVNode("div", _hoisted_2, [
3640
- createElementVNode("span", {
3641
- class: "cursor-pointer",
3642
- title: "\u89E3\u9501\u5C4F\u5E55",
3643
- onClick: _cache[0] || (_cache[0] = ($event) => onLockLogin(true))
3644
- }, _hoisted_4)
3645
- ])
3646
- ]),
3647
- createVNode(_sfc_main$2, {
3648
- battery: unref(battery),
3649
- "battery-status": unref(batteryStatus),
3650
- "calc-discharging-time": unref(calcDischargingTime),
3651
- "calc-charging-time": unref(calcChargingTime)
3652
- }, null, 8, ["battery", "battery-status", "calc-discharging-time", "calc-charging-time"])
3653
- ], 64)) : (openBlock(), createElementBlock("div", _hoisted_5, [
3654
- unref(slots)?.icon ? (openBlock(), createBlock(unref(DtSlotContainer$1), {
3655
- key: 0,
3656
- template: unref(slots).icon
3657
- }, null, 8, ["template"])) : createCommentVNode("", true),
3658
- createElementVNode("span", _hoisted_6, toDisplayString(unref(getUserInfo)?.userNo), 1),
3659
- createVNode(_component_AInputPassword, {
3660
- class: "mt-2",
3661
- autofocus: "",
3662
- value: state.loginParams.password,
3663
- "onUpdate:value": _cache[1] || (_cache[1] = ($event) => state.loginParams.password = $event),
3664
- onKeyup: withKeys(onLogin, ["enter"]),
3665
- placeholder: "\u8BF7\u8F93\u5165\u9501\u5C4F\u5BC6\u7801"
3666
- }, null, 8, ["value", "onKeyup"]),
3667
- createElementVNode("div", _hoisted_7, [
3668
- createElementVNode("a", {
3669
- onClick: _cache[2] || (_cache[2] = ($event) => state.showLogin = false)
3670
- }, "\u8FD4\u56DE"),
3671
- createElementVNode("a", { onClick: goLogin }, "\u91CD\u65B0\u767B\u5F55"),
3672
- createElementVNode("a", { onClick: onLogin }, "\u8FDB\u5165\u7CFB\u7EDF")
3673
- ])
3674
- ])),
3675
- createElementVNode("div", _hoisted_8, [
3676
- createElementVNode("div", _hoisted_9, toDisplayString(unref(hour)) + ":" + toDisplayString(unref(minute)), 1),
3677
- createElementVNode("div", _hoisted_10, toDisplayString(unref(month)) + "\u6708" + toDisplayString(unref(date)) + "\u53F7\uFF0C\u661F\u671F" + toDisplayString(unref(week)), 1)
3678
- ]),
3679
- createElementVNode("div", _hoisted_11, [
3680
- createElementVNode("span", {
3681
- class: normalizeClass([{ offline: !unref(online) }, "network"])
3682
- }, _hoisted_13, 2),
3683
- _hoisted_14
3684
- ])
3685
- ], 34);
3686
- };
3687
- }
3688
- });
3689
- const _sfc_main = /* @__PURE__ */ defineComponent({
3690
- __name: "index",
3691
- setup(__props) {
3692
- const { currentRoute } = useRouter();
3693
- const { getShowFullHeaderRef, getIsZH, getHeaderHeight, getUiSize, getLockscreen } = useHeader();
3694
- const { getSplit, getShowMenu, getShowSidebar, getIsMixSidebar } = useMenu();
3695
- const { getFooter, getShowFooter } = useTheme();
3696
- const { height } = unref(getFooter);
3697
- dayjs.locale(unref(getIsZH) ? "zh-cn" : "en");
3698
- const useLockscreen = useLockscreenStore();
3699
- const isLock = computed(() => useLockscreen.isLock);
3700
- const layoutClass = computed(() => {
3701
- let cls = "ant-layout";
3702
- if (unref(getIsMixSidebar)) {
3703
- cls += " ant-layout-has-sider";
3704
- }
3705
- if (unref(getShowMenu)) {
3706
- cls += " flex flex-auto min-h-0 flex-row";
3707
- }
3708
- return cls;
3709
- });
3710
- const layoutOption = computed(() => {
3711
- if (unref(getSplit)) {
3712
- return {
3713
- paddingTop: unref(getHeaderHeight) + "px",
3714
- background: "#f0f2f5"
3715
- };
3716
- }
3717
- });
3718
- const getContentStyle = computed(() => {
3719
- return {
3720
- flex: unref(getSplit) ? `0 0 calc(100% - ${unref(getShowFooter) || 0}px)` : `0 0 calc(100% - ${unref(getShowFooter) ? height : 0}px - ${unref(getHeaderHeight)}px)`,
3721
- overflowY: "auto"
3722
- };
3723
- });
3724
- const router = useRouter();
3725
- watch(
3726
- () => router.currentRoute.value.path,
3727
- (v) => {
3728
- if (v === Pages.LOGIN) {
3729
- DtCache.clearAll();
3730
- const cacheTab = DtCache.getLocal(CacheKey.THEME)?.routeReuse?.cache;
3731
- if (!cacheTab) {
3732
- const tabStore = useRouteReuseStore();
3733
- tabStore.resetState();
3734
- }
3735
- }
3736
- },
3737
- {
3738
- immediate: true
3739
- }
3740
- );
3741
- return (_ctx, _cache) => {
3742
- const _component_ALayout = Layout;
3743
- const _component_AConfigProvider = ConfigProvider;
3744
- return openBlock(), createElementBlock("div", {
3745
- class: normalizeClass(["dt-theme w-full h-full", `dt-theme-${unref(getUiSize)}`])
3746
- }, [
3747
- !unref(isLock) ? (openBlock(), createBlock(_component_AConfigProvider, {
3748
- key: 0,
3749
- locale: unref(getIsZH) ? unref(zhCN) : unref(en),
3750
- "component-size": unref(getUiSize)
3751
- }, {
3752
- default: withCtx(() => [
3753
- unref(currentRoute)?.name && unref(currentRoute).meta?.requiresAuth !== false ? (openBlock(), createBlock(_component_ALayout, {
3754
- key: 0,
3755
- class: "w-full h-full flex"
3756
- }, {
3757
- default: withCtx(() => [
3758
- createVNode(_sfc_main$A),
3759
- unref(getShowFullHeaderRef) ? (openBlock(), createBlock(_sfc_main$a, {
3760
- key: 0,
3761
- fixed: ""
3762
- })) : createCommentVNode("", true),
3763
- createVNode(_component_ALayout, {
3764
- class: normalizeClass(unref(layoutClass)),
3765
- style: normalizeStyle(unref(layoutOption))
3766
- }, {
3767
- default: withCtx(() => [
3768
- unref(getShowSidebar) ? (openBlock(), createBlock(_sfc_main$6, { key: 0 })) : createCommentVNode("", true),
3769
- createVNode(_component_ALayout, { class: "dt-theme-main flex w-full h-full transition-width duration-200" }, {
3770
- default: withCtx(() => [
3771
- createVNode(_sfc_main$5),
3772
- createVNode(_sfc_main$3, {
3773
- style: normalizeStyle(unref(getContentStyle))
3774
- }, null, 8, ["style"]),
3775
- unref(getFooter) && unref(getFooter)["show"] ? (openBlock(), createBlock(_sfc_main$4, { key: 0 })) : createCommentVNode("", true)
3776
- ]),
3777
- _: 1
3778
- })
3779
- ]),
3780
- _: 1
3781
- }, 8, ["class", "style"])
3782
- ]),
3783
- _: 1
3784
- })) : (openBlock(), createBlock(unref(RouterView), { key: 1 }))
3785
- ]),
3786
- _: 1
3787
- }, 8, ["locale", "component-size"])) : createCommentVNode("", true),
3788
- unref(getLockscreen) && unref(isLock) && unref(currentRoute)?.name && unref(currentRoute).meta?.requiresAuth !== false ? (openBlock(), createBlock(Transition, {
3789
- key: 1,
3790
- name: "fade-slide"
3791
- }, {
3792
- default: withCtx(() => [
3793
- createVNode(unref(_sfc_main$1))
3794
- ]),
3795
- _: 1
3796
- })) : createCommentVNode("", true)
3797
- ], 2);
3798
- };
3799
- }
3800
- });
3801
- const EN = {
3802
- "UI": {
3803
- "ADD": "Add ",
3804
- "DELETE_CONFIRM": "Delete Confirm",
3805
- "CONFIRM_DELETE": "Confirm that you want to delete the selected data\uFF1F",
3806
- "NEED_CURD": "Missing curd function configuration, pass the curd parameter returned by useSource to the useCurd configuration option!",
3807
- "EDIT": "Edit ",
3808
- "EMPTY": "No Selected Data Yet!",
3809
- "EMPTY_URL": "Request Url Can Not Empty!",
3810
- "MULTIFY_DELETE_CONFIRM": "Batch Deletion Confirmation",
3811
- "CONFIRM_MULTIFY_DELETE": "Confirm that you want to delete the selected data in batches?",
3812
- "ADVANCED": "Retract",
3813
- "EXPAND": "Expand",
3814
- "SELECT_ICON": "Select Icon",
3815
- "MUSE_FUNCTION": "openDialog must be a fouction",
3816
- "NEED_RENDER": "Configure the render function",
3817
- "SEARCH": "Search",
3818
- "RESET": "Reset",
3819
- "PLEASE_INPUT": "Please Input",
3820
- "PLEASE_SELECT": "Please Select",
3821
- "PLEASE_SET_ICON": "Please Set The Icon",
3822
- "INPUT_FILTER": "Enter Filter Criteria",
3823
- "EXIT_FULLSCREEN": "Exit Full Screen",
3824
- "FULLSCREEN": "Full Screen",
3825
- "SAVE": "Save",
3826
- "CLOSE": "Close",
3827
- "ADD_SUCCESS": "Add Success!",
3828
- "UPDATE_SUCCESS": "Update data successfully!",
3829
- "MULTIFY": "Batch",
3830
- "DELETE_SUCCESS": "Successfully delete!",
3831
- "COLUMN_CONTROL": "Column Control",
3832
- "COLUMN_SHOW": "Column Show",
3833
- "INDEX": "Serial Number",
3834
- "CHECKBOX": "Checkbox",
3835
- "FIXED_TO_LEFT": "Fixed to the left",
3836
- "FIXED_TO_RIGHT": "Fixed to the right",
3837
- "EXPORT": "Export",
3838
- "DOWNLOAD_TEMPLATE": "Download Template",
3839
- "EXPORT_CURRENT_PAGE": "Export the current page",
3840
- "EXPORT_SELECT_COLUMN": "Export Selected columns",
3841
- "EXPORT_ALL": "Export all columns",
3842
- "SELECT_ALL": "Select All",
3843
- "SETTING_EXPORT_COLUMN": "Setting the export column",
3844
- "NO_EXPORT_COLUMN": "There are no exported columns!",
3845
- "NUMBER": "Number",
3846
- "ACTIONS": "Actions",
3847
- "TOTAL_PAGE": "Total {total}",
3848
- "FILTER": "Filter",
3849
- "EXPAND_ALL": "Expand All",
3850
- "COLLAPSE_ALL": "Collapse All",
3851
- "SELECT_ALL1": "Select All",
3852
- "CANCEL_SELECT_ALL": "Cancel Select All",
3853
- "LEVEL_CONNECTION": "Level Connection",
3854
- "LEVEL_SOLATE": "Independent Hierarchy",
3855
- "LOADING": "Loading...",
3856
- "SUPPORT_FILES": "Support {message} format",
3857
- "MAX_SIZE": "Not exceeding {maxSize}M",
3858
- "MAX_NUMBER": "A maximum of {maxNumber} files can be selected",
3859
- "SUPPORT_TYPES": "Upload Types: pptx\u3001doc\u3001jpg\u3001jpeg\u3001png\u3001bmp\u3001gif\u3001xls\u3001xlsx\u3001txt\u3001rar\u3001zip\u30017z\u3001tar\u3001gz",
3860
- "FILE_UPLOAD": "Files Upload",
3861
- "FILE_NAME": "File Name",
3862
- "FILE_STATUS": "Upload Status",
3863
- "PREVIEW": "Preview",
3864
- "DELETE": "Delete",
3865
- "HISTORY_UPLOAD": "History Upload",
3866
- "MAX_MB": "Only files up to {maxSize}MB can be uploaded!",
3867
- "PRE_UPLOAD": "To Upload",
3868
- "COMPANY_NAME": "Longi Co overseas tax system",
3869
- "FILTER_MORE": "Menu Search...",
3870
- "LARGE_SIZE": "Large Size",
3871
- "MIDDLE_SIZE": "Middle Size",
3872
- "SMALL_SIZE": "Small Size",
3873
- "MODIFY_PASSWORD": "Modify Password",
3874
- "LOGIN_OUT": "Log out",
3875
- "REFRESH": "Refresh",
3876
- "CLOSE_CURRENT_TAG": "Close the current tab",
3877
- "CLOSE_LEFT_TAGS": "Close the left tab",
3878
- "CLOSE_RIGHT_TAGS": "Close the right tab",
3879
- "CLOSE_OTHER_TAGS": "Close other tabs",
3880
- "CLOSE_ALL_TAGE": "Close All",
3881
- "SETTING_THEME": "Style Settings",
3882
- "PROJECT_SETTING": "Project Configuration",
3883
- "NAV_MODE": "Navigation bar mode",
3884
- "PAGE_SHOW": "Interface Display",
3885
- "COPY": "Copy",
3886
- "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.",
3887
- "FULL": "Flow-based",
3888
- "FIXED": "Fixed width",
3889
- "BREAD_CURB": "Bread crumbs",
3890
- "MENU_FILTER": "Menu search",
3891
- "NOTICE": "Notification",
3892
- "SIZE": "Size",
3893
- "SHOW_FULLE": "Page full screen",
3894
- "LOCAL": "Internationalization",
3895
- "ROUTE_REUSE": "Routing reuse",
3896
- "SHOW_FOOTER": "Show Footer",
3897
- "CONTENT_FIXED_WIDTH": "Content area width",
3898
- "ON": "On",
3899
- "OFF": "Off",
3900
- "UNKNOWN_ROUTE": "Unknown route",
3901
- "COPY_SUCCESS": "Copy Success\uFF01"
3902
- }
3903
- };
3904
- const ZH = {
3905
- "UI": {
3906
- "ADD": "\u65B0\u589E",
3907
- "DELETE_CONFIRM": "\u5220\u9664\u786E\u8BA4",
3908
- "CONFIRM_DELETE": "\u786E\u8BA4\u8981\u5220\u9664\u9009\u4E2D\u7684\u6570\u636E\uFF1F",
3909
- "NEED_CURD": "\u7F3A\u5C11curd\u51FD\u6570\u914D\u7F6E, \u8BF7\u5C06useSource\u4E2D\u8FD4\u56DE\u7684curd\u53C2\u6570\u4F20\u5165useCurd\u914D\u7F6E\u9879\u4E2D!",
3910
- "EDIT": "\u7F16\u8F91",
3911
- "EMPTY": "\u6682\u65E0\u9009\u4E2D\u7684\u6570\u636E!",
3912
- "EMPTY_URL": "\u8BF7\u6C42url\u4E0D\u80FD\u4E3A\u7A7A!",
3913
- "MULTIFY_DELETE_CONFIRM": "\u6279\u91CF\u5220\u9664\u786E\u8BA4",
3914
- "CONFIRM_MULTIFY_DELETE": "\u786E\u8BA4\u8981\u6279\u91CF\u5220\u9664\u9009\u4E2D\u7684\u6570\u636E\uFF1F",
3915
- "ADVANCED": "\u6536\u8D77",
3916
- "EXPAND": "\u5C55\u5F00",
3917
- "SELECT_ICON": "\u9009\u62E9\u5B57\u4F53\u56FE\u6807",
3918
- "MUSE_FUNCTION": "openDialog\u5FC5\u987B\u662F\u51FD\u6570",
3919
- "NEED_RENDER": "\u8BF7\u914D\u7F6Erender\u51FD\u6570",
3920
- "SEARCH": "\u67E5\u8BE2",
3921
- "RESET": "\u91CD\u7F6E",
3922
- "PLEASE_INPUT": "\u8BF7\u8F93\u5165",
3923
- "PLEASE_SELECT": "\u8BF7\u9009\u62E9",
3924
- "PLEASE_SET_ICON": "\u8BF7\u8BBE\u7F6E\u56FE\u6807",
3925
- "INPUT_FILTER": "\u8BF7\u8F93\u5165\u8FC7\u6EE4\u6761\u4EF6",
3926
- "EXIT_FULLSCREEN": "\u9000\u51FA\u5168\u5C4F",
3927
- "FULLSCREEN": "\u5168\u5C4F",
3928
- "SAVE": "\u4FDD\u5B58",
3929
- "CLOSE": "\u5173\u95ED",
3930
- "ADD_SUCCESS": "\u65B0\u589E\u6210\u529F\uFF01",
3931
- "UPDATE_SUCCESS": "\u66F4\u65B0\u6570\u636E\u6210\u529F\uFF01",
3932
- "MULTIFY": "\u6279\u91CF",
3933
- "DELETE_SUCCESS": "\u5220\u9664\u6210\u529F\uFF01",
3934
- "COLUMN_CONTROL": "\u5217\u63A7\u5236",
3935
- "COLUMN_SHOW": "\u5217\u5C55\u793A",
3936
- "INDEX": "\u5E8F\u5217\u53F7",
3937
- "CHECKBOX": "\u590D\u9009\u6846",
3938
- "FIXED_TO_LEFT": "\u56FA\u5B9A\u5230\u5DE6\u4FA7",
3939
- "FIXED_TO_RIGHT": "\u56FA\u5B9A\u5230\u53F3\u4FA7",
3940
- "EXPORT": "\u5BFC\u51FA",
3941
- "DOWNLOAD_TEMPLATE": "\u6A21\u677F\u4E0B\u8F7D",
3942
- "EXPORT_CURRENT_PAGE": "\u5BFC\u51FA\u5F53\u524D\u9875",
3943
- "EXPORT_SELECT_COLUMN": "\u5BFC\u51FA\u9009\u4E2D\u5217",
3944
- "EXPORT_ALL": "\u5BFC\u51FA\u6240\u6709\u5217",
3945
- "SELECT_ALL": "\u5168\u9009",
3946
- "SETTING_EXPORT_COLUMN": "\u8BBE\u7F6E\u5BFC\u51FA\u5217",
3947
- "NO_EXPORT_COLUMN": "\u6682\u65E0\u53EF\u5BFC\u51FA\u7684\u5217\uFF01",
3948
- "NUMBER": "\u5E8F\u53F7",
3949
- "ACTIONS": "\u64CD\u4F5C",
3950
- "TOTAL_PAGE": "\u603B\u5171{total}\u6761",
3951
- "FILTER": "\u641C\u7D22...",
3952
- "EXPAND_ALL": "\u5C55\u5F00\u5168\u90E8",
3953
- "COLLAPSE_ALL": "\u6298\u53E0\u5168\u90E8",
3954
- "SELECT_ALL1": "\u9009\u62E9\u5168\u90E8",
3955
- "CANCEL_SELECT_ALL": "\u53D6\u6D88\u9009\u62E9",
3956
- "LEVEL_CONNECTION": "\u5C42\u7EA7\u5173\u8054",
3957
- "LEVEL_SOLATE": "\u5C42\u7EA7\u72EC\u7ACB",
3958
- "LOADING": "\u52A0\u8F7D\u4E2D...",
3959
- "SUPPORT_FILES": "\u652F\u6301{message}\u683C\u5F0F",
3960
- "MAX_SIZE": "\u4E0D\u8D85\u8FC7{maxSize}M",
3961
- "MAX_NUMBER": "\u6700\u591A\u53EF\u9009\u62E9{maxNumber}\u4E2A\u6587\u4EF6",
3962
- "SUPPORT_TYPES": "\u8BF7\u4E0A\u4F20pptx\u3001doc\u3001jpg\u3001jpeg\u3001png\u3001bmp\u3001gif\u3001xls\u3001xlsx\u3001txt\u3001rar\u3001zip\u30017z\u3001tar\u3001gz\u683C\u5F0F\u6587\u4EF6",
3963
- "FILE_UPLOAD": "\u6587\u4EF6\u4E0A\u4F20",
3964
- "FILE_NAME": "\u6587\u4EF6\u540D\u79F0",
3965
- "FILE_STATUS": "\u4E0A\u4F20\u72B6\u6001",
3966
- "PREVIEW": "\u9884\u89C8",
3967
- "DELETE": "\u5220\u9664",
3968
- "HISTORY_UPLOAD": "\u5386\u53F2\u4E0A\u4F20",
3969
- "MAX_MB": "\u53EA\u80FD\u4E0A\u4F20\u4E0D\u8D85\u8FC7{maxSize}MB\u7684\u6587\u4EF6!",
3970
- "PRE_UPLOAD": "\u5F85\u4E0A\u4F20",
3971
- "COMPANY_NAME": "\u5B89\u5FBD\u6DF1\u8FEA\u4E2D\u53F0\u7CFB\u7EDF\u6A21\u677F",
3972
- "FILTER_MORE": "\u83DC\u5355\u68C0\u7D22...",
3973
- "LARGE_SIZE": "\u5927\u5C3A\u5BF8",
3974
- "MIDDLE_SIZE": "\u4E2D\u5C3A\u5BF8",
3975
- "SMALL_SIZE": "\u5C0F\u5C3A\u5BF8",
3976
- "MODIFY_PASSWORD": "\u4FEE\u6539\u5BC6\u7801",
3977
- "LOGIN_OUT": "\u9000\u51FA\u7CFB\u7EDF",
3978
- "REFRESH": "\u91CD\u65B0\u52A0\u8F7D",
3979
- "CLOSE_CURRENT_TAG": "\u5173\u95ED\u5F53\u524D",
3980
- "CLOSE_LEFT_TAGS": "\u5173\u95ED\u5DE6\u4FA7",
3981
- "CLOSE_RIGHT_TAGS": "\u5173\u95ED\u53F3\u4FA7",
3982
- "CLOSE_OTHER_TAGS": "\u5173\u95ED\u5176\u4ED6",
3983
- "CLOSE_ALL_TAGE": "\u5173\u95ED\u5168\u90E8",
3984
- "SETTING_THEME": "\u98CE\u683C\u8BBE\u7F6E",
3985
- "PROJECT_SETTING": "\u9879\u76EE\u914D\u7F6E",
3986
- "NAV_MODE": "\u5BFC\u822A\u680F\u6A21\u5F0F",
3987
- "PAGE_SHOW": "\u754C\u9762\u663E\u793A",
3988
- "COPY": "\u62F7\u8D1D",
3989
- "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",
3990
- "FULL": "\u6D41\u5F0F",
3991
- "FIXED": "\u5B9A\u5BBD",
3992
- "BREAD_CURB": "\u9762\u5305\u5C51",
3993
- "MENU_FILTER": "\u83DC\u5355\u68C0\u7D22",
3994
- "NOTICE": "\u901A\u77E5\u516C\u544A",
3995
- "SIZE": "\u5143\u7D20\u5C3A\u5BF8",
3996
- "SHOW_FULLE": "\u9875\u9762\u5168\u5C4F",
3997
- "LOCAL": "\u56FD\u9645\u5316",
3998
- "ROUTE_REUSE": "\u8DEF\u7531\u590D\u7528",
3999
- "SHOW_FOOTER": "\u663E\u793A\u5E95\u90E8",
4000
- "CONTENT_FIXED_WIDTH": "\u5185\u5BB9\u533A\u57DF\u5BBD\u5EA6",
4001
- "ON": "\u5F00",
4002
- "OFF": "\u5173",
4003
- "DOWNLOAD": "\u4E0B\u8F7D",
4004
- "UNKNOWN_ROUTE": "\u672A\u77E5\u8DEF\u7531",
4005
- "COPY_SUCCESS": "\u62F7\u8D1D\u6210\u529F\uFF01"
4006
- }
4007
- };
4008
- const uiLang = (lang) => lang === Language.ZH ? ZH : EN;
4009
- const DtTheme = withInstall$1(_sfc_main);
4010
- export {
4011
- ContentMode,
4012
- DtTheme,
4013
- MenuMode,
4014
- MenuType,
4015
- UiSize,
4016
- defaultThemeConf,
4017
- uiLang,
4018
- useHeader,
4019
- useMenu,
4020
- useMultipleTab,
4021
- useRouteReuseStore,
4022
- useTheme,
4023
- useThemeStore
4024
- };