rsuite 5.43.0 → 5.45.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/Button/styles/index.less +1 -1
- package/CHANGELOG.md +24 -0
- package/Drawer/styles/index.less +1 -1
- package/Modal/styles/index.less +24 -2
- package/Picker/styles/index.less +0 -4
- package/cjs/Cascader/Cascader.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.d.ts +1 -1
- package/cjs/CheckTreePicker/CheckTreePicker.d.ts +1 -1
- package/cjs/CheckTreePicker/CheckTreePicker.js +2 -2
- package/cjs/DatePicker/DatePicker.d.ts +3 -1
- package/cjs/DatePicker/DatePicker.js +18 -5
- package/cjs/DatePicker/PredefinedRanges.d.ts +2 -2
- package/cjs/DatePicker/PredefinedRanges.js +8 -8
- package/cjs/DatePicker/Toolbar.js +4 -4
- package/cjs/DateRangePicker/DateRangePicker.d.ts +3 -1
- package/cjs/DateRangePicker/DateRangePicker.js +18 -5
- package/cjs/DateRangePicker/types.d.ts +2 -2
- package/cjs/Drawer/Drawer.d.ts +2 -0
- package/cjs/Drawer/Drawer.js +16 -5
- package/cjs/Drawer/DrawerContext.d.ts +9 -0
- package/cjs/Drawer/DrawerContext.js +10 -0
- package/cjs/FormControl/FormControl.js +1 -1
- package/cjs/InputPicker/InputPicker.d.ts +1 -1
- package/cjs/InputPicker/InputPicker.js +1 -1
- package/cjs/Modal/Modal.d.ts +2 -4
- package/cjs/Modal/Modal.js +24 -13
- package/cjs/Modal/ModalBody.js +14 -8
- package/cjs/Modal/ModalContext.d.ts +1 -3
- package/cjs/Modal/ModalHeader.js +9 -6
- package/cjs/Modal/index.d.ts +1 -0
- package/cjs/Modal/utils.d.ts +4 -1
- package/cjs/Modal/utils.js +9 -4
- package/cjs/MultiCascader/MultiCascader.d.ts +2 -2
- package/cjs/Picker/PickerToggle.d.ts +2 -0
- package/cjs/Picker/PickerToggle.js +10 -4
- package/cjs/Picker/utils.js +3 -2
- package/cjs/SelectPicker/SelectPicker.d.ts +1 -3
- package/cjs/TreePicker/TreePicker.d.ts +1 -1
- package/cjs/toaster/useToaster.js +22 -19
- package/dist/rsuite-no-reset-rtl.css +33 -7
- 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 +33 -7
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +33 -7
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +33 -7
- package/dist/rsuite.js +45 -23
- 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/Cascader/Cascader.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.d.ts +1 -1
- package/esm/CheckTreePicker/CheckTreePicker.d.ts +1 -1
- package/esm/CheckTreePicker/CheckTreePicker.js +2 -2
- package/esm/DatePicker/DatePicker.d.ts +3 -1
- package/esm/DatePicker/DatePicker.js +18 -5
- package/esm/DatePicker/PredefinedRanges.d.ts +2 -2
- package/esm/DatePicker/PredefinedRanges.js +8 -8
- package/esm/DatePicker/Toolbar.js +4 -4
- package/esm/DateRangePicker/DateRangePicker.d.ts +3 -1
- package/esm/DateRangePicker/DateRangePicker.js +18 -5
- package/esm/DateRangePicker/types.d.ts +2 -2
- package/esm/Drawer/Drawer.d.ts +2 -0
- package/esm/Drawer/Drawer.js +15 -5
- package/esm/Drawer/DrawerContext.d.ts +9 -0
- package/esm/Drawer/DrawerContext.js +4 -0
- package/esm/FormControl/FormControl.js +1 -1
- package/esm/InputPicker/InputPicker.d.ts +1 -1
- package/esm/InputPicker/InputPicker.js +1 -1
- package/esm/Modal/Modal.d.ts +2 -4
- package/esm/Modal/Modal.js +25 -14
- package/esm/Modal/ModalBody.js +14 -8
- package/esm/Modal/ModalContext.d.ts +1 -3
- package/esm/Modal/ModalHeader.js +9 -6
- package/esm/Modal/index.d.ts +1 -0
- package/esm/Modal/utils.d.ts +4 -1
- package/esm/Modal/utils.js +9 -4
- package/esm/MultiCascader/MultiCascader.d.ts +2 -2
- package/esm/Picker/PickerToggle.d.ts +2 -0
- package/esm/Picker/PickerToggle.js +10 -4
- package/esm/Picker/utils.js +3 -2
- package/esm/SelectPicker/SelectPicker.d.ts +1 -3
- package/esm/TreePicker/TreePicker.d.ts +1 -1
- package/esm/toaster/useToaster.js +22 -19
- package/package.json +2 -2
package/Button/styles/index.less
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
# [5.45.0](https://github.com/rsuite/rsuite/compare/v5.44.0...v5.45.0) (2023-11-17)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
- **Button:** fix button radius using wrong less variable ([#3451](https://github.com/rsuite/rsuite/issues/3451)) ([037a2b3](https://github.com/rsuite/rsuite/commit/037a2b3fb2696a55390018958a3d84cd0dc38958))
|
|
6
|
+
- formControll will pass undefined as value when value is null defaultValue is undefined ([#3456](https://github.com/rsuite/rsuite/issues/3456)) ([cde5a88](https://github.com/rsuite/rsuite/commit/cde5a889036f1873115b8be2ac31a31b8ff28bd3))
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- **Drawer:** add support for closeButton ([#3450](https://github.com/rsuite/rsuite/issues/3450)) ([90f25d0](https://github.com/rsuite/rsuite/commit/90f25d09e131e606c9ebd6dca41c0047e02f7908))
|
|
11
|
+
- **Modal,Drawer:** size prop supports number and string values ([#3103](https://github.com/rsuite/rsuite/issues/3103)) ([39741b7](https://github.com/rsuite/rsuite/commit/39741b755460e29cb8cfefb32bf4056b14cbf985))
|
|
12
|
+
|
|
13
|
+
# [5.44.0](https://github.com/rsuite/rsuite/compare/5.43.0...5.44.0) (2023-11-10)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- **DatePicker,DateRangePicker:** fix inability to clear values via Backspace key ([#3446](https://github.com/rsuite/rsuite/issues/3446)) ([ca7dcdd](https://github.com/rsuite/rsuite/commit/ca7dcddb1406b8d6a20ff4ad11755fbac83be07e))
|
|
18
|
+
- **toaster:** fix useToaster not keep same reference when re-renders ([#3440](https://github.com/rsuite/rsuite/issues/3440)) ([a603033](https://github.com/rsuite/rsuite/commit/a603033eeb0a1de2299938c506fb42ee13375f2c))
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
- add loading prop for all pickers ([#3444](https://github.com/rsuite/rsuite/issues/3444)) ([3c5b2af](https://github.com/rsuite/rsuite/commit/3c5b2af3658bb44c8eb22f1c59f8a9c989c7e62e))
|
|
23
|
+
- **DatePicker,DateRangePicker:** add support for onShortcutClick ([#3439](https://github.com/rsuite/rsuite/issues/3439)) ([ae00f90](https://github.com/rsuite/rsuite/commit/ae00f9045fd7dba95739f1f3fc8a21d671b6875b))
|
|
24
|
+
|
|
1
25
|
# [5.43.0](https://github.com/rsuite/rsuite/compare/5.42.0...5.43.0) (2023-11-03)
|
|
2
26
|
|
|
3
27
|
### Bug Fixes
|
package/Drawer/styles/index.less
CHANGED
package/Modal/styles/index.less
CHANGED
|
@@ -72,8 +72,30 @@
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
&-full {
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
margin: 0;
|
|
76
|
+
height: 100%;
|
|
77
|
+
|
|
78
|
+
.rs-modal-content {
|
|
79
|
+
position: absolute;
|
|
80
|
+
height: 100%;
|
|
81
|
+
width: 100%;
|
|
82
|
+
border-radius: 0;
|
|
83
|
+
display: flex;
|
|
84
|
+
flex-direction: column;
|
|
85
|
+
|
|
86
|
+
.rs-modal-header {
|
|
87
|
+
flex: 0 0 auto;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.rs-modal-body {
|
|
91
|
+
flex: 1 1 auto;
|
|
92
|
+
overflow: auto;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.rs-modal-footer {
|
|
96
|
+
flex: 0 0 auto;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
77
99
|
}
|
|
78
100
|
}
|
|
79
101
|
|
package/Picker/styles/index.less
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PickerLocale } from '../locales';
|
|
3
|
-
import { PickerHandle } from '../Picker';
|
|
3
|
+
import { PickerHandle, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
5
5
|
export declare type ValueType = number | string;
|
|
6
|
-
export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T | null, PickerLocale, ItemDataType<T
|
|
6
|
+
export interface CascaderProps<T = ValueType> extends FormControlPickerProps<T | null, PickerLocale, ItemDataType<T>>, Pick<PickerToggleProps, 'loading'> {
|
|
7
7
|
/** Sets the width of the menu */
|
|
8
8
|
menuWidth?: number;
|
|
9
9
|
/** Sets the height of the menu */
|
|
@@ -4,7 +4,7 @@ import { PickerHandle, PickerToggleProps } from '../Picker';
|
|
|
4
4
|
import { ItemDataType, FormControlPickerProps } from '../@types/common';
|
|
5
5
|
import type { MultipleSelectProps } from '../SelectPicker';
|
|
6
6
|
export declare type ValueType = (number | string)[];
|
|
7
|
-
export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>>, MultipleSelectProps<T>, Pick<PickerToggleProps, 'label' | 'caretAs'> {
|
|
7
|
+
export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerLocale, ItemDataType<T>>, MultipleSelectProps<T>, Pick<PickerToggleProps, 'label' | 'caretAs' | 'loading'> {
|
|
8
8
|
/** Top the selected option in the options */
|
|
9
9
|
sticky?: boolean;
|
|
10
10
|
/** A picker that can be counted */
|
|
@@ -4,7 +4,7 @@ import { PickerComponent, PickerToggleProps } from '../Picker';
|
|
|
4
4
|
import { TreeBaseProps } from '../Tree/Tree';
|
|
5
5
|
import { FormControlPickerProps, ItemDataType } from '../@types/common';
|
|
6
6
|
export declare type ValueType = (string | number)[];
|
|
7
|
-
export interface CheckTreePickerProps<T = ValueType> extends TreeBaseProps<T, ItemDataType>, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs'> {
|
|
7
|
+
export interface CheckTreePickerProps<T = ValueType> extends TreeBaseProps<T, ItemDataType>, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs' | 'loading'> {
|
|
8
8
|
/** Tree node cascade */
|
|
9
9
|
cascade?: boolean;
|
|
10
10
|
/** A picker that can be counted */
|
|
@@ -487,7 +487,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
487
487
|
handleSelect(activeItem, event);
|
|
488
488
|
}
|
|
489
489
|
}, [flattenNodes, focusItemValue, handleSelect, uncheckableItemValues, valueKey]);
|
|
490
|
-
var onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)({
|
|
490
|
+
var onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({
|
|
491
491
|
toggle: !focusItemValue || !active,
|
|
492
492
|
triggerRef: triggerRef,
|
|
493
493
|
targetRef: targetRef,
|
|
@@ -510,7 +510,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
510
510
|
del: handleClean
|
|
511
511
|
});
|
|
512
512
|
}
|
|
513
|
-
});
|
|
513
|
+
}, rest));
|
|
514
514
|
var handleTreeKeydown = (0, _react.useCallback)(function (event) {
|
|
515
515
|
if (!treeViewRef.current) {
|
|
516
516
|
return;
|
|
@@ -4,7 +4,7 @@ import { DatePickerLocale } from '../locales';
|
|
|
4
4
|
import { PickerToggleProps } from '../Picker';
|
|
5
5
|
import { FormControlBaseProps, PickerBaseProps, RsRefForwardingComponent } from '../@types/common';
|
|
6
6
|
export type { RangeType } from './Toolbar';
|
|
7
|
-
export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext'> {
|
|
7
|
+
export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, FormControlBaseProps<Date | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext' | 'loading'> {
|
|
8
8
|
/** Predefined date Ranges */
|
|
9
9
|
ranges?: RangeType<Date>[];
|
|
10
10
|
/** Calendar panel default presentation date and time */
|
|
@@ -94,6 +94,8 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
|
|
|
94
94
|
onNextMonth?: (date: Date) => void;
|
|
95
95
|
/** Called after clicking the OK button */
|
|
96
96
|
onOk?: (date: Date, event: React.SyntheticEvent) => void;
|
|
97
|
+
/** Called after clicking the shortcut button */
|
|
98
|
+
onShortcutClick?: (range: RangeType<Date>, event: React.MouseEvent) => void;
|
|
97
99
|
/** Called when clean */
|
|
98
100
|
onClean?: (event: React.MouseEvent) => void;
|
|
99
101
|
/** Custom render value */
|
|
@@ -12,6 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
12
12
|
var _mapValues = _interopRequireDefault(require("lodash/mapValues"));
|
|
13
13
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
14
14
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
15
|
+
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
15
16
|
var _Calendar = _interopRequireDefault(require("@rsuite/icons/legacy/Calendar"));
|
|
16
17
|
var _ClockO = _interopRequireDefault(require("@rsuite/icons/legacy/ClockO"));
|
|
17
18
|
var _CalendarContainer = _interopRequireDefault(require("../Calendar/CalendarContainer"));
|
|
@@ -81,7 +82,8 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
81
82
|
onSelect = props.onSelect,
|
|
82
83
|
onToggleMonthDropdown = props.onToggleMonthDropdown,
|
|
83
84
|
onToggleTimeDropdown = props.onToggleTimeDropdown,
|
|
84
|
-
|
|
85
|
+
onShortcutClick = props.onShortcutClick,
|
|
86
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "format", "isoWeek", "limitEndYear", "limitStartYear", "locale", "menuClassName", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "toggleAs", "caretAs", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "renderValue", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick"]);
|
|
85
87
|
var _useCustom = (0, _utils.useCustom)('DatePicker', overrideLocale),
|
|
86
88
|
locale = _useCustom.locale,
|
|
87
89
|
formatDate = _useCustom.formatDate,
|
|
@@ -180,10 +182,12 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
180
182
|
/**
|
|
181
183
|
* The callback triggered after the date in the shortcut area is clicked.
|
|
182
184
|
*/
|
|
183
|
-
var handleShortcutPageDate = (0, _react.useCallback)(function (
|
|
185
|
+
var handleShortcutPageDate = (0, _react.useCallback)(function (range, closeOverlay, event) {
|
|
186
|
+
var value = range.value;
|
|
184
187
|
updateValue(event, value, closeOverlay);
|
|
185
188
|
handleDateChange(value, event);
|
|
186
|
-
|
|
189
|
+
onShortcutClick === null || onShortcutClick === void 0 ? void 0 : onShortcutClick(range, event);
|
|
190
|
+
}, [handleDateChange, onShortcutClick, updateValue]);
|
|
187
191
|
|
|
188
192
|
/**
|
|
189
193
|
* The callback triggered after clicking the OK button.
|
|
@@ -296,6 +300,14 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
296
300
|
}
|
|
297
301
|
setInputState('Initial');
|
|
298
302
|
}, [inputState, calendarDate, updateValue]);
|
|
303
|
+
var handleInputBackspace = (0, _react.useCallback)(function (event) {
|
|
304
|
+
var value = event.target.value;
|
|
305
|
+
|
|
306
|
+
// When the input box is empty, the date is cleared.
|
|
307
|
+
if (value === '') {
|
|
308
|
+
handleClean(event);
|
|
309
|
+
}
|
|
310
|
+
}, [handleClean]);
|
|
299
311
|
var handleEntered = (0, _react.useCallback)(function () {
|
|
300
312
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
301
313
|
setActive(true);
|
|
@@ -386,14 +398,14 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
386
398
|
calendarDate: calendarDate,
|
|
387
399
|
locale: locale,
|
|
388
400
|
disabledShortcut: disabledToolbarHandle,
|
|
389
|
-
|
|
401
|
+
onShortcutClick: handleShortcutPageDate
|
|
390
402
|
}), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, calendar, /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
|
|
391
403
|
locale: locale,
|
|
392
404
|
ranges: bottomRanges,
|
|
393
405
|
calendarDate: calendarDate,
|
|
394
406
|
disabledOkBtn: isOKButtonDisabled,
|
|
395
407
|
disabledShortcut: disabledToolbarHandle,
|
|
396
|
-
|
|
408
|
+
onShortcutClick: handleShortcutPageDate,
|
|
397
409
|
onOk: handleOK,
|
|
398
410
|
hideOkBtn: oneTap
|
|
399
411
|
}))));
|
|
@@ -451,6 +463,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
451
463
|
onInputChange: handleInputChange,
|
|
452
464
|
onInputBlur: handleInputPressEnd,
|
|
453
465
|
onInputPressEnter: handleInputPressEnd,
|
|
466
|
+
onInputBackspace: (0, _debounce.default)(handleInputBackspace, 10),
|
|
454
467
|
onKeyDown: onPickerKeyDown,
|
|
455
468
|
onClean: (0, _utils.createChainedFunction)(handleClean, onClean),
|
|
456
469
|
cleanable: cleanable && !disabled,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { StackProps } from '../Stack';
|
|
3
|
-
import { RangeType } from './types';
|
|
3
|
+
import { InnerRange, RangeType } from './types';
|
|
4
4
|
import { CalendarLocale } from '../locales';
|
|
5
5
|
export interface PredefinedRangesProps<T = any, Shortcut = T> extends StackProps {
|
|
6
6
|
ranges?: RangeType<Shortcut>[];
|
|
7
7
|
calendarDate: T;
|
|
8
8
|
locale: CalendarLocale;
|
|
9
9
|
disabledShortcut?: (value: T) => boolean;
|
|
10
|
-
|
|
10
|
+
onShortcutClick?: (range: InnerRange<Shortcut>, closeOverlay: boolean, event: React.MouseEvent) => void;
|
|
11
11
|
}
|
|
12
12
|
declare const PredefinedRanges: React.ForwardRefExoticComponent<PredefinedRangesProps<any, any> & React.RefAttributes<HTMLDivElement>>;
|
|
13
13
|
export default PredefinedRanges;
|
|
@@ -15,11 +15,11 @@ var _utils2 = require("./utils");
|
|
|
15
15
|
var PredefinedRanges = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
16
16
|
var className = props.className,
|
|
17
17
|
disabledShortcut = props.disabledShortcut,
|
|
18
|
-
|
|
18
|
+
onShortcutClick = props.onShortcutClick,
|
|
19
19
|
calendarDate = props.calendarDate,
|
|
20
20
|
rangesProp = props.ranges,
|
|
21
21
|
locale = props.locale,
|
|
22
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "disabledShortcut", "
|
|
22
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "disabledShortcut", "onShortcutClick", "calendarDate", "ranges", "locale"]);
|
|
23
23
|
var _useState = (0, _react.useState)((0, _utils2.getRanges)(props)),
|
|
24
24
|
ranges = _useState[0],
|
|
25
25
|
setRanges = _useState[1];
|
|
@@ -42,17 +42,17 @@ var PredefinedRanges = /*#__PURE__*/_react.default.forwardRef(function (props, r
|
|
|
42
42
|
ref: ref,
|
|
43
43
|
alignItems: "flex-start",
|
|
44
44
|
spacing: 4
|
|
45
|
-
}, rest), ranges.map(function (
|
|
46
|
-
var value =
|
|
47
|
-
closeOverlay =
|
|
48
|
-
label =
|
|
49
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(
|
|
45
|
+
}, rest), ranges.map(function (range, index) {
|
|
46
|
+
var value = range.value,
|
|
47
|
+
closeOverlay = range.closeOverlay,
|
|
48
|
+
label = range.label,
|
|
49
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(range, ["value", "closeOverlay", "label"]);
|
|
50
50
|
var disabled = disabledShortcut === null || disabledShortcut === void 0 ? void 0 : disabledShortcut(value);
|
|
51
51
|
var handleClickShortcut = function handleClickShortcut(event) {
|
|
52
52
|
if (disabled) {
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
onShortcutClick === null || onShortcutClick === void 0 ? void 0 : onShortcutClick(range, closeOverlay !== false ? true : false, event);
|
|
56
56
|
};
|
|
57
57
|
return /*#__PURE__*/_react.default.createElement(_Button.default, (0, _extends2.default)({
|
|
58
58
|
appearance: "link",
|
|
@@ -41,11 +41,11 @@ var Toolbar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
41
41
|
disabledShortcut = props.disabledShortcut,
|
|
42
42
|
hideOkBtn = props.hideOkBtn,
|
|
43
43
|
onOk = props.onOk,
|
|
44
|
-
|
|
44
|
+
onShortcutClick = props.onShortcutClick,
|
|
45
45
|
calendarDate = props.calendarDate,
|
|
46
46
|
ranges = props.ranges,
|
|
47
47
|
locale = props.locale,
|
|
48
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "classPrefix", "disabledOkBtn", "disabledShortcut", "hideOkBtn", "onOk", "
|
|
48
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "classPrefix", "disabledOkBtn", "disabledShortcut", "hideOkBtn", "onOk", "onShortcutClick", "calendarDate", "ranges", "locale"]);
|
|
49
49
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
50
50
|
merge = _useClassNames.merge,
|
|
51
51
|
prefix = _useClassNames.prefix,
|
|
@@ -66,7 +66,7 @@ var Toolbar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
66
66
|
calendarDate: calendarDate,
|
|
67
67
|
locale: locale,
|
|
68
68
|
disabledShortcut: disabledShortcut,
|
|
69
|
-
|
|
69
|
+
onShortcutClick: onShortcutClick
|
|
70
70
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
71
71
|
className: prefix('right')
|
|
72
72
|
}, /*#__PURE__*/_react.default.createElement(SubmitButton, {
|
|
@@ -82,7 +82,7 @@ Toolbar.propTypes = {
|
|
|
82
82
|
className: _propTypes.default.string,
|
|
83
83
|
classPrefix: _propTypes.default.string,
|
|
84
84
|
calendarDate: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.arrayOf(_propTypes.default.instanceOf(Date))]).isRequired,
|
|
85
|
-
|
|
85
|
+
onShortcutClick: _propTypes.default.func,
|
|
86
86
|
onOk: _propTypes.default.func,
|
|
87
87
|
disabledShortcut: _propTypes.default.func,
|
|
88
88
|
disabledOkBtn: _propTypes.default.func,
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { FormControlBaseProps, PickerBaseProps } from '../@types/common';
|
|
3
3
|
import { PickerComponent, PickerToggleProps } from '../Picker';
|
|
4
4
|
import { DisabledDateFunction, RangeType, DateRange } from './types';
|
|
5
|
-
export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<DateRange | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext'> {
|
|
5
|
+
export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<DateRange | null>, Pick<PickerToggleProps, 'caretAs' | 'readOnly' | 'plaintext' | 'loading'> {
|
|
6
6
|
/** Predefined date ranges */
|
|
7
7
|
ranges?: RangeType[];
|
|
8
8
|
/** Format date */
|
|
@@ -43,6 +43,8 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
|
|
|
43
43
|
onSelect?: (date: Date, event?: React.SyntheticEvent) => void;
|
|
44
44
|
/** Called after clicking the OK button */
|
|
45
45
|
onOk?: (date: DateRange, event: React.SyntheticEvent) => void;
|
|
46
|
+
/** Called after clicking the shortcut button */
|
|
47
|
+
onShortcutClick?: (range: RangeType, event: React.MouseEvent) => void;
|
|
46
48
|
/** Called when clean */
|
|
47
49
|
onClean?: (event: React.MouseEvent) => void;
|
|
48
50
|
/** Custom render value */
|
|
@@ -12,6 +12,7 @@ var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
|
12
12
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
13
13
|
var _partial = _interopRequireDefault(require("lodash/partial"));
|
|
14
14
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
15
|
+
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
15
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
16
17
|
var _react = _interopRequireWildcard(require("react"));
|
|
17
18
|
var _CustomProvider = require("../CustomProvider");
|
|
@@ -81,8 +82,9 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
81
82
|
onOk = props.onOk,
|
|
82
83
|
onOpen = props.onOpen,
|
|
83
84
|
onSelect = props.onSelect,
|
|
85
|
+
onShortcutClick = props.onShortcutClick,
|
|
84
86
|
renderTitle = props.renderTitle,
|
|
85
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "isoWeek", "limitEndYear", "limitStartYear", "locale", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "renderValue", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "toggleAs", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect", "renderTitle"]);
|
|
87
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "appearance", "editable", "cleanable", "character", "defaultCalendarValue", "defaultValue", "disabled", "disabledDate", "shouldDisableDate", "format", "hoverRange", "isoWeek", "limitEndYear", "limitStartYear", "locale", "menuClassName", "menuStyle", "oneTap", "placeholder", "placement", "ranges", "renderValue", "showOneCalendar", "showWeekNumbers", "showMeridian", "style", "toggleAs", "caretAs", "value", "onChange", "onClean", "onClose", "onEnter", "onEntered", "onExited", "onOk", "onOpen", "onSelect", "onShortcutClick", "renderTitle"]);
|
|
86
88
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
87
89
|
merge = _useClassNames.merge,
|
|
88
90
|
prefix = _useClassNames.prefix;
|
|
@@ -408,10 +410,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
408
410
|
/**
|
|
409
411
|
* Toolbar operation callback function
|
|
410
412
|
*/
|
|
411
|
-
var handleShortcutPageDate = (0, _react.useCallback)(function (
|
|
413
|
+
var handleShortcutPageDate = (0, _react.useCallback)(function (range, closeOverlay, event) {
|
|
412
414
|
if (closeOverlay === void 0) {
|
|
413
415
|
closeOverlay = false;
|
|
414
416
|
}
|
|
417
|
+
var value = range.value;
|
|
415
418
|
updateCalendarDateRange({
|
|
416
419
|
dateRange: value
|
|
417
420
|
});
|
|
@@ -420,10 +423,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
420
423
|
} else {
|
|
421
424
|
setSelectedDates(value !== null && value !== void 0 ? value : []);
|
|
422
425
|
}
|
|
426
|
+
onShortcutClick === null || onShortcutClick === void 0 ? void 0 : onShortcutClick(range, event);
|
|
423
427
|
|
|
424
428
|
// End unfinished selections.
|
|
425
429
|
setSelectedIdle(true);
|
|
426
|
-
}, [handleValueUpdate, updateCalendarDateRange]);
|
|
430
|
+
}, [handleValueUpdate, onShortcutClick, updateCalendarDateRange]);
|
|
427
431
|
var handleOK = (0, _react.useCallback)(function (event) {
|
|
428
432
|
handleValueUpdate(event, selectedDates);
|
|
429
433
|
onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
|
|
@@ -481,6 +485,14 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
481
485
|
}
|
|
482
486
|
setInputState('Initial');
|
|
483
487
|
}, [handleValueUpdate, selectedDates, inputState]);
|
|
488
|
+
var handleInputBackspace = (0, _react.useCallback)(function (event) {
|
|
489
|
+
var value = event.target.value;
|
|
490
|
+
|
|
491
|
+
// When the input box is empty, the date is cleared.
|
|
492
|
+
if (value === '') {
|
|
493
|
+
handleClean(event);
|
|
494
|
+
}
|
|
495
|
+
}, [handleClean]);
|
|
484
496
|
var handleEnter = (0, _react.useCallback)(function () {
|
|
485
497
|
var nextCalendarDate;
|
|
486
498
|
if (value && value.length) {
|
|
@@ -611,7 +623,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
611
623
|
calendarDate: calendarDate,
|
|
612
624
|
locale: locale,
|
|
613
625
|
disabledShortcut: disabledShortcutButton,
|
|
614
|
-
|
|
626
|
+
onShortcutClick: handleShortcutPageDate
|
|
615
627
|
}), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
616
628
|
className: prefix('daterange-content')
|
|
617
629
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -633,7 +645,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
633
645
|
disabledShortcut: disabledShortcutButton,
|
|
634
646
|
hideOkBtn: oneTap,
|
|
635
647
|
onOk: handleOK,
|
|
636
|
-
|
|
648
|
+
onShortcutClick: handleShortcutPageDate,
|
|
637
649
|
ranges: bottomRanges
|
|
638
650
|
})))));
|
|
639
651
|
};
|
|
@@ -670,6 +682,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
670
682
|
onInputChange: handleInputChange,
|
|
671
683
|
onInputBlur: handleInputPressEnd,
|
|
672
684
|
onInputPressEnter: handleInputPressEnd,
|
|
685
|
+
onInputBackspace: (0, _debounce.default)(handleInputBackspace, 10),
|
|
673
686
|
onKeyDown: onPickerKeyDown,
|
|
674
687
|
onClean: (0, _utils.createChainedFunction)(handleClean, onClean),
|
|
675
688
|
cleanable: cleanable && !disabled,
|
|
@@ -2,9 +2,9 @@ import React from 'react';
|
|
|
2
2
|
import { DATERANGE_DISABLED_TARGET } from '../utils/constants';
|
|
3
3
|
export declare type ValueType = [Date?, Date?];
|
|
4
4
|
export declare type DateRange = [Date, Date];
|
|
5
|
-
export interface RangeType {
|
|
5
|
+
export interface RangeType<T = DateRange> {
|
|
6
6
|
label: React.ReactNode;
|
|
7
|
-
value:
|
|
7
|
+
value: T | ((value?: T) => T);
|
|
8
8
|
closeOverlay?: boolean;
|
|
9
9
|
placement?: 'bottom' | 'left';
|
|
10
10
|
}
|
package/cjs/Drawer/Drawer.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ import { TypeAttributes, RsRefForwardingComponent } from '../@types/common';
|
|
|
4
4
|
export interface DrawerProps extends ModalProps {
|
|
5
5
|
/** The placement of Drawer */
|
|
6
6
|
placement?: TypeAttributes.Placement4;
|
|
7
|
+
/** Custom close button */
|
|
8
|
+
closeButton?: React.ReactNode | boolean;
|
|
7
9
|
}
|
|
8
10
|
declare const DrawerBody: RsRefForwardingComponent<'div', ModalBodyProps>;
|
|
9
11
|
declare const DrawerHeader: RsRefForwardingComponent<'div', ModalHeaderProps>;
|
package/cjs/Drawer/Drawer.js
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
6
|
exports.__esModule = true;
|
|
6
7
|
exports.default = void 0;
|
|
7
8
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
8
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
12
|
var _Slide = _interopRequireDefault(require("../Animation/Slide"));
|
|
12
13
|
var _Modal = _interopRequireDefault(require("../Modal"));
|
|
13
14
|
var _utils = require("../utils");
|
|
14
15
|
var _deprecateComponent = _interopRequireDefault(require("../utils/deprecateComponent"));
|
|
16
|
+
var _DrawerContext = _interopRequireDefault(require("./DrawerContext"));
|
|
15
17
|
var DrawerBody = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
16
18
|
return /*#__PURE__*/_react.default.createElement(_Modal.default.Body, (0, _extends2.default)({
|
|
17
19
|
classPrefix: "drawer-body"
|
|
@@ -55,7 +57,9 @@ var Drawer = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
55
57
|
classPrefix = _props$classPrefix === void 0 ? 'drawer' : _props$classPrefix,
|
|
56
58
|
_props$animation = props.animation,
|
|
57
59
|
animation = _props$animation === void 0 ? _Slide.default : _props$animation,
|
|
58
|
-
|
|
60
|
+
_props$closeButton = props.closeButton,
|
|
61
|
+
closeButton = _props$closeButton === void 0 ? true : _props$closeButton,
|
|
62
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["className", "placement", "classPrefix", "animation", "closeButton"]);
|
|
59
63
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
60
64
|
merge = _useClassNames.merge,
|
|
61
65
|
prefix = _useClassNames.prefix;
|
|
@@ -63,14 +67,21 @@ var Drawer = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
63
67
|
var animationProps = {
|
|
64
68
|
placement: placement
|
|
65
69
|
};
|
|
66
|
-
|
|
70
|
+
var contextValue = (0, _react.useMemo)(function () {
|
|
71
|
+
return {
|
|
72
|
+
closeButton: closeButton,
|
|
73
|
+
isDrawer: true
|
|
74
|
+
};
|
|
75
|
+
}, [closeButton]);
|
|
76
|
+
return /*#__PURE__*/_react.default.createElement(_DrawerContext.default.Provider, {
|
|
77
|
+
value: contextValue
|
|
78
|
+
}, /*#__PURE__*/_react.default.createElement(_Modal.default, (0, _extends2.default)({}, rest, {
|
|
67
79
|
ref: ref,
|
|
68
|
-
drawer: true,
|
|
69
80
|
classPrefix: classPrefix,
|
|
70
81
|
className: classes,
|
|
71
82
|
animation: animation,
|
|
72
83
|
animationProps: animationProps
|
|
73
|
-
}));
|
|
84
|
+
})));
|
|
74
85
|
});
|
|
75
86
|
DrawerBody.displayName = 'DrawerBody';
|
|
76
87
|
DrawerHeader.displayName = 'DrawerHeader';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface DrawerContextProps {
|
|
3
|
+
/** Custom close button */
|
|
4
|
+
closeButton?: React.ReactNode | boolean;
|
|
5
|
+
/** Render Modal as Drawer */
|
|
6
|
+
isDrawer: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare const DrawerContext: React.Context<DrawerContextProps | null>;
|
|
9
|
+
export default DrawerContext;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var DrawerContext = /*#__PURE__*/_react.default.createContext(null);
|
|
9
|
+
var _default = DrawerContext;
|
|
10
|
+
exports.default = _default;
|
|
@@ -134,7 +134,7 @@ var FormControl = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
134
134
|
if (AccepterComponent === _Toggle.default) {
|
|
135
135
|
valueKey = 'checked';
|
|
136
136
|
}
|
|
137
|
-
var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = val
|
|
137
|
+
var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = val === undefined ? defaultValue : val, _accepterProps);
|
|
138
138
|
return /*#__PURE__*/_react.default.createElement(Component, {
|
|
139
139
|
className: classes,
|
|
140
140
|
ref: ref
|
|
@@ -26,7 +26,7 @@ interface InputItemDataType extends ItemDataType {
|
|
|
26
26
|
create?: boolean;
|
|
27
27
|
}
|
|
28
28
|
export declare type ValueType = any;
|
|
29
|
-
export interface InputPickerProps<T = ValueType> extends FormControlPickerProps<T, InputPickerLocale, InputItemDataType>, SelectProps<T>, Pick<PickerToggleProps, 'caretAs'> {
|
|
29
|
+
export interface InputPickerProps<T = ValueType> extends FormControlPickerProps<T, InputPickerLocale, InputItemDataType>, SelectProps<T>, Pick<PickerToggleProps, 'caretAs' | 'loading'> {
|
|
30
30
|
tabIndex?: number;
|
|
31
31
|
/** Settings can create new options */
|
|
32
32
|
creatable?: boolean;
|
|
@@ -611,7 +611,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
611
611
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
612
612
|
var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["tag"])))] = multi, _merge[prefix(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["focused"])))] = open, _merge[prefix(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["disabled-options"])))] = disabledOptions, _merge));
|
|
613
613
|
var searching = !!searchKeyword && open;
|
|
614
|
-
var displaySearchInput = searchable && !disabled;
|
|
614
|
+
var displaySearchInput = searchable && !disabled && !rest.loading;
|
|
615
615
|
var inputProps = multi ? {
|
|
616
616
|
inputStyle: {
|
|
617
617
|
maxWidth: maxWidth - 63
|
package/cjs/Modal/Modal.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ import ModalBody from './ModalBody';
|
|
|
5
5
|
import ModalHeader from './ModalHeader';
|
|
6
6
|
import ModalTitle from './ModalTitle';
|
|
7
7
|
import ModalFooter from './ModalFooter';
|
|
8
|
-
import {
|
|
9
|
-
|
|
8
|
+
import { ModalSize } from './utils';
|
|
9
|
+
import { RsRefForwardingComponent } from '../@types/common';
|
|
10
10
|
export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HTMLElement>, 'role' | 'id' | 'aria-labelledby' | 'aria-describedby'> {
|
|
11
11
|
/** A modal can have different sizes */
|
|
12
12
|
size?: ModalSize;
|
|
@@ -27,8 +27,6 @@ export interface ModalProps extends BaseModalProps, Pick<React.HTMLAttributes<HT
|
|
|
27
27
|
dialogAs?: React.ElementType;
|
|
28
28
|
/** Automatically sets the height when the body content is too long. */
|
|
29
29
|
overflow?: boolean;
|
|
30
|
-
/** Render Modal as Drawer */
|
|
31
|
-
drawer?: boolean;
|
|
32
30
|
}
|
|
33
31
|
interface ModalComponent extends RsRefForwardingComponent<'div', ModalProps> {
|
|
34
32
|
Body: typeof ModalBody;
|