rsuite 5.50.0 → 5.51.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 +11 -0
- package/CheckTreePicker/styles/index.less +3 -3
- package/DatePicker/styles/index.less +1 -1
- package/Form/styles/mixin.less +1 -2
- package/InputGroup/styles/index.less +0 -14
- package/InputPicker/styles/index.less +1 -1
- package/Picker/styles/index.less +2 -2
- package/Picker/styles/mixin.less +3 -3
- package/TagInput/styles/index.less +1 -1
- package/TagPicker/styles/index.less +5 -1
- package/TreePicker/styles/index.less +2 -2
- package/cjs/@types/common.d.ts +8 -0
- package/cjs/AutoComplete/AutoComplete.js +14 -11
- package/cjs/AutoComplete/Combobox.d.ts +8 -0
- package/cjs/AutoComplete/Combobox.js +31 -0
- package/cjs/Calendar/CalendarContainer.js +35 -37
- package/cjs/Cascader/Cascader.js +12 -11
- package/cjs/Cascader/DropdownMenu.d.ts +3 -20
- package/cjs/Cascader/DropdownMenu.js +48 -48
- package/cjs/Cascader/TreeView.d.ts +24 -0
- package/cjs/Cascader/TreeView.js +174 -0
- package/cjs/CheckPicker/CheckPicker.js +9 -8
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
- package/cjs/CheckTreePicker/CheckTreePicker.js +20 -20
- package/cjs/DatePicker/DatePicker.js +5 -6
- package/cjs/DateRangePicker/DateRangePicker.js +3 -4
- package/cjs/Form/Form.d.ts +14 -0
- package/cjs/Form/Form.js +39 -30
- package/cjs/Form/FormContext.d.ts +1 -0
- package/cjs/FormControl/FormControl.js +40 -18
- package/cjs/FormGroup/FormGroup.js +2 -1
- package/cjs/InputPicker/InputPicker.js +46 -29
- package/cjs/InputPicker/InputSearch.js +3 -15
- package/cjs/InputPicker/TagList.d.ts +3 -0
- package/cjs/InputPicker/TagList.js +29 -0
- package/cjs/InputPicker/TextBox.d.ts +18 -0
- package/cjs/InputPicker/TextBox.js +48 -0
- package/cjs/MultiCascader/MultiCascader.js +13 -10
- package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
- package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
- package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
- package/{esm/Picker/DropdownMenuItem.d.ts → cjs/Picker/ListItem.d.ts} +4 -4
- package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
- package/cjs/Picker/ListItemGroup.d.ts +6 -0
- package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/cjs/Picker/Listbox.d.ts +35 -0
- package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
- package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
- package/cjs/Picker/PickerToggle.d.ts +1 -1
- package/cjs/Picker/PickerToggle.js +16 -9
- package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
- package/cjs/Picker/PickerToggleTrigger.js +21 -5
- package/cjs/Picker/SearchBar.js +7 -9
- package/cjs/Picker/TreeView.d.ts +7 -0
- package/cjs/Picker/TreeView.js +31 -0
- package/cjs/Picker/hooks/index.d.ts +6 -0
- package/cjs/Picker/hooks/index.js +18 -0
- package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
- package/cjs/Picker/hooks/useCombobox.js +22 -0
- package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
- package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/cjs/Picker/hooks/usePickerClassName.js +39 -0
- package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +2 -2
- package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
- package/cjs/Picker/hooks/useSearch.d.ts +18 -0
- package/cjs/Picker/hooks/useSearch.js +57 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
- package/cjs/Picker/index.d.ts +7 -6
- package/cjs/Picker/index.js +26 -19
- package/cjs/Picker/propTypes.d.ts +0 -6
- package/cjs/Picker/propTypes.js +0 -5
- package/cjs/Picker/utils.d.ts +2 -96
- package/cjs/Picker/utils.js +1 -406
- package/cjs/SelectPicker/SelectPicker.js +8 -8
- package/cjs/TagInput/index.js +4 -0
- package/cjs/TreePicker/TreeNode.d.ts +2 -2
- package/cjs/TreePicker/TreeNode.js +22 -56
- package/cjs/TreePicker/TreePicker.js +19 -20
- package/dist/rsuite-no-reset-rtl.css +109 -117
- 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 +109 -117
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +109 -117
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +109 -117
- package/dist/rsuite.js +184 -74
- 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 +8 -0
- package/esm/AutoComplete/AutoComplete.js +15 -12
- package/esm/AutoComplete/Combobox.d.ts +8 -0
- package/esm/AutoComplete/Combobox.js +25 -0
- package/esm/Calendar/CalendarContainer.js +37 -39
- package/esm/Cascader/Cascader.js +13 -12
- package/esm/Cascader/DropdownMenu.d.ts +3 -20
- package/esm/Cascader/DropdownMenu.js +50 -49
- package/esm/Cascader/TreeView.d.ts +24 -0
- package/esm/Cascader/TreeView.js +167 -0
- package/esm/CheckPicker/CheckPicker.js +10 -9
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
- package/esm/CheckTreePicker/CheckTreePicker.js +21 -21
- package/esm/DatePicker/DatePicker.js +5 -6
- package/esm/DateRangePicker/DateRangePicker.js +3 -4
- package/esm/Form/Form.d.ts +14 -0
- package/esm/Form/Form.js +41 -32
- package/esm/Form/FormContext.d.ts +1 -0
- package/esm/FormControl/FormControl.js +39 -17
- package/esm/FormGroup/FormGroup.js +3 -2
- package/esm/InputPicker/InputPicker.js +47 -30
- package/esm/InputPicker/InputSearch.js +4 -15
- package/esm/InputPicker/TagList.d.ts +3 -0
- package/esm/InputPicker/TagList.js +23 -0
- package/esm/InputPicker/TextBox.d.ts +18 -0
- package/esm/InputPicker/TextBox.js +42 -0
- package/esm/MultiCascader/MultiCascader.js +14 -11
- package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
- package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
- package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
- package/{cjs/Picker/DropdownMenuItem.d.ts → esm/Picker/ListItem.d.ts} +4 -4
- package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
- package/esm/Picker/ListItemGroup.d.ts +6 -0
- package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/esm/Picker/Listbox.d.ts +35 -0
- package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
- package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
- package/esm/Picker/PickerToggle.d.ts +1 -1
- package/esm/Picker/PickerToggle.js +16 -9
- package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
- package/esm/Picker/PickerToggleTrigger.js +20 -5
- package/esm/Picker/SearchBar.js +8 -9
- package/esm/Picker/TreeView.d.ts +7 -0
- package/esm/Picker/TreeView.js +25 -0
- package/esm/Picker/hooks/index.d.ts +6 -0
- package/esm/Picker/hooks/index.js +7 -0
- package/esm/Picker/hooks/useCombobox.d.ts +7 -0
- package/esm/Picker/hooks/useCombobox.js +17 -0
- package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/esm/Picker/hooks/useFocusItemValue.js +240 -0
- package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/esm/Picker/hooks/usePickerClassName.js +33 -0
- package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +2 -2
- package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
- package/esm/Picker/hooks/useSearch.d.ts +18 -0
- package/esm/Picker/hooks/useSearch.js +51 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
- package/esm/Picker/index.d.ts +7 -6
- package/esm/Picker/index.js +7 -6
- package/esm/Picker/propTypes.d.ts +0 -6
- package/esm/Picker/propTypes.js +0 -5
- package/esm/Picker/utils.d.ts +2 -96
- package/esm/Picker/utils.js +2 -401
- package/esm/SelectPicker/SelectPicker.js +9 -9
- package/esm/TagInput/index.js +4 -0
- package/esm/TreePicker/TreeNode.d.ts +2 -2
- package/esm/TreePicker/TreeNode.js +24 -58
- package/esm/TreePicker/TreePicker.js +20 -21
- package/package.json +1 -1
- package/styles/variables.less +1 -3
- package/cjs/Picker/DropdownMenu.d.ts +0 -59
- package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
- package/esm/Picker/DropdownMenu.d.ts +0 -59
- package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
# [5.51.0](https://github.com/rsuite/rsuite/compare/v5.50.0...v5.51.0) (2024-01-19)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **InputGroup:** fix style conflict caused by zIndex set in InputGoup ([#3552](https://github.com/rsuite/rsuite/issues/3552)) ([f874edf](https://github.com/rsuite/rsuite/commit/f874edfdbf0dbc9a53e4fe26fb9cf39108f1a00c))
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- **Form:** add support for `nestedField` prop on Form ([#3568](https://github.com/rsuite/rsuite/issues/3568)) ([47fce55](https://github.com/rsuite/rsuite/commit/47fce559b159f128fd2f89ffc36c0e9bcfd3f25b))
|
|
10
|
+
- improve accessibility of all pickers ([#3558](https://github.com/rsuite/rsuite/issues/3558)) ([8ad3cfd](https://github.com/rsuite/rsuite/commit/8ad3cfd4f1a2de16b52fec2bed5e4a9ea509f824))
|
|
11
|
+
|
|
1
12
|
# [5.50.0](https://github.com/rsuite/rsuite/compare/v5.49.0...v5.50.0) (2024-01-12)
|
|
2
13
|
|
|
3
14
|
### Bug Fixes
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
.rs-check-item {
|
|
70
70
|
display: inline-block;
|
|
71
71
|
|
|
72
|
-
.rs-picker-
|
|
72
|
+
.rs-picker-popup & {
|
|
73
73
|
display: block;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
|
|
136
136
|
// node children
|
|
137
137
|
.rs-check-tree-node-children {
|
|
138
|
-
> .rs-check-tree-
|
|
138
|
+
> .rs-check-tree-group {
|
|
139
139
|
position: relative;
|
|
140
140
|
display: none;
|
|
141
141
|
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
-
.rs-picker-
|
|
157
|
+
.rs-picker-popup {
|
|
158
158
|
display: flex;
|
|
159
159
|
flex-direction: column;
|
|
160
160
|
|
package/Form/styles/mixin.less
CHANGED
|
@@ -114,10 +114,9 @@
|
|
|
114
114
|
@height: ~'input-height-@{size-name}';
|
|
115
115
|
@useable-height: (@@height - 2px);
|
|
116
116
|
@vertical: ~'padding-@{size-name}-vertical';
|
|
117
|
-
@add-on-padding: ~'input-group-padding-for-add-on-@{size-name}';
|
|
118
117
|
|
|
119
118
|
&.rs-input-group-inside > .rs-input {
|
|
120
|
-
padding-right:
|
|
119
|
+
padding-right: 0;
|
|
121
120
|
}
|
|
122
121
|
|
|
123
122
|
&.rs-input-group {
|
|
@@ -102,11 +102,6 @@
|
|
|
102
102
|
// Ensure that the input is always above the *appended* addon button for
|
|
103
103
|
// proper border colors.
|
|
104
104
|
position: relative;
|
|
105
|
-
z-index: @zindex-input;
|
|
106
|
-
|
|
107
|
-
&:focus {
|
|
108
|
-
z-index: (@zindex-input+1);
|
|
109
|
-
}
|
|
110
105
|
}
|
|
111
106
|
|
|
112
107
|
input.rs-input ~ .rs-input-group-addon,
|
|
@@ -136,7 +131,6 @@
|
|
|
136
131
|
|
|
137
132
|
.rs-input-group-btn,
|
|
138
133
|
.rs-input-group-addon {
|
|
139
|
-
z-index: @zindex-input-group-icon;
|
|
140
134
|
flex: 0 0 auto;
|
|
141
135
|
width: auto;
|
|
142
136
|
}
|
|
@@ -380,13 +374,6 @@
|
|
|
380
374
|
+ .rs-btn {
|
|
381
375
|
margin-left: -1px;
|
|
382
376
|
}
|
|
383
|
-
|
|
384
|
-
// Bring the "active" button to the front
|
|
385
|
-
&:hover,
|
|
386
|
-
&:focus,
|
|
387
|
-
&:active {
|
|
388
|
-
z-index: 2;
|
|
389
|
-
}
|
|
390
377
|
}
|
|
391
378
|
|
|
392
379
|
// Negative margin to only have a 1px border between the two
|
|
@@ -401,7 +388,6 @@
|
|
|
401
388
|
&:last-child {
|
|
402
389
|
> .rs-btn,
|
|
403
390
|
> .rs-btn-group {
|
|
404
|
-
z-index: 2;
|
|
405
391
|
margin-left: -1px;
|
|
406
392
|
}
|
|
407
393
|
}
|
package/Picker/styles/index.less
CHANGED
|
@@ -287,10 +287,10 @@
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
// Picker Menu
|
|
290
|
-
.rs-picker-
|
|
290
|
+
.rs-picker-popup {
|
|
291
291
|
position: absolute;
|
|
292
292
|
text-align: left;
|
|
293
|
-
z-index: @zindex-picker-
|
|
293
|
+
z-index: @zindex-picker-popup;
|
|
294
294
|
border-radius: @border-radius;
|
|
295
295
|
background-color: var(--rs-bg-overlay);
|
|
296
296
|
box-shadow: var(--rs-shadow-overlay);
|
package/Picker/styles/mixin.less
CHANGED
|
@@ -223,14 +223,14 @@
|
|
|
223
223
|
}
|
|
224
224
|
|
|
225
225
|
.tag-picker-search-input-size(@padding-vertical; @padding-horizontal; @font-size; @line-height;) {
|
|
226
|
-
.rs-picker-input:not(.rs-picker-tag) & ~ .rs-picker-
|
|
226
|
+
.rs-picker-input:not(.rs-picker-tag) & ~ .rs-picker-textbox .rs-picker-search-input {
|
|
227
227
|
padding: (@padding-vertical - 1px) @padding-horizontal;
|
|
228
228
|
font-size: @font-size;
|
|
229
229
|
line-height: @line-height;
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
// FIXME Bad design. Should not set search input styles in a mixin that is used in picker buttons.
|
|
233
|
-
.rs-picker-tag & ~ .rs-picker-
|
|
233
|
+
.rs-picker-tag & ~ .rs-picker-textbox {
|
|
234
234
|
padding-bottom: @padding-vertical - 3px;
|
|
235
235
|
|
|
236
236
|
.rs-tag {
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
);
|
|
282
282
|
/* stylelint-enable */
|
|
283
283
|
|
|
284
|
-
.rs-picker-input.rs-picker-tag & ~ .rs-picker-
|
|
284
|
+
.rs-picker-input.rs-picker-tag & ~ .rs-picker-textbox {
|
|
285
285
|
padding-bottom: @padding-y-xs - 1px;
|
|
286
286
|
|
|
287
287
|
.rs-tag {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
.rs-picker-
|
|
55
|
+
.rs-picker-textbox {
|
|
56
56
|
position: relative;
|
|
57
57
|
// make sure tag in front of toggle
|
|
58
58
|
z-index: @zindex-picker-toggle + 1;
|
|
@@ -60,6 +60,10 @@
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
.rs-picker-tag-list {
|
|
64
|
+
display: contents;
|
|
65
|
+
}
|
|
66
|
+
|
|
63
67
|
.rs-plaintext .rs-tag {
|
|
64
68
|
margin-left: 6px;
|
|
65
69
|
margin-bottom: 6px;
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
|
|
193
193
|
// node children
|
|
194
194
|
.rs-tree-node-children {
|
|
195
|
-
> .rs-tree-
|
|
195
|
+
> .rs-tree-group {
|
|
196
196
|
position: relative;
|
|
197
197
|
display: none;
|
|
198
198
|
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
border-left: 1px solid rgba(0, 0, 0, 0.1);
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
.rs-picker-
|
|
214
|
+
.rs-picker-popup {
|
|
215
215
|
&.rs-tree-menu {
|
|
216
216
|
padding-top: @picker-menu-padding;
|
|
217
217
|
|
package/cjs/@types/common.d.ts
CHANGED
|
@@ -77,6 +77,14 @@ export interface PickerBaseProps<LocaleType = any> extends WithAsProps, Animatio
|
|
|
77
77
|
onOpen?: () => void;
|
|
78
78
|
/** Called when Modal is closed */
|
|
79
79
|
onClose?: () => void;
|
|
80
|
+
/**
|
|
81
|
+
* Called when the component is focused.
|
|
82
|
+
*/
|
|
83
|
+
onFocus?: React.FocusEventHandler<any>;
|
|
84
|
+
/**
|
|
85
|
+
* Called when the component is blurred.
|
|
86
|
+
*/
|
|
87
|
+
onBlur?: React.FocusEventHandler<any>;
|
|
80
88
|
/** Custom render extra footer */
|
|
81
89
|
renderExtraFooter?: () => React.ReactNode;
|
|
82
90
|
}
|
|
@@ -11,12 +11,12 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
13
13
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
14
|
-
var _Input = _interopRequireDefault(require("../Input"));
|
|
15
14
|
var _utils = require("../utils");
|
|
16
15
|
var _utils2 = require("../Animation/utils");
|
|
17
16
|
var _Picker = require("../Picker");
|
|
18
17
|
var _utils3 = require("./utils");
|
|
19
18
|
var _Plaintext = _interopRequireDefault(require("../Plaintext"));
|
|
19
|
+
var _Combobox = _interopRequireDefault(require("./Combobox"));
|
|
20
20
|
/**
|
|
21
21
|
* Autocomplete function of input field.
|
|
22
22
|
* @see https://rsuitejs.com/components/auto-complete
|
|
@@ -78,6 +78,7 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
78
78
|
// Used to hover the focuse item when trigger `onKeydown`
|
|
79
79
|
var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {
|
|
80
80
|
data: datalist,
|
|
81
|
+
focusToOption: false,
|
|
81
82
|
callback: onMenuFocus,
|
|
82
83
|
target: function target() {
|
|
83
84
|
return overlay.current;
|
|
@@ -160,7 +161,7 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
160
161
|
var _partitionHTMLProps = (0, _utils.partitionHTMLProps)((0, _omit.default)(rest, _Picker.pickTriggerPropKeys)),
|
|
161
162
|
htmlInputProps = _partitionHTMLProps[0],
|
|
162
163
|
restProps = _partitionHTMLProps[1];
|
|
163
|
-
var
|
|
164
|
+
var renderPopup = function renderPopup(positionProps, speakerRef) {
|
|
164
165
|
var left = positionProps.left,
|
|
165
166
|
top = positionProps.top,
|
|
166
167
|
className = positionProps.className;
|
|
@@ -168,18 +169,17 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
168
169
|
left: left,
|
|
169
170
|
top: top
|
|
170
171
|
};
|
|
171
|
-
var menu = /*#__PURE__*/_react.default.createElement(_Picker.
|
|
172
|
-
id: id ? id + "-listbox" : undefined,
|
|
172
|
+
var menu = /*#__PURE__*/_react.default.createElement(_Picker.Listbox, {
|
|
173
173
|
classPrefix: "auto-complete-menu",
|
|
174
|
-
|
|
175
|
-
|
|
174
|
+
listItemClassPrefix: "auto-complete-item",
|
|
175
|
+
listItemAs: _Picker.ListItem,
|
|
176
176
|
focusItemValue: focusItemValue,
|
|
177
177
|
onSelect: handleItemSelect,
|
|
178
178
|
renderMenuItem: renderMenuItem,
|
|
179
179
|
data: items,
|
|
180
180
|
className: menuClassName
|
|
181
181
|
});
|
|
182
|
-
return /*#__PURE__*/_react.default.createElement(_Picker.
|
|
182
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
|
|
183
183
|
ref: (0, _utils.mergeRefs)(overlay, speakerRef),
|
|
184
184
|
style: styles,
|
|
185
185
|
className: className,
|
|
@@ -194,23 +194,26 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
194
194
|
localeKey: "unfilled"
|
|
195
195
|
}, typeof value === 'undefined' ? defaultValue : value);
|
|
196
196
|
}
|
|
197
|
+
var expanded = open || focus && hasItems;
|
|
197
198
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
199
|
+
id: id,
|
|
198
200
|
ref: trigger,
|
|
199
201
|
placement: placement,
|
|
200
202
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
201
203
|
trigger: ['click', 'focus'],
|
|
202
|
-
open:
|
|
203
|
-
speaker:
|
|
204
|
+
open: expanded,
|
|
205
|
+
speaker: renderPopup
|
|
204
206
|
}, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
205
207
|
className: classes,
|
|
206
208
|
style: style,
|
|
207
209
|
ref: root
|
|
208
|
-
}, restProps), /*#__PURE__*/_react.default.createElement(
|
|
209
|
-
id: id,
|
|
210
|
+
}, restProps), /*#__PURE__*/_react.default.createElement(_Combobox.default, (0, _extends2.default)({}, htmlInputProps, {
|
|
210
211
|
disabled: disabled,
|
|
211
212
|
value: value,
|
|
212
213
|
size: size,
|
|
213
214
|
readOnly: readOnly,
|
|
215
|
+
expanded: expanded,
|
|
216
|
+
focusItemValue: focusItemValue,
|
|
214
217
|
onBlur: handleInputBlur,
|
|
215
218
|
onFocus: handleInputFocus,
|
|
216
219
|
onChange: handleChange,
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type InputProps } from '../Input';
|
|
3
|
+
interface ComboboxProps extends InputProps {
|
|
4
|
+
expanded?: boolean;
|
|
5
|
+
focusItemValue?: string | null;
|
|
6
|
+
}
|
|
7
|
+
declare const Combobox: React.ForwardRefExoticComponent<ComboboxProps & React.RefAttributes<HTMLInputElement>>;
|
|
8
|
+
export default Combobox;
|
|
@@ -0,0 +1,31 @@
|
|
|
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 _Picker = require("../Picker");
|
|
11
|
+
var _Input = _interopRequireDefault(require("../Input"));
|
|
12
|
+
var Combobox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
13
|
+
var _useCombobox = (0, _Picker.useCombobox)(),
|
|
14
|
+
id = _useCombobox.id,
|
|
15
|
+
popupType = _useCombobox.popupType;
|
|
16
|
+
var expanded = props.expanded,
|
|
17
|
+
focusItemValue = props.focusItemValue,
|
|
18
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["expanded", "focusItemValue"]);
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({
|
|
20
|
+
role: "combobox",
|
|
21
|
+
"aria-autocomplete": "list",
|
|
22
|
+
"aria-haspopup": popupType,
|
|
23
|
+
"aria-expanded": expanded,
|
|
24
|
+
"aria-activedescendant": focusItemValue ? id + "-opt-" + focusItemValue : undefined,
|
|
25
|
+
autoComplete: "off",
|
|
26
|
+
id: id,
|
|
27
|
+
ref: ref
|
|
28
|
+
}, rest));
|
|
29
|
+
});
|
|
30
|
+
var _default = Combobox;
|
|
31
|
+
exports.default = _default;
|
|
@@ -68,42 +68,42 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
68
68
|
var calendarDate = (0, _react.useMemo)(function () {
|
|
69
69
|
return (0, _dateUtils.isValid)(calendarDateProp) ? calendarDateProp : new Date();
|
|
70
70
|
}, [calendarDateProp]);
|
|
71
|
-
var isDisabledDate = (0,
|
|
71
|
+
var isDisabledDate = (0, _utils.useEventCallback)(function (date) {
|
|
72
72
|
var _disabledDate;
|
|
73
73
|
return (_disabledDate = disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date)) !== null && _disabledDate !== void 0 ? _disabledDate : false;
|
|
74
|
-
}
|
|
74
|
+
});
|
|
75
75
|
var isTimeDisabled = function isTimeDisabled(date) {
|
|
76
76
|
return (0, _dateUtils.disabledTime)(props, date);
|
|
77
77
|
};
|
|
78
|
-
var handleMoveForward = (0,
|
|
78
|
+
var handleMoveForward = (0, _utils.useEventCallback)(function () {
|
|
79
79
|
onMoveForward === null || onMoveForward === void 0 ? void 0 : onMoveForward((0, _dateUtils.addMonths)(calendarDate, 1));
|
|
80
|
-
}
|
|
81
|
-
var handleMoveBackward = (0,
|
|
80
|
+
});
|
|
81
|
+
var handleMoveBackward = (0, _utils.useEventCallback)(function () {
|
|
82
82
|
onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward((0, _dateUtils.addMonths)(calendarDate, -1));
|
|
83
|
-
}
|
|
83
|
+
});
|
|
84
84
|
|
|
85
85
|
// It is displayed as the month to be selected.
|
|
86
|
-
var toggleMonthView = (0,
|
|
86
|
+
var toggleMonthView = (0, _utils.useEventCallback)(function () {
|
|
87
87
|
if (calendarState === _useCalendarState2.CalendarState.MONTH) {
|
|
88
88
|
reset();
|
|
89
89
|
} else {
|
|
90
90
|
openMonth();
|
|
91
91
|
}
|
|
92
92
|
onToggleMonthDropdown === null || onToggleMonthDropdown === void 0 ? void 0 : onToggleMonthDropdown(calendarState !== _useCalendarState2.CalendarState.MONTH);
|
|
93
|
-
}
|
|
93
|
+
});
|
|
94
94
|
|
|
95
95
|
// It is displayed as a time to be selected.
|
|
96
|
-
var toggleTimeView = (0,
|
|
96
|
+
var toggleTimeView = (0, _utils.useEventCallback)(function () {
|
|
97
97
|
if (calendarState === _useCalendarState2.CalendarState.TIME) {
|
|
98
98
|
reset();
|
|
99
99
|
} else {
|
|
100
100
|
openTime();
|
|
101
101
|
}
|
|
102
102
|
onToggleTimeDropdown === null || onToggleTimeDropdown === void 0 ? void 0 : onToggleTimeDropdown(calendarState !== _useCalendarState2.CalendarState.TIME);
|
|
103
|
-
}
|
|
104
|
-
var handleCloseDropdown = (0,
|
|
103
|
+
});
|
|
104
|
+
var handleCloseDropdown = (0, _utils.useEventCallback)(function () {
|
|
105
105
|
return reset();
|
|
106
|
-
}
|
|
106
|
+
});
|
|
107
107
|
var renderDate = (0, _dateUtils.shouldRenderDate)(format);
|
|
108
108
|
var renderTime = (0, _dateUtils.shouldRenderTime)(format);
|
|
109
109
|
var renderMonth = (0, _dateUtils.shouldRenderMonth)(format);
|
|
@@ -111,40 +111,38 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
111
111
|
var onlyShowMonth = renderMonth && !renderDate && !renderTime;
|
|
112
112
|
var showTime = calendarState === _useCalendarState2.CalendarState.TIME || onlyShowTime;
|
|
113
113
|
var showMonth = calendarState === _useCalendarState2.CalendarState.MONTH || onlyShowMonth;
|
|
114
|
-
var inSameThisMonthDate = (0,
|
|
114
|
+
var inSameThisMonthDate = (0, _utils.useEventCallback)(function (date) {
|
|
115
115
|
return (0, _dateUtils.isSameMonth)(calendarDate, date);
|
|
116
|
-
}
|
|
116
|
+
});
|
|
117
117
|
var calendarClasses = merge(className, withClassPrefix({
|
|
118
118
|
'time-view': showTime,
|
|
119
119
|
'month-view': showMonth,
|
|
120
120
|
'show-week-numbers': showWeekNumbers
|
|
121
121
|
}));
|
|
122
122
|
var timeDropdownProps = (0, _pick.default)(rest, _dateUtils.calendarOnlyProps);
|
|
123
|
-
var handleChangeMonth = (0,
|
|
123
|
+
var handleChangeMonth = (0, _utils.useEventCallback)(function (date, event) {
|
|
124
124
|
reset();
|
|
125
125
|
onChangeMonth === null || onChangeMonth === void 0 ? void 0 : onChangeMonth(date, event);
|
|
126
|
-
}
|
|
127
|
-
var contextValue =
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
};
|
|
147
|
-
}, [calendarDate, dateRange, format, handleChangeMonth, hoverRangeValue, inSameThisMonthDate, inline, isDisabledDate, isoWeek, targetId, locale, onChangeTime, onMouseMove, onSelect, cellClassName, renderCell, showWeekNumbers]);
|
|
126
|
+
});
|
|
127
|
+
var contextValue = {
|
|
128
|
+
date: calendarDate,
|
|
129
|
+
dateRange: dateRange,
|
|
130
|
+
disabledDate: isDisabledDate,
|
|
131
|
+
format: format,
|
|
132
|
+
hoverRangeValue: hoverRangeValue,
|
|
133
|
+
inSameMonth: inSameThisMonthDate,
|
|
134
|
+
isoWeek: isoWeek,
|
|
135
|
+
targetId: targetId,
|
|
136
|
+
locale: locale,
|
|
137
|
+
onChangeMonth: handleChangeMonth,
|
|
138
|
+
onChangeTime: onChangeTime,
|
|
139
|
+
onMouseMove: onMouseMove,
|
|
140
|
+
onSelect: onSelect,
|
|
141
|
+
cellClassName: cellClassName,
|
|
142
|
+
renderCell: renderCell,
|
|
143
|
+
showWeekNumbers: showWeekNumbers,
|
|
144
|
+
inline: inline
|
|
145
|
+
};
|
|
148
146
|
return /*#__PURE__*/_react.default.createElement(_CalendarContext.CalendarProvider, {
|
|
149
147
|
value: contextValue
|
|
150
148
|
}, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
package/cjs/Cascader/Cascader.js
CHANGED
|
@@ -15,7 +15,7 @@ var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
|
15
15
|
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
16
16
|
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
|
|
17
17
|
var _shallowEqual = _interopRequireDefault(require("../utils/shallowEqual"));
|
|
18
|
-
var
|
|
18
|
+
var _TreeView = _interopRequireDefault(require("./TreeView"));
|
|
19
19
|
var _treeUtils = require("../utils/treeUtils");
|
|
20
20
|
var _utils = require("./utils");
|
|
21
21
|
var _utils2 = require("../utils");
|
|
@@ -355,12 +355,12 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
355
355
|
}, node[labelKey]);
|
|
356
356
|
});
|
|
357
357
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
358
|
+
role: "treeitem",
|
|
358
359
|
key: key,
|
|
359
360
|
"aria-disabled": disabled,
|
|
360
361
|
"data-key": item[valueKey],
|
|
361
362
|
className: itemClasses,
|
|
362
363
|
tabIndex: -1,
|
|
363
|
-
role: "option",
|
|
364
364
|
onClick: function onClick(event) {
|
|
365
365
|
if (!disabled) {
|
|
366
366
|
handleSearchRowSelect(item, nodes, event);
|
|
@@ -376,12 +376,12 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
376
376
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
377
377
|
className: prefix('cascader-search-panel'),
|
|
378
378
|
"data-layer": 0,
|
|
379
|
-
role: "
|
|
379
|
+
role: "tree"
|
|
380
380
|
}, items.length ? items.map(renderSearchRow) : /*#__PURE__*/_react.default.createElement("div", {
|
|
381
381
|
className: prefix('none')
|
|
382
382
|
}, locale.noResultsText));
|
|
383
383
|
};
|
|
384
|
-
var
|
|
384
|
+
var renderTreeView = function renderTreeView(positionProps, speakerRef) {
|
|
385
385
|
var _ref2 = positionProps || {},
|
|
386
386
|
left = _ref2.left,
|
|
387
387
|
top = _ref2.top,
|
|
@@ -393,7 +393,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
393
393
|
var classes = merge(className, menuClassName, prefix('cascader-menu', {
|
|
394
394
|
inline: inline
|
|
395
395
|
}));
|
|
396
|
-
return /*#__PURE__*/_react.default.createElement(_Picker.
|
|
396
|
+
return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
|
|
397
397
|
ref: (0, _utils2.mergeRefs)(overlay, speakerRef),
|
|
398
398
|
className: classes,
|
|
399
399
|
style: styles,
|
|
@@ -404,8 +404,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
404
404
|
onChange: handleSearch,
|
|
405
405
|
value: searchKeyword,
|
|
406
406
|
inputRef: searchInput
|
|
407
|
-
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(
|
|
408
|
-
id: id ? id + "-listbox" : undefined,
|
|
407
|
+
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_TreeView.default, {
|
|
409
408
|
menuWidth: menuWidth,
|
|
410
409
|
menuHeight: menuHeight,
|
|
411
410
|
disabledItemValues: disabledItemValues,
|
|
@@ -458,21 +457,22 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
458
457
|
usedClassNamePropKeys = _usePickerClassName[1]; // TODO: bad api design
|
|
459
458
|
// consider an isolated Menu component
|
|
460
459
|
if (inline) {
|
|
461
|
-
return
|
|
460
|
+
return renderTreeView();
|
|
462
461
|
}
|
|
463
462
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
463
|
+
id: id,
|
|
464
|
+
popupType: "tree",
|
|
464
465
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
465
466
|
ref: trigger,
|
|
466
467
|
placement: placement,
|
|
467
468
|
onEntered: (0, _utils2.createChainedFunction)(handleEntered, onEnter),
|
|
468
469
|
onExited: (0, _utils2.createChainedFunction)(handleExited, onExited),
|
|
469
|
-
speaker:
|
|
470
|
+
speaker: renderTreeView
|
|
470
471
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
471
472
|
className: classes,
|
|
472
473
|
style: style,
|
|
473
474
|
ref: root
|
|
474
475
|
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
475
|
-
id: id,
|
|
476
476
|
ref: target,
|
|
477
477
|
as: toggleAs,
|
|
478
478
|
appearance: appearance,
|
|
@@ -483,7 +483,8 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
483
483
|
hasValue: hasValue,
|
|
484
484
|
active: active,
|
|
485
485
|
placement: placement,
|
|
486
|
-
inputValue: value !== null && value !== void 0 ? value : ''
|
|
486
|
+
inputValue: value !== null && value !== void 0 ? value : '',
|
|
487
|
+
focusItemValue: focusItemValue
|
|
487
488
|
}), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
|
|
488
489
|
});
|
|
489
490
|
Cascader.displayName = 'Cascader';
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
2
|
import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
4
3
|
import { ValueType } from './Cascader';
|
|
5
4
|
declare type SetLike<T = unknown> = {
|
|
6
5
|
has(value: T): boolean;
|
|
7
6
|
};
|
|
8
|
-
export interface
|
|
7
|
+
export interface TreeViewProps extends Omit<WithAsProps, 'classPrefix'> {
|
|
9
8
|
classPrefix: string;
|
|
10
9
|
disabledItemValues: ValueType[];
|
|
11
10
|
activeItemValue?: ValueType | null;
|
|
@@ -21,21 +20,5 @@ export interface DropdownMenuProps extends Omit<WithAsProps, 'classPrefix'> {
|
|
|
21
20
|
renderMenu?: (items: readonly ItemDataType[], menu: React.ReactNode, parentNode?: ItemDataType, layer?: number) => React.ReactNode;
|
|
22
21
|
onSelect?: (node: ItemDataType, cascadePaths: ItemDataType[], isLeafNode: boolean, event: React.MouseEvent) => void;
|
|
23
22
|
}
|
|
24
|
-
declare const
|
|
25
|
-
export
|
|
26
|
-
classPrefix: PropTypes.Requireable<string>;
|
|
27
|
-
disabledItemValues: PropTypes.Requireable<any[]>;
|
|
28
|
-
activeItemValue: PropTypes.Requireable<any>;
|
|
29
|
-
childrenKey: PropTypes.Requireable<string>;
|
|
30
|
-
valueKey: PropTypes.Requireable<string>;
|
|
31
|
-
labelKey: PropTypes.Requireable<string>;
|
|
32
|
-
menuWidth: PropTypes.Requireable<number>;
|
|
33
|
-
menuHeight: PropTypes.Requireable<string | number>;
|
|
34
|
-
className: PropTypes.Requireable<string>;
|
|
35
|
-
renderMenuItem: PropTypes.Requireable<(...args: any[]) => any>;
|
|
36
|
-
renderMenu: PropTypes.Requireable<(...args: any[]) => any>;
|
|
37
|
-
onSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
38
|
-
cascadeData: PropTypes.Requireable<any[]>;
|
|
39
|
-
cascadePaths: PropTypes.Requireable<any[]>;
|
|
40
|
-
};
|
|
41
|
-
export default DropdownMenu;
|
|
23
|
+
declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
|
|
24
|
+
export default TreeView;
|