@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.
Files changed (68) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/kdesign-complete.less +12 -4
  3. package/dist/kdesign.css +13 -5
  4. package/dist/kdesign.css.map +1 -1
  5. package/dist/kdesign.js +363 -268
  6. package/dist/kdesign.js.map +1 -1
  7. package/dist/kdesign.min.css +3 -3
  8. package/dist/kdesign.min.js +8 -8
  9. package/dist/kdesign.min.js.map +1 -1
  10. package/es/_utils/reactNode.d.ts +1 -0
  11. package/es/_utils/reactNode.js +3 -0
  12. package/es/checkbox/group.js +1 -1
  13. package/es/collapse/style/index.css +3 -0
  14. package/es/collapse/style/index.less +3 -0
  15. package/es/config-provider/compDefaultProps.d.ts +2 -0
  16. package/es/config-provider/compDefaultProps.js +3 -1
  17. package/es/dropdown/dropdown.js +4 -3
  18. package/es/input/input.js +21 -3
  19. package/es/input-number/inputNumber.js +6 -0
  20. package/es/menu/menu.js +27 -18
  21. package/es/menu/style/index.css +3 -0
  22. package/es/menu/style/mixin.less +1 -0
  23. package/es/select/select.js +42 -18
  24. package/es/timeline/TimelineItem.js +2 -1
  25. package/es/timeline/style/index.css +2 -3
  26. package/es/timeline/style/index.less +2 -3
  27. package/es/tooltip/tooltip.js +3 -2
  28. package/es/tree/tree.js +68 -57
  29. package/es/tree/treeNode.js +1 -6
  30. package/es/tree-select/interface.d.ts +1 -0
  31. package/es/tree-select/style/index.css +4 -1
  32. package/es/tree-select/style/index.less +5 -1
  33. package/es/tree-select/style/token.less +1 -0
  34. package/es/tree-select/tree-select.js +18 -4
  35. package/es/virtual-list/Filler.d.ts +1 -0
  36. package/es/virtual-list/Filler.js +4 -3
  37. package/es/virtual-list/virtual-list.d.ts +1 -0
  38. package/es/virtual-list/virtual-list.js +5 -3
  39. package/lib/_utils/reactNode.d.ts +1 -0
  40. package/lib/_utils/reactNode.js +4 -0
  41. package/lib/checkbox/group.js +1 -1
  42. package/lib/collapse/style/index.css +3 -0
  43. package/lib/collapse/style/index.less +3 -0
  44. package/lib/config-provider/compDefaultProps.d.ts +2 -0
  45. package/lib/config-provider/compDefaultProps.js +3 -1
  46. package/lib/dropdown/dropdown.js +4 -3
  47. package/lib/input/input.js +20 -2
  48. package/lib/input-number/inputNumber.js +6 -0
  49. package/lib/menu/menu.js +26 -17
  50. package/lib/menu/style/index.css +3 -0
  51. package/lib/menu/style/mixin.less +1 -0
  52. package/lib/select/select.js +41 -17
  53. package/lib/timeline/TimelineItem.js +2 -1
  54. package/lib/timeline/style/index.css +2 -3
  55. package/lib/timeline/style/index.less +2 -3
  56. package/lib/tooltip/tooltip.js +3 -2
  57. package/lib/tree/tree.js +67 -56
  58. package/lib/tree/treeNode.js +1 -6
  59. package/lib/tree-select/interface.d.ts +1 -0
  60. package/lib/tree-select/style/index.css +4 -1
  61. package/lib/tree-select/style/index.less +5 -1
  62. package/lib/tree-select/style/token.less +1 -0
  63. package/lib/tree-select/tree-select.js +20 -6
  64. package/lib/virtual-list/Filler.d.ts +1 -0
  65. package/lib/virtual-list/Filler.js +4 -3
  66. package/lib/virtual-list/virtual-list.d.ts +1 -0
  67. package/lib/virtual-list/virtual-list.js +5 -3
  68. package/package.json +1 -1
@@ -107,6 +107,7 @@
107
107
  /* 单行显示省略号 */
108
108
  /** 浮层箭头样式 **/
109
109
  .menu-hidden {
110
+ display: none;
110
111
  opacity: 0;
111
112
  visibility: hidden;
112
113
  -webkit-animation: kdZoomTopLeftOut calc(var(--kd-c-menu-motion-duration, var(--kd-g-duration, 0.3s)) - 0.1s) cubic-bezier(0, 0.4, 0.4, 1) forwards;
@@ -534,6 +535,7 @@
534
535
  color: var(--kd-c-menu-sub-color-text-hover, var(--kd-g-color-white, #fff));
535
536
  }
536
537
  .kd-menu-popper.hidden {
538
+ display: none;
537
539
  opacity: 0;
538
540
  visibility: hidden;
539
541
  -webkit-animation: kdZoomTopLeftOut calc(var(--kd-c-menu-motion-duration, var(--kd-g-duration, 0.3s)) - 0.1s) cubic-bezier(0, 0.4, 0.4, 1) forwards;
@@ -575,6 +577,7 @@
575
577
  transition-timing-function: cubic-bezier(0.4, 0, 0.6, 1);
576
578
  }
577
579
  .kd-menu-popper .kd-menu-submenu-sub-hide {
580
+ display: none;
578
581
  opacity: 0;
579
582
  visibility: hidden;
580
583
  -webkit-animation: kdZoomTopLeftOut calc(var(--kd-c-menu-motion-duration, var(--kd-g-duration, 0.3s)) - 0.1s) cubic-bezier(0, 0.4, 0.4, 1) forwards;
@@ -79,6 +79,7 @@
79
79
  }
80
80
 
81
81
  .menu-hidden {
82
+ display: none;
82
83
  opacity: 0;
83
84
  visibility: hidden;
84
85
  animation: kdZoomTopLeftOut calc(@menu-motion-duration - 0.1s) cubic-bezier(0, .4, .4, 1) forwards;
@@ -85,8 +85,7 @@ var InternalSelect = function InternalSelect(props, ref) {
85
85
  initValue = _useMergedState2[0],
86
86
  setInitValue = _useMergedState2[1];
87
87
  var realChildren = Array.isArray(options) ? options : (0, _reactChildren.toArray)(children); // options配置项和默认children
88
- var innerRef = (0, _react.useRef)();
89
- var selectRef = ref || innerRef;
88
+ var selectRef = (0, _react.useRef)();
90
89
  var searchRef = (0, _react.useRef)(null); // 搜索框ref
91
90
  var selectionRef = (0, _react.useRef)(null);
92
91
  var dropDownRef = (0, _react.useRef)(null);
@@ -152,22 +151,29 @@ var InternalSelect = function InternalSelect(props, ref) {
152
151
  var arr = [];
153
152
  (0, _map.default)(initValue).call(initValue, function (item) {
154
153
  var _a, _b;
155
- var obj = (realChildren === null || realChildren === void 0 ? void 0 : (0, _find.default)(realChildren).call(realChildren, function (child) {
154
+ var obj = realChildren === null || realChildren === void 0 ? void 0 : (0, _find.default)(realChildren).call(realChildren, function (child) {
156
155
  if (child && child.props) {
157
156
  return child.props.value === item;
158
157
  } else {
159
158
  return child.value === item;
160
159
  }
161
- })) || {};
162
- if (options && options.length) {
163
- arr.push({
164
- value: obj === null || obj === void 0 ? void 0 : obj.value,
165
- label: (obj === null || obj === void 0 ? void 0 : obj.label) || (obj === null || obj === void 0 ? void 0 : obj.value)
166
- });
160
+ });
161
+ if (obj) {
162
+ if (options && options.length) {
163
+ arr.push({
164
+ value: obj === null || obj === void 0 ? void 0 : obj.value,
165
+ label: (obj === null || obj === void 0 ? void 0 : obj.label) || (obj === null || obj === void 0 ? void 0 : obj.value)
166
+ });
167
+ } else {
168
+ arr.push({
169
+ value: (_a = obj.props) === null || _a === void 0 ? void 0 : _a.value,
170
+ label: (_b = obj.props) === null || _b === void 0 ? void 0 : _b.children
171
+ });
172
+ }
167
173
  } else {
168
174
  arr.push({
169
- value: (_a = obj.props) === null || _a === void 0 ? void 0 : _a.value,
170
- label: (_b = obj.props) === null || _b === void 0 ? void 0 : _b.children
175
+ value: item,
176
+ label: item
171
177
  });
172
178
  }
173
179
  });
@@ -184,19 +190,22 @@ var InternalSelect = function InternalSelect(props, ref) {
184
190
  if (!isMultiple) {
185
191
  multipleRef.current.selectedVal = initValue; // 默认选中值
186
192
  if (initValue !== undefined) {
187
- var obj = (realChildren === null || realChildren === void 0 ? void 0 : (0, _find.default)(realChildren).call(realChildren, function (child) {
193
+ var obj = realChildren === null || realChildren === void 0 ? void 0 : (0, _find.default)(realChildren).call(realChildren, function (child) {
188
194
  var _a;
189
195
  if (child && child.props) {
190
196
  return ((_a = child.props) === null || _a === void 0 ? void 0 : _a.value) === initValue;
191
197
  } else {
192
198
  return (child === null || child === void 0 ? void 0 : child.value) === initValue;
193
199
  }
194
- })) || {};
195
- if (options && options.length) {
196
- setSingleVal(getOptionLabel(obj) || (obj === null || obj === void 0 ? void 0 : obj.value));
200
+ });
201
+ if (obj) {
202
+ if (options && options.length) {
203
+ setSingleVal(getOptionLabel(obj) || (obj === null || obj === void 0 ? void 0 : obj.value));
204
+ } else {
205
+ setSingleVal(getOptionLabel(obj));
206
+ }
197
207
  } else {
198
- // setSingleVal(obj.props?.children)
199
- setSingleVal(getOptionLabel(obj));
208
+ setSingleVal(initValue);
200
209
  }
201
210
  } else {
202
211
  setSingleVal(undefined);
@@ -744,6 +753,21 @@ var InternalSelect = function InternalSelect(props, ref) {
744
753
  (_a = clearRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('mouseup', fn);
745
754
  };
746
755
  }, [singleVal, mulOptions]);
756
+ (0, _react.useImperativeHandle)(ref, function () {
757
+ return {
758
+ select: selectRef.current,
759
+ focus: function focus() {
760
+ var _a;
761
+ setFocusd(true);
762
+ (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.focus();
763
+ },
764
+ blur: function blur() {
765
+ var _a;
766
+ setFocusd(false);
767
+ (_a = searchRef.current) === null || _a === void 0 ? void 0 : _a.blur();
768
+ }
769
+ };
770
+ });
747
771
  var _useState13 = (0, _react.useState)(isShowSearch ? getActiveIndex(0) : -1),
748
772
  _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
749
773
  activeIndex = _useState14[0],
@@ -55,6 +55,7 @@ var TimelineItem = function TimelineItem(props) {
55
55
  var labelStyle = mode !== 'alternate' ? (0, _defineProperty2.default)({
56
56
  width: "".concat(labelWidth, "px")
57
57
  }, (0, _concat.default)(_context = "margin".concat(mode === null || mode === void 0 ? void 0 : mode.substring(0, 1).toUpperCase())).call(_context, mode === null || mode === void 0 ? void 0 : mode.substring(1)), "-".concat(labelWidth, "px")) : {};
58
+ var marginDistance = pending ? Math.round(lineHeight / 2 + 12 / 2 + 2) : Math.round(lineHeight / 2 + 9 / 2 + 2);
58
59
  return /*#__PURE__*/React.createElement("li", (0, _extends2.default)({}, restProps, {
59
60
  className: itemClassName
60
61
  }), label && /*#__PURE__*/React.createElement("div", {
@@ -65,7 +66,7 @@ var TimelineItem = function TimelineItem(props) {
65
66
  }, label), /*#__PURE__*/React.createElement("div", {
66
67
  className: "".concat(prefixCls, "-tail"),
67
68
  style: {
68
- marginTop: lineHeight - 2
69
+ marginTop: marginDistance
69
70
  }
70
71
  }), /*#__PURE__*/React.createElement("div", {
71
72
  className: dotClassName,
@@ -297,16 +297,15 @@
297
297
  .kd-timeline.pending .kd-timeline-item.last .kd-timeline-item-tail {
298
298
  display: block;
299
299
  height: calc(100% - 14px);
300
- border-left: 2px dotted var(--kd-c-timeline-line-color, var(--kd-g-color-border-weak, #e5e5e5));
300
+ border-left: 1px dotted var(--kd-c-timeline-line-color, var(--kd-g-color-border-weak, #e5e5e5));
301
301
  }
302
302
  .kd-timeline.reverse .kd-timeline-item.last .kd-timeline-item-tail {
303
303
  display: none;
304
304
  }
305
305
  .kd-timeline.reverse .kd-timeline-item.pending .kd-timeline-item-tail {
306
- top: 15px;
307
306
  display: block;
308
307
  height: calc(100% - 15px);
309
- border-left: 2px dotted var(--kd-c-timeline-line-color, var(--kd-g-color-border-weak, #e5e5e5));
308
+ border-left: 1px dotted var(--kd-c-timeline-line-color, var(--kd-g-color-border-weak, #e5e5e5));
310
309
  }
311
310
  .kd-timeline.reverse .kd-timeline-item.pending .kd-timeline-item-content {
312
311
  min-height: 48px;
@@ -241,7 +241,7 @@
241
241
  &.pending .@{timeline-item-prefix-cls}.last .@{timeline-item-prefix-cls}-tail {
242
242
  display: block;
243
243
  height: calc(100% - 14px);
244
- border-left: 2px dotted @timeline-line-color;
244
+ border-left: 1px dotted @timeline-line-color;
245
245
  }
246
246
 
247
247
  &.reverse .@{timeline-item-prefix-cls}.last .@{timeline-item-prefix-cls}-tail {
@@ -250,10 +250,9 @@
250
250
 
251
251
  &.reverse .@{timeline-item-prefix-cls}.pending {
252
252
  .@{timeline-item-prefix-cls}-tail {
253
- top: 15px;
254
253
  display: block;
255
254
  height: calc(100% - 15px);
256
- border-left: 2px dotted @timeline-line-color;
255
+ border-left: 1px dotted @timeline-line-color;
257
256
  }
258
257
  .@{timeline-item-prefix-cls}-content {
259
258
  min-height: 48px;
@@ -11,6 +11,7 @@ exports.default = void 0;
11
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _utils = require("../_utils");
14
+ var _reactNode = require("../_utils/reactNode");
14
15
  var _configProvider = require("../config-provider");
15
16
  var _usePopper = _interopRequireDefault(require("../_utils/usePopper"));
16
17
  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); }
@@ -28,8 +29,8 @@ var Tooltip = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
28
29
  customPrefixcls = allProps.prefixCls;
29
30
  // className前缀
30
31
  var prefixCls = getPrefixCls(pkgPrefixCls, 'tooltip', customPrefixcls);
31
- var tiplocator = /*#__PURE__*/_react.default.cloneElement(_react.default.Children.count(children) === 1 && children.type ? children : /*#__PURE__*/_react.default.createElement("span", null, children), {
32
- ref: children.ref || ref
32
+ var tiplocator = /*#__PURE__*/_react.default.cloneElement( /*#__PURE__*/_react.default.isValidElement(children) && !(0, _reactNode.isFragment)(children) ? children : /*#__PURE__*/_react.default.createElement("span", null, children), {
33
+ ref: /*#__PURE__*/_react.default.isValidElement(children) && !(0, _reactNode.isFragment)(children) && children.ref ? children.ref : ref
33
34
  });
34
35
  var onVisibleChange = function onVisibleChange(v) {
35
36
  if (status.current === v && allProps.visible === undefined) return;
package/lib/tree/tree.js CHANGED
@@ -23,6 +23,7 @@ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
23
23
  var _ConfigContext = _interopRequireDefault(require("../config-provider/ConfigContext"));
24
24
  var _utils = require("../_utils");
25
25
  var _treeNode = _interopRequireDefault(require("./treeNode"));
26
+ var _virtualList = _interopRequireDefault(require("../virtual-list"));
26
27
  var _treeUtils = require("./utils/treeUtils");
27
28
  var _treeHooks = require("./treeHooks");
28
29
  var _isBoolean = _interopRequireDefault(require("lodash/isBoolean"));
@@ -92,7 +93,6 @@ var InternalTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
92
93
  notFoundContent = TreeProps.notFoundContent,
93
94
  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"]);
94
95
  var treePrefixCls = getPrefixCls(prefixCls, 'tree', customPrefixcls); // 树样式前缀
95
- var treeNodePrefixCls = getPrefixCls(prefixCls, 'tree-node', customPrefixcls); // 树节点样式前缀
96
96
  var treeNodeClassName = (0, _classnames.default)(className, (0, _defineProperty2.default)({}, "".concat(treePrefixCls), true));
97
97
  var treeRootClassName = "".concat(treePrefixCls, "-root");
98
98
  var estimatedItemSize = innerEstimatedItemSize; // 节点高度
@@ -106,45 +106,41 @@ var InternalTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
106
106
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
107
107
  scrollKey = _React$useState2[0],
108
108
  setScrollKey = _React$useState2[1];
109
- var _React$useState3 = _react.default.useState(0),
110
- _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
111
- start = _React$useState4[0],
112
- setStart = _React$useState4[1];
113
109
  var _useSelect = (0, _treeHooks.useSelect)(selectedKeysProps, defaultSelectedKeys),
114
110
  _useSelect2 = (0, _slicedToArray2.default)(_useSelect, 2),
115
111
  selectedKeys = _useSelect2[0],
116
112
  setSelectedKeys = _useSelect2[1];
117
113
  var listRef = _react.default.useRef(null);
118
- var plantomRef = _react.default.useRef(null);
119
114
  var rootRef = _react.default.useRef(null);
120
115
  var scrollRef = ref || rootRef;
121
116
  var treeNodeRef = _react.default.useRef(null);
122
117
  var dragNodeRef = _react.default.useRef(null);
123
118
  var delayedDragEnterRef = _react.default.useRef(null);
124
- var _React$useState5 = _react.default.useState(true),
119
+ var virtualListRef = _react.default.useRef(null);
120
+ var _React$useState3 = _react.default.useState(true),
121
+ _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
122
+ isInit = _React$useState4[0],
123
+ setIsInit = _React$useState4[1];
124
+ var _React$useState5 = _react.default.useState(null),
125
125
  _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
126
- isInit = _React$useState6[0],
127
- setIsInit = _React$useState6[1];
126
+ dropPosition = _React$useState6[0],
127
+ setDropPosition = _React$useState6[1];
128
128
  var _React$useState7 = _react.default.useState(null),
129
129
  _React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
130
- dropPosition = _React$useState8[0],
131
- setDropPosition = _React$useState8[1];
132
- var _React$useState9 = _react.default.useState(null),
130
+ dragOverNodeKey = _React$useState8[0],
131
+ setDragOverNodeKey = _React$useState8[1];
132
+ var _React$useState9 = _react.default.useState(new _set.default()),
133
133
  _React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
134
- dragOverNodeKey = _React$useState10[0],
135
- setDragOverNodeKey = _React$useState10[1];
134
+ loadedKeys = _React$useState10[0],
135
+ setLoadedKeys = _React$useState10[1];
136
136
  var _React$useState11 = _react.default.useState(new _set.default()),
137
137
  _React$useState12 = (0, _slicedToArray2.default)(_React$useState11, 2),
138
- loadedKeys = _React$useState12[0],
139
- setLoadedKeys = _React$useState12[1];
140
- var _React$useState13 = _react.default.useState(new _set.default()),
138
+ loadingKeys = _React$useState12[0],
139
+ setLoadingKeys = _React$useState12[1];
140
+ var _React$useState13 = _react.default.useState([]),
141
141
  _React$useState14 = (0, _slicedToArray2.default)(_React$useState13, 2),
142
- loadingKeys = _React$useState14[0],
143
- setLoadingKeys = _React$useState14[1];
144
- var _React$useState15 = _react.default.useState([]),
145
- _React$useState16 = (0, _slicedToArray2.default)(_React$useState15, 2),
146
- searchExpandedKeys = _React$useState16[0],
147
- setSearchExpandedKeys = _React$useState16[1];
142
+ searchExpandedKeys = _React$useState14[0],
143
+ setSearchExpandedKeys = _React$useState14[1];
148
144
  var isSearching = _react.default.useMemo(function () {
149
145
  return typeof filterTreeNode === 'function' && !!filterValue;
150
146
  }, [filterValue]);
@@ -169,13 +165,11 @@ var InternalTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
169
165
  var filterData = _react.default.useMemo(function () {
170
166
  return (0, _treeUtils.getFilterData)(spreadAttrData, filterTreeNode, isSearching, posData, keysData);
171
167
  }, [spreadAttrData, isSearching, posData, keysData]);
172
- var _useViewportHeight = (0, _treeHooks.useViewportHeight)(height, listRef),
173
- _useViewportHeight2 = (0, _slicedToArray2.default)(_useViewportHeight, 1),
174
- viewportHeight = _useViewportHeight2[0];
175
- var _useVisibleDataMemo = (0, _treeHooks.useVisibleDataMemo)(virtual, filterData, viewportHeight, estimatedItemSize, start),
176
- _useVisibleDataMemo2 = (0, _slicedToArray2.default)(_useVisibleDataMemo, 1),
177
- visibleData = _useVisibleDataMemo2[0];
178
- var index = _react.default.useMemo(function () {
168
+ (0, _react.useEffect)(function () {
169
+ var _a, _b;
170
+ if (typeof scrollKey === 'undefined') {
171
+ return;
172
+ }
179
173
  var scrollIndex = 0;
180
174
  for (var i = 0; i < filterData.length; i++) {
181
175
  if (filterData[i].key === scrollKey) {
@@ -183,19 +177,21 @@ var InternalTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
183
177
  break;
184
178
  }
185
179
  }
186
- return scrollIndex;
187
- }, [filterData, scrollKey]);
188
- (0, _treeHooks.useScrollToKey)(scrollKey, index, estimatedItemSize, scrollRef, viewportHeight, treeNodePrefixCls);
189
- (0, _treeHooks.usePlantomHeightEffect)(plantomRef, filterData, estimatedItemSize);
190
- var handleScroll = (0, _react.useCallback)(function () {
191
- if (!virtual) return;
192
- var scrollTop = scrollRef.current.scrollTop;
193
- setStart(Math.floor(scrollTop / estimatedItemSize));
194
- var tempStartOffset = scrollTop - scrollTop % estimatedItemSize;
195
- if (listRef.current && virtual) {
196
- listRef.current.style.transform = "translate3d(0,".concat(tempStartOffset, "px,0)");
180
+ if (virtual) {
181
+ (_a = virtualListRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({
182
+ index: scrollIndex
183
+ });
184
+ } else {
185
+ var wrapperDom = scrollRef.current;
186
+ var node = wrapperDom ? (_b = wrapperDom === null || wrapperDom === void 0 ? void 0 : wrapperDom.children[0]) === null || _b === void 0 ? void 0 : _b.children[scrollIndex] : null;
187
+ if (node && wrapperDom) {
188
+ var containerHeight = wrapperDom.clientHeight;
189
+ var targetHeight = node.clientHeight;
190
+ var scrollPosition = node.offsetTop + targetHeight - containerHeight;
191
+ wrapperDom.scrollTop = scrollPosition;
192
+ }
197
193
  }
198
- }, [listRef, scrollRef, virtual, estimatedItemSize]);
194
+ }, [filterData, scrollKey, virtual]);
199
195
  var handleNodeLoad = (0, _react.useCallback)(function (loadedKeys, loadingKeys, data) {
200
196
  var key = data.key;
201
197
  if (!loadData || loadedKeys.has(key) || loadingKeys.has(key)) {
@@ -240,7 +236,7 @@ var InternalTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
240
236
  var newSearchExpandedKeys = expanded ? (0, _treeUtils.addKeys)(searchExpandedKeys, [key]) : (0, _treeUtils.delKey)(searchExpandedKeys, [key]);
241
237
  setSearchExpandedKeys(newSearchExpandedKeys);
242
238
  }
243
- setScrollKey('');
239
+ setScrollKey(undefined);
244
240
  setIsInit(false);
245
241
  if (expanded && loadData) {
246
242
  handleNodeLoad(loadedKeys, loadingKeys, node);
@@ -386,18 +382,7 @@ var InternalTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
386
382
  (0, _react.useEffect)(function () {
387
383
  setCheckedKeys(checkedKeys);
388
384
  }, [checkedKeys, setCheckedKeys]);
389
- return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
390
- className: treeNodeClassName,
391
- style: style,
392
- ref: scrollRef,
393
- onScroll: handleScroll
394
- }, others), /*#__PURE__*/_react.default.createElement("div", {
395
- ref: plantomRef,
396
- className: "".concat(treePrefixCls, "-plantom")
397
- }), /*#__PURE__*/_react.default.createElement("div", {
398
- className: treeRootClassName,
399
- ref: listRef
400
- }, !(visibleData === null || visibleData === void 0 ? void 0 : visibleData.length) && notFoundContent, visibleData && (0, _map.default)(visibleData).call(visibleData, function (item) {
385
+ var renderTreeNode = function renderTreeNode(item) {
401
386
  var checked = (0, _treeUtils.getChecked)(checkedKeys, item.key);
402
387
  var indeterminate = (0, _treeUtils.getHalfChecked)(halfCheckedKeys, item.key);
403
388
  item.nodeKey = item.key;
@@ -435,7 +420,33 @@ var InternalTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
435
420
  key: item.key,
436
421
  ref: treeNodeRef
437
422
  }));
438
- })));
423
+ };
424
+ return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
425
+ className: treeNodeClassName,
426
+ style: style,
427
+ ref: scrollRef
428
+ }, others), /*#__PURE__*/_react.default.createElement("div", {
429
+ className: treeRootClassName,
430
+ ref: listRef
431
+ }, !(filterData === null || filterData === void 0 ? void 0 : filterData.length) && notFoundContent, virtual ? /*#__PURE__*/_react.default.createElement(_virtualList.default, {
432
+ className: className,
433
+ style: style,
434
+ ref: virtualListRef,
435
+ data: filterData,
436
+ isStaticItemHeight: true,
437
+ itemKey: function itemKey(item) {
438
+ return item === null || item === void 0 ? void 0 : item.key;
439
+ },
440
+ height: height,
441
+ itemHeight: estimatedItemSize,
442
+ outerStyle: {
443
+ overflow: 'unset'
444
+ },
445
+ innerStyle: {
446
+ minWidth: '100%',
447
+ width: 'max-contnet'
448
+ }
449
+ }, renderTreeNode) : (0, _map.default)(filterData).call(filterData, renderTreeNode)));
439
450
  });
440
451
  var Tree = InternalTree;
441
452
  Tree.displayName = 'Tree';
@@ -30,7 +30,7 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
30
30
  }
31
31
  return t;
32
32
  };
33
- var TreeNode = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
33
+ var TreeNode = /*#__PURE__*/_react.default.forwardRef(function (props) {
34
34
  var _context;
35
35
  var _useContext = (0, _react.useContext)(_ConfigContext.default),
36
36
  getPrefixCls = _useContext.getPrefixCls,
@@ -242,11 +242,6 @@ var TreeNode = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
242
242
  var handleSelect = _react.default.useCallback(function (e) {
243
243
  selectable && !disabled && onSelect && onSelect(e, nodeData, nodeKey);
244
244
  }, [onSelect, selectable, disabled, nodeData, nodeKey]);
245
- _react.default.useImperativeHandle(ref, function () {
246
- return {
247
- selectNode: handleSelect
248
- };
249
- });
250
245
  var handleExpandIconClick = (0, _react.useCallback)(function (e) {
251
246
  e === null || e === void 0 ? void 0 : e.stopPropagation();
252
247
  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: 4px 0;
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: 4px 0;
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,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
3
+ var _typeof3 = require("@babel/runtime-corejs3/helpers/typeof");
4
4
  var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
5
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
6
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
10
  exports.default = void 0;
11
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/typeof"));
11
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
12
13
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
13
14
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
@@ -25,7 +26,7 @@ var _utils = require("../_utils");
25
26
  var _index = require("../index");
26
27
  var _usePopper = _interopRequireDefault(require("../_utils/usePopper"));
27
28
  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); }
28
- 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; }
29
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
29
30
  var INPUT_MIN_WIDTH = 4; // 输入框最小宽度
30
31
  function flattenTreeData(treeData) {
31
32
  var map = new _map.default();
@@ -108,7 +109,8 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
108
109
  onSelect = treeSelectProps.onSelect,
109
110
  onCheck = treeSelectProps.onCheck,
110
111
  dropdownRender = treeSelectProps.dropdownRender,
111
- onlyExpandOnClickIcon = treeSelectProps.onlyExpandOnClickIcon;
112
+ onlyExpandOnClickIcon = treeSelectProps.onlyExpandOnClickIcon,
113
+ listHeight = treeSelectProps.listHeight;
112
114
  var isMultiple = mode === 'multiple'; // 是否多选
113
115
  var _useMergedState = (0, _hooks.useMergedState)(isMultiple ? [] : undefined, {
114
116
  value: value,
@@ -167,16 +169,26 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
167
169
  var commCls = (0, _classnames.default)((_classNames4 = {}, (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-bordered"), borderType === 'bordered'), (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-underline"), borderType === 'underline'), (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-borderless"), borderType === 'none'), (0, _defineProperty2.default)(_classNames4, (0, _concat.default)(_context3 = "".concat(selectPrefixCls, "-size-")).call(_context3, size), size), (0, _defineProperty2.default)(_classNames4, "".concat(selectPrefixCls, "-wrapper"), true), _classNames4));
168
170
  (0, _react.useEffect)(function () {
169
171
  var arr = [];
170
- if (isMultiple && (initValue === null || initValue === void 0 ? void 0 : initValue.length)) {
172
+ if (isMultiple) {
171
173
  for (var index = 0; index < initValue.length; index++) {
172
174
  var key = initValue[index];
173
175
  if (TreeMap.has(key)) {
174
176
  arr.push(TreeMap.get(key));
177
+ } else {
178
+ arr.push({
179
+ key: key,
180
+ title: key
181
+ });
175
182
  }
176
183
  }
177
184
  } else {
178
185
  if (TreeMap.has(initValue)) {
179
186
  arr.push(TreeMap.get(initValue));
187
+ } else {
188
+ (0, _typeof2.default)(initValue) !== undefined && arr.push({
189
+ key: initValue,
190
+ title: initValue
191
+ });
180
192
  }
181
193
  }
182
194
  setSelectTreeNodes(arr);
@@ -327,7 +339,8 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
327
339
  notFoundContent: renderNotContent(),
328
340
  filterTreeNode: defFilterTreeNode,
329
341
  onSelect: handleSelect,
330
- onExpand: handleExpand
342
+ onExpand: handleExpand,
343
+ height: listHeight
331
344
  };
332
345
  if (isMultiple) {
333
346
  treeProps.checkable = true;
@@ -355,7 +368,8 @@ var InternalTreeSelect = function InternalTreeSelect(props, ref) {
355
368
  // 渲染下拉列表框
356
369
  var renderContent = function renderContent() {
357
370
  var dropDownStyle = (0, _extends2.default)({
358
- width: style === null || style === void 0 ? void 0 : style.width
371
+ width: style === null || style === void 0 ? void 0 : style.width,
372
+ maxHeight: virtual ? 'unset' : ''
359
373
  }, dropdownStyle);
360
374
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
361
375
  className: dropDownCls,
@@ -3,6 +3,7 @@ interface FillerProps {
3
3
  height: number;
4
4
  offset?: number;
5
5
  outerStyle?: React.CSSProperties;
6
+ innerStyle?: React.CSSProperties;
6
7
  children: React.ReactNode;
7
8
  }
8
9
  declare const Filler: React.FC<FillerProps>;
@@ -16,7 +16,8 @@ var Filler = function Filler(_ref) {
16
16
  var height = _ref.height,
17
17
  offset = _ref.offset,
18
18
  children = _ref.children,
19
- propsOuterStyle = _ref.outerStyle;
19
+ propsOuterStyle = _ref.outerStyle,
20
+ propsInnerStyle = _ref.innerStyle;
20
21
  var outerStyle = {};
21
22
  var innerStyle = {
22
23
  display: 'flex',
@@ -29,13 +30,13 @@ var Filler = function Filler(_ref) {
29
30
  overflow: 'hidden',
30
31
  zIndex: 0
31
32
  }, propsOuterStyle);
32
- innerStyle = (0, _extends2.default)((0, _extends2.default)({}, innerStyle), {
33
+ innerStyle = (0, _extends2.default)((0, _extends2.default)((0, _extends2.default)({}, innerStyle), {
33
34
  transform: "translateY(".concat(offset, "px)"),
34
35
  position: 'absolute',
35
36
  left: 0,
36
37
  right: 0,
37
38
  top: 0
38
- });
39
+ }), propsInnerStyle);
39
40
  }
40
41
  return /*#__PURE__*/React.createElement("div", {
41
42
  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'>;