@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.
- package/README.md +77 -1
- package/es/_virtual/_plugin-vue_export-helper.mjs +7 -6
- package/es/bridge/config-hook.mjs +49 -37
- package/es/bridge/index.mjs +152 -109
- package/es/bridge/layout.mjs +45 -31
- package/es/bridge/plugin.mjs +22 -12
- package/es/bridge/route.mjs +59 -50
- package/es/bridge/state.mjs +54 -39
- package/es/bridge/storage.mjs +18 -8
- package/es/bridge/theme/index.mjs +200 -97
- package/es/bridge/theme/persist.mjs +11 -7
- package/es/bridge/theme/system-dark.mjs +13 -6
- package/es/components/app-layout/AppAside.vue.mjs +4 -4
- package/es/components/app-layout/AppAside.vue2.mjs +37 -30
- package/es/components/app-layout/AppBody.vue.mjs +4 -4
- package/es/components/app-layout/AppBody.vue2.mjs +97 -60
- package/es/components/app-layout/AppBreadcrumb.vue.mjs +4 -4
- package/es/components/app-layout/AppBreadcrumb.vue2.mjs +59 -38
- package/es/components/app-layout/AppCollapseToggle.vue.mjs +4 -4
- package/es/components/app-layout/AppCollapseToggle.vue2.mjs +51 -42
- package/es/components/app-layout/AppFooter.vue.mjs +4 -4
- package/es/components/app-layout/AppFooter.vue2.mjs +15 -12
- package/es/components/app-layout/AppHeader.vue.mjs +4 -4
- package/es/components/app-layout/AppHeader.vue2.mjs +81 -58
- package/es/components/app-layout/AppLayout.vue.mjs +4 -4
- package/es/components/app-layout/AppLayout.vue2.mjs +148 -112
- package/es/components/app-layout/AppPage.vue.mjs +4 -4
- package/es/components/app-layout/AppPage.vue2.mjs +254 -197
- package/es/components/app-layout/AppShell.vue.mjs +44 -42
- package/es/components/app-layout/AppShell.vue2.mjs +2 -2
- package/es/components/app-layout/AppSidebar.vue.mjs +4 -4
- package/es/components/app-layout/AppSidebar.vue2.mjs +76 -59
- package/es/components/app-layout/AppTheme.vue.mjs +4 -4
- package/es/components/app-layout/AppTheme.vue2.mjs +69 -57
- package/es/components/app-layout/app-page-geometry.mjs +44 -42
- package/es/components/app-layout/keep-alive.mjs +27 -19
- package/es/components/app-layout/viewport.mjs +4 -3
- package/es/components/data-view/DataListView.vue.mjs +4 -4
- package/es/components/data-view/DataListView.vue2.mjs +133 -93
- package/es/components/data-view/DataListViewItem.vue.mjs +4 -4
- package/es/components/data-view/DataListViewItem.vue2.mjs +11 -9
- package/es/components/data-view/utils.mjs +36 -34
- package/es/components/display/ActionBtn.vue.mjs +94 -71
- package/es/components/display/ActionBtn.vue2.mjs +2 -2
- package/es/components/display/ActionBtnGroup.vue.mjs +54 -48
- package/es/components/display/ActionBtnGroup.vue2.mjs +2 -2
- package/es/components/display/ActionConfirm.vue.mjs +4 -4
- package/es/components/display/ActionConfirm.vue2.mjs +116 -92
- package/es/components/display/BooleanTag.vue.mjs +24 -18
- package/es/components/display/BooleanTag.vue2.mjs +2 -2
- package/es/components/display/HeightProvider.vue.mjs +37 -27
- package/es/components/display/HeightProvider.vue2.mjs +2 -2
- package/es/components/display/TabsHeader.vue.mjs +4 -4
- package/es/components/display/TabsHeader.vue2.mjs +86 -57
- package/es/components/display/TabsMain.vue.mjs +156 -125
- package/es/components/display/TabsMain.vue2.mjs +2 -2
- package/es/components/display/TabsNaturalFlow.vue.mjs +15 -11
- package/es/components/display/TabsNaturalFlow.vue2.mjs +2 -2
- package/es/components/display/TabsRefineFlow.vue.mjs +55 -42
- package/es/components/display/TabsRefineFlow.vue2.mjs +2 -2
- package/es/components/display/TabsTile.vue.mjs +4 -4
- package/es/components/display/TabsTile.vue2.mjs +204 -146
- package/es/components/display/WatchSize.vue.mjs +50 -30
- package/es/components/display/WatchSize.vue2.mjs +2 -2
- package/es/components/display/use-tabs-query-sync.mjs +21 -17
- package/es/components/form/FormItem.vue.mjs +4 -4
- package/es/components/form/FormItem.vue2.mjs +183 -121
- package/es/components/form/FormItemNestForm.vue.mjs +4 -4
- package/es/components/form/FormItemNestForm.vue2.mjs +38 -34
- package/es/components/form/FormItemNestFormList.vue.mjs +4 -4
- package/es/components/form/FormItemNestFormList.vue2.mjs +135 -106
- package/es/components/form/FormMain.vue.mjs +4 -4
- package/es/components/form/FormMain.vue2.mjs +226 -139
- package/es/components/form/FormRadioGroup.vue.mjs +67 -52
- package/es/components/form/FormRadioGroup.vue2.mjs +2 -2
- package/es/components/form/FormSearch.vue.mjs +4 -4
- package/es/components/form/FormSearch.vue2.mjs +194 -156
- package/es/components/form/FormSelect.vue.mjs +69 -42
- package/es/components/form/FormSelect.vue2.mjs +2 -2
- package/es/components/form/FormSubmitBtn.vue.mjs +30 -25
- package/es/components/form/FormSubmitBtn.vue2.mjs +2 -2
- package/es/components/form/FormSubmitPanel.vue.mjs +4 -4
- package/es/components/form/FormSubmitPanel.vue2.mjs +129 -96
- package/es/components/form/FormTree.vue.mjs +19 -16
- package/es/components/form/FormTree.vue2.mjs +2 -2
- package/es/components/form/FormVerifyCode.vue.mjs +58 -41
- package/es/components/form/FormVerifyCode.vue2.mjs +2 -2
- package/es/components/form/FormVerifyImage.vue.mjs +4 -4
- package/es/components/form/FormVerifyImage.vue2.mjs +62 -40
- package/es/components/form/form-search-utils.mjs +83 -52
- package/es/components/form/nest-form-item-list.mjs +63 -55
- package/es/components/form/nest-form-item.mjs +30 -30
- package/es/components/form/nest-registry.mjs +4 -4
- package/es/components/form/use-form-submit.mjs +18 -15
- package/es/components/form/use-layout-by-container.mjs +23 -15
- package/es/components/form/use-nest-form-list.mjs +19 -16
- package/es/components/form/use-nest-form.mjs +37 -28
- package/es/components/form/use-nest-layout-scale.mjs +11 -10
- package/es/components/form/utils.mjs +233 -145
- package/es/components/list-page/ListPage.vue.mjs +4 -4
- package/es/components/list-page/ListPage.vue2.mjs +313 -207
- package/es/components/list-page/use-sticky.mjs +45 -33
- package/es/components/menu/MenuItemSub.vue.mjs +47 -43
- package/es/components/menu/MenuItemSub.vue2.mjs +2 -2
- package/es/components/menu/MenuTree.vue.mjs +84 -61
- package/es/components/menu/MenuTree.vue2.mjs +2 -2
- package/es/components/misc/AutoRefresh.vue.mjs +4 -4
- package/es/components/misc/AutoRefresh.vue2.mjs +78 -53
- package/es/components/misc/AutoRefreshGroup.vue.mjs +4 -4
- package/es/components/misc/AutoRefreshGroup.vue2.mjs +54 -51
- package/es/components/misc/SelectModule.vue.mjs +54 -45
- package/es/components/misc/SelectModule.vue2.mjs +2 -2
- package/es/components/misc/TriggerAutoImport.vue.mjs +7 -5
- package/es/components/misc/TriggerAutoImport.vue2.mjs +2 -2
- package/es/components/modal/ModalConfirm.vue.mjs +4 -4
- package/es/components/modal/ModalConfirm.vue2.mjs +160 -125
- package/es/components/modal/ModalDetail.vue.mjs +50 -39
- package/es/components/modal/ModalDetail.vue2.mjs +2 -2
- package/es/components/modal/ModalForm.vue.mjs +63 -52
- package/es/components/modal/ModalForm.vue2.mjs +2 -2
- package/es/components/modal/ModalPorter.vue.mjs +51 -36
- package/es/components/modal/ModalPorter.vue2.mjs +2 -2
- package/es/components/modal/ModalShelf.vue.mjs +38 -28
- package/es/components/modal/ModalShelf.vue2.mjs +2 -2
- package/es/components/modal/modal-shelf-core.mjs +52 -36
- package/es/components/modal/modal-shelf-hierarchy.mjs +11 -9
- package/es/components/panel/PanelEditSwitch.vue.mjs +4 -4
- package/es/components/panel/PanelEditSwitch.vue2.mjs +88 -66
- package/es/components/panel/PanelItem.vue.mjs +4 -4
- package/es/components/panel/PanelItem.vue2.mjs +103 -77
- package/es/components/panel/PanelItemNestForm.vue.mjs +4 -4
- package/es/components/panel/PanelItemNestForm.vue2.mjs +61 -52
- package/es/components/panel/PanelItemNestPanel.vue.mjs +22 -20
- package/es/components/panel/PanelItemNestPanel.vue2.mjs +2 -2
- package/es/components/panel/PanelMain.vue.mjs +4 -4
- package/es/components/panel/PanelMain.vue2.mjs +92 -74
- package/es/components/panel/nest-panel-form.mjs +44 -38
- package/es/components/panel/nest-panel-item.mjs +18 -17
- package/es/components/slot-layout/SlotLayoutFlowAside.vue.mjs +4 -4
- package/es/components/slot-layout/SlotLayoutFlowAside.vue2.mjs +55 -42
- package/es/components/slot-layout/SlotLayoutTemplate.vue.mjs +11 -9
- package/es/components/slot-layout/SlotLayoutTemplate.vue2.mjs +2 -2
- package/es/components/table/TableMain.vue.mjs +4 -4
- package/es/components/table/TableMain.vue2.mjs +378 -275
- package/es/components/table/TableSkeleton.vue.mjs +4 -4
- package/es/components/table/TableSkeleton.vue2.mjs +95 -74
- package/es/components/table/TableToolbar.vue.mjs +4 -4
- package/es/components/table/TableToolbar.vue2.mjs +170 -154
- package/es/components/table/ToolbarButtons.vue.mjs +12 -10
- package/es/components/table/ToolbarButtons.vue2.mjs +2 -2
- package/es/components/table/constants.mjs +4 -3
- package/es/components/table/use-fill-height.mjs +12 -10
- package/es/components/table/use-table-skeleton.mjs +19 -15
- package/es/config/list-model.mjs +2 -2
- package/es/config/route.mjs +4 -3
- package/es/helpers/form.mjs +35 -25
- package/es/helpers/list-helper.mjs +59 -44
- package/es/hooks/activated.mjs +49 -33
- package/es/hooks/feel-size.mjs +39 -23
- package/es/hooks/menus-dispatch.mjs +68 -35
- package/es/hooks/timeout.mjs +29 -14
- package/es/hooks/use-breakpoint.mjs +35 -23
- package/es/hooks/use-channel-viewport-height.mjs +30 -20
- package/es/hooks/use-custom-breakpoint.mjs +48 -31
- package/es/hooks/use-observe-size.mjs +37 -20
- package/es/hooks/use-theme-apply.mjs +175 -124
- package/es/hooks/use-viewport-apply.mjs +39 -27
- package/es/index.mjs +239 -239
- package/es/inject/key.mjs +52 -41
- package/es/injectInfo.json.mjs +2 -2
- package/es/router/group-redirect.mjs +22 -16
- package/es/router/guard/index.mjs +26 -21
- package/es/router/guard/login.mjs +4 -2
- package/es/router/guard/permission.mjs +4 -2
- package/es/store/app.mjs +163 -123
- package/es/store/router-permission.mjs +75 -46
- package/es/store/user.mjs +100 -71
- package/es/style.css +769 -1
- package/es/utils/dom.mjs +20 -16
- package/es/utils/export.mjs +34 -18
- package/es/utils/id.mjs +5 -3
- package/es/utils/router.mjs +21 -14
- package/es/utils/theme-scale.mjs +50 -35
- package/es/utils/time.mjs +20 -14
- package/package.json +4 -3
- package/src/bridge/README.md +5 -0
- package/src/bridge/docs/README.md +72 -0
- package/src/components/README.md +84 -0
- package/src/components/app-layout/README.md +46 -0
- package/src/components/app-layout/docs/README-AppAside.md +69 -0
- package/src/components/app-layout/docs/README-AppBody.md +81 -0
- package/src/components/app-layout/docs/README-AppBreadcrumb.md +71 -0
- package/src/components/app-layout/docs/README-AppFooter.md +41 -0
- package/src/components/app-layout/docs/README-AppHeader.md +73 -0
- package/src/components/app-layout/docs/README-AppLayout.md +83 -0
- package/src/components/app-layout/docs/README-AppPage.md +80 -0
- package/src/components/app-layout/docs/README-AppSidebar.md +70 -0
- package/src/components/app-layout/docs/README-AppTheme.md +66 -0
- package/src/components/data-view/README.md +19 -0
- package/src/components/data-view/docs/README-DataListView.md +114 -0
- package/src/components/display/README.md +23 -0
- package/src/components/display/docs/README-ActionBtn.md +84 -0
- package/src/components/display/docs/README-ActionBtnGroup.md +96 -0
- package/src/components/display/docs/README-ActionConfirm.md +77 -0
- package/src/components/display/docs/README-BooleanTag.md +76 -0
- package/src/components/display/docs/README-HeightProvider.md +74 -0
- package/src/components/display/docs/README-TabsMain.md +99 -0
- package/src/components/display/docs/README-WatchSize.md +70 -0
- package/src/components/form/README.md +24 -0
- package/src/components/form/docs/README-FormItemNestForm.md +86 -0
- package/src/components/form/docs/README-FormItemNestFormList.md +93 -0
- package/src/components/form/docs/README-FormMain.md +101 -0
- package/src/components/form/docs/README-FormSearch.md +89 -0
- package/src/components/form/docs/README-FormSubmitBtn.md +72 -0
- package/src/components/form/docs/README-FormSubmitPanel.md +97 -0
- package/src/components/list-page/README.md +16 -0
- package/src/components/list-page/docs/README-ListPage.md +136 -0
- package/src/components/menu/README.md +19 -0
- package/src/components/menu/docs/README-MenuItemSub.md +53 -0
- package/src/components/menu/docs/README-MenuTree.md +76 -0
- package/src/components/misc/README.md +21 -0
- package/src/components/misc/docs/README-AutoRefresh.md +74 -0
- package/src/components/misc/docs/README-AutoRefreshGroup.md +74 -0
- package/src/components/misc/docs/README-SelectModule.md +72 -0
- package/src/components/modal/README.md +21 -0
- package/src/components/modal/docs/README-ModalConfirm.md +105 -0
- package/src/components/modal/docs/README-ModalDetail.md +103 -0
- package/src/components/modal/docs/README-ModalForm.md +97 -0
- package/src/components/modal/docs/README-ModalPorter.md +92 -0
- package/src/components/modal/docs/README-ModalShelf.md +115 -0
- package/src/components/panel/README.md +19 -0
- package/src/components/panel/docs/README-PanelMain.md +149 -0
- package/src/components/slot-layout/README.md +17 -0
- package/src/components/slot-layout/docs/README-SlotLayoutFlowAside.md +83 -0
- package/src/components/slot-layout/docs/README-SlotLayoutTemplate.md +73 -0
- package/src/components/table/README.md +17 -0
- package/src/components/table/docs/README-TableMain.md +140 -0
- package/src/hooks/README.md +5 -0
- package/src/hooks/docs/README.md +49 -0
- package/types/bridge/config-hook.d.ts +68 -0
- package/types/bridge/index.d.ts +411 -0
- package/types/bridge/layout.d.ts +40 -0
- package/types/bridge/plugin.d.ts +18 -0
- package/types/bridge/route.d.ts +20 -1
- package/types/bridge/state.d.ts +14 -0
- package/types/bridge/storage.d.ts +9 -0
- package/types/bridge/theme/index.d.ts +7 -0
- package/types/bridge/theme/persist.d.ts +12 -0
- package/types/bridge/theme/system-dark.d.ts +12 -0
- package/types/bridge/theme/types.d.ts +238 -0
- package/types/components/app-layout/AppAside.vue.d.ts +1 -0
- package/types/components/app-layout/AppCollapseToggle.vue.d.ts +3 -0
- package/types/components/app-layout/AppHeader.vue.d.ts +3 -0
- package/types/components/app-layout/AppLayout.vue.d.ts +12 -0
- package/types/components/app-layout/AppPage.vue.d.ts +17 -0
- package/types/components/app-layout/AppSidebar.vue.d.ts +2 -0
- package/types/components/app-layout/app-page-geometry.d.ts +48 -0
- package/types/components/app-layout/keep-alive.d.ts +17 -0
- package/types/components/app-layout/types.d.ts +125 -0
- package/types/components/app-layout/viewport.d.ts +28 -0
- package/types/components/data-view/DataListViewItem.vue.d.ts +8 -0
- package/types/components/data-view/index.d.ts +4 -0
- package/types/components/data-view/types.d.ts +42 -0
- package/types/components/data-view/utils.d.ts +3 -0
- package/types/components/display/TabsHeader.vue.d.ts +2 -0
- package/types/components/display/TabsMain.vue.d.ts +2 -0
- package/types/components/display/TabsRefineFlow.vue.d.ts +1 -0
- package/types/components/display/TabsTile.vue.d.ts +247 -12
- package/types/components/display/WatchSize.vue.d.ts +9 -0
- package/types/components/display/index.d.ts +37 -1
- package/types/components/display/types.d.ts +163 -0
- package/types/components/display/use-tabs-query-sync.d.ts +29 -0
- package/types/components/form/FormItemNestForm.vue.d.ts +5 -0
- package/types/components/form/FormItemNestFormList.vue.d.ts +17 -0
- package/types/components/form/FormVerifyCode.vue.d.ts +9 -0
- package/types/components/form/FormVerifyImage.vue.d.ts +1 -0
- package/types/components/form/form-search-utils.d.ts +34 -0
- package/types/components/form/nest-form-item-list.d.ts +28 -0
- package/types/components/form/nest-form-item.d.ts +21 -0
- package/types/components/form/nest-registry.d.ts +14 -0
- package/types/components/form/types.d.ts +208 -8
- package/types/components/form/use-form-submit.d.ts +13 -0
- package/types/components/form/use-layout-by-container.d.ts +23 -0
- package/types/components/form/use-nest-form-list.d.ts +13 -0
- package/types/components/form/use-nest-form.d.ts +15 -0
- package/types/components/form/use-nest-layout-scale.d.ts +12 -0
- package/types/components/form/utils.d.ts +56 -1
- package/types/components/list-page/ListPage.vue.d.ts +6 -0
- package/types/components/list-page/types.d.ts +50 -2
- package/types/components/list-page/use-sticky.d.ts +23 -0
- package/types/components/misc/index.d.ts +6 -1
- package/types/components/misc/types.d.ts +7 -0
- package/types/components/modal/ModalConfirm.vue.d.ts +29 -0
- package/types/components/modal/index.d.ts +7 -1
- package/types/components/modal/modal-shelf-core.d.ts +3 -0
- package/types/components/modal/modal-shelf-hierarchy.d.ts +4 -0
- package/types/components/modal/modal-shelf-types.d.ts +34 -0
- package/types/components/modal/types.d.ts +63 -2
- package/types/components/panel/PanelItemNestForm.vue.d.ts +6 -0
- package/types/components/panel/PanelItemNestPanel.vue.d.ts +5 -0
- package/types/components/panel/nest-panel-form.d.ts +21 -0
- package/types/components/panel/nest-panel-item.d.ts +14 -0
- package/types/components/panel/types.d.ts +52 -1
- package/types/components/slot-layout/SlotLayoutTemplate.vue.d.ts +21 -0
- package/types/components/slot-layout/types.d.ts +4 -0
- package/types/components/table/constants.d.ts +8 -0
- package/types/components/table/types.d.ts +140 -9
- package/types/components/table/use-fill-height.d.ts +14 -0
- package/types/components/table/use-table-skeleton.d.ts +16 -0
- package/types/config/list-model.d.ts +29 -0
- package/types/config/route.d.ts +2 -0
- package/types/helpers/form.d.ts +5 -0
- package/types/helpers/list-helper.d.ts +26 -0
- package/types/helpers/types.d.ts +11 -0
- package/types/hooks/activated.d.ts +23 -0
- package/types/hooks/feel-size.d.ts +2 -0
- package/types/hooks/menus-dispatch.d.ts +4 -0
- package/types/hooks/timeout.d.ts +4 -0
- package/types/hooks/use-channel-viewport-height.d.ts +8 -0
- package/types/hooks/use-custom-breakpoint.d.ts +19 -0
- package/types/hooks/use-observe-size.d.ts +29 -0
- package/types/hooks/use-theme-apply.d.ts +23 -0
- package/types/hooks/use-viewport-apply.d.ts +12 -0
- package/types/inject/key.d.ts +163 -0
- package/types/injectInfo.json.d.ts +1 -1
- package/types/router/group-redirect.d.ts +9 -0
- package/types/router/guard/index.d.ts +13 -0
- package/types/router/guard/login.d.ts +1 -0
- package/types/router/guard/permission.d.ts +1 -0
- package/types/router/guard/types.d.ts +3 -0
- package/types/store/app.d.ts +27 -0
- package/types/store/router-permission.d.ts +53 -0
- package/types/store/user.d.ts +24 -0
- package/types/types/dot-path.d.ts +8 -0
- package/types/types/route.d.ts +45 -0
- package/types/types/utility-types.d.ts +7 -0
- package/types/utils/dom.d.ts +22 -0
- package/types/utils/export.d.ts +16 -1
- package/types/utils/id.d.ts +1 -0
- package/types/utils/router.d.ts +2 -0
- package/types/utils/theme-scale.d.ts +31 -0
- package/types/utils/time.d.ts +1 -0
|
@@ -1,75 +1,104 @@
|
|
|
1
|
-
import { defineComponent
|
|
2
|
-
import { useActivated
|
|
3
|
-
const
|
|
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__ */
|
|
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(
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
() =>
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
103
|
+
_sfc_main as default
|
|
75
104
|
};
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { defineComponent
|
|
2
|
-
import { useRoute
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { watchTabToQuery
|
|
8
|
-
import { TABS_MAIN_VISUAL_LEVEL
|
|
9
|
-
import { useActivated
|
|
10
|
-
const
|
|
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__ */
|
|
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:
|
|
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(
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
queryKey
|
|
58
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
)
|
|
72
|
-
|
|
73
|
-
|
|
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:
|
|
77
|
-
viewportHeight: { type: Number, required:
|
|
90
|
+
paneKey: { type: String, required: true },
|
|
91
|
+
viewportHeight: { type: Number, required: false }
|
|
78
92
|
},
|
|
79
|
-
setup(
|
|
93
|
+
setup(paneProps) {
|
|
80
94
|
return () => {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
91
|
-
|
|
108
|
+
provide(TABS_MAIN_VISUAL_LEVEL, selfVisualLevel);
|
|
109
|
+
watch(
|
|
110
|
+
[model, () => props.tabs],
|
|
92
111
|
() => {
|
|
93
|
-
|
|
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:
|
|
96
|
-
)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
"
|
|
148
|
-
"
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
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
|
-
|
|
188
|
+
_sfc_main as default
|
|
158
189
|
};
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
import { defineComponent
|
|
2
|
-
const
|
|
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(
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
})
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
20
|
+
_sfc_main as default
|
|
17
21
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { defineComponent
|
|
2
|
-
import
|
|
3
|
-
import { useChannelViewportHeight
|
|
4
|
-
import { SCOPE_VIEWPORT_MAX_HEIGHT
|
|
5
|
-
const
|
|
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(
|
|
17
|
-
const
|
|
18
|
-
|
|
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
|
-
}))
|
|
26
|
+
}));
|
|
27
|
+
const heightProviderViewportHeight = computed(
|
|
21
28
|
() => Math.max(
|
|
22
|
-
|
|
29
|
+
viewportHeightFinal.value - paddingVertical.value - props.refineReduceHeight,
|
|
23
30
|
0
|
|
24
31
|
)
|
|
25
|
-
)
|
|
26
|
-
|
|
32
|
+
);
|
|
33
|
+
const onChildViewportHeightChange = (height) => {
|
|
34
|
+
childViewportHeightChange.value = height;
|
|
35
|
+
emits("viewportHeightChange", height);
|
|
27
36
|
};
|
|
28
|
-
|
|
29
|
-
scope:
|
|
30
|
-
viewportMaxHeight:
|
|
31
|
-
parent:
|
|
32
|
-
})
|
|
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
|
-
() =>
|
|
44
|
+
() => props.channel,
|
|
35
45
|
() => console.error("[TabsMain] channel 不支持响应式变更,当前值已忽略。")
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
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
|
-
|
|
57
|
-
}
|
|
58
|
-
|
|
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
|
-
|
|
76
|
+
_sfc_main as default
|
|
64
77
|
};
|