@kdcloudjs/kdesign 1.7.20 → 1.7.22
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 +28 -0
- package/dist/kdesign-complete.less +12 -4
- package/dist/kdesign.css +13 -5
- package/dist/kdesign.css.map +1 -1
- package/dist/kdesign.js +363 -268
- package/dist/kdesign.js.map +1 -1
- package/dist/kdesign.min.css +3 -3
- package/dist/kdesign.min.js +8 -8
- package/dist/kdesign.min.js.map +1 -1
- package/es/_utils/reactNode.d.ts +1 -0
- package/es/_utils/reactNode.js +3 -0
- package/es/checkbox/group.js +1 -1
- package/es/collapse/style/index.css +3 -0
- package/es/collapse/style/index.less +3 -0
- package/es/config-provider/compDefaultProps.d.ts +2 -0
- package/es/config-provider/compDefaultProps.js +3 -1
- package/es/dropdown/dropdown.js +4 -3
- package/es/input/input.js +21 -3
- package/es/input-number/inputNumber.js +6 -0
- package/es/menu/menu.js +27 -18
- package/es/menu/style/index.css +3 -0
- package/es/menu/style/mixin.less +1 -0
- package/es/select/select.js +42 -18
- package/es/timeline/TimelineItem.js +2 -1
- package/es/timeline/style/index.css +2 -3
- package/es/timeline/style/index.less +2 -3
- package/es/tooltip/tooltip.js +3 -2
- package/es/tree/tree.js +68 -57
- package/es/tree/treeNode.js +1 -6
- package/es/tree-select/interface.d.ts +1 -0
- package/es/tree-select/style/index.css +4 -1
- package/es/tree-select/style/index.less +5 -1
- package/es/tree-select/style/token.less +1 -0
- package/es/tree-select/tree-select.js +18 -4
- package/es/virtual-list/Filler.d.ts +1 -0
- package/es/virtual-list/Filler.js +4 -3
- package/es/virtual-list/virtual-list.d.ts +1 -0
- package/es/virtual-list/virtual-list.js +5 -3
- package/lib/_utils/reactNode.d.ts +1 -0
- package/lib/_utils/reactNode.js +4 -0
- package/lib/checkbox/group.js +1 -1
- package/lib/collapse/style/index.css +3 -0
- package/lib/collapse/style/index.less +3 -0
- package/lib/config-provider/compDefaultProps.d.ts +2 -0
- package/lib/config-provider/compDefaultProps.js +3 -1
- package/lib/dropdown/dropdown.js +4 -3
- package/lib/input/input.js +20 -2
- package/lib/input-number/inputNumber.js +6 -0
- package/lib/menu/menu.js +26 -17
- package/lib/menu/style/index.css +3 -0
- package/lib/menu/style/mixin.less +1 -0
- package/lib/select/select.js +41 -17
- package/lib/timeline/TimelineItem.js +2 -1
- package/lib/timeline/style/index.css +2 -3
- package/lib/timeline/style/index.less +2 -3
- package/lib/tooltip/tooltip.js +3 -2
- package/lib/tree/tree.js +67 -56
- package/lib/tree/treeNode.js +1 -6
- package/lib/tree-select/interface.d.ts +1 -0
- package/lib/tree-select/style/index.css +4 -1
- package/lib/tree-select/style/index.less +5 -1
- package/lib/tree-select/style/token.less +1 -0
- package/lib/tree-select/tree-select.js +20 -6
- package/lib/virtual-list/Filler.d.ts +1 -0
- package/lib/virtual-list/Filler.js +4 -3
- package/lib/virtual-list/virtual-list.d.ts +1 -0
- package/lib/virtual-list/virtual-list.js +5 -3
- package/package.json +1 -1
package/es/tree/tree.js
CHANGED
|
@@ -21,8 +21,9 @@ import cloneDeep from 'lodash/cloneDeep';
|
|
|
21
21
|
import ConfigContext from '../config-provider/ConfigContext';
|
|
22
22
|
import { getCompProps } from '../_utils';
|
|
23
23
|
import TreeNode from './treeNode';
|
|
24
|
+
import VirtualList from '../virtual-list';
|
|
24
25
|
import { getChecked, getHalfChecked, addKeys, flattenAll, delKey, getFilterData, getSpreadAttrData, getAllCheckedKeys, getDataCheckededStateStrictly, getAllChildKeys, getPos, calcDropPosition } from './utils/treeUtils';
|
|
25
|
-
import { useChecked, useExpand,
|
|
26
|
+
import { useChecked, useExpand, useSelect } from './treeHooks';
|
|
26
27
|
import isBoolean from 'lodash/isBoolean';
|
|
27
28
|
var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
28
29
|
var _useContext = useContext(ConfigContext),
|
|
@@ -80,7 +81,6 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
80
81
|
notFoundContent = TreeProps.notFoundContent,
|
|
81
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"]);
|
|
82
83
|
var treePrefixCls = getPrefixCls(prefixCls, 'tree', customPrefixcls); // 树样式前缀
|
|
83
|
-
var treeNodePrefixCls = getPrefixCls(prefixCls, 'tree-node', customPrefixcls); // 树节点样式前缀
|
|
84
84
|
var treeNodeClassName = classNames(className, _defineProperty({}, "".concat(treePrefixCls), true));
|
|
85
85
|
var treeRootClassName = "".concat(treePrefixCls, "-root");
|
|
86
86
|
var estimatedItemSize = innerEstimatedItemSize; // 节点高度
|
|
@@ -94,45 +94,41 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
94
94
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
95
95
|
scrollKey = _React$useState2[0],
|
|
96
96
|
setScrollKey = _React$useState2[1];
|
|
97
|
-
var _React$useState3 = React.useState(0),
|
|
98
|
-
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
99
|
-
start = _React$useState4[0],
|
|
100
|
-
setStart = _React$useState4[1];
|
|
101
97
|
var _useSelect = useSelect(selectedKeysProps, defaultSelectedKeys),
|
|
102
98
|
_useSelect2 = _slicedToArray(_useSelect, 2),
|
|
103
99
|
selectedKeys = _useSelect2[0],
|
|
104
100
|
setSelectedKeys = _useSelect2[1];
|
|
105
101
|
var listRef = React.useRef(null);
|
|
106
|
-
var plantomRef = React.useRef(null);
|
|
107
102
|
var rootRef = React.useRef(null);
|
|
108
103
|
var scrollRef = ref || rootRef;
|
|
109
104
|
var treeNodeRef = React.useRef(null);
|
|
110
105
|
var dragNodeRef = React.useRef(null);
|
|
111
106
|
var delayedDragEnterRef = React.useRef(null);
|
|
112
|
-
var
|
|
107
|
+
var virtualListRef = React.useRef(null);
|
|
108
|
+
var _React$useState3 = React.useState(true),
|
|
109
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
110
|
+
isInit = _React$useState4[0],
|
|
111
|
+
setIsInit = _React$useState4[1];
|
|
112
|
+
var _React$useState5 = React.useState(null),
|
|
113
113
|
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
dropPosition = _React$useState6[0],
|
|
115
|
+
setDropPosition = _React$useState6[1];
|
|
116
116
|
var _React$useState7 = React.useState(null),
|
|
117
117
|
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
var _React$useState9 = React.useState(
|
|
118
|
+
dragOverNodeKey = _React$useState8[0],
|
|
119
|
+
setDragOverNodeKey = _React$useState8[1];
|
|
120
|
+
var _React$useState9 = React.useState(new _Set()),
|
|
121
121
|
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
loadedKeys = _React$useState10[0],
|
|
123
|
+
setLoadedKeys = _React$useState10[1];
|
|
124
124
|
var _React$useState11 = React.useState(new _Set()),
|
|
125
125
|
_React$useState12 = _slicedToArray(_React$useState11, 2),
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
var _React$useState13 = React.useState(
|
|
126
|
+
loadingKeys = _React$useState12[0],
|
|
127
|
+
setLoadingKeys = _React$useState12[1];
|
|
128
|
+
var _React$useState13 = React.useState([]),
|
|
129
129
|
_React$useState14 = _slicedToArray(_React$useState13, 2),
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
var _React$useState15 = React.useState([]),
|
|
133
|
-
_React$useState16 = _slicedToArray(_React$useState15, 2),
|
|
134
|
-
searchExpandedKeys = _React$useState16[0],
|
|
135
|
-
setSearchExpandedKeys = _React$useState16[1];
|
|
130
|
+
searchExpandedKeys = _React$useState14[0],
|
|
131
|
+
setSearchExpandedKeys = _React$useState14[1];
|
|
136
132
|
var isSearching = React.useMemo(function () {
|
|
137
133
|
return typeof filterTreeNode === 'function' && !!filterValue;
|
|
138
134
|
}, [filterValue]);
|
|
@@ -157,13 +153,11 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
157
153
|
var filterData = React.useMemo(function () {
|
|
158
154
|
return getFilterData(spreadAttrData, filterTreeNode, isSearching, posData, keysData);
|
|
159
155
|
}, [spreadAttrData, isSearching, posData, keysData]);
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
visibleData = _useVisibleDataMemo2[0];
|
|
166
|
-
var index = React.useMemo(function () {
|
|
156
|
+
useEffect(function () {
|
|
157
|
+
var _a, _b;
|
|
158
|
+
if (typeof scrollKey === 'undefined') {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
167
161
|
var scrollIndex = 0;
|
|
168
162
|
for (var i = 0; i < filterData.length; i++) {
|
|
169
163
|
if (filterData[i].key === scrollKey) {
|
|
@@ -171,19 +165,21 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
171
165
|
break;
|
|
172
166
|
}
|
|
173
167
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
168
|
+
if (virtual) {
|
|
169
|
+
(_a = virtualListRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({
|
|
170
|
+
index: scrollIndex
|
|
171
|
+
});
|
|
172
|
+
} else {
|
|
173
|
+
var wrapperDom = scrollRef.current;
|
|
174
|
+
var node = wrapperDom ? (_b = wrapperDom === null || wrapperDom === void 0 ? void 0 : wrapperDom.children[0]) === null || _b === void 0 ? void 0 : _b.children[scrollIndex] : null;
|
|
175
|
+
if (node && wrapperDom) {
|
|
176
|
+
var containerHeight = wrapperDom.clientHeight;
|
|
177
|
+
var targetHeight = node.clientHeight;
|
|
178
|
+
var scrollPosition = node.offsetTop + targetHeight - containerHeight;
|
|
179
|
+
wrapperDom.scrollTop = scrollPosition;
|
|
180
|
+
}
|
|
185
181
|
}
|
|
186
|
-
}, [
|
|
182
|
+
}, [filterData, scrollKey, virtual]);
|
|
187
183
|
var handleNodeLoad = useCallback(function (loadedKeys, loadingKeys, data) {
|
|
188
184
|
var key = data.key;
|
|
189
185
|
if (!loadData || loadedKeys.has(key) || loadingKeys.has(key)) {
|
|
@@ -228,7 +224,7 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
228
224
|
var newSearchExpandedKeys = expanded ? addKeys(searchExpandedKeys, [key]) : delKey(searchExpandedKeys, [key]);
|
|
229
225
|
setSearchExpandedKeys(newSearchExpandedKeys);
|
|
230
226
|
}
|
|
231
|
-
setScrollKey(
|
|
227
|
+
setScrollKey(undefined);
|
|
232
228
|
setIsInit(false);
|
|
233
229
|
if (expanded && loadData) {
|
|
234
230
|
handleNodeLoad(loadedKeys, loadingKeys, node);
|
|
@@ -374,18 +370,7 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
374
370
|
useEffect(function () {
|
|
375
371
|
setCheckedKeys(checkedKeys);
|
|
376
372
|
}, [checkedKeys, setCheckedKeys]);
|
|
377
|
-
|
|
378
|
-
className: treeNodeClassName,
|
|
379
|
-
style: style,
|
|
380
|
-
ref: scrollRef,
|
|
381
|
-
onScroll: handleScroll
|
|
382
|
-
}, others), /*#__PURE__*/React.createElement("div", {
|
|
383
|
-
ref: plantomRef,
|
|
384
|
-
className: "".concat(treePrefixCls, "-plantom")
|
|
385
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
386
|
-
className: treeRootClassName,
|
|
387
|
-
ref: listRef
|
|
388
|
-
}, !(visibleData === null || visibleData === void 0 ? void 0 : visibleData.length) && notFoundContent, visibleData && _mapInstanceProperty(visibleData).call(visibleData, function (item) {
|
|
373
|
+
var renderTreeNode = function renderTreeNode(item) {
|
|
389
374
|
var checked = getChecked(checkedKeys, item.key);
|
|
390
375
|
var indeterminate = getHalfChecked(halfCheckedKeys, item.key);
|
|
391
376
|
item.nodeKey = item.key;
|
|
@@ -423,7 +408,33 @@ var InternalTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
423
408
|
key: item.key,
|
|
424
409
|
ref: treeNodeRef
|
|
425
410
|
}));
|
|
426
|
-
}
|
|
411
|
+
};
|
|
412
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
|
413
|
+
className: treeNodeClassName,
|
|
414
|
+
style: style,
|
|
415
|
+
ref: scrollRef
|
|
416
|
+
}, others), /*#__PURE__*/React.createElement("div", {
|
|
417
|
+
className: treeRootClassName,
|
|
418
|
+
ref: listRef
|
|
419
|
+
}, !(filterData === null || filterData === void 0 ? void 0 : filterData.length) && notFoundContent, virtual ? /*#__PURE__*/React.createElement(VirtualList, {
|
|
420
|
+
className: className,
|
|
421
|
+
style: style,
|
|
422
|
+
ref: virtualListRef,
|
|
423
|
+
data: filterData,
|
|
424
|
+
isStaticItemHeight: true,
|
|
425
|
+
itemKey: function itemKey(item) {
|
|
426
|
+
return item === null || item === void 0 ? void 0 : item.key;
|
|
427
|
+
},
|
|
428
|
+
height: height,
|
|
429
|
+
itemHeight: estimatedItemSize,
|
|
430
|
+
outerStyle: {
|
|
431
|
+
overflow: 'unset'
|
|
432
|
+
},
|
|
433
|
+
innerStyle: {
|
|
434
|
+
minWidth: '100%',
|
|
435
|
+
width: 'max-contnet'
|
|
436
|
+
}
|
|
437
|
+
}, renderTreeNode) : _mapInstanceProperty(filterData).call(filterData, renderTreeNode)));
|
|
427
438
|
});
|
|
428
439
|
var Tree = InternalTree;
|
|
429
440
|
Tree.displayName = 'Tree';
|
package/es/tree/treeNode.js
CHANGED
|
@@ -18,7 +18,7 @@ import { getCompProps } from '../_utils';
|
|
|
18
18
|
import Checkbox from './../checkbox';
|
|
19
19
|
import Icon from '../icon';
|
|
20
20
|
import Spin from '../spin';
|
|
21
|
-
var TreeNode = /*#__PURE__*/React.forwardRef(function (props
|
|
21
|
+
var TreeNode = /*#__PURE__*/React.forwardRef(function (props) {
|
|
22
22
|
var _context;
|
|
23
23
|
var _useContext = useContext(ConfigContext),
|
|
24
24
|
getPrefixCls = _useContext.getPrefixCls,
|
|
@@ -230,11 +230,6 @@ var TreeNode = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
230
230
|
var handleSelect = React.useCallback(function (e) {
|
|
231
231
|
selectable && !disabled && onSelect && onSelect(e, nodeData, nodeKey);
|
|
232
232
|
}, [onSelect, selectable, disabled, nodeData, nodeKey]);
|
|
233
|
-
React.useImperativeHandle(ref, function () {
|
|
234
|
-
return {
|
|
235
|
-
selectNode: handleSelect
|
|
236
|
-
};
|
|
237
|
-
});
|
|
238
233
|
var handleExpandIconClick = useCallback(function (e) {
|
|
239
234
|
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
240
235
|
setExpandState(!expandState);
|
|
@@ -48,6 +48,7 @@ export declare type ITreeProps = {
|
|
|
48
48
|
treeExpandOnClickNode?: boolean;
|
|
49
49
|
showTreeIcon?: boolean;
|
|
50
50
|
treeLoadData?: () => void;
|
|
51
|
+
listHeight?: number;
|
|
51
52
|
};
|
|
52
53
|
export declare type TreeSelectValue = string | string[] | number | number[] | undefined;
|
|
53
54
|
export interface ITreeSelectProps<T extends TreeSelectValue> extends AbstractSelectProps, ITreeProps {
|
|
@@ -228,7 +228,7 @@
|
|
|
228
228
|
z-index: var(--kd-c-tree-select-z-index, var(--kd-g-z-index-popper, 1050));
|
|
229
229
|
-webkit-box-sizing: border-box;
|
|
230
230
|
box-sizing: border-box;
|
|
231
|
-
padding:
|
|
231
|
+
padding: var(--kd-c-tree-select-dropdown-spacing-padding-vertical, 8px) 0;
|
|
232
232
|
margin: 0;
|
|
233
233
|
overflow: auto;
|
|
234
234
|
font-size: var(--kd-c-tree-select-dropdown-font-size, 12px);
|
|
@@ -240,6 +240,9 @@
|
|
|
240
240
|
box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
|
|
241
241
|
max-height: 200px;
|
|
242
242
|
}
|
|
243
|
+
.kd-tree-select-dropdown .kd-tree {
|
|
244
|
+
padding: 0;
|
|
245
|
+
}
|
|
243
246
|
.kd-tree-select-dropdown .kd-tree-node-item {
|
|
244
247
|
padding: 0 var(--kd-c-tree-select-dropdown-node-spacing-padding-horizontal, 16px);
|
|
245
248
|
}
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
left: 0;
|
|
127
127
|
z-index: @tree-select-z-index;
|
|
128
128
|
box-sizing: border-box;
|
|
129
|
-
padding:
|
|
129
|
+
padding: @tree-select-padding-vertical 0;
|
|
130
130
|
margin: 0;
|
|
131
131
|
overflow: auto;
|
|
132
132
|
font-size: @tree-select-list-font-size;
|
|
@@ -137,6 +137,10 @@
|
|
|
137
137
|
box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
|
|
138
138
|
max-height: 200px;
|
|
139
139
|
|
|
140
|
+
.@{tree-prefix-cls} {
|
|
141
|
+
padding: 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
140
144
|
.@{tree-prefix-cls}-node-item {
|
|
141
145
|
padding: 0 @tree-select-dropdown-node-horizontal;
|
|
142
146
|
}
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
@tree-select-bordered: var(~'@{tree-select-custom-prefix}-bordered-spacing-padding-left', 8px);
|
|
46
46
|
@tree-select-wrapper-padding: var(~'@{tree-select-custom-prefix}-wrapper-spacing-padding', 1px 28px 1px 0);
|
|
47
47
|
@tree-select-dropdown-node-horizontal: var(~'@{tree-select-custom-prefix}-dropdown-node-spacing-padding-horizontal', 16px);
|
|
48
|
+
@tree-select-padding-vertical: var(~'@{tree-select-custom-prefix}-dropdown-spacing-padding-vertical', 8px);
|
|
48
49
|
|
|
49
50
|
// radius
|
|
50
51
|
@tree-select-g-radius-border: var(~'@{tree-select-custom-prefix}-radius-border', @radius-border);
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _typeof from "@babel/runtime-corejs3/helpers/typeof";
|
|
1
2
|
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
|
|
2
3
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
|
|
3
4
|
import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
|
|
@@ -96,7 +97,8 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
|
|
|
96
97
|
onSelect = treeSelectProps.onSelect,
|
|
97
98
|
onCheck = treeSelectProps.onCheck,
|
|
98
99
|
dropdownRender = treeSelectProps.dropdownRender,
|
|
99
|
-
onlyExpandOnClickIcon = treeSelectProps.onlyExpandOnClickIcon
|
|
100
|
+
onlyExpandOnClickIcon = treeSelectProps.onlyExpandOnClickIcon,
|
|
101
|
+
listHeight = treeSelectProps.listHeight;
|
|
100
102
|
var isMultiple = mode === 'multiple'; // 是否多选
|
|
101
103
|
var _useMergedState = useMergedState(isMultiple ? [] : undefined, {
|
|
102
104
|
value: value,
|
|
@@ -155,16 +157,26 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
|
|
|
155
157
|
var commCls = classNames((_classNames4 = {}, _defineProperty(_classNames4, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), _defineProperty(_classNames4, _concatInstanceProperty(_context3 = "".concat(selectPrefixCls, "-size-")).call(_context3, size), size), _defineProperty(_classNames4, "".concat(selectPrefixCls, "-wrapper"), true), _classNames4));
|
|
156
158
|
useEffect(function () {
|
|
157
159
|
var arr = [];
|
|
158
|
-
if (isMultiple
|
|
160
|
+
if (isMultiple) {
|
|
159
161
|
for (var index = 0; index < initValue.length; index++) {
|
|
160
162
|
var key = initValue[index];
|
|
161
163
|
if (TreeMap.has(key)) {
|
|
162
164
|
arr.push(TreeMap.get(key));
|
|
165
|
+
} else {
|
|
166
|
+
arr.push({
|
|
167
|
+
key: key,
|
|
168
|
+
title: key
|
|
169
|
+
});
|
|
163
170
|
}
|
|
164
171
|
}
|
|
165
172
|
} else {
|
|
166
173
|
if (TreeMap.has(initValue)) {
|
|
167
174
|
arr.push(TreeMap.get(initValue));
|
|
175
|
+
} else {
|
|
176
|
+
_typeof(initValue) !== undefined && arr.push({
|
|
177
|
+
key: initValue,
|
|
178
|
+
title: initValue
|
|
179
|
+
});
|
|
168
180
|
}
|
|
169
181
|
}
|
|
170
182
|
setSelectTreeNodes(arr);
|
|
@@ -315,7 +327,8 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
|
|
|
315
327
|
notFoundContent: renderNotContent(),
|
|
316
328
|
filterTreeNode: defFilterTreeNode,
|
|
317
329
|
onSelect: handleSelect,
|
|
318
|
-
onExpand: handleExpand
|
|
330
|
+
onExpand: handleExpand,
|
|
331
|
+
height: listHeight
|
|
319
332
|
};
|
|
320
333
|
if (isMultiple) {
|
|
321
334
|
treeProps.checkable = true;
|
|
@@ -343,7 +356,8 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
|
|
|
343
356
|
// 渲染下拉列表框
|
|
344
357
|
var renderContent = function renderContent() {
|
|
345
358
|
var dropDownStyle = _extends({
|
|
346
|
-
width: style === null || style === void 0 ? void 0 : style.width
|
|
359
|
+
width: style === null || style === void 0 ? void 0 : style.width,
|
|
360
|
+
maxHeight: virtual ? 'unset' : ''
|
|
347
361
|
}, dropdownStyle);
|
|
348
362
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
349
363
|
className: dropDownCls,
|
|
@@ -4,7 +4,8 @@ var Filler = function Filler(_ref) {
|
|
|
4
4
|
var height = _ref.height,
|
|
5
5
|
offset = _ref.offset,
|
|
6
6
|
children = _ref.children,
|
|
7
|
-
propsOuterStyle = _ref.outerStyle
|
|
7
|
+
propsOuterStyle = _ref.outerStyle,
|
|
8
|
+
propsInnerStyle = _ref.innerStyle;
|
|
8
9
|
var outerStyle = {};
|
|
9
10
|
var innerStyle = {
|
|
10
11
|
display: 'flex',
|
|
@@ -17,13 +18,13 @@ var Filler = function Filler(_ref) {
|
|
|
17
18
|
overflow: 'hidden',
|
|
18
19
|
zIndex: 0
|
|
19
20
|
}, propsOuterStyle);
|
|
20
|
-
innerStyle = _extends(_extends({}, innerStyle), {
|
|
21
|
+
innerStyle = _extends(_extends(_extends({}, innerStyle), {
|
|
21
22
|
transform: "translateY(".concat(offset, "px)"),
|
|
22
23
|
position: 'absolute',
|
|
23
24
|
left: 0,
|
|
24
25
|
right: 0,
|
|
25
26
|
top: 0
|
|
26
|
-
});
|
|
27
|
+
}), propsInnerStyle);
|
|
27
28
|
}
|
|
28
29
|
return /*#__PURE__*/React.createElement("div", {
|
|
29
30
|
style: outerStyle
|
|
@@ -17,6 +17,7 @@ export interface VirtualListProps<T> extends Omit<React.HTMLAttributes<any>, 'ch
|
|
|
17
17
|
scrollOptions?: ScrollIntoViewOptions;
|
|
18
18
|
needFiller?: boolean;
|
|
19
19
|
outerStyle?: CSSProperties;
|
|
20
|
+
innerStyle?: CSSProperties;
|
|
20
21
|
onScroll?: React.UIEventHandler<HTMLElement>;
|
|
21
22
|
}
|
|
22
23
|
export declare type AvailableVirtualListProps = Pick<VirtualListProps<any>, 'height' | 'itemHeight' | 'threshold' | 'isStaticItemHeight' | 'scrollOptions'>;
|
|
@@ -74,7 +74,7 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
74
74
|
_props$wrapper = props.wrapper,
|
|
75
75
|
WrapperTagName = _props$wrapper === void 0 ? 'div' : _props$wrapper,
|
|
76
76
|
_props$height = props.height,
|
|
77
|
-
propHeight = _props$height === void 0 ?
|
|
77
|
+
propHeight = _props$height === void 0 ? '100%' : _props$height,
|
|
78
78
|
_props$isStaticItemHe = props.isStaticItemHeight,
|
|
79
79
|
isStaticItemHeight = _props$isStaticItemHe === void 0 ? true : _props$isStaticItemHe,
|
|
80
80
|
propItemHeight = props.itemHeight,
|
|
@@ -84,7 +84,8 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
84
84
|
_props$needFiller = props.needFiller,
|
|
85
85
|
needFiller = _props$needFiller === void 0 ? true : _props$needFiller,
|
|
86
86
|
outerStyle = props.outerStyle,
|
|
87
|
-
|
|
87
|
+
innerStyle = props.innerStyle,
|
|
88
|
+
restProps = __rest(props, ["style", "className", "children", "data", "itemKey", "threshold", "wrapper", "height", "isStaticItemHeight", "itemHeight", "measureLongestItem", "scrollOptions", "onScroll", "needFiller", "outerStyle", "innerStyle"]);
|
|
88
89
|
var styleListMaxHeight = style && style.maxHeight || propHeight;
|
|
89
90
|
var refItemHeightMap = useRef({});
|
|
90
91
|
var _useState = useState(200),
|
|
@@ -507,7 +508,8 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
507
508
|
}, restProps), isVirtual ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Filler, {
|
|
508
509
|
height: itemTotalHeight,
|
|
509
510
|
offset: state.status === 'MEASURE_DONE' ? state.startItemTop : 0,
|
|
510
|
-
outerStyle: outerStyle
|
|
511
|
+
outerStyle: outerStyle,
|
|
512
|
+
innerStyle: innerStyle
|
|
511
513
|
}, renderChildren(_sliceInstanceProperty(data).call(data, state.startIndex, state.endIndex + 1), state.startIndex)), renderLongestItem()) : needFiller ? /*#__PURE__*/React.createElement(Filler, {
|
|
512
514
|
height: viewportHeight
|
|
513
515
|
}, renderChildren(data, 0)) : renderChildren(data, 0)));
|
|
@@ -3,5 +3,6 @@ export declare const isValidElement: typeof React.isValidElement;
|
|
|
3
3
|
declare type AnyObject = Record<any, any>;
|
|
4
4
|
declare type RenderProps = undefined | AnyObject | ((originProps: AnyObject) => AnyObject | undefined);
|
|
5
5
|
export declare function replaceElement(element: React.ReactNode, replacement: React.ReactNode, props: RenderProps): React.ReactNode;
|
|
6
|
+
export declare function isFragment(child: any): boolean;
|
|
6
7
|
export declare function cloneElement(element: React.ReactNode, props?: RenderProps): React.ReactElement;
|
|
7
8
|
export {};
|
package/lib/_utils/reactNode.js
CHANGED
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
value: true
|
|
8
8
|
});
|
|
9
9
|
exports.cloneElement = cloneElement;
|
|
10
|
+
exports.isFragment = isFragment;
|
|
10
11
|
exports.isValidElement = void 0;
|
|
11
12
|
exports.replaceElement = replaceElement;
|
|
12
13
|
var React = _interopRequireWildcard(require("react"));
|
|
@@ -18,6 +19,9 @@ function replaceElement(element, replacement, props) {
|
|
|
18
19
|
if (!isValidElement(element)) return replacement;
|
|
19
20
|
return /*#__PURE__*/React.cloneElement(element, typeof props === 'function' ? props(element.props || {}) : props);
|
|
20
21
|
}
|
|
22
|
+
function isFragment(child) {
|
|
23
|
+
return child && isValidElement(child) && child.type === React.Fragment;
|
|
24
|
+
}
|
|
21
25
|
function cloneElement(element, props) {
|
|
22
26
|
return replaceElement(element, element, props);
|
|
23
27
|
}
|
package/lib/checkbox/group.js
CHANGED
|
@@ -43,7 +43,7 @@ var CheckboxGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
43
43
|
getPrefixCls = _useContext.getPrefixCls,
|
|
44
44
|
prefixCls = _useContext.prefixCls,
|
|
45
45
|
userDefaultProps = _useContext.compDefaultProps;
|
|
46
|
-
var CheckboxProps = (0, _utils.getCompProps)('
|
|
46
|
+
var CheckboxProps = (0, _utils.getCompProps)('CheckboxGroup', userDefaultProps, props); // 多选组属性需要合并一遍用户定义的默认属性
|
|
47
47
|
var checkboxType = CheckboxProps.checkboxType,
|
|
48
48
|
className = CheckboxProps.className,
|
|
49
49
|
style = CheckboxProps.style,
|
|
@@ -116,6 +116,9 @@
|
|
|
116
116
|
.kd-collapse-panel:last-child {
|
|
117
117
|
border-top: none;
|
|
118
118
|
}
|
|
119
|
+
.kd-collapse-panel:first-child {
|
|
120
|
+
border-top: var(--kd-c-collapse-border-width, 1px) solid var(--kd-c-collapse-color-border-strong-2, var(--kd-g-color-border-strong-2, #d9d9d9));
|
|
121
|
+
}
|
|
119
122
|
.kd-collapse-panel {
|
|
120
123
|
display: -webkit-inline-box;
|
|
121
124
|
display: -ms-inline-flexbox;
|
package/lib/dropdown/dropdown.js
CHANGED
|
@@ -17,6 +17,7 @@ var _ConfigContext = _interopRequireDefault(require("../config-provider/ConfigCo
|
|
|
17
17
|
var _utils = require("../_utils");
|
|
18
18
|
var _menu = require("./menu");
|
|
19
19
|
var _usePopper = _interopRequireDefault(require("../_utils/usePopper"));
|
|
20
|
+
var _reactNode = require("../_utils/reactNode");
|
|
20
21
|
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
22
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
22
23
|
var findItem = function findItem(element) {
|
|
@@ -71,9 +72,9 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
71
72
|
children.props.onBlur && children.props.onBlur(e);
|
|
72
73
|
handleVisibleChange(false);
|
|
73
74
|
}
|
|
74
|
-
}) : children) : /*#__PURE__*/React.cloneElement(React.
|
|
75
|
-
ref: children.ref
|
|
76
|
-
className: (0, _classnames.default)("".concat(prefixCls, "-trigger"), children.props.className, {
|
|
75
|
+
}) : children) : /*#__PURE__*/React.cloneElement( /*#__PURE__*/React.isValidElement(children) && !(0, _reactNode.isFragment)(children) ? children : /*#__PURE__*/React.createElement("span", null, children), {
|
|
76
|
+
ref: /*#__PURE__*/React.isValidElement(children) && !(0, _reactNode.isFragment)(children) && children.ref ? children.ref : ref,
|
|
77
|
+
className: (0, _classnames.default)("".concat(prefixCls, "-trigger"), /*#__PURE__*/React.isValidElement(children) && !(0, _reactNode.isFragment)(children) && children.props && children.props.className, {
|
|
77
78
|
disabled: disabled
|
|
78
79
|
})
|
|
79
80
|
});
|
package/lib/input/input.js
CHANGED
|
@@ -83,8 +83,7 @@ var InternalInput = function InternalInput(props, ref) {
|
|
|
83
83
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
84
84
|
showNumberMark = _useState4[0],
|
|
85
85
|
setShowNumberMark = _useState4[1];
|
|
86
|
-
var
|
|
87
|
-
var inputRef = ref || thisInputRef;
|
|
86
|
+
var inputRef = (0, _react.useRef)();
|
|
88
87
|
var inputPrefixCls = getPrefixCls(prefixCls, 'input', customPrefixcls); // 按钮样式前缀
|
|
89
88
|
var addonBefore = others.addonBefore,
|
|
90
89
|
addonAfter = others.addonAfter;
|
|
@@ -163,6 +162,25 @@ var InternalInput = function InternalInput(props, ref) {
|
|
|
163
162
|
setShowNumberMark(false);
|
|
164
163
|
}
|
|
165
164
|
}, [focused]);
|
|
165
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
|
166
|
+
return {
|
|
167
|
+
input: inputRef.current,
|
|
168
|
+
focus: function focus() {
|
|
169
|
+
var _a;
|
|
170
|
+
setFocused(true);
|
|
171
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
172
|
+
},
|
|
173
|
+
blur: function blur() {
|
|
174
|
+
var _a;
|
|
175
|
+
setFocused(false);
|
|
176
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.blur();
|
|
177
|
+
},
|
|
178
|
+
select: function select() {
|
|
179
|
+
var _a;
|
|
180
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.select();
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
});
|
|
166
184
|
return /*#__PURE__*/_react.default.createElement(_ClearableLabeledInput.default, (0, _extends2.default)({}, inputProps, {
|
|
167
185
|
handleReset: handleReset,
|
|
168
186
|
value: value,
|
|
@@ -84,6 +84,9 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
|
|
|
84
84
|
return true;
|
|
85
85
|
};
|
|
86
86
|
(0, _react.useEffect)(function () {
|
|
87
|
+
if (typeof value === 'undefined') {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
87
90
|
setInputValue((0, _numberUtil.serialization)(value + ''));
|
|
88
91
|
}, [value]);
|
|
89
92
|
var handleEventAttachValue = function handleEventAttachValue(event, value) {
|
|
@@ -252,6 +255,9 @@ var InternalInputNumber = function InternalInputNumber(props, ref) {
|
|
|
252
255
|
inputStatus.current.inputFocused = false;
|
|
253
256
|
};
|
|
254
257
|
(0, _react.useEffect)(function () {
|
|
258
|
+
if (typeof value === 'undefined') {
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
255
261
|
var _inputStatus$current = inputStatus.current,
|
|
256
262
|
isHandleChange = _inputStatus$current.isHandleChange,
|
|
257
263
|
inputFocused = _inputStatus$current.inputFocused;
|
package/lib/menu/menu.js
CHANGED
|
@@ -41,10 +41,10 @@ var openSubMenuSet = new _set.default();
|
|
|
41
41
|
var Menu = function Menu(props) {
|
|
42
42
|
var _context2, _classNames;
|
|
43
43
|
var _a;
|
|
44
|
-
var
|
|
45
|
-
getPrefixCls =
|
|
46
|
-
pkgPrefixCls =
|
|
47
|
-
userDefaultProps =
|
|
44
|
+
var _useContext = (0, _react.useContext)(_configProvider.ConfigContext),
|
|
45
|
+
getPrefixCls = _useContext.getPrefixCls,
|
|
46
|
+
pkgPrefixCls = _useContext.prefixCls,
|
|
47
|
+
userDefaultProps = _useContext.compDefaultProps;
|
|
48
48
|
var userSelectedKey = props.selectedKey,
|
|
49
49
|
userOpenKeys = props.openKeys;
|
|
50
50
|
var _b = (0, _utils.getCompProps)('Menu', userDefaultProps, props),
|
|
@@ -60,22 +60,23 @@ var Menu = function Menu(props) {
|
|
|
60
60
|
theme = _b.theme,
|
|
61
61
|
collapsed = _b.collapsed,
|
|
62
62
|
accordion = _b.accordion,
|
|
63
|
-
|
|
63
|
+
defaultOpenKeys = _b.defaultOpenKeys,
|
|
64
|
+
restProps = __rest(_b, ["prefixCls", "mode", "inlineIndent", "forceSubMenuRender", "additionalTools", "onClick", "onOpenChange", "children", "className", "theme", "collapsed", "accordion", "defaultOpenKeys"]);
|
|
64
65
|
var prefixCls = getPrefixCls(pkgPrefixCls, 'menu', customPrefixcls);
|
|
65
66
|
(0, _devwarning.default)(['inline', 'vertical', undefined].indexOf(mode) === -1, 'menu', "cannot found menu mode '".concat(mode, "'"));
|
|
66
67
|
(0, _devwarning.default)(mode !== 'inline' && accordion !== undefined, 'menu', "'accordion' is valid only in mode='inline'");
|
|
67
|
-
var
|
|
68
|
-
|
|
69
|
-
selectedKey =
|
|
70
|
-
setSelectedKey =
|
|
71
|
-
var
|
|
72
|
-
|
|
73
|
-
selectedKeyPath =
|
|
74
|
-
setSelectedKeyPath =
|
|
75
|
-
var
|
|
76
|
-
|
|
77
|
-
openKeys =
|
|
78
|
-
setOpenKeys =
|
|
68
|
+
var _useState = (0, _react.useState)(''),
|
|
69
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
70
|
+
selectedKey = _useState2[0],
|
|
71
|
+
setSelectedKey = _useState2[1];
|
|
72
|
+
var _useState3 = (0, _react.useState)([]),
|
|
73
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
74
|
+
selectedKeyPath = _useState4[0],
|
|
75
|
+
setSelectedKeyPath = _useState4[1];
|
|
76
|
+
var _useState5 = (0, _react.useState)([]),
|
|
77
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
78
|
+
openKeys = _useState6[0],
|
|
79
|
+
setOpenKeys = _useState6[1];
|
|
79
80
|
if (mode === 'inline') {
|
|
80
81
|
restProps.triggerSubMenuAction = 'click';
|
|
81
82
|
}
|
|
@@ -90,6 +91,14 @@ var Menu = function Menu(props) {
|
|
|
90
91
|
setSelectedKey(userSelectedKey);
|
|
91
92
|
}
|
|
92
93
|
}, [userSelectedKey]);
|
|
94
|
+
(0, _react.useEffect)(function () {
|
|
95
|
+
if (Array.isArray(defaultOpenKeys)) {
|
|
96
|
+
setOpenKeys(defaultOpenKeys);
|
|
97
|
+
defaultOpenKeys.forEach(function (d) {
|
|
98
|
+
openSubMenuSet.add(d);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}, []);
|
|
93
102
|
(0, _react.useEffect)(function () {
|
|
94
103
|
if (userOpenKeys !== undefined && Array.isArray(userOpenKeys)) {
|
|
95
104
|
setOpenKeys(userOpenKeys);
|