react-native-gesture-handler 2.4.1 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +4 -2
- package/RNGestureHandler.podspec +17 -5
- package/android/build.gradle +71 -15
- package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +2 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +9 -5
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +32 -6
- package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +5 -2
- package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +105 -23
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +30 -2
- package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +3 -2
- package/android/src/fabric/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +0 -8
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +74 -84
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +7 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +5 -1
- package/android/src/main/jni/CMakeLists.txt +59 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +12 -9
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +1 -0
- package/ios/Handlers/RNFlingHandler.m +43 -1
- package/ios/Handlers/{RNNativeViewHandler.m → RNNativeViewHandler.mm} +13 -1
- package/ios/Handlers/RNPanHandler.m +27 -0
- package/ios/RNGestureHandler.h +1 -0
- package/ios/RNGestureHandler.m +22 -4
- package/ios/RNGestureHandlerButtonComponentView.mm +1 -1
- package/ios/RNGestureHandlerManager.mm +10 -7
- package/ios/RNGestureHandlerModule.mm +4 -1
- package/ios/RNGestureHandlerRootViewComponentView.mm +1 -1
- package/ios/RNManualActivationRecognizer.m +10 -3
- package/ios/RNRootViewGestureRecognizer.m +12 -1
- package/lib/commonjs/EnableExperimentalWebImplementation.js +24 -0
- package/lib/commonjs/EnableExperimentalWebImplementation.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.macos.js +138 -0
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.web.js +87 -25
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNRenderer.js +16 -0
- package/lib/commonjs/RNRenderer.js.map +1 -0
- package/lib/commonjs/RNRenderer.web.js +11 -0
- package/lib/commonjs/RNRenderer.web.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +41 -12
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js +42 -9
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.js +41 -4
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.web.js +7 -2
- package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +3 -1
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +5 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +2 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PressabilityDebugView.js +14 -0
- package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -0
- package/lib/commonjs/handlers/PressabilityDebugView.web.js +12 -0
- package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -0
- package/lib/commonjs/handlers/createHandler.js +33 -12
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +150 -75
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +13 -2
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +13 -9
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/commonjs/handlers/gestures/panGesture.js +5 -0
- package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +7 -0
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/index.js +14 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils.js +6 -3
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/constants.js +3 -51
- package/lib/commonjs/web/constants.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +169 -0
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -0
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +167 -0
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +154 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/GestureHandler.js +538 -0
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +147 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +116 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/PanGestureHandler.js +451 -0
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +171 -0
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +187 -0
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/TapGestureHandler.js +296 -0
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -0
- package/lib/commonjs/web/interfaces.js +34 -0
- package/lib/commonjs/web/interfaces.js.map +1 -0
- package/lib/commonjs/web/tools/EventManager.js +169 -0
- package/lib/commonjs/web/tools/EventManager.js.map +1 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +283 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -0
- package/lib/commonjs/web/tools/InteractionManager.js +102 -0
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -0
- package/lib/commonjs/web/tools/NodeManager.js +48 -0
- package/lib/commonjs/web/tools/NodeManager.js.map +1 -0
- package/lib/commonjs/web/tools/PointerTracker.js +132 -0
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/Errors.js +0 -0
- package/lib/commonjs/{web → web_hammer}/Errors.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/GestureHandler.js +83 -42
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/NodeManager.js +0 -0
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js.map +0 -0
- package/lib/commonjs/web_hammer/constants.js +64 -0
- package/lib/commonjs/web_hammer/constants.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/utils.js +0 -0
- package/lib/commonjs/{web → web_hammer}/utils.js.map +1 -1
- package/lib/module/EnableExperimentalWebImplementation.js +15 -0
- package/lib/module/EnableExperimentalWebImplementation.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.macos.js +102 -0
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.web.js +73 -24
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNRenderer.js +4 -0
- package/lib/module/RNRenderer.js.map +1 -0
- package/lib/module/RNRenderer.web.js +4 -0
- package/lib/module/RNRenderer.web.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +41 -12
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js +43 -9
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureComponents.js +39 -4
- package/lib/module/components/GestureComponents.js.map +1 -1
- package/lib/module/components/GestureComponents.web.js +6 -2
- package/lib/module/components/GestureComponents.web.js.map +1 -1
- package/lib/module/components/Swipeable.js +3 -1
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +5 -1
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js +1 -1
- package/lib/module/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/handlers/PressabilityDebugView.js +3 -0
- package/lib/module/handlers/PressabilityDebugView.js.map +1 -0
- package/lib/module/handlers/PressabilityDebugView.web.js +5 -0
- package/lib/module/handlers/PressabilityDebugView.web.js.map +1 -0
- package/lib/module/handlers/createHandler.js +35 -14
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +147 -74
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +13 -2
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.js +13 -9
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/module/handlers/gestures/panGesture.js +5 -0
- package/lib/module/handlers/gestures/panGesture.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +7 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils.js +2 -1
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/constants.js +1 -36
- package/lib/module/web/constants.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js +159 -0
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -0
- package/lib/module/web/detectors/ScaleGestureDetector.js +156 -0
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -0
- package/lib/module/web/handlers/FlingGestureHandler.js +139 -0
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/GestureHandler.js +521 -0
- package/lib/module/web/handlers/GestureHandler.js.map +1 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js +133 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js +103 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/PanGestureHandler.js +434 -0
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/PinchGestureHandler.js +155 -0
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/RotationGestureHandler.js +171 -0
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/TapGestureHandler.js +281 -0
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -0
- package/lib/module/web/interfaces.js +26 -0
- package/lib/module/web/interfaces.js.map +1 -0
- package/lib/module/web/tools/EventManager.js +160 -0
- package/lib/module/web/tools/EventManager.js.map +1 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +270 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -0
- package/lib/module/web/tools/InteractionManager.js +93 -0
- package/lib/module/web/tools/InteractionManager.js.map +1 -0
- package/lib/module/web/tools/NodeManager.js +39 -0
- package/lib/module/web/tools/NodeManager.js.map +1 -0
- package/lib/module/web/tools/PointerTracker.js +122 -0
- package/lib/module/web/tools/PointerTracker.js.map +1 -0
- package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/DraggingGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/Errors.js +0 -0
- package/lib/module/{web → web_hammer}/Errors.js.map +0 -0
- package/lib/module/{web → web_hammer}/FlingGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/GestureHandler.js +83 -42
- package/lib/module/web_hammer/GestureHandler.js.map +1 -0
- package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/LongPressGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
- package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/{web → web_hammer}/NodeManager.js +0 -0
- package/lib/module/web_hammer/NodeManager.js.map +1 -0
- package/lib/module/{web → web_hammer}/PanGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PanGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/PinchGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/PressGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PressGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/RotationGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/TapGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/TapGestureHandler.js.map +0 -0
- package/lib/module/web_hammer/constants.js +43 -0
- package/lib/module/web_hammer/constants.js.map +1 -0
- package/lib/module/{web → web_hammer}/utils.js +0 -0
- package/lib/module/{web → web_hammer}/utils.js.map +1 -1
- package/lib/typescript/EnableExperimentalWebImplementation.d.ts +2 -0
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +44 -0
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +29 -18
- package/lib/typescript/RNRenderer.d.ts +1 -0
- package/lib/typescript/RNRenderer.web.d.ts +3 -0
- package/lib/typescript/components/DrawerLayout.d.ts +4 -1
- package/lib/typescript/components/GestureButtons.d.ts +22 -0
- package/lib/typescript/components/GestureComponents.d.ts +7 -3
- package/lib/typescript/components/GestureComponents.web.d.ts +1 -0
- package/lib/typescript/components/Swipeable.d.ts +1 -1
- package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +1 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +2 -2
- package/lib/typescript/handlers/PanGestureHandler.d.ts +2 -1
- package/lib/typescript/handlers/PressabilityDebugView.d.ts +1 -0
- package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +1 -0
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +2 -1
- package/lib/typescript/handlers/gestures/gesture.d.ts +3 -0
- package/lib/typescript/handlers/gestures/panGesture.d.ts +1 -0
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/web/constants.d.ts +1 -33
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +30 -0
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +30 -0
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +31 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +84 -0
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +33 -0
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +16 -0
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +68 -0
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +30 -0
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +30 -0
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +49 -0
- package/lib/typescript/web/interfaces.d.ts +97 -0
- package/lib/typescript/web/tools/EventManager.d.ts +28 -0
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +28 -0
- package/lib/typescript/web/tools/InteractionManager.d.ts +13 -0
- package/lib/typescript/web/tools/NodeManager.d.ts +11 -0
- package/lib/typescript/web/tools/PointerTracker.d.ts +28 -0
- package/lib/typescript/{web → web_hammer}/DiscreteGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/DraggingGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/Errors.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/GestureHandler.d.ts +6 -0
- package/lib/typescript/{web → web_hammer}/IndiscreteGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/LongPressGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/NodeManager.d.ts +8 -0
- package/lib/typescript/{web → web_hammer}/PanGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/PinchGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/PressGestureHandler.d.ts +2 -0
- package/lib/typescript/{web → web_hammer}/RotationGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/TapGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/constants.d.ts +39 -0
- package/lib/typescript/{web → web_hammer}/utils.d.ts +0 -0
- package/package.json +1 -1
- package/src/EnableExperimentalWebImplementation.ts +18 -0
- package/src/RNGestureHandlerModule.macos.ts +114 -0
- package/src/RNGestureHandlerModule.web.ts +89 -26
- package/src/RNRenderer.ts +3 -0
- package/src/RNRenderer.web.ts +3 -0
- package/src/components/DrawerLayout.tsx +37 -14
- package/src/components/GestureButtons.tsx +64 -0
- package/src/components/GestureComponents.tsx +66 -6
- package/src/components/GestureComponents.web.tsx +5 -0
- package/src/components/Swipeable.tsx +3 -1
- package/src/components/touchables/GenericTouchable.tsx +2 -0
- package/src/fabric/RNGestureHandlerButtonNativeComponent.ts +1 -0
- package/src/handlers/ForceTouchGestureHandler.ts +3 -2
- package/src/handlers/PanGestureHandler.ts +2 -0
- package/src/handlers/PressabilityDebugView.tsx +2 -0
- package/src/handlers/PressabilityDebugView.web.tsx +4 -0
- package/src/handlers/{createHandler.ts → createHandler.tsx} +45 -19
- package/src/handlers/gestureHandlerCommon.ts +2 -0
- package/src/handlers/gestures/GestureDetector.tsx +185 -93
- package/src/handlers/gestures/gesture.ts +16 -0
- package/src/handlers/gestures/gestureStateManager.ts +13 -8
- package/src/handlers/gestures/panGesture.ts +5 -0
- package/src/handlers/gestures/reanimatedWrapper.ts +7 -0
- package/src/index.ts +3 -0
- package/src/utils.ts +3 -1
- package/src/web/constants.ts +1 -41
- package/src/web/detectors/RotationGestureDetector.ts +199 -0
- package/src/web/detectors/ScaleGestureDetector.ts +208 -0
- package/src/web/handlers/FlingGestureHandler.ts +146 -0
- package/src/web/handlers/GestureHandler.ts +572 -0
- package/src/web/handlers/LongPressGestureHandler.ts +122 -0
- package/src/web/handlers/NativeViewGestureHandler.ts +109 -0
- package/src/web/handlers/PanGestureHandler.ts +488 -0
- package/src/web/handlers/PinchGestureHandler.ts +162 -0
- package/src/web/handlers/RotationGestureHandler.ts +181 -0
- package/src/web/handlers/TapGestureHandler.ts +275 -0
- package/src/web/interfaces.ts +114 -0
- package/src/web/tools/EventManager.ts +186 -0
- package/src/web/tools/GestureHandlerOrchestrator.ts +329 -0
- package/src/web/tools/InteractionManager.ts +108 -0
- package/src/web/tools/NodeManager.ts +43 -0
- package/src/web/tools/PointerTracker.ts +130 -0
- package/src/{web → web_hammer}/DiscreteGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/DraggingGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/Errors.ts +0 -0
- package/src/{web → web_hammer}/FlingGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/GestureHandler.ts +102 -55
- package/src/{web → web_hammer}/IndiscreteGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/LongPressGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/NativeViewGestureHandler.ts +4 -0
- package/src/{web → web_hammer}/NodeManager.ts +6 -3
- package/src/{web → web_hammer}/PanGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/PinchGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/PressGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/RotationGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/TapGestureHandler.ts +0 -0
- package/src/web_hammer/constants.ts +48 -0
- package/src/{web → web_hammer}/utils.ts +1 -1
- package/android/src/main/jni/Android.mk +0 -53
- package/android/src/main/jni/OnLoad.cpp +0 -9
- package/android/src/main/jni/RNGestureHandlerComponentsRegistry.cpp +0 -71
- package/android/src/main/jni/RNGestureHandlerComponentsRegistry.h +0 -34
- package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +0 -19
- package/lib/commonjs/web/GestureHandler.js.map +0 -1
- package/lib/commonjs/web/NativeViewGestureHandler.js.map +0 -1
- package/lib/commonjs/web/NodeManager.js.map +0 -1
- package/lib/module/web/GestureHandler.js.map +0 -1
- package/lib/module/web/NativeViewGestureHandler.js.map +0 -1
- package/lib/module/web/NodeManager.js.map +0 -1
- package/lib/typescript/web/NodeManager.d.ts +0 -8
@@ -0,0 +1,434 @@
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
2
|
+
|
3
|
+
import { PixelRatio } from 'react-native';
|
4
|
+
import { State } from '../../State';
|
5
|
+
import { DEFAULT_TOUCH_SLOP } from '../constants';
|
6
|
+
import GestureHandler from './GestureHandler';
|
7
|
+
const DEFAULT_MIN_POINTERS = 1;
|
8
|
+
const DEFAULT_MAX_POINTERS = 10;
|
9
|
+
const DEFAULT_MIN_DIST_SQ = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;
|
10
|
+
export default class PanGestureHandler extends GestureHandler {
|
11
|
+
constructor(...args) {
|
12
|
+
super(...args);
|
13
|
+
|
14
|
+
_defineProperty(this, "customActivationProperties", ['activeOffsetXStart', 'activeOffsetXEnd', 'failOffsetXStart', 'failOffsetXEnd', 'activeOffsetYStart', 'activeOffsetYEnd', 'failOffsetYStart', 'failOffsetYEnd', 'minVelocityX', 'minVelocityY']);
|
15
|
+
|
16
|
+
_defineProperty(this, "velocityX", 0);
|
17
|
+
|
18
|
+
_defineProperty(this, "velocityY", 0);
|
19
|
+
|
20
|
+
_defineProperty(this, "minDistSq", DEFAULT_MIN_DIST_SQ);
|
21
|
+
|
22
|
+
_defineProperty(this, "activeOffsetXStart", -Number.MAX_SAFE_INTEGER);
|
23
|
+
|
24
|
+
_defineProperty(this, "activeOffsetXEnd", Number.MIN_SAFE_INTEGER);
|
25
|
+
|
26
|
+
_defineProperty(this, "failOffsetXStart", Number.MIN_SAFE_INTEGER);
|
27
|
+
|
28
|
+
_defineProperty(this, "failOffsetXEnd", Number.MAX_SAFE_INTEGER);
|
29
|
+
|
30
|
+
_defineProperty(this, "activeOffsetYStart", Number.MAX_SAFE_INTEGER);
|
31
|
+
|
32
|
+
_defineProperty(this, "activeOffsetYEnd", Number.MIN_SAFE_INTEGER);
|
33
|
+
|
34
|
+
_defineProperty(this, "failOffsetYStart", Number.MIN_SAFE_INTEGER);
|
35
|
+
|
36
|
+
_defineProperty(this, "failOffsetYEnd", Number.MAX_SAFE_INTEGER);
|
37
|
+
|
38
|
+
_defineProperty(this, "minVelocityX", Number.MAX_SAFE_INTEGER);
|
39
|
+
|
40
|
+
_defineProperty(this, "minVelocityY", Number.MAX_SAFE_INTEGER);
|
41
|
+
|
42
|
+
_defineProperty(this, "minVelocitySq", Number.MAX_SAFE_INTEGER);
|
43
|
+
|
44
|
+
_defineProperty(this, "minPointers", 1);
|
45
|
+
|
46
|
+
_defineProperty(this, "maxPointers", 10);
|
47
|
+
|
48
|
+
_defineProperty(this, "startX", 0);
|
49
|
+
|
50
|
+
_defineProperty(this, "startY", 0);
|
51
|
+
|
52
|
+
_defineProperty(this, "offsetX", 0);
|
53
|
+
|
54
|
+
_defineProperty(this, "offsetY", 0);
|
55
|
+
|
56
|
+
_defineProperty(this, "lastX", 0);
|
57
|
+
|
58
|
+
_defineProperty(this, "lastY", 0);
|
59
|
+
|
60
|
+
_defineProperty(this, "activateAfterLongPress", 0);
|
61
|
+
}
|
62
|
+
|
63
|
+
init(ref, propsRef) {
|
64
|
+
super.init(ref, propsRef);
|
65
|
+
}
|
66
|
+
|
67
|
+
updateGestureConfig({
|
68
|
+
enabled = true,
|
69
|
+
...props
|
70
|
+
}) {
|
71
|
+
this.resetConfig();
|
72
|
+
super.updateGestureConfig({
|
73
|
+
enabled: enabled,
|
74
|
+
...props
|
75
|
+
});
|
76
|
+
this.checkCustomActivationCriteria(this.customActivationProperties);
|
77
|
+
this.enabled = enabled;
|
78
|
+
|
79
|
+
if (this.config.minDist !== undefined) {
|
80
|
+
this.minDistSq = this.config.minDist * this.config.minDist;
|
81
|
+
} else if (this.hasCustomActivationCriteria) {
|
82
|
+
this.minDistSq = Number.MAX_SAFE_INTEGER;
|
83
|
+
}
|
84
|
+
|
85
|
+
if (this.config.minPointers !== undefined) {
|
86
|
+
this.minPointers = this.config.minPointers;
|
87
|
+
}
|
88
|
+
|
89
|
+
if (this.config.maxPointers !== undefined) {
|
90
|
+
this.maxPointers = this.config.maxPointers;
|
91
|
+
}
|
92
|
+
|
93
|
+
if (this.config.minVelocity !== undefined) {
|
94
|
+
this.minVelocityX = this.config.minVelocity;
|
95
|
+
this.minVelocityY = this.config.minVelocity;
|
96
|
+
}
|
97
|
+
|
98
|
+
if (this.config.minVelocityX !== undefined) {
|
99
|
+
this.minVelocityX = this.config.minVelocityX;
|
100
|
+
}
|
101
|
+
|
102
|
+
if (this.config.minVelocityY !== undefined) {
|
103
|
+
this.minVelocityY = this.config.minVelocityY;
|
104
|
+
}
|
105
|
+
|
106
|
+
if (this.config.shouldCancelWhenOutside) {
|
107
|
+
this.setShouldCancelWhenOutside(false);
|
108
|
+
}
|
109
|
+
|
110
|
+
if (this.config.activeOffsetXStart !== undefined) {
|
111
|
+
this.activeOffsetXStart = this.config.activeOffsetXStart;
|
112
|
+
|
113
|
+
if (this.config.activeOffsetXEnd === undefined) {
|
114
|
+
this.activeOffsetXEnd = Number.MAX_SAFE_INTEGER;
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
if (this.config.activeOffsetXEnd !== undefined) {
|
119
|
+
this.activeOffsetXEnd = this.config.activeOffsetXEnd;
|
120
|
+
|
121
|
+
if (this.config.activeOffsetXStart === undefined) {
|
122
|
+
this.activeOffsetXStart = Number.MIN_SAFE_INTEGER;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
if (this.config.failOffsetXStart !== undefined) {
|
127
|
+
this.failOffsetXStart = this.config.failOffsetXStart;
|
128
|
+
|
129
|
+
if (this.config.failOffsetXEnd === undefined) {
|
130
|
+
this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;
|
131
|
+
}
|
132
|
+
}
|
133
|
+
|
134
|
+
if (this.config.failOffsetXEnd !== undefined) {
|
135
|
+
this.failOffsetXEnd = this.config.failOffsetXEnd;
|
136
|
+
|
137
|
+
if (this.config.failOffsetXStart === undefined) {
|
138
|
+
this.failOffsetXStart = Number.MIN_SAFE_INTEGER;
|
139
|
+
}
|
140
|
+
}
|
141
|
+
|
142
|
+
if (this.config.activeOffsetYStart !== undefined) {
|
143
|
+
this.activeOffsetYStart = this.config.activeOffsetYStart;
|
144
|
+
|
145
|
+
if (this.config.activeOffsetYEnd === undefined) {
|
146
|
+
this.activeOffsetYEnd = Number.MAX_SAFE_INTEGER;
|
147
|
+
}
|
148
|
+
}
|
149
|
+
|
150
|
+
if (this.config.activeOffsetYEnd !== undefined) {
|
151
|
+
this.activeOffsetYEnd = this.config.activeOffsetYEnd;
|
152
|
+
|
153
|
+
if (this.config.activeOffsetYStart === undefined) {
|
154
|
+
this.activeOffsetYStart = Number.MIN_SAFE_INTEGER;
|
155
|
+
}
|
156
|
+
}
|
157
|
+
|
158
|
+
if (this.config.failOffsetYStart !== undefined) {
|
159
|
+
this.failOffsetYStart = this.config.failOffsetYStart;
|
160
|
+
|
161
|
+
if (this.config.failOffsetYEnd === undefined) {
|
162
|
+
this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;
|
163
|
+
}
|
164
|
+
}
|
165
|
+
|
166
|
+
if (this.config.failOffsetYEnd !== undefined) {
|
167
|
+
this.failOffsetYEnd = this.config.failOffsetYEnd;
|
168
|
+
|
169
|
+
if (this.config.failOffsetYStart === undefined) {
|
170
|
+
this.failOffsetYStart = Number.MIN_SAFE_INTEGER;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
resetConfig() {
|
176
|
+
super.resetConfig();
|
177
|
+
this.activeOffsetXStart = -Number.MAX_SAFE_INTEGER;
|
178
|
+
this.activeOffsetXEnd = Number.MIN_SAFE_INTEGER;
|
179
|
+
this.failOffsetXStart = Number.MIN_SAFE_INTEGER;
|
180
|
+
this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;
|
181
|
+
this.activeOffsetYStart = Number.MAX_SAFE_INTEGER;
|
182
|
+
this.activeOffsetYEnd = Number.MIN_SAFE_INTEGER;
|
183
|
+
this.failOffsetYStart = Number.MIN_SAFE_INTEGER;
|
184
|
+
this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;
|
185
|
+
this.minVelocityX = Number.MAX_SAFE_INTEGER;
|
186
|
+
this.minVelocityY = Number.MAX_SAFE_INTEGER;
|
187
|
+
this.minVelocitySq = Number.MAX_SAFE_INTEGER;
|
188
|
+
this.minDistSq = DEFAULT_MIN_DIST_SQ;
|
189
|
+
this.minPointers = DEFAULT_MIN_POINTERS;
|
190
|
+
this.maxPointers = DEFAULT_MAX_POINTERS;
|
191
|
+
this.activateAfterLongPress = 0;
|
192
|
+
}
|
193
|
+
|
194
|
+
transformNativeEvent(event) {
|
195
|
+
if (!this.view) {
|
196
|
+
return {};
|
197
|
+
}
|
198
|
+
|
199
|
+
const ratio = PixelRatio.get();
|
200
|
+
return {
|
201
|
+
translationX: this.getTranslationX(),
|
202
|
+
translationY: this.getTranslationY(),
|
203
|
+
absoluteX: event.x,
|
204
|
+
absoluteY: event.y,
|
205
|
+
velocityX: this.velocityX * ratio * 10,
|
206
|
+
velocityY: this.velocityY * ratio * 10,
|
207
|
+
x: event.offsetX,
|
208
|
+
y: event.offsetY
|
209
|
+
};
|
210
|
+
}
|
211
|
+
|
212
|
+
getTranslationX() {
|
213
|
+
return this.lastX - this.startX + this.offsetX;
|
214
|
+
}
|
215
|
+
|
216
|
+
getTranslationY() {
|
217
|
+
return this.lastY - this.startY + this.offsetY;
|
218
|
+
} //EventsHandling
|
219
|
+
|
220
|
+
|
221
|
+
onPointerDown(event) {
|
222
|
+
super.onPointerDown(event);
|
223
|
+
this.tracker.addToTracker(event);
|
224
|
+
|
225
|
+
if (this.tracker.getTrackedPointersCount() > 1) {
|
226
|
+
this.onPointerAdd(event);
|
227
|
+
return;
|
228
|
+
}
|
229
|
+
|
230
|
+
this.lastX = this.tracker.getLastAvgX();
|
231
|
+
this.lastY = this.tracker.getLastAvgY();
|
232
|
+
this.tryBegin(event);
|
233
|
+
this.checkBegan(event);
|
234
|
+
}
|
235
|
+
|
236
|
+
onPointerAdd(event) {
|
237
|
+
this.tryBegin(event);
|
238
|
+
this.offsetX += this.lastX - this.startX;
|
239
|
+
this.offsetY += this.lastY - this.startY;
|
240
|
+
this.lastX = this.tracker.getLastAvgX();
|
241
|
+
this.lastY = this.tracker.getLastAvgY();
|
242
|
+
this.startX = this.lastX;
|
243
|
+
this.startY = this.lastY;
|
244
|
+
|
245
|
+
if (this.tracker.getTrackedPointersCount() > this.maxPointers) {
|
246
|
+
if (this.currentState === State.ACTIVE) {
|
247
|
+
this.cancel(event);
|
248
|
+
} else {
|
249
|
+
this.fail(event);
|
250
|
+
}
|
251
|
+
} else {
|
252
|
+
this.checkBegan(event);
|
253
|
+
}
|
254
|
+
}
|
255
|
+
|
256
|
+
onPointerUp(event) {
|
257
|
+
super.onPointerUp(event);
|
258
|
+
|
259
|
+
if (this.tracker.getTrackedPointersCount() > 1) {
|
260
|
+
this.tracker.removeFromTracker(event.pointerId);
|
261
|
+
this.onPointerRemove(event);
|
262
|
+
return;
|
263
|
+
}
|
264
|
+
|
265
|
+
if (this.currentState === State.ACTIVE) {
|
266
|
+
this.lastX = this.tracker.getLastAvgX();
|
267
|
+
this.lastY = this.tracker.getLastAvgY();
|
268
|
+
}
|
269
|
+
|
270
|
+
this.tracker.removeFromTracker(event.pointerId);
|
271
|
+
|
272
|
+
if (this.currentState === State.ACTIVE) {
|
273
|
+
this.end(event);
|
274
|
+
} else {
|
275
|
+
this.resetProgress();
|
276
|
+
this.fail(event);
|
277
|
+
}
|
278
|
+
}
|
279
|
+
|
280
|
+
onPointerRemove(event) {
|
281
|
+
this.offsetX += this.lastX - this.startX;
|
282
|
+
this.offsetY += this.lastY - this.startY;
|
283
|
+
this.lastX = this.tracker.getLastAvgX();
|
284
|
+
this.lastY = this.tracker.getLastAvgY();
|
285
|
+
this.startX = this.lastX;
|
286
|
+
this.startY = this.lastY;
|
287
|
+
|
288
|
+
if (!(this.currentState === State.ACTIVE && this.tracker.getTrackedPointersCount() < this.minPointers)) {
|
289
|
+
this.checkBegan(event);
|
290
|
+
}
|
291
|
+
}
|
292
|
+
|
293
|
+
onPointerMove(event) {
|
294
|
+
this.tracker.track(event);
|
295
|
+
this.lastX = this.tracker.getLastAvgX();
|
296
|
+
this.lastY = this.tracker.getLastAvgY();
|
297
|
+
this.velocityX = this.tracker.getVelocityX(event.pointerId);
|
298
|
+
this.velocityY = this.tracker.getVelocityY(event.pointerId);
|
299
|
+
this.checkBegan(event);
|
300
|
+
super.onPointerMove(event);
|
301
|
+
}
|
302
|
+
|
303
|
+
onPointerCancel(event) {
|
304
|
+
super.onPointerCancel(event);
|
305
|
+
this.reset();
|
306
|
+
}
|
307
|
+
|
308
|
+
onPointerOutOfBounds(event) {
|
309
|
+
if (this.getShouldCancelWhenOutside()) {
|
310
|
+
return;
|
311
|
+
}
|
312
|
+
|
313
|
+
this.tracker.track(event);
|
314
|
+
this.lastX = this.tracker.getLastAvgX();
|
315
|
+
this.lastY = this.tracker.getLastAvgY();
|
316
|
+
this.velocityX = this.tracker.getVelocityX(event.pointerId);
|
317
|
+
this.velocityY = this.tracker.getVelocityY(event.pointerId);
|
318
|
+
this.checkBegan(event);
|
319
|
+
|
320
|
+
if (this.currentState === State.ACTIVE) {
|
321
|
+
super.onPointerOutOfBounds(event);
|
322
|
+
}
|
323
|
+
}
|
324
|
+
|
325
|
+
shouldActivate() {
|
326
|
+
const dx = this.getTranslationX();
|
327
|
+
|
328
|
+
if (this.activeOffsetXStart !== Number.MAX_SAFE_INTEGER && dx < this.activeOffsetXStart) {
|
329
|
+
return true;
|
330
|
+
}
|
331
|
+
|
332
|
+
if (this.activeOffsetXEnd !== Number.MIN_SAFE_INTEGER && dx > this.activeOffsetXEnd) {
|
333
|
+
return true;
|
334
|
+
}
|
335
|
+
|
336
|
+
const dy = this.getTranslationY();
|
337
|
+
|
338
|
+
if (this.activeOffsetYStart !== Number.MAX_SAFE_INTEGER && dy < this.activeOffsetYStart) {
|
339
|
+
return true;
|
340
|
+
}
|
341
|
+
|
342
|
+
if (this.activeOffsetYEnd !== Number.MIN_SAFE_INTEGER && dy > this.activeOffsetYEnd) {
|
343
|
+
return true;
|
344
|
+
}
|
345
|
+
|
346
|
+
const distanceSq = dx * dx + dy * dy;
|
347
|
+
|
348
|
+
if (this.minDistSq !== Number.MAX_SAFE_INTEGER && distanceSq >= this.minDistSq) {
|
349
|
+
return true;
|
350
|
+
}
|
351
|
+
|
352
|
+
const vx = this.velocityX;
|
353
|
+
|
354
|
+
if (this.minVelocityX !== Number.MAX_SAFE_INTEGER && (this.minVelocityX < 0 && vx <= this.minVelocityX || this.minVelocityX >= 0 && this.minVelocityX <= vx)) {
|
355
|
+
return true;
|
356
|
+
}
|
357
|
+
|
358
|
+
const vy = this.velocityY;
|
359
|
+
|
360
|
+
if (this.minVelocityY !== Number.MAX_SAFE_INTEGER && (this.minVelocityY < 0 && vy <= this.minVelocityY || this.minVelocityY >= 0 && this.minVelocityY <= vy)) {
|
361
|
+
return true;
|
362
|
+
}
|
363
|
+
|
364
|
+
const velocitySq = vx * vx + vy * vy;
|
365
|
+
return this.minVelocitySq !== Number.MAX_SAFE_INTEGER && velocitySq >= this.minVelocitySq;
|
366
|
+
}
|
367
|
+
|
368
|
+
shouldFail() {
|
369
|
+
const dx = this.getTranslationX();
|
370
|
+
const dy = this.getTranslationY();
|
371
|
+
const distanceSq = dx * dx + dy * dy;
|
372
|
+
|
373
|
+
if (this.activateAfterLongPress > 0 && distanceSq > DEFAULT_MIN_DIST_SQ) {
|
374
|
+
return true;
|
375
|
+
}
|
376
|
+
|
377
|
+
if (this.failOffsetXStart !== Number.MIN_SAFE_INTEGER && dx < this.failOffsetXStart) {
|
378
|
+
return true;
|
379
|
+
}
|
380
|
+
|
381
|
+
if (this.failOffsetXEnd !== Number.MAX_SAFE_INTEGER && dx > this.failOffsetXEnd) {
|
382
|
+
return true;
|
383
|
+
}
|
384
|
+
|
385
|
+
if (this.failOffsetYStart !== Number.MIN_SAFE_INTEGER && dy < this.failOffsetYStart) {
|
386
|
+
return true;
|
387
|
+
}
|
388
|
+
|
389
|
+
return this.failOffsetYEnd !== Number.MAX_SAFE_INTEGER && dy > this.failOffsetYEnd;
|
390
|
+
}
|
391
|
+
|
392
|
+
tryBegin(event) {
|
393
|
+
if (this.currentState === State.UNDETERMINED && this.tracker.getTrackedPointersCount() >= this.minPointers) {
|
394
|
+
this.resetProgress();
|
395
|
+
this.offsetX = 0;
|
396
|
+
this.offsetY = 0;
|
397
|
+
this.velocityX = 0;
|
398
|
+
this.velocityY = 0;
|
399
|
+
this.begin(event); //Long press
|
400
|
+
} else {
|
401
|
+
this.velocityX = this.tracker.getVelocityX(event.pointerId);
|
402
|
+
this.velocityY = this.tracker.getVelocityY(event.pointerId);
|
403
|
+
}
|
404
|
+
}
|
405
|
+
|
406
|
+
checkBegan(event) {
|
407
|
+
if (this.currentState === State.BEGAN) {
|
408
|
+
if (this.shouldFail()) {
|
409
|
+
this.fail(event);
|
410
|
+
} else if (this.shouldActivate()) {
|
411
|
+
this.activate(event);
|
412
|
+
}
|
413
|
+
}
|
414
|
+
}
|
415
|
+
|
416
|
+
activate(event, force = false) {
|
417
|
+
if (this.currentState !== State.ACTIVE) {
|
418
|
+
this.resetProgress();
|
419
|
+
}
|
420
|
+
|
421
|
+
super.activate(event, force);
|
422
|
+
}
|
423
|
+
|
424
|
+
resetProgress() {
|
425
|
+
if (this.currentState === State.ACTIVE) {
|
426
|
+
return;
|
427
|
+
}
|
428
|
+
|
429
|
+
this.startX = this.lastX;
|
430
|
+
this.startY = this.lastY;
|
431
|
+
}
|
432
|
+
|
433
|
+
}
|
434
|
+
//# sourceMappingURL=PanGestureHandler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["PanGestureHandler.ts"],"names":["PixelRatio","State","DEFAULT_TOUCH_SLOP","GestureHandler","DEFAULT_MIN_POINTERS","DEFAULT_MAX_POINTERS","DEFAULT_MIN_DIST_SQ","PanGestureHandler","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","init","ref","propsRef","updateGestureConfig","enabled","props","resetConfig","checkCustomActivationCriteria","customActivationProperties","config","minDist","undefined","minDistSq","hasCustomActivationCriteria","minPointers","maxPointers","minVelocity","minVelocityX","minVelocityY","shouldCancelWhenOutside","setShouldCancelWhenOutside","activeOffsetXStart","activeOffsetXEnd","failOffsetXStart","failOffsetXEnd","activeOffsetYStart","activeOffsetYEnd","failOffsetYStart","failOffsetYEnd","minVelocitySq","activateAfterLongPress","transformNativeEvent","event","view","ratio","get","translationX","getTranslationX","translationY","getTranslationY","absoluteX","x","absoluteY","y","velocityX","velocityY","offsetX","offsetY","lastX","startX","lastY","startY","onPointerDown","tracker","addToTracker","getTrackedPointersCount","onPointerAdd","getLastAvgX","getLastAvgY","tryBegin","checkBegan","currentState","ACTIVE","cancel","fail","onPointerUp","removeFromTracker","pointerId","onPointerRemove","end","resetProgress","onPointerMove","track","getVelocityX","getVelocityY","onPointerCancel","reset","onPointerOutOfBounds","getShouldCancelWhenOutside","shouldActivate","dx","dy","distanceSq","vx","vy","velocitySq","shouldFail","UNDETERMINED","begin","BEGAN","activate","force"],"mappings":"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","sourcesContent":["import { PixelRatio } from 'react-native';\nimport { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedPointerEvent } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\n\nconst DEFAULT_MIN_POINTERS = 1;\nconst DEFAULT_MAX_POINTERS = 10;\nconst DEFAULT_MIN_DIST_SQ = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;\n\nexport default class PanGestureHandler extends GestureHandler {\n private readonly customActivationProperties: string[] = [\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'minVelocityX',\n 'minVelocityY',\n ];\n\n public velocityX = 0;\n public velocityY = 0;\n\n private minDistSq = DEFAULT_MIN_DIST_SQ;\n\n private activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n private activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n private failOffsetXStart = Number.MIN_SAFE_INTEGER;\n private failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n\n private activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n private activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n private failOffsetYStart = Number.MIN_SAFE_INTEGER;\n private failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n\n private minVelocityX = Number.MAX_SAFE_INTEGER;\n private minVelocityY = Number.MAX_SAFE_INTEGER;\n private minVelocitySq = Number.MAX_SAFE_INTEGER;\n\n private minPointers = 1;\n private maxPointers = 10;\n\n private startX = 0;\n private startY = 0;\n private offsetX = 0;\n private offsetY = 0;\n private lastX = 0;\n private lastY = 0;\n\n // TODO: Implement logic required for activateAfterLongPress\n private activateAfterLongPress = 0;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n }\n\n public updateGestureConfig({ enabled = true, ...props }): void {\n this.resetConfig();\n\n super.updateGestureConfig({ enabled: enabled, ...props });\n this.checkCustomActivationCriteria(this.customActivationProperties);\n\n this.enabled = enabled;\n\n if (this.config.minDist !== undefined) {\n this.minDistSq = this.config.minDist * this.config.minDist;\n } else if (this.hasCustomActivationCriteria) {\n this.minDistSq = Number.MAX_SAFE_INTEGER;\n }\n\n if (this.config.minPointers !== undefined) {\n this.minPointers = this.config.minPointers;\n }\n\n if (this.config.maxPointers !== undefined) {\n this.maxPointers = this.config.maxPointers;\n }\n\n if (this.config.minVelocity !== undefined) {\n this.minVelocityX = this.config.minVelocity;\n this.minVelocityY = this.config.minVelocity;\n }\n\n if (this.config.minVelocityX !== undefined) {\n this.minVelocityX = this.config.minVelocityX;\n }\n\n if (this.config.minVelocityY !== undefined) {\n this.minVelocityY = this.config.minVelocityY;\n }\n\n if (this.config.shouldCancelWhenOutside) {\n this.setShouldCancelWhenOutside(false);\n }\n\n if (this.config.activeOffsetXStart !== undefined) {\n this.activeOffsetXStart = this.config.activeOffsetXStart;\n\n if (this.config.activeOffsetXEnd === undefined) {\n this.activeOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetXEnd !== undefined) {\n this.activeOffsetXEnd = this.config.activeOffsetXEnd;\n\n if (this.config.activeOffsetXStart === undefined) {\n this.activeOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXStart !== undefined) {\n this.failOffsetXStart = this.config.failOffsetXStart;\n\n if (this.config.failOffsetXEnd === undefined) {\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXEnd !== undefined) {\n this.failOffsetXEnd = this.config.failOffsetXEnd;\n\n if (this.config.failOffsetXStart === undefined) {\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYStart !== undefined) {\n this.activeOffsetYStart = this.config.activeOffsetYStart;\n\n if (this.config.activeOffsetYEnd === undefined) {\n this.activeOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYEnd !== undefined) {\n this.activeOffsetYEnd = this.config.activeOffsetYEnd;\n\n if (this.config.activeOffsetYStart === undefined) {\n this.activeOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYStart !== undefined) {\n this.failOffsetYStart = this.config.failOffsetYStart;\n\n if (this.config.failOffsetYEnd === undefined) {\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYEnd !== undefined) {\n this.failOffsetYEnd = this.config.failOffsetYEnd;\n\n if (this.config.failOffsetYStart === undefined) {\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n\n this.activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n this.activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n\n this.activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n this.activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n\n this.minVelocityX = Number.MAX_SAFE_INTEGER;\n this.minVelocityY = Number.MAX_SAFE_INTEGER;\n this.minVelocitySq = Number.MAX_SAFE_INTEGER;\n\n this.minDistSq = DEFAULT_MIN_DIST_SQ;\n\n this.minPointers = DEFAULT_MIN_POINTERS;\n this.maxPointers = DEFAULT_MAX_POINTERS;\n\n this.activateAfterLongPress = 0;\n }\n\n protected transformNativeEvent(event: AdaptedPointerEvent) {\n if (!this.view) {\n return {};\n }\n\n const ratio = PixelRatio.get();\n\n return {\n translationX: this.getTranslationX(),\n translationY: this.getTranslationY(),\n absoluteX: event.x,\n absoluteY: event.y,\n velocityX: this.velocityX * ratio * 10,\n velocityY: this.velocityY * ratio * 10,\n x: event.offsetX,\n y: event.offsetY,\n };\n }\n\n private getTranslationX(): number {\n return this.lastX - this.startX + this.offsetX;\n }\n private getTranslationY(): number {\n return this.lastY - this.startY + this.offsetY;\n }\n\n //EventsHandling\n protected onPointerDown(event: AdaptedPointerEvent): void {\n super.onPointerDown(event);\n this.tracker.addToTracker(event);\n\n if (this.tracker.getTrackedPointersCount() > 1) {\n this.onPointerAdd(event);\n return;\n }\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.tryBegin(event);\n this.checkBegan(event);\n }\n protected onPointerAdd(event: AdaptedPointerEvent): void {\n this.tryBegin(event);\n\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (this.tracker.getTrackedPointersCount() > this.maxPointers) {\n if (this.currentState === State.ACTIVE) {\n this.cancel(event);\n } else {\n this.fail(event);\n }\n } else {\n this.checkBegan(event);\n }\n }\n\n protected onPointerUp(event: AdaptedPointerEvent): void {\n super.onPointerUp(event);\n\n if (this.tracker.getTrackedPointersCount() > 1) {\n this.tracker.removeFromTracker(event.pointerId);\n\n this.onPointerRemove(event);\n return;\n }\n\n if (this.currentState === State.ACTIVE) {\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.currentState === State.ACTIVE) {\n this.end(event);\n } else {\n this.resetProgress();\n this.fail(event);\n }\n }\n protected onPointerRemove(event: AdaptedPointerEvent): void {\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (\n !(\n this.currentState === State.ACTIVE &&\n this.tracker.getTrackedPointersCount() < this.minPointers\n )\n ) {\n this.checkBegan(event);\n }\n }\n\n protected onPointerMove(event: AdaptedPointerEvent): void {\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n\n this.checkBegan(event);\n\n super.onPointerMove(event);\n }\n\n protected onPointerCancel(event: AdaptedPointerEvent): void {\n super.onPointerCancel(event);\n\n this.reset();\n }\n protected onPointerOutOfBounds(event: AdaptedPointerEvent): void {\n if (this.getShouldCancelWhenOutside()) {\n return;\n }\n\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n\n this.checkBegan(event);\n\n if (this.currentState === State.ACTIVE) {\n super.onPointerOutOfBounds(event);\n }\n }\n\n private shouldActivate(): boolean {\n const dx: number = this.getTranslationX();\n\n if (\n this.activeOffsetXStart !== Number.MAX_SAFE_INTEGER &&\n dx < this.activeOffsetXStart\n ) {\n return true;\n }\n\n if (\n this.activeOffsetXEnd !== Number.MIN_SAFE_INTEGER &&\n dx > this.activeOffsetXEnd\n ) {\n return true;\n }\n\n const dy: number = this.getTranslationY();\n\n if (\n this.activeOffsetYStart !== Number.MAX_SAFE_INTEGER &&\n dy < this.activeOffsetYStart\n ) {\n return true;\n }\n\n if (\n this.activeOffsetYEnd !== Number.MIN_SAFE_INTEGER &&\n dy > this.activeOffsetYEnd\n ) {\n return true;\n }\n\n const distanceSq: number = dx * dx + dy * dy;\n\n if (\n this.minDistSq !== Number.MAX_SAFE_INTEGER &&\n distanceSq >= this.minDistSq\n ) {\n return true;\n }\n\n const vx: number = this.velocityX;\n\n if (\n this.minVelocityX !== Number.MAX_SAFE_INTEGER &&\n ((this.minVelocityX < 0 && vx <= this.minVelocityX) ||\n (this.minVelocityX >= 0 && this.minVelocityX <= vx))\n ) {\n return true;\n }\n\n const vy: number = this.velocityY;\n if (\n this.minVelocityY !== Number.MAX_SAFE_INTEGER &&\n ((this.minVelocityY < 0 && vy <= this.minVelocityY) ||\n (this.minVelocityY >= 0 && this.minVelocityY <= vy))\n ) {\n return true;\n }\n\n const velocitySq: number = vx * vx + vy * vy;\n\n return (\n this.minVelocitySq !== Number.MAX_SAFE_INTEGER &&\n velocitySq >= this.minVelocitySq\n );\n }\n\n private shouldFail(): boolean {\n const dx: number = this.getTranslationX();\n const dy: number = this.getTranslationY();\n const distanceSq = dx * dx + dy * dy;\n\n if (this.activateAfterLongPress > 0 && distanceSq > DEFAULT_MIN_DIST_SQ) {\n return true;\n }\n\n if (\n this.failOffsetXStart !== Number.MIN_SAFE_INTEGER &&\n dx < this.failOffsetXStart\n ) {\n return true;\n }\n\n if (\n this.failOffsetXEnd !== Number.MAX_SAFE_INTEGER &&\n dx > this.failOffsetXEnd\n ) {\n return true;\n }\n\n if (\n this.failOffsetYStart !== Number.MIN_SAFE_INTEGER &&\n dy < this.failOffsetYStart\n ) {\n return true;\n }\n\n return (\n this.failOffsetYEnd !== Number.MAX_SAFE_INTEGER &&\n dy > this.failOffsetYEnd\n );\n }\n\n private tryBegin(event: AdaptedPointerEvent): void {\n if (\n this.currentState === State.UNDETERMINED &&\n this.tracker.getTrackedPointersCount() >= this.minPointers\n ) {\n this.resetProgress();\n this.offsetX = 0;\n this.offsetY = 0;\n this.velocityX = 0;\n this.velocityY = 0;\n\n this.begin(event);\n\n //Long press\n } else {\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n }\n }\n\n private checkBegan(event: AdaptedPointerEvent): void {\n if (this.currentState === State.BEGAN) {\n if (this.shouldFail()) {\n this.fail(event);\n } else if (this.shouldActivate()) {\n this.activate(event);\n }\n }\n }\n\n protected activate(event: AdaptedPointerEvent, force = false): void {\n if (this.currentState !== State.ACTIVE) {\n this.resetProgress();\n }\n\n super.activate(event, force);\n }\n\n protected resetProgress(): void {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n }\n}\n"]}
|
@@ -0,0 +1,155 @@
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
2
|
+
|
3
|
+
import { State } from '../../State';
|
4
|
+
import { DEFAULT_TOUCH_SLOP } from '../constants';
|
5
|
+
import { EventTypes } from '../interfaces';
|
6
|
+
import GestureHandler from './GestureHandler';
|
7
|
+
import ScaleGestureDetector from '../detectors/ScaleGestureDetector';
|
8
|
+
export default class PinchGestureHandler extends GestureHandler {
|
9
|
+
constructor(...args) {
|
10
|
+
super(...args);
|
11
|
+
|
12
|
+
_defineProperty(this, "scale", 1);
|
13
|
+
|
14
|
+
_defineProperty(this, "velocity", 0);
|
15
|
+
|
16
|
+
_defineProperty(this, "startingSpan", 0);
|
17
|
+
|
18
|
+
_defineProperty(this, "spanSlop", 0);
|
19
|
+
|
20
|
+
_defineProperty(this, "scaleDetectorListener", {
|
21
|
+
onScaleBegin: detector => {
|
22
|
+
this.startingSpan = detector.getCurrentSpan();
|
23
|
+
return true;
|
24
|
+
},
|
25
|
+
onScale: (detector, event) => {
|
26
|
+
const prevScaleFactor = this.scale;
|
27
|
+
this.scale *= detector.getScaleFactor(this.tracker.getTrackedPointersCount());
|
28
|
+
const delta = detector.getTimeDelta();
|
29
|
+
|
30
|
+
if (delta > 0) {
|
31
|
+
this.velocity = (this.scale - prevScaleFactor) / delta;
|
32
|
+
}
|
33
|
+
|
34
|
+
if (Math.abs(this.startingSpan - detector.getCurrentSpan()) >= this.spanSlop && this.currentState === State.BEGAN) {
|
35
|
+
this.activate(event);
|
36
|
+
}
|
37
|
+
|
38
|
+
return true;
|
39
|
+
},
|
40
|
+
onScaleEnd: (_detector, _event) => {}
|
41
|
+
});
|
42
|
+
|
43
|
+
_defineProperty(this, "scaleGestureDetector", new ScaleGestureDetector(this.scaleDetectorListener));
|
44
|
+
}
|
45
|
+
|
46
|
+
init(ref, propsRef) {
|
47
|
+
super.init(ref, propsRef);
|
48
|
+
this.setShouldCancelWhenOutside(false);
|
49
|
+
this.spanSlop = DEFAULT_TOUCH_SLOP;
|
50
|
+
}
|
51
|
+
|
52
|
+
updateGestureConfig({
|
53
|
+
enabled = true,
|
54
|
+
...props
|
55
|
+
}) {
|
56
|
+
super.updateGestureConfig({
|
57
|
+
enabled: enabled,
|
58
|
+
...props
|
59
|
+
});
|
60
|
+
this.enabled = enabled;
|
61
|
+
}
|
62
|
+
|
63
|
+
transformNativeEvent(_event) {
|
64
|
+
return {
|
65
|
+
focalX: this.scaleGestureDetector.getFocusX(),
|
66
|
+
focalY: this.scaleGestureDetector.getFocusY(),
|
67
|
+
velocity: this.velocity,
|
68
|
+
scale: this.scale
|
69
|
+
};
|
70
|
+
}
|
71
|
+
|
72
|
+
onPointerDown(event) {
|
73
|
+
super.onPointerDown(event);
|
74
|
+
this.tracker.addToTracker(event);
|
75
|
+
|
76
|
+
if (this.tracker.getTrackedPointersCount() < 2) {
|
77
|
+
return;
|
78
|
+
}
|
79
|
+
|
80
|
+
if (this.tracker.getTrackedPointersCount() > 1) {
|
81
|
+
this.tryBegin(event);
|
82
|
+
this.scaleGestureDetector.onTouchEvent(event, this.tracker);
|
83
|
+
}
|
84
|
+
}
|
85
|
+
|
86
|
+
onPointerUp(event) {
|
87
|
+
if (this.tracker.getTrackedPointersCount() > 1) {
|
88
|
+
this.scaleGestureDetector.onTouchEvent(event, this.tracker);
|
89
|
+
this.tracker.removeFromTracker(event.pointerId);
|
90
|
+
} else {
|
91
|
+
this.tracker.removeFromTracker(event.pointerId);
|
92
|
+
|
93
|
+
if (this.currentState !== State.ACTIVE) {
|
94
|
+
return;
|
95
|
+
}
|
96
|
+
|
97
|
+
this.scaleGestureDetector.onTouchEvent(event, this.tracker);
|
98
|
+
}
|
99
|
+
|
100
|
+
if (this.currentState === State.ACTIVE && this.tracker.getTrackedPointersCount() < 2) {
|
101
|
+
this.end(event);
|
102
|
+
} else if (event.eventType === EventTypes.UP && this.currentState !== State.BEGAN) {
|
103
|
+
this.fail(event);
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
107
|
+
onPointerMove(event) {
|
108
|
+
if (this.tracker.getTrackedPointersCount() < 2) {
|
109
|
+
return;
|
110
|
+
}
|
111
|
+
|
112
|
+
this.tracker.track(event);
|
113
|
+
this.scaleGestureDetector.onTouchEvent(event, this.tracker);
|
114
|
+
super.onPointerMove(event);
|
115
|
+
}
|
116
|
+
|
117
|
+
onPointerOutOfBounds(_event) {//
|
118
|
+
}
|
119
|
+
|
120
|
+
onPointerCancel(_event) {
|
121
|
+
this.reset();
|
122
|
+
}
|
123
|
+
|
124
|
+
tryBegin(event) {
|
125
|
+
if (this.currentState !== State.UNDETERMINED) {
|
126
|
+
return;
|
127
|
+
}
|
128
|
+
|
129
|
+
this.resetProgress();
|
130
|
+
this.begin(event);
|
131
|
+
}
|
132
|
+
|
133
|
+
activate(event, force) {
|
134
|
+
if (this.currentState !== State.ACTIVE) {
|
135
|
+
this.resetProgress();
|
136
|
+
}
|
137
|
+
|
138
|
+
super.activate(event, force);
|
139
|
+
}
|
140
|
+
|
141
|
+
onReset() {
|
142
|
+
this.resetProgress();
|
143
|
+
}
|
144
|
+
|
145
|
+
resetProgress() {
|
146
|
+
if (this.currentState === State.ACTIVE) {
|
147
|
+
return;
|
148
|
+
}
|
149
|
+
|
150
|
+
this.velocity = 0;
|
151
|
+
this.scale = 1;
|
152
|
+
}
|
153
|
+
|
154
|
+
}
|
155
|
+
//# sourceMappingURL=PinchGestureHandler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["PinchGestureHandler.ts"],"names":["State","DEFAULT_TOUCH_SLOP","EventTypes","GestureHandler","ScaleGestureDetector","PinchGestureHandler","onScaleBegin","detector","startingSpan","getCurrentSpan","onScale","event","prevScaleFactor","scale","getScaleFactor","tracker","getTrackedPointersCount","delta","getTimeDelta","velocity","Math","abs","spanSlop","currentState","BEGAN","activate","onScaleEnd","_detector","_event","scaleDetectorListener","init","ref","propsRef","setShouldCancelWhenOutside","updateGestureConfig","enabled","props","transformNativeEvent","focalX","scaleGestureDetector","getFocusX","focalY","getFocusY","onPointerDown","addToTracker","tryBegin","onTouchEvent","onPointerUp","removeFromTracker","pointerId","ACTIVE","end","eventType","UP","fail","onPointerMove","track","onPointerOutOfBounds","onPointerCancel","reset","UNDETERMINED","resetProgress","begin","force","onReset"],"mappings":";;AAAA,SAASA,KAAT,QAAsB,aAAtB;AACA,SAASC,kBAAT,QAAmC,cAAnC;AACA,SAA8BC,UAA9B,QAAgD,eAAhD;AAEA,OAAOC,cAAP,MAA2B,kBAA3B;AACA,OAAOC,oBAAP,MAEO,mCAFP;AAIA,eAAe,MAAMC,mBAAN,SAAkCF,cAAlC,CAAiD;AAAA;AAAA;;AAAA,mCAC9C,CAD8C;;AAAA,sCAE3C,CAF2C;;AAAA,0CAIvC,CAJuC;;AAAA,sCAK3C,CAL2C;;AAAA,mDAOR;AACpDG,MAAAA,YAAY,EAAGC,QAAD,IAA6C;AACzD,aAAKC,YAAL,GAAoBD,QAAQ,CAACE,cAAT,EAApB;AACA,eAAO,IAAP;AACD,OAJmD;AAKpDC,MAAAA,OAAO,EAAE,CACPH,QADO,EAEPI,KAFO,KAGK;AACZ,cAAMC,eAAuB,GAAG,KAAKC,KAArC;AACA,aAAKA,KAAL,IAAcN,QAAQ,CAACO,cAAT,CACZ,KAAKC,OAAL,CAAaC,uBAAb,EADY,CAAd;AAIA,cAAMC,KAAK,GAAGV,QAAQ,CAACW,YAAT,EAAd;;AACA,YAAID,KAAK,GAAG,CAAZ,EAAe;AACb,eAAKE,QAAL,GAAgB,CAAC,KAAKN,KAAL,GAAaD,eAAd,IAAiCK,KAAjD;AACD;;AAED,YACEG,IAAI,CAACC,GAAL,CAAS,KAAKb,YAAL,GAAoBD,QAAQ,CAACE,cAAT,EAA7B,KACE,KAAKa,QADP,IAEA,KAAKC,YAAL,KAAsBvB,KAAK,CAACwB,KAH9B,EAIE;AACA,eAAKC,QAAL,CAAcd,KAAd;AACD;;AACD,eAAO,IAAP;AACD,OA3BmD;AA4BpDe,MAAAA,UAAU,EAAE,CACVC,SADU,EAEVC,MAFU,KAID,CAAE;AAhCuC,KAPQ;;AAAA,kDA0CT,IAAIxB,oBAAJ,CACnD,KAAKyB,qBAD8C,CA1CS;AAAA;;AA8CvDC,EAAAA,IAAI,CAACC,GAAD,EAAcC,QAAd,EAAkD;AAC3D,UAAMF,IAAN,CAAWC,GAAX,EAAgBC,QAAhB;AAEA,SAAKC,0BAAL,CAAgC,KAAhC;AACA,SAAKX,QAAL,GAAgBrB,kBAAhB;AACD;;AAEMiC,EAAAA,mBAAmB,CAAC;AAAEC,IAAAA,OAAO,GAAG,IAAZ;AAAkB,OAAGC;AAArB,GAAD,EAAqC;AAC7D,UAAMF,mBAAN,CAA0B;AAAEC,MAAAA,OAAO,EAAEA,OAAX;AAAoB,SAAGC;AAAvB,KAA1B;AAEA,SAAKD,OAAL,GAAeA,OAAf;AACD;;AAESE,EAAAA,oBAAoB,CAACT,MAAD,EAA8B;AAC1D,WAAO;AACLU,MAAAA,MAAM,EAAE,KAAKC,oBAAL,CAA0BC,SAA1B,EADH;AAELC,MAAAA,MAAM,EAAE,KAAKF,oBAAL,CAA0BG,SAA1B,EAFH;AAGLvB,MAAAA,QAAQ,EAAE,KAAKA,QAHV;AAILN,MAAAA,KAAK,EAAE,KAAKA;AAJP,KAAP;AAMD;;AAES8B,EAAAA,aAAa,CAAChC,KAAD,EAAmC;AACxD,UAAMgC,aAAN,CAAoBhC,KAApB;AAEA,SAAKI,OAAL,CAAa6B,YAAb,CAA0BjC,KAA1B;;AAEA,QAAI,KAAKI,OAAL,CAAaC,uBAAb,KAAyC,CAA7C,EAAgD;AAC9C;AACD;;AAED,QAAI,KAAKD,OAAL,CAAaC,uBAAb,KAAyC,CAA7C,EAAgD;AAC9C,WAAK6B,QAAL,CAAclC,KAAd;AACA,WAAK4B,oBAAL,CAA0BO,YAA1B,CAAuCnC,KAAvC,EAA8C,KAAKI,OAAnD;AACD;AACF;;AACSgC,EAAAA,WAAW,CAACpC,KAAD,EAAmC;AACtD,QAAI,KAAKI,OAAL,CAAaC,uBAAb,KAAyC,CAA7C,EAAgD;AAC9C,WAAKuB,oBAAL,CAA0BO,YAA1B,CAAuCnC,KAAvC,EAA8C,KAAKI,OAAnD;AACA,WAAKA,OAAL,CAAaiC,iBAAb,CAA+BrC,KAAK,CAACsC,SAArC;AACD,KAHD,MAGO;AACL,WAAKlC,OAAL,CAAaiC,iBAAb,CAA+BrC,KAAK,CAACsC,SAArC;;AACA,UAAI,KAAK1B,YAAL,KAAsBvB,KAAK,CAACkD,MAAhC,EAAwC;AACtC;AACD;;AACD,WAAKX,oBAAL,CAA0BO,YAA1B,CAAuCnC,KAAvC,EAA8C,KAAKI,OAAnD;AACD;;AACD,QACE,KAAKQ,YAAL,KAAsBvB,KAAK,CAACkD,MAA5B,IACA,KAAKnC,OAAL,CAAaC,uBAAb,KAAyC,CAF3C,EAGE;AACA,WAAKmC,GAAL,CAASxC,KAAT;AACD,KALD,MAKO,IACLA,KAAK,CAACyC,SAAN,KAAoBlD,UAAU,CAACmD,EAA/B,IACA,KAAK9B,YAAL,KAAsBvB,KAAK,CAACwB,KAFvB,EAGL;AACA,WAAK8B,IAAL,CAAU3C,KAAV;AACD;AACF;;AACS4C,EAAAA,aAAa,CAAC5C,KAAD,EAAmC;AACxD,QAAI,KAAKI,OAAL,CAAaC,uBAAb,KAAyC,CAA7C,EAAgD;AAC9C;AACD;;AACD,SAAKD,OAAL,CAAayC,KAAb,CAAmB7C,KAAnB;AAEA,SAAK4B,oBAAL,CAA0BO,YAA1B,CAAuCnC,KAAvC,EAA8C,KAAKI,OAAnD;AACA,UAAMwC,aAAN,CAAoB5C,KAApB;AACD;;AACS8C,EAAAA,oBAAoB,CAAC7B,MAAD,EAAoC,CAChE;AACD;;AAES8B,EAAAA,eAAe,CAAC9B,MAAD,EAAoC;AAC3D,SAAK+B,KAAL;AACD;;AAEOd,EAAAA,QAAQ,CAAClC,KAAD,EAAmC;AACjD,QAAI,KAAKY,YAAL,KAAsBvB,KAAK,CAAC4D,YAAhC,EAA8C;AAC5C;AACD;;AAED,SAAKC,aAAL;AAEA,SAAKC,KAAL,CAAWnD,KAAX;AACD;;AAESc,EAAAA,QAAQ,CAACd,KAAD,EAA6BoD,KAA7B,EAAoD;AACpE,QAAI,KAAKxC,YAAL,KAAsBvB,KAAK,CAACkD,MAAhC,EAAwC;AACtC,WAAKW,aAAL;AACD;;AAED,UAAMpC,QAAN,CAAed,KAAf,EAAsBoD,KAAtB;AACD;;AAESC,EAAAA,OAAO,GAAS;AACxB,SAAKH,aAAL;AACD;;AAESA,EAAAA,aAAa,GAAS;AAC9B,QAAI,KAAKtC,YAAL,KAAsBvB,KAAK,CAACkD,MAAhC,EAAwC;AACtC;AACD;;AAED,SAAK/B,QAAL,GAAgB,CAAhB;AACA,SAAKN,KAAL,GAAa,CAAb;AACD;;AAvJ6D","sourcesContent":["import { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedPointerEvent, EventTypes } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nimport ScaleGestureDetector, {\n ScaleGestureListener,\n} from '../detectors/ScaleGestureDetector';\n\nexport default class PinchGestureHandler extends GestureHandler {\n private scale = 1;\n private velocity = 0;\n\n private startingSpan = 0;\n private spanSlop = 0;\n\n private scaleDetectorListener: ScaleGestureListener = {\n onScaleBegin: (detector: ScaleGestureDetector): boolean => {\n this.startingSpan = detector.getCurrentSpan();\n return true;\n },\n onScale: (\n detector: ScaleGestureDetector,\n event: AdaptedPointerEvent\n ): boolean => {\n const prevScaleFactor: number = this.scale;\n this.scale *= detector.getScaleFactor(\n this.tracker.getTrackedPointersCount()\n );\n\n const delta = detector.getTimeDelta();\n if (delta > 0) {\n this.velocity = (this.scale - prevScaleFactor) / delta;\n }\n\n if (\n Math.abs(this.startingSpan - detector.getCurrentSpan()) >=\n this.spanSlop &&\n this.currentState === State.BEGAN\n ) {\n this.activate(event);\n }\n return true;\n },\n onScaleEnd: (\n _detector: ScaleGestureDetector,\n _event: AdaptedPointerEvent\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ): void => {},\n };\n\n private scaleGestureDetector: ScaleGestureDetector = new ScaleGestureDetector(\n this.scaleDetectorListener\n );\n\n public init(ref: number, propsRef: React.RefObject<unknown>) {\n super.init(ref, propsRef);\n\n this.setShouldCancelWhenOutside(false);\n this.spanSlop = DEFAULT_TOUCH_SLOP;\n }\n\n public updateGestureConfig({ enabled = true, ...props }): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n this.enabled = enabled;\n }\n\n protected transformNativeEvent(_event: AdaptedPointerEvent) {\n return {\n focalX: this.scaleGestureDetector.getFocusX(),\n focalY: this.scaleGestureDetector.getFocusY(),\n velocity: this.velocity,\n scale: this.scale,\n };\n }\n\n protected onPointerDown(event: AdaptedPointerEvent): void {\n super.onPointerDown(event);\n\n this.tracker.addToTracker(event);\n\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n\n if (this.tracker.getTrackedPointersCount() > 1) {\n this.tryBegin(event);\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n }\n }\n protected onPointerUp(event: AdaptedPointerEvent): void {\n if (this.tracker.getTrackedPointersCount() > 1) {\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n this.tracker.removeFromTracker(event.pointerId);\n } else {\n this.tracker.removeFromTracker(event.pointerId);\n if (this.currentState !== State.ACTIVE) {\n return;\n }\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n }\n if (\n this.currentState === State.ACTIVE &&\n this.tracker.getTrackedPointersCount() < 2\n ) {\n this.end(event);\n } else if (\n event.eventType === EventTypes.UP &&\n this.currentState !== State.BEGAN\n ) {\n this.fail(event);\n }\n }\n protected onPointerMove(event: AdaptedPointerEvent): void {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n this.tracker.track(event);\n\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n super.onPointerMove(event);\n }\n protected onPointerOutOfBounds(_event: AdaptedPointerEvent): void {\n //\n }\n\n protected onPointerCancel(_event: AdaptedPointerEvent): void {\n this.reset();\n }\n\n private tryBegin(event: AdaptedPointerEvent): void {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.resetProgress();\n\n this.begin(event);\n }\n\n protected activate(event: AdaptedPointerEvent, force?: boolean): void {\n if (this.currentState !== State.ACTIVE) {\n this.resetProgress();\n }\n\n super.activate(event, force);\n }\n\n protected onReset(): void {\n this.resetProgress();\n }\n\n protected resetProgress(): void {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.velocity = 0;\n this.scale = 1;\n }\n}\n"]}
|