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,32 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ItemDataType } from '../@types/common';
|
|
3
|
+
declare type GetColumnsAndPathsOptions<T> = {
|
|
4
|
+
getParent: (item: T) => T | undefined;
|
|
5
|
+
getChildren: (item: T) => readonly T[] | undefined;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Calculate columns to be displayed:
|
|
9
|
+
*
|
|
10
|
+
* - Every ancestor level of activeItem should be displayed
|
|
11
|
+
* - The level that activeItem is at should be displayed
|
|
12
|
+
* - If activeItem is a parent node, its child level should be displayed
|
|
13
|
+
*
|
|
14
|
+
* @param items
|
|
15
|
+
* @param value
|
|
16
|
+
* @param options
|
|
17
|
+
* @returns
|
|
18
|
+
*/
|
|
19
|
+
export declare function getColumnsAndPaths<T extends Record<string, unknown>>(items: readonly T[], pathTarget: T | undefined, options: GetColumnsAndPathsOptions<T>): {
|
|
20
|
+
columns: (readonly T[])[];
|
|
21
|
+
path: T[];
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Highlight the search keyword in the label
|
|
25
|
+
*/
|
|
26
|
+
export declare function highlightLabel<T>(props: {
|
|
27
|
+
item: ItemDataType<T>;
|
|
28
|
+
labelKey: string;
|
|
29
|
+
searchKeyword: string;
|
|
30
|
+
render: (patch: React.ReactNode, index: number) => React.ReactNode;
|
|
31
|
+
}): import("react").ReactNode[];
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.getColumnsAndPaths = getColumnsAndPaths;
|
|
6
|
+
exports.highlightLabel = highlightLabel;
|
|
7
|
+
var _utils = require("../utils");
|
|
8
|
+
/**
|
|
9
|
+
* Calculate columns to be displayed:
|
|
10
|
+
*
|
|
11
|
+
* - Every ancestor level of activeItem should be displayed
|
|
12
|
+
* - The level that activeItem is at should be displayed
|
|
13
|
+
* - If activeItem is a parent node, its child level should be displayed
|
|
14
|
+
*
|
|
15
|
+
* @param items
|
|
16
|
+
* @param value
|
|
17
|
+
* @param options
|
|
18
|
+
* @returns
|
|
19
|
+
*/
|
|
20
|
+
function getColumnsAndPaths(items, pathTarget, options) {
|
|
21
|
+
var getParent = options.getParent,
|
|
22
|
+
getChildren = options.getChildren;
|
|
23
|
+
if (!pathTarget) {
|
|
24
|
+
return {
|
|
25
|
+
columns: [items],
|
|
26
|
+
path: []
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
var columns = [];
|
|
30
|
+
var path = [pathTarget];
|
|
31
|
+
var children = getChildren(pathTarget);
|
|
32
|
+
if (children && children.length > 0) {
|
|
33
|
+
columns.unshift(children);
|
|
34
|
+
}
|
|
35
|
+
for (var parent = getParent(pathTarget); !!parent; parent = getParent(parent)) {
|
|
36
|
+
var _getChildren;
|
|
37
|
+
columns.unshift((_getChildren = getChildren(parent)) !== null && _getChildren !== void 0 ? _getChildren : []);
|
|
38
|
+
path.unshift(parent);
|
|
39
|
+
}
|
|
40
|
+
columns.unshift(items);
|
|
41
|
+
return {
|
|
42
|
+
columns: columns,
|
|
43
|
+
path: path
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Highlight the search keyword in the label
|
|
49
|
+
*/
|
|
50
|
+
function highlightLabel(props) {
|
|
51
|
+
var item = props.item,
|
|
52
|
+
searchKeyword = props.searchKeyword,
|
|
53
|
+
labelKey = props.labelKey,
|
|
54
|
+
render = props.render;
|
|
55
|
+
var regx = new RegExp((0, _utils.getSafeRegExpString)(searchKeyword), 'ig');
|
|
56
|
+
var labelElements = [];
|
|
57
|
+
var strArr = item[labelKey].split(regx);
|
|
58
|
+
var highStrArr = item[labelKey].match(regx);
|
|
59
|
+
for (var i = 0; i < strArr.length; i++) {
|
|
60
|
+
labelElements.push(strArr[i]);
|
|
61
|
+
if (highStrArr !== null && highStrArr !== void 0 && highStrArr[i]) {
|
|
62
|
+
labelElements.push(render(highStrArr[i], i));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return labelElements;
|
|
66
|
+
}
|
|
@@ -1,35 +1,66 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import type { CascadeTreeProps } from '../CascadeTree/types';
|
|
2
3
|
import { PickerLocale } from '../locales';
|
|
3
4
|
import { PickerHandle, PickerToggleProps } from '../internals/Picker';
|
|
4
|
-
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/** Whether dispaly search input box */
|
|
12
|
-
searchable?: boolean;
|
|
13
|
-
/** The menu is displayed directly when the component is initialized */
|
|
5
|
+
import { ItemDataType, DataItemValue, FormControlPickerProps } from '../@types/common';
|
|
6
|
+
export interface CascaderProps<T = DataItemValue> extends FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, CascadeTreeProps<T>, Pick<PickerToggleProps, 'label' | 'caretAs' | 'loading'> {
|
|
7
|
+
/**
|
|
8
|
+
* The panel is displayed directly when the component is initialized
|
|
9
|
+
* @deprecated Use CascadeTree instead
|
|
10
|
+
* @see CascadeTree https://rsuitejs.com/components/cascade-tree
|
|
11
|
+
*/
|
|
14
12
|
inline?: boolean;
|
|
15
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* When true, make the parent node selectable
|
|
15
|
+
*/
|
|
16
16
|
parentSelectable?: boolean;
|
|
17
|
-
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
|
|
27
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Custom popup style
|
|
19
|
+
*/
|
|
20
|
+
popupClassName?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Custom popup style
|
|
23
|
+
*/
|
|
24
|
+
popupStyle?: React.CSSProperties;
|
|
25
|
+
/**
|
|
26
|
+
* Custom menu class name
|
|
27
|
+
* @deprecated Use popupClassName instead
|
|
28
|
+
*/
|
|
29
|
+
menuClassName?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Custom menu style
|
|
32
|
+
* @deprecated Use popupStyle instead
|
|
33
|
+
*/
|
|
34
|
+
menuStyle?: React.CSSProperties;
|
|
35
|
+
/**
|
|
36
|
+
* Sets the width of the menu.
|
|
37
|
+
*
|
|
38
|
+
* @deprecated Use columnWidth instead
|
|
39
|
+
*/
|
|
40
|
+
menuWidth?: number;
|
|
41
|
+
/**
|
|
42
|
+
* Sets the height of the menu
|
|
43
|
+
* @deprecated Use columnHeight instead
|
|
44
|
+
*/
|
|
45
|
+
menuHeight?: number | string;
|
|
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, selectedPaths: ItemDataType<T>[], selectedElement: React.ReactNode) => React.ReactNode;
|
|
60
|
+
/**
|
|
61
|
+
* Called when clean
|
|
62
|
+
*/
|
|
28
63
|
onClean?: (event: React.SyntheticEvent) => void;
|
|
29
|
-
/** Called when searching */
|
|
30
|
-
onSearch?: (searchKeyword: string, event: React.SyntheticEvent) => void;
|
|
31
|
-
/** Asynchronously load the children of the tree node. */
|
|
32
|
-
getChildren?: (node: ItemDataType<T>) => ItemDataType<T>[] | Promise<ItemDataType<T>[]>;
|
|
33
64
|
}
|
|
34
65
|
export interface CascaderComponent {
|
|
35
66
|
<T>(props: CascaderProps<T> & {
|