rsuite 5.54.0 → 5.55.1

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.
Files changed (94) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/Calendar/styles/index.css +3 -0
  3. package/Calendar/styles/index.less +3 -1
  4. package/DatePicker/styles/index.css +7 -2
  5. package/DatePicker/styles/index.less +5 -2
  6. package/DateRangePicker/styles/index.css +19 -11
  7. package/DateRangePicker/styles/index.less +5 -1
  8. package/Message/styles/index.css +1 -1
  9. package/Nav/styles/index.css +1 -2
  10. package/Nav/styles/index.less +1 -2
  11. package/Pagination/styles/index.css +3 -0
  12. package/Pagination/styles/pagination-group.less +4 -0
  13. package/Tabs/styles/index.css +1 -2
  14. package/cjs/Calendar/CalendarContainer.d.ts +4 -0
  15. package/cjs/Calendar/CalendarContainer.js +3 -1
  16. package/cjs/Calendar/TableCell.js +3 -2
  17. package/cjs/Calendar/types.d.ts +1 -0
  18. package/cjs/Cascader/DropdownMenu.js +3 -1
  19. package/cjs/Cascader/TreeView.js +3 -1
  20. package/cjs/DOMHelper/index.d.ts +23 -32
  21. package/cjs/DatePicker/DatePicker.d.ts +6 -0
  22. package/cjs/DatePicker/DatePicker.js +4 -3
  23. package/cjs/DateRangePicker/DateRangePicker.js +4 -3
  24. package/cjs/InputNumber/InputNumber.d.ts +36 -11
  25. package/cjs/InputNumber/InputNumber.js +47 -28
  26. package/cjs/Pagination/LimitPicker.d.ts +15 -0
  27. package/cjs/Pagination/LimitPicker.js +51 -0
  28. package/cjs/Pagination/Pagination.js +7 -8
  29. package/cjs/Pagination/PaginationButton.js +3 -18
  30. package/cjs/Pagination/PaginationGroup.d.ts +35 -7
  31. package/cjs/Pagination/PaginationGroup.js +77 -98
  32. package/cjs/RangeSlider/RangeSlider.js +14 -11
  33. package/cjs/Slider/Handle.js +19 -62
  34. package/cjs/Slider/ProgressBar.js +2 -1
  35. package/cjs/Slider/Slider.js +14 -10
  36. package/cjs/Slider/useDrag.d.ts +16 -0
  37. package/cjs/Slider/useDrag.js +88 -0
  38. package/cjs/Slider/utils.d.ts +6 -2
  39. package/cjs/Slider/utils.js +15 -1
  40. package/cjs/internals/Overlay/positionUtils.d.ts +1 -6
  41. package/cjs/locales/cs_CZ.d.ts +120 -0
  42. package/cjs/locales/cs_CZ.js +88 -0
  43. package/cjs/locales/index.d.ts +1 -0
  44. package/cjs/locales/index.js +4 -2
  45. package/dist/rsuite-no-reset-rtl.css +24 -14
  46. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  47. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  48. package/dist/rsuite-no-reset.css +24 -14
  49. package/dist/rsuite-no-reset.min.css +1 -1
  50. package/dist/rsuite-no-reset.min.css.map +1 -1
  51. package/dist/rsuite-rtl.css +24 -14
  52. package/dist/rsuite-rtl.min.css +1 -1
  53. package/dist/rsuite-rtl.min.css.map +1 -1
  54. package/dist/rsuite.css +24 -14
  55. package/dist/rsuite.js +88 -55
  56. package/dist/rsuite.js.map +1 -1
  57. package/dist/rsuite.min.css +1 -1
  58. package/dist/rsuite.min.css.map +1 -1
  59. package/dist/rsuite.min.js +1 -1
  60. package/dist/rsuite.min.js.map +1 -1
  61. package/esm/Calendar/CalendarContainer.d.ts +4 -0
  62. package/esm/Calendar/CalendarContainer.js +3 -1
  63. package/esm/Calendar/TableCell.js +5 -4
  64. package/esm/Calendar/types.d.ts +1 -0
  65. package/esm/Cascader/DropdownMenu.js +3 -1
  66. package/esm/Cascader/TreeView.js +3 -1
  67. package/esm/DOMHelper/index.d.ts +23 -32
  68. package/esm/DatePicker/DatePicker.d.ts +6 -0
  69. package/esm/DatePicker/DatePicker.js +4 -3
  70. package/esm/DateRangePicker/DateRangePicker.js +4 -3
  71. package/esm/InputNumber/InputNumber.d.ts +36 -11
  72. package/esm/InputNumber/InputNumber.js +49 -30
  73. package/esm/Pagination/LimitPicker.d.ts +15 -0
  74. package/esm/Pagination/LimitPicker.js +44 -0
  75. package/esm/Pagination/Pagination.js +7 -7
  76. package/esm/Pagination/PaginationButton.js +4 -18
  77. package/esm/Pagination/PaginationGroup.d.ts +35 -7
  78. package/esm/Pagination/PaginationGroup.js +79 -98
  79. package/esm/RangeSlider/RangeSlider.js +15 -12
  80. package/esm/Slider/Handle.js +19 -61
  81. package/esm/Slider/ProgressBar.js +2 -1
  82. package/esm/Slider/Slider.js +16 -12
  83. package/esm/Slider/useDrag.d.ts +16 -0
  84. package/esm/Slider/useDrag.js +82 -0
  85. package/esm/Slider/utils.d.ts +6 -2
  86. package/esm/Slider/utils.js +15 -3
  87. package/esm/internals/Overlay/positionUtils.d.ts +1 -6
  88. package/esm/locales/cs_CZ.d.ts +120 -0
  89. package/esm/locales/cs_CZ.js +82 -0
  90. package/esm/locales/index.d.ts +1 -0
  91. package/esm/locales/index.js +2 -1
  92. package/locales/cs_CZ/package.json +7 -0
  93. package/package.json +2 -2
  94. package/styles/variables.less +1 -1
@@ -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
- restProps = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "className", "classPrefix", "disabled", "readOnly", "plaintext", "value", "defaultValue", "size", "prefix", "postfix", "step", "buttonAppearance", "min", "max", "scrollable", "onChange", "onWheel"]);
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 handleChangeValue = (0, _react.useCallback)(function (currentValue, event) {
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
- }, [max, min]);
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, _react.useCallback)(function (event) {
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
- }, [getSafeValue, handleChangeValue, step, value]);
151
+ });
146
152
 
147
153
  // Decrement value by step
148
- var handleStepDown = (0, _react.useCallback)(function (event) {
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
- }, [getSafeValue, handleChangeValue, step, value]);
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, _react.useCallback)(function (event) {
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
- }, [handleStepUp, handleStepDown, minProp, maxProp, handleChangeValue, getSafeValue]);
183
- var handleWheel = (0, _react.useCallback)(function (event) {
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
- }, [disabled, handleStepDown, handleStepUp, onWheel, readOnly, scrollable]);
200
- var handleChange = (0, _react.useCallback)(function (value, event) {
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
- }, [handleChangeValue]);
206
- var handleBlur = (0, _react.useCallback)(function (event) {
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
- }, [getSafeValue, handleChangeValue]);
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
- type: "number",
240
+ ref: plaintext ? ref : undefined,
241
+ inputRef: inputRef,
225
242
  autoComplete: "off",
243
+ inputMode: "numeric",
226
244
  step: step,
227
- inputRef: inputRef,
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
- ref: plaintext ? ref : undefined,
235
- onKeyDown: handleKeyDown
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 = _interopRequireWildcard(require("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 = (0, _react.useCallback)(function (key, itemProps) {
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 disabledItem = disabled;
67
+ var disabledButton = disabled;
69
68
  if (typeof disabledProp !== 'undefined') {
70
- disabledItem = typeof disabledProp === 'function' ? disabledProp(eventKey) : disabledProp;
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: disabledItem,
81
- onSelect: disabledItem ? undefined : onSelect
79
+ disabled: disabledButton,
80
+ onSelect: disabledButton ? undefined : onSelect
82
81
  }));
83
- }, [disabledProp, linkAs, linkProps, locale, onSelect]);
82
+ };
84
83
  var renderFirst = function renderFirst() {
85
84
  if (!first) {
86
85
  return null;
@@ -1,14 +1,12 @@
1
1
  'use client';
2
2
  "use strict";
3
3
 
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
5
  exports.__esModule = true;
7
6
  exports.default = void 0;
8
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _react = _interopRequireDefault(require("react"));
12
10
  var _Ripple = _interopRequireDefault(require("../internals/Ripple"));
13
11
  var _utils = require("../utils");
14
12
  var PaginationButton = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
@@ -32,12 +30,12 @@ var PaginationButton = /*#__PURE__*/_react.default.forwardRef(function (props, r
32
30
  active: active,
33
31
  disabled: disabled
34
32
  }));
35
- var handleClick = (0, _react.useCallback)(function (event) {
33
+ var handleClick = (0, _utils.useEventCallback)(function (event) {
36
34
  if (disabled) {
37
35
  return;
38
36
  }
39
37
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventKey, event);
40
- }, [disabled, eventKey, onSelect]);
38
+ });
41
39
  var asProps = {};
42
40
  if (typeof Component !== 'string') {
43
41
  asProps.eventKey = eventKey;
@@ -52,18 +50,5 @@ var PaginationButton = /*#__PURE__*/_react.default.forwardRef(function (props, r
52
50
  }), children, !disabled ? /*#__PURE__*/_react.default.createElement(_Ripple.default, null) : null);
53
51
  });
54
52
  PaginationButton.displayName = 'PaginationButton';
55
- PaginationButton.propTypes = {
56
- classPrefix: _propTypes.default.string,
57
- eventKey: _propTypes.default.any,
58
- onSelect: _propTypes.default.func,
59
- onClick: _propTypes.default.func,
60
- disabled: _propTypes.default.bool,
61
- active: _propTypes.default.bool,
62
- className: _propTypes.default.string,
63
- as: _propTypes.default.elementType,
64
- children: _propTypes.default.node,
65
- style: _propTypes.default.object,
66
- renderItem: _propTypes.default.func
67
- };
68
53
  var _default = PaginationButton;
69
54
  exports.default = _default;
@@ -1,19 +1,47 @@
1
1
  import { PaginationProps } from './Pagination';
2
2
  import { RsRefForwardingComponent } from '../@types/common';
3
- declare type LayoutType = 'total' | '-' | 'pager' | '|' | 'limit' | 'skip';
3
+ /**
4
+ * The layout of the paging component.
5
+ */
6
+ declare type LayoutType = 'total' | 'pager' | 'limit' | 'skip' | '-' | '|';
4
7
  export interface PaginationGroupProps extends PaginationProps {
5
- /** Customize the layout of a paging component */
8
+ /**
9
+ * Customize the layout of a paging component.
10
+ * - `total` Component used to display the total.
11
+ * - `pager` Component used to display the page number.
12
+ * - `limit` Component used to display the number of rows per page.
13
+ * - `skip` Component used to jump to a page.
14
+ * - `-` Placeholder, take up the remaining space.
15
+ * - `|` Divider
16
+ *
17
+ * @default ['pager']
18
+ */
6
19
  layout?: LayoutType[];
7
- /** Customizes the options of the rows per page select field. */
20
+ /**
21
+ * Customizes the options of the rows per page select field.
22
+ */
8
23
  limitOptions?: number[];
9
- /** Customize the layout of a paging component */
24
+ /**
25
+ * Customize the layout of a paging component.
26
+ */
10
27
  limit?: number;
11
- /** Total number of data entries */
28
+ /**
29
+ * Total number of data entries.
30
+ */
12
31
  total: number;
13
- /** Callback fired when the page is changed */
32
+ /**
33
+ * Callback fired when the page is changed.
34
+ */
14
35
  onChangePage?: (page: number) => void;
15
- /** Callback fired when the number of rows per page is changed */
36
+ /**
37
+ * Callback fired when the number of rows per page is changed.
38
+ */
16
39
  onChangeLimit?: (limit: number) => void;
17
40
  }
41
+ /**
42
+ * Pagination component for displaying page numbers.
43
+ *
44
+ * @see https://rsuitejs.com/components/pagination
45
+ */
18
46
  declare const PaginationGroup: RsRefForwardingComponent<'div', PaginationGroupProps>;
19
47
  export default PaginationGroup;
@@ -1,79 +1,56 @@
1
1
  'use client';
2
2
  "use strict";
3
3
 
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
5
  exports.__esModule = true;
7
6
  exports.default = void 0;
8
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
- var _react = _interopRequireWildcard(require("react"));
9
+ var _react = _interopRequireDefault(require("react"));
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
11
  var _classnames = _interopRequireDefault(require("classnames"));
13
12
  var _Pagination = _interopRequireDefault(require("./Pagination"));
14
- var _SelectPicker = _interopRequireDefault(require("../SelectPicker"));
15
13
  var _Divider = _interopRequireDefault(require("../Divider"));
16
14
  var _Input = _interopRequireDefault(require("../Input"));
17
15
  var _utils = require("../utils");
18
- var LimitPicker = function LimitPicker(props) {
19
- var disabled = props.disabled,
20
- limitOptions = props.limitOptions,
21
- locale = props.locale,
22
- limit = props.limit,
23
- onChangeLimit = props.onChangeLimit,
24
- size = props.size,
25
- prefix = props.prefix;
26
- var disabledPicker = typeof disabled === 'function' ? disabled('picker') : Boolean(disabled);
27
- var formatlimitOptions = limitOptions.map(function (item) {
28
- return {
29
- value: item,
30
- label: locale.limit && (0, _utils.tplTransform)(locale.limit, item)
31
- };
32
- });
33
- return /*#__PURE__*/_react.default.createElement("div", {
34
- className: prefix('limit')
35
- }, /*#__PURE__*/_react.default.createElement(_SelectPicker.default, {
36
- size: size,
37
- cleanable: false,
38
- searchable: false,
39
- placement: "topStart",
40
- data: formatlimitOptions,
41
- value: limit,
42
- onChange: onChangeLimit // fixme don't use any
43
- ,
44
- menuStyle: {
45
- minWidth: 'auto'
46
- },
47
- disabled: disabledPicker
48
- }));
49
- };
16
+ var _LimitPicker = _interopRequireDefault(require("./LimitPicker"));
17
+ /**
18
+ * The layout of the paging component.
19
+ */
20
+
50
21
  var defaultLayout = ['pager'];
51
22
  var defaultLimitOptions = [30, 50, 100];
23
+
24
+ /**
25
+ * Pagination component for displaying page numbers.
26
+ *
27
+ * @see https://rsuitejs.com/components/pagination
28
+ */
52
29
  var PaginationGroup = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
53
30
  var _props$as = props.as,
54
31
  Component = _props$as === void 0 ? 'div' : _props$as,
32
+ activePageProp = props.activePage,
55
33
  _props$classPrefix = props.classPrefix,
56
34
  classPrefix = _props$classPrefix === void 0 ? 'pagination-group' : _props$classPrefix,
35
+ className = props.className,
36
+ disabled = props.disabled,
57
37
  size = props.size,
38
+ style = props.style,
58
39
  total = props.total,
59
40
  prev = props.prev,
60
41
  next = props.next,
61
42
  first = props.first,
62
43
  last = props.last,
63
- maxButtons = props.maxButtons,
64
- className = props.className,
65
44
  _props$limitOptions = props.limitOptions,
66
45
  limitOptions = _props$limitOptions === void 0 ? defaultLimitOptions : _props$limitOptions,
67
46
  limitProp = props.limit,
68
- activePageProp = props.activePage,
69
- disabled = props.disabled,
70
- style = props.style,
71
47
  localeProp = props.locale,
72
48
  _props$layout = props.layout,
73
49
  layout = _props$layout === void 0 ? defaultLayout : _props$layout,
50
+ maxButtons = props.maxButtons,
74
51
  onChangePage = props.onChangePage,
75
52
  onChangeLimit = props.onChangeLimit,
76
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "size", "total", "prev", "next", "first", "last", "maxButtons", "className", "limitOptions", "limit", "activePage", "disabled", "style", "locale", "layout", "onChangePage", "onChangeLimit"]);
53
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "activePage", "classPrefix", "className", "disabled", "size", "style", "total", "prev", "next", "first", "last", "limitOptions", "limit", "locale", "layout", "maxButtons", "onChangePage", "onChangeLimit"]);
77
54
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
78
55
  merge = _useClassNames.merge,
79
56
  prefix = _useClassNames.prefix,
@@ -88,80 +65,82 @@ var PaginationGroup = /*#__PURE__*/_react.default.forwardRef(function (props, re
88
65
  locale = _useCustom.locale;
89
66
  var pages = Math.floor(total / limit) + (total % limit ? 1 : 0);
90
67
  var classes = merge(className, withClassPrefix(size));
91
- var handleInputBlur = (0, _react.useCallback)(function (event) {
68
+ var handleInputBlur = (0, _utils.useEventCallback)(function (event) {
92
69
  var value = parseInt(event.target.value);
93
70
  if (value > 0 && value <= pages) {
94
71
  onChangePage === null || onChangePage === void 0 ? void 0 : onChangePage(value);
95
72
  setActivePage(value);
96
73
  }
97
74
  event.target.value = '';
98
- }, [onChangePage, pages, setActivePage]);
99
- var handleInputPressEnter = (0, _react.useCallback)(function (event) {
75
+ });
76
+ var handleInputPressEnter = (0, _utils.useEventCallback)(function (event) {
100
77
  var _event$target;
101
78
  (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.blur();
102
- }, []);
103
- var handleChangeLimit = (0, _react.useCallback)(function (value) {
79
+ });
80
+ var handleChangeLimit = (0, _utils.useEventCallback)(function (value) {
104
81
  setLimit(value);
105
82
  onChangeLimit === null || onChangeLimit === void 0 ? void 0 : onChangeLimit(value);
106
- }, [onChangeLimit, setLimit]);
83
+ });
107
84
  return /*#__PURE__*/_react.default.createElement(Component, {
108
85
  ref: ref,
109
86
  className: classes,
110
87
  style: style
111
88
  }, layout.map(function (key, index) {
112
89
  var onlyKey = "" + key + index;
113
- if (key === '-') {
114
- return /*#__PURE__*/_react.default.createElement("div", {
115
- className: prefix('grow'),
116
- key: onlyKey
117
- });
118
- } else if (key === '|') {
119
- return /*#__PURE__*/_react.default.createElement(_Divider.default, {
120
- vertical: true,
121
- key: onlyKey
122
- });
123
- } else if (key === 'pager') {
124
- return /*#__PURE__*/_react.default.createElement(_Pagination.default, (0, _extends2.default)({
125
- key: onlyKey,
126
- size: size,
127
- prev: prev,
128
- next: next,
129
- first: first,
130
- last: last,
131
- maxButtons: maxButtons,
132
- pages: pages,
133
- disabled: disabled,
134
- onSelect: onChangePage // fixme don't use any
135
- ,
136
- activePage: activePage
137
- }, rest));
138
- } else if (key === 'total') {
139
- return /*#__PURE__*/_react.default.createElement("div", {
140
- key: onlyKey,
141
- className: prefix('total')
142
- }, locale.total && (0, _utils.tplTransform)(locale.total, total));
143
- } else if (key === 'skip') {
144
- return /*#__PURE__*/_react.default.createElement("div", {
145
- key: onlyKey,
146
- className: (0, _classnames.default)(prefix('skip'))
147
- }, locale.skip && (0, _utils.tplTransform)(locale.skip, /*#__PURE__*/_react.default.createElement(_Input.default, {
148
- size: size,
149
- onBlur: handleInputBlur,
150
- onPressEnter: handleInputPressEnter
151
- })));
152
- } else if (key === 'limit') {
153
- return /*#__PURE__*/_react.default.createElement(LimitPicker, {
154
- key: onlyKey,
155
- size: size,
156
- locale: locale,
157
- limit: limit,
158
- onChangeLimit: handleChangeLimit,
159
- limitOptions: limitOptions,
160
- disabled: disabled,
161
- prefix: prefix
162
- });
90
+ switch (key) {
91
+ case '-':
92
+ return /*#__PURE__*/_react.default.createElement("div", {
93
+ className: prefix('grow'),
94
+ key: onlyKey
95
+ });
96
+ case '|':
97
+ return /*#__PURE__*/_react.default.createElement(_Divider.default, {
98
+ vertical: true,
99
+ key: onlyKey
100
+ });
101
+ case 'pager':
102
+ return /*#__PURE__*/_react.default.createElement(_Pagination.default, (0, _extends2.default)({
103
+ key: onlyKey,
104
+ size: size,
105
+ prev: prev,
106
+ next: next,
107
+ first: first,
108
+ last: last,
109
+ maxButtons: maxButtons,
110
+ pages: pages,
111
+ disabled: disabled,
112
+ onSelect: onChangePage // fixme don't use any
113
+ ,
114
+ activePage: activePage
115
+ }, rest));
116
+ case 'total':
117
+ return /*#__PURE__*/_react.default.createElement("div", {
118
+ key: onlyKey,
119
+ className: prefix('total')
120
+ }, locale.total && (0, _utils.tplTransform)(locale.total, total));
121
+ case 'skip':
122
+ return /*#__PURE__*/_react.default.createElement("div", {
123
+ key: onlyKey,
124
+ className: (0, _classnames.default)(prefix('skip'))
125
+ }, locale.skip && (0, _utils.tplTransform)(locale.skip, /*#__PURE__*/_react.default.createElement(_Input.default, {
126
+ size: size,
127
+ onBlur: handleInputBlur,
128
+ onPressEnter: handleInputPressEnter
129
+ })));
130
+ case 'limit':
131
+ return /*#__PURE__*/_react.default.createElement(_LimitPicker.default, {
132
+ key: onlyKey,
133
+ size: size,
134
+ locale: locale,
135
+ limit: limit,
136
+ onChangeLimit: handleChangeLimit,
137
+ limitOptions: limitOptions,
138
+ disabled: disabled,
139
+ prefix: prefix
140
+ });
141
+ default:
142
+ return key;
163
143
  }
164
- return key;
165
144
  }));
166
145
  });
167
146
  PaginationGroup.displayName = 'PaginationGroup';