@hi-ui/menu 5.0.0-experimental.1 → 5.0.0-experimental.3

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.
@@ -57,16 +57,19 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
57
57
  closeAllPopper = _useContext.closeAllPopper,
58
58
  activeParents = _useContext.activeParents,
59
59
  overlayClassName = _useContext.overlayClassName,
60
- showTitleOnMini = _useContext.showTitleOnMini;
60
+ showTitleOnMini = _useContext.showTitleOnMini,
61
+ semanticClassNames = _useContext.semanticClassNames,
62
+ semanticStyles = _useContext.semanticStyles;
61
63
  var _parentIds = (parentIds || []).concat(id);
62
64
  var hasChildren = isArrayNonEmpty(children);
63
65
  var mergedRef = useMergeRefs(itemRef, ref);
64
66
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("li", {
65
67
  ref: mergedRef,
66
- className: cx(prefixCls + "-item", (_cx = {}, _cx[prefixCls + "-item__inner--mini"] = mini, _cx[prefixCls + "-item--disabled"] = disabled, _cx[prefixCls + "-item--active"] = placement === 'horizontal' && (activeId === id || (activeParents === null || activeParents === void 0 ? void 0 : activeParents.includes(id))) && level === 1, _cx), className),
67
- style: hidden ? hiddenStyle : undefined
68
+ className: cx(prefixCls + "-item", (_cx = {}, _cx[prefixCls + "-item__inner--mini"] = mini, _cx[prefixCls + "-item--disabled"] = disabled, _cx[prefixCls + "-item--active"] = placement === 'horizontal' && (activeId === id || (activeParents === null || activeParents === void 0 ? void 0 : activeParents.includes(id))) && level === 1, _cx), className, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.item),
69
+ style: Object.assign(Object.assign({}, hidden ? hiddenStyle : undefined), semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.item)
68
70
  }, /*#__PURE__*/React.createElement("div", {
69
- className: cx(prefixCls + "-item__inner", (_cx2 = {}, _cx2[prefixCls + "-item__inner--active"] = activeId === id, _cx2[prefixCls + "-item__inner--active-p"] = activeParents === null || activeParents === void 0 ? void 0 : activeParents.includes(id), _cx2[prefixCls + "-item__inner--expanded"] = expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id), _cx2[prefixCls + "-item__inner--hasIcon"] = icon, _cx2)),
71
+ className: cx(prefixCls + "-item__inner", (_cx2 = {}, _cx2[prefixCls + "-item__inner--active"] = activeId === id, _cx2[prefixCls + "-item__inner--active-p"] = activeParents === null || activeParents === void 0 ? void 0 : activeParents.includes(id), _cx2[prefixCls + "-item__inner--expanded"] = expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id), _cx2[prefixCls + "-item__inner--hasIcon"] = icon, _cx2), semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemInner),
72
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemInner,
70
73
  onClick: function onClick() {
71
74
  if (isArrayNonEmpty(children)) {
72
75
  !disabled && (clickSubMenu === null || clickSubMenu === void 0 ? void 0 : clickSubMenu(id));
@@ -80,36 +83,53 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
80
83
  }, placement === 'vertical' && expandedType === 'collapse' && !mini ? renderIndent({
81
84
  prefixCls: prefixCls + "-item",
82
85
  depth: level - 1
83
- }) : null, icon ? /*#__PURE__*/React.createElement("span", {
84
- className: prefixCls + "-item__icon"
85
- }, icon) : null, /*#__PURE__*/React.createElement("span", {
86
- className: prefixCls + "-item__content"
86
+ }) : null, icon ? ( /*#__PURE__*/React.createElement("span", {
87
+ className: cx(prefixCls + "-item__icon", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemIcon),
88
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemIcon
89
+ }, icon)) : null, /*#__PURE__*/React.createElement("span", {
90
+ className: cx(prefixCls + "-item__content", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemContent),
91
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemContent
87
92
  }, isFunction(render) ? render(Object.assign(Object.assign({}, raw), {
88
93
  id: id,
89
94
  icon: icon,
90
95
  title: title
91
96
  }), level) : title), hasChildren && !mini && placement === 'vertical' && expandedType === 'collapse' && !showAllSubMenus && (!disabled && (expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id)) ? ( /*#__PURE__*/React.createElement(Arrow, {
92
97
  prefixCls: prefixCls + "-item",
93
- direction: "up"
98
+ direction: "up",
99
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
100
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
94
101
  })) : ( /*#__PURE__*/React.createElement(Arrow, {
95
102
  prefixCls: prefixCls + "-item",
96
- direction: "down"
103
+ direction: "down",
104
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
105
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
97
106
  }))), hasChildren && mini && level > 1 && placement === 'vertical' ? ( /*#__PURE__*/React.createElement(Arrow, {
98
- prefixCls: prefixCls + "-item"
107
+ prefixCls: prefixCls + "-item",
108
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
109
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
99
110
  })) : null, hasChildren && !mini && placement === 'vertical' && (expandedType === 'pop' || showAllSubMenus) ? ( /*#__PURE__*/React.createElement(Arrow, {
100
- prefixCls: prefixCls + "-item"
111
+ prefixCls: prefixCls + "-item",
112
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
113
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
101
114
  })) : null, hasChildren && placement === 'horizontal' && level > 1 ? ( /*#__PURE__*/React.createElement(Arrow, {
102
- prefixCls: prefixCls + "-item"
115
+ prefixCls: prefixCls + "-item",
116
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
117
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
103
118
  })) : null, hasChildren && placement === 'horizontal' && level === 1 && (!disabled && (expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id)) ? ( /*#__PURE__*/React.createElement(Arrow, {
104
119
  prefixCls: prefixCls + "-item",
105
- direction: "up"
120
+ direction: "up",
121
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
122
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
106
123
  })) : ( /*#__PURE__*/React.createElement(Arrow, {
107
124
  prefixCls: prefixCls + "-item",
108
- direction: "down"
125
+ direction: "down",
126
+ className: semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.itemArrow,
127
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.itemArrow
109
128
  })))), hasChildren && placement === 'vertical' && !mini && !showAllSubMenus && expandedType === 'collapse' ? ( /*#__PURE__*/React.createElement(Expander, {
110
129
  visible: !disabled && !!(expandedIds === null || expandedIds === void 0 ? void 0 : expandedIds.includes(id))
111
130
  }, /*#__PURE__*/React.createElement("ul", {
112
- className: prefixCls + "-submenu"
131
+ className: cx(prefixCls + "-submenu", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.submenu),
132
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.submenu
113
133
  }, children.map(function (child) {
114
134
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
115
135
  key: child.id,
@@ -129,7 +149,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
129
149
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
130
150
  }
131
151
  }, /*#__PURE__*/React.createElement("ul", {
132
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
152
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
153
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
133
154
  }, children.map(function (child) {
134
155
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
135
156
  key: child.id,
@@ -150,7 +171,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
150
171
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
151
172
  }
152
173
  }, /*#__PURE__*/React.createElement("ul", {
153
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
174
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
175
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
154
176
  }, children.map(function (child) {
155
177
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
156
178
  key: child.id,
@@ -170,7 +192,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
170
192
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
171
193
  }
172
194
  }, /*#__PURE__*/React.createElement("ul", {
173
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
195
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
196
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
174
197
  }, children.map(function (child) {
175
198
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
176
199
  key: child.id,
@@ -191,7 +214,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
191
214
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
192
215
  }
193
216
  }, /*#__PURE__*/React.createElement("ul", {
194
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
217
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
218
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
195
219
  }, children.map(function (child) {
196
220
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
197
221
  key: child.id,
@@ -241,7 +265,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
241
265
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
242
266
  }
243
267
  }, /*#__PURE__*/React.createElement("ul", {
244
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
268
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
269
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
245
270
  }, children.map(function (child) {
246
271
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
247
272
  key: child.id,
@@ -262,7 +287,8 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
262
287
  closePopper === null || closePopper === void 0 ? void 0 : closePopper(id);
263
288
  }
264
289
  }, /*#__PURE__*/React.createElement("ul", {
265
- className: prefixCls + "-popmenu " + prefixCls + "--size-" + size
290
+ className: cx(prefixCls + "-popmenu", prefixCls + "--size-" + size, semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.popmenu),
291
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.popmenu
266
292
  }, children.map(function (child) {
267
293
  return /*#__PURE__*/React.createElement(MenuItem, Object.assign({}, child, {
268
294
  key: child.id,
@@ -309,7 +335,9 @@ if (__DEV__) {
309
335
  }
310
336
  var Arrow = function Arrow(_ref2) {
311
337
  var prefixCls = _ref2.prefixCls,
312
- direction = _ref2.direction;
338
+ direction = _ref2.direction,
339
+ className = _ref2.className,
340
+ style = _ref2.style;
313
341
  var icon;
314
342
  switch (direction) {
315
343
  case 'up':
@@ -322,7 +350,8 @@ var Arrow = function Arrow(_ref2) {
322
350
  icon = /*#__PURE__*/React.createElement(RightOutlined, null);
323
351
  }
324
352
  return /*#__PURE__*/React.createElement("span", {
325
- className: prefixCls + "__arrow"
353
+ className: cx(prefixCls + "__arrow", className),
354
+ style: style
326
355
  }, icon);
327
356
  };
328
357
  /**
@@ -9,7 +9,8 @@
9
9
  */
10
10
  import { __rest } from 'tslib';
11
11
  import React, { forwardRef, useState, useRef, useLayoutEffect, useCallback, useEffect, useImperativeHandle } from 'react';
12
- import { useLocaleContext } from '@hi-ui/core';
12
+ import { useLocaleContext, useGlobalContext } from '@hi-ui/core';
13
+ import { useMergeSemantic } from '@hi-ui/use-merge-semantic';
13
14
  import { __DEV__ } from '@hi-ui/env';
14
15
  import { getPrefixCls, cx } from '@hi-ui/classname';
15
16
  import { ArrowUpOutlined, ArrowDownOutlined, SearchOutlined, CloseOutlined } from '@hi-ui/icons';
@@ -31,6 +32,8 @@ var MenuSearch = /*#__PURE__*/forwardRef(function (_a, ref) {
31
32
  _a$prefixCls = _a.prefixCls,
32
33
  prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
33
34
  className = _a.className,
35
+ classNamesProp = _a.classNames,
36
+ stylesProp = _a.styles,
34
37
  placeholder = _a.placeholder,
35
38
  width = _a.width,
36
39
  style = _a.style,
@@ -43,9 +46,27 @@ var MenuSearch = /*#__PURE__*/forwardRef(function (_a, ref) {
43
46
  onSelect = _a.onSelect,
44
47
  onClear = _a.onClear,
45
48
  onClose = _a.onClose,
46
- onEsc = _a.onEsc;
47
- __rest(_a, ["innerRef", "prefixCls", "className", "clearText", "placeholder", "notFoundContent", "width", "style", "visible", "data", "defaultValue", "value", "onChange", "onSearch", "onSelect", "onClear", "onClose", "onEsc"]);
49
+ onEsc = _a.onEsc,
50
+ rest = __rest(_a, ["innerRef", "prefixCls", "className", "classNames", "styles", "clearText", "placeholder", "notFoundContent", "width", "style", "visible", "data", "defaultValue", "value", "onChange", "onSearch", "onSelect", "onClear", "onClose", "onEsc"]);
48
51
  var i18n = useLocaleContext();
52
+ var _useGlobalContext = useGlobalContext(),
53
+ menuSearchConfig = _useGlobalContext.menuSearch;
54
+ var _useMergeSemantic = useMergeSemantic({
55
+ classNamesList: [menuSearchConfig === null || menuSearchConfig === void 0 ? void 0 : menuSearchConfig.classNames, classNamesProp],
56
+ stylesList: [menuSearchConfig === null || menuSearchConfig === void 0 ? void 0 : menuSearchConfig.styles, stylesProp],
57
+ info: {
58
+ props: Object.assign(Object.assign({}, rest), {
59
+ data: data,
60
+ placeholder: placeholder,
61
+ width: width,
62
+ visible: visibleProp,
63
+ defaultValue: defaultValue,
64
+ value: valueProp
65
+ })
66
+ }
67
+ }),
68
+ classNames = _useMergeSemantic.classNames,
69
+ styles = _useMergeSemantic.styles;
49
70
  var _useUncontrolledToggl = useUncontrolledToggle({
50
71
  visible: visibleProp
51
72
  }),
@@ -177,10 +198,10 @@ var MenuSearch = /*#__PURE__*/forwardRef(function (_a, ref) {
177
198
  }
178
199
  };
179
200
  });
180
- var cls = cx(prefixCls, className, (_cx = {}, _cx[prefixCls + "--open"] = visible, _cx));
201
+ var cls = cx(prefixCls, className, classNames === null || classNames === void 0 ? void 0 : classNames.root, (_cx = {}, _cx[prefixCls + "--open"] = visible, _cx));
181
202
  return /*#__PURE__*/React.createElement("div", {
182
203
  className: cls,
183
- style: style
204
+ style: Object.assign(Object.assign({}, style), styles === null || styles === void 0 ? void 0 : styles.root)
184
205
  }, /*#__PURE__*/React.createElement(MenuSearchInput, {
185
206
  width: width,
186
207
  prefixCls: prefixCls,
@@ -190,18 +211,23 @@ var MenuSearch = /*#__PURE__*/forwardRef(function (_a, ref) {
190
211
  onClear: handleClear,
191
212
  onClose: handleClose,
192
213
  onKeyDown: handleKeyDown,
193
- inputRef: setInputRef
214
+ inputRef: setInputRef,
215
+ semanticClassNames: classNames,
216
+ semanticStyles: styles
194
217
  }), /*#__PURE__*/React.createElement("div", {
195
- className: cx(prefixCls + "__content", (_cx2 = {}, _cx2[prefixCls + "__content--visible"] = visible, _cx2))
218
+ className: cx(prefixCls + "__content", (_cx2 = {}, _cx2[prefixCls + "__content--visible"] = visible, _cx2), classNames === null || classNames === void 0 ? void 0 : classNames.content),
219
+ style: styles === null || styles === void 0 ? void 0 : styles.content
196
220
  }, (resultMemo === null || resultMemo === void 0 ? void 0 : resultMemo.length) > 0 ? ( /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
197
- className: prefixCls + "__header"
221
+ className: cx(prefixCls + "__header", classNames === null || classNames === void 0 ? void 0 : classNames.header),
222
+ style: styles === null || styles === void 0 ? void 0 : styles.header
198
223
  }, /*#__PURE__*/React.createElement(Highlighter, {
199
224
  keyword: String((_b = resultMemo === null || resultMemo === void 0 ? void 0 : resultMemo.length) !== null && _b !== void 0 ? _b : 0)
200
225
  }, i18n.get('menuSearch.searchResult', {
201
226
  count: (_c = resultMemo === null || resultMemo === void 0 ? void 0 : resultMemo.length) !== null && _c !== void 0 ? _c : 0,
202
227
  keyword: value
203
228
  }))), /*#__PURE__*/React.createElement("div", {
204
- className: prefixCls + "__list",
229
+ className: cx(prefixCls + "__list", classNames === null || classNames === void 0 ? void 0 : classNames.list),
230
+ style: styles === null || styles === void 0 ? void 0 : styles.list,
205
231
  ref: listRef,
206
232
  tabIndex: -1,
207
233
  onKeyDown: handleKeyDown
@@ -209,12 +235,14 @@ var MenuSearch = /*#__PURE__*/forwardRef(function (_a, ref) {
209
235
  var _cx3;
210
236
  return /*#__PURE__*/React.createElement("div", {
211
237
  key: item.id,
212
- className: cx(prefixCls + "__list-item", (_cx3 = {}, _cx3[prefixCls + "__list-item--selected"] = currentIndex === index, _cx3)),
238
+ className: cx(prefixCls + "__list-item", (_cx3 = {}, _cx3[prefixCls + "__list-item--selected"] = currentIndex === index, _cx3), classNames === null || classNames === void 0 ? void 0 : classNames.listItem),
239
+ style: styles === null || styles === void 0 ? void 0 : styles.listItem,
213
240
  onClick: function onClick() {
214
241
  return handleSelect(item.id, item, index);
215
242
  }
216
243
  }, /*#__PURE__*/React.createElement("div", {
217
- className: prefixCls + "__list-item__title"
244
+ className: cx(prefixCls + "__list-item__title", classNames === null || classNames === void 0 ? void 0 : classNames.listItemTitle),
245
+ style: styles === null || styles === void 0 ? void 0 : styles.listItemTitle
218
246
  }, /*#__PURE__*/React.createElement(EllipsisTooltip, {
219
247
  tooltipProps: {
220
248
  style: {
@@ -225,27 +253,38 @@ var MenuSearch = /*#__PURE__*/forwardRef(function (_a, ref) {
225
253
  keyword: value
226
254
  }, item.pathTitles.join('/')))));
227
255
  })))) : ( /*#__PURE__*/React.createElement("div", {
228
- className: prefixCls + "__empty"
256
+ className: cx(prefixCls + "__empty", classNames === null || classNames === void 0 ? void 0 : classNames.empty),
257
+ style: styles === null || styles === void 0 ? void 0 : styles.empty
229
258
  }, /*#__PURE__*/React.createElement("div", null, i18n.menuSearch.searchEmptyResult)))), (resultMemo === null || resultMemo === void 0 ? void 0 : resultMemo.length) > 0 && ( /*#__PURE__*/React.createElement("div", {
230
- className: prefixCls + "__footer"
259
+ className: cx(prefixCls + "__footer", classNames === null || classNames === void 0 ? void 0 : classNames.footer),
260
+ style: styles === null || styles === void 0 ? void 0 : styles.footer
231
261
  }, /*#__PURE__*/React.createElement("div", {
232
- className: prefixCls + "__footer-item"
262
+ className: cx(prefixCls + "__footer-item", classNames === null || classNames === void 0 ? void 0 : classNames.footerItem),
263
+ style: styles === null || styles === void 0 ? void 0 : styles.footerItem
233
264
  }, /*#__PURE__*/React.createElement("div", {
234
- className: prefixCls + "__footer-item__icon"
265
+ className: cx(prefixCls + "__footer-item__icon", classNames === null || classNames === void 0 ? void 0 : classNames.footerItemIcon),
266
+ style: styles === null || styles === void 0 ? void 0 : styles.footerItemIcon
235
267
  }, /*#__PURE__*/React.createElement(ArrowUpOutlined, null), /*#__PURE__*/React.createElement(ArrowDownOutlined, null)), /*#__PURE__*/React.createElement("span", {
236
- className: prefixCls + "__footer-item__text"
268
+ className: cx(prefixCls + "__footer-item__text", classNames === null || classNames === void 0 ? void 0 : classNames.footerItemText),
269
+ style: styles === null || styles === void 0 ? void 0 : styles.footerItemText
237
270
  }, i18n.menuSearch.moveCursor)), /*#__PURE__*/React.createElement("div", {
238
- className: prefixCls + "__footer-item"
271
+ className: cx(prefixCls + "__footer-item", classNames === null || classNames === void 0 ? void 0 : classNames.footerItem),
272
+ style: styles === null || styles === void 0 ? void 0 : styles.footerItem
239
273
  }, /*#__PURE__*/React.createElement("div", {
240
- className: prefixCls + "__footer-item__icon"
274
+ className: cx(prefixCls + "__footer-item__icon", classNames === null || classNames === void 0 ? void 0 : classNames.footerItemIcon),
275
+ style: styles === null || styles === void 0 ? void 0 : styles.footerItemIcon
241
276
  }, /*#__PURE__*/React.createElement(EnterIcon, null)), /*#__PURE__*/React.createElement("span", {
242
- className: prefixCls + "__footer-item__text"
277
+ className: cx(prefixCls + "__footer-item__text", classNames === null || classNames === void 0 ? void 0 : classNames.footerItemText),
278
+ style: styles === null || styles === void 0 ? void 0 : styles.footerItemText
243
279
  }, i18n.menuSearch.confirmSelect)), /*#__PURE__*/React.createElement("div", {
244
- className: prefixCls + "__footer-item"
280
+ className: cx(prefixCls + "__footer-item", classNames === null || classNames === void 0 ? void 0 : classNames.footerItem),
281
+ style: styles === null || styles === void 0 ? void 0 : styles.footerItem
245
282
  }, /*#__PURE__*/React.createElement("div", {
246
- className: prefixCls + "__footer-item__icon"
283
+ className: cx(prefixCls + "__footer-item__icon", classNames === null || classNames === void 0 ? void 0 : classNames.footerItemIcon),
284
+ style: styles === null || styles === void 0 ? void 0 : styles.footerItemIcon
247
285
  }, "esc"), /*#__PURE__*/React.createElement("span", {
248
- className: prefixCls + "__footer-item__text"
286
+ className: cx(prefixCls + "__footer-item__text", classNames === null || classNames === void 0 ? void 0 : classNames.footerItemText),
287
+ style: styles === null || styles === void 0 ? void 0 : styles.footerItemText
249
288
  }, i18n.menuSearch.hideWindow)))));
250
289
  });
251
290
  if (__DEV__) {
@@ -261,17 +300,20 @@ var MenuSearchInput = /*#__PURE__*/forwardRef(function (_a, ref) {
261
300
  onClose = _a.onClose,
262
301
  onKeyDown = _a.onKeyDown,
263
302
  inputRef = _a.inputRef,
264
- rest = __rest(_a, ["prefixCls", "placeholder", "width", "value", "onChange", "onClear", "onClose", "onKeyDown", "inputRef"]);
303
+ semanticClassNames = _a.semanticClassNames,
304
+ semanticStyles = _a.semanticStyles,
305
+ rest = __rest(_a, ["prefixCls", "placeholder", "width", "value", "onChange", "onClear", "onClose", "onKeyDown", "inputRef", "semanticClassNames", "semanticStyles"]);
265
306
  var i18n = useLocaleContext();
266
307
  return /*#__PURE__*/React.createElement("div", {
267
308
  ref: ref,
268
- className: prefixCls + "__input-wrapper",
269
- style: {
309
+ className: cx(prefixCls + "__input-wrapper", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.inputWrapper),
310
+ style: Object.assign({
270
311
  width: width
271
- }
312
+ }, semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.inputWrapper)
272
313
  }, /*#__PURE__*/React.createElement(Input, Object.assign({
273
314
  ref: inputRef,
274
- className: prefixCls + "__input",
315
+ className: cx(prefixCls + "__input", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.input),
316
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.input,
275
317
  classNames: {
276
318
  prefix: prefixCls + "__input-prefix"
277
319
  },
@@ -279,7 +321,8 @@ var MenuSearchInput = /*#__PURE__*/forwardRef(function (_a, ref) {
279
321
  placeholder: placeholder,
280
322
  prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),
281
323
  suffix: /*#__PURE__*/React.createElement(Button, {
282
- className: prefixCls + "__input-clear",
324
+ className: cx(prefixCls + "__input-clear", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.inputClear),
325
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.inputClear,
283
326
  appearance: "link",
284
327
  size: "xs",
285
328
  onClick: onClear
@@ -290,7 +333,8 @@ var MenuSearchInput = /*#__PURE__*/forwardRef(function (_a, ref) {
290
333
  },
291
334
  onKeyDown: onKeyDown
292
335
  }, rest)), /*#__PURE__*/React.createElement("span", {
293
- className: prefixCls + "__close"
336
+ className: cx(prefixCls + "__close", semanticClassNames === null || semanticClassNames === void 0 ? void 0 : semanticClassNames.close),
337
+ style: semanticStyles === null || semanticStyles === void 0 ? void 0 : semanticStyles.close
294
338
  }, /*#__PURE__*/React.createElement(IconButton, {
295
339
  icon: /*#__PURE__*/React.createElement(CloseOutlined, null),
296
340
  effect: true,
@@ -11,6 +11,8 @@ import { __rest } from 'tslib';
11
11
  import React, { forwardRef } from 'react';
12
12
  import { getPrefixCls, cx } from '@hi-ui/classname';
13
13
  import { __DEV__ } from '@hi-ui/env';
14
+ import { useGlobalContext } from '@hi-ui/core';
15
+ import { useMergeSemantic } from '@hi-ui/use-merge-semantic';
14
16
  import Tooltip from '@hi-ui/tooltip';
15
17
  import { useLatestCallback } from '@hi-ui/use-latest';
16
18
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
@@ -27,6 +29,9 @@ var SideMenu = /*#__PURE__*/forwardRef(function (_a, ref) {
27
29
  _a$role = _a.role,
28
30
  role = _a$role === void 0 ? 'side-menu' : _a$role,
29
31
  className = _a.className,
32
+ style = _a.style,
33
+ classNamesProp = _a.classNames,
34
+ stylesProp = _a.styles,
30
35
  _a$defaultActiveId = _a.defaultActiveId,
31
36
  defaultActiveId = _a$defaultActiveId === void 0 ? null : _a$defaultActiveId,
32
37
  activeIdProp = _a.activeId,
@@ -37,8 +42,25 @@ var SideMenu = /*#__PURE__*/forwardRef(function (_a, ref) {
37
42
  onClick = _a.onClick,
38
43
  onMouseEnter = _a.onMouseEnter,
39
44
  onMouseLeave = _a.onMouseLeave,
40
- rest = __rest(_a, ["prefixCls", "role", "className", "defaultActiveId", "activeId", "selectedId", "data", "mini", "childrenContainerRef", "onClick", "onMouseEnter", "onMouseLeave"]);
41
- var cls = cx(prefixCls, className, (_cx = {}, _cx[prefixCls + "--mini"] = mini, _cx));
45
+ rest = __rest(_a, ["prefixCls", "role", "className", "style", "classNames", "styles", "defaultActiveId", "activeId", "selectedId", "data", "mini", "childrenContainerRef", "onClick", "onMouseEnter", "onMouseLeave"]);
46
+ var _useGlobalContext = useGlobalContext(),
47
+ sideMenuConfig = _useGlobalContext.sideMenu;
48
+ var _useMergeSemantic = useMergeSemantic({
49
+ classNamesList: [sideMenuConfig === null || sideMenuConfig === void 0 ? void 0 : sideMenuConfig.classNames, classNamesProp],
50
+ stylesList: [sideMenuConfig === null || sideMenuConfig === void 0 ? void 0 : sideMenuConfig.styles, stylesProp],
51
+ info: {
52
+ props: Object.assign(Object.assign({}, rest), {
53
+ data: data,
54
+ mini: mini,
55
+ defaultActiveId: defaultActiveId,
56
+ activeId: activeIdProp,
57
+ selectedId: selectedIdProp
58
+ })
59
+ }
60
+ }),
61
+ classNames = _useMergeSemantic.classNames,
62
+ styles = _useMergeSemantic.styles;
63
+ var cls = cx(prefixCls, className, classNames === null || classNames === void 0 ? void 0 : classNames.root, (_cx = {}, _cx[prefixCls + "--mini"] = mini, _cx));
42
64
  var _useUncontrolledState = useUncontrolledState(defaultActiveId, activeIdProp),
43
65
  activeId = _useUncontrolledState[0],
44
66
  tryChangeActiveId = _useUncontrolledState[1];
@@ -57,10 +79,13 @@ var SideMenu = /*#__PURE__*/forwardRef(function (_a, ref) {
57
79
  return /*#__PURE__*/React.createElement("div", Object.assign({
58
80
  ref: ref,
59
81
  role: role,
60
- className: cls
82
+ className: cls,
83
+ style: Object.assign(Object.assign({}, style), styles === null || styles === void 0 ? void 0 : styles.root)
61
84
  }, rest), /*#__PURE__*/React.createElement(Scrollbar, {
62
85
  onlyScrollVisible: true,
63
- axes: "y"
86
+ axes: "y",
87
+ className: classNames === null || classNames === void 0 ? void 0 : classNames.wrapper,
88
+ style: styles === null || styles === void 0 ? void 0 : styles.wrapper
64
89
  }, data.map(function (item) {
65
90
  var _cx2;
66
91
  var id = item.id,
@@ -68,16 +93,25 @@ var SideMenu = /*#__PURE__*/forwardRef(function (_a, ref) {
68
93
  icon = item.icon;
69
94
  return /*#__PURE__*/React.createElement("div", {
70
95
  key: id,
71
- className: cx(prefixCls + "-item-wrapper"),
96
+ className: cx(prefixCls + "-item-wrapper", classNames === null || classNames === void 0 ? void 0 : classNames.itemWrapper),
97
+ style: styles === null || styles === void 0 ? void 0 : styles.itemWrapper,
72
98
  onClick: function onClick(evt) {
73
99
  return handleClick(evt, id, item);
74
100
  },
75
101
  onMouseEnter: function onMouseEnter(evt) {
76
102
  var currentTarget = evt.currentTarget;
77
103
  var titleElement = currentTarget.querySelector("." + prefixCls + "-item__title");
104
+ if (!titleElement) {
105
+ handleMouseEnter(evt, id, item);
106
+ return;
107
+ }
78
108
  var scrollWidth = titleElement.scrollWidth,
79
- clientWidth = titleElement.clientWidth;
80
- if (scrollWidth > clientWidth) {
109
+ clientWidth = titleElement.clientWidth,
110
+ scrollHeight = titleElement.scrollHeight,
111
+ clientHeight = titleElement.clientHeight;
112
+ // 单行溢出:scrollWidth > clientWidth;多行(如 mini 2 行)溢出:scrollHeight > clientHeight
113
+ var isOverflow = scrollWidth > clientWidth || scrollHeight > clientHeight;
114
+ if (isOverflow) {
81
115
  Tooltip.open(currentTarget, {
82
116
  key: "side-menu-tooltip-" + id,
83
117
  title: title,
@@ -92,11 +126,27 @@ var SideMenu = /*#__PURE__*/forwardRef(function (_a, ref) {
92
126
  handleMouseLeave(evt, id, item);
93
127
  }
94
128
  }, /*#__PURE__*/React.createElement("div", {
95
- className: cx(prefixCls + "-item", (_cx2 = {}, _cx2[prefixCls + "-item--active"] = activeId === id, _cx2[prefixCls + "-item--mini"] = mini, _cx2[prefixCls + "-item--selected"] = selectedIdProp === id, _cx2))
129
+ className: cx(prefixCls + "-item", (_cx2 = {}, _cx2[prefixCls + "-item--active"] = activeId === id, _cx2[prefixCls + "-item--mini"] = mini, _cx2[prefixCls + "-item--selected"] = selectedIdProp === id, _cx2), classNames === null || classNames === void 0 ? void 0 : classNames.item),
130
+ style: styles === null || styles === void 0 ? void 0 : styles.item
96
131
  }, /*#__PURE__*/React.createElement("div", {
97
- className: cx(prefixCls + "-item__icon")
132
+ className: cx(prefixCls + "-item__icon", classNames === null || classNames === void 0 ? void 0 : classNames.itemIcon),
133
+ style: styles === null || styles === void 0 ? void 0 : styles.itemIcon
98
134
  }, icon), /*#__PURE__*/React.createElement("div", {
99
- className: cx(prefixCls + "-item__title")
135
+ className: cx(prefixCls + "-item__title", classNames === null || classNames === void 0 ? void 0 : classNames.itemTitle),
136
+ style: styles === null || styles === void 0 ? void 0 : styles.itemTitle,
137
+ ref: function ref(el) {
138
+ if (el) {
139
+ if (mini) {
140
+ if (el.clientHeight > 28) {
141
+ el.style.marginBlockEnd = '-28px';
142
+ } else {
143
+ el.style.marginBlockEnd = '';
144
+ }
145
+ } else {
146
+ el.style.marginBlockEnd = '';
147
+ }
148
+ }
149
+ }
100
150
  }, title)));
101
151
  })));
102
152
  });