@hi-ui/menu 4.3.1 → 5.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +83 -0
- package/lib/cjs/EnterIcon.js +44 -0
- package/lib/cjs/GroupMenu.js +96 -0
- package/lib/cjs/Menu.js +25 -11
- package/lib/cjs/MenuItem.js +4 -3
- package/lib/cjs/MenuSearch.js +322 -0
- package/lib/cjs/SideMenu.js +139 -0
- package/lib/cjs/button/lib/esm/Button.js +109 -0
- package/lib/cjs/button/lib/esm/ButtonGroup.js +56 -0
- package/lib/cjs/button/lib/esm/styles/index.scss.js +35 -0
- package/lib/cjs/index.js +8 -0
- package/lib/cjs/styles/index.scss.js +1 -1
- package/lib/cjs/util.js +95 -1
- package/lib/esm/EnterIcon.js +32 -0
- package/lib/esm/GroupMenu.js +83 -0
- package/lib/esm/Menu.js +26 -12
- package/lib/esm/MenuItem.js +4 -3
- package/lib/esm/MenuSearch.js +305 -0
- package/lib/esm/SideMenu.js +124 -0
- package/lib/esm/button/lib/esm/Button.js +97 -0
- package/lib/esm/button/lib/esm/ButtonGroup.js +44 -0
- package/lib/esm/button/lib/esm/styles/index.scss.js +23 -0
- package/lib/esm/index.js +3 -0
- package/lib/esm/styles/index.scss.js +1 -1
- package/lib/esm/util.js +95 -2
- package/lib/types/EnterIcon.d.ts +1 -0
- package/lib/types/GroupMenu.d.ts +29 -0
- package/lib/types/Menu.d.ts +4 -0
- package/lib/types/MenuSearch.d.ts +37 -0
- package/lib/types/SideMenu.d.ts +58 -0
- package/lib/types/context.d.ts +2 -1
- package/lib/types/index.d.ts +3 -0
- package/lib/types/util.d.ts +16 -0
- package/package.json +27 -19
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,88 @@
|
|
|
1
1
|
# @hi-ui/menu
|
|
2
2
|
|
|
3
|
+
## 5.0.0-alpha.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- 1b05b44a4: feat: 组件的 package.json 中的 exports 统一加上 types 配置 (5.0)
|
|
8
|
+
|
|
9
|
+
### Minor Changes
|
|
10
|
+
|
|
11
|
+
- a1ad318d9: feat(menu): 增加 GroupMenu 和 SideMenu 组件 (5.0)
|
|
12
|
+
- d9b2b928c: feat(menu): GroupMenu 组件增加 titleRender 参数 (5.0)
|
|
13
|
+
- 2fec303ab: feat(menu): add showTitleOnMini api (5.0)
|
|
14
|
+
- 0d2737b09: chore(menu): 增加变更记录文件 (5.0)
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- 5de7a848b: chore: 将代码中 v4 改为 v5 (5.0)
|
|
19
|
+
- 307f68517: <br />
|
|
20
|
+
- perf(layout): 优化导航菜单交互体验 (5.0)
|
|
21
|
+
- perf(menu): 优化搜索菜单组件的样式和交互逻辑 & 修改分组菜单样式问题 (5.0)
|
|
22
|
+
- 8116f0304: fix: 修改 UI 问题 (5.0)
|
|
23
|
+
- 46dbd140f: style(layout): 修改 Sider 收起时宽度为 60px & 增加 width 参数 (5.0)
|
|
24
|
+
- 300d1573a: perf(layout&menu): 优化 FloatMenuContainer 组件的折叠逻辑 & 修改 SideMenu 组件 hover 样式 (5.0)
|
|
25
|
+
- 7f8760993: style(menu): 优化 GroupMenu 组件的样式和交互逻辑 (5.0)
|
|
26
|
+
- 61d132802: build: 将 package.json 中 exports 配置中的 types 配置放在最上面 (5.0)
|
|
27
|
+
- Updated dependencies [abebb5eed]
|
|
28
|
+
- Updated dependencies [7bda04e64]
|
|
29
|
+
- Updated dependencies [77ed66eac]
|
|
30
|
+
- Updated dependencies [ddd2acc79]
|
|
31
|
+
- Updated dependencies [5de7a848b]
|
|
32
|
+
- Updated dependencies [1b05b44a4]
|
|
33
|
+
- Updated dependencies [0cd15438e]
|
|
34
|
+
- Updated dependencies [eb69f0baa]
|
|
35
|
+
- Updated dependencies [a01771e8d]
|
|
36
|
+
- Updated dependencies [09451c7d9]
|
|
37
|
+
- Updated dependencies [67960d871]
|
|
38
|
+
- Updated dependencies [43da85a56]
|
|
39
|
+
- Updated dependencies [de7f92b26]
|
|
40
|
+
- Updated dependencies [8116f0304]
|
|
41
|
+
- Updated dependencies [85bb84874]
|
|
42
|
+
- Updated dependencies [5de7a848b]
|
|
43
|
+
- Updated dependencies [77ed66eac]
|
|
44
|
+
- Updated dependencies [632dbda3a]
|
|
45
|
+
- Updated dependencies [36bb992d3]
|
|
46
|
+
- Updated dependencies [1b51c1bbe]
|
|
47
|
+
- Updated dependencies [61d132802]
|
|
48
|
+
- Updated dependencies [6ebf40f96]
|
|
49
|
+
- Updated dependencies [9f2ee08cf]
|
|
50
|
+
- Updated dependencies [6eac4b78b]
|
|
51
|
+
- Updated dependencies [bcd3d08dd]
|
|
52
|
+
- Updated dependencies [4fb586f6f]
|
|
53
|
+
- Updated dependencies [c125e4c48]
|
|
54
|
+
- Updated dependencies [b7ad460d8]
|
|
55
|
+
- Updated dependencies [df25ec39b]
|
|
56
|
+
- @hi-ui/picker@5.0.0-alpha.0
|
|
57
|
+
- @hi-ui/input@5.0.0-alpha.0
|
|
58
|
+
- @hi-ui/tooltip@5.0.0-alpha.0
|
|
59
|
+
- @hi-ui/core@5.0.0-alpha.0
|
|
60
|
+
- @hi-ui/use-id@5.0.0-alpha.0
|
|
61
|
+
- @hi-ui/use-latest@5.0.0-alpha.0
|
|
62
|
+
- @hi-ui/use-merge-refs@5.0.0-alpha.0
|
|
63
|
+
- @hi-ui/use-outside-click@5.0.0-alpha.0
|
|
64
|
+
- @hi-ui/use-resize-observer@5.0.0-alpha.0
|
|
65
|
+
- @hi-ui/use-toggle@5.0.0-alpha.0
|
|
66
|
+
- @hi-ui/use-uncontrolled-state@5.0.0-alpha.0
|
|
67
|
+
- @hi-ui/icons@5.0.0-alpha.0
|
|
68
|
+
- @hi-ui/ellipsis-tooltip@5.0.0-alpha.0
|
|
69
|
+
- @hi-ui/highlighter@5.0.0-alpha.0
|
|
70
|
+
- @hi-ui/icon-button@5.0.0-alpha.0
|
|
71
|
+
- @hi-ui/popper@5.0.0-alpha.0
|
|
72
|
+
- @hi-ui/scrollbar@5.0.0-alpha.0
|
|
73
|
+
- @hi-ui/array-utils@5.0.0-alpha.0
|
|
74
|
+
- @hi-ui/classname@5.0.0-alpha.0
|
|
75
|
+
- @hi-ui/env@5.0.0-alpha.0
|
|
76
|
+
- @hi-ui/times@5.0.0-alpha.0
|
|
77
|
+
- @hi-ui/tree-utils@5.0.0-alpha.0
|
|
78
|
+
- @hi-ui/type-assertion@5.0.0-alpha.0
|
|
79
|
+
|
|
80
|
+
## 4.3.2
|
|
81
|
+
|
|
82
|
+
### Patch Changes
|
|
83
|
+
|
|
84
|
+
- [#3270](https://github.com/XiaoMi/hiui/pull/3270) [`9a241f9`](https://github.com/XiaoMi/hiui/commit/9a241f9ace65037a2dc6308566f1b36c2e1856a6) Thanks [@zyprepare](https://github.com/zyprepare)! - fix(menu): 添加国际化支持,更新“更多”菜单项的标题为本地化文本
|
|
85
|
+
|
|
3
86
|
## 4.3.1
|
|
4
87
|
|
|
5
88
|
### Patch Changes
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/menu
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/menu#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
+
Object.defineProperty(exports, '__esModule', {
|
|
14
|
+
value: true
|
|
15
|
+
});
|
|
16
|
+
var React = require('react');
|
|
17
|
+
function _interopDefaultCompat(e) {
|
|
18
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
19
|
+
'default': e
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
23
|
+
var EnterIcon = function EnterIcon() {
|
|
24
|
+
return /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
25
|
+
width: "12",
|
|
26
|
+
height: "12",
|
|
27
|
+
viewBox: "0 0 12 12",
|
|
28
|
+
fill: "none",
|
|
29
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
30
|
+
}, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
31
|
+
d: "M4 9L2 7L4 5",
|
|
32
|
+
stroke: "#91959e",
|
|
33
|
+
strokeWidth: "1.2",
|
|
34
|
+
strokeLinecap: "round",
|
|
35
|
+
strokeLinejoin: "round"
|
|
36
|
+
}), /*#__PURE__*/React__default["default"].createElement("path", {
|
|
37
|
+
d: "M10 3L10 6.25C10 6.66422 9.66423 7 9.25 7L2 7",
|
|
38
|
+
stroke: "#91959e",
|
|
39
|
+
strokeWidth: "1.2",
|
|
40
|
+
strokeLinecap: "round",
|
|
41
|
+
strokeLinejoin: "round"
|
|
42
|
+
}));
|
|
43
|
+
};
|
|
44
|
+
exports.EnterIcon = EnterIcon;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/** @LICENSE
|
|
2
|
+
* @hi-ui/menu
|
|
3
|
+
* https://github.com/XiaoMi/hiui/tree/master/packages/ui/menu#readme
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) HiUI <mi-hiui@xiaomi.com>.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/
|
|
10
|
+
'use strict';
|
|
11
|
+
|
|
12
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
13
|
+
Object.defineProperty(exports, '__esModule', {
|
|
14
|
+
value: true
|
|
15
|
+
});
|
|
16
|
+
var tslib = require('tslib');
|
|
17
|
+
var React = require('react');
|
|
18
|
+
var classname = require('@hi-ui/classname');
|
|
19
|
+
var env = require('@hi-ui/env');
|
|
20
|
+
var typeAssertion = require('@hi-ui/type-assertion');
|
|
21
|
+
var useLatest = require('@hi-ui/use-latest');
|
|
22
|
+
var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
|
|
23
|
+
var Scrollbar = require('@hi-ui/scrollbar');
|
|
24
|
+
function _interopDefaultCompat(e) {
|
|
25
|
+
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
|
26
|
+
'default': e
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
30
|
+
var Scrollbar__default = /*#__PURE__*/_interopDefaultCompat(Scrollbar);
|
|
31
|
+
var _role = 'group-menu';
|
|
32
|
+
var GROUP_MENU_PREFIX = classname.getPrefixCls(_role);
|
|
33
|
+
/**
|
|
34
|
+
* 分组菜单
|
|
35
|
+
*/
|
|
36
|
+
var GroupMenu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
37
|
+
var _a$prefixCls = _a.prefixCls,
|
|
38
|
+
prefixCls = _a$prefixCls === void 0 ? GROUP_MENU_PREFIX : _a$prefixCls,
|
|
39
|
+
_a$role = _a.role,
|
|
40
|
+
role = _a$role === void 0 ? _role : _a$role,
|
|
41
|
+
className = _a.className,
|
|
42
|
+
_a$data = _a.data,
|
|
43
|
+
data = _a$data === void 0 ? [] : _a$data,
|
|
44
|
+
onClick = _a.onClick,
|
|
45
|
+
_a$defaultActiveId = _a.defaultActiveId,
|
|
46
|
+
defaultActiveId = _a$defaultActiveId === void 0 ? '' : _a$defaultActiveId,
|
|
47
|
+
activeIdProp = _a.activeId,
|
|
48
|
+
titleRender = _a.titleRender,
|
|
49
|
+
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "data", "onClick", "defaultActiveId", "activeId", "titleRender"]);
|
|
50
|
+
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultActiveId, activeIdProp),
|
|
51
|
+
activeId = _useUncontrolledState[0],
|
|
52
|
+
tryChangeActiveId = _useUncontrolledState[1];
|
|
53
|
+
var handleClick = useLatest.useLatestCallback(function (evt, id, item) {
|
|
54
|
+
tryChangeActiveId(id);
|
|
55
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(evt, id, item);
|
|
56
|
+
});
|
|
57
|
+
var renderItem = React.useCallback(function (data) {
|
|
58
|
+
return data.map(function (item) {
|
|
59
|
+
var _cx;
|
|
60
|
+
var id = item.id,
|
|
61
|
+
icon = item.icon,
|
|
62
|
+
title = item.title,
|
|
63
|
+
_item$children = item.children,
|
|
64
|
+
children = _item$children === void 0 ? [] : _item$children,
|
|
65
|
+
disabled = item.disabled;
|
|
66
|
+
var isParent = typeAssertion.isArrayNonEmpty(children);
|
|
67
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
68
|
+
key: id,
|
|
69
|
+
className: classname.cx(isParent ? prefixCls + "-parent-item" : prefixCls + "-item", (_cx = {}, _cx[prefixCls + "-item--active"] = activeId === id, _cx[prefixCls + "-item--disabled"] = disabled, _cx[prefixCls + "-item--empty"] = !title && !icon, _cx)),
|
|
70
|
+
onClick: function onClick(evt) {
|
|
71
|
+
if (disabled || isParent) return;
|
|
72
|
+
evt.stopPropagation();
|
|
73
|
+
handleClick(evt, id, item);
|
|
74
|
+
}
|
|
75
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
76
|
+
className: classname.cx(prefixCls + "-item__content")
|
|
77
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
78
|
+
className: classname.cx(prefixCls + "-item__icon")
|
|
79
|
+
}, icon), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
80
|
+
className: classname.cx(prefixCls + "-item__title")
|
|
81
|
+
}, typeof titleRender === 'function' ? titleRender(item) : title)), isParent && renderItem(children));
|
|
82
|
+
});
|
|
83
|
+
}, [activeId, handleClick, prefixCls, titleRender]);
|
|
84
|
+
return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
85
|
+
className: classname.cx("" + prefixCls, className),
|
|
86
|
+
ref: ref,
|
|
87
|
+
role: role
|
|
88
|
+
}, rest), /*#__PURE__*/React__default["default"].createElement(Scrollbar__default["default"], {
|
|
89
|
+
onlyScrollVisible: true,
|
|
90
|
+
axes: "y"
|
|
91
|
+
}, renderItem(data)));
|
|
92
|
+
});
|
|
93
|
+
if (env.__DEV__) {
|
|
94
|
+
GroupMenu.displayName = 'GroupMenu';
|
|
95
|
+
}
|
|
96
|
+
exports.GroupMenu = GroupMenu;
|
package/lib/cjs/Menu.js
CHANGED
|
@@ -19,6 +19,7 @@ var classname = require('@hi-ui/classname');
|
|
|
19
19
|
var icons = require('@hi-ui/icons');
|
|
20
20
|
var env = require('@hi-ui/env');
|
|
21
21
|
var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
|
|
22
|
+
var core = require('@hi-ui/core');
|
|
22
23
|
var Tooltip = require('@hi-ui/tooltip');
|
|
23
24
|
var useToggle = require('@hi-ui/use-toggle');
|
|
24
25
|
var treeUtils = require('@hi-ui/tree-utils');
|
|
@@ -82,7 +83,10 @@ var Menu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
82
83
|
onClick = _a.onClick,
|
|
83
84
|
_a$size = _a.size,
|
|
84
85
|
size = _a$size === void 0 ? 'lg' : _a$size,
|
|
85
|
-
|
|
86
|
+
_a$showTitleOnMini = _a.showTitleOnMini,
|
|
87
|
+
showTitleOnMini = _a$showTitleOnMini === void 0 ? false : _a$showTitleOnMini,
|
|
88
|
+
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "data", "fieldNames", "placement", "showCollapse", "expandedType", "showAllSubMenus", "defaultExpandAll", "defaultExpandedIds", "expandedIds", "onExpand", "defaultActiveId", "activeId", "onClickSubMenu", "collapsed", "defaultCollapsed", "overlayClassName", "onCollapse", "footerRender", "render", "extraHeader", "onClick", "size", "showTitleOnMini"]);
|
|
89
|
+
var i18n = core.useLocaleContext();
|
|
86
90
|
var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultActiveId, activeIdProp, onClick),
|
|
87
91
|
activeId = _useUncontrolledState[0],
|
|
88
92
|
updateActiveId = _useUncontrolledState[1];
|
|
@@ -104,6 +108,7 @@ var Menu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
104
108
|
}, expandedIdsProp, onExpand),
|
|
105
109
|
expandedIds = _useUncontrolledState2[0],
|
|
106
110
|
updateExpandedIds = _useUncontrolledState2[1];
|
|
111
|
+
var expandedIdsRef = React.useRef(expandedIds);
|
|
107
112
|
var clickMenu = React.useCallback(function (id, raw) {
|
|
108
113
|
updateActiveId(id, raw);
|
|
109
114
|
}, [updateActiveId]);
|
|
@@ -112,14 +117,17 @@ var Menu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
112
117
|
return expandedId !== id;
|
|
113
118
|
}) : expandedIds.concat(id);
|
|
114
119
|
updateExpandedIds(nextExpandedIds);
|
|
120
|
+
expandedIdsRef.current = nextExpandedIds;
|
|
115
121
|
if (onClickSubMenu) {
|
|
116
122
|
onClickSubMenu(id, nextExpandedIds);
|
|
117
123
|
}
|
|
118
124
|
}, [onClickSubMenu, expandedIds, updateExpandedIds]);
|
|
119
125
|
var closePopper = React.useCallback(function (id) {
|
|
120
|
-
|
|
126
|
+
var nextExpandedIds = expandedIds.filter(function (expandedId) {
|
|
121
127
|
return expandedId !== id;
|
|
122
|
-
})
|
|
128
|
+
});
|
|
129
|
+
updateExpandedIds(nextExpandedIds);
|
|
130
|
+
expandedIdsRef.current = nextExpandedIds;
|
|
123
131
|
}, [expandedIds, updateExpandedIds]);
|
|
124
132
|
var closeAllPopper = React.useCallback(function () {
|
|
125
133
|
updateExpandedIds([]);
|
|
@@ -152,6 +160,13 @@ var Menu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
152
160
|
setContainerWidth(width);
|
|
153
161
|
}
|
|
154
162
|
});
|
|
163
|
+
React.useEffect(function () {
|
|
164
|
+
if (mini) {
|
|
165
|
+
updateExpandedIds([]);
|
|
166
|
+
} else {
|
|
167
|
+
updateExpandedIds(expandedIdsRef.current);
|
|
168
|
+
}
|
|
169
|
+
}, [mini, updateExpandedIds]);
|
|
155
170
|
var _useState4 = React.useState(0),
|
|
156
171
|
tagMaxCount = _useState4[0],
|
|
157
172
|
setTagMaxCount = _useState4[1];
|
|
@@ -166,7 +181,7 @@ var Menu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
166
181
|
}, [transformedData, tagMaxCount]);
|
|
167
182
|
var getTagWidth = React.useCallback(function (index) {
|
|
168
183
|
if (!containerElement) return MIN_WIDTH;
|
|
169
|
-
var elements = containerElement.getElementsByClassName('hi-
|
|
184
|
+
var elements = containerElement.getElementsByClassName('hi-v5-menu-item');
|
|
170
185
|
var element = elements && elements[index];
|
|
171
186
|
if (!element) return MIN_WIDTH;
|
|
172
187
|
return element.getBoundingClientRect().width;
|
|
@@ -202,9 +217,7 @@ var Menu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
202
217
|
var collapseNode = canToggle ? ( /*#__PURE__*/React__default["default"].createElement("div", {
|
|
203
218
|
className: classname.cx(prefixCls + "__toggle"),
|
|
204
219
|
onClick: function onClick() {
|
|
205
|
-
miniToggleAction.not();
|
|
206
|
-
// 关闭所有展开的子菜单,防止切换到 mini 模式后,子菜单还是展开的
|
|
207
|
-
updateExpandedIds([]);
|
|
220
|
+
return miniToggleAction.not();
|
|
208
221
|
}
|
|
209
222
|
}, mini ? /*#__PURE__*/React__default["default"].createElement(icons.MenuUnfoldOutlined, null) : /*#__PURE__*/React__default["default"].createElement(icons.MenuFoldOutlined, null))) : null;
|
|
210
223
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, typeAssertion.isFunction(footerRender) ? footerRender({
|
|
@@ -214,12 +227,12 @@ var Menu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
214
227
|
};
|
|
215
228
|
var renderItem = React.useCallback(function (menuItem, level) {
|
|
216
229
|
// 显示缩略内容
|
|
217
|
-
if (showMini && level === 1) {
|
|
230
|
+
if (showMini && level === 1 && !showTitleOnMini) {
|
|
218
231
|
return renderMenuItemMini(menuItem);
|
|
219
232
|
}
|
|
220
233
|
return typeAssertion.isFunction(render) ? render(menuItem, level) : menuItem.title;
|
|
221
|
-
}, [render, showMini]);
|
|
222
|
-
var cls = classname.cx(prefixCls, className, prefixCls + "--" + placement, prefixCls + "--size-" + size, mini && prefixCls + "--mini", (expandedType === 'pop' || showAllSubMenus || mini) && prefixCls + "--popup");
|
|
234
|
+
}, [render, showMini, showTitleOnMini]);
|
|
235
|
+
var cls = classname.cx(prefixCls, className, prefixCls + "--" + placement, prefixCls + "--size-" + size, mini && prefixCls + "--mini", showTitleOnMini && prefixCls + "--show-title-on-mini", (expandedType === 'pop' || showAllSubMenus || mini) && prefixCls + "--popup");
|
|
223
236
|
return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
224
237
|
ref: useMergeRefs.useMergeRefs(ref, setContainerElement),
|
|
225
238
|
role: role,
|
|
@@ -230,6 +243,7 @@ var Menu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
230
243
|
expandedType: expandedType,
|
|
231
244
|
showAllSubMenus: showAllSubMenus,
|
|
232
245
|
mini: mini,
|
|
246
|
+
showTitleOnMini: showTitleOnMini,
|
|
233
247
|
clickMenu: clickMenu,
|
|
234
248
|
clickSubMenu: clickSubMenu,
|
|
235
249
|
closePopper: closePopper,
|
|
@@ -263,7 +277,7 @@ var Menu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
263
277
|
}), showVertical || restTagList.length === 0 ? null : ( /*#__PURE__*/React__default["default"].createElement(MenuItem.MenuItem, {
|
|
264
278
|
key: MENU_MORE_ID,
|
|
265
279
|
id: MENU_MORE_ID,
|
|
266
|
-
title:
|
|
280
|
+
title: i18n.tabs.more,
|
|
267
281
|
children: restTagList
|
|
268
282
|
}))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
269
283
|
className: prefixCls + "__footer"
|
package/lib/cjs/MenuItem.js
CHANGED
|
@@ -69,7 +69,8 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
69
69
|
clickSubMenu = _useContext.clickSubMenu,
|
|
70
70
|
closeAllPopper = _useContext.closeAllPopper,
|
|
71
71
|
activeParents = _useContext.activeParents,
|
|
72
|
-
overlayClassName = _useContext.overlayClassName
|
|
72
|
+
overlayClassName = _useContext.overlayClassName,
|
|
73
|
+
showTitleOnMini = _useContext.showTitleOnMini;
|
|
73
74
|
var _parentIds = (parentIds || []).concat(id);
|
|
74
75
|
var hasChildren = typeAssertion.isArrayNonEmpty(children);
|
|
75
76
|
var mergedRef = useMergeRefs.useMergeRefs(itemRef, ref);
|
|
@@ -135,7 +136,7 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
135
136
|
visible: !!(expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id)),
|
|
136
137
|
attachEl: itemRef.current,
|
|
137
138
|
placement: 'right-start',
|
|
138
|
-
gutterGap: 16,
|
|
139
|
+
gutterGap: showTitleOnMini ? 8 : 16,
|
|
139
140
|
className: overlayClassName,
|
|
140
141
|
onClose: function onClose() {
|
|
141
142
|
closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
|
|
@@ -155,7 +156,7 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
155
156
|
visible: !!(expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id)),
|
|
156
157
|
attachEl: itemRef.current,
|
|
157
158
|
placement: 'right-start',
|
|
158
|
-
gutterGap: 16,
|
|
159
|
+
gutterGap: showTitleOnMini ? 12 : 16,
|
|
159
160
|
disabledPortal: true,
|
|
160
161
|
className: overlayClassName,
|
|
161
162
|
onClose: function onClose() {
|