rsuite 5.49.0 → 5.50.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/Cascader/styles/index.less +4 -4
- package/DateRangePicker/styles/index.less +15 -5
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/Picker/styles/index.less +31 -24
- package/Picker/styles/mixin.less +17 -13
- package/README.md +4 -4
- package/TagInput/styles/index.less +1 -1
- package/cjs/AutoComplete/AutoComplete.js +25 -26
- package/cjs/Calendar/Calendar.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.d.ts +5 -1
- package/cjs/Cascader/Cascader.js +46 -48
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +33 -36
- package/cjs/CheckTreePicker/CheckTreePicker.js +61 -64
- package/cjs/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +2 -4
- package/cjs/DatePicker/Toolbar.js +2 -1
- package/cjs/DateRangeInput/DateRangeInput.js +2 -2
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +239 -201
- package/cjs/DateRangePicker/types.d.ts +11 -3
- package/cjs/DateRangePicker/utils.d.ts +2 -1
- package/cjs/DateRangePicker/utils.js +7 -5
- package/cjs/FormControl/FormControl.d.ts +11 -1
- package/cjs/FormControl/FormControl.js +6 -5
- package/cjs/InputPicker/InputPicker.js +62 -63
- package/cjs/MultiCascader/MultiCascader.js +40 -42
- package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/cjs/Picker/PickerToggle.d.ts +17 -22
- package/cjs/Picker/PickerToggle.js +52 -177
- package/cjs/Picker/index.d.ts +3 -0
- package/cjs/Picker/index.js +10 -1
- package/cjs/Picker/usePickerRef.d.ts +3 -1
- package/cjs/Picker/usePickerRef.js +13 -7
- package/cjs/Picker/utils.d.ts +5 -9
- package/cjs/Picker/utils.js +22 -89
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
- package/cjs/SelectPicker/SelectPicker.js +39 -42
- package/cjs/TreePicker/TreePicker.js +72 -75
- package/cjs/utils/constants.d.ts +2 -1
- package/cjs/utils/constants.js +1 -0
- package/cjs/utils/dateUtils.d.ts +0 -1
- package/cjs/utils/dateUtils.js +0 -6
- package/cjs/utils/getStringLength.d.ts +2 -0
- package/cjs/utils/getStringLength.js +18 -0
- package/cjs/utils/index.d.ts +1 -0
- package/cjs/utils/index.js +4 -1
- package/dist/rsuite-no-reset-rtl.css +92 -69
- 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 +92 -69
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +92 -69
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +92 -69
- package/dist/rsuite.js +67 -46
- 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/AutoComplete/AutoComplete.js +28 -29
- package/esm/Calendar/Calendar.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.d.ts +5 -1
- package/esm/Cascader/Cascader.js +49 -51
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +36 -39
- package/esm/CheckTreePicker/CheckTreePicker.js +64 -67
- package/esm/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +1 -3
- package/esm/DatePicker/Toolbar.js +2 -1
- package/esm/DateRangeInput/DateRangeInput.js +2 -2
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +241 -203
- package/esm/DateRangePicker/types.d.ts +11 -3
- package/esm/DateRangePicker/utils.d.ts +2 -1
- package/esm/DateRangePicker/utils.js +7 -5
- package/esm/FormControl/FormControl.d.ts +11 -1
- package/esm/FormControl/FormControl.js +4 -3
- package/esm/InputPicker/InputPicker.js +64 -65
- package/esm/MultiCascader/MultiCascader.js +43 -45
- package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/esm/Picker/PickerToggle.d.ts +17 -22
- package/esm/Picker/PickerToggle.js +54 -179
- package/esm/Picker/index.d.ts +3 -0
- package/esm/Picker/index.js +3 -0
- package/esm/Picker/usePickerRef.d.ts +3 -1
- package/esm/Picker/usePickerRef.js +13 -8
- package/esm/Picker/utils.d.ts +5 -9
- package/esm/Picker/utils.js +24 -90
- package/esm/SelectPicker/SelectPicker.d.ts +2 -2
- package/esm/SelectPicker/SelectPicker.js +42 -45
- package/esm/TreePicker/TreePicker.js +75 -78
- package/esm/utils/constants.d.ts +2 -1
- package/esm/utils/constants.js +1 -0
- package/esm/utils/dateUtils.d.ts +0 -1
- package/esm/utils/dateUtils.js +0 -5
- package/esm/utils/getStringLength.d.ts +2 -0
- package/esm/utils/getStringLength.js +13 -0
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/index.js +1 -0
- package/package.json +1 -1
- package/styles/mixins/combobox.less +10 -0
- /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
- /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# [5.50.0](https://github.com/rsuite/rsuite/compare/v5.49.0...v5.50.0) (2024-01-12)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- typo in Next.js guide ([#3555](https://github.com/rsuite/rsuite/issues/3555)) ([77d60cf](https://github.com/rsuite/rsuite/commit/77d60cfeb27e3e52b4003d72114e5164b275a3d2))
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- **cra:** supports using CRA to install javascript template ([#3538](https://github.com/rsuite/rsuite/issues/3538)) ([1b697f4](https://github.com/rsuite/rsuite/commit/1b697f4a4f61a7943351c5ca0f46a484c9ea1ac6))
|
|
10
|
+
- **cra:** supports using CRA to install typescript template ([#3540](https://github.com/rsuite/rsuite/issues/3540)) ([bbe3609](https://github.com/rsuite/rsuite/commit/bbe3609d4492e9186e32309f6c6ee6101d5eb83c))
|
|
11
|
+
- **DateRangePicker:** supports date selection by using keyboard ([#3554](https://github.com/rsuite/rsuite/issues/3554)) ([2c8d197](https://github.com/rsuite/rsuite/commit/2c8d1974e018903b3a1b874566b31c751d207493))
|
|
12
|
+
- **FormControl:** added support for `name` setting path of object ([#3511](https://github.com/rsuite/rsuite/issues/3511)) ([03d5396](https://github.com/rsuite/rsuite/commit/03d5396b8a23d88907be9d1864776d61a0a3b963))
|
|
13
|
+
|
|
1
14
|
# [5.49.0](https://github.com/rsuite/rsuite/compare/v5.48.1...v5.49.0) (2023-12-29)
|
|
2
15
|
|
|
3
16
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
@import '../../styles/common';
|
|
2
|
-
@import '../../
|
|
3
|
-
@import '../../styles/mixins/listbox';
|
|
1
|
+
@import '../../styles/common.less';
|
|
2
|
+
@import '../../styles/mixins/combobox.less';
|
|
3
|
+
@import '../../styles/mixins/listbox.less';
|
|
4
4
|
|
|
5
5
|
// Cascader
|
|
6
6
|
// ----------------------
|
|
@@ -123,5 +123,5 @@
|
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
.rs-picker-cascader-menu-caret {
|
|
126
|
-
.
|
|
126
|
+
.combobox-indicator-icon();
|
|
127
127
|
}
|
|
@@ -4,14 +4,24 @@
|
|
|
4
4
|
@import '../../DatePicker/styles/index';
|
|
5
5
|
@import '../../Calendar/styles/index';
|
|
6
6
|
|
|
7
|
-
// Change the <caret/> & <clean/> vertical position make it align middle.
|
|
8
7
|
.rs-picker-daterange {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
.rs-input-group-addon {
|
|
9
|
+
color: var(--rs-text-secondary);
|
|
10
|
+
|
|
11
|
+
.rs-btn-close {
|
|
12
|
+
padding: 0;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&.rs-picker-subtle {
|
|
17
|
+
.rs-input-group {
|
|
18
|
+
border-color: transparent;
|
|
13
19
|
}
|
|
14
20
|
}
|
|
21
|
+
|
|
22
|
+
> .rs-input-group.rs-input-group-inside .rs-input {
|
|
23
|
+
padding-right: 0;
|
|
24
|
+
}
|
|
15
25
|
}
|
|
16
26
|
|
|
17
27
|
// Date range Picker
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
@import '../../styles/common';
|
|
2
|
-
@import '../../styles/mixins/menu';
|
|
3
|
-
@import '
|
|
1
|
+
@import '../../styles/common.less';
|
|
2
|
+
@import '../../styles/mixins/menu.less';
|
|
3
|
+
@import '../../styles/mixins/combobox.less';
|
|
4
|
+
@import 'mixin.less';
|
|
4
5
|
@import '../../Button/styles/index.less';
|
|
5
6
|
|
|
6
7
|
//
|
|
@@ -8,7 +9,7 @@
|
|
|
8
9
|
// --------------------------------------------------
|
|
9
10
|
|
|
10
11
|
.rs-dropdown-toggle-caret {
|
|
11
|
-
.
|
|
12
|
+
.combobox-indicator-icon();
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
// The dropdown wrapper (div)
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
.dropdown-toggle-caret-common(@right:@padding-x) {
|
|
2
|
-
display: flex;
|
|
3
|
-
align-items: center;
|
|
4
|
-
margin-left: 2px;
|
|
5
|
-
position: absolute;
|
|
6
|
-
top: @padding-y;
|
|
7
|
-
right: @right;
|
|
8
|
-
height: @line-height-computed;
|
|
9
|
-
font-size: 12px;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
1
|
.dropdown-toggle-caret-size(@vertical,@horizontal,@caret-size) {
|
|
13
2
|
padding-right: @horizontal+ @dropdown-caret-width+ @dropdown-caret-padding !important;
|
|
14
3
|
|
package/Picker/styles/index.less
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
@import '../../styles/common';
|
|
2
|
-
@import '../../styles/mixins/listbox';
|
|
3
|
-
@import
|
|
4
|
-
@import '../../
|
|
5
|
-
@import 'mixin';
|
|
1
|
+
@import '../../styles/common.less';
|
|
2
|
+
@import '../../styles/mixins/listbox.less';
|
|
3
|
+
@import '../../styles/mixins/combobox.less';
|
|
4
|
+
@import (reference) '../../Button/styles/index.less';
|
|
5
|
+
@import '../../Form/styles/mixin.less';
|
|
6
|
+
@import 'mixin.less';
|
|
6
7
|
|
|
7
8
|
//
|
|
8
9
|
// Pickers
|
|
@@ -252,31 +253,37 @@
|
|
|
252
253
|
}
|
|
253
254
|
}
|
|
254
255
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
.
|
|
256
|
+
.rs-picker-toggle-indicator {
|
|
257
|
+
// Picker clear button
|
|
258
|
+
.rs-picker-clean {
|
|
259
|
+
.combobox-indicator-icon(@picker-toggle-clean-right);
|
|
258
260
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
261
|
+
background: inherit;
|
|
262
|
+
color: var(--rs-text-secondary);
|
|
263
|
+
transition: 0.2s color linear;
|
|
264
|
+
cursor: pointer;
|
|
263
265
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
266
|
+
&.rs-btn-close {
|
|
267
|
+
padding: 4px 0;
|
|
268
|
+
}
|
|
267
269
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
270
|
+
.rs-@{date-picker-prefix} &,
|
|
271
|
+
.rs-@{date-range-picker-prefix} & {
|
|
272
|
+
right: (@picker-toggle-clean-right + @picker-item-content-padding-vertical);
|
|
273
|
+
}
|
|
271
274
|
}
|
|
272
|
-
}
|
|
273
275
|
|
|
274
|
-
// Picker toggle caret
|
|
275
|
-
.rs-picker-
|
|
276
|
-
|
|
277
|
-
|
|
276
|
+
// Picker toggle caret
|
|
277
|
+
.rs-picker-caret-icon {
|
|
278
|
+
// Extend Dropdown toggle caret style
|
|
279
|
+
.combobox-indicator-icon();
|
|
278
280
|
|
|
279
|
-
|
|
281
|
+
color: var(--rs-text-secondary);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.rs-picker-loader {
|
|
285
|
+
.combobox-indicator-icon();
|
|
286
|
+
}
|
|
280
287
|
}
|
|
281
288
|
|
|
282
289
|
// Picker Menu
|
package/Picker/styles/mixin.less
CHANGED
|
@@ -103,13 +103,15 @@
|
|
|
103
103
|
padding-right: (@padding-horizontal + @dropdown-caret-width + @dropdown-caret-padding);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
.rs-picker-toggle-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
106
|
+
.rs-picker-toggle-indicator {
|
|
107
|
+
.rs-picker-caret-icon,
|
|
108
|
+
.rs-picker-clean {
|
|
109
|
+
top: @padding-vertical;
|
|
110
|
+
right: @padding-horizontal;
|
|
111
|
+
|
|
112
|
+
.rs-picker-default & {
|
|
113
|
+
top: @padding-vertical - @picker-default-toggle-border-width;
|
|
114
|
+
}
|
|
113
115
|
}
|
|
114
116
|
}
|
|
115
117
|
}
|
|
@@ -144,13 +146,15 @@
|
|
|
144
146
|
|
|
145
147
|
padding-right: (@padding-horizontal + @calendar-caret-width + @dropdown-caret-padding);
|
|
146
148
|
|
|
147
|
-
.rs-picker-toggle-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
.rs-picker-toggle-indicator {
|
|
150
|
+
.rs-picker-clean,
|
|
151
|
+
.rs-picker-caret-icon {
|
|
152
|
+
top: @top;
|
|
153
|
+
right: @padding-horizontal;
|
|
151
154
|
|
|
152
|
-
|
|
153
|
-
|
|
155
|
+
.rs-picker-subtle & {
|
|
156
|
+
top: @top - @picker-default-toggle-border-width;
|
|
157
|
+
}
|
|
154
158
|
}
|
|
155
159
|
}
|
|
156
160
|
}
|
package/README.md
CHANGED
|
@@ -96,8 +96,8 @@ You can go through [full documentation][rsuite-doc-guide] or start with followin
|
|
|
96
96
|
- [Use in Electron][demo-electron]
|
|
97
97
|
- [Use in Flow][demo-flow-app]
|
|
98
98
|
- [Use in TypeScript][demo-typescript-app]
|
|
99
|
-
- [Use in Next.js][demo-nextjs]
|
|
100
|
-
- [Use in Next.js
|
|
99
|
+
- [Use in Next.js (App)][demo-nextjs-app]
|
|
100
|
+
- [Use in Next.js (Pages)][demo-nextjs-pages]
|
|
101
101
|
- [Use in UmiJS][demo-umi-app]
|
|
102
102
|
- [Use in Snowpack][demo-snowpack]
|
|
103
103
|
- [Use in Vite][demo-vite]
|
|
@@ -186,11 +186,11 @@ React Suite is [MIT licensed][license]. Copyright (c) 2016-present, HYPERS.
|
|
|
186
186
|
[demo-multiple-themes]: https://github.com/rsuite/rsuite/tree/main/examples/custom-multiple-themes
|
|
187
187
|
[demo-flow-app]: https://github.com/rsuite/rsuite/tree/main/examples/with-flow
|
|
188
188
|
[demo-typescript-app]: https://github.com/rsuite/rsuite/tree/main/examples/with-typescript
|
|
189
|
-
[demo-nextjs]: https://github.com/rsuite/rsuite/tree/main/examples/with-nextjs
|
|
189
|
+
[demo-nextjs-app]: https://github.com/rsuite/rsuite/tree/main/examples/with-nextjs-app
|
|
190
|
+
[demo-nextjs-pages]: https://github.com/rsuite/rsuite/tree/main/examples/with-nextjs-pages
|
|
190
191
|
[demo-umi-app]: https://github.com/rsuite/rsuite/tree/main/examples/with-umi
|
|
191
192
|
[demo-rtlcss]: https://github.com/rsuite/rsuite/tree/main/examples/with-rtlcss
|
|
192
193
|
[demo-postcss-rtl]: https://github.com/rsuite/rsuite/tree/main/examples/with-postcss-rtl
|
|
193
|
-
[demo-nextjs-typescript]: https://github.com/rsuite/rsuite/tree/main/examples/with-nextjs-typescript
|
|
194
194
|
[demo-snowpack]: https://github.com/rsuite/rsuite/tree/main/examples/with-snowpack
|
|
195
195
|
[demo-vite]: https://github.com/rsuite/rsuite/tree/main/examples/with-vite
|
|
196
196
|
[codecov]: https://codecov.io/gh/rsuite/rsuite
|
|
@@ -69,7 +69,10 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
69
69
|
setFocus = _useState[1];
|
|
70
70
|
var items = (datalist === null || datalist === void 0 ? void 0 : datalist.filter((0, _utils3.shouldDisplay)(filterBy, value))) || [];
|
|
71
71
|
var hasItems = items.length > 0;
|
|
72
|
-
var
|
|
72
|
+
var _usePickerRef = (0, _Picker.usePickerRef)(ref),
|
|
73
|
+
trigger = _usePickerRef.trigger,
|
|
74
|
+
overlay = _usePickerRef.overlay,
|
|
75
|
+
root = _usePickerRef.root;
|
|
73
76
|
var isMounted = (0, _utils.useIsMounted)();
|
|
74
77
|
|
|
75
78
|
// Used to hover the focuse item when trigger `onKeydown`
|
|
@@ -77,14 +80,14 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
77
80
|
data: datalist,
|
|
78
81
|
callback: onMenuFocus,
|
|
79
82
|
target: function target() {
|
|
80
|
-
return
|
|
83
|
+
return overlay.current;
|
|
81
84
|
}
|
|
82
85
|
}),
|
|
83
86
|
focusItemValue = _useFocusItemValue.focusItemValue,
|
|
84
87
|
setFocusItemValue = _useFocusItemValue.setFocusItemValue,
|
|
85
88
|
handleKeyDown = _useFocusItemValue.onKeyDown;
|
|
86
89
|
var handleKeyDownEvent = function handleKeyDownEvent(event) {
|
|
87
|
-
if (!
|
|
90
|
+
if (!overlay.current) {
|
|
88
91
|
return;
|
|
89
92
|
}
|
|
90
93
|
(0, _Picker.onMenuKeyDown)(event, {
|
|
@@ -109,29 +112,29 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
109
112
|
}
|
|
110
113
|
handleClose();
|
|
111
114
|
};
|
|
112
|
-
var handleSelect = (0,
|
|
115
|
+
var handleSelect = (0, _utils.useEventCallback)(function (item, event) {
|
|
113
116
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(item.value, item, event);
|
|
114
|
-
}
|
|
115
|
-
var handleChangeValue = (0,
|
|
117
|
+
});
|
|
118
|
+
var handleChangeValue = (0, _utils.useEventCallback)(function (value, event) {
|
|
116
119
|
onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
|
|
117
|
-
}
|
|
120
|
+
});
|
|
118
121
|
var handleChange = function handleChange(value, event) {
|
|
119
122
|
setFocusItemValue('');
|
|
120
123
|
setValue(value);
|
|
121
124
|
setFocus(true);
|
|
122
125
|
handleChangeValue(value, event);
|
|
123
126
|
};
|
|
124
|
-
var handleClose = (0,
|
|
127
|
+
var handleClose = (0, _utils.useEventCallback)(function () {
|
|
125
128
|
if (isMounted()) {
|
|
126
129
|
setFocus(false);
|
|
127
130
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
128
131
|
}
|
|
129
|
-
}
|
|
130
|
-
var handleOpen = (0,
|
|
132
|
+
});
|
|
133
|
+
var handleOpen = (0, _utils.useEventCallback)(function () {
|
|
131
134
|
setFocus(true);
|
|
132
135
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
133
|
-
}
|
|
134
|
-
var handleItemSelect = (0,
|
|
136
|
+
});
|
|
137
|
+
var handleItemSelect = (0, _utils.useEventCallback)(function (nextItemValue, item, event) {
|
|
135
138
|
setValue(nextItemValue);
|
|
136
139
|
setFocusItemValue(nextItemValue);
|
|
137
140
|
handleSelect(item, event);
|
|
@@ -139,29 +142,24 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
139
142
|
handleChangeValue(nextItemValue, event);
|
|
140
143
|
}
|
|
141
144
|
handleClose();
|
|
142
|
-
}
|
|
143
|
-
var handleInputFocus = (0,
|
|
145
|
+
});
|
|
146
|
+
var handleInputFocus = (0, _utils.useEventCallback)(function (event) {
|
|
144
147
|
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
|
|
145
148
|
handleOpen();
|
|
146
|
-
}
|
|
147
|
-
var handleInputBlur = (0,
|
|
149
|
+
});
|
|
150
|
+
var handleInputBlur = (0, _utils.useEventCallback)(function (event) {
|
|
148
151
|
setTimeout(handleClose, 300);
|
|
149
152
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
150
|
-
}
|
|
153
|
+
});
|
|
151
154
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
152
155
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
153
156
|
merge = _useClassNames.merge;
|
|
154
157
|
var classes = merge(className, withClassPrefix({
|
|
155
158
|
disabled: disabled
|
|
156
159
|
}));
|
|
157
|
-
var triggerRef = (0, _react.useRef)(null);
|
|
158
160
|
var _partitionHTMLProps = (0, _utils.partitionHTMLProps)((0, _omit.default)(rest, _Picker.pickTriggerPropKeys)),
|
|
159
161
|
htmlInputProps = _partitionHTMLProps[0],
|
|
160
162
|
restProps = _partitionHTMLProps[1];
|
|
161
|
-
(0, _Picker.usePublicMethods)(ref, {
|
|
162
|
-
triggerRef: triggerRef,
|
|
163
|
-
overlayRef: overlayRef
|
|
164
|
-
});
|
|
165
163
|
var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
|
|
166
164
|
var left = positionProps.left,
|
|
167
165
|
top = positionProps.top,
|
|
@@ -182,11 +180,11 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
182
180
|
className: menuClassName
|
|
183
181
|
});
|
|
184
182
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
|
|
185
|
-
ref: (0, _utils.mergeRefs)(
|
|
183
|
+
ref: (0, _utils.mergeRefs)(overlay, speakerRef),
|
|
186
184
|
style: styles,
|
|
187
185
|
className: className,
|
|
188
186
|
onKeyDown: handleKeyDownEvent,
|
|
189
|
-
target:
|
|
187
|
+
target: trigger,
|
|
190
188
|
autoWidth: menuAutoWidth
|
|
191
189
|
}, renderMenu ? renderMenu(menu) : menu);
|
|
192
190
|
};
|
|
@@ -197,7 +195,7 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
197
195
|
}, typeof value === 'undefined' ? defaultValue : value);
|
|
198
196
|
}
|
|
199
197
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
200
|
-
ref:
|
|
198
|
+
ref: trigger,
|
|
201
199
|
placement: placement,
|
|
202
200
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
203
201
|
trigger: ['click', 'focus'],
|
|
@@ -205,7 +203,8 @@ var AutoComplete = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
205
203
|
speaker: renderDropdownMenu
|
|
206
204
|
}, /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
|
|
207
205
|
className: classes,
|
|
208
|
-
style: style
|
|
206
|
+
style: style,
|
|
207
|
+
ref: root
|
|
209
208
|
}, restProps), /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({}, htmlInputProps, {
|
|
210
209
|
id: id,
|
|
211
210
|
disabled: disabled,
|
|
@@ -7,7 +7,11 @@ export interface CalendarProps extends WithAsProps {
|
|
|
7
7
|
value?: Date;
|
|
8
8
|
/** Default value */
|
|
9
9
|
defaultValue?: Date;
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
12
|
+
*
|
|
13
|
+
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
14
|
+
*/
|
|
11
15
|
isoWeek?: boolean;
|
|
12
16
|
/** Display a compact calendar */
|
|
13
17
|
compact?: boolean;
|
|
@@ -32,7 +32,11 @@ export interface CalendarProps extends WithAsProps, Omit<HTMLAttributes<HTMLDivE
|
|
|
32
32
|
hideSeconds?: (second: number, date: Date) => boolean;
|
|
33
33
|
/** The value that mouse hover on in range selection */
|
|
34
34
|
hoverRangeValue?: [Date, Date];
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
|
|
37
|
+
*
|
|
38
|
+
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
39
|
+
*/
|
|
36
40
|
isoWeek?: boolean;
|
|
37
41
|
/** Limit showing how many years in the future */
|
|
38
42
|
limitEndYear?: number;
|
package/cjs/Cascader/Cascader.js
CHANGED
|
@@ -82,10 +82,12 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
82
82
|
var _useState = (0, _react.useState)(false),
|
|
83
83
|
active = _useState[0],
|
|
84
84
|
setActive = _useState[1];
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
var _usePickerRef = (0, _Picker.usePickerRef)(ref),
|
|
86
|
+
trigger = _usePickerRef.trigger,
|
|
87
|
+
root = _usePickerRef.root,
|
|
88
|
+
target = _usePickerRef.target,
|
|
89
|
+
overlay = _usePickerRef.overlay,
|
|
90
|
+
searchInput = _usePickerRef.searchInput;
|
|
89
91
|
var _ref = (0, _utils2.useControlled)(valueProp, defaultValue),
|
|
90
92
|
value = _ref[0],
|
|
91
93
|
setValue = _ref[1];
|
|
@@ -126,11 +128,6 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
126
128
|
columnsToDisplay = _usePaths.columnsToDisplay,
|
|
127
129
|
pathTowardsActiveItem = _usePaths.pathTowardsActiveItem,
|
|
128
130
|
pathTowardsSelectedItem = _usePaths.pathTowardsSelectedItem;
|
|
129
|
-
(0, _Picker.usePublicMethods)(ref, {
|
|
130
|
-
triggerRef: triggerRef,
|
|
131
|
-
overlayRef: overlayRef,
|
|
132
|
-
targetRef: targetRef
|
|
133
|
-
});
|
|
134
131
|
var _useCustom = (0, _utils2.useCustom)('Picker', overrideLocale),
|
|
135
132
|
locale = _useCustom.locale,
|
|
136
133
|
rtl = _useCustom.rtl;
|
|
@@ -145,7 +142,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
145
142
|
var _useState3 = (0, _react.useState)(''),
|
|
146
143
|
searchKeyword = _useState3[0],
|
|
147
144
|
setSearchKeyword = _useState3[1];
|
|
148
|
-
var someKeyword =
|
|
145
|
+
var someKeyword = function someKeyword(item, keyword) {
|
|
149
146
|
if (item[labelKey].match(new RegExp((0, _utils2.getSafeRegExpString)(keyword || searchKeyword), 'i'))) {
|
|
150
147
|
return true;
|
|
151
148
|
}
|
|
@@ -154,8 +151,8 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
154
151
|
return true;
|
|
155
152
|
}
|
|
156
153
|
return false;
|
|
157
|
-
}
|
|
158
|
-
var getSearchResult =
|
|
154
|
+
};
|
|
155
|
+
var getSearchResult = function getSearchResult(keyword) {
|
|
159
156
|
var items = [];
|
|
160
157
|
var result = flattenedData.filter(function (item) {
|
|
161
158
|
if (!parentSelectable && item[childrenKey]) {
|
|
@@ -172,7 +169,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
172
169
|
}
|
|
173
170
|
}
|
|
174
171
|
return items;
|
|
175
|
-
}
|
|
172
|
+
};
|
|
176
173
|
|
|
177
174
|
// Used to hover the focuse item when trigger `onKeydown`
|
|
178
175
|
var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value, {
|
|
@@ -181,7 +178,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
181
178
|
valueKey: valueKey,
|
|
182
179
|
defaultLayer: pathTowardsSelectedItem !== null && pathTowardsSelectedItem !== void 0 && pathTowardsSelectedItem.length ? pathTowardsSelectedItem.length - 1 : 0,
|
|
183
180
|
target: function target() {
|
|
184
|
-
return
|
|
181
|
+
return overlay.current;
|
|
185
182
|
},
|
|
186
183
|
getParent: function getParent(item) {
|
|
187
184
|
return parentMap.get(item);
|
|
@@ -197,7 +194,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
197
194
|
setLayer = _useFocusItemValue.setLayer,
|
|
198
195
|
setKeys = _useFocusItemValue.setKeys,
|
|
199
196
|
onFocusItem = _useFocusItemValue.onKeyDown;
|
|
200
|
-
var handleSearch = (0,
|
|
197
|
+
var handleSearch = (0, _utils2.useEventCallback)(function (value, event) {
|
|
201
198
|
var items = getSearchResult(value);
|
|
202
199
|
setSearchKeyword(value);
|
|
203
200
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
|
|
@@ -210,37 +207,37 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
210
207
|
setLayer(0);
|
|
211
208
|
setKeys([]);
|
|
212
209
|
}
|
|
213
|
-
}
|
|
214
|
-
var handleEntered = (0,
|
|
215
|
-
if (!
|
|
210
|
+
});
|
|
211
|
+
var handleEntered = (0, _utils2.useEventCallback)(function () {
|
|
212
|
+
if (!target.current) {
|
|
216
213
|
return;
|
|
217
214
|
}
|
|
218
215
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
219
216
|
setActive(true);
|
|
220
|
-
}
|
|
221
|
-
var handleExited = (0,
|
|
222
|
-
if (!
|
|
217
|
+
});
|
|
218
|
+
var handleExited = (0, _utils2.useEventCallback)(function () {
|
|
219
|
+
if (!target.current) {
|
|
223
220
|
return;
|
|
224
221
|
}
|
|
225
222
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
226
223
|
setActive(false);
|
|
227
224
|
setSearchKeyword('');
|
|
228
|
-
}
|
|
229
|
-
var handleClose = (0,
|
|
230
|
-
var
|
|
231
|
-
(
|
|
225
|
+
});
|
|
226
|
+
var handleClose = (0, _utils2.useEventCallback)(function () {
|
|
227
|
+
var _trigger$current, _target$current, _target$current$focus;
|
|
228
|
+
(_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.close();
|
|
232
229
|
|
|
233
230
|
// The focus is on the trigger button after closing
|
|
234
|
-
(
|
|
235
|
-
}
|
|
236
|
-
var handleClean = (0,
|
|
237
|
-
if (disabled || !
|
|
231
|
+
(_target$current = target.current) === null || _target$current === void 0 ? void 0 : (_target$current$focus = _target$current.focus) === null || _target$current$focus === void 0 ? void 0 : _target$current$focus.call(_target$current);
|
|
232
|
+
});
|
|
233
|
+
var handleClean = (0, _utils2.useEventCallback)(function (event) {
|
|
234
|
+
if (disabled || !target.current) {
|
|
238
235
|
return;
|
|
239
236
|
}
|
|
240
237
|
setValue(null);
|
|
241
238
|
onChange === null || onChange === void 0 ? void 0 : onChange(null, event);
|
|
242
|
-
}
|
|
243
|
-
var handleMenuPressEnter = (0,
|
|
239
|
+
});
|
|
240
|
+
var handleMenuPressEnter = (0, _utils2.useEventCallback)(function (event) {
|
|
244
241
|
var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {
|
|
245
242
|
return item[valueKey] === focusItemValue;
|
|
246
243
|
});
|
|
@@ -256,20 +253,20 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
256
253
|
}
|
|
257
254
|
handleClose();
|
|
258
255
|
}
|
|
259
|
-
}
|
|
256
|
+
});
|
|
260
257
|
var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends3.default)({
|
|
261
258
|
toggle: !focusItemValue || !active,
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
259
|
+
trigger: trigger,
|
|
260
|
+
target: target,
|
|
261
|
+
overlay: overlay,
|
|
262
|
+
searchInput: searchInput,
|
|
266
263
|
active: active,
|
|
267
264
|
onExit: handleClean,
|
|
268
265
|
onMenuKeyDown: onFocusItem,
|
|
269
266
|
onMenuPressEnter: handleMenuPressEnter
|
|
270
267
|
}, rest));
|
|
271
|
-
var handleSelect = function
|
|
272
|
-
var _node$childrenKey,
|
|
268
|
+
var handleSelect = (0, _utils2.useEventCallback)(function (node, cascadePaths, isLeafNode, event) {
|
|
269
|
+
var _node$childrenKey, _trigger$current2;
|
|
273
270
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
|
|
274
271
|
setActiveItem(node);
|
|
275
272
|
var nextValue = node[valueKey];
|
|
@@ -307,20 +304,20 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
307
304
|
}
|
|
308
305
|
|
|
309
306
|
// Update menu position
|
|
310
|
-
(
|
|
311
|
-
};
|
|
307
|
+
(_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.updatePosition();
|
|
308
|
+
});
|
|
312
309
|
|
|
313
310
|
/**
|
|
314
311
|
* The search structure option is processed after being selected.
|
|
315
312
|
*/
|
|
316
|
-
var handleSearchRowSelect = function
|
|
313
|
+
var handleSearchRowSelect = (0, _utils2.useEventCallback)(function (node, nodes, event) {
|
|
317
314
|
var nextValue = node[valueKey];
|
|
318
315
|
handleClose();
|
|
319
316
|
setSearchKeyword('');
|
|
320
317
|
setValue(nextValue);
|
|
321
318
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, nodes, event);
|
|
322
319
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
323
|
-
};
|
|
320
|
+
});
|
|
324
321
|
var renderSearchRow = function renderSearchRow(item, key) {
|
|
325
322
|
var regx = new RegExp((0, _utils2.getSafeRegExpString)(searchKeyword), 'ig');
|
|
326
323
|
var nodes = (0, _treeUtils.getPathTowardsItem)(item, function (item) {
|
|
@@ -397,16 +394,16 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
397
394
|
inline: inline
|
|
398
395
|
}));
|
|
399
396
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
|
|
400
|
-
ref: (0, _utils2.mergeRefs)(
|
|
397
|
+
ref: (0, _utils2.mergeRefs)(overlay, speakerRef),
|
|
401
398
|
className: classes,
|
|
402
399
|
style: styles,
|
|
403
|
-
target:
|
|
400
|
+
target: trigger,
|
|
404
401
|
onKeyDown: onPickerKeyDown
|
|
405
402
|
}, searchable && /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {
|
|
406
403
|
placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
|
|
407
404
|
onChange: handleSearch,
|
|
408
405
|
value: searchKeyword,
|
|
409
|
-
inputRef:
|
|
406
|
+
inputRef: searchInput
|
|
410
407
|
}), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/_react.default.createElement(_DropdownMenu.default, {
|
|
411
408
|
id: id ? id + "-listbox" : undefined,
|
|
412
409
|
menuWidth: menuWidth,
|
|
@@ -465,17 +462,18 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
465
462
|
}
|
|
466
463
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
|
|
467
464
|
pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
|
|
468
|
-
ref:
|
|
465
|
+
ref: trigger,
|
|
469
466
|
placement: placement,
|
|
470
467
|
onEntered: (0, _utils2.createChainedFunction)(handleEntered, onEnter),
|
|
471
468
|
onExited: (0, _utils2.createChainedFunction)(handleExited, onExited),
|
|
472
469
|
speaker: renderDropdownMenu
|
|
473
470
|
}, /*#__PURE__*/_react.default.createElement(Component, {
|
|
474
471
|
className: classes,
|
|
475
|
-
style: style
|
|
472
|
+
style: style,
|
|
473
|
+
ref: root
|
|
476
474
|
}, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends3.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
477
475
|
id: id,
|
|
478
|
-
ref:
|
|
476
|
+
ref: target,
|
|
479
477
|
as: toggleAs,
|
|
480
478
|
appearance: appearance,
|
|
481
479
|
disabled: disabled,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
3
|
import { PickerHandle, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
@@ -12,7 +12,7 @@ export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerL
|
|
|
12
12
|
}
|
|
13
13
|
export interface CheckPickerComponent {
|
|
14
14
|
<T>(props: CheckPickerProps<T> & {
|
|
15
|
-
ref?: Ref<PickerHandle>;
|
|
15
|
+
ref?: React.Ref<PickerHandle>;
|
|
16
16
|
}): JSX.Element | null;
|
|
17
17
|
displayName?: string;
|
|
18
18
|
propTypes?: React.WeakValidationMap<CheckPickerProps<any>>;
|