rsuite 5.54.0 → 5.55.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 +18 -0
- package/Pagination/styles/index.css +3 -0
- package/Pagination/styles/pagination-group.less +4 -0
- package/cjs/Calendar/CalendarContainer.d.ts +4 -0
- package/cjs/Calendar/CalendarContainer.js +3 -1
- package/cjs/Calendar/TableCell.js +3 -2
- package/cjs/Calendar/types.d.ts +1 -0
- package/cjs/Cascader/DropdownMenu.js +3 -1
- package/cjs/Cascader/TreeView.js +3 -1
- package/cjs/DOMHelper/index.d.ts +23 -32
- package/cjs/DatePicker/DatePicker.d.ts +6 -0
- package/cjs/DatePicker/DatePicker.js +3 -2
- package/cjs/DateRangePicker/DateRangePicker.js +3 -2
- package/cjs/InputNumber/InputNumber.d.ts +36 -11
- package/cjs/InputNumber/InputNumber.js +47 -28
- package/cjs/Pagination/LimitPicker.d.ts +15 -0
- package/cjs/Pagination/LimitPicker.js +51 -0
- package/cjs/Pagination/Pagination.js +7 -8
- package/cjs/Pagination/PaginationButton.js +3 -18
- package/cjs/Pagination/PaginationGroup.d.ts +35 -7
- package/cjs/Pagination/PaginationGroup.js +77 -98
- package/cjs/RangeSlider/RangeSlider.js +14 -11
- package/cjs/Slider/Handle.js +19 -62
- package/cjs/Slider/ProgressBar.js +2 -1
- package/cjs/Slider/Slider.js +14 -10
- package/cjs/Slider/useDrag.d.ts +16 -0
- package/cjs/Slider/useDrag.js +88 -0
- package/cjs/Slider/utils.d.ts +6 -2
- package/cjs/Slider/utils.js +15 -1
- package/cjs/internals/Overlay/positionUtils.d.ts +1 -6
- package/cjs/locales/cs_CZ.d.ts +120 -0
- package/cjs/locales/cs_CZ.js +88 -0
- package/cjs/locales/index.d.ts +1 -0
- package/cjs/locales/index.js +4 -2
- package/dist/rsuite-no-reset-rtl.css +3 -0
- 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 +3 -0
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +3 -0
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +3 -0
- package/dist/rsuite.js +88 -55
- 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/CalendarContainer.d.ts +4 -0
- package/esm/Calendar/CalendarContainer.js +3 -1
- package/esm/Calendar/TableCell.js +5 -4
- package/esm/Calendar/types.d.ts +1 -0
- package/esm/Cascader/DropdownMenu.js +3 -1
- package/esm/Cascader/TreeView.js +3 -1
- package/esm/DOMHelper/index.d.ts +23 -32
- package/esm/DatePicker/DatePicker.d.ts +6 -0
- package/esm/DatePicker/DatePicker.js +3 -2
- package/esm/DateRangePicker/DateRangePicker.js +3 -2
- package/esm/InputNumber/InputNumber.d.ts +36 -11
- package/esm/InputNumber/InputNumber.js +49 -30
- package/esm/Pagination/LimitPicker.d.ts +15 -0
- package/esm/Pagination/LimitPicker.js +44 -0
- package/esm/Pagination/Pagination.js +7 -7
- package/esm/Pagination/PaginationButton.js +4 -18
- package/esm/Pagination/PaginationGroup.d.ts +35 -7
- package/esm/Pagination/PaginationGroup.js +79 -98
- package/esm/RangeSlider/RangeSlider.js +15 -12
- package/esm/Slider/Handle.js +19 -61
- package/esm/Slider/ProgressBar.js +2 -1
- package/esm/Slider/Slider.js +16 -12
- package/esm/Slider/useDrag.d.ts +16 -0
- package/esm/Slider/useDrag.js +82 -0
- package/esm/Slider/utils.d.ts +6 -2
- package/esm/Slider/utils.js +15 -3
- package/esm/internals/Overlay/positionUtils.d.ts +1 -6
- package/esm/locales/cs_CZ.d.ts +120 -0
- package/esm/locales/cs_CZ.js +82 -0
- package/esm/locales/index.d.ts +1 -0
- package/esm/locales/index.js +2 -1
- package/locales/cs_CZ/package.json +7 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
# [5.55.0](https://github.com/rsuite/rsuite/compare/v5.54.0...v5.55.0) (2024-03-01)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **DateRangePicker:** fix time picker does not update when clicking the shortcut item ([#3647](https://github.com/rsuite/rsuite/issues/3647)) ([00c9eaa](https://github.com/rsuite/rsuite/commit/00c9eaa9b246da027c729fb3cf3639001473d4fe))
|
|
7
|
+
* **Pagination:** fix SelectPicker rendering misalignment ([#3643](https://github.com/rsuite/rsuite/issues/3643)) ([044c48f](https://github.com/rsuite/rsuite/commit/044c48f3e358f93bc7568bc83242e7ea6348825e))
|
|
8
|
+
* **Slider,RangeSlider:** fix touch event not working ([#3653](https://github.com/rsuite/rsuite/issues/3653)) ([3d57ebc](https://github.com/rsuite/rsuite/commit/3d57ebcaebafa3207b84987ba7e80cd4c38a2741))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* added czech locale ([#3649](https://github.com/rsuite/rsuite/issues/3649)) ([f589257](https://github.com/rsuite/rsuite/commit/f58925757314da09dd2a2ee0706321860a32ab13))
|
|
14
|
+
* **DatePicker:** add support `renderCell` on `<DatePicker>` ([#3641](https://github.com/rsuite/rsuite/issues/3641)) ([b63d1a3](https://github.com/rsuite/rsuite/commit/b63d1a37b0289383dbe0099481609097e1c4a436))
|
|
15
|
+
* **InputNumber:** add support for `formatter` on `<InputNumber>` ([#3642](https://github.com/rsuite/rsuite/issues/3642)) ([d457d3a](https://github.com/rsuite/rsuite/commit/d457d3a67d929fa02780e4d012844756361c7c68))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
1
19
|
# [5.54.0](https://github.com/rsuite/rsuite/compare/v5.53.2...v5.54.0) (2024-02-22)
|
|
2
20
|
|
|
3
21
|
|
|
@@ -3444,6 +3444,9 @@ textarea.rs-input-group-inside.rs-input-group-xs > .rs-input-group-btn {
|
|
|
3444
3444
|
.rs-pagination-group .rs-pagination {
|
|
3445
3445
|
vertical-align: middle;
|
|
3446
3446
|
}
|
|
3447
|
+
.rs-pagination-group-limit {
|
|
3448
|
+
position: relative;
|
|
3449
|
+
}
|
|
3447
3450
|
.rs-pagination-group-limit + .rs-pagination-group-total {
|
|
3448
3451
|
margin-left: 18px;
|
|
3449
3452
|
}
|
|
@@ -58,6 +58,10 @@ export interface CalendarProps extends WithAsProps, Omit<HTMLAttributes<HTMLDivE
|
|
|
58
58
|
onSelect?: (date: Date, event: React.MouseEvent) => void;
|
|
59
59
|
/** Custom rendering cell*/
|
|
60
60
|
renderCell?: (date: Date) => React.ReactNode;
|
|
61
|
+
/**
|
|
62
|
+
* Custom rendering cell on the picker
|
|
63
|
+
*/
|
|
64
|
+
renderCellOnPicker?: (date: Date) => React.ReactNode;
|
|
61
65
|
/** Custom cell classes base on it's date */
|
|
62
66
|
cellClassName?: (date: Date) => string | undefined;
|
|
63
67
|
/** Called when opening the month view */
|
|
@@ -50,12 +50,13 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
50
50
|
calendarDateProp = props.calendarDate,
|
|
51
51
|
cellClassName = props.cellClassName,
|
|
52
52
|
renderCell = props.renderCell,
|
|
53
|
+
renderCellOnPicker = props.renderCellOnPicker,
|
|
53
54
|
renderTitle = props.renderTitle,
|
|
54
55
|
renderToolbar = props.renderToolbar,
|
|
55
56
|
showMeridian = props.showMeridian,
|
|
56
57
|
showWeekNumbers = props.showWeekNumbers,
|
|
57
58
|
inline = props.inline,
|
|
58
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "dateRange", "disabledBackward", "defaultState", "disabledDate", "disabledForward", "format", "hoverRangeValue", "isoWeek", "targetId", "limitEndYear", "limitStartYear", "locale", "onChangeMonth", "onChangeTime", "onMouseMove", "onMoveBackward", "onMoveForward", "onSelect", "onToggleMeridian", "onToggleMonthDropdown", "onToggleTimeDropdown", "calendarDate", "cellClassName", "renderCell", "renderTitle", "renderToolbar", "showMeridian", "showWeekNumbers", "inline"]);
|
|
59
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "dateRange", "disabledBackward", "defaultState", "disabledDate", "disabledForward", "format", "hoverRangeValue", "isoWeek", "targetId", "limitEndYear", "limitStartYear", "locale", "onChangeMonth", "onChangeTime", "onMouseMove", "onMoveBackward", "onMoveForward", "onSelect", "onToggleMeridian", "onToggleMonthDropdown", "onToggleTimeDropdown", "calendarDate", "cellClassName", "renderCell", "renderCellOnPicker", "renderTitle", "renderToolbar", "showMeridian", "showWeekNumbers", "inline"]);
|
|
59
60
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
60
61
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
61
62
|
merge = _useClassNames.merge,
|
|
@@ -140,6 +141,7 @@ var CalendarContainer = /*#__PURE__*/_react.default.forwardRef(function (props,
|
|
|
140
141
|
onSelect: onSelect,
|
|
141
142
|
cellClassName: cellClassName,
|
|
142
143
|
renderCell: renderCell,
|
|
144
|
+
renderCellOnPicker: renderCellOnPicker,
|
|
143
145
|
showWeekNumbers: showWeekNumbers,
|
|
144
146
|
inline: inline
|
|
145
147
|
};
|
|
@@ -30,6 +30,7 @@ var TableCell = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
30
30
|
onMouseMove = _useCalendarContext.onMouseMove,
|
|
31
31
|
cellClassName = _useCalendarContext.cellClassName,
|
|
32
32
|
renderCell = _useCalendarContext.renderCell,
|
|
33
|
+
renderCellOnPicker = _useCalendarContext.renderCellOnPicker,
|
|
33
34
|
overrideLocale = _useCalendarContext.locale;
|
|
34
35
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
35
36
|
prefix = _useClassNames.prefix,
|
|
@@ -63,9 +64,9 @@ var TableCell = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
63
64
|
onClick: onSelect ? (0, _partial.default)(onSelect, date, disabled) : undefined
|
|
64
65
|
}, rest), /*#__PURE__*/_react.default.createElement("div", {
|
|
65
66
|
className: prefix('cell-content')
|
|
66
|
-
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
67
|
+
}, renderCellOnPicker ? renderCellOnPicker(date) : /*#__PURE__*/_react.default.createElement("span", {
|
|
67
68
|
className: prefix('cell-day')
|
|
68
|
-
},
|
|
69
|
+
}, (0, _dateUtils.getDate)(date)), renderCell === null || renderCell === void 0 ? void 0 : renderCell(date)));
|
|
69
70
|
});
|
|
70
71
|
TableCell.displayName = 'CalendarTableCell';
|
|
71
72
|
var _default = TableCell;
|
package/cjs/Calendar/types.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface CalendarInnerContextValue {
|
|
|
13
13
|
onMouseMove?: (date: Date) => void;
|
|
14
14
|
onSelect?: (date: Date, event: React.MouseEvent) => void;
|
|
15
15
|
renderCell?: (date: Date) => React.ReactNode;
|
|
16
|
+
renderCellOnPicker?: (date: Date) => React.ReactNode;
|
|
16
17
|
cellClassName?: (date: Date) => string | undefined;
|
|
17
18
|
showWeekNumbers?: boolean;
|
|
18
19
|
inline?: boolean;
|
|
@@ -71,7 +71,9 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
71
71
|
if (activeItem) {
|
|
72
72
|
var position = (0, _getPosition.default)(activeItem, column);
|
|
73
73
|
// Let the active option scroll into view.
|
|
74
|
-
|
|
74
|
+
if (position !== null && position !== void 0 && position.top) {
|
|
75
|
+
(0, _scrollTop.default)(column, position === null || position === void 0 ? void 0 : position.top);
|
|
76
|
+
}
|
|
75
77
|
}
|
|
76
78
|
});
|
|
77
79
|
}, [prefix]);
|
package/cjs/Cascader/TreeView.js
CHANGED
|
@@ -71,7 +71,9 @@ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
71
71
|
if (activeItem) {
|
|
72
72
|
var position = (0, _getPosition.default)(activeItem, column);
|
|
73
73
|
// Let the active option scroll into view.
|
|
74
|
-
|
|
74
|
+
if (position !== null && position !== void 0 && position.top) {
|
|
75
|
+
(0, _scrollTop.default)(column, position === null || position === void 0 ? void 0 : position.top);
|
|
76
|
+
}
|
|
75
77
|
}
|
|
76
78
|
});
|
|
77
79
|
}, [prefix]);
|
package/cjs/DOMHelper/index.d.ts
CHANGED
|
@@ -11,43 +11,34 @@ declare const DOMHelper: {
|
|
|
11
11
|
off: typeof helpers.off;
|
|
12
12
|
WheelHandler: typeof helpers.WheelHandler;
|
|
13
13
|
DOMMouseMoveTracker: typeof helpers.DOMMouseMoveTracker;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
PointerMoveTracker: typeof helpers.PointerMoveTracker;
|
|
15
|
+
addClass: typeof helpers.addClass;
|
|
16
|
+
removeClass: typeof helpers.removeClass;
|
|
17
|
+
hasClass: typeof helpers.hasClass;
|
|
18
|
+
toggleClass: typeof helpers.toggleClass;
|
|
19
|
+
cancelAnimationFramePolyfill: typeof cancelAnimationFrame;
|
|
19
20
|
requestAnimationFramePolyfill: typeof requestAnimationFrame | ((callback: (t: number) => void) => NodeJS.Timeout);
|
|
20
21
|
getAnimationEnd: typeof helpers.getAnimationEnd;
|
|
21
|
-
ownerDocument:
|
|
22
|
-
ownerWindow:
|
|
23
|
-
getWindow:
|
|
24
|
-
getContainer:
|
|
22
|
+
ownerDocument: typeof helpers.ownerDocument;
|
|
23
|
+
ownerWindow: typeof helpers.ownerWindow;
|
|
24
|
+
getWindow: typeof helpers.getWindow;
|
|
25
|
+
getContainer: typeof helpers.getContainer;
|
|
25
26
|
canUseDOM: boolean;
|
|
26
27
|
contains: (context: Element, node: Node & ParentNode) => boolean;
|
|
27
|
-
scrollTop:
|
|
28
|
-
scrollLeft:
|
|
29
|
-
getOffset:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
getPosition: (node: Element, offsetParent?: Element | undefined, calcMargin?: boolean | undefined) => DOMRect | {
|
|
38
|
-
top: number;
|
|
39
|
-
left: number;
|
|
40
|
-
height: number;
|
|
41
|
-
width: number;
|
|
42
|
-
} | null;
|
|
43
|
-
isOverflowing: (container: Element) => boolean;
|
|
44
|
-
getScrollbarSize: (recalc?: boolean | undefined) => number | void;
|
|
45
|
-
getHeight: (node: Element | Window, client?: Element | undefined) => number;
|
|
46
|
-
getWidth: (node: Element | Window, client?: Element | undefined) => number;
|
|
28
|
+
scrollTop: typeof helpers.scrollTop;
|
|
29
|
+
scrollLeft: typeof helpers.scrollLeft;
|
|
30
|
+
getOffset: typeof helpers.getOffset;
|
|
31
|
+
nodeName: typeof helpers.nodeName;
|
|
32
|
+
getOffsetParent: typeof helpers.getOffsetParent;
|
|
33
|
+
getPosition: typeof helpers.getPosition;
|
|
34
|
+
isOverflowing: typeof helpers.isOverflowing;
|
|
35
|
+
getScrollbarSize: typeof helpers.getScrollbarSize;
|
|
36
|
+
getHeight: typeof helpers.getHeight;
|
|
37
|
+
getWidth: typeof helpers.getWidth;
|
|
47
38
|
isFocusable: typeof helpers.isFocusable;
|
|
48
|
-
getStyle:
|
|
49
|
-
removeStyle:
|
|
50
|
-
addStyle:
|
|
39
|
+
getStyle: typeof helpers.getStyle;
|
|
40
|
+
removeStyle: typeof helpers.removeStyle;
|
|
41
|
+
addStyle: typeof helpers.addStyle;
|
|
51
42
|
translateDOMPositionXY: (style: CSSStyleDeclaration, x?: number | undefined, y?: number | undefined) => CSSStyleDeclaration;
|
|
52
43
|
};
|
|
53
44
|
export default DOMHelper;
|
|
@@ -117,6 +117,12 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
|
|
|
117
117
|
* @deprecated
|
|
118
118
|
*/
|
|
119
119
|
renderValue?: (value: Date, format: string) => string;
|
|
120
|
+
/**
|
|
121
|
+
* Custom rendering calendar cell content.
|
|
122
|
+
*
|
|
123
|
+
* @version 5.54.0
|
|
124
|
+
*/
|
|
125
|
+
renderCell?: (date: Date) => React.ReactNode;
|
|
120
126
|
}
|
|
121
127
|
/**
|
|
122
128
|
* A date picker allows users to select a date from a calendar.
|
|
@@ -101,7 +101,8 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
101
101
|
onToggleMonthDropdown = props.onToggleMonthDropdown,
|
|
102
102
|
onToggleTimeDropdown = props.onToggleTimeDropdown,
|
|
103
103
|
onShortcutClick = props.onShortcutClick,
|
|
104
|
-
|
|
104
|
+
renderCell = props.renderCell,
|
|
105
|
+
restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "calendarDefaultDate", "cleanable", "editable", "defaultValue", "disabled", "readOnly", "plaintext", "format", "id", "isoWeek", "limitEndYear", "limitStartYear", "locale", "loading", "label", "menuClassName", "menuStyle", "appearance", "placement", "oneTap", "placeholder", "ranges", "value", "showMeridian", "showWeekNumbers", "style", "size", "caretAs", "disabledDate", "disabledHours", "disabledMinutes", "disabledSeconds", "shouldDisableDate", "shouldDisableHour", "shouldDisableMinute", "shouldDisableSecond", "onChange", "onChangeCalendarDate", "onClean", "onClose", "onEntered", "onExited", "onNextMonth", "onOk", "onOpen", "onPrevMonth", "onSelect", "onToggleMonthDropdown", "onToggleTimeDropdown", "onShortcutClick", "renderCell"]);
|
|
105
106
|
var id = (0, _utils.useUniqueId)('rs-', idProp);
|
|
106
107
|
var _usePickerRef = (0, _Picker.usePickerRef)(ref),
|
|
107
108
|
trigger = _usePickerRef.trigger,
|
|
@@ -457,6 +458,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
457
458
|
format: formatStr,
|
|
458
459
|
isoWeek: isoWeek,
|
|
459
460
|
calendarDate: calendarDate,
|
|
461
|
+
renderCellOnPicker: renderCell,
|
|
460
462
|
onMoveForward: handleMoveForward,
|
|
461
463
|
onMoveBackward: handleMoveBackward,
|
|
462
464
|
onSelect: handleSelect,
|
|
@@ -582,7 +584,6 @@ DatePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes, {
|
|
|
582
584
|
onToggleMonthDropdown: _propTypes.default.func,
|
|
583
585
|
onToggleTimeDropdown: _propTypes.default.func,
|
|
584
586
|
oneTap: _propTypes.default.bool,
|
|
585
|
-
panelContainerRef: _propTypes.default.any,
|
|
586
587
|
ranges: _propTypes.default.array,
|
|
587
588
|
showMeridian: _propTypes.default.bool,
|
|
588
589
|
showWeekNumbers: _propTypes.default.bool,
|
|
@@ -172,7 +172,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
172
172
|
var nextValue = dateRange;
|
|
173
173
|
|
|
174
174
|
// The time should remain the same when the dates in the date range are changed.
|
|
175
|
-
if ((0, _dateUtils.shouldRenderTime)(formatStr) && dateRange !== null && dateRange !== void 0 && dateRange.length && eventName !== 'changeTime') {
|
|
175
|
+
if ((0, _dateUtils.shouldRenderTime)(formatStr) && dateRange !== null && dateRange !== void 0 && dateRange.length && eventName !== 'changeTime' && eventName !== 'shortcutSelection') {
|
|
176
176
|
var _startDate = (0, _dateUtils.copyTime)({
|
|
177
177
|
from: getCalendarDatetime('start'),
|
|
178
178
|
to: dateRange[0]
|
|
@@ -447,7 +447,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
|
|
|
447
447
|
}
|
|
448
448
|
var value = range.value;
|
|
449
449
|
setCalendarDateRange({
|
|
450
|
-
dateRange: value
|
|
450
|
+
dateRange: value,
|
|
451
|
+
eventName: 'shortcutSelection'
|
|
451
452
|
});
|
|
452
453
|
if (closeOverlay) {
|
|
453
454
|
setDateRange(event, value, closeOverlay);
|
|
@@ -1,29 +1,54 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WithAsProps, TypeAttributes, FormControlBaseProps } from '../@types/common';
|
|
3
|
-
export interface InputNumberProps<T = number | string> extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'size' | 'prefix'>, WithAsProps, FormControlBaseProps<T> {
|
|
4
|
-
/**
|
|
3
|
+
export interface InputNumberProps<T = number | string | null> extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'size' | 'prefix'>, WithAsProps, FormControlBaseProps<T> {
|
|
4
|
+
/**
|
|
5
|
+
* Button can have different appearances
|
|
6
|
+
*/
|
|
5
7
|
buttonAppearance?: TypeAttributes.Appearance;
|
|
6
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* An input can show that it is disabled
|
|
10
|
+
*/
|
|
7
11
|
disabled?: boolean;
|
|
8
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Format the value of the input
|
|
14
|
+
*/
|
|
15
|
+
formatter?: (value: number | string) => string;
|
|
16
|
+
/**
|
|
17
|
+
* Minimum value
|
|
18
|
+
*/
|
|
9
19
|
min?: number;
|
|
10
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Maximum value
|
|
22
|
+
*/
|
|
11
23
|
max?: number;
|
|
12
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* The value of each step. can be decimal
|
|
26
|
+
*/
|
|
13
27
|
step?: number;
|
|
14
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Sets the element displayed to the left of the component
|
|
30
|
+
*/
|
|
15
31
|
prefix?: React.ReactNode;
|
|
16
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Sets the element displayed on the right side of the component
|
|
34
|
+
*/
|
|
17
35
|
postfix?: React.ReactNode;
|
|
18
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* An Input can have different sizes
|
|
38
|
+
*/
|
|
19
39
|
size?: TypeAttributes.Size;
|
|
20
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* Whether the value can be changed through the wheel event
|
|
42
|
+
*/
|
|
21
43
|
scrollable?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Callback function when wheel event is triggered
|
|
46
|
+
*/
|
|
22
47
|
onWheel?: (event: React.WheelEvent) => void;
|
|
23
48
|
}
|
|
24
49
|
/**
|
|
25
50
|
* The `InputNumber` component is used to enter a numerical value.
|
|
26
51
|
* @see https://rsuitejs.com/components/input-number
|
|
27
52
|
*/
|
|
28
|
-
declare const InputNumber: React.ForwardRefExoticComponent<InputNumberProps<string | number> & React.RefAttributes<unknown>>;
|
|
53
|
+
declare const InputNumber: React.ForwardRefExoticComponent<InputNumberProps<string | number | null> & React.RefAttributes<unknown>>;
|
|
29
54
|
export default InputNumber;
|
|
@@ -85,6 +85,7 @@ var InputNumber = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
85
85
|
_props$classPrefix = props.classPrefix,
|
|
86
86
|
classPrefix = _props$classPrefix === void 0 ? 'input-number' : _props$classPrefix,
|
|
87
87
|
disabled = props.disabled,
|
|
88
|
+
formatter = props.formatter,
|
|
88
89
|
readOnly = props.readOnly,
|
|
89
90
|
plaintext = props.plaintext,
|
|
90
91
|
valueProp = props.value,
|
|
@@ -102,12 +103,17 @@ var InputNumber = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
102
103
|
scrollable = _props$scrollable === void 0 ? true : _props$scrollable,
|
|
103
104
|
onChange = props.onChange,
|
|
104
105
|
onWheel = props.onWheel,
|
|
105
|
-
|
|
106
|
+
onBlur = props.onBlur,
|
|
107
|
+
onFocus = props.onFocus,
|
|
108
|
+
restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "disabled", "formatter", "readOnly", "plaintext", "value", "defaultValue", "size", "prefix", "postfix", "step", "buttonAppearance", "min", "max", "scrollable", "onChange", "onWheel", "onBlur", "onFocus"]);
|
|
106
109
|
var min = minProp !== null && minProp !== void 0 ? minProp : -Infinity;
|
|
107
110
|
var max = maxProp !== null && maxProp !== void 0 ? maxProp : Infinity;
|
|
108
111
|
var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue),
|
|
109
112
|
value = _useControlled[0],
|
|
110
113
|
setValue = _useControlled[1];
|
|
114
|
+
var _useState = (0, _react.useState)(false),
|
|
115
|
+
isFocused = _useState[0],
|
|
116
|
+
setIsFocused = _useState[1];
|
|
111
117
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
112
118
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
113
119
|
merge = _useClassNames.merge,
|
|
@@ -117,13 +123,7 @@ var InputNumber = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
117
123
|
htmlInputProps = _partitionHTMLProps[0],
|
|
118
124
|
rest = _partitionHTMLProps[1];
|
|
119
125
|
var inputRef = (0, _react.useRef)();
|
|
120
|
-
var
|
|
121
|
-
if (currentValue !== value) {
|
|
122
|
-
setValue(currentValue);
|
|
123
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(currentValue, event);
|
|
124
|
-
}
|
|
125
|
-
}, [onChange, setValue, value]);
|
|
126
|
-
var getSafeValue = (0, _react.useCallback)(function (value) {
|
|
126
|
+
var getSafeValue = function getSafeValue(value) {
|
|
127
127
|
if (!Number.isNaN(value)) {
|
|
128
128
|
if (+value > max) {
|
|
129
129
|
value = max;
|
|
@@ -135,28 +135,34 @@ var InputNumber = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
135
135
|
value = '';
|
|
136
136
|
}
|
|
137
137
|
return value.toString();
|
|
138
|
-
}
|
|
138
|
+
};
|
|
139
|
+
var handleChangeValue = (0, _utils.useEventCallback)(function (currentValue, event) {
|
|
140
|
+
if (currentValue !== value) {
|
|
141
|
+
setValue(currentValue);
|
|
142
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(currentValue, event);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
139
145
|
|
|
140
146
|
// Increment value by step
|
|
141
|
-
var handleStepUp = (0,
|
|
147
|
+
var handleStepUp = (0, _utils.useEventCallback)(function (event) {
|
|
142
148
|
var val = +(value || 0);
|
|
143
149
|
var bit = decimals(val, step);
|
|
144
150
|
handleChangeValue(getSafeValue((val + step).toFixed(bit)), event);
|
|
145
|
-
}
|
|
151
|
+
});
|
|
146
152
|
|
|
147
153
|
// Decrement value by step
|
|
148
|
-
var handleStepDown = (0,
|
|
154
|
+
var handleStepDown = (0, _utils.useEventCallback)(function (event) {
|
|
149
155
|
var val = +(value || 0);
|
|
150
156
|
var bit = decimals(val, step);
|
|
151
157
|
handleChangeValue(getSafeValue((val - step).toFixed(bit)), event);
|
|
152
|
-
}
|
|
158
|
+
});
|
|
153
159
|
|
|
154
160
|
// Disables step up/down button when
|
|
155
161
|
// - InputNumber is disabled/readonly
|
|
156
162
|
// - value reaches max/min limits
|
|
157
163
|
var stepUpDisabled = disabled || readOnly || valueReachesMax(value, max);
|
|
158
164
|
var stepDownDisabled = disabled || readOnly || valueReachesMin(value, min);
|
|
159
|
-
var handleKeyDown = (0,
|
|
165
|
+
var handleKeyDown = (0, _utils.useEventCallback)(function (event) {
|
|
160
166
|
switch (event.key) {
|
|
161
167
|
case _utils.KEY_VALUES.UP:
|
|
162
168
|
event.preventDefault();
|
|
@@ -179,8 +185,8 @@ var InputNumber = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
179
185
|
}
|
|
180
186
|
break;
|
|
181
187
|
}
|
|
182
|
-
}
|
|
183
|
-
var handleWheel = (0,
|
|
188
|
+
});
|
|
189
|
+
var handleWheel = (0, _utils.useEventCallback)(function (event) {
|
|
184
190
|
if (!scrollable) {
|
|
185
191
|
event.preventDefault();
|
|
186
192
|
return;
|
|
@@ -196,18 +202,19 @@ var InputNumber = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
196
202
|
}
|
|
197
203
|
}
|
|
198
204
|
onWheel === null || onWheel === void 0 ? void 0 : onWheel(event);
|
|
199
|
-
}
|
|
200
|
-
var handleChange = (0,
|
|
205
|
+
});
|
|
206
|
+
var handleChange = (0, _utils.useEventCallback)(function (value, event) {
|
|
201
207
|
if (!/^-?(?:\d+)?(\.)?\d*$/.test(value) && value !== '') {
|
|
202
208
|
return;
|
|
203
209
|
}
|
|
204
210
|
handleChangeValue(value, event);
|
|
205
|
-
}
|
|
206
|
-
var handleBlur = (0,
|
|
211
|
+
});
|
|
212
|
+
var handleBlur = (0, _utils.useEventCallback)(function (event) {
|
|
207
213
|
var _event$target;
|
|
208
214
|
var targetValue = Number.parseFloat((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value);
|
|
209
215
|
handleChangeValue(getSafeValue(targetValue), event);
|
|
210
|
-
|
|
216
|
+
setIsFocused(false);
|
|
217
|
+
});
|
|
211
218
|
(0, _react.useEffect)(function () {
|
|
212
219
|
var wheelListener;
|
|
213
220
|
if (inputRef.current) {
|
|
@@ -220,19 +227,31 @@ var InputNumber = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
220
227
|
(_wheelListener = wheelListener) === null || _wheelListener === void 0 ? void 0 : _wheelListener.off();
|
|
221
228
|
};
|
|
222
229
|
}, [handleWheel, scrollable]);
|
|
230
|
+
var renderValue = function renderValue() {
|
|
231
|
+
if ((0, _isNil.default)(value)) {
|
|
232
|
+
return '';
|
|
233
|
+
}
|
|
234
|
+
if (isFocused) {
|
|
235
|
+
return value;
|
|
236
|
+
}
|
|
237
|
+
return formatter ? formatter(value) : value;
|
|
238
|
+
};
|
|
223
239
|
var input = /*#__PURE__*/_react.default.createElement(_Input.default, (0, _extends2.default)({}, htmlInputProps, {
|
|
224
|
-
|
|
240
|
+
ref: plaintext ? ref : undefined,
|
|
241
|
+
inputRef: inputRef,
|
|
225
242
|
autoComplete: "off",
|
|
243
|
+
inputMode: "numeric",
|
|
226
244
|
step: step,
|
|
227
|
-
|
|
228
|
-
onChange: handleChange,
|
|
229
|
-
onBlur: (0, _utils.createChainedFunction)(handleBlur, htmlInputProps === null || htmlInputProps === void 0 ? void 0 : htmlInputProps.onBlur),
|
|
230
|
-
value: (0, _isNil.default)(value) ? '' : "" + value,
|
|
245
|
+
value: renderValue(),
|
|
231
246
|
disabled: disabled,
|
|
232
247
|
readOnly: readOnly,
|
|
233
248
|
plaintext: plaintext,
|
|
234
|
-
|
|
235
|
-
|
|
249
|
+
onKeyDown: handleKeyDown,
|
|
250
|
+
onChange: handleChange,
|
|
251
|
+
onBlur: (0, _utils.createChainedFunction)(handleBlur, onBlur),
|
|
252
|
+
onFocus: (0, _utils.createChainedFunction)(function () {
|
|
253
|
+
return setIsFocused(true);
|
|
254
|
+
}, onFocus)
|
|
236
255
|
}));
|
|
237
256
|
if (plaintext) {
|
|
238
257
|
return input;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { type SelectPickerProps } from '../SelectPicker';
|
|
3
|
+
import { PaginationLocale } from '../locales';
|
|
4
|
+
import { OnChangeCallback, TypeAttributes } from '../@types/common';
|
|
5
|
+
interface LimitPickerProps extends Omit<SelectPickerProps<any>, 'locale' | 'disabled' | 'data'> {
|
|
6
|
+
disabled?: boolean | ((eventKey: number | string) => boolean);
|
|
7
|
+
limitOptions: number[];
|
|
8
|
+
locale: PaginationLocale;
|
|
9
|
+
limit: number;
|
|
10
|
+
size?: TypeAttributes.Size;
|
|
11
|
+
prefix: (input: string) => string;
|
|
12
|
+
onChangeLimit: OnChangeCallback<any>;
|
|
13
|
+
}
|
|
14
|
+
declare const LimitPicker: (props: LimitPickerProps) => JSX.Element;
|
|
15
|
+
export default LimitPicker;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
exports.__esModule = true;
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _SelectPicker = _interopRequireDefault(require("../SelectPicker"));
|
|
12
|
+
var _utils = require("../utils");
|
|
13
|
+
var LimitPicker = function LimitPicker(props) {
|
|
14
|
+
var disabled = props.disabled,
|
|
15
|
+
limitOptions = props.limitOptions,
|
|
16
|
+
locale = props.locale,
|
|
17
|
+
limit = props.limit,
|
|
18
|
+
onChangeLimit = props.onChangeLimit,
|
|
19
|
+
size = props.size,
|
|
20
|
+
prefix = props.prefix,
|
|
21
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["disabled", "limitOptions", "locale", "limit", "onChangeLimit", "size", "prefix"]);
|
|
22
|
+
var containerRef = (0, _react.useRef)(null);
|
|
23
|
+
var disabledPicker = typeof disabled === 'function' ? disabled('picker') : Boolean(disabled);
|
|
24
|
+
var formatlimitOptions = limitOptions.map(function (item) {
|
|
25
|
+
return {
|
|
26
|
+
value: item,
|
|
27
|
+
label: locale.limit && (0, _utils.tplTransform)(locale.limit, item)
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
31
|
+
className: prefix('limit'),
|
|
32
|
+
ref: containerRef
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_SelectPicker.default, (0, _extends2.default)({}, rest, {
|
|
34
|
+
size: size,
|
|
35
|
+
cleanable: false,
|
|
36
|
+
searchable: false,
|
|
37
|
+
placement: "topStart",
|
|
38
|
+
data: formatlimitOptions,
|
|
39
|
+
value: limit,
|
|
40
|
+
onChange: onChangeLimit,
|
|
41
|
+
menuStyle: {
|
|
42
|
+
minWidth: 'auto'
|
|
43
|
+
},
|
|
44
|
+
disabled: disabledPicker,
|
|
45
|
+
container: function container() {
|
|
46
|
+
return containerRef.current;
|
|
47
|
+
}
|
|
48
|
+
})));
|
|
49
|
+
};
|
|
50
|
+
var _default = LimitPicker;
|
|
51
|
+
exports.default = _default;
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
|
|
4
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
5
|
exports.__esModule = true;
|
|
7
6
|
exports.default = void 0;
|
|
8
7
|
var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));
|
|
9
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
12
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
12
|
var _More = _interopRequireDefault(require("@rsuite/icons/legacy/More"));
|
|
14
13
|
var _PagePrevious = _interopRequireDefault(require("@rsuite/icons/legacy/PagePrevious"));
|
|
@@ -61,13 +60,13 @@ var Pagination = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
61
60
|
prefix = _useClassNames.prefix;
|
|
62
61
|
var _useCustom = (0, _utils.useCustom)('Pagination', overrideLocale),
|
|
63
62
|
locale = _useCustom.locale;
|
|
64
|
-
var renderItem =
|
|
63
|
+
var renderItem = function renderItem(key, itemProps) {
|
|
65
64
|
var eventKey = itemProps.eventKey,
|
|
66
65
|
disabled = itemProps.disabled,
|
|
67
66
|
itemRest = (0, _objectWithoutPropertiesLoose2.default)(itemProps, ["eventKey", "disabled"]);
|
|
68
|
-
var
|
|
67
|
+
var disabledButton = disabled;
|
|
69
68
|
if (typeof disabledProp !== 'undefined') {
|
|
70
|
-
|
|
69
|
+
disabledButton = typeof disabledProp === 'function' ? disabledProp(eventKey) : disabledProp;
|
|
71
70
|
}
|
|
72
71
|
var title = (locale === null || locale === void 0 ? void 0 : locale[key]) || eventKey;
|
|
73
72
|
return /*#__PURE__*/_react.default.createElement(_PaginationButton.default, (0, _extends2.default)({
|
|
@@ -77,10 +76,10 @@ var Pagination = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
77
76
|
key: key + "-" + eventKey,
|
|
78
77
|
eventKey: eventKey,
|
|
79
78
|
as: linkAs,
|
|
80
|
-
disabled:
|
|
81
|
-
onSelect:
|
|
79
|
+
disabled: disabledButton,
|
|
80
|
+
onSelect: disabledButton ? undefined : onSelect
|
|
82
81
|
}));
|
|
83
|
-
}
|
|
82
|
+
};
|
|
84
83
|
var renderFirst = function renderFirst() {
|
|
85
84
|
if (!first) {
|
|
86
85
|
return null;
|