@react-native-aria/slider 0.2.10 → 0.2.11
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 +8 -0
- package/lib/commonjs/index.js +0 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/textSelection.js +13 -8
- package/lib/commonjs/textSelection.js.map +1 -1
- package/lib/commonjs/useMove.js +4 -13
- package/lib/commonjs/useMove.js.map +1 -1
- package/lib/commonjs/useMove.web.js +5 -27
- package/lib/commonjs/useMove.web.js.map +1 -1
- package/lib/commonjs/usePanResponder.js +0 -9
- package/lib/commonjs/usePanResponder.js.map +1 -1
- package/lib/commonjs/useSlider.js +9 -25
- package/lib/commonjs/useSlider.js.map +1 -1
- package/lib/commonjs/useSlider.web.js +17 -52
- package/lib/commonjs/useSlider.web.js.map +1 -1
- package/lib/commonjs/useSliderThumb.js +7 -30
- package/lib/commonjs/useSliderThumb.js.map +1 -1
- package/lib/commonjs/useSliderThumb.web.js +10 -33
- package/lib/commonjs/useSliderThumb.web.js.map +1 -1
- package/lib/commonjs/utils.js +1 -5
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/textSelection.js +7 -5
- package/lib/module/textSelection.js.map +1 -1
- package/lib/module/useMove.js +3 -5
- package/lib/module/useMove.js.map +1 -1
- package/lib/module/useMove.web.js +6 -24
- package/lib/module/useMove.web.js.map +1 -1
- package/lib/module/usePanResponder.js +0 -5
- package/lib/module/usePanResponder.js.map +1 -1
- package/lib/module/useSlider.js +9 -19
- package/lib/module/useSlider.js.map +1 -1
- package/lib/module/useSlider.web.js +17 -43
- package/lib/module/useSlider.web.js.map +1 -1
- package/lib/module/useSliderThumb.js +7 -22
- package/lib/module/useSliderThumb.js.map +1 -1
- package/lib/module/useSliderThumb.web.js +10 -24
- package/lib/module/useSliderThumb.web.js.map +1 -1
- package/lib/module/utils.js +0 -2
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/textSelection.d.ts +1 -0
- package/lib/typescript/textSelection.d.ts.map +1 -0
- package/lib/typescript/useMove.d.ts +1 -0
- package/lib/typescript/useMove.d.ts.map +1 -0
- package/lib/typescript/useMove.web.d.ts +1 -0
- package/lib/typescript/useMove.web.d.ts.map +1 -0
- package/lib/typescript/usePanResponder.d.ts +2 -1
- package/lib/typescript/usePanResponder.d.ts.map +1 -0
- package/lib/typescript/useSlider.d.ts +1 -0
- package/lib/typescript/useSlider.d.ts.map +1 -0
- package/lib/typescript/useSlider.web.d.ts +1 -0
- package/lib/typescript/useSlider.web.d.ts.map +1 -0
- package/lib/typescript/useSliderThumb.d.ts +1 -0
- package/lib/typescript/useSliderThumb.d.ts.map +1 -0
- package/lib/typescript/useSliderThumb.web.d.ts +1 -0
- package/lib/typescript/useSliderThumb.web.d.ts.map +1 -0
- package/lib/typescript/utils.d.ts +1 -0
- package/lib/typescript/utils.d.ts.map +1 -0
- package/package.json +8 -4
- package/src/useMove.ts +0 -1
- package/src/useMove.web.ts +3 -0
@@ -4,41 +4,32 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.useSlider = void 0;
|
7
|
-
|
8
7
|
var _utils = require("@react-aria/utils");
|
9
|
-
|
10
8
|
var _utils2 = require("./utils");
|
11
|
-
|
12
9
|
var _react = require("react");
|
13
|
-
|
14
10
|
var _interactions = require("@react-aria/interactions");
|
15
|
-
|
16
11
|
var _label = require("@react-aria/label");
|
17
|
-
|
18
12
|
var _utils3 = require("@react-native-aria/utils");
|
19
|
-
|
20
13
|
var _useMove = require("./useMove");
|
21
|
-
|
22
14
|
function useSliderWeb(props, state, trackLayout, isReversed) {
|
23
|
-
var _labelProps$id;
|
24
|
-
|
25
15
|
let {
|
26
16
|
labelProps,
|
27
17
|
fieldProps
|
28
18
|
} = (0, _label.useLabel)(props);
|
29
|
-
let isVertical = props.orientation === 'vertical';
|
30
|
-
|
31
|
-
_utils2.sliderIds.set(state, (_labelProps$id = labelProps.id) !== null && _labelProps$id !== void 0 ? _labelProps$id : fieldProps.id);
|
19
|
+
let isVertical = props.orientation === 'vertical';
|
32
20
|
|
21
|
+
// Attach id of the label to the state so it can be accessed by useSliderThumb.
|
22
|
+
_utils2.sliderIds.set(state, labelProps.id ?? fieldProps.id);
|
33
23
|
const direction = (0, _utils3.isRTL)() ? 'rtl' : undefined;
|
34
24
|
let {
|
35
25
|
addGlobalListener,
|
36
26
|
removeGlobalListener
|
37
|
-
} = (0, _utils.useGlobalListeners)();
|
27
|
+
} = (0, _utils.useGlobalListeners)();
|
28
|
+
|
29
|
+
// When the user clicks or drags the track, we want the motion to set and drag the
|
38
30
|
// closest thumb. Hence we also need to install useMove() on the track element.
|
39
31
|
// Here, we keep track of which index is the "closest" to the drag start point.
|
40
32
|
// It is set onMouseDown/onTouchDown; see trackProps below.
|
41
|
-
|
42
33
|
const realTimeTrackDraggingIndex = (0, _react.useRef)(null);
|
43
34
|
const stateRef = (0, _react.useRef)(null);
|
44
35
|
stateRef.current = state;
|
@@ -50,19 +41,15 @@ function useSliderWeb(props, state, trackLayout, isReversed) {
|
|
50
41
|
onMoveStart() {
|
51
42
|
currentPosition.current = null;
|
52
43
|
},
|
53
|
-
|
54
44
|
onMove({
|
55
45
|
deltaX,
|
56
46
|
deltaY
|
57
47
|
}) {
|
58
48
|
let size = isVertical ? trackLayout.height : trackLayout.width;
|
59
|
-
|
60
49
|
if (currentPosition.current == null) {
|
61
50
|
currentPosition.current = stateRef.current.getThumbPercent(realTimeTrackDraggingIndex.current) * size;
|
62
51
|
}
|
63
|
-
|
64
52
|
let delta = isVertical ? deltaY : deltaX;
|
65
|
-
|
66
53
|
if (reverseX) {
|
67
54
|
if (!isVertical) {
|
68
55
|
delta = -delta;
|
@@ -72,35 +59,29 @@ function useSliderWeb(props, state, trackLayout, isReversed) {
|
|
72
59
|
delta = -delta;
|
73
60
|
}
|
74
61
|
}
|
75
|
-
|
76
62
|
currentPosition.current += delta;
|
77
|
-
|
78
63
|
if (realTimeTrackDraggingIndex.current != null) {
|
79
64
|
const percent = (0, _utils.clamp)(currentPosition.current / size, 0, 1);
|
80
65
|
stateRef.current.setThumbPercent(realTimeTrackDraggingIndex.current, percent);
|
81
66
|
}
|
82
67
|
},
|
83
|
-
|
84
68
|
onMoveEnd() {
|
85
69
|
if (realTimeTrackDraggingIndex.current != null) {
|
86
70
|
stateRef.current.setThumbDragging(realTimeTrackDraggingIndex.current, false);
|
87
71
|
realTimeTrackDraggingIndex.current = null;
|
88
72
|
}
|
89
73
|
}
|
90
|
-
|
91
74
|
});
|
92
75
|
let currentPointer = (0, _react.useRef)(undefined);
|
93
|
-
|
94
76
|
let onDownTrack = (e, id, clientX, clientY) => {
|
95
77
|
// We only trigger track-dragging if the user clicks on the track itself and nothing is currently being dragged.
|
96
78
|
if (!props.isDisabled && state.values.every((_, i) => !state.isThumbDragging(i))) {
|
97
|
-
let size = isVertical ? trackLayout.height : trackLayout.width;
|
98
|
-
|
79
|
+
let size = isVertical ? trackLayout.height : trackLayout.width;
|
80
|
+
// Find the closest thumb
|
99
81
|
const trackPosition = trackLayout[isVertical ? 'top' : 'left'];
|
100
82
|
const clickPosition = isVertical ? clientY : clientX;
|
101
83
|
const offset = clickPosition - trackPosition;
|
102
84
|
let percent = offset / size;
|
103
|
-
|
104
85
|
if (reverseX) {
|
105
86
|
if (!isVertical) {
|
106
87
|
percent = 1 - percent;
|
@@ -110,12 +91,11 @@ function useSliderWeb(props, state, trackLayout, isReversed) {
|
|
110
91
|
percent = 1 - percent;
|
111
92
|
}
|
112
93
|
}
|
94
|
+
let value = state.getPercentValue(percent);
|
113
95
|
|
114
|
-
|
115
|
-
|
96
|
+
// to find the closet thumb we split the array based on the first thumb position to the "right/end" of the click.
|
116
97
|
let closestThumb;
|
117
98
|
let split = state.values.findIndex(v => value - v < 0);
|
118
|
-
|
119
99
|
if (split === 0) {
|
120
100
|
// If the index is zero then the closetThumb is the first one
|
121
101
|
closestThumb = split;
|
@@ -124,16 +104,16 @@ function useSliderWeb(props, state, trackLayout, isReversed) {
|
|
124
104
|
closestThumb = state.values.length - 1;
|
125
105
|
} else {
|
126
106
|
let lastLeft = state.values[split - 1];
|
127
|
-
let firstRight = state.values[split];
|
128
|
-
|
107
|
+
let firstRight = state.values[split];
|
108
|
+
// Pick the last left/start thumb, unless they are stacked on top of each other, then pick the right/end one
|
129
109
|
if (Math.abs(lastLeft - value) < Math.abs(firstRight - value)) {
|
130
110
|
closestThumb = split - 1;
|
131
111
|
} else {
|
132
112
|
closestThumb = split;
|
133
113
|
}
|
134
|
-
}
|
135
|
-
|
114
|
+
}
|
136
115
|
|
116
|
+
// Confirm that the found closest thumb is editable, not disabled, and move it
|
137
117
|
if (closestThumb >= 0 && state.isThumbEditable(closestThumb)) {
|
138
118
|
// Don't unfocus anything
|
139
119
|
e.preventDefault();
|
@@ -150,41 +130,33 @@ function useSliderWeb(props, state, trackLayout, isReversed) {
|
|
150
130
|
}
|
151
131
|
}
|
152
132
|
};
|
153
|
-
|
154
133
|
let onUpTrack = e => {
|
155
|
-
var _e$
|
156
|
-
|
157
|
-
let id = (_e$pointerId = e.pointerId) !== null && _e$pointerId !== void 0 ? _e$pointerId : (_e$changedTouches = e.changedTouches) === null || _e$changedTouches === void 0 ? void 0 : _e$changedTouches[0].identifier;
|
158
|
-
|
134
|
+
var _e$changedTouches;
|
135
|
+
let id = e.pointerId ?? ((_e$changedTouches = e.changedTouches) === null || _e$changedTouches === void 0 ? void 0 : _e$changedTouches[0].identifier);
|
159
136
|
if (id === currentPointer.current) {
|
160
137
|
if (realTimeTrackDraggingIndex.current != null) {
|
161
138
|
state.setThumbDragging(realTimeTrackDraggingIndex.current, false);
|
162
139
|
realTimeTrackDraggingIndex.current = null;
|
163
140
|
}
|
164
|
-
|
165
141
|
removeGlobalListener(window, 'mouseup', onUpTrack, false);
|
166
142
|
removeGlobalListener(window, 'touchend', onUpTrack, false);
|
167
143
|
removeGlobalListener(window, 'pointerup', onUpTrack, false);
|
168
144
|
}
|
169
145
|
};
|
170
|
-
|
171
146
|
if (labelProps.htmlFor) {
|
172
147
|
// Ideally the `for` attribute should point to the first thumb, but VoiceOver on iOS
|
173
148
|
// causes this to override the `aria-labelledby` on the thumb. This causes the first
|
174
149
|
// thumb to only be announced as the slider label rather than its individual name as well.
|
175
150
|
// See https://bugs.webkit.org/show_bug.cgi?id=172464.
|
176
151
|
delete labelProps.htmlFor;
|
177
|
-
|
178
152
|
labelProps.onClick = () => {
|
179
153
|
var _document$getElementB;
|
180
|
-
|
181
154
|
// Safari does not focus <input type="range"> elements when clicking on an associated <label>,
|
182
155
|
// so do it manually. In addition, make sure we show the focus ring.
|
183
|
-
(_document$getElementB = document.getElementById((0, _utils2.getSliderThumbId)(state, 0))) === null || _document$getElementB === void 0
|
156
|
+
(_document$getElementB = document.getElementById((0, _utils2.getSliderThumbId)(state, 0))) === null || _document$getElementB === void 0 || _document$getElementB.focus();
|
184
157
|
(0, _interactions.setInteractionModality)('keyboard');
|
185
158
|
};
|
186
159
|
}
|
187
|
-
|
188
160
|
return {
|
189
161
|
labelProps,
|
190
162
|
// The root element of the Slider will have role="group" to group together
|
@@ -199,22 +171,17 @@ function useSliderWeb(props, state, trackLayout, isReversed) {
|
|
199
171
|
if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {
|
200
172
|
return;
|
201
173
|
}
|
202
|
-
|
203
174
|
onDownTrack(e, undefined, e.clientX, e.clientY);
|
204
175
|
},
|
205
|
-
|
206
176
|
onPointerDown(e) {
|
207
177
|
if (e.pointerType === 'mouse' && (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)) {
|
208
178
|
return;
|
209
179
|
}
|
210
|
-
|
211
180
|
onDownTrack(e, e.pointerId, e.clientX, e.clientY);
|
212
181
|
},
|
213
|
-
|
214
182
|
onTouchStart(e) {
|
215
183
|
onDownTrack(e, e.changedTouches[0].identifier, e.changedTouches[0].clientX, e.changedTouches[0].clientY);
|
216
184
|
}
|
217
|
-
|
218
185
|
}, moveProps),
|
219
186
|
outputProps: {
|
220
187
|
'htmlFor': state.values.map((_, index) => (0, _utils2.getSliderThumbId)(state, index)).join(' '),
|
@@ -222,7 +189,6 @@ function useSliderWeb(props, state, trackLayout, isReversed) {
|
|
222
189
|
}
|
223
190
|
};
|
224
191
|
}
|
225
|
-
|
226
192
|
const useSlider = (props, state, ref, isReversed) => {
|
227
193
|
let {
|
228
194
|
groupProps: webGroupProps,
|
@@ -236,6 +202,5 @@ const useSlider = (props, state, ref, isReversed) => {
|
|
236
202
|
labelProps
|
237
203
|
};
|
238
204
|
};
|
239
|
-
|
240
205
|
exports.useSlider = useSlider;
|
241
206
|
//# sourceMappingURL=useSlider.web.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["useSlider.web.ts"],"names":["useSliderWeb","props","state","trackLayout","isReversed","labelProps","fieldProps","isVertical","orientation","sliderIds","set","id","direction","undefined","addGlobalListener","removeGlobalListener","realTimeTrackDraggingIndex","stateRef","current","reverseX","currentPosition","moveProps","onMoveStart","onMove","deltaX","deltaY","size","height","width","getThumbPercent","delta","percent","setThumbPercent","onMoveEnd","setThumbDragging","currentPointer","onDownTrack","e","clientX","clientY","isDisabled","values","every","_","i","isThumbDragging","trackPosition","clickPosition","offset","value","getPercentValue","closestThumb","split","findIndex","v","length","lastLeft","firstRight","Math","abs","isThumbEditable","preventDefault","setFocusedThumb","setThumbValue","window","onUpTrack","pointerId","changedTouches","identifier","htmlFor","onClick","document","getElementById","focus","groupProps","role","trackProps","onMouseDown","button","altKey","ctrlKey","metaKey","onPointerDown","pointerType","onTouchStart","outputProps","map","index","join","useSlider","ref","webGroupProps","rest"],"mappings":"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","sourcesContent":["import { AriaSliderProps } from '@react-types/slider';\nimport { clamp, mergeProps, useGlobalListeners } from '@react-aria/utils';\nimport { getSliderThumbId, sliderIds } from './utils';\nimport React, { useRef } from 'react';\nimport { setInteractionModality } from '@react-aria/interactions';\nimport { SliderState } from '@react-stately/slider';\nimport { useLabel } from '@react-aria/label';\nimport { mapDomPropsToRN, isRTL } from '@react-native-aria/utils';\nimport { useMove } from './useMove';\n\ninterface SliderAria {\n /** Props for the label element. */\n labelProps: any;\n\n /** Props for the root element of the slider component; groups slider inputs. */\n groupProps: any;\n\n /** Props for the track element. */\n trackProps: any;\n\n /** Props for the output element, displaying the value of the slider thumbs. */\n outputProps: any;\n}\n\nfunction useSliderWeb(\n props: AriaSliderProps,\n state: SliderState,\n trackLayout: {\n height: number;\n width: number;\n top: number;\n left: number;\n x: number;\n y: number;\n },\n isReversed?: boolean\n): SliderAria {\n let { labelProps, fieldProps } = useLabel(props);\n\n let isVertical = props.orientation === 'vertical';\n\n // Attach id of the label to the state so it can be accessed by useSliderThumb.\n sliderIds.set(state, labelProps.id ?? fieldProps.id);\n\n const direction = isRTL() ? 'rtl' : undefined;\n\n let { addGlobalListener, removeGlobalListener } = useGlobalListeners();\n\n // When the user clicks or drags the track, we want the motion to set and drag the\n // closest thumb. Hence we also need to install useMove() on the track element.\n // Here, we keep track of which index is the \"closest\" to the drag start point.\n // It is set onMouseDown/onTouchDown; see trackProps below.\n const realTimeTrackDraggingIndex = useRef<number | null>(null);\n\n const stateRef = useRef<SliderState>(null);\n stateRef.current = state;\n const reverseX = isReversed || direction === 'rtl';\n\n const currentPosition = useRef<number>(null);\n const { moveProps } = useMove({\n onMoveStart() {\n currentPosition.current = null;\n },\n onMove({ deltaX, deltaY }) {\n let size = isVertical ? trackLayout.height : trackLayout.width;\n\n if (currentPosition.current == null) {\n currentPosition.current =\n stateRef.current.getThumbPercent(realTimeTrackDraggingIndex.current) *\n size;\n }\n\n let delta = isVertical ? deltaY : deltaX;\n if (reverseX) {\n if (!isVertical) {\n delta = -delta;\n }\n } else {\n if (isVertical) {\n delta = -delta;\n }\n }\n\n currentPosition.current += delta;\n\n if (realTimeTrackDraggingIndex.current != null) {\n const percent = clamp(currentPosition.current / size, 0, 1);\n stateRef.current.setThumbPercent(\n realTimeTrackDraggingIndex.current,\n percent\n );\n }\n },\n onMoveEnd() {\n if (realTimeTrackDraggingIndex.current != null) {\n stateRef.current.setThumbDragging(\n realTimeTrackDraggingIndex.current,\n false\n );\n realTimeTrackDraggingIndex.current = null;\n }\n },\n });\n\n let currentPointer = useRef<number | null | undefined>(undefined);\n let onDownTrack = (\n e: React.UIEvent,\n id: number,\n clientX: number,\n clientY: number\n ) => {\n // We only trigger track-dragging if the user clicks on the track itself and nothing is currently being dragged.\n if (\n !props.isDisabled &&\n state.values.every((_, i) => !state.isThumbDragging(i))\n ) {\n let size = isVertical ? trackLayout.height : trackLayout.width;\n // Find the closest thumb\n const trackPosition = trackLayout[isVertical ? 'top' : 'left'];\n const clickPosition = isVertical ? clientY : clientX;\n const offset = clickPosition - trackPosition;\n let percent = offset / size;\n if (reverseX) {\n if (!isVertical) {\n percent = 1 - percent;\n }\n } else {\n if (isVertical) {\n percent = 1 - percent;\n }\n }\n let value = state.getPercentValue(percent);\n\n // to find the closet thumb we split the array based on the first thumb position to the \"right/end\" of the click.\n let closestThumb;\n let split = state.values.findIndex((v) => value - v < 0);\n if (split === 0) {\n // If the index is zero then the closetThumb is the first one\n closestThumb = split;\n } else if (split === -1) {\n // If no index is found they've clicked past all the thumbs\n closestThumb = state.values.length - 1;\n } else {\n let lastLeft = state.values[split - 1];\n let firstRight = state.values[split];\n // Pick the last left/start thumb, unless they are stacked on top of each other, then pick the right/end one\n if (Math.abs(lastLeft - value) < Math.abs(firstRight - value)) {\n closestThumb = split - 1;\n } else {\n closestThumb = split;\n }\n }\n\n // Confirm that the found closest thumb is editable, not disabled, and move it\n if (closestThumb >= 0 && state.isThumbEditable(closestThumb)) {\n // Don't unfocus anything\n e.preventDefault();\n\n realTimeTrackDraggingIndex.current = closestThumb;\n state.setFocusedThumb(closestThumb);\n currentPointer.current = id;\n\n state.setThumbDragging(realTimeTrackDraggingIndex.current, true);\n state.setThumbValue(closestThumb, value);\n\n addGlobalListener(window, 'mouseup', onUpTrack, false);\n addGlobalListener(window, 'touchend', onUpTrack, false);\n addGlobalListener(window, 'pointerup', onUpTrack, false);\n } else {\n realTimeTrackDraggingIndex.current = null;\n }\n }\n };\n\n let onUpTrack = (e) => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n if (realTimeTrackDraggingIndex.current != null) {\n state.setThumbDragging(realTimeTrackDraggingIndex.current, false);\n realTimeTrackDraggingIndex.current = null;\n }\n\n removeGlobalListener(window, 'mouseup', onUpTrack, false);\n removeGlobalListener(window, 'touchend', onUpTrack, false);\n removeGlobalListener(window, 'pointerup', onUpTrack, false);\n }\n };\n\n if (labelProps.htmlFor) {\n // Ideally the `for` attribute should point to the first thumb, but VoiceOver on iOS\n // causes this to override the `aria-labelledby` on the thumb. This causes the first\n // thumb to only be announced as the slider label rather than its individual name as well.\n // See https://bugs.webkit.org/show_bug.cgi?id=172464.\n delete labelProps.htmlFor;\n labelProps.onClick = () => {\n // Safari does not focus <input type=\"range\"> elements when clicking on an associated <label>,\n // so do it manually. In addition, make sure we show the focus ring.\n document.getElementById(getSliderThumbId(state, 0))?.focus();\n setInteractionModality('keyboard');\n };\n }\n\n return {\n labelProps,\n // The root element of the Slider will have role=\"group\" to group together\n // all the thumb inputs in the Slider. The label of the Slider will\n // be used to label the group.\n groupProps: {\n role: 'group',\n ...fieldProps,\n },\n trackProps: mergeProps(\n {\n onMouseDown(e: React.MouseEvent<HTMLElement>) {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDownTrack(e, undefined, e.clientX, e.clientY);\n },\n onPointerDown(e: React.PointerEvent<HTMLElement>) {\n if (\n e.pointerType === 'mouse' &&\n (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey)\n ) {\n return;\n }\n onDownTrack(e, e.pointerId, e.clientX, e.clientY);\n },\n onTouchStart(e: React.TouchEvent<HTMLElement>) {\n onDownTrack(\n e,\n e.changedTouches[0].identifier,\n e.changedTouches[0].clientX,\n e.changedTouches[0].clientY\n );\n },\n },\n moveProps\n ),\n outputProps: {\n 'htmlFor': state.values\n .map((_, index) => getSliderThumbId(state, index))\n .join(' '),\n 'aria-live': 'off',\n },\n };\n}\n\nexport const useSlider = (\n props: any,\n state: any,\n ref: any,\n isReversed?: boolean\n) => {\n let { groupProps: webGroupProps, ...rest } = useSliderWeb(\n props,\n state,\n ref,\n isReversed\n );\n let groupProps = mapDomPropsToRN(webGroupProps);\n let labelProps = mapDomPropsToRN(rest.labelProps);\n return { groupProps, ...rest, labelProps };\n};\n"]}
|
1
|
+
{"version":3,"names":["_utils","require","_utils2","_react","_interactions","_label","_utils3","_useMove","useSliderWeb","props","state","trackLayout","isReversed","labelProps","fieldProps","useLabel","isVertical","orientation","sliderIds","set","id","direction","isRTL","undefined","addGlobalListener","removeGlobalListener","useGlobalListeners","realTimeTrackDraggingIndex","useRef","stateRef","current","reverseX","currentPosition","moveProps","useMove","onMoveStart","onMove","deltaX","deltaY","size","height","width","getThumbPercent","delta","percent","clamp","setThumbPercent","onMoveEnd","setThumbDragging","currentPointer","onDownTrack","e","clientX","clientY","isDisabled","values","every","_","i","isThumbDragging","trackPosition","clickPosition","offset","value","getPercentValue","closestThumb","split","findIndex","v","length","lastLeft","firstRight","Math","abs","isThumbEditable","preventDefault","setFocusedThumb","setThumbValue","window","onUpTrack","_e$changedTouches","pointerId","changedTouches","identifier","htmlFor","onClick","_document$getElementB","document","getElementById","getSliderThumbId","focus","setInteractionModality","groupProps","role","trackProps","mergeProps","onMouseDown","button","altKey","ctrlKey","metaKey","onPointerDown","pointerType","onTouchStart","outputProps","map","index","join","useSlider","ref","webGroupProps","rest","mapDomPropsToRN","exports"],"sourceRoot":"../../src","sources":["useSlider.web.ts"],"mappings":"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"}
|
@@ -4,19 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.useSliderThumb = useSliderThumb;
|
7
|
-
|
8
7
|
var _utils = require("@react-aria/utils");
|
9
|
-
|
10
8
|
var _utils2 = require("./utils");
|
11
|
-
|
12
9
|
var _react = require("react");
|
13
|
-
|
14
10
|
var _label = require("@react-aria/label");
|
15
|
-
|
16
11
|
var _useMove = require("./useMove");
|
17
|
-
|
18
12
|
var _utils3 = require("@react-native-aria/utils");
|
19
|
-
|
20
13
|
/**
|
21
14
|
* Provides behavior and accessibility for a thumb of a slider component.
|
22
15
|
*
|
@@ -24,8 +17,6 @@ var _utils3 = require("@react-native-aria/utils");
|
|
24
17
|
* @param state Slider state, created via `useSliderState`.
|
25
18
|
*/
|
26
19
|
function useSliderThumb(opts, state, isReversed) {
|
27
|
-
var _opts$ariaLabelledby;
|
28
|
-
|
29
20
|
let {
|
30
21
|
index,
|
31
22
|
isDisabled,
|
@@ -33,15 +24,14 @@ function useSliderThumb(opts, state, isReversed) {
|
|
33
24
|
} = opts;
|
34
25
|
let isVertical = opts.orientation === 'vertical';
|
35
26
|
const direction = (0, _utils3.isRTL)() ? 'rtl' : undefined;
|
36
|
-
|
37
27
|
let labelId = _utils2.sliderIds.get(state);
|
38
|
-
|
39
28
|
const {
|
40
29
|
labelProps,
|
41
30
|
fieldProps
|
42
|
-
} = (0, _label.useLabel)({
|
31
|
+
} = (0, _label.useLabel)({
|
32
|
+
...opts,
|
43
33
|
'id': (0, _utils2.getSliderThumbId)(state, index),
|
44
|
-
'aria-labelledby': `${labelId} ${
|
34
|
+
'aria-labelledby': `${labelId} ${opts['aria-labelledby'] ?? ''}`.trim()
|
45
35
|
});
|
46
36
|
const stateRef = (0, _react.useRef)(null);
|
47
37
|
stateRef.current = state;
|
@@ -56,19 +46,15 @@ function useSliderThumb(opts, state, isReversed) {
|
|
56
46
|
let size = isVertical ? trackLayout.height : trackLayout.width;
|
57
47
|
setStartPosition(stateRef.current.getThumbPercent(index) * size);
|
58
48
|
},
|
59
|
-
|
60
49
|
onMove({
|
61
50
|
deltaX,
|
62
51
|
deltaY
|
63
52
|
}) {
|
64
53
|
let size = isVertical ? trackLayout.height : trackLayout.width;
|
65
|
-
|
66
54
|
if (currentPosition.current == null) {
|
67
55
|
currentPosition.current = stateRef.current.getThumbPercent(index) * size;
|
68
56
|
}
|
69
|
-
|
70
57
|
let delta = isVertical ? deltaY : deltaX;
|
71
|
-
|
72
58
|
if (reverseX) {
|
73
59
|
if (!isVertical) {
|
74
60
|
delta = -delta;
|
@@ -78,43 +64,34 @@ function useSliderThumb(opts, state, isReversed) {
|
|
78
64
|
delta = -delta;
|
79
65
|
}
|
80
66
|
}
|
81
|
-
|
82
67
|
const position = startPosition + delta;
|
83
68
|
stateRef.current.setThumbPercent(index, (0, _utils.clamp)(position / size, 0, 1));
|
84
69
|
},
|
85
|
-
|
86
70
|
onMoveEnd() {
|
87
71
|
state.setThumbDragging(index, false);
|
88
72
|
}
|
89
|
-
|
90
73
|
});
|
91
74
|
state.setThumbEditable(index, !isDisabled);
|
92
|
-
|
93
75
|
const onAccessibilityAction = event => {
|
94
|
-
var _ref, _ref2;
|
95
|
-
|
96
76
|
const max = state.getThumbMinValue(index);
|
97
77
|
const min = state.getThumbMaxValue(index);
|
98
78
|
const value = state.getThumbValue(index);
|
99
|
-
const incrementValue = Math.min(
|
100
|
-
const decrementValue = Math.max(
|
101
|
-
|
79
|
+
const incrementValue = Math.min(value + state.step ?? 1, max);
|
80
|
+
const decrementValue = Math.max(value - state.step ?? 1, min);
|
102
81
|
switch (event.nativeEvent.actionName) {
|
103
82
|
case 'increment':
|
104
83
|
state.setThumbValue(index, incrementValue);
|
105
84
|
break;
|
106
|
-
|
107
85
|
case 'decrement':
|
108
86
|
state.setThumbValue(index, decrementValue);
|
109
87
|
break;
|
110
|
-
|
111
88
|
default:
|
112
89
|
break;
|
113
90
|
}
|
114
91
|
};
|
115
|
-
|
116
92
|
return {
|
117
|
-
inputProps: {
|
93
|
+
inputProps: {
|
94
|
+
...fieldProps,
|
118
95
|
'disabled': isDisabled,
|
119
96
|
'role': 'adjustable',
|
120
97
|
'aria-value': {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
1
|
+
{"version":3,"names":["_utils","require","_utils2","_react","_label","_useMove","_utils3","useSliderThumb","opts","state","isReversed","index","isDisabled","trackLayout","isVertical","orientation","direction","isRTL","undefined","labelId","sliderIds","get","labelProps","fieldProps","useLabel","getSliderThumbId","trim","stateRef","useRef","current","reverseX","currentPosition","startPosition","setStartPosition","useState","moveProps","useMove","onMoveStart","setThumbDragging","size","height","width","getThumbPercent","onMove","deltaX","deltaY","delta","position","setThumbPercent","clamp","onMoveEnd","setThumbEditable","onAccessibilityAction","event","max","getThumbMinValue","min","getThumbMaxValue","value","getThumbValue","incrementValue","Math","step","decrementValue","nativeEvent","actionName","setThumbValue","inputProps","now","name","label","thumbProps"],"sourceRoot":"../../src","sources":["useSliderThumb.ts"],"mappings":"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"}
|
@@ -4,21 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.useSliderThumb = useSliderThumb;
|
7
|
-
|
8
7
|
var _utils = require("@react-aria/utils");
|
9
|
-
|
10
8
|
var _utils2 = require("./utils");
|
11
|
-
|
12
9
|
var _react = require("react");
|
13
|
-
|
14
10
|
var _focus = require("@react-aria/focus");
|
15
|
-
|
16
11
|
var _label = require("@react-aria/label");
|
17
|
-
|
18
12
|
var _useMove = require("./useMove");
|
19
|
-
|
20
13
|
var _utils3 = require("@react-native-aria/utils");
|
21
|
-
|
22
14
|
/**
|
23
15
|
* Provides behavior and accessibility for a thumb of a slider component.
|
24
16
|
*
|
@@ -26,8 +18,6 @@ var _utils3 = require("@react-native-aria/utils");
|
|
26
18
|
* @param state Slider state, created via `useSliderState`.
|
27
19
|
*/
|
28
20
|
function useSliderThumb(opts, state, isReversed) {
|
29
|
-
var _opts$ariaLabelledby;
|
30
|
-
|
31
21
|
let {
|
32
22
|
index,
|
33
23
|
isRequired,
|
@@ -42,15 +32,14 @@ function useSliderThumb(opts, state, isReversed) {
|
|
42
32
|
addGlobalListener,
|
43
33
|
removeGlobalListener
|
44
34
|
} = (0, _utils.useGlobalListeners)();
|
45
|
-
|
46
35
|
let labelId = _utils2.sliderIds.get(state);
|
47
|
-
|
48
36
|
const {
|
49
37
|
labelProps,
|
50
38
|
fieldProps
|
51
|
-
} = (0, _label.useLabel)({
|
39
|
+
} = (0, _label.useLabel)({
|
40
|
+
...opts,
|
52
41
|
'id': (0, _utils2.getSliderThumbId)(state, index),
|
53
|
-
'aria-labelledby': `${labelId} ${
|
42
|
+
'aria-labelledby': `${labelId} ${opts['aria-labelledby'] ?? ''}`.trim()
|
54
43
|
});
|
55
44
|
const value = state.values[index];
|
56
45
|
const focusInput = (0, _react.useCallback)(() => {
|
@@ -75,18 +64,15 @@ function useSliderThumb(opts, state, isReversed) {
|
|
75
64
|
currentPosition.current = null;
|
76
65
|
state.setThumbDragging(index, true);
|
77
66
|
},
|
78
|
-
|
79
67
|
onMove({
|
80
68
|
deltaX,
|
81
69
|
deltaY,
|
82
70
|
pointerType
|
83
71
|
}) {
|
84
72
|
let size = isVertical ? trackLayout.height : trackLayout.width;
|
85
|
-
|
86
73
|
if (currentPosition.current == null) {
|
87
74
|
currentPosition.current = stateRef.current.getThumbPercent(index) * size;
|
88
75
|
}
|
89
|
-
|
90
76
|
if (pointerType === 'keyboard') {
|
91
77
|
// (invert left/right according to language direction) + (according to vertical)
|
92
78
|
let delta = ((reverseX ? -deltaX : deltaX) + (reverseX ? deltaY : -deltaY)) * stateRef.current.step;
|
@@ -94,7 +80,6 @@ function useSliderThumb(opts, state, isReversed) {
|
|
94
80
|
stateRef.current.setThumbValue(index, stateRef.current.getThumbValue(index) + delta);
|
95
81
|
} else {
|
96
82
|
let delta = isVertical ? deltaY : deltaX;
|
97
|
-
|
98
83
|
if (reverseX) {
|
99
84
|
if (!isVertical) {
|
100
85
|
delta = -delta;
|
@@ -104,18 +89,16 @@ function useSliderThumb(opts, state, isReversed) {
|
|
104
89
|
delta = -delta;
|
105
90
|
}
|
106
91
|
}
|
107
|
-
|
108
92
|
currentPosition.current += delta;
|
109
93
|
stateRef.current.setThumbPercent(index, (0, _utils.clamp)(currentPosition.current / size, 0, 1));
|
110
94
|
}
|
111
95
|
},
|
112
|
-
|
113
96
|
onMoveEnd() {
|
114
97
|
state.setThumbDragging(index, false);
|
115
98
|
}
|
99
|
+
});
|
116
100
|
|
117
|
-
|
118
|
-
|
101
|
+
// Immediately register editability with the state
|
119
102
|
state.setThumbEditable(index, !isDisabled);
|
120
103
|
const {
|
121
104
|
focusableProps
|
@@ -124,7 +107,6 @@ function useSliderThumb(opts, state, isReversed) {
|
|
124
107
|
onBlur: () => state.setFocusedThumb(undefined)
|
125
108
|
}), inputRef);
|
126
109
|
let currentPointer = (0, _react.useRef)(undefined);
|
127
|
-
|
128
110
|
let onDown = id => {
|
129
111
|
focusInput();
|
130
112
|
currentPointer.current = id;
|
@@ -133,12 +115,9 @@ function useSliderThumb(opts, state, isReversed) {
|
|
133
115
|
addGlobalListener(window, 'touchend', onUp, false);
|
134
116
|
addGlobalListener(window, 'pointerup', onUp, false);
|
135
117
|
};
|
136
|
-
|
137
118
|
let onUp = e => {
|
138
|
-
var _e$
|
139
|
-
|
140
|
-
let id = (_e$pointerId = e.pointerId) !== null && _e$pointerId !== void 0 ? _e$pointerId : (_e$changedTouches = e.changedTouches) === null || _e$changedTouches === void 0 ? void 0 : _e$changedTouches[0].identifier;
|
141
|
-
|
119
|
+
var _e$changedTouches;
|
120
|
+
let id = e.pointerId ?? ((_e$changedTouches = e.changedTouches) === null || _e$changedTouches === void 0 ? void 0 : _e$changedTouches[0].identifier);
|
142
121
|
if (id === currentPointer.current) {
|
143
122
|
focusInput();
|
144
123
|
state.setThumbDragging(index, false);
|
@@ -146,12 +125,12 @@ function useSliderThumb(opts, state, isReversed) {
|
|
146
125
|
removeGlobalListener(window, 'touchend', onUp, false);
|
147
126
|
removeGlobalListener(window, 'pointerup', onUp, false);
|
148
127
|
}
|
149
|
-
};
|
128
|
+
};
|
129
|
+
|
130
|
+
// We install mouse handlers for the drag motion on the thumb div, but
|
150
131
|
// not the key handler for moving the thumb with the slider. Instead,
|
151
132
|
// we focus the range input, and let the browser handle the keyboard
|
152
133
|
// interactions; we then listen to input's onChange to update state.
|
153
|
-
|
154
|
-
|
155
134
|
return {
|
156
135
|
inputProps: (0, _utils.mergeProps)(focusableProps, fieldProps, {
|
157
136
|
'type': 'range',
|
@@ -175,14 +154,12 @@ function useSliderThumb(opts, state, isReversed) {
|
|
175
154
|
if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {
|
176
155
|
return;
|
177
156
|
}
|
178
|
-
|
179
157
|
onDown();
|
180
158
|
},
|
181
159
|
onPointerDown: e => {
|
182
160
|
if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {
|
183
161
|
return;
|
184
162
|
}
|
185
|
-
|
186
163
|
onDown(e.pointerId);
|
187
164
|
},
|
188
165
|
onTouchStart: e => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["useSliderThumb.web.ts"],"names":["useSliderThumb","opts","state","isReversed","index","isRequired","isDisabled","validationState","trackLayout","inputRef","isVertical","orientation","direction","undefined","addGlobalListener","removeGlobalListener","labelId","sliderIds","get","labelProps","fieldProps","trim","value","values","focusInput","current","isFocused","focusedThumb","stateRef","reverseX","currentPosition","moveProps","onMoveStart","setThumbDragging","onMove","deltaX","deltaY","pointerType","size","height","width","getThumbPercent","delta","step","setThumbValue","getThumbValue","setThumbPercent","onMoveEnd","setThumbEditable","focusableProps","onFocus","setFocusedThumb","onBlur","currentPointer","onDown","id","window","onUp","e","pointerId","changedTouches","identifier","inputProps","getThumbMinValue","getThumbMaxValue","getThumbValueLabel","parseFloat","target","thumbProps","onMouseDown","button","altKey","ctrlKey","metaKey","onPointerDown","onTouchStart"],"mappings":"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","sourcesContent":["import { AriaSliderThumbProps } from '@react-types/slider';\nimport {\n clamp,\n focusWithoutScrolling,\n mergeProps,\n useGlobalListeners,\n} from '@react-aria/utils';\nimport { getSliderThumbId, sliderIds } from './utils';\nimport React, {\n ChangeEvent,\n HTMLAttributes,\n InputHTMLAttributes,\n LabelHTMLAttributes,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n} from 'react';\nimport { SliderState } from '@react-stately/slider';\nimport { useFocusable } from '@react-aria/focus';\nimport { useLabel } from '@react-aria/label';\nimport { useMove } from './useMove';\nimport { isRTL } from '@react-native-aria/utils';\n\ninterface SliderThumbAria {\n /** Props for the root thumb element; handles the dragging motion. */\n thumbProps: HTMLAttributes<HTMLElement>;\n\n /** Props for the visually hidden range input element. */\n inputProps: InputHTMLAttributes<HTMLInputElement>;\n\n /** Props for the label element for this thumb (optional). */\n labelProps: LabelHTMLAttributes<HTMLLabelElement>;\n}\n\ninterface SliderThumbOptions extends AriaSliderThumbProps {\n /** A ref to the track element. */\n trackLayout: any;\n /** A ref to the thumb input element. */\n inputRef: RefObject<HTMLInputElement>;\n}\n\n/**\n * Provides behavior and accessibility for a thumb of a slider component.\n *\n * @param opts Options for this Slider thumb.\n * @param state Slider state, created via `useSliderState`.\n */\nexport function useSliderThumb(\n opts: SliderThumbOptions,\n state: SliderState,\n isReversed?: boolean\n): SliderThumbAria {\n let {\n index,\n isRequired,\n isDisabled,\n validationState,\n trackLayout,\n inputRef,\n } = opts;\n\n let isVertical = opts.orientation === 'vertical';\n\n let direction = isRTL() ? 'rtl' : undefined;\n let { addGlobalListener, removeGlobalListener } = useGlobalListeners();\n\n let labelId = sliderIds.get(state);\n const { labelProps, fieldProps } = useLabel({\n ...opts,\n 'id': getSliderThumbId(state, index),\n 'aria-labelledby': `${labelId} ${opts['aria-labelledby'] ?? ''}`.trim(),\n });\n\n const value = state.values[index];\n\n const focusInput = useCallback(() => {\n if (inputRef.current) {\n focusWithoutScrolling(inputRef.current);\n }\n }, [inputRef]);\n\n const isFocused = state.focusedThumb === index;\n\n useEffect(() => {\n if (isFocused) {\n focusInput();\n }\n }, [isFocused, focusInput]);\n\n const stateRef = useRef<SliderState>(null);\n stateRef.current = state;\n let reverseX = isReversed || direction === 'rtl';\n let currentPosition = useRef<number>(null);\n let { moveProps } = useMove({\n onMoveStart() {\n currentPosition.current = null;\n state.setThumbDragging(index, true);\n },\n onMove({ deltaX, deltaY, pointerType }) {\n let size = isVertical ? trackLayout.height : trackLayout.width;\n\n if (currentPosition.current == null) {\n currentPosition.current =\n stateRef.current.getThumbPercent(index) * size;\n }\n if (pointerType === 'keyboard') {\n // (invert left/right according to language direction) + (according to vertical)\n let delta =\n ((reverseX ? -deltaX : deltaX) + (reverseX ? deltaY : -deltaY)) *\n stateRef.current.step;\n currentPosition.current += delta * size;\n stateRef.current.setThumbValue(\n index,\n stateRef.current.getThumbValue(index) + delta\n );\n } else {\n let delta = isVertical ? deltaY : deltaX;\n if (reverseX) {\n if (!isVertical) {\n delta = -delta;\n }\n } else {\n if (isVertical) {\n delta = -delta;\n }\n }\n currentPosition.current += delta;\n stateRef.current.setThumbPercent(\n index,\n clamp(currentPosition.current / size, 0, 1)\n );\n }\n },\n onMoveEnd() {\n state.setThumbDragging(index, false);\n },\n });\n\n // Immediately register editability with the state\n state.setThumbEditable(index, !isDisabled);\n\n const { focusableProps } = useFocusable(\n mergeProps(opts, {\n onFocus: () => state.setFocusedThumb(index),\n onBlur: () => state.setFocusedThumb(undefined),\n }),\n inputRef\n );\n\n let currentPointer = useRef<number | undefined>(undefined);\n let onDown = (id?: number) => {\n focusInput();\n currentPointer.current = id;\n state.setThumbDragging(index, true);\n\n addGlobalListener(window, 'mouseup', onUp, false);\n addGlobalListener(window, 'touchend', onUp, false);\n addGlobalListener(window, 'pointerup', onUp, false);\n };\n\n let onUp = (e) => {\n let id = e.pointerId ?? e.changedTouches?.[0].identifier;\n if (id === currentPointer.current) {\n focusInput();\n state.setThumbDragging(index, false);\n removeGlobalListener(window, 'mouseup', onUp, false);\n removeGlobalListener(window, 'touchend', onUp, false);\n removeGlobalListener(window, 'pointerup', onUp, false);\n }\n };\n\n // We install mouse handlers for the drag motion on the thumb div, but\n // not the key handler for moving the thumb with the slider. Instead,\n // we focus the range input, and let the browser handle the keyboard\n // interactions; we then listen to input's onChange to update state.\n return {\n inputProps: mergeProps(focusableProps, fieldProps, {\n 'type': 'range',\n 'tabIndex': !isDisabled ? 0 : undefined,\n 'min': state.getThumbMinValue(index),\n 'max': state.getThumbMaxValue(index),\n 'step': state.step,\n 'value': value,\n 'disabled': isDisabled,\n 'aria-orientation': opts.orientation,\n 'aria-valuetext': state.getThumbValueLabel(index),\n 'aria-required': isRequired || undefined,\n 'aria-invalid': validationState === 'invalid' || undefined,\n 'aria-errormessage': opts['aria-errormessage'],\n 'onChange': (e: ChangeEvent<HTMLInputElement>) => {\n state.setThumbValue(index, parseFloat(e.target.value));\n },\n }),\n thumbProps: !isDisabled\n ? mergeProps(moveProps, {\n onMouseDown: (e: React.MouseEvent<HTMLElement>) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown();\n },\n onPointerDown: (e: React.PointerEvent<HTMLElement>) => {\n if (e.button !== 0 || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n onDown(e.pointerId);\n },\n onTouchStart: (e: React.TouchEvent<HTMLElement>) => {\n onDown(e.changedTouches[0].identifier);\n },\n })\n : {},\n labelProps,\n };\n}\n"]}
|
1
|
+
{"version":3,"names":["_utils","require","_utils2","_react","_focus","_label","_useMove","_utils3","useSliderThumb","opts","state","isReversed","index","isRequired","isDisabled","validationState","trackLayout","inputRef","isVertical","orientation","direction","isRTL","undefined","addGlobalListener","removeGlobalListener","useGlobalListeners","labelId","sliderIds","get","labelProps","fieldProps","useLabel","getSliderThumbId","trim","value","values","focusInput","useCallback","current","focusWithoutScrolling","isFocused","focusedThumb","useEffect","stateRef","useRef","reverseX","currentPosition","moveProps","useMove","onMoveStart","setThumbDragging","onMove","deltaX","deltaY","pointerType","size","height","width","getThumbPercent","delta","step","setThumbValue","getThumbValue","setThumbPercent","clamp","onMoveEnd","setThumbEditable","focusableProps","useFocusable","mergeProps","onFocus","setFocusedThumb","onBlur","currentPointer","onDown","id","window","onUp","e","_e$changedTouches","pointerId","changedTouches","identifier","inputProps","getThumbMinValue","getThumbMaxValue","getThumbValueLabel","parseFloat","target","thumbProps","onMouseDown","button","altKey","ctrlKey","metaKey","onPointerDown","onTouchStart"],"sourceRoot":"../../src","sources":["useSliderThumb.web.ts"],"mappings":"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"}
|