@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.
- 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 +20 -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 +20 -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
- package/src/useSlider.web.ts +3 -1
- package/babel.config.js +0 -3
- package/scripts/bootstrap.js +0 -24
- 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":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAMA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAWA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAoBA;AACA;AACA;AACA;AACA;AACA;AACO,SAASO,cAAcA,CAC5BC,IAAwB,EACxBC,KAAkB,EAClBC,UAAoB,EACH;EACjB,IAAI;IACFC,KAAK;IACLC,UAAU;IACVC,UAAU;IACVC,eAAe;IACfC,WAAW;IACXC;EACF,CAAC,GAAGR,IAAI;EAER,IAAIS,UAAU,GAAGT,IAAI,CAACU,WAAW,KAAK,UAAU;EAEhD,IAAIC,SAAS,GAAG,IAAAC,aAAK,EAAC,CAAC,GAAG,KAAK,GAAGC,SAAS;EAC3C,IAAI;IAAEC,iBAAiB;IAAEC;EAAqB,CAAC,GAAG,IAAAC,yBAAkB,EAAC,CAAC;EAEtE,IAAIC,OAAO,GAAGC,iBAAS,CAACC,GAAG,CAAClB,KAAK,CAAC;EAClC,MAAM;IAAEmB,UAAU;IAAEC;EAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC;IAC1C,GAAGtB,IAAI;IACP,IAAI,EAAE,IAAAuB,wBAAgB,EAACtB,KAAK,EAAEE,KAAK,CAAC;IACpC,iBAAiB,EAAE,GAAGc,OAAO,IAAIjB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAACwB,IAAI,CAAC;EACxE,CAAC,CAAC;EAEF,MAAMC,KAAK,GAAGxB,KAAK,CAACyB,MAAM,CAACvB,KAAK,CAAC;EAEjC,MAAMwB,UAAU,GAAG,IAAAC,kBAAW,EAAC,MAAM;IACnC,IAAIpB,QAAQ,CAACqB,OAAO,EAAE;MACpB,IAAAC,4BAAqB,EAACtB,QAAQ,CAACqB,OAAO,CAAC;IACzC;EACF,CAAC,EAAE,CAACrB,QAAQ,CAAC,CAAC;EAEd,MAAMuB,SAAS,GAAG9B,KAAK,CAAC+B,YAAY,KAAK7B,KAAK;EAE9C,IAAA8B,gBAAS,EAAC,MAAM;IACd,IAAIF,SAAS,EAAE;MACbJ,UAAU,CAAC,CAAC;IACd;EACF,CAAC,EAAE,CAACI,SAAS,EAAEJ,UAAU,CAAC,CAAC;EAE3B,MAAMO,QAAQ,GAAG,IAAAC,aAAM,EAAc,IAAI,CAAC;EAC1CD,QAAQ,CAACL,OAAO,GAAG5B,KAAK;EACxB,IAAImC,QAAQ,GAAGlC,UAAU,IAAIS,SAAS,KAAK,KAAK;EAChD,IAAI0B,eAAe,GAAG,IAAAF,aAAM,EAAS,IAAI,CAAC;EAC1C,IAAI;IAAEG;EAAU,CAAC,GAAG,IAAAC,gBAAO,EAAC;IAC1BC,WAAWA,CAAA,EAAG;MACZH,eAAe,CAACR,OAAO,GAAG,IAAI;MAC9B5B,KAAK,CAACwC,gBAAgB,CAACtC,KAAK,EAAE,IAAI,CAAC;IACrC,CAAC;IACDuC,MAAMA,CAAC;MAAEC,MAAM;MAAEC,MAAM;MAAEC;IAAY,CAAC,EAAE;MACtC,IAAIC,IAAI,GAAGrC,UAAU,GAAGF,WAAW,CAACwC,MAAM,GAAGxC,WAAW,CAACyC,KAAK;MAE9D,IAAIX,eAAe,CAACR,OAAO,IAAI,IAAI,EAAE;QACnCQ,eAAe,CAACR,OAAO,GACrBK,QAAQ,CAACL,OAAO,CAACoB,eAAe,CAAC9C,KAAK,CAAC,GAAG2C,IAAI;MAClD;MACA,IAAID,WAAW,KAAK,UAAU,EAAE;QAC9B;QACA,IAAIK,KAAK,GACP,CAAC,CAACd,QAAQ,GAAG,CAACO,MAAM,GAAGA,MAAM,KAAKP,QAAQ,GAAGQ,MAAM,GAAG,CAACA,MAAM,CAAC,IAC9DV,QAAQ,CAACL,OAAO,CAACsB,IAAI;QACvBd,eAAe,CAACR,OAAO,IAAIqB,KAAK,GAAGJ,IAAI;QACvCZ,QAAQ,CAACL,OAAO,CAACuB,aAAa,CAC5BjD,KAAK,EACL+B,QAAQ,CAACL,OAAO,CAACwB,aAAa,CAAClD,KAAK,CAAC,GAAG+C,KAC1C,CAAC;MACH,CAAC,MAAM;QACL,IAAIA,KAAK,GAAGzC,UAAU,GAAGmC,MAAM,GAAGD,MAAM;QACxC,IAAIP,QAAQ,EAAE;UACZ,IAAI,CAAC3B,UAAU,EAAE;YACfyC,KAAK,GAAG,CAACA,KAAK;UAChB;QACF,CAAC,MAAM;UACL,IAAIzC,UAAU,EAAE;YACdyC,KAAK,GAAG,CAACA,KAAK;UAChB;QACF;QACAb,eAAe,CAACR,OAAO,IAAIqB,KAAK;QAChChB,QAAQ,CAACL,OAAO,CAACyB,eAAe,CAC9BnD,KAAK,EACL,IAAAoD,YAAK,EAAClB,eAAe,CAACR,OAAO,GAAGiB,IAAI,EAAE,CAAC,EAAE,CAAC,CAC5C,CAAC;MACH;IACF,CAAC;IACDU,SAASA,CAAA,EAAG;MACVvD,KAAK,CAACwC,gBAAgB,CAACtC,KAAK,EAAE,KAAK,CAAC;IACtC;EACF,CAAC,CAAC;;EAEF;EACAF,KAAK,CAACwD,gBAAgB,CAACtD,KAAK,EAAE,CAACE,UAAU,CAAC;EAE1C,MAAM;IAAEqD;EAAe,CAAC,GAAG,IAAAC,mBAAY,EACrC,IAAAC,iBAAU,EAAC5D,IAAI,EAAE;IACf6D,OAAO,EAAEA,CAAA,KAAM5D,KAAK,CAAC6D,eAAe,CAAC3D,KAAK,CAAC;IAC3C4D,MAAM,EAAEA,CAAA,KAAM9D,KAAK,CAAC6D,eAAe,CAACjD,SAAS;EAC/C,CAAC,CAAC,EACFL,QACF,CAAC;EAED,IAAIwD,cAAc,GAAG,IAAA7B,aAAM,EAAqBtB,SAAS,CAAC;EAC1D,IAAIoD,MAAM,GAAIC,EAAW,IAAK;IAC5BvC,UAAU,CAAC,CAAC;IACZqC,cAAc,CAACnC,OAAO,GAAGqC,EAAE;IAC3BjE,KAAK,CAACwC,gBAAgB,CAACtC,KAAK,EAAE,IAAI,CAAC;IAEnCW,iBAAiB,CAACqD,MAAM,EAAE,SAAS,EAAEC,IAAI,EAAE,KAAK,CAAC;IACjDtD,iBAAiB,CAACqD,MAAM,EAAE,UAAU,EAAEC,IAAI,EAAE,KAAK,CAAC;IAClDtD,iBAAiB,CAACqD,MAAM,EAAE,WAAW,EAAEC,IAAI,EAAE,KAAK,CAAC;EACrD,CAAC;EAED,IAAIA,IAAI,GAAIC,CAAC,IAAK;IAAA,IAAAC,iBAAA;IAChB,IAAIJ,EAAE,GAAGG,CAAC,CAACE,SAAS,MAAAD,iBAAA,GAAID,CAAC,CAACG,cAAc,cAAAF,iBAAA,uBAAhBA,iBAAA,CAAmB,CAAC,CAAC,CAACG,UAAU;IACxD,IAAIP,EAAE,KAAKF,cAAc,CAACnC,OAAO,EAAE;MACjCF,UAAU,CAAC,CAAC;MACZ1B,KAAK,CAACwC,gBAAgB,CAACtC,KAAK,EAAE,KAAK,CAAC;MACpCY,oBAAoB,CAACoD,MAAM,EAAE,SAAS,EAAEC,IAAI,EAAE,KAAK,CAAC;MACpDrD,oBAAoB,CAACoD,MAAM,EAAE,UAAU,EAAEC,IAAI,EAAE,KAAK,CAAC;MACrDrD,oBAAoB,CAACoD,MAAM,EAAE,WAAW,EAAEC,IAAI,EAAE,KAAK,CAAC;IACxD;EACF,CAAC;;EAED;EACA;EACA;EACA;EACA,OAAO;IACLM,UAAU,EAAE,IAAAd,iBAAU,EAACF,cAAc,EAAErC,UAAU,EAAE;MACjD,MAAM,EAAE,OAAO;MACf,UAAU,EAAE,CAAChB,UAAU,GAAG,CAAC,GAAGQ,SAAS;MACvC,KAAK,EAAEZ,KAAK,CAAC0E,gBAAgB,CAACxE,KAAK,CAAC;MACpC,KAAK,EAAEF,KAAK,CAAC2E,gBAAgB,CAACzE,KAAK,CAAC;MACpC,MAAM,EAAEF,KAAK,CAACkD,IAAI;MAClB,OAAO,EAAE1B,KAAK;MACd,UAAU,EAAEpB,UAAU;MACtB,kBAAkB,EAAEL,IAAI,CAACU,WAAW;MACpC,gBAAgB,EAAET,KAAK,CAAC4E,kBAAkB,CAAC1E,KAAK,CAAC;MACjD,eAAe,EAAEC,UAAU,IAAIS,SAAS;MACxC,cAAc,EAAEP,eAAe,KAAK,SAAS,IAAIO,SAAS;MAC1D,mBAAmB,EAAEb,IAAI,CAAC,mBAAmB,CAAC;MAC9C,UAAU,EAAGqE,CAAgC,IAAK;QAChDpE,KAAK,CAACmD,aAAa,CAACjD,KAAK,EAAE2E,UAAU,CAACT,CAAC,CAACU,MAAM,CAACtD,KAAK,CAAC,CAAC;MACxD;IACF,CAAC,CAAC;IACFuD,UAAU,EAAE,CAAC3E,UAAU,GACnB,IAAAuD,iBAAU,EAACtB,SAAS,EAAE;MACpB2C,WAAW,EAAGZ,CAAgC,IAAK;QACjD,IAAIA,CAAC,CAACa,MAAM,KAAK,CAAC,IAAIb,CAAC,CAACc,MAAM,IAAId,CAAC,CAACe,OAAO,IAAIf,CAAC,CAACgB,OAAO,EAAE;UACxD;QACF;QACApB,MAAM,CAAC,CAAC;MACV,CAAC;MACDqB,aAAa,EAAGjB,CAAkC,IAAK;QACrD,IAAIA,CAAC,CAACa,MAAM,KAAK,CAAC,IAAIb,CAAC,CAACc,MAAM,IAAId,CAAC,CAACe,OAAO,IAAIf,CAAC,CAACgB,OAAO,EAAE;UACxD;QACF;QACApB,MAAM,CAACI,CAAC,CAACE,SAAS,CAAC;MACrB,CAAC;MACDgB,YAAY,EAAGlB,CAAgC,IAAK;QAClDJ,MAAM,CAACI,CAAC,CAACG,cAAc,CAAC,CAAC,CAAC,CAACC,UAAU,CAAC;MACxC;IACF,CAAC,CAAC,GACF,CAAC,CAAC;IACNrD;EACF,CAAC;AACH","ignoreList":[]}
|
package/lib/commonjs/utils.js
CHANGED
@@ -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,"
|
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":[]}
|
package/lib/module/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
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
|
-
|
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
|
-
|
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,"
|
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":[]}
|
package/lib/module/useMove.js
CHANGED
@@ -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
|
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
|
56
|
+
onMoveEnd === null || onMoveEnd === void 0 || onMoveEnd({
|
59
57
|
type: 'moveend',
|
60
58
|
pointerType: 'touch'
|
61
59
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"
|
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
|
-
|
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
|
-
|
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,"
|
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":[]}
|
package/lib/module/useSlider.js
CHANGED
@@ -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,
|
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;
|
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
|
-
|
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];
|
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
|
-
}
|
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,"
|
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":[]}
|