rsuite 5.56.0 → 5.57.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.
- package/CHANGELOG.md +16 -0
- package/CascadeTree/package.json +7 -0
- package/CascadeTree/styles/index.css +273 -0
- package/CascadeTree/styles/index.less +77 -0
- package/CascadeTree/styles/search.less +45 -0
- package/Cascader/styles/index.css +187 -192
- package/Cascader/styles/index.less +1 -122
- package/MultiCascadeTree/package.json +7 -0
- package/MultiCascadeTree/styles/index.css +3701 -0
- package/MultiCascadeTree/styles/index.less +37 -0
- package/MultiCascader/styles/index.css +72 -69
- package/MultiCascader/styles/index.less +11 -31
- package/cjs/@types/common.d.ts +12 -14
- package/cjs/CascadeTree/CascadeTree.d.ts +16 -0
- package/cjs/CascadeTree/CascadeTree.js +174 -0
- package/cjs/CascadeTree/SearchView.d.ts +17 -0
- package/cjs/CascadeTree/SearchView.js +106 -0
- package/cjs/CascadeTree/TreeView.d.ts +20 -0
- package/cjs/{Cascader → CascadeTree}/TreeView.js +42 -33
- package/cjs/CascadeTree/hooks/index.d.ts +3 -0
- package/cjs/CascadeTree/hooks/index.js +12 -0
- package/cjs/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
- package/cjs/CascadeTree/hooks/usePaths.js +42 -0
- package/cjs/CascadeTree/hooks/useSearch.d.ts +17 -0
- package/cjs/CascadeTree/hooks/useSearch.js +59 -0
- package/cjs/CascadeTree/hooks/useSelect.d.ts +23 -0
- package/cjs/CascadeTree/hooks/useSelect.js +64 -0
- package/cjs/CascadeTree/index.d.ts +4 -0
- package/cjs/CascadeTree/index.js +9 -0
- package/cjs/CascadeTree/types.d.ts +66 -0
- package/cjs/CascadeTree/types.js +2 -0
- package/cjs/CascadeTree/utils.d.ts +32 -0
- package/cjs/CascadeTree/utils.js +66 -0
- package/cjs/Cascader/Cascader.d.ts +57 -26
- package/cjs/Cascader/Cascader.js +180 -247
- package/cjs/Cascader/useActive.d.ts +15 -0
- package/cjs/Cascader/useActive.js +43 -0
- package/cjs/InlineEdit/InlineEdit.d.ts +1 -1
- package/cjs/Loader/Loader.js +5 -4
- package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
- package/cjs/MultiCascadeTree/MultiCascadeTree.js +131 -0
- package/cjs/MultiCascadeTree/SearchView.d.ts +17 -0
- package/cjs/MultiCascadeTree/SearchView.js +117 -0
- package/cjs/MultiCascadeTree/TreeView.d.ts +22 -0
- package/cjs/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
- package/cjs/MultiCascadeTree/hooks/index.d.ts +5 -0
- package/cjs/MultiCascadeTree/hooks/index.js +16 -0
- package/cjs/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
- package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +202 -0
- package/cjs/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
- package/cjs/MultiCascadeTree/hooks/useColumnData.js +52 -0
- package/cjs/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
- package/cjs/MultiCascadeTree/hooks/useFlattenData.js +33 -0
- package/cjs/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
- package/cjs/MultiCascadeTree/hooks/useSearch.js +52 -0
- package/cjs/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
- package/cjs/MultiCascadeTree/hooks/useSelect.js +83 -0
- package/cjs/MultiCascadeTree/index.d.ts +4 -0
- package/cjs/MultiCascadeTree/index.js +9 -0
- package/cjs/MultiCascadeTree/types.d.ts +26 -0
- package/cjs/MultiCascadeTree/types.js +2 -0
- package/cjs/MultiCascadeTree/utils.d.ts +37 -0
- package/cjs/MultiCascadeTree/utils.js +140 -0
- package/cjs/MultiCascader/MultiCascader.d.ts +57 -29
- package/cjs/MultiCascader/MultiCascader.js +175 -287
- package/cjs/Tree/Tree.d.ts +4 -4
- package/cjs/index.d.ts +6 -1
- package/cjs/index.js +8 -3
- package/cjs/internals/Picker/PickerToggle.d.ts +4 -5
- package/cjs/toaster/ToastContainer.d.ts +9 -2
- package/cjs/toaster/index.d.ts +0 -1
- package/cjs/toaster/index.js +1 -3
- package/cjs/useToaster/index.d.ts +2 -0
- package/cjs/useToaster/index.js +9 -0
- package/cjs/{toaster → useToaster}/useToaster.d.ts +4 -4
- package/cjs/{toaster → useToaster}/useToaster.js +4 -4
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +5 -2
- package/dist/rsuite-no-reset-rtl.css +64 -61
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +64 -61
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +64 -61
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +64 -61
- package/dist/rsuite.js +242 -44
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/@types/common.d.ts +12 -14
- package/esm/CascadeTree/CascadeTree.d.ts +16 -0
- package/esm/CascadeTree/CascadeTree.js +167 -0
- package/esm/CascadeTree/SearchView.d.ts +17 -0
- package/esm/CascadeTree/SearchView.js +100 -0
- package/esm/CascadeTree/TreeView.d.ts +20 -0
- package/esm/{Cascader → CascadeTree}/TreeView.js +42 -33
- package/esm/CascadeTree/hooks/index.d.ts +3 -0
- package/esm/CascadeTree/hooks/index.js +4 -0
- package/esm/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
- package/esm/CascadeTree/hooks/usePaths.js +36 -0
- package/esm/CascadeTree/hooks/useSearch.d.ts +17 -0
- package/esm/CascadeTree/hooks/useSearch.js +54 -0
- package/esm/CascadeTree/hooks/useSelect.d.ts +23 -0
- package/esm/CascadeTree/hooks/useSelect.js +59 -0
- package/esm/CascadeTree/index.d.ts +4 -0
- package/esm/CascadeTree/index.js +3 -0
- package/esm/CascadeTree/types.d.ts +66 -0
- package/esm/CascadeTree/types.js +1 -0
- package/esm/CascadeTree/utils.d.ts +32 -0
- package/esm/CascadeTree/utils.js +61 -0
- package/esm/Cascader/Cascader.d.ts +57 -26
- package/esm/Cascader/Cascader.js +167 -233
- package/esm/Cascader/useActive.d.ts +15 -0
- package/esm/Cascader/useActive.js +37 -0
- package/esm/InlineEdit/InlineEdit.d.ts +1 -1
- package/esm/Loader/Loader.js +6 -5
- package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
- package/esm/MultiCascadeTree/MultiCascadeTree.js +125 -0
- package/esm/MultiCascadeTree/SearchView.d.ts +17 -0
- package/esm/MultiCascadeTree/SearchView.js +111 -0
- package/esm/MultiCascadeTree/TreeView.d.ts +22 -0
- package/esm/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
- package/esm/MultiCascadeTree/hooks/index.d.ts +5 -0
- package/esm/MultiCascadeTree/hooks/index.js +6 -0
- package/esm/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
- package/esm/MultiCascadeTree/hooks/useCascadeValue.js +197 -0
- package/esm/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
- package/esm/MultiCascadeTree/hooks/useColumnData.js +46 -0
- package/esm/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
- package/esm/MultiCascadeTree/hooks/useFlattenData.js +28 -0
- package/esm/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
- package/esm/MultiCascadeTree/hooks/useSearch.js +47 -0
- package/esm/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
- package/esm/MultiCascadeTree/hooks/useSelect.js +77 -0
- package/esm/MultiCascadeTree/index.d.ts +4 -0
- package/esm/MultiCascadeTree/index.js +3 -0
- package/esm/MultiCascadeTree/types.d.ts +26 -0
- package/esm/MultiCascadeTree/types.js +1 -0
- package/esm/MultiCascadeTree/utils.d.ts +37 -0
- package/esm/MultiCascadeTree/utils.js +130 -0
- package/esm/MultiCascader/MultiCascader.d.ts +57 -29
- package/esm/MultiCascader/MultiCascader.js +168 -279
- package/esm/Tree/Tree.d.ts +4 -4
- package/esm/index.d.ts +6 -1
- package/esm/index.js +5 -1
- package/esm/internals/Picker/PickerToggle.d.ts +4 -5
- package/esm/toaster/ToastContainer.d.ts +9 -2
- package/esm/toaster/index.d.ts +0 -1
- package/esm/toaster/index.js +0 -1
- package/esm/useToaster/index.d.ts +2 -0
- package/esm/useToaster/index.js +3 -0
- package/esm/{toaster → useToaster}/useToaster.d.ts +4 -4
- package/esm/{toaster → useToaster}/useToaster.js +4 -4
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +2 -1
- package/package.json +1 -1
- package/styles/index.less +2 -0
- package/useToaster/package.json +7 -0
- package/useToaster/styles/index.css +239 -0
- package/useToaster/styles/index.less +1 -0
- package/cjs/Cascader/DropdownMenu.d.ts +0 -24
- package/cjs/Cascader/DropdownMenu.js +0 -175
- package/cjs/Cascader/TreeView.d.ts +0 -24
- package/cjs/Cascader/utils.js +0 -79
- package/cjs/MultiCascader/TreeView.d.ts +0 -25
- package/cjs/MultiCascader/utils.d.ts +0 -71
- package/cjs/MultiCascader/utils.js +0 -382
- package/esm/Cascader/DropdownMenu.d.ts +0 -24
- package/esm/Cascader/DropdownMenu.js +0 -168
- package/esm/Cascader/TreeView.d.ts +0 -24
- package/esm/Cascader/utils.js +0 -74
- package/esm/MultiCascader/TreeView.d.ts +0 -25
- package/esm/MultiCascader/utils.d.ts +0 -71
- package/esm/MultiCascader/utils.js +0 -369
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.removeAllChildrenValue = exports.getOtherItemValuesByUnselectChild = exports.isSomeParentChecked = exports.isSomeChildChecked = exports.getParents = void 0;
|
|
7
|
+
var _remove = _interopRequireDefault(require("lodash/remove"));
|
|
8
|
+
/**
|
|
9
|
+
* Get all parents of a node
|
|
10
|
+
* @param node
|
|
11
|
+
*/
|
|
12
|
+
var getParents = function getParents(node) {
|
|
13
|
+
var parents = [];
|
|
14
|
+
if (!node.parent) {
|
|
15
|
+
return parents;
|
|
16
|
+
}
|
|
17
|
+
parents.push(node.parent);
|
|
18
|
+
parents = parents.concat(getParents(node.parent));
|
|
19
|
+
return parents;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Check if any child nodes are selected.
|
|
24
|
+
* @param node
|
|
25
|
+
* @param value
|
|
26
|
+
* @param itemKeys
|
|
27
|
+
*/
|
|
28
|
+
exports.getParents = getParents;
|
|
29
|
+
var isSomeChildChecked = function isSomeChildChecked(node, value, itemKeys) {
|
|
30
|
+
var childrenKey = itemKeys.childrenKey,
|
|
31
|
+
valueKey = itemKeys.valueKey;
|
|
32
|
+
if (!node[childrenKey] || !value) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return node[childrenKey].some(function (child) {
|
|
36
|
+
var _child$childrenKey;
|
|
37
|
+
if (value.some(function (n) {
|
|
38
|
+
return n === child[valueKey];
|
|
39
|
+
})) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
if ((_child$childrenKey = child[childrenKey]) !== null && _child$childrenKey !== void 0 && _child$childrenKey.length) {
|
|
43
|
+
return isSomeChildChecked(child, value, itemKeys);
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Check if the parent is selected.
|
|
51
|
+
* @param node
|
|
52
|
+
* @param value
|
|
53
|
+
* @param itemKeys
|
|
54
|
+
*/
|
|
55
|
+
exports.isSomeChildChecked = isSomeChildChecked;
|
|
56
|
+
var isSomeParentChecked = function isSomeParentChecked(node, value, itemKeys) {
|
|
57
|
+
var valueKey = itemKeys.valueKey;
|
|
58
|
+
if (!value) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
if (value.some(function (n) {
|
|
62
|
+
return n === node[valueKey];
|
|
63
|
+
})) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
if (node.parent) {
|
|
67
|
+
return isSomeParentChecked(node.parent, value, itemKeys);
|
|
68
|
+
}
|
|
69
|
+
return false;
|
|
70
|
+
};
|
|
71
|
+
exports.isSomeParentChecked = isSomeParentChecked;
|
|
72
|
+
var getOtherItemValuesByUnselectChild = function getOtherItemValuesByUnselectChild(itemNode, value, itemKeys) {
|
|
73
|
+
var valueKey = itemKeys.valueKey,
|
|
74
|
+
childrenKey = itemKeys.childrenKey;
|
|
75
|
+
var parentValues = [];
|
|
76
|
+
var itemValues = [];
|
|
77
|
+
|
|
78
|
+
// Find the parent node of the current node by value
|
|
79
|
+
function findParent(item) {
|
|
80
|
+
parentValues.push(item[valueKey]);
|
|
81
|
+
if (value.some(function (v) {
|
|
82
|
+
return v === item[valueKey];
|
|
83
|
+
})) {
|
|
84
|
+
return item;
|
|
85
|
+
}
|
|
86
|
+
if (item.parent) {
|
|
87
|
+
var p = findParent(item.parent);
|
|
88
|
+
if (p) {
|
|
89
|
+
return p;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Get child nodes through parent node
|
|
96
|
+
function pushChildValue(item) {
|
|
97
|
+
if (!item[childrenKey]) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
item[childrenKey].forEach(function (n) {
|
|
101
|
+
// Determine whether it is a direct parent
|
|
102
|
+
if (parentValues.some(function (v) {
|
|
103
|
+
return v === n[valueKey];
|
|
104
|
+
}) && n[childrenKey]) {
|
|
105
|
+
pushChildValue(n);
|
|
106
|
+
} else if (n[valueKey] !== itemNode[valueKey]) {
|
|
107
|
+
itemValues.push(n[valueKey]);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
var parent = findParent(itemNode);
|
|
112
|
+
if (!parent) {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
pushChildValue(parent);
|
|
116
|
+
return itemValues;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Remove the values of all children.
|
|
121
|
+
*/
|
|
122
|
+
exports.getOtherItemValuesByUnselectChild = getOtherItemValuesByUnselectChild;
|
|
123
|
+
var removeAllChildrenValue = function removeAllChildrenValue(value, item, itemKeys) {
|
|
124
|
+
var valueKey = itemKeys.valueKey,
|
|
125
|
+
childrenKey = itemKeys.childrenKey;
|
|
126
|
+
var removedValue = [];
|
|
127
|
+
if (!item[childrenKey]) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
item[childrenKey].forEach(function (n) {
|
|
131
|
+
removedValue = removedValue.concat((0, _remove.default)(value, function (v) {
|
|
132
|
+
return v === n[valueKey];
|
|
133
|
+
}));
|
|
134
|
+
if (n[childrenKey]) {
|
|
135
|
+
removeAllChildrenValue(value, n, itemKeys);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
return removedValue;
|
|
139
|
+
};
|
|
140
|
+
exports.removeAllChildrenValue = removeAllChildrenValue;
|
|
@@ -1,42 +1,70 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
3
|
import { PickerComponent, PickerToggleProps } from '../internals/Picker';
|
|
4
|
-
import { FormControlPickerProps, ItemDataType } from '../@types/common';
|
|
5
|
-
|
|
6
|
-
export interface MultiCascaderProps<T
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
import { FormControlPickerProps, ItemDataType, DataItemValue } from '../@types/common';
|
|
5
|
+
import type { MultiCascadeTreeProps } from '../MultiCascadeTree';
|
|
6
|
+
export interface MultiCascaderProps<T extends DataItemValue> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>, T>, MultiCascadeTreeProps<T, T[]>, Pick<PickerToggleProps, 'loading'> {
|
|
7
|
+
/**
|
|
8
|
+
* A picker that can be counted
|
|
9
|
+
*/
|
|
9
10
|
countable?: boolean;
|
|
10
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Sets the width of the menu.
|
|
13
|
+
*
|
|
14
|
+
* @deprecated Use columnWidth instead
|
|
15
|
+
*/
|
|
11
16
|
menuWidth?: number;
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Sets the height of the menu
|
|
19
|
+
* @deprecated Use columnHeight instead
|
|
20
|
+
*/
|
|
21
|
+
menuHeight?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Custom menu class name
|
|
24
|
+
* @deprecated Use popupClassName instead
|
|
25
|
+
*/
|
|
26
|
+
menuClassName?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Custom menu style
|
|
29
|
+
* @deprecated Use popupStyle instead
|
|
30
|
+
*/
|
|
31
|
+
menuStyle?: React.CSSProperties;
|
|
32
|
+
/**
|
|
33
|
+
* Custom popup style
|
|
34
|
+
*/
|
|
35
|
+
popupStyle?: React.CSSProperties;
|
|
36
|
+
/**
|
|
37
|
+
* Custom popup style
|
|
38
|
+
*/
|
|
39
|
+
popupClassName?: string;
|
|
40
|
+
/**
|
|
41
|
+
* The panel is displayed directly when the component is initialized
|
|
42
|
+
* @deprecated Use MultiCascadeTree instead
|
|
43
|
+
* @see MultiCascadeTree https://rsuitejs.com/components/multi-cascade-tree
|
|
44
|
+
*/
|
|
19
45
|
inline?: boolean;
|
|
20
|
-
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Custom render menu
|
|
48
|
+
* @deprecated Use renderColumn instead
|
|
49
|
+
*/
|
|
50
|
+
renderMenu?: (items: readonly ItemDataType<T>[], menu: React.ReactNode, parentNode?: any, layer?: number) => React.ReactNode;
|
|
51
|
+
/**
|
|
52
|
+
* Custom render menu item
|
|
53
|
+
* @deprecated Use renderTreeNode instead
|
|
54
|
+
*/
|
|
55
|
+
renderMenuItem?: (node: React.ReactNode, item: ItemDataType<T>) => React.ReactNode;
|
|
56
|
+
/**
|
|
57
|
+
* Custom render selected items
|
|
58
|
+
*/
|
|
59
|
+
renderValue?: (value: T[], selectedItems: ItemDataType<T>[], selectedElement: React.ReactNode) => React.ReactNode;
|
|
60
|
+
/**
|
|
61
|
+
* Called when clean
|
|
62
|
+
*/
|
|
31
63
|
onClean?: (event: React.SyntheticEvent) => void;
|
|
32
|
-
/** Called when searching */
|
|
33
|
-
onSearch?: (searchKeyword: string, event: React.SyntheticEvent) => void;
|
|
34
|
-
/** Asynchronously load the children of the tree node. */
|
|
35
|
-
getChildren?: (node: ItemDataType) => ItemDataType[] | Promise<ItemDataType[]>;
|
|
36
64
|
}
|
|
37
65
|
/**
|
|
38
66
|
* The `MultiCascader` component is used to select multiple values from cascading options.
|
|
39
67
|
* @see https://rsuitejs.com/components/multi-cascader/
|
|
40
68
|
*/
|
|
41
|
-
declare const MultiCascader: PickerComponent<MultiCascaderProps
|
|
69
|
+
declare const MultiCascader: PickerComponent<MultiCascaderProps<DataItemValue>>;
|
|
42
70
|
export default MultiCascader;
|