rsuite 5.6.1 → 5.6.4

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 (55) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/Sidenav/styles/index.less +2 -1
  3. package/cjs/@types/common.d.ts +4 -4
  4. package/cjs/Affix/Affix.js +0 -2
  5. package/cjs/Animation/Transition.d.ts +1 -1
  6. package/cjs/Animation/Transition.js +10 -4
  7. package/cjs/CheckTree/index.d.ts +2 -0
  8. package/cjs/CheckTreePicker/CheckTreePicker.js +12 -5
  9. package/cjs/CheckTreePicker/utils.js +1 -1
  10. package/cjs/List/helper/AutoScroller.d.ts +2 -3
  11. package/cjs/List/helper/useManager.d.ts +2 -2
  12. package/cjs/List/helper/useSortHelper.js +23 -9
  13. package/cjs/List/helper/utils.d.ts +4 -3
  14. package/cjs/List/helper/utils.js +2 -2
  15. package/cjs/MaskedInput/conformToMask.js +1 -0
  16. package/cjs/MultiCascader/DropdownMenu.js +2 -1
  17. package/cjs/MultiCascader/utils.js +7 -7
  18. package/cjs/Overlay/Position.js +1 -2
  19. package/cjs/Pagination/PaginationGroup.js +3 -3
  20. package/cjs/Picker/SelectedElement.js +1 -1
  21. package/cjs/TreePicker/TreePicker.js +1 -1
  22. package/cjs/Uploader/Uploader.js +5 -1
  23. package/cjs/utils/treeUtils.js +6 -4
  24. package/dist/rsuite-rtl.css +2 -1
  25. package/dist/rsuite-rtl.min.css +1 -1
  26. package/dist/rsuite-rtl.min.css.map +1 -1
  27. package/dist/rsuite.css +2 -1
  28. package/dist/rsuite.js +35 -354
  29. package/dist/rsuite.js.map +1 -1
  30. package/dist/rsuite.min.css +1 -1
  31. package/dist/rsuite.min.css.map +1 -1
  32. package/dist/rsuite.min.js +1 -1
  33. package/dist/rsuite.min.js.map +1 -1
  34. package/esm/@types/common.d.ts +4 -4
  35. package/esm/Affix/Affix.js +0 -2
  36. package/esm/Animation/Transition.d.ts +1 -1
  37. package/esm/Animation/Transition.js +10 -4
  38. package/esm/CheckTree/index.d.ts +2 -0
  39. package/esm/CheckTreePicker/CheckTreePicker.js +12 -5
  40. package/esm/CheckTreePicker/utils.js +1 -1
  41. package/esm/List/helper/AutoScroller.d.ts +2 -3
  42. package/esm/List/helper/useManager.d.ts +2 -2
  43. package/esm/List/helper/useSortHelper.js +23 -9
  44. package/esm/List/helper/utils.d.ts +4 -3
  45. package/esm/List/helper/utils.js +2 -2
  46. package/esm/MaskedInput/conformToMask.js +1 -0
  47. package/esm/MultiCascader/DropdownMenu.js +2 -1
  48. package/esm/MultiCascader/utils.js +7 -7
  49. package/esm/Overlay/Position.js +1 -2
  50. package/esm/Pagination/PaginationGroup.js +3 -3
  51. package/esm/Picker/SelectedElement.js +1 -1
  52. package/esm/TreePicker/TreePicker.js +1 -1
  53. package/esm/Uploader/Uploader.js +5 -1
  54. package/esm/utils/treeUtils.js +6 -4
  55. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## [5.6.4](https://github.com/rsuite/rsuite/compare/v5.6.3...v5.6.4) (2022-03-10)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **CheckTree:** fix missing type definition [#2388](https://github.com/rsuite/rsuite/issues/2388) ([#2391](https://github.com/rsuite/rsuite/issues/2391)) ([0fe4e9f](https://github.com/rsuite/rsuite/commit/0fe4e9f34d7f07354541f4d23b0278cd1d892c2e))
6
+ - **Sidenav:** remove underline from focused sidenav item ([#2387](https://github.com/rsuite/rsuite/issues/2387)) ([a22f569](https://github.com/rsuite/rsuite/commit/a22f569a8c3f2b71513af20b4be6607cd1825783))
7
+
8
+ ## [5.6.3](https://github.com/rsuite/rsuite/compare/v5.6.2...v5.6.3) (2022-03-05)
9
+
10
+ ## [5.6.2](https://github.com/rsuite/rsuite/compare/v5.6.1...v5.6.2) (2022-02-24)
11
+
12
+ ### Bug Fixes
13
+
14
+ - **Affix:** fix left offset not update after position change ([#2370](https://github.com/rsuite/rsuite/issues/2370)) ([eba3536](https://github.com/rsuite/rsuite/commit/eba353685f4892e1143b8c249ac956b2522a2993))
15
+ - **typescript:** remove not-null assertion operator ([#2359](https://github.com/rsuite/rsuite/issues/2359)) ([5c07293](https://github.com/rsuite/rsuite/commit/5c07293f5c9c2d4deee768be17e8cea840868708))
16
+
1
17
  ## [5.6.1](https://github.com/rsuite/rsuite/compare/v5.6.0...v5.6.1) (2022-02-17)
2
18
 
3
19
  ### Bug Fixes
@@ -170,7 +170,8 @@
170
170
  outline: 0;
171
171
  overflow: hidden;
172
172
 
173
- &:hover {
173
+ &:hover,
174
+ &:focus {
174
175
  text-decoration: none;
175
176
  }
176
177
 
@@ -143,10 +143,10 @@ export interface ItemDataType<T = number | string> extends Record<string, any> {
143
143
  loading?: boolean;
144
144
  }
145
145
  export interface Offset {
146
- top?: number;
147
- left?: number;
148
- width?: number;
149
- height?: number;
146
+ top: number;
147
+ left: number;
148
+ width: number;
149
+ height: number;
150
150
  }
151
151
  export declare type OnChangeCallback<T, E = React.SyntheticEvent> = (value: T, event: E) => void;
152
152
  export {};
@@ -28,7 +28,6 @@ function useOffset(mountRef) {
28
28
  setOffset = _useState[1];
29
29
 
30
30
  var updateOffset = (0, _react.useCallback)(function () {
31
- // FIXME upgrade dom-lib
32
31
  setOffset((0, _getOffset.default)(mountRef.current));
33
32
  }, [mountRef]); // Update after the element size changes
34
33
 
@@ -132,7 +131,6 @@ var Affix = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
132
131
  var fixedStyles = {
133
132
  position: 'fixed',
134
133
  top: top,
135
- left: offset === null || offset === void 0 ? void 0 : offset.left,
136
134
  width: offset === null || offset === void 0 ? void 0 : offset.width,
137
135
  zIndex: 10
138
136
  };
@@ -100,7 +100,7 @@ declare class Transition extends React.Component<TransitionProps, TransitionStat
100
100
  setNextCallback(callback: (event?: React.AnimationEvent) => void): {
101
101
  (event?: React.AnimationEvent<Element> | undefined): void;
102
102
  cancel: () => any;
103
- };
103
+ } | null;
104
104
  getChildElement(): HTMLElement;
105
105
  performEnter(props: TransitionProps): void;
106
106
  performExit(props: TransitionProps): void;
@@ -154,6 +154,10 @@ var Transition = /*#__PURE__*/function (_React$Component) {
154
154
  this.setNextCallback(handler);
155
155
  (_this$animationEventL = this.animationEventListener) === null || _this$animationEventL === void 0 ? void 0 : _this$animationEventL.off();
156
156
 
157
+ if (!this.nextCallback) {
158
+ return;
159
+ }
160
+
157
161
  if (node) {
158
162
  var _this$props = this.props,
159
163
  timeout = _this$props.timeout,
@@ -193,9 +197,11 @@ var Transition = /*#__PURE__*/function (_React$Component) {
193
197
  _this2.nextCallback = null;
194
198
  };
195
199
 
196
- this.nextCallback.cancel = function () {
197
- active = false;
198
- };
200
+ if (this.nextCallback) {
201
+ this.nextCallback.cancel = function () {
202
+ active = false;
203
+ };
204
+ }
199
205
 
200
206
  return this.nextCallback;
201
207
  };
@@ -273,7 +279,7 @@ var Transition = /*#__PURE__*/function (_React$Component) {
273
279
  if (this.instanceElement) {
274
280
  var nextCallback = this.setNextCallback(callback);
275
281
  this.setState(nextState, function () {
276
- return nextCallback();
282
+ return nextCallback === null || nextCallback === void 0 ? void 0 : nextCallback();
277
283
  });
278
284
  }
279
285
  };
@@ -4,6 +4,8 @@ import { TreeBaseProps } from '../Tree/Tree';
4
4
  export interface CheckTreeProps extends TreeBaseProps<ValueType>, FormControlPickerProps<ValueType> {
5
5
  /** Tree node cascade */
6
6
  cascade?: boolean;
7
+ /** Set the option value for the check box not to be rendered */
8
+ uncheckableItemValues?: ValueType;
7
9
  }
8
10
  declare const CheckTree: RsRefForwardingComponent<'div', CheckTreeProps>;
9
11
  export default CheckTree;
@@ -316,9 +316,9 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
316
316
  forceUpdate();
317
317
  }, [cascade, value, uncheckableItemValues, unSerializeList, flattenNodes, forceUpdate]);
318
318
  var toggleUpChecked = (0, _react.useCallback)(function (nodes, node, checked) {
319
- var currentNode = nodes[node.refKey];
319
+ var currentNode = node.refKey ? nodes[node.refKey] : null;
320
320
 
321
- if (cascade) {
321
+ if (cascade && currentNode) {
322
322
  if (!checked) {
323
323
  currentNode.check = checked;
324
324
  currentNode.checkAll = checked;
@@ -338,7 +338,12 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
338
338
  }
339
339
  }, [cascade]);
340
340
  var toggleDownChecked = (0, _react.useCallback)(function (nodes, node, isChecked) {
341
- var currentNode = nodes[node.refKey];
341
+ var currentNode = node.refKey ? nodes[node.refKey] : null;
342
+
343
+ if (!currentNode) {
344
+ return;
345
+ }
346
+
342
347
  currentNode.check = isChecked;
343
348
 
344
349
  if (!currentNode[childrenKey] || !currentNode[childrenKey].length || !cascade) {
@@ -361,11 +366,13 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
361
366
  });
362
367
  }, [flattenNodes, uncheckableItemValues, serializeListOnlyParent, toggleDownChecked, toggleUpChecked]);
363
368
  var handleSelect = (0, _react.useCallback)(function (node, event) {
364
- if (!node) {
369
+ var currentNode = node.refKey ? flattenNodes[node.refKey] : null;
370
+
371
+ if (!node || !currentNode) {
365
372
  return;
366
373
  }
367
374
 
368
- var selectedValues = toggleChecked(node, !flattenNodes[node.refKey].check);
375
+ var selectedValues = toggleChecked(node, !currentNode.check);
369
376
 
370
377
  if (!isControlled) {
371
378
  unSerializeList({
@@ -169,7 +169,7 @@ function getDisabledState(nodes, node, props) {
169
169
  }
170
170
 
171
171
  return disabledItemValues.some(function (value) {
172
- return (0, _utils.shallowEqual)(nodes[node.refKey][valueKey], value);
172
+ return node.refKey && (0, _utils.shallowEqual)(nodes[node.refKey][valueKey], value);
173
173
  });
174
174
  }
175
175
 
@@ -1,6 +1,5 @@
1
- import { Offset } from '../../@types/common';
2
- import { Axis } from './utils';
3
- declare type OffsetCallback = (offset: Offset) => void;
1
+ import { Axis, EdgeOffset } from './utils';
2
+ declare type OffsetCallback = (offset: EdgeOffset) => void;
4
3
  export interface AutoScrollerUpdatePayload {
5
4
  translate: Axis;
6
5
  minTranslate: Axis;
@@ -1,8 +1,8 @@
1
- import { Offset } from '../../@types/common';
1
+ import type { EdgeOffset } from './utils';
2
2
  export declare type Collection = string | number;
3
3
  export interface ManagedItem {
4
4
  node: HTMLElement;
5
- edgeOffset: Offset | null;
5
+ edgeOffset: Partial<EdgeOffset> | null;
6
6
  info: {
7
7
  collection: Collection;
8
8
  index?: number;
@@ -124,11 +124,17 @@ var useSortHelper = function useSortHelper(config) {
124
124
  x: offset.x - mouseDownEvent.pageX,
125
125
  y: offset.y - mouseDownEvent.pageY
126
126
  };
127
- (0, _utils.setTranslate3d)(activeNodeHelper, activeNodeHolderTranslate); // animate
127
+
128
+ if (activeNodeHelper) {
129
+ (0, _utils.setTranslate3d)(activeNodeHelper, activeNodeHolderTranslate);
130
+ } // animate
131
+
128
132
 
129
133
  activeNodeNextIndex = -1;
130
134
  var listItemManagerRefs = getOrderedItems(curManagedItem.info.collection);
131
- var sortingOffsetY = activeNodeOffsetEdge.top + activeNodeHolderTranslate.y + containerScrollDelta.top;
135
+ var aTop = activeNodeOffsetEdge.top || 0;
136
+ var cTop = containerScrollDelta.top || 0;
137
+ var sortingOffsetY = aTop + activeNodeHolderTranslate.y + cTop;
132
138
  var activeNodeHeight = parseFloat(activeNodeStyle.height) || 0;
133
139
 
134
140
  for (var i = 0, len = listItemManagerRefs.length; i < len; i++) {
@@ -161,14 +167,16 @@ var useSortHelper = function useSortHelper(config) {
161
167
  continue;
162
168
  }
163
169
 
164
- if (prvNode && currentNodeIndex > activeNodeOldIndex && sortingOffsetY + offsetY >= curEdgeOffset.top) {
170
+ var curEdgeOffsetTop = curEdgeOffset.top || 0;
171
+
172
+ if (prvNode && currentNodeIndex > activeNodeOldIndex && sortingOffsetY + offsetY >= curEdgeOffsetTop) {
165
173
  translate.y = -activeNodeHeight;
166
174
  animatedNodesOffset[currentNodeIndex] = {
167
175
  x: 0,
168
176
  y: currentNode.offsetHeight
169
177
  };
170
178
  activeNodeNextIndex = currentNodeIndex;
171
- } else if (nextNode && currentNodeIndex < activeNodeOldIndex && sortingOffsetY <= curEdgeOffset.top + offsetY) {
179
+ } else if (nextNode && currentNodeIndex < activeNodeOldIndex && sortingOffsetY <= curEdgeOffsetTop + offsetY) {
172
180
  translate.y = activeNodeHeight;
173
181
  animatedNodesOffset[currentNodeIndex] = {
174
182
  x: 0,
@@ -202,9 +210,11 @@ var useSortHelper = function useSortHelper(config) {
202
210
  height: activeNodeBoundingClientRect.height,
203
211
  translate: activeNodeHolderTranslate,
204
212
  maxTranslate: {
213
+ x: 0,
205
214
  y: containerBoundingRect.top + containerBoundingRect.height - activeNodeBoundingClientRect.top - activeNodeBoundingClientRect.height / 2
206
215
  },
207
216
  minTranslate: {
217
+ x: 0,
208
218
  y: containerBoundingRect.top - activeNodeBoundingClientRect.top - activeNodeBoundingClientRect.height / 2
209
219
  }
210
220
  });
@@ -225,11 +235,15 @@ var useSortHelper = function useSortHelper(config) {
225
235
  sortMouseEndListener.off();
226
236
  var holderTranslate = getHolderTranslate();
227
237
  var containerScrollDelta = getContainerScrollDelta();
228
- (0, _utils.setTranslate3d)(activeNodeHelper, {
229
- x: holderTranslate.x - containerScrollDelta.left,
230
- y: holderTranslate.y - containerScrollDelta.top
231
- });
232
- (0, _utils.setTransitionDuration)(activeNodeHelper, transitionDuration); // wait for animation
238
+
239
+ if (activeNodeHelper) {
240
+ (0, _utils.setTranslate3d)(activeNodeHelper, {
241
+ x: holderTranslate.x - (containerScrollDelta.left || 0),
242
+ y: holderTranslate.y - (containerScrollDelta.top || 0)
243
+ });
244
+ (0, _utils.setTransitionDuration)(activeNodeHelper, transitionDuration);
245
+ } // wait for animation
246
+
233
247
 
234
248
  setTimeout(function () {
235
249
  var _activeNodeHelper2, _activeNodeHelper2$pa;
@@ -1,9 +1,10 @@
1
1
  import { CSSProperties } from 'react';
2
2
  import { Offset } from '../../@types/common';
3
3
  export interface Axis {
4
- x?: number;
5
- y?: number;
4
+ x: number;
5
+ y: number;
6
6
  }
7
+ export declare type EdgeOffset = Omit<Offset, 'width' | 'height'>;
7
8
  export declare function isContainInteractiveElement(targetNode: HTMLElement): boolean;
8
9
  export declare function setInlineStyles(node: HTMLElement, styles: CSSProperties): void;
9
10
  export declare function setTranslate3d(node: HTMLElement, translate: Axis | null): void;
@@ -12,5 +13,5 @@ export declare function setTransitionDuration(node: HTMLElement, duration?: numb
12
13
  * find closest target node from source node
13
14
  * */
14
15
  export declare function closestNode(sourceNode: HTMLElement, judge: (target: HTMLElement) => boolean): HTMLElement | null;
15
- export declare function getEdgeOffset(node: HTMLElement, parent: HTMLElement, offset?: Offset): Offset;
16
+ export declare function getEdgeOffset(node: HTMLElement, parent: HTMLElement, offset?: EdgeOffset): Partial<EdgeOffset>;
16
17
  export declare function getScrollingParent(el: HTMLElement): HTMLElement | null;
@@ -73,8 +73,8 @@ function getEdgeOffset(node, parent, offset) {
73
73
 
74
74
 
75
75
  var nodeOffset = {
76
- left: offset.left + node.offsetLeft,
77
- top: offset.top + node.offsetTop
76
+ left: (offset.left || 0) + node.offsetLeft,
77
+ top: (offset.top || 0) + node.offsetTop
78
78
  };
79
79
 
80
80
  if (node.parentNode === parent) {
@@ -131,6 +131,7 @@ function conformToMask(rawValue, mask, config) {
131
131
  // or we find at least one character that we can map.
132
132
  while (rawValueArr.length > 0) {
133
133
  // Let's retrieve the first user character in the queue of characters we have left
134
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
134
135
  var _ref = rawValueArr.shift(),
135
136
  rawValueChar = _ref.char,
136
137
  isNew = _ref.isNew; // If the character we got from the user input is a placeholder character (which happens
@@ -35,7 +35,8 @@ var emptyArray = [];
35
35
  var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
36
36
  var _props$as = props.as,
37
37
  Component = _props$as === void 0 ? 'div' : _props$as,
38
- classPrefix = props.classPrefix,
38
+ _props$classPrefix = props.classPrefix,
39
+ classPrefix = _props$classPrefix === void 0 ? 'menu' : _props$classPrefix,
39
40
  className = props.className,
40
41
  cascade = props.cascade,
41
42
  _props$cascadeData = props.cascadeData,
@@ -296,21 +296,21 @@ function useCascadeValue(props, flattenData) {
296
296
  removedValue = removedValue.concat(removeAllChildrenValue(nextValue, item, {
297
297
  valueKey: valueKey,
298
298
  childrenKey: childrenKey
299
- })); // Traverse all ancestor nodes of the current node
299
+ }) || []); // Traverse all ancestor nodes of the current node
300
300
  // Then determine whether all the child nodes of these nodes are selected, and then they themselves must be selected
301
301
 
302
302
  var _loop = function _loop(i) {
303
303
  // Whether the parent node can be selected
304
- var isCheckableParent = !uncheckableItemValues.some(function (v) {
304
+ var isCheckableParent = !(uncheckableItemValues !== null && uncheckableItemValues !== void 0 && uncheckableItemValues.some(function (v) {
305
305
  return v === parents[i][valueKey];
306
- });
306
+ }));
307
307
 
308
308
  if (isCheckableParent) {
309
309
  var isCheckAll = parents[i][childrenKey] // Filter out options that are marked as not selectable
310
310
  .filter(function (n) {
311
- return !uncheckableItemValues.some(function (v) {
311
+ return !(uncheckableItemValues !== null && uncheckableItemValues !== void 0 && uncheckableItemValues.some(function (v) {
312
312
  return v === n[valueKey];
313
- });
313
+ }));
314
314
  }) // Check if all nodes are selected
315
315
  .every(function (n) {
316
316
  return nextValue.some(function (v) {
@@ -325,7 +325,7 @@ function useCascadeValue(props, flattenData) {
325
325
  removedValue = removedValue.concat(removeAllChildrenValue(nextValue, parents[i], {
326
326
  valueKey: valueKey,
327
327
  childrenKey: childrenKey
328
- }));
328
+ }) || []);
329
329
  }
330
330
  }
331
331
  };
@@ -408,7 +408,7 @@ function useCascadeValue(props, flattenData) {
408
408
  });
409
409
 
410
410
  if (item !== null && item !== void 0 && item.parent && nextValue.some(function (v) {
411
- return v === item.parent[valueKey];
411
+ return v === item.parent && item.parent[valueKey];
412
412
  })) {
413
413
  return false;
414
414
  }
@@ -89,8 +89,7 @@ var usePosition = function usePosition(props, ref) {
89
89
  return;
90
90
  }
91
91
 
92
- var overlay = (0, _utils.getDOMNode)(ref.current); // fixme dom-lib getContainer incorrect type
93
-
92
+ var overlay = (0, _utils.getDOMNode)(ref.current);
94
93
  var containerElement = (0, _getContainer.default)(typeof container === 'function' ? container() : container !== null && container !== void 0 ? container : null, (0, _ownerDocument.default)(ref.current).body);
95
94
  var posi = utils.calcOverlayPosition(overlay, targetElement, containerElement);
96
95
 
@@ -39,7 +39,7 @@ var LimitPicker = function LimitPicker(props) {
39
39
  var formatlimitOptions = limitOptions.map(function (item) {
40
40
  return {
41
41
  value: item,
42
- label: (0, _utils.tplTransform)(locale.limit, item)
42
+ label: locale.limit && (0, _utils.tplTransform)(locale.limit, item)
43
43
  };
44
44
  });
45
45
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -162,12 +162,12 @@ var PaginationGroup = /*#__PURE__*/_react.default.forwardRef(function (props, re
162
162
  return /*#__PURE__*/_react.default.createElement("div", {
163
163
  key: onlyKey,
164
164
  className: prefix('total')
165
- }, (0, _utils.tplTransform)(locale.total, total));
165
+ }, locale.total && (0, _utils.tplTransform)(locale.total, total));
166
166
  } else if (key === 'skip') {
167
167
  return /*#__PURE__*/_react.default.createElement("div", {
168
168
  key: onlyKey,
169
169
  className: (0, _classnames.default)(prefix('skip'))
170
- }, (0, _utils.tplTransform)(locale.skip, /*#__PURE__*/_react.default.createElement(_Input.default, {
170
+ }, locale.skip && (0, _utils.tplTransform)(locale.skip, /*#__PURE__*/_react.default.createElement(_Input.default, {
171
171
  size: size,
172
172
  onBlur: handleInputBlur,
173
173
  onPressEnter: handleInputPressEnter
@@ -45,7 +45,7 @@ var SelectedElement = function SelectedElement(props) {
45
45
  key: item[valueKey]
46
46
  }, /*#__PURE__*/_react.default.createElement("span", {
47
47
  className: prefix('value-item')
48
- }, item[labelKey], checkAll ? " (" + locale.checkAll + ")" : ''), index === count - 1 ? null : /*#__PURE__*/_react.default.createElement("span", {
48
+ }, item[labelKey], checkAll && locale !== null && locale !== void 0 && locale.checkAll ? " (" + locale.checkAll + ")" : ''), index === count - 1 ? null : /*#__PURE__*/_react.default.createElement("span", {
49
49
  className: prefix('value-separator')
50
50
  }, ","));
51
51
  })), countable ? /*#__PURE__*/_react.default.createElement("span", {
@@ -703,7 +703,7 @@ var TreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
703
703
  var node = activeNode !== null && activeNode !== void 0 ? activeNode : {};
704
704
  selectedElement = node[labelKey];
705
705
 
706
- if ((0, _isFunction2.default)(renderValue)) {
706
+ if ((0, _isFunction2.default)(renderValue) && value) {
707
707
  selectedElement = renderValue(value, node, selectedElement);
708
708
 
709
709
  if ((0, _isNil2.default)(selectedElement)) {
@@ -281,7 +281,11 @@ var Uploader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
281
281
  updateFileStatus((0, _extends2.default)({}, file, {
282
282
  status: 'uploading'
283
283
  }));
284
- xhrs.current[file.fileKey] = xhr;
284
+
285
+ if (file.fileKey) {
286
+ xhrs.current[file.fileKey] = xhr;
287
+ }
288
+
285
289
  onUpload === null || onUpload === void 0 ? void 0 : onUpload(file, uploadData, xhr);
286
290
  }, [action, data, handleAjaxUploadError, handleAjaxUploadProgress, handleAjaxUploadSuccess, headers, name, onUpload, timeout, updateFileStatus, withCredentials, disableMultipart]);
287
291
  var handleAjaxUpload = (0, _react.useCallback)(function () {
@@ -165,11 +165,13 @@ function getNodeParentKeys(nodes, node, valueKey) {
165
165
  var parentKeys = [];
166
166
 
167
167
  var traverse = function traverse(node) {
168
- if (node !== null && node !== void 0 && node.parent) {
169
- var _node$parent;
168
+ var _node$parent;
169
+
170
+ if (node !== null && node !== void 0 && (_node$parent = node.parent) !== null && _node$parent !== void 0 && _node$parent.refKey) {
171
+ var _node$parent2;
170
172
 
171
173
  traverse(nodes[node.parent.refKey]);
172
- parentKeys.push(node === null || node === void 0 ? void 0 : (_node$parent = node.parent) === null || _node$parent === void 0 ? void 0 : _node$parent[valueKey]);
174
+ parentKeys.push(node === null || node === void 0 ? void 0 : (_node$parent2 = node.parent) === null || _node$parent2 === void 0 ? void 0 : _node$parent2[valueKey]);
173
175
  }
174
176
  };
175
177
 
@@ -718,7 +720,7 @@ function getChildrenByFlattenNodes(nodes, parent) {
718
720
  return Object.values(nodes).filter(function (item) {
719
721
  var _item$parent;
720
722
 
721
- return (item === null || item === void 0 ? void 0 : (_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent.refKey) === parent.refKey && !nodes[item.refKey].uncheckable;
723
+ return (item === null || item === void 0 ? void 0 : (_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent.refKey) === parent.refKey && item.refKey && !nodes[item.refKey].uncheckable;
722
724
  });
723
725
  }
724
726
 
@@ -12648,7 +12648,8 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
12648
12648
  outline: 0;
12649
12649
  overflow: hidden;
12650
12650
  }
12651
- .rs-sidenav-item:hover {
12651
+ .rs-sidenav-item:hover,
12652
+ .rs-sidenav-item:focus {
12652
12653
  text-decoration: none;
12653
12654
  }
12654
12655
  .rs-sidenav-item:focus-visible,