@tsingroc/tsingroc-components 4.1.0 → 4.2.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.
|
@@ -26,28 +26,6 @@ const DEFAULT_MENU_ITEMS = [
|
|
|
26
26
|
menuItem("购电合约管理", "purchase-contract"),
|
|
27
27
|
]),
|
|
28
28
|
];
|
|
29
|
-
/**
|
|
30
|
-
* 出自 TMS 系统的侧边栏组件。该组件需要放置在 [Ant Design 的 `Layout` 组件][1]内部才能正常工作。
|
|
31
|
-
* 如果没有指定 {@linkcode SidebarProps.footer | footer} 属性,
|
|
32
|
-
* 那么还需要包裹在 {@linkcode AuthProvider} 内,并且经过 {@linkcode AuthCheck} 验证后
|
|
33
|
-
* 才能正常显示边栏底部的用户信息按钮。
|
|
34
|
-
*
|
|
35
|
-
* 一般来说,使用该组件时至少需要提供 `logo`、`items` 和 `onSelect` 三个属性,具体用法请参照范例。
|
|
36
|
-
*
|
|
37
|
-
* 除了文档中列出的属性之外,该组件会把额外的属性全部传递给内部的菜单 [`Menu` 组件][2]。
|
|
38
|
-
*
|
|
39
|
-
* [1]: https://ant-design.antgroup.com/components/layout-cn
|
|
40
|
-
* [2]: https://ant-design.antgroup.com/components/menu-cn
|
|
41
|
-
*/
|
|
42
|
-
function Sidebar(props) {
|
|
43
|
-
const { width = 260, collapsible = false, logo, title, headerHeight = 116, header, items = DEFAULT_MENU_ITEMS, footer = (collapsed) => (_jsx(UserButton, { compact: collapsed, style: { marginBottom: token.paddingSM } })), className, style, ...rest } = props;
|
|
44
|
-
const [collapsed, setCollapsed] = useState(false);
|
|
45
|
-
// 默认展开到 selectedKeys
|
|
46
|
-
const [openKeys, setOpenKeys] = useState(() => rest.selectedKeys?.flatMap((key) => findKeyPath(items, key) ?? []) ?? []);
|
|
47
|
-
const { cx, styles, theme: token } = useStyles(collapsed);
|
|
48
|
-
return (_jsxs(Layout.Sider, { theme: "light", width: width, collapsed: collapsible ? collapsed : false, collapsible: collapsible, trigger: null, className: cx(styles.sidebar, className), style: style, children: [header === null ? null : header ? (header(collapsed)) : (_jsxs(Flex, { vertical: true, align: "center", justify: "center", className: cx(styles.sidebarHeader), style: { height: headerHeight }, children: [_jsx("img", { alt: "logo", src: logo }), _jsx("h1", { style: { color: token.colorText }, children: title })] })), _jsx(Menu, { mode: "inline", items: items, inlineCollapsed: collapsible ? collapsed : false, openKeys: openKeys, onOpenChange: (openKeys) => setOpenKeys(openKeys), className: cx(styles.sidebarMenu), ...rest }), footer === null ? null : footer?.(collapsed), collapsible && (_jsx(Button, { className: cx(styles.sidebarBtn), icon: collapsed ? _jsx(RightOutlined, {}) : _jsx(LeftOutlined, {}), onClick: () => setCollapsed(!collapsed) }))] }));
|
|
49
|
-
}
|
|
50
|
-
export default Sidebar;
|
|
51
29
|
const useStyles = createStyles(({ token, css, cx, prefixCls }, collapsed) => {
|
|
52
30
|
const sidebarHeader = css `
|
|
53
31
|
margin-top: ${token.marginXXS}px;
|
|
@@ -109,21 +87,24 @@ const useStyles = createStyles(({ token, css, cx, prefixCls }, collapsed) => {
|
|
|
109
87
|
sidebarBtn,
|
|
110
88
|
};
|
|
111
89
|
});
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
127
|
-
|
|
90
|
+
/**
|
|
91
|
+
* 出自 TMS 系统的侧边栏组件。该组件需要放置在 [Ant Design 的 `Layout` 组件][1]内部才能正常工作。
|
|
92
|
+
* 如果没有指定 {@linkcode SidebarProps.footer | footer} 属性,
|
|
93
|
+
* 那么还需要包裹在 {@linkcode AuthProvider} 内,并且经过 {@linkcode AuthCheck} 验证后
|
|
94
|
+
* 才能正常显示边栏底部的用户信息按钮。
|
|
95
|
+
*
|
|
96
|
+
* 一般来说,使用该组件时至少需要提供 `logo`、`items` 和 `onSelect` 三个属性,具体用法请参照范例。
|
|
97
|
+
*
|
|
98
|
+
* 除了文档中列出的属性之外,该组件会把额外的属性全部传递给内部的菜单 [`Menu` 组件][2]。
|
|
99
|
+
*
|
|
100
|
+
* [1]: https://ant-design.antgroup.com/components/layout-cn
|
|
101
|
+
* [2]: https://ant-design.antgroup.com/components/menu-cn
|
|
102
|
+
*/
|
|
103
|
+
function Sidebar(props) {
|
|
104
|
+
const { width = 260, collapsible = false, logo, title, headerHeight = 116, header, items = DEFAULT_MENU_ITEMS, footer = (collapsed) => (_jsx(UserButton, { compact: collapsed, style: { marginBottom: token.paddingSM } })), className, style, ...rest } = props;
|
|
105
|
+
const [collapsed, setCollapsed] = useState(false);
|
|
106
|
+
const { cx, styles, theme: token } = useStyles(collapsed);
|
|
107
|
+
return (_jsxs(Layout.Sider, { theme: "light", width: width, collapsed: collapsible ? collapsed : false, collapsible: collapsible, trigger: null, className: cx(styles.sidebar, className), style: style, children: [header === null ? null : header ? (header(collapsed)) : (_jsxs(Flex, { vertical: true, align: "center", justify: "center", className: cx(styles.sidebarHeader), style: { height: headerHeight }, children: [_jsx("img", { alt: "logo", src: logo }), _jsx("h1", { style: { color: token.colorText }, children: title })] })), _jsx(Menu, { mode: "inline", items: items, inlineCollapsed: collapsible ? collapsed : false, className: cx(styles.sidebarMenu), ...rest }), footer === null ? null : footer?.(collapsed), collapsible && (_jsx(Button, { className: cx(styles.sidebarBtn), icon: collapsed ? _jsx(RightOutlined, {}) : _jsx(LeftOutlined, {}), onClick: () => setCollapsed(!collapsed) }))] }));
|
|
128
108
|
}
|
|
109
|
+
export default Sidebar;
|
|
129
110
|
//# sourceMappingURL=Sidebar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../src/components/Sidebar.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAkB,MAAM,MAAM,CAAC;AAClE,OAAO,EAAgD,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,6DAA6D;AAC7D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,UAAU,MAAM,cAAc,CAAC;AAItC,MAAM,QAAQ,GAAG,CACf,KAAgB,EAChB,GAAQ,EACR,IAAgB,EAChB,QAAqB,EACX,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAEhD,yBAAyB;AACzB,MAAM,kBAAkB,GAAe;IACrC,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,KAAC,gBAAgB,KAAG,EAAE;QACnD,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;QAC9B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;QACrC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;KAChC,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAC,YAAY,KAAG,EAAE;QACrD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;QACnC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;QAC9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAC,YAAY,KAAG,EAAE;QACxD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;QACrC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QACpC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;QACxC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACxC,CAAC;CACH,CAAC;AAgEF;;;;;;;;;;;;GAYG;AACH,SAAS,OAAO,CAAC,KAAmB;IAClC,MAAM,EACJ,KAAK,GAAG,GAAG,EACX,WAAW,GAAG,KAAK,EACnB,IAAI,EACJ,KAAK,EACL,YAAY,GAAG,GAAG,EAClB,MAAM,EACN,KAAK,GAAG,kBAAkB,EAC1B,MAAM,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CACtB,KAAC,UAAU,IACT,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,SAAS,EAAE,GACxC,CACH,EACD,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sourceRoot":"","sources":["../../src/components/Sidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserButton.js","sourceRoot":"","sources":["../../src/components/UserButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,MAAM,EACN,MAAM,EAEN,QAAQ,EAER,KAAK,GACN,MAAM,MAAM,CAAC;AACd,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,SAAS,EAAE,wDAAwD;AACnE,YAAY,EAGZ,OAAO,GACR,MAAM,QAAQ,CAAC;AAiChB;;;;;;;;GAQG;AACH,SAAS,UAAU,CAAC,KAAsB;IACxC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAI,IAAoB,CAAC,QAAQ,CAAC;IAChD,MAAM,EACJ,OAAO,EACP,MAAM,GAAG,SAAS,EAClB,aAAa,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS;QACrC,CAAC,CAAC,GAAG,EAAE;YACH,MAAM,OAAO,GACX,IAAI,CAAC,WAAW,KAAK,SAAS;gBAC5B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CACtC,OAAkB,EAClB,QAAQ,CAAC,IAAI,CACd,CAAC;QACJ,CAAC;QACH,CAAC,CAAC,SAAS,EACb,QAAQ,GAAG,GAAG,EAAE;QACd,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;IACtB,CAAC,EACD,aAAa,EACb,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;IACV,OAAO,CACL,KAAC,QAAQ,IACP,OAAO,EAAE,CAAC,OAAO,CAAC,EAClB,SAAS,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,KACvD,aAAa,EACjB,IAAI,EAAE;YACJ,KAAK,EAAE;gBACL,aAAa;oBACX,CAAC,CAAC;wBACE,GAAG,EAAE,SAAS;wBACd,KAAK,EAAE,6CAAO,EAAE,0BAA0B;wBAC1C,IAAI,EAAE,KAAC,YAAY,KAAG;wBACtB,KAAK,EAAE,EAAE,EAAE,4BAA4B;wBACvC,OAAO,EAAE,aAAa;qBACvB;oBACH,CAAC,CAAC,IAAI;gBACR;oBACE,GAAG,EAAE,QAAQ;oBACb,IAAI,EAAE,KAAC,cAAc,KAAG;oBACxB,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"UserButton.js","sourceRoot":"","sources":["../../src/components/UserButton.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsingroc/tsingroc-components",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"author": "",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"description": "",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"jwt-decode": "^4.0.0",
|
|
39
39
|
"react-icons": "^5.5.0",
|
|
40
40
|
"rollup-plugin-worker-factory": "^0.5.7",
|
|
41
|
-
"weatherlayers-gl": "^2025.
|
|
41
|
+
"weatherlayers-gl": "^2025.5.1"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@ant-design/icons": "^6.0.0",
|
|
@@ -53,29 +53,29 @@
|
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@ant-design/icons": "^6.0.0",
|
|
55
55
|
"@eslint/js": "^9.21.0",
|
|
56
|
-
"@rsbuild/core": "^1.
|
|
57
|
-
"@rsbuild/plugin-react": "^1.3.
|
|
56
|
+
"@rsbuild/core": "^1.3.22",
|
|
57
|
+
"@rsbuild/plugin-react": "^1.3.1",
|
|
58
58
|
"@rspress/plugin-preview": "2.0.0-beta.2",
|
|
59
|
-
"@types/node": "^22.
|
|
59
|
+
"@types/node": "^22.15.29",
|
|
60
60
|
"@types/react": "^18.3.23",
|
|
61
61
|
"@types/react-dom": "^18.3.7",
|
|
62
|
-
"antd": "^5.
|
|
62
|
+
"antd": "^5.25.4",
|
|
63
63
|
"antd-style": "^3.7.1",
|
|
64
64
|
"echarts": "^5.6.0",
|
|
65
65
|
"echarts-for-react": "^3.0.2",
|
|
66
66
|
"echarts-gl": "^2.0.9",
|
|
67
|
-
"eslint": "^9.
|
|
67
|
+
"eslint": "^9.28.0",
|
|
68
68
|
"eslint-plugin-react-hooks": "^5.2.0",
|
|
69
|
-
"globals": "^16.
|
|
70
|
-
"prettier": "^3.
|
|
69
|
+
"globals": "^16.2.0",
|
|
70
|
+
"prettier": "^3.5.3",
|
|
71
71
|
"react": "^18.3.1",
|
|
72
72
|
"react-dom": "^18.3.1",
|
|
73
73
|
"react-markdown": "^10.1.0",
|
|
74
74
|
"remark-gfm": "^4.0.1",
|
|
75
75
|
"rspress": "2.0.0-beta.2",
|
|
76
|
-
"typedoc": "^0.28.
|
|
76
|
+
"typedoc": "^0.28.5",
|
|
77
77
|
"typescript": "^5.8.3",
|
|
78
|
-
"typescript-eslint": "^8.
|
|
78
|
+
"typescript-eslint": "^8.33.0"
|
|
79
79
|
},
|
|
80
80
|
"prettier": {
|
|
81
81
|
"trailingComma": "all"
|
|
@@ -104,6 +104,70 @@ export interface SidebarProps extends MenuProps {
|
|
|
104
104
|
style?: CSSProperties;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
const useStyles = createStyles(
|
|
108
|
+
({ token, css, cx, prefixCls }, collapsed: boolean) => {
|
|
109
|
+
const sidebarHeader = css`
|
|
110
|
+
margin-top: ${token.marginXXS}px;
|
|
111
|
+
|
|
112
|
+
> img {
|
|
113
|
+
width: 40%;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
> h1 {
|
|
117
|
+
margin: ${collapsed ? 0 : token.marginXXS}px 0 0 0;
|
|
118
|
+
font-size: ${collapsed ? 0 : token.fontSize}px;
|
|
119
|
+
font-weight: normal;
|
|
120
|
+
line-height: 1;
|
|
121
|
+
transition:
|
|
122
|
+
margin-top ${token.motionDurationMid},
|
|
123
|
+
font-size ${token.motionDurationMid};
|
|
124
|
+
}
|
|
125
|
+
`;
|
|
126
|
+
const sidebarMenu = css`
|
|
127
|
+
flex-basis: 100%;
|
|
128
|
+
overflow-y: auto;
|
|
129
|
+
`;
|
|
130
|
+
const sidebarBtn = css`
|
|
131
|
+
position: absolute;
|
|
132
|
+
top: 75%;
|
|
133
|
+
right: 0;
|
|
134
|
+
transform: translate(50%, -50%);
|
|
135
|
+
|
|
136
|
+
font-size: ${token.sizeSM}px;
|
|
137
|
+
|
|
138
|
+
transition: opacity ${token.motionDurationMid};
|
|
139
|
+
opacity: 0%;
|
|
140
|
+
`;
|
|
141
|
+
const sidebar = css`
|
|
142
|
+
position: relative;
|
|
143
|
+
box-shadow: rgba(0, 0, 0, 0.15) 0 0 8px;
|
|
144
|
+
|
|
145
|
+
> .${prefixCls}-layout-sider-children {
|
|
146
|
+
display: flex;
|
|
147
|
+
flex-direction: column;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* 为了提高权重 */
|
|
151
|
+
& .${cx(sidebarBtn)} {
|
|
152
|
+
width: ${token.controlHeightXS}px;
|
|
153
|
+
}
|
|
154
|
+
& .${cx(sidebarMenu)}.${cx(sidebarMenu)} {
|
|
155
|
+
border-inline-end: none;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
&:hover .${cx(sidebarBtn)} {
|
|
159
|
+
opacity: 100%;
|
|
160
|
+
}
|
|
161
|
+
`;
|
|
162
|
+
return {
|
|
163
|
+
sidebar,
|
|
164
|
+
sidebarHeader,
|
|
165
|
+
sidebarMenu,
|
|
166
|
+
sidebarBtn,
|
|
167
|
+
};
|
|
168
|
+
},
|
|
169
|
+
);
|
|
170
|
+
|
|
107
171
|
/**
|
|
108
172
|
* 出自 TMS 系统的侧边栏组件。该组件需要放置在 [Ant Design 的 `Layout` 组件][1]内部才能正常工作。
|
|
109
173
|
* 如果没有指定 {@linkcode SidebarProps.footer | footer} 属性,
|
|
@@ -138,11 +202,6 @@ function Sidebar(props: SidebarProps) {
|
|
|
138
202
|
} = props;
|
|
139
203
|
|
|
140
204
|
const [collapsed, setCollapsed] = useState(false);
|
|
141
|
-
// 默认展开到 selectedKeys
|
|
142
|
-
const [openKeys, setOpenKeys] = useState<string[]>(
|
|
143
|
-
() =>
|
|
144
|
-
rest.selectedKeys?.flatMap((key) => findKeyPath(items, key) ?? []) ?? [],
|
|
145
|
-
);
|
|
146
205
|
const { cx, styles, theme: token } = useStyles(collapsed);
|
|
147
206
|
|
|
148
207
|
return (
|
|
@@ -173,8 +232,6 @@ function Sidebar(props: SidebarProps) {
|
|
|
173
232
|
mode="inline"
|
|
174
233
|
items={items}
|
|
175
234
|
inlineCollapsed={collapsible ? collapsed : false}
|
|
176
|
-
openKeys={openKeys}
|
|
177
|
-
onOpenChange={(openKeys) => setOpenKeys(openKeys)}
|
|
178
235
|
className={cx(styles.sidebarMenu)}
|
|
179
236
|
{...rest}
|
|
180
237
|
/>
|
|
@@ -191,85 +248,3 @@ function Sidebar(props: SidebarProps) {
|
|
|
191
248
|
}
|
|
192
249
|
|
|
193
250
|
export default Sidebar;
|
|
194
|
-
|
|
195
|
-
const useStyles = createStyles(
|
|
196
|
-
({ token, css, cx, prefixCls }, collapsed: boolean) => {
|
|
197
|
-
const sidebarHeader = css`
|
|
198
|
-
margin-top: ${token.marginXXS}px;
|
|
199
|
-
|
|
200
|
-
> img {
|
|
201
|
-
width: 40%;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
> h1 {
|
|
205
|
-
margin: ${collapsed ? 0 : token.marginXXS}px 0 0 0;
|
|
206
|
-
font-size: ${collapsed ? 0 : token.fontSize}px;
|
|
207
|
-
font-weight: normal;
|
|
208
|
-
line-height: 1;
|
|
209
|
-
transition:
|
|
210
|
-
margin-top ${token.motionDurationMid},
|
|
211
|
-
font-size ${token.motionDurationMid};
|
|
212
|
-
}
|
|
213
|
-
`;
|
|
214
|
-
const sidebarMenu = css`
|
|
215
|
-
flex-basis: 100%;
|
|
216
|
-
overflow-y: auto;
|
|
217
|
-
`;
|
|
218
|
-
const sidebarBtn = css`
|
|
219
|
-
position: absolute;
|
|
220
|
-
top: 75%;
|
|
221
|
-
right: 0;
|
|
222
|
-
transform: translate(50%, -50%);
|
|
223
|
-
|
|
224
|
-
font-size: ${token.sizeSM}px;
|
|
225
|
-
|
|
226
|
-
transition: opacity ${token.motionDurationMid};
|
|
227
|
-
opacity: 0%;
|
|
228
|
-
`;
|
|
229
|
-
const sidebar = css`
|
|
230
|
-
position: relative;
|
|
231
|
-
box-shadow: rgba(0, 0, 0, 0.15) 0 0 8px;
|
|
232
|
-
|
|
233
|
-
> .${prefixCls}-layout-sider-children {
|
|
234
|
-
display: flex;
|
|
235
|
-
flex-direction: column;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/* 为了提高权重 */
|
|
239
|
-
& .${cx(sidebarBtn)} {
|
|
240
|
-
width: ${token.controlHeightXS}px;
|
|
241
|
-
}
|
|
242
|
-
& .${cx(sidebarMenu)}.${cx(sidebarMenu)} {
|
|
243
|
-
border-inline-end: none;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
&:hover .${cx(sidebarBtn)} {
|
|
247
|
-
opacity: 100%;
|
|
248
|
-
}
|
|
249
|
-
`;
|
|
250
|
-
return {
|
|
251
|
-
sidebar,
|
|
252
|
-
sidebarHeader,
|
|
253
|
-
sidebarMenu,
|
|
254
|
-
sidebarBtn,
|
|
255
|
-
};
|
|
256
|
-
},
|
|
257
|
-
);
|
|
258
|
-
|
|
259
|
-
function findKeyPath(items: MenuItem[], key: string): string[] | null {
|
|
260
|
-
for (const item of items) {
|
|
261
|
-
if (!item) {
|
|
262
|
-
continue;
|
|
263
|
-
}
|
|
264
|
-
if (item.key === key) {
|
|
265
|
-
return [];
|
|
266
|
-
}
|
|
267
|
-
if ("children" in item) {
|
|
268
|
-
const childrenResult = findKeyPath(item.children ?? [], key);
|
|
269
|
-
if (childrenResult) {
|
|
270
|
-
return [item.key as string, ...childrenResult];
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
return null;
|
|
275
|
-
}
|