@oceanbase/ui 1.0.0-alpha.10 → 1.0.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/dist/ui.min.js +1 -1
  2. package/es/Action/Group.js +1 -0
  3. package/es/Action/Item.js +1 -0
  4. package/es/Action/index.js +1 -0
  5. package/es/BackgroundTaskManager/RefreshMan.js +1 -0
  6. package/es/BackgroundTaskManager/index.js +1 -0
  7. package/es/BasicLayout/Header.js +1 -0
  8. package/es/BasicLayout/index.js +1 -0
  9. package/es/BatchOperationBar/index.js +1 -0
  10. package/es/Boundary/Components/Code.js +1 -0
  11. package/es/Boundary/Components/Exception.js +1 -0
  12. package/es/Boundary/Components/Function.js +1 -0
  13. package/es/Boundary/index.js +1 -0
  14. package/es/ContentWithIcon/index.js +1 -0
  15. package/es/ContentWithQuestion/index.js +1 -0
  16. package/es/DateRanger/PickerPanel.js +1 -0
  17. package/es/DateRanger/Ranger.js +1 -0
  18. package/es/DateRanger/index.js +1 -0
  19. package/es/Dialog/Anchor.js +1 -0
  20. package/es/Dialog/EventProxy.js +1 -0
  21. package/es/Dialog/index.js +1 -0
  22. package/es/DocDialog/index.js +1 -0
  23. package/es/FooterToolbar/index.js +1 -0
  24. package/es/FullscreenBox/index.js +1 -0
  25. package/es/Highlight/DiffView/DiffCells.js +1 -0
  26. package/es/Highlight/DiffView/index.js +1 -0
  27. package/es/Highlight/HighlightCell.js +1 -0
  28. package/es/Highlight/JsonView.js +1 -0
  29. package/es/Highlight/index.js +1 -0
  30. package/es/Highlight/useKeyDownCopyEvent.js +1 -0
  31. package/es/IconFont/index.js +1 -0
  32. package/es/LightFilter/index.js +1 -0
  33. package/es/LocaleDropdown/index.js +1 -0
  34. package/es/Login/ActivateForm.js +1 -0
  35. package/es/Login/LoginForm.js +1 -0
  36. package/es/Login/RegisterForm.js +1 -0
  37. package/es/Login/index.js +1 -0
  38. package/es/Lottie/index.js +1 -0
  39. package/es/NavMenu/index.js +1 -0
  40. package/es/PageContainer/ItemRender.js +1 -0
  41. package/es/PageContainer/index.js +1 -0
  42. package/es/PageLoading/index.js +1 -0
  43. package/es/Password/Content.js +1 -0
  44. package/es/Password/index.js +1 -0
  45. package/es/ProCard/index.js +1 -0
  46. package/es/ProTable/index.js +2 -3
  47. package/es/Ranger/QuickPicker.js +1 -0
  48. package/es/Ranger/Ranger.js +1 -0
  49. package/es/Ranger/index.js +1 -0
  50. package/es/SideTip/Dragger.js +1 -0
  51. package/es/SideTip/IconLoading.js +1 -0
  52. package/es/SideTip/index.js +1 -0
  53. package/es/TagSelect/Group.js +1 -0
  54. package/es/TagSelect/Item.js +1 -0
  55. package/es/TagSelect/index.js +1 -0
  56. package/es/TreeSearch/index.js +1 -0
  57. package/es/Welcome/index.js +1 -0
  58. package/es/Welcome/step.js +1 -0
  59. package/es/_util/index.js +1 -0
  60. package/es/constant/index.js +1 -0
  61. package/es/index.js +1 -0
  62. package/es/locale/LocaleWrapper.js +1 -0
  63. package/es/locale/index.js +1 -0
  64. package/lib/Action/Group.js +189 -162
  65. package/lib/Action/Item.js +47 -65
  66. package/lib/Action/index.js +13 -35
  67. package/lib/Action/style/index.js +25 -43
  68. package/lib/BackgroundTaskManager/RefreshMan.js +34 -50
  69. package/lib/BackgroundTaskManager/constants.js +10 -32
  70. package/lib/BackgroundTaskManager/index.js +118 -126
  71. package/lib/BasicLayout/Header.js +242 -200
  72. package/lib/BasicLayout/index.js +265 -307
  73. package/lib/BasicLayout/locale/en-US.js +16 -34
  74. package/lib/BasicLayout/locale/ja-JP.js +16 -34
  75. package/lib/BasicLayout/locale/zh-CN.js +16 -34
  76. package/lib/BasicLayout/locale/zh-TW.js +16 -34
  77. package/lib/BasicLayout/style/Header.js +41 -60
  78. package/lib/BasicLayout/style/index.js +176 -197
  79. package/lib/BatchOperationBar/index.js +109 -151
  80. package/lib/BatchOperationBar/locale/en-US.js +10 -28
  81. package/lib/BatchOperationBar/locale/ja-JP.js +10 -28
  82. package/lib/BatchOperationBar/locale/zh-CN.js +10 -28
  83. package/lib/BatchOperationBar/locale/zh-TW.js +10 -28
  84. package/lib/BatchOperationBar/style/index.js +30 -46
  85. package/lib/Boundary/Components/Code.js +57 -75
  86. package/lib/Boundary/Components/Exception.js +103 -123
  87. package/lib/Boundary/Components/Function.js +47 -62
  88. package/lib/Boundary/Components/index.js +36 -25
  89. package/lib/Boundary/IBoundary.js +4 -16
  90. package/lib/Boundary/constant.js +16 -38
  91. package/lib/Boundary/index.js +11 -24
  92. package/lib/Boundary/locale/en-US.js +14 -32
  93. package/lib/Boundary/locale/ja-JP.js +14 -32
  94. package/lib/Boundary/locale/zh-CN.js +14 -32
  95. package/lib/Boundary/locale/zh-TW.js +14 -32
  96. package/lib/Boundary/style/index.js +28 -47
  97. package/lib/Boundary/utils.js +9 -31
  98. package/lib/ContentWithIcon/index.js +101 -114
  99. package/lib/ContentWithIcon/style/index.js +17 -36
  100. package/lib/ContentWithQuestion/index.js +40 -52
  101. package/lib/ContentWithQuestion/style/index.js +16 -35
  102. package/lib/DateRanger/PickerPanel.js +343 -325
  103. package/lib/DateRanger/Ranger.js +430 -515
  104. package/lib/DateRanger/constant/index.js +188 -376
  105. package/lib/DateRanger/index.js +45 -64
  106. package/lib/DateRanger/locale/en-US.js +20 -47
  107. package/lib/DateRanger/locale/ja-JP.js +20 -47
  108. package/lib/DateRanger/locale/zh-CN.js +20 -47
  109. package/lib/DateRanger/locale/zh-TW.js +20 -47
  110. package/lib/DateRanger/style/index.js +41 -62
  111. package/lib/DateRanger/typing.js +4 -16
  112. package/lib/Dialog/Anchor.js +70 -95
  113. package/lib/Dialog/Dock.js +14 -36
  114. package/lib/Dialog/EventProxy.js +21 -39
  115. package/lib/Dialog/index.js +327 -370
  116. package/lib/Dialog/locale/en-US.js +8 -26
  117. package/lib/Dialog/locale/ja-JP.js +8 -26
  118. package/lib/Dialog/locale/zh-CN.js +8 -26
  119. package/lib/Dialog/locale/zh-TW.js +8 -26
  120. package/lib/Dialog/style/index.js +58 -76
  121. package/lib/DocDialog/index.js +51 -77
  122. package/lib/DocDialog/locale/en-US.js +5 -23
  123. package/lib/DocDialog/locale/ja-JP.js +5 -23
  124. package/lib/DocDialog/locale/zh-CN.js +5 -23
  125. package/lib/DocDialog/locale/zh-TW.js +5 -23
  126. package/lib/FooterToolbar/index.js +27 -45
  127. package/lib/FooterToolbar/style/index.js +23 -38
  128. package/lib/FullscreenBox/index.js +151 -138
  129. package/lib/FullscreenBox/locale/en-US.js +5 -23
  130. package/lib/FullscreenBox/locale/ja-JP.js +5 -23
  131. package/lib/FullscreenBox/locale/zh-CN.js +5 -23
  132. package/lib/FullscreenBox/locale/zh-TW.js +5 -23
  133. package/lib/FullscreenBox/style/index.js +23 -41
  134. package/lib/Highlight/DiffView/DiffCells.js +34 -54
  135. package/lib/Highlight/DiffView/index.js +165 -163
  136. package/lib/Highlight/HighlightCell.js +28 -47
  137. package/lib/Highlight/JsonView.js +45 -74
  138. package/lib/Highlight/index.js +200 -214
  139. package/lib/Highlight/languages/bash.js +7 -34
  140. package/lib/Highlight/languages/cpp.js +7 -34
  141. package/lib/Highlight/languages/css.js +7 -34
  142. package/lib/Highlight/languages/dockerfile.js +7 -34
  143. package/lib/Highlight/languages/go.js +7 -34
  144. package/lib/Highlight/languages/groovy.js +7 -34
  145. package/lib/Highlight/languages/http.js +7 -34
  146. package/lib/Highlight/languages/java.js +7 -34
  147. package/lib/Highlight/languages/javascript.js +7 -34
  148. package/lib/Highlight/languages/json.js +7 -34
  149. package/lib/Highlight/languages/markdown.js +7 -34
  150. package/lib/Highlight/languages/nginx.js +7 -34
  151. package/lib/Highlight/languages/python.js +7 -34
  152. package/lib/Highlight/languages/ruby.js +7 -34
  153. package/lib/Highlight/languages/solidity.js +7 -34
  154. package/lib/Highlight/languages/sql.js +7 -34
  155. package/lib/Highlight/languages/typescript.js +7 -34
  156. package/lib/Highlight/languages/xml.js +7 -34
  157. package/lib/Highlight/languages/yaml.js +7 -34
  158. package/lib/Highlight/locale/en-US.js +7 -25
  159. package/lib/Highlight/locale/ja-JP.js +7 -25
  160. package/lib/Highlight/locale/zh-CN.js +7 -25
  161. package/lib/Highlight/locale/zh-TW.js +7 -25
  162. package/lib/Highlight/style/index.js +128 -144
  163. package/lib/Highlight/useKeyDownCopyEvent.js +40 -64
  164. package/lib/IconFont/index.js +23 -28
  165. package/lib/LightFilter/index.js +29 -43
  166. package/lib/LightFilter/style/index.js +15 -33
  167. package/lib/LocaleDropdown/index.js +43 -53
  168. package/lib/Login/ActivateForm.js +93 -119
  169. package/lib/Login/LoginForm.js +149 -184
  170. package/lib/Login/RegisterForm.js +122 -163
  171. package/lib/Login/index.js +157 -163
  172. package/lib/Login/locale/en-US.js +31 -49
  173. package/lib/Login/locale/ja-JP.js +31 -49
  174. package/lib/Login/locale/zh-CN.js +31 -49
  175. package/lib/Login/locale/zh-TW.js +30 -48
  176. package/lib/Login/style/index.js +77 -98
  177. package/lib/Lottie/index.js +7 -24
  178. package/lib/NavMenu/index.js +105 -108
  179. package/lib/NavMenu/style/index.js +31 -49
  180. package/lib/PageContainer/ItemRender.js +28 -46
  181. package/lib/PageContainer/index.js +125 -140
  182. package/lib/PageContainer/locale/en-US.js +8 -26
  183. package/lib/PageContainer/locale/ja-JP.js +8 -26
  184. package/lib/PageContainer/locale/zh-CN.js +8 -26
  185. package/lib/PageContainer/locale/zh-TW.js +8 -26
  186. package/lib/PageContainer/style/index.js +19 -40
  187. package/lib/PageLoading/index.js +33 -54
  188. package/lib/Password/Content.js +92 -80
  189. package/lib/Password/index.js +125 -160
  190. package/lib/Password/locale/en-US.js +14 -32
  191. package/lib/Password/locale/ja-JP.js +16 -34
  192. package/lib/Password/locale/zh-CN.js +15 -33
  193. package/lib/Password/locale/zh-TW.js +14 -32
  194. package/lib/ProCard/index.js +77 -98
  195. package/lib/ProCard/style/index.js +21 -39
  196. package/lib/ProTable/index.js +102 -123
  197. package/lib/ProTable/style/index.js +21 -38
  198. package/lib/Ranger/QuickPicker.js +92 -94
  199. package/lib/Ranger/Ranger.js +98 -133
  200. package/lib/Ranger/constant/index.js +115 -266
  201. package/lib/Ranger/index.js +61 -69
  202. package/lib/Ranger/locale/en-US.js +31 -49
  203. package/lib/Ranger/locale/ja-JP.js +31 -49
  204. package/lib/Ranger/locale/zh-CN.js +7 -25
  205. package/lib/Ranger/locale/zh-TW.js +7 -25
  206. package/lib/Ranger/style/index.js +21 -39
  207. package/lib/Ranger/typing.js +4 -16
  208. package/lib/SideTip/Dragger.js +259 -219
  209. package/lib/SideTip/IconLoading.js +43 -74
  210. package/lib/SideTip/index.js +124 -126
  211. package/lib/SideTip/locale/en-US.js +5 -23
  212. package/lib/SideTip/locale/ja-JP.js +5 -23
  213. package/lib/SideTip/locale/zh-CN.js +5 -23
  214. package/lib/SideTip/locale/zh-TW.js +5 -23
  215. package/lib/SideTip/style/index.js +76 -92
  216. package/lib/SideTip/utils.js +40 -61
  217. package/lib/TagSelect/Group.js +64 -83
  218. package/lib/TagSelect/Item.js +68 -91
  219. package/lib/TagSelect/TagSelectContext.js +7 -25
  220. package/lib/TagSelect/index.js +12 -35
  221. package/lib/TagSelect/style/index.js +41 -64
  222. package/lib/TreeSearch/index.js +133 -127
  223. package/lib/TreeSearch/util.js +52 -70
  224. package/lib/Welcome/index.js +142 -117
  225. package/lib/Welcome/locale/en-US.js +8 -26
  226. package/lib/Welcome/locale/ja-JP.js +8 -26
  227. package/lib/Welcome/locale/zh-CN.js +8 -26
  228. package/lib/Welcome/locale/zh-TW.js +8 -26
  229. package/lib/Welcome/step/style/index.js +24 -40
  230. package/lib/Welcome/step.js +63 -59
  231. package/lib/Welcome/style/index.js +58 -70
  232. package/lib/_util/genComponentStyleHook.js +15 -43
  233. package/lib/_util/index.js +38 -43
  234. package/lib/_util/useNavigate.js +11 -26
  235. package/lib/constant/index.js +23 -49
  236. package/lib/index.js +283 -129
  237. package/lib/interface.js +4 -16
  238. package/lib/locale/LocaleWrapper.js +50 -60
  239. package/lib/locale/en-US.js +37 -64
  240. package/lib/locale/index.js +5 -16
  241. package/lib/locale/ja-JP.js +37 -64
  242. package/lib/locale/zh-CN.js +36 -63
  243. package/lib/locale/zh-TW.js +32 -59
  244. package/package.json +3 -3
@@ -1,58 +1,41 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";
28
2
 
29
- // src/BasicLayout/index.tsx
30
- var BasicLayout_exports = {};
31
- __export(BasicLayout_exports, {
32
- default: () => BasicLayout_default
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
33
5
  });
34
- module.exports = __toCommonJS(BasicLayout_exports);
35
- var import_icons = require("@oceanbase/icons");
36
- var import_pro_components = require("@ant-design/pro-components");
37
- var import_design = require("@oceanbase/design");
38
- var import_util = require("@oceanbase/util");
39
- var import_design2 = require("@oceanbase/design");
40
- var import_classnames = __toESM(require("classnames"));
41
- var import_lodash = require("lodash");
42
- var import_path_to_regexp = require("path-to-regexp");
43
- var import_react = __toESM(require("react"));
44
- var import_LocaleWrapper = __toESM(require("../locale/LocaleWrapper"));
45
- var import_util2 = require("../_util");
46
- var import_useNavigate = __toESM(require("../_util/useNavigate"));
47
- var import_Header = __toESM(require("./Header"));
48
- var import_zh_CN = __toESM(require("./locale/zh-CN"));
49
- var import_style = __toESM(require("./style"));
50
- var import_jsx_runtime = require("react/jsx-runtime");
51
- var { Content, Sider } = import_design2.Layout;
52
- var { SubMenu, Item } = import_design2.Menu;
53
- var BasicLayout = ({
6
+ exports.default = void 0;
7
+ var _icons = require("@oceanbase/icons");
8
+ var _proComponents = require("@ant-design/pro-components");
9
+ var _design = require("@oceanbase/design");
10
+ var _util = require("@oceanbase/util");
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ var _lodash = require("lodash");
13
+ var _pathToRegexp = require("path-to-regexp");
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _LocaleWrapper = _interopRequireDefault(require("../locale/LocaleWrapper"));
16
+ var _util2 = require("../_util");
17
+ var _useNavigate = _interopRequireDefault(require("../_util/useNavigate"));
18
+ var _Header = _interopRequireDefault(require("./Header"));
19
+ var _zhCN = _interopRequireDefault(require("./locale/zh-CN"));
20
+ var _style = _interopRequireDefault(require("./style"));
21
+ var _jsxRuntime = require("react/jsx-runtime");
22
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+ "use client";
26
+ const {
27
+ Content,
28
+ Sider
29
+ } = _design.Layout;
30
+ const {
31
+ SubMenu,
32
+ Item
33
+ } = _design.Menu;
34
+ const BasicLayout = ({
54
35
  children,
55
- location: { pathname } = {},
36
+ location: {
37
+ pathname
38
+ } = {},
56
39
  banner,
57
40
  iconUrl,
58
41
  logoUrl,
@@ -69,22 +52,33 @@ var BasicLayout = ({
69
52
  prefixCls: customizePrefixCls,
70
53
  ...restProps
71
54
  }) => {
72
- const { token } = import_design.theme.useToken();
73
- const { getPrefixCls } = (0, import_react.useContext)(import_design2.ConfigProvider.ConfigContext);
74
- const prefixCls = getPrefixCls("pro-basic-layout", customizePrefixCls);
75
- const { wrapSSR } = (0, import_style.default)(prefixCls);
76
- const navigate = (0, import_useNavigate.default)();
77
- const [collapsed, setCollapsed] = (0, import_react.useState)(defaultCollapsed);
78
- const [selectedKeys, setSelectedKeys] = (0, import_react.useState)(defaultSelectedKeys);
79
- const [openKeys, setOpenKeys] = (0, import_react.useState)(defaultOpenKeys);
80
- (0, import_react.useEffect)(() => {
81
- const selectedMenuKeys = (0, import_util2.urlToList)(pathname).map((itemPath) => getMenuMatches(getFlatMenuKeys(menus), itemPath).pop()) || [];
82
- const newSelectedKeys = selectedMenuKeys.filter((item) => item);
55
+ const {
56
+ token
57
+ } = _design.theme.useToken();
58
+ const {
59
+ getPrefixCls
60
+ } = (0, _react.useContext)(_design.ConfigProvider.ConfigContext);
61
+ const prefixCls = getPrefixCls('pro-basic-layout', customizePrefixCls);
62
+ const {
63
+ wrapSSR
64
+ } = (0, _style.default)(prefixCls);
65
+ const navigate = (0, _useNavigate.default)();
66
+ // 侧边栏导航是否收起
67
+ const [collapsed, setCollapsed] = (0, _react.useState)(defaultCollapsed);
68
+ const [selectedKeys, setSelectedKeys] = (0, _react.useState)(defaultSelectedKeys);
69
+ const [openKeys, setOpenKeys] = (0, _react.useState)(defaultOpenKeys);
70
+ (0, _react.useEffect)(() => {
71
+ // 获取当前选中的菜单
72
+ const selectedMenuKeys = (0, _util2.urlToList)(pathname).map(itemPath => getMenuMatches(getFlatMenuKeys(menus), itemPath).pop()) || [];
73
+ const newSelectedKeys = selectedMenuKeys.filter(item => item);
83
74
  if (newSelectedKeys.length > 0) {
75
+ // use last selected key to avoid multiple selected menus
84
76
  const selectedKey = newSelectedKeys[newSelectedKeys.length - 1];
85
77
  setSelectedKeys([selectedKey]);
78
+ // get parent keys of current selectedKey
86
79
  const selectedParentKeys = getParentKeys(menus, selectedKey);
87
- setOpenKeys((0, import_lodash.uniq)([...openKeys, ...selectedParentKeys]));
80
+ // append parent keys as open keys
81
+ setOpenKeys((0, _lodash.uniq)([...openKeys, ...selectedParentKeys]));
88
82
  } else {
89
83
  setSelectedKeys([]);
90
84
  }
@@ -92,23 +86,25 @@ var BasicLayout = ({
92
86
  const menuProps = {
93
87
  selectedKeys,
94
88
  openKeys,
95
- onSelect: ({ selectedKeys: newSelectedKeys }) => {
89
+ onSelect: ({
90
+ selectedKeys: newSelectedKeys
91
+ }) => {
96
92
  setSelectedKeys(newSelectedKeys);
97
93
  },
98
- onOpenChange: (newOpenKeys) => {
94
+ onOpenChange: newOpenKeys => {
99
95
  setOpenKeys(newOpenKeys);
100
96
  }
101
97
  };
102
98
  const getMenuMatches = (flatMenuKeys, path) => {
103
- return flatMenuKeys.filter((item) => {
104
- return (0, import_path_to_regexp.pathToRegexp)(item).test(path);
99
+ return flatMenuKeys.filter(item => {
100
+ return (0, _pathToRegexp.pathToRegexp)(item).test(path);
105
101
  });
106
102
  };
107
103
  const getParentKeys = (menuList, selectedKey) => {
108
104
  let keys = [];
109
- (menuList || []).forEach((item) => {
105
+ (menuList || []).forEach(item => {
110
106
  const itemChildren = item.children || [];
111
- const childrenKeys = itemChildren.map((child) => child.link);
107
+ const childrenKeys = itemChildren.map(child => child.link);
112
108
  if (childrenKeys.includes(selectedKey)) {
113
109
  keys = [...keys, item.link];
114
110
  } else {
@@ -117,144 +113,130 @@ var BasicLayout = ({
117
113
  });
118
114
  return keys;
119
115
  };
120
- const getFlatMenuKeys = (menuList) => {
116
+ const getFlatMenuKeys = menuList => {
121
117
  let keys = [];
122
- (menuList || []).forEach((item) => {
118
+ (menuList || []).forEach(item => {
123
119
  if (item.children) {
124
120
  keys = keys.concat(getFlatMenuKeys(item.children));
125
121
  }
126
- keys.push(item.link || "");
122
+ keys.push(item.link || '');
127
123
  });
128
124
  return keys;
129
125
  };
126
+
127
+ // 渲染菜单中的图标
130
128
  const renderIcon = (item, isSubSider = false) => {
131
129
  const realSelectedKeys = isSubSider ? subSideMenuProps.selectedKeys || subSideMenuProps.defaultSelectedKeys : selectedKeys;
132
- return realSelectedKeys.includes(item.link) || (0, import_lodash.some)(item.children || [], (child) => realSelectedKeys.includes(child.link)) ? item.selectedIcon || item.icon : item.icon;
130
+ // 渲染 selectedIcon 的条件: 1. 菜单项被选中 2. 子菜单被选中
131
+ return realSelectedKeys.includes(item.link) || (0, _lodash.some)(item.children || [], child => realSelectedKeys.includes(child.link)) ? item.selectedIcon || item.icon : item.icon;
133
132
  };
134
- const renderMenu = (data) => {
133
+
134
+ // 渲染菜单
135
+ const renderMenu = data => {
135
136
  return data.reduce((pre, item) => {
136
- var _a;
137
- const { accessible = true } = item;
138
- if (item.children && ((0, import_util.isNullValue)(item.accessible) ? (
139
- // 如果子菜单本身没有设置 accessible,但只要其 children 之一可访问,则子菜单仍然展示
140
- (_a = item.children) == null ? void 0 : _a.some(({ accessible: childAccessible = true }) => childAccessible)
141
- ) : item.accessible)) {
142
- pre.push(
143
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
144
- SubMenu,
145
- {
146
- "data-testid": "menu.sub",
147
- title: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
148
- renderIcon(item),
149
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
150
- import_design.Typography.Text,
151
- {
152
- ellipsis: {
153
- tooltip: {
154
- placement: "right"
155
- }
156
- },
157
- style: {
158
- lineHeight: "40px",
159
- maxWidth: 80
160
- },
161
- children: item.title
162
- }
163
- )
164
- ] }),
165
- children: renderMenu(item.children)
166
- },
167
- item.link
168
- )
169
- );
137
+ const {
138
+ accessible = true
139
+ } = item;
140
+ if (item.children && ((0, _util.isNullValue)(item.accessible) ?
141
+ // 如果子菜单本身没有设置 accessible,但只要其 children 之一可访问,则子菜单仍然展示
142
+ item.children?.some(({
143
+ accessible: childAccessible = true
144
+ }) => childAccessible) : item.accessible)) {
145
+ pre.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(SubMenu, {
146
+ "data-testid": "menu.sub",
147
+ title: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
148
+ children: [renderIcon(item), /*#__PURE__*/(0, _jsxRuntime.jsx)(_design.Typography.Text, {
149
+ ellipsis: {
150
+ tooltip: {
151
+ placement: 'right'
152
+ }
153
+ },
154
+ style: {
155
+ lineHeight: '40px',
156
+ maxWidth: 80
157
+ },
158
+ children: item.title
159
+ })]
160
+ }),
161
+ children: renderMenu(item.children)
162
+ }, item.link));
170
163
  } else if (!item.children && accessible) {
171
- pre.push(
172
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
173
- Item,
174
- {
175
- "data-testid": "menu.item",
176
- onClick: () => {
177
- if (pathname !== item.link) {
178
- navigate == null ? void 0 : navigate(item.link);
164
+ pre.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(Item, {
165
+ "data-testid": "menu.item",
166
+ onClick: () => {
167
+ if (pathname !== item.link) {
168
+ navigate?.(item.link);
169
+ }
170
+ },
171
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
172
+ children: [renderIcon(item), /*#__PURE__*/(0, _jsxRuntime.jsx)(_design.Typography.Text, {
173
+ ellipsis: {
174
+ tooltip: {
175
+ placement: 'right'
179
176
  }
180
177
  },
181
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
182
- renderIcon(item),
183
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
184
- import_design.Typography.Text,
185
- {
186
- ellipsis: {
187
- tooltip: {
188
- placement: "right"
189
- }
190
- },
191
- style: {
192
- lineHeight: "40px",
193
- maxWidth: 116
194
- },
195
- children: item.title
196
- }
197
- )
198
- ] })
199
- },
200
- item.link
201
- )
202
- );
178
+ style: {
179
+ lineHeight: '40px',
180
+ maxWidth: 116
181
+ },
182
+ children: item.title
183
+ })]
184
+ })
185
+ }, item.link));
203
186
  }
204
187
  if (item.divider && accessible) {
205
- pre.push(
206
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
207
- import_design2.Divider,
208
- {
209
- style: {
210
- // 渐变的分隔线
211
- borderImage: `linear-gradient(90deg, ${token.colorTextQuaternary} 0%, ${(0, import_pro_components.setAlpha)(
212
- token.colorTextQuaternary,
213
- 0
214
- )} 100%) 1`
215
- }
216
- }
217
- )
218
- );
188
+ pre.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(_design.Divider, {
189
+ style: {
190
+ // 渐变的分隔线
191
+ borderImage: `linear-gradient(90deg, ${token.colorTextQuaternary} 0%, ${(0, _proComponents.setAlpha)(token.colorTextQuaternary, 0)} 100%) 1`
192
+ }
193
+ }));
219
194
  }
220
195
  return pre;
221
196
  }, []);
222
197
  };
198
+
199
+ // 渲染收起菜单
223
200
  const renderCollapsedMenu = (data, isSubSider = false) => {
224
201
  return data.reduce((pre, item) => {
225
- var _a;
226
- const { accessible = true } = item;
227
- if (item.children && ((0, import_util.isNullValue)(item.accessible) ? (
228
- // 如果子菜单本身没有设置 accessible,但只要其 children 之一可访问,则子菜单仍然展示
229
- (_a = item.children) == null ? void 0 : _a.some(({ accessible: childAccessible = true }) => childAccessible)
230
- ) : item.accessible)) {
231
- pre.push(
232
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SubMenu, { title: renderIcon(item, isSubSider), children: renderMenu(item.children) }, item.link)
233
- );
202
+ const {
203
+ accessible = true
204
+ } = item;
205
+ if (item.children && ((0, _util.isNullValue)(item.accessible) ?
206
+ // 如果子菜单本身没有设置 accessible,但只要其 children 之一可访问,则子菜单仍然展示
207
+ item.children?.some(({
208
+ accessible: childAccessible = true
209
+ }) => childAccessible) : item.accessible)) {
210
+ pre.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(SubMenu, {
211
+ title: renderIcon(item, isSubSider),
212
+ children: renderMenu(item.children)
213
+ }, item.link));
234
214
  } else if (!item.children && accessible) {
235
- pre.push(
236
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
237
- Item,
238
- {
239
- "data-testid": "menu.item",
240
- onClick: () => {
241
- if (pathname !== item.link) {
242
- navigate == null ? void 0 : navigate(item.link);
243
- }
244
- },
245
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_design2.Tooltip, { placement: "right", title: item.title, getPopupContainer: () => document.body, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: renderIcon(item, isSubSider) }) })
246
- },
247
- item.link
248
- )
249
- );
215
+ pre.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(Item, {
216
+ "data-testid": "menu.item",
217
+ onClick: () => {
218
+ if (pathname !== item.link) {
219
+ navigate?.(item.link);
220
+ }
221
+ },
222
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_design.Tooltip, {
223
+ placement: "right",
224
+ title: item.title,
225
+ getPopupContainer: () => document.body,
226
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
227
+ children: renderIcon(item, isSubSider)
228
+ })
229
+ })
230
+ }, item.link));
250
231
  }
251
232
  if (item.divider && accessible) {
252
- pre.push(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_design2.Divider, {}));
233
+ pre.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(_design.Divider, {}));
253
234
  }
254
235
  return pre;
255
236
  }, []);
256
237
  };
257
238
  let siderWidth = 0;
239
+ // 根据菜单项的配置计算侧边栏的宽度
258
240
  if (subSideMenus && menus) {
259
241
  siderWidth = collapsed ? 52 * 2 : 208;
260
242
  } else if (subSideMenus && !menus) {
@@ -264,136 +246,112 @@ var BasicLayout = ({
264
246
  } else if (!subSideMenus && !menus) {
265
247
  siderWidth = 0;
266
248
  }
267
- return wrapSSR(
268
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
269
- banner && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${prefixCls}-banner-wrapper`, children: banner }),
270
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
271
- import_design2.Layout,
272
- {
273
- className: (0, import_classnames.default)(
274
- prefixCls,
275
- {
276
- [`${prefixCls}-with-banner`]: banner,
277
- [`${prefixCls}-sider-${siderWidth}`]: true
249
+ return wrapSSR( /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
250
+ children: [banner && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
251
+ className: `${prefixCls}-banner-wrapper`,
252
+ children: banner
253
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_design.Layout, {
254
+ className: (0, _classnames.default)(prefixCls, {
255
+ [`${prefixCls}-with-banner`]: banner,
256
+ [`${prefixCls}-sider-${siderWidth}`]: true
257
+ }, className),
258
+ ...restProps,
259
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
260
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Header.default, {
261
+ prefixCls: prefixCls,
262
+ pathname: pathname,
263
+ iconUrl: iconUrl,
264
+ logoUrl: logoUrl,
265
+ simpleLogoUrl: simpleLogoUrl,
266
+ ...topHeader
267
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
268
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_design.Layout, {
269
+ className: `${prefixCls}-content-layout`,
270
+ style: {
271
+ marginTop: 48
278
272
  },
279
- className
280
- ),
281
- ...restProps,
282
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_react.default.Fragment, { children: [
283
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
284
- import_Header.default,
285
- {
286
- prefixCls,
287
- pathname,
288
- iconUrl,
289
- logoUrl,
290
- simpleLogoUrl,
291
- ...topHeader
292
- }
293
- ),
294
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
295
- import_design2.Layout,
296
- {
297
- className: `${prefixCls}-content-layout`,
298
- style: {
299
- marginTop: 48
300
- },
301
- children: [
302
- (subSideMenus || menus) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
303
- Sider,
304
- {
305
- theme: "light",
306
- width: siderWidth,
307
- className: (0, import_classnames.default)(`${prefixCls}-sider`, {
308
- [`${prefixCls}-sider-collapsed`]: collapsed,
309
- [`${prefixCls}-sider-has-sub-sider`]: subSideMenus
310
- }),
311
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `${prefixCls}-sider-wrapper`, children: [
312
- subSideMenus && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${prefixCls}-sub-sider`, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
313
- import_design2.Menu,
314
- {
315
- ...subSideMenuProps,
316
- mode: "vertical",
317
- className: `${prefixCls}-menu-vertical`,
318
- children: renderCollapsedMenu(subSideMenus, true)
319
- }
320
- ) }),
321
- (sideHeader || menus) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
322
- "div",
323
- {
273
+ children: [(subSideMenus || menus) && /*#__PURE__*/(0, _jsxRuntime.jsx)(Sider, {
274
+ theme: "light",
275
+ width: siderWidth,
276
+ className: (0, _classnames.default)(`${prefixCls}-sider`, {
277
+ [`${prefixCls}-sider-collapsed`]: collapsed,
278
+ [`${prefixCls}-sider-has-sub-sider`]: subSideMenus
279
+ }),
280
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
281
+ className: `${prefixCls}-sider-wrapper`,
282
+ children: [subSideMenus && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
283
+ className: `${prefixCls}-sub-sider`,
284
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_design.Menu, {
285
+ ...subSideMenuProps,
286
+ mode: "vertical",
287
+ className: `${prefixCls}-menu-vertical`,
288
+ children: renderCollapsedMenu(subSideMenus, true)
289
+ })
290
+ }), (sideHeader || menus) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
291
+ style: {
292
+ display: 'flex',
293
+ width: '100%'
294
+ },
295
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
296
+ className: `${prefixCls}-sider-content`,
297
+ children: [sideHeader && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
298
+ className: `${prefixCls}-sider-header`,
299
+ children: sideHeader
300
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
301
+ className: `${prefixCls}-menu-wrapper`,
302
+ children: collapsed ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
303
+ className: `${prefixCls}-menu-collapsed`,
304
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_design.Menu, {
305
+ ...menuProps,
306
+ mode: "vertical",
307
+ className: `${prefixCls}-menu-vertical`,
308
+ children: renderCollapsedMenu(menus, false)
309
+ })
310
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_design.Menu, {
311
+ ...menuProps,
312
+ mode: "inline",
313
+ expandIcon: ({
314
+ isOpen
315
+ }) => {
316
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.CaretRightFilled, {
317
+ rotate: isOpen ? 90 : 0,
324
318
  style: {
325
- display: "flex",
326
- width: "100%"
327
- },
328
- children: [
329
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `${prefixCls}-sider-content`, children: [
330
- sideHeader && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${prefixCls}-sider-header`, children: sideHeader }),
331
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${prefixCls}-menu-wrapper`, children: collapsed ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${prefixCls}-menu-collapsed`, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
332
- import_design2.Menu,
333
- {
334
- ...menuProps,
335
- mode: "vertical",
336
- className: `${prefixCls}-menu-vertical`,
337
- children: renderCollapsedMenu(menus, false)
338
- }
339
- ) }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
340
- import_design2.Menu,
341
- {
342
- ...menuProps,
343
- mode: "inline",
344
- expandIcon: ({ isOpen }) => {
345
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
346
- import_icons.CaretRightFilled,
347
- {
348
- rotate: isOpen ? 90 : 0,
349
- style: {
350
- fontSize: 12
351
- }
352
- }
353
- );
354
- },
355
- className: `${prefixCls}-menu`,
356
- children: renderMenu(menus)
357
- }
358
- ) })
359
- ] }),
360
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: `${prefixCls}-sider-border`, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
361
- "div",
362
- {
363
- className: `${prefixCls}-sider-collapse`,
364
- onClick: () => {
365
- setCollapsed(!collapsed);
366
- setOpenKeys([]);
367
- },
368
- children: collapsed ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.RightOutlined, {}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.LeftOutlined, {})
369
- }
370
- ) })
371
- ]
372
- }
373
- )
374
- ] })
375
- }
376
- ),
377
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
378
- Content,
379
- {
380
- className: (0, import_classnames.default)(`${prefixCls}-content`, `${prefixCls}-content-${siderWidth}`),
381
- style: {
382
- marginLeft: siderWidth
319
+ fontSize: 12
320
+ }
321
+ });
322
+ },
323
+ className: `${prefixCls}-menu`,
324
+ children: renderMenu(menus)
325
+ })
326
+ })]
327
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
328
+ className: `${prefixCls}-sider-border`,
329
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
330
+ className: `${prefixCls}-sider-collapse`,
331
+ onClick: () => {
332
+ setCollapsed(!collapsed);
333
+ // 导航展开/收起时,重置 openKeys
334
+ setOpenKeys([]);
383
335
  },
384
- children
385
- }
386
- )
387
- ]
388
- }
389
- ) })
390
- ] })
391
- }
392
- )
393
- ] })
394
- );
336
+ children: collapsed ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.RightOutlined, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.LeftOutlined, {})
337
+ })
338
+ })]
339
+ })]
340
+ })
341
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Content, {
342
+ className: (0, _classnames.default)(`${prefixCls}-content`, `${prefixCls}-content-${siderWidth}`),
343
+ style: {
344
+ marginLeft: siderWidth
345
+ },
346
+ children: children
347
+ })]
348
+ })
349
+ })]
350
+ })
351
+ })]
352
+ }));
395
353
  };
396
- var BasicLayout_default = (0, import_LocaleWrapper.default)({
397
- componentName: "BasicLayout",
398
- defaultLocale: import_zh_CN.default
399
- })(BasicLayout);
354
+ var _default = exports.default = (0, _LocaleWrapper.default)({
355
+ componentName: 'BasicLayout',
356
+ defaultLocale: _zhCN.default
357
+ })(BasicLayout);