@kdcloudjs/kdesign 1.7.34 → 1.7.37

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 (109) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/kdesign-complete.less +244 -77
  3. package/dist/kdesign.css +263 -42
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +614 -168
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +5 -5
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/city-picker/city-picker.js +1 -1
  11. package/es/clipboard/clipboard.d.ts +21 -0
  12. package/es/clipboard/clipboard.js +106 -0
  13. package/es/clipboard/index.d.ts +4 -0
  14. package/es/clipboard/index.js +3 -0
  15. package/es/clipboard/style/css.js +2 -0
  16. package/es/clipboard/style/index.css +190 -0
  17. package/es/clipboard/style/index.d.ts +2 -0
  18. package/es/clipboard/style/index.js +2 -0
  19. package/es/clipboard/style/index.less +32 -0
  20. package/es/clipboard/style/mixin.less +39 -0
  21. package/es/clipboard/style/token.less +52 -0
  22. package/es/clipboard/util.d.ts +13 -0
  23. package/es/clipboard/util.js +197 -0
  24. package/es/color-picker/color-picker-panel.js +15 -6
  25. package/es/color-picker/color-picker.js +17 -3
  26. package/es/color-picker/interface.d.ts +5 -0
  27. package/es/color-picker/style/index.css +30 -13
  28. package/es/color-picker/style/index.less +49 -43
  29. package/es/config-provider/compDefaultProps.d.ts +5 -0
  30. package/es/config-provider/compDefaultProps.js +5 -0
  31. package/es/index.d.ts +1 -0
  32. package/es/index.js +2 -1
  33. package/es/locale/locale.d.ts +2 -0
  34. package/es/locale/zh-CN.d.ts +2 -0
  35. package/es/locale/zh-CN.js +3 -1
  36. package/es/message/content.js +1 -4
  37. package/es/select/interface.d.ts +1 -0
  38. package/es/select/select.js +15 -12
  39. package/es/select/style/index.css +12 -9
  40. package/es/select/style/index.less +22 -12
  41. package/es/select/style/token.less +1 -0
  42. package/es/tree/style/index.css +22 -15
  43. package/es/tree/style/index.less +33 -18
  44. package/es/tree/tree.d.ts +1 -0
  45. package/es/tree/tree.js +29 -13
  46. package/es/tree/treeHooks.d.ts +2 -2
  47. package/es/tree/treeHooks.js +11 -6
  48. package/es/tree/treeNode.d.ts +2 -3
  49. package/es/tree/treeNode.js +6 -5
  50. package/es/tree/utils/treeUtils.d.ts +2 -2
  51. package/es/tree/utils/treeUtils.js +5 -6
  52. package/es/tree-select/interface.d.ts +1 -0
  53. package/es/tree-select/style/index.css +7 -4
  54. package/es/tree-select/style/index.less +12 -4
  55. package/es/tree-select/style/token.less +1 -0
  56. package/es/tree-select/tree-select.js +6 -2
  57. package/lib/city-picker/city-picker.js +1 -1
  58. package/lib/clipboard/clipboard.d.ts +21 -0
  59. package/lib/clipboard/clipboard.js +121 -0
  60. package/lib/clipboard/index.d.ts +4 -0
  61. package/lib/clipboard/index.js +11 -0
  62. package/lib/clipboard/style/css.js +4 -0
  63. package/lib/clipboard/style/index.css +190 -0
  64. package/lib/clipboard/style/index.d.ts +2 -0
  65. package/lib/clipboard/style/index.js +4 -0
  66. package/lib/clipboard/style/index.less +32 -0
  67. package/lib/clipboard/style/mixin.less +39 -0
  68. package/lib/clipboard/style/token.less +52 -0
  69. package/lib/clipboard/util.d.ts +13 -0
  70. package/lib/clipboard/util.js +204 -0
  71. package/lib/color-picker/color-picker-panel.js +16 -7
  72. package/lib/color-picker/color-picker.js +17 -3
  73. package/lib/color-picker/interface.d.ts +5 -0
  74. package/lib/color-picker/style/index.css +30 -13
  75. package/lib/color-picker/style/index.less +49 -43
  76. package/lib/config-provider/compDefaultProps.d.ts +5 -0
  77. package/lib/config-provider/compDefaultProps.js +5 -0
  78. package/lib/index.d.ts +1 -0
  79. package/lib/index.js +7 -0
  80. package/lib/locale/locale.d.ts +2 -0
  81. package/lib/locale/zh-CN.d.ts +2 -0
  82. package/lib/locale/zh-CN.js +3 -1
  83. package/lib/message/content.js +1 -4
  84. package/lib/select/interface.d.ts +1 -0
  85. package/lib/select/select.js +15 -12
  86. package/lib/select/style/index.css +12 -9
  87. package/lib/select/style/index.less +22 -12
  88. package/lib/select/style/token.less +1 -0
  89. package/lib/style/components.less +1 -0
  90. package/lib/tree/style/index.css +22 -15
  91. package/lib/tree/style/index.less +33 -18
  92. package/lib/tree/tree.d.ts +1 -0
  93. package/lib/tree/tree.js +28 -12
  94. package/lib/tree/treeHooks.d.ts +2 -2
  95. package/lib/tree/treeHooks.js +10 -5
  96. package/lib/tree/treeNode.d.ts +2 -3
  97. package/lib/tree/treeNode.js +6 -5
  98. package/lib/tree/utils/treeUtils.d.ts +2 -2
  99. package/lib/tree/utils/treeUtils.js +5 -6
  100. package/lib/tree-select/interface.d.ts +1 -0
  101. package/lib/tree-select/style/index.css +7 -4
  102. package/lib/tree-select/style/index.less +12 -4
  103. package/lib/tree-select/style/token.less +1 -0
  104. package/lib/tree-select/tree-select.js +6 -2
  105. package/package.json +1 -1
  106. package/es/color-picker/utils/hooks/useOnClickOutside.d.ts +0 -2
  107. package/es/color-picker/utils/hooks/useOnClickOutside.js +0 -16
  108. package/lib/color-picker/utils/hooks/useOnClickOutside.d.ts +0 -2
  109. package/lib/color-picker/utils/hooks/useOnClickOutside.js +0 -23
@@ -26,8 +26,12 @@ var InternalSelect = function InternalSelect(props, ref) {
26
26
  var _useContext = useContext(ConfigContext),
27
27
  getPrefixCls = _useContext.getPrefixCls,
28
28
  prefixCls = _useContext.prefixCls,
29
- userDefaultProps = _useContext.compDefaultProps;
29
+ userDefaultProps = _useContext.compDefaultProps,
30
+ locale = _useContext.locale;
30
31
  var selectProps = getCompProps('Select', userDefaultProps, props);
32
+ var selectLangMsg = locale.getCompLangMsg({
33
+ componentName: 'Select'
34
+ });
31
35
  var size = selectProps.size,
32
36
  value = selectProps.value,
33
37
  autoFocus = selectProps.autoFocus,
@@ -63,7 +67,8 @@ var InternalSelect = function InternalSelect(props, ref) {
63
67
  _selectProps$popperSt = selectProps.popperStyle,
64
68
  popperStyle = _selectProps$popperSt === void 0 ? {} : _selectProps$popperSt,
65
69
  tagRender = selectProps.tagRender,
66
- virtualListProps = selectProps.virtualListProps;
70
+ virtualListProps = selectProps.virtualListProps,
71
+ status = selectProps.status;
67
72
  var isMultiple = mode === 'multiple'; // 是否多选
68
73
  var _useMergedState = useMergedState(undefined, {
69
74
  value: value,
@@ -123,7 +128,7 @@ var InternalSelect = function InternalSelect(props, ref) {
123
128
  // 多选底部样式
124
129
  var multipleFooterCls = classNames(_defineProperty({}, "".concat(selectPrefixCls, "-multiple-footer"), true));
125
130
  // 多选,单选公共样式
126
- var commCls = classNames((_classNames6 = {}, _defineProperty(_classNames6, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames6, _concatInstanceProperty(_context = "".concat(selectPrefixCls, "-size-")).call(_context, size), size), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-wrapper"), true), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-show-search"), isShowSearch && focusd), _classNames6));
131
+ var commCls = classNames((_classNames6 = {}, _defineProperty(_classNames6, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames6, _concatInstanceProperty(_context = "".concat(selectPrefixCls, "-size-")).call(_context, size), size), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-wrapper"), true), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-show-search"), isShowSearch && focusd), _defineProperty(_classNames6, "".concat(selectPrefixCls, "-error"), status === 'error'), _classNames6));
127
132
  useEffect(function () {
128
133
  if (typeof props.visible !== 'undefined') {
129
134
  setOptionShow(props.visible);
@@ -568,16 +573,20 @@ var InternalSelect = function InternalSelect(props, ref) {
568
573
  className: dropDownCls,
569
574
  style: dropdownStyle,
570
575
  ref: dropDownRef
571
- }, !dropdownRender && childrenToRender.length > 0 ? dropRender(eleOptionList, heightStyle) : null, renderNotContent(), /*#__PURE__*/React.createElement("div", null, dropdownRender ? dropdownRender(dropRender(childrenToRender, heightStyle)) : null), isMultiple && realChildren.length > 0 ? /*#__PURE__*/React.createElement("div", {
576
+ }, !dropdownRender && childrenToRender.length > 0 ? dropRender(eleOptionList, heightStyle) : null, renderNotContent(), /*#__PURE__*/React.createElement("div", null, dropdownRender ? dropdownRender(dropRender(eleOptionList, heightStyle)) : null), isMultiple && realChildren.length > 0 ? /*#__PURE__*/React.createElement("div", {
572
577
  className: multipleFooterCls
573
578
  }, /*#__PURE__*/React.createElement(Checkbox, {
574
579
  style: checkboxStyle,
575
580
  checked: checked,
576
581
  indeterminate: indeterminate,
577
582
  onChange: handleSelectAll
578
- }, "\u5168\u9009"), /*#__PURE__*/React.createElement("span", {
583
+ }, selectLangMsg === null || selectLangMsg === void 0 ? void 0 : selectLangMsg.selectAll), /*#__PURE__*/React.createElement("span", {
579
584
  className: "".concat(selectPrefixCls, "-multiple-footer-hadSelected")
580
- }, "\u5DF2\u9009", /*#__PURE__*/React.createElement("span", null, selectedVal.length), "\u9879")) : null));
585
+ }, locale.getLangMsg('Select', 'seleted', {
586
+ size: /*#__PURE__*/React.createElement("span", {
587
+ className: "".concat(selectPrefixCls, "-multiple-footer-hadSelected-number")
588
+ }, selectedVal.length)
589
+ }))) : null));
581
590
  };
582
591
  // 处理多选tag
583
592
  var handleMaxTagHolder = useCallback(function () {
@@ -778,12 +787,6 @@ var InternalSelect = function InternalSelect(props, ref) {
778
787
  _spliceInstanceProperty(selectMulOpts).call(selectMulOpts, -1, 1);
779
788
  setMulOptions(_toConsumableArray(selectMulOpts));
780
789
  onChange && onChange(labelInValue ? selectMulOpts : selectedVal, selectMulOpts);
781
- // !isMultiple
782
- } else if (which === KeyCode.BACKSPACE && allowClear && !isMultiple) {
783
- setInitValue('');
784
- onClear && onClear('');
785
- setSearchValue('');
786
- onChange && onChange(undefined);
787
790
  }
788
791
  // optionsList: up、down、enter
789
792
  if (optionShow) {
@@ -296,7 +296,7 @@
296
296
  .kd-select-icon-clear:hover {
297
297
  color: var(--kd-c-select-color-border-hover, var(--kd-g-color-theme, #5582f3));
298
298
  }
299
- .kd-select-focused {
299
+ .kd-select-focused:not(.kd-select-error) {
300
300
  border-color: var(--kd-c-select-color-border-foucs, var(--kd-g-color-theme, #5582f3)) !important;
301
301
  }
302
302
  .kd-select-placeholder {
@@ -323,7 +323,7 @@
323
323
  .kd-select-underline {
324
324
  border-bottom: 1px solid var(--kd-c-select-color-border, var(--kd-g-color-input, #999));
325
325
  }
326
- .kd-select-underline:hover:not(.kd-select-multiple-disabled):not(.kd-select-single-disabled) {
326
+ .kd-select-underline:hover:not(.kd-select-multiple-disabled):not(.kd-select-single-disabled):not( .kd-select-error) {
327
327
  border-bottom: 1px solid var(--kd-c-select-color-border-hover, var(--kd-g-color-theme, #5582f3));
328
328
  }
329
329
  .kd-select-bordered {
@@ -331,7 +331,7 @@
331
331
  padding-left: var(--kd-c-select-bordered-spacing-padding-left, 8px) !important;
332
332
  border-radius: var(--kd-c-select-bordered-radius-border, 2px);
333
333
  }
334
- .kd-select-bordered:hover:not(.kd-select-multiple-disabled):not(.kd-select-single-disabled) {
334
+ .kd-select-bordered:hover:not(.kd-select-multiple-disabled):not(.kd-select-single-disabled):not( .kd-select-error) {
335
335
  border: 1px solid var(--kd-c-select-color-border-hover, var(--kd-g-color-theme, #5582f3));
336
336
  }
337
337
  .kd-select-bordered .kd-select-suffix {
@@ -522,7 +522,7 @@
522
522
  white-space: nowrap;
523
523
  text-overflow: ellipsis;
524
524
  }
525
- .kd-select .kd-select-single-focused {
525
+ .kd-select .kd-select-single-focused:not(.kd-select-error) {
526
526
  border-color: var(--kd-c-select-color-border-foucs, var(--kd-g-color-theme, #5582f3)) !important;
527
527
  }
528
528
  .kd-select .kd-select-single-disabled {
@@ -698,14 +698,17 @@
698
698
  color: #999999;
699
699
  padding-left: 12px;
700
700
  }
701
- .kd-select-multiple-footer-hadSelected > span {
701
+ .kd-select-multiple-footer-hadSelected-number {
702
702
  color: var(--kd-c-select-footer-color-text-selected, #0e5fd8);
703
703
  padding: 0 2px;
704
704
  }
705
- .kd-select.topLeft.hidden,
706
- .kd-select.bottomLeft.hidden,
707
- .kd-select.topRight.hidden,
708
- .kd-select.bottomRight.hidden {
705
+ .kd-select-error:not(.kd-select-single-disabled):not(.kd-select-multiple-disabled) {
706
+ border-color: var(--kd-c-select-color-error, var(--kd-g-color-error, #fb2323));
707
+ }
708
+ .kd-select-dropdown-panel.topLeft.hidden,
709
+ .kd-select-dropdown-panel.bottomLeft.hidden,
710
+ .kd-select-dropdown-panel.topRight.hidden,
711
+ .kd-select-dropdown-panel.bottomRight.hidden {
709
712
  opacity: 0;
710
713
  visibility: hidden;
711
714
  -webkit-transition: all calc(0.3s - 0.1s) cubic-bezier(0.4, 0, 0.6, 1);
@@ -59,7 +59,7 @@
59
59
  }
60
60
  }
61
61
 
62
- &-focused {
62
+ &-focused:not(.@{select-prefix-cls}-error) {
63
63
  .focusColor();
64
64
  }
65
65
  &-placeholder {
@@ -83,7 +83,9 @@
83
83
 
84
84
  &-underline {
85
85
  border-bottom: 1px solid @select-g-color-border;
86
- &:hover:not(.@{select-prefix-cls}-multiple-disabled):not(.@{select-prefix-cls}-single-disabled) {
86
+ &:hover:not(.@{select-prefix-cls}-multiple-disabled):not(.@{select-prefix-cls}-single-disabled):not(
87
+ .@{select-prefix-cls}-error
88
+ ) {
87
89
  border-bottom: 1px solid @select-g-color-border-hover;
88
90
  }
89
91
  }
@@ -92,7 +94,9 @@
92
94
  border: 1px solid @select-border-g-color-border;
93
95
  padding-left: @select-bordered !important;
94
96
  border-radius: @select-border-radius-border;
95
- &:hover:not(.@{select-prefix-cls}-multiple-disabled):not(.@{select-prefix-cls}-single-disabled) {
97
+ &:hover:not(.@{select-prefix-cls}-multiple-disabled):not(.@{select-prefix-cls}-single-disabled):not(
98
+ .@{select-prefix-cls}-error
99
+ ) {
96
100
  border: 1px solid @select-g-color-border-hover;
97
101
  }
98
102
 
@@ -265,7 +269,7 @@
265
269
  .over();
266
270
  }
267
271
  }
268
- &-focused {
272
+ &-focused:not(.@{select-prefix-cls}-error) {
269
273
  .focusColor();
270
274
  }
271
275
  &-disabled {
@@ -431,7 +435,7 @@
431
435
  &-hadSelected {
432
436
  color: #999999;
433
437
  padding-left: 12px;
434
- > span {
438
+ &-number {
435
439
  color: @select-footer-g-text-color-selected;
436
440
  padding: 0 2px;
437
441
  }
@@ -439,12 +443,18 @@
439
443
  }
440
444
  }
441
445
 
442
- &.topLeft.hidden,
443
- &.bottomLeft.hidden,
444
- &.topRight.hidden,
445
- &.bottomRight.hidden {
446
- opacity: 0;
447
- visibility: hidden;
448
- transition: all calc(@transition-duration - 0.1s) @ease;
446
+ &-error:not(.@{select-prefix-cls}-single-disabled):not(.@{select-prefix-cls}-multiple-disabled) {
447
+ border-color: @select-error-color;
448
+ }
449
+
450
+ &-dropdown-panel {
451
+ &.topLeft.hidden,
452
+ &.bottomLeft.hidden,
453
+ &.topRight.hidden,
454
+ &.bottomRight.hidden {
455
+ opacity: 0;
456
+ visibility: hidden;
457
+ transition: all calc(@transition-duration - 0.1s) @ease;
458
+ }
449
459
  }
450
460
  }
@@ -22,6 +22,7 @@
22
22
  @select-single-color-text: var(~'@{select-custom-prefix}-single-color-text', @color-text-primary);
23
23
  @select-clear-color: var(~'@{select-custom-prefix}-icon-clear-color-text', #d9d9d9);
24
24
  @select-clear-color-hover: var(~'@{select-custom-prefix}-icon-clear-color-text-hover', #999);
25
+ @select-error-color: var(~'@{select-custom-prefix}-color-error', @color-error);
25
26
 
26
27
  // font
27
28
  @select-list-font-size: var(~'@{select-custom-prefix}-dropdown-font-size', 12px); // 下拉列表文字大小
@@ -143,10 +143,24 @@
143
143
  -ms-flex-negative: 0;
144
144
  flex-shrink: 0;
145
145
  }
146
- .kd-tree-plantom {
146
+ .kd-tree-show-line .kd-tree-node-indent {
147
+ position: relative;
148
+ }
149
+ .kd-tree-show-line .kd-tree-node-indent::before {
147
150
  position: absolute;
148
- min-width: 100%;
149
- z-index: -1;
151
+ left: 50%;
152
+ -webkit-transform: translateX(-50%);
153
+ transform: translateX(-50%);
154
+ width: 1px;
155
+ border-left: 1px solid #d9d9d9;
156
+ content: '';
157
+ -webkit-box-sizing: border-box;
158
+ box-sizing: border-box;
159
+ top: 0;
160
+ bottom: 0;
161
+ }
162
+ .kd-tree-show-line .kd-tree-node-indent-active::before {
163
+ border-color: var(--kd-c-tree-color-theme, var(--kd-g-color-theme, #5582f3));
150
164
  }
151
165
  .kd-tree-node-root {
152
166
  position: relative;
@@ -192,20 +206,10 @@
192
206
  display: -webkit-box;
193
207
  display: -ms-flexbox;
194
208
  display: flex;
195
- width: 1px;
196
- border-top: 0;
197
- border-left: 11px;
198
- border-bottom: 0;
199
- border-right: 10px;
200
- border-color: white;
201
- border-style: solid;
209
+ width: var(--kd-c-tree-expand-icon-sizing-width, 16px);
210
+ margin-right: 6px;
202
211
  height: 100%;
203
212
  cursor: default;
204
- opacity: 0;
205
- }
206
- .kd-tree-node-indent-line {
207
- background-color: black;
208
- opacity: 1;
209
213
  }
210
214
  .kd-tree-node-icon {
211
215
  cursor: pointer;
@@ -316,6 +320,9 @@
316
320
  width: 100%;
317
321
  height: 100%;
318
322
  }
323
+ .kd-tree-node-draggabled.kd-tree-node-dragging .kd-tree-node-indent::before {
324
+ border-color: transparent;
325
+ }
319
326
  .kd-tree-node-drag-over {
320
327
  background-color: var(--kd-c-tree-node-drag-over-color-background, #E3EBFF);
321
328
  -webkit-box-shadow: inset 0 0 0 2px var(--kd-c-tree-node-drag-over-color-border, #5582f3);
@@ -19,10 +19,26 @@
19
19
  min-width: 100%;
20
20
  flex-shrink: 0;
21
21
  }
22
- &-plantom {
23
- position: absolute;
24
- min-width: 100%;
25
- z-index: -1;
22
+
23
+ &-show-line {
24
+ .@{tree-node-prefix-cls}-indent {
25
+ position: relative;
26
+ &::before {
27
+ position: absolute;
28
+ left: 50%;
29
+ transform: translateX(-50%);
30
+ width: 1px;
31
+ border-left: 1px solid #d9d9d9;
32
+ content: '';
33
+ box-sizing: border-box;
34
+ top: 0;
35
+ bottom: 0;
36
+ }
37
+
38
+ &-active::before {
39
+ border-color: @tree-color-theme;
40
+ }
41
+ }
26
42
  }
27
43
  }
28
44
 
@@ -56,21 +72,13 @@
56
72
 
57
73
  &-indent {
58
74
  display: flex;
59
- width: 1px;
60
- border-top: 0;
61
- border-left: 11px;
62
- border-bottom: 0;
63
- border-right: 10px;
64
- border-color: white;
65
- border-style: solid;
75
+ width: @tree-expand-icon-width;
76
+ margin-right: 6px;
77
+
66
78
  height: 100%;
67
79
  cursor: default;
68
- opacity: 0;
69
- }
70
- &-indent-line {
71
- background-color: black;
72
- opacity: 1;
73
80
  }
81
+
74
82
  &-icon {
75
83
  cursor: pointer;
76
84
  height: @tree-expand-icon-height;
@@ -135,6 +143,12 @@
135
143
  align-items: center;
136
144
  width: 100%;
137
145
  height: 100%;
146
+
147
+ &.@{tree-node-prefix-cls}-dragging {
148
+ .@{tree-node-prefix-cls}-indent::before {
149
+ border-color: transparent;
150
+ }
151
+ }
138
152
  }
139
153
 
140
154
  &-drag-over {
@@ -143,13 +157,14 @@
143
157
  }
144
158
 
145
159
  &-drag-line {
146
- &-top, &-bottom {
160
+ &-top,
161
+ &-bottom {
147
162
  position: absolute;
148
163
  left: 0;
149
164
  top: 0;
150
165
  width: 100%;
151
166
  border-top: 2px solid @tree-node-drag-line-border-color;
152
-
167
+
153
168
  &::before {
154
169
  content: '';
155
170
  width: 4px;
package/es/tree/tree.d.ts CHANGED
@@ -70,5 +70,6 @@ export declare type KeysDataType = {
70
70
  export declare type PosDataType = {
71
71
  [key: string]: TreeNodeData;
72
72
  };
73
+ export declare type SearchStatus = 'NONE' | 'SEARCH_START' | 'SEARCH_DONE';
73
74
  declare const Tree: React.ForwardRefExoticComponent<TreeProps & React.RefAttributes<unknown>>;
74
75
  export default Tree;
package/es/tree/tree.js CHANGED
@@ -6,6 +6,7 @@ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable
6
6
  import _Set from "@babel/runtime-corejs3/core-js-stable/set";
7
7
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
8
8
  import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
9
+ import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
9
10
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
10
11
  var __rest = this && this.__rest || function (s, e) {
11
12
  var t = {};
@@ -15,7 +16,7 @@ var __rest = this && this.__rest || function (s, e) {
15
16
  }
16
17
  return t;
17
18
  };
18
- import React, { useContext, useCallback, useEffect } from 'react';
19
+ import React, { useContext, useCallback, useEffect, useMemo } from 'react';
19
20
  import classNames from 'classnames';
20
21
  import cloneDeep from 'lodash/cloneDeep';
21
22
  import ConfigContext from '../config-provider/ConfigContext';
@@ -26,6 +27,7 @@ import { getChecked, getHalfChecked, addKeys, flattenAll, delKey, getFilterData,
26
27
  import { useChecked, useExpand, useSelect } from './treeHooks';
27
28
  import isBoolean from 'lodash/isBoolean';
28
29
  var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
30
+ var _classNames;
29
31
  var _useContext = useContext(ConfigContext),
30
32
  getPrefixCls = _useContext.getPrefixCls,
31
33
  prefixCls = _useContext.prefixCls,
@@ -79,9 +81,10 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
79
81
  onlyExpandOnClickIcon = _TreeProps$onlyExpand === void 0 ? false : _TreeProps$onlyExpand,
80
82
  loadData = TreeProps.loadData,
81
83
  notFoundContent = TreeProps.notFoundContent,
82
- others = __rest(TreeProps, ["prefixCls", "treeData", "virtual", "showIcon", "switcherIcon", "icon", "checkable", "checkStrictly", "disabled", "draggable", "scrollToKey", "expandedKeys", "checkedKeys", "defaultExpandRoot", "defaultExpandAll", "defaultExpandParent", "defaultExpandedKeys", "defaultCheckedKeys", "defaultSelectedKeys", "height", "onCheck", "onExpand", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect", "selectedKeys", "setTreeNodeStyle", "setTreeNodeClassName", "estimatedItemSize", "style", "className", "filterTreeNode", "filterValue", "expandOnClickNode", "onlyExpandOnClickIcon", "loadData", "notFoundContent"]);
84
+ showLine = TreeProps.showLine,
85
+ others = __rest(TreeProps, ["prefixCls", "treeData", "virtual", "showIcon", "switcherIcon", "icon", "checkable", "checkStrictly", "disabled", "draggable", "scrollToKey", "expandedKeys", "checkedKeys", "defaultExpandRoot", "defaultExpandAll", "defaultExpandParent", "defaultExpandedKeys", "defaultCheckedKeys", "defaultSelectedKeys", "height", "onCheck", "onExpand", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect", "selectedKeys", "setTreeNodeStyle", "setTreeNodeClassName", "estimatedItemSize", "style", "className", "filterTreeNode", "filterValue", "expandOnClickNode", "onlyExpandOnClickIcon", "loadData", "notFoundContent", "showLine"]);
83
86
  var treePrefixCls = getPrefixCls(prefixCls, 'tree', customPrefixcls); // 树样式前缀
84
- var treeNodeClassName = classNames(className, _defineProperty({}, "".concat(treePrefixCls), true));
87
+ var treeNodeClassName = classNames(className, (_classNames = {}, _defineProperty(_classNames, "".concat(treePrefixCls), true), _defineProperty(_classNames, "".concat(treePrefixCls, "-show-line"), showLine), _classNames));
85
88
  var treeRootClassName = "".concat(treePrefixCls, "-root");
86
89
  var estimatedItemSize = innerEstimatedItemSize; // 节点高度
87
90
  var _React$useMemo = React.useMemo(function () {
@@ -125,17 +128,21 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
125
128
  _React$useState12 = _slicedToArray(_React$useState11, 2),
126
129
  loadingKeys = _React$useState12[0],
127
130
  setLoadingKeys = _React$useState12[1];
128
- var _React$useState13 = React.useState([]),
131
+ var _React$useState13 = React.useState('NONE'),
129
132
  _React$useState14 = _slicedToArray(_React$useState13, 2),
130
- searchExpandedKeys = _React$useState14[0],
131
- setSearchExpandedKeys = _React$useState14[1];
133
+ searchStatus = _React$useState14[0],
134
+ setSearchStatus = _React$useState14[1];
132
135
  var isSearching = React.useMemo(function () {
133
136
  return typeof filterTreeNode === 'function' && !!filterValue;
134
137
  }, [filterValue]);
135
138
  useEffect(function () {
136
- setSearchExpandedKeys([]);
139
+ if (isSearching) {
140
+ setSearchStatus('SEARCH_START');
141
+ } else {
142
+ setSearchStatus('NONE');
143
+ }
137
144
  }, [filterValue]);
138
- var _useExpand = useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchExpandedKeys),
145
+ var _useExpand = useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus),
139
146
  _useExpand2 = _slicedToArray(_useExpand, 2),
140
147
  expandedKeys = _useExpand2[0],
141
148
  setExpandedKeys = _useExpand2[1];
@@ -220,12 +227,9 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
220
227
  node: node,
221
228
  expanded: expanded
222
229
  });
223
- if (isSearching) {
224
- var newSearchExpandedKeys = expanded ? addKeys(searchExpandedKeys, [key]) : delKey(searchExpandedKeys, [key]);
225
- setSearchExpandedKeys(newSearchExpandedKeys);
226
- }
227
230
  setScrollKey(undefined);
228
231
  setIsInit(false);
232
+ setSearchStatus('SEARCH_DONE');
229
233
  if (expanded && loadData) {
230
234
  handleNodeLoad(loadedKeys, loadingKeys, node);
231
235
  }
@@ -370,6 +374,16 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
370
374
  useEffect(function () {
371
375
  setCheckedKeys(checkedKeys);
372
376
  }, [checkedKeys, setCheckedKeys]);
377
+ var isSelectedNodeChildrenKey = function isSelectedNodeChildrenKey() {
378
+ var parentKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
379
+ var key = Array.isArray(selectedKeys) ? selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys[0] : selectedKeys;
380
+ return _includesInstanceProperty(parentKeys).call(parentKeys, key);
381
+ };
382
+ var seletedKeyLevel = useMemo(function () {
383
+ var _a;
384
+ var key = Array.isArray(selectedKeys) ? selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys[0] : selectedKeys;
385
+ return (_a = keysData === null || keysData === void 0 ? void 0 : keysData[key]) === null || _a === void 0 ? void 0 : _a.level;
386
+ }, [keysData, selectedKeys]);
373
387
  var renderTreeNode = function renderTreeNode(item) {
374
388
  var checked = getChecked(checkedKeys, item.key);
375
389
  var indeterminate = getHalfChecked(halfCheckedKeys, item.key);
@@ -404,9 +418,11 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
404
418
  item.onlyExpandOnClickIcon = onlyExpandOnClickIcon;
405
419
  item.loading = loadingKeys.has(item.key) && !loadedKeys.has(item.key);
406
420
  item.loadData = loadData;
421
+ item.isActiveLine = showLine && isSelectedNodeChildrenKey(item.pathParentKeys);
407
422
  return /*#__PURE__*/React.createElement(TreeNode, _extends({}, item, {
408
423
  key: item.key,
409
- ref: treeNodeRef
424
+ ref: treeNodeRef,
425
+ activeLevel: seletedKeyLevel
410
426
  }));
411
427
  };
412
428
  return /*#__PURE__*/React.createElement("div", _extends({
@@ -1,9 +1,9 @@
1
- import { TreeNodeData, KeysDataType } from './tree';
1
+ import { TreeNodeData, KeysDataType, SearchStatus } from './tree';
2
2
  import React from 'react';
3
3
  export declare const useViewportHeight: (height: number, listRef: React.RefObject<HTMLElement>) => number[];
4
4
  export declare const useVisibleDataMemo: (virtual: boolean, filterData: TreeNodeData[], viewportHeight: number, estimatedItemSize: number, start: number) => TreeNodeData[][];
5
5
  export declare const usePlantomHeightEffect: (plantomRef: React.RefObject<HTMLElement>, filterData: TreeNodeData[], estimatedItemSize: number) => void;
6
6
  export declare const useChecked: (checkStrictly: boolean, checkedKeysProps: string[], defaultCheckedKeys: string[], _flattenAllData: any[], _maxLevel: number, checkable: boolean, keysData: KeysDataType) => readonly [string[], string[], React.Dispatch<React.SetStateAction<string[]>>, React.Dispatch<React.SetStateAction<string[]>>];
7
- export declare const useExpand: (flattenAllData: any[], expandedKeysProps: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, scrollKey: string, isInit: boolean, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, searchExpandedKeys: string[]) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
7
+ export declare const useExpand: (flattenAllData: any[], expandedKeysProps: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, scrollKey: string, isInit: boolean, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, searchStatus: SearchStatus) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
8
8
  export declare const useScrollToKey: (scrollKey: string, index: number, estimatedItemSize: number, scrollRef: any, viewportHeight: number, treeNodePrefixCls: string) => void;
9
9
  export declare const useSelect: (selectedKeysProps: string[], defaultSelectedKeys: string[]) => readonly [string[], React.Dispatch<React.SetStateAction<string[]>>];
@@ -1,7 +1,7 @@
1
1
  import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
2
2
  import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
3
3
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
4
- import React, { useEffect, useState } from 'react';
4
+ import React, { useEffect, useState, useRef } from 'react';
5
5
  import { getInitCheckededKeys, getDataCheckededStateStrictly, getInitExpandedKeys, getPos, getAllParentKeys } from './utils/treeUtils';
6
6
  export var useViewportHeight = function useViewportHeight(height, listRef) {
7
7
  var _React$useState = React.useState(0),
@@ -59,22 +59,22 @@ export var useChecked = function useChecked(checkStrictly, checkedKeysProps, def
59
59
  }, [nextHalfCheckedKeys]);
60
60
  return [checkedKeys, halfCheckedKeys, setCheckedKeys, setHalfCheckedKeys];
61
61
  };
62
- export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchExpandedKeys) {
62
+ export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching, keysData, searchStatus) {
63
63
  var expandScrollkeys = [];
64
64
  if (scrollKey) {
65
65
  var pos = getPos(flattenAllData, scrollKey);
66
66
  expandScrollkeys = getAllParentKeys(flattenAllData, pos);
67
67
  }
68
68
  var initialExpandedKeys = React.useMemo(function () {
69
- return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, isSearching, keysData, searchExpandedKeys, isInit);
70
- }, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching, keysData, searchExpandedKeys, isInit]);
69
+ return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, isSearching, keysData, isInit, searchStatus);
70
+ }, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching, keysData, isInit, searchStatus]);
71
71
  var _React$useState7 = React.useState(initialExpandedKeys),
72
72
  _React$useState8 = _slicedToArray(_React$useState7, 2),
73
73
  expandedKeys = _React$useState8[0],
74
74
  setExpandedKeys = _React$useState8[1];
75
75
  React.useEffect(function () {
76
76
  setExpandedKeys(initialExpandedKeys);
77
- }, [flattenAllData, expandedKeysProps, searchExpandedKeys, defaultExpandAll, defaultExpandedKeys, defaultExpandRoot, defaultExpandParent, scrollKey]);
77
+ }, [flattenAllData, expandedKeysProps, defaultExpandAll, defaultExpandedKeys, defaultExpandRoot, defaultExpandParent, scrollKey, searchStatus]);
78
78
  return [expandedKeys, setExpandedKeys];
79
79
  };
80
80
  export var useScrollToKey = function useScrollToKey(scrollKey, index, estimatedItemSize, scrollRef, viewportHeight, treeNodePrefixCls) {
@@ -115,8 +115,13 @@ export var useSelect = function useSelect(selectedKeysProps, defaultSelectedKeys
115
115
  _useState2 = _slicedToArray(_useState, 2),
116
116
  selectedKeys = _useState2[0],
117
117
  setSelectedKeys = _useState2[1];
118
+ var mounting = useRef(true);
118
119
  useEffect(function () {
119
- selectedKeysProps && setSelectedKeys(selectedKeysProps);
120
+ if (mounting.current) {
121
+ mounting.current = false;
122
+ return;
123
+ }
124
+ setSelectedKeys(selectedKeysProps);
120
125
  }, [selectedKeysProps]);
121
126
  return [selectedKeys, setSelectedKeys];
122
127
  };
@@ -10,9 +10,8 @@ export interface TreeNodeProps {
10
10
  draggable?: boolean;
11
11
  disableCheckbox?: boolean;
12
12
  icon?: React.ReactNode | ((props: any) => React.ReactNode);
13
- showLine?: boolean | {
14
- showLeafIcon: boolean;
15
- };
13
+ isActiveLine?: boolean;
14
+ activeLevel?: number;
16
15
  showIcon?: boolean;
17
16
  selected?: boolean;
18
17
  style?: Map<string, string>;
@@ -41,7 +41,8 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props) {
41
41
  hasChildNode = TreeNodeProps.hasChildNode,
42
42
  expand = TreeNodeProps.expand,
43
43
  title = TreeNodeProps.title,
44
- showLine = TreeNodeProps.showLine,
44
+ isActiveLine = TreeNodeProps.isActiveLine,
45
+ activeLevel = TreeNodeProps.activeLevel,
45
46
  showIcon = TreeNodeProps.showIcon,
46
47
  selected = TreeNodeProps.selected,
47
48
  setDragNode = TreeNodeProps.setDragNode,
@@ -62,7 +63,7 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props) {
62
63
  onDragEnd = TreeNodeProps.onDragEnd,
63
64
  onDrop = TreeNodeProps.onDrop,
64
65
  onSelect = TreeNodeProps.onSelect,
65
- others = __rest(TreeNodeProps, ["nodeKey", "prefixCls", "selectable", "checkable", "className", "icon", "switcherIcon", "disabled", "draggable", "pos", "checked", "level", "getDragNode", "hasChildNode", "expand", "title", "showLine", "showIcon", "selected", "setDragNode", "style", "indeterminate", "estimatedItemSize", "dragOver", "dropPosition", "expandOnClickNode", "onlyExpandOnClickIcon", "loading", "onExpand", "onCheck", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect"]);
66
+ others = __rest(TreeNodeProps, ["nodeKey", "prefixCls", "selectable", "checkable", "className", "icon", "switcherIcon", "disabled", "draggable", "pos", "checked", "level", "getDragNode", "hasChildNode", "expand", "title", "isActiveLine", "activeLevel", "showIcon", "selected", "setDragNode", "style", "indeterminate", "estimatedItemSize", "dragOver", "dropPosition", "expandOnClickNode", "onlyExpandOnClickIcon", "loading", "onExpand", "onCheck", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect"]);
66
67
  var nodeData = React.useMemo(function () {
67
68
  return _extends({
68
69
  selectable: selectable,
@@ -133,12 +134,11 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props) {
133
134
  return icon;
134
135
  };
135
136
  var indent = function indent() {
136
- var _classNames;
137
137
  var indentArr = [];
138
- var className = classNames((_classNames = {}, _defineProperty(_classNames, "".concat(treeNodePrefixCls, "-indent"), true), _defineProperty(_classNames, "".concat(treeNodePrefixCls, "-indent-line"), !!showLine), _classNames));
139
138
  for (var i = 0; i < level; i++) {
139
+ var _classNames;
140
140
  indentArr.push( /*#__PURE__*/React.createElement("span", {
141
- className: className,
141
+ className: classNames((_classNames = {}, _defineProperty(_classNames, "".concat(treeNodePrefixCls, "-indent"), true), _defineProperty(_classNames, "".concat(treeNodePrefixCls, "-indent-active"), !!isActiveLine && i === activeLevel), _classNames)),
142
142
  key: i,
143
143
  style: {
144
144
  height: "".concat(estimatedItemSize)
@@ -244,6 +244,7 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props) {
244
244
  }, [expandOnClickNode, handleExpandIconClick, handleSelect, onlyExpandOnClickIcon]);
245
245
  var handleDragStart = React.useCallback(function (e) {
246
246
  if (!draggable) return;
247
+ e.target.classList.add("".concat(treeNodePrefixCls, "-dragging"));
247
248
  setDragNode(nodeData);
248
249
  onDragStart && onDragStart(e, props);
249
250
  }, [draggable, setDragNode, nodeData, onDragStart, props]);
@@ -1,4 +1,4 @@
1
- import { TreeNodeData, KeysDataType } from '../tree';
1
+ import { TreeNodeData, KeysDataType, SearchStatus } from '../tree';
2
2
  /**
3
3
  * 打平所有数组,并添加pos位置信息,
4
4
  * 方便根据expandKeys等计算节点的expand,checkedKeys计算节点checked状态
@@ -60,6 +60,6 @@ export declare const getDataCheckededStateStrictly: (checkedKeys: string[]) => {
60
60
  };
61
61
  export declare const delKey: (prevKeys: string[], delKeys: string[]) => never[] & string[];
62
62
  export declare const getAllNodeKeys: (data: any[]) => string[];
63
- export declare const getInitExpandedKeys: (data: any[], expandedKeys: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, expandScrollkeys: string[] | undefined, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, searchExpandedKeys: string[], isInit: boolean) => string[];
63
+ export declare const getInitExpandedKeys: (data: any[], expandedKeys: string[], defaultExpandedKeys: string[], defaultExpandAll: boolean, defaultExpandRoot: boolean, defaultExpandParent: boolean, expandScrollkeys: string[] | undefined, filterTreeNode: FunctionConstructor, isSearching: boolean, keysData: KeysDataType, isInit: boolean, searchStatus: SearchStatus) => string[];
64
64
  export declare const getExpandedKeys: (expandedKeys: string[], expandScrollkeys?: string[]) => string[];
65
65
  export declare const calcDropPosition: (event: React.MouseEvent, dropNode: HTMLElement) => 0 | 1 | -1;
@@ -583,8 +583,8 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
583
583
  var filterTreeNode = arguments.length > 7 ? arguments[7] : undefined;
584
584
  var isSearching = arguments.length > 8 ? arguments[8] : undefined;
585
585
  var keysData = arguments.length > 9 ? arguments[9] : undefined;
586
- var searchExpandedKeys = arguments.length > 10 ? arguments[10] : undefined;
587
- var isInit = arguments.length > 11 ? arguments[11] : undefined;
586
+ var isInit = arguments.length > 10 ? arguments[10] : undefined;
587
+ var searchStatus = arguments.length > 11 ? arguments[11] : undefined;
588
588
  var keys = (expandedKeys === null || expandedKeys === void 0 ? void 0 : _concatInstanceProperty(expandedKeys).call(expandedKeys, expandScrollkeys)) || (defaultExpandedKeys === null || defaultExpandedKeys === void 0 ? void 0 : _concatInstanceProperty(defaultExpandedKeys).call(defaultExpandedKeys, expandScrollkeys)) || [];
589
589
  if (isInit) {
590
590
  if (defaultExpandAll) {
@@ -605,11 +605,10 @@ export var getInitExpandedKeys = function getInitExpandedKeys(data, expandedKeys
605
605
  }
606
606
  }
607
607
  }
608
- if (isSearching) {
609
- var _context6;
610
- keys = _concatInstanceProperty(_context6 = []).call(_context6, _toConsumableArray(searchExpandedKeys), _toConsumableArray(getAllFilterKeys(data, filterTreeNode, keysData).filterExpandKeys));
608
+ if (isSearching && searchStatus === 'SEARCH_START') {
609
+ keys = _toConsumableArray(getAllFilterKeys(data, filterTreeNode, keysData).filterExpandKeys);
611
610
  }
612
- return _Array$from(new _Set(_toConsumableArray(keys)));
611
+ return keys;
613
612
  };
614
613
  export var getExpandedKeys = function getExpandedKeys(expandedKeys) {
615
614
  var expandScrollkeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
@@ -56,6 +56,7 @@ export interface ITreeSelectProps<T extends TreeSelectValue> extends AbstractSel
56
56
  defaultValue?: T;
57
57
  mode?: Mode;
58
58
  autoFocus?: boolean;
59
+ status?: 'error';
59
60
  onlyExpandOnClickIcon?: boolean;
60
61
  onChange?: (value: T, treeNode: TreeNodeData) => void;
61
62
  onSelect?: (value: T extends (infer I)[] ? I : T, { checked, node, event }: any) => void;