@gx-design-vue/pro-layout 0.1.0-alpha.20 → 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.js +1 -1
- package/dist/components/Breadcrumb/index.js +3 -2
- package/dist/components/Breadcrumb/interface.d.ts +1 -1
- package/dist/components/Header/index.js +6 -14
- package/dist/components/Logo/index.js +6 -1
- package/dist/components/Menu/iconRender.d.ts +1 -1
- package/dist/components/Menu/iconRender.js +1 -1
- package/dist/components/Menu/index.d.ts +9 -10
- package/dist/components/Menu/index.js +670 -114
- package/dist/components/Menu/interface.d.ts +11 -11
- package/dist/components/Menu/interface.js +3 -3
- 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/{siderMenu.d.ts → index.d.ts} +64 -5
- package/dist/components/Menu/style/index.js +147 -0
- package/dist/components/Menu/style/inline.d.ts +13 -0
- package/dist/components/Menu/style/{siderMenu.js → inline.js} +29 -115
- package/dist/components/PageContainer/index.js +2 -2
- package/dist/components/PageContainer/style.js +9 -6
- package/dist/components/Sider/index.js +18 -11
- package/dist/defaultConfig.js +1 -2
- package/dist/hooks/useLayoutBase.d.ts +15 -15
- package/dist/hooks/useMenu.d.ts +5 -5
- package/dist/hooks/useMenu.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/interface.d.ts +2 -6
- package/dist/interface.js +2 -2
- package/dist/pro-layout.esm.js +4777 -4469
- package/dist/pro-layout.js +3 -2
- package/dist/style/breadcrumb.js +2 -1
- package/dist/style/logo.js +6 -1
- package/dist/style/menu.d.ts +1 -1
- package/dist/style/menu.js +1 -1
- package/dist/theme/augment.d.ts +2 -2
- package/dist/theme/interface/components.d.ts +2 -2
- package/dist/utils/menu.d.ts +3 -3
- package/dist/utils/menu.js +2 -2
- package/dist/utils/themeComponents.d.ts +8 -4
- package/dist/utils/themeComponents.js +14 -4
- package/package.json +15 -15
- package/dist/components/Menu/SiderMenu.d.ts +0 -29
- package/dist/components/Menu/SiderMenu.js +0 -666
- package/dist/components/Menu/convert.d.ts +0 -14
- package/dist/components/Menu/convert.js +0 -50
package/dist/style/breadcrumb.js
CHANGED
|
@@ -44,7 +44,8 @@ const genBreadcrumbStyle = (token) => {
|
|
|
44
44
|
[`${breadcrumbCls}-item-icon`]: {
|
|
45
45
|
display: "inline-flex",
|
|
46
46
|
alignItems: "center",
|
|
47
|
-
fontSize: token.fontSize
|
|
47
|
+
fontSize: token.fontSize,
|
|
48
|
+
minHeight: unit(token.fontHeight)
|
|
48
49
|
},
|
|
49
50
|
[`${breadcrumbCls}-overlay-link`]: {
|
|
50
51
|
color: token.colorTextDescription,
|
package/dist/style/logo.js
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
const genLogoStyle = (token) => {
|
|
3
3
|
return {
|
|
4
4
|
[`${token.componentCls}-sider-header ${token.componentCls}-logo`]: { borderBlockEnd: `1px solid ${token.siderColorMenuItemDivider}` },
|
|
5
|
+
[`${token.componentCls}-mix ${token.componentCls}-sider-header ${token.componentCls}-logo, ${token.componentCls}-wide ${token.componentCls}-sider-header ${token.componentCls}-logo`]: {
|
|
6
|
+
paddingBlock: 0,
|
|
7
|
+
paddingInline: 12,
|
|
8
|
+
height: "100%"
|
|
9
|
+
},
|
|
5
10
|
[`${token.componentCls}-logo`]: {
|
|
6
11
|
position: "relative",
|
|
7
12
|
display: "flex",
|
|
@@ -52,7 +57,7 @@ const genLogoStyle = (token) => {
|
|
|
52
57
|
paddingInlineStart: 0
|
|
53
58
|
}
|
|
54
59
|
},
|
|
55
|
-
[`${token.componentCls}-side ${token.componentCls}-logo-collapsed`]: {
|
|
60
|
+
[`${token.componentCls}-side ${token.componentCls}-logo-collapsed, ${token.componentCls}-mix ${token.componentCls}-logo-collapsed, ${token.componentCls}-wide ${token.componentCls}-logo-collapsed`]: {
|
|
56
61
|
paddingInline: 0,
|
|
57
62
|
paddingBlock: 16
|
|
58
63
|
},
|
package/dist/style/menu.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { GenerateStyle } from "antdv-next/dist/theme/internal";
|
|
|
4
4
|
|
|
5
5
|
//#region src/style/menu.d.ts
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* ProMenu 结构样式 —— 颜色/背景/选中/hover 由 ProMenu 内层 ConfigProvider 的
|
|
8
8
|
* `components.Menu` token 负责,这里只补 antdv 未 token 化的结构/尺寸。
|
|
9
9
|
*
|
|
10
10
|
* 全部置于父级 `${componentCls}` 下命中 `${antCls}-menu`,靠 (0,2,0) 压过 antdv 的
|
package/dist/style/menu.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { unit } from "@antdv-next/cssinjs";
|
|
2
2
|
//#region src/style/menu.ts
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* ProMenu 结构样式 —— 颜色/背景/选中/hover 由 ProMenu 内层 ConfigProvider 的
|
|
5
5
|
* `components.Menu` token 负责,这里只补 antdv 未 token 化的结构/尺寸。
|
|
6
6
|
*
|
|
7
7
|
* 全部置于父级 `${componentCls}` 下命中 `${antCls}-menu`,靠 (0,2,0) 压过 antdv 的
|
package/dist/theme/augment.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ComponentToken } from "../components/AppPage/style.js";
|
|
2
2
|
import { ComponentToken as ComponentToken$1 } from "../components/FooterToolbar/style.js";
|
|
3
|
-
import { ComponentToken as ComponentToken$2 } from "../components/Menu/style/
|
|
3
|
+
import { ComponentToken as ComponentToken$2 } from "../components/Menu/style/index.js";
|
|
4
4
|
import { ComponentToken as ComponentToken$3 } from "../components/PageContainer/style.js";
|
|
5
5
|
import { ComponentToken as ComponentToken$4 } from "../components/PageTransition/style.js";
|
|
6
6
|
import { ComponentToken as ComponentToken$5 } from "../components/Tabs/style/index.js";
|
|
@@ -12,7 +12,7 @@ declare module 'antdv-next/dist/theme/interface/components' {
|
|
|
12
12
|
ProLayout?: ComponentToken$6;
|
|
13
13
|
InnerTabs?: ComponentToken$5;
|
|
14
14
|
ProAppPage?: ComponentToken;
|
|
15
|
-
|
|
15
|
+
ProMenu?: ComponentToken$2;
|
|
16
16
|
ProFooterToolbar?: ComponentToken$1;
|
|
17
17
|
ProPageContainer?: ComponentToken$3;
|
|
18
18
|
ProPageTransition?: ComponentToken$4;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ComponentToken } from "../../components/AppPage/style.js";
|
|
2
2
|
import { ComponentToken as ComponentToken$1 } from "../../components/FooterToolbar/style.js";
|
|
3
|
-
import { ComponentToken as ComponentToken$2 } from "../../components/Menu/style/
|
|
3
|
+
import { ComponentToken as ComponentToken$2 } from "../../components/Menu/style/index.js";
|
|
4
4
|
import { ComponentToken as ComponentToken$3 } from "../../components/PageContainer/style.js";
|
|
5
5
|
import { ComponentToken as ComponentToken$4 } from "../../components/PageTransition/style.js";
|
|
6
6
|
import { ComponentToken as ComponentToken$5 } from "../../components/Tabs/style/index.js";
|
|
@@ -11,7 +11,7 @@ interface ComponentTokenMap {
|
|
|
11
11
|
ProLayout?: ComponentToken$6;
|
|
12
12
|
InnerTabs?: ComponentToken$5;
|
|
13
13
|
ProAppPage?: ComponentToken;
|
|
14
|
-
|
|
14
|
+
ProMenu?: ComponentToken$2;
|
|
15
15
|
ProFooterToolbar?: ComponentToken$1;
|
|
16
16
|
ProPageContainer?: ComponentToken$3;
|
|
17
17
|
ProPageTransition?: ComponentToken$4;
|
package/dist/utils/menu.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { BreadcrumbItemType, LayoutMenuRoute, Meta } from "../interface.js";
|
|
|
10
10
|
* 这是旧实现内存增长 / 卡顿的根因。
|
|
11
11
|
* - **查询 O(1)/O(depth)**:用 `Map<name, entry>` + `parentNames` 替代旧的 `key="0-1-2"` 字符串切割。
|
|
12
12
|
* - **只产路由分支**:数据层只输出清洗 / 排序 / 切分后的 `LayoutMenuRoute[]`;
|
|
13
|
-
* route → antdv-next `MenuItemType` 的转换交给 `
|
|
13
|
+
* route → antdv-next `MenuItemType` 的转换交给 `ProMenu` 组件自洽完成。
|
|
14
14
|
*/
|
|
15
15
|
/** 扁平查找项:route 为 markRaw 的源路由,parentNames 为根→直接父(含序、不含自身)。 */
|
|
16
16
|
interface MenuLookupEntry {
|
|
@@ -102,11 +102,11 @@ declare function toBreadcrumbItems(routes: LayoutMenuRoute[]): BreadcrumbItemTyp
|
|
|
102
102
|
*/
|
|
103
103
|
declare function resolveRouteTarget(lookup: Map<string, MenuLookupEntry>, name: string): ResolveRouteResult;
|
|
104
104
|
/**
|
|
105
|
-
* 取顶层菜单中 `name` 命中项的子级(
|
|
105
|
+
* 取顶层菜单中 `name` 命中项的子级(mix 布局的侧边分支)。
|
|
106
106
|
* 替代旧 `menuData.find(name===selectedKeys[0])?.children` 与 `getMenuFirstChildren`。
|
|
107
107
|
*/
|
|
108
108
|
declare function selectMenuBranch(menus: LayoutMenuRoute[], name: string | undefined): LayoutMenuRoute[];
|
|
109
|
-
/** 按 `meta.fixed` 拆分菜单(fixed 项钉到侧边栏底部)。替代旧
|
|
109
|
+
/** 按 `meta.fixed` 拆分菜单(fixed 项钉到侧边栏底部)。替代旧 ProMenu 的 `baseMenus`/`footerMenus`。 */
|
|
110
110
|
declare function partitionFixedMenus(menus: LayoutMenuRoute[]): {
|
|
111
111
|
baseMenus: LayoutMenuRoute[];
|
|
112
112
|
fixedMenus: LayoutMenuRoute[];
|
package/dist/utils/menu.js
CHANGED
|
@@ -257,14 +257,14 @@ function resolveRouteTarget(lookup, name) {
|
|
|
257
257
|
};
|
|
258
258
|
}
|
|
259
259
|
/**
|
|
260
|
-
* 取顶层菜单中 `name` 命中项的子级(
|
|
260
|
+
* 取顶层菜单中 `name` 命中项的子级(mix 布局的侧边分支)。
|
|
261
261
|
* 替代旧 `menuData.find(name===selectedKeys[0])?.children` 与 `getMenuFirstChildren`。
|
|
262
262
|
*/
|
|
263
263
|
function selectMenuBranch(menus, name) {
|
|
264
264
|
if (!name) return [];
|
|
265
265
|
return menus.find((menu) => menu.name === name)?.children ?? [];
|
|
266
266
|
}
|
|
267
|
-
/** 按 `meta.fixed` 拆分菜单(fixed 项钉到侧边栏底部)。替代旧
|
|
267
|
+
/** 按 `meta.fixed` 拆分菜单(fixed 项钉到侧边栏底部)。替代旧 ProMenu 的 `baseMenus`/`footerMenus`。 */
|
|
268
268
|
function partitionFixedMenus(menus) {
|
|
269
269
|
const baseMenus = [];
|
|
270
270
|
const fixedMenus = [];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentToken } from "../components/Menu/style/
|
|
1
|
+
import { ComponentToken } from "../components/Menu/style/index.js";
|
|
2
2
|
import { BaseLayoutDesignToken } from "@gx-design-vue/pro-provider";
|
|
3
3
|
import { ThemeConfig } from "antdv-next";
|
|
4
4
|
|
|
@@ -8,17 +8,21 @@ type MenuThemeTokens = NonNullable<NonNullable<ThemeConfig['components']>['Menu'
|
|
|
8
8
|
/**
|
|
9
9
|
* 侧边栏菜单的 antdv-next `Menu` token —— 用布局设计 token 重上色 antdv 自己的菜单 CSS。
|
|
10
10
|
*
|
|
11
|
-
*
|
|
11
|
+
* 等价于旧菜单外层 `<ConfigProvider theme={{ components: { Menu } }}>`,
|
|
12
12
|
* 但把 ant-design-vue v4 的 legacy token 名(colorItemBg 等)映射到 antdv-next 新名。
|
|
13
13
|
*/
|
|
14
14
|
declare function buildSiderMenuTokens(token: BaseLayoutDesignToken): MenuThemeTokens;
|
|
15
15
|
/**
|
|
16
|
-
* 侧边栏自写菜单的 token —— 外部仍只配置 `components.Menu`,这里转成内部 `
|
|
16
|
+
* 侧边栏自写菜单的 token —— 外部仍只配置 `components.Menu`,这里转成内部 `ProMenu`。
|
|
17
17
|
*/
|
|
18
18
|
declare function buildSiderProMenuTokens(token: BaseLayoutDesignToken, menuToken?: Partial<MenuThemeTokens>): Partial<ComponentToken>;
|
|
19
19
|
/**
|
|
20
20
|
* 顶部菜单的 antdv-next `Menu` token —— 水平态配色取布局 header token。
|
|
21
21
|
*/
|
|
22
22
|
declare function buildHeaderMenuTokens(token: BaseLayoutDesignToken): MenuThemeTokens;
|
|
23
|
+
/**
|
|
24
|
+
* 顶部自写菜单的 token —— 外部仍只配置 `components.Menu`,这里转成内部 `ProMenu`。
|
|
25
|
+
*/
|
|
26
|
+
declare function buildHeaderProMenuTokens(token: BaseLayoutDesignToken, menuToken?: Partial<MenuThemeTokens>): Partial<ComponentToken>;
|
|
23
27
|
//#endregion
|
|
24
|
-
export { buildHeaderMenuTokens, buildSiderMenuTokens, buildSiderProMenuTokens };
|
|
28
|
+
export { buildHeaderMenuTokens, buildHeaderProMenuTokens, buildSiderMenuTokens, buildSiderProMenuTokens };
|
|
@@ -25,7 +25,7 @@ function pickSiderMenuTokens(menuToken) {
|
|
|
25
25
|
/**
|
|
26
26
|
* 侧边栏菜单的 antdv-next `Menu` token —— 用布局设计 token 重上色 antdv 自己的菜单 CSS。
|
|
27
27
|
*
|
|
28
|
-
*
|
|
28
|
+
* 等价于旧菜单外层 `<ConfigProvider theme={{ components: { Menu } }}>`,
|
|
29
29
|
* 但把 ant-design-vue v4 的 legacy token 名(colorItemBg 等)映射到 antdv-next 新名。
|
|
30
30
|
*/
|
|
31
31
|
function buildSiderMenuTokens(token) {
|
|
@@ -49,7 +49,7 @@ function buildSiderMenuTokens(token) {
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
|
-
* 侧边栏自写菜单的 token —— 外部仍只配置 `components.Menu`,这里转成内部 `
|
|
52
|
+
* 侧边栏自写菜单的 token —— 外部仍只配置 `components.Menu`,这里转成内部 `ProMenu`。
|
|
53
53
|
*/
|
|
54
54
|
function buildSiderProMenuTokens(token, menuToken) {
|
|
55
55
|
return compact({
|
|
@@ -72,8 +72,18 @@ function buildHeaderMenuTokens(token) {
|
|
|
72
72
|
horizontalItemHoverBg: header.colorBgMenuItemHover,
|
|
73
73
|
horizontalItemSelectedBg: header.colorBgMenuItemSelected,
|
|
74
74
|
horizontalItemBorderRadius: header.itemBorderRadius,
|
|
75
|
-
itemBorderRadius: header.itemBorderRadius
|
|
75
|
+
itemBorderRadius: header.itemBorderRadius,
|
|
76
|
+
itemHeight: header.menuItemHeight
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 顶部自写菜单的 token —— 外部仍只配置 `components.Menu`,这里转成内部 `ProMenu`。
|
|
81
|
+
*/
|
|
82
|
+
function buildHeaderProMenuTokens(token, menuToken) {
|
|
83
|
+
return compact({
|
|
84
|
+
...menuToken,
|
|
85
|
+
...buildHeaderMenuTokens(token)
|
|
76
86
|
});
|
|
77
87
|
}
|
|
78
88
|
//#endregion
|
|
79
|
-
export { buildHeaderMenuTokens, buildSiderMenuTokens, buildSiderProMenuTokens };
|
|
89
|
+
export { buildHeaderMenuTokens, buildHeaderProMenuTokens, buildSiderMenuTokens, buildSiderProMenuTokens };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gx-design-vue/pro-layout",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.0-alpha.
|
|
4
|
+
"version": "0.1.0-alpha.21",
|
|
5
5
|
"description": "Gx Design Pro Layout",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "gx12358",
|
|
@@ -38,13 +38,13 @@
|
|
|
38
38
|
],
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@antdv-next/cssinjs": "^1.0.6",
|
|
41
|
-
"@gx-design-vue/context": "^0.0.5-alpha.
|
|
42
|
-
"@gx-design-vue/icon": "^0.0.1-alpha.
|
|
43
|
-
"@gx-design-vue/pro-hooks": "^0.2.0-alpha.
|
|
44
|
-
"@gx-design-vue/pro-provider": "^0.1.0-alpha.
|
|
45
|
-
"@gx-design-vue/pro-utils": "^0.2.0-alpha.
|
|
46
|
-
"@gx-design-vue/scrollbar": "^0.2.0-alpha.
|
|
47
|
-
"antdv-next": "^1.4.
|
|
41
|
+
"@gx-design-vue/context": "^0.0.5-alpha.8",
|
|
42
|
+
"@gx-design-vue/icon": "^0.0.1-alpha.13",
|
|
43
|
+
"@gx-design-vue/pro-hooks": "^0.2.0-alpha.8",
|
|
44
|
+
"@gx-design-vue/pro-provider": "^0.1.0-alpha.17",
|
|
45
|
+
"@gx-design-vue/pro-utils": "^0.2.0-alpha.10",
|
|
46
|
+
"@gx-design-vue/scrollbar": "^0.2.0-alpha.7",
|
|
47
|
+
"antdv-next": "^1.4.1",
|
|
48
48
|
"vue": ">=3.2.0"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
@@ -56,14 +56,14 @@
|
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@antdv-next/cssinjs": "^1.0.6",
|
|
59
|
-
"antdv-next": "^1.4.
|
|
59
|
+
"antdv-next": "^1.4.1",
|
|
60
60
|
"vue": "^3.5.38",
|
|
61
|
-
"@gx-design-vue/context": "^0.0.5-alpha.
|
|
62
|
-
"@gx-design-vue/
|
|
63
|
-
"@gx-design-vue/pro-provider": "^0.1.0-alpha.
|
|
64
|
-
"@gx-design-vue/
|
|
65
|
-
"@gx-design-vue/
|
|
66
|
-
"@gx-design-vue/
|
|
61
|
+
"@gx-design-vue/context": "^0.0.5-alpha.8",
|
|
62
|
+
"@gx-design-vue/pro-hooks": "^0.2.0-alpha.8",
|
|
63
|
+
"@gx-design-vue/pro-provider": "^0.1.0-alpha.17",
|
|
64
|
+
"@gx-design-vue/icon": "^0.0.1-alpha.13",
|
|
65
|
+
"@gx-design-vue/pro-utils": "^0.2.0-alpha.10",
|
|
66
|
+
"@gx-design-vue/scrollbar": "^0.2.0-alpha.7"
|
|
67
67
|
},
|
|
68
68
|
"browserslist": [
|
|
69
69
|
"> 1%",
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { LayoutMenuEmits, LayoutMenuSlots } from "./interface.js";
|
|
2
|
-
import { LayoutClassNamesType, LayoutMenuItemSlotProps, LayoutMenuRoute, LayoutStylesType } from "../../interface.js";
|
|
3
|
-
import { CSSProperties, SlotsType } from "vue";
|
|
4
|
-
import { CustomRender } from "@gx-design-vue/pro-utils";
|
|
5
|
-
|
|
6
|
-
//#region src/components/Menu/SiderMenu.d.ts
|
|
7
|
-
interface SiderMenuProps {
|
|
8
|
-
class?: string;
|
|
9
|
-
prefixCls?: string;
|
|
10
|
-
style?: CSSProperties;
|
|
11
|
-
menus?: LayoutMenuRoute[];
|
|
12
|
-
selectedKeys?: string[];
|
|
13
|
-
openKeys?: string[];
|
|
14
|
-
collapsed?: boolean;
|
|
15
|
-
proClasses?: LayoutClassNamesType;
|
|
16
|
-
proStyles?: LayoutStylesType;
|
|
17
|
-
/** 由外部(如 Sider)传入,用于获取包裹 SiderMenu 的滚动容器 DOM 引用 */
|
|
18
|
-
getScrollContainer?: () => HTMLElement | undefined;
|
|
19
|
-
menuItemIcon?: (slotProps: LayoutMenuItemSlotProps) => CustomRender;
|
|
20
|
-
menuItemLabel?: (slotProps: LayoutMenuItemSlotProps) => CustomRender;
|
|
21
|
-
menuItemExtra?: (slotProps: LayoutMenuItemSlotProps) => CustomRender;
|
|
22
|
-
onSelect?: LayoutMenuEmits['select'];
|
|
23
|
-
onOpenChange?: LayoutMenuEmits['openChange'];
|
|
24
|
-
'onUpdate:selectedKeys'?: LayoutMenuEmits['update:selectedKeys'];
|
|
25
|
-
'onUpdate:openKeys'?: LayoutMenuEmits['update:openKeys'];
|
|
26
|
-
}
|
|
27
|
-
declare const SiderMenu: import("vue").DefineSetupFnComponent<SiderMenuProps, LayoutMenuEmits, SlotsType<LayoutMenuSlots>, SiderMenuProps, import("vue").PublicProps>;
|
|
28
|
-
//#endregion
|
|
29
|
-
export { SiderMenu as default };
|