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
@@ -6,6 +6,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
6
6
 
7
7
  exports.__esModule = true;
8
8
  exports.shouldShowNodeByParentExpanded = shouldShowNodeByParentExpanded;
9
+ exports.UNSAFE_flattenTree = UNSAFE_flattenTree;
9
10
  exports.flattenTree = flattenTree;
10
11
  exports.getNodeParents = getNodeParents;
11
12
  exports.getNodeParentKeys = getNodeParentKeys;
@@ -102,10 +103,13 @@ function shouldShowNodeByParentExpanded(expandItemValues, parentKeys) {
102
103
  * @param {*} tree
103
104
  * @param {*} childrenKey
104
105
  * @param {*} executor
106
+ *
107
+ * @deprecated This {@link UNSAFE_flattenTree} function is considered unsafe because it mutates `tree` argument in-place
108
+ * Use {@link flattenTree} instead.
105
109
  */
106
110
 
107
111
 
108
- function flattenTree(tree, childrenKey, executor) {
112
+ function UNSAFE_flattenTree(tree, childrenKey, executor) {
109
113
  if (childrenKey === void 0) {
110
114
  childrenKey = 'children';
111
115
  }
@@ -130,6 +134,27 @@ function flattenTree(tree, childrenKey, executor) {
130
134
  traverse(tree, null);
131
135
  return flattenData;
132
136
  }
137
+
138
+ function flattenTree(rootNodes, getChildren) {
139
+ var result = [];
140
+ walkTree(rootNodes, getChildren, function (node) {
141
+ return result.push(node);
142
+ });
143
+ return result;
144
+ }
145
+
146
+ function walkTree(rootNodes, getChildren, callback) {
147
+ for (var queue = [].concat(rootNodes); queue.length > 0;) {
148
+ var _node = queue.shift();
149
+
150
+ callback(_node);
151
+ var children = getChildren(_node);
152
+
153
+ if (children) {
154
+ queue.push.apply(queue, children);
155
+ }
156
+ }
157
+ }
133
158
  /**
134
159
  * get all ancestor nodes of given node
135
160
  * @param {*} node
@@ -212,7 +237,7 @@ function getDefaultExpandItemValues(data, props) {
212
237
  defaultExpandItemValues = _props$defaultExpandI === void 0 ? [] : _props$defaultExpandI;
213
238
 
214
239
  if (defaultExpandAll) {
215
- return flattenTree(data, childrenKey).filter(function (item) {
240
+ return UNSAFE_flattenTree(data, childrenKey).filter(function (item) {
216
241
  return Array.isArray(item[childrenKey]) && item[childrenKey].length > 0;
217
242
  }).map(function (item) {
218
243
  return item[valueKey];
@@ -379,10 +404,10 @@ function findNodeOfTree(data, check) {
379
404
  var _item3 = nodes[i];
380
405
 
381
406
  if ((0, _isArray2.default)(_item3.children)) {
382
- var _node = findNode(_item3.children);
407
+ var _node2 = findNode(_item3.children);
383
408
 
384
- if (_node) {
385
- return _node;
409
+ if (_node2) {
410
+ return _node2;
386
411
  }
387
412
  }
388
413
 
@@ -875,7 +900,7 @@ function useFlattenTreeData(_ref8) {
875
900
  var formatVirtualizedTreeData = function formatVirtualizedTreeData(nodes, data, expandItemValues, options) {
876
901
  var cascade = options.cascade,
877
902
  searchKeyword = options.searchKeyword;
878
- return flattenTree(data, childrenKey, function (node) {
903
+ return UNSAFE_flattenTree(data, childrenKey, function (node) {
879
904
  var formatted = {};
880
905
  var curNode = nodes === null || nodes === void 0 ? void 0 : nodes[node.refKey];
881
906
  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,35 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useMap = useMap;
5
+
6
+ var _react = require("react");
7
+
8
+ function useMap() {
9
+ var _useState = (0, _react.useState)(function () {
10
+ return new Map();
11
+ }),
12
+ map = _useState[0],
13
+ setMap = _useState[1];
14
+
15
+ return (0, _react.useMemo)(function () {
16
+ return {
17
+ has: function has(key) {
18
+ return map.has(key);
19
+ },
20
+ get: function get(key) {
21
+ return map.get(key);
22
+ },
23
+ set: function set(key, value) {
24
+ setMap(function (prev) {
25
+ var copy = new Map(prev);
26
+ copy.set(key, value);
27
+ return copy;
28
+ });
29
+ },
30
+ clear: function clear() {
31
+ setMap(new Map());
32
+ }
33
+ };
34
+ }, [map]);
35
+ }