@kdcloudjs/kdesign 1.5.2 → 1.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +64 -0
- package/dist/default-theme.js +4 -4
- package/dist/kdesign-complete.less +169 -88
- package/dist/kdesign.css +165 -86
- package/dist/kdesign.css.map +1 -1
- package/dist/kdesign.js +335 -220
- package/dist/kdesign.js.map +1 -1
- package/dist/kdesign.min.css +4 -4
- package/dist/kdesign.min.js +6 -6
- package/dist/kdesign.min.js.map +1 -1
- package/es/_utils/usePopper.js +17 -8
- package/es/alert/alert.js +2 -2
- package/es/alert/style/index.css +27 -11
- package/es/alert/style/index.less +24 -10
- package/es/alert/style/mixin.less +8 -2
- package/es/alert/style/token.less +16 -8
- package/es/config-provider/compDefaultProps.d.ts +1 -0
- package/es/config-provider/compDefaultProps.js +2 -1
- package/es/drawer/drawer.js +1 -0
- package/es/dropdown/dropdown.js +16 -6
- package/es/dropdown/style/index.css +13 -14
- package/es/dropdown/style/index.less +4 -5
- package/es/dropdown/style/token.less +6 -5
- package/es/input/ClearableLabeledInput.js +5 -5
- package/es/input/style/index.css +5 -0
- package/es/input/style/index.less +5 -0
- package/es/radio/style/index.css +7 -1
- package/es/radio/style/index.less +9 -1
- package/es/search/style/index.css +3 -3
- package/es/select/select.js +1 -1
- package/es/spin/style/index.css +25 -26
- package/es/spin/style/index.less +18 -19
- package/es/spin/style/token.less +9 -3
- package/es/stepper/stepper.js +9 -4
- package/es/stepper/style/index.css +2 -0
- package/es/stepper/style/index.less +2 -0
- package/es/stepper/style/token.less +1 -2
- package/es/style/icon/kdicon.css +2 -1
- package/es/style/icon/kdicon.woff +0 -0
- package/es/style/themes/default.less +3 -4
- package/es/tabs/style/index.css +1 -0
- package/es/tabs/style/index.less +1 -0
- package/es/timeline/style/index.css +22 -21
- package/es/timeline/style/index.less +2 -2
- package/es/timeline/style/token.less +4 -7
- package/es/tooltip/tooltip.js +1 -1
- package/es/tree/style/index.css +56 -7
- package/es/tree/style/index.less +26 -18
- package/es/tree/style/mixin.less +25 -1
- package/es/tree/style/token.less +6 -4
- package/es/tree/tree.d.ts +2 -0
- package/es/tree/tree.js +77 -20
- package/es/tree/treeHooks.d.ts +1 -1
- package/es/tree/treeHooks.js +3 -4
- package/es/tree/treeNode.d.ts +1 -0
- package/es/tree/treeNode.js +45 -49
- package/es/tree/utils/treeUtils.d.ts +6 -3
- package/es/tree/utils/treeUtils.js +66 -42
- package/lib/_utils/usePopper.js +17 -8
- package/lib/alert/alert.js +2 -2
- package/lib/alert/style/index.css +27 -11
- package/lib/alert/style/index.less +24 -10
- package/lib/alert/style/mixin.less +8 -2
- package/lib/alert/style/token.less +16 -8
- package/lib/config-provider/compDefaultProps.d.ts +1 -0
- package/lib/config-provider/compDefaultProps.js +2 -1
- package/lib/drawer/drawer.js +1 -0
- package/lib/dropdown/dropdown.js +15 -6
- package/lib/dropdown/style/index.css +13 -14
- package/lib/dropdown/style/index.less +4 -5
- package/lib/dropdown/style/token.less +6 -5
- package/lib/input/ClearableLabeledInput.js +5 -5
- package/lib/input/style/index.css +5 -0
- package/lib/input/style/index.less +5 -0
- package/lib/radio/style/index.css +7 -1
- package/lib/radio/style/index.less +9 -1
- package/lib/search/style/index.css +3 -3
- package/lib/select/select.js +1 -1
- package/lib/spin/style/index.css +25 -26
- package/lib/spin/style/index.less +18 -19
- package/lib/spin/style/token.less +9 -3
- package/lib/stepper/stepper.js +9 -4
- package/lib/stepper/style/index.css +2 -0
- package/lib/stepper/style/index.less +2 -0
- package/lib/stepper/style/token.less +1 -2
- package/lib/style/icon/kdicon.css +2 -1
- package/lib/style/icon/kdicon.woff +0 -0
- package/lib/style/themes/default.less +3 -4
- package/lib/tabs/style/index.css +1 -0
- package/lib/tabs/style/index.less +1 -0
- package/lib/timeline/style/index.css +22 -21
- package/lib/timeline/style/index.less +2 -2
- package/lib/timeline/style/token.less +4 -7
- package/lib/tooltip/tooltip.js +1 -1
- package/lib/tree/style/index.css +56 -7
- package/lib/tree/style/index.less +26 -18
- package/lib/tree/style/mixin.less +25 -1
- package/lib/tree/style/token.less +6 -4
- package/lib/tree/tree.d.ts +2 -0
- package/lib/tree/tree.js +78 -20
- package/lib/tree/treeHooks.d.ts +1 -1
- package/lib/tree/treeHooks.js +3 -4
- package/lib/tree/treeNode.d.ts +1 -0
- package/lib/tree/treeNode.js +46 -48
- package/lib/tree/utils/treeUtils.d.ts +6 -3
- package/lib/tree/utils/treeUtils.js +64 -42
- package/package.json +1 -1
package/es/tree/style/index.css
CHANGED
|
@@ -101,6 +101,24 @@
|
|
|
101
101
|
普通组件内部自身层级应设置在0-100间
|
|
102
102
|
*/
|
|
103
103
|
/* ----------- zIndex ——————---- end */
|
|
104
|
+
.node-hover-hover {
|
|
105
|
+
-webkit-transition: background-color var(--kd-c-tree-motion-duration, var(--kd-g-duration, 0.3s)), color var(--kd-c-tree-motion-duration, var(--kd-g-duration, 0.3s));
|
|
106
|
+
transition: background-color var(--kd-c-tree-motion-duration, var(--kd-g-duration, 0.3s)), color var(--kd-c-tree-motion-duration, var(--kd-g-duration, 0.3s));
|
|
107
|
+
}
|
|
108
|
+
.node-hover-hover:hover {
|
|
109
|
+
background-color: var(--kd-c-tree-node-color-backgroung-hover, var(--kd-g-color-hover, #f5f5f5));
|
|
110
|
+
cursor: pointer;
|
|
111
|
+
}
|
|
112
|
+
.node-selected {
|
|
113
|
+
background-color: var(--kd-c-tree-node-color-backgroung-checked, var(--kd-g-color-theme-3, #e3eeff)) !important;
|
|
114
|
+
color: var(--kd-c-tree-node-color-text-checked, var(--kd-g-color-theme, #5582f3));
|
|
115
|
+
}
|
|
116
|
+
.node-selected .kd-tree-node-title {
|
|
117
|
+
color: var(--kd-c-tree-node-color-text-checked, var(--kd-g-color-theme, #5582f3));
|
|
118
|
+
}
|
|
119
|
+
.node-selected .kd-tree-node-icon {
|
|
120
|
+
color: var(--kd-c-tree-node-color-text-checked, var(--kd-g-color-theme, #5582f3));
|
|
121
|
+
}
|
|
104
122
|
.kd-tree {
|
|
105
123
|
position: relative;
|
|
106
124
|
overflow: auto;
|
|
@@ -136,6 +154,15 @@
|
|
|
136
154
|
-ms-flex-align: center;
|
|
137
155
|
align-items: center;
|
|
138
156
|
}
|
|
157
|
+
.kd-tree-node-root .kd-spin-dot-spin {
|
|
158
|
+
border: none;
|
|
159
|
+
width: var(--kd-c-tree-expand-icon-loading-sizing-width, 16px);
|
|
160
|
+
height: var(--kd-c-tree-expand-icon-loading-sizing-height, 16px);
|
|
161
|
+
}
|
|
162
|
+
.kd-tree-node-root .kd-spin-dot-spin .kd-spin-dot-item {
|
|
163
|
+
width: var(--kd-c-tree-expand-icon-loading-sizing-width, 16px);
|
|
164
|
+
height: var(--kd-c-tree-expand-icon-loading-sizing-height, 16px);
|
|
165
|
+
}
|
|
139
166
|
.kd-tree-node-fb-children-pointerEvents * {
|
|
140
167
|
pointer-events: none;
|
|
141
168
|
}
|
|
@@ -176,8 +203,8 @@
|
|
|
176
203
|
}
|
|
177
204
|
.kd-tree-node-icon {
|
|
178
205
|
cursor: pointer;
|
|
179
|
-
height: var(--kd-c-tree-expand-icon-sizing-height,
|
|
180
|
-
width: var(--kd-c-tree-expand-icon-sizing-width,
|
|
206
|
+
height: var(--kd-c-tree-expand-icon-sizing-height, 16px);
|
|
207
|
+
width: var(--kd-c-tree-expand-icon-sizing-width, 16px);
|
|
181
208
|
display: -webkit-box;
|
|
182
209
|
display: -ms-flexbox;
|
|
183
210
|
display: flex;
|
|
@@ -190,9 +217,13 @@
|
|
|
190
217
|
font-size: var(--kd-c-tree-node-icon-font-size, 16px);
|
|
191
218
|
color: var(--kd-c-tree-node-icon-color-text, #666666);
|
|
192
219
|
}
|
|
220
|
+
.kd-tree-node-icon-hover:hover {
|
|
221
|
+
background-color: var(--kd-c-tree-node-color-backgroung-hover, var(--kd-g-color-hover, #f5f5f5));
|
|
222
|
+
cursor: pointer;
|
|
223
|
+
}
|
|
193
224
|
.kd-tree-node-icon-hidden {
|
|
194
|
-
height: var(--kd-c-tree-node-icon-sizing-height,
|
|
195
|
-
width: var(--kd-c-tree-node-icon-sizing-width,
|
|
225
|
+
height: var(--kd-c-tree-node-icon-sizing-height, 16px);
|
|
226
|
+
width: var(--kd-c-tree-node-icon-sizing-width, 16px);
|
|
196
227
|
-ms-flex-negative: 0;
|
|
197
228
|
flex-shrink: 0;
|
|
198
229
|
opacity: 0;
|
|
@@ -233,10 +264,28 @@
|
|
|
233
264
|
-ms-flex-align: center;
|
|
234
265
|
align-items: center;
|
|
235
266
|
height: 100%;
|
|
267
|
+
padding-left: 4px;
|
|
268
|
+
}
|
|
269
|
+
.kd-tree-node-title-wrap-hover {
|
|
270
|
+
-webkit-transition: background-color var(--kd-c-tree-motion-duration, var(--kd-g-duration, 0.3s)), color var(--kd-c-tree-motion-duration, var(--kd-g-duration, 0.3s));
|
|
271
|
+
transition: background-color var(--kd-c-tree-motion-duration, var(--kd-g-duration, 0.3s)), color var(--kd-c-tree-motion-duration, var(--kd-g-duration, 0.3s));
|
|
272
|
+
}
|
|
273
|
+
.kd-tree-node-title-wrap-hover:hover {
|
|
274
|
+
background-color: var(--kd-c-tree-node-color-backgroung-hover, var(--kd-g-color-hover, #f5f5f5));
|
|
275
|
+
cursor: pointer;
|
|
276
|
+
}
|
|
277
|
+
.kd-tree-node-title-wrap-selected {
|
|
278
|
+
background-color: var(--kd-c-tree-node-color-backgroung-checked, var(--kd-g-color-theme-3, #e3eeff)) !important;
|
|
279
|
+
color: var(--kd-c-tree-node-color-text-checked, var(--kd-g-color-theme, #5582f3));
|
|
280
|
+
}
|
|
281
|
+
.kd-tree-node-title-wrap-selected .kd-tree-node-title {
|
|
282
|
+
color: var(--kd-c-tree-node-color-text-checked, var(--kd-g-color-theme, #5582f3));
|
|
283
|
+
}
|
|
284
|
+
.kd-tree-node-title-wrap-selected .kd-tree-node-icon {
|
|
285
|
+
color: var(--kd-c-tree-node-color-text-checked, var(--kd-g-color-theme, #5582f3));
|
|
236
286
|
}
|
|
237
287
|
.kd-tree-node-title {
|
|
238
288
|
white-space: nowrap;
|
|
239
|
-
margin-left: 6px;
|
|
240
289
|
}
|
|
241
290
|
.kd-tree-node-selected {
|
|
242
291
|
background-color: var(--kd-c-tree-node-color-backgroung-checked, var(--kd-g-color-theme-3, #e3eeff)) !important;
|
|
@@ -285,8 +334,8 @@
|
|
|
285
334
|
transform: translateY(-50%);
|
|
286
335
|
}
|
|
287
336
|
.kd-tree-node-leaf-icon {
|
|
288
|
-
height: var(--kd-c-tree-node-icon-sizing-height,
|
|
289
|
-
width: var(--kd-c-tree-node-icon-sizing-width,
|
|
337
|
+
height: var(--kd-c-tree-node-icon-sizing-height, 16px);
|
|
338
|
+
width: var(--kd-c-tree-node-icon-sizing-width, 16px);
|
|
290
339
|
display: -webkit-box;
|
|
291
340
|
display: -ms-flexbox;
|
|
292
341
|
display: flex;
|
package/es/tree/style/index.less
CHANGED
|
@@ -28,6 +28,17 @@
|
|
|
28
28
|
display: flex;
|
|
29
29
|
justify-content: flex-start;
|
|
30
30
|
align-items: center;
|
|
31
|
+
|
|
32
|
+
.@{kd-prefix}-spin-dot-spin {
|
|
33
|
+
border: none;
|
|
34
|
+
width: @tree-expand-icon-loading-width;
|
|
35
|
+
height: @tree-expand-icon-loading-height;
|
|
36
|
+
|
|
37
|
+
.@{kd-prefix}-spin-dot-item {
|
|
38
|
+
width: @tree-expand-icon-loading-width;
|
|
39
|
+
height: @tree-expand-icon-loading-height;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
31
42
|
}
|
|
32
43
|
&-fb-children-pointerEvents * {
|
|
33
44
|
pointer-events: none;
|
|
@@ -35,13 +46,8 @@
|
|
|
35
46
|
&-item {
|
|
36
47
|
display: flex;
|
|
37
48
|
align-items: center;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
transition: background-color @tree-transition-duration, color @tree-transition-duration;
|
|
41
|
-
}
|
|
42
|
-
&-item-hover:hover {
|
|
43
|
-
background-color: @tree-node-hover-bg-color;
|
|
44
|
-
cursor: pointer;
|
|
49
|
+
|
|
50
|
+
.node-hover()
|
|
45
51
|
}
|
|
46
52
|
|
|
47
53
|
&-indent {
|
|
@@ -70,6 +76,11 @@
|
|
|
70
76
|
align-items: center;
|
|
71
77
|
font-size: @tree-node-icon-size;
|
|
72
78
|
color: @tree-node-icon-color-text;
|
|
79
|
+
|
|
80
|
+
&-hover:hover {
|
|
81
|
+
background-color: @tree-node-hover-bg-color;
|
|
82
|
+
cursor: pointer;
|
|
83
|
+
}
|
|
73
84
|
}
|
|
74
85
|
&-icon-hidden {
|
|
75
86
|
height: @tree-node-icon-height;
|
|
@@ -99,22 +110,19 @@
|
|
|
99
110
|
display: flex;
|
|
100
111
|
align-items: center;
|
|
101
112
|
height: 100%;
|
|
113
|
+
padding-left: 4px;
|
|
114
|
+
|
|
115
|
+
.node-hover();
|
|
116
|
+
|
|
117
|
+
&-selected {
|
|
118
|
+
.node-selected()
|
|
119
|
+
}
|
|
102
120
|
}
|
|
103
121
|
&-title {
|
|
104
122
|
white-space: nowrap;
|
|
105
|
-
margin-left: 6px;
|
|
106
123
|
}
|
|
107
124
|
&-selected {
|
|
108
|
-
|
|
109
|
-
color: @tree-node-checked-text-color;
|
|
110
|
-
|
|
111
|
-
.@{tree-node-prefix-cls}-title {
|
|
112
|
-
color: @tree-node-checked-text-color;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.@{tree-node-prefix-cls}-icon {
|
|
116
|
-
color: @tree-node-checked-text-color;
|
|
117
|
-
}
|
|
125
|
+
.node-selected()
|
|
118
126
|
}
|
|
119
127
|
|
|
120
128
|
&-draggabled {
|
package/es/tree/style/mixin.less
CHANGED
|
@@ -1 +1,25 @@
|
|
|
1
|
-
@import './token.less';
|
|
1
|
+
@import './token.less';
|
|
2
|
+
|
|
3
|
+
.node-hover {
|
|
4
|
+
&-hover {
|
|
5
|
+
transition: background-color @tree-transition-duration, color @tree-transition-duration;
|
|
6
|
+
|
|
7
|
+
&:hover {
|
|
8
|
+
background-color: @tree-node-hover-bg-color;
|
|
9
|
+
cursor: pointer;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.node-selected {
|
|
15
|
+
background-color: @tree-node-checked-bg-color !important;
|
|
16
|
+
color: @tree-node-checked-text-color;
|
|
17
|
+
|
|
18
|
+
.@{tree-node-prefix-cls}-title {
|
|
19
|
+
color: @tree-node-checked-text-color;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.@{tree-node-prefix-cls}-icon {
|
|
23
|
+
color: @tree-node-checked-text-color;
|
|
24
|
+
}
|
|
25
|
+
}
|
package/es/tree/style/token.less
CHANGED
|
@@ -16,10 +16,12 @@
|
|
|
16
16
|
@tree-node-drag-line-border-color: var(~'@{tree-prefix}-node-drag-line-color-background', #276FF5);
|
|
17
17
|
|
|
18
18
|
// sizing
|
|
19
|
-
@tree-expand-icon-height: var(~'@{tree-prefix}-expand-icon-sizing-height',
|
|
20
|
-
@tree-expand-icon-width: var(~'@{tree-prefix}-expand-icon-sizing-width',
|
|
21
|
-
@tree-
|
|
22
|
-
@tree-
|
|
19
|
+
@tree-expand-icon-height: var(~'@{tree-prefix}-expand-icon-sizing-height', 16px);
|
|
20
|
+
@tree-expand-icon-width: var(~'@{tree-prefix}-expand-icon-sizing-width', 16px);
|
|
21
|
+
@tree-expand-icon-loading-height: var(~'@{tree-prefix}-expand-icon-loading-sizing-height', 16px);
|
|
22
|
+
@tree-expand-icon-loading-width: var(~'@{tree-prefix}-expand-icon-loading-sizing-width', 16px);
|
|
23
|
+
@tree-node-icon-height: var(~'@{tree-prefix}-node-icon-sizing-height', 16px);
|
|
24
|
+
@tree-node-icon-width: var(~'@{tree-prefix}-node-icon-sizing-width', 16px);
|
|
23
25
|
|
|
24
26
|
// font
|
|
25
27
|
@tree-font-size: var(~'@{tree-prefix}-font-size', @font-size-small);
|
package/es/tree/tree.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export interface TreeProps {
|
|
|
24
24
|
virtual?: boolean;
|
|
25
25
|
scrollToKey?: string;
|
|
26
26
|
selectedKeys?: string[];
|
|
27
|
+
loadData?: () => void;
|
|
27
28
|
onCheck?: (checkedKeys: string[], { checked, node, event, halfCheckedKeys }: any) => void;
|
|
28
29
|
onExpand?: (expandedKeys: string[], { expanded, node }: any) => void;
|
|
29
30
|
onSelect?: ({ checked, node, event }: any) => void;
|
|
@@ -36,6 +37,7 @@ export interface TreeProps {
|
|
|
36
37
|
setTreeNodeClassName?: (node: any) => string;
|
|
37
38
|
setTreeNodeStyle?: (node: any) => Map<string, string>;
|
|
38
39
|
estimatedItemSize?: number;
|
|
40
|
+
expandOnClickNode?: boolean;
|
|
39
41
|
}
|
|
40
42
|
export declare type TreeNodeData = {
|
|
41
43
|
checkable?: boolean;
|
package/es/tree/tree.js
CHANGED
|
@@ -2,15 +2,17 @@ import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
|
2
2
|
import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
|
|
3
3
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
|
|
4
4
|
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
|
|
5
|
-
import
|
|
5
|
+
import _Set from "@babel/runtime-corejs3/core-js-stable/set";
|
|
6
6
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
7
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
7
8
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
8
9
|
import React, { useContext, useCallback, useEffect } from 'react';
|
|
9
10
|
import classNames from 'classnames';
|
|
11
|
+
import cloneDeep from 'lodash/cloneDeep';
|
|
10
12
|
import ConfigContext from '../config-provider/ConfigContext';
|
|
11
13
|
import { getCompProps } from '../_utils';
|
|
12
14
|
import TreeNode from './treeNode';
|
|
13
|
-
import { getChecked, getHalfChecked, addKeys, flattenAll, delKey, getFilterData, getSpreadAttrData, getDataCheckededState, getDataCheckededStateStrictly,
|
|
15
|
+
import { getChecked, getHalfChecked, addKeys, flattenAll, delKey, getFilterData, getSpreadAttrData, getDataCheckededState, getDataCheckededStateStrictly, getAllChildKeys, getPos, getSelected, calcDropPosition } from './utils/treeUtils';
|
|
14
16
|
import { useChecked, useExpand, usePlantomHeightEffect, useViewportHeight, useVisibleDataMemo, useScrollToKey, useSelect } from './treeHooks';
|
|
15
17
|
import isBoolean from 'lodash/isBoolean';
|
|
16
18
|
var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
@@ -62,7 +64,9 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
62
64
|
innerEstimatedItemSize = TreeProps.estimatedItemSize,
|
|
63
65
|
style = TreeProps.style,
|
|
64
66
|
filterTreeNode = TreeProps.filterTreeNode,
|
|
65
|
-
filterValue = TreeProps.filterValue
|
|
67
|
+
filterValue = TreeProps.filterValue,
|
|
68
|
+
expandOnClickNode = TreeProps.expandOnClickNode,
|
|
69
|
+
loadData = TreeProps.loadData;
|
|
66
70
|
var treePrefixCls = getPrefixCls(prefixCls, 'tree', customPrefixcls); // 树样式前缀
|
|
67
71
|
|
|
68
72
|
var treeNodePrefixCls = getPrefixCls(prefixCls, 'tree-node', customPrefixcls); // 树节点样式前缀
|
|
@@ -71,12 +75,11 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
71
75
|
var treeRootClassName = "".concat(treePrefixCls, "-root");
|
|
72
76
|
var estimatedItemSize = innerEstimatedItemSize; // 节点高度
|
|
73
77
|
|
|
74
|
-
var
|
|
78
|
+
var _React$useMemo = React.useMemo(function () {
|
|
75
79
|
return flattenAll(treeData, []);
|
|
76
|
-
}, [treeData])
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}, [flattenAllData]);
|
|
80
|
+
}, [treeData]),
|
|
81
|
+
flattenAllData = _React$useMemo.flattenAllData,
|
|
82
|
+
maxLevel = _React$useMemo.maxLevel;
|
|
80
83
|
|
|
81
84
|
var _useChecked = useChecked(checkStrictly, checkedKeysProps, defaultCheckedKeys, flattenAllData, maxLevel, checkable),
|
|
82
85
|
_useChecked2 = _slicedToArray(_useChecked, 4),
|
|
@@ -123,7 +126,21 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
123
126
|
dragOverNodeKey = _React$useState10[0],
|
|
124
127
|
setDragOverNodeKey = _React$useState10[1];
|
|
125
128
|
|
|
126
|
-
var
|
|
129
|
+
var _React$useState11 = React.useState(new _Set()),
|
|
130
|
+
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
131
|
+
loadedKeys = _React$useState12[0],
|
|
132
|
+
setLoadedKeys = _React$useState12[1];
|
|
133
|
+
|
|
134
|
+
var _React$useState13 = React.useState(new _Set()),
|
|
135
|
+
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
136
|
+
loadingKeys = _React$useState14[0],
|
|
137
|
+
setLoadingKeys = _React$useState14[1];
|
|
138
|
+
|
|
139
|
+
var isSearching = React.useMemo(function () {
|
|
140
|
+
return typeof filterTreeNode === 'function' && filterValue;
|
|
141
|
+
}, [filterValue]);
|
|
142
|
+
|
|
143
|
+
var _useExpand = useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching),
|
|
127
144
|
_useExpand2 = _slicedToArray(_useExpand, 2),
|
|
128
145
|
expandedKeys = _useExpand2[0],
|
|
129
146
|
setExpandedKeys = _useExpand2[1];
|
|
@@ -132,8 +149,8 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
132
149
|
return getSpreadAttrData(flattenAllData, expandedKeys);
|
|
133
150
|
}, [flattenAllData, expandedKeys]);
|
|
134
151
|
var filterData = React.useMemo(function () {
|
|
135
|
-
return getFilterData(spreadAttrData, filterTreeNode,
|
|
136
|
-
}, [spreadAttrData,
|
|
152
|
+
return getFilterData(spreadAttrData, filterTreeNode, isSearching);
|
|
153
|
+
}, [spreadAttrData, isSearching]);
|
|
137
154
|
|
|
138
155
|
var _useViewportHeight = useViewportHeight(height, listRef),
|
|
139
156
|
_useViewportHeight2 = _slicedToArray(_useViewportHeight, 1),
|
|
@@ -167,15 +184,54 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
167
184
|
listRef.current.style.transform = "translate3d(0,".concat(tempStartOffset, "px,0)");
|
|
168
185
|
}
|
|
169
186
|
}, [listRef, scrollRef, virtual, estimatedItemSize]);
|
|
170
|
-
var
|
|
171
|
-
var
|
|
187
|
+
var handleNodeLoad = useCallback(function (loadedKeys, loadingKeys, data) {
|
|
188
|
+
var key = data.key;
|
|
189
|
+
|
|
190
|
+
if (!loadData || loadedKeys.has(key) || loadingKeys.has(key)) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
setLoadingKeys(function (prevLoadingKeys) {
|
|
195
|
+
var _context;
|
|
196
|
+
|
|
197
|
+
return new _Set(_concatInstanceProperty(_context = []).call(_context, _toConsumableArray(prevLoadingKeys), [key]));
|
|
198
|
+
});
|
|
199
|
+
loadData(data).then(function () {
|
|
200
|
+
setLoadedKeys(function (prevState) {
|
|
201
|
+
var _context2;
|
|
202
|
+
|
|
203
|
+
return new _Set(_concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray(prevState), [key]));
|
|
204
|
+
});
|
|
205
|
+
setLoadingKeys(function (prevState) {
|
|
206
|
+
var prevLoadingKeys = cloneDeep(prevState);
|
|
207
|
+
prevLoadingKeys.delete(key);
|
|
208
|
+
return prevLoadingKeys;
|
|
209
|
+
});
|
|
210
|
+
}).catch(function (e) {
|
|
211
|
+
setLoadingKeys(function (prevState) {
|
|
212
|
+
var prevLoadingKeys = cloneDeep(prevState);
|
|
213
|
+
prevLoadingKeys.delete(key);
|
|
214
|
+
return prevLoadingKeys;
|
|
215
|
+
});
|
|
216
|
+
setExpandedKeys(function (preExpandedKeys) {
|
|
217
|
+
return delKey(_toConsumableArray(preExpandedKeys), [key]);
|
|
218
|
+
});
|
|
219
|
+
throw e;
|
|
220
|
+
});
|
|
221
|
+
}, [loadData, setExpandedKeys]);
|
|
222
|
+
var handleExpand = React.useCallback(function (key, expanded, node) {
|
|
223
|
+
var newExpandedKeys = expanded ? addKeys(expandedKeys, [key]) : delKey(expandedKeys, [key]);
|
|
172
224
|
onExpand && onExpand(newExpandedKeys, {
|
|
173
225
|
node: node,
|
|
174
|
-
expanded:
|
|
226
|
+
expanded: expanded
|
|
175
227
|
});
|
|
176
228
|
setScrollKey('');
|
|
177
229
|
setIsInit(false);
|
|
178
|
-
|
|
230
|
+
|
|
231
|
+
if (expanded && loadData) {
|
|
232
|
+
handleNodeLoad(loadedKeys, loadingKeys, node);
|
|
233
|
+
}
|
|
234
|
+
}, [expandedKeys, onExpand, loadData, handleNodeLoad, loadedKeys, loadingKeys]);
|
|
179
235
|
var handleCheck = React.useCallback(function (key, value, node, event, pos) {
|
|
180
236
|
var newCheckedKeys = value ? addKeys(checkedKeys, [key]) : delKey(checkedKeys, [key]);
|
|
181
237
|
var checkState = checkStrictly ? getDataCheckededStateStrictly(newCheckedKeys) : getDataCheckededState(spreadAttrData, newCheckedKeys, halfCheckedKeys, maxLevel, false, pos, value);
|
|
@@ -264,11 +320,11 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
264
320
|
});
|
|
265
321
|
}, [onDragEnd]);
|
|
266
322
|
var handleDrop = React.useCallback(function (event, node, dragNode, dragNodesKeys) {
|
|
267
|
-
var
|
|
323
|
+
var _context3;
|
|
268
324
|
|
|
269
325
|
var pos = getPos(flattenAllData, dragNodesKeys);
|
|
270
326
|
|
|
271
|
-
var keys = _concatInstanceProperty(
|
|
327
|
+
var keys = _concatInstanceProperty(_context3 = getAllChildKeys(flattenAllData, pos)).call(_context3, dragNodesKeys);
|
|
272
328
|
|
|
273
329
|
onDrop && onDrop({
|
|
274
330
|
event: event,
|
|
@@ -334,7 +390,6 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
334
390
|
className: treeRootClassName,
|
|
335
391
|
ref: listRef
|
|
336
392
|
}, visibleData && _mapInstanceProperty(visibleData).call(visibleData, function (item) {
|
|
337
|
-
// const props: any = {}
|
|
338
393
|
var checked = getChecked(checkedKeys, item.key);
|
|
339
394
|
var indeterminate = getHalfChecked(halfCheckedKeys, item.key);
|
|
340
395
|
item.nodeKey = item.key;
|
|
@@ -349,8 +404,7 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
349
404
|
item.onSelect = handleSelect;
|
|
350
405
|
item.checked = checked;
|
|
351
406
|
item.selected = getSelected(selectedKeys, item.key);
|
|
352
|
-
item.indeterminate = indeterminate;
|
|
353
|
-
|
|
407
|
+
item.indeterminate = indeterminate;
|
|
354
408
|
item.disabled = getDisabled(disabled, item.disabled);
|
|
355
409
|
item.showIcon = showIcon || false;
|
|
356
410
|
item.checkable = getCheckable(checkable, item.checkable); // 哪个优先
|
|
@@ -365,6 +419,9 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
365
419
|
item.getDragNode = getDragNode;
|
|
366
420
|
item.setDragNode = setDragNode;
|
|
367
421
|
item.dragOver = dragOverNodeKey === item.key && dropPosition === 0;
|
|
422
|
+
item.expandOnClickNode = expandOnClickNode;
|
|
423
|
+
item.loading = loadingKeys.has(item.key) && !loadedKeys.has(item.key);
|
|
424
|
+
item.loadData = loadData;
|
|
368
425
|
return /*#__PURE__*/React.createElement(TreeNode, _extends({}, item, {
|
|
369
426
|
key: item.key,
|
|
370
427
|
ref: treeNodeRef
|
package/es/tree/treeHooks.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ export declare const useViewportHeight: (height: number, listRef: React.RefObjec
|
|
|
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) => 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,
|
|
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) => 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[]>>];
|
package/es/tree/treeHooks.js
CHANGED
|
@@ -64,7 +64,7 @@ export var useChecked = function useChecked(checkStrictly, checkedKeysProps, def
|
|
|
64
64
|
}, [nextHalfCheckedKeys]);
|
|
65
65
|
return [checkedKeys, halfCheckedKeys, setCheckedKeys, setHalfCheckedKeys];
|
|
66
66
|
};
|
|
67
|
-
export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode,
|
|
67
|
+
export var useExpand = function useExpand(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, isInit, filterTreeNode, isSearching) {
|
|
68
68
|
var expandScrollkeys = [];
|
|
69
69
|
|
|
70
70
|
if (scrollKey) {
|
|
@@ -73,8 +73,8 @@ export var useExpand = function useExpand(flattenAllData, expandedKeysProps, def
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
var initialExpandedKeys = React.useMemo(function () {
|
|
76
|
-
return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode,
|
|
77
|
-
}, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode,
|
|
76
|
+
return getInitExpandedKeys(flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, expandScrollkeys, filterTreeNode, isSearching);
|
|
77
|
+
}, [flattenAllData, expandedKeysProps, defaultExpandedKeys, defaultExpandAll, defaultExpandRoot, defaultExpandParent, scrollKey, filterTreeNode, isSearching]);
|
|
78
78
|
var newExpandedKeys = React.useMemo(function () {
|
|
79
79
|
return getExpandedKeys(expandedKeysProps, expandScrollkeys);
|
|
80
80
|
}, [expandedKeysProps]);
|
|
@@ -112,7 +112,6 @@ export var useScrollToKey = function useScrollToKey(scrollKey, index, estimatedI
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
if (treeRoot && treeNode) {
|
|
115
|
-
// const treeRootScrollTop = treeRoot.scrollTop
|
|
116
115
|
var treeRootRect = treeRoot.getBoundingClientRect();
|
|
117
116
|
var treeNodeRect = treeNode.getBoundingClientRect();
|
|
118
117
|
|
package/es/tree/treeNode.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export interface TreeNodeProps {
|
|
|
25
25
|
pos?: string;
|
|
26
26
|
estimatedItemSize?: number;
|
|
27
27
|
dragOver?: boolean;
|
|
28
|
+
isLeaf?: boolean;
|
|
28
29
|
onCheck?: (key: string, value: boolean, node: React.ReactNode, event: React.MouseEvent<MouseEvent>, pos: string) => void;
|
|
29
30
|
onSelect?: (event: React.MouseEvent<MouseEvent>, node: React.ReactNode, key: string) => void;
|
|
30
31
|
onExpand?: (value: boolean, node: React.ReactNode) => void;
|
package/es/tree/treeNode.js
CHANGED
|
@@ -17,12 +17,13 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
17
17
|
return t;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
import React, { useContext, useEffect } from 'react';
|
|
20
|
+
import React, { useCallback, useContext, useEffect } from 'react';
|
|
21
21
|
import classNames from 'classnames';
|
|
22
22
|
import ConfigContext from '../config-provider/ConfigContext';
|
|
23
23
|
import { getCompProps } from '../_utils';
|
|
24
24
|
import Checkbox from './../checkbox';
|
|
25
25
|
import Icon from '../icon';
|
|
26
|
+
import Spin from '../spin';
|
|
26
27
|
var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
27
28
|
var _context;
|
|
28
29
|
|
|
@@ -57,6 +58,8 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
57
58
|
indeterminate = TreeNodeProps.indeterminate,
|
|
58
59
|
estimatedItemSize = TreeNodeProps.estimatedItemSize,
|
|
59
60
|
dragOver = TreeNodeProps.dragOver,
|
|
61
|
+
expandOnClickNode = TreeNodeProps.expandOnClickNode,
|
|
62
|
+
loading = TreeNodeProps.loading,
|
|
60
63
|
onExpand = TreeNodeProps.onExpand,
|
|
61
64
|
onCheck = TreeNodeProps.onCheck,
|
|
62
65
|
onDragStart = TreeNodeProps.onDragStart,
|
|
@@ -66,7 +69,7 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
66
69
|
onDragEnd = TreeNodeProps.onDragEnd,
|
|
67
70
|
onDrop = TreeNodeProps.onDrop,
|
|
68
71
|
onSelect = TreeNodeProps.onSelect,
|
|
69
|
-
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", "onExpand", "onCheck", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect"]);
|
|
72
|
+
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", "expandOnClickNode", "loading", "onExpand", "onCheck", "onDragStart", "onDragOver", "onDragLeave", "onDragEnter", "onDragEnd", "onDrop", "onSelect"]);
|
|
70
73
|
|
|
71
74
|
var nodeData = React.useMemo(function () {
|
|
72
75
|
return _extends({
|
|
@@ -84,7 +87,6 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
84
87
|
indeterminate: indeterminate,
|
|
85
88
|
icon: icon,
|
|
86
89
|
switcherIcon: switcherIcon,
|
|
87
|
-
// showLine,
|
|
88
90
|
showIcon: showIcon,
|
|
89
91
|
selected: selected
|
|
90
92
|
}, others);
|
|
@@ -166,57 +168,46 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
166
168
|
}
|
|
167
169
|
|
|
168
170
|
return indentArr;
|
|
169
|
-
};
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
var isLeaf = useCallback(function () {
|
|
174
|
+
var isLeaf = TreeNodeProps.isLeaf,
|
|
175
|
+
loadData = TreeNodeProps.loadData,
|
|
176
|
+
hasChildNode = TreeNodeProps.hasChildNode;
|
|
177
|
+
|
|
178
|
+
if (isLeaf === false) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
170
181
|
|
|
182
|
+
return isLeaf || !loadData && !hasChildNode;
|
|
183
|
+
}, [TreeNodeProps]); // line的两种模式, 图标被替换和图标不被替换
|
|
171
184
|
|
|
172
185
|
var renderExpandIcon = function renderExpandIcon() {
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
// className={classNames(`${treeNodePrefixCls}-icon`)}
|
|
185
|
-
// >
|
|
186
|
-
// {expand ? <Icon type='search' /> : <Icon type='add' />}
|
|
187
|
-
// </span>
|
|
188
|
-
// )
|
|
189
|
-
// }
|
|
186
|
+
if (loading) {
|
|
187
|
+
return /*#__PURE__*/React.createElement(Spin, {
|
|
188
|
+
type: "component"
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
var showExpandIcon = !isLeaf();
|
|
193
|
+
|
|
194
|
+
if (showExpandIcon) {
|
|
195
|
+
var _classNames3;
|
|
196
|
+
|
|
190
197
|
if (Array.isArray(switcherIcon) && switcherIcon.length === 2) {
|
|
191
198
|
return /*#__PURE__*/React.createElement("span", {
|
|
192
|
-
className: classNames("".concat(treeNodePrefixCls, "-icon"))
|
|
199
|
+
className: classNames("".concat(treeNodePrefixCls, "-icon"), _defineProperty({}, "".concat(treeNodePrefixCls, "-icon-hover"), !expandOnClickNode)),
|
|
200
|
+
onClick: expandOnClickNode ? undefined : handleExpandIconClick
|
|
193
201
|
}, expandState ? renderIcon(switcherIcon[1]) : renderIcon(switcherIcon[0]));
|
|
194
202
|
}
|
|
195
203
|
|
|
196
204
|
return /*#__PURE__*/React.createElement("span", {
|
|
197
|
-
className: classNames("".concat(treeNodePrefixCls, "-icon"), (
|
|
205
|
+
className: classNames("".concat(treeNodePrefixCls, "-icon"), (_classNames3 = {}, _defineProperty(_classNames3, "".concat(treeNodePrefixCls, "-animation-expand"), expandState), _defineProperty(_classNames3, "".concat(treeNodePrefixCls, "-animation-collapse"), !expandState), _defineProperty(_classNames3, "".concat(treeNodePrefixCls, "-icon-hover"), !expandOnClickNode), _classNames3)),
|
|
206
|
+
onClick: expandOnClickNode ? undefined : handleExpandIconClick
|
|
198
207
|
}, renderIcon(switcherIcon || /*#__PURE__*/React.createElement(Icon, {
|
|
199
208
|
type: "arrow-right-solid"
|
|
200
209
|
})));
|
|
201
210
|
} else {
|
|
202
|
-
// if(typeof showLine === 'object' && !showLine.showLeafIcon){
|
|
203
|
-
// return (
|
|
204
|
-
// <span
|
|
205
|
-
// className={classNames(`${treeNodePrefixCls}-icon-hidden`)}
|
|
206
|
-
// >
|
|
207
|
-
// {/* todo renderLeafLine() */}
|
|
208
|
-
// {renderIcon(leafIcon)}
|
|
209
|
-
// </span>
|
|
210
|
-
// )
|
|
211
|
-
// }else if(typeof showLine === 'object' && showLine.showLeafIcon || showLine === true){
|
|
212
|
-
// return (
|
|
213
|
-
// <span
|
|
214
|
-
// className={classNames(`${treeNodePrefixCls}-leaf-icon`)}
|
|
215
|
-
// >
|
|
216
|
-
// {renderIcon(leafIcon)}
|
|
217
|
-
// </span>
|
|
218
|
-
// )
|
|
219
|
-
// }
|
|
220
211
|
// 叶子结点 隐藏展开按钮
|
|
221
212
|
return /*#__PURE__*/React.createElement("span", {
|
|
222
213
|
className: "".concat(treeNodePrefixCls, "-icon-hidden")
|
|
@@ -231,11 +222,11 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
231
222
|
};
|
|
232
223
|
|
|
233
224
|
var renderNode = function renderNode() {
|
|
234
|
-
var
|
|
225
|
+
var _classNames4, _classNames5;
|
|
235
226
|
|
|
236
227
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
237
228
|
draggable: draggable && !disabled,
|
|
238
|
-
className: classNames((
|
|
229
|
+
className: classNames((_classNames4 = {}, _defineProperty(_classNames4, "".concat(treeNodePrefixCls, "-draggabled"), true), _defineProperty(_classNames4, "".concat(treeNodePrefixCls, "-root"), true), _defineProperty(_classNames4, "".concat(treeNodePrefixCls, "-fb-children-pointerEvents"), forbiddenChildrenPointerEvents), _defineProperty(_classNames4, "".concat(treeNodePrefixCls, "-drag-over"), dragOver), _classNames4)),
|
|
239
230
|
onDragStart: handleDragStart,
|
|
240
231
|
onDragEnd: handleDragEnd,
|
|
241
232
|
onDragOver: handleDragOver,
|
|
@@ -244,7 +235,8 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
244
235
|
onDrop: handleDrop,
|
|
245
236
|
ref: dragRef
|
|
246
237
|
}, indent(), renderExpandIcon(), showIcon && renderNodeIcon(), /*#__PURE__*/React.createElement("div", {
|
|
247
|
-
className: "".concat(treeNodePrefixCls, "-title-wrap")
|
|
238
|
+
className: classNames((_classNames5 = {}, _defineProperty(_classNames5, "".concat(treeNodePrefixCls, "-title-wrap"), true), _defineProperty(_classNames5, "".concat(treeNodePrefixCls, "-title-wrap-hover"), !expandOnClickNode && !disabled), _defineProperty(_classNames5, "".concat(treeNodePrefixCls, "-title-wrap-selected"), selected && selectable && !disabled && !expandOnClickNode), _classNames5)),
|
|
239
|
+
onClick: expandOnClickNode ? undefined : handleClick
|
|
248
240
|
}, checkable ? /*#__PURE__*/React.createElement(Checkbox, {
|
|
249
241
|
onChange: handleOnchange,
|
|
250
242
|
checked: checked,
|
|
@@ -271,12 +263,16 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
271
263
|
selectNode: handleSelect
|
|
272
264
|
};
|
|
273
265
|
});
|
|
274
|
-
var
|
|
275
|
-
e.stopPropagation();
|
|
266
|
+
var handleExpandIconClick = useCallback(function (e) {
|
|
267
|
+
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
276
268
|
setExpandState(!expandState);
|
|
277
269
|
onExpand && onExpand(nodeKey, !expandState, nodeData);
|
|
270
|
+
}, [expandState, nodeData, nodeKey, onExpand, setExpandState]);
|
|
271
|
+
var handleClick = React.useCallback(function (e) {
|
|
272
|
+
e.stopPropagation();
|
|
273
|
+
expandOnClickNode && handleExpandIconClick();
|
|
278
274
|
handleSelect(e);
|
|
279
|
-
}, [
|
|
275
|
+
}, [expandOnClickNode, handleExpandIconClick, handleSelect]);
|
|
280
276
|
var handleDragStart = React.useCallback(function (e) {
|
|
281
277
|
if (!draggable) return;
|
|
282
278
|
setDragNode(nodeData);
|
|
@@ -325,11 +321,11 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
325
321
|
}
|
|
326
322
|
}, [onDrop, nodeData, nodeKey]);
|
|
327
323
|
return /*#__PURE__*/React.createElement("div", {
|
|
328
|
-
className: classNames("".concat(treeNodePrefixCls, "-item"), _defineProperty({}, "".concat(treeNodePrefixCls, "-item-hover"), !disabled && selectable), _defineProperty({}, "".concat(treeNodePrefixCls, "-selected"), selected && selectable && !disabled), _defineProperty({}, "".concat(treeNodePrefixCls, "-disabled"), disabled), _defineProperty({}, "".concat(treeNodePrefixCls, "-opened"), expandState), _concatInstanceProperty(_context = "".concat(treeNodePrefixCls, "-item-")).call(_context, nodeKey), className),
|
|
324
|
+
className: classNames("".concat(treeNodePrefixCls, "-item"), _defineProperty({}, "".concat(treeNodePrefixCls, "-item-hover"), !disabled && selectable && expandOnClickNode), _defineProperty({}, "".concat(treeNodePrefixCls, "-selected"), selected && selectable && !disabled && expandOnClickNode), _defineProperty({}, "".concat(treeNodePrefixCls, "-disabled"), disabled), _defineProperty({}, "".concat(treeNodePrefixCls, "-opened"), expandState), _concatInstanceProperty(_context = "".concat(treeNodePrefixCls, "-item-")).call(_context, nodeKey), className),
|
|
329
325
|
style: _extends({
|
|
330
326
|
height: "".concat(estimatedItemSize, "px")
|
|
331
327
|
}, style),
|
|
332
|
-
onClick: handleClick
|
|
328
|
+
onClick: expandOnClickNode ? handleClick : undefined
|
|
333
329
|
}, renderNode());
|
|
334
330
|
});
|
|
335
331
|
TreeNode.displayName = 'TreeNode';
|