rsuite 5.21.0 → 5.22.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 +15 -973
- package/DatePicker/styles/index.less +11 -0
- package/Table/styles/index.less +12 -7
- package/cjs/DatePicker/DatePicker.js +25 -3
- package/cjs/DatePicker/types.d.ts +1 -0
- package/cjs/DateRangePicker/DateRangePicker.js +38 -19
- package/dist/rsuite-rtl.css +20 -6
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +20 -6
- package/dist/rsuite.js +17 -17
- 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/DatePicker/DatePicker.js +22 -3
- package/esm/DatePicker/types.d.ts +1 -0
- package/esm/DateRangePicker/DateRangePicker.js +38 -19
- package/package.json +3 -3
- package/styles/variables.less +1 -0
|
@@ -34,6 +34,17 @@
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
// Predefined Ranges
|
|
38
|
+
.rs-picker-date-predefined {
|
|
39
|
+
height: 325px;
|
|
40
|
+
border-right: 1px solid var(--rs-border-primary);
|
|
41
|
+
padding: 4px 0;
|
|
42
|
+
|
|
43
|
+
.rs-btn {
|
|
44
|
+
display: block;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
37
48
|
// Calendar in DatePicker popup
|
|
38
49
|
.rs-picker-menu {
|
|
39
50
|
@calendar-width: (
|
package/Table/styles/index.less
CHANGED
|
@@ -60,13 +60,6 @@
|
|
|
60
60
|
box-shadow: none;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
// Added transition for hover
|
|
64
|
-
&-row,
|
|
65
|
-
&-cell-group,
|
|
66
|
-
&-cell {
|
|
67
|
-
transition: background-color 0.3s linear;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
63
|
&-hover &-row:not(&-row-header):hover,
|
|
71
64
|
&-hover &-row:hover &-cell-group,
|
|
72
65
|
&-hover &-row:hover &-cell {
|
|
@@ -215,6 +208,18 @@
|
|
|
215
208
|
}
|
|
216
209
|
}
|
|
217
210
|
|
|
211
|
+
&-cell-full-text {
|
|
212
|
+
&:hover {
|
|
213
|
+
z-index: 1 !important;
|
|
214
|
+
width: auto !important;
|
|
215
|
+
box-shadow: inset @table-cell-hover-color 0px 0px 2px;
|
|
216
|
+
|
|
217
|
+
.rs-table-cell-content {
|
|
218
|
+
width: auto !important;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
218
223
|
&-cell-header-sortable &-cell-content {
|
|
219
224
|
cursor: pointer;
|
|
220
225
|
}
|
|
@@ -31,6 +31,10 @@ var _useCalendarDate2 = _interopRequireDefault(require("../Calendar/useCalendarD
|
|
|
31
31
|
|
|
32
32
|
var _Toolbar = _interopRequireDefault(require("./Toolbar"));
|
|
33
33
|
|
|
34
|
+
var _Stack = _interopRequireDefault(require("../Stack"));
|
|
35
|
+
|
|
36
|
+
var _PredefinedRanges = _interopRequireDefault(require("./PredefinedRanges"));
|
|
37
|
+
|
|
34
38
|
var _utils = require("../utils");
|
|
35
39
|
|
|
36
40
|
var _Picker = require("../Picker");
|
|
@@ -365,6 +369,13 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
365
369
|
onToggleMeridian: handleToggleMeridian
|
|
366
370
|
}));
|
|
367
371
|
|
|
372
|
+
var sideRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
373
|
+
return (range === null || range === void 0 ? void 0 : range.placement) === 'left';
|
|
374
|
+
})) || [];
|
|
375
|
+
var bottomRanges = (ranges === null || ranges === void 0 ? void 0 : ranges.filter(function (range) {
|
|
376
|
+
return (range === null || range === void 0 ? void 0 : range.placement) === 'bottom' || (range === null || range === void 0 ? void 0 : range.placement) === undefined;
|
|
377
|
+
})) || [];
|
|
378
|
+
|
|
368
379
|
var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
|
|
369
380
|
var left = positionProps.left,
|
|
370
381
|
top = positionProps.top,
|
|
@@ -380,16 +391,27 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
380
391
|
ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),
|
|
381
392
|
style: styles,
|
|
382
393
|
target: triggerRef
|
|
383
|
-
},
|
|
394
|
+
}, /*#__PURE__*/_react.default.createElement(_Stack.default, {
|
|
395
|
+
alignItems: "flex-start"
|
|
396
|
+
}, sideRanges.length > 0 && /*#__PURE__*/_react.default.createElement(_PredefinedRanges.default, {
|
|
397
|
+
direction: "column",
|
|
398
|
+
spacing: 0,
|
|
399
|
+
className: prefix('date-predefined'),
|
|
400
|
+
ranges: sideRanges,
|
|
401
|
+
calendarDate: calendarDate,
|
|
402
|
+
locale: locale,
|
|
403
|
+
disabledShortcut: disabledToolbarHandle,
|
|
404
|
+
onClickShortcut: handleShortcutPageDate
|
|
405
|
+
}), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, calendar, /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
|
|
384
406
|
locale: locale,
|
|
385
|
-
ranges:
|
|
407
|
+
ranges: bottomRanges,
|
|
386
408
|
calendarDate: calendarDate,
|
|
387
409
|
disabledOkBtn: disabledToolbarHandle,
|
|
388
410
|
disabledShortcut: disabledToolbarHandle,
|
|
389
411
|
onClickShortcut: handleShortcutPageDate,
|
|
390
412
|
onOk: handleOK,
|
|
391
413
|
hideOkBtn: oneTap
|
|
392
|
-
}));
|
|
414
|
+
}))));
|
|
393
415
|
};
|
|
394
416
|
|
|
395
417
|
var hasValue = !!value;
|
|
@@ -161,6 +161,22 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
161
161
|
|
|
162
162
|
|
|
163
163
|
var selectRangeValueRef = (0, _react.useRef)(null);
|
|
164
|
+
/**
|
|
165
|
+
* Get the time on the second calendar as the end of the date range.
|
|
166
|
+
*/
|
|
167
|
+
|
|
168
|
+
var getCalendarEndDatetime = (0, _react.useCallback)(function (date) {
|
|
169
|
+
var getHours = _utils.DateUtils.getHours,
|
|
170
|
+
getMinutes = _utils.DateUtils.getMinutes,
|
|
171
|
+
getSeconds = _utils.DateUtils.getSeconds,
|
|
172
|
+
set = _utils.DateUtils.set;
|
|
173
|
+
var calendarEndDate = (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate[1]) || (defaultCalendarValue === null || defaultCalendarValue === void 0 ? void 0 : defaultCalendarValue[1]);
|
|
174
|
+
return set(date, {
|
|
175
|
+
hours: getHours(calendarEndDate),
|
|
176
|
+
minutes: getMinutes(calendarEndDate),
|
|
177
|
+
seconds: getSeconds(calendarEndDate)
|
|
178
|
+
});
|
|
179
|
+
}, [calendarDate, defaultCalendarValue]);
|
|
164
180
|
/**
|
|
165
181
|
* Call this function to update the calendar panel rendering benchmark value.
|
|
166
182
|
* If params `value` is not passed, it defaults to [new Date(), addMonth(new Date(), 1)].
|
|
@@ -168,21 +184,12 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
168
184
|
|
|
169
185
|
var updateCalendarDateRange = (0, _react.useCallback)(function (selectedDate, calendarKey) {
|
|
170
186
|
var nextValue = selectedDate;
|
|
171
|
-
var shouldRenderTime = _utils.DateUtils.shouldRenderTime
|
|
172
|
-
getHours = _utils.DateUtils.getHours,
|
|
173
|
-
getMinutes = _utils.DateUtils.getMinutes,
|
|
174
|
-
getSeconds = _utils.DateUtils.getSeconds,
|
|
175
|
-
set = _utils.DateUtils.set;
|
|
187
|
+
var shouldRenderTime = _utils.DateUtils.shouldRenderTime;
|
|
176
188
|
|
|
177
|
-
if (shouldRenderTime(formatStr) && calendarKey === undefined &&
|
|
178
|
-
var
|
|
179
|
-
var _startDate = selectedDate[0]; // When updating the start date, the time of the end date should keep the time set by the user by default.
|
|
189
|
+
if (shouldRenderTime(formatStr) && calendarKey === undefined && selectedDate !== null && selectedDate !== void 0 && selectedDate.length) {
|
|
190
|
+
var _startDate = selectedDate[0];
|
|
180
191
|
|
|
181
|
-
var _endDate =
|
|
182
|
-
hours: getHours(calendarEndDate),
|
|
183
|
-
minutes: getMinutes(calendarEndDate),
|
|
184
|
-
seconds: getSeconds(calendarEndDate)
|
|
185
|
-
});
|
|
192
|
+
var _endDate = getCalendarEndDatetime((0, _dateUtils.addMonths)(_startDate, 1));
|
|
186
193
|
|
|
187
194
|
nextValue = [_startDate, _endDate];
|
|
188
195
|
}
|
|
@@ -191,7 +198,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
191
198
|
value: nextValue,
|
|
192
199
|
calendarKey: calendarKey
|
|
193
200
|
}));
|
|
194
|
-
}, [
|
|
201
|
+
}, [getCalendarEndDatetime, formatStr]); // if valueProp changed then update selectValue/hoverValue
|
|
195
202
|
|
|
196
203
|
(0, _react.useEffect)(function () {
|
|
197
204
|
setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
|
|
@@ -355,19 +362,31 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
355
362
|
nextSelectDates = hoverRangeValue;
|
|
356
363
|
selectRangeValueRef.current = hoverRangeValue;
|
|
357
364
|
}
|
|
358
|
-
}
|
|
365
|
+
}
|
|
359
366
|
|
|
367
|
+
var shouldRenderTime = _utils.DateUtils.shouldRenderTime,
|
|
368
|
+
isAfter = _utils.DateUtils.isAfter;
|
|
360
369
|
|
|
361
|
-
if (nextSelectDates.length === 2
|
|
362
|
-
|
|
370
|
+
if (nextSelectDates.length === 2) {
|
|
371
|
+
// If user have completed the selection, then sort the selected dates.
|
|
372
|
+
if (isAfter(nextSelectDates[0], nextSelectDates[1])) {
|
|
373
|
+
nextSelectDates.reverse();
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
if (shouldRenderTime(formatStr)) {
|
|
377
|
+
nextSelectDates[1] = getCalendarEndDatetime(nextSelectDates[1]);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
setHoverDateRange(nextSelectDates);
|
|
381
|
+
} else {
|
|
382
|
+
setHoverDateRange([nextSelectDates[0], nextSelectDates[0]]);
|
|
363
383
|
}
|
|
364
384
|
|
|
365
|
-
setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : [nextSelectDates[0], nextSelectDates[0]]);
|
|
366
385
|
setSelectedDates(nextSelectDates);
|
|
367
386
|
updateCalendarDateRange(nextSelectDates);
|
|
368
387
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
|
|
369
388
|
hasDoneSelect.current = !hasDoneSelect.current;
|
|
370
|
-
}, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
|
|
389
|
+
}, [formatStr, getCalendarEndDatetime, getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDateRange]);
|
|
371
390
|
/**
|
|
372
391
|
* If `selectValue` changed, there will be the following effects.
|
|
373
392
|
* 1. Check if the selection is completed.
|
package/dist/rsuite-rtl.css
CHANGED
|
@@ -4358,6 +4358,15 @@ label:hover .rs-checkbox-wrapper .rs-checkbox-inner::before {
|
|
|
4358
4358
|
.rs-picker-date-inline .rs-calendar {
|
|
4359
4359
|
height: 286px;
|
|
4360
4360
|
}
|
|
4361
|
+
.rs-picker-date-predefined {
|
|
4362
|
+
height: 325px;
|
|
4363
|
+
border-left: 1px solid #e5e5ea;
|
|
4364
|
+
border-left: 1px solid var(--rs-border-primary);
|
|
4365
|
+
padding: 4px 0;
|
|
4366
|
+
}
|
|
4367
|
+
.rs-picker-date-predefined .rs-btn {
|
|
4368
|
+
display: block;
|
|
4369
|
+
}
|
|
4361
4370
|
.rs-picker-menu .rs-picker-toolbar {
|
|
4362
4371
|
max-width: 100%;
|
|
4363
4372
|
}
|
|
@@ -14277,12 +14286,6 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
|
|
|
14277
14286
|
-webkit-box-shadow: none;
|
|
14278
14287
|
box-shadow: none;
|
|
14279
14288
|
}
|
|
14280
|
-
.rs-table-row,
|
|
14281
|
-
.rs-table-cell-group,
|
|
14282
|
-
.rs-table-cell {
|
|
14283
|
-
-webkit-transition: background-color 0.3s linear;
|
|
14284
|
-
transition: background-color 0.3s linear;
|
|
14285
|
-
}
|
|
14286
14289
|
.rs-table-hover .rs-table-row:not(.rs-table-row-header):hover,
|
|
14287
14290
|
.rs-table-hover .rs-table-row:hover .rs-table-cell-group,
|
|
14288
14291
|
.rs-table-hover .rs-table-row:hover .rs-table-cell {
|
|
@@ -14444,6 +14447,17 @@ textarea.rs-picker-menu .rs-picker-search-bar .rs-picker-search-bar-input {
|
|
|
14444
14447
|
border-bottom: 1px solid #f2f2f5 !important;
|
|
14445
14448
|
border-bottom: 1px solid var(--rs-border-secondary) !important;
|
|
14446
14449
|
}
|
|
14450
|
+
.rs-table-cell-full-text:hover {
|
|
14451
|
+
z-index: 1 !important;
|
|
14452
|
+
width: auto !important;
|
|
14453
|
+
-webkit-box-shadow: inset #3498ff 0px 0px 2px;
|
|
14454
|
+
-webkit-box-shadow: inset var(--rs-primary-500) 0px 0px 2px;
|
|
14455
|
+
box-shadow: inset #3498ff 0px 0px 2px;
|
|
14456
|
+
box-shadow: inset var(--rs-primary-500) 0px 0px 2px;
|
|
14457
|
+
}
|
|
14458
|
+
.rs-table-cell-full-text:hover .rs-table-cell-content {
|
|
14459
|
+
width: auto !important;
|
|
14460
|
+
}
|
|
14447
14461
|
.rs-table-cell-header-sortable .rs-table-cell-content {
|
|
14448
14462
|
cursor: pointer;
|
|
14449
14463
|
}
|