rsuite 5.53.2 → 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.
Files changed (158) hide show
  1. package/AutoComplete/styles/index.css +0 -2
  2. package/CHANGELOG.md +36 -0
  3. package/Cascader/styles/index.css +0 -2
  4. package/CheckPicker/styles/index.css +0 -2
  5. package/CheckTree/styles/index.css +0 -2
  6. package/CheckTreePicker/styles/index.css +0 -2
  7. package/DatePicker/styles/index.css +0 -2
  8. package/DateRangePicker/styles/index.css +0 -2
  9. package/FormGroup/styles/index.css +3 -0
  10. package/FormGroup/styles/index.less +2 -0
  11. package/InlineEdit/package.json +7 -0
  12. package/InlineEdit/styles/index.css +112 -0
  13. package/InlineEdit/styles/index.less +48 -0
  14. package/InputGroup/styles/index.css +0 -2
  15. package/InputGroup/styles/index.less +0 -2
  16. package/InputNumber/styles/index.css +0 -2
  17. package/InputPicker/styles/index.css +0 -2
  18. package/MultiCascader/styles/index.css +0 -2
  19. package/Pagination/styles/index.css +3 -2
  20. package/Pagination/styles/pagination-group.less +4 -0
  21. package/SelectPicker/styles/index.css +0 -2
  22. package/TagInput/styles/index.css +1 -4
  23. package/TagPicker/styles/index.css +1 -4
  24. package/TagPicker/styles/index.less +1 -2
  25. package/cjs/Calendar/CalendarContainer.d.ts +4 -0
  26. package/cjs/Calendar/CalendarContainer.js +3 -1
  27. package/cjs/Calendar/TableCell.js +3 -2
  28. package/cjs/Calendar/types.d.ts +1 -0
  29. package/cjs/Cascader/DropdownMenu.js +3 -1
  30. package/cjs/Cascader/TreeView.js +3 -1
  31. package/cjs/DOMHelper/index.d.ts +23 -32
  32. package/cjs/DatePicker/DatePicker.d.ts +6 -0
  33. package/cjs/DatePicker/DatePicker.js +4 -3
  34. package/cjs/DateRangePicker/DateRangePicker.js +8 -2
  35. package/cjs/InlineEdit/EditableControls.d.ts +8 -0
  36. package/cjs/InlineEdit/EditableControls.js +34 -0
  37. package/cjs/InlineEdit/InlineEdit.d.ts +56 -0
  38. package/cjs/InlineEdit/InlineEdit.js +98 -0
  39. package/cjs/InlineEdit/index.d.ts +3 -0
  40. package/cjs/InlineEdit/index.js +9 -0
  41. package/cjs/InlineEdit/renderChildren.d.ts +12 -0
  42. package/cjs/InlineEdit/renderChildren.js +40 -0
  43. package/cjs/InlineEdit/useEditState.d.ts +22 -0
  44. package/cjs/InlineEdit/useEditState.js +82 -0
  45. package/cjs/InlineEdit/useFocusEvent.d.ts +14 -0
  46. package/cjs/InlineEdit/useFocusEvent.js +61 -0
  47. package/cjs/Input/Input.js +6 -3
  48. package/cjs/InputNumber/InputNumber.d.ts +36 -11
  49. package/cjs/InputNumber/InputNumber.js +47 -28
  50. package/cjs/InputPicker/InputPicker.js +6 -5
  51. package/cjs/Pagination/LimitPicker.d.ts +15 -0
  52. package/cjs/Pagination/LimitPicker.js +51 -0
  53. package/cjs/Pagination/Pagination.js +7 -8
  54. package/cjs/Pagination/PaginationButton.js +3 -18
  55. package/cjs/Pagination/PaginationGroup.d.ts +35 -7
  56. package/cjs/Pagination/PaginationGroup.js +77 -98
  57. package/cjs/RangeSlider/RangeSlider.js +14 -11
  58. package/cjs/Slider/Handle.js +19 -62
  59. package/cjs/Slider/ProgressBar.js +2 -1
  60. package/cjs/Slider/Slider.d.ts +2 -0
  61. package/cjs/Slider/Slider.js +18 -12
  62. package/cjs/Slider/useDrag.d.ts +16 -0
  63. package/cjs/Slider/useDrag.js +88 -0
  64. package/cjs/Slider/utils.d.ts +6 -2
  65. package/cjs/Slider/utils.js +15 -1
  66. package/cjs/index.d.ts +2 -0
  67. package/cjs/index.js +3 -1
  68. package/cjs/internals/Overlay/positionUtils.d.ts +1 -6
  69. package/cjs/internals/Picker/Listbox.d.ts +5 -1
  70. package/cjs/internals/Picker/Listbox.js +6 -5
  71. package/cjs/internals/Picker/hooks/usePickerRef.js +2 -0
  72. package/cjs/internals/Picker/types.d.ts +2 -0
  73. package/cjs/internals/symbols.d.ts +2 -0
  74. package/cjs/internals/symbols.js +9 -0
  75. package/cjs/locales/cs_CZ.d.ts +120 -0
  76. package/cjs/locales/cs_CZ.js +88 -0
  77. package/cjs/locales/index.d.ts +1 -0
  78. package/cjs/locales/index.js +4 -2
  79. package/cjs/utils/getDataGroupBy.d.ts +0 -1
  80. package/cjs/utils/getDataGroupBy.js +3 -5
  81. package/dist/rsuite-no-reset-rtl.css +94 -4
  82. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  83. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  84. package/dist/rsuite-no-reset.css +94 -4
  85. package/dist/rsuite-no-reset.min.css +1 -1
  86. package/dist/rsuite-no-reset.min.css.map +1 -1
  87. package/dist/rsuite-rtl.css +94 -4
  88. package/dist/rsuite-rtl.min.css +1 -1
  89. package/dist/rsuite-rtl.min.css.map +1 -1
  90. package/dist/rsuite.css +94 -4
  91. package/dist/rsuite.js +171 -61
  92. package/dist/rsuite.js.map +1 -1
  93. package/dist/rsuite.min.css +1 -1
  94. package/dist/rsuite.min.css.map +1 -1
  95. package/dist/rsuite.min.js +1 -1
  96. package/dist/rsuite.min.js.map +1 -1
  97. package/esm/Calendar/CalendarContainer.d.ts +4 -0
  98. package/esm/Calendar/CalendarContainer.js +3 -1
  99. package/esm/Calendar/TableCell.js +5 -4
  100. package/esm/Calendar/types.d.ts +1 -0
  101. package/esm/Cascader/DropdownMenu.js +3 -1
  102. package/esm/Cascader/TreeView.js +3 -1
  103. package/esm/DOMHelper/index.d.ts +23 -32
  104. package/esm/DatePicker/DatePicker.d.ts +6 -0
  105. package/esm/DatePicker/DatePicker.js +4 -3
  106. package/esm/DateRangePicker/DateRangePicker.js +8 -2
  107. package/esm/InlineEdit/EditableControls.d.ts +8 -0
  108. package/esm/InlineEdit/EditableControls.js +28 -0
  109. package/esm/InlineEdit/InlineEdit.d.ts +56 -0
  110. package/esm/InlineEdit/InlineEdit.js +92 -0
  111. package/esm/InlineEdit/index.d.ts +3 -0
  112. package/esm/InlineEdit/index.js +3 -0
  113. package/esm/InlineEdit/renderChildren.d.ts +12 -0
  114. package/esm/InlineEdit/renderChildren.js +34 -0
  115. package/esm/InlineEdit/useEditState.d.ts +22 -0
  116. package/esm/InlineEdit/useEditState.js +76 -0
  117. package/esm/InlineEdit/useFocusEvent.d.ts +14 -0
  118. package/esm/InlineEdit/useFocusEvent.js +56 -0
  119. package/esm/Input/Input.js +6 -3
  120. package/esm/InputNumber/InputNumber.d.ts +36 -11
  121. package/esm/InputNumber/InputNumber.js +49 -30
  122. package/esm/InputPicker/InputPicker.js +6 -5
  123. package/esm/Pagination/LimitPicker.d.ts +15 -0
  124. package/esm/Pagination/LimitPicker.js +44 -0
  125. package/esm/Pagination/Pagination.js +7 -7
  126. package/esm/Pagination/PaginationButton.js +4 -18
  127. package/esm/Pagination/PaginationGroup.d.ts +35 -7
  128. package/esm/Pagination/PaginationGroup.js +79 -98
  129. package/esm/RangeSlider/RangeSlider.js +15 -12
  130. package/esm/Slider/Handle.js +19 -61
  131. package/esm/Slider/ProgressBar.js +2 -1
  132. package/esm/Slider/Slider.d.ts +2 -0
  133. package/esm/Slider/Slider.js +20 -14
  134. package/esm/Slider/useDrag.d.ts +16 -0
  135. package/esm/Slider/useDrag.js +82 -0
  136. package/esm/Slider/utils.d.ts +6 -2
  137. package/esm/Slider/utils.js +15 -3
  138. package/esm/index.d.ts +2 -0
  139. package/esm/index.js +1 -0
  140. package/esm/internals/Overlay/positionUtils.d.ts +1 -6
  141. package/esm/internals/Picker/Listbox.d.ts +5 -1
  142. package/esm/internals/Picker/Listbox.js +7 -6
  143. package/esm/internals/Picker/hooks/usePickerRef.js +2 -0
  144. package/esm/internals/Picker/types.d.ts +2 -0
  145. package/esm/internals/symbols.d.ts +2 -0
  146. package/esm/internals/symbols.js +3 -0
  147. package/esm/locales/cs_CZ.d.ts +120 -0
  148. package/esm/locales/cs_CZ.js +82 -0
  149. package/esm/locales/index.d.ts +1 -0
  150. package/esm/locales/index.js +2 -1
  151. package/esm/utils/getDataGroupBy.d.ts +0 -1
  152. package/esm/utils/getDataGroupBy.js +2 -3
  153. package/locales/cs_CZ/package.json +7 -0
  154. package/package.json +2 -2
  155. package/styles/color-modes/dark.less +3 -0
  156. package/styles/color-modes/high-contrast.less +3 -0
  157. package/styles/color-modes/light.less +3 -0
  158. package/styles/index.less +1 -0
@@ -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
- /** Button can have different appearances */
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
- /** An input can show that it is disabled */
8
+ /**
9
+ * An input can show that it is disabled
10
+ */
7
11
  disabled?: boolean;
8
- /** Minimum value */
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
- /** Maximum value */
20
+ /**
21
+ * Maximum value
22
+ */
11
23
  max?: number;
12
- /** The value of each step. can be decimal */
24
+ /**
25
+ * The value of each step. can be decimal
26
+ */
13
27
  step?: number;
14
- /** Sets the element displayed to the left of the component */
28
+ /**
29
+ * Sets the element displayed to the left of the component
30
+ */
15
31
  prefix?: React.ReactNode;
16
- /** Sets the element displayed on the right side of the component */
32
+ /**
33
+ * Sets the element displayed on the right side of the component
34
+ */
17
35
  postfix?: React.ReactNode;
18
- /** An Input can have different sizes */
36
+ /**
37
+ * An Input can have different sizes
38
+ */
19
39
  size?: TypeAttributes.Size;
20
- /** Whether the value can be changed through the wheel event */
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
- 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;
@@ -30,6 +30,7 @@ var _Tag = _interopRequireDefault(require("../Tag"));
30
30
  var _InputAutosize = _interopRequireDefault(require("./InputAutosize"));
31
31
  var _TextBox = _interopRequireDefault(require("./TextBox"));
32
32
  var _InputPickerContext = _interopRequireDefault(require("./InputPickerContext"));
33
+ var _Stack = _interopRequireDefault(require("../Stack"));
33
34
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
34
35
  var convertSize = function convertSize(size) {
35
36
  switch (size) {
@@ -642,12 +643,12 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
642
643
  if (plaintext) {
643
644
  var plaintextProps = {};
644
645
 
645
- // TagPicker has -6px margin-left on the plaintext wrapper
646
- // for fixing margin-left on tags from 2nd line on
646
+ // When multiple selection, the tag is displayed in a stack layout.
647
647
  if (multi && hasValue) {
648
- plaintextProps.style = {
649
- marginLeft: -6
650
- };
648
+ plaintextProps.as = _Stack.default;
649
+ plaintextProps.spacing = 6;
650
+ plaintextProps.wrap = true;
651
+ plaintextProps.childrenRenderMode = 'clone';
651
652
  }
652
653
  return /*#__PURE__*/_react.default.createElement(_Plaintext.default, (0, _extends2.default)({
653
654
  localeKey: "notSelected",
@@ -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;