rsuite 5.69.0 → 5.70.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 +13 -0
- package/README.md +2 -2
- package/Table/styles/index.css +1 -1
- package/Table/styles/index.less +1 -1
- package/cjs/CascadeTree/CascadeTree.js +3 -1
- package/cjs/CascadeTree/SearchView.d.ts +1 -0
- package/cjs/CascadeTree/SearchView.js +3 -2
- package/cjs/CascadeTree/types.d.ts +5 -1
- package/cjs/Cascader/Cascader.d.ts +1 -1
- package/cjs/Cascader/Cascader.js +1 -0
- package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +1 -1
- package/cjs/MultiCascadeTree/MultiCascadeTree.js +4 -1
- package/cjs/MultiCascadeTree/SearchView.d.ts +1 -0
- package/cjs/MultiCascadeTree/SearchView.js +3 -2
- package/cjs/MultiCascadeTree/types.d.ts +5 -1
- package/cjs/MultiCascader/MultiCascader.d.ts +1 -1
- package/cjs/MultiCascader/MultiCascader.js +3 -0
- package/cjs/TreePicker/TreePicker.js +1 -0
- package/cjs/internals/hooks/useEventCallback.js +8 -1
- package/dist/rsuite-no-reset-rtl.css +1 -1
- 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 +1 -1
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +1 -1
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +1 -1
- package/dist/rsuite.js +68 -57
- 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/CascadeTree/CascadeTree.js +3 -1
- package/esm/CascadeTree/SearchView.d.ts +1 -0
- package/esm/CascadeTree/SearchView.js +3 -2
- package/esm/CascadeTree/types.d.ts +5 -1
- package/esm/Cascader/Cascader.d.ts +1 -1
- package/esm/Cascader/Cascader.js +1 -0
- package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +1 -1
- package/esm/MultiCascadeTree/MultiCascadeTree.js +4 -1
- package/esm/MultiCascadeTree/SearchView.d.ts +1 -0
- package/esm/MultiCascadeTree/SearchView.js +3 -2
- package/esm/MultiCascadeTree/types.d.ts +5 -1
- package/esm/MultiCascader/MultiCascader.d.ts +1 -1
- package/esm/MultiCascader/MultiCascader.js +3 -0
- package/esm/TreePicker/TreePicker.js +1 -0
- package/esm/internals/hooks/useEventCallback.js +8 -2
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
var _excluded = ["as", "data", "defaultValue", "className", "classPrefix", "childrenKey", "valueKey", "labelKey", "value", "disabledItemValues", "columnWidth", "columnHeight", "searchable", "renderTreeNode", "renderColumn", "onSelect", "onSearch", "onChange", "getChildren"];
|
|
4
|
+
var _excluded = ["as", "data", "defaultValue", "className", "classPrefix", "childrenKey", "valueKey", "labelKey", "locale", "value", "disabledItemValues", "columnWidth", "columnHeight", "searchable", "renderTreeNode", "renderColumn", "onSelect", "onSearch", "onChange", "getChildren"];
|
|
5
5
|
import React, { useCallback, useMemo } from 'react';
|
|
6
6
|
import { getParentMap } from "../internals/Tree/utils/index.js";
|
|
7
7
|
import { flattenTree } from "../Tree/utils/index.js";
|
|
@@ -29,6 +29,7 @@ var CascadeTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
29
29
|
valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
|
|
30
30
|
_props$labelKey = props.labelKey,
|
|
31
31
|
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
32
|
+
locale = props.locale,
|
|
32
33
|
valueProp = props.value,
|
|
33
34
|
_props$disabledItemVa = props.disabledItemValues,
|
|
34
35
|
disabledItemValues = _props$disabledItemVa === void 0 ? [] : _props$disabledItemVa,
|
|
@@ -145,6 +146,7 @@ var CascadeTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
145
146
|
searchKeyword: searchKeyword,
|
|
146
147
|
valueKey: valueKey,
|
|
147
148
|
labelKey: labelKey,
|
|
149
|
+
locale: locale,
|
|
148
150
|
parentMap: parentMap,
|
|
149
151
|
disabledItemValues: disabledItemValues,
|
|
150
152
|
onSelect: handleSearchRowSelect,
|
|
@@ -8,6 +8,7 @@ interface SearchViewProps<T> extends WithAsProps {
|
|
|
8
8
|
data: ItemDataType<T>[];
|
|
9
9
|
focusItemValue?: T | null;
|
|
10
10
|
disabledItemValues: any[];
|
|
11
|
+
locale?: Record<string, string>;
|
|
11
12
|
renderSearchItem?: (label: React.ReactNode, items: ItemDataType<T>[]) => React.ReactNode;
|
|
12
13
|
onSelect: (item: ItemDataType<T>, items: ItemDataType<T>[], event: React.MouseEvent) => void;
|
|
13
14
|
onSearch: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
var _excluded = ["as", "classPrefix", "className", "searchKeyword", "labelKey", "valueKey", "parentMap", "data", "focusItemValue", "disabledItemValues", "inputRef", "renderSearchItem", "onSearch", "onSelect"];
|
|
4
|
+
var _excluded = ["as", "classPrefix", "className", "searchKeyword", "labelKey", "locale", "valueKey", "parentMap", "data", "focusItemValue", "disabledItemValues", "inputRef", "renderSearchItem", "onSearch", "onSelect"];
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { useClassNames, useCustom } from "../internals/hooks/index.js";
|
|
7
7
|
import { getPathTowardsItem } from "../internals/Tree/utils/index.js";
|
|
@@ -15,6 +15,7 @@ function SearchView(props) {
|
|
|
15
15
|
className = props.className,
|
|
16
16
|
searchKeyword = props.searchKeyword,
|
|
17
17
|
labelKey = props.labelKey,
|
|
18
|
+
overrideLocale = props.locale,
|
|
18
19
|
valueKey = props.valueKey,
|
|
19
20
|
parentMap = props.parentMap,
|
|
20
21
|
data = props.data,
|
|
@@ -31,7 +32,7 @@ function SearchView(props) {
|
|
|
31
32
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
32
33
|
rootPrefix = _useClassNames.rootPrefix;
|
|
33
34
|
var classes = merge(className, withClassPrefix());
|
|
34
|
-
var _useCustom = useCustom('Picker'),
|
|
35
|
+
var _useCustom = useCustom('Picker', overrideLocale),
|
|
35
36
|
locale = _useCustom.locale;
|
|
36
37
|
var renderSearchRow = function renderSearchRow(item, key) {
|
|
37
38
|
var items = getPathTowardsItem(item, function (item) {
|
|
@@ -10,7 +10,7 @@ export interface CascadeColumn<T> {
|
|
|
10
10
|
parentItem?: ItemDataType<T>;
|
|
11
11
|
layer?: number;
|
|
12
12
|
}
|
|
13
|
-
export interface CascadeTreeProps<T, V = T> extends WithAsProps, DataProps<ItemDataType<T>> {
|
|
13
|
+
export interface CascadeTreeProps<T, V = T, L = any> extends WithAsProps, DataProps<ItemDataType<T>> {
|
|
14
14
|
/**
|
|
15
15
|
* Initial value
|
|
16
16
|
*/
|
|
@@ -35,6 +35,10 @@ export interface CascadeTreeProps<T, V = T> extends WithAsProps, DataProps<ItemD
|
|
|
35
35
|
* Whether dispaly search input box
|
|
36
36
|
*/
|
|
37
37
|
searchable?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* A collection of localized strings.
|
|
40
|
+
*/
|
|
41
|
+
locale?: Partial<L>;
|
|
38
42
|
/**
|
|
39
43
|
* Custom render columns
|
|
40
44
|
*/
|
|
@@ -3,7 +3,7 @@ import type { CascadeTreeProps } from '../CascadeTree/types';
|
|
|
3
3
|
import { PickerLocale } from '../locales';
|
|
4
4
|
import { PickerHandle, PickerToggleProps } from '../internals/Picker';
|
|
5
5
|
import { ItemDataType, DataItemValue, FormControlPickerProps } from '../internals/types';
|
|
6
|
-
export interface CascaderProps<T = DataItemValue> extends FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, CascadeTreeProps<T>, Pick<PickerToggleProps, 'label' | 'caretAs' | 'loading'> {
|
|
6
|
+
export interface CascaderProps<T = DataItemValue> extends FormControlPickerProps<T, PickerLocale, ItemDataType<T>>, CascadeTreeProps<T, T, PickerLocale>, Pick<PickerToggleProps, 'label' | 'caretAs' | 'loading'> {
|
|
7
7
|
/**
|
|
8
8
|
* The panel is displayed directly when the component is initialized
|
|
9
9
|
* @deprecated Use CascadeTree instead
|
package/esm/Cascader/Cascader.js
CHANGED
|
@@ -329,6 +329,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
329
329
|
searchKeyword: searchKeyword,
|
|
330
330
|
valueKey: valueKey,
|
|
331
331
|
labelKey: labelKey,
|
|
332
|
+
locale: locale,
|
|
332
333
|
parentMap: parentMap,
|
|
333
334
|
disabledItemValues: disabledItemValues,
|
|
334
335
|
focusItemValue: focusItemValue,
|
|
@@ -5,5 +5,5 @@ import type { MultiCascadeTreeProps } from './types';
|
|
|
5
5
|
* The `MultiCascadeTree` component is used to select multiple values from cascading options.
|
|
6
6
|
* @see https://rsuitejs.com/components/multi-cascade-tree/
|
|
7
7
|
*/
|
|
8
|
-
declare const MultiCascadeTree: React.ForwardRefExoticComponent<MultiCascadeTreeProps<DataItemValue, DataItemValue[]> & React.RefAttributes<unknown>>;
|
|
8
|
+
declare const MultiCascadeTree: React.ForwardRefExoticComponent<MultiCascadeTreeProps<DataItemValue, DataItemValue[], any> & React.RefAttributes<unknown>>;
|
|
9
9
|
export default MultiCascadeTree;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
var _excluded = ["as", "data", "defaultValue", "className", "classPrefix", "value", "valueKey", "labelKey", "childrenKey", "disabledItemValues", "cascade", "columnWidth", "columnHeight", "searchable", "uncheckableItemValues", "getChildren", "renderColumn", "renderTreeNode", "onSelect", "onCheck", "onChange", "onSearch"];
|
|
4
|
+
var _excluded = ["as", "data", "defaultValue", "className", "classPrefix", "value", "valueKey", "labelKey", "locale", "childrenKey", "disabledItemValues", "cascade", "columnWidth", "columnHeight", "searchable", "uncheckableItemValues", "getChildren", "renderColumn", "renderTreeNode", "onSelect", "onCheck", "onChange", "onSearch"];
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import TreeView from "./TreeView.js";
|
|
7
7
|
import { useCascadeValue, useSelect, useSearch } from "./hooks/index.js";
|
|
@@ -27,6 +27,7 @@ var MultiCascadeTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
27
27
|
valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
|
|
28
28
|
_props$labelKey = props.labelKey,
|
|
29
29
|
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
30
|
+
locale = props.locale,
|
|
30
31
|
_props$childrenKey = props.childrenKey,
|
|
31
32
|
childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
|
|
32
33
|
_props$disabledItemVa = props.disabledItemValues,
|
|
@@ -94,11 +95,13 @@ var MultiCascadeTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
94
95
|
ref: ref,
|
|
95
96
|
className: classes
|
|
96
97
|
}, rest), searchable && /*#__PURE__*/React.createElement(SearchView, {
|
|
98
|
+
cascade: cascade,
|
|
97
99
|
data: items,
|
|
98
100
|
value: value,
|
|
99
101
|
searchKeyword: searchKeyword,
|
|
100
102
|
valueKey: valueKey,
|
|
101
103
|
labelKey: labelKey,
|
|
104
|
+
locale: locale,
|
|
102
105
|
childrenKey: childrenKey,
|
|
103
106
|
disabledItemValues: disabledItemValues,
|
|
104
107
|
onCheck: handleCheck,
|
|
@@ -9,6 +9,7 @@ interface SearchViewProps<T> extends WithAsProps {
|
|
|
9
9
|
data: ItemDataType<T>[];
|
|
10
10
|
disabledItemValues: any[];
|
|
11
11
|
cascade?: boolean;
|
|
12
|
+
locale?: Record<string, string>;
|
|
12
13
|
onSearch: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
13
14
|
onCheck: (item: ItemDataType<T>, event: React.SyntheticEvent, checked: boolean) => void;
|
|
14
15
|
inputRef?: React.RefObject<HTMLInputElement>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
var _excluded = ["as", "classPrefix", "className", "searchKeyword", "childrenKey", "labelKey", "valueKey", "value", "data", "disabledItemValues", "inputRef", "cascade", "onSearch", "onCheck"];
|
|
4
|
+
var _excluded = ["as", "classPrefix", "className", "searchKeyword", "childrenKey", "labelKey", "valueKey", "value", "data", "disabledItemValues", "inputRef", "cascade", "locale", "onSearch", "onCheck"];
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { useClassNames, useCustom } from "../internals/hooks/index.js";
|
|
7
7
|
import SearchBox from "../internals/SearchBox/index.js";
|
|
@@ -23,6 +23,7 @@ function SearchView(props) {
|
|
|
23
23
|
disabledItemValues = props.disabledItemValues,
|
|
24
24
|
inputRef = props.inputRef,
|
|
25
25
|
cascade = props.cascade,
|
|
26
|
+
overrideLocale = props.locale,
|
|
26
27
|
onSearch = props.onSearch,
|
|
27
28
|
onCheck = props.onCheck,
|
|
28
29
|
rest = _objectWithoutPropertiesLoose(props, _excluded);
|
|
@@ -32,7 +33,7 @@ function SearchView(props) {
|
|
|
32
33
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
33
34
|
rootPrefix = _useClassNames.rootPrefix;
|
|
34
35
|
var classes = merge(className, withClassPrefix());
|
|
35
|
-
var _useCustom = useCustom('Picker'),
|
|
36
|
+
var _useCustom = useCustom('Picker', overrideLocale),
|
|
36
37
|
locale = _useCustom.locale;
|
|
37
38
|
var renderSearchRow = function renderSearchRow(item, key) {
|
|
38
39
|
var _extends2;
|
|
@@ -6,7 +6,7 @@ export interface ItemKeys {
|
|
|
6
6
|
labelKey: string;
|
|
7
7
|
childrenKey: string;
|
|
8
8
|
}
|
|
9
|
-
export interface MultiCascadeTreeProps<T, V = T[]> extends WithAsProps, CascadeTreeProps<T, V> {
|
|
9
|
+
export interface MultiCascadeTreeProps<T, V = T[], L = any> extends WithAsProps, CascadeTreeProps<T, V> {
|
|
10
10
|
/**
|
|
11
11
|
* When set to true, selecting a child node will update the state of the parent node.
|
|
12
12
|
*/
|
|
@@ -19,6 +19,10 @@ export interface MultiCascadeTreeProps<T, V = T[]> extends WithAsProps, CascadeT
|
|
|
19
19
|
* Set the option value for the check box not to be rendered
|
|
20
20
|
*/
|
|
21
21
|
uncheckableItemValues?: T[];
|
|
22
|
+
/**
|
|
23
|
+
* A collection of localized strings.
|
|
24
|
+
*/
|
|
25
|
+
locale?: Partial<L>;
|
|
22
26
|
/**
|
|
23
27
|
* Called after the checkbox state changes.
|
|
24
28
|
*/
|
|
@@ -3,7 +3,7 @@ import { PickerLocale } from '../locales';
|
|
|
3
3
|
import { PickerComponent, PickerToggleProps } from '../internals/Picker';
|
|
4
4
|
import { FormControlPickerProps, ItemDataType, DataItemValue } from '../internals/types';
|
|
5
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'> {
|
|
6
|
+
export interface MultiCascaderProps<T extends DataItemValue> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>, T>, MultiCascadeTreeProps<T, T[], PickerLocale>, Pick<PickerToggleProps, 'loading'> {
|
|
7
7
|
/**
|
|
8
8
|
* A picker that can be counted
|
|
9
9
|
*/
|
|
@@ -267,6 +267,8 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
267
267
|
target: trigger,
|
|
268
268
|
onKeyDown: onPickerKeyDown
|
|
269
269
|
}, searchable && /*#__PURE__*/React.createElement(SearchView, {
|
|
270
|
+
locale: locale,
|
|
271
|
+
cascade: cascade,
|
|
270
272
|
data: items,
|
|
271
273
|
value: value,
|
|
272
274
|
searchKeyword: searchKeyword,
|
|
@@ -274,6 +276,7 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
274
276
|
labelKey: labelKey,
|
|
275
277
|
childrenKey: childrenKey,
|
|
276
278
|
disabledItemValues: disabledItemValues,
|
|
279
|
+
inputRef: searchInput,
|
|
277
280
|
onCheck: handleCheck,
|
|
278
281
|
onSearch: handleSearch
|
|
279
282
|
}), !searchKeyword && /*#__PURE__*/React.createElement(TreeView, {
|
|
@@ -216,6 +216,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
216
216
|
searchable: searchable,
|
|
217
217
|
searchKeyword: searchKeyword,
|
|
218
218
|
searchBy: searchBy,
|
|
219
|
+
searchInputRef: searchInput,
|
|
219
220
|
loadingNodeValues: loadingNodeValues,
|
|
220
221
|
flattenedNodes: flattenedNodes,
|
|
221
222
|
listProps: listProps,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { useCallback, useRef } from 'react';
|
|
3
|
+
import useIsomorphicLayoutEffect from "./useIsomorphicLayoutEffect.js";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* https://github.com/facebook/react/issues/14099#issuecomment-440013892
|
|
@@ -7,7 +8,12 @@ import { useEffect, useCallback, useRef } from 'react';
|
|
|
7
8
|
*/
|
|
8
9
|
export function useEventCallback(fn) {
|
|
9
10
|
var ref = useRef(fn);
|
|
10
|
-
|
|
11
|
+
/**
|
|
12
|
+
* use useLayoutEffect instead of useEffect.
|
|
13
|
+
* useLayoutEffect is earlier than useEffect, sometimes we use setState and then use callback immediately,
|
|
14
|
+
* However the state in callback is not the latest, because useEffect is not triggered.
|
|
15
|
+
*/
|
|
16
|
+
useIsomorphicLayoutEffect(function () {
|
|
11
17
|
ref.current = fn;
|
|
12
18
|
});
|
|
13
19
|
return useCallback(function () {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rsuite",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.70.0",
|
|
4
4
|
"description": "A suite of react components",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"prop-types": "^15.8.1",
|
|
38
38
|
"react-use-set": "^1.0.0",
|
|
39
39
|
"react-window": "^1.8.8",
|
|
40
|
-
"rsuite-table": "^5.
|
|
40
|
+
"rsuite-table": "^5.19.1",
|
|
41
41
|
"schema-typed": "^2.2.2"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|