rsuite 5.17.0-beta.1 → 5.17.0-beta.2
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/Button/styles/index.less +1 -1
- package/CHANGELOG.md +22 -0
- package/Calendar/styles/index.less +0 -0
- package/DatePicker/styles/index.less +0 -10
- package/DateRangePicker/styles/index.less +12 -5
- package/FormControl/styles/index.less +0 -0
- package/Windowing/package.json +7 -0
- package/cjs/Calendar/Header.js +2 -4
- package/cjs/Calendar/MonthDropdown.d.ts +1 -0
- package/cjs/Calendar/MonthDropdown.js +27 -40
- package/cjs/Calendar/useCalendarDate.d.ts +1 -0
- package/cjs/Calendar/useCalendarDate.js +7 -1
- package/cjs/Cascader/Cascader.d.ts +2 -2
- package/cjs/Cascader/DropdownMenu.js +5 -2
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +4 -1
- package/cjs/CheckTreePicker/CheckTreePicker.js +31 -31
- package/cjs/DatePicker/DatePicker.js +4 -3
- package/cjs/DatePicker/PredefinedRanges.d.ts +13 -0
- package/cjs/DatePicker/PredefinedRanges.js +79 -0
- package/cjs/DatePicker/Toolbar.d.ts +2 -9
- package/cjs/DatePicker/Toolbar.js +45 -62
- package/cjs/DateRangePicker/DateRangePicker.js +57 -9
- package/cjs/DateRangePicker/types.d.ts +2 -1
- package/cjs/FormControl/FormControl.js +3 -5
- package/cjs/InputPicker/InputPicker.js +4 -1
- package/cjs/MultiCascader/DropdownMenu.js +5 -2
- package/cjs/Overlay/OverlayTrigger.d.ts +2 -2
- package/cjs/Picker/DropdownMenu.d.ts +2 -1
- package/cjs/Picker/DropdownMenu.js +39 -33
- package/cjs/Picker/PickerOverlay.d.ts +2 -2
- package/cjs/Picker/PickerToggleTrigger.d.ts +2 -2
- package/cjs/Picker/index.d.ts +3 -3
- package/cjs/Picker/types.d.ts +7 -5
- package/cjs/Picker/types.js +0 -0
- package/cjs/Picker/utils.d.ts +11 -12
- package/cjs/Picker/utils.js +4 -0
- package/cjs/SelectPicker/SelectPicker.d.ts +4 -5
- package/cjs/SelectPicker/SelectPicker.js +4 -1
- package/cjs/Tree/Tree.d.ts +2 -5
- package/cjs/TreePicker/TreePicker.js +34 -34
- package/cjs/TreePicker/test/TreePicker.test.js +14 -0
- package/cjs/Whisper/Whisper.d.ts +3 -3
- package/cjs/Windowing/AutoSizer.d.ts +25 -0
- package/cjs/Windowing/AutoSizer.js +107 -0
- package/cjs/Windowing/List.d.ts +45 -0
- package/cjs/Windowing/List.js +72 -0
- package/cjs/Windowing/index.d.ts +5 -0
- package/cjs/Windowing/index.js +19 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/utils/dateUtils.d.ts +1 -0
- package/cjs/utils/dateUtils.js +5 -1
- package/cjs/utils/treeUtils.d.ts +2 -2
- package/dist/rsuite-rtl.css +10 -18
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +10 -18
- package/dist/rsuite.js +110 -377
- 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/Calendar/Header.js +2 -4
- package/esm/Calendar/MonthDropdown.d.ts +1 -0
- package/esm/Calendar/MonthDropdown.js +26 -41
- package/esm/Calendar/useCalendarDate.d.ts +1 -0
- package/esm/Calendar/useCalendarDate.js +7 -1
- package/esm/Cascader/Cascader.d.ts +2 -2
- package/esm/Cascader/DropdownMenu.js +5 -2
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +4 -1
- package/esm/CheckTreePicker/CheckTreePicker.js +31 -30
- package/esm/DatePicker/DatePicker.js +4 -3
- package/esm/DatePicker/PredefinedRanges.d.ts +13 -0
- package/esm/DatePicker/PredefinedRanges.js +62 -0
- package/esm/DatePicker/Toolbar.d.ts +2 -9
- package/esm/DatePicker/Toolbar.js +45 -61
- package/esm/DateRangePicker/DateRangePicker.js +55 -9
- package/esm/DateRangePicker/types.d.ts +2 -1
- package/esm/FormControl/FormControl.js +3 -5
- package/esm/InputPicker/InputPicker.js +4 -1
- package/esm/MultiCascader/DropdownMenu.js +5 -2
- package/esm/Overlay/OverlayTrigger.d.ts +2 -2
- package/esm/Picker/DropdownMenu.d.ts +2 -1
- package/esm/Picker/DropdownMenu.js +39 -35
- package/esm/Picker/PickerOverlay.d.ts +2 -2
- package/esm/Picker/PickerToggleTrigger.d.ts +2 -2
- package/esm/Picker/index.d.ts +3 -3
- package/esm/Picker/types.d.ts +7 -5
- package/esm/Picker/types.js +0 -0
- package/esm/Picker/utils.d.ts +11 -12
- package/esm/Picker/utils.js +4 -0
- package/esm/SelectPicker/SelectPicker.d.ts +4 -5
- package/esm/SelectPicker/SelectPicker.js +4 -1
- package/esm/Tree/Tree.d.ts +2 -5
- package/esm/TreePicker/TreePicker.js +33 -32
- package/esm/TreePicker/test/TreePicker.test.js +14 -0
- package/esm/Whisper/Whisper.d.ts +3 -3
- package/esm/Windowing/AutoSizer.d.ts +25 -0
- package/esm/Windowing/AutoSizer.js +92 -0
- package/esm/Windowing/List.d.ts +45 -0
- package/esm/Windowing/List.js +58 -0
- package/esm/Windowing/index.d.ts +5 -0
- package/esm/Windowing/index.js +3 -0
- package/esm/index.d.ts +1 -0
- package/esm/utils/dateUtils.d.ts +1 -0
- package/esm/utils/dateUtils.js +1 -0
- package/esm/utils/treeUtils.d.ts +2 -2
- package/package.json +4 -4
- package/cjs/Picker/VirtualizedList.d.ts +0 -37
- package/cjs/Picker/VirtualizedList.js +0 -15
- package/esm/Picker/VirtualizedList.d.ts +0 -37
- package/esm/Picker/VirtualizedList.js +0 -4
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
-
|
|
5
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
7
5
|
exports.__esModule = true;
|
|
@@ -11,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
9
|
|
|
12
10
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
13
11
|
|
|
14
|
-
var _react =
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
15
13
|
|
|
16
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
15
|
|
|
@@ -19,11 +17,34 @@ var _Button = _interopRequireDefault(require("../Button"));
|
|
|
19
17
|
|
|
20
18
|
var _utils = require("../utils");
|
|
21
19
|
|
|
22
|
-
var
|
|
20
|
+
var _PredefinedRanges = _interopRequireDefault(require("./PredefinedRanges"));
|
|
21
|
+
|
|
22
|
+
var _Stack = _interopRequireDefault(require("../Stack"));
|
|
23
|
+
|
|
24
|
+
var SubmitButton = function SubmitButton(_ref) {
|
|
25
|
+
var hide = _ref.hide,
|
|
26
|
+
disabledOkBtn = _ref.disabledOkBtn,
|
|
27
|
+
calendarDate = _ref.calendarDate,
|
|
28
|
+
onOk = _ref.onOk,
|
|
29
|
+
children = _ref.children;
|
|
30
|
+
|
|
31
|
+
if (hide) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
23
34
|
|
|
35
|
+
var disabled = disabledOkBtn === null || disabledOkBtn === void 0 ? void 0 : disabledOkBtn(calendarDate);
|
|
36
|
+
return /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
37
|
+
appearance: "primary",
|
|
38
|
+
size: "sm",
|
|
39
|
+
disabled: disabled,
|
|
40
|
+
onClick: disabled ? undefined : onOk
|
|
41
|
+
}, children);
|
|
42
|
+
};
|
|
24
43
|
/**
|
|
25
44
|
* Toolbar for DatePicker and DateRangePicker
|
|
26
45
|
*/
|
|
46
|
+
|
|
47
|
+
|
|
27
48
|
var Toolbar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
28
49
|
var className = props.className,
|
|
29
50
|
_props$classPrefix = props.classPrefix,
|
|
@@ -34,78 +55,40 @@ var Toolbar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
34
55
|
onOk = props.onOk,
|
|
35
56
|
onClickShortcut = props.onClickShortcut,
|
|
36
57
|
calendarDate = props.calendarDate,
|
|
37
|
-
|
|
58
|
+
ranges = props.ranges,
|
|
38
59
|
locale = props.locale,
|
|
39
60
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "classPrefix", "disabledOkBtn", "disabledShortcut", "hideOkBtn", "onOk", "onClickShortcut", "calendarDate", "ranges", "locale"]);
|
|
40
61
|
|
|
41
|
-
var _useState = (0, _react.useState)((0, _utils2.getRanges)(props)),
|
|
42
|
-
ranges = _useState[0],
|
|
43
|
-
setRanges = _useState[1];
|
|
44
|
-
|
|
45
62
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
46
63
|
merge = _useClassNames.merge,
|
|
47
64
|
prefix = _useClassNames.prefix,
|
|
48
65
|
withClassPrefix = _useClassNames.withClassPrefix;
|
|
49
66
|
|
|
50
|
-
(0
|
|
51
|
-
setRanges((0, _utils2.getRanges)({
|
|
52
|
-
ranges: rangesProp,
|
|
53
|
-
calendarDate: calendarDate
|
|
54
|
-
}));
|
|
55
|
-
}, [calendarDate, rangesProp]);
|
|
56
|
-
var hasLocaleKey = (0, _react.useCallback)(function (key) {
|
|
57
|
-
return (0, _utils2.getDefaultRanges)(calendarDate).some(function (item) {
|
|
58
|
-
return item.label === key;
|
|
59
|
-
});
|
|
60
|
-
}, [calendarDate]);
|
|
61
|
-
var renderOkButton = (0, _react.useCallback)(function () {
|
|
62
|
-
if (hideOkBtn) {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
var disabled = disabledOkBtn === null || disabledOkBtn === void 0 ? void 0 : disabledOkBtn(calendarDate);
|
|
67
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
68
|
-
className: prefix('right')
|
|
69
|
-
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
70
|
-
appearance: "primary",
|
|
71
|
-
size: "sm",
|
|
72
|
-
disabled: disabled,
|
|
73
|
-
onClick: disabled ? undefined : onOk
|
|
74
|
-
}, locale === null || locale === void 0 ? void 0 : locale.ok));
|
|
75
|
-
}, [disabledOkBtn, hideOkBtn, locale, onOk, calendarDate, prefix]);
|
|
76
|
-
|
|
77
|
-
if (hideOkBtn && ranges.length === 0) {
|
|
67
|
+
if (hideOkBtn && (ranges === null || ranges === void 0 ? void 0 : ranges.length) === 0) {
|
|
78
68
|
return null;
|
|
79
69
|
}
|
|
80
70
|
|
|
81
71
|
var classes = merge(className, withClassPrefix());
|
|
82
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
72
|
+
return /*#__PURE__*/_react.default.createElement(_Stack.default, (0, _extends2.default)({
|
|
83
73
|
ref: ref,
|
|
84
|
-
className: classes
|
|
74
|
+
className: classes,
|
|
75
|
+
justifyContent: "space-between",
|
|
76
|
+
alignItems: "flex-start"
|
|
77
|
+
}, rest), /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {
|
|
78
|
+
className: prefix('ranges'),
|
|
79
|
+
ranges: ranges,
|
|
80
|
+
calendarDate: calendarDate,
|
|
81
|
+
locale: locale,
|
|
82
|
+
disabledShortcut: disabledShortcut,
|
|
83
|
+
onClickShortcut: onClickShortcut
|
|
85
84
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
86
|
-
className: prefix('
|
|
87
|
-
},
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
var handleClickShortcut = function handleClickShortcut(event) {
|
|
94
|
-
if (disabled) {
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
onClickShortcut === null || onClickShortcut === void 0 ? void 0 : onClickShortcut(value, closeOverlay !== false ? true : false, event);
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
return /*#__PURE__*/_react.default.createElement(_Button.default, {
|
|
102
|
-
appearance: "link",
|
|
103
|
-
size: "sm",
|
|
104
|
-
key: index,
|
|
105
|
-
disabled: disabled,
|
|
106
|
-
onClick: handleClickShortcut
|
|
107
|
-
}, hasLocaleKey(label) && typeof label === 'string' ? locale === null || locale === void 0 ? void 0 : locale[label] : label);
|
|
108
|
-
})), renderOkButton());
|
|
85
|
+
className: prefix('right')
|
|
86
|
+
}, /*#__PURE__*/_react.default.createElement(SubmitButton, {
|
|
87
|
+
disabledOkBtn: disabledOkBtn,
|
|
88
|
+
hide: hideOkBtn,
|
|
89
|
+
calendarDate: calendarDate,
|
|
90
|
+
onOk: onOk
|
|
91
|
+
}, locale === null || locale === void 0 ? void 0 : locale.ok)));
|
|
109
92
|
});
|
|
110
93
|
|
|
111
94
|
Toolbar.displayName = 'Toolbar';
|
|
@@ -29,6 +29,10 @@ var _CustomProvider = require("../CustomProvider");
|
|
|
29
29
|
|
|
30
30
|
var _Toolbar = _interopRequireDefault(require("../DatePicker/Toolbar"));
|
|
31
31
|
|
|
32
|
+
var _PredefinedRanges = _interopRequireDefault(require("../DatePicker/PredefinedRanges"));
|
|
33
|
+
|
|
34
|
+
var _Stack = _interopRequireDefault(require("../Stack"));
|
|
35
|
+
|
|
32
36
|
var _Picker = require("../Picker");
|
|
33
37
|
|
|
34
38
|
var _utils = require("../utils");
|
|
@@ -161,11 +165,31 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
161
165
|
*/
|
|
162
166
|
|
|
163
167
|
var updateCalendarDateRange = (0, _react.useCallback)(function (value, calendarKey) {
|
|
168
|
+
var nextValue = value;
|
|
169
|
+
var shouldTime = _utils.DateUtils.shouldTime,
|
|
170
|
+
getHours = _utils.DateUtils.getHours,
|
|
171
|
+
getMinutes = _utils.DateUtils.getMinutes,
|
|
172
|
+
getSeconds = _utils.DateUtils.getSeconds,
|
|
173
|
+
set = _utils.DateUtils.set;
|
|
174
|
+
|
|
175
|
+
if (shouldTime(formatStr) && calendarKey === undefined && (value === null || value === void 0 ? void 0 : value.length) === 1 && (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue.length) === 2) {
|
|
176
|
+
var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || defaultCalendarValue[1];
|
|
177
|
+
var _startDate = value[0]; // When updating the start date, the time of the end date should keep the time set by the user by default.
|
|
178
|
+
|
|
179
|
+
var _endDate = set((0, _dateUtils.addMonths)(_startDate, 1), {
|
|
180
|
+
hours: getHours(calendarEndDate),
|
|
181
|
+
minutes: getMinutes(calendarEndDate),
|
|
182
|
+
seconds: getSeconds(calendarEndDate)
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
nextValue = [_startDate, _endDate];
|
|
186
|
+
}
|
|
187
|
+
|
|
164
188
|
setCalendarDate((0, _utils2.getCalendarDate)({
|
|
165
|
-
value:
|
|
189
|
+
value: nextValue,
|
|
166
190
|
calendarKey: calendarKey
|
|
167
191
|
}));
|
|
168
|
-
}, []); // if valueProp changed then update selectValue/hoverValue
|
|
192
|
+
}, [calendarDate, defaultCalendarValue, formatStr]); // if valueProp changed then update selectValue/hoverValue
|
|
169
193
|
|
|
170
194
|
(0, _react.useEffect)(function () {
|
|
171
195
|
setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
|
|
@@ -399,10 +423,17 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
399
423
|
closeOverlay = false;
|
|
400
424
|
}
|
|
401
425
|
|
|
402
|
-
|
|
426
|
+
updateCalendarDateRange(value);
|
|
427
|
+
|
|
428
|
+
if (closeOverlay) {
|
|
429
|
+
handleValueUpdate(event, value, closeOverlay);
|
|
430
|
+
} else {
|
|
431
|
+
setSelectedDates(value !== null && value !== void 0 ? value : []);
|
|
432
|
+
} // End unfinished selections.
|
|
433
|
+
|
|
403
434
|
|
|
404
435
|
hasDoneSelect.current = true;
|
|
405
|
-
}, [handleValueUpdate]);
|
|
436
|
+
}, [handleValueUpdate, updateCalendarDateRange]);
|
|
406
437
|
var handleOK = (0, _react.useCallback)(function (event) {
|
|
407
438
|
handleValueUpdate(event, selectedDates);
|
|
408
439
|
onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
|
|
@@ -463,10 +494,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
463
494
|
var nextCalendarDate;
|
|
464
495
|
|
|
465
496
|
if (value && value.length) {
|
|
466
|
-
var
|
|
497
|
+
var _startDate2 = value[0],
|
|
467
498
|
endData = value[1];
|
|
468
|
-
nextCalendarDate = [
|
|
499
|
+
nextCalendarDate = [_startDate2, (0, _dateUtils.isSameMonth)(_startDate2, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];
|
|
469
500
|
} else {
|
|
501
|
+
// Reset the date on the calendar to the default date
|
|
470
502
|
nextCalendarDate = (0, _utils2.getCalendarDate)({
|
|
471
503
|
value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
|
|
472
504
|
});
|
|
@@ -568,13 +600,27 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
568
600
|
renderTitle: renderTitle
|
|
569
601
|
};
|
|
570
602
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
|
|
603
|
+
role: "dialog",
|
|
571
604
|
className: classes,
|
|
572
605
|
ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),
|
|
573
606
|
target: triggerRef,
|
|
574
607
|
style: styles
|
|
575
608
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
576
609
|
className: panelClasses
|
|
577
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
610
|
+
}, /*#__PURE__*/_react.default.createElement(_Stack.default, {
|
|
611
|
+
alignItems: "flex-start"
|
|
612
|
+
}, /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {
|
|
613
|
+
direction: "column",
|
|
614
|
+
spacing: 0,
|
|
615
|
+
className: prefix('daterange-predefined'),
|
|
616
|
+
ranges: (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
617
|
+
return (range === null || range === void 0 ? void 0 : range.placement) === 'left';
|
|
618
|
+
})) || [],
|
|
619
|
+
calendarDate: calendarDate,
|
|
620
|
+
locale: locale,
|
|
621
|
+
disabledShortcut: disabledShortcutButton,
|
|
622
|
+
onClickShortcut: handleShortcutPageDate
|
|
623
|
+
}), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
578
624
|
className: prefix('daterange-content')
|
|
579
625
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
580
626
|
className: prefix('daterange-header')
|
|
@@ -592,8 +638,10 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
592
638
|
hideOkBtn: oneTap,
|
|
593
639
|
onOk: handleOK,
|
|
594
640
|
onClickShortcut: handleShortcutPageDate,
|
|
595
|
-
ranges: ranges
|
|
596
|
-
|
|
641
|
+
ranges: ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
642
|
+
return (range === null || range === void 0 ? void 0 : range.placement) === 'bottom' || (range === null || range === void 0 ? void 0 : range.placement) === undefined;
|
|
643
|
+
})
|
|
644
|
+
})))));
|
|
597
645
|
};
|
|
598
646
|
|
|
599
647
|
var hasValue = !(0, _isNil.default)(value) && value.length > 1;
|
|
@@ -4,8 +4,9 @@ export declare type ValueType = [Date?, Date?];
|
|
|
4
4
|
export declare type DateRange = [Date, Date];
|
|
5
5
|
export interface RangeType {
|
|
6
6
|
label: React.ReactNode;
|
|
7
|
-
closeOverlay?: boolean;
|
|
8
7
|
value: DateRange | ((value?: ValueType) => DateRange);
|
|
8
|
+
closeOverlay?: boolean;
|
|
9
|
+
placement?: 'bottom' | 'left';
|
|
9
10
|
}
|
|
10
11
|
export declare type DisabledDateFunction = (
|
|
11
12
|
/** Date used to determine if disabling is required. */
|
|
@@ -58,7 +58,6 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
58
58
|
AccepterComponent = _props$accepter === void 0 ? _Input.default : _props$accepter,
|
|
59
59
|
_props$classPrefix = props.classPrefix,
|
|
60
60
|
classPrefix = _props$classPrefix === void 0 ? 'form-control' : _props$classPrefix,
|
|
61
|
-
className = props.className,
|
|
62
61
|
checkAsync = props.checkAsync,
|
|
63
62
|
checkTrigger = props.checkTrigger,
|
|
64
63
|
_props$errorPlacement = props.errorPlacement,
|
|
@@ -78,7 +77,7 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
78
77
|
_props$shouldResetWit = props.shouldResetWithUnmount,
|
|
79
78
|
shouldResetWithUnmount = _props$shouldResetWit === void 0 ? false : _props$shouldResetWit,
|
|
80
79
|
rule = props.rule,
|
|
81
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "accepter", "classPrefix", "
|
|
80
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "accepter", "classPrefix", "checkAsync", "checkTrigger", "errorPlacement", "errorMessage", "name", "value", "readOnly", "plaintext", "disabled", "onChange", "onBlur", "defaultValue", "shouldResetWithUnmount", "rule"]);
|
|
82
81
|
|
|
83
82
|
var _useContext2 = (0, _react.useContext)(_FormGroup.FormGroupContext),
|
|
84
83
|
controlId = _useContext2.controlId;
|
|
@@ -100,10 +99,9 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
100
99
|
|
|
101
100
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
102
101
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
103
|
-
prefix = _useClassNames.prefix
|
|
104
|
-
merge = _useClassNames.merge;
|
|
102
|
+
prefix = _useClassNames.prefix;
|
|
105
103
|
|
|
106
|
-
var classes =
|
|
104
|
+
var classes = withClassPrefix('wrapper');
|
|
107
105
|
|
|
108
106
|
var handleFieldChange = function handleFieldChange(value, event) {
|
|
109
107
|
handleFieldCheck(value, trigger === 'change');
|
|
@@ -145,6 +145,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
145
145
|
var targetRef = (0, _react.useRef)(null);
|
|
146
146
|
var triggerRef = (0, _react.useRef)(null);
|
|
147
147
|
var inputRef = (0, _react.useRef)();
|
|
148
|
+
var listRef = (0, _react.useRef)(null);
|
|
148
149
|
|
|
149
150
|
var _useCustom = (0, _utils.useCustom)(['Picker', 'InputPicker'], overrideLocale),
|
|
150
151
|
locale = _useCustom.locale;
|
|
@@ -436,7 +437,8 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
436
437
|
(0, _Picker.usePublicMethods)(ref, {
|
|
437
438
|
triggerRef: triggerRef,
|
|
438
439
|
overlayRef: overlayRef,
|
|
439
|
-
targetRef: targetRef
|
|
440
|
+
targetRef: targetRef,
|
|
441
|
+
listRef: listRef
|
|
440
442
|
});
|
|
441
443
|
/**
|
|
442
444
|
* Remove the last item, after pressing the back key on the keyboard.
|
|
@@ -635,6 +637,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
635
637
|
var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {
|
|
636
638
|
id: id ? id + "-listbox" : undefined,
|
|
637
639
|
listProps: listProps,
|
|
640
|
+
listRef: listRef,
|
|
638
641
|
disabledItemValues: disabledItemValues,
|
|
639
642
|
valueKey: valueKey,
|
|
640
643
|
labelKey: labelKey,
|
|
@@ -69,7 +69,10 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
69
69
|
prefix = _useClassNames.prefix;
|
|
70
70
|
|
|
71
71
|
var classes = merge(className, prefix('items'));
|
|
72
|
-
|
|
72
|
+
|
|
73
|
+
var _useCustom = (0, _utils.useCustom)('DropdownMenu'),
|
|
74
|
+
rtl = _useCustom.rtl;
|
|
75
|
+
|
|
73
76
|
var getCascadePaths = (0, _react.useCallback)(function (layer, node) {
|
|
74
77
|
var paths = [];
|
|
75
78
|
|
|
@@ -96,7 +99,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
96
99
|
}); // Use `value` in keys when If `value` is string or number
|
|
97
100
|
|
|
98
101
|
var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
|
|
99
|
-
var Icon = node.loading ? _Spinner.default : rtl ?
|
|
102
|
+
var Icon = node.loading ? _Spinner.default : rtl ? _AngleLeft.default : _AngleRight.default;
|
|
100
103
|
var active = value.some(function (v) {
|
|
101
104
|
return v === nodeValue;
|
|
102
105
|
});
|
|
@@ -63,11 +63,11 @@ export interface OverlayTriggerProps extends StandardProps, AnimationEventProps
|
|
|
63
63
|
/** Whether speaker to follow the cursor */
|
|
64
64
|
followCursor?: boolean;
|
|
65
65
|
}
|
|
66
|
-
export interface
|
|
66
|
+
export interface OverlayTriggerHandle {
|
|
67
67
|
root: HTMLElement | undefined;
|
|
68
68
|
updatePosition: () => void;
|
|
69
69
|
open: (delay?: number) => void;
|
|
70
70
|
close: (delay?: number) => void;
|
|
71
71
|
}
|
|
72
|
-
declare const OverlayTrigger: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<
|
|
72
|
+
declare const OverlayTrigger: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<OverlayTriggerHandle>>;
|
|
73
73
|
export default OverlayTrigger;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import { ListProps } from '
|
|
3
|
+
import { ListProps, ListHandle } from '../Windowing';
|
|
4
4
|
import { StandardProps, ItemDataType } from '../@types/common';
|
|
5
5
|
export interface DropdownMenuProps<Multiple = false> extends StandardProps, Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
6
6
|
classPrefix: string;
|
|
@@ -20,6 +20,7 @@ export interface DropdownMenuProps<Multiple = false> extends StandardProps, Omit
|
|
|
20
20
|
rowGroupHeight?: number;
|
|
21
21
|
virtualized?: boolean;
|
|
22
22
|
listProps?: Partial<ListProps>;
|
|
23
|
+
listRef?: React.Ref<ListHandle>;
|
|
23
24
|
/** Custom selected option */
|
|
24
25
|
renderMenuItem?: (itemLabel: React.ReactNode, item: any) => React.ReactNode;
|
|
25
26
|
renderMenuGroup?: (title: React.ReactNode, item: any) => React.ReactNode;
|
|
@@ -31,7 +31,7 @@ var _getHeight = _interopRequireDefault(require("dom-lib/getHeight"));
|
|
|
31
31
|
|
|
32
32
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _Windowing = require("../Windowing");
|
|
35
35
|
|
|
36
36
|
var _shallowEqual = _interopRequireDefault(require("../utils/shallowEqual"));
|
|
37
37
|
|
|
@@ -61,6 +61,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
61
61
|
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
62
62
|
virtualized = props.virtualized,
|
|
63
63
|
listProps = props.listProps,
|
|
64
|
+
virtualizedListRef = props.listRef,
|
|
64
65
|
className = props.className,
|
|
65
66
|
style = props.style,
|
|
66
67
|
focusItemValue = props.focusItemValue,
|
|
@@ -74,7 +75,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
74
75
|
renderMenuItem = props.renderMenuItem,
|
|
75
76
|
onGroupTitleClick = props.onGroupTitleClick,
|
|
76
77
|
onSelect = props.onSelect,
|
|
77
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["data", "group", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "className", "style", "focusItemValue", "dropdownMenuItemClassPrefix", "dropdownMenuItemAs", "rowHeight", "rowGroupHeight", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
|
|
78
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["data", "group", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "listRef", "className", "style", "focusItemValue", "dropdownMenuItemClassPrefix", "dropdownMenuItemAs", "rowHeight", "rowGroupHeight", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
|
|
78
79
|
|
|
79
80
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
80
81
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
@@ -84,10 +85,8 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
84
85
|
var classes = merge(className, withClassPrefix('items', {
|
|
85
86
|
grouped: group
|
|
86
87
|
}));
|
|
87
|
-
var styles = (0, _extends2.default)({}, style, {
|
|
88
|
-
maxHeight: maxHeight
|
|
89
|
-
});
|
|
90
88
|
var menuBodyContainerRef = (0, _react.useRef)(null);
|
|
89
|
+
var listRef = (0, _react.useRef)(null);
|
|
91
90
|
|
|
92
91
|
var _useState = (0, _react.useState)([]),
|
|
93
92
|
foldedGroupKeys = _useState[0],
|
|
@@ -109,8 +108,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
109
108
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event, checked);
|
|
110
109
|
}, [onSelect]);
|
|
111
110
|
|
|
112
|
-
var getRowHeight = function getRowHeight(list,
|
|
113
|
-
var index = _ref.index;
|
|
111
|
+
var getRowHeight = function getRowHeight(list, index) {
|
|
114
112
|
var item = list[index];
|
|
115
113
|
|
|
116
114
|
if (group && item[_getDataGroupBy.KEY_GROUP] && index !== 0) {
|
|
@@ -148,10 +146,13 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
148
146
|
}
|
|
149
147
|
}, [focusItemValue, menuBodyContainerRef, prefix]);
|
|
150
148
|
|
|
151
|
-
var renderItem = function renderItem(
|
|
152
|
-
var index =
|
|
153
|
-
|
|
154
|
-
|
|
149
|
+
var renderItem = function renderItem(_ref) {
|
|
150
|
+
var _ref$index = _ref.index,
|
|
151
|
+
index = _ref$index === void 0 ? 0 : _ref$index,
|
|
152
|
+
style = _ref.style,
|
|
153
|
+
data = _ref.data,
|
|
154
|
+
itemData = _ref.item;
|
|
155
|
+
var item = itemData || data[index];
|
|
155
156
|
var value = item[valueKey];
|
|
156
157
|
var label = item[labelKey];
|
|
157
158
|
|
|
@@ -210,40 +211,45 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
210
211
|
return key === ((_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent[_getDataGroupBy.KEY_GROUP_TITLE]);
|
|
211
212
|
}));
|
|
212
213
|
}) : data;
|
|
213
|
-
var rowCount = filteredItems.length;
|
|
214
|
+
var rowCount = filteredItems.length;
|
|
215
|
+
(0, _utils.useMount)(function () {
|
|
216
|
+
var _listRef$current, _listRef$current$scro;
|
|
214
217
|
|
|
215
|
-
|
|
218
|
+
var itemIndex = (0, _findIndex.default)(filteredItems, function (item) {
|
|
219
|
+
return item[valueKey] === (activeItemValues === null || activeItemValues === void 0 ? void 0 : activeItemValues[0]);
|
|
220
|
+
});
|
|
221
|
+
(_listRef$current = listRef.current) === null || _listRef$current === void 0 ? void 0 : (_listRef$current$scro = _listRef$current.scrollToItem) === null || _listRef$current$scro === void 0 ? void 0 : _listRef$current$scro.call(_listRef$current, itemIndex);
|
|
222
|
+
});
|
|
216
223
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
217
|
-
role:
|
|
224
|
+
role: "listbox"
|
|
218
225
|
}, rest, {
|
|
219
226
|
className: classes,
|
|
220
227
|
ref: (0, _utils.mergeRefs)(menuBodyContainerRef, ref),
|
|
221
|
-
style:
|
|
222
|
-
|
|
228
|
+
style: (0, _extends2.default)({}, style, {
|
|
229
|
+
maxHeight: maxHeight
|
|
230
|
+
})
|
|
231
|
+
}), virtualized ? /*#__PURE__*/_react.default.createElement(_Windowing.AutoSizer, {
|
|
223
232
|
defaultHeight: maxHeight,
|
|
224
233
|
style: {
|
|
225
234
|
width: 'auto',
|
|
226
235
|
height: 'auto'
|
|
227
236
|
}
|
|
228
|
-
}, function (
|
|
229
|
-
var height =
|
|
230
|
-
width =
|
|
231
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
"aria-readonly": undefined,
|
|
237
|
+
}, function (_ref2) {
|
|
238
|
+
var height = _ref2.height,
|
|
239
|
+
width = _ref2.width;
|
|
240
|
+
return /*#__PURE__*/_react.default.createElement(_Windowing.List, (0, _extends2.default)({
|
|
241
|
+
as: _Windowing.VariableSizeList,
|
|
242
|
+
ref: (0, _utils.mergeRefs)(listRef, virtualizedListRef),
|
|
235
243
|
width: width,
|
|
236
244
|
height: height || maxHeight,
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
return renderItem(filteredItems, {
|
|
246
|
-
index: index
|
|
245
|
+
itemCount: rowCount,
|
|
246
|
+
itemData: filteredItems,
|
|
247
|
+
itemSize: getRowHeight.bind(_this, filteredItems)
|
|
248
|
+
}, listProps), renderItem);
|
|
249
|
+
}) : filteredItems.map(function (item, index) {
|
|
250
|
+
return renderItem({
|
|
251
|
+
index: index,
|
|
252
|
+
item: item
|
|
247
253
|
});
|
|
248
254
|
}));
|
|
249
255
|
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
|
-
import {
|
|
3
|
+
import { OverlayTriggerHandle } from '../Picker';
|
|
4
4
|
export interface PickerOverlayProps extends WithAsProps {
|
|
5
5
|
placement?: string;
|
|
6
6
|
autoWidth?: boolean;
|
|
7
7
|
children?: React.ReactNode;
|
|
8
|
-
target?: React.RefObject<
|
|
8
|
+
target?: React.RefObject<OverlayTriggerHandle>;
|
|
9
9
|
onKeyDown?: (event: React.KeyboardEvent) => void;
|
|
10
10
|
}
|
|
11
11
|
declare const PickerOverlay: RsRefForwardingComponent<'div', PickerOverlayProps>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { OverlayTriggerHandle, OverlayTriggerProps, OverlayTriggerType } from '../Overlay/OverlayTrigger';
|
|
3
3
|
import { PositionChildProps } from '../Overlay/Position';
|
|
4
4
|
import { TypeAttributes, AnimationEventProps } from '../@types/common';
|
|
5
|
-
export type {
|
|
5
|
+
export type { OverlayTriggerHandle, PositionChildProps };
|
|
6
6
|
export interface PickerToggleTriggerProps extends Omit<AnimationEventProps, 'onEntering' | 'onExiting'>, Pick<OverlayTriggerProps, 'speaker'> {
|
|
7
7
|
placement?: TypeAttributes.Placement;
|
|
8
8
|
pickerProps: any;
|
package/cjs/Picker/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { pickTriggerPropKeys, omitTriggerPropKeys,
|
|
1
|
+
import { pickTriggerPropKeys, omitTriggerPropKeys, OverlayTriggerHandle, PositionChildProps } from './PickerToggleTrigger';
|
|
2
2
|
import { PickerToggleProps } from './PickerToggle';
|
|
3
|
-
import {
|
|
3
|
+
import { PickerHandle, PickerComponent } from './types';
|
|
4
4
|
export { default as DropdownMenu } from './DropdownMenu';
|
|
5
5
|
export { default as DropdownMenuCheckItem } from './DropdownMenuCheckItem';
|
|
6
6
|
export { default as DropdownMenuGroup } from './DropdownMenuGroup';
|
|
@@ -11,6 +11,6 @@ export { default as PickerToggleTrigger } from './PickerToggleTrigger';
|
|
|
11
11
|
export { default as SearchBar } from './SearchBar';
|
|
12
12
|
export { default as SelectedElement } from './SelectedElement';
|
|
13
13
|
export { pickTriggerPropKeys, omitTriggerPropKeys };
|
|
14
|
-
export type {
|
|
14
|
+
export type { OverlayTriggerHandle, PositionChildProps, PickerHandle, PickerComponent, PickerToggleProps };
|
|
15
15
|
export * from './utils';
|
|
16
16
|
export * from './propTypes';
|
package/cjs/Picker/types.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { RsRefForwardingComponent } from '../@types/common';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import type { ListHandle } from '../Windowing';
|
|
4
|
+
export interface PickerHandle {
|
|
5
|
+
root: HTMLElement | null;
|
|
6
|
+
list?: ListHandle;
|
|
7
|
+
overlay?: HTMLElement | null;
|
|
8
|
+
target?: HTMLElement | null;
|
|
7
9
|
updatePosition?: () => void;
|
|
8
10
|
open?: () => void;
|
|
9
11
|
close?: () => void;
|
|
10
12
|
}
|
|
11
13
|
export declare type PickerComponent<P> = RsRefForwardingComponent<'div', P & {
|
|
12
|
-
ref?: React.Ref<
|
|
14
|
+
ref?: React.Ref<PickerHandle>;
|
|
13
15
|
}>;
|
package/cjs/Picker/types.js
CHANGED
|
File without changes
|