@react-native-aria/slider 0.2.10 → 0.2.12

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 (66) hide show
  1. package/lib/commonjs/index.js +0 -2
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/textSelection.js +13 -8
  4. package/lib/commonjs/textSelection.js.map +1 -1
  5. package/lib/commonjs/useMove.js +4 -13
  6. package/lib/commonjs/useMove.js.map +1 -1
  7. package/lib/commonjs/useMove.web.js +5 -27
  8. package/lib/commonjs/useMove.web.js.map +1 -1
  9. package/lib/commonjs/usePanResponder.js +0 -9
  10. package/lib/commonjs/usePanResponder.js.map +1 -1
  11. package/lib/commonjs/useSlider.js +9 -25
  12. package/lib/commonjs/useSlider.js.map +1 -1
  13. package/lib/commonjs/useSlider.web.js +20 -52
  14. package/lib/commonjs/useSlider.web.js.map +1 -1
  15. package/lib/commonjs/useSliderThumb.js +7 -30
  16. package/lib/commonjs/useSliderThumb.js.map +1 -1
  17. package/lib/commonjs/useSliderThumb.web.js +10 -33
  18. package/lib/commonjs/useSliderThumb.web.js.map +1 -1
  19. package/lib/commonjs/utils.js +1 -5
  20. package/lib/commonjs/utils.js.map +1 -1
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/textSelection.js +7 -5
  23. package/lib/module/textSelection.js.map +1 -1
  24. package/lib/module/useMove.js +3 -5
  25. package/lib/module/useMove.js.map +1 -1
  26. package/lib/module/useMove.web.js +6 -24
  27. package/lib/module/useMove.web.js.map +1 -1
  28. package/lib/module/usePanResponder.js +0 -5
  29. package/lib/module/usePanResponder.js.map +1 -1
  30. package/lib/module/useSlider.js +9 -19
  31. package/lib/module/useSlider.js.map +1 -1
  32. package/lib/module/useSlider.web.js +20 -43
  33. package/lib/module/useSlider.web.js.map +1 -1
  34. package/lib/module/useSliderThumb.js +7 -22
  35. package/lib/module/useSliderThumb.js.map +1 -1
  36. package/lib/module/useSliderThumb.web.js +10 -24
  37. package/lib/module/useSliderThumb.web.js.map +1 -1
  38. package/lib/module/utils.js +0 -2
  39. package/lib/module/utils.js.map +1 -1
  40. package/lib/typescript/index.d.ts +1 -0
  41. package/lib/typescript/index.d.ts.map +1 -0
  42. package/lib/typescript/textSelection.d.ts +1 -0
  43. package/lib/typescript/textSelection.d.ts.map +1 -0
  44. package/lib/typescript/useMove.d.ts +1 -0
  45. package/lib/typescript/useMove.d.ts.map +1 -0
  46. package/lib/typescript/useMove.web.d.ts +1 -0
  47. package/lib/typescript/useMove.web.d.ts.map +1 -0
  48. package/lib/typescript/usePanResponder.d.ts +2 -1
  49. package/lib/typescript/usePanResponder.d.ts.map +1 -0
  50. package/lib/typescript/useSlider.d.ts +1 -0
  51. package/lib/typescript/useSlider.d.ts.map +1 -0
  52. package/lib/typescript/useSlider.web.d.ts +1 -0
  53. package/lib/typescript/useSlider.web.d.ts.map +1 -0
  54. package/lib/typescript/useSliderThumb.d.ts +1 -0
  55. package/lib/typescript/useSliderThumb.d.ts.map +1 -0
  56. package/lib/typescript/useSliderThumb.web.d.ts +1 -0
  57. package/lib/typescript/useSliderThumb.web.d.ts.map +1 -0
  58. package/lib/typescript/utils.d.ts +1 -0
  59. package/lib/typescript/utils.d.ts.map +1 -0
  60. package/package.json +8 -4
  61. package/src/useMove.ts +0 -1
  62. package/src/useMove.web.ts +3 -0
  63. package/src/useSlider.web.ts +3 -1
  64. package/babel.config.js +0 -3
  65. package/scripts/bootstrap.js +0 -24
  66. package/tsconfig.build.json +0 -5
@@ -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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","ignoreList":[]}
@@ -5,16 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getSliderThumbId = getSliderThumbId;
7
7
  exports.sliderIds = void 0;
8
- const sliderIds = new WeakMap();
9
- exports.sliderIds = sliderIds;
10
-
8
+ const sliderIds = exports.sliderIds = new WeakMap();
11
9
  function getSliderThumbId(state, index) {
12
10
  let id = sliderIds.get(state);
13
-
14
11
  if (!id) {
15
12
  throw new Error('Unknown slider state');
16
13
  }
17
-
18
14
  return `${id}-${index}`;
19
15
  }
20
16
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["utils.ts"],"names":["sliderIds","WeakMap","getSliderThumbId","state","index","id","get","Error"],"mappings":";;;;;;;AAEO,MAAMA,SAAS,GAAG,IAAIC,OAAJ,EAAlB;;;AAEA,SAASC,gBAAT,CAA0BC,KAA1B,EAA8CC,KAA9C,EAA6D;AAClE,MAAIC,EAAE,GAAGL,SAAS,CAACM,GAAV,CAAcH,KAAd,CAAT;;AACA,MAAI,CAACE,EAAL,EAAS;AACP,UAAM,IAAIE,KAAJ,CAAU,sBAAV,CAAN;AACD;;AAED,SAAQ,GAAEF,EAAG,IAAGD,KAAM,EAAtB;AACD","sourcesContent":["import { SliderState } from '@react-stately/slider';\n\nexport const sliderIds = new WeakMap<SliderState, string>();\n\nexport function getSliderThumbId(state: SliderState, index: number) {\n let id = sliderIds.get(state);\n if (!id) {\n throw new Error('Unknown slider state');\n }\n\n return `${id}-${index}`;\n}\n"]}
1
+ {"version":3,"names":["sliderIds","exports","WeakMap","getSliderThumbId","state","index","id","get","Error"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":";;;;;;;AAEO,MAAMA,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,IAAIE,OAAO,CAAsB,CAAC;AAEpD,SAASC,gBAAgBA,CAACC,KAAkB,EAAEC,KAAa,EAAE;EAClE,IAAIC,EAAE,GAAGN,SAAS,CAACO,GAAG,CAACH,KAAK,CAAC;EAC7B,IAAI,CAACE,EAAE,EAAE;IACP,MAAM,IAAIE,KAAK,CAAC,sBAAsB,CAAC;EACzC;EAEA,OAAO,GAAGF,EAAE,IAAID,KAAK,EAAE;AACzB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["useSlider","useSliderThumb"],"mappings":"AAAA,SAASA,SAAT,QAA0B,aAA1B;AACA,SAASC,cAAT,QAA+B,kBAA/B","sourcesContent":["export { useSlider } from './useSlider';\nexport { useSliderThumb } from './useSliderThumb';\n"]}
1
+ {"version":3,"names":["useSlider","useSliderThumb"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,SAAS,QAAQ,aAAa;AACvC,SAASC,cAAc,QAAQ,kBAAkB","ignoreList":[]}
@@ -9,11 +9,15 @@
9
9
  * OF ANY KIND, either express or implied. See the License for the specific language
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
- import { runAfterTransition } from '@react-aria/utils'; // Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,
12
+
13
+ import { runAfterTransition } from '@react-aria/utils';
14
+
15
+ // Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,
13
16
  // is to add user-select: none to the entire page. Adding it to the pressable element prevents
14
17
  // that element from being selected, but nearby elements may still receive selection. We add
15
18
  // user-select: none on touch start, and remove it again on touch end to prevent this.
16
19
  // This must be implemented using global state to avoid race conditions between multiple elements.
20
+
17
21
  // There are three possible states due to the delay before removing user-select: none after
18
22
  // pointer up. The 'default' state always transitions to the 'disabled' state, which transitions
19
23
  // to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.
@@ -25,7 +29,6 @@ export function disableTextSelection() {
25
29
  savedUserSelect = document.documentElement.style.webkitUserSelect;
26
30
  document.documentElement.style.webkitUserSelect = 'none';
27
31
  }
28
-
29
32
  state = 'disabled';
30
33
  }
31
34
  export function restoreTextSelection() {
@@ -34,10 +37,10 @@ export function restoreTextSelection() {
34
37
  if (state !== 'disabled') {
35
38
  return;
36
39
  }
40
+ state = 'restoring';
37
41
 
38
- state = 'restoring'; // There appears to be a delay on iOS where selection still might occur
42
+ // There appears to be a delay on iOS where selection still might occur
39
43
  // after pointer up, so wait a bit before removing user-select.
40
-
41
44
  setTimeout(() => {
42
45
  // Wait for any CSS transitions to complete so we don't recompute style
43
46
  // for the whole page in the middle of the animation and cause jank.
@@ -47,7 +50,6 @@ export function restoreTextSelection() {
47
50
  if (document.documentElement.style.webkitUserSelect === 'none') {
48
51
  document.documentElement.style.webkitUserSelect = savedUserSelect || '';
49
52
  }
50
-
51
53
  savedUserSelect = '';
52
54
  state = 'default';
53
55
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["textSelection.ts"],"names":["runAfterTransition","state","savedUserSelect","disableTextSelection","document","documentElement","style","webkitUserSelect","restoreTextSelection","setTimeout"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,SAASA,kBAAT,QAAmC,mBAAnC,C,CAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;;AAGA,IAAIC,KAAY,GAAG,SAAnB;AACA,IAAIC,eAAe,GAAG,EAAtB;AAEA,OAAO,SAASC,oBAAT,GAAgC;AACrC,MAAIF,KAAK,KAAK,SAAd,EAAyB;AACvBC,IAAAA,eAAe,GAAGE,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,gBAAjD;AACAH,IAAAA,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,gBAA/B,GAAkD,MAAlD;AACD;;AAEDN,EAAAA,KAAK,GAAG,UAAR;AACD;AAED,OAAO,SAASO,oBAAT,GAAgC;AACrC;AACA;AACA,MAAIP,KAAK,KAAK,UAAd,EAA0B;AACxB;AACD;;AAEDA,EAAAA,KAAK,GAAG,WAAR,CAPqC,CASrC;AACA;;AACAQ,EAAAA,UAAU,CAAC,MAAM;AACf;AACA;AACAT,IAAAA,kBAAkB,CAAC,MAAM;AACvB;AACA,UAAIC,KAAK,KAAK,WAAd,EAA2B;AACzB,YAAIG,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,gBAA/B,KAAoD,MAAxD,EAAgE;AAC9DH,UAAAA,QAAQ,CAACC,eAAT,CAAyBC,KAAzB,CAA+BC,gBAA/B,GACEL,eAAe,IAAI,EADrB;AAED;;AAEDA,QAAAA,eAAe,GAAG,EAAlB;AACAD,QAAAA,KAAK,GAAG,SAAR;AACD;AACF,KAXiB,CAAlB;AAYD,GAfS,EAeP,GAfO,CAAV;AAgBD","sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { runAfterTransition } from '@react-aria/utils';\n\n// Safari on iOS starts selecting text on long press. The only way to avoid this, it seems,\n// is to add user-select: none to the entire page. Adding it to the pressable element prevents\n// that element from being selected, but nearby elements may still receive selection. We add\n// user-select: none on touch start, and remove it again on touch end to prevent this.\n// This must be implemented using global state to avoid race conditions between multiple elements.\n\n// There are three possible states due to the delay before removing user-select: none after\n// pointer up. The 'default' state always transitions to the 'disabled' state, which transitions\n// to 'restoring'. The 'restoring' state can either transition back to 'disabled' or 'default'.\ntype State = 'default' | 'disabled' | 'restoring';\n\nlet state: State = 'default';\nlet savedUserSelect = '';\n\nexport function disableTextSelection() {\n if (state === 'default') {\n savedUserSelect = document.documentElement.style.webkitUserSelect;\n document.documentElement.style.webkitUserSelect = 'none';\n }\n\n state = 'disabled';\n}\n\nexport function restoreTextSelection() {\n // If the state is already default, there's nothing to do.\n // If it is restoring, then there's no need to queue a second restore.\n if (state !== 'disabled') {\n return;\n }\n\n state = 'restoring';\n\n // There appears to be a delay on iOS where selection still might occur\n // after pointer up, so wait a bit before removing user-select.\n setTimeout(() => {\n // Wait for any CSS transitions to complete so we don't recompute style\n // for the whole page in the middle of the animation and cause jank.\n runAfterTransition(() => {\n // Avoid race conditions\n if (state === 'restoring') {\n if (document.documentElement.style.webkitUserSelect === 'none') {\n document.documentElement.style.webkitUserSelect =\n savedUserSelect || '';\n }\n\n savedUserSelect = '';\n state = 'default';\n }\n });\n }, 300);\n}\n"]}
1
+ {"version":3,"names":["runAfterTransition","state","savedUserSelect","disableTextSelection","document","documentElement","style","webkitUserSelect","restoreTextSelection","setTimeout"],"sourceRoot":"../../src","sources":["textSelection.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,kBAAkB,QAAQ,mBAAmB;;AAEtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAGA,IAAIC,KAAY,GAAG,SAAS;AAC5B,IAAIC,eAAe,GAAG,EAAE;AAExB,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACrC,IAAIF,KAAK,KAAK,SAAS,EAAE;IACvBC,eAAe,GAAGE,QAAQ,CAACC,eAAe,CAACC,KAAK,CAACC,gBAAgB;IACjEH,QAAQ,CAACC,eAAe,CAACC,KAAK,CAACC,gBAAgB,GAAG,MAAM;EAC1D;EAEAN,KAAK,GAAG,UAAU;AACpB;AAEA,OAAO,SAASO,oBAAoBA,CAAA,EAAG;EACrC;EACA;EACA,IAAIP,KAAK,KAAK,UAAU,EAAE;IACxB;EACF;EAEAA,KAAK,GAAG,WAAW;;EAEnB;EACA;EACAQ,UAAU,CAAC,MAAM;IACf;IACA;IACAT,kBAAkB,CAAC,MAAM;MACvB;MACA,IAAIC,KAAK,KAAK,WAAW,EAAE;QACzB,IAAIG,QAAQ,CAACC,eAAe,CAACC,KAAK,CAACC,gBAAgB,KAAK,MAAM,EAAE;UAC9DH,QAAQ,CAACC,eAAe,CAACC,KAAK,CAACC,gBAAgB,GAC7CL,eAAe,IAAI,EAAE;QACzB;QAEAA,eAAe,GAAG,EAAE;QACpBD,KAAK,GAAG,SAAS;MACnB;IACF,CAAC,CAAC;EACJ,CAAC,EAAE,GAAG,CAAC;AACT","ignoreList":[]}
@@ -9,9 +9,9 @@
9
9
  * OF ANY KIND, either express or implied. See the License for the specific language
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  import React, { useState } from 'react';
13
14
  import { PanResponder } from 'react-native';
14
-
15
15
  /**
16
16
  * Handles move interactions across mouse, touch, and keyboard, including dragging with
17
17
  * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and
@@ -30,7 +30,7 @@ export function useMove(props) {
30
30
  return true;
31
31
  },
32
32
  onPanResponderGrant: (_evt, gestureState) => {
33
- onMoveStart === null || onMoveStart === void 0 ? void 0 : onMoveStart({
33
+ onMoveStart === null || onMoveStart === void 0 || onMoveStart({
34
34
  type: 'movestart',
35
35
  pointerType: 'touch'
36
36
  });
@@ -40,11 +40,9 @@ export function useMove(props) {
40
40
  onPanResponderMove: (_event, gestureState) => {
41
41
  const deltaX = gestureState.moveX - initialMoveX;
42
42
  const deltaY = gestureState.moveY - initialMoveY;
43
-
44
43
  if (deltaX === 0 && deltaY === 0) {
45
44
  return;
46
45
  }
47
-
48
46
  if (deltaX) {
49
47
  onMove({
50
48
  type: 'move',
@@ -55,7 +53,7 @@ export function useMove(props) {
55
53
  }
56
54
  },
57
55
  onPanResponderRelease: () => {
58
- onMoveEnd === null || onMoveEnd === void 0 ? void 0 : onMoveEnd({
56
+ onMoveEnd === null || onMoveEnd === void 0 || onMoveEnd({
59
57
  type: 'moveend',
60
58
  pointerType: 'touch'
61
59
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["useMove.ts"],"names":["React","useState","PanResponder","useMove","props","onMoveStart","onMove","onMoveEnd","initialMoveX","setInitialMoveX","initialMoveY","setInitialMoveY","panResponder","useMemo","create","onMoveShouldSetPanResponderCapture","_event","onPanResponderGrant","_evt","gestureState","type","pointerType","moveX","moveY","onPanResponderMove","deltaX","deltaY","onPanResponderRelease","moveProps","panHandlers"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,SAASC,YAAT,QAA6B,cAA7B;;AAOA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAT,CAAiBC,KAAjB,EAAyC;AAC9C,MAAI;AAAEC,IAAAA,WAAF;AAAeC,IAAAA,MAAf;AAAuBC,IAAAA;AAAvB,MAAqCH,KAAzC;AAEA,QAAM,CAACI,YAAD,EAAeC,eAAf,IAAkCR,QAAQ,CAAC,CAAD,CAAhD;AACA,QAAM,CAACS,YAAD,EAAeC,eAAf,IAAkCV,QAAQ,CAAC,CAAD,CAAhD;AACA,QAAMW,YAAY,GAAGZ,KAAK,CAACa,OAAN,CACnB,MACEX,YAAY,CAACY,MAAb,CAAoB;AAClBC,IAAAA,kCAAkC,EAAGC,MAAD,IAAY;AAC9C,aAAO,IAAP;AACD,KAHiB;AAIlBC,IAAAA,mBAAmB,EAAE,CAACC,IAAD,EAAOC,YAAP,KAAwB;AAC3Cd,MAAAA,WAAW,SAAX,IAAAA,WAAW,WAAX,YAAAA,WAAW,CAAG;AACZe,QAAAA,IAAI,EAAE,WADM;AAEZC,QAAAA,WAAW,EAAE;AAFD,OAAH,CAAX;AAKAZ,MAAAA,eAAe,CAACU,YAAY,CAACG,KAAd,CAAf;AACAX,MAAAA,eAAe,CAACQ,YAAY,CAACI,KAAd,CAAf;AACD,KAZiB;AAalBC,IAAAA,kBAAkB,EAAE,CAACR,MAAD,EAASG,YAAT,KAA0B;AAC5C,YAAMM,MAAM,GAAGN,YAAY,CAACG,KAAb,GAAqBd,YAApC;AACA,YAAMkB,MAAM,GAAGP,YAAY,CAACI,KAAb,GAAqBb,YAApC;;AACA,UAAIe,MAAM,KAAK,CAAX,IAAgBC,MAAM,KAAK,CAA/B,EAAkC;AAChC;AACD;;AAED,UAAID,MAAJ,EAAY;AACVnB,QAAAA,MAAM,CAAC;AACLc,UAAAA,IAAI,EAAE,MADD;AAELC,UAAAA,WAAW,EAAE,OAFR;AAGLI,UAAAA,MAAM,EAAEA,MAHH;AAILC,UAAAA,MAAM,EAAEA;AAJH,SAAD,CAAN;AAMD;AACF,KA5BiB;AA6BlBC,IAAAA,qBAAqB,EAAE,MAAM;AAC3BpB,MAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAG;AACVa,QAAAA,IAAI,EAAE,SADI;AAEVC,QAAAA,WAAW,EAAE;AAFH,OAAH,CAAT;AAID;AAlCiB,GAApB,CAFiB,EAsCnB,CAACf,MAAD,EAASC,SAAT,EAAoBF,WAApB,EAAiCG,YAAjC,EAA+CE,YAA/C,CAtCmB,CAArB;AAyCA,SAAO;AAAEkB,IAAAA,SAAS,EAAEhB,YAAY,CAACiB;AAA1B,GAAP;AACD","sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport React, { useState } from 'react';\nimport { PanResponder } from 'react-native';\n\ninterface MoveResult {\n /** Props to spread on the target element. */\n moveProps: any;\n}\n\n/**\n * Handles move interactions across mouse, touch, and keyboard, including dragging with\n * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and\n * platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useMove(props: any): MoveResult {\n let { onMoveStart, onMove, onMoveEnd } = props;\n\n const [initialMoveX, setInitialMoveX] = useState(0);\n const [initialMoveY, setInitialMoveY] = useState(0);\n const panResponder = React.useMemo(\n () =>\n PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_event) => {\n return true;\n },\n onPanResponderGrant: (_evt, gestureState) => {\n onMoveStart?.({\n type: 'movestart',\n pointerType: 'touch',\n });\n\n setInitialMoveX(gestureState.moveX);\n setInitialMoveY(gestureState.moveY);\n },\n onPanResponderMove: (_event, gestureState) => {\n const deltaX = gestureState.moveX - initialMoveX;\n const deltaY = gestureState.moveY - initialMoveY;\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n if (deltaX) {\n onMove({\n type: 'move',\n pointerType: 'touch',\n deltaX: deltaX,\n deltaY: deltaY,\n });\n }\n },\n onPanResponderRelease: () => {\n onMoveEnd?.({\n type: 'moveend',\n pointerType: 'touch',\n });\n },\n }),\n [onMove, onMoveEnd, onMoveStart, initialMoveX, initialMoveY]\n );\n\n return { moveProps: panResponder.panHandlers };\n}\n"]}
1
+ {"version":3,"names":["React","useState","PanResponder","useMove","props","onMoveStart","onMove","onMoveEnd","initialMoveX","setInitialMoveX","initialMoveY","setInitialMoveY","panResponder","useMemo","create","onMoveShouldSetPanResponderCapture","_event","onPanResponderGrant","_evt","gestureState","type","pointerType","moveX","moveY","onPanResponderMove","deltaX","deltaY","onPanResponderRelease","moveProps","panHandlers"],"sourceRoot":"../../src","sources":["useMove.ts"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,YAAY,QAAQ,cAAc;AAO3C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CAACC,KAAU,EAAc;EAC9C,IAAI;IAAEC,WAAW;IAAEC,MAAM;IAAEC;EAAU,CAAC,GAAGH,KAAK;EAE9C,MAAM,CAACI,YAAY,EAAEC,eAAe,CAAC,GAAGR,QAAQ,CAAC,CAAC,CAAC;EACnD,MAAM,CAACS,YAAY,EAAEC,eAAe,CAAC,GAAGV,QAAQ,CAAC,CAAC,CAAC;EACnD,MAAMW,YAAY,GAAGZ,KAAK,CAACa,OAAO,CAChC,MACEX,YAAY,CAACY,MAAM,CAAC;IAClBC,kCAAkC,EAAGC,MAAM,IAAK;MAC9C,OAAO,IAAI;IACb,CAAC;IACDC,mBAAmB,EAAEA,CAACC,IAAI,EAAEC,YAAY,KAAK;MAC3Cd,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAG;QACZe,IAAI,EAAE,WAAW;QACjBC,WAAW,EAAE;MACf,CAAC,CAAC;MACFZ,eAAe,CAACU,YAAY,CAACG,KAAK,CAAC;MACnCX,eAAe,CAACQ,YAAY,CAACI,KAAK,CAAC;IACrC,CAAC;IACDC,kBAAkB,EAAEA,CAACR,MAAM,EAAEG,YAAY,KAAK;MAC5C,MAAMM,MAAM,GAAGN,YAAY,CAACG,KAAK,GAAGd,YAAY;MAChD,MAAMkB,MAAM,GAAGP,YAAY,CAACI,KAAK,GAAGb,YAAY;MAChD,IAAIe,MAAM,KAAK,CAAC,IAAIC,MAAM,KAAK,CAAC,EAAE;QAChC;MACF;MAEA,IAAID,MAAM,EAAE;QACVnB,MAAM,CAAC;UACLc,IAAI,EAAE,MAAM;UACZC,WAAW,EAAE,OAAO;UACpBI,MAAM,EAAEA,MAAM;UACdC,MAAM,EAAEA;QACV,CAAC,CAAC;MACJ;IACF,CAAC;IACDC,qBAAqB,EAAEA,CAAA,KAAM;MAC3BpB,SAAS,aAATA,SAAS,eAATA,SAAS,CAAG;QACVa,IAAI,EAAE,SAAS;QACfC,WAAW,EAAE;MACf,CAAC,CAAC;IACJ;EACF,CAAC,CAAC,EACJ,CAACf,MAAM,EAAEC,SAAS,EAAEF,WAAW,EAAEG,YAAY,EAAEE,YAAY,CAC7D,CAAC;EAED,OAAO;IAAEkB,SAAS,EAAEhB,YAAY,CAACiB;EAAY,CAAC;AAChD","ignoreList":[]}
@@ -9,10 +9,10 @@
9
9
  * OF ANY KIND, either express or implied. See the License for the specific language
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
+
12
13
  import { disableTextSelection, restoreTextSelection } from './textSelection';
13
14
  import { useMemo, useRef } from 'react';
14
15
  import { useGlobalListeners } from '@react-aria/utils';
15
-
16
16
  /**
17
17
  * Handles move interactions across mouse, touch, and keyboard, including dragging with
18
18
  * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and
@@ -35,25 +35,23 @@ export function useMove(props) {
35
35
  } = useGlobalListeners();
36
36
  let moveProps = useMemo(() => {
37
37
  let moveProps = {};
38
-
39
38
  let start = () => {
40
39
  disableTextSelection();
41
40
  state.current.didMove = false;
42
41
  };
43
-
44
42
  let move = (pointerType, deltaX, deltaY) => {
45
43
  if (deltaX === 0 && deltaY === 0) {
46
44
  return;
47
45
  }
48
-
49
46
  if (!state.current.didMove) {
50
47
  state.current.didMove = true;
51
- onMoveStart === null || onMoveStart === void 0 ? void 0 : onMoveStart({
48
+ // @ts-ignore
49
+ onMoveStart === null || onMoveStart === void 0 || onMoveStart({
52
50
  type: 'movestart',
53
51
  pointerType
54
52
  });
55
53
  }
56
-
54
+ // @ts-ignore
57
55
  onMove({
58
56
  type: 'move',
59
57
  pointerType,
@@ -61,18 +59,16 @@ export function useMove(props) {
61
59
  deltaY: deltaY
62
60
  });
63
61
  };
64
-
65
62
  let end = pointerType => {
66
63
  restoreTextSelection();
67
-
68
64
  if (state.current.didMove) {
69
- onMoveEnd === null || onMoveEnd === void 0 ? void 0 : onMoveEnd({
65
+ // @ts-ignore
66
+ onMoveEnd === null || onMoveEnd === void 0 || onMoveEnd({
70
67
  type: 'moveend',
71
68
  pointerType
72
69
  });
73
70
  }
74
71
  };
75
-
76
72
  if (typeof PointerEvent !== 'undefined') {
77
73
  let onMouseMove = e => {
78
74
  if (e.button === 0) {
@@ -83,7 +79,6 @@ export function useMove(props) {
83
79
  };
84
80
  }
85
81
  };
86
-
87
82
  let onMouseUp = e => {
88
83
  if (e.button === 0) {
89
84
  end('mouse');
@@ -91,7 +86,6 @@ export function useMove(props) {
91
86
  removeGlobalListener(window, 'mouseup', onMouseUp, false);
92
87
  }
93
88
  };
94
-
95
89
  moveProps.onMouseDown = e => {
96
90
  if (e.button === 0) {
97
91
  start();
@@ -105,13 +99,11 @@ export function useMove(props) {
105
99
  addGlobalListener(window, 'mouseup', onMouseUp, false);
106
100
  }
107
101
  };
108
-
109
102
  let onTouchMove = e => {
110
103
  // @ts-ignore
111
104
  let touch = [...e.changedTouches].findIndex(({
112
105
  identifier
113
106
  }) => identifier === state.current.id);
114
-
115
107
  if (touch >= 0) {
116
108
  let {
117
109
  pageX,
@@ -124,13 +116,11 @@ export function useMove(props) {
124
116
  };
125
117
  }
126
118
  };
127
-
128
119
  let onTouchEnd = e => {
129
120
  // @ts-ignore
130
121
  let touch = [...e.changedTouches].findIndex(({
131
122
  identifier
132
123
  }) => identifier === state.current.id);
133
-
134
124
  if (touch >= 0) {
135
125
  end('touch');
136
126
  state.current.id = null;
@@ -139,12 +129,10 @@ export function useMove(props) {
139
129
  removeGlobalListener(window, 'touchcancel', onTouchEnd);
140
130
  }
141
131
  };
142
-
143
132
  moveProps.onTouchStart = e => {
144
133
  if (e.changedTouches.length === 0 || state.current.id != null) {
145
134
  return;
146
135
  }
147
-
148
136
  let {
149
137
  pageX,
150
138
  pageY,
@@ -163,13 +151,11 @@ export function useMove(props) {
163
151
  addGlobalListener(window, 'touchcancel', onTouchEnd, false);
164
152
  };
165
153
  }
166
-
167
154
  let triggerKeyboardMove = (deltaX, deltaY) => {
168
155
  start();
169
156
  move('keyboard', deltaX, deltaY);
170
157
  end('keyboard');
171
158
  };
172
-
173
159
  moveProps.onKeyDown = e => {
174
160
  switch (e.key) {
175
161
  case 'Left':
@@ -178,21 +164,18 @@ export function useMove(props) {
178
164
  e.stopPropagation();
179
165
  triggerKeyboardMove(-1, 0);
180
166
  break;
181
-
182
167
  case 'Right':
183
168
  case 'ArrowRight':
184
169
  e.preventDefault();
185
170
  e.stopPropagation();
186
171
  triggerKeyboardMove(1, 0);
187
172
  break;
188
-
189
173
  case 'Up':
190
174
  case 'ArrowUp':
191
175
  e.preventDefault();
192
176
  e.stopPropagation();
193
177
  triggerKeyboardMove(0, -1);
194
178
  break;
195
-
196
179
  case 'Down':
197
180
  case 'ArrowDown':
198
181
  e.preventDefault();
@@ -201,7 +184,6 @@ export function useMove(props) {
201
184
  break;
202
185
  }
203
186
  };
204
-
205
187
  return moveProps;
206
188
  }, [state, onMoveStart, onMove, onMoveEnd, addGlobalListener, removeGlobalListener]);
207
189
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["useMove.web.ts"],"names":["disableTextSelection","restoreTextSelection","useMemo","useRef","useGlobalListeners","useMove","props","onMoveStart","onMove","onMoveEnd","state","didMove","lastPosition","id","addGlobalListener","removeGlobalListener","moveProps","start","current","move","pointerType","deltaX","deltaY","type","end","PointerEvent","onMouseMove","e","button","pageX","pageY","onMouseUp","window","onMouseDown","stopPropagation","preventDefault","onTouchMove","touch","changedTouches","findIndex","identifier","onTouchEnd","onTouchStart","length","triggerKeyboardMove","onKeyDown","key"],"mappings":"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","sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { disableTextSelection, restoreTextSelection } from './textSelection';\nimport { MoveEvents, PointerType } from '@react-types/shared';\nimport React, { HTMLAttributes, useMemo, useRef } from 'react';\nimport { useGlobalListeners } from '@react-aria/utils';\n\ninterface MoveResult {\n /** Props to spread on the target element. */\n moveProps: HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Handles move interactions across mouse, touch, and keyboard, including dragging with\n * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and\n * platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useMove(props: MoveEvents): MoveResult {\n let { onMoveStart, onMove, onMoveEnd } = props;\n\n let state = useRef<{\n didMove: boolean;\n lastPosition: { pageX: number; pageY: number } | null;\n id: number | null;\n }>({ didMove: false, lastPosition: null, id: null });\n\n let { addGlobalListener, removeGlobalListener } = useGlobalListeners();\n\n let moveProps = useMemo(() => {\n let moveProps: HTMLAttributes<HTMLElement> = {};\n\n let start = () => {\n disableTextSelection();\n state.current.didMove = false;\n };\n let move = (pointerType: PointerType, deltaX: number, deltaY: number) => {\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n if (!state.current.didMove) {\n state.current.didMove = true;\n onMoveStart?.({\n type: 'movestart',\n pointerType,\n });\n }\n onMove({\n type: 'move',\n pointerType,\n deltaX: deltaX,\n deltaY: deltaY,\n });\n };\n let end = (pointerType: PointerType) => {\n restoreTextSelection();\n if (state.current.didMove) {\n onMoveEnd?.({\n type: 'moveend',\n pointerType,\n });\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n let onMouseMove = (e: MouseEvent) => {\n if (e.button === 0) {\n move(\n 'mouse',\n e.pageX - state.current.lastPosition.pageX,\n e.pageY - state.current.lastPosition.pageY\n );\n state.current.lastPosition = { pageX: e.pageX, pageY: e.pageY };\n }\n };\n let onMouseUp = (e: MouseEvent) => {\n if (e.button === 0) {\n end('mouse');\n removeGlobalListener(window, 'mousemove', onMouseMove, false);\n removeGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n moveProps.onMouseDown = (e: React.MouseEvent) => {\n if (e.button === 0) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = { pageX: e.pageX, pageY: e.pageY };\n addGlobalListener(window, 'mousemove', onMouseMove, false);\n addGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n\n let onTouchMove = (e: TouchEvent) => {\n // @ts-ignore\n let touch = [...e.changedTouches].findIndex(\n ({ identifier }) => identifier === state.current.id\n );\n if (touch >= 0) {\n let { pageX, pageY } = e.changedTouches[touch];\n move(\n 'touch',\n pageX - state.current.lastPosition.pageX,\n pageY - state.current.lastPosition.pageY\n );\n state.current.lastPosition = { pageX, pageY };\n }\n };\n let onTouchEnd = (e: TouchEvent) => {\n // @ts-ignore\n let touch = [...e.changedTouches].findIndex(\n ({ identifier }) => identifier === state.current.id\n );\n if (touch >= 0) {\n end('touch');\n state.current.id = null;\n removeGlobalListener(window, 'touchmove', onTouchMove);\n removeGlobalListener(window, 'touchend', onTouchEnd);\n removeGlobalListener(window, 'touchcancel', onTouchEnd);\n }\n };\n moveProps.onTouchStart = (e: React.TouchEvent) => {\n if (e.changedTouches.length === 0 || state.current.id != null) {\n return;\n }\n\n let { pageX, pageY, identifier } = e.changedTouches[0];\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = { pageX, pageY };\n state.current.id = identifier;\n addGlobalListener(window, 'touchmove', onTouchMove, false);\n addGlobalListener(window, 'touchend', onTouchEnd, false);\n addGlobalListener(window, 'touchcancel', onTouchEnd, false);\n };\n }\n\n let triggerKeyboardMove = (deltaX: number, deltaY: number) => {\n start();\n move('keyboard', deltaX, deltaY);\n end('keyboard');\n };\n\n moveProps.onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(-1, 0);\n break;\n case 'Right':\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(1, 0);\n break;\n case 'Up':\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(0, -1);\n break;\n case 'Down':\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(0, 1);\n break;\n }\n };\n\n return moveProps;\n }, [\n state,\n onMoveStart,\n onMove,\n onMoveEnd,\n addGlobalListener,\n removeGlobalListener,\n ]);\n\n return { moveProps };\n}\n"]}
1
+ {"version":3,"names":["disableTextSelection","restoreTextSelection","useMemo","useRef","useGlobalListeners","useMove","props","onMoveStart","onMove","onMoveEnd","state","didMove","lastPosition","id","addGlobalListener","removeGlobalListener","moveProps","start","current","move","pointerType","deltaX","deltaY","type","end","PointerEvent","onMouseMove","e","button","pageX","pageY","onMouseUp","window","onMouseDown","stopPropagation","preventDefault","onTouchMove","touch","changedTouches","findIndex","identifier","onTouchEnd","onTouchStart","length","triggerKeyboardMove","onKeyDown","key"],"sourceRoot":"../../src","sources":["useMove.web.ts"],"mappings":"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","ignoreList":[]}
@@ -3,23 +3,18 @@ export const usePanResponder = props => {
3
3
  const _handleStartShouldSetPanResponder = () => {
4
4
  return true;
5
5
  };
6
-
7
6
  const _handleMoveShouldSetPanResponder = () => {
8
7
  return true;
9
8
  };
10
-
11
9
  const _handlePanResponderMove = (e, gestureState) => {
12
10
  props.onMove(e, gestureState);
13
11
  };
14
-
15
12
  const _handlePanResponderEnd = () => {
16
13
  props.onMoveEnd();
17
14
  };
18
-
19
15
  const _handlePanResponderGrant = () => {
20
16
  props.onMoveStart();
21
17
  };
22
-
23
18
  const panResponder = PanResponder.create({
24
19
  onStartShouldSetPanResponder: _handleStartShouldSetPanResponder,
25
20
  onMoveShouldSetPanResponder: _handleMoveShouldSetPanResponder,
@@ -1 +1 @@
1
- {"version":3,"sources":["usePanResponder.ts"],"names":["PanResponder","usePanResponder","props","_handleStartShouldSetPanResponder","_handleMoveShouldSetPanResponder","_handlePanResponderMove","e","gestureState","onMove","_handlePanResponderEnd","onMoveEnd","_handlePanResponderGrant","onMoveStart","panResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onPanResponderTerminate"],"mappings":"AAAA,SAASA,YAAT,QAA6B,cAA7B;AAEA,OAAO,MAAMC,eAAe,GAAIC,KAAD,IAAgB;AAC7C,QAAMC,iCAAiC,GAAG,MAAM;AAC9C,WAAO,IAAP;AACD,GAFD;;AAIA,QAAMC,gCAAgC,GAAG,MAAM;AAC7C,WAAO,IAAP;AACD,GAFD;;AAIA,QAAMC,uBAAuB,GAAG,CAACC,CAAD,EAAYC,YAAZ,KAAqC;AACnEL,IAAAA,KAAK,CAACM,MAAN,CAAaF,CAAb,EAAgBC,YAAhB;AACD,GAFD;;AAIA,QAAME,sBAAsB,GAAG,MAAM;AACnCP,IAAAA,KAAK,CAACQ,SAAN;AACD,GAFD;;AAIA,QAAMC,wBAAwB,GAAG,MAAM;AACrCT,IAAAA,KAAK,CAACU,WAAN;AACD,GAFD;;AAIA,QAAMC,YAAY,GAAGb,YAAY,CAACc,MAAb,CAAoB;AACvCC,IAAAA,4BAA4B,EAAEZ,iCADS;AAEvCa,IAAAA,2BAA2B,EAAEZ,gCAFU;AAGvCa,IAAAA,mBAAmB,EAAEN,wBAHkB;AAIvCO,IAAAA,kBAAkB,EAAEb,uBAJmB;AAKvCc,IAAAA,qBAAqB,EAAEV,sBALgB;AAMvCW,IAAAA,uBAAuB,EAAEX;AANc,GAApB,CAArB;AASA,SAAOI,YAAP;AACD,CA/BM","sourcesContent":["import { PanResponder } from 'react-native';\n\nexport const usePanResponder = (props: any) => {\n const _handleStartShouldSetPanResponder = () => {\n return true;\n };\n\n const _handleMoveShouldSetPanResponder = () => {\n return true;\n };\n\n const _handlePanResponderMove = (e: Object, gestureState: Object) => {\n props.onMove(e, gestureState);\n };\n\n const _handlePanResponderEnd = () => {\n props.onMoveEnd();\n };\n\n const _handlePanResponderGrant = () => {\n props.onMoveStart();\n };\n\n const panResponder = PanResponder.create({\n onStartShouldSetPanResponder: _handleStartShouldSetPanResponder,\n onMoveShouldSetPanResponder: _handleMoveShouldSetPanResponder,\n onPanResponderGrant: _handlePanResponderGrant,\n onPanResponderMove: _handlePanResponderMove,\n onPanResponderRelease: _handlePanResponderEnd,\n onPanResponderTerminate: _handlePanResponderEnd,\n });\n\n return panResponder;\n};\n"]}
1
+ {"version":3,"names":["PanResponder","usePanResponder","props","_handleStartShouldSetPanResponder","_handleMoveShouldSetPanResponder","_handlePanResponderMove","e","gestureState","onMove","_handlePanResponderEnd","onMoveEnd","_handlePanResponderGrant","onMoveStart","panResponder","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onPanResponderTerminate"],"sourceRoot":"../../src","sources":["usePanResponder.ts"],"mappings":"AAAA,SAASA,YAAY,QAAQ,cAAc;AAE3C,OAAO,MAAMC,eAAe,GAAIC,KAAU,IAAK;EAC7C,MAAMC,iCAAiC,GAAGA,CAAA,KAAM;IAC9C,OAAO,IAAI;EACb,CAAC;EAED,MAAMC,gCAAgC,GAAGA,CAAA,KAAM;IAC7C,OAAO,IAAI;EACb,CAAC;EAED,MAAMC,uBAAuB,GAAGA,CAACC,CAAS,EAAEC,YAAoB,KAAK;IACnEL,KAAK,CAACM,MAAM,CAACF,CAAC,EAAEC,YAAY,CAAC;EAC/B,CAAC;EAED,MAAME,sBAAsB,GAAGA,CAAA,KAAM;IACnCP,KAAK,CAACQ,SAAS,CAAC,CAAC;EACnB,CAAC;EAED,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;IACrCT,KAAK,CAACU,WAAW,CAAC,CAAC;EACrB,CAAC;EAED,MAAMC,YAAY,GAAGb,YAAY,CAACc,MAAM,CAAC;IACvCC,4BAA4B,EAAEZ,iCAAiC;IAC/Da,2BAA2B,EAAEZ,gCAAgC;IAC7Da,mBAAmB,EAAEN,wBAAwB;IAC7CO,kBAAkB,EAAEb,uBAAuB;IAC3Cc,qBAAqB,EAAEV,sBAAsB;IAC7CW,uBAAuB,EAAEX;EAC3B,CAAC,CAAC;EAEF,OAAOI,YAAY;AACrB,CAAC","ignoreList":[]}
@@ -2,7 +2,6 @@ import { sliderIds } from './utils';
2
2
  import { useRef } from 'react';
3
3
  import { useLabel } from '@react-aria/label';
4
4
  import { isRTL } from '@react-native-aria/utils';
5
-
6
5
  /**
7
6
  * Provides the behavior and accessibility implementation for a slider component representing one or more values.
8
7
  *
@@ -14,28 +13,23 @@ import { isRTL } from '@react-native-aria/utils';
14
13
  * the track.
15
14
  */
16
15
  export function useSlider(props, state, trackLayout, isReversed) {
17
- var _labelProps$id;
18
-
19
16
  let {
20
17
  labelProps,
21
18
  fieldProps
22
19
  } = useLabel(props);
23
20
  let isVertical = props.orientation === 'vertical';
24
- sliderIds.set(state, (_labelProps$id = labelProps.id) !== null && _labelProps$id !== void 0 ? _labelProps$id : fieldProps.id);
21
+ sliderIds.set(state, labelProps.id ?? fieldProps.id);
25
22
  let currentPointer = useRef(undefined);
26
-
27
23
  let onDownTrack = (e, id, clientX, clientY) => {
28
24
  const direction = isRTL() ? 'rtl' : undefined;
29
25
  const reverseX = isReversed || direction === 'rtl';
30
-
31
26
  if (!props.isDisabled && state.values.every((_, i) => !state.isThumbDragging(i))) {
32
- let size = isVertical ? trackLayout.height : trackLayout.width; // Find the closest thumb
33
-
27
+ let size = isVertical ? trackLayout.height : trackLayout.width;
28
+ // Find the closest thumb
34
29
  const trackPosition = trackLayout[isVertical ? 'y' : 'x'];
35
30
  const clickPosition = isVertical ? clientY : clientX;
36
31
  const offset = clickPosition - trackPosition;
37
32
  let percent = offset / size;
38
-
39
33
  if (reverseX) {
40
34
  if (!isVertical) {
41
35
  percent = 1 - percent;
@@ -45,12 +39,10 @@ export function useSlider(props, state, trackLayout, isReversed) {
45
39
  percent = 1 - percent;
46
40
  }
47
41
  }
48
-
49
- let value = state.getPercentValue(percent); // to find the closet thumb we split the array based on the first thumb position to the "right/end" of the click.
50
-
42
+ let value = state.getPercentValue(percent);
43
+ // to find the closet thumb we split the array based on the first thumb position to the "right/end" of the click.
51
44
  let closestThumb;
52
45
  let split = state.values.findIndex(v => value - v < 0);
53
-
54
46
  if (split === 0) {
55
47
  // If the index is zero then the closetThumb is the first one
56
48
  closestThumb = split;
@@ -59,16 +51,15 @@ export function useSlider(props, state, trackLayout, isReversed) {
59
51
  closestThumb = state.values.length - 1;
60
52
  } else {
61
53
  let lastLeft = state.values[split - 1];
62
- let firstRight = state.values[split]; // Pick the last left/start thumb, unless they are stacked on top of each other, then pick the right/end one
63
-
54
+ let firstRight = state.values[split];
55
+ // Pick the last left/start thumb, unless they are stacked on top of each other, then pick the right/end one
64
56
  if (Math.abs(lastLeft - value) < Math.abs(firstRight - value)) {
65
57
  closestThumb = split - 1;
66
58
  } else {
67
59
  closestThumb = split;
68
60
  }
69
- } // Confirm that the found closest thumb is editable, not disabled, and move it
70
-
71
-
61
+ }
62
+ // Confirm that the found closest thumb is editable, not disabled, and move it
72
63
  if (closestThumb >= 0 && state.isThumbEditable(closestThumb)) {
73
64
  // Don't unfocus anything
74
65
  e.preventDefault();
@@ -80,7 +71,6 @@ export function useSlider(props, state, trackLayout, isReversed) {
80
71
  }
81
72
  }
82
73
  };
83
-
84
74
  return {
85
75
  labelProps,
86
76
  groupProps: {},
@@ -1 +1 @@
1
- {"version":3,"sources":["useSlider.ts"],"names":["sliderIds","useRef","useLabel","isRTL","useSlider","props","state","trackLayout","isReversed","labelProps","fieldProps","isVertical","orientation","set","id","currentPointer","undefined","onDownTrack","e","clientX","clientY","direction","reverseX","isDisabled","values","every","_","i","isThumbDragging","size","height","width","trackPosition","clickPosition","offset","percent","value","getPercentValue","closestThumb","split","findIndex","v","length","lastLeft","firstRight","Math","abs","isThumbEditable","preventDefault","setFocusedThumb","current","setThumbDragging","setThumbValue","groupProps","trackProps","onPress","locationX","locationY","nativeEvent","outputProps"],"mappings":"AAAA,SAASA,SAAT,QAA0B,SAA1B;AAEA,SAAgBC,MAAhB,QAA8B,OAA9B;AAEA,SAASC,QAAT,QAAyB,mBAAzB;AACA,SAASC,KAAT,QAAsB,0BAAtB;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,SAAT,CACLC,KADK,EAELC,KAFK,EAGLC,WAHK,EAILC,UAJK,EAKO;AAAA;;AACZ,MAAI;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAA6BR,QAAQ,CAACG,KAAD,CAAzC;AAEA,MAAIM,UAAU,GAAGN,KAAK,CAACO,WAAN,KAAsB,UAAvC;AAEAZ,EAAAA,SAAS,CAACa,GAAV,CAAcP,KAAd,oBAAqBG,UAAU,CAACK,EAAhC,2DAAsCJ,UAAU,CAACI,EAAjD;AACA,MAAIC,cAAc,GAAGd,MAAM,CAA4Be,SAA5B,CAA3B;;AAEA,MAAIC,WAAW,GAAG,CAChBC,CADgB,EAEhBJ,EAFgB,EAGhBK,OAHgB,EAIhBC,OAJgB,KAKb;AACH,UAAMC,SAAS,GAAGlB,KAAK,KAAK,KAAL,GAAaa,SAApC;AACA,UAAMM,QAAQ,GAAGd,UAAU,IAAIa,SAAS,KAAK,KAA7C;;AACA,QACE,CAAChB,KAAK,CAACkB,UAAP,IACAjB,KAAK,CAACkB,MAAN,CAAaC,KAAb,CAAmB,CAACC,CAAD,EAAIC,CAAJ,KAAU,CAACrB,KAAK,CAACsB,eAAN,CAAsBD,CAAtB,CAA9B,CAFF,EAGE;AACA,UAAIE,IAAI,GAAGlB,UAAU,GAAGJ,WAAW,CAACuB,MAAf,GAAwBvB,WAAW,CAACwB,KAAzD,CADA,CAEA;;AACA,YAAMC,aAAa,GAAGzB,WAAW,CAACI,UAAU,GAAG,GAAH,GAAS,GAApB,CAAjC;AACA,YAAMsB,aAAa,GAAGtB,UAAU,GAAGS,OAAH,GAAaD,OAA7C;AACA,YAAMe,MAAM,GAAGD,aAAa,GAAGD,aAA/B;AACA,UAAIG,OAAO,GAAGD,MAAM,GAAGL,IAAvB;;AACA,UAAIP,QAAJ,EAAc;AACZ,YAAI,CAACX,UAAL,EAAiB;AACfwB,UAAAA,OAAO,GAAG,IAAIA,OAAd;AACD;AACF,OAJD,MAIO;AACL,YAAIxB,UAAJ,EAAgB;AACdwB,UAAAA,OAAO,GAAG,IAAIA,OAAd;AACD;AACF;;AACD,UAAIC,KAAK,GAAG9B,KAAK,CAAC+B,eAAN,CAAsBF,OAAtB,CAAZ,CAhBA,CAiBA;;AACA,UAAIG,YAAJ;AACA,UAAIC,KAAK,GAAGjC,KAAK,CAACkB,MAAN,CAAagB,SAAb,CAAwBC,CAAD,IAAOL,KAAK,GAAGK,CAAR,GAAY,CAA1C,CAAZ;;AACA,UAAIF,KAAK,KAAK,CAAd,EAAiB;AACf;AACAD,QAAAA,YAAY,GAAGC,KAAf;AACD,OAHD,MAGO,IAAIA,KAAK,KAAK,CAAC,CAAf,EAAkB;AACvB;AACAD,QAAAA,YAAY,GAAGhC,KAAK,CAACkB,MAAN,CAAakB,MAAb,GAAsB,CAArC;AACD,OAHM,MAGA;AACL,YAAIC,QAAQ,GAAGrC,KAAK,CAACkB,MAAN,CAAae,KAAK,GAAG,CAArB,CAAf;AACA,YAAIK,UAAU,GAAGtC,KAAK,CAACkB,MAAN,CAAae,KAAb,CAAjB,CAFK,CAGL;;AACA,YAAIM,IAAI,CAACC,GAAL,CAASH,QAAQ,GAAGP,KAApB,IAA6BS,IAAI,CAACC,GAAL,CAASF,UAAU,GAAGR,KAAtB,CAAjC,EAA+D;AAC7DE,UAAAA,YAAY,GAAGC,KAAK,GAAG,CAAvB;AACD,SAFD,MAEO;AACLD,UAAAA,YAAY,GAAGC,KAAf;AACD;AACF,OAnCD,CAoCA;;;AACA,UAAID,YAAY,IAAI,CAAhB,IAAqBhC,KAAK,CAACyC,eAAN,CAAsBT,YAAtB,CAAzB,EAA8D;AAC5D;AACApB,QAAAA,CAAC,CAAC8B,cAAF;AACA1C,QAAAA,KAAK,CAAC2C,eAAN,CAAsBX,YAAtB;AACAvB,QAAAA,cAAc,CAACmC,OAAf,GAAyBpC,EAAzB;AACAR,QAAAA,KAAK,CAAC6C,gBAAN,CAAuBb,YAAvB,EAAqC,IAArC;AACAhC,QAAAA,KAAK,CAAC8C,aAAN,CAAoBd,YAApB,EAAkCF,KAAlC;AACA9B,QAAAA,KAAK,CAAC6C,gBAAN,CAAuBb,YAAvB,EAAqC,KAArC;AACD;AACF;AACF,GA1DD;;AA4DA,SAAO;AACL7B,IAAAA,UADK;AAEL4C,IAAAA,UAAU,EAAE,EAFP;AAGLC,IAAAA,UAAU,EAAE;AACVC,MAAAA,OAAO,EAAGrC,CAAD,IAAY;AACnB,cAAM;AAAEsC,UAAAA,SAAF;AAAaC,UAAAA;AAAb,YAA2BvC,CAAC,CAACwC,WAAnC;AACAzC,QAAAA,WAAW,CAACC,CAAD,EAAIF,SAAJ,EAAewC,SAAf,EAA0BC,SAA1B,CAAX;AACD;AAJS,KAHP;AASLE,IAAAA,WAAW,EAAE;AATR,GAAP;AAWD","sourcesContent":["import { sliderIds } from './utils';\nimport { AriaSliderProps } from '@react-types/slider';\nimport React, { useRef } from 'react';\nimport { SliderState } from '@react-stately/slider';\nimport { useLabel } from '@react-aria/label';\nimport { isRTL } from '@react-native-aria/utils';\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\n/**\n * Provides the behavior and accessibility implementation for a slider component representing one or more values.\n *\n * @param props Props for the slider.\n * @param state State for the slider, as returned by `useSliderState`.\n * @param trackRef Ref for the \"track\" element. The width of this element provides the \"length\"\n * of the track -- the span of one dimensional space that the slider thumb can be. It also\n * accepts click and drag motions, so that the closest thumb will follow clicks and drags on\n * the track.\n */\nexport function useSlider(\n props: AriaSliderProps,\n state: SliderState,\n trackLayout: any,\n isReversed?: boolean\n): SliderAria {\n let { labelProps, fieldProps } = useLabel(props);\n\n let isVertical = props.orientation === 'vertical';\n\n sliderIds.set(state, labelProps.id ?? fieldProps.id);\n let currentPointer = useRef<number | null | undefined>(undefined);\n\n let onDownTrack = (\n e: React.UIEvent,\n id: number,\n clientX: number,\n clientY: number\n ) => {\n const direction = isRTL() ? 'rtl' : undefined;\n const reverseX = isReversed || direction === 'rtl';\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 ? 'y' : 'x'];\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 // 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 // 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 state.setFocusedThumb(closestThumb);\n currentPointer.current = id;\n state.setThumbDragging(closestThumb, true);\n state.setThumbValue(closestThumb, value);\n state.setThumbDragging(closestThumb, false);\n }\n }\n };\n\n return {\n labelProps,\n groupProps: {},\n trackProps: {\n onPress: (e: any) => {\n const { locationX, locationY } = e.nativeEvent;\n onDownTrack(e, undefined, locationX, locationY);\n },\n },\n outputProps: {},\n };\n}\n"]}
1
+ {"version":3,"names":["sliderIds","useRef","useLabel","isRTL","useSlider","props","state","trackLayout","isReversed","labelProps","fieldProps","isVertical","orientation","set","id","currentPointer","undefined","onDownTrack","e","clientX","clientY","direction","reverseX","isDisabled","values","every","_","i","isThumbDragging","size","height","width","trackPosition","clickPosition","offset","percent","value","getPercentValue","closestThumb","split","findIndex","v","length","lastLeft","firstRight","Math","abs","isThumbEditable","preventDefault","setFocusedThumb","current","setThumbDragging","setThumbValue","groupProps","trackProps","onPress","locationX","locationY","nativeEvent","outputProps"],"sourceRoot":"../../src","sources":["useSlider.ts"],"mappings":"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","ignoreList":[]}