rsuite 5.55.1 → 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/AutoComplete/styles/index.css +3 -3
- package/CHANGELOG.md +33 -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 +190 -195
- package/Cascader/styles/index.less +1 -122
- package/CheckPicker/styles/index.css +142 -40
- package/CheckPicker/styles/index.less +1 -1
- package/CheckTree/styles/index.css +143 -41
- package/CheckTreePicker/styles/index.css +143 -41
- package/CheckTreePicker/styles/index.less +2 -2
- package/Checkbox/styles/index.css +159 -36
- package/Checkbox/styles/index.less +32 -13
- package/DatePicker/styles/index.css +3 -3
- package/DateRangePicker/styles/index.css +3 -3
- package/InputPicker/styles/index.css +3 -3
- 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 +213 -108
- package/MultiCascader/styles/index.less +11 -31
- package/Pagination/styles/index.css +3 -3
- package/Radio/styles/index.css +133 -19
- package/Radio/styles/index.less +28 -12
- package/RadioGroup/styles/index.css +1 -1
- package/RadioGroup/styles/index.less +1 -1
- package/SelectPicker/styles/index.css +3 -3
- package/TagGroup/styles/index.css +1 -1
- package/TagGroup/styles/index.less +1 -1
- package/TagInput/styles/index.css +141 -39
- package/TagPicker/styles/index.css +141 -39
- 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/Checkbox/Checkbox.d.ts +67 -25
- package/cjs/Checkbox/Checkbox.js +36 -26
- package/cjs/InlineEdit/InlineEdit.d.ts +1 -1
- package/cjs/InputPicker/InputPicker.js +2 -2
- package/cjs/InputPicker/InputPickerContext.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 +22 -21
- 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/Radio/Radio.d.ts +42 -16
- package/cjs/Radio/Radio.js +42 -37
- package/cjs/RadioGroup/RadioGroup.d.ts +1 -1
- package/cjs/RadioGroup/RadioGroup.js +3 -3
- package/cjs/TagPicker/index.js +1 -1
- 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/ListCheckItem.d.ts +2 -11
- package/cjs/internals/Picker/ListCheckItem.js +8 -6
- 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 +322 -124
- 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 +322 -124
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +322 -124
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +322 -124
- package/dist/rsuite.js +248 -50
- 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/Checkbox/Checkbox.d.ts +67 -25
- package/esm/Checkbox/Checkbox.js +38 -28
- package/esm/InlineEdit/InlineEdit.d.ts +1 -1
- package/esm/InputPicker/InputPicker.js +2 -2
- package/esm/InputPicker/InputPickerContext.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 +22 -21
- 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/Radio/Radio.d.ts +42 -16
- package/esm/Radio/Radio.js +43 -38
- package/esm/RadioGroup/RadioGroup.d.ts +1 -1
- package/esm/RadioGroup/RadioGroup.js +5 -5
- package/esm/TagPicker/index.js +1 -1
- 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/ListCheckItem.d.ts +2 -11
- package/esm/internals/Picker/ListCheckItem.js +8 -6
- 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/internals/Picker/styles/index.less +1 -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,43 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _useEventCallback = _interopRequireDefault(require("../utils/useEventCallback"));
|
|
9
|
+
var useActive = function useActive(props) {
|
|
10
|
+
var onOpen = props.onOpen,
|
|
11
|
+
onClose = props.onClose,
|
|
12
|
+
onEntered = props.onEntered,
|
|
13
|
+
onExited = props.onExited,
|
|
14
|
+
target = props.target,
|
|
15
|
+
setSearchKeyword = props.setSearchKeyword; // Use component active state to support keyboard events.
|
|
16
|
+
var _useState = (0, _react.useState)(false),
|
|
17
|
+
active = _useState[0],
|
|
18
|
+
setActive = _useState[1];
|
|
19
|
+
var handleEntered = (0, _useEventCallback.default)(function (node) {
|
|
20
|
+
onEntered === null || onEntered === void 0 ? void 0 : onEntered(node);
|
|
21
|
+
if (!target.current) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
25
|
+
setActive(true);
|
|
26
|
+
});
|
|
27
|
+
var handleExited = (0, _useEventCallback.default)(function (node) {
|
|
28
|
+
onExited === null || onExited === void 0 ? void 0 : onExited(node);
|
|
29
|
+
if (!target.current) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
33
|
+
setActive(false);
|
|
34
|
+
setSearchKeyword('');
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
active: active,
|
|
38
|
+
handleEntered: handleEntered,
|
|
39
|
+
handleExited: handleExited
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
var _default = useActive;
|
|
43
|
+
exports.default = _default;
|
|
@@ -1,43 +1,85 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
2
|
+
import { WithAsProps, RsRefForwardingComponent, TypeAttributes } from '../@types/common';
|
|
3
3
|
export declare type ValueType = string | number;
|
|
4
|
-
export interface CheckboxProps<V = ValueType> extends WithAsProps {
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
export interface CheckboxProps<V = ValueType> extends WithAsProps, Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
5
|
+
/**
|
|
6
|
+
* The color of the checkbox when checked or indeterminate
|
|
7
|
+
*
|
|
8
|
+
* @version 5.56.0
|
|
9
|
+
*/
|
|
10
|
+
color?: TypeAttributes.Color;
|
|
11
|
+
/**
|
|
12
|
+
* Whether to show checkbox
|
|
13
|
+
*
|
|
14
|
+
* @private Used in MultiCascader
|
|
15
|
+
*/
|
|
16
|
+
checkable?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* A checkbox can appear disabled and be unable to change states
|
|
19
|
+
*/
|
|
10
20
|
disabled?: boolean;
|
|
11
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Make the control readonly
|
|
23
|
+
*/
|
|
12
24
|
readOnly?: boolean;
|
|
13
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Render the control as plain text
|
|
27
|
+
*/
|
|
14
28
|
plaintext?: boolean;
|
|
15
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Whether or not checkbox is checked.
|
|
31
|
+
*/
|
|
16
32
|
checked?: boolean;
|
|
17
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* The initial value of checked.
|
|
35
|
+
*/
|
|
18
36
|
defaultChecked?: boolean;
|
|
19
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Whether or not checkbox is indeterminate.
|
|
39
|
+
*/
|
|
20
40
|
indeterminate?: boolean;
|
|
21
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Attributes applied to the input element.
|
|
43
|
+
*/
|
|
22
44
|
inputProps?: React.HTMLAttributes<HTMLInputElement>;
|
|
23
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* Pass a ref to the input element.
|
|
47
|
+
*/
|
|
24
48
|
inputRef?: React.Ref<any>;
|
|
25
|
-
/**
|
|
49
|
+
/**
|
|
50
|
+
* Inline layout
|
|
51
|
+
*
|
|
52
|
+
* @private Used in CheckboxGroup
|
|
53
|
+
*/
|
|
54
|
+
inline?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* The HTML input value.
|
|
57
|
+
*/
|
|
26
58
|
value?: V;
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
checkable?: boolean;
|
|
31
|
-
/** Used for the name of the form */
|
|
59
|
+
/**
|
|
60
|
+
* Used for the name of the form
|
|
61
|
+
*/
|
|
32
62
|
name?: string;
|
|
33
|
-
/**
|
|
63
|
+
/**
|
|
64
|
+
* Whether the label is clickable
|
|
65
|
+
*
|
|
66
|
+
* @private Used in MultiCascader
|
|
67
|
+
*/
|
|
68
|
+
labelClickable?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Called when the user attempts to change the checked state.
|
|
71
|
+
*/
|
|
34
72
|
onChange?: (value: V | undefined, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
35
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* Called when the checkbox or label is clicked.
|
|
75
|
+
*/
|
|
36
76
|
onClick?: (event: React.SyntheticEvent) => void;
|
|
37
|
-
/**
|
|
77
|
+
/**
|
|
78
|
+
* Called when the checkbox is clicked.
|
|
79
|
+
*
|
|
80
|
+
* @private Used in MultiCascader
|
|
81
|
+
*/
|
|
38
82
|
onCheckboxClick?: (event: React.SyntheticEvent) => void;
|
|
39
|
-
/** Called when the user presses down a key. */
|
|
40
|
-
onKeyDown?: (event: React.KeyboardEvent) => void;
|
|
41
83
|
}
|
|
42
84
|
/**
|
|
43
85
|
* The Checkbox component is used for selecting multiple options from a set.
|
package/cjs/Checkbox/Checkbox.js
CHANGED
|
@@ -13,7 +13,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
13
13
|
var _utils = require("../utils");
|
|
14
14
|
var _CheckboxGroup = require("../CheckboxGroup");
|
|
15
15
|
var _propTypes2 = require("../internals/propTypes");
|
|
16
|
-
var _templateObject, _templateObject2, _templateObject3;
|
|
16
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
17
17
|
/**
|
|
18
18
|
* The Checkbox component is used for selecting multiple options from a set.
|
|
19
19
|
* @see https://rsuitejs.com/components/checkbox
|
|
@@ -36,12 +36,15 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
36
36
|
classPrefix = _props$classPrefix === void 0 ? 'checkbox' : _props$classPrefix,
|
|
37
37
|
_props$checkable = props.checkable,
|
|
38
38
|
checkable = _props$checkable === void 0 ? true : _props$checkable,
|
|
39
|
+
color = props.color,
|
|
39
40
|
_props$defaultChecked = props.defaultChecked,
|
|
40
41
|
defaultChecked = _props$defaultChecked === void 0 ? false : _props$defaultChecked,
|
|
41
42
|
title = props.title,
|
|
42
43
|
inputRef = props.inputRef,
|
|
43
44
|
inputProps = props.inputProps,
|
|
44
45
|
indeterminate = props.indeterminate,
|
|
46
|
+
_props$labelClickable = props.labelClickable,
|
|
47
|
+
labelClickable = _props$labelClickable === void 0 ? true : _props$labelClickable,
|
|
45
48
|
_props$tabIndex = props.tabIndex,
|
|
46
49
|
tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,
|
|
47
50
|
_props$disabled = props.disabled,
|
|
@@ -58,7 +61,7 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
58
61
|
onClick = props.onClick,
|
|
59
62
|
onCheckboxClick = props.onCheckboxClick,
|
|
60
63
|
onChange = props.onChange,
|
|
61
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "checked", "className", "children", "classPrefix", "checkable", "defaultChecked", "title", "inputRef", "inputProps", "indeterminate", "tabIndex", "disabled", "readOnly", "plaintext", "inline", "name", "value", "onClick", "onCheckboxClick", "onChange"]);
|
|
64
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "checked", "className", "children", "classPrefix", "checkable", "color", "defaultChecked", "title", "inputRef", "inputProps", "indeterminate", "labelClickable", "tabIndex", "disabled", "readOnly", "plaintext", "inline", "name", "value", "onClick", "onCheckboxClick", "onChange"]);
|
|
62
65
|
var _useControlled = (0, _utils.useControlled)(controlledChecked, defaultChecked),
|
|
63
66
|
selfChecked = _useControlled[0],
|
|
64
67
|
setSelfChecked = _useControlled[1],
|
|
@@ -78,7 +81,7 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
78
81
|
merge = _useClassNames.merge,
|
|
79
82
|
prefix = _useClassNames.prefix,
|
|
80
83
|
withClassPrefix = _useClassNames.withClassPrefix;
|
|
81
|
-
var classes = merge(className, withClassPrefix({
|
|
84
|
+
var classes = merge(className, withClassPrefix(color, {
|
|
82
85
|
inline: inline,
|
|
83
86
|
indeterminate: indeterminate,
|
|
84
87
|
disabled: disabled,
|
|
@@ -93,7 +96,8 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
93
96
|
// In uncontrolled situations, use defaultChecked instead of checked
|
|
94
97
|
htmlInputProps[controlled ? 'checked' : 'defaultChecked'] = checked;
|
|
95
98
|
}
|
|
96
|
-
var
|
|
99
|
+
var checkboxRef = (0, _react.useRef)(null);
|
|
100
|
+
var handleChange = (0, _utils.useEventCallback)(function (event) {
|
|
97
101
|
var nextChecked = event.target.checked;
|
|
98
102
|
if (disabled || readOnly) {
|
|
99
103
|
return;
|
|
@@ -101,30 +105,34 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
101
105
|
setSelfChecked(nextChecked);
|
|
102
106
|
onChange === null || onChange === void 0 ? void 0 : onChange(value, nextChecked, event);
|
|
103
107
|
onGroupChange === null || onGroupChange === void 0 ? void 0 : onGroupChange(value, nextChecked, event);
|
|
104
|
-
}
|
|
108
|
+
});
|
|
109
|
+
var handleLabelClick = (0, _utils.useEventCallback)(function (event) {
|
|
110
|
+
// Prevent check when label is not clickable
|
|
111
|
+
if (!labelClickable && event.target !== checkboxRef.current) {
|
|
112
|
+
event.preventDefault();
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
var labelId = (0, _utils.useUniqueId)('label-');
|
|
105
116
|
if (plaintext) {
|
|
106
117
|
return checked ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, restProps, {
|
|
107
118
|
ref: ref,
|
|
108
119
|
className: classes
|
|
109
120
|
}), children) : null;
|
|
110
121
|
}
|
|
111
|
-
var
|
|
112
|
-
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["
|
|
113
|
-
onClick: onCheckboxClick,
|
|
114
|
-
"aria-disabled": disabled
|
|
122
|
+
var control = /*#__PURE__*/_react.default.createElement("span", {
|
|
123
|
+
className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["control"])))
|
|
115
124
|
}, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, htmlInputProps, inputProps, {
|
|
125
|
+
"aria-disabled": disabled,
|
|
126
|
+
"aria-checked": indeterminate ? 'mixed' : checked,
|
|
127
|
+
"aria-labelledby": labelId,
|
|
116
128
|
name: name,
|
|
117
129
|
value: value,
|
|
118
130
|
type: "checkbox",
|
|
119
|
-
ref: inputRef,
|
|
131
|
+
ref: (0, _utils.mergeRefs)(checkboxRef, inputRef),
|
|
120
132
|
tabIndex: tabIndex,
|
|
121
133
|
readOnly: readOnly,
|
|
122
134
|
disabled: disabled,
|
|
123
|
-
|
|
124
|
-
"aria-checked": indeterminate ? 'mixed' : checked,
|
|
125
|
-
onClick: function onClick(event) {
|
|
126
|
-
return event.stopPropagation();
|
|
127
|
-
},
|
|
135
|
+
onClick: onCheckboxClick,
|
|
128
136
|
onChange: handleChange
|
|
129
137
|
})), /*#__PURE__*/_react.default.createElement("span", {
|
|
130
138
|
className: prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["inner"]))),
|
|
@@ -138,28 +146,30 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
138
146
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
139
147
|
className: prefix(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["checker"])))
|
|
140
148
|
}, /*#__PURE__*/_react.default.createElement("label", {
|
|
141
|
-
title: title
|
|
142
|
-
|
|
149
|
+
title: title,
|
|
150
|
+
onClick: handleLabelClick
|
|
151
|
+
}, checkable ? control : null, /*#__PURE__*/_react.default.createElement("span", {
|
|
152
|
+
className: prefix(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["label"]))),
|
|
153
|
+
id: labelId
|
|
154
|
+
}, children))));
|
|
143
155
|
});
|
|
144
156
|
Checkbox.displayName = 'Checkbox';
|
|
145
157
|
Checkbox.propTypes = {
|
|
146
158
|
as: _propTypes.default.elementType,
|
|
147
|
-
|
|
159
|
+
checked: _propTypes.default.bool,
|
|
160
|
+
checkable: _propTypes.default.bool,
|
|
148
161
|
className: _propTypes.default.string,
|
|
149
|
-
|
|
162
|
+
children: _propTypes.default.node,
|
|
163
|
+
classPrefix: _propTypes.default.string,
|
|
150
164
|
disabled: _propTypes.default.bool,
|
|
151
|
-
checked: _propTypes.default.bool,
|
|
152
165
|
defaultChecked: _propTypes.default.bool,
|
|
166
|
+
inline: _propTypes.default.bool,
|
|
153
167
|
indeterminate: _propTypes.default.bool,
|
|
154
|
-
onChange: _propTypes.default.func,
|
|
155
|
-
onClick: _propTypes.default.func,
|
|
156
168
|
inputProps: _propTypes.default.any,
|
|
157
169
|
inputRef: _propTypes2.refType,
|
|
158
170
|
value: _propTypes.default.any,
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
tabIndex: _propTypes.default.number,
|
|
162
|
-
checkable: _propTypes.default.bool,
|
|
171
|
+
onChange: _propTypes.default.func,
|
|
172
|
+
onClick: _propTypes.default.func,
|
|
163
173
|
onCheckboxClick: _propTypes.default.func
|
|
164
174
|
};
|
|
165
175
|
var _default = Checkbox;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
3
|
import { type ChildrenProps } from './renderChildren';
|
|
4
|
-
export interface InlineEditProps extends WithAsProps {
|
|
4
|
+
export interface InlineEditProps extends Omit<WithAsProps, 'children'> {
|
|
5
5
|
/**
|
|
6
6
|
* If true, the InlineEdit will be disabled.
|
|
7
7
|
*/
|
|
@@ -124,7 +124,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
124
124
|
trigger = _useContext.trigger,
|
|
125
125
|
disabledOptions = _useContext.disabledOptions,
|
|
126
126
|
onTagRemove = _useContext.onTagRemove,
|
|
127
|
-
|
|
127
|
+
renderCheckbox = _useContext.renderCheckbox;
|
|
128
128
|
if (groupBy === valueKey || groupBy === labelKey) {
|
|
129
129
|
throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');
|
|
130
130
|
}
|
|
@@ -579,7 +579,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
579
579
|
listItemClassPrefix: multi ? undefined : menuClassPrefix + "-item",
|
|
580
580
|
listItemAs: multi ? _Picker.ListCheckItem : _Picker.ListItem,
|
|
581
581
|
listItemProps: {
|
|
582
|
-
|
|
582
|
+
renderCheckbox: renderCheckbox
|
|
583
583
|
},
|
|
584
584
|
activeItemValues: multi ? value : [value],
|
|
585
585
|
focusItemValue: focusItemValue,
|
|
@@ -20,7 +20,7 @@ export interface InputPickerContextProps extends TagOnlyProps {
|
|
|
20
20
|
*/
|
|
21
21
|
disabledOptions?: boolean;
|
|
22
22
|
/** Custom render checkbox on menu item */
|
|
23
|
-
|
|
23
|
+
renderCheckbox?: (checkboxProps: CheckboxProps) => React.ReactNode;
|
|
24
24
|
}
|
|
25
25
|
declare const InputPickerContext: React.Context<InputPickerContextProps>;
|
|
26
26
|
export default InputPickerContext;
|
package/cjs/Loader/Loader.js
CHANGED
|
@@ -29,20 +29,20 @@ var Loader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
29
29
|
content = props.content,
|
|
30
30
|
size = props.size,
|
|
31
31
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "inverse", "backdrop", "speed", "center", "vertical", "content", "size"]);
|
|
32
|
-
var hasContent = !!content;
|
|
33
32
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
34
33
|
merge = _useClassNames.merge,
|
|
35
34
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
36
35
|
prefix = _useClassNames.prefix;
|
|
36
|
+
var labelId = (0, _utils.useUniqueId)('loader-label-');
|
|
37
37
|
var classes = merge(className, prefix('wrapper', "speed-" + speed, size, {
|
|
38
38
|
'backdrop-wrapper': backdrop,
|
|
39
|
-
'has-content': hasContent,
|
|
40
39
|
vertical: vertical,
|
|
41
40
|
inverse: inverse,
|
|
42
41
|
center: center
|
|
43
42
|
}));
|
|
44
43
|
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
45
|
-
role: "
|
|
44
|
+
role: "status",
|
|
45
|
+
"aria-labelledby": content ? labelId : undefined
|
|
46
46
|
}, rest, {
|
|
47
47
|
ref: ref,
|
|
48
48
|
className: classes
|
|
@@ -52,7 +52,8 @@ var Loader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
52
52
|
className: withClassPrefix()
|
|
53
53
|
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
54
54
|
className: prefix('spin')
|
|
55
|
-
}),
|
|
55
|
+
}), content && /*#__PURE__*/_react.default.createElement("span", {
|
|
56
|
+
id: labelId,
|
|
56
57
|
className: prefix('content')
|
|
57
58
|
}, content)));
|
|
58
59
|
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { DataItemValue } from '../@types/common';
|
|
3
|
+
import type { MultiCascadeTreeProps } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* The `MultiCascadeTree` component is used to select multiple values from cascading options.
|
|
6
|
+
* @see https://rsuitejs.com/components/multi-cascade-tree/
|
|
7
|
+
*/
|
|
8
|
+
declare const MultiCascadeTree: React.ForwardRefExoticComponent<MultiCascadeTreeProps<DataItemValue, DataItemValue[]> & React.RefAttributes<unknown>>;
|
|
9
|
+
export default MultiCascadeTree;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _TreeView = _interopRequireDefault(require("./TreeView"));
|
|
11
|
+
var _hooks = require("./hooks");
|
|
12
|
+
var _utils = require("../utils");
|
|
13
|
+
var _SearchView = _interopRequireDefault(require("./SearchView"));
|
|
14
|
+
var emptyArray = [];
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The `MultiCascadeTree` component is used to select multiple values from cascading options.
|
|
18
|
+
* @see https://rsuitejs.com/components/multi-cascade-tree/
|
|
19
|
+
*/
|
|
20
|
+
var MultiCascadeTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
21
|
+
var _props$as = props.as,
|
|
22
|
+
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
23
|
+
_props$data = props.data,
|
|
24
|
+
data = _props$data === void 0 ? emptyArray : _props$data,
|
|
25
|
+
defaultValue = props.defaultValue,
|
|
26
|
+
className = props.className,
|
|
27
|
+
_props$classPrefix = props.classPrefix,
|
|
28
|
+
classPrefix = _props$classPrefix === void 0 ? 'cascade-tree' : _props$classPrefix,
|
|
29
|
+
valueProp = props.value,
|
|
30
|
+
_props$valueKey = props.valueKey,
|
|
31
|
+
valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
|
|
32
|
+
_props$labelKey = props.labelKey,
|
|
33
|
+
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
34
|
+
_props$childrenKey = props.childrenKey,
|
|
35
|
+
childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
|
|
36
|
+
_props$disabledItemVa = props.disabledItemValues,
|
|
37
|
+
disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
|
|
38
|
+
_props$cascade = props.cascade,
|
|
39
|
+
cascade = _props$cascade === void 0 ? true : _props$cascade,
|
|
40
|
+
columnWidth = props.columnWidth,
|
|
41
|
+
columnHeight = props.columnHeight,
|
|
42
|
+
searchable = props.searchable,
|
|
43
|
+
_props$uncheckableIte = props.uncheckableItemValues,
|
|
44
|
+
uncheckableItemValues = _props$uncheckableIte === void 0 ? emptyArray : _props$uncheckableIte,
|
|
45
|
+
getChildren = props.getChildren,
|
|
46
|
+
renderColumn = props.renderColumn,
|
|
47
|
+
renderTreeNode = props.renderTreeNode,
|
|
48
|
+
onSelect = props.onSelect,
|
|
49
|
+
onCheck = props.onCheck,
|
|
50
|
+
onChange = props.onChange,
|
|
51
|
+
onSearch = props.onSearch,
|
|
52
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "defaultValue", "className", "classPrefix", "value", "valueKey", "labelKey", "childrenKey", "disabledItemValues", "cascade", "columnWidth", "columnHeight", "searchable", "uncheckableItemValues", "getChildren", "renderColumn", "renderTreeNode", "onSelect", "onCheck", "onChange", "onSearch"]);
|
|
53
|
+
var itemKeys = {
|
|
54
|
+
childrenKey: childrenKey,
|
|
55
|
+
labelKey: labelKey,
|
|
56
|
+
valueKey: valueKey
|
|
57
|
+
};
|
|
58
|
+
var _useSelect = (0, _hooks.useSelect)({
|
|
59
|
+
data: data,
|
|
60
|
+
childrenKey: childrenKey,
|
|
61
|
+
labelKey: labelKey,
|
|
62
|
+
valueKey: valueKey,
|
|
63
|
+
onSelect: onSelect,
|
|
64
|
+
getChildren: getChildren
|
|
65
|
+
}),
|
|
66
|
+
selectedPaths = _useSelect.selectedPaths,
|
|
67
|
+
flattenData = _useSelect.flattenData,
|
|
68
|
+
columnData = _useSelect.columnData,
|
|
69
|
+
handleSelect = _useSelect.handleSelect;
|
|
70
|
+
var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),
|
|
71
|
+
controlledValue = _useControlled[0];
|
|
72
|
+
var cascadeValueProps = (0, _extends2.default)({}, itemKeys, {
|
|
73
|
+
uncheckableItemValues: uncheckableItemValues,
|
|
74
|
+
cascade: cascade,
|
|
75
|
+
value: controlledValue,
|
|
76
|
+
onCheck: onCheck,
|
|
77
|
+
onChange: onChange
|
|
78
|
+
});
|
|
79
|
+
var _useCascadeValue = (0, _hooks.useCascadeValue)(cascadeValueProps, flattenData),
|
|
80
|
+
value = _useCascadeValue.value,
|
|
81
|
+
handleCheck = _useCascadeValue.handleCheck;
|
|
82
|
+
var _useSearch = (0, _hooks.useSearch)({
|
|
83
|
+
labelKey: labelKey,
|
|
84
|
+
valueKey: valueKey,
|
|
85
|
+
childrenKey: childrenKey,
|
|
86
|
+
flattenedData: flattenData,
|
|
87
|
+
uncheckableItemValues: uncheckableItemValues,
|
|
88
|
+
onSearch: onSearch
|
|
89
|
+
}),
|
|
90
|
+
items = _useSearch.items,
|
|
91
|
+
searchKeyword = _useSearch.searchKeyword,
|
|
92
|
+
handleSearch = _useSearch.handleSearch;
|
|
93
|
+
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
94
|
+
withClassPrefix = _useClassNames.withClassPrefix,
|
|
95
|
+
merge = _useClassNames.merge;
|
|
96
|
+
var classes = merge(className, withClassPrefix('multi'));
|
|
97
|
+
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
98
|
+
ref: ref,
|
|
99
|
+
className: classes
|
|
100
|
+
}, rest), searchable && /*#__PURE__*/_react.default.createElement(_SearchView.default, {
|
|
101
|
+
data: items,
|
|
102
|
+
value: value,
|
|
103
|
+
searchKeyword: searchKeyword,
|
|
104
|
+
valueKey: valueKey,
|
|
105
|
+
labelKey: labelKey,
|
|
106
|
+
childrenKey: childrenKey,
|
|
107
|
+
disabledItemValues: disabledItemValues,
|
|
108
|
+
onCheck: handleCheck,
|
|
109
|
+
onSearch: handleSearch
|
|
110
|
+
}), !searchKeyword && /*#__PURE__*/_react.default.createElement(_TreeView.default, {
|
|
111
|
+
cascade: cascade,
|
|
112
|
+
columnWidth: columnWidth,
|
|
113
|
+
columnHeight: columnHeight,
|
|
114
|
+
uncheckableItemValues: uncheckableItemValues,
|
|
115
|
+
disabledItemValues: disabledItemValues,
|
|
116
|
+
valueKey: valueKey,
|
|
117
|
+
labelKey: labelKey,
|
|
118
|
+
childrenKey: childrenKey,
|
|
119
|
+
classPrefix: classPrefix,
|
|
120
|
+
cascadeData: columnData,
|
|
121
|
+
cascadePaths: selectedPaths,
|
|
122
|
+
value: value,
|
|
123
|
+
onSelect: handleSelect,
|
|
124
|
+
onCheck: handleCheck,
|
|
125
|
+
renderColumn: renderColumn,
|
|
126
|
+
renderTreeNode: renderTreeNode
|
|
127
|
+
}));
|
|
128
|
+
});
|
|
129
|
+
MultiCascadeTree.displayName = 'MultiCascadeTree';
|
|
130
|
+
var _default = MultiCascadeTree;
|
|
131
|
+
exports.default = _default;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ItemDataType, WithAsProps } from '../@types/common';
|
|
3
|
+
interface SearchViewProps<T> extends WithAsProps {
|
|
4
|
+
searchKeyword: string;
|
|
5
|
+
labelKey: string;
|
|
6
|
+
valueKey: string;
|
|
7
|
+
childrenKey: string;
|
|
8
|
+
value: T[];
|
|
9
|
+
data: ItemDataType<T>[];
|
|
10
|
+
disabledItemValues: any[];
|
|
11
|
+
cascade?: boolean;
|
|
12
|
+
onSearch: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
13
|
+
onCheck: (item: ItemDataType<T>, event: React.SyntheticEvent, checked: boolean) => void;
|
|
14
|
+
inputRef?: React.RefObject<HTMLInputElement>;
|
|
15
|
+
}
|
|
16
|
+
declare function SearchView<T>(props: SearchViewProps<T>): JSX.Element;
|
|
17
|
+
export default SearchView;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _utils = require("../utils");
|
|
11
|
+
var _treeUtils = require("../utils/treeUtils");
|
|
12
|
+
var _SearchBox = _interopRequireDefault(require("../internals/SearchBox"));
|
|
13
|
+
var _Checkbox = _interopRequireDefault(require("../Checkbox"));
|
|
14
|
+
var _utils2 = require("./utils");
|
|
15
|
+
var _utils3 = require("../CascadeTree/utils");
|
|
16
|
+
function SearchView(props) {
|
|
17
|
+
var _props$as = props.as,
|
|
18
|
+
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
19
|
+
_props$classPrefix = props.classPrefix,
|
|
20
|
+
classPrefix = _props$classPrefix === void 0 ? 'cascade-search-view' : _props$classPrefix,
|
|
21
|
+
className = props.className,
|
|
22
|
+
searchKeyword = props.searchKeyword,
|
|
23
|
+
childrenKey = props.childrenKey,
|
|
24
|
+
labelKey = props.labelKey,
|
|
25
|
+
valueKey = props.valueKey,
|
|
26
|
+
value = props.value,
|
|
27
|
+
data = props.data,
|
|
28
|
+
disabledItemValues = props.disabledItemValues,
|
|
29
|
+
inputRef = props.inputRef,
|
|
30
|
+
cascade = props.cascade,
|
|
31
|
+
onSearch = props.onSearch,
|
|
32
|
+
onCheck = props.onCheck,
|
|
33
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "searchKeyword", "childrenKey", "labelKey", "valueKey", "value", "data", "disabledItemValues", "inputRef", "cascade", "onSearch", "onCheck"]);
|
|
34
|
+
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
35
|
+
merge = _useClassNames.merge,
|
|
36
|
+
prefix = _useClassNames.prefix,
|
|
37
|
+
withClassPrefix = _useClassNames.withClassPrefix,
|
|
38
|
+
rootPrefix = _useClassNames.rootPrefix;
|
|
39
|
+
var classes = merge(className, withClassPrefix());
|
|
40
|
+
var _useCustom = (0, _utils.useCustom)('Picker'),
|
|
41
|
+
locale = _useCustom.locale;
|
|
42
|
+
var renderSearchRow = function renderSearchRow(item, key) {
|
|
43
|
+
var _extends2;
|
|
44
|
+
var nodes = (0, _treeUtils.getNodeParents)(item);
|
|
45
|
+
var label = (0, _utils3.highlightLabel)({
|
|
46
|
+
item: item,
|
|
47
|
+
labelKey: labelKey,
|
|
48
|
+
searchKeyword: searchKeyword,
|
|
49
|
+
render: function render(patch, index) {
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
51
|
+
key: index,
|
|
52
|
+
className: prefix('match')
|
|
53
|
+
}, patch);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
nodes.push((0, _extends3.default)({}, item, (_extends2 = {}, _extends2[labelKey] = label, _extends2)));
|
|
57
|
+
var active = value.some(function (value) {
|
|
58
|
+
if (cascade) {
|
|
59
|
+
return nodes.some(function (node) {
|
|
60
|
+
return node[valueKey] === value;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return item[valueKey] === value;
|
|
64
|
+
});
|
|
65
|
+
var disabled = disabledItemValues.some(function (value) {
|
|
66
|
+
return nodes.some(function (node) {
|
|
67
|
+
return node[valueKey] === value;
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
var rowClasses = prefix('row', {
|
|
71
|
+
'row-disabled': disabled
|
|
72
|
+
});
|
|
73
|
+
var indeterminate = cascade && !active && (0, _utils2.isSomeChildChecked)(item, value, {
|
|
74
|
+
valueKey: valueKey,
|
|
75
|
+
childrenKey: childrenKey
|
|
76
|
+
});
|
|
77
|
+
var handleChange = function handleChange(_value, checked, event) {
|
|
78
|
+
onCheck === null || onCheck === void 0 ? void 0 : onCheck(item, event, checked);
|
|
79
|
+
};
|
|
80
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
81
|
+
role: "treeitem",
|
|
82
|
+
"aria-disabled": disabled,
|
|
83
|
+
key: key,
|
|
84
|
+
className: rowClasses,
|
|
85
|
+
"data-key": item[valueKey]
|
|
86
|
+
}, /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
|
|
87
|
+
disabled: disabled,
|
|
88
|
+
checked: active,
|
|
89
|
+
value: item[valueKey],
|
|
90
|
+
indeterminate: indeterminate,
|
|
91
|
+
onChange: handleChange
|
|
92
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
93
|
+
className: prefix('col-group')
|
|
94
|
+
}, nodes.map(function (node, index) {
|
|
95
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
96
|
+
key: "col-" + index,
|
|
97
|
+
className: prefix('col')
|
|
98
|
+
}, node[labelKey]);
|
|
99
|
+
}))));
|
|
100
|
+
};
|
|
101
|
+
return /*#__PURE__*/_react.default.createElement(Component, (0, _extends3.default)({
|
|
102
|
+
className: classes
|
|
103
|
+
}, rest), /*#__PURE__*/_react.default.createElement(_SearchBox.default, {
|
|
104
|
+
placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
|
|
105
|
+
onChange: onSearch,
|
|
106
|
+
value: searchKeyword,
|
|
107
|
+
inputRef: inputRef
|
|
108
|
+
}), searchKeyword !== '' && /*#__PURE__*/_react.default.createElement("div", {
|
|
109
|
+
className: prefix('panel'),
|
|
110
|
+
"data-layer": 0,
|
|
111
|
+
role: "tree"
|
|
112
|
+
}, data.length ? data.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement("div", {
|
|
113
|
+
className: merge(prefix('none'), rootPrefix('picker-none'))
|
|
114
|
+
}, locale.noResultsText)));
|
|
115
|
+
}
|
|
116
|
+
var _default = SearchView;
|
|
117
|
+
exports.default = _default;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
|
+
import type { CascadeColumn } from '../CascadeTree/types';
|
|
4
|
+
export interface TreeViewProps<T = any> extends WithAsProps {
|
|
5
|
+
disabledItemValues?: T[];
|
|
6
|
+
value: T[];
|
|
7
|
+
childrenKey: string;
|
|
8
|
+
valueKey: string;
|
|
9
|
+
labelKey: string;
|
|
10
|
+
columnWidth?: number;
|
|
11
|
+
columnHeight?: number | string;
|
|
12
|
+
cascade?: boolean;
|
|
13
|
+
cascadeData: (readonly ItemDataType<T>[])[];
|
|
14
|
+
cascadePaths?: ItemDataType<T>[];
|
|
15
|
+
uncheckableItemValues: T[];
|
|
16
|
+
renderTreeNode?: (node: React.ReactNode, item: ItemDataType<T>) => React.ReactNode;
|
|
17
|
+
renderColumn?: (childNodes: React.ReactNode, column: CascadeColumn<T>) => React.ReactNode;
|
|
18
|
+
onCheck?: (node: ItemDataType<T>, event: React.SyntheticEvent, checked: boolean) => void;
|
|
19
|
+
onSelect?: (node: ItemDataType<T>, cascadePaths: ItemDataType<T>[], event: React.SyntheticEvent) => void;
|
|
20
|
+
}
|
|
21
|
+
declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
|
|
22
|
+
export default TreeView;
|