@kdcloudjs/kdesign 1.3.0 → 1.3.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.
Files changed (68) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/dist/kdesign-complete.less +178 -103
  3. package/dist/kdesign.css +170 -74
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +432 -300
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +4 -4
  8. package/dist/kdesign.min.js +8 -8
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/button/group.js +2 -1
  11. package/es/button/style/index.css +20 -19
  12. package/es/button/style/index.less +29 -27
  13. package/es/button/style/token.less +4 -4
  14. package/es/cascader/cascader.d.ts +7 -3
  15. package/es/cascader/cascader.js +8 -6
  16. package/es/checkbox/checkbox.js +20 -12
  17. package/es/checkbox/style/index.css +7 -0
  18. package/es/checkbox/style/index.less +7 -0
  19. package/es/config-provider/compDefaultProps.d.ts +0 -1
  20. package/es/config-provider/compDefaultProps.js +1 -2
  21. package/es/form/Field.js +53 -9
  22. package/es/grid/row.d.ts +1 -1
  23. package/es/icon/interface.js +1 -1
  24. package/es/menu/menu.d.ts +1 -1
  25. package/es/menu/menu.js +51 -19
  26. package/es/menu/menuItem.d.ts +1 -0
  27. package/es/menu/menuItem.js +14 -10
  28. package/es/menu/style/index.css +139 -53
  29. package/es/menu/style/index.less +101 -69
  30. package/es/menu/style/mixin.less +33 -1
  31. package/es/menu/style/token.less +4 -2
  32. package/es/menu/subMenu.d.ts +1 -1
  33. package/es/menu/subMenu.js +118 -112
  34. package/es/radio/radio.d.ts +1 -1
  35. package/es/radio/radio.js +18 -11
  36. package/es/select/select.js +21 -3
  37. package/es/style/icon/kdicon.css +3 -1
  38. package/es/style/icon/kdicon.woff +0 -0
  39. package/lib/button/group.js +2 -1
  40. package/lib/button/style/index.css +20 -19
  41. package/lib/button/style/index.less +29 -27
  42. package/lib/button/style/token.less +4 -4
  43. package/lib/cascader/cascader.d.ts +7 -3
  44. package/lib/cascader/cascader.js +10 -8
  45. package/lib/checkbox/checkbox.js +19 -11
  46. package/lib/checkbox/style/index.css +7 -0
  47. package/lib/checkbox/style/index.less +7 -0
  48. package/lib/config-provider/compDefaultProps.d.ts +0 -1
  49. package/lib/config-provider/compDefaultProps.js +1 -2
  50. package/lib/form/Field.js +54 -9
  51. package/lib/grid/row.d.ts +1 -1
  52. package/lib/icon/interface.js +1 -1
  53. package/lib/menu/menu.d.ts +1 -1
  54. package/lib/menu/menu.js +57 -23
  55. package/lib/menu/menuItem.d.ts +1 -0
  56. package/lib/menu/menuItem.js +16 -10
  57. package/lib/menu/style/index.css +139 -53
  58. package/lib/menu/style/index.less +101 -69
  59. package/lib/menu/style/mixin.less +33 -1
  60. package/lib/menu/style/token.less +4 -2
  61. package/lib/menu/subMenu.d.ts +1 -1
  62. package/lib/menu/subMenu.js +137 -135
  63. package/lib/radio/radio.d.ts +1 -1
  64. package/lib/radio/radio.js +30 -20
  65. package/lib/select/select.js +21 -3
  66. package/lib/style/icon/kdicon.css +3 -1
  67. package/lib/style/icon/kdicon.woff +0 -0
  68. package/package.json +1 -1
@@ -111,7 +111,8 @@ var InternalButtonGroup = function InternalButtonGroup(props, ref) {
111
111
 
112
112
  var popperProps = _extends(_extends({
113
113
  placement: 'bottomLeft',
114
- trigger: 'click'
114
+ trigger: 'click',
115
+ gap: 0
115
116
  }, buttonGoupProps), {
116
117
  prefixCls: btnGroupPrefixCls,
117
118
  defaultVisible: optionShow,
@@ -354,35 +354,36 @@
354
354
  .kd-btn-group-basic-icon {
355
355
  margin-left: 4px;
356
356
  }
357
- .kd-btn-group-trigger .kd-btn-primary {
358
- background: var(--kd-c-button-group-trigger-color-background, #4367c1);
357
+ .kd-btn-group-similar .kd-btn-group-trigger .kd-btn {
358
+ border-top-left-radius: 0;
359
+ border-bottom-left-radius: 0;
360
+ margin-left: -1px;
359
361
  }
360
- .kd-btn-group-trigger .kd-btn-primary:hover {
361
- background: var(--kd-c-button-group-trigger-color-background-hover, #4c74da);
362
- border-color: var(--kd-c-button-group-trigger-color-background-hover, #4c74da);
362
+ .kd-btn-group-similar .kd-btn-group-trigger .kd-btn-primary {
363
+ background: var(--kd-c-button-group-trigger-color-background, var(--kd-g-color-theme-7, #375cca));
363
364
  }
364
- .kd-btn-group-trigger .kd-btn-primary:active {
365
- background: var(--kd-c-button-group-trigger-color-background-active, #3B5AA9);
365
+ .kd-btn-group-similar .kd-btn-group-trigger .kd-btn-primary:hover {
366
+ background: var(--kd-c-button-group-trigger-color-background-hover, var(--kd-g-color-theme-6, #5582f3));
367
+ border-color: var(--kd-c-button-group-trigger-color-background-hover, var(--kd-g-color-theme-6, #5582f3));
366
368
  }
367
- .kd-btn-group-trigger .kd-btn-primary:disabled {
368
- background: var(--kd-c-button-group-trigger-color-background-disabled, #95a4c8) !important;
369
+ .kd-btn-group-similar .kd-btn-group-trigger .kd-btn-primary:active {
370
+ background: var(--kd-c-button-group-trigger-color-background-active, var(--kd-g-color-theme-8, #1f3ba1));
369
371
  }
370
- .kd-btn-group-trigger .kd-btn {
371
- margin-left: -1px;
372
+ .kd-btn-group-similar .kd-btn-group-trigger .kd-btn-primary:disabled {
373
+ background: var(--kd-c-button-group-trigger-color-background-disabled, var(--kd-g-color-theme-5, #87adff)) !important;
374
+ }
375
+ .kd-btn-group-similar > .kd-btn:first-child {
376
+ border-top-right-radius: 0;
377
+ border-bottom-right-radius: 0;
378
+ }
379
+ .kd-btn-group-similar > .kd-btn:first-child:hover {
380
+ z-index: 1;
372
381
  }
373
382
  .kd-btn-group .kd-btn-size-small,
374
383
  .kd-btn-group .kd-btn-size-middle,
375
384
  .kd-btn-group .kd-btn-size-large {
376
385
  min-width: unset;
377
386
  }
378
- .kd-btn-group .kd-btn:first-child {
379
- border-top-right-radius: 0;
380
- border-bottom-right-radius: 0;
381
- }
382
- .kd-btn-group .kd-btn:last-child {
383
- border-top-left-radius: 0;
384
- border-bottom-left-radius: 0;
385
- }
386
387
  .kd-btn-group .kd-dropdown-menu {
387
388
  padding: 0;
388
389
  }
@@ -259,25 +259,37 @@
259
259
  }
260
260
  }
261
261
 
262
- &-trigger {
263
- .@{btn-prefix-cls}-primary {
264
- background: @btn-group-trigger-color-background;
265
- &:hover {
266
- background: @btn-group-trigger-color-background-hover;
267
- border-color: @btn-group-trigger-color-background-hover;
268
- }
269
-
270
- &:active {
271
- background: @btn-group-trigger-color-background-active;
272
- }
273
-
274
- &:disabled {
275
- background: @btn-group-trigger-color-background-disabled !important;
262
+ &-similar {
263
+ .@{btn-prefix-cls}-group-trigger {
264
+ .@{btn-prefix-cls} {
265
+ border-top-left-radius: 0;
266
+ border-bottom-left-radius: 0;
267
+ margin-left: -1px;
268
+ &-primary {
269
+ background: @btn-group-trigger-color-background;
270
+ &:hover {
271
+ background: @btn-group-trigger-color-background-hover;
272
+ border-color: @btn-group-trigger-color-background-hover;
273
+ }
274
+
275
+ &:active {
276
+ background: @btn-group-trigger-color-background-active;
277
+ }
278
+
279
+ &:disabled {
280
+ background: @btn-group-trigger-color-background-disabled !important;
281
+ }
282
+ }
276
283
  }
277
284
  }
278
-
279
- .@{btn-prefix-cls} {
280
- margin-left: -1px;
285
+ &>.@{btn-prefix-cls} {
286
+ &:first-child {
287
+ border-top-right-radius: 0;
288
+ border-bottom-right-radius: 0;
289
+ &:hover {
290
+ z-index: 1;
291
+ }
292
+ }
281
293
  }
282
294
  }
283
295
 
@@ -287,16 +299,6 @@
287
299
  &-size-large {
288
300
  min-width: unset;
289
301
  }
290
-
291
- &:first-child {
292
- border-top-right-radius: 0;
293
- border-bottom-right-radius: 0;
294
- }
295
-
296
- &:last-child {
297
- border-top-left-radius: 0;
298
- border-bottom-left-radius: 0;
299
- }
300
302
  }
301
303
 
302
304
  .@{kd-prefix}-dropdown {
@@ -61,10 +61,10 @@
61
61
  @btn-group-dropdown-item-border-color: var(~'@{button-custom-prefix}-group-dropdown-item-border-color', #E5E5E5); // 集合按钮 下拉边框颜色
62
62
  @btn-group-dropdown-item-color-background-hover: var(~'@{button-custom-prefix}-group-dropdown-item-color-background-hover', #F5F5F5); // 集合按钮 下拉hover背景颜色
63
63
  @btn-group-dropdown-color-background: var(~'@{button-custom-prefix}-group-dropdown-color-background', #fff); // 集合按钮 下拉菜单背景颜色
64
- @btn-group-trigger-color-background: var(~'@{button-custom-prefix}-group-trigger-color-background', #4367c1);
65
- @btn-group-trigger-color-background-hover: var(~'@{button-custom-prefix}-group-trigger-color-background-hover', #4c74da);
66
- @btn-group-trigger-color-background-active: var(~'@{button-custom-prefix}-group-trigger-color-background-active', #3B5AA9);
67
- @btn-group-trigger-color-background-disabled: var(~'@{button-custom-prefix}-group-trigger-color-background-disabled', #95a4c8);
64
+ @btn-group-trigger-color-background: var(~'@{button-custom-prefix}-group-trigger-color-background', @color-theme-7);
65
+ @btn-group-trigger-color-background-hover: var(~'@{button-custom-prefix}-group-trigger-color-background-hover', @color-theme-6);
66
+ @btn-group-trigger-color-background-active: var(~'@{button-custom-prefix}-group-trigger-color-background-active', @color-theme-8);
67
+ @btn-group-trigger-color-background-disabled: var(~'@{button-custom-prefix}-group-trigger-color-background-disabled', @color-theme-5);
68
68
 
69
69
  // font
70
70
  @btn-g-font-weight: var(~'@{button-custom-prefix}-font-weight', @font-weight-light);
@@ -14,8 +14,8 @@ declare type FieldNames = {
14
14
  value: string;
15
15
  children: string;
16
16
  };
17
- export declare const PopupPlacement: ["topLeft", "topRight", "bottomLeft", "bottomRight"];
18
- export declare type PopupPlacementType = typeof PopupPlacement[number];
17
+ export declare const CascaderPlacement: ["topLeft", "topRight", "bottomLeft", "bottomRight"];
18
+ export declare type CascaderPlacementType = typeof CascaderPlacement[number];
19
19
  export declare type CascaderValueType = Array<string | number>;
20
20
  export declare type CascaderExpandTrigger = 'click' | 'hover';
21
21
  export interface CascaderProps extends PopperProps {
@@ -29,8 +29,10 @@ export interface CascaderProps extends PopperProps {
29
29
  allowClear?: boolean;
30
30
  placeholder?: string;
31
31
  popupVisible?: boolean;
32
+ popperVisible?: boolean;
32
33
  fieldNames?: FieldNames;
33
34
  popupClassName?: string;
35
+ popperClassName?: string;
34
36
  changeOnSelect?: boolean;
35
37
  notFoundContent?: string;
36
38
  value?: CascaderValueType;
@@ -40,10 +42,12 @@ export interface CascaderProps extends PopperProps {
40
42
  expandIcon?: React.ReactNode;
41
43
  defaultPopupVisible?: boolean;
42
44
  defaultValue?: CascaderValueType;
43
- popupPlacement?: PopupPlacementType;
45
+ popupPlacement?: CascaderPlacementType;
46
+ popperPlacement?: CascaderPlacementType;
44
47
  options?: Array<CascaderOptionType>;
45
48
  expandTrigger?: CascaderExpandTrigger;
46
49
  onPopupVisibleChange?: (visible: boolean) => void;
50
+ onPopperVisibleChange?: (visible: boolean) => void;
47
51
  loadData?: (selectedOptions: CascaderOptionType[]) => void;
48
52
  dropdownRender?: (menus: React.ReactNode) => React.ReactNode;
49
53
  getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
@@ -14,7 +14,7 @@ import usePopper from '../_utils/usePopper';
14
14
  import Input from '../input';
15
15
  import Icon from '../icon';
16
16
  import Empty from '../empty';
17
- export var PopupPlacement = tuple('topLeft', 'topRight', 'bottomLeft', 'bottomRight');
17
+ export var CascaderPlacement = tuple('topLeft', 'topRight', 'bottomLeft', 'bottomRight');
18
18
  var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
19
19
  var _React$useContext = React.useContext(ConfigContext),
20
20
  getPrefixCls = _React$useContext.getPrefixCls,
@@ -39,6 +39,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
39
39
  getPopupContainer = allProps.getPopupContainer,
40
40
  defaultPopupVisible = allProps.defaultPopupVisible,
41
41
  onPopupVisibleChange = allProps.onPopupVisibleChange,
42
+ onPopperVisibleChange = allProps.onPopperVisibleChange,
42
43
  customPrefixcls = allProps.prefixCls; // className前缀
43
44
 
44
45
  var prefixCls = getPrefixCls(pkgPrefixCls, 'cascader', customPrefixcls);
@@ -46,14 +47,14 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
46
47
  var triggerRef = React.useRef();
47
48
  var mergeRef = ref || pickerRef;
48
49
 
49
- var _React$useState = React.useState(!!props.popupVisible || defaultPopupVisible),
50
+ var _React$useState = React.useState(!!props.popperVisible || !!props.popupVisible || defaultPopupVisible),
50
51
  _React$useState2 = _slicedToArray(_React$useState, 2),
51
52
  visible = _React$useState2[0],
52
53
  setVisible = _React$useState2[1];
53
54
 
54
55
  React.useEffect(function () {
55
- setVisible(!!props.popupVisible);
56
- }, [props.popupVisible]);
56
+ setVisible(!!props.popperVisible || !!props.popupVisible);
57
+ }, [props.popperVisible, props.popupVisible]);
57
58
 
58
59
  var _React$useState3 = React.useState([options]),
59
60
  _React$useState4 = _slicedToArray(_React$useState3, 2),
@@ -200,6 +201,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
200
201
  var onVisibleChange = function onVisibleChange(visible) {
201
202
  setVisible(visible);
202
203
  onPopupVisibleChange && onPopupVisibleChange(visible);
204
+ onPopperVisibleChange && onPopperVisibleChange(visible);
203
205
  visible && setSelectedOptions(_sliceInstanceProperty(currentOptions).call(currentOptions, 0));
204
206
  };
205
207
 
@@ -252,8 +254,8 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
252
254
  trigger: 'click',
253
255
  getPopupContainer: getPopupContainer,
254
256
  prefixCls: "".concat(prefixCls, "-menus"),
255
- placement: allProps.popupPlacement,
256
- popperClassName: allProps.popupClassName,
257
+ placement: allProps.popperPlacement || allProps.popupPlacement,
258
+ popperClassName: allProps.popperClassName || allProps.popupClassName,
257
259
  getTriggerElement: function getTriggerElement() {
258
260
  return triggerRef.current;
259
261
  }
@@ -1,7 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
3
3
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
4
- import React, { useCallback, useContext, useEffect } from 'react';
4
+ import React, { useCallback, useContext, useEffect, useState, useRef } from 'react';
5
5
  import classNames from 'classnames';
6
6
  import ConfigContext from '../config-provider/ConfigContext';
7
7
  import { getCompProps } from '../_utils';
@@ -39,11 +39,12 @@ var InternalCheckbox = function InternalCheckbox(props, ref) {
39
39
  return isBoolean(checked) ? checked : defaultChecked;
40
40
  };
41
41
 
42
- var _React$useState = React.useState(getChecked()),
43
- _React$useState2 = _slicedToArray(_React$useState, 2),
44
- selected = _React$useState2[0],
45
- setSelected = _React$useState2[1];
42
+ var _useState = useState(getChecked()),
43
+ _useState2 = _slicedToArray(_useState, 2),
44
+ selected = _useState2[0],
45
+ setSelected = _useState2[1];
46
46
 
47
+ var labelRef = useRef(null);
47
48
  devWarning(CheckboxTypes.indexOf(checkboxType) === -1, 'checkbox', "cannot found checkbox type '".concat(checkboxType, "'"));
48
49
  devWarning(CheckboxSizes.indexOf(size) === -1, 'checkbox', "cannot found size type '".concat(size, "'"));
49
50
  var checkboxPrefixCls = getPrefixCls(prefixCls, 'checkbox', customPrefixcls);
@@ -70,14 +71,21 @@ var InternalCheckbox = function InternalCheckbox(props, ref) {
70
71
  useEffect(function () {
71
72
  isBoolean(checked) && checked !== selected && setSelected(checked);
72
73
  }, [checked, selected]);
74
+ useEffect(function () {
75
+ var handleRepeatClick = function handleRepeatClick(e) {
76
+ var element = e.target;
73
77
 
74
- var handleRepeatClick = function handleRepeatClick(e) {
75
- var element = e.target;
78
+ if (element.tagName !== 'INPUT') {
79
+ e.stopPropagation();
80
+ }
81
+ };
76
82
 
77
- if (element.tagName !== 'INPUT') {
78
- e.stopPropagation();
79
- }
80
- };
83
+ labelRef.current.addEventListener('click', handleRepeatClick);
84
+ return function () {
85
+ // eslint-disable-next-line react-hooks/exhaustive-deps
86
+ labelRef.current.removeEventListener('click', handleRepeatClick);
87
+ };
88
+ }, []);
81
89
 
82
90
  var getDefaultCheckbox = function getDefaultCheckbox() {
83
91
  var _context19, _context20;
@@ -88,7 +96,7 @@ var InternalCheckbox = function InternalCheckbox(props, ref) {
88
96
  React.createElement("label", {
89
97
  className: getRootClassName,
90
98
  style: style,
91
- onClick: handleRepeatClick
99
+ ref: labelRef
92
100
  }, /*#__PURE__*/React.createElement("span", {
93
101
  className: checkedWrapperClassName
94
102
  }, selected && /*#__PURE__*/React.createElement("span", {
@@ -151,6 +151,10 @@
151
151
  -ms-flex-align: center;
152
152
  align-items: center;
153
153
  z-index: 999;
154
+ -webkit-user-select: none;
155
+ -moz-user-select: none;
156
+ -ms-user-select: none;
157
+ user-select: none;
154
158
  }
155
159
  .kd-checkbox-children .kd-input-underline {
156
160
  background-color: transparent;
@@ -383,3 +387,6 @@
383
387
  .kd-checkbox-default.checked .kd-checkbox-children {
384
388
  color: var(--kd-c-checkbox-color-text-primary, #212121);
385
389
  }
390
+ .kd-checkbox-default-indeterminate .kd-checkbox-children {
391
+ color: var(--kd-c-checkbox-color-text-primary, #212121);
392
+ }
@@ -38,6 +38,8 @@
38
38
  justify-content: center;
39
39
  align-items: center;
40
40
  z-index: 999;
41
+ user-select: none;
42
+
41
43
  .kd-input-underline {
42
44
  background-color: transparent;
43
45
  border-bottom: none;
@@ -249,4 +251,9 @@
249
251
  color: @checkbox-font-color;
250
252
  }
251
253
  }
254
+ &-indeterminate {
255
+ .@{checkbox-prefix-cls}-children {
256
+ color: @checkbox-font-color;
257
+ }
258
+ }
252
259
  }
@@ -132,7 +132,6 @@ declare const compDefaultProps: {
132
132
  mode: string;
133
133
  defaultOpen: boolean;
134
134
  showArrow: boolean;
135
- showSearch: boolean;
136
135
  };
137
136
  Image: {
138
137
  preview: boolean;
@@ -137,8 +137,7 @@ var compDefaultProps = {
137
137
  borderType: 'underline',
138
138
  mode: 'single',
139
139
  defaultOpen: false,
140
- showArrow: true,
141
- showSearch: false
140
+ showArrow: true
142
141
  },
143
142
  Image: {
144
143
  preview: true
package/es/form/Field.js CHANGED
@@ -3,6 +3,7 @@ import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
3
3
  import _typeof from "@babel/runtime-corejs3/helpers/typeof";
4
4
  import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
5
5
  import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
6
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
6
7
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
7
8
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
8
9
  import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
@@ -52,8 +53,30 @@ var generateEventHandler = function generateEventHandler(handler, validateTrigge
52
53
  return eventHandler;
53
54
  };
54
55
 
56
+ var INNER_VALUE_PROPS_LIST = [{
57
+ name: 'Radio',
58
+ propName: 'checked'
59
+ }, {
60
+ name: 'Checkbox',
61
+ propName: 'checked'
62
+ }, {
63
+ name: 'Switch',
64
+ propName: 'checked'
65
+ }, {
66
+ name: 'Upload',
67
+ propName: 'fileList'
68
+ }, {
69
+ name: 'Transfer',
70
+ propName: 'targetKey'
71
+ }, {
72
+ name: 'RangePicker',
73
+ propName: 'ranges'
74
+ }];
75
+
55
76
  var Field = function Field(props) {
56
- var _classnames, _context2;
77
+ var _classnames;
78
+
79
+ var _a;
57
80
 
58
81
  devwarning(! /*#__PURE__*/React.isValidElement(props.children), 'Form.Item', 'Children of Form.Item is not a valid element');
59
82
  devwarning(!props.name, 'Form.Item', 'Form.Item must have a name');
@@ -97,8 +120,29 @@ var Field = function Field(props) {
97
120
  wrapperWidth = props.wrapperWidth,
98
121
  validateTrigger = props.validateTrigger,
99
122
  defaultValue = props.defaultValue,
100
- _props$valuePropName = props.valuePropName,
101
- valuePropName = _props$valuePropName === void 0 ? 'value' : _props$valuePropName;
123
+ valuePropName = props.valuePropName;
124
+ var childrenNode = null;
125
+ var innerValuePropName = 'value';
126
+ var childrenArray = toArray(children);
127
+
128
+ if (childrenArray.length) {
129
+ devwarning(childrenArray.length > 1, 'Form.Item', 'Form.Item must have only child');
130
+ childrenNode = childrenArray[0];
131
+ }
132
+
133
+ var innerDisplayName = (_a = childrenNode === null || childrenNode === void 0 ? void 0 : childrenNode.type) === null || _a === void 0 ? void 0 : _a.displayName;
134
+
135
+ if (valuePropName !== undefined) {
136
+ innerValuePropName = valuePropName;
137
+ } else if (innerDisplayName) {
138
+ var filter = _filterInstanceProperty(INNER_VALUE_PROPS_LIST).call(INNER_VALUE_PROPS_LIST, function (item) {
139
+ return innerDisplayName === item.name;
140
+ });
141
+
142
+ if (filter.length) {
143
+ innerValuePropName = filter[0].propName;
144
+ }
145
+ }
102
146
 
103
147
  var onStoreChange = function onStoreChange(stores, _namePathList, source) {
104
148
  var prev = stores.prev,
@@ -177,8 +221,8 @@ var Field = function Field(props) {
177
221
 
178
222
  var inputValue;
179
223
 
180
- if (Object.prototype.hasOwnProperty.call(evt, 'target') && _includesInstanceProperty(FormEventValuePropNames).call(FormEventValuePropNames, valuePropName)) {
181
- inputValue = (_a = evt.target) === null || _a === void 0 ? void 0 : _a[valuePropName];
224
+ if (Object.prototype.hasOwnProperty.call(evt, 'target') && _includesInstanceProperty(FormEventValuePropNames).call(FormEventValuePropNames, innerValuePropName)) {
225
+ inputValue = (_a = evt.target) === null || _a === void 0 ? void 0 : _a[innerValuePropName];
182
226
  } else {
183
227
  inputValue = evt;
184
228
  }
@@ -216,7 +260,7 @@ var Field = function Field(props) {
216
260
 
217
261
  var _ch$props = ch.props,
218
262
  chChange = _ch$props.onChange,
219
- chValue = _ch$props[valuePropName],
263
+ chValue = _ch$props[innerValuePropName],
220
264
  chDisabled = _ch$props.disabled,
221
265
  chDefaultValue = _ch$props.defaultValue;
222
266
 
@@ -248,7 +292,7 @@ var Field = function Field(props) {
248
292
  return _extends(_extends({}, rest), (_extends3 = {
249
293
  onChange: onChange,
250
294
  defaultValue: defaultValue
251
- }, _defineProperty(_extends3, valuePropName, fieldValue), _defineProperty(_extends3, "disabled", chDisabled || faDisabled), _extends3));
295
+ }, _defineProperty(_extends3, innerValuePropName, fieldValue), _defineProperty(_extends3, "disabled", chDisabled || faDisabled), _extends3));
252
296
  };
253
297
 
254
298
  return /*#__PURE__*/React.createElement("div", {
@@ -261,10 +305,10 @@ var Field = function Field(props) {
261
305
  }), /*#__PURE__*/React.createElement(FieldWrapper, {
262
306
  width: wrapperWidth,
263
307
  validateMessage: validateMessage
264
- }, _mapInstanceProperty(_context2 = toArray(children)).call(_context2, function (child, index) {
308
+ }, _mapInstanceProperty(childrenArray).call(childrenArray, function (child, index) {
265
309
  var keys = mergeProps(_extends(_extends(_defineProperty({
266
310
  disabled: disabled
267
- }, valuePropName, value), trigger), {
311
+ }, innerValuePropName, value), trigger), {
268
312
  key: index
269
313
  }), child);
270
314
  return child ? /*#__PURE__*/React.cloneElement(child, keys) : child;
package/es/grid/row.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- declare type Align = 'top' | 'middle' | 'bottom';
2
+ declare type Align = 'top' | 'middle' | 'bottom' | 'stretch';
3
3
  declare type Justify = 'start' | 'end' | 'center' | 'space-around' | 'space-between';
4
4
  interface gutterObject {
5
5
  xs?: number;
@@ -1,5 +1,5 @@
1
1
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
2
2
  import { tuple } from '../_utils/type';
3
3
  export var BaseIcon = ['arrow-up', 'arrow-down', 'arrow-left', 'arrow-right', 'first', 'last', 'double-arrow-left', 'double-arrow-right', 'push-down', 'put-top', 'put-bottom', 'put-on', 'put-off', 'switch-up', 'switch-down', 'all-border', 'top-border', 'right-border', 'bottom-border', 'left-border', 'left-extension', 'right-extension', 'left-unfold', 'right-unfold', 'unfoldmenu', 'foldmenu', 'enlarge', 'expand', 'close-full-screen', 'split', 'back', 'arrow', 'no-border', 'border', 'rough-border', 'align-left', 'align-right', 'align-center', 'vertical-center', 'delete-indentation', 'equal', 'greater-equal', 'not-equal', 'male', 'female', 'copy', 'print', 'lock', 'scanning', 'like', 'project', 'user-info', 'shutdown', 'image', 'delete-line', 'add-line', 'job-info', 'detect', 'cancel', 'stop', 'cell', 'fixed-shrink', 'attachment', 'location', 'reduce', 'resign-report', 'forbid', 'education', 'unlock', 'contract', 'filter', 'more', 'operating-element', 'fail', 'edit', 'have-attachment', 'hide', 'preview', 'unfold-all', 'wrap', 'filter-switch', 'qualification-info', 'cn', 'en', 'git', 'reset', 'preview-view', 'unfold', 'comment', 'shoppingcart', 'add-child', 'save', 'detail', 'table-setting', 'edit-view', 'edit-border', 'hyperlink', 'code', 'import', 'address', 'analysis', 'share', 'chart', 'fixed-window', 'order', 'phone', 'classify', 'feedback', 'menu', 'voice', 'search-border', 'material', 'finish', 'more-info', 'fixed', 'change', 'copy-code', 'return', 'qrcode', 'counterclockwise', 'list', 'switch', 'task-process', 'add', 'delete', 'add-word', 'two-window', 'spin', 'ordered-list', 'cooperation', 'quit', 'shrink', 'zoom', 'graffiti', 'experience', 'medical-report', 'bankcard', 'yunzhijia', 'customize', 'refresh', 'search', 'loadding', 'loadding-circle', 'right', 'close', 'upload', 'download', 'upload-cloud', 'waiting', 'warning', 'exclamatory', 'tips', 'setting', 'chart-display', 'date', 'more-item', 'international', 'little-k', 'bellOutlined', 'sigma'];
4
- export var SolidIcon = ['arrow-up-solid', 'arrow-right-solid', 'arrow-down-solid', 'arrow-left-solid', 'left-unfold-solid', 'right-unfold-solid', 'unlock-solid', 'multiply', 'division-solid', 'title-solid', 'communication-solid', 'fixed-solid', 'more-info-solid', 'timezone-solid', 'mosaic-solid', 'strike-solid', 'lock-solid', 'filter-solid', 'person-solid', 'bold-solid', 'delete-solid', 'processing-solid', 'tips-solid', 'quote-solid', 'oblique-solid', 'sun-solid', 'underline-solid', 'font-background-solid', 'eliminate-solid', 'font-color-solid', 'fx', 'refresh-solid', 'right-solid', 'location-solid', 'add-solid', 'warning-solid', 'close-solid', 'right-bold', 'close-bold', 'workbench', 'star', 'notice'];
4
+ export var SolidIcon = ['arrow-up-solid', 'arrow-right-solid', 'arrow-down-solid', 'arrow-left-solid', 'left-unfold-solid', 'right-unfold-solid', 'unlock-solid', 'multiply', 'division-solid', 'title-solid', 'communication-solid', 'fixed-solid', 'more-info-solid', 'timezone-solid', 'mosaic-solid', 'strike-solid', 'lock-solid', 'filter-solid', 'person-solid', 'bold-solid', 'delete-solid', 'processing-solid', 'tips-solid', 'quote-solid', 'oblique-solid', 'sun-solid', 'underline-solid', 'font-background-solid', 'eliminate-solid', 'font-color-solid', 'fx', 'refresh-solid', 'right-solid', 'location-solid', 'add-solid', 'warning-solid', 'close-solid', 'right-bold', 'close-bold', 'workbench', 'star', 'notice', 'dashboard'];
5
5
  export var IconTypes = tuple.apply(void 0, _concatInstanceProperty(BaseIcon).call(BaseIcon, SolidIcon));
package/es/menu/menu.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import React from 'react';
2
2
  import { MenuMode, MenuTheme, TriggerSubMenuAction, SubMenuChangeEventHandler } from './interface';
3
3
  import MenuItem from './menuItem';
4
4
  import SubMenu from './subMenu';
package/es/menu/menu.js CHANGED
@@ -1,10 +1,11 @@
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 _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
4
5
  import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
5
- import _spliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/splice";
6
- import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
6
+ import _Set from "@babel/runtime-corejs3/core-js-stable/set";
7
7
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
8
+ import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
8
9
 
9
10
  var __rest = this && this.__rest || function (s, e) {
10
11
  var t = {};
@@ -19,7 +20,7 @@ var __rest = this && this.__rest || function (s, e) {
19
20
  return t;
20
21
  };
21
22
 
22
- import * as React from 'react';
23
+ import React, { useEffect } from 'react';
23
24
  import { toArray } from '../_utils/react-children';
24
25
  import { ConfigContext } from '../config-provider';
25
26
  import { getCompProps } from '../_utils';
@@ -32,6 +33,8 @@ var isFunction = function isFunction(fn) {
32
33
  return fn && typeof fn === 'function';
33
34
  };
34
35
 
36
+ var openSubMenuSet = new _Set();
37
+
35
38
  var Menu = function Menu(props) {
36
39
  var _context2, _classNames;
37
40
 
@@ -42,6 +45,9 @@ var Menu = function Menu(props) {
42
45
  pkgPrefixCls = _React$useContext.prefixCls,
43
46
  userDefaultProps = _React$useContext.compDefaultProps;
44
47
 
48
+ var userSelectedKey = props.selectedKey,
49
+ userOpenKeys = props.openKeys;
50
+
45
51
  var _b = getCompProps('Menu', userDefaultProps, props),
46
52
  customPrefixcls = _b.prefixCls,
47
53
  mode = _b.mode,
@@ -57,20 +63,35 @@ var Menu = function Menu(props) {
57
63
  restProps = __rest(_b, ["prefixCls", "mode", "inlineIndent", "forceSubMenuRender", "additionalTools", "onClick", "onOpenChange", "children", "className", "theme", "collapsed"]);
58
64
 
59
65
  var prefixCls = getPrefixCls(pkgPrefixCls, 'menu', customPrefixcls);
60
- devWarning(['inline', 'vertical', undefined].indexOf(mode) === -1, 'menu', "cannot found menu mode '".concat(mode, "'"));
61
- var defaultSelectedKey = ('selectedKey' in restProps ? restProps.selectedKey : restProps.defaultSelectedKey) || '';
62
- var defaultOpenKeys = ('openKeys' in restProps ? restProps.openKeys : restProps.defaultOpenKeys) || []; // const [collapsed, setCollapsed] = React.useState<boolean | undefined>(restProps.collapsed)
66
+ devWarning(['inline', 'vertical', undefined].indexOf(mode) === -1, 'menu', "cannot found menu mode '".concat(mode, "'")); // const [collapsed, setCollapsed] = React.useState<boolean | undefined>(restProps.collapsed)
63
67
 
64
- var _React$useState = React.useState(defaultSelectedKey),
68
+ var _React$useState = React.useState(''),
65
69
  _React$useState2 = _slicedToArray(_React$useState, 2),
66
70
  selectedKey = _React$useState2[0],
67
71
  setSelectedKey = _React$useState2[1];
68
72
 
69
- var _React$useState3 = React.useState(defaultOpenKeys),
73
+ var _React$useState3 = React.useState([]),
70
74
  _React$useState4 = _slicedToArray(_React$useState3, 2),
71
75
  openKeys = _React$useState4[0],
72
- setOpenKeys = _React$useState4[1]; // triggerSubMenuAction内嵌模式固定为click,即该值设置只对垂直模式有效
76
+ setOpenKeys = _React$useState4[1];
73
77
 
78
+ useEffect(function () {
79
+ if (userSelectedKey !== undefined) {
80
+ setSelectedKey(userSelectedKey);
81
+ }
82
+ }, [userSelectedKey]);
83
+ useEffect(function () {
84
+ if (userOpenKeys !== undefined) {
85
+ setOpenKeys(userOpenKeys);
86
+ }
87
+ }, [userOpenKeys]);
88
+ useEffect(function () {
89
+ if (Array.isArray(userOpenKeys)) {
90
+ userOpenKeys.forEach(function (d) {
91
+ openSubMenuSet.add(d);
92
+ });
93
+ }
94
+ }, []); // triggerSubMenuAction内嵌模式固定为click,即该值设置只对垂直模式有效
74
95
 
75
96
  if (mode === 'inline') {
76
97
  restProps.triggerSubMenuAction = 'click';
@@ -80,7 +101,9 @@ var Menu = function Menu(props) {
80
101
 
81
102
 
82
103
  var handleOnClick = function handleOnClick(info) {
83
- setSelectedKey(info.key);
104
+ if (userSelectedKey === undefined) {
105
+ setSelectedKey(info.key);
106
+ }
84
107
 
85
108
  if (mode !== 'inline' && openKeys.length > 0) {
86
109
  setOpenKeys([]);
@@ -102,18 +125,24 @@ var Menu = function Menu(props) {
102
125
  }; // 子菜单展开关闭的回调
103
126
 
104
127
 
105
- var handleOnOpenChange = function handleOnOpenChange(openKey) {
106
- var index = openKeys.indexOf(openKey);
128
+ var handleOnOpenChange = function handleOnOpenChange(openKey, isAdd) {
129
+ var clean = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
107
130
 
108
- if (index > -1) {
109
- _spliceInstanceProperty(openKeys).call(openKeys, index, 1);
110
-
111
- setOpenKeys(openKeys);
131
+ if (clean) {
132
+ openSubMenuSet.clear();
112
133
  } else {
113
- setOpenKeys(_concatInstanceProperty(openKeys).call(openKeys, openKey));
134
+ if (isAdd) {
135
+ openSubMenuSet.add(openKey);
136
+ } else {
137
+ openSubMenuSet.delete(openKey);
138
+ }
139
+ }
140
+
141
+ if (userOpenKeys === undefined) {
142
+ setOpenKeys(_toConsumableArray(openSubMenuSet));
114
143
  }
115
144
 
116
- onOpenChange && onOpenChange(openKey);
145
+ onOpenChange && onOpenChange(_toConsumableArray(openSubMenuSet));
117
146
  };
118
147
 
119
148
  var renderMenu = function renderMenu() {
@@ -129,11 +158,14 @@ var Menu = function Menu(props) {
129
158
  mode: mode,
130
159
  openKeys: openKeys,
131
160
  selectedKey: selectedKey,
161
+ theme: theme,
132
162
  triggerSubMenuAction: restProps.triggerSubMenuAction,
133
163
  forceSubMenuRender: forceSubMenuRender,
134
164
  handleOnOpenChange: handleOnOpenChange,
135
165
  handleOnClick: handleOnClick,
136
- inlineIndent: inlineIndent
166
+ inlineIndent: inlineIndent,
167
+ userOpenKeys: userOpenKeys,
168
+ userSelectedKey: userSelectedKey
137
169
  });
138
170
  }));
139
171
  };