@done-coding/admin-core 0.17.1-alpha.0 → 0.18.1-alpha.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,4 +1,19 @@
1
+ /**
2
+ * 布局槽位模板:disabled 时透传(宿主消失、只渲染默认槽内容);
3
+ * 否则以 tag 包裹并「透明转发全部插槽」(默认+具名+作用域)到宿主 tag。
4
+ *
5
+ * 用渲染函数而非模板:透明转发组件的自身 slots 类型天然递归
6
+ * (self.slots = 被转发的 self.slots),模板内 v-for $slots + <slot :name>
7
+ * 会触发 vue-tsc TS7022 自指推断;render 直接把 slots 对象整体喂给 h(),
8
+ * 绕开模板 slot 类型推断、转发也更彻底(含具名/作用域槽)。
9
+ */
1
10
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
11
+ /**
12
+ * 包裹宿主:原生标签名("div")/ 组件对象 / 函数式组件。
13
+ * 懒加载组件 [MUST] 先经 `defineAsyncComponent` 包裹再传——裸异步工厂
14
+ * `() => import('./X.vue')` 会被当函数式组件调用、不 resolve Promise(同
15
+ * `<component :is>` 原生语义,参 ModalShelf 同款约定)。
16
+ */
2
17
  tag: {
3
18
  type: () => any;
4
19
  default: string;
@@ -12,6 +27,12 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
12
27
  }> | import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
13
28
  [key: string]: any;
14
29
  }>[] | undefined, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
30
+ /**
31
+ * 包裹宿主:原生标签名("div")/ 组件对象 / 函数式组件。
32
+ * 懒加载组件 [MUST] 先经 `defineAsyncComponent` 包裹再传——裸异步工厂
33
+ * `() => import('./X.vue')` 会被当函数式组件调用、不 resolve Promise(同
34
+ * `<component :is>` 原生语义,参 ModalShelf 同款约定)。
35
+ */
15
36
  tag: {
16
37
  type: () => any;
17
38
  default: string;
@@ -1,6 +1,10 @@
1
1
  export interface SlotLayoutFlowAsideProps {
2
+ /** 侧栏所在侧 */
2
3
  type?: "left" | "right";
4
+ /** 主区与侧栏间距 */
3
5
  gap?: string;
6
+ /** 侧栏宽度 */
4
7
  asideWidth?: string;
8
+ /** 侧栏最大高度(超出滚动) */
5
9
  asideMaxHeight?: string;
6
10
  }
@@ -1,2 +1,10 @@
1
+ /**
2
+ * table 族系约定 column key 常量(L1)。
3
+ *
4
+ * 仅作「标记字符串」供消费方在 columns 配置里固定填以被识别,不驱动任何渲染/行为。
5
+ * 命名空间 `TABLE_COLUMN_KEY_`(= 表格列的约定 key)+ 语义后缀,规则 9 合规。
6
+ */
7
+ /** 操作列推荐 key(消费方在 columns 固定填以标记为操作列)。 */
1
8
  export declare const TABLE_COLUMN_KEY_OPERATE = "OPERATE";
9
+ /** 选择列推荐 key(SELECTION 当前由 el-table `type:"selection"` 承载)。 */
2
10
  export declare const TABLE_COLUMN_KEY_SELECTION = "SELECTION";
@@ -5,53 +5,138 @@ import { ExportColumnConfig } from '../../utils';
5
5
  import { ExtractPropTypes, VNode } from 'vue';
6
6
  import { ActionBtnConfigItem } from '../display';
7
7
  import { AutoRefreshGroupProps } from '../misc';
8
+ /** 表格实例 */
8
9
  export type TableInstance = Pick<ElTableInstance, "clearSelection" | "getSelectionRows" | "toggleRowSelection" | "toggleAllSelection" | "toggleRowExpansion" | "setCurrentRow" | "clearSort" | "clearFilter" | "doLayout" | "sort" | "scrollTo" | "setScrollTop" | "setScrollLeft" | "columns" | "updateKeyChildren">;
10
+ /** 表格分页信息 */
9
11
  export interface TablePageInfo {
12
+ /** 每页数量 */
10
13
  pageSize: number;
14
+ /** 当前页码 */
11
15
  currentPage: number;
16
+ /** 数据总数(总记录数,非页数) */
12
17
  total: number;
13
18
  }
14
- export type TableApiParams<SQ extends Record<string, any> = Record<string, any>> = BuildListParams<typeof APP_API_LIST_MODEL_KEY_CONFIG, SQ>;
19
+ /**
20
+ * 表格请求参数
21
+ * ---
22
+ * 静态参数 SQ + KEY_CONFIG 推导出的 page.page / page.pageSize 嵌套
23
+ */
24
+ export type TableApiParams<
25
+ /** 静态参数 */
26
+ SQ extends Record<string, any> = Record<string, any>> = BuildListParams<typeof APP_API_LIST_MODEL_KEY_CONFIG, SQ>;
27
+ /**
28
+ * 表格响应结果
29
+ * ---
30
+ * items 列表 + page.totalRecord 总数(仅 2 字段子集,不带 page.page / page.pageSize)
31
+ */
15
32
  export type TableApiResult<T extends Record<string, any> = Record<string, any>> = UnionToIntersection<DotToObject<typeof APP_API_LIST_MODEL_KEY_CONFIG.LIST_KEY, T[]> | DotToObject<typeof APP_API_LIST_MODEL_KEY_CONFIG.TOTAL_KEY, number>>;
16
33
  export interface TableMainInstance {
34
+ /** 如果关心是否结束(无论成功还是失败 甚至都未发起请求(比如某些状态机未满足)),那么可以await, 等待刷新调用给个结束 */
17
35
  refresh: (silent?: boolean) => Promise<unknown>;
36
+ /** 如果关心是否结束(无论成功还是失败 甚至都未发起请求(比如某些状态机未满足)),那么可以await, 等待刷新调用给个结束 */
18
37
  reload: (slice?: boolean) => Promise<unknown>;
19
38
  getTableInstance: () => TableInstance | undefined;
20
39
  }
40
+ /** 导出类型 */
21
41
  export type ExportType = "selected" | "current" | "all";
22
- export interface TableExportContext<T extends Record<string, any> = Record<string, any>, SQ extends Record<string, any> = Record<string, any>, F extends Record<string, any> = {}> {
42
+ /** TableMain 传给 toolbar 的导出上下文 */
43
+ export interface TableExportContext<T extends Record<string, any> = Record<string, any>,
44
+ /** 静态参数 */
45
+ SQ extends Record<string, any> = Record<string, any>,
46
+ /** 期望注入到表格列插槽上的额外内容 */
47
+ F extends Record<string, any> = {}> {
48
+ /** 可导出列 */
23
49
  columns: Pick<ElTableColumnProps<T, F>, "prop" | "label">[];
50
+ /** 选中行数据 */
24
51
  selectedList: T[];
52
+ /** 当前页数据 */
25
53
  currentPageList: T[];
54
+ /** 分页 API */
26
55
  api: (params: TableApiParams<SQ>) => Promise<TableApiResult<T>>;
56
+ /** 静态查询参数 */
27
57
  query?: SQ;
58
+ /** 当前数据总数 */
28
59
  total: number;
60
+ /** 是否包含 selection 列 */
29
61
  hasSelection: boolean;
30
62
  }
31
- export interface ToolbarButtonContext<T extends Record<string, any> = Record<string, any>, SQ extends Record<string, any> = Record<string, any>, F extends Record<string, any> = {}> {
63
+ /** toolbar 按钮渲染上下文 */
64
+ export interface ToolbarButtonContext<T extends Record<string, any> = Record<string, any>,
65
+ /** 静态参数 */
66
+ SQ extends Record<string, any> = Record<string, any>,
67
+ /** 期望注入到表格列插槽上的额外内容 */
68
+ F extends Record<string, any> = {}> {
69
+ /** TableMain expose */
32
70
  tableExpose: TableMainInstance;
71
+ /** 表格是否加载中 */
33
72
  loading: boolean;
73
+ /** 导出上下文 */
34
74
  exportContext: TableExportContext<T, SQ, F>;
75
+ /** 当前选中行数据 */
35
76
  selectedList: T[];
77
+ /** 分页信息 */
36
78
  pagination: TablePageInfo;
37
79
  }
38
- export type ToolbarButtonConfig<T extends Record<string, any> = Record<string, any>, SQ extends Record<string, any> = Record<string, any>, F extends Record<string, any> = {}> = ActionBtnConfigItem<ToolbarButtonContext<T, SQ, F>>;
39
- export interface TableToolbarPrivateProps<T extends Record<string, any> = Record<string, any>, SQ extends Record<string, any> = Record<string, any>, F extends Record<string, any> = {}> {
80
+ /**
81
+ * toolbar 额外按钮配置(BL-4 / 2026-05-26 重定义为 ActionBtnConfigItem 别名)
82
+ * ---
83
+ * 跨族迁移到 display/ActionBtnGroup 后,本类型沦为通用配置的 toolbar 特化别名;
84
+ * 字段集与 ActionBtnConfigItem 完全一致(key / actionBtnProps / props / label / render / show)。
85
+ * 旧的 VNode[] 返回函数字段已移除,render 三态(string | Component | functional)
86
+ * 对标 FormItem;升级路径见 MIGRATION.md BL-4 节。
87
+ */
88
+ export type ToolbarButtonConfig<T extends Record<string, any> = Record<string, any>,
89
+ /** 静态参数 */
90
+ SQ extends Record<string, any> = Record<string, any>,
91
+ /** 期望注入到表格列插槽上的额外内容 */
92
+ F extends Record<string, any> = {}> = ActionBtnConfigItem<ToolbarButtonContext<T, SQ, F>>;
93
+ /** toolbar (被TableMain) 内部提供的props */
94
+ export interface TableToolbarPrivateProps<T extends Record<string, any> = Record<string, any>,
95
+ /** 静态参数 */
96
+ SQ extends Record<string, any> = Record<string, any>,
97
+ /** 期望注入到表格列插槽上的额外内容 */
98
+ F extends Record<string, any> = {}> {
99
+ /** TableMain expose */
40
100
  tableExpose: TableMainInstance;
101
+ /** 表格是否加载中 */
41
102
  loading: boolean;
103
+ /** 导出上下文 */
42
104
  exportContext: TableExportContext<T, SQ, F>;
105
+ /** 当前页码 */
43
106
  currentPage: number;
107
+ /** 每页行数 */
44
108
  pageSize: number;
109
+ /** 是否显示切换视图按钮,默认 false */
45
110
  showSwitchView?: boolean;
46
111
  }
47
- export interface TableToolbarProps<T extends Record<string, any> = Record<string, any>, SQ extends Record<string, any> = Record<string, any>, F extends Record<string, any> = {}> extends TableToolbarPrivateProps<T, SQ, F>, Pick<AutoRefreshGroupProps, "showRefresh" | "showAutoRefresh"> {
112
+ /** toolbar props */
113
+ export interface TableToolbarProps<T extends Record<string, any> = Record<string, any>,
114
+ /** 静态参数 */
115
+ SQ extends Record<string, any> = Record<string, any>,
116
+ /** 期望注入到表格列插槽上的额外内容 */
117
+ F extends Record<string, any> = {}> extends TableToolbarPrivateProps<T, SQ, F>, Pick<AutoRefreshGroupProps, "showRefresh" | "showAutoRefresh"> {
118
+ /**
119
+ * 是否由前端导出,默认 true。
120
+ * - true:toolbar 内部调 fetchListAll + exportCSV 完成导出
121
+ * - false:走 exportFn 回调
122
+ */
48
123
  exportByFe?: boolean;
124
+ /** 导出方法。传入导出类型,返回 Promise。exportByFe 为 false 时必传 */
49
125
  exportFn?: (type: ExportType) => Promise<unknown>;
126
+ /** 导出列配置。不传则不显示导出按钮。支持 valueMap 自定义取值 */
50
127
  exportColumns?: ExportColumnConfig<T>[];
128
+ /** 左侧额外按钮 */
51
129
  leftExtraButtons?: ToolbarButtonConfig<T, SQ, F>[];
130
+ /** 右侧额外按钮 */
52
131
  rightExtraButtons?: ToolbarButtonConfig<T, SQ, F>[];
53
132
  }
54
- export type TableToolbarConfig<T extends Record<string, any> = Record<string, any>, SQ extends Record<string, any> = Record<string, any>, F extends Record<string, any> = {}> = Omit<TableToolbarProps<T, SQ, F>, keyof TableToolbarPrivateProps<T, SQ, F>>;
133
+ /** toolbar 可配置项(通过 TableMain toolbar prop 传入) */
134
+ export type TableToolbarConfig<T extends Record<string, any> = Record<string, any>,
135
+ /** 静态参数 */
136
+ SQ extends Record<string, any> = Record<string, any>,
137
+ /** 期望注入到表格列插槽上的额外内容 */
138
+ F extends Record<string, any> = {}> = Omit<TableToolbarProps<T, SQ, F>, keyof TableToolbarPrivateProps<T, SQ, F>>;
139
+ /** 表格列默认作用域 */
55
140
  export interface TableColumnDefaultScope<T extends Record<string, any>, F extends Record<string, any>> {
56
141
  row: T;
57
142
  column: ElTableColumnProps<T, F>;
@@ -59,9 +144,11 @@ export interface TableColumnDefaultScope<T extends Record<string, any>, F extend
59
144
  injectInfo: F;
60
145
  exposeInfo: TableMainInstance;
61
146
  }
147
+ /** 表格列组件props[$开头的属性vue报错] */
62
148
  export type TableColumnComponentProps<T extends Record<string, any>, F extends Record<string, any>> = Omit<TableColumnDefaultScope<T, F>, "$index"> & {
63
149
  _index: TableColumnDefaultScope<T, F>["$index"];
64
150
  };
151
+ /** 表格列header作用域 */
65
152
  export interface TableColumnHeaderScope<T extends Record<string, any>, F extends Record<string, any>> {
66
153
  column: ElTableColumnProps<T, F>;
67
154
  $index: number;
@@ -69,7 +156,9 @@ export interface TableColumnHeaderScope<T extends Record<string, any>, F extends
69
156
  exposeInfo: TableMainInstance;
70
157
  }
71
158
  export type ExtractElTableColumnProps = ExtractPropTypes<typeof ETC>;
72
- export type ElTableColumnProps<T extends Record<string, any> = Record<string, any>, F extends Record<string, any> = {}> = Omit<ExtractPropTypes<typeof ETC>, "prop" | "columnKey" | "type"> & Partial<{
159
+ export type ElTableColumnProps<T extends Record<string, any> = Record<string, any>,
160
+ /** 期望注入到表格列插槽上的额外内容 */
161
+ F extends Record<string, any> = {}> = Omit<ExtractPropTypes<typeof ETC>, "prop" | "columnKey" | "type"> & Partial<{
73
162
  prop: Exclude<Extract<keyof T, string>, "custom-view-item" | "item"> | `${Uppercase<string>}`;
74
163
  columnKey: ElTableColumnProps<T, F>["prop"];
75
164
  type: "default" | "selection" | "index" | "expand";
@@ -77,38 +166,80 @@ export type ElTableColumnProps<T extends Record<string, any> = Record<string, an
77
166
  align: "left" | "center" | "right";
78
167
  headerAlign: "left" | "center" | "right";
79
168
  filterPlacement: "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end" | "left" | "left-start" | "left-end" | "right" | "right-start" | "right-end";
169
+ /** 插槽render */
80
170
  render: string | Record<string, any> | ((props: TableColumnComponentProps<T, F>) => VNode);
171
+ /** 表头插槽render */
81
172
  headerRender: string | Record<string, any> | ((props: TableColumnHeaderScope<T, F>) => VNode);
82
173
  }>;
174
+ /** 表格骨架屏 props(TableMain 内部件,不对外导出组件,仅类型复用) */
83
175
  export interface TableSkeletonProps {
176
+ /** 骨架形态:table=表格行列骨架 / grid=网格卡片骨架 */
84
177
  mode?: "table" | "grid";
178
+ /** 骨架行数(table)/ 卡片数(grid) */
85
179
  rows?: number;
180
+ /** 列数(仅 table 模式,取表格列数) */
86
181
  columns?: number;
182
+ /** 最大高度,与数据区同框限高 */
87
183
  maxHeight?: number;
184
+ /** 最小高度,配合 fillHeight 让冷启骨架也撑满、分页器不跳位 */
88
185
  minHeight?: number;
89
186
  }
90
- export interface TableMainProps<T extends Record<string, any>, SQ extends Record<string, any>, F extends Record<string, any>> {
187
+ export interface TableMainProps<
188
+ /** 行数据结构 */
189
+ T extends Record<string, any>,
190
+ /** 静态参数 */
191
+ SQ extends Record<string, any>,
192
+ /** 期望注入到表格列插槽上的额外内容 */
193
+ F extends Record<string, any>> {
194
+ /** 展示分页器 */
91
195
  showPager?: boolean;
196
+ /** 是否显示切换视图按钮,默认 false */
92
197
  showSwitchView?: boolean;
198
+ /** 是否显示 toolbar(顶层开关,默认 true,优先级高于 toolbar.leftFeatures / rightFeatures) */
93
199
  showToolbar?: boolean;
200
+ /** toolbar 配置 */
94
201
  toolbar?: TableToolbarConfig<T, SQ, F>;
202
+ /** 参数 */
95
203
  query?: SQ;
204
+ /** 每页条数 */
96
205
  pageSizeInit?: number;
97
206
  pageSizeOptions?: number[];
98
207
  pageLayout?: string;
99
208
  rowKey: Extract<keyof T, string> | ((row: T) => string);
209
+ /** 请求api */
100
210
  api: (params: TableApiParams<SQ>) => Promise<TableApiResult<T>>;
101
211
  tableProps?: Omit<TableProps<T>, "data" | "maxHeight" | "rowKey"> & Record<`on${Capitalize<string>}`, (...args: any[]) => any>;
102
212
  columns: ElTableColumnProps<T, F>[];
213
+ /** 最大高度 */
103
214
  maxHeight?: number;
215
+ /** @deprecated 表头背景色
216
+ * ----
217
+ * 外部通过 --el-table-header-bg-color 自行设置 或者 通过同意修改主题色
218
+ */
104
219
  headerColor?: string;
220
+ /** 精细化布局 */
105
221
  refine?: boolean;
222
+ /** 精细化预留高度 */
106
223
  refineReduceHeight?: number;
224
+ /** 给插槽注入的方法 */
107
225
  injectInfo?: F;
226
+ /** 数据视口最大高度最小值 */
108
227
  dataViewMaxHeightMinValue?: number;
228
+ /**
229
+ * 冷启(首次无数据)加载时展示骨架屏,默认 true。
230
+ * 热刷(已有数据再加载)不出骨架——由外层遮罩(如 ListPage v-loading)盖旧数据负责。
231
+ */
109
232
  skeleton?: boolean;
233
+ /** 骨架行数(table)/ 卡片数(grid),缺省按可用高度自适应(3~8) */
110
234
  skeletonRows?: number;
235
+ /**
236
+ * 撑满可用高(默认 false)。开启后数据滚动区 min-height = 可用视口高,
237
+ * 稀疏 / 空数据时把分页器顶到容器底部,不悬在稀疏内容中间。
238
+ * 需有 maxHeight 或 refine+viewportHeight 基准方生效。
239
+ */
111
240
  fillHeight?: boolean;
241
+ /** 视口可用高度(显式指定,优先级最高);未传时回退 SCOPE_VIEWPORT_MAX_HEIGHT scope 链 + fallback 0(dataViewMaxHeightMinValue floor 兜底) */
112
242
  viewportHeight?: number;
243
+ /** 定向消费的祖先 scope 标识(setup 期快照,变更 console.error 忽略);沿 scope 链 parent 找 scope === parentChannel 取值 */
113
244
  parentChannel?: string;
114
245
  }
@@ -1,11 +1,25 @@
1
1
  import { ComputedRef } from 'vue';
2
+ /**
3
+ * TableMain fillHeight 能力(非主流程 opt-in):数据滚动区 min-height 撑满可用高,
4
+ * 让稀疏 / 空数据时分页器被顶到容器底部,不悬在稀疏内容中间。
5
+ *
6
+ * 取值 = 未经 dataViewMaxHeightMinValue 下界兜底的「原始可用高」(区别于 tableMaxHeight
7
+ * 的 `Math.max(raw, min)`)——小视口下用真实小高度,不被 500 抬高致溢出。
8
+ * 关(enabled=false)/ 无 viewport 基准 → 恒 undefined,删本 hook = 删文件 + 委托行
9
+ * + 模板/样式挂点,主干零残留(规则 22)。
10
+ */
2
11
  export interface UseFillHeightOptions {
12
+ /** 开关(prop.fillHeight) */
3
13
  enabled: () => boolean;
14
+ /** 原始可用高(未兜底),无 viewport 基准时 undefined */
4
15
  rawAvailableHeight: () => number | undefined;
5
16
  }
6
17
  export interface UseFillHeightReturn {
18
+ /** 是否生效(开关开 + 有正的可用高) */
7
19
  fillActive: ComputedRef<boolean>;
20
+ /** 撑满用 min-height(px 数值);不生效为 undefined */
8
21
  fillMinHeight: ComputedRef<number | undefined>;
22
+ /** min-height 的 CSS 值(`${n}px`);不生效为空串(供 scoped style v-bind) */
9
23
  fillMinHeightCss: ComputedRef<string>;
10
24
  }
11
25
  export declare const useFillHeight: (options: UseFillHeightOptions) => UseFillHeightReturn;
@@ -1,17 +1,33 @@
1
1
  import { ComputedRef } from 'vue';
2
+ /**
3
+ * TableMain 冷启骨架屏派生逻辑(非主流程能力,抽离主体 setup)。
4
+ * 全 getter 入参、只读上游状态;关(enabled=false)时 showSkeleton 恒 false,删本 hook
5
+ * = 删文件 + TableMain 一行委托 + 模板挂点,主干零残留(规则 22)。
6
+ */
2
7
  export interface UseTableSkeletonOptions {
8
+ /** 骨架开关(prop.skeleton) */
3
9
  enabled: () => boolean;
10
+ /** 是否加载中 */
4
11
  loading: () => boolean;
12
+ /** 当前数据条数(0 = 冷启无数据) */
5
13
  dataLength: () => number;
14
+ /** 是否网格视图(决定骨架形态 table/grid) */
6
15
  isGrid: () => boolean;
16
+ /** 表格列数(table 骨架列数来源) */
7
17
  columnCount: () => number;
18
+ /** 显式骨架行数(prop.skeletonRows),0/空 = 按可用高度自适应 */
8
19
  skeletonRows: () => number | undefined;
20
+ /** 数据区可用高度(tableMaxHeight),用于行数自适应 */
9
21
  availableHeight: () => number | undefined;
10
22
  }
11
23
  export interface UseTableSkeletonReturn {
24
+ /** 是否展示骨架 = 开关开 + 加载中 + 冷启无数据(热刷有数据不出,交外层遮罩) */
12
25
  showSkeleton: ComputedRef<boolean>;
26
+ /** 骨架形态 */
13
27
  skeletonMode: ComputedRef<"table" | "grid">;
28
+ /** 骨架列数(夹到 [1,8]) */
14
29
  skeletonColumns: ComputedRef<number>;
30
+ /** 骨架行数(显式优先,否则按高度自适应夹到 [3,8]) */
15
31
  skeletonRowsFinal: ComputedRef<number>;
16
32
  }
17
33
  export declare const useTableSkeleton: (options: UseTableSkeletonOptions) => UseTableSkeletonReturn;
@@ -1,20 +1,49 @@
1
1
  import { DotToObject, UnionToIntersection } from '../types';
2
+ /**
3
+ * 列表 KEY 配置接口
4
+ * ---
5
+ * 约束消费方传入的 KEY_CONFIG 对象 shape,后续 BuildListModel / BuildListParams 工具基于本接口推导
6
+ */
2
7
  export interface ListModelKeyConfig {
3
8
  PAGE_SIZE_KEY: string;
4
9
  CURRENT_PAGE_KEY: string;
5
10
  TOTAL_KEY: string;
6
11
  LIST_KEY: string;
7
12
  }
13
+ /**
14
+ * 基于 KEY_CONFIG 联合推导完整列表响应模型
15
+ * ---
16
+ * @example
17
+ * BuildListModel<typeof APP_API_LIST_MODEL_KEY_CONFIG, User>
18
+ * -> { items: User[]; page: { page: number; pageSize: number; totalRecord: number } }
19
+ */
8
20
  export type BuildListModel<KC extends ListModelKeyConfig, T> = UnionToIntersection<DotToObject<KC["LIST_KEY"], T[]> | DotToObject<KC["TOTAL_KEY"], number> | DotToObject<KC["CURRENT_PAGE_KEY"], number> | DotToObject<KC["PAGE_SIZE_KEY"], number>>;
21
+ /**
22
+ * 基于 KEY_CONFIG 联合推导列表请求参数模型
23
+ * ---
24
+ * @example
25
+ * BuildListParams<typeof APP_API_LIST_MODEL_KEY_CONFIG, { keyword?: string }>
26
+ * -> { keyword?: string } & { page: { page: number; pageSize: number } }
27
+ */
9
28
  export type BuildListParams<KC extends ListModelKeyConfig, P extends Record<string, any> = Record<string, any>> = P & UnionToIntersection<DotToObject<KC["CURRENT_PAGE_KEY"], number> | DotToObject<KC["PAGE_SIZE_KEY"], number>>;
29
+ /** 应用接口列表模型配置(core 单一来源) */
10
30
  export declare const APP_API_LIST_MODEL_KEY_CONFIG: Readonly<{
31
+ /** 当前页码 key */
11
32
  CURRENT_PAGE_KEY: "page.page";
33
+ /** 每页条数 key */
12
34
  PAGE_SIZE_KEY: "page.pageSize";
35
+ /** 总数 key */
13
36
  TOTAL_KEY: "page.totalRecord";
37
+ /** 数据列表 key */
14
38
  LIST_KEY: "items";
15
39
  }>;
40
+ /** 应用接口列表模型 */
16
41
  export type AppApiListModel<T = any> = BuildListModel<typeof APP_API_LIST_MODEL_KEY_CONFIG, T>;
42
+ /** 应用接口列表分页参数 key */
17
43
  export type AppApiListPageParamsKey = typeof APP_API_LIST_MODEL_KEY_CONFIG.PAGE_SIZE_KEY | typeof APP_API_LIST_MODEL_KEY_CONFIG.CURRENT_PAGE_KEY;
44
+ /** 应用接口列表 排除分页参数的 key */
18
45
  export type AppApiListNoPageParamsKey = Exclude<string, AppApiListPageParamsKey>;
46
+ /** 应用接口列表请求参数模型 */
19
47
  export type AppApiListParamsModel<P extends Record<AppApiListNoPageParamsKey, any> = Record<AppApiListNoPageParamsKey, any>> = BuildListParams<typeof APP_API_LIST_MODEL_KEY_CONFIG, Partial<P>>;
48
+ /** 应用接口列表请求参数模型(排除分页参数) */
20
49
  export type AppApiListParamsNoPageParams<P extends BuildListParams<typeof APP_API_LIST_MODEL_KEY_CONFIG>> = Omit<AppApiListParamsModel<P>, keyof UnionToIntersection<DotToObject<(typeof APP_API_LIST_MODEL_KEY_CONFIG)["CURRENT_PAGE_KEY"], number> | DotToObject<(typeof APP_API_LIST_MODEL_KEY_CONFIG)["PAGE_SIZE_KEY"], number>>>;
@@ -1,2 +1,4 @@
1
+ /** 模块级别的路由 */
1
2
  export declare const ROUTE_MODULE_LEVEL = 1;
3
+ /** TabsMain replaceQuery 同步到路由时的 query key */
2
4
  export declare const TabsMainReplaceQueryKey = "_tab";
@@ -1,5 +1,10 @@
1
1
  import { FormItemRule } from 'element-plus';
2
+ /**
3
+ * 密码规则
4
+ */
2
5
  export declare const passwordRule: FormItemRule;
3
6
  export declare const getConfirmPasswordRule: (getPassword: () => string) => FormItemRule;
7
+ /** 选择框全选值 */
4
8
  export declare const FORM_CONFIG_SELECT_ALL_VALUE: string;
9
+ /** 设置表单组件类型 */
5
10
  export declare const setFormComponentType: () => void;
@@ -1,9 +1,35 @@
1
1
  import { TableApiParams, TableApiResult } from '../components/table/types';
2
2
  export interface FetchListAllOptions {
3
+ /** 单页大小,默认 200,范围 [1, 1000] */
3
4
  pageSize?: number;
5
+ /** 累计抓取上限,默认 10000;totalRecord > limit 则 throw */
4
6
  limit?: number;
5
7
  }
8
+ /**
9
+ * 全量翻页拉取(串行,提前终止)
10
+ * ---
11
+ * @param api 原始分页 api 函数(签名同 TableMain :api prop)
12
+ * @param baseParams 业务侧固定参数,会透传到每页 api 调用(不被改写)
13
+ * @param opts pageSize / limit 覆盖
14
+ * @returns 全量 items 数组
15
+ *
16
+ * 行为:
17
+ * - totalRecord = 0 → 直接 [] 返回(仅调 1 次)
18
+ * - 单页 items.length < pageSize → 视为末页提前终止
19
+ * - 任一页 reject → 整体 reject 透传原错误
20
+ * - totalRecord > limit → throw 兜底
21
+ */
6
22
  export declare function fetchListAll<T extends Record<string, any>, P extends Record<string, any> = {}>(api: (params: TableApiParams<P>) => Promise<TableApiResult<T>>, baseParams?: P, opts?: FetchListAllOptions): Promise<T[]>;
7
23
  export type ListApiSource<T> = T[] | (() => T[]) | (() => Promise<T[]>);
24
+ /**
25
+ * 用本地数组 / 同步函数 / 异步函数生成符合 TableMain :api prop 签名的 api
26
+ * ---
27
+ * 内部识别 source 类型 + 分页切片;无缓存,每次调用 source 重新求值
28
+ */
8
29
  export declare function createListApi<T extends Record<string, any>>(source: ListApiSource<T>): (params: TableApiParams<{}>) => Promise<TableApiResult<T>>;
30
+ /**
31
+ * countAll: 仅探测列表总记录数,不拉数据。
32
+ * 1 次 api 调用 page=1/pageSize=1,返回 totalRecord。
33
+ * 用于"探测是否有数据 / 数据计数 / 存在性判断"等场景,替代手工 pageSize: 9999 hack。
34
+ */
9
35
  export declare function countAll<P extends Record<string, any> = {}>(api: (params: TableApiParams<P>) => Promise<TableApiResult<any>>, baseParams?: P): Promise<number>;
@@ -1,4 +1,15 @@
1
+ /**
2
+ * 深度递归 Partial(函数类型保持不变,object 类型字段递归可选)
3
+ * ---
4
+ * 应用场景:SDK 请求参数嵌套结构的可选化(如 PagingInput)
5
+ */
1
6
  export type DeepPartial<T> = T extends (...args: any[]) => any ? T : T extends object ? {
2
7
  [K in keyof T]?: DeepPartial<T[K]>;
3
8
  } : T;
9
+ /**
10
+ * 分页请求参数的可选包装
11
+ * ---
12
+ * 与 SDK 1.1.40 嵌套契约耦合:业务侧手包 list api wrapper 时
13
+ * 常以 PagingInput<RawApiParams> 作为入参类型,兜底字段缺失
14
+ */
4
15
  export type PagingInput<T> = DeepPartial<T>;
@@ -1,7 +1,22 @@
1
+ /** 激活信息 */
1
2
  export interface ActivatedInfo {
2
3
  isActivated: boolean;
3
4
  triggerType: "mounted" | "activated" | "deactivated" | "unmounted";
4
5
  }
6
+ /**
7
+ * 是否激活。
8
+ *
9
+ * 四个生命周期时机(mounted / activated / deactivated / unmounted)各在对应钩子里
10
+ * **直接派发 watchFn**——`activatedInfo` 这个 ref 也只在这四处被改,别无他源,故不再经
11
+ * `watch` 中转。移除 `watch(activatedInfo, …, { immediate: true })` 同时根治了两个 bug:
12
+ * - **卸载不派发(监听泄漏)**:`watch` 默认 `flush:'pre'` 是队列 job,真·卸载时 watcher 在
13
+ * `scope.stop()` 后才轮到刷新、被跳过 → watchFn 收不到 `triggerType:"unmounted"`。直接派发即修。
14
+ * - **初始 false 陷阱**:`immediate` 种子(setup 期、isActivated=false、早于 onMounted)会让非幂等
15
+ * 副作用在激活前误触发一次。无 watch → 无种子 → 首次派发即 onMounted,陷阱消失(故无需 hasMounted)。
16
+ *
17
+ * 注:`useActivated((info) => …)` 里绑 window/document/matchMedia 等外部 target 监听的
18
+ * 「随激活态绑解」现在卸载会正常解绑,无需任何 opt-in。
19
+ */
5
20
  export declare const useActivated: (watchFn?: (info: ActivatedInfo) => void) => {
6
21
  isActivated: import('vue').ComputedRef<boolean>;
7
22
  activatedInfo: import('vue').ComputedRef<{
@@ -9,5 +24,13 @@ export declare const useActivated: (watchFn?: (info: ActivatedInfo) => void) =>
9
24
  readonly triggerType: "mounted" | "activated" | "deactivated" | "unmounted";
10
25
  }>;
11
26
  };
27
+ /**
28
+ * @deprecated 请使用 useActivated 替代
29
+ * @example useActivated((info) => { info.isActivated && callback(info) })
30
+ * 激活时执行时间 */
12
31
  export declare const useActivatedExec: (callback: (info: ActivatedInfo) => void) => void;
32
+ /**
33
+ * @deprecated 请使用 useActivated 替代
34
+ * @example useActivated((info) => { info.isActivated ? bind(info) : unbind(info) })
35
+ * 激活时监听事件 */
13
36
  export declare const useActivatedEvent: (bind: (info: ActivatedInfo) => void, unbind: (info: ActivatedInfo) => void) => void;
@@ -1,6 +1,8 @@
1
+ /** 感知元素尺寸变化 */
1
2
  export declare const useFeelSize: () => {
2
3
  unwatchDom: () => void;
3
4
  watchDom: (dom: HTMLElement) => void;
5
+ /** 元素尺寸信息只读属性 */
4
6
  sizeInfo: import('vue').ComputedRef<{
5
7
  width: number;
6
8
  height: number;
@@ -1,7 +1,11 @@
1
1
  import { RouteMetaResolveRaw } from '../types';
2
+ /** 应用菜单数据分发 */
2
3
  export declare const useMenusDataDispatch: ({ getMenus, getMenuFlatList, getExtractLevel1ToHeader, }: {
4
+ /** 菜单树 */
3
5
  getMenus: () => RouteMetaResolveRaw[];
6
+ /** 扁平化菜单列表 */
4
7
  getMenuFlatList: () => RouteMetaResolveRaw[];
8
+ /** 判断是否提取1级路由模块到HEADER */
5
9
  getExtractLevel1ToHeader: () => boolean;
6
10
  }) => {
7
11
  sidebarMenus: import('vue').ComputedRef<RouteMetaResolveRaw[]>;
@@ -1,3 +1,7 @@
1
1
  export type ClearTimer = () => void;
2
2
  export type SetTimer = (handler: () => void, timeout: number) => void;
3
+ /**
4
+ * 使用定时器
5
+ * @param autoClear 是否在生命周期结束前自动清除定时器
6
+ */
3
7
  export declare const useTimeout: (autoClear?: boolean) => [SetTimer, ClearTimer];
@@ -1,14 +1,22 @@
1
1
  import { ComputedRef } from 'vue';
2
2
  import { ScopeViewportMaxHeight } from '../inject';
3
+ /** useChannelViewportHeight 第二参数 options */
3
4
  export interface UseChannelViewportHeightOptions {
5
+ /** scope 链未命中时的最终兜底,默认 0(脱离容器体系不假定具体高;组件自有 floor 各管各) */
4
6
  fallback?: number;
5
7
  }
8
+ /** useChannelViewportHeight 入参对象形状(约定 reactive,props 即满足) */
6
9
  export interface UseChannelViewportHeightMaybeProps {
10
+ /** props.viewportHeight,显式指定,优先级最高 */
7
11
  viewportHeight?: number;
12
+ /** tabs 族 channel 父级标识——沿 scope 链找 `scope === parentChannel` 的祖先;setup 期快照,变更 console.error 忽略 */
8
13
  parentChannel?: string;
9
14
  }
15
+ /** useChannelViewportHeight 返回值 */
10
16
  export interface UseChannelViewportHeightReturn {
17
+ /** 最终视口高度,链路 viewportHeight > scope 链(parentChannel 定向/就近) > fallback */
11
18
  viewportHeightFinal: ComputedRef<number>;
19
+ /** inject 到的最近 scope 对象(未命中 undefined)——供 provider 型消费方(TabsRefineFlow)作 `parent` 续链 */
12
20
  nearestScope: ScopeViewportMaxHeight | undefined;
13
21
  }
14
22
  export declare const useChannelViewportHeight: (maybeProps: UseChannelViewportHeightMaybeProps, options?: UseChannelViewportHeightOptions) => UseChannelViewportHeightReturn;
@@ -1,8 +1,27 @@
1
1
  import { ComponentPublicInstance } from 'vue';
2
2
  import { Breakpoint } from './use-breakpoint';
3
+ /** 容器宽 → 断点 */
3
4
  export declare const resolveBreakpointByWidth: (width: number) => Breakpoint;
5
+ /** elRef 可挂载的目标:原生元素 | 组件公共实例 */
4
6
  export type CustomBreakpointTarget = HTMLElement | ComponentPublicInstance | null | undefined;
7
+ /**
8
+ * 从 elRef 值解析根 DOM 节点:
9
+ * - HTMLElement → 直接用;
10
+ * - 组件实例(有 $el)→ 取 $el;$el 非 Element(多根组件 / 注释锚点)→ dev warn + null(不猜测)。
11
+ */
5
12
  export declare const resolveRootEl: (target: CustomBreakpointTarget) => HTMLElement | null;
13
+ /**
14
+ * 容器断点 hook:按**目标自身宽度**(非视口)判定响应式断点。
15
+ * 反转接口——hook 导出 `elRef`,调用方经 `ref="elRef"` 挂到目标原生元素或组件上;
16
+ * hook 内部解析根节点 + ResizeObserver 观测宽度 → activeBreakpoint。
17
+ *
18
+ * 与视口 `useBreakpoint` 互补:视口版(matchMedia)用于与 ElCol 的 CSS 媒体查询对齐;
19
+ * 本版用于组件被塞进窄容器(如侧栏)时按容器宽自校准。
20
+ *
21
+ * 约束:仅支持根节点**稳定**的原生元素 / 组件(elRef 值身份变化才重解析)。
22
+ * 若目标组件根节点在**同一实例内**从注释锚点(如 v-if 关)切到元素,elRef 身份不变、
23
+ * 不会自动重挂观测——需保证挂载目标为稳定单根(如本项目 WatchSize 恒为单 div 根)。
24
+ */
6
25
  export declare const useCustomBreakpoint: () => {
7
26
  elRef: import('vue').ShallowRef<CustomBreakpointTarget, CustomBreakpointTarget>;
8
27
  activeBreakpoint: Readonly<import('vue').Ref<Breakpoint, Breakpoint>>;