rsuite 5.54.0 → 5.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/Pagination/styles/index.css +3 -0
- package/Pagination/styles/pagination-group.less +4 -0
- package/cjs/Calendar/CalendarContainer.d.ts +4 -0
- package/cjs/Calendar/CalendarContainer.js +3 -1
- package/cjs/Calendar/TableCell.js +3 -2
- package/cjs/Calendar/types.d.ts +1 -0
- package/cjs/Cascader/DropdownMenu.js +3 -1
- package/cjs/Cascader/TreeView.js +3 -1
- package/cjs/DOMHelper/index.d.ts +23 -32
- package/cjs/DatePicker/DatePicker.d.ts +6 -0
- package/cjs/DatePicker/DatePicker.js +3 -2
- package/cjs/DateRangePicker/DateRangePicker.js +3 -2
- package/cjs/InputNumber/InputNumber.d.ts +36 -11
- package/cjs/InputNumber/InputNumber.js +47 -28
- package/cjs/Pagination/LimitPicker.d.ts +15 -0
- package/cjs/Pagination/LimitPicker.js +51 -0
- package/cjs/Pagination/Pagination.js +7 -8
- package/cjs/Pagination/PaginationButton.js +3 -18
- package/cjs/Pagination/PaginationGroup.d.ts +35 -7
- package/cjs/Pagination/PaginationGroup.js +77 -98
- package/cjs/RangeSlider/RangeSlider.js +14 -11
- package/cjs/Slider/Handle.js +19 -62
- package/cjs/Slider/ProgressBar.js +2 -1
- package/cjs/Slider/Slider.js +14 -10
- package/cjs/Slider/useDrag.d.ts +16 -0
- package/cjs/Slider/useDrag.js +88 -0
- package/cjs/Slider/utils.d.ts +6 -2
- package/cjs/Slider/utils.js +15 -1
- package/cjs/internals/Overlay/positionUtils.d.ts +1 -6
- package/cjs/locales/cs_CZ.d.ts +120 -0
- package/cjs/locales/cs_CZ.js +88 -0
- package/cjs/locales/index.d.ts +1 -0
- package/cjs/locales/index.js +4 -2
- package/dist/rsuite-no-reset-rtl.css +3 -0
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +3 -0
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +3 -0
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +3 -0
- package/dist/rsuite.js +88 -55
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Calendar/CalendarContainer.d.ts +4 -0
- package/esm/Calendar/CalendarContainer.js +3 -1
- package/esm/Calendar/TableCell.js +5 -4
- package/esm/Calendar/types.d.ts +1 -0
- package/esm/Cascader/DropdownMenu.js +3 -1
- package/esm/Cascader/TreeView.js +3 -1
- package/esm/DOMHelper/index.d.ts +23 -32
- package/esm/DatePicker/DatePicker.d.ts +6 -0
- package/esm/DatePicker/DatePicker.js +3 -2
- package/esm/DateRangePicker/DateRangePicker.js +3 -2
- package/esm/InputNumber/InputNumber.d.ts +36 -11
- package/esm/InputNumber/InputNumber.js +49 -30
- package/esm/Pagination/LimitPicker.d.ts +15 -0
- package/esm/Pagination/LimitPicker.js +44 -0
- package/esm/Pagination/Pagination.js +7 -7
- package/esm/Pagination/PaginationButton.js +4 -18
- package/esm/Pagination/PaginationGroup.d.ts +35 -7
- package/esm/Pagination/PaginationGroup.js +79 -98
- package/esm/RangeSlider/RangeSlider.js +15 -12
- package/esm/Slider/Handle.js +19 -61
- package/esm/Slider/ProgressBar.js +2 -1
- package/esm/Slider/Slider.js +16 -12
- package/esm/Slider/useDrag.d.ts +16 -0
- package/esm/Slider/useDrag.js +82 -0
- package/esm/Slider/utils.d.ts +6 -2
- package/esm/Slider/utils.js +15 -3
- package/esm/internals/Overlay/positionUtils.d.ts +1 -6
- package/esm/locales/cs_CZ.d.ts +120 -0
- package/esm/locales/cs_CZ.js +82 -0
- package/esm/locales/index.d.ts +1 -0
- package/esm/locales/index.js +2 -1
- package/locales/cs_CZ/package.json +7 -0
- package/package.json +2 -2
|
@@ -1,19 +1,47 @@
|
|
|
1
1
|
import { PaginationProps } from './Pagination';
|
|
2
2
|
import { RsRefForwardingComponent } from '../@types/common';
|
|
3
|
-
|
|
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
|
-
/**
|
|
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
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Customizes the options of the rows per page select field.
|
|
22
|
+
*/
|
|
8
23
|
limitOptions?: number[];
|
|
9
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Customize the layout of a paging component.
|
|
26
|
+
*/
|
|
10
27
|
limit?: number;
|
|
11
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Total number of data entries.
|
|
30
|
+
*/
|
|
12
31
|
total: number;
|
|
13
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Callback fired when the page is changed.
|
|
34
|
+
*/
|
|
14
35
|
onChangePage?: (page: number) => void;
|
|
15
|
-
/**
|
|
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,73 +1,52 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
import React
|
|
4
|
+
import React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import classNames from 'classnames';
|
|
7
7
|
import Pagination from './Pagination';
|
|
8
|
-
import SelectPicker from '../SelectPicker';
|
|
9
8
|
import Divider from '../Divider';
|
|
10
9
|
import Input from '../Input';
|
|
11
|
-
import { tplTransform, useClassNames, useCustom, useControlled } from '../utils';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
size = props.size,
|
|
19
|
-
prefix = props.prefix;
|
|
20
|
-
var disabledPicker = typeof disabled === 'function' ? disabled('picker') : Boolean(disabled);
|
|
21
|
-
var formatlimitOptions = limitOptions.map(function (item) {
|
|
22
|
-
return {
|
|
23
|
-
value: item,
|
|
24
|
-
label: locale.limit && tplTransform(locale.limit, item)
|
|
25
|
-
};
|
|
26
|
-
});
|
|
27
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
28
|
-
className: prefix('limit')
|
|
29
|
-
}, /*#__PURE__*/React.createElement(SelectPicker, {
|
|
30
|
-
size: size,
|
|
31
|
-
cleanable: false,
|
|
32
|
-
searchable: false,
|
|
33
|
-
placement: "topStart",
|
|
34
|
-
data: formatlimitOptions,
|
|
35
|
-
value: limit,
|
|
36
|
-
onChange: onChangeLimit // fixme don't use any
|
|
37
|
-
,
|
|
38
|
-
menuStyle: {
|
|
39
|
-
minWidth: 'auto'
|
|
40
|
-
},
|
|
41
|
-
disabled: disabledPicker
|
|
42
|
-
}));
|
|
43
|
-
};
|
|
10
|
+
import { tplTransform, useClassNames, useCustom, useControlled, useEventCallback } from '../utils';
|
|
11
|
+
import LimitPicker from './LimitPicker';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The layout of the paging component.
|
|
15
|
+
*/
|
|
16
|
+
|
|
44
17
|
var defaultLayout = ['pager'];
|
|
45
18
|
var defaultLimitOptions = [30, 50, 100];
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Pagination component for displaying page numbers.
|
|
22
|
+
*
|
|
23
|
+
* @see https://rsuitejs.com/components/pagination
|
|
24
|
+
*/
|
|
46
25
|
var PaginationGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
47
26
|
var _props$as = props.as,
|
|
48
27
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
28
|
+
activePageProp = props.activePage,
|
|
49
29
|
_props$classPrefix = props.classPrefix,
|
|
50
30
|
classPrefix = _props$classPrefix === void 0 ? 'pagination-group' : _props$classPrefix,
|
|
31
|
+
className = props.className,
|
|
32
|
+
disabled = props.disabled,
|
|
51
33
|
size = props.size,
|
|
34
|
+
style = props.style,
|
|
52
35
|
total = props.total,
|
|
53
36
|
prev = props.prev,
|
|
54
37
|
next = props.next,
|
|
55
38
|
first = props.first,
|
|
56
39
|
last = props.last,
|
|
57
|
-
maxButtons = props.maxButtons,
|
|
58
|
-
className = props.className,
|
|
59
40
|
_props$limitOptions = props.limitOptions,
|
|
60
41
|
limitOptions = _props$limitOptions === void 0 ? defaultLimitOptions : _props$limitOptions,
|
|
61
42
|
limitProp = props.limit,
|
|
62
|
-
activePageProp = props.activePage,
|
|
63
|
-
disabled = props.disabled,
|
|
64
|
-
style = props.style,
|
|
65
43
|
localeProp = props.locale,
|
|
66
44
|
_props$layout = props.layout,
|
|
67
45
|
layout = _props$layout === void 0 ? defaultLayout : _props$layout,
|
|
46
|
+
maxButtons = props.maxButtons,
|
|
68
47
|
onChangePage = props.onChangePage,
|
|
69
48
|
onChangeLimit = props.onChangeLimit,
|
|
70
|
-
rest = _objectWithoutPropertiesLoose(props, ["as", "
|
|
49
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "activePage", "classPrefix", "className", "disabled", "size", "style", "total", "prev", "next", "first", "last", "limitOptions", "limit", "locale", "layout", "maxButtons", "onChangePage", "onChangeLimit"]);
|
|
71
50
|
var _useClassNames = useClassNames(classPrefix),
|
|
72
51
|
merge = _useClassNames.merge,
|
|
73
52
|
prefix = _useClassNames.prefix,
|
|
@@ -82,80 +61,82 @@ var PaginationGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
82
61
|
locale = _useCustom.locale;
|
|
83
62
|
var pages = Math.floor(total / limit) + (total % limit ? 1 : 0);
|
|
84
63
|
var classes = merge(className, withClassPrefix(size));
|
|
85
|
-
var handleInputBlur =
|
|
64
|
+
var handleInputBlur = useEventCallback(function (event) {
|
|
86
65
|
var value = parseInt(event.target.value);
|
|
87
66
|
if (value > 0 && value <= pages) {
|
|
88
67
|
onChangePage === null || onChangePage === void 0 ? void 0 : onChangePage(value);
|
|
89
68
|
setActivePage(value);
|
|
90
69
|
}
|
|
91
70
|
event.target.value = '';
|
|
92
|
-
}
|
|
93
|
-
var handleInputPressEnter =
|
|
71
|
+
});
|
|
72
|
+
var handleInputPressEnter = useEventCallback(function (event) {
|
|
94
73
|
var _event$target;
|
|
95
74
|
(_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.blur();
|
|
96
|
-
}
|
|
97
|
-
var handleChangeLimit =
|
|
75
|
+
});
|
|
76
|
+
var handleChangeLimit = useEventCallback(function (value) {
|
|
98
77
|
setLimit(value);
|
|
99
78
|
onChangeLimit === null || onChangeLimit === void 0 ? void 0 : onChangeLimit(value);
|
|
100
|
-
}
|
|
79
|
+
});
|
|
101
80
|
return /*#__PURE__*/React.createElement(Component, {
|
|
102
81
|
ref: ref,
|
|
103
82
|
className: classes,
|
|
104
83
|
style: style
|
|
105
84
|
}, layout.map(function (key, index) {
|
|
106
85
|
var onlyKey = "" + key + index;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
86
|
+
switch (key) {
|
|
87
|
+
case '-':
|
|
88
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
89
|
+
className: prefix('grow'),
|
|
90
|
+
key: onlyKey
|
|
91
|
+
});
|
|
92
|
+
case '|':
|
|
93
|
+
return /*#__PURE__*/React.createElement(Divider, {
|
|
94
|
+
vertical: true,
|
|
95
|
+
key: onlyKey
|
|
96
|
+
});
|
|
97
|
+
case 'pager':
|
|
98
|
+
return /*#__PURE__*/React.createElement(Pagination, _extends({
|
|
99
|
+
key: onlyKey,
|
|
100
|
+
size: size,
|
|
101
|
+
prev: prev,
|
|
102
|
+
next: next,
|
|
103
|
+
first: first,
|
|
104
|
+
last: last,
|
|
105
|
+
maxButtons: maxButtons,
|
|
106
|
+
pages: pages,
|
|
107
|
+
disabled: disabled,
|
|
108
|
+
onSelect: onChangePage // fixme don't use any
|
|
109
|
+
,
|
|
110
|
+
activePage: activePage
|
|
111
|
+
}, rest));
|
|
112
|
+
case 'total':
|
|
113
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
114
|
+
key: onlyKey,
|
|
115
|
+
className: prefix('total')
|
|
116
|
+
}, locale.total && tplTransform(locale.total, total));
|
|
117
|
+
case 'skip':
|
|
118
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
119
|
+
key: onlyKey,
|
|
120
|
+
className: classNames(prefix('skip'))
|
|
121
|
+
}, locale.skip && tplTransform(locale.skip, /*#__PURE__*/React.createElement(Input, {
|
|
122
|
+
size: size,
|
|
123
|
+
onBlur: handleInputBlur,
|
|
124
|
+
onPressEnter: handleInputPressEnter
|
|
125
|
+
})));
|
|
126
|
+
case 'limit':
|
|
127
|
+
return /*#__PURE__*/React.createElement(LimitPicker, {
|
|
128
|
+
key: onlyKey,
|
|
129
|
+
size: size,
|
|
130
|
+
locale: locale,
|
|
131
|
+
limit: limit,
|
|
132
|
+
onChangeLimit: handleChangeLimit,
|
|
133
|
+
limitOptions: limitOptions,
|
|
134
|
+
disabled: disabled,
|
|
135
|
+
prefix: prefix
|
|
136
|
+
});
|
|
137
|
+
default:
|
|
138
|
+
return key;
|
|
157
139
|
}
|
|
158
|
-
return key;
|
|
159
140
|
}));
|
|
160
141
|
});
|
|
161
142
|
PaginationGroup.displayName = 'PaginationGroup';
|
|
@@ -11,7 +11,7 @@ import { sliderPropTypes } from '../Slider/Slider';
|
|
|
11
11
|
import ProgressBar from '../Slider/ProgressBar';
|
|
12
12
|
import Handle from '../Slider/Handle';
|
|
13
13
|
import Graduated from '../Slider/Graduated';
|
|
14
|
-
import { precisionMath, checkValue } from '../Slider/utils';
|
|
14
|
+
import { precisionMath, checkValue, getPosition } from '../Slider/utils';
|
|
15
15
|
import { tupleType } from '../internals/propTypes';
|
|
16
16
|
var defaultDefaultValue = [0, 0];
|
|
17
17
|
|
|
@@ -27,17 +27,17 @@ var RangeSlider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
27
27
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
28
28
|
barClassName = props.barClassName,
|
|
29
29
|
className = props.className,
|
|
30
|
+
_props$classPrefix = props.classPrefix,
|
|
31
|
+
classPrefix = _props$classPrefix === void 0 ? 'slider' : _props$classPrefix,
|
|
30
32
|
constraint = props.constraint,
|
|
31
33
|
_props$defaultValue = props.defaultValue,
|
|
32
34
|
defaultValue = _props$defaultValue === void 0 ? defaultDefaultValue : _props$defaultValue,
|
|
35
|
+
disabled = props.disabled,
|
|
33
36
|
graduated = props.graduated,
|
|
34
37
|
_props$progress = props.progress,
|
|
35
38
|
progress = _props$progress === void 0 ? true : _props$progress,
|
|
36
39
|
vertical = props.vertical,
|
|
37
|
-
disabled = props.disabled,
|
|
38
40
|
readOnly = props.readOnly,
|
|
39
|
-
_props$classPrefix = props.classPrefix,
|
|
40
|
-
classPrefix = _props$classPrefix === void 0 ? 'slider' : _props$classPrefix,
|
|
41
41
|
_props$min = props.min,
|
|
42
42
|
min = _props$min === void 0 ? 0 : _props$min,
|
|
43
43
|
_props$max = props.max,
|
|
@@ -55,7 +55,7 @@ var RangeSlider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
55
55
|
renderMark = props.renderMark,
|
|
56
56
|
onChange = props.onChange,
|
|
57
57
|
onChangeCommitted = props.onChangeCommitted,
|
|
58
|
-
rest = _objectWithoutPropertiesLoose(props, ["aria-label", "aria-labelledby", "aria-valuetext", "as", "barClassName", "className", "
|
|
58
|
+
rest = _objectWithoutPropertiesLoose(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"]);
|
|
59
59
|
var barRef = useRef(null);
|
|
60
60
|
|
|
61
61
|
// Define the parameter position of the handle
|
|
@@ -116,7 +116,10 @@ var RangeSlider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
116
116
|
}, [count, getBarHeight, getBarWidth, step, vertical]);
|
|
117
117
|
var getValueByPosition = useCallback(function (event) {
|
|
118
118
|
var barOffset = getOffset(barRef.current);
|
|
119
|
-
var
|
|
119
|
+
var _getPosition = getPosition(event),
|
|
120
|
+
pageX = _getPosition.pageX,
|
|
121
|
+
pageY = _getPosition.pageY;
|
|
122
|
+
var offset = vertical ? barOffset.top + barOffset.height - pageY : pageX - barOffset.left;
|
|
120
123
|
var val = rtl && !vertical ? barOffset.width - offset : offset;
|
|
121
124
|
return getValueByOffset(val) + min;
|
|
122
125
|
}, [getValueByOffset, min, rtl, vertical]);
|
|
@@ -181,7 +184,7 @@ var RangeSlider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
181
184
|
/**
|
|
182
185
|
* Callback function that is fired when the mouseup is triggered
|
|
183
186
|
*/
|
|
184
|
-
var handleChangeCommitted =
|
|
187
|
+
var handleChangeCommitted = useEventCallback(function (event, dataset) {
|
|
185
188
|
if (disabled || readOnly) {
|
|
186
189
|
return;
|
|
187
190
|
}
|
|
@@ -190,8 +193,8 @@ var RangeSlider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
190
193
|
setValue(nextValue);
|
|
191
194
|
onChangeCommitted === null || onChangeCommitted === void 0 ? void 0 : onChangeCommitted(nextValue, event);
|
|
192
195
|
}
|
|
193
|
-
}
|
|
194
|
-
var handleKeyDown =
|
|
196
|
+
});
|
|
197
|
+
var handleKeyDown = useEventCallback(function (event) {
|
|
195
198
|
var _event$target;
|
|
196
199
|
var _event$target$dataset = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target['dataset'],
|
|
197
200
|
key = _event$target$dataset.key;
|
|
@@ -230,8 +233,8 @@ var RangeSlider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
230
233
|
setValue(nextValue);
|
|
231
234
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
232
235
|
}
|
|
233
|
-
}
|
|
234
|
-
var handleBarClick =
|
|
236
|
+
});
|
|
237
|
+
var handleBarClick = useEventCallback(function (event) {
|
|
235
238
|
if (disabled || readOnly) {
|
|
236
239
|
return;
|
|
237
240
|
}
|
|
@@ -253,7 +256,7 @@ var RangeSlider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
253
256
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
254
257
|
onChangeCommitted === null || onChangeCommitted === void 0 ? void 0 : onChangeCommitted(nextValue, event);
|
|
255
258
|
}
|
|
256
|
-
}
|
|
259
|
+
});
|
|
257
260
|
var handleProps = useMemo(function () {
|
|
258
261
|
return [{
|
|
259
262
|
value: value[0],
|
package/esm/Slider/Handle.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
import React
|
|
4
|
+
import React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
|
-
import DOMMouseMoveTracker from 'dom-lib/DOMMouseMoveTracker';
|
|
7
|
-
import addStyle from 'dom-lib/addStyle';
|
|
8
|
-
import getWidth from 'dom-lib/getWidth';
|
|
9
6
|
import Tooltip from '../Tooltip';
|
|
10
7
|
import { useClassNames, mergeRefs } from '../utils';
|
|
11
8
|
import Input from './Input';
|
|
9
|
+
import useDrag from './useDrag';
|
|
12
10
|
var Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
13
11
|
var _extends2;
|
|
14
12
|
var _props$as = props.as,
|
|
@@ -34,80 +32,40 @@ var Handle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
34
32
|
dataRange = props['data-range'],
|
|
35
33
|
dateKey = props['data-key'],
|
|
36
34
|
rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "className", "disabled", "style", "children", "position", "vertical", "tooltip", "rtl", "value", "role", "tabIndex", "renderTooltip", "onDragStart", "onDragMove", "onDragEnd", "onKeyDown", "data-range", "data-key"]);
|
|
37
|
-
var _useState = useState(false),
|
|
38
|
-
active = _useState[0],
|
|
39
|
-
setActive = _useState[1];
|
|
40
|
-
var rootRef = useRef(null);
|
|
41
35
|
var horizontalKey = rtl ? 'right' : 'left';
|
|
42
36
|
var direction = vertical ? 'bottom' : horizontalKey;
|
|
43
37
|
var styles = _extends({}, style, (_extends2 = {}, _extends2[direction] = position + "%", _extends2));
|
|
44
38
|
var _useClassNames = useClassNames(classPrefix),
|
|
45
39
|
merge = _useClassNames.merge,
|
|
46
40
|
prefix = _useClassNames.prefix;
|
|
41
|
+
var _useDrag = useDrag({
|
|
42
|
+
tooltip: tooltip,
|
|
43
|
+
disabled: disabled,
|
|
44
|
+
onDragStart: onDragStart,
|
|
45
|
+
onDragMove: onDragMove,
|
|
46
|
+
onDragEnd: onDragEnd
|
|
47
|
+
}),
|
|
48
|
+
active = _useDrag.active,
|
|
49
|
+
onMoveStart = _useDrag.onMoveStart,
|
|
50
|
+
onMouseEnter = _useDrag.onMouseEnter,
|
|
51
|
+
rootRef = _useDrag.rootRef,
|
|
52
|
+
tooltipRef = _useDrag.tooltipRef;
|
|
47
53
|
var handleClasses = merge(className, prefix('handle'), {
|
|
48
54
|
active: active
|
|
49
55
|
});
|
|
50
|
-
var tooltipRef = useRef(null);
|
|
51
|
-
var mouseMoveTracker = useRef();
|
|
52
|
-
var releaseMouseMoves = useCallback(function () {
|
|
53
|
-
var _mouseMoveTracker$cur;
|
|
54
|
-
(_mouseMoveTracker$cur = mouseMoveTracker.current) === null || _mouseMoveTracker$cur === void 0 ? void 0 : _mouseMoveTracker$cur.releaseMouseMoves();
|
|
55
|
-
mouseMoveTracker.current = null;
|
|
56
|
-
}, []);
|
|
57
|
-
var setTooltipPosition = useCallback(function () {
|
|
58
|
-
var tooltipElement = tooltipRef.current;
|
|
59
|
-
if (tooltip && tooltipElement) {
|
|
60
|
-
var width = getWidth(tooltipElement);
|
|
61
|
-
addStyle(tooltipElement, 'left', "-" + width / 2 + "px");
|
|
62
|
-
}
|
|
63
|
-
}, [tooltip]);
|
|
64
|
-
var handleDragMove = useCallback(function (_deltaX, _deltaY, event) {
|
|
65
|
-
var _mouseMoveTracker$cur2;
|
|
66
|
-
if ((_mouseMoveTracker$cur2 = mouseMoveTracker.current) !== null && _mouseMoveTracker$cur2 !== void 0 && _mouseMoveTracker$cur2.isDragging()) {
|
|
67
|
-
var _rootRef$current;
|
|
68
|
-
onDragMove === null || onDragMove === void 0 ? void 0 : onDragMove(event, (_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.dataset);
|
|
69
|
-
setTooltipPosition();
|
|
70
|
-
}
|
|
71
|
-
}, [onDragMove, setTooltipPosition]);
|
|
72
|
-
var handleDragEnd = useCallback(function (event) {
|
|
73
|
-
var _rootRef$current2;
|
|
74
|
-
setActive(false);
|
|
75
|
-
releaseMouseMoves();
|
|
76
|
-
onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(event, (_rootRef$current2 = rootRef.current) === null || _rootRef$current2 === void 0 ? void 0 : _rootRef$current2.dataset);
|
|
77
|
-
}, [onDragEnd, releaseMouseMoves]);
|
|
78
|
-
var getMouseMoveTracker = useCallback(function () {
|
|
79
|
-
return mouseMoveTracker.current || new DOMMouseMoveTracker(handleDragMove, handleDragEnd, document.body);
|
|
80
|
-
}, [handleDragEnd, handleDragMove]);
|
|
81
|
-
var handleMouseDown = useCallback(function (event) {
|
|
82
|
-
var _mouseMoveTracker$cur3, _rootRef$current3;
|
|
83
|
-
if (disabled) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
mouseMoveTracker.current = getMouseMoveTracker();
|
|
87
|
-
(_mouseMoveTracker$cur3 = mouseMoveTracker.current) === null || _mouseMoveTracker$cur3 === void 0 ? void 0 : _mouseMoveTracker$cur3.captureMouseMoves(event);
|
|
88
|
-
(_rootRef$current3 = rootRef.current) === null || _rootRef$current3 === void 0 ? void 0 : _rootRef$current3.focus();
|
|
89
|
-
setActive(true);
|
|
90
|
-
onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(event);
|
|
91
|
-
}, [disabled, getMouseMoveTracker, onDragStart]);
|
|
92
|
-
var handleMouseEnter = useCallback(function () {
|
|
93
|
-
setTooltipPosition();
|
|
94
|
-
}, [setTooltipPosition]);
|
|
95
|
-
useEffect(function () {
|
|
96
|
-
return function () {
|
|
97
|
-
releaseMouseMoves();
|
|
98
|
-
};
|
|
99
|
-
}, [releaseMouseMoves]);
|
|
100
56
|
return /*#__PURE__*/React.createElement(Component, {
|
|
101
57
|
role: role,
|
|
102
58
|
tabIndex: tabIndex,
|
|
103
59
|
ref: mergeRefs(ref, rootRef),
|
|
104
60
|
className: handleClasses,
|
|
105
|
-
onMouseDown:
|
|
106
|
-
onMouseEnter:
|
|
61
|
+
onMouseDown: onMoveStart,
|
|
62
|
+
onMouseEnter: onMouseEnter,
|
|
63
|
+
onTouchStart: onMoveStart,
|
|
107
64
|
onKeyDown: onKeyDown,
|
|
108
65
|
style: styles,
|
|
109
66
|
"data-range": dataRange,
|
|
110
|
-
"data-key": dateKey
|
|
67
|
+
"data-key": dateKey,
|
|
68
|
+
"data-testid": "slider-handle"
|
|
111
69
|
}, tooltip && /*#__PURE__*/React.createElement(Tooltip, {
|
|
112
70
|
"aria-hidden": "true",
|
|
113
71
|
ref: tooltipRef,
|
|
@@ -28,7 +28,8 @@ var ProgressBar = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
28
28
|
return /*#__PURE__*/React.createElement(Component, {
|
|
29
29
|
ref: ref,
|
|
30
30
|
style: styles,
|
|
31
|
-
className: classes
|
|
31
|
+
className: classes,
|
|
32
|
+
"data-testid": "slider-progress-bar"
|
|
32
33
|
});
|
|
33
34
|
});
|
|
34
35
|
ProgressBar.displayName = 'ProgressBar';
|
package/esm/Slider/Slider.js
CHANGED
|
@@ -9,8 +9,8 @@ import getOffset from 'dom-lib/getOffset';
|
|
|
9
9
|
import ProgressBar from './ProgressBar';
|
|
10
10
|
import Handle from './Handle';
|
|
11
11
|
import Graduated from './Graduated';
|
|
12
|
-
import { useClassNames, useControlled, useCustom } from '../utils';
|
|
13
|
-
import { precisionMath, checkValue } from './utils';
|
|
12
|
+
import { useClassNames, useControlled, useCustom, useEventCallback } from '../utils';
|
|
13
|
+
import { precisionMath, checkValue, getPosition } from './utils';
|
|
14
14
|
import Plaintext from '../internals/Plaintext';
|
|
15
15
|
export var sliderPropTypes = {
|
|
16
16
|
min: PropTypes.number,
|
|
@@ -139,7 +139,10 @@ var Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
139
139
|
*/
|
|
140
140
|
var getValueByPosition = useCallback(function (event) {
|
|
141
141
|
var barOffset = getOffset(barRef.current);
|
|
142
|
-
var
|
|
142
|
+
var _getPosition = getPosition(event),
|
|
143
|
+
pageX = _getPosition.pageX,
|
|
144
|
+
pageY = _getPosition.pageY;
|
|
145
|
+
var offset = vertical ? barOffset.top + barOffset.height - pageY : pageX - barOffset.left;
|
|
143
146
|
var offsetValue = rtl && !vertical ? barOffset.width - offset : offset;
|
|
144
147
|
return getValueByOffset(offsetValue) + min;
|
|
145
148
|
}, [getValueByOffset, min, rtl, vertical]);
|
|
@@ -147,30 +150,30 @@ var Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
147
150
|
/**
|
|
148
151
|
* Callback function that is fired when the mousemove is triggered
|
|
149
152
|
*/
|
|
150
|
-
var handleChangeValue =
|
|
153
|
+
var handleChangeValue = useEventCallback(function (event) {
|
|
151
154
|
if (disabled || readOnly) {
|
|
152
155
|
return;
|
|
153
156
|
}
|
|
154
157
|
var nextValue = getValidValue(getValueByPosition(event));
|
|
155
158
|
setValue(nextValue);
|
|
156
159
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
157
|
-
}
|
|
160
|
+
});
|
|
158
161
|
|
|
159
162
|
/**
|
|
160
163
|
* Callback function that is fired when the mouseup is triggered
|
|
161
164
|
*/
|
|
162
|
-
var handleChangeCommitted =
|
|
165
|
+
var handleChangeCommitted = useEventCallback(function (event) {
|
|
163
166
|
if (disabled || readOnly) {
|
|
164
167
|
return;
|
|
165
168
|
}
|
|
166
169
|
var nextValue = getValidValue(getValueByPosition(event));
|
|
167
170
|
onChangeCommitted === null || onChangeCommitted === void 0 ? void 0 : onChangeCommitted(nextValue, event);
|
|
168
|
-
}
|
|
169
|
-
var handleClickBar =
|
|
171
|
+
});
|
|
172
|
+
var handleClickBar = useEventCallback(function (event) {
|
|
170
173
|
handleChangeValue(event);
|
|
171
174
|
handleChangeCommitted(event);
|
|
172
|
-
}
|
|
173
|
-
var handleKeyDown =
|
|
175
|
+
});
|
|
176
|
+
var handleKeyDown = useEventCallback(function (event) {
|
|
174
177
|
var nextValue;
|
|
175
178
|
var increaseKey = rtl ? 'ArrowLeft' : 'ArrowRight';
|
|
176
179
|
var decreaseKey = rtl ? 'ArrowRight' : 'ArrowLeft';
|
|
@@ -197,7 +200,7 @@ var Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
197
200
|
event.preventDefault();
|
|
198
201
|
setValue(nextValue);
|
|
199
202
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
200
|
-
}
|
|
203
|
+
});
|
|
201
204
|
if (plaintext) {
|
|
202
205
|
return /*#__PURE__*/React.createElement(Plaintext, {
|
|
203
206
|
localeKey: "notSelected",
|
|
@@ -212,7 +215,8 @@ var Slider = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
212
215
|
}), /*#__PURE__*/React.createElement("div", {
|
|
213
216
|
ref: barRef,
|
|
214
217
|
className: merge(barClassName, prefix('bar')),
|
|
215
|
-
onClick: handleClickBar
|
|
218
|
+
onClick: handleClickBar,
|
|
219
|
+
"data-testid": "slider-bar"
|
|
216
220
|
}, progress && /*#__PURE__*/React.createElement(ProgressBar, {
|
|
217
221
|
rtl: rtl,
|
|
218
222
|
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;
|