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.
Files changed (83) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/Pagination/styles/index.css +3 -0
  3. package/Pagination/styles/pagination-group.less +4 -0
  4. package/cjs/Calendar/CalendarContainer.d.ts +4 -0
  5. package/cjs/Calendar/CalendarContainer.js +3 -1
  6. package/cjs/Calendar/TableCell.js +3 -2
  7. package/cjs/Calendar/types.d.ts +1 -0
  8. package/cjs/Cascader/DropdownMenu.js +3 -1
  9. package/cjs/Cascader/TreeView.js +3 -1
  10. package/cjs/DOMHelper/index.d.ts +23 -32
  11. package/cjs/DatePicker/DatePicker.d.ts +6 -0
  12. package/cjs/DatePicker/DatePicker.js +3 -2
  13. package/cjs/DateRangePicker/DateRangePicker.js +3 -2
  14. package/cjs/InputNumber/InputNumber.d.ts +36 -11
  15. package/cjs/InputNumber/InputNumber.js +47 -28
  16. package/cjs/Pagination/LimitPicker.d.ts +15 -0
  17. package/cjs/Pagination/LimitPicker.js +51 -0
  18. package/cjs/Pagination/Pagination.js +7 -8
  19. package/cjs/Pagination/PaginationButton.js +3 -18
  20. package/cjs/Pagination/PaginationGroup.d.ts +35 -7
  21. package/cjs/Pagination/PaginationGroup.js +77 -98
  22. package/cjs/RangeSlider/RangeSlider.js +14 -11
  23. package/cjs/Slider/Handle.js +19 -62
  24. package/cjs/Slider/ProgressBar.js +2 -1
  25. package/cjs/Slider/Slider.js +14 -10
  26. package/cjs/Slider/useDrag.d.ts +16 -0
  27. package/cjs/Slider/useDrag.js +88 -0
  28. package/cjs/Slider/utils.d.ts +6 -2
  29. package/cjs/Slider/utils.js +15 -1
  30. package/cjs/internals/Overlay/positionUtils.d.ts +1 -6
  31. package/cjs/locales/cs_CZ.d.ts +120 -0
  32. package/cjs/locales/cs_CZ.js +88 -0
  33. package/cjs/locales/index.d.ts +1 -0
  34. package/cjs/locales/index.js +4 -2
  35. package/dist/rsuite-no-reset-rtl.css +3 -0
  36. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  37. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  38. package/dist/rsuite-no-reset.css +3 -0
  39. package/dist/rsuite-no-reset.min.css +1 -1
  40. package/dist/rsuite-no-reset.min.css.map +1 -1
  41. package/dist/rsuite-rtl.css +3 -0
  42. package/dist/rsuite-rtl.min.css +1 -1
  43. package/dist/rsuite-rtl.min.css.map +1 -1
  44. package/dist/rsuite.css +3 -0
  45. package/dist/rsuite.js +88 -55
  46. package/dist/rsuite.js.map +1 -1
  47. package/dist/rsuite.min.css +1 -1
  48. package/dist/rsuite.min.css.map +1 -1
  49. package/dist/rsuite.min.js +1 -1
  50. package/dist/rsuite.min.js.map +1 -1
  51. package/esm/Calendar/CalendarContainer.d.ts +4 -0
  52. package/esm/Calendar/CalendarContainer.js +3 -1
  53. package/esm/Calendar/TableCell.js +5 -4
  54. package/esm/Calendar/types.d.ts +1 -0
  55. package/esm/Cascader/DropdownMenu.js +3 -1
  56. package/esm/Cascader/TreeView.js +3 -1
  57. package/esm/DOMHelper/index.d.ts +23 -32
  58. package/esm/DatePicker/DatePicker.d.ts +6 -0
  59. package/esm/DatePicker/DatePicker.js +3 -2
  60. package/esm/DateRangePicker/DateRangePicker.js +3 -2
  61. package/esm/InputNumber/InputNumber.d.ts +36 -11
  62. package/esm/InputNumber/InputNumber.js +49 -30
  63. package/esm/Pagination/LimitPicker.d.ts +15 -0
  64. package/esm/Pagination/LimitPicker.js +44 -0
  65. package/esm/Pagination/Pagination.js +7 -7
  66. package/esm/Pagination/PaginationButton.js +4 -18
  67. package/esm/Pagination/PaginationGroup.d.ts +35 -7
  68. package/esm/Pagination/PaginationGroup.js +79 -98
  69. package/esm/RangeSlider/RangeSlider.js +15 -12
  70. package/esm/Slider/Handle.js +19 -61
  71. package/esm/Slider/ProgressBar.js +2 -1
  72. package/esm/Slider/Slider.js +16 -12
  73. package/esm/Slider/useDrag.d.ts +16 -0
  74. package/esm/Slider/useDrag.js +82 -0
  75. package/esm/Slider/utils.d.ts +6 -2
  76. package/esm/Slider/utils.js +15 -3
  77. package/esm/internals/Overlay/positionUtils.d.ts +1 -6
  78. package/esm/locales/cs_CZ.d.ts +120 -0
  79. package/esm/locales/cs_CZ.js +82 -0
  80. package/esm/locales/index.d.ts +1 -0
  81. package/esm/locales/index.js +2 -1
  82. package/locales/cs_CZ/package.json +7 -0
  83. package/package.json +2 -2
@@ -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';
@@ -33,17 +33,17 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
33
33
  Component = _props$as === void 0 ? 'div' : _props$as,
34
34
  barClassName = props.barClassName,
35
35
  className = props.className,
36
+ _props$classPrefix = props.classPrefix,
37
+ classPrefix = _props$classPrefix === void 0 ? 'slider' : _props$classPrefix,
36
38
  constraint = props.constraint,
37
39
  _props$defaultValue = props.defaultValue,
38
40
  defaultValue = _props$defaultValue === void 0 ? defaultDefaultValue : _props$defaultValue,
41
+ disabled = props.disabled,
39
42
  graduated = props.graduated,
40
43
  _props$progress = props.progress,
41
44
  progress = _props$progress === void 0 ? true : _props$progress,
42
45
  vertical = props.vertical,
43
- disabled = props.disabled,
44
46
  readOnly = props.readOnly,
45
- _props$classPrefix = props.classPrefix,
46
- classPrefix = _props$classPrefix === void 0 ? 'slider' : _props$classPrefix,
47
47
  _props$min = props.min,
48
48
  min = _props$min === void 0 ? 0 : _props$min,
49
49
  _props$max = props.max,
@@ -61,7 +61,7 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
61
61
  renderMark = props.renderMark,
62
62
  onChange = props.onChange,
63
63
  onChangeCommitted = props.onChangeCommitted,
64
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["aria-label", "aria-labelledby", "aria-valuetext", "as", "barClassName", "className", "constraint", "defaultValue", "graduated", "progress", "vertical", "disabled", "readOnly", "classPrefix", "min", "max", "step", "value", "handleClassName", "handleStyle", "handleTitle", "tooltip", "getAriaValueText", "renderTooltip", "renderMark", "onChange", "onChangeCommitted"]);
64
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["aria-label", "aria-labelledby", "aria-valuetext", "as", "barClassName", "className", "classPrefix", "constraint", "defaultValue", "disabled", "graduated", "progress", "vertical", "readOnly", "min", "max", "step", "value", "handleClassName", "handleStyle", "handleTitle", "tooltip", "getAriaValueText", "renderTooltip", "renderMark", "onChange", "onChangeCommitted"]);
65
65
  var barRef = (0, _react.useRef)(null);
66
66
 
67
67
  // Define the parameter position of the handle
@@ -122,7 +122,10 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
122
122
  }, [count, getBarHeight, getBarWidth, step, vertical]);
123
123
  var getValueByPosition = (0, _react.useCallback)(function (event) {
124
124
  var barOffset = (0, _getOffset.default)(barRef.current);
125
- var offset = vertical ? barOffset.top + barOffset.height - event.pageY : event.pageX - barOffset.left;
125
+ var _getPosition = (0, _utils2.getPosition)(event),
126
+ pageX = _getPosition.pageX,
127
+ pageY = _getPosition.pageY;
128
+ var offset = vertical ? barOffset.top + barOffset.height - pageY : pageX - barOffset.left;
126
129
  var val = rtl && !vertical ? barOffset.width - offset : offset;
127
130
  return getValueByOffset(val) + min;
128
131
  }, [getValueByOffset, min, rtl, vertical]);
@@ -187,7 +190,7 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
187
190
  /**
188
191
  * Callback function that is fired when the mouseup is triggered
189
192
  */
190
- var handleChangeCommitted = (0, _react.useCallback)(function (event, dataset) {
193
+ var handleChangeCommitted = (0, _utils.useEventCallback)(function (event, dataset) {
191
194
  if (disabled || readOnly) {
192
195
  return;
193
196
  }
@@ -196,8 +199,8 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
196
199
  setValue(nextValue);
197
200
  onChangeCommitted === null || onChangeCommitted === void 0 ? void 0 : onChangeCommitted(nextValue, event);
198
201
  }
199
- }, [disabled, readOnly, getNextValue, isRangeMatchingConstraint, setValue, onChangeCommitted]);
200
- var handleKeyDown = (0, _react.useCallback)(function (event) {
202
+ });
203
+ var handleKeyDown = (0, _utils.useEventCallback)(function (event) {
201
204
  var _event$target;
202
205
  var _event$target$dataset = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target['dataset'],
203
206
  key = _event$target$dataset.key;
@@ -236,8 +239,8 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
236
239
  setValue(nextValue);
237
240
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
238
241
  }
239
- }, [max, min, onChange, rtl, isRangeMatchingConstraint, setValue, step, value]);
240
- var handleBarClick = (0, _react.useCallback)(function (event) {
242
+ });
243
+ var handleBarClick = (0, _utils.useEventCallback)(function (event) {
241
244
  if (disabled || readOnly) {
242
245
  return;
243
246
  }
@@ -259,7 +262,7 @@ var RangeSlider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
259
262
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
260
263
  onChangeCommitted === null || onChangeCommitted === void 0 ? void 0 : onChangeCommitted(nextValue, event);
261
264
  }
262
- }, [disabled, readOnly, getValidValue, getValueByPosition, isRangeMatchingConstraint, onChange, onChangeCommitted, setValue, value]);
265
+ });
263
266
  var handleProps = (0, _react.useMemo)(function () {
264
267
  return [{
265
268
  value: value[0],
@@ -1,20 +1,17 @@
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 _extends3 = _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
- var _DOMMouseMoveTracker = _interopRequireDefault(require("dom-lib/DOMMouseMoveTracker"));
13
- var _addStyle = _interopRequireDefault(require("dom-lib/addStyle"));
14
- var _getWidth = _interopRequireDefault(require("dom-lib/getWidth"));
15
11
  var _Tooltip = _interopRequireDefault(require("../Tooltip"));
16
12
  var _utils = require("../utils");
17
13
  var _Input = _interopRequireDefault(require("./Input"));
14
+ var _useDrag2 = _interopRequireDefault(require("./useDrag"));
18
15
  var Handle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
19
16
  var _extends2;
20
17
  var _props$as = props.as,
@@ -40,80 +37,40 @@ var Handle = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
40
37
  dataRange = props['data-range'],
41
38
  dateKey = props['data-key'],
42
39
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "disabled", "style", "children", "position", "vertical", "tooltip", "rtl", "value", "role", "tabIndex", "renderTooltip", "onDragStart", "onDragMove", "onDragEnd", "onKeyDown", "data-range", "data-key"]);
43
- var _useState = (0, _react.useState)(false),
44
- active = _useState[0],
45
- setActive = _useState[1];
46
- var rootRef = (0, _react.useRef)(null);
47
40
  var horizontalKey = rtl ? 'right' : 'left';
48
41
  var direction = vertical ? 'bottom' : horizontalKey;
49
42
  var styles = (0, _extends3.default)({}, style, (_extends2 = {}, _extends2[direction] = position + "%", _extends2));
50
43
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
51
44
  merge = _useClassNames.merge,
52
45
  prefix = _useClassNames.prefix;
46
+ var _useDrag = (0, _useDrag2.default)({
47
+ tooltip: tooltip,
48
+ disabled: disabled,
49
+ onDragStart: onDragStart,
50
+ onDragMove: onDragMove,
51
+ onDragEnd: onDragEnd
52
+ }),
53
+ active = _useDrag.active,
54
+ onMoveStart = _useDrag.onMoveStart,
55
+ onMouseEnter = _useDrag.onMouseEnter,
56
+ rootRef = _useDrag.rootRef,
57
+ tooltipRef = _useDrag.tooltipRef;
53
58
  var handleClasses = merge(className, prefix('handle'), {
54
59
  active: active
55
60
  });
56
- var tooltipRef = (0, _react.useRef)(null);
57
- var mouseMoveTracker = (0, _react.useRef)();
58
- var releaseMouseMoves = (0, _react.useCallback)(function () {
59
- var _mouseMoveTracker$cur;
60
- (_mouseMoveTracker$cur = mouseMoveTracker.current) === null || _mouseMoveTracker$cur === void 0 ? void 0 : _mouseMoveTracker$cur.releaseMouseMoves();
61
- mouseMoveTracker.current = null;
62
- }, []);
63
- var setTooltipPosition = (0, _react.useCallback)(function () {
64
- var tooltipElement = tooltipRef.current;
65
- if (tooltip && tooltipElement) {
66
- var width = (0, _getWidth.default)(tooltipElement);
67
- (0, _addStyle.default)(tooltipElement, 'left', "-" + width / 2 + "px");
68
- }
69
- }, [tooltip]);
70
- var handleDragMove = (0, _react.useCallback)(function (_deltaX, _deltaY, event) {
71
- var _mouseMoveTracker$cur2;
72
- if ((_mouseMoveTracker$cur2 = mouseMoveTracker.current) !== null && _mouseMoveTracker$cur2 !== void 0 && _mouseMoveTracker$cur2.isDragging()) {
73
- var _rootRef$current;
74
- onDragMove === null || onDragMove === void 0 ? void 0 : onDragMove(event, (_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.dataset);
75
- setTooltipPosition();
76
- }
77
- }, [onDragMove, setTooltipPosition]);
78
- var handleDragEnd = (0, _react.useCallback)(function (event) {
79
- var _rootRef$current2;
80
- setActive(false);
81
- releaseMouseMoves();
82
- onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event, (_rootRef$current2 = rootRef.current) === null || _rootRef$current2 === void 0 ? void 0 : _rootRef$current2.dataset);
83
- }, [onDragEnd, releaseMouseMoves]);
84
- var getMouseMoveTracker = (0, _react.useCallback)(function () {
85
- return mouseMoveTracker.current || new _DOMMouseMoveTracker.default(handleDragMove, handleDragEnd, document.body);
86
- }, [handleDragEnd, handleDragMove]);
87
- var handleMouseDown = (0, _react.useCallback)(function (event) {
88
- var _mouseMoveTracker$cur3, _rootRef$current3;
89
- if (disabled) {
90
- return;
91
- }
92
- mouseMoveTracker.current = getMouseMoveTracker();
93
- (_mouseMoveTracker$cur3 = mouseMoveTracker.current) === null || _mouseMoveTracker$cur3 === void 0 ? void 0 : _mouseMoveTracker$cur3.captureMouseMoves(event);
94
- (_rootRef$current3 = rootRef.current) === null || _rootRef$current3 === void 0 ? void 0 : _rootRef$current3.focus();
95
- setActive(true);
96
- onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(event);
97
- }, [disabled, getMouseMoveTracker, onDragStart]);
98
- var handleMouseEnter = (0, _react.useCallback)(function () {
99
- setTooltipPosition();
100
- }, [setTooltipPosition]);
101
- (0, _react.useEffect)(function () {
102
- return function () {
103
- releaseMouseMoves();
104
- };
105
- }, [releaseMouseMoves]);
106
61
  return /*#__PURE__*/_react.default.createElement(Component, {
107
62
  role: role,
108
63
  tabIndex: tabIndex,
109
64
  ref: (0, _utils.mergeRefs)(ref, rootRef),
110
65
  className: handleClasses,
111
- onMouseDown: handleMouseDown,
112
- onMouseEnter: handleMouseEnter,
66
+ onMouseDown: onMoveStart,
67
+ onMouseEnter: onMouseEnter,
68
+ onTouchStart: onMoveStart,
113
69
  onKeyDown: onKeyDown,
114
70
  style: styles,
115
71
  "data-range": dataRange,
116
- "data-key": dateKey
72
+ "data-key": dateKey,
73
+ "data-testid": "slider-handle"
117
74
  }, tooltip && /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
118
75
  "aria-hidden": "true",
119
76
  ref: tooltipRef,
@@ -33,7 +33,8 @@ var ProgressBar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
33
33
  return /*#__PURE__*/_react.default.createElement(Component, {
34
34
  ref: ref,
35
35
  style: styles,
36
- className: classes
36
+ className: classes,
37
+ "data-testid": "slider-progress-bar"
37
38
  });
38
39
  });
39
40
  ProgressBar.displayName = 'ProgressBar';
@@ -146,7 +146,10 @@ var Slider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
146
146
  */
147
147
  var getValueByPosition = (0, _react.useCallback)(function (event) {
148
148
  var barOffset = (0, _getOffset.default)(barRef.current);
149
- var offset = vertical ? barOffset.top + barOffset.height - event.pageY : event.pageX - barOffset.left;
149
+ var _getPosition = (0, _utils2.getPosition)(event),
150
+ pageX = _getPosition.pageX,
151
+ pageY = _getPosition.pageY;
152
+ var offset = vertical ? barOffset.top + barOffset.height - pageY : pageX - barOffset.left;
150
153
  var offsetValue = rtl && !vertical ? barOffset.width - offset : offset;
151
154
  return getValueByOffset(offsetValue) + min;
152
155
  }, [getValueByOffset, min, rtl, vertical]);
@@ -154,30 +157,30 @@ var Slider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
154
157
  /**
155
158
  * Callback function that is fired when the mousemove is triggered
156
159
  */
157
- var handleChangeValue = (0, _react.useCallback)(function (event) {
160
+ var handleChangeValue = (0, _utils.useEventCallback)(function (event) {
158
161
  if (disabled || readOnly) {
159
162
  return;
160
163
  }
161
164
  var nextValue = getValidValue(getValueByPosition(event));
162
165
  setValue(nextValue);
163
166
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
164
- }, [disabled, getValidValue, getValueByPosition, onChange, readOnly, setValue]);
167
+ });
165
168
 
166
169
  /**
167
170
  * Callback function that is fired when the mouseup is triggered
168
171
  */
169
- var handleChangeCommitted = (0, _react.useCallback)(function (event) {
172
+ var handleChangeCommitted = (0, _utils.useEventCallback)(function (event) {
170
173
  if (disabled || readOnly) {
171
174
  return;
172
175
  }
173
176
  var nextValue = getValidValue(getValueByPosition(event));
174
177
  onChangeCommitted === null || onChangeCommitted === void 0 ? void 0 : onChangeCommitted(nextValue, event);
175
- }, [disabled, getValidValue, getValueByPosition, onChangeCommitted, readOnly]);
176
- var handleClickBar = (0, _react.useCallback)(function (event) {
178
+ });
179
+ var handleClickBar = (0, _utils.useEventCallback)(function (event) {
177
180
  handleChangeValue(event);
178
181
  handleChangeCommitted(event);
179
- }, [handleChangeCommitted, handleChangeValue]);
180
- var handleKeyDown = (0, _react.useCallback)(function (event) {
182
+ });
183
+ var handleKeyDown = (0, _utils.useEventCallback)(function (event) {
181
184
  var nextValue;
182
185
  var increaseKey = rtl ? 'ArrowLeft' : 'ArrowRight';
183
186
  var decreaseKey = rtl ? 'ArrowRight' : 'ArrowLeft';
@@ -204,7 +207,7 @@ var Slider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
204
207
  event.preventDefault();
205
208
  setValue(nextValue);
206
209
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
207
- }, [max, min, onChange, rtl, setValue, step, value]);
210
+ });
208
211
  if (plaintext) {
209
212
  return /*#__PURE__*/_react.default.createElement(_Plaintext.default, {
210
213
  localeKey: "notSelected",
@@ -219,7 +222,8 @@ var Slider = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
219
222
  }), /*#__PURE__*/_react.default.createElement("div", {
220
223
  ref: barRef,
221
224
  className: merge(barClassName, prefix('bar')),
222
- onClick: handleClickBar
225
+ onClick: handleClickBar,
226
+ "data-testid": "slider-bar"
223
227
  }, progress && /*#__PURE__*/_react.default.createElement(_ProgressBar.default, {
224
228
  rtl: rtl,
225
229
  vertical: vertical,
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ interface DragProps {
3
+ tooltip?: boolean;
4
+ disabled?: boolean;
5
+ onDragStart?: (event: React.MouseEvent) => void;
6
+ onDragMove?: (event: React.DragEvent, dataset?: DOMStringMap) => void;
7
+ onDragEnd?: (event: React.MouseEvent, dataset?: DOMStringMap) => void;
8
+ }
9
+ declare const useDrag: (props: DragProps) => {
10
+ active: boolean;
11
+ rootRef: import("react").RefObject<HTMLDivElement>;
12
+ tooltipRef: import("react").RefObject<HTMLDivElement>;
13
+ onMoveStart: (...args: any[]) => any;
14
+ onMouseEnter: (...args: any[]) => any;
15
+ };
16
+ export default useDrag;