rsuite 5.23.1 → 5.23.3

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 (48) hide show
  1. package/ButtonToolbar/styles/index.less +0 -4
  2. package/CHANGELOG.md +15 -0
  3. package/FormHelpText/styles/index.less +2 -2
  4. package/Modal/styles/index.less +6 -6
  5. package/Tooltip/styles/index.less +0 -1
  6. package/cjs/AutoComplete/utils.d.ts +3 -2
  7. package/cjs/AutoComplete/utils.js +1 -1
  8. package/cjs/ButtonToolbar/ButtonToolbar.d.ts +2 -1
  9. package/cjs/ButtonToolbar/ButtonToolbar.js +9 -2
  10. package/cjs/Cascader/Cascader.js +2 -1
  11. package/cjs/Cascader/utils.d.ts +17 -12
  12. package/cjs/Cascader/utils.js +5 -5
  13. package/cjs/Menu/Menu.js +1 -0
  14. package/cjs/MultiCascader/utils.d.ts +14 -11
  15. package/cjs/Nav/NavDropdownMenu.d.ts +2 -0
  16. package/cjs/Nav/NavDropdownMenu.js +4 -2
  17. package/cjs/Picker/utils.d.ts +15 -13
  18. package/cjs/Picker/utils.js +81 -5
  19. package/cjs/Stack/Stack.d.ts +4 -0
  20. package/cjs/Stack/Stack.js +10 -8
  21. package/cjs/utils/treeUtils.d.ts +30 -22
  22. package/dist/rsuite-rtl.css +7 -9
  23. package/dist/rsuite-rtl.min.css +1 -1
  24. package/dist/rsuite-rtl.min.css.map +1 -1
  25. package/dist/rsuite.css +7 -9
  26. package/dist/rsuite.js +9 -9
  27. package/dist/rsuite.min.css +1 -1
  28. package/dist/rsuite.min.css.map +1 -1
  29. package/dist/rsuite.min.js +1 -1
  30. package/dist/rsuite.min.js.map +1 -1
  31. package/esm/AutoComplete/utils.d.ts +3 -2
  32. package/esm/AutoComplete/utils.js +1 -1
  33. package/esm/ButtonToolbar/ButtonToolbar.d.ts +2 -1
  34. package/esm/ButtonToolbar/ButtonToolbar.js +9 -2
  35. package/esm/Cascader/Cascader.js +2 -1
  36. package/esm/Cascader/utils.d.ts +17 -12
  37. package/esm/Cascader/utils.js +5 -5
  38. package/esm/Menu/Menu.js +1 -0
  39. package/esm/MultiCascader/utils.d.ts +14 -11
  40. package/esm/Nav/NavDropdownMenu.d.ts +2 -0
  41. package/esm/Nav/NavDropdownMenu.js +4 -2
  42. package/esm/Picker/utils.d.ts +15 -13
  43. package/esm/Picker/utils.js +80 -5
  44. package/esm/Stack/Stack.d.ts +4 -0
  45. package/esm/Stack/Stack.js +10 -8
  46. package/esm/utils/treeUtils.d.ts +30 -22
  47. package/package.json +1 -1
  48. package/styles/variables.less +3 -2
@@ -2,7 +2,6 @@ import React from 'react';
2
2
  import { TreeNodeType, TreeNodesType } from '../CheckTreePicker/utils';
3
3
  import { TREE_NODE_DROP_POSITION } from '../utils';
4
4
  import { CheckTreePickerProps } from '../CheckTreePicker/CheckTreePicker';
5
- import { ItemDataType } from '../@types/common';
6
5
  import { TreePickerProps } from '../TreePicker/TreePicker';
7
6
  import { ListHandle } from '../Windowing';
8
7
  declare type PartialTreeProps = Partial<TreePickerProps | CheckTreePickerProps>;
@@ -11,14 +10,14 @@ declare type PartialTreeProps = Partial<TreePickerProps | CheckTreePickerProps>;
11
10
  * @param {*} expandItemValues
12
11
  * @param {*} parentKeys
13
12
  */
14
- export declare function shouldShowNodeByParentExpanded(expandItemValues?: any[], parentKeys?: any[]): boolean;
13
+ export declare function shouldShowNodeByParentExpanded<T>(expandItemValues?: T[], parentKeys?: T[]): boolean;
15
14
  /**
16
15
  * flatten tree structure to array
17
16
  * @param {*} tree
18
17
  * @param {*} childrenKey
19
18
  * @param {*} executor
20
19
  */
21
- export declare function flattenTree(tree: any[], childrenKey?: string, executor?: (node: any, index: number) => any): any[];
20
+ export declare function flattenTree<TItem>(tree: TItem[], childrenKey?: string, executor?: (node: any, index: number) => any): TItem[];
22
21
  /**
23
22
  * get all ancestor nodes of given node
24
23
  * @param {*} node
@@ -30,7 +29,7 @@ export declare function getNodeParents(node: any, parentKey?: string, valueKey?:
30
29
  * @param node
31
30
  * @param valueKey
32
31
  */
33
- export declare function getNodeParentKeys(nodes: TreeNodesType, node: TreeNodeType, valueKey: string): TreeNodeType[];
32
+ export declare function getNodeParentKeys<T>(nodes: TreeNodesType, node: TreeNodeType, valueKey: string): T[];
34
33
  export declare function hasVisibleChildren(node: TreeNodeType, childrenKey: string): any;
35
34
  /**
36
35
  * shallow equal array
@@ -38,7 +37,7 @@ export declare function hasVisibleChildren(node: TreeNodeType, childrenKey: stri
38
37
  * @param b
39
38
  */
40
39
  export declare function compareArray(a: any[], b: any[]): boolean;
41
- export declare function getDefaultExpandItemValues(data: ItemDataType[], props: Required<Pick<TreePickerProps, 'defaultExpandAll' | 'valueKey' | 'childrenKey' | 'defaultExpandItemValues'>>): any[];
40
+ export declare function getDefaultExpandItemValues<TItem>(data: TItem[], props: Required<Pick<TreePickerProps, 'defaultExpandAll' | 'valueKey' | 'childrenKey' | 'defaultExpandItemValues'>>): any[];
42
41
  /**
43
42
  * 获取 expandItemValues 的 value
44
43
  * @param props
@@ -61,7 +60,10 @@ export declare function createUpdateTreeDataFunction(params: any, { valueKey, ch
61
60
  childrenKey: any;
62
61
  }): (tree: any[]) => any[];
63
62
  export declare function findNodeOfTree(data: any, check: any): any;
64
- export declare function filterNodesOfTree(data: any, check: any): TreeNodeType[];
63
+ declare type HasChildren<T extends Record<string, unknown>> = T & {
64
+ children?: readonly HasChildren<T>[];
65
+ };
66
+ export declare function filterNodesOfTree<TItem extends HasChildren<Record<string, unknown>>>(data: readonly TItem[], check: (item: TItem) => boolean): TItem[];
65
67
  /**
66
68
  * get all focusable items
67
69
  * exclude not visible and disabled node
@@ -70,7 +72,7 @@ export declare function filterNodesOfTree(data: any, check: any): TreeNodeType[]
70
72
  * @param isSearching - component is in Searching
71
73
  * @returns
72
74
  */
73
- export declare const getFocusableItems: (filteredData: ItemDataType[], props: Required<Pick<PartialTreeProps, 'disabledItemValues' | 'valueKey' | 'childrenKey' | 'expandItemValues'>>, isSearching?: boolean) => TreeNodeType[];
75
+ export declare const getFocusableItems: <TItem extends TreeNodeType>(filteredData: TItem[], props: Required<Pick<PartialTreeProps, 'disabledItemValues' | 'valueKey' | 'childrenKey' | 'expandItemValues'>>, isSearching?: boolean) => TItem[];
74
76
  /**
75
77
  * return all focusable Item and active Element index
76
78
  * @param focusItemValue
@@ -150,7 +152,13 @@ export { getTreeActiveNode };
150
152
  * toggle tree node
151
153
  * @param param0
152
154
  */
153
- export declare function toggleExpand({ node, isExpand, expandItemValues, valueKey }: any): ItemDataType<string | number>[];
155
+ export declare function toggleExpand<T>({ node, isExpand, expandItemValues, valueKey }: ToggleExpandOptions<T>): T[];
156
+ declare type ToggleExpandOptions<T> = {
157
+ node: Record<string, unknown>;
158
+ isExpand: boolean;
159
+ expandItemValues: T[];
160
+ valueKey: string;
161
+ };
154
162
  export declare function getTreeNodeTitle(label: any): string | undefined;
155
163
  /**
156
164
  * get all children from flattenNodes object by given parent node
@@ -158,12 +166,12 @@ export declare function getTreeNodeTitle(label: any): string | undefined;
158
166
  * @param parent
159
167
  */
160
168
  export declare function getChildrenByFlattenNodes(nodes: TreeNodesType, parent: TreeNodeType): TreeNodeType[];
161
- export declare function useTreeDrag(): {
162
- dragNode: ItemDataType<string | number> | null;
169
+ export declare function useTreeDrag<T>(): {
170
+ dragNode: T | null;
163
171
  dragOverNodeKey: null;
164
172
  dragNodeKeys: (string | number)[];
165
173
  dropNodePosition: TREE_NODE_DROP_POSITION | null;
166
- setDragNode: (node: ItemDataType | null) => void;
174
+ setDragNode: (node: T | null) => void;
167
175
  setDragOverNodeKey: React.Dispatch<React.SetStateAction<null>>;
168
176
  setDragNodeKeys: React.Dispatch<React.SetStateAction<(string | number)[]>>;
169
177
  setDropNodePosition: React.Dispatch<React.SetStateAction<TREE_NODE_DROP_POSITION | null>>;
@@ -193,7 +201,7 @@ export declare function useFlattenTreeData({ data, labelKey, valueKey, childrenK
193
201
  flattenTreeData: (treeData: TreeNodeType[], parent?: TreeNodeType, layer?: any) => never[] | undefined;
194
202
  serializeListOnlyParent: (nodes: TreeNodesType, key: string) => (string | number)[];
195
203
  unSerializeList: ({ nodes, key, value, cascade, uncheckableItemValues }: UnSerializeListProps) => void;
196
- formatVirtualizedTreeData: (nodes: TreeNodesType, data: any[], expandItemValues: ItemDataType[], options: {
204
+ formatVirtualizedTreeData: (nodes: TreeNodesType, data: any[], expandItemValues: unknown[], options: {
197
205
  cascade?: boolean;
198
206
  searchKeyword?: string;
199
207
  }) => TreeNodeType[];
@@ -205,28 +213,28 @@ export declare function useTreeNodeRefs(): {
205
213
  treeNodesRefs: {};
206
214
  saveTreeNodeRef: (ref: React.Ref<any>, refKey?: string) => void;
207
215
  };
208
- interface TreeSearchProps {
216
+ interface TreeSearchProps<T> {
209
217
  labelKey: string;
210
218
  childrenKey: string;
211
219
  searchKeyword?: string;
212
- data: ItemDataType[];
220
+ data: T[];
213
221
  searchBy?: (keyword: any, label: any, item: any) => boolean;
214
- callback?: (keyword: string, data: ItemDataType[], event: React.SyntheticEvent) => void;
222
+ callback?: (keyword: string, data: T[], event: React.SyntheticEvent) => void;
215
223
  }
216
224
  /**
217
225
  * A hook that handles tree search filter options
218
226
  * @param props
219
227
  */
220
- export declare function useTreeSearch<T extends HTMLElement = HTMLInputElement>(props: TreeSearchProps): {
228
+ export declare function useTreeSearch<T>(props: TreeSearchProps<T>): {
221
229
  searchKeywordState: string;
222
- filteredData: ItemDataType<string | number>[];
223
- setFilteredData: (data: ItemDataType[], searchKeyword: string) => void;
230
+ filteredData: T[];
231
+ setFilteredData: (data: T[], searchKeyword: string) => void;
224
232
  setSearchKeyword: React.Dispatch<React.SetStateAction<string>>;
225
- handleSearch: (searchKeyword: string, event: React.ChangeEvent<T>) => void;
233
+ handleSearch: (searchKeyword: string, event: React.ChangeEvent) => void;
226
234
  };
227
- export declare function useGetTreeNodeChildren(treeData: ItemDataType[], valueKey: string, childrenKey: string): {
228
- data: ItemDataType<string | number>[];
229
- setData: React.Dispatch<React.SetStateAction<ItemDataType<string | number>[]>>;
235
+ export declare function useGetTreeNodeChildren<T extends Record<string, unknown>>(treeData: T[], valueKey: string, childrenKey: string): {
236
+ data: T[];
237
+ setData: React.Dispatch<React.SetStateAction<T[]>>;
230
238
  loadingNodeValues: never[];
231
239
  loadChildren: (node: any, getChildren: any) => void;
232
240
  };
@@ -2785,9 +2785,6 @@ tbody.rs-anim-collapse.rs-anim-in {
2785
2785
  .rs-btn-toolbar {
2786
2786
  line-height: 0;
2787
2787
  }
2788
- .rs-btn-toolbar > :not(:first-child):not(.rs-btn-block) {
2789
- margin-right: 10px;
2790
- }
2791
2788
  .rs-picker-subtle .picker-subtle-toggle {
2792
2789
  position: relative;
2793
2790
  z-index: 5;
@@ -7741,8 +7738,8 @@ label:hover .rs-checkbox-wrapper .rs-checkbox-inner::before {
7741
7738
  color: #8e8e93;
7742
7739
  color: var(--rs-text-secondary);
7743
7740
  min-height: 20px;
7744
- line-height: 1.42857143;
7745
- font-size: 14px;
7741
+ line-height: 1.66666667;
7742
+ font-size: 12px;
7746
7743
  }
7747
7744
  .rs-form-help-text-tooltip {
7748
7745
  display: -webkit-inline-box;
@@ -9428,11 +9425,13 @@ textarea.rs-picker-search-input {
9428
9425
  left: 20px;
9429
9426
  top: 20px;
9430
9427
  font-size: 12px;
9431
- line-height: 1.66666667;
9428
+ color: #8e8e93;
9429
+ color: var(--rs-text-secondary);
9430
+ padding: 0;
9431
+ }
9432
+ .rs-modal-header .rs-modal-header-close:hover {
9432
9433
  color: #575757;
9433
9434
  color: var(--rs-text-primary);
9434
- width: 20px;
9435
- padding: 0 4px;
9436
9435
  }
9437
9436
  .rs-modal-title {
9438
9437
  font-weight: normal;
@@ -15278,7 +15277,6 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
15278
15277
  padding: 2px 10px;
15279
15278
  color: #fff;
15280
15279
  color: var(--rs-tooltip-text);
15281
- text-align: center;
15282
15280
  background-color: #272c36;
15283
15281
  background-color: var(--rs-tooltip-bg);
15284
15282
  border-radius: 4px;