rsuite 5.31.1 → 5.32.0

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 (60) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/Calendar/CalendarContainer.d.ts +2 -0
  3. package/cjs/Calendar/CalendarContainer.js +4 -1
  4. package/cjs/Calendar/MonthDropdown.js +1 -1
  5. package/cjs/Cascader/Cascader.d.ts +2 -2
  6. package/cjs/Cascader/Cascader.js +83 -71
  7. package/cjs/Cascader/DropdownMenu.d.ts +6 -2
  8. package/cjs/Cascader/DropdownMenu.js +8 -4
  9. package/cjs/Cascader/utils.d.ts +52 -17
  10. package/cjs/Cascader/utils.js +99 -138
  11. package/cjs/DatePicker/DatePicker.d.ts +3 -1
  12. package/cjs/DatePicker/DatePicker.js +4 -1
  13. package/cjs/DateRangePicker/Calendar.d.ts +1 -0
  14. package/cjs/DateRangePicker/Calendar.js +4 -1
  15. package/cjs/DateRangePicker/DateRangePicker.d.ts +3 -1
  16. package/cjs/DateRangePicker/DateRangePicker.js +4 -1
  17. package/cjs/MultiCascader/DropdownMenu.d.ts +2 -2
  18. package/cjs/MultiCascader/MultiCascader.d.ts +1 -1
  19. package/cjs/MultiCascader/MultiCascader.js +12 -7
  20. package/cjs/MultiCascader/utils.d.ts +2 -2
  21. package/cjs/MultiCascader/utils.js +3 -3
  22. package/cjs/Picker/utils.d.ts +4 -3
  23. package/cjs/Picker/utils.js +8 -4
  24. package/cjs/utils/getDataGroupBy.js +1 -1
  25. package/cjs/utils/treeUtils.d.ts +5 -1
  26. package/cjs/utils/treeUtils.js +31 -6
  27. package/cjs/utils/useMap.d.ts +6 -0
  28. package/cjs/utils/useMap.js +35 -0
  29. package/dist/rsuite.js +186 -14
  30. package/dist/rsuite.js.map +1 -1
  31. package/dist/rsuite.min.js +1 -1
  32. package/dist/rsuite.min.js.map +1 -1
  33. package/esm/Calendar/CalendarContainer.d.ts +2 -0
  34. package/esm/Calendar/CalendarContainer.js +4 -1
  35. package/esm/Calendar/MonthDropdown.js +1 -1
  36. package/esm/Cascader/Cascader.d.ts +2 -2
  37. package/esm/Cascader/Cascader.js +85 -75
  38. package/esm/Cascader/DropdownMenu.d.ts +6 -2
  39. package/esm/Cascader/DropdownMenu.js +8 -4
  40. package/esm/Cascader/utils.d.ts +52 -17
  41. package/esm/Cascader/utils.js +100 -135
  42. package/esm/DatePicker/DatePicker.d.ts +3 -1
  43. package/esm/DatePicker/DatePicker.js +4 -1
  44. package/esm/DateRangePicker/Calendar.d.ts +1 -0
  45. package/esm/DateRangePicker/Calendar.js +4 -1
  46. package/esm/DateRangePicker/DateRangePicker.d.ts +3 -1
  47. package/esm/DateRangePicker/DateRangePicker.js +4 -1
  48. package/esm/MultiCascader/DropdownMenu.d.ts +2 -2
  49. package/esm/MultiCascader/MultiCascader.d.ts +1 -1
  50. package/esm/MultiCascader/MultiCascader.js +12 -7
  51. package/esm/MultiCascader/utils.d.ts +2 -2
  52. package/esm/MultiCascader/utils.js +4 -4
  53. package/esm/Picker/utils.d.ts +4 -3
  54. package/esm/Picker/utils.js +8 -4
  55. package/esm/utils/getDataGroupBy.js +2 -2
  56. package/esm/utils/treeUtils.d.ts +5 -1
  57. package/esm/utils/treeUtils.js +30 -6
  58. package/esm/utils/useMap.d.ts +6 -0
  59. package/esm/utils/useMap.js +29 -0
  60. package/package.json +2 -1
@@ -44,9 +44,12 @@ export function shouldShowNodeByParentExpanded(expandItemValues, parentKeys) {
44
44
  * @param {*} tree
45
45
  * @param {*} childrenKey
46
46
  * @param {*} executor
47
+ *
48
+ * @deprecated This {@link UNSAFE_flattenTree} function is considered unsafe because it mutates `tree` argument in-place
49
+ * Use {@link flattenTree} instead.
47
50
  */
48
51
 
49
- export function flattenTree(tree, childrenKey, executor) {
52
+ export function UNSAFE_flattenTree(tree, childrenKey, executor) {
50
53
  if (childrenKey === void 0) {
51
54
  childrenKey = 'children';
52
55
  }
@@ -71,11 +74,32 @@ export function flattenTree(tree, childrenKey, executor) {
71
74
  traverse(tree, null);
72
75
  return flattenData;
73
76
  }
77
+ export function flattenTree(rootNodes, getChildren) {
78
+ var result = [];
79
+ walkTree(rootNodes, getChildren, function (node) {
80
+ return result.push(node);
81
+ });
82
+ return result;
83
+ }
84
+
85
+ function walkTree(rootNodes, getChildren, callback) {
86
+ for (var queue = [].concat(rootNodes); queue.length > 0;) {
87
+ var _node = queue.shift();
88
+
89
+ callback(_node);
90
+ var children = getChildren(_node);
91
+
92
+ if (children) {
93
+ queue.push.apply(queue, children);
94
+ }
95
+ }
96
+ }
74
97
  /**
75
98
  * get all ancestor nodes of given node
76
99
  * @param {*} node
77
100
  */
78
101
 
102
+
79
103
  export function getNodeParents(node, parentKey, valueKey) {
80
104
  if (parentKey === void 0) {
81
105
  parentKey = 'parent';
@@ -148,7 +172,7 @@ export function getDefaultExpandItemValues(data, props) {
148
172
  defaultExpandItemValues = _props$defaultExpandI === void 0 ? [] : _props$defaultExpandI;
149
173
 
150
174
  if (defaultExpandAll) {
151
- return flattenTree(data, childrenKey).filter(function (item) {
175
+ return UNSAFE_flattenTree(data, childrenKey).filter(function (item) {
152
176
  return Array.isArray(item[childrenKey]) && item[childrenKey].length > 0;
153
177
  }).map(function (item) {
154
178
  return item[valueKey];
@@ -311,10 +335,10 @@ export function findNodeOfTree(data, check) {
311
335
  var _item3 = nodes[i];
312
336
 
313
337
  if (_isArray(_item3.children)) {
314
- var _node = findNode(_item3.children);
338
+ var _node2 = findNode(_item3.children);
315
339
 
316
- if (_node) {
317
- return _node;
340
+ if (_node2) {
341
+ return _node2;
318
342
  }
319
343
  }
320
344
 
@@ -780,7 +804,7 @@ export function useFlattenTreeData(_ref8) {
780
804
  var formatVirtualizedTreeData = function formatVirtualizedTreeData(nodes, data, expandItemValues, options) {
781
805
  var cascade = options.cascade,
782
806
  searchKeyword = options.searchKeyword;
783
- return flattenTree(data, childrenKey, function (node) {
807
+ return UNSAFE_flattenTree(data, childrenKey, function (node) {
784
808
  var formatted = {};
785
809
  var curNode = nodes === null || nodes === void 0 ? void 0 : nodes[node.refKey];
786
810
  var parentKeys = getNodeParentKeys(nodes, curNode, valueKey);
@@ -0,0 +1,6 @@
1
+ export declare function useMap<K, V>(): {
2
+ has(key: K): boolean;
3
+ get(key: K): V | undefined;
4
+ set(key: K, value: V): void;
5
+ clear(): void;
6
+ };
@@ -0,0 +1,29 @@
1
+ import { useMemo, useState } from 'react';
2
+ export function useMap() {
3
+ var _useState = useState(function () {
4
+ return new Map();
5
+ }),
6
+ map = _useState[0],
7
+ setMap = _useState[1];
8
+
9
+ return useMemo(function () {
10
+ return {
11
+ has: function has(key) {
12
+ return map.has(key);
13
+ },
14
+ get: function get(key) {
15
+ return map.get(key);
16
+ },
17
+ set: function set(key, value) {
18
+ setMap(function (prev) {
19
+ var copy = new Map(prev);
20
+ copy.set(key, value);
21
+ return copy;
22
+ });
23
+ },
24
+ clear: function clear() {
25
+ setMap(new Map());
26
+ }
27
+ };
28
+ }, [map]);
29
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.31.1",
3
+ "version": "5.32.0",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -36,6 +36,7 @@
36
36
  "dom-lib": "^3.1.3",
37
37
  "lodash": "^4.17.11",
38
38
  "prop-types": "^15.8.1",
39
+ "react-use-set": "^1.0.0",
39
40
  "react-window": "^1.8.8",
40
41
  "rsuite-table": "^5.10.3",
41
42
  "schema-typed": "^2.1.2"