@kdcloudjs/kdesign 1.3.9 → 1.4.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/es/menu/menu.js CHANGED
@@ -63,7 +63,7 @@ var Menu = function Menu(props) {
63
63
  restProps = __rest(_b, ["prefixCls", "mode", "inlineIndent", "forceSubMenuRender", "additionalTools", "onClick", "onOpenChange", "children", "className", "theme", "collapsed"]);
64
64
 
65
65
  var prefixCls = getPrefixCls(pkgPrefixCls, 'menu', customPrefixcls);
66
- devWarning(['inline', 'vertical', undefined].indexOf(mode) === -1, 'menu', "cannot found menu mode '".concat(mode, "'")); // const [collapsed, setCollapsed] = React.useState<boolean | undefined>(restProps.collapsed)
66
+ devWarning(['inline', 'vertical', undefined].indexOf(mode) === -1, 'menu', "cannot found menu mode '".concat(mode, "'"));
67
67
 
68
68
  var _React$useState = React.useState(''),
69
69
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -102,7 +102,6 @@ var Menu = function Menu(props) {
102
102
  }, [userOpenKeys]);
103
103
  useEffect(function () {
104
104
  if (userSelectedKey !== undefined && userOpenKeys !== undefined && Array.isArray(userOpenKeys)) {
105
- setSelectedKeyPath(userOpenKeys);
106
105
  setTimeout(function () {
107
106
  userOpenKeys.forEach(function (d) {
108
107
  openSubMenuSet.add(d);
@@ -116,8 +115,6 @@ var Menu = function Menu(props) {
116
115
  setSelectedKey(info.key);
117
116
  }
118
117
 
119
- setSelectedKeyPath(info.keyPath);
120
-
121
118
  if (mode !== 'inline' && openKeys.length > 0) {
122
119
  setOpenKeys([]);
123
120
  openSubMenuSet.clear();
@@ -173,6 +170,7 @@ var Menu = function Menu(props) {
173
170
  openKeys: openKeys,
174
171
  selectedKey: selectedKey,
175
172
  selectedKeyPath: selectedKeyPath,
173
+ setSelectedKeyPath: setSelectedKeyPath,
176
174
  theme: theme,
177
175
  triggerSubMenuAction: restProps.triggerSubMenuAction,
178
176
  forceSubMenuRender: forceSubMenuRender,
@@ -1,6 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
2
  import _extends from "@babel/runtime-corejs3/helpers/extends";
3
+ import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
3
4
  import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
5
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
4
6
 
5
7
  var __rest = this && this.__rest || function (s, e) {
6
8
  var t = {};
@@ -24,7 +26,7 @@ import devWarning from '../_utils/devwarning';
24
26
  export var MENU_ITEM_CONTAINER_NAME = 'menu-item-content-container';
25
27
 
26
28
  var InternalMenuItem = function InternalMenuItem(props, ref) {
27
- var _classNames;
29
+ var _context, _classNames;
28
30
 
29
31
  var _React$useContext = React.useContext(ConfigContext),
30
32
  getPrefixCls = _React$useContext.getPrefixCls,
@@ -43,6 +45,7 @@ var InternalMenuItem = function InternalMenuItem(props, ref) {
43
45
  collapsed = _a.collapsed,
44
46
  keyValue = _a.keyValue,
45
47
  selectedKey = _a.selectedKey,
48
+ setSelectedKeyPath = _a.setSelectedKeyPath,
46
49
  subMenuMode = _a.subMenuMode,
47
50
  inlineIndent = _a.inlineIndent,
48
51
  className = _a.className,
@@ -50,11 +53,13 @@ var InternalMenuItem = function InternalMenuItem(props, ref) {
50
53
  _a$paddingLeft = _a.paddingLeft,
51
54
  paddingLeft = _a$paddingLeft === void 0 ? 0 : _a$paddingLeft,
52
55
  style = _a.style,
53
- restProps = __rest(_a, ["prefixCls", "icon", "mode", "level", "disabled", "children", "collapsed", "keyValue", "selectedKey", "subMenuMode", "inlineIndent", "className", "handleOnClick", "paddingLeft", "style"]);
56
+ parentPath = _a.parentPath,
57
+ restProps = __rest(_a, ["prefixCls", "icon", "mode", "level", "disabled", "children", "collapsed", "keyValue", "selectedKey", "setSelectedKeyPath", "subMenuMode", "inlineIndent", "className", "handleOnClick", "paddingLeft", "style", "parentPath"]);
54
58
 
55
59
  devWarning(!keyValue && keyValue !== 0, 'menuitem', 'cannot found children in Menu.Item');
56
60
  var prefixCls = getPrefixCls(pkgPrefixCls, 'menu-item', customPrefixcls);
57
61
  var menuItemRef = ref || /*#__PURE__*/React.createRef();
62
+ var menuItemParentPath = Array.isArray(parentPath) ? _concatInstanceProperty(_context = []).call(_context, _toConsumableArray(parentPath), [keyValue]) : [keyValue];
58
63
 
59
64
  var renderItemChildren = function renderItemChildren(children) {
60
65
  if (typeof children === 'string') {
@@ -87,7 +92,7 @@ var InternalMenuItem = function InternalMenuItem(props, ref) {
87
92
  e.stopPropagation();
88
93
  var info = {
89
94
  key: keyValue,
90
- keyPath: [keyValue],
95
+ keyPath: menuItemParentPath,
91
96
  domEvent: e.nativeEvent
92
97
  };
93
98
  handleOnClick(info);
@@ -131,6 +136,11 @@ var InternalMenuItem = function InternalMenuItem(props, ref) {
131
136
  return renderItemChildren(children);
132
137
  };
133
138
 
139
+ React.useEffect(function () {
140
+ if (selectedKey && selectedKey === keyValue) {
141
+ setSelectedKeyPath(menuItemParentPath);
142
+ }
143
+ }, [selectedKey]);
134
144
  return /*#__PURE__*/React.createElement("li", _extends({
135
145
  ref: menuItemRef,
136
146
  className: classNames(className, (_classNames = {}, _defineProperty(_classNames, prefixCls, subMenuMode !== 'horizontal'), _defineProperty(_classNames, "".concat(prefixCls, "-collapsed"), collapsed && level === 1), _defineProperty(_classNames, "".concat(prefixCls, "-disabled"), disabled), _defineProperty(_classNames, "".concat(prefixCls, "-active"), selectedKey === keyValue), _classNames)),
@@ -104,65 +104,65 @@
104
104
  /* 多行显示省略号 */
105
105
  /* 单行显示省略号 */
106
106
  /** 浮层箭头样式 **/
107
- .hover {
107
+ .menu-dark-hover {
108
108
  background-color: var(--kd-c-menu-sub-color-background, #121319);
109
109
  color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff));
110
110
  }
111
- .active {
111
+ .menu-dark-active {
112
112
  background-color: var(--kd-c-menu-sub-color-background, #121319);
113
113
  color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff));
114
114
  }
115
- .active-inline-title {
116
- color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff)) !important;
117
- background: var(--kd-c-menu-color-background, #343848) !important;
115
+ .menu-dark-active-inline-title {
116
+ color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff));
117
+ background: var(--kd-c-menu-color-background, #343848);
118
118
  border: none;
119
119
  }
120
- .light {
120
+ .menu-light-base {
121
121
  color: var(--kd-c-menu-light-color-text, var(--kd-g-color-text-primary, #212121));
122
122
  background: #ffffff;
123
123
  }
124
- .light .kd-menu-item-disabled,
125
- .light .kd-menu-submenu-disabled {
126
- background-color: #fff !important;
124
+ .menu-light-base .kd-menu-item-disabled,
125
+ .menu-light-base .kd-menu-submenu-disabled {
126
+ background-color: #fff;
127
127
  }
128
- .light .kd-menu-submenu-sub {
128
+ .menu-light-base .kd-menu-submenu-sub {
129
129
  color: var(--kd-c-menu-light-color-text, var(--kd-g-color-text-primary, #212121));
130
- background: #FAFAFA;
130
+ background: #fafafa;
131
131
  }
132
- .light .kd-menu-item:hover {
132
+ .menu-light-base .kd-menu-item:not(.kd-menu-item-disabled):not(.kd-menu-item-active):hover {
133
133
  background-color: var(--kd-c-menu-light-color-background-hover, #f5f5f5);
134
134
  color: var(--kd-c-menu-light-color-text-hover, var(--kd-g-color-text-primary, #212121));
135
135
  border: none;
136
136
  }
137
- .light .kd-menu-item-hover,
138
- .light .kd-menu-submenu-hover {
137
+ .menu-light-base .kd-menu-item-hover,
138
+ .menu-light-base .kd-menu-submenu-hover {
139
139
  background-color: var(--kd-c-menu-light-color-background-hover, #f5f5f5);
140
140
  color: var(--kd-c-menu-light-color-text-hover, var(--kd-g-color-text-primary, #212121));
141
141
  border: none;
142
142
  }
143
- .light .kd-menu-item-active,
144
- .light .kd-menu-submenu-active {
145
- background-color: var(--kd-c-menu-light-color-background-active, #e3ebff) !important;
146
- color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3)) !important;
143
+ .menu-light-base .kd-menu-item-active,
144
+ .menu-light-base .kd-menu-submenu-active {
145
+ background-color: var(--kd-c-menu-light-color-background-active, #e3ebff);
146
+ color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3));
147
147
  border: none;
148
148
  }
149
- .light-default {
149
+ .menu-light-default {
150
150
  color: var(--kd-c-menu-light-color-text, var(--kd-g-color-text-primary, #212121));
151
151
  background: #ffffff;
152
152
  }
153
- .light-hover {
153
+ .menu-light-hover {
154
154
  background-color: var(--kd-c-menu-light-color-background-hover, #f5f5f5);
155
155
  color: var(--kd-c-menu-light-color-text-hover, var(--kd-g-color-text-primary, #212121));
156
156
  border: none;
157
157
  }
158
- .light-active {
159
- background-color: var(--kd-c-menu-light-color-background-active, #e3ebff) !important;
160
- color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3)) !important;
158
+ .menu-light-active {
159
+ background-color: var(--kd-c-menu-light-color-background-active, #e3ebff);
160
+ color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3));
161
161
  border: none;
162
162
  }
163
- .light-active-inline-title {
164
- color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3)) !important;
165
- background: #ffffff !important;
163
+ .menu-light-active-inline-title {
164
+ color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3));
165
+ background: #ffffff;
166
166
  border: none;
167
167
  }
168
168
  .kd-menu {
@@ -236,8 +236,8 @@
236
236
  }
237
237
  .kd-menu-item-disabled {
238
238
  cursor: not-allowed;
239
- color: var(--kd-c-menu-color-disabled, var(--kd-g-color-disabled, #b2b2b2)) !important;
240
- background-color: var(--kd-c-menu-color-background, #343848) !important;
239
+ color: var(--kd-c-menu-color-disabled, var(--kd-g-color-disabled, #b2b2b2));
240
+ background-color: var(--kd-c-menu-color-background, #343848);
241
241
  }
242
242
  .kd-menu-item-arrow {
243
243
  margin-left: auto;
@@ -310,8 +310,8 @@
310
310
  }
311
311
  .kd-menu-submenu-disabled {
312
312
  cursor: not-allowed;
313
- color: var(--kd-c-menu-color-disabled, var(--kd-g-color-disabled, #b2b2b2)) !important;
314
- background-color: var(--kd-c-menu-color-background, #343848) !important;
313
+ color: var(--kd-c-menu-color-disabled, var(--kd-g-color-disabled, #b2b2b2));
314
+ background-color: var(--kd-c-menu-color-background, #343848);
315
315
  }
316
316
  .kd-menu-submenu-arrow {
317
317
  margin-left: auto;
@@ -436,7 +436,7 @@
436
436
  .kd-menu-dark .kd-menu-submenu-sub-third {
437
437
  background: var(--kd-c-menu-sub-color-background, #121319);
438
438
  }
439
- .kd-menu-dark .kd-menu-item:hover {
439
+ .kd-menu-dark .kd-menu-item:not(.kd-menu-item-disabled):not(.kd-menu-item-active):hover {
440
440
  background-color: var(--kd-c-menu-sub-color-background, #121319);
441
441
  color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff));
442
442
  }
@@ -456,13 +456,13 @@
456
456
  }
457
457
  .kd-menu-inline.kd-menu-dark .kd-menu-item-active .kd-menu-submenu-title,
458
458
  .kd-menu-inline.kd-menu-dark .kd-menu-submenu-active .kd-menu-submenu-title {
459
- color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff)) !important;
460
- background: var(--kd-c-menu-color-background, #343848) !important;
459
+ color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff));
460
+ background: var(--kd-c-menu-color-background, #343848);
461
461
  border: none;
462
462
  }
463
- .kd-menu-inline.kd-menu-dark .kd-menu-submenu:not(.kd-menu-submenu-disabled) > .kd-menu-submenu-title:hover {
464
- color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff)) !important;
465
- background: var(--kd-c-menu-color-background, #343848) !important;
463
+ .kd-menu-inline.kd-menu-dark .kd-menu-submenu:not(.kd-menu-submenu-disabled):not(.kd-menu-submenu-active) > .kd-menu-submenu-title:hover {
464
+ color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff));
465
+ background: var(--kd-c-menu-color-background, #343848);
466
466
  border: none;
467
467
  }
468
468
  .kd-menu-light {
@@ -471,13 +471,13 @@
471
471
  }
472
472
  .kd-menu-light .kd-menu-item-disabled,
473
473
  .kd-menu-light .kd-menu-submenu-disabled {
474
- background-color: #fff !important;
474
+ background-color: #fff;
475
475
  }
476
476
  .kd-menu-light .kd-menu-submenu-sub {
477
477
  color: var(--kd-c-menu-light-color-text, var(--kd-g-color-text-primary, #212121));
478
- background: #FAFAFA;
478
+ background: #fafafa;
479
479
  }
480
- .kd-menu-light .kd-menu-item:hover {
480
+ .kd-menu-light .kd-menu-item:not(.kd-menu-item-disabled):not(.kd-menu-item-active):hover {
481
481
  background-color: var(--kd-c-menu-light-color-background-hover, #f5f5f5);
482
482
  color: var(--kd-c-menu-light-color-text-hover, var(--kd-g-color-text-primary, #212121));
483
483
  border: none;
@@ -490,17 +490,17 @@
490
490
  }
491
491
  .kd-menu-light .kd-menu-item-active,
492
492
  .kd-menu-light .kd-menu-submenu-active {
493
- background-color: var(--kd-c-menu-light-color-background-active, #e3ebff) !important;
494
- color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3)) !important;
493
+ background-color: var(--kd-c-menu-light-color-background-active, #e3ebff);
494
+ color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3));
495
495
  border: none;
496
496
  }
497
497
  .kd-menu-inline.kd-menu-light .kd-menu-item-active .kd-menu-submenu-title,
498
498
  .kd-menu-inline.kd-menu-light .kd-menu-submenu-active .kd-menu-submenu-title {
499
- color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3)) !important;
500
- background: #ffffff !important;
499
+ color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3));
500
+ background: #ffffff;
501
501
  border: none;
502
502
  }
503
- .kd-menu-popper .kd-menu-submenu:hover,
503
+ .kd-menu-popper .kd-menu-submenu:not(.kd-menu-submenu-disabled):not(.kd-menu-submenu-active):hover,
504
504
  .kd-menu-popper .kd-menu-submenu-hover {
505
505
  background-color: var(--kd-c-menu-sub-color-background, #121319);
506
506
  color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff));
@@ -527,7 +527,7 @@
527
527
  -webkit-box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
528
528
  box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
529
529
  }
530
- .kd-menu-popper .kd-menu-submenu-sub .kd-menu-item:hover,
530
+ .kd-menu-popper .kd-menu-submenu-sub .kd-menu-item:not(.kd-menu-item-disabled):not(.kd-menu-item-active):hover,
531
531
  .kd-menu-popper .kd-menu-submenu-sub .kd-menu-item-active {
532
532
  background-color: var(--kd-c-menu-sub-color-background, #121319);
533
533
  color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff));
@@ -563,13 +563,13 @@
563
563
  }
564
564
  .kd-menu-popper.light .kd-menu-item-disabled,
565
565
  .kd-menu-popper.light .kd-menu-submenu-disabled {
566
- background-color: #fff !important;
566
+ background-color: #fff;
567
567
  }
568
568
  .kd-menu-popper.light .kd-menu-submenu-sub {
569
569
  color: var(--kd-c-menu-light-color-text, var(--kd-g-color-text-primary, #212121));
570
- background: #FAFAFA;
570
+ background: #fafafa;
571
571
  }
572
- .kd-menu-popper.light .kd-menu-item:hover {
572
+ .kd-menu-popper.light .kd-menu-item:not(.kd-menu-item-disabled):not(.kd-menu-item-active):hover {
573
573
  background-color: var(--kd-c-menu-light-color-background-hover, #f5f5f5);
574
574
  color: var(--kd-c-menu-light-color-text-hover, var(--kd-g-color-text-primary, #212121));
575
575
  border: none;
@@ -582,7 +582,7 @@
582
582
  }
583
583
  .kd-menu-popper.light .kd-menu-item-active,
584
584
  .kd-menu-popper.light .kd-menu-submenu-active {
585
- background-color: var(--kd-c-menu-light-color-background-active, #e3ebff) !important;
586
- color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3)) !important;
585
+ background-color: var(--kd-c-menu-light-color-background-active, #e3ebff);
586
+ color: var(--kd-c-menu-light-color-text-active, var(--kd-g-color-theme, #5582f3));
587
587
  border: none;
588
588
  }
@@ -135,55 +135,55 @@
135
135
  }
136
136
 
137
137
  .@{menuitem-prefix-cls} {
138
- &:hover {
139
- .hover();
138
+ &:not(.@{menuitem-prefix-cls}-disabled):not(.@{menuitem-prefix-cls}-active):hover {
139
+ .menu-dark-hover();
140
140
  }
141
141
 
142
142
  &-active {
143
- .active()
143
+ .menu-dark-active()
144
144
  }
145
145
  }
146
146
 
147
147
  .@{menuitem-prefix-cls}-active, .@{submenu-prefix-cls}-active {
148
- .active()
148
+ .menu-dark-active()
149
149
  }
150
150
 
151
151
  .@{menuitem-prefix-cls}-hover, .@{submenu-prefix-cls}-hover {
152
- .hover()
152
+ .menu-dark-hover()
153
153
  }
154
154
  }
155
155
 
156
156
  .@{menu-inline-prefix-cls}.@{menu-dark-prefix-cls} {
157
157
  .@{menuitem-prefix-cls}-active, .@{submenu-prefix-cls}-active {
158
158
  .@{submenu-prefix-cls}-title {
159
- .active-inline-title()
159
+ .menu-dark-active-inline-title()
160
160
  }
161
161
  }
162
162
 
163
- .@{submenu-prefix-cls}:not(.@{submenu-prefix-cls}-disabled) {
163
+ .@{submenu-prefix-cls}:not(.@{submenu-prefix-cls}-disabled):not(.@{submenu-prefix-cls}-active) {
164
164
  > .@{submenu-prefix-cls}-title:hover {
165
- .active-inline-title()
165
+ .menu-dark-active-inline-title()
166
166
  }
167
167
  }
168
168
  }
169
169
 
170
170
  // light
171
171
  .@{menu-light-prefix-cls} {
172
- .light();
172
+ .menu-light-base();
173
173
  }
174
174
 
175
175
  .@{menu-inline-prefix-cls}.@{menu-light-prefix-cls} {
176
176
  .@{menuitem-prefix-cls}-active, .@{submenu-prefix-cls}-active {
177
177
  .@{submenu-prefix-cls}-title {
178
- .light-active-inline-title()
178
+ .menu-light-active-inline-title()
179
179
  }
180
180
  }
181
181
  }
182
182
 
183
183
  .@{menu-popper-prefix-cls} {
184
- .@{submenu-prefix-cls}:hover,
184
+ .@{submenu-prefix-cls}:not(.@{submenu-prefix-cls}-disabled):not(.@{submenu-prefix-cls}-active):hover,
185
185
  .@{submenu-prefix-cls}-hover {
186
- .hover();
186
+ .menu-dark-hover();
187
187
  }
188
188
 
189
189
  &.hidden {
@@ -206,9 +206,9 @@
206
206
  0 9px 28px 8px rgba(0, 0, 0, 0.05);
207
207
 
208
208
  .@{menuitem-prefix-cls} {
209
- &:hover,
209
+ &:not(.@{menuitem-prefix-cls}-disabled):not(.@{menuitem-prefix-cls}-active):hover,
210
210
  &-active {
211
- .hover()
211
+ .menu-dark-hover()
212
212
  }
213
213
  }
214
214
 
@@ -234,7 +234,7 @@
234
234
  }
235
235
 
236
236
  &.light {
237
- .light();
237
+ .menu-light-base();
238
238
  }
239
239
  }
240
240
 
@@ -24,6 +24,7 @@
24
24
  align-items: center;
25
25
  height: 50px;
26
26
  .ellipsis();
27
+
27
28
  & > span {
28
29
  .ellipsis();
29
30
  opacity: 1;
@@ -57,8 +58,8 @@
57
58
 
58
59
  &-disabled {
59
60
  cursor: not-allowed;
60
- color: @menu-color-disabled !important;
61
- background-color: @menu-color-background !important;
61
+ color: @menu-color-disabled;
62
+ background-color: @menu-color-background;
62
63
  }
63
64
 
64
65
  &-arrow {
@@ -78,68 +79,67 @@
78
79
  }
79
80
 
80
81
 
81
- .hover {
82
+ .menu-dark-hover {
82
83
  background-color: @menu-sub-color-background;
83
84
  color: @menu-sub-color-hover;
84
85
  }
85
86
 
86
- .active {
87
+ .menu-dark-active {
87
88
  background-color: @menu-sub-color-background;
88
89
  color: @menu-sub-color-hover;
89
90
  }
90
91
 
91
- .active-inline-title {
92
- color: @menu-sub-color-hover !important;
93
- background: @menu-color-background !important;
92
+ .menu-dark-active-inline-title {
93
+ color: @menu-sub-color-hover;
94
+ background: @menu-color-background;
94
95
  border: none;
95
96
  }
96
97
 
97
-
98
- .light {
99
- .light-default();
98
+ .menu-light-base {
99
+ .menu-light-default();
100
100
 
101
101
  .@{menuitem-prefix-cls}-disabled, .@{submenu-prefix-cls}-disabled {
102
- background-color: #fff !important;
102
+ background-color: #fff;
103
103
  }
104
104
 
105
105
  .@{submenu-prefix-cls}-sub {
106
106
  color: @menu-light-color;
107
- background: #FAFAFA;
107
+ background: #fafafa;
108
108
  }
109
109
 
110
- .@{menuitem-prefix-cls}:hover {
111
- .light-hover();
110
+ .@{menuitem-prefix-cls}:not(.@{menuitem-prefix-cls}-disabled):not(.@{menuitem-prefix-cls}-active):hover {
111
+ .menu-light-hover();
112
112
  }
113
113
 
114
114
  .@{menuitem-prefix-cls}-hover, .@{submenu-prefix-cls}-hover {
115
- .light-hover();
115
+ .menu-light-hover();
116
116
  }
117
117
 
118
118
  .@{menuitem-prefix-cls}-active, .@{submenu-prefix-cls}-active {
119
- .light-active();
119
+ .menu-light-active();
120
120
  }
121
121
  }
122
122
 
123
- .light-default {
123
+ .menu-light-default {
124
124
  color: @menu-light-color;
125
125
  background: #ffffff;
126
126
  }
127
127
 
128
- .light-hover {
128
+ .menu-light-hover {
129
129
  background-color: @menu-light-color-background-hover;
130
130
  color: @menu-light-color-hover;
131
131
  border: none;
132
132
  }
133
133
 
134
- .light-active {
135
- background-color: @menu-light-color-background-active !important;
136
- color: @menu-light-color-active !important;
134
+ .menu-light-active {
135
+ background-color: @menu-light-color-background-active;
136
+ color: @menu-light-color-active;
137
137
  border: none;
138
138
  }
139
139
 
140
- .light-active-inline-title {
141
- color: @menu-light-color-active !important;
142
- background: #ffffff !important;
140
+ .menu-light-active-inline-title {
141
+ color: @menu-light-color-active;
142
+ background: #ffffff;
143
143
  border: none;
144
144
  }
145
145
 
@@ -1,8 +1,9 @@
1
1
  import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
2
  import _extends from "@babel/runtime-corejs3/helpers/extends";
3
+ import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
3
4
  import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
4
- import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
5
5
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
6
+ import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
6
7
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
7
8
 
8
9
  var __rest = this && this.__rest || function (s, e) {
@@ -51,6 +52,7 @@ var SubMenu = function SubMenu(props) {
51
52
  keyValue = _a.keyValue,
52
53
  selectedKey = _a.selectedKey,
53
54
  selectedKeyPath = _a.selectedKeyPath,
55
+ setSelectedKeyPath = _a.setSelectedKeyPath,
54
56
  openKeys = _a.openKeys,
55
57
  triggerSubMenuAction = _a.triggerSubMenuAction,
56
58
  forceSubMenuRender = _a.forceSubMenuRender,
@@ -60,7 +62,7 @@ var SubMenu = function SubMenu(props) {
60
62
  handleOnOpenChange = _a.handleOnOpenChange,
61
63
  _a$paddingLeft = _a.paddingLeft,
62
64
  paddingLeft = _a$paddingLeft === void 0 ? 0 : _a$paddingLeft,
63
- restProps = __rest(_a, ["prefixCls", "theme", "mode", "title", "icon", "disabled", "children", "collapsed", "keyValue", "selectedKey", "selectedKeyPath", "openKeys", "triggerSubMenuAction", "forceSubMenuRender", "inlineIndent", "className", "style", "handleOnOpenChange", "paddingLeft"]);
65
+ restProps = __rest(_a, ["prefixCls", "theme", "mode", "title", "icon", "disabled", "children", "collapsed", "keyValue", "selectedKey", "selectedKeyPath", "setSelectedKeyPath", "openKeys", "triggerSubMenuAction", "forceSubMenuRender", "inlineIndent", "className", "style", "handleOnOpenChange", "paddingLeft"]);
64
66
 
65
67
  var isVertical = mode === 'vertical'; // 初始化level
66
68
 
@@ -68,6 +70,14 @@ var SubMenu = function SubMenu(props) {
68
70
  restProps.level = 1;
69
71
  }
70
72
 
73
+ if (Array.isArray(restProps.parentPath)) {
74
+ var _context;
75
+
76
+ restProps.parentPath = _concatInstanceProperty(_context = []).call(_context, _toConsumableArray(restProps.parentPath), [keyValue]);
77
+ } else {
78
+ restProps.parentPath = [keyValue];
79
+ }
80
+
71
81
  if (mode === 'inline') {
72
82
  restProps.subMenuMode = 'vertical';
73
83
  restProps.popupOffset = [];
@@ -189,10 +199,7 @@ var SubMenu = function SubMenu(props) {
189
199
  if (!_includesInstanceProperty(className).call(className, MENU_ITEM_CONTAINER_NAME)) {
190
200
  closeSubMenu();
191
201
  }
192
- }); // // 缩略模式自动关闭子菜单
193
- // if (triggerSubMenuAction === 'click' && mode === 'vertical' && collapsed) {
194
- // closeSubMenu()
195
- // }
202
+ });
196
203
 
197
204
  var handleMouseEvent = function handleMouseEvent(status) {
198
205
  if (disabled || triggerSubMenuAction === 'click') return;
@@ -208,11 +215,6 @@ var SubMenu = function SubMenu(props) {
208
215
  };
209
216
 
210
217
  var handleOnClick = function handleOnClick(info) {
211
- var _context;
212
-
213
- // 保存路径
214
- info.keyPath = _concatInstanceProperty(_context = info.keyPath).call(_context, [keyValue]);
215
-
216
218
  if (triggerSubMenuAction === 'click' && isVertical) {
217
219
  closeSubMenu();
218
220
  }
@@ -321,13 +323,15 @@ var SubMenu = function SubMenu(props) {
321
323
  mode: mode,
322
324
  theme: theme,
323
325
  selectedKey: selectedKey,
326
+ setSelectedKeyPath: setSelectedKeyPath,
324
327
  openKeys: openKeys,
325
328
  forceSubMenuRender: forceSubMenuRender,
326
329
  triggerSubMenuAction: triggerSubMenuAction,
327
330
  handleOnOpenChange: handleOnOpenChange,
328
331
  handleOnClick: handleOnClick,
329
332
  inlineIndent: inlineIndent,
330
- paddingLeft: curPaddingLeft
333
+ paddingLeft: curPaddingLeft,
334
+ parentPath: restProps.parentPath
331
335
  });
332
336
  }))), {
333
337
  arrow: false,
@@ -369,13 +373,15 @@ var SubMenu = function SubMenu(props) {
369
373
  collapsed: collapsed,
370
374
  mode: mode,
371
375
  selectedKey: selectedKey,
376
+ setSelectedKeyPath: setSelectedKeyPath,
372
377
  openKeys: openKeys,
373
378
  forceSubMenuRender: forceSubMenuRender,
374
379
  triggerSubMenuAction: triggerSubMenuAction,
375
380
  handleOnOpenChange: handleOnOpenChange,
376
381
  handleOnClick: handleOnClick,
377
382
  inlineIndent: inlineIndent,
378
- paddingLeft: curPaddingLeft
383
+ paddingLeft: curPaddingLeft,
384
+ parentPath: restProps.parentPath
379
385
  });
380
386
  }))));
381
387
  }
package/lib/menu/menu.js CHANGED
@@ -96,7 +96,7 @@ var Menu = function Menu(props) {
96
96
  restProps = __rest(_b, ["prefixCls", "mode", "inlineIndent", "forceSubMenuRender", "additionalTools", "onClick", "onOpenChange", "children", "className", "theme", "collapsed"]);
97
97
 
98
98
  var prefixCls = getPrefixCls(pkgPrefixCls, 'menu', customPrefixcls);
99
- (0, _devwarning.default)(['inline', 'vertical', undefined].indexOf(mode) === -1, 'menu', "cannot found menu mode '".concat(mode, "'")); // const [collapsed, setCollapsed] = React.useState<boolean | undefined>(restProps.collapsed)
99
+ (0, _devwarning.default)(['inline', 'vertical', undefined].indexOf(mode) === -1, 'menu', "cannot found menu mode '".concat(mode, "'"));
100
100
 
101
101
  var _React$useState = _react.default.useState(''),
102
102
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
@@ -135,7 +135,6 @@ var Menu = function Menu(props) {
135
135
  }, [userOpenKeys]);
136
136
  (0, _react.useEffect)(function () {
137
137
  if (userSelectedKey !== undefined && userOpenKeys !== undefined && Array.isArray(userOpenKeys)) {
138
- setSelectedKeyPath(userOpenKeys);
139
138
  setTimeout(function () {
140
139
  userOpenKeys.forEach(function (d) {
141
140
  openSubMenuSet.add(d);
@@ -149,8 +148,6 @@ var Menu = function Menu(props) {
149
148
  setSelectedKey(info.key);
150
149
  }
151
150
 
152
- setSelectedKeyPath(info.keyPath);
153
-
154
151
  if (mode !== 'inline' && openKeys.length > 0) {
155
152
  setOpenKeys([]);
156
153
  openSubMenuSet.clear();
@@ -206,6 +203,7 @@ var Menu = function Menu(props) {
206
203
  openKeys: openKeys,
207
204
  selectedKey: selectedKey,
208
205
  selectedKeyPath: selectedKeyPath,
206
+ setSelectedKeyPath: setSelectedKeyPath,
209
207
  theme: theme,
210
208
  triggerSubMenuAction: restProps.triggerSubMenuAction,
211
209
  forceSubMenuRender: forceSubMenuRender,