@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,75 +1,104 @@
1
- import { defineComponent as L, toRefs as $, useModel as z, ref as K, computed as n, watch as T, openBlock as i, createElementBlock as o, normalizeClass as y, Fragment as g, renderList as R, unref as S, renderSlot as B, createTextVNode as A, toDisplayString as D, normalizeStyle as H, createCommentVNode as I, mergeModels as N, nextTick as V } from "vue";
2
- import { useActivated as F } from "../../hooks/activated.mjs";
3
- const W = ["onClick"], q = /* @__PURE__ */ L({
1
+ import { defineComponent, toRefs, useModel, ref, computed, watch, openBlock, createElementBlock, normalizeClass, Fragment, renderList, unref, renderSlot, createTextVNode, toDisplayString, normalizeStyle, createCommentVNode, mergeModels, nextTick } from "vue";
2
+ import { useActivated } from "../../hooks/activated.mjs";
3
+ const _hoisted_1 = ["onClick"];
4
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
5
  __name: "TabsHeader",
5
- props: /* @__PURE__ */ N({
6
+ props: /* @__PURE__ */ mergeModels({
6
7
  tabs: {},
7
8
  level: { default: 1 },
8
9
  variant: {}
9
10
  }, {
10
- activeKey: {},
11
- activeKeyModifiers: {}
11
+ "activeKey": {},
12
+ "activeKeyModifiers": {}
12
13
  }),
13
14
  emits: ["update:activeKey"],
14
- setup(v) {
15
- const u = v, { tabs: b, level: k, variant: h } = $(u), s = z(v, "activeKey"), l = /* @__PURE__ */ new Map(), d = K(0), m = n(
16
- () => Math.min(Math.max(Math.floor(k.value), 1), 4)
17
- ), w = n(() => `tabs-main-bar--l${m.value}`), M = {
15
+ setup(__props) {
16
+ const props = __props;
17
+ const { tabs, level, variant } = toRefs(props);
18
+ const activeKey = useModel(__props, "activeKey");
19
+ const tabElMap = /* @__PURE__ */ new Map();
20
+ const bump = ref(0);
21
+ const levelClamp = computed(
22
+ () => Math.min(Math.max(Math.floor(level.value), 1), 4)
23
+ );
24
+ const levelClass = computed(() => `tabs-main-bar--l${levelClamp.value}`);
25
+ const variantDefaultByLevel = {
18
26
  1: "card",
19
27
  2: "indicator",
20
28
  3: "indicator-compact",
21
29
  4: "plain"
22
- }, r = n(
23
- () => h.value ?? M[m.value]
24
- ), C = n(
25
- () => `tabs-main-bar--variant-${r.value}`
26
- ), x = n(
27
- () => r.value === "indicator" || r.value === "indicator-compact"
28
- ), _ = n(() => {
29
- const [, e] = [d.value, s.value], a = e ? l.get(e) : void 0;
30
- return a ? {
31
- width: `${a.offsetWidth}px`,
32
- transform: `translateX(${a.offsetLeft}px)`
33
- } : { width: "0px" };
34
- }), E = (e, a) => {
35
- a instanceof HTMLElement ? l.set(e, a) : l.delete(e);
36
- }, c = () => {
37
- V(() => {
38
- d.value++;
30
+ };
31
+ const variantResolved = computed(
32
+ () => variant.value ?? variantDefaultByLevel[levelClamp.value]
33
+ );
34
+ const variantClass = computed(
35
+ () => `tabs-main-bar--variant-${variantResolved.value}`
36
+ );
37
+ const showIndicator = computed(
38
+ () => variantResolved.value === "indicator" || variantResolved.value === "indicator-compact"
39
+ );
40
+ const indicatorStyle = computed(() => {
41
+ const [, key] = [bump.value, activeKey.value];
42
+ const el = key ? tabElMap.get(key) : void 0;
43
+ if (!el) return { width: "0px" };
44
+ return {
45
+ width: `${el.offsetWidth}px`,
46
+ transform: `translateX(${el.offsetLeft}px)`
47
+ };
48
+ });
49
+ const collectTabEl = (key, el) => {
50
+ if (el instanceof HTMLElement) tabElMap.set(key, el);
51
+ else tabElMap.delete(key);
52
+ };
53
+ const scheduleIndicatorRecalc = () => {
54
+ nextTick(() => {
55
+ bump.value++;
39
56
  });
40
- }, f = () => c();
41
- return F((e) => {
42
- e.isActivated ? (c(), window.addEventListener("resize", f)) : window.removeEventListener("resize", f);
43
- }), T(
44
- () => u.tabs,
45
- () => c(),
57
+ };
58
+ const onResize = () => scheduleIndicatorRecalc();
59
+ useActivated((info) => {
60
+ if (info.isActivated) {
61
+ scheduleIndicatorRecalc();
62
+ window.addEventListener("resize", onResize);
63
+ } else {
64
+ window.removeEventListener("resize", onResize);
65
+ }
66
+ });
67
+ watch(
68
+ () => props.tabs,
69
+ () => scheduleIndicatorRecalc(),
46
70
  { flush: "post" }
47
- ), (e, a) => (i(), o("div", {
48
- class: y(["tabs-main-bar", [w.value, C.value]])
49
- }, [
50
- (i(!0), o(g, null, R(S(b), (t) => (i(), o("button", {
51
- key: t.key,
52
- ref_for: !0,
53
- ref: (p) => E(t.key, p),
54
- type: "button",
55
- class: y(["tabs-main-bar-item", { "tabs-main-bar-item_active": t.key === s.value }]),
56
- onClick: (p) => s.value = t.key
71
+ );
72
+ return (_ctx, _cache) => {
73
+ return openBlock(), createElementBlock("div", {
74
+ class: normalizeClass(["tabs-main-bar", [levelClass.value, variantClass.value]])
57
75
  }, [
58
- B(e.$slots, t.key, {
59
- tab: t,
60
- active: t.key === s.value
61
- }, () => [
62
- A(D(t.title), 1)
63
- ], !0)
64
- ], 10, W))), 128)),
65
- x.value ? (i(), o("div", {
66
- key: 0,
67
- class: "tabs-main-bar-indicator",
68
- style: H(_.value)
69
- }, null, 4)) : I("", !0)
70
- ], 2));
76
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(tabs), (tab) => {
77
+ return openBlock(), createElementBlock("button", {
78
+ key: tab.key,
79
+ ref_for: true,
80
+ ref: (el) => collectTabEl(tab.key, el),
81
+ type: "button",
82
+ class: normalizeClass(["tabs-main-bar-item", { "tabs-main-bar-item_active": tab.key === activeKey.value }]),
83
+ onClick: ($event) => activeKey.value = tab.key
84
+ }, [
85
+ renderSlot(_ctx.$slots, tab.key, {
86
+ tab,
87
+ active: tab.key === activeKey.value
88
+ }, () => [
89
+ createTextVNode(toDisplayString(tab.title), 1)
90
+ ], true)
91
+ ], 10, _hoisted_1);
92
+ }), 128)),
93
+ showIndicator.value ? (openBlock(), createElementBlock("div", {
94
+ key: 0,
95
+ class: "tabs-main-bar-indicator",
96
+ style: normalizeStyle(indicatorStyle.value)
97
+ }, null, 4)) : createCommentVNode("", true)
98
+ ], 2);
99
+ };
71
100
  }
72
101
  });
73
102
  export {
74
- q as default
103
+ _sfc_main as default
75
104
  };
@@ -1,22 +1,22 @@
1
- import { defineComponent as K, inject as O, toRefs as j, useModel as x, useSlots as z, ref as D, computed as T, h as G, provide as J, watch as W, unref as a, openBlock as u, createBlock as v, createSlots as C, renderList as m, withCtx as s, renderSlot as d, normalizeProps as f, guardReactiveProps as c, resolveDynamicComponent as X, mergeProps as Y, KeepAlive as Z, createCommentVNode as ee, createVNode as te, createElementVNode as ae, mergeModels as ne } from "vue";
2
- import { useRoute as oe, useRouter as re } from "vue-router";
3
- import ie from "./TabsRefineFlow.vue.mjs";
4
- import le from "./TabsNaturalFlow.vue.mjs";
5
- import se from "./TabsHeader.vue.mjs";
6
- import ue from "./TabsTile.vue.mjs";
7
- import { watchTabToQuery as ve, getTabQuery as pe } from "./use-tabs-query-sync.mjs";
8
- import { TABS_MAIN_VISUAL_LEVEL as q } from "../../inject/key.mjs";
9
- import { useActivated as me } from "../../hooks/activated.mjs";
10
- const He = /* @__PURE__ */ K({
1
+ import { defineComponent, inject, toRefs, useModel, useSlots, ref, computed, h, provide, watch, unref, openBlock, createBlock, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, resolveDynamicComponent, mergeProps, KeepAlive, createCommentVNode, createVNode, createElementVNode, mergeModels } from "vue";
2
+ import { useRoute, useRouter } from "vue-router";
3
+ import _sfc_main$1 from "./TabsRefineFlow.vue.mjs";
4
+ import _sfc_main$2 from "./TabsNaturalFlow.vue.mjs";
5
+ import TabsHeader from "./TabsHeader.vue.mjs";
6
+ import TabsTile from "./TabsTile.vue.mjs";
7
+ import { watchTabToQuery, getTabQuery } from "./use-tabs-query-sync.mjs";
8
+ import { TABS_MAIN_VISUAL_LEVEL } from "../../inject/key.mjs";
9
+ import { useActivated } from "../../hooks/activated.mjs";
10
+ const _sfc_main = /* @__PURE__ */ defineComponent({
11
11
  __name: "TabsMain",
12
- props: /* @__PURE__ */ ne({
12
+ props: /* @__PURE__ */ mergeModels({
13
13
  tabs: {},
14
14
  viewportHeight: {},
15
15
  minHeight: { default: 100 },
16
16
  channel: {},
17
17
  parentChannel: {},
18
18
  padding: {},
19
- refine: { type: Boolean, default: !1 },
19
+ refine: { type: Boolean, default: false },
20
20
  refineReduceHeight: { default: 0 },
21
21
  variant: {},
22
22
  queryKey: {},
@@ -25,134 +25,165 @@ const He = /* @__PURE__ */ K({
25
25
  navMode: {},
26
26
  navOffset: {}
27
27
  }, {
28
- modelValue: {},
29
- modelModifiers: {}
28
+ "modelValue": {},
29
+ "modelModifiers": {}
30
30
  }),
31
31
  emits: ["update:modelValue"],
32
- setup(y) {
33
- const r = y, h = O(q, 0) + 1, {
34
- viewportHeight: g,
35
- minHeight: b,
36
- channel: M,
37
- parentChannel: k,
38
- padding: R,
39
- refine: p,
40
- refineReduceHeight: $,
41
- variant: L,
42
- tabs: i,
43
- tile: A,
44
- navPosition: B,
45
- navMode: P,
46
- navOffset: S
47
- } = j(r), o = x(y, "modelValue"), w = oe(), N = re();
48
- let V = !1;
49
- me((n) => {
50
- if (!n.isActivated) return;
51
- const t = r.queryKey ? pe(w, r.queryKey) : void 0;
52
- t && (o.value = t), V = !0;
53
- }), ve({
54
- model: o,
55
- route: w,
56
- router: N,
57
- queryKey: () => r.queryKey,
58
- ready: () => V
32
+ setup(__props) {
33
+ const props = __props;
34
+ const parentVisualLevel = inject(TABS_MAIN_VISUAL_LEVEL, 0);
35
+ const selfVisualLevel = parentVisualLevel + 1;
36
+ const {
37
+ viewportHeight,
38
+ minHeight,
39
+ channel,
40
+ parentChannel,
41
+ padding,
42
+ refine,
43
+ refineReduceHeight,
44
+ variant,
45
+ tabs,
46
+ tile,
47
+ navPosition,
48
+ navMode,
49
+ navOffset
50
+ } = toRefs(props);
51
+ const model = useModel(__props, "modelValue");
52
+ const route = useRoute();
53
+ const router = useRouter();
54
+ let queryReady = false;
55
+ useActivated((info) => {
56
+ if (!info.isActivated) return;
57
+ const activeFromQuery = props.queryKey ? getTabQuery(route, props.queryKey) : void 0;
58
+ if (activeFromQuery) model.value = activeFromQuery;
59
+ queryReady = true;
59
60
  });
60
- const _ = z(), H = D(void 0), E = T(
61
- () => p.value ? ie : le
62
- ), Q = T(
63
- () => p.value ? {
64
- viewportHeight: g.value,
65
- minHeight: b.value,
66
- channel: M.value,
67
- parentChannel: k.value,
68
- padding: R.value,
69
- refineReduceHeight: $.value
61
+ watchTabToQuery({
62
+ model,
63
+ route,
64
+ router,
65
+ queryKey: () => props.queryKey,
66
+ ready: () => queryReady
67
+ });
68
+ const slots = useSlots();
69
+ const contentViewportHeight = ref(void 0);
70
+ const wrapperComponent = computed(
71
+ () => refine.value ? _sfc_main$1 : _sfc_main$2
72
+ );
73
+ const wrapperProps = computed(
74
+ () => refine.value ? {
75
+ viewportHeight: viewportHeight.value,
76
+ minHeight: minHeight.value,
77
+ channel: channel.value,
78
+ parentChannel: parentChannel.value,
79
+ padding: padding.value,
80
+ refineReduceHeight: refineReduceHeight.value
70
81
  } : {}
71
- ), U = (n) => r.tabs.find((t) => t.key === n), F = (n) => {
72
- H.value = n;
73
- }, I = K({
82
+ );
83
+ const tabByKey = (key) => props.tabs.find((tab) => tab.key === key);
84
+ const onViewportHeightChange = (value) => {
85
+ contentViewportHeight.value = value;
86
+ };
87
+ const TabPane = defineComponent({
74
88
  name: "TabsMainPane",
75
89
  props: {
76
- paneKey: { type: String, required: !0 },
77
- viewportHeight: { type: Number, required: !1 }
90
+ paneKey: { type: String, required: true },
91
+ viewportHeight: { type: Number, required: false }
78
92
  },
79
- setup(n) {
93
+ setup(paneProps) {
80
94
  return () => {
81
- const t = _[n.paneKey], e = U(n.paneKey);
82
- return t ? t({
83
- tab: e,
84
- active: !0,
85
- viewportHeight: n.viewportHeight
86
- }) : e != null && e.component ? G(e.component) : null;
95
+ const slotFn = slots[paneProps.paneKey];
96
+ const tab = tabByKey(paneProps.paneKey);
97
+ if (slotFn)
98
+ return slotFn({
99
+ tab,
100
+ active: true,
101
+ viewportHeight: paneProps.viewportHeight
102
+ });
103
+ if (tab == null ? void 0 : tab.component) return h(tab.component);
104
+ return null;
87
105
  };
88
106
  }
89
107
  });
90
- return J(q, h), W(
91
- [o, () => r.tabs],
108
+ provide(TABS_MAIN_VISUAL_LEVEL, selfVisualLevel);
109
+ watch(
110
+ [model, () => props.tabs],
92
111
  () => {
93
- !(!!o.value && r.tabs.some((t) => t.key === o.value)) && r.tabs.length && (o.value = r.tabs[0].key);
112
+ const valid = !!model.value && props.tabs.some((tab) => tab.key === model.value);
113
+ if (!valid && props.tabs.length) {
114
+ model.value = props.tabs[0].key;
115
+ }
94
116
  },
95
- { immediate: !0 }
96
- ), (n, t) => a(A) ? (u(), v(ue, {
97
- key: 0,
98
- modelValue: o.value,
99
- "onUpdate:modelValue": t[0] || (t[0] = (e) => o.value = e),
100
- class: "dc-tabs-main",
101
- tabs: a(i),
102
- refine: a(p),
103
- "viewport-height": a(g),
104
- "min-height": a(b),
105
- "parent-channel": a(k),
106
- "nav-position": a(B),
107
- "nav-mode": a(P),
108
- "nav-offset": a(S)
109
- }, C({ _: 2 }, [
110
- m(a(i), (e) => ({
111
- name: e.key,
112
- fn: s((l) => [
113
- d(n.$slots, e.key, f(c(l)))
114
- ])
115
- })),
116
- m(a(i), (e) => ({
117
- name: `header-${e.key}`,
118
- fn: s((l) => [
119
- d(n.$slots, `header-${e.key}`, f(c(l)))
120
- ])
121
- }))
122
- ]), 1032, ["modelValue", "tabs", "refine", "viewport-height", "min-height", "parent-channel", "nav-position", "nav-mode", "nav-offset"])) : (u(), v(X(E.value), Y({
123
- key: 1,
124
- class: "dc-tabs-main"
125
- }, Q.value, { onViewportHeightChange: F }), {
126
- header: s(() => [
127
- te(se, {
128
- "active-key": o.value,
129
- "onUpdate:activeKey": t[1] || (t[1] = (e) => o.value = e),
130
- tabs: a(i),
131
- level: h,
132
- variant: a(L)
133
- }, C({ _: 2 }, [
134
- m(a(i), (e) => ({
135
- name: e.key,
136
- fn: s((l) => [
137
- d(n.$slots, `header-${e.key}`, f(c(l)))
117
+ { immediate: true }
118
+ );
119
+ return (_ctx, _cache) => {
120
+ return unref(tile) ? (openBlock(), createBlock(TabsTile, {
121
+ key: 0,
122
+ modelValue: model.value,
123
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
124
+ class: "dc-tabs-main",
125
+ tabs: unref(tabs),
126
+ refine: unref(refine),
127
+ "viewport-height": unref(viewportHeight),
128
+ "min-height": unref(minHeight),
129
+ "parent-channel": unref(parentChannel),
130
+ "nav-position": unref(navPosition),
131
+ "nav-mode": unref(navMode),
132
+ "nav-offset": unref(navOffset)
133
+ }, createSlots({ _: 2 }, [
134
+ renderList(unref(tabs), (tab) => {
135
+ return {
136
+ name: tab.key,
137
+ fn: withCtx((scope) => [
138
+ renderSlot(_ctx.$slots, tab.key, normalizeProps(guardReactiveProps(scope)))
139
+ ])
140
+ };
141
+ }),
142
+ renderList(unref(tabs), (tab) => {
143
+ return {
144
+ name: `header-${tab.key}`,
145
+ fn: withCtx((scope) => [
146
+ renderSlot(_ctx.$slots, `header-${tab.key}`, normalizeProps(guardReactiveProps(scope)))
138
147
  ])
139
- }))
140
- ]), 1032, ["active-key", "tabs", "variant"]),
141
- t[2] || (t[2] = ae("div", { style: { height: "8px" } }, null, -1))
142
- ]),
143
- default: s(() => [
144
- (u(), v(Z, null, [
145
- o.value ? (u(), v(a(I), {
146
- key: o.value,
147
- "pane-key": o.value,
148
- "viewport-height": H.value
149
- }, null, 8, ["pane-key", "viewport-height"])) : ee("", !0)
150
- ], 1024))
151
- ]),
152
- _: 3
153
- }, 16));
148
+ };
149
+ })
150
+ ]), 1032, ["modelValue", "tabs", "refine", "viewport-height", "min-height", "parent-channel", "nav-position", "nav-mode", "nav-offset"])) : (openBlock(), createBlock(resolveDynamicComponent(wrapperComponent.value), mergeProps({
151
+ key: 1,
152
+ class: "dc-tabs-main"
153
+ }, wrapperProps.value, { onViewportHeightChange }), {
154
+ header: withCtx(() => [
155
+ createVNode(TabsHeader, {
156
+ "active-key": model.value,
157
+ "onUpdate:activeKey": _cache[1] || (_cache[1] = ($event) => model.value = $event),
158
+ tabs: unref(tabs),
159
+ level: selfVisualLevel,
160
+ variant: unref(variant)
161
+ }, createSlots({ _: 2 }, [
162
+ renderList(unref(tabs), (tab) => {
163
+ return {
164
+ name: tab.key,
165
+ fn: withCtx((scope) => [
166
+ renderSlot(_ctx.$slots, `header-${tab.key}`, normalizeProps(guardReactiveProps(scope)))
167
+ ])
168
+ };
169
+ })
170
+ ]), 1032, ["active-key", "tabs", "variant"]),
171
+ _cache[2] || (_cache[2] = createElementVNode("div", { style: { "height": "8px" } }, null, -1))
172
+ ]),
173
+ default: withCtx(() => [
174
+ (openBlock(), createBlock(KeepAlive, null, [
175
+ model.value ? (openBlock(), createBlock(unref(TabPane), {
176
+ key: model.value,
177
+ "pane-key": model.value,
178
+ "viewport-height": contentViewportHeight.value
179
+ }, null, 8, ["pane-key", "viewport-height"])) : createCommentVNode("", true)
180
+ ], 1024))
181
+ ]),
182
+ _: 3
183
+ }, 16));
184
+ };
154
185
  }
155
186
  });
156
187
  export {
157
- He as default
188
+ _sfc_main as default
158
189
  };
@@ -1,4 +1,4 @@
1
- import f from "./TabsMain.vue.mjs";
1
+ import _sfc_main from "./TabsMain.vue.mjs";
2
2
  export {
3
- f as default
3
+ _sfc_main as default
4
4
  };
@@ -1,17 +1,21 @@
1
- import { defineComponent as s, onMounted as a, openBlock as r, createElementBlock as i, renderSlot as t } from "vue";
2
- const l = { class: "tabs-natural-flow" }, p = /* @__PURE__ */ s({
1
+ import { defineComponent, onMounted, openBlock, createElementBlock, renderSlot } from "vue";
2
+ const _hoisted_1 = { class: "tabs-natural-flow" };
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
3
4
  __name: "TabsNaturalFlow",
4
5
  emits: ["viewportHeightChange"],
5
- setup(c, { emit: o }) {
6
- const n = o;
7
- return a(() => {
8
- n("viewportHeightChange", void 0);
9
- }), (e, d) => (r(), i("div", l, [
10
- t(e.$slots, "header"),
11
- t(e.$slots, "default")
12
- ]));
6
+ setup(__props, { emit: __emit }) {
7
+ const emits = __emit;
8
+ onMounted(() => {
9
+ emits("viewportHeightChange", void 0);
10
+ });
11
+ return (_ctx, _cache) => {
12
+ return openBlock(), createElementBlock("div", _hoisted_1, [
13
+ renderSlot(_ctx.$slots, "header"),
14
+ renderSlot(_ctx.$slots, "default")
15
+ ]);
16
+ };
13
17
  }
14
18
  });
15
19
  export {
16
- p as default
20
+ _sfc_main as default
17
21
  };
@@ -1,4 +1,4 @@
1
- import f from "./TabsNaturalFlow.vue.mjs";
1
+ import _sfc_main from "./TabsNaturalFlow.vue.mjs";
2
2
  export {
3
- f as default
3
+ _sfc_main as default
4
4
  };
@@ -1,8 +1,9 @@
1
- import { defineComponent as f, ref as H, computed as i, provide as u, watch as v, openBlock as w, createElementBlock as C, createVNode as _, createSlots as V, withCtx as a, createElementVNode as S, normalizeStyle as b, renderSlot as r } from "vue";
2
- import x from "./HeightProvider.vue.mjs";
3
- import { useChannelViewportHeight as E } from "../../hooks/use-channel-viewport-height.mjs";
4
- import { SCOPE_VIEWPORT_MAX_HEIGHT as $ } from "../../inject/key.mjs";
5
- const y = { class: "tabs-refine-flow" }, z = /* @__PURE__ */ f({
1
+ import { defineComponent, ref, computed, provide, watch, openBlock, createElementBlock, createVNode, createSlots, withCtx, createElementVNode, normalizeStyle, renderSlot } from "vue";
2
+ import _sfc_main$1 from "./HeightProvider.vue.mjs";
3
+ import { useChannelViewportHeight } from "../../hooks/use-channel-viewport-height.mjs";
4
+ import { SCOPE_VIEWPORT_MAX_HEIGHT } from "../../inject/key.mjs";
5
+ const _hoisted_1 = { class: "tabs-refine-flow" };
6
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
7
  __name: "TabsRefineFlow",
7
8
  props: {
8
9
  viewportHeight: {},
@@ -13,52 +14,64 @@ const y = { class: "tabs-refine-flow" }, z = /* @__PURE__ */ f({
13
14
  refineReduceHeight: { default: 0 }
14
15
  },
15
16
  emits: ["viewportHeightChange"],
16
- setup(n, { emit: d }) {
17
- const t = n, l = d, { viewportHeightFinal: h, nearestScope: p } = E(t), o = H(0), s = i(() => t.padding[0] + t.padding[2]), c = i(() => ({
18
- padding: t.padding.map((e) => `${e}px`).join(" "),
17
+ setup(__props, { emit: __emit }) {
18
+ const props = __props;
19
+ const emits = __emit;
20
+ const { viewportHeightFinal, nearestScope } = useChannelViewportHeight(props);
21
+ const childViewportHeightChange = ref(0);
22
+ const paddingVertical = computed(() => props.padding[0] + props.padding[2]);
23
+ const paddingWrapStyle = computed(() => ({
24
+ padding: props.padding.map((n) => `${n}px`).join(" "),
19
25
  boxSizing: "border-box"
20
- })), g = i(
26
+ }));
27
+ const heightProviderViewportHeight = computed(
21
28
  () => Math.max(
22
- h.value - s.value - t.refineReduceHeight,
29
+ viewportHeightFinal.value - paddingVertical.value - props.refineReduceHeight,
23
30
  0
24
31
  )
25
- ), m = (e) => {
26
- o.value = e, l("viewportHeightChange", e);
32
+ );
33
+ const onChildViewportHeightChange = (height) => {
34
+ childViewportHeightChange.value = height;
35
+ emits("viewportHeightChange", height);
27
36
  };
28
- return u($, {
29
- scope: t.channel,
30
- viewportMaxHeight: i(() => o.value),
31
- parent: p
32
- }), v(
37
+ provide(SCOPE_VIEWPORT_MAX_HEIGHT, {
38
+ scope: props.channel,
39
+ viewportMaxHeight: computed(() => childViewportHeightChange.value),
40
+ parent: nearestScope
41
+ });
42
+ watch(
33
43
  // eslint-disable-next-line vue/no-setup-props-destructure
34
- () => t.channel,
44
+ () => props.channel,
35
45
  () => console.error("[TabsMain] channel 不支持响应式变更,当前值已忽略。")
36
- ), (e, M) => (w(), C("div", y, [
37
- _(x, {
38
- viewportHeight: g.value,
39
- minHeight: n.minHeight,
40
- onChildViewportHeightChange: m
41
- }, V({
42
- default: a(() => [
43
- S("div", {
44
- style: b(c.value)
45
- }, [
46
- r(e.$slots, "default")
47
- ], 4)
48
- ]),
49
- _: 2
50
- }, [
51
- e.$slots.header ? {
52
- name: "header",
53
- fn: a(() => [
54
- r(e.$slots, "header")
46
+ );
47
+ return (_ctx, _cache) => {
48
+ return openBlock(), createElementBlock("div", _hoisted_1, [
49
+ createVNode(_sfc_main$1, {
50
+ viewportHeight: heightProviderViewportHeight.value,
51
+ minHeight: __props.minHeight,
52
+ onChildViewportHeightChange
53
+ }, createSlots({
54
+ default: withCtx(() => [
55
+ createElementVNode("div", {
56
+ style: normalizeStyle(paddingWrapStyle.value)
57
+ }, [
58
+ renderSlot(_ctx.$slots, "default")
59
+ ], 4)
55
60
  ]),
56
- key: "0"
57
- } : void 0
58
- ]), 1032, ["viewportHeight", "minHeight"])
59
- ]));
61
+ _: 2
62
+ }, [
63
+ _ctx.$slots.header ? {
64
+ name: "header",
65
+ fn: withCtx(() => [
66
+ renderSlot(_ctx.$slots, "header")
67
+ ]),
68
+ key: "0"
69
+ } : void 0
70
+ ]), 1032, ["viewportHeight", "minHeight"])
71
+ ]);
72
+ };
60
73
  }
61
74
  });
62
75
  export {
63
- z as default
76
+ _sfc_main as default
64
77
  };