react-native-gesture-handler 2.26.0 → 2.27.1
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/README.md +69 -0
- package/android/src/main/jni/CMakeLists.txt +7 -26
- package/lib/commonjs/components/Pressable/Pressable.js +139 -188
- package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
- package/lib/commonjs/components/Pressable/StateMachine.js +38 -0
- package/lib/commonjs/components/Pressable/StateMachine.js.map +1 -0
- package/lib/commonjs/components/Pressable/stateDefinitions.js +88 -0
- package/lib/commonjs/components/Pressable/stateDefinitions.js.map +1 -0
- package/lib/commonjs/components/Pressable/utils.js +1 -1
- package/lib/commonjs/components/Pressable/utils.js.map +1 -1
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js +12 -0
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureObjects.js +3 -1
- package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +3 -0
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +3 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +6 -6
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +24 -33
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +15 -17
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +1 -1
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/commonjs/web/tools/PointerEventManager.js +1 -1
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerTracker.js +12 -11
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
- package/lib/commonjs/web/tools/Vector.js +1 -1
- package/lib/commonjs/web/tools/Vector.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +141 -190
- package/lib/module/components/Pressable/Pressable.js.map +1 -1
- package/lib/module/components/Pressable/StateMachine.js +34 -0
- package/lib/module/components/Pressable/StateMachine.js.map +1 -0
- package/lib/module/components/Pressable/stateDefinitions.js +83 -0
- package/lib/module/components/Pressable/stateDefinitions.js.map +1 -0
- package/lib/module/components/Pressable/utils.js +1 -1
- package/lib/module/components/Pressable/utils.js.map +1 -1
- package/lib/module/handlers/gestures/forceTouchGesture.js +13 -0
- package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureObjects.js +3 -1
- package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js +3 -0
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +3 -0
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +6 -6
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +24 -33
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +15 -17
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +1 -1
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/module/web/tools/PointerEventManager.js +1 -1
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/module/web/tools/PointerTracker.js +12 -11
- package/lib/module/web/tools/PointerTracker.js.map +1 -1
- package/lib/module/web/tools/Vector.js +1 -1
- package/lib/module/web/tools/Vector.js.map +1 -1
- package/lib/typescript/ActionType.d.ts +0 -1
- package/lib/typescript/ActionType.js +6 -0
- package/lib/typescript/Directions.d.ts +0 -1
- package/lib/typescript/Directions.js +18 -0
- package/lib/typescript/EnableNewWebImplementation.d.ts +0 -1
- package/lib/typescript/EnableNewWebImplementation.js +30 -0
- package/lib/typescript/GestureHandlerRootViewContext.d.ts +0 -1
- package/lib/typescript/GestureHandlerRootViewContext.js +2 -0
- package/lib/typescript/PlatformConstants.d.ts +0 -1
- package/lib/typescript/PlatformConstants.js +3 -0
- package/lib/typescript/PlatformConstants.web.d.ts +0 -1
- package/lib/typescript/PlatformConstants.web.js +5 -0
- package/lib/typescript/PointerType.d.ts +0 -1
- package/lib/typescript/PointerType.js +8 -0
- package/lib/typescript/RNGestureHandlerModule.d.ts +0 -1
- package/lib/typescript/RNGestureHandlerModule.js +4 -0
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +0 -1
- package/lib/typescript/RNGestureHandlerModule.web.js +92 -0
- package/lib/typescript/RNGestureHandlerModule.windows.d.ts +0 -1
- package/lib/typescript/RNGestureHandlerModule.windows.js +47 -0
- package/lib/typescript/RNRenderer.d.ts +0 -1
- package/lib/typescript/RNRenderer.js +3 -0
- package/lib/typescript/RNRenderer.web.d.ts +0 -1
- package/lib/typescript/RNRenderer.web.js +3 -0
- package/lib/typescript/State.d.ts +0 -1
- package/lib/typescript/State.js +9 -0
- package/lib/typescript/TouchEventType.d.ts +0 -1
- package/lib/typescript/TouchEventType.js +7 -0
- package/lib/typescript/components/DrawerLayout.d.ts +0 -1
- package/lib/typescript/components/DrawerLayout.js +417 -0
- package/lib/typescript/components/GestureButtons.d.ts +0 -1
- package/lib/typescript/components/GestureButtons.js +165 -0
- package/lib/typescript/components/GestureButtonsProps.d.ts +0 -1
- package/lib/typescript/components/GestureButtonsProps.js +1 -0
- package/lib/typescript/components/GestureComponents.d.ts +0 -1
- package/lib/typescript/components/GestureComponents.js +67 -0
- package/lib/typescript/components/GestureComponents.web.d.ts +0 -1
- package/lib/typescript/components/GestureComponents.web.js +21 -0
- package/lib/typescript/components/GestureHandlerButton.d.ts +0 -1
- package/lib/typescript/components/GestureHandlerButton.js +2 -0
- package/lib/typescript/components/GestureHandlerButton.web.d.ts +0 -1
- package/lib/typescript/components/GestureHandlerButton.web.js +3 -0
- package/lib/typescript/components/GestureHandlerRootView.android.d.ts +0 -1
- package/lib/typescript/components/GestureHandlerRootView.android.js +17 -0
- package/lib/typescript/components/GestureHandlerRootView.d.ts +0 -1
- package/lib/typescript/components/GestureHandlerRootView.js +16 -0
- package/lib/typescript/components/GestureHandlerRootView.web.d.ts +0 -1
- package/lib/typescript/components/GestureHandlerRootView.web.js +11 -0
- package/lib/typescript/components/Pressable/Pressable.d.ts +1 -3
- package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/Pressable.js +231 -0
- package/lib/typescript/components/Pressable/PressableProps.d.ts +15 -2
- package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/PressableProps.js +1 -0
- package/lib/typescript/components/Pressable/StateMachine.d.ts +14 -0
- package/lib/typescript/components/Pressable/StateMachine.d.ts.map +1 -0
- package/lib/typescript/components/Pressable/StateMachine.js +34 -0
- package/lib/typescript/components/Pressable/index.d.ts +0 -1
- package/lib/typescript/components/Pressable/index.js +1 -0
- package/lib/typescript/components/Pressable/stateDefinitions.d.ts +9 -0
- package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -0
- package/lib/typescript/components/Pressable/stateDefinitions.js +104 -0
- package/lib/typescript/components/Pressable/utils.d.ts +3 -7
- package/lib/typescript/components/Pressable/utils.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/utils.js +80 -0
- package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +0 -1
- package/lib/typescript/components/ReanimatedDrawerLayout.js +364 -0
- package/lib/typescript/components/ReanimatedSwipeable.d.ts +0 -1
- package/lib/typescript/components/ReanimatedSwipeable.js +400 -0
- package/lib/typescript/components/Swipeable.d.ts +0 -1
- package/lib/typescript/components/Swipeable.js +287 -0
- package/lib/typescript/components/Text.d.ts +0 -1
- package/lib/typescript/components/Text.js +38 -0
- package/lib/typescript/components/gestureHandlerRootHOC.d.ts +0 -1
- package/lib/typescript/components/gestureHandlerRootHOC.js +18 -0
- package/lib/typescript/components/touchables/ExtraButtonProps.d.ts +0 -1
- package/lib/typescript/components/touchables/ExtraButtonProps.js +1 -0
- package/lib/typescript/components/touchables/GenericTouchable.d.ts +0 -1
- package/lib/typescript/components/touchables/GenericTouchable.js +221 -0
- package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +0 -1
- package/lib/typescript/components/touchables/GenericTouchableProps.js +1 -0
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +0 -1
- package/lib/typescript/components/touchables/TouchableHighlight.js +75 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +0 -1
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.js +65 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +0 -1
- package/lib/typescript/components/touchables/TouchableNativeFeedback.js +6 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +0 -1
- package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.js +1 -0
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +0 -1
- package/lib/typescript/components/touchables/TouchableOpacity.js +51 -0
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +0 -1
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.js +10 -0
- package/lib/typescript/components/touchables/index.d.ts +0 -1
- package/lib/typescript/components/touchables/index.js +4 -0
- package/lib/typescript/components/utils.d.ts +0 -1
- package/lib/typescript/components/utils.js +11 -0
- package/lib/typescript/findNodeHandle.d.ts +0 -1
- package/lib/typescript/findNodeHandle.js +2 -0
- package/lib/typescript/findNodeHandle.web.d.ts +0 -1
- package/lib/typescript/findNodeHandle.web.js +31 -0
- package/lib/typescript/getShadowNodeFromRef.d.ts +0 -1
- package/lib/typescript/getShadowNodeFromRef.js +45 -0
- package/lib/typescript/getShadowNodeFromRef.web.d.ts +0 -1
- package/lib/typescript/getShadowNodeFromRef.web.js +7 -0
- package/lib/typescript/ghQueueMicrotask.d.ts +0 -1
- package/lib/typescript/ghQueueMicrotask.js +7 -0
- package/lib/typescript/handlers/FlingGestureHandler.d.ts +0 -1
- package/lib/typescript/handlers/FlingGestureHandler.js +19 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +0 -1
- package/lib/typescript/handlers/ForceTouchGestureHandler.js +37 -0
- package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +3 -1
- package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts.map +1 -1
- package/lib/typescript/handlers/GestureHandlerEventPayload.js +1 -0
- package/lib/typescript/handlers/LongPressGestureHandler.d.ts +0 -1
- package/lib/typescript/handlers/LongPressGestureHandler.js +22 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +0 -1
- package/lib/typescript/handlers/NativeViewGestureHandler.js +20 -0
- package/lib/typescript/handlers/PanGestureHandler.d.ts +0 -1
- package/lib/typescript/handlers/PanGestureHandler.js +128 -0
- package/lib/typescript/handlers/PinchGestureHandler.d.ts +0 -1
- package/lib/typescript/handlers/PinchGestureHandler.js +12 -0
- package/lib/typescript/handlers/PressabilityDebugView.d.ts +0 -1
- package/lib/typescript/handlers/PressabilityDebugView.js +2 -0
- package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +0 -1
- package/lib/typescript/handlers/PressabilityDebugView.web.js +4 -0
- package/lib/typescript/handlers/RotationGestureHandler.d.ts +0 -1
- package/lib/typescript/handlers/RotationGestureHandler.js +12 -0
- package/lib/typescript/handlers/TapGestureHandler.d.ts +0 -1
- package/lib/typescript/handlers/TapGestureHandler.js +26 -0
- package/lib/typescript/handlers/createHandler.d.ts +0 -1
- package/lib/typescript/handlers/createHandler.js +375 -0
- package/lib/typescript/handlers/createNativeWrapper.d.ts +0 -1
- package/lib/typescript/handlers/createNativeWrapper.js +67 -0
- package/lib/typescript/handlers/customDirectEventTypes.d.ts +0 -1
- package/lib/typescript/handlers/customDirectEventTypes.js +2 -0
- package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +0 -1
- package/lib/typescript/handlers/customDirectEventTypes.web.js +4 -0
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +0 -1
- package/lib/typescript/handlers/gestureHandlerCommon.js +42 -0
- package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +9 -1
- package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts.map +1 -1
- package/lib/typescript/handlers/gestureHandlerTypesCompat.js +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.js +22 -0
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.js +24 -0
- package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.js +55 -0
- package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.js +12 -0
- package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/index.js +114 -0
- package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.js +18 -0
- package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/types.js +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.js +54 -0
- package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.js +137 -0
- package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.js +48 -0
- package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.js +35 -0
- package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.js +32 -0
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/utils.js +140 -0
- package/lib/typescript/handlers/gestures/eventReceiver.d.ts +0 -1
- package/lib/typescript/handlers/gestures/eventReceiver.js +105 -0
- package/lib/typescript/handlers/gestures/flingGesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/flingGesture.js +27 -0
- package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +9 -1
- package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/forceTouchGesture.js +57 -0
- package/lib/typescript/handlers/gestures/gesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/gesture.js +303 -0
- package/lib/typescript/handlers/gestures/gestureComposition.d.ts +0 -1
- package/lib/typescript/handlers/gestures/gestureComposition.js +78 -0
- package/lib/typescript/handlers/gestures/gestureObjects.d.ts +3 -2
- package/lib/typescript/handlers/gestures/gestureObjects.d.ts.map +1 -1
- package/lib/typescript/handlers/gestures/gestureObjects.js +125 -0
- package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +0 -1
- package/lib/typescript/handlers/gestures/gestureStateManager.js +60 -0
- package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +0 -1
- package/lib/typescript/handlers/gestures/gestureStateManager.web.js +19 -0
- package/lib/typescript/handlers/gestures/hoverGesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/hoverGesture.js +45 -0
- package/lib/typescript/handlers/gestures/longPressGesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/longPressGesture.js +35 -0
- package/lib/typescript/handlers/gestures/manualGesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/manualGesture.js +16 -0
- package/lib/typescript/handlers/gestures/nativeGesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/nativeGesture.js +24 -0
- package/lib/typescript/handlers/gestures/panGesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/panGesture.js +181 -0
- package/lib/typescript/handlers/gestures/pinchGesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/pinchGesture.js +27 -0
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +0 -1
- package/lib/typescript/handlers/gestures/reanimatedWrapper.js +23 -0
- package/lib/typescript/handlers/gestures/rotationGesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/rotationGesture.js +27 -0
- package/lib/typescript/handlers/gestures/tapGesture.d.ts +0 -1
- package/lib/typescript/handlers/gestures/tapGesture.js +72 -0
- package/lib/typescript/handlers/getNextHandlerTag.d.ts +0 -1
- package/lib/typescript/handlers/getNextHandlerTag.js +4 -0
- package/lib/typescript/handlers/handlersRegistry.d.ts +0 -1
- package/lib/typescript/handlers/handlersRegistry.js +36 -0
- package/lib/typescript/handlers/utils.d.ts +0 -1
- package/lib/typescript/handlers/utils.js +58 -0
- package/lib/typescript/index.d.ts +0 -1
- package/lib/typescript/index.js +28 -0
- package/lib/typescript/init.d.ts +0 -1
- package/lib/typescript/init.js +15 -0
- package/lib/typescript/jestUtils/index.d.ts +0 -1
- package/lib/typescript/jestUtils/index.js +1 -0
- package/lib/typescript/jestUtils/jestUtils.d.ts +0 -1
- package/lib/typescript/jestUtils/jestUtils.js +290 -0
- package/lib/typescript/mocks.d.ts +0 -1
- package/lib/typescript/mocks.js +59 -0
- package/lib/typescript/mountRegistry.d.ts +0 -1
- package/lib/typescript/mountRegistry.js +29 -0
- package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +0 -1
- package/lib/typescript/specs/NativeRNGestureHandlerModule.js +2 -0
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +0 -1
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.js +2 -0
- package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +0 -1
- package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.js +2 -0
- package/lib/typescript/typeUtils.d.ts +0 -1
- package/lib/typescript/typeUtils.js +1 -0
- package/lib/typescript/utils.d.ts +0 -1
- package/lib/typescript/utils.js +80 -0
- package/lib/typescript/web/Gestures.d.ts +0 -1
- package/lib/typescript/web/Gestures.js +38 -0
- package/lib/typescript/web/constants.d.ts +0 -1
- package/lib/typescript/web/constants.js +2 -0
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +0 -1
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts.map +1 -1
- package/lib/typescript/web/detectors/RotationGestureDetector.js +122 -0
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +0 -1
- package/lib/typescript/web/detectors/ScaleGestureDetector.js +117 -0
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/FlingGestureHandler.js +133 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/GestureHandler.js +656 -0
- package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/HoverGestureHandler.js +37 -0
- package/lib/typescript/web/handlers/IGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/IGestureHandler.js +1 -0
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/LongPressGestureHandler.js +136 -0
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/ManualGestureHandler.js +29 -0
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/NativeViewGestureHandler.js +133 -0
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +2 -1
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/PanGestureHandler.js +420 -0
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/PinchGestureHandler.js +117 -0
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +0 -1
- package/lib/typescript/web/handlers/RotationGestureHandler.js +122 -0
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +1 -1
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/TapGestureHandler.js +202 -0
- package/lib/typescript/web/interfaces.d.ts +0 -1
- package/lib/typescript/web/interfaces.js +25 -0
- package/lib/typescript/web/tools/CircularBuffer.d.ts +0 -1
- package/lib/typescript/web/tools/CircularBuffer.js +37 -0
- package/lib/typescript/web/tools/EventManager.d.ts +0 -1
- package/lib/typescript/web/tools/EventManager.js +85 -0
- package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +0 -1
- package/lib/typescript/web/tools/GestureHandlerDelegate.js +1 -0
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +0 -1
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts.map +1 -1
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.js +273 -0
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +0 -1
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.js +169 -0
- package/lib/typescript/web/tools/InteractionManager.d.ts +0 -1
- package/lib/typescript/web/tools/InteractionManager.js +91 -0
- package/lib/typescript/web/tools/KeyboardEventManager.d.ts +0 -1
- package/lib/typescript/web/tools/KeyboardEventManager.js +73 -0
- package/lib/typescript/web/tools/LeastSquareSolver.d.ts +0 -1
- package/lib/typescript/web/tools/LeastSquareSolver.js +147 -0
- package/lib/typescript/web/tools/NodeManager.d.ts +0 -1
- package/lib/typescript/web/tools/NodeManager.js +28 -0
- package/lib/typescript/web/tools/PointerEventManager.d.ts +0 -1
- package/lib/typescript/web/tools/PointerEventManager.js +179 -0
- package/lib/typescript/web/tools/PointerTracker.d.ts +3 -4
- package/lib/typescript/web/tools/PointerTracker.d.ts.map +1 -1
- package/lib/typescript/web/tools/PointerTracker.js +161 -0
- package/lib/typescript/web/tools/Vector.d.ts +1 -2
- package/lib/typescript/web/tools/Vector.js +43 -0
- package/lib/typescript/web/tools/VelocityTracker.d.ts +0 -1
- package/lib/typescript/web/tools/VelocityTracker.js +76 -0
- package/lib/typescript/web/tools/WheelEventManager.d.ts +0 -1
- package/lib/typescript/web/tools/WheelEventManager.js +40 -0
- package/lib/typescript/web/utils.d.ts +0 -1
- package/lib/typescript/web/utils.js +233 -0
- package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/DiscreteGestureHandler.js +48 -0
- package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/DraggingGestureHandler.js +25 -0
- package/lib/typescript/web_hammer/Errors.d.ts +0 -1
- package/lib/typescript/web_hammer/Errors.js +5 -0
- package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/FlingGestureHandler.js +119 -0
- package/lib/typescript/web_hammer/GestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/GestureHandler.js +469 -0
- package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/IndiscreteGestureHandler.js +26 -0
- package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/LongPressGestureHandler.js +46 -0
- package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/NativeViewGestureHandler.js +40 -0
- package/lib/typescript/web_hammer/NodeManager.d.ts +0 -1
- package/lib/typescript/web_hammer/NodeManager.js +28 -0
- package/lib/typescript/web_hammer/PanGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/PanGestureHandler.js +151 -0
- package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/PinchGestureHandler.js +19 -0
- package/lib/typescript/web_hammer/PressGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/PressGestureHandler.js +133 -0
- package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/RotationGestureHandler.js +20 -0
- package/lib/typescript/web_hammer/TapGestureHandler.d.ts +0 -1
- package/lib/typescript/web_hammer/TapGestureHandler.js +142 -0
- package/lib/typescript/web_hammer/constants.d.ts +0 -1
- package/lib/typescript/web_hammer/constants.js +42 -0
- package/lib/typescript/web_hammer/utils.d.ts +0 -1
- package/lib/typescript/web_hammer/utils.js +15 -0
- package/package.json +4 -2
- package/src/components/Pressable/Pressable.tsx +357 -445
- package/src/components/Pressable/PressableProps.tsx +15 -0
- package/src/components/Pressable/StateMachine.tsx +49 -0
- package/src/components/Pressable/stateDefinitions.ts +125 -0
- package/src/components/Pressable/utils.ts +11 -7
- package/src/handlers/GestureHandlerEventPayload.ts +3 -0
- package/src/handlers/gestureHandlerTypesCompat.ts +9 -0
- package/src/handlers/gestures/forceTouchGesture.ts +9 -0
- package/src/handlers/gestures/gestureObjects.ts +3 -1
- package/src/web/detectors/RotationGestureDetector.ts +4 -0
- package/src/web/handlers/FlingGestureHandler.ts +4 -0
- package/src/web/handlers/GestureHandler.ts +9 -3
- package/src/web/handlers/PanGestureHandler.ts +25 -36
- package/src/web/handlers/TapGestureHandler.ts +14 -19
- package/src/web/tools/GestureHandlerOrchestrator.ts +1 -0
- package/src/web/tools/PointerEventManager.ts +1 -1
- package/src/web/tools/PointerTracker.ts +17 -15
- package/src/web/tools/Vector.ts +1 -1
@@ -6,9 +6,12 @@ import {
|
|
6
6
|
ViewStyle,
|
7
7
|
PressableStateCallbackType as RNPressableStateCallbackType,
|
8
8
|
PressableAndroidRippleConfig as RNPressableAndroidRippleConfig,
|
9
|
+
View,
|
9
10
|
} from 'react-native';
|
10
11
|
import { RelationPropType } from '../utils';
|
11
12
|
|
13
|
+
export type PressableDimensions = { width: number; height: number };
|
14
|
+
|
12
15
|
export type PressableStateCallbackType = RNPressableStateCallbackType;
|
13
16
|
export type PressableAndroidRippleConfig = RNPressableAndroidRippleConfig;
|
14
17
|
|
@@ -60,6 +63,11 @@ export interface PressableProps
|
|
60
63
|
*/
|
61
64
|
onLongPress?: null | ((event: PressableEvent) => void);
|
62
65
|
|
66
|
+
/**
|
67
|
+
* A reference to the pressable element.
|
68
|
+
*/
|
69
|
+
ref?: React.RefObject<View>;
|
70
|
+
|
63
71
|
/**
|
64
72
|
* Either children or a render prop that receives a boolean reflecting whether
|
65
73
|
* the component is currently pressed.
|
@@ -158,4 +166,11 @@ export interface PressableProps
|
|
158
166
|
* used with the Pressable's gesture handlers.
|
159
167
|
*/
|
160
168
|
blocksExternalGesture?: RelationPropType;
|
169
|
+
|
170
|
+
/**
|
171
|
+
* Defines the dimensions of the Pressable after it's been resized.
|
172
|
+
* This property does not affect Pressable's physical appearance.
|
173
|
+
* Required when the Pressable is resized **and** uses pressRetentionOffset.
|
174
|
+
*/
|
175
|
+
dimensionsAfterResize?: PressableDimensions;
|
161
176
|
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import { PressableEvent } from './PressableProps';
|
2
|
+
|
3
|
+
interface StateDefinition {
|
4
|
+
eventName: string;
|
5
|
+
callback?: (event: PressableEvent) => void;
|
6
|
+
}
|
7
|
+
|
8
|
+
class PressableStateMachine {
|
9
|
+
private states: StateDefinition[];
|
10
|
+
private currentStepIndex: number;
|
11
|
+
private eventPayload: PressableEvent | null;
|
12
|
+
|
13
|
+
constructor(steps: StateDefinition[]) {
|
14
|
+
this.states = steps;
|
15
|
+
this.currentStepIndex = 0;
|
16
|
+
this.eventPayload = null;
|
17
|
+
}
|
18
|
+
|
19
|
+
public reset() {
|
20
|
+
this.currentStepIndex = 0;
|
21
|
+
this.eventPayload = null;
|
22
|
+
}
|
23
|
+
|
24
|
+
public handleEvent(eventName: string, eventPayload?: PressableEvent) {
|
25
|
+
const step = this.states[this.currentStepIndex];
|
26
|
+
this.eventPayload = eventPayload || this.eventPayload;
|
27
|
+
|
28
|
+
if (step.eventName !== eventName) {
|
29
|
+
if (this.currentStepIndex > 0) {
|
30
|
+
// retry with position at index 0
|
31
|
+
this.reset();
|
32
|
+
this.handleEvent(eventName, eventPayload);
|
33
|
+
}
|
34
|
+
return;
|
35
|
+
}
|
36
|
+
|
37
|
+
if (this.eventPayload && step.callback) {
|
38
|
+
step.callback(this.eventPayload);
|
39
|
+
}
|
40
|
+
|
41
|
+
this.currentStepIndex++;
|
42
|
+
|
43
|
+
if (this.currentStepIndex === this.states.length) {
|
44
|
+
this.reset();
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
export { PressableStateMachine };
|
@@ -0,0 +1,125 @@
|
|
1
|
+
import { Platform } from 'react-native';
|
2
|
+
import { PressableEvent } from './PressableProps';
|
3
|
+
import { PressableStateMachine } from './StateMachine';
|
4
|
+
|
5
|
+
export enum StateMachineEvent {
|
6
|
+
NATIVE_BEGIN = 'nativeBegin',
|
7
|
+
NATIVE_START = 'nativeStart',
|
8
|
+
FINALIZE = 'finalize',
|
9
|
+
LONG_PRESS_TOUCHES_DOWN = 'longPressTouchesDown',
|
10
|
+
}
|
11
|
+
|
12
|
+
function getAndroidStateMachine(
|
13
|
+
handlePressIn: (event: PressableEvent) => void,
|
14
|
+
handlePressOut: (event: PressableEvent) => void
|
15
|
+
) {
|
16
|
+
return new PressableStateMachine([
|
17
|
+
{
|
18
|
+
eventName: StateMachineEvent.NATIVE_BEGIN,
|
19
|
+
},
|
20
|
+
{
|
21
|
+
eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
|
22
|
+
callback: handlePressIn,
|
23
|
+
},
|
24
|
+
{
|
25
|
+
eventName: StateMachineEvent.FINALIZE,
|
26
|
+
callback: handlePressOut,
|
27
|
+
},
|
28
|
+
]);
|
29
|
+
}
|
30
|
+
|
31
|
+
function getIosStateMachine(
|
32
|
+
handlePressIn: (event: PressableEvent) => void,
|
33
|
+
handlePressOut: (event: PressableEvent) => void
|
34
|
+
) {
|
35
|
+
return new PressableStateMachine([
|
36
|
+
{
|
37
|
+
eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
|
38
|
+
},
|
39
|
+
{
|
40
|
+
eventName: StateMachineEvent.NATIVE_START,
|
41
|
+
callback: handlePressIn,
|
42
|
+
},
|
43
|
+
{
|
44
|
+
eventName: StateMachineEvent.FINALIZE,
|
45
|
+
callback: handlePressOut,
|
46
|
+
},
|
47
|
+
]);
|
48
|
+
}
|
49
|
+
|
50
|
+
function getWebStateMachine(
|
51
|
+
handlePressIn: (event: PressableEvent) => void,
|
52
|
+
handlePressOut: (event: PressableEvent) => void
|
53
|
+
) {
|
54
|
+
return new PressableStateMachine([
|
55
|
+
{
|
56
|
+
eventName: StateMachineEvent.NATIVE_BEGIN,
|
57
|
+
},
|
58
|
+
{
|
59
|
+
eventName: StateMachineEvent.NATIVE_START,
|
60
|
+
},
|
61
|
+
{
|
62
|
+
eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
|
63
|
+
callback: handlePressIn,
|
64
|
+
},
|
65
|
+
{
|
66
|
+
eventName: StateMachineEvent.FINALIZE,
|
67
|
+
callback: handlePressOut,
|
68
|
+
},
|
69
|
+
]);
|
70
|
+
}
|
71
|
+
|
72
|
+
function getMacosStateMachine(
|
73
|
+
handlePressIn: (event: PressableEvent) => void,
|
74
|
+
handlePressOut: (event: PressableEvent) => void
|
75
|
+
) {
|
76
|
+
return new PressableStateMachine([
|
77
|
+
{
|
78
|
+
eventName: StateMachineEvent.LONG_PRESS_TOUCHES_DOWN,
|
79
|
+
},
|
80
|
+
{
|
81
|
+
eventName: StateMachineEvent.NATIVE_BEGIN,
|
82
|
+
callback: handlePressIn,
|
83
|
+
},
|
84
|
+
{
|
85
|
+
eventName: StateMachineEvent.NATIVE_START,
|
86
|
+
},
|
87
|
+
{
|
88
|
+
eventName: StateMachineEvent.FINALIZE,
|
89
|
+
callback: handlePressOut,
|
90
|
+
},
|
91
|
+
]);
|
92
|
+
}
|
93
|
+
|
94
|
+
function getUniversalStateMachine(
|
95
|
+
handlePressIn: (event: PressableEvent) => void,
|
96
|
+
handlePressOut: (event: PressableEvent) => void
|
97
|
+
) {
|
98
|
+
return new PressableStateMachine([
|
99
|
+
{
|
100
|
+
eventName: StateMachineEvent.FINALIZE,
|
101
|
+
callback: (event: PressableEvent) => {
|
102
|
+
handlePressIn(event);
|
103
|
+
handlePressOut(event);
|
104
|
+
},
|
105
|
+
},
|
106
|
+
]);
|
107
|
+
}
|
108
|
+
|
109
|
+
export function getConfiguredStateMachine(
|
110
|
+
handlePressIn: (event: PressableEvent) => void,
|
111
|
+
handlePressOut: (event: PressableEvent) => void
|
112
|
+
) {
|
113
|
+
if (Platform.OS === 'android') {
|
114
|
+
return getAndroidStateMachine(handlePressIn, handlePressOut);
|
115
|
+
} else if (Platform.OS === 'ios') {
|
116
|
+
return getIosStateMachine(handlePressIn, handlePressOut);
|
117
|
+
} else if (Platform.OS === 'web') {
|
118
|
+
return getWebStateMachine(handlePressIn, handlePressOut);
|
119
|
+
} else if (Platform.OS === 'macos') {
|
120
|
+
return getMacosStateMachine(handlePressIn, handlePressOut);
|
121
|
+
} else {
|
122
|
+
// Unknown platform - using minimal universal setup.
|
123
|
+
return getUniversalStateMachine(handlePressIn, handlePressOut);
|
124
|
+
}
|
125
|
+
}
|
@@ -8,7 +8,11 @@ import {
|
|
8
8
|
GestureStateChangeEvent,
|
9
9
|
GestureTouchEvent,
|
10
10
|
} from '../../handlers/gestureHandlerCommon';
|
11
|
-
import {
|
11
|
+
import {
|
12
|
+
PressableDimensions,
|
13
|
+
InnerPressableEvent,
|
14
|
+
PressableEvent,
|
15
|
+
} from './PressableProps';
|
12
16
|
|
13
17
|
const numberAsInset = (value: number): Insets => ({
|
14
18
|
left: value,
|
@@ -59,14 +63,14 @@ const gestureToPressEvent = (
|
|
59
63
|
});
|
60
64
|
|
61
65
|
const isTouchWithinInset = (
|
62
|
-
dimensions:
|
66
|
+
dimensions: PressableDimensions,
|
63
67
|
inset: Insets,
|
64
|
-
touch?:
|
68
|
+
touch?: InnerPressableEvent
|
65
69
|
) =>
|
66
|
-
(touch?.
|
67
|
-
(touch?.
|
68
|
-
(touch?.
|
69
|
-
(touch?.
|
70
|
+
(touch?.locationX ?? 0) < (inset.right ?? 0) + dimensions.width &&
|
71
|
+
(touch?.locationY ?? 0) < (inset.bottom ?? 0) + dimensions.height &&
|
72
|
+
(touch?.locationX ?? 0) > -(inset.left ?? 0) &&
|
73
|
+
(touch?.locationY ?? 0) > -(inset.top ?? 0);
|
70
74
|
|
71
75
|
const gestureToPressableEvent = (
|
72
76
|
event: GestureStateChangeEvent<
|
@@ -46,8 +46,14 @@ export type TapGestureHandlerGestureEvent =
|
|
46
46
|
export type TapGestureHandlerStateChangeEvent =
|
47
47
|
HandlerStateChangeEvent<TapGestureHandlerEventPayload>;
|
48
48
|
|
49
|
+
/**
|
50
|
+
* @deprecated ForceTouchGestureHandler is deprecated and will be removed in the future.
|
51
|
+
*/
|
49
52
|
export type ForceTouchGestureHandlerGestureEvent =
|
50
53
|
GestureEvent<ForceTouchGestureHandlerEventPayload>;
|
54
|
+
/**
|
55
|
+
* @deprecated ForceTouchGestureHandler is deprecated and will be removed in the future.
|
56
|
+
*/
|
51
57
|
export type ForceTouchGestureHandlerStateChangeEvent =
|
52
58
|
HandlerStateChangeEvent<ForceTouchGestureHandlerEventPayload>;
|
53
59
|
|
@@ -84,6 +90,9 @@ export type PanGestureHandlerProperties = PanGestureHandlerProps;
|
|
84
90
|
export type PinchGestureHandlerProperties = PinchGestureHandlerProps;
|
85
91
|
export type RotationGestureHandlerProperties = RotationGestureHandlerProps;
|
86
92
|
export type FlingGestureHandlerProperties = FlingGestureHandlerProps;
|
93
|
+
/**
|
94
|
+
* @deprecated ForceTouch gesture is deprecated and will be removed in the future.
|
95
|
+
*/
|
87
96
|
export type ForceTouchGestureHandlerProperties = ForceTouchGestureHandlerProps;
|
88
97
|
// Button props
|
89
98
|
export type RawButtonProperties = RawButtonProps;
|
@@ -3,6 +3,9 @@ import { ForceTouchGestureConfig } from '../ForceTouchGestureHandler';
|
|
3
3
|
import type { ForceTouchGestureHandlerEventPayload } from '../GestureHandlerEventPayload';
|
4
4
|
import { GestureUpdateEvent } from '../gestureHandlerCommon';
|
5
5
|
|
6
|
+
/**
|
7
|
+
* @deprecated ForceTouch gesture is deprecated and will be removed in the future.
|
8
|
+
*/
|
6
9
|
export type ForceTouchGestureChangeEventPayload = {
|
7
10
|
forceChange: number;
|
8
11
|
};
|
@@ -26,6 +29,9 @@ function changeEventCalculator(
|
|
26
29
|
return { ...current, ...changePayload };
|
27
30
|
}
|
28
31
|
|
32
|
+
/**
|
33
|
+
* @deprecated ForceTouch gesture is deprecated and will be removed in the future.
|
34
|
+
*/
|
29
35
|
export class ForceTouchGesture extends ContinousBaseGesture<
|
30
36
|
ForceTouchGestureHandlerEventPayload,
|
31
37
|
ForceTouchGestureChangeEventPayload
|
@@ -83,4 +89,7 @@ export class ForceTouchGesture extends ContinousBaseGesture<
|
|
83
89
|
}
|
84
90
|
}
|
85
91
|
|
92
|
+
/**
|
93
|
+
* @deprecated ForceTouch gesture is deprecated and will be removed in the future.
|
94
|
+
*/
|
86
95
|
export type ForceTouchGestureType = InstanceType<typeof ForceTouchGesture>;
|
@@ -73,7 +73,9 @@ export const GestureObjects = {
|
|
73
73
|
},
|
74
74
|
|
75
75
|
/**
|
76
|
-
*
|
76
|
+
* @deprecated ForceTouch gesture is deprecated and will be removed in the future.
|
77
|
+
*
|
78
|
+
* #### iOS only
|
77
79
|
* A continuous gesture that recognizes force of a touch. It allows for tracking pressure of touch on some iOS devices.
|
78
80
|
* @see https://docs.swmansion.com/react-native-gesture-handler/docs/gestures/force-touch-gesture
|
79
81
|
*/
|
@@ -42,6 +42,10 @@ export default class RotationGestureDetector
|
|
42
42
|
const firstPointerCoords = tracker.getLastAbsoluteCoords(firstPointerID);
|
43
43
|
const secondPointerCoords = tracker.getLastAbsoluteCoords(secondPointerID);
|
44
44
|
|
45
|
+
if (!firstPointerCoords || !secondPointerCoords) {
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
|
45
49
|
const vectorX: number = secondPointerCoords.x - firstPointerCoords.x;
|
46
50
|
const vectorY: number = secondPointerCoords.y - firstPointerCoords.y;
|
47
51
|
|
@@ -49,6 +49,10 @@ export default class FlingGestureHandler extends GestureHandler {
|
|
49
49
|
private tryEndFling(): boolean {
|
50
50
|
const velocityVector = Vector.fromVelocity(this.tracker, this.keyPointer);
|
51
51
|
|
52
|
+
if (!velocityVector) {
|
53
|
+
return false;
|
54
|
+
}
|
55
|
+
|
52
56
|
const getAlignment = (
|
53
57
|
direction: Directions | DiagonalDirections,
|
54
58
|
minimalAlignmentCosine: number
|
@@ -701,9 +701,15 @@ export default abstract class GestureHandler implements IGestureHandler {
|
|
701
701
|
}
|
702
702
|
|
703
703
|
const rect = this.delegate.measureView();
|
704
|
-
|
705
|
-
const
|
706
|
-
|
704
|
+
|
705
|
+
const lastCoords = this.tracker.getLastAbsoluteCoords();
|
706
|
+
|
707
|
+
if (!lastCoords) {
|
708
|
+
return false;
|
709
|
+
}
|
710
|
+
|
711
|
+
const offsetX: number = lastCoords.x - rect.pageX;
|
712
|
+
const offsetY: number = lastCoords.y - rect.pageY;
|
707
713
|
|
708
714
|
return (
|
709
715
|
offsetX >= left && offsetX <= right && offsetY >= top && offsetY <= bottom
|
@@ -218,6 +218,20 @@ export default class PanGestureHandler extends GestureHandler {
|
|
218
218
|
clearTimeout(this.activationTimeout);
|
219
219
|
}
|
220
220
|
|
221
|
+
private updateLastCoords() {
|
222
|
+
const { x, y } = this.tracker.getAbsoluteCoordsAverage();
|
223
|
+
|
224
|
+
this.lastX = x;
|
225
|
+
this.lastY = y;
|
226
|
+
}
|
227
|
+
|
228
|
+
private updateVelocity(pointerId: number) {
|
229
|
+
const velocities = this.tracker.getVelocity(pointerId);
|
230
|
+
|
231
|
+
this.velocityX = velocities?.x ?? 0;
|
232
|
+
this.velocityY = velocities?.y ?? 0;
|
233
|
+
}
|
234
|
+
|
221
235
|
// Events Handling
|
222
236
|
protected onPointerDown(event: AdaptedEvent): void {
|
223
237
|
if (!this.isButtonInConfig(event.button)) {
|
@@ -229,9 +243,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
229
243
|
|
230
244
|
super.onPointerDown(event);
|
231
245
|
|
232
|
-
|
233
|
-
this.lastX = lastCoords.x;
|
234
|
-
this.lastY = lastCoords.y;
|
246
|
+
this.updateLastCoords();
|
235
247
|
|
236
248
|
this.startX = this.lastX;
|
237
249
|
this.startY = this.lastY;
|
@@ -250,9 +262,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
250
262
|
this.offsetX += this.lastX - this.startX;
|
251
263
|
this.offsetY += this.lastY - this.startY;
|
252
264
|
|
253
|
-
|
254
|
-
this.lastX = lastCoords.x;
|
255
|
-
this.lastY = lastCoords.y;
|
265
|
+
this.updateLastCoords();
|
256
266
|
|
257
267
|
this.startX = this.lastX;
|
258
268
|
this.startY = this.lastY;
|
@@ -299,9 +309,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
299
309
|
this.offsetX += this.lastX - this.startX;
|
300
310
|
this.offsetY += this.lastY - this.startY;
|
301
311
|
|
302
|
-
|
303
|
-
this.lastX = lastCoords.x;
|
304
|
-
this.lastY = lastCoords.y;
|
312
|
+
this.updateLastCoords();
|
305
313
|
|
306
314
|
this.startX = this.lastX;
|
307
315
|
this.startY = this.lastY;
|
@@ -320,13 +328,8 @@ export default class PanGestureHandler extends GestureHandler {
|
|
320
328
|
this.tracker.track(event);
|
321
329
|
this.stylusData = event.stylusData;
|
322
330
|
|
323
|
-
|
324
|
-
this.
|
325
|
-
this.lastY = lastCoords.y;
|
326
|
-
|
327
|
-
const velocity = this.tracker.getVelocity(event.pointerId);
|
328
|
-
this.velocityX = velocity.x;
|
329
|
-
this.velocityY = velocity.y;
|
331
|
+
this.updateLastCoords();
|
332
|
+
this.updateVelocity(event.pointerId);
|
330
333
|
|
331
334
|
this.checkBegan();
|
332
335
|
|
@@ -341,13 +344,8 @@ export default class PanGestureHandler extends GestureHandler {
|
|
341
344
|
this.tracker.track(event);
|
342
345
|
this.stylusData = event.stylusData;
|
343
346
|
|
344
|
-
|
345
|
-
this.
|
346
|
-
this.lastY = lastCoords.y;
|
347
|
-
|
348
|
-
const velocity = this.tracker.getVelocity(event.pointerId);
|
349
|
-
this.velocityX = velocity.x;
|
350
|
-
this.velocityY = velocity.y;
|
347
|
+
this.updateLastCoords();
|
348
|
+
this.updateVelocity(event.pointerId);
|
351
349
|
|
352
350
|
this.checkBegan();
|
353
351
|
|
@@ -391,9 +389,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
391
389
|
|
392
390
|
this.tracker.addToTracker(event);
|
393
391
|
|
394
|
-
|
395
|
-
this.lastX = lastCoords.x;
|
396
|
-
this.lastY = lastCoords.y;
|
392
|
+
this.updateLastCoords();
|
397
393
|
|
398
394
|
this.startX = this.lastX;
|
399
395
|
this.startY = this.lastY;
|
@@ -403,13 +399,8 @@ export default class PanGestureHandler extends GestureHandler {
|
|
403
399
|
}
|
404
400
|
this.tracker.track(event);
|
405
401
|
|
406
|
-
|
407
|
-
this.
|
408
|
-
this.lastY = lastCoords.y;
|
409
|
-
|
410
|
-
const velocity = this.tracker.getVelocity(event.pointerId);
|
411
|
-
this.velocityX = velocity.x;
|
412
|
-
this.velocityY = velocity.y;
|
402
|
+
this.updateLastCoords();
|
403
|
+
this.updateVelocity(event.pointerId);
|
413
404
|
|
414
405
|
this.tryToSendMoveEvent(false, event);
|
415
406
|
this.scheduleWheelEnd(event);
|
@@ -540,9 +531,7 @@ export default class PanGestureHandler extends GestureHandler {
|
|
540
531
|
}, this.activateAfterLongPress);
|
541
532
|
}
|
542
533
|
} else {
|
543
|
-
|
544
|
-
this.velocityX = velocity.x;
|
545
|
-
this.velocityY = velocity.y;
|
534
|
+
this.updateVelocity(event.pointerId);
|
546
535
|
}
|
547
536
|
}
|
548
537
|
|
@@ -99,6 +99,13 @@ export default class TapGestureHandler extends GestureHandler {
|
|
99
99
|
}
|
100
100
|
}
|
101
101
|
|
102
|
+
private updateLastCoords() {
|
103
|
+
const { x, y } = this.tracker.getAbsoluteCoordsAverage();
|
104
|
+
|
105
|
+
this.lastX = x;
|
106
|
+
this.lastY = y;
|
107
|
+
}
|
108
|
+
|
102
109
|
// Handling Events
|
103
110
|
protected onPointerDown(event: AdaptedEvent): void {
|
104
111
|
if (!this.isButtonInConfig(event.button)) {
|
@@ -129,12 +136,10 @@ export default class TapGestureHandler extends GestureHandler {
|
|
129
136
|
this.offsetX += this.lastX - this.startX;
|
130
137
|
this.offsetY += this.lastY - this.startY;
|
131
138
|
|
132
|
-
|
133
|
-
this.lastX = lastCoords.x;
|
134
|
-
this.lastY = lastCoords.y;
|
139
|
+
this.updateLastCoords();
|
135
140
|
|
136
|
-
this.startX =
|
137
|
-
this.startY =
|
141
|
+
this.startX = this.lastX;
|
142
|
+
this.startY = this.lastY;
|
138
143
|
|
139
144
|
this.updateState(event);
|
140
145
|
}
|
@@ -142,9 +147,7 @@ export default class TapGestureHandler extends GestureHandler {
|
|
142
147
|
protected onPointerUp(event: AdaptedEvent): void {
|
143
148
|
super.onPointerUp(event);
|
144
149
|
|
145
|
-
|
146
|
-
this.lastX = lastCoords.x;
|
147
|
-
this.lastY = lastCoords.y;
|
150
|
+
this.updateLastCoords();
|
148
151
|
|
149
152
|
this.tracker.removeFromTracker(event.pointerId);
|
150
153
|
|
@@ -158,9 +161,7 @@ export default class TapGestureHandler extends GestureHandler {
|
|
158
161
|
this.offsetX += this.lastX - this.startX;
|
159
162
|
this.offsetY += this.lastY = this.startY;
|
160
163
|
|
161
|
-
|
162
|
-
this.lastX = lastCoords.x;
|
163
|
-
this.lastY = lastCoords.y;
|
164
|
+
this.updateLastCoords();
|
164
165
|
|
165
166
|
this.startX = this.lastX;
|
166
167
|
this.startY = this.lastY;
|
@@ -172,10 +173,7 @@ export default class TapGestureHandler extends GestureHandler {
|
|
172
173
|
this.trySettingPosition(event);
|
173
174
|
this.tracker.track(event);
|
174
175
|
|
175
|
-
|
176
|
-
this.lastX = lastCoords.x;
|
177
|
-
this.lastY = lastCoords.y;
|
178
|
-
|
176
|
+
this.updateLastCoords();
|
179
177
|
this.updateState(event);
|
180
178
|
|
181
179
|
super.onPointerMove(event);
|
@@ -185,10 +183,7 @@ export default class TapGestureHandler extends GestureHandler {
|
|
185
183
|
this.trySettingPosition(event);
|
186
184
|
this.tracker.track(event);
|
187
185
|
|
188
|
-
|
189
|
-
this.lastX = lastCoords.x;
|
190
|
-
this.lastY = lastCoords.y;
|
191
|
-
|
186
|
+
this.updateLastCoords();
|
192
187
|
this.updateState(event);
|
193
188
|
|
194
189
|
super.onPointerOutOfBounds(event);
|
@@ -98,7 +98,7 @@ export default class PointerEventManager extends EventManager<HTMLElement> {
|
|
98
98
|
// pointer moves until it succeeds.
|
99
99
|
// God, I do love web development.
|
100
100
|
if (
|
101
|
-
!target
|
101
|
+
!target?.hasPointerCapture(event.pointerId) &&
|
102
102
|
!POINTER_CAPTURE_EXCLUDE_LIST.has(target.tagName)
|
103
103
|
) {
|
104
104
|
target.setPointerCapture(event.pointerId);
|
@@ -61,11 +61,9 @@ export default class PointerTracker {
|
|
61
61
|
}
|
62
62
|
|
63
63
|
public track(event: AdaptedEvent): void {
|
64
|
-
const
|
65
|
-
event.pointerId
|
66
|
-
) as TrackerElement;
|
64
|
+
const pointerData = this.trackedPointers.get(event.pointerId);
|
67
65
|
|
68
|
-
if (!
|
66
|
+
if (!pointerData) {
|
69
67
|
return;
|
70
68
|
}
|
71
69
|
|
@@ -74,13 +72,13 @@ export default class PointerTracker {
|
|
74
72
|
this.velocityTracker.add(event);
|
75
73
|
const [velocityX, velocityY] = this.velocityTracker.velocity;
|
76
74
|
|
77
|
-
|
78
|
-
|
75
|
+
pointerData.velocityX = velocityX;
|
76
|
+
pointerData.velocityY = velocityY;
|
79
77
|
|
80
|
-
|
81
|
-
|
78
|
+
pointerData.abosoluteCoords = { x: event.x, y: event.y };
|
79
|
+
pointerData.relativeCoords = { x: event.offsetX, y: event.offsetY };
|
82
80
|
|
83
|
-
this.trackedPointers.set(event.pointerId,
|
81
|
+
this.trackedPointers.set(event.pointerId, pointerData);
|
84
82
|
|
85
83
|
this.cachedAbsoluteAverages = this.getAbsoluteCoordsAverage();
|
86
84
|
this.cachedRelativeAverages = this.getRelativeCoordsAverage();
|
@@ -114,20 +112,24 @@ export default class PointerTracker {
|
|
114
112
|
}
|
115
113
|
|
116
114
|
public getVelocity(pointerId: number) {
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
115
|
+
const pointerData = this.trackedPointers.get(pointerId);
|
116
|
+
|
117
|
+
return pointerData
|
118
|
+
? {
|
119
|
+
x: pointerData.velocityX,
|
120
|
+
y: pointerData.velocityY,
|
121
|
+
}
|
122
|
+
: null;
|
121
123
|
}
|
122
124
|
|
123
125
|
public getLastAbsoluteCoords(pointerId?: number) {
|
124
126
|
return this.trackedPointers.get(pointerId ?? this.lastMovedPointerId)
|
125
|
-
?.abosoluteCoords
|
127
|
+
?.abosoluteCoords;
|
126
128
|
}
|
127
129
|
|
128
130
|
public getLastRelativeCoords(pointerId?: number) {
|
129
131
|
return this.trackedPointers.get(pointerId ?? this.lastMovedPointerId)
|
130
|
-
?.relativeCoords
|
132
|
+
?.relativeCoords;
|
131
133
|
}
|
132
134
|
|
133
135
|
// Some handlers use these methods to send average values in native event.
|
package/src/web/tools/Vector.ts
CHANGED
@@ -27,7 +27,7 @@ export default class Vector {
|
|
27
27
|
|
28
28
|
static fromVelocity(tracker: PointerTracker, pointerId: number) {
|
29
29
|
const velocity = tracker.getVelocity(pointerId);
|
30
|
-
return new Vector(velocity.x, velocity.y);
|
30
|
+
return velocity ? new Vector(velocity.x, velocity.y) : null;
|
31
31
|
}
|
32
32
|
|
33
33
|
public get magnitude() {
|