@done-coding/admin-core 0.18.0 → 0.19.0

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 (342) hide show
  1. package/README.md +77 -1
  2. package/es/_virtual/_plugin-vue_export-helper.mjs +7 -6
  3. package/es/bridge/config-hook.mjs +49 -37
  4. package/es/bridge/index.mjs +152 -109
  5. package/es/bridge/layout.mjs +45 -31
  6. package/es/bridge/plugin.mjs +22 -12
  7. package/es/bridge/route.mjs +59 -50
  8. package/es/bridge/state.mjs +54 -39
  9. package/es/bridge/storage.mjs +18 -8
  10. package/es/bridge/theme/index.mjs +200 -97
  11. package/es/bridge/theme/persist.mjs +11 -7
  12. package/es/bridge/theme/system-dark.mjs +13 -6
  13. package/es/components/app-layout/AppAside.vue.mjs +4 -4
  14. package/es/components/app-layout/AppAside.vue2.mjs +37 -30
  15. package/es/components/app-layout/AppBody.vue.mjs +4 -4
  16. package/es/components/app-layout/AppBody.vue2.mjs +97 -60
  17. package/es/components/app-layout/AppBreadcrumb.vue.mjs +4 -4
  18. package/es/components/app-layout/AppBreadcrumb.vue2.mjs +59 -38
  19. package/es/components/app-layout/AppCollapseToggle.vue.mjs +4 -4
  20. package/es/components/app-layout/AppCollapseToggle.vue2.mjs +51 -42
  21. package/es/components/app-layout/AppFooter.vue.mjs +4 -4
  22. package/es/components/app-layout/AppFooter.vue2.mjs +15 -12
  23. package/es/components/app-layout/AppHeader.vue.mjs +4 -4
  24. package/es/components/app-layout/AppHeader.vue2.mjs +81 -58
  25. package/es/components/app-layout/AppLayout.vue.mjs +4 -4
  26. package/es/components/app-layout/AppLayout.vue2.mjs +148 -112
  27. package/es/components/app-layout/AppPage.vue.mjs +4 -4
  28. package/es/components/app-layout/AppPage.vue2.mjs +254 -197
  29. package/es/components/app-layout/AppShell.vue.mjs +44 -42
  30. package/es/components/app-layout/AppShell.vue2.mjs +2 -2
  31. package/es/components/app-layout/AppSidebar.vue.mjs +4 -4
  32. package/es/components/app-layout/AppSidebar.vue2.mjs +76 -59
  33. package/es/components/app-layout/AppTheme.vue.mjs +4 -4
  34. package/es/components/app-layout/AppTheme.vue2.mjs +69 -57
  35. package/es/components/app-layout/app-page-geometry.mjs +44 -42
  36. package/es/components/app-layout/keep-alive.mjs +27 -19
  37. package/es/components/app-layout/viewport.mjs +4 -3
  38. package/es/components/data-view/DataListView.vue.mjs +4 -4
  39. package/es/components/data-view/DataListView.vue2.mjs +133 -93
  40. package/es/components/data-view/DataListViewItem.vue.mjs +4 -4
  41. package/es/components/data-view/DataListViewItem.vue2.mjs +11 -9
  42. package/es/components/data-view/utils.mjs +36 -34
  43. package/es/components/display/ActionBtn.vue.mjs +94 -71
  44. package/es/components/display/ActionBtn.vue2.mjs +2 -2
  45. package/es/components/display/ActionBtnGroup.vue.mjs +54 -48
  46. package/es/components/display/ActionBtnGroup.vue2.mjs +2 -2
  47. package/es/components/display/ActionConfirm.vue.mjs +4 -4
  48. package/es/components/display/ActionConfirm.vue2.mjs +116 -92
  49. package/es/components/display/BooleanTag.vue.mjs +24 -18
  50. package/es/components/display/BooleanTag.vue2.mjs +2 -2
  51. package/es/components/display/HeightProvider.vue.mjs +37 -27
  52. package/es/components/display/HeightProvider.vue2.mjs +2 -2
  53. package/es/components/display/TabsHeader.vue.mjs +4 -4
  54. package/es/components/display/TabsHeader.vue2.mjs +86 -57
  55. package/es/components/display/TabsMain.vue.mjs +156 -125
  56. package/es/components/display/TabsMain.vue2.mjs +2 -2
  57. package/es/components/display/TabsNaturalFlow.vue.mjs +15 -11
  58. package/es/components/display/TabsNaturalFlow.vue2.mjs +2 -2
  59. package/es/components/display/TabsRefineFlow.vue.mjs +55 -42
  60. package/es/components/display/TabsRefineFlow.vue2.mjs +2 -2
  61. package/es/components/display/TabsTile.vue.mjs +4 -4
  62. package/es/components/display/TabsTile.vue2.mjs +204 -146
  63. package/es/components/display/WatchSize.vue.mjs +50 -30
  64. package/es/components/display/WatchSize.vue2.mjs +2 -2
  65. package/es/components/display/use-tabs-query-sync.mjs +21 -17
  66. package/es/components/form/FormItem.vue.mjs +4 -4
  67. package/es/components/form/FormItem.vue2.mjs +183 -121
  68. package/es/components/form/FormItemNestForm.vue.mjs +4 -4
  69. package/es/components/form/FormItemNestForm.vue2.mjs +38 -34
  70. package/es/components/form/FormItemNestFormList.vue.mjs +4 -4
  71. package/es/components/form/FormItemNestFormList.vue2.mjs +135 -106
  72. package/es/components/form/FormMain.vue.mjs +4 -4
  73. package/es/components/form/FormMain.vue2.mjs +226 -139
  74. package/es/components/form/FormRadioGroup.vue.mjs +67 -52
  75. package/es/components/form/FormRadioGroup.vue2.mjs +2 -2
  76. package/es/components/form/FormSearch.vue.mjs +4 -4
  77. package/es/components/form/FormSearch.vue2.mjs +194 -156
  78. package/es/components/form/FormSelect.vue.mjs +69 -42
  79. package/es/components/form/FormSelect.vue2.mjs +2 -2
  80. package/es/components/form/FormSubmitBtn.vue.mjs +30 -25
  81. package/es/components/form/FormSubmitBtn.vue2.mjs +2 -2
  82. package/es/components/form/FormSubmitPanel.vue.mjs +4 -4
  83. package/es/components/form/FormSubmitPanel.vue2.mjs +129 -96
  84. package/es/components/form/FormTree.vue.mjs +19 -16
  85. package/es/components/form/FormTree.vue2.mjs +2 -2
  86. package/es/components/form/FormVerifyCode.vue.mjs +58 -41
  87. package/es/components/form/FormVerifyCode.vue2.mjs +2 -2
  88. package/es/components/form/FormVerifyImage.vue.mjs +4 -4
  89. package/es/components/form/FormVerifyImage.vue2.mjs +62 -40
  90. package/es/components/form/form-search-utils.mjs +83 -52
  91. package/es/components/form/nest-form-item-list.mjs +63 -55
  92. package/es/components/form/nest-form-item.mjs +30 -30
  93. package/es/components/form/nest-registry.mjs +4 -4
  94. package/es/components/form/use-form-submit.mjs +18 -15
  95. package/es/components/form/use-layout-by-container.mjs +23 -15
  96. package/es/components/form/use-nest-form-list.mjs +19 -16
  97. package/es/components/form/use-nest-form.mjs +37 -28
  98. package/es/components/form/use-nest-layout-scale.mjs +11 -10
  99. package/es/components/form/utils.mjs +233 -145
  100. package/es/components/list-page/ListPage.vue.mjs +4 -4
  101. package/es/components/list-page/ListPage.vue2.mjs +313 -207
  102. package/es/components/list-page/use-sticky.mjs +45 -33
  103. package/es/components/menu/MenuItemSub.vue.mjs +47 -43
  104. package/es/components/menu/MenuItemSub.vue2.mjs +2 -2
  105. package/es/components/menu/MenuTree.vue.mjs +84 -61
  106. package/es/components/menu/MenuTree.vue2.mjs +2 -2
  107. package/es/components/misc/AutoRefresh.vue.mjs +4 -4
  108. package/es/components/misc/AutoRefresh.vue2.mjs +78 -53
  109. package/es/components/misc/AutoRefreshGroup.vue.mjs +4 -4
  110. package/es/components/misc/AutoRefreshGroup.vue2.mjs +54 -51
  111. package/es/components/misc/SelectModule.vue.mjs +54 -45
  112. package/es/components/misc/SelectModule.vue2.mjs +2 -2
  113. package/es/components/misc/TriggerAutoImport.vue.mjs +7 -5
  114. package/es/components/misc/TriggerAutoImport.vue2.mjs +2 -2
  115. package/es/components/modal/ModalConfirm.vue.mjs +4 -4
  116. package/es/components/modal/ModalConfirm.vue2.mjs +160 -125
  117. package/es/components/modal/ModalDetail.vue.mjs +50 -39
  118. package/es/components/modal/ModalDetail.vue2.mjs +2 -2
  119. package/es/components/modal/ModalForm.vue.mjs +63 -52
  120. package/es/components/modal/ModalForm.vue2.mjs +2 -2
  121. package/es/components/modal/ModalPorter.vue.mjs +51 -36
  122. package/es/components/modal/ModalPorter.vue2.mjs +2 -2
  123. package/es/components/modal/ModalShelf.vue.mjs +38 -28
  124. package/es/components/modal/ModalShelf.vue2.mjs +2 -2
  125. package/es/components/modal/modal-shelf-core.mjs +52 -36
  126. package/es/components/modal/modal-shelf-hierarchy.mjs +11 -9
  127. package/es/components/panel/PanelEditSwitch.vue.mjs +4 -4
  128. package/es/components/panel/PanelEditSwitch.vue2.mjs +88 -66
  129. package/es/components/panel/PanelItem.vue.mjs +4 -4
  130. package/es/components/panel/PanelItem.vue2.mjs +103 -77
  131. package/es/components/panel/PanelItemNestForm.vue.mjs +4 -4
  132. package/es/components/panel/PanelItemNestForm.vue2.mjs +61 -52
  133. package/es/components/panel/PanelItemNestPanel.vue.mjs +22 -20
  134. package/es/components/panel/PanelItemNestPanel.vue2.mjs +2 -2
  135. package/es/components/panel/PanelMain.vue.mjs +4 -4
  136. package/es/components/panel/PanelMain.vue2.mjs +92 -74
  137. package/es/components/panel/nest-panel-form.mjs +44 -38
  138. package/es/components/panel/nest-panel-item.mjs +18 -17
  139. package/es/components/slot-layout/SlotLayoutFlowAside.vue.mjs +4 -4
  140. package/es/components/slot-layout/SlotLayoutFlowAside.vue2.mjs +55 -42
  141. package/es/components/slot-layout/SlotLayoutTemplate.vue.mjs +11 -9
  142. package/es/components/slot-layout/SlotLayoutTemplate.vue2.mjs +2 -2
  143. package/es/components/table/TableMain.vue.mjs +4 -4
  144. package/es/components/table/TableMain.vue2.mjs +378 -275
  145. package/es/components/table/TableSkeleton.vue.mjs +4 -4
  146. package/es/components/table/TableSkeleton.vue2.mjs +95 -74
  147. package/es/components/table/TableToolbar.vue.mjs +4 -4
  148. package/es/components/table/TableToolbar.vue2.mjs +170 -154
  149. package/es/components/table/ToolbarButtons.vue.mjs +12 -10
  150. package/es/components/table/ToolbarButtons.vue2.mjs +2 -2
  151. package/es/components/table/constants.mjs +4 -3
  152. package/es/components/table/use-fill-height.mjs +12 -10
  153. package/es/components/table/use-table-skeleton.mjs +19 -15
  154. package/es/config/list-model.mjs +2 -2
  155. package/es/config/route.mjs +4 -3
  156. package/es/helpers/form.mjs +35 -25
  157. package/es/helpers/list-helper.mjs +59 -44
  158. package/es/hooks/activated.mjs +49 -33
  159. package/es/hooks/feel-size.mjs +39 -23
  160. package/es/hooks/menus-dispatch.mjs +68 -35
  161. package/es/hooks/timeout.mjs +29 -14
  162. package/es/hooks/use-breakpoint.mjs +35 -23
  163. package/es/hooks/use-channel-viewport-height.mjs +30 -20
  164. package/es/hooks/use-custom-breakpoint.mjs +48 -31
  165. package/es/hooks/use-observe-size.mjs +37 -20
  166. package/es/hooks/use-theme-apply.mjs +175 -124
  167. package/es/hooks/use-viewport-apply.mjs +39 -27
  168. package/es/index.mjs +239 -239
  169. package/es/inject/key.mjs +52 -41
  170. package/es/injectInfo.json.mjs +2 -2
  171. package/es/router/group-redirect.mjs +22 -16
  172. package/es/router/guard/index.mjs +26 -21
  173. package/es/router/guard/login.mjs +4 -2
  174. package/es/router/guard/permission.mjs +4 -2
  175. package/es/store/app.mjs +163 -123
  176. package/es/store/router-permission.mjs +75 -46
  177. package/es/store/user.mjs +100 -71
  178. package/es/style.css +769 -1
  179. package/es/utils/dom.mjs +20 -16
  180. package/es/utils/export.mjs +34 -18
  181. package/es/utils/id.mjs +5 -3
  182. package/es/utils/router.mjs +21 -14
  183. package/es/utils/theme-scale.mjs +50 -35
  184. package/es/utils/time.mjs +20 -14
  185. package/package.json +4 -3
  186. package/src/bridge/README.md +5 -0
  187. package/src/bridge/docs/README.md +72 -0
  188. package/src/components/README.md +84 -0
  189. package/src/components/app-layout/README.md +46 -0
  190. package/src/components/app-layout/docs/README-AppAside.md +69 -0
  191. package/src/components/app-layout/docs/README-AppBody.md +81 -0
  192. package/src/components/app-layout/docs/README-AppBreadcrumb.md +71 -0
  193. package/src/components/app-layout/docs/README-AppFooter.md +41 -0
  194. package/src/components/app-layout/docs/README-AppHeader.md +73 -0
  195. package/src/components/app-layout/docs/README-AppLayout.md +83 -0
  196. package/src/components/app-layout/docs/README-AppPage.md +80 -0
  197. package/src/components/app-layout/docs/README-AppSidebar.md +70 -0
  198. package/src/components/app-layout/docs/README-AppTheme.md +66 -0
  199. package/src/components/data-view/README.md +19 -0
  200. package/src/components/data-view/docs/README-DataListView.md +114 -0
  201. package/src/components/display/README.md +23 -0
  202. package/src/components/display/docs/README-ActionBtn.md +84 -0
  203. package/src/components/display/docs/README-ActionBtnGroup.md +96 -0
  204. package/src/components/display/docs/README-ActionConfirm.md +77 -0
  205. package/src/components/display/docs/README-BooleanTag.md +76 -0
  206. package/src/components/display/docs/README-HeightProvider.md +74 -0
  207. package/src/components/display/docs/README-TabsMain.md +99 -0
  208. package/src/components/display/docs/README-WatchSize.md +70 -0
  209. package/src/components/form/README.md +24 -0
  210. package/src/components/form/docs/README-FormItemNestForm.md +86 -0
  211. package/src/components/form/docs/README-FormItemNestFormList.md +93 -0
  212. package/src/components/form/docs/README-FormMain.md +101 -0
  213. package/src/components/form/docs/README-FormSearch.md +89 -0
  214. package/src/components/form/docs/README-FormSubmitBtn.md +72 -0
  215. package/src/components/form/docs/README-FormSubmitPanel.md +97 -0
  216. package/src/components/list-page/README.md +16 -0
  217. package/src/components/list-page/docs/README-ListPage.md +136 -0
  218. package/src/components/menu/README.md +19 -0
  219. package/src/components/menu/docs/README-MenuItemSub.md +53 -0
  220. package/src/components/menu/docs/README-MenuTree.md +76 -0
  221. package/src/components/misc/README.md +21 -0
  222. package/src/components/misc/docs/README-AutoRefresh.md +74 -0
  223. package/src/components/misc/docs/README-AutoRefreshGroup.md +74 -0
  224. package/src/components/misc/docs/README-SelectModule.md +72 -0
  225. package/src/components/modal/README.md +21 -0
  226. package/src/components/modal/docs/README-ModalConfirm.md +105 -0
  227. package/src/components/modal/docs/README-ModalDetail.md +103 -0
  228. package/src/components/modal/docs/README-ModalForm.md +97 -0
  229. package/src/components/modal/docs/README-ModalPorter.md +92 -0
  230. package/src/components/modal/docs/README-ModalShelf.md +115 -0
  231. package/src/components/panel/README.md +19 -0
  232. package/src/components/panel/docs/README-PanelMain.md +149 -0
  233. package/src/components/slot-layout/README.md +17 -0
  234. package/src/components/slot-layout/docs/README-SlotLayoutFlowAside.md +83 -0
  235. package/src/components/slot-layout/docs/README-SlotLayoutTemplate.md +73 -0
  236. package/src/components/table/README.md +17 -0
  237. package/src/components/table/docs/README-TableMain.md +140 -0
  238. package/src/hooks/README.md +5 -0
  239. package/src/hooks/docs/README.md +49 -0
  240. package/types/bridge/config-hook.d.ts +68 -0
  241. package/types/bridge/index.d.ts +411 -0
  242. package/types/bridge/layout.d.ts +40 -0
  243. package/types/bridge/plugin.d.ts +18 -0
  244. package/types/bridge/route.d.ts +20 -1
  245. package/types/bridge/state.d.ts +14 -0
  246. package/types/bridge/storage.d.ts +9 -0
  247. package/types/bridge/theme/index.d.ts +7 -0
  248. package/types/bridge/theme/persist.d.ts +12 -0
  249. package/types/bridge/theme/system-dark.d.ts +12 -0
  250. package/types/bridge/theme/types.d.ts +238 -0
  251. package/types/components/app-layout/AppAside.vue.d.ts +1 -0
  252. package/types/components/app-layout/AppCollapseToggle.vue.d.ts +3 -0
  253. package/types/components/app-layout/AppHeader.vue.d.ts +3 -0
  254. package/types/components/app-layout/AppLayout.vue.d.ts +12 -0
  255. package/types/components/app-layout/AppPage.vue.d.ts +17 -0
  256. package/types/components/app-layout/AppSidebar.vue.d.ts +2 -0
  257. package/types/components/app-layout/app-page-geometry.d.ts +48 -0
  258. package/types/components/app-layout/keep-alive.d.ts +17 -0
  259. package/types/components/app-layout/types.d.ts +125 -0
  260. package/types/components/app-layout/viewport.d.ts +28 -0
  261. package/types/components/data-view/DataListViewItem.vue.d.ts +8 -0
  262. package/types/components/data-view/index.d.ts +4 -0
  263. package/types/components/data-view/types.d.ts +42 -0
  264. package/types/components/data-view/utils.d.ts +3 -0
  265. package/types/components/display/TabsHeader.vue.d.ts +2 -0
  266. package/types/components/display/TabsMain.vue.d.ts +2 -0
  267. package/types/components/display/TabsRefineFlow.vue.d.ts +1 -0
  268. package/types/components/display/TabsTile.vue.d.ts +247 -12
  269. package/types/components/display/WatchSize.vue.d.ts +9 -0
  270. package/types/components/display/index.d.ts +37 -1
  271. package/types/components/display/types.d.ts +163 -0
  272. package/types/components/display/use-tabs-query-sync.d.ts +29 -0
  273. package/types/components/form/FormItemNestForm.vue.d.ts +5 -0
  274. package/types/components/form/FormItemNestFormList.vue.d.ts +17 -0
  275. package/types/components/form/FormVerifyCode.vue.d.ts +9 -0
  276. package/types/components/form/FormVerifyImage.vue.d.ts +1 -0
  277. package/types/components/form/form-search-utils.d.ts +34 -0
  278. package/types/components/form/nest-form-item-list.d.ts +28 -0
  279. package/types/components/form/nest-form-item.d.ts +21 -0
  280. package/types/components/form/nest-registry.d.ts +14 -0
  281. package/types/components/form/types.d.ts +208 -8
  282. package/types/components/form/use-form-submit.d.ts +13 -0
  283. package/types/components/form/use-layout-by-container.d.ts +23 -0
  284. package/types/components/form/use-nest-form-list.d.ts +13 -0
  285. package/types/components/form/use-nest-form.d.ts +15 -0
  286. package/types/components/form/use-nest-layout-scale.d.ts +12 -0
  287. package/types/components/form/utils.d.ts +56 -1
  288. package/types/components/list-page/ListPage.vue.d.ts +6 -0
  289. package/types/components/list-page/types.d.ts +50 -2
  290. package/types/components/list-page/use-sticky.d.ts +23 -0
  291. package/types/components/misc/index.d.ts +6 -1
  292. package/types/components/misc/types.d.ts +7 -0
  293. package/types/components/modal/ModalConfirm.vue.d.ts +29 -0
  294. package/types/components/modal/index.d.ts +7 -1
  295. package/types/components/modal/modal-shelf-core.d.ts +3 -0
  296. package/types/components/modal/modal-shelf-hierarchy.d.ts +4 -0
  297. package/types/components/modal/modal-shelf-types.d.ts +34 -0
  298. package/types/components/modal/types.d.ts +63 -2
  299. package/types/components/panel/PanelItemNestForm.vue.d.ts +6 -0
  300. package/types/components/panel/PanelItemNestPanel.vue.d.ts +5 -0
  301. package/types/components/panel/nest-panel-form.d.ts +21 -0
  302. package/types/components/panel/nest-panel-item.d.ts +14 -0
  303. package/types/components/panel/types.d.ts +52 -1
  304. package/types/components/slot-layout/SlotLayoutTemplate.vue.d.ts +21 -0
  305. package/types/components/slot-layout/types.d.ts +4 -0
  306. package/types/components/table/constants.d.ts +8 -0
  307. package/types/components/table/types.d.ts +140 -9
  308. package/types/components/table/use-fill-height.d.ts +14 -0
  309. package/types/components/table/use-table-skeleton.d.ts +16 -0
  310. package/types/config/list-model.d.ts +29 -0
  311. package/types/config/route.d.ts +2 -0
  312. package/types/helpers/form.d.ts +5 -0
  313. package/types/helpers/list-helper.d.ts +26 -0
  314. package/types/helpers/types.d.ts +11 -0
  315. package/types/hooks/activated.d.ts +23 -0
  316. package/types/hooks/feel-size.d.ts +2 -0
  317. package/types/hooks/menus-dispatch.d.ts +4 -0
  318. package/types/hooks/timeout.d.ts +4 -0
  319. package/types/hooks/use-channel-viewport-height.d.ts +8 -0
  320. package/types/hooks/use-custom-breakpoint.d.ts +19 -0
  321. package/types/hooks/use-observe-size.d.ts +29 -0
  322. package/types/hooks/use-theme-apply.d.ts +23 -0
  323. package/types/hooks/use-viewport-apply.d.ts +12 -0
  324. package/types/inject/key.d.ts +163 -0
  325. package/types/injectInfo.json.d.ts +1 -1
  326. package/types/router/group-redirect.d.ts +9 -0
  327. package/types/router/guard/index.d.ts +13 -0
  328. package/types/router/guard/login.d.ts +1 -0
  329. package/types/router/guard/permission.d.ts +1 -0
  330. package/types/router/guard/types.d.ts +3 -0
  331. package/types/store/app.d.ts +27 -0
  332. package/types/store/router-permission.d.ts +53 -0
  333. package/types/store/user.d.ts +24 -0
  334. package/types/types/dot-path.d.ts +8 -0
  335. package/types/types/route.d.ts +45 -0
  336. package/types/types/utility-types.d.ts +7 -0
  337. package/types/utils/dom.d.ts +22 -0
  338. package/types/utils/export.d.ts +16 -1
  339. package/types/utils/id.d.ts +1 -0
  340. package/types/utils/router.d.ts +2 -0
  341. package/types/utils/theme-scale.d.ts +31 -0
  342. package/types/utils/time.d.ts +1 -0
@@ -1,51 +1,65 @@
1
- import { ref as i, readonly as p } from "vue";
2
- const C = "dc-core-layout";
3
- function y(a) {
4
- const t = a.storageKey ?? C, l = i(a.defaultSidebarCollapsed ?? !1), o = i(a.defaultAsideCollapsed ?? !1);
5
- let s = null;
1
+ import { ref, readonly } from "vue";
2
+ const DEFAULT_LAYOUT_STORAGE_KEY = "dc-core-layout";
3
+ function createBridgeLayoutHook(init) {
4
+ const storageKey = init.storageKey ?? DEFAULT_LAYOUT_STORAGE_KEY;
5
+ const sidebarCollapsed = ref(init.defaultSidebarCollapsed ?? false);
6
+ const asideCollapsed = ref(init.defaultAsideCollapsed ?? false);
7
+ let raw = null;
6
8
  try {
7
- s = a.storage.getItem(t);
9
+ raw = init.storage.getItem(storageKey);
8
10
  } catch {
9
- s = null;
11
+ raw = null;
10
12
  }
11
- if (s)
13
+ if (raw) {
12
14
  try {
13
- const e = JSON.parse(s);
14
- typeof (e == null ? void 0 : e.sidebarCollapsed) == "boolean" && (l.value = e.sidebarCollapsed), typeof (e == null ? void 0 : e.asideCollapsed) == "boolean" && (o.value = e.asideCollapsed);
15
+ const parsed = JSON.parse(raw);
16
+ if (typeof (parsed == null ? void 0 : parsed.sidebarCollapsed) === "boolean") {
17
+ sidebarCollapsed.value = parsed.sidebarCollapsed;
18
+ }
19
+ if (typeof (parsed == null ? void 0 : parsed.asideCollapsed) === "boolean") {
20
+ asideCollapsed.value = parsed.asideCollapsed;
21
+ }
15
22
  } catch {
16
23
  }
17
- const d = () => {
24
+ }
25
+ const persist = () => {
18
26
  try {
19
- a.storage.setItem(
20
- t,
27
+ init.storage.setItem(
28
+ storageKey,
21
29
  JSON.stringify({
22
- sidebarCollapsed: l.value,
23
- asideCollapsed: o.value
30
+ sidebarCollapsed: sidebarCollapsed.value,
31
+ asideCollapsed: asideCollapsed.value
24
32
  })
25
33
  );
26
34
  } catch {
27
35
  }
28
- }, r = (e) => {
29
- l.value = e, d();
30
- }, u = () => {
31
- r(!l.value);
32
- }, c = (e) => {
33
- o.value = e, d();
34
- }, n = () => {
35
- c(!o.value);
36
+ };
37
+ const setSidebarCollapse = (collapsed) => {
38
+ sidebarCollapsed.value = collapsed;
39
+ persist();
40
+ };
41
+ const toggleSidebar = () => {
42
+ setSidebarCollapse(!sidebarCollapsed.value);
43
+ };
44
+ const setAsideCollapse = (collapsed) => {
45
+ asideCollapsed.value = collapsed;
46
+ persist();
47
+ };
48
+ const toggleAside = () => {
49
+ setAsideCollapse(!asideCollapsed.value);
36
50
  };
37
51
  return {
38
52
  layout: {
39
- sidebarCollapsed: p(l),
40
- asideCollapsed: p(o),
41
- setSidebarCollapse: r,
42
- toggleSidebar: u,
43
- setAsideCollapse: c,
44
- toggleAside: n
53
+ sidebarCollapsed: readonly(sidebarCollapsed),
54
+ asideCollapsed: readonly(asideCollapsed),
55
+ setSidebarCollapse,
56
+ toggleSidebar,
57
+ setAsideCollapse,
58
+ toggleAside
45
59
  }
46
60
  };
47
61
  }
48
62
  export {
49
- C as DEFAULT_LAYOUT_STORAGE_KEY,
50
- y as createBridgeLayoutHook
63
+ DEFAULT_LAYOUT_STORAGE_KEY,
64
+ createBridgeLayoutHook
51
65
  };
@@ -1,13 +1,19 @@
1
- import a from "lodash/omit";
2
- function d() {
3
- const i = /* @__PURE__ */ new WeakSet(), o = /* @__PURE__ */ new Set();
4
- return { use: (u) => {
5
- const { bridge: t, update: l, plugin: n, options: g } = u, s = n, r = typeof n == "function" ? n : n.install, e = typeof n == "function" ? void 0 : n.name;
6
- if (typeof r != "function")
1
+ import _omit from "lodash/omit";
2
+ function createBridgePluginHost() {
3
+ const installedPluginRefs = /* @__PURE__ */ new WeakSet();
4
+ const installedPluginNames = /* @__PURE__ */ new Set();
5
+ const use = (payload) => {
6
+ const { bridge, update, plugin, options } = payload;
7
+ const pluginRef = plugin;
8
+ const install = typeof plugin === "function" ? plugin : plugin.install;
9
+ const pluginName = typeof plugin === "function" ? void 0 : plugin.name;
10
+ if (typeof install !== "function") {
7
11
  throw new Error("bridge plugin: install must be a function");
8
- if (i.has(s) || e && o.has(e))
9
- return t;
10
- const f = a(t, [
12
+ }
13
+ if (installedPluginRefs.has(pluginRef) || pluginName && installedPluginNames.has(pluginName)) {
14
+ return bridge;
15
+ }
16
+ const pluginBridge = _omit(bridge, [
11
17
  "init",
12
18
  "register",
13
19
  "getToken",
@@ -21,9 +27,13 @@ function d() {
21
27
  "use",
22
28
  "install"
23
29
  ]);
24
- return r({ bridge: f, update: l }, g), i.add(s), e && o.add(e), t;
25
- } };
30
+ install({ bridge: pluginBridge, update }, options);
31
+ installedPluginRefs.add(pluginRef);
32
+ if (pluginName) installedPluginNames.add(pluginName);
33
+ return bridge;
34
+ };
35
+ return { use };
26
36
  }
27
37
  export {
28
- d as createBridgePluginHost
38
+ createBridgePluginHost
29
39
  };
@@ -1,60 +1,69 @@
1
- import { getRoutePermissionKey as T } from "../utils/router.mjs";
2
- import { ROUTE_MODULE_LEVEL as f } from "../config/route.mjs";
3
- const K = (u) => {
4
- const R = (E, {
5
- parentPath: w = "",
6
- parentPathList: g = [],
7
- routeLevel: p = f,
8
- sortFn: s,
9
- mapFn: i,
10
- filterFn: h
1
+ import { getRoutePermissionKey } from "../utils/router.mjs";
2
+ import { ROUTE_MODULE_LEVEL } from "../config/route.mjs";
3
+ const createGenerateRouteMetaRawTree = (metaDefault) => {
4
+ const generateRouteMetaRawTree = (routesList, {
5
+ parentPath = "",
6
+ parentPathList = [],
7
+ routeLevel = ROUTE_MODULE_LEVEL,
8
+ sortFn,
9
+ mapFn,
10
+ filterFn
11
11
  } = {}) => {
12
- const a = [];
13
- return E.forEach((L) => {
14
- const { path: o, children: n, meta: S } = L, d = S;
15
- if (!d) {
16
- console.error(`路由${o}未配置meta`);
12
+ const list = [];
13
+ routesList.forEach((route) => {
14
+ const { path, children, meta } = route;
15
+ const appMeta = meta;
16
+ if (!appMeta) {
17
+ console.error(`路由${path}未配置meta`);
17
18
  return;
18
19
  }
19
- const { menu: e, redirectToFirstChildRoute: m = !0 } = d, { title: y, permission: t } = d, c = o.startsWith("/") ? o : `${w}/${o}`, M = [...g, c], l = T({
20
- path: c,
21
- permission: t
22
- }), r = {
23
- path: c,
24
- title: y,
25
- routeLevel: p,
26
- redirectToFirstChildRoute: m,
27
- menuShow: (e == null ? void 0 : e.show) ?? u.menuShow,
28
- menuIcon: e == null ? void 0 : e.icon,
29
- menuSort: (e == null ? void 0 : e.sort) || 0,
30
- childrenRaw: Array.isArray(n) ? n : [],
31
- children: n ? R(n, {
32
- parentPath: c,
33
- parentPathList: M,
34
- routeLevel: p + 1,
35
- filterFn: h,
36
- mapFn: i,
37
- sortFn: s
20
+ const { menu, redirectToFirstChildRoute = true } = appMeta;
21
+ const { title, permission } = appMeta;
22
+ const currentPath = path.startsWith("/") ? path : `${parentPath}/${path}`;
23
+ const currentPathList = [...parentPathList, currentPath];
24
+ const permissionKey = getRoutePermissionKey({
25
+ path: currentPath,
26
+ permission
27
+ });
28
+ const metaResolveRaw = {
29
+ path: currentPath,
30
+ title,
31
+ routeLevel,
32
+ redirectToFirstChildRoute,
33
+ menuShow: (menu == null ? void 0 : menu.show) ?? metaDefault.menuShow,
34
+ menuIcon: menu == null ? void 0 : menu.icon,
35
+ menuSort: (menu == null ? void 0 : menu.sort) || 0,
36
+ childrenRaw: Array.isArray(children) ? children : [],
37
+ children: children ? generateRouteMetaRawTree(children, {
38
+ parentPath: currentPath,
39
+ parentPathList: currentPathList,
40
+ routeLevel: routeLevel + 1,
41
+ filterFn,
42
+ mapFn,
43
+ sortFn
38
44
  }) : [],
39
- parentPath: w,
40
- parentPathList: g,
41
- permissionKey: l,
42
- checkPermission: !!l,
43
- permissionEditShow: l ? (t == null ? void 0 : t.editShow) ?? !0 : !1,
44
- needLogin: (t == null ? void 0 : t.login) ?? u.needLogin
45
+ parentPath,
46
+ parentPathList,
47
+ permissionKey,
48
+ checkPermission: !!permissionKey,
49
+ permissionEditShow: permissionKey ? (permission == null ? void 0 : permission.editShow) ?? true : false,
50
+ needLogin: (permission == null ? void 0 : permission.login) ?? metaDefault.needLogin
45
51
  };
46
- if (h && !h(
47
- r,
48
- r.children.length > 0,
49
- r.childrenRaw.length > 0
50
- ))
52
+ if (filterFn && !filterFn(
53
+ metaResolveRaw,
54
+ metaResolveRaw.children.length > 0,
55
+ metaResolveRaw.childrenRaw.length > 0
56
+ )) {
51
57
  return;
52
- const P = i ? i(r) : r;
53
- a.push(P);
54
- }), s && a.sort(s), a;
58
+ }
59
+ const res = mapFn ? mapFn(metaResolveRaw) : metaResolveRaw;
60
+ list.push(res);
61
+ });
62
+ sortFn && list.sort(sortFn);
63
+ return list;
55
64
  };
56
- return R;
65
+ return generateRouteMetaRawTree;
57
66
  };
58
67
  export {
59
- K as createGenerateRouteMetaRawTree
68
+ createGenerateRouteMetaRawTree
60
69
  };
@@ -1,46 +1,61 @@
1
- import { ref as I, computed as O, watch as J, reactive as N } from "vue";
2
- import b from "lodash/cloneDeep";
3
- const x = (m) => (s, { debug: l, moduleKey: a, cache: f, storage: e = localStorage } = {
4
- debug: !1,
5
- moduleKey: ""
6
- }) => {
7
- const i = `${m}/useState/${a}`;
8
- let r;
9
- if (f) {
10
- const t = e.getItem(i);
11
- try {
12
- r = JSON.parse(t ?? "");
13
- } catch {
1
+ import { ref, computed, watch, reactive } from "vue";
2
+ import _cloneDeep from "lodash/cloneDeep";
3
+ const createUseState = (factoryNamespace) => {
4
+ return (initState, { debug, moduleKey, cache, storage = localStorage } = {
5
+ debug: false,
6
+ moduleKey: ""
7
+ }) => {
8
+ const cacheKey = `${factoryNamespace}/useState/${moduleKey}`;
9
+ let cacheState;
10
+ if (cache) {
11
+ const str = storage.getItem(cacheKey);
12
+ try {
13
+ cacheState = JSON.parse(str ?? "");
14
+ } catch (e) {
15
+ }
14
16
  }
15
- }
16
- const $ = typeof s == "function" ? s() : s, n = () => b($), c = I(r || n()), d = O(() => c.value), h = () => {
17
- c.value = n(), l && console.log(`[useState]
18
- 重置 ${a} store 状态属性
17
+ const stateInit = typeof initState === "function" ? initState() : initState;
18
+ const getStateInit = () => _cloneDeep(stateInit);
19
+ const stateBase = ref(cacheState ? cacheState : getStateInit());
20
+ const state = computed(() => stateBase.value);
21
+ const resetState = () => {
22
+ stateBase.value = getStateInit();
23
+ debug && console.log(`[useState]
24
+ 重置 ${moduleKey} store 状态属性
19
25
  `);
20
- }, v = (t = {}) => {
21
- Object.entries(t).forEach(([o, u]) => {
22
- const p = c.value, S = p[o];
23
- S !== u && (l && console.log(`[useState]
24
- ${a} ${o} 变化更新: ${S} => ${u}
25
- `), p[o] = u);
26
+ };
27
+ const updateState = (newStateObj = {}) => {
28
+ Object.entries(newStateObj).forEach(([key, newState]) => {
29
+ const currentState = stateBase.value;
30
+ const oldState = currentState[key];
31
+ if (oldState !== newState) {
32
+ debug && console.log(`[useState]
33
+ ${moduleKey} ${key} 变化更新: ${oldState} => ${newState}
34
+ `);
35
+ currentState[key] = newState;
36
+ }
37
+ });
38
+ };
39
+ if (cache) {
40
+ watch(
41
+ stateBase,
42
+ (n) => {
43
+ storage == null ? void 0 : storage.setItem(cacheKey, JSON.stringify(n));
44
+ },
45
+ {
46
+ deep: true,
47
+ immediate: true
48
+ }
49
+ );
50
+ }
51
+ return reactive({
52
+ state,
53
+ getStateInit,
54
+ resetState,
55
+ updateState
26
56
  });
27
57
  };
28
- return f && J(
29
- c,
30
- (t) => {
31
- e == null || e.setItem(i, JSON.stringify(t));
32
- },
33
- {
34
- deep: !0,
35
- immediate: !0
36
- }
37
- ), N({
38
- state: d,
39
- getStateInit: n,
40
- resetState: h,
41
- updateState: v
42
- });
43
58
  };
44
59
  export {
45
- x as createUseState
60
+ createUseState
46
61
  };
@@ -1,16 +1,26 @@
1
- const o = (r) => {
2
- const t = (e) => `${r}/${e}`;
1
+ const createStorageWithNamespace = (namespace) => {
2
+ const getKeyFinal = (key) => `${namespace}/${key}`;
3
3
  return {
4
- setItem: (e, a) => localStorage.setItem(t(e), a),
5
- getItem: (e) => localStorage.getItem(t(e)),
6
- removeItem: (e) => localStorage.removeItem(t(e)),
7
- clear: () => localStorage.clear(),
8
- key: (e) => localStorage.key(e),
4
+ setItem: (key, value) => {
5
+ return localStorage.setItem(getKeyFinal(key), value);
6
+ },
7
+ getItem: (key) => {
8
+ return localStorage.getItem(getKeyFinal(key));
9
+ },
10
+ removeItem: (key) => {
11
+ return localStorage.removeItem(getKeyFinal(key));
12
+ },
13
+ clear: () => {
14
+ return localStorage.clear();
15
+ },
16
+ key: (index) => {
17
+ return localStorage.key(index);
18
+ },
9
19
  get length() {
10
20
  return localStorage.length;
11
21
  }
12
22
  };
13
23
  };
14
24
  export {
15
- o as createStorageWithNamespace
25
+ createStorageWithNamespace
16
26
  };