@gx-design-vue/pro-layout 0.1.0-alpha.2 → 0.1.0-alpha.21
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/dist/ProLayout.d.ts +4 -536
- package/dist/ProLayout.js +489 -358
- package/dist/components/AppPage/context.d.ts +4 -3
- package/dist/components/AppPage/context.js +3 -5
- package/dist/components/AppPage/index.d.ts +29 -52
- package/dist/components/AppPage/index.js +71 -54
- package/dist/components/AppPage/style.d.ts +8 -7
- package/dist/components/AppPage/style.js +16 -17
- package/dist/components/Breadcrumb/index.d.ts +19 -0
- package/dist/components/Breadcrumb/index.js +129 -0
- package/dist/components/Breadcrumb/interface.d.ts +33 -0
- package/dist/components/Breadcrumb/interface.js +1 -0
- package/dist/components/CollapseButton/Arrow.d.ts +4 -0
- package/dist/components/{SiderMenu → CollapseButton}/Arrow.js +2 -4
- package/dist/components/CollapseButton/index.d.ts +7 -0
- package/dist/components/CollapseButton/index.js +45 -0
- package/dist/components/CollapseButton/interface.d.ts +19 -0
- package/dist/components/CollapseButton/interface.js +1 -0
- package/dist/components/Footer/index.d.ts +10 -0
- package/dist/components/Footer/index.js +69 -0
- package/dist/components/Footer/interface.d.ts +22 -0
- package/dist/components/Footer/interface.js +1 -0
- package/dist/components/FooterToolbar/index.d.ts +5 -72
- package/dist/components/FooterToolbar/index.js +77 -90
- package/dist/components/FooterToolbar/style.d.ts +10 -0
- package/dist/components/FooterToolbar/style.js +34 -0
- package/dist/components/Header/index.d.ts +7 -0
- package/dist/components/Header/index.js +140 -0
- package/dist/components/Header/interface.d.ts +41 -0
- package/dist/components/Header/interface.js +1 -0
- package/dist/components/Logo/index.d.ts +9 -0
- package/dist/components/Logo/index.js +63 -0
- package/dist/components/Logo/interface.d.ts +13 -0
- package/dist/components/Logo/interface.js +1 -0
- package/dist/components/Menu/iconRender.d.ts +10 -0
- package/dist/components/Menu/iconRender.js +23 -0
- package/dist/components/Menu/index.d.ts +13 -0
- package/dist/components/Menu/index.js +778 -0
- package/dist/components/Menu/interface.d.ts +50 -0
- package/dist/components/Menu/interface.js +9 -0
- package/dist/components/Menu/overflow.d.ts +39 -0
- package/dist/components/Menu/overflow.js +81 -0
- package/dist/components/Menu/style/base.d.ts +12 -0
- package/dist/components/Menu/style/base.js +36 -0
- package/dist/components/Menu/style/horizontal.d.ts +19 -0
- package/dist/components/Menu/style/horizontal.js +303 -0
- package/dist/components/Menu/style/index.d.ts +356 -0
- package/dist/components/Menu/style/index.js +147 -0
- package/dist/components/Menu/style/inline.d.ts +13 -0
- package/dist/components/Menu/style/inline.js +292 -0
- package/dist/components/PageContainer/PageHeader.d.ts +30 -36
- package/dist/components/PageContainer/PageHeader.js +80 -46
- package/dist/components/PageContainer/index.d.ts +8 -194
- package/dist/components/PageContainer/index.js +297 -209
- package/dist/components/PageContainer/style.d.ts +5 -0
- package/dist/components/PageContainer/style.js +142 -0
- package/dist/components/PageTransition/animate.d.ts +41 -0
- package/dist/components/PageTransition/animate.js +106 -0
- package/dist/components/PageTransition/index.d.ts +57 -0
- package/dist/components/PageTransition/index.js +66 -0
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/back.d.ts +4 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/back.js +2 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/bounce.d.ts +4 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/bounce.js +2 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/fade.d.ts +4 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/fade.js +2 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/flip.d.ts +4 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/flip.js +2 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/lightSpeed.d.ts +4 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/lightSpeed.js +2 -4
- package/dist/components/PageTransition/keyFrame/roll.d.ts +10 -0
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/roll.js +2 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/rotate.d.ts +4 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/rotate.js +2 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/slide.d.ts +4 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/slide.js +2 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/zoom.d.ts +4 -4
- package/dist/components/{PageTranstion → PageTransition}/keyFrame/zoom.js +2 -4
- package/dist/components/PageTransition/style.d.ts +11 -0
- package/dist/components/{PageTranstion → PageTransition}/style.js +9 -13
- package/dist/components/Sider/index.d.ts +7 -0
- package/dist/components/Sider/index.js +206 -0
- package/dist/components/Sider/interface.d.ts +39 -0
- package/dist/components/Sider/interface.js +1 -0
- package/dist/components/Tabs/InnerTabs.d.ts +7 -0
- package/dist/components/Tabs/InnerTabs.js +117 -0
- package/dist/components/Tabs/contextMenu.d.ts +41 -0
- package/dist/components/Tabs/contextMenu.js +89 -0
- package/dist/components/Tabs/hooks/flipAnimate.d.ts +24 -0
- package/dist/components/Tabs/hooks/flipAnimate.js +40 -0
- package/dist/components/Tabs/hooks/useAutoScroll.d.ts +27 -0
- package/dist/components/Tabs/hooks/useAutoScroll.js +122 -0
- package/dist/components/Tabs/hooks/useTabDrag.d.ts +31 -0
- package/dist/components/Tabs/hooks/useTabDrag.js +252 -0
- package/dist/components/Tabs/index.d.ts +13 -0
- package/dist/components/Tabs/index.js +181 -0
- package/dist/components/Tabs/interface.d.ts +74 -0
- package/dist/components/Tabs/interface.js +1 -0
- package/dist/components/Tabs/style/index.d.ts +35 -0
- package/dist/components/Tabs/style/index.js +161 -0
- package/dist/components/WrapContent/index.d.ts +9 -0
- package/dist/components/WrapContent/index.js +26 -0
- package/dist/components/WrapContent/interface.d.ts +15 -0
- package/dist/components/WrapContent/interface.js +1 -0
- package/dist/context/index.d.ts +53 -0
- package/dist/context/index.js +5 -0
- package/dist/defaultConfig.d.ts +10 -0
- package/dist/defaultConfig.js +38 -0
- package/dist/hooks/useLayoutBase.d.ts +78 -0
- package/dist/hooks/useLayoutBase.js +86 -0
- package/dist/hooks/useMenu.d.ts +77 -0
- package/dist/hooks/useMenu.js +166 -0
- package/dist/hooks/useTabs.d.ts +54 -0
- package/dist/hooks/useTabs.js +388 -0
- package/dist/index.d.ts +22 -27
- package/dist/index.js +15 -24
- package/dist/interface.d.ts +516 -0
- package/dist/interface.js +34 -0
- package/dist/pro-layout.esm.js +5848 -5075
- package/dist/pro-layout.js +16 -37
- package/dist/style/breadcrumb.d.ts +8 -0
- package/dist/style/breadcrumb.js +77 -0
- package/dist/style/collapseButton.d.ts +8 -0
- package/dist/style/collapseButton.js +57 -0
- package/dist/style/content.d.ts +8 -0
- package/dist/style/content.js +29 -0
- package/dist/style/footer.d.ts +8 -0
- package/dist/style/footer.js +33 -0
- package/dist/style/header.d.ts +8 -0
- package/dist/style/header.js +76 -0
- package/dist/style/index.d.ts +3 -22
- package/dist/style/index.js +51 -55
- package/dist/style/logo.d.ts +8 -0
- package/dist/style/logo.js +76 -0
- package/dist/style/menu.d.ts +15 -0
- package/dist/style/menu.js +49 -0
- package/dist/style/rightContent.d.ts +12 -0
- package/dist/style/rightContent.js +74 -0
- package/dist/style/search.d.ts +12 -0
- package/dist/style/search.js +94 -0
- package/dist/style/sider.d.ts +8 -0
- package/dist/style/sider.js +92 -0
- package/dist/style/tabs.d.ts +14 -0
- package/dist/style/tabs.js +97 -0
- package/dist/theme/augment.d.ts +20 -0
- package/dist/theme/augment.js +1 -0
- package/dist/theme/interface/components.d.ts +20 -0
- package/dist/theme/interface/components.js +1 -0
- package/dist/utils/config.d.ts +12 -0
- package/dist/utils/config.js +18 -0
- package/dist/utils/menu.d.ts +111 -20
- package/dist/utils/menu.js +263 -118
- package/dist/utils/style.d.ts +4 -0
- package/dist/utils/style.js +21 -0
- package/dist/utils/themeComponents.d.ts +28 -0
- package/dist/utils/themeComponents.js +89 -0
- package/package.json +24 -15
- package/dist/Context/expose.d.ts +0 -6
- package/dist/Context/expose.js +0 -7
- package/dist/Context/index.d.ts +0 -43
- package/dist/Context/index.js +0 -18
- package/dist/WrapContent.d.ts +0 -100
- package/dist/WrapContent.js +0 -45
- package/dist/components/BaseMenu/index.d.ts +0 -255
- package/dist/components/BaseMenu/index.js +0 -381
- package/dist/components/BaseMenu/props.d.ts +0 -105
- package/dist/components/BaseMenu/props.js +0 -94
- package/dist/components/BaseMenu/style.d.ts +0 -6
- package/dist/components/BaseMenu/style.js +0 -155
- package/dist/components/BreadCrumb/Breadcrumb.d.ts +0 -33
- package/dist/components/BreadCrumb/Breadcrumb.js +0 -75
- package/dist/components/BreadCrumb/index.d.ts +0 -7
- package/dist/components/BreadCrumb/index.js +0 -44
- package/dist/components/BreadCrumb/style.d.ts +0 -8
- package/dist/components/BreadCrumb/style.js +0 -87
- package/dist/components/CollapsedIcon/index.d.ts +0 -33
- package/dist/components/CollapsedIcon/index.js +0 -51
- package/dist/components/CollapsedIcon/style.d.ts +0 -9
- package/dist/components/CollapsedIcon/style.js +0 -34
- package/dist/components/FooterToolbar/props.d.ts +0 -47
- package/dist/components/FooterToolbar/props.js +0 -33
- package/dist/components/FooterToolbar/style/index.d.ts +0 -14
- package/dist/components/FooterToolbar/style/index.js +0 -48
- package/dist/components/FooterToolbar/style/stylish.d.ts +0 -18
- package/dist/components/FooterToolbar/style/stylish.js +0 -16
- package/dist/components/GlobalFooter/index.d.ts +0 -73
- package/dist/components/GlobalFooter/index.js +0 -77
- package/dist/components/GlobalFooter/style.d.ts +0 -6
- package/dist/components/GlobalFooter/style.js +0 -29
- package/dist/components/GlobalHeader/DefaultHeader.d.ts +0 -164
- package/dist/components/GlobalHeader/DefaultHeader.js +0 -149
- package/dist/components/GlobalHeader/index.d.ts +0 -164
- package/dist/components/GlobalHeader/index.js +0 -78
- package/dist/components/GlobalHeader/props.d.ts +0 -70
- package/dist/components/GlobalHeader/props.js +0 -56
- package/dist/components/GlobalHeader/style/defaultHeader.d.ts +0 -6
- package/dist/components/GlobalHeader/style/defaultHeader.js +0 -108
- package/dist/components/GlobalHeader/style/header.d.ts +0 -6
- package/dist/components/GlobalHeader/style/header.js +0 -41
- package/dist/components/LogoContent/index.d.ts +0 -80
- package/dist/components/LogoContent/index.js +0 -90
- package/dist/components/LogoContent/props.d.ts +0 -57
- package/dist/components/LogoContent/props.js +0 -37
- package/dist/components/LogoContent/style.d.ts +0 -6
- package/dist/components/LogoContent/style.js +0 -63
- package/dist/components/PageContainer/props.d.ts +0 -138
- package/dist/components/PageContainer/props.js +0 -103
- package/dist/components/PageContainer/style/index.d.ts +0 -14
- package/dist/components/PageContainer/style/index.js +0 -52
- package/dist/components/PageContainer/style/pageHeader.d.ts +0 -6
- package/dist/components/PageContainer/style/pageHeader.js +0 -44
- package/dist/components/PageTranstion/index.d.ts +0 -40
- package/dist/components/PageTranstion/index.js +0 -71
- package/dist/components/PageTranstion/keyFrame/roll.d.ts +0 -10
- package/dist/components/PageTranstion/style.d.ts +0 -10
- package/dist/components/SiderMenu/Arrow.d.ts +0 -6
- package/dist/components/SiderMenu/SiderMenu.d.ts +0 -180
- package/dist/components/SiderMenu/SiderMenu.js +0 -265
- package/dist/components/SiderMenu/index.d.ts +0 -193
- package/dist/components/SiderMenu/index.js +0 -51
- package/dist/components/SiderMenu/props.d.ts +0 -77
- package/dist/components/SiderMenu/props.js +0 -67
- package/dist/components/SiderMenu/style/index.d.ts +0 -12
- package/dist/components/SiderMenu/style/index.js +0 -162
- package/dist/components/SiderMenu/typings.d.ts +0 -38
- package/dist/components/SiderMenu/typings.js +0 -1
- package/dist/components/TabsRoute/index.d.ts +0 -95
- package/dist/components/TabsRoute/index.js +0 -405
- package/dist/components/TabsRoute/props.d.ts +0 -78
- package/dist/components/TabsRoute/props.js +0 -47
- package/dist/components/TabsRoute/style.d.ts +0 -15
- package/dist/components/TabsRoute/style.js +0 -133
- package/dist/components/TabsRoute/utils/config.d.ts +0 -18
- package/dist/components/TabsRoute/utils/config.js +0 -64
- package/dist/config/animate.d.ts +0 -11
- package/dist/config/animate.js +0 -76
- package/dist/config/index.d.ts +0 -34
- package/dist/config/index.js +0 -30
- package/dist/hooks/collapsed/index.d.ts +0 -15
- package/dist/hooks/collapsed/index.js +0 -50
- package/dist/hooks/layout/useLayoutExpose.d.ts +0 -15
- package/dist/hooks/layout/useLayoutExpose.js +0 -22
- package/dist/hooks/layout/usePageContent.d.ts +0 -6
- package/dist/hooks/layout/usePageContent.js +0 -28
- package/dist/hooks/menu/context.d.ts +0 -21
- package/dist/hooks/menu/context.js +0 -7
- package/dist/hooks/menu/index.d.ts +0 -29
- package/dist/hooks/menu/index.js +0 -118
- package/dist/hooks/theme/index.d.ts +0 -11
- package/dist/hooks/theme/index.js +0 -13
- package/dist/props/collapsedProps.d.ts +0 -39
- package/dist/props/collapsedProps.js +0 -45
- package/dist/props/defaultSettings.d.ts +0 -62
- package/dist/props/defaultSettings.js +0 -56
- package/dist/props/index.d.ts +0 -226
- package/dist/props/index.js +0 -109
- package/dist/props/themeProps.d.ts +0 -14
- package/dist/props/themeProps.js +0 -10
- package/dist/types/Breadcrumb.d.ts +0 -22
- package/dist/types/Breadcrumb.js +0 -1
- package/dist/types/MenuTypings.d.ts +0 -46
- package/dist/types/MenuTypings.js +0 -1
- package/dist/types/RouteTypings.d.ts +0 -96
- package/dist/types/RouteTypings.js +0 -1
- package/dist/types/SlotsTypings.d.ts +0 -124
- package/dist/types/SlotsTypings.js +0 -32
- package/dist/types/typings.d.ts +0 -73
- package/dist/types/typings.js +0 -3
- package/dist/utils/index.d.ts +0 -7
- package/dist/utils/index.js +0 -17
- package/dist/utils/style/index.d.ts +0 -44
- package/dist/utils/style/index.js +0 -103
package/dist/index.js
CHANGED
|
@@ -1,24 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
|
|
16
|
-
import AppPage_default from "./components/AppPage/index.js";
|
|
17
|
-
import PageContainer_default from "./components/PageContainer/index.js";
|
|
18
|
-
import { animateSetting } from "./config/animate.js";
|
|
19
|
-
import PageTranstion_default from "./components/PageTranstion/index.js";
|
|
20
|
-
import menu_default from "./hooks/menu/index.js";
|
|
21
|
-
import theme_default from "./hooks/theme/index.js";
|
|
22
|
-
import "./types/typings.js";
|
|
23
|
-
|
|
24
|
-
export { BaseMenu_default as GBaseMenu, PageTranstion_default as GPageTransition, AppPage_default as GProAppPage, ProLayout_default as GProLayout, PageContainer_default as GProPageContainer, GlobalFooter_default as GlobalFooter, LazyIcon, SiderMenu_default as SiderMenuWrapper, animateSetting, baseMenuProps, calculateCss, clearMenuItem, convertCSSPropertiesToString, cssValueToNumber, defaultContextKey, defaultSettings, extractCSSVariableName, filterTree, flatMap, getCssVarOrUnit, getCssVarValue, getCssVariableValue, getLastPath, getMatchedList, getMenuData, getMenuFirstChildren, getParentKeys, getTokenLayoutTheme, handlePathKey, iconStyle, layout, provideProLayoutContext, provideProLayoutExposeContext, removeDuplicatesByName, useLayoutExpose, menu_default as useLayoutMenu, usePageContent, useProLayoutContext, useProLayoutExposeContext, useProLayoutMenuContext, theme_default as useThemeState };
|
|
1
|
+
import { useInjectLayoutContext } from "./context/index.js";
|
|
2
|
+
import { PRO_MENU_SLOT_KEYS } from "./components/Menu/interface.js";
|
|
3
|
+
import ProMenu from "./components/Menu/index.js";
|
|
4
|
+
import InnerTabs from "./components/Tabs/InnerTabs.js";
|
|
5
|
+
import { buildBreadcrumbRoutes, buildMenuLookup, cleanMenus, collectMenuNames, getLastPath, insertMenuAtPath, normalizeMenus, partitionFixedMenus, removeMenuAtPath, resolveMatchedChain, resolveRouteTarget, routesToMenus, selectMenuBranch, sortMenusByOrder, toBreadcrumbItems, updateMenuAtPath, updateMenuMetaAtPath } from "./utils/menu.js";
|
|
6
|
+
import { useMenu } from "./hooks/useMenu.js";
|
|
7
|
+
import { useTabs } from "./hooks/useTabs.js";
|
|
8
|
+
import { APP_PAGE_SLOT_KEYS, FOOTER_TOOLBAR_SLOT_KEYS, LAYOUT_SLOT_KEYS, PAGE_CONTAINER_SLOT_KEYS } from "./interface.js";
|
|
9
|
+
import GProLayout from "./ProLayout.js";
|
|
10
|
+
import { useAppPageContext } from "./components/AppPage/context.js";
|
|
11
|
+
import ProAppPage from "./components/AppPage/index.js";
|
|
12
|
+
import GFooterToolbar from "./components/FooterToolbar/index.js";
|
|
13
|
+
import ProPageContainer from "./components/PageContainer/index.js";
|
|
14
|
+
import GPageTransition from "./components/PageTransition/index.js";
|
|
15
|
+
export { APP_PAGE_SLOT_KEYS, FOOTER_TOOLBAR_SLOT_KEYS, GFooterToolbar, InnerTabs as GInnerTabs, GPageTransition, ProAppPage as GProAppPage, GProLayout, ProPageContainer as GProPageContainer, LAYOUT_SLOT_KEYS, PAGE_CONTAINER_SLOT_KEYS, PRO_MENU_SLOT_KEYS, ProMenu, buildBreadcrumbRoutes, buildMenuLookup, cleanMenus, collectMenuNames, getLastPath, insertMenuAtPath, normalizeMenus, partitionFixedMenus, removeMenuAtPath, resolveMatchedChain, resolveRouteTarget, routesToMenus, selectMenuBranch, sortMenusByOrder, toBreadcrumbItems, updateMenuAtPath, updateMenuMetaAtPath, useAppPageContext, useInjectLayoutContext, useMenu, useTabs };
|
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
import { LayoutBreadcrumbProps, LayoutBreadcrumbSlots } from "./components/Breadcrumb/interface.js";
|
|
2
|
+
import { LayoutCollapseButtonEmits, LayoutCollapseButtonEmitsProps, LayoutCollapseButtonProps, LayoutCollapseButtonSlots } from "./components/CollapseButton/interface.js";
|
|
3
|
+
import { LayoutFooterProps, LayoutFooterSlots } from "./components/Footer/interface.js";
|
|
4
|
+
import { LayoutHeaderEmits, LayoutHeaderEmitsProps, LayoutHeaderProps, LayoutHeaderSlots } from "./components/Header/interface.js";
|
|
5
|
+
import { LayoutLogoEmits, LayoutLogoEmitsProps, LayoutLogoProps, LayoutLogoSlots } from "./components/Logo/interface.js";
|
|
6
|
+
import { PRO_MENU_SLOT_KEYS, ProMenuEmits, ProMenuEmitsProps, ProMenuProps, ProMenuSlots } from "./components/Menu/interface.js";
|
|
7
|
+
import { LayoutSiderEmits, LayoutSiderEmitsProps, LayoutSiderProps, LayoutSiderSlots } from "./components/Sider/interface.js";
|
|
8
|
+
import { InnerTabItem, InnerTabsEmits, InnerTabsEmitsProps, InnerTabsProps, InnerTabsSlots, LayoutTabsEmits, LayoutTabsEmitsProps, LayoutTabsProps, LayoutTabsSlots, TabGroup } from "./components/Tabs/interface.js";
|
|
9
|
+
import { LayoutContentEmits, LayoutContentEmitsProps, LayoutContentProps, LayoutContentSlots } from "./components/WrapContent/interface.js";
|
|
10
|
+
import { CSSProperties } from "vue";
|
|
11
|
+
import { ThemeValue } from "@gx-design-vue/context";
|
|
12
|
+
import { ProAliasToken } from "@gx-design-vue/pro-provider";
|
|
13
|
+
import { Breakpoint, CustomRender, RecordType, SemanticClassNames, SemanticStyles, WithFalse } from "@gx-design-vue/pro-utils";
|
|
14
|
+
import { BreadcrumbItemType, CardProps, MenuEmits, MenuProps, SpinProps, TabsProps, WatermarkProps } from "antdv-next";
|
|
15
|
+
import { SiderProps } from "antdv-next/dist/layout";
|
|
16
|
+
import { Tab } from "antdv-next/dist/tabs";
|
|
17
|
+
|
|
18
|
+
//#region src/interface.d.ts
|
|
19
|
+
type DeepPartial<T> = T extends object ? { [P in keyof T]?: DeepPartial<T[P]> } : T;
|
|
20
|
+
/** 无 emits 组件的占位类型(避免使用 `{}` 触发 lint) */
|
|
21
|
+
type EmptyEmits = Record<string, never>;
|
|
22
|
+
/**
|
|
23
|
+
* antdv-next Menu 透传类型(数据驱动)。
|
|
24
|
+
* - `MenuRenderItem`:`labelRender`/`iconRender`/`extraRender` 接收的运行时 item。
|
|
25
|
+
* - `MenuSelectInfo` / `MenuClickInfo`:Menu `select` / `click` 事件载荷。
|
|
26
|
+
*/
|
|
27
|
+
type MenuRenderItem = Parameters<NonNullable<MenuProps['labelRender']>>[0];
|
|
28
|
+
type MenuSelectInfo = Parameters<MenuEmits['select']>[0];
|
|
29
|
+
type MenuClickInfo = Parameters<MenuEmits['click']>[0];
|
|
30
|
+
/** 多标签页签元信息 */
|
|
31
|
+
interface TabsMeta {
|
|
32
|
+
/** 是否在标签栏隐藏 */
|
|
33
|
+
hidden?: boolean;
|
|
34
|
+
/** 是否固定(不可关闭) */
|
|
35
|
+
fixed?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 路由 meta —— 可见性标志收敛为两个语义正交字段:
|
|
39
|
+
* - `hideInMenu`:自身不在菜单显示
|
|
40
|
+
* - `hideChildrenInMenu`:子项不在菜单显示
|
|
41
|
+
* (旧的 `hidden` / `hideChildren` 已删除)
|
|
42
|
+
*/
|
|
43
|
+
interface Meta {
|
|
44
|
+
/** 名称 */
|
|
45
|
+
title?: string;
|
|
46
|
+
/** 排序 */
|
|
47
|
+
order?: number;
|
|
48
|
+
/** 菜单图标,支持 h 渲染 / VNode / string */
|
|
49
|
+
icon?: any;
|
|
50
|
+
/** 菜单项级语义样式(对齐旧 BaseMenu route.meta.styles) */
|
|
51
|
+
styles?: MenuStylesType;
|
|
52
|
+
/** 菜单项级语义类名(对齐旧 BaseMenu route.meta.classNames) */
|
|
53
|
+
classNames?: MenuClassNamesType;
|
|
54
|
+
/** 菜单项右侧内容 */
|
|
55
|
+
rightContent?: (meta: Meta) => CustomRender;
|
|
56
|
+
/** iconfont class 前缀 */
|
|
57
|
+
iconPrefix?: string;
|
|
58
|
+
/** 是否使用分隔栏 */
|
|
59
|
+
divider?: boolean;
|
|
60
|
+
/** 自身不在菜单显示 */
|
|
61
|
+
hideInMenu?: boolean;
|
|
62
|
+
/** 子项不在菜单显示 */
|
|
63
|
+
hideChildrenInMenu?: boolean;
|
|
64
|
+
/** 外链类型 0:系统内(iframe) 1:系统外(新窗口) */
|
|
65
|
+
linkStatus?: 0 | 1;
|
|
66
|
+
/** 外链地址 */
|
|
67
|
+
link?: string;
|
|
68
|
+
/** 是否禁止点击 */
|
|
69
|
+
disabled?: boolean;
|
|
70
|
+
/** 是否缓存 */
|
|
71
|
+
keepAlive?: boolean;
|
|
72
|
+
/** 是否禁用页面动画 */
|
|
73
|
+
animateDisabled?: boolean;
|
|
74
|
+
/** 左侧间距 */
|
|
75
|
+
inlineIndent?: number;
|
|
76
|
+
/** 菜单项类型 */
|
|
77
|
+
menuItemType?: 'group';
|
|
78
|
+
/** 标签页签属性 */
|
|
79
|
+
tabState?: TabsMeta;
|
|
80
|
+
/** 所属菜单 selectedKey */
|
|
81
|
+
menuSelectKey?: string;
|
|
82
|
+
/** 固定到菜单底部(仅 layout=side 生效) */
|
|
83
|
+
fixed?: boolean;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 菜单 / 路由项(旧 `AppRouteModule` 重命名)。
|
|
87
|
+
* `name` 唯一,作为菜单 key;`meta.title` 作为 label,`meta.icon` 作为 icon。
|
|
88
|
+
*/
|
|
89
|
+
interface LayoutMenuRoute {
|
|
90
|
+
/** 唯一标识(菜单 key),不可重复 */
|
|
91
|
+
name: string;
|
|
92
|
+
meta?: Meta;
|
|
93
|
+
key?: string;
|
|
94
|
+
path?: string;
|
|
95
|
+
fullPath?: string;
|
|
96
|
+
query?: RecordType;
|
|
97
|
+
params?: RecordType;
|
|
98
|
+
redirect?: string;
|
|
99
|
+
component?: any;
|
|
100
|
+
children?: LayoutMenuRoute[];
|
|
101
|
+
}
|
|
102
|
+
type LayoutSemanticName = 'root' | 'header' | 'sider' | 'siderChildren' | 'siderHeader' | 'siderFooter' | 'logo' | 'logoImage' | 'content' | 'footer' | 'menu' | 'tabs' | 'breadcrumb';
|
|
103
|
+
type LayoutStylesType = SemanticStyles<LayoutSemanticName>;
|
|
104
|
+
type LayoutClassNamesType = SemanticClassNames<LayoutSemanticName>;
|
|
105
|
+
type MenuSemanticName = 'item' | 'itemTitle' | 'itemTitleText' | 'itemIcon' | 'itemRight' | 'subMenu' | 'subMenuPopup';
|
|
106
|
+
type MenuStylesType = SemanticStyles<MenuSemanticName>;
|
|
107
|
+
type MenuClassNamesType = SemanticClassNames<MenuSemanticName>;
|
|
108
|
+
type PageContainerSemanticName = 'root' | 'header' | 'breadcrumb' | 'title' | 'extra' | 'content' | 'body' | 'card' | 'footer' | 'close';
|
|
109
|
+
type PageContainerStylesType = SemanticStyles<PageContainerSemanticName>;
|
|
110
|
+
type PageContainerClassNamesType = SemanticClassNames<PageContainerSemanticName>;
|
|
111
|
+
type FooterToolbarSemanticName = 'root' | 'left' | 'right';
|
|
112
|
+
type FooterToolbarStylesType = SemanticStyles<FooterToolbarSemanticName>;
|
|
113
|
+
type FooterToolbarClassNamesType = SemanticClassNames<FooterToolbarSemanticName>;
|
|
114
|
+
interface LayoutHeaderConfig {
|
|
115
|
+
/** 头部高度,默认 48 */
|
|
116
|
+
height?: number | string;
|
|
117
|
+
/** 头部是否固定,默认 true */
|
|
118
|
+
fixed?: boolean;
|
|
119
|
+
/** 滚动时自动隐藏头部 */
|
|
120
|
+
autoHide?: boolean;
|
|
121
|
+
/** 头部主内容区宽度 */
|
|
122
|
+
mainWidth?: number | string;
|
|
123
|
+
}
|
|
124
|
+
interface LayoutSiderConfig {
|
|
125
|
+
/** 侧边栏宽度,默认 215 */
|
|
126
|
+
width?: number | string;
|
|
127
|
+
/** 侧边栏是否固定 */
|
|
128
|
+
fixed?: boolean;
|
|
129
|
+
/** 侧边栏色彩主题 */
|
|
130
|
+
breakpoint?: Breakpoint | false;
|
|
131
|
+
}
|
|
132
|
+
interface LayoutCollapseConfig {
|
|
133
|
+
width?: number;
|
|
134
|
+
placement?: 'sider' | 'header';
|
|
135
|
+
icon?: GProLayoutSlots['collapse'];
|
|
136
|
+
render?: GProLayoutSlots['collapseIcon'];
|
|
137
|
+
}
|
|
138
|
+
interface LayoutLogoConfig {
|
|
139
|
+
/** Logo 图标/内容;string 会渲染为 img,false 不渲染 logo 图标 */
|
|
140
|
+
image?: WithFalse<CustomRender>;
|
|
141
|
+
/** Logo 标题;false 不渲染标题 */
|
|
142
|
+
title?: string;
|
|
143
|
+
/** Logo 位置渲染 */
|
|
144
|
+
render?: GProLayoutSlots['logo'];
|
|
145
|
+
}
|
|
146
|
+
interface LayoutFooterLink {
|
|
147
|
+
key?: string;
|
|
148
|
+
title: CustomRender;
|
|
149
|
+
href: string;
|
|
150
|
+
blank?: boolean;
|
|
151
|
+
}
|
|
152
|
+
interface LayoutFooterConfig {
|
|
153
|
+
/** 友情链接 */
|
|
154
|
+
links?: LayoutFooterLink[];
|
|
155
|
+
/** 版权文案(复杂内容请用 copyright slot) */
|
|
156
|
+
copyright?: string;
|
|
157
|
+
}
|
|
158
|
+
interface LayoutMenuConfig {
|
|
159
|
+
/** 菜单 loading */
|
|
160
|
+
loading?: boolean;
|
|
161
|
+
/** 选中后自动收起其他展开项 */
|
|
162
|
+
autoClose?: boolean;
|
|
163
|
+
/** 菜单项类型 */
|
|
164
|
+
type?: 'sub' | 'group';
|
|
165
|
+
}
|
|
166
|
+
interface LayoutBreadcrumbConfig {
|
|
167
|
+
/** 面包屑展示位置,默认 'header' */
|
|
168
|
+
placement?: 'header' | 'pageHeader';
|
|
169
|
+
/** 首页图标 */
|
|
170
|
+
showHome?: WithFalse<boolean>;
|
|
171
|
+
/** 首页项点击跳转路径,默认 '/' */
|
|
172
|
+
homePath?: string;
|
|
173
|
+
render?: GProLayoutSlots['breadcrumb'];
|
|
174
|
+
}
|
|
175
|
+
interface LayoutTabsConfig {
|
|
176
|
+
fixed?: boolean;
|
|
177
|
+
/** 标签样式 */
|
|
178
|
+
type?: 'card' | 'button' | 'google';
|
|
179
|
+
/** 是否持久化到本地存储,默认 true */
|
|
180
|
+
persistent?: boolean;
|
|
181
|
+
/** 内容全屏时隐藏标签栏 */
|
|
182
|
+
fullscreenOnHide?: boolean;
|
|
183
|
+
/** 是否开启拖拽排序(组内可拖、不跨级),默认 true */
|
|
184
|
+
draggable?: boolean;
|
|
185
|
+
}
|
|
186
|
+
interface LayoutPageContainerConfig {
|
|
187
|
+
/** 内容最大宽度(如 1200),设置后自动居中 */
|
|
188
|
+
contentWidth?: number | string;
|
|
189
|
+
/** 默认内容卡片设置 */
|
|
190
|
+
card?: boolean | CardProps;
|
|
191
|
+
/** 默认高度模式 */
|
|
192
|
+
height?: 'auto' | 'fit' | 'full';
|
|
193
|
+
/** 默认 footer 是否吸底 */
|
|
194
|
+
affixFooter?: boolean;
|
|
195
|
+
/** 默认 loading 设置 */
|
|
196
|
+
loading?: boolean | PageContainerLoading;
|
|
197
|
+
}
|
|
198
|
+
interface LayoutHeaderSlotProps {
|
|
199
|
+
collapsed: boolean;
|
|
200
|
+
isMobile: boolean;
|
|
201
|
+
}
|
|
202
|
+
interface LayoutSiderSlotProps {
|
|
203
|
+
collapsed: boolean;
|
|
204
|
+
isMobile: boolean;
|
|
205
|
+
}
|
|
206
|
+
interface LayoutBreadcrumbSlotProps {
|
|
207
|
+
items: BreadcrumbItemType[];
|
|
208
|
+
routes: LayoutMenuRoute[];
|
|
209
|
+
}
|
|
210
|
+
/** 菜单项渲染 slot 载荷:携带 antdv-next 运行时 item 与原始路由 */
|
|
211
|
+
interface LayoutMenuItemSlotProps {
|
|
212
|
+
item: MenuRenderItem;
|
|
213
|
+
route: LayoutMenuRoute;
|
|
214
|
+
}
|
|
215
|
+
/** menu 选中语义载荷(区别于仅回传 keys 的 update:selectedKeys) */
|
|
216
|
+
interface LayoutSelectInfo {
|
|
217
|
+
key: string;
|
|
218
|
+
keys: string[];
|
|
219
|
+
keyPath: string[];
|
|
220
|
+
route: LayoutMenuRoute;
|
|
221
|
+
}
|
|
222
|
+
interface GProLayoutEmits {
|
|
223
|
+
'update:collapsed': (collapsed: boolean) => void;
|
|
224
|
+
'update:theme': (theme: ThemeValue) => void;
|
|
225
|
+
'update:selectedKeys': (keys: string[]) => void;
|
|
226
|
+
'update:openKeys': (keys: string[]) => void;
|
|
227
|
+
'select': (info: LayoutSelectInfo) => void;
|
|
228
|
+
'openChange': (keys: string[]) => void;
|
|
229
|
+
'darkChange': (dark: boolean) => void;
|
|
230
|
+
'logoClick': () => void;
|
|
231
|
+
'reloadPage': () => void;
|
|
232
|
+
'tabsChange': (tabs: LayoutMenuRoute[]) => void;
|
|
233
|
+
'contentFullscreenChange': (fullscreen: boolean) => void;
|
|
234
|
+
}
|
|
235
|
+
interface GProLayoutEmitsProps {
|
|
236
|
+
'onUpdate:collapsed'?: GProLayoutEmits['update:collapsed'];
|
|
237
|
+
'onUpdate:theme'?: GProLayoutEmits['update:theme'];
|
|
238
|
+
'onUpdate:selectedKeys'?: GProLayoutEmits['update:selectedKeys'];
|
|
239
|
+
'onUpdate:openKeys'?: GProLayoutEmits['update:openKeys'];
|
|
240
|
+
onSelect?: GProLayoutEmits['select'];
|
|
241
|
+
onOpenChange?: GProLayoutEmits['openChange'];
|
|
242
|
+
onDarkChange?: GProLayoutEmits['darkChange'];
|
|
243
|
+
onLogoClick?: GProLayoutEmits['logoClick'];
|
|
244
|
+
onReloadPage?: GProLayoutEmits['reloadPage'];
|
|
245
|
+
onTabsChange?: GProLayoutEmits['tabsChange'];
|
|
246
|
+
onContentFullscreenChange?: GProLayoutEmits['contentFullscreenChange'];
|
|
247
|
+
}
|
|
248
|
+
interface GProLayoutProps extends GProLayoutEmitsProps {
|
|
249
|
+
/** 布局模式,默认 'side' */
|
|
250
|
+
layout?: 'side' | 'top' | 'mix' | 'wide' | 'simple';
|
|
251
|
+
/** 主色,需要配合 umi 使用 */
|
|
252
|
+
colorPrimary?: string;
|
|
253
|
+
/** 菜单 / 路由数据(旧 route) */
|
|
254
|
+
menus?: LayoutMenuRoute[];
|
|
255
|
+
/** 无壳模式:不渲染 header/sider/footer */
|
|
256
|
+
pure?: boolean;
|
|
257
|
+
/** 全局 loading */
|
|
258
|
+
loading?: boolean;
|
|
259
|
+
/** v-model:collapsed 侧边栏折叠 */
|
|
260
|
+
collapsed?: boolean;
|
|
261
|
+
/** v-model:theme 应用级主题(暗色) */
|
|
262
|
+
theme?: ThemeValue;
|
|
263
|
+
/** v-model:selectedKeys 选中菜单 */
|
|
264
|
+
selectedKeys?: string[];
|
|
265
|
+
/** v-model:openKeys 展开菜单 */
|
|
266
|
+
openKeys?: string[];
|
|
267
|
+
token?: DeepPartial<ProAliasToken>;
|
|
268
|
+
proStyles?: LayoutStylesType;
|
|
269
|
+
proClasses?: LayoutClassNamesType;
|
|
270
|
+
watermark?: WatermarkProps;
|
|
271
|
+
header?: LayoutHeaderConfig;
|
|
272
|
+
sider?: LayoutSiderConfig;
|
|
273
|
+
footerConfig?: LayoutFooterConfig | false;
|
|
274
|
+
menu?: LayoutMenuConfig;
|
|
275
|
+
/** 面包屑配置 */
|
|
276
|
+
breadcrumb?: LayoutBreadcrumbConfig | false;
|
|
277
|
+
/** 多标签配置;false 关闭标签栏。标签数据由组件内部管理,通过 expose.tabs 控制、tabsChange 通知 */
|
|
278
|
+
tabsConfig?: LayoutTabsConfig | false;
|
|
279
|
+
/** Logo 组件配置;false 不渲染默认 Logo 区域 */
|
|
280
|
+
logo?: LayoutLogoConfig | false;
|
|
281
|
+
collapse?: LayoutCollapseConfig | false;
|
|
282
|
+
/** PageContainer 全局默认配置 */
|
|
283
|
+
pageContainer?: LayoutPageContainerConfig;
|
|
284
|
+
/** 头部主内容(等价 #headerContent slot) */
|
|
285
|
+
headerContent?: (slotProps: LayoutHeaderSlotProps) => CustomRender;
|
|
286
|
+
/** 头部右侧(等价 #headerRight slot) */
|
|
287
|
+
headerRight?: (slotProps: LayoutHeaderSlotProps) => CustomRender;
|
|
288
|
+
/** 头部右侧附加(等价 #headerRightExtra slot) */
|
|
289
|
+
headerRightExtra?: WithFalse<CustomRender>;
|
|
290
|
+
/** 侧边菜单头部(等价 #siderHeader slot) */
|
|
291
|
+
siderHeader?: (slotProps: LayoutSiderSlotProps) => CustomRender;
|
|
292
|
+
/** 侧边菜单底部(等价 #menuFooter slot) */
|
|
293
|
+
siderFooter?: (slotProps: LayoutSiderSlotProps) => CustomRender;
|
|
294
|
+
/** 侧边菜单额外内容(等价 #menuExtra slot) */
|
|
295
|
+
siderExtra?: WithFalse<CustomRender>;
|
|
296
|
+
collapseButton?: (slotProps: {
|
|
297
|
+
collapsed: boolean;
|
|
298
|
+
}) => CustomRender;
|
|
299
|
+
/** 菜单项图标(等价 #menuItemIcon slot) */
|
|
300
|
+
menuItemIcon?: (slotProps: LayoutMenuItemSlotProps) => CustomRender;
|
|
301
|
+
/** 菜单项文本(等价 #menuItemLabel slot) */
|
|
302
|
+
menuItemLabel?: (slotProps: LayoutMenuItemSlotProps) => CustomRender;
|
|
303
|
+
/** 菜单项额外内容(等价 #menuItemExtra slot) */
|
|
304
|
+
menuItemExtra?: (slotProps: LayoutMenuItemSlotProps) => CustomRender;
|
|
305
|
+
/** 标签项(等价 #tabBarItem slot) */
|
|
306
|
+
tabBarItem?: (slotProps: {
|
|
307
|
+
route: LayoutMenuRoute;
|
|
308
|
+
}) => CustomRender;
|
|
309
|
+
/** 页脚(等价 #footer slot) */
|
|
310
|
+
footer?: WithFalse<CustomRender>;
|
|
311
|
+
/** 版权(等价 #copyright slot) */
|
|
312
|
+
copyright?: WithFalse<CustomRender>;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* GProLayout 的 slot key 列表(不含 `default`)。
|
|
316
|
+
* 供 `getSlotsProps` 一次性合并「prop > slot」并统一下发子组件。
|
|
317
|
+
*/
|
|
318
|
+
declare const LAYOUT_SLOT_KEYS: readonly ["headerContent", "headerRight", "headerRightExtra", "siderHeader", "siderFooter", "siderExtra", "menuItemIcon", "menuItemLabel", "menuItemExtra", "tabBarItem", "footer", "copyright"];
|
|
319
|
+
interface GProLayoutSlots {
|
|
320
|
+
default?: () => any;
|
|
321
|
+
logo?: (props: {
|
|
322
|
+
collapsed: boolean;
|
|
323
|
+
title?: string;
|
|
324
|
+
}) => any;
|
|
325
|
+
headerContent?: (props: LayoutHeaderSlotProps) => any;
|
|
326
|
+
headerRight?: (props: LayoutHeaderSlotProps) => any;
|
|
327
|
+
headerRightExtra?: () => any;
|
|
328
|
+
siderHeader?: (props: LayoutSiderSlotProps) => any;
|
|
329
|
+
siderFooter?: (props: LayoutSiderSlotProps) => any;
|
|
330
|
+
siderExtra?: () => any;
|
|
331
|
+
collapse?: (props: {
|
|
332
|
+
collapsed: boolean;
|
|
333
|
+
}) => any;
|
|
334
|
+
collapseIcon?: (props: {
|
|
335
|
+
collapsed: boolean;
|
|
336
|
+
}) => any;
|
|
337
|
+
menuItemIcon?: (props: LayoutMenuItemSlotProps) => any;
|
|
338
|
+
menuItemLabel?: (props: LayoutMenuItemSlotProps) => any;
|
|
339
|
+
menuItemExtra?: (props: LayoutMenuItemSlotProps) => any;
|
|
340
|
+
breadcrumb?: (props: LayoutBreadcrumbSlotProps) => any;
|
|
341
|
+
tabBarItem?: (props: {
|
|
342
|
+
route: LayoutMenuRoute;
|
|
343
|
+
}) => any;
|
|
344
|
+
footer?: () => any;
|
|
345
|
+
copyright?: () => any;
|
|
346
|
+
}
|
|
347
|
+
/** tabs 底层操作参数(add/merge/remove) */
|
|
348
|
+
interface LayoutTabsUpdateOp {
|
|
349
|
+
type: 'add' | 'merge' | 'remove';
|
|
350
|
+
addType?: 'push' | 'unshift';
|
|
351
|
+
params?: Partial<LayoutMenuRoute>;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* tabs 命令式控制器。
|
|
355
|
+
* 通过 GProLayout 实例的 expose.tabs,或 useTabs() hook 获取。
|
|
356
|
+
* 标签数据内部管理(单一真相源),外部仅能通过本控制器修改、通过 tabsChange 监听。
|
|
357
|
+
*/
|
|
358
|
+
interface LayoutTabsController {
|
|
359
|
+
/** 当前全部标签(fixed + normal) */
|
|
360
|
+
getTabs: () => LayoutMenuRoute[];
|
|
361
|
+
/** 当前激活标签 name(route.name) */
|
|
362
|
+
getActive: () => string;
|
|
363
|
+
/** 指定标签是否激活 */
|
|
364
|
+
isActive: (name: string) => boolean;
|
|
365
|
+
/** 指定标签是否固定 */
|
|
366
|
+
isFixed: (name: string) => boolean;
|
|
367
|
+
/** 新增标签(已存在则合并更新) */
|
|
368
|
+
add: (record: LayoutMenuRoute) => void;
|
|
369
|
+
/** 关闭标签,默认关闭当前激活项 */
|
|
370
|
+
close: (name?: string) => void;
|
|
371
|
+
/** 关闭其它标签(保留目标 + fixed) */
|
|
372
|
+
closeOthers: (name?: string) => void;
|
|
373
|
+
/** 关闭左侧标签 */
|
|
374
|
+
closeLeft: (name?: string) => void;
|
|
375
|
+
/** 关闭右侧标签 */
|
|
376
|
+
closeRight: (name?: string) => void;
|
|
377
|
+
/** 关闭全部 normal 标签(保留 fixed) */
|
|
378
|
+
closeAll: () => void;
|
|
379
|
+
/** 清空全部标签(含 fixed) */
|
|
380
|
+
clean: () => void;
|
|
381
|
+
/** 切换到指定标签(等价于点击) */
|
|
382
|
+
switchTo: (name: string) => void;
|
|
383
|
+
/** 切换固定状态;省略 fixed 时取反 */
|
|
384
|
+
toggleFixed: (name: string, fixed?: boolean) => void;
|
|
385
|
+
/** 刷新标签,默认刷新当前激活项 */
|
|
386
|
+
reload: (name?: string) => void;
|
|
387
|
+
/** 切换内容全屏 */
|
|
388
|
+
toggleFullscreen: () => void;
|
|
389
|
+
/** 底层增删改(add/merge/remove),语义化方法的兜底 */
|
|
390
|
+
update: (record: LayoutMenuRoute, op: LayoutTabsUpdateOp) => void;
|
|
391
|
+
}
|
|
392
|
+
interface GProLayoutRef {
|
|
393
|
+
tabs: LayoutTabsController;
|
|
394
|
+
}
|
|
395
|
+
interface PageContainerLoading {
|
|
396
|
+
tip?: string;
|
|
397
|
+
/** loading 时是否模糊内容 */
|
|
398
|
+
blur?: boolean;
|
|
399
|
+
}
|
|
400
|
+
interface GPageContainerEmits {
|
|
401
|
+
'fullscreenChange': (fullscreen: boolean) => void;
|
|
402
|
+
}
|
|
403
|
+
interface GPageContainerEmitsProps {
|
|
404
|
+
onFullscreenChange?: GPageContainerEmits['fullscreenChange'];
|
|
405
|
+
}
|
|
406
|
+
interface GPageContainerProps extends GPageContainerEmitsProps {
|
|
407
|
+
class?: string;
|
|
408
|
+
style?: CSSProperties;
|
|
409
|
+
prefixCls?: string;
|
|
410
|
+
title?: string;
|
|
411
|
+
/** loading:布尔或带 tip/blur 的配置 */
|
|
412
|
+
loading?: boolean | PageContainerLoading;
|
|
413
|
+
/**
|
|
414
|
+
* 内容高度模式:
|
|
415
|
+
* - `'auto'`(默认):高度随内容自然撑开,不做 flex 拉伸;适合常规滚动页面
|
|
416
|
+
* - `'fit'`:容器最小高度占满父级剩余空间,内容超出时可继续撑开并触发页面滚动
|
|
417
|
+
* - `'full'`:固定占满父级剩余空间,容器自身 `overflow: hidden`;适合内部自行管理滚动的场景
|
|
418
|
+
*/
|
|
419
|
+
height?: 'auto' | 'fit' | 'full';
|
|
420
|
+
/** 内容卡片:布尔或 Card 配置 */
|
|
421
|
+
card?: LayoutPageContainerConfig['card'];
|
|
422
|
+
breadcrumbConfig?: LayoutBreadcrumbConfig | false;
|
|
423
|
+
watermark?: WatermarkProps;
|
|
424
|
+
/** footer 是否吸底 */
|
|
425
|
+
affixFooter?: boolean;
|
|
426
|
+
/** 内容最大宽度,覆盖 layout 级 pageContainerConfig.contentWidth */
|
|
427
|
+
contentWidth?: number | string;
|
|
428
|
+
proStyles?: PageContainerStylesType;
|
|
429
|
+
proClasses?: PageContainerClassNamesType;
|
|
430
|
+
/** 整块页头(等价 #header slot) */
|
|
431
|
+
header?: WithFalse<CustomRender>;
|
|
432
|
+
/** 页头内容区(等价 #headerContent slot) */
|
|
433
|
+
headerContent?: WithFalse<CustomRender>;
|
|
434
|
+
/** 标题右侧操作(等价 #extra slot) */
|
|
435
|
+
extra?: WithFalse<CustomRender>;
|
|
436
|
+
/** 页脚(等价 #footer slot) */
|
|
437
|
+
footer?: WithFalse<CustomRender>;
|
|
438
|
+
}
|
|
439
|
+
interface GPageContainerSlots {
|
|
440
|
+
default?: () => any;
|
|
441
|
+
/** 整块页头 */
|
|
442
|
+
header?: () => any;
|
|
443
|
+
/** 页头内容区 */
|
|
444
|
+
headerContent?: () => any;
|
|
445
|
+
/** 标题右侧操作 */
|
|
446
|
+
extra?: () => any;
|
|
447
|
+
breadcrumb?: (props: LayoutBreadcrumbSlotProps) => any;
|
|
448
|
+
footer?: () => any;
|
|
449
|
+
}
|
|
450
|
+
/** GPageContainer 的 slot key 列表(不含 `default`),供 `getSlotsProps` 合并。 */
|
|
451
|
+
declare const PAGE_CONTAINER_SLOT_KEYS: readonly ["header", "headerContent", "extra", "breadcrumb", "footer"];
|
|
452
|
+
type PageContainerSlotKey = typeof PAGE_CONTAINER_SLOT_KEYS[number];
|
|
453
|
+
interface GFooterToolbarProps {
|
|
454
|
+
/** teleport 目标;true → body,string → 选择器,false 不 teleport */
|
|
455
|
+
teleport?: boolean | string;
|
|
456
|
+
proStyles?: FooterToolbarStylesType;
|
|
457
|
+
proClasses?: FooterToolbarClassNamesType;
|
|
458
|
+
/** 左侧信息区(等价 #extra slot) */
|
|
459
|
+
extra?: WithFalse<CustomRender>;
|
|
460
|
+
}
|
|
461
|
+
interface GFooterToolbarSlots {
|
|
462
|
+
/** 右侧操作区 */
|
|
463
|
+
default?: () => any;
|
|
464
|
+
/** 左侧信息区 */
|
|
465
|
+
extra?: () => any;
|
|
466
|
+
}
|
|
467
|
+
/** GFooterToolbar 的 slot key 列表(不含 `default`),供 `getSlotsProps` 合并。 */
|
|
468
|
+
declare const FOOTER_TOOLBAR_SLOT_KEYS: readonly ["extra"];
|
|
469
|
+
type FooterToolbarSlotKey = typeof FOOTER_TOOLBAR_SLOT_KEYS[number];
|
|
470
|
+
/** 应用壳全局 loading 配置 */
|
|
471
|
+
interface AppPageSpinning {
|
|
472
|
+
/** 是否处于 loading 态 */
|
|
473
|
+
loading?: boolean;
|
|
474
|
+
/** loading 遮罩自定义样式 */
|
|
475
|
+
style?: CSSProperties;
|
|
476
|
+
/** 是否模糊遮罩下方内容 */
|
|
477
|
+
blur?: boolean;
|
|
478
|
+
}
|
|
479
|
+
interface GProAppPageProps {
|
|
480
|
+
class?: string;
|
|
481
|
+
prefixCls?: string;
|
|
482
|
+
style?: CSSProperties;
|
|
483
|
+
/** 全局 loading 配置 */
|
|
484
|
+
spinning?: AppPageSpinning;
|
|
485
|
+
/** 全局空态内容(等价 #emptyText slot) */
|
|
486
|
+
emptyText?: WithFalse<CustomRender>;
|
|
487
|
+
/** 全局加载指示器(等价 #indicator slot) */
|
|
488
|
+
indicator?: WithFalse<CustomRender>;
|
|
489
|
+
}
|
|
490
|
+
interface GProAppPageSlots {
|
|
491
|
+
/** 应用内容(通常为 router-view) */
|
|
492
|
+
default?: () => any;
|
|
493
|
+
/** 全局空态内容 */
|
|
494
|
+
emptyText?: () => any;
|
|
495
|
+
/** 全局加载指示器 */
|
|
496
|
+
indicator?: () => any;
|
|
497
|
+
}
|
|
498
|
+
/** GProAppPage 的 slot key 列表(不含 `default`),供 `getSlotsProps` 合并。 */
|
|
499
|
+
declare const APP_PAGE_SLOT_KEYS: readonly ["emptyText", "indicator"];
|
|
500
|
+
type AppPageSlotKey = typeof APP_PAGE_SLOT_KEYS[number];
|
|
501
|
+
interface GPageTransitionProps {
|
|
502
|
+
/** 禁用动画,直接渲染子节点 */
|
|
503
|
+
disabled?: boolean;
|
|
504
|
+
/** 离场时是否反转方向(让动画「倒放」),默认 true */
|
|
505
|
+
reverse?: boolean;
|
|
506
|
+
/** 动画名,默认 'fade'(back/bounce/fade/flip/lightSpeed/rotate/roll/zoom/slide) */
|
|
507
|
+
name?: string;
|
|
508
|
+
/** 方向变体;未指定则取该预设首个方向 */
|
|
509
|
+
direction?: string;
|
|
510
|
+
}
|
|
511
|
+
interface GPageTransitionSlots {
|
|
512
|
+
/** 需要做切换动画的内容(通常为 router-view 单节点) */
|
|
513
|
+
default?: () => any;
|
|
514
|
+
}
|
|
515
|
+
//#endregion
|
|
516
|
+
export { APP_PAGE_SLOT_KEYS, AppPageSlotKey, AppPageSpinning, type BreadcrumbItemType, type CardProps, DeepPartial, EmptyEmits, FOOTER_TOOLBAR_SLOT_KEYS, FooterToolbarClassNamesType, FooterToolbarSemanticName, FooterToolbarSlotKey, FooterToolbarStylesType, GFooterToolbarProps, GFooterToolbarSlots, GPageContainerEmits, GPageContainerEmitsProps, GPageContainerProps, GPageContainerSlots, GPageTransitionProps, GPageTransitionSlots, GProAppPageProps, GProAppPageSlots, GProLayoutEmits, GProLayoutEmitsProps, GProLayoutProps, GProLayoutRef, GProLayoutSlots, InnerTabItem, InnerTabsEmits, InnerTabsEmitsProps, InnerTabsProps, InnerTabsSlots, LAYOUT_SLOT_KEYS, LayoutBreadcrumbConfig, LayoutBreadcrumbProps, LayoutBreadcrumbSlotProps, LayoutBreadcrumbSlots, LayoutClassNamesType, LayoutCollapseButtonEmits, LayoutCollapseButtonEmitsProps, LayoutCollapseButtonProps, LayoutCollapseButtonSlots, LayoutCollapseConfig, LayoutContentEmits, LayoutContentEmitsProps, LayoutContentProps, LayoutContentSlots, LayoutFooterConfig, LayoutFooterLink, LayoutFooterProps, LayoutFooterSlots, LayoutHeaderConfig, LayoutHeaderEmits, LayoutHeaderEmitsProps, LayoutHeaderProps, LayoutHeaderSlotProps, LayoutHeaderSlots, LayoutLogoConfig, LayoutLogoEmits, LayoutLogoEmitsProps, LayoutLogoProps, LayoutLogoSlots, LayoutMenuConfig, LayoutMenuItemSlotProps, LayoutMenuRoute, LayoutPageContainerConfig, LayoutSelectInfo, LayoutSemanticName, LayoutSiderConfig, LayoutSiderEmits, LayoutSiderEmitsProps, LayoutSiderProps, LayoutSiderSlotProps, LayoutSiderSlots, LayoutStylesType, LayoutTabsConfig, LayoutTabsController, LayoutTabsEmits, LayoutTabsEmitsProps, LayoutTabsProps, LayoutTabsSlots, LayoutTabsUpdateOp, MenuClassNamesType, MenuClickInfo, type MenuProps, MenuRenderItem, MenuSelectInfo, MenuSemanticName, MenuStylesType, Meta, PAGE_CONTAINER_SLOT_KEYS, PRO_MENU_SLOT_KEYS, PageContainerClassNamesType, PageContainerLoading, PageContainerSemanticName, PageContainerSlotKey, PageContainerStylesType, ProMenuEmits, ProMenuEmitsProps, ProMenuProps, ProMenuSlots, type SiderProps, type SpinProps, type Tab, TabGroup, TabsMeta, type TabsProps, type WatermarkProps };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { PRO_MENU_SLOT_KEYS } from "./components/Menu/interface.js";
|
|
2
|
+
//#region src/interface.ts
|
|
3
|
+
/**
|
|
4
|
+
* GProLayout 的 slot key 列表(不含 `default`)。
|
|
5
|
+
* 供 `getSlotsProps` 一次性合并「prop > slot」并统一下发子组件。
|
|
6
|
+
*/
|
|
7
|
+
const LAYOUT_SLOT_KEYS = [
|
|
8
|
+
"headerContent",
|
|
9
|
+
"headerRight",
|
|
10
|
+
"headerRightExtra",
|
|
11
|
+
"siderHeader",
|
|
12
|
+
"siderFooter",
|
|
13
|
+
"siderExtra",
|
|
14
|
+
"menuItemIcon",
|
|
15
|
+
"menuItemLabel",
|
|
16
|
+
"menuItemExtra",
|
|
17
|
+
"tabBarItem",
|
|
18
|
+
"footer",
|
|
19
|
+
"copyright"
|
|
20
|
+
];
|
|
21
|
+
/** GPageContainer 的 slot key 列表(不含 `default`),供 `getSlotsProps` 合并。 */
|
|
22
|
+
const PAGE_CONTAINER_SLOT_KEYS = [
|
|
23
|
+
"header",
|
|
24
|
+
"headerContent",
|
|
25
|
+
"extra",
|
|
26
|
+
"breadcrumb",
|
|
27
|
+
"footer"
|
|
28
|
+
];
|
|
29
|
+
/** GFooterToolbar 的 slot key 列表(不含 `default`),供 `getSlotsProps` 合并。 */
|
|
30
|
+
const FOOTER_TOOLBAR_SLOT_KEYS = ["extra"];
|
|
31
|
+
/** GProAppPage 的 slot key 列表(不含 `default`),供 `getSlotsProps` 合并。 */
|
|
32
|
+
const APP_PAGE_SLOT_KEYS = ["emptyText", "indicator"];
|
|
33
|
+
//#endregion
|
|
34
|
+
export { APP_PAGE_SLOT_KEYS, FOOTER_TOOLBAR_SLOT_KEYS, LAYOUT_SLOT_KEYS, PAGE_CONTAINER_SLOT_KEYS, PRO_MENU_SLOT_KEYS };
|