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,30 @@
|
|
1
|
+
import { AdaptedPointerEvent } from '../interfaces';
|
2
|
+
import GestureHandler from './GestureHandler';
|
3
|
+
export default class PinchGestureHandler extends GestureHandler {
|
4
|
+
private scale;
|
5
|
+
private velocity;
|
6
|
+
private startingSpan;
|
7
|
+
private spanSlop;
|
8
|
+
private scaleDetectorListener;
|
9
|
+
private scaleGestureDetector;
|
10
|
+
init(ref: number, propsRef: React.RefObject<unknown>): void;
|
11
|
+
updateGestureConfig({ enabled, ...props }: {
|
12
|
+
[x: string]: any;
|
13
|
+
enabled?: boolean | undefined;
|
14
|
+
}): void;
|
15
|
+
protected transformNativeEvent(_event: AdaptedPointerEvent): {
|
16
|
+
focalX: number;
|
17
|
+
focalY: number;
|
18
|
+
velocity: number;
|
19
|
+
scale: number;
|
20
|
+
};
|
21
|
+
protected onPointerDown(event: AdaptedPointerEvent): void;
|
22
|
+
protected onPointerUp(event: AdaptedPointerEvent): void;
|
23
|
+
protected onPointerMove(event: AdaptedPointerEvent): void;
|
24
|
+
protected onPointerOutOfBounds(_event: AdaptedPointerEvent): void;
|
25
|
+
protected onPointerCancel(_event: AdaptedPointerEvent): void;
|
26
|
+
private tryBegin;
|
27
|
+
protected activate(event: AdaptedPointerEvent, force?: boolean): void;
|
28
|
+
protected onReset(): void;
|
29
|
+
protected resetProgress(): void;
|
30
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { AdaptedPointerEvent } from '../interfaces';
|
2
|
+
import GestureHandler from './GestureHandler';
|
3
|
+
export default class RotationGestureHandler extends GestureHandler {
|
4
|
+
private rotation;
|
5
|
+
private velocity;
|
6
|
+
private cachedAnchorX;
|
7
|
+
private cachedAnchorY;
|
8
|
+
private rotationGestureListener;
|
9
|
+
private rotationGestureDetector;
|
10
|
+
init(ref: number, propsRef: React.RefObject<unknown>): void;
|
11
|
+
updateGestureConfig({ enabled, ...props }: {
|
12
|
+
[x: string]: any;
|
13
|
+
enabled?: boolean | undefined;
|
14
|
+
}): void;
|
15
|
+
protected transformNativeEvent(_event: AdaptedPointerEvent): {
|
16
|
+
rotation: number;
|
17
|
+
anchorX: number;
|
18
|
+
anchorY: number;
|
19
|
+
velocity: number;
|
20
|
+
};
|
21
|
+
getAnchorX(): number;
|
22
|
+
getAnchorY(): number;
|
23
|
+
protected onPointerDown(event: AdaptedPointerEvent): void;
|
24
|
+
protected onPointerMove(event: AdaptedPointerEvent): void;
|
25
|
+
protected onPointerUp(event: AdaptedPointerEvent): void;
|
26
|
+
protected onPointerCancel(event: AdaptedPointerEvent): void;
|
27
|
+
protected tryBegin(event: AdaptedPointerEvent): void;
|
28
|
+
protected activate(event: AdaptedPointerEvent, _force?: boolean): void;
|
29
|
+
protected onReset(): void;
|
30
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
import { AdaptedPointerEvent } from '../interfaces';
|
2
|
+
import GestureHandler from './GestureHandler';
|
3
|
+
export default class TapGestureHandler extends GestureHandler {
|
4
|
+
private maxDeltaX;
|
5
|
+
private maxDeltaY;
|
6
|
+
private maxDistSq;
|
7
|
+
private maxDurationMs;
|
8
|
+
private maxDelayMs;
|
9
|
+
private numberOfTaps;
|
10
|
+
private minNumberOfPointers;
|
11
|
+
private currentMaxNumberOfPointers;
|
12
|
+
private startX;
|
13
|
+
private startY;
|
14
|
+
private offsetX;
|
15
|
+
private offsetY;
|
16
|
+
private lastX;
|
17
|
+
private lastY;
|
18
|
+
private waitTimeout;
|
19
|
+
private delayTimeout;
|
20
|
+
private tapsSoFar;
|
21
|
+
init(ref: number, propsRef: React.RefObject<unknown>): void;
|
22
|
+
updateGestureConfig({ enabled, ...props }: {
|
23
|
+
[x: string]: any;
|
24
|
+
enabled?: boolean | undefined;
|
25
|
+
}): void;
|
26
|
+
protected resetConfig(): void;
|
27
|
+
protected transformNativeEvent(event: AdaptedPointerEvent): {
|
28
|
+
x: number;
|
29
|
+
y: number;
|
30
|
+
absoluteX: number;
|
31
|
+
absoluteY: number;
|
32
|
+
};
|
33
|
+
private clearTimeouts;
|
34
|
+
private startTap;
|
35
|
+
private endTap;
|
36
|
+
protected onPointerDown(event: AdaptedPointerEvent): void;
|
37
|
+
protected onPointerAdd(_event: AdaptedPointerEvent): void;
|
38
|
+
protected onPointerUp(event: AdaptedPointerEvent): void;
|
39
|
+
protected onPointerRemove(_event: AdaptedPointerEvent): void;
|
40
|
+
protected onPointerMove(event: AdaptedPointerEvent): void;
|
41
|
+
protected onPointerOutOfBounds(event: AdaptedPointerEvent): void;
|
42
|
+
protected onPointerCancel(event: AdaptedPointerEvent): void;
|
43
|
+
private updateState;
|
44
|
+
private trySettingPosition;
|
45
|
+
private shouldFail;
|
46
|
+
protected activate(event: AdaptedPointerEvent): void;
|
47
|
+
protected onCancel(): void;
|
48
|
+
protected resetProgress(): void;
|
49
|
+
}
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import { Directions } from '../Directions';
|
2
|
+
import { State } from '../State';
|
3
|
+
export interface HitSlop {
|
4
|
+
left?: number;
|
5
|
+
right?: number;
|
6
|
+
top?: number;
|
7
|
+
bottom?: number;
|
8
|
+
horizontal?: number;
|
9
|
+
vertical?: number;
|
10
|
+
width?: number;
|
11
|
+
height?: number;
|
12
|
+
}
|
13
|
+
export interface Handler {
|
14
|
+
handlerTag: number;
|
15
|
+
}
|
16
|
+
declare type ConfigArgs = number | boolean | HitSlop | Directions | Handler[] | null | undefined;
|
17
|
+
export interface Config extends Record<string, ConfigArgs> {
|
18
|
+
enabled?: boolean;
|
19
|
+
simultaneousHandlers?: Handler[] | null;
|
20
|
+
waitFor?: Handler[] | null;
|
21
|
+
hitSlop?: HitSlop;
|
22
|
+
minPointers?: number;
|
23
|
+
maxPointers?: number;
|
24
|
+
minDist?: number;
|
25
|
+
minDistSq?: number;
|
26
|
+
minVelocity?: number;
|
27
|
+
minVelocityX?: number;
|
28
|
+
minVelocityY?: number;
|
29
|
+
minVelocitySq?: number;
|
30
|
+
maxDist?: number;
|
31
|
+
maxDistSq?: number;
|
32
|
+
failOffsetXStart?: number;
|
33
|
+
failOffsetYStart?: number;
|
34
|
+
failOffsetXEnd?: number;
|
35
|
+
failOffsetYEnd?: number;
|
36
|
+
activeOffsetXStart?: number;
|
37
|
+
activeOffsetXEnd?: number;
|
38
|
+
activeOffsetYStart?: number;
|
39
|
+
activeOffsetYEnd?: number;
|
40
|
+
numberOfPointers?: number;
|
41
|
+
minDurationMs?: number;
|
42
|
+
numberOfTaps?: number;
|
43
|
+
maxDurationMs?: number;
|
44
|
+
maxDelayMs?: number;
|
45
|
+
maxDeltaX?: number;
|
46
|
+
maxDeltaY?: number;
|
47
|
+
direction?: Directions;
|
48
|
+
}
|
49
|
+
declare type NativeEventArgs = number | State | boolean | undefined;
|
50
|
+
interface NativeEvent extends Record<string, NativeEventArgs> {
|
51
|
+
numberOfPointers: number;
|
52
|
+
state: State;
|
53
|
+
pointerInside: boolean | undefined;
|
54
|
+
handlerTag: number;
|
55
|
+
target: number;
|
56
|
+
oldState?: State;
|
57
|
+
}
|
58
|
+
export interface ResultEvent extends Record<string, NativeEvent | number> {
|
59
|
+
nativeEvent: NativeEvent;
|
60
|
+
timeStamp: number;
|
61
|
+
}
|
62
|
+
export interface PropsRef {
|
63
|
+
onGestureHandlerEvent: () => void;
|
64
|
+
onGestureHandlerStateChange: () => void;
|
65
|
+
}
|
66
|
+
export interface AdaptedPointerEvent {
|
67
|
+
x: number;
|
68
|
+
y: number;
|
69
|
+
offsetX: number;
|
70
|
+
offsetY: number;
|
71
|
+
pointerId: number;
|
72
|
+
eventType: EventTypes;
|
73
|
+
pointerType: string;
|
74
|
+
buttons: number;
|
75
|
+
time: number;
|
76
|
+
}
|
77
|
+
export declare enum MouseButtons {
|
78
|
+
NONE = 0,
|
79
|
+
LEFT = 1,
|
80
|
+
RIGHT = 2,
|
81
|
+
LEFT_RIGHT = 3,
|
82
|
+
SCROLL = 4,
|
83
|
+
SCROLL_LEFT = 5,
|
84
|
+
SCROLL_RIGHT = 6,
|
85
|
+
SCROLL_LEFT_RIGHT = 7
|
86
|
+
}
|
87
|
+
export declare enum EventTypes {
|
88
|
+
DOWN = 0,
|
89
|
+
ADDITIONAL_POINTER_DOWN = 1,
|
90
|
+
UP = 2,
|
91
|
+
ADDITIONAL_POINTER_UP = 3,
|
92
|
+
MOVE = 4,
|
93
|
+
ENTER = 5,
|
94
|
+
OUT = 6,
|
95
|
+
CANCEL = 7
|
96
|
+
}
|
97
|
+
export {};
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { AdaptedPointerEvent } from '../interfaces';
|
2
|
+
export default class EventManager {
|
3
|
+
private activePointers;
|
4
|
+
private readonly view;
|
5
|
+
constructor(view: HTMLElement);
|
6
|
+
setListeners(): void;
|
7
|
+
private onPointerDown;
|
8
|
+
private onPointerUp;
|
9
|
+
private onPointerMove;
|
10
|
+
private onPointerOut;
|
11
|
+
private onPointerEnter;
|
12
|
+
private onPointerCancel;
|
13
|
+
private onPointerOutOfBounds;
|
14
|
+
setOnPointerDown(callback: (event: AdaptedPointerEvent) => void): void;
|
15
|
+
setOnPointerUp(callback: (event: AdaptedPointerEvent) => void): void;
|
16
|
+
setOnPointerMove(callback: (event: AdaptedPointerEvent) => void): void;
|
17
|
+
setOnPointerOut(callback: (event: AdaptedPointerEvent) => void): void;
|
18
|
+
setOnPointerEnter(callback: (event: AdaptedPointerEvent) => void): void;
|
19
|
+
setOnPointerCancel(callback: (event: AdaptedPointerEvent) => void): void;
|
20
|
+
setOnPointerOutOfBounds(callback: (event: AdaptedPointerEvent) => void): void;
|
21
|
+
private mapEvent;
|
22
|
+
isPointerInBounds({ x, y }: {
|
23
|
+
x: number;
|
24
|
+
y: number;
|
25
|
+
}): boolean;
|
26
|
+
private addActivePointer;
|
27
|
+
private removeActivePointer;
|
28
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { State } from '../../State';
|
2
|
+
import { AdaptedPointerEvent } from '../interfaces';
|
3
|
+
import GestureHandler from '../handlers/GestureHandler';
|
4
|
+
export default class GestureHandlerOrchestrator {
|
5
|
+
private static instance;
|
6
|
+
private gestureHandlers;
|
7
|
+
private awaitingHandlers;
|
8
|
+
private handlersToCancel;
|
9
|
+
private handlingChangeSemaphore;
|
10
|
+
private activationIndex;
|
11
|
+
private constructor();
|
12
|
+
private scheduleFinishedHandlersCleanup;
|
13
|
+
private cleanHandler;
|
14
|
+
private cleanupFinishedHandlers;
|
15
|
+
private hasOtherHandlerToWaitFor;
|
16
|
+
private tryActivate;
|
17
|
+
private cleanupAwaitingHandlers;
|
18
|
+
onHandlerStateChange(handler: GestureHandler, newState: State, oldState: State, event: AdaptedPointerEvent): void;
|
19
|
+
private makeActive;
|
20
|
+
private addAwaitingHandler;
|
21
|
+
recordHandlerIfNotPresent(handler: GestureHandler): void;
|
22
|
+
private shouldHandlerWaitForOther;
|
23
|
+
private canRunSimultaneously;
|
24
|
+
private shouldHandlerBeCancelledBy;
|
25
|
+
private checkOverlap;
|
26
|
+
private isFinished;
|
27
|
+
static getInstance(): GestureHandlerOrchestrator;
|
28
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import GestureHandler from '../handlers/GestureHandler';
|
2
|
+
import { Config } from '../interfaces';
|
3
|
+
export default class InteractionManager {
|
4
|
+
private readonly waitForRelations;
|
5
|
+
private readonly simultaneousRelations;
|
6
|
+
configureInteractions(handler: GestureHandler, config: Config): void;
|
7
|
+
shouldWaitForHandlerFailure(handler: GestureHandler, otherHandler: GestureHandler): boolean;
|
8
|
+
shouldRecognizeSimultaneously(handler: GestureHandler, otherHandler: GestureHandler): boolean;
|
9
|
+
shouldRequireHandlerToWaitForFailure(_handler: GestureHandler, _otherHandler: GestureHandler): boolean;
|
10
|
+
shouldHandlerBeCancelledBy(_handler: GestureHandler, _otherHandler: GestureHandler): boolean;
|
11
|
+
dropRelationsForHandlerWithTag(handlerTag: number): void;
|
12
|
+
reset(): void;
|
13
|
+
}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { ValueOf } from '../../typeUtils';
|
2
|
+
import { Gestures } from '../../RNGestureHandlerModule.web';
|
3
|
+
export default class NodeManager {
|
4
|
+
private static gestures;
|
5
|
+
static getHandler(tag: number): import("../handlers/PanGestureHandler").default | import("../handlers/TapGestureHandler").default | import("../handlers/LongPressGestureHandler").default | import("../handlers/PinchGestureHandler").default | import("../handlers/RotationGestureHandler").default | import("../handlers/FlingGestureHandler").default | import("../handlers/NativeViewGestureHandler").default;
|
6
|
+
static createGestureHandler(handlerTag: number, handler: InstanceType<ValueOf<typeof Gestures>>): void;
|
7
|
+
static dropGestureHandler(handlerTag: number): void;
|
8
|
+
static getNodes(): {
|
9
|
+
[x: number]: import("../handlers/PanGestureHandler").default | import("../handlers/TapGestureHandler").default | import("../handlers/LongPressGestureHandler").default | import("../handlers/PinchGestureHandler").default | import("../handlers/RotationGestureHandler").default | import("../handlers/FlingGestureHandler").default | import("../handlers/NativeViewGestureHandler").default;
|
10
|
+
};
|
11
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { AdaptedPointerEvent } from '../interfaces';
|
2
|
+
interface TrackerElement {
|
3
|
+
lastX: number;
|
4
|
+
lastY: number;
|
5
|
+
timeStamp: number;
|
6
|
+
velocityX: number;
|
7
|
+
velocityY: number;
|
8
|
+
}
|
9
|
+
export default class PointerTracker {
|
10
|
+
private trackedPointers;
|
11
|
+
addToTracker(event: AdaptedPointerEvent): void;
|
12
|
+
removeFromTracker(pointerId: number): void;
|
13
|
+
track(event: AdaptedPointerEvent): void;
|
14
|
+
getVelocityX(pointerId: number): number;
|
15
|
+
getVelocityY(pointerId: number): number;
|
16
|
+
getLastX(pointerId: number): number;
|
17
|
+
getLastY(pointerId: number): number;
|
18
|
+
getLastAvgX(): number;
|
19
|
+
getLastAvgY(): number;
|
20
|
+
getSumX(ignoredPointer?: number): number;
|
21
|
+
getSumY(ignoredPointer?: number): number;
|
22
|
+
getTrackedPointersCount(): number;
|
23
|
+
getTrackedPointersID(): number[];
|
24
|
+
getData(): Map<number, TrackerElement>;
|
25
|
+
resetTracker(): void;
|
26
|
+
static shareCommonPointers(stPointers: number[], ndPointers: number[]): boolean;
|
27
|
+
}
|
28
|
+
export {};
|
File without changes
|
File without changes
|
File without changes
|
@@ -21,6 +21,7 @@ export declare type Config = Partial<{
|
|
21
21
|
activeOffsetYStart: number;
|
22
22
|
activeOffsetYEnd: number;
|
23
23
|
waitFor: any[] | null;
|
24
|
+
simultaneousHandlers: any[] | null;
|
24
25
|
}>;
|
25
26
|
declare abstract class GestureHandler {
|
26
27
|
handlerTag: any;
|
@@ -43,6 +44,7 @@ declare abstract class GestureHandler {
|
|
43
44
|
private ref;
|
44
45
|
abstract get name(): string;
|
45
46
|
get id(): string;
|
47
|
+
get isNative(): boolean;
|
46
48
|
get isDiscrete(): boolean;
|
47
49
|
get shouldEnableGestureOnSetup(): boolean;
|
48
50
|
constructor();
|
@@ -65,6 +67,7 @@ declare abstract class GestureHandler {
|
|
65
67
|
activeOffsetYStart: number;
|
66
68
|
activeOffsetYEnd: number;
|
67
69
|
waitFor: any[] | null;
|
70
|
+
simultaneousHandlers: any[] | null;
|
68
71
|
}>;
|
69
72
|
onWaitingEnded(_gesture: this): void;
|
70
73
|
removePendingGesture(id: string): void;
|
@@ -98,6 +101,7 @@ declare abstract class GestureHandler {
|
|
98
101
|
activeOffsetYStart: number;
|
99
102
|
activeOffsetYEnd: number;
|
100
103
|
waitFor: any[] | null;
|
104
|
+
simultaneousHandlers: any[] | null;
|
101
105
|
}>;
|
102
106
|
destroy: () => void;
|
103
107
|
isPointInView: ({ x, y }: {
|
@@ -124,6 +128,7 @@ declare abstract class GestureHandler {
|
|
124
128
|
forceInvalidate(event: HammerInputExt): void;
|
125
129
|
cancelEvent(event: HammerInputExt): void;
|
126
130
|
onRawEvent({ isFirst }: HammerInputExt): void;
|
131
|
+
shouldUseTouchEvents(config: Config): boolean;
|
127
132
|
setView(ref: Parameters<typeof findNodeHandle>['0'], propsRef: any): void;
|
128
133
|
setupEvents(): void;
|
129
134
|
onStart({ deltaX, deltaY, rotation }: HammerInputExt): void;
|
@@ -135,5 +140,6 @@ declare abstract class GestureHandler {
|
|
135
140
|
};
|
136
141
|
sync: () => void;
|
137
142
|
simulateCancelEvent(_inputData: any): void;
|
143
|
+
ensureConfig(config: Config): Required<Config>;
|
138
144
|
}
|
139
145
|
export default GestureHandler;
|
@@ -27,6 +27,7 @@ declare abstract class IndiscreteGestureHandler extends GestureHandler {
|
|
27
27
|
activeOffsetYStart: number;
|
28
28
|
activeOffsetYEnd: number;
|
29
29
|
waitFor: any[] | null;
|
30
|
+
simultaneousHandlers: any[] | null;
|
30
31
|
}>;
|
31
32
|
isGestureEnabledForEvent({ minPointers, maxPointers }: any, _recognizer: any, { maxPointers: pointerLength }: any): {
|
32
33
|
failed: boolean;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { HammerInputExt } from './GestureHandler';
|
2
2
|
import PressGestureHandler from './PressGestureHandler';
|
3
3
|
declare class NativeViewGestureHandler extends PressGestureHandler {
|
4
|
+
get isNative(): boolean;
|
4
5
|
onRawEvent(ev: HammerInputExt): void;
|
5
6
|
}
|
6
7
|
export default NativeViewGestureHandler;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { ValueOf } from '../typeUtils';
|
2
|
+
import { HammerGestures } from '../RNGestureHandlerModule.web';
|
3
|
+
export declare function getHandler(tag: number): import("./NativeViewGestureHandler").default | import("./PanGestureHandler").default | import("./TapGestureHandler").default | import("./LongPressGestureHandler").default | import("./PinchGestureHandler").default | import("./RotationGestureHandler").default | import("./FlingGestureHandler").default;
|
4
|
+
export declare function createGestureHandler(handlerTag: number, handler: InstanceType<ValueOf<typeof HammerGestures>>): void;
|
5
|
+
export declare function dropGestureHandler(handlerTag: number): void;
|
6
|
+
export declare function getNodes(): {
|
7
|
+
[x: number]: import("./NativeViewGestureHandler").default | import("./PanGestureHandler").default | import("./TapGestureHandler").default | import("./LongPressGestureHandler").default | import("./PinchGestureHandler").default | import("./RotationGestureHandler").default | import("./FlingGestureHandler").default;
|
8
|
+
};
|
@@ -30,6 +30,7 @@ declare class PanGestureHandler extends DraggingGestureHandler {
|
|
30
30
|
activeOffsetYStart: number;
|
31
31
|
activeOffsetYEnd: number;
|
32
32
|
waitFor: any[] | null;
|
33
|
+
simultaneousHandlers: any[] | null;
|
33
34
|
}>;
|
34
35
|
shouldFailUnderCustomCriteria({ deltaX, deltaY }: HammerInputExt, criteria: any): boolean;
|
35
36
|
shouldActivateUnderCustomCriteria({ deltaX, deltaY, velocity }: any, criteria: any): boolean;
|
File without changes
|
@@ -34,6 +34,7 @@ declare class PressGestureHandler extends DiscreteGestureHandler {
|
|
34
34
|
activeOffsetYStart: number;
|
35
35
|
activeOffsetYEnd: number;
|
36
36
|
waitFor: any[] | null;
|
37
|
+
simultaneousHandlers: any[] | null;
|
37
38
|
}> | {
|
38
39
|
shouldCancelWhenOutside: boolean;
|
39
40
|
maxDistSq: number;
|
@@ -76,6 +77,7 @@ declare class PressGestureHandler extends DiscreteGestureHandler {
|
|
76
77
|
activeOffsetYStart: number;
|
77
78
|
activeOffsetYEnd: number;
|
78
79
|
waitFor: any[] | null;
|
80
|
+
simultaneousHandlers: any[] | null;
|
79
81
|
}>;
|
80
82
|
}
|
81
83
|
export default PressGestureHandler;
|
File without changes
|
@@ -49,6 +49,7 @@ declare class TapGestureHandler extends DiscreteGestureHandler {
|
|
49
49
|
activeOffsetYStart: number;
|
50
50
|
activeOffsetYEnd: number;
|
51
51
|
waitFor: any[] | null;
|
52
|
+
simultaneousHandlers: any[] | null;
|
52
53
|
}>;
|
53
54
|
onGestureEnded(...props: any): void;
|
54
55
|
onWaitingEnded(_gesture: any): void;
|
@@ -0,0 +1,39 @@
|
|
1
|
+
export declare const CONTENT_TOUCHES_DELAY = 240;
|
2
|
+
export declare const CONTENT_TOUCHES_QUICK_TAP_END_DELAY = 50;
|
3
|
+
export declare const MULTI_FINGER_PAN_MAX_PINCH_THRESHOLD = 0.1;
|
4
|
+
export declare const MULTI_FINGER_PAN_MAX_ROTATION_THRESHOLD = 7;
|
5
|
+
export declare const DEG_RAD: number;
|
6
|
+
export declare const EventMap: {
|
7
|
+
readonly 1: 2;
|
8
|
+
readonly 2: 4;
|
9
|
+
readonly 4: 5;
|
10
|
+
readonly 8: 1;
|
11
|
+
};
|
12
|
+
export declare const Direction: {
|
13
|
+
RIGHT: number;
|
14
|
+
LEFT: number;
|
15
|
+
UP: number;
|
16
|
+
DOWN: number;
|
17
|
+
};
|
18
|
+
export declare const DirectionMap: {
|
19
|
+
4: number;
|
20
|
+
2: number;
|
21
|
+
8: number;
|
22
|
+
16: number;
|
23
|
+
};
|
24
|
+
export declare const HammerInputNames: {
|
25
|
+
1: string;
|
26
|
+
2: string;
|
27
|
+
4: string;
|
28
|
+
8: string;
|
29
|
+
};
|
30
|
+
export declare const HammerDirectionNames: {
|
31
|
+
6: string;
|
32
|
+
8: string;
|
33
|
+
16: string;
|
34
|
+
24: string;
|
35
|
+
1: string;
|
36
|
+
30: string;
|
37
|
+
4: string;
|
38
|
+
2: string;
|
39
|
+
};
|
File without changes
|
package/package.json
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
let EXPERIMENTAL_WEB_IMPLEMENTATION = false;
|
2
|
+
let getWasCalled = false;
|
3
|
+
|
4
|
+
export function enableExperimentalWebImplementation(shouldEnable = true): void {
|
5
|
+
if (getWasCalled) {
|
6
|
+
console.error(
|
7
|
+
'Some parts of this application have already started using old gesture handler implementation. No changes will be applied. You can try enabling new implementation earlier.'
|
8
|
+
);
|
9
|
+
return;
|
10
|
+
}
|
11
|
+
|
12
|
+
EXPERIMENTAL_WEB_IMPLEMENTATION = shouldEnable;
|
13
|
+
}
|
14
|
+
|
15
|
+
export function isExperimentalWebImplementationEnabled(): boolean {
|
16
|
+
getWasCalled = true;
|
17
|
+
return EXPERIMENTAL_WEB_IMPLEMENTATION;
|
18
|
+
}
|
@@ -0,0 +1,114 @@
|
|
1
|
+
import { ActionType } from './ActionType';
|
2
|
+
import { isExperimentalWebImplementationEnabled } from './EnableExperimentalWebImplementation';
|
3
|
+
|
4
|
+
//GestureHandlers
|
5
|
+
import InteractionManager from './web/tools/InteractionManager';
|
6
|
+
import NodeManager from './web/tools/NodeManager';
|
7
|
+
import PanGestureHandler from './web/handlers/PanGestureHandler';
|
8
|
+
import TapGestureHandler from './web/handlers/TapGestureHandler';
|
9
|
+
import LongPressGestureHandler from './web/handlers/LongPressGestureHandler';
|
10
|
+
import PinchGestureHandler from './web/handlers/PinchGestureHandler';
|
11
|
+
import RotationGestureHandler from './web/handlers/RotationGestureHandler';
|
12
|
+
import FlingGestureHandler from './web/handlers/FlingGestureHandler';
|
13
|
+
import NativeViewGestureHandler from './web/handlers/NativeViewGestureHandler';
|
14
|
+
|
15
|
+
//Hammer Handlers
|
16
|
+
import * as HammerNodeManager from './web_hammer/NodeManager';
|
17
|
+
import HammerNativeViewGestureHandler from './web_hammer/NativeViewGestureHandler';
|
18
|
+
import HammerPanGestureHandler from './web_hammer/PanGestureHandler';
|
19
|
+
import HammerTapGestureHandler from './web_hammer/TapGestureHandler';
|
20
|
+
import HammerLongPressGestureHandler from './web_hammer/LongPressGestureHandler';
|
21
|
+
import HammerPinchGestureHandler from './web_hammer/PinchGestureHandler';
|
22
|
+
import HammerRotationGestureHandler from './web_hammer/RotationGestureHandler';
|
23
|
+
import HammerFlingGestureHandler from './web_hammer/FlingGestureHandler';
|
24
|
+
import { Config } from './web_hammer/GestureHandler';
|
25
|
+
|
26
|
+
export const Gestures = {
|
27
|
+
NativeViewGestureHandler,
|
28
|
+
PanGestureHandler,
|
29
|
+
TapGestureHandler,
|
30
|
+
LongPressGestureHandler,
|
31
|
+
PinchGestureHandler,
|
32
|
+
RotationGestureHandler,
|
33
|
+
FlingGestureHandler,
|
34
|
+
};
|
35
|
+
|
36
|
+
export const HammerGestures = {
|
37
|
+
NativeViewGestureHandler: HammerNativeViewGestureHandler,
|
38
|
+
PanGestureHandler: HammerPanGestureHandler,
|
39
|
+
TapGestureHandler: HammerTapGestureHandler,
|
40
|
+
LongPressGestureHandler: HammerLongPressGestureHandler,
|
41
|
+
PinchGestureHandler: HammerPinchGestureHandler,
|
42
|
+
RotationGestureHandler: HammerRotationGestureHandler,
|
43
|
+
FlingGestureHandler: HammerFlingGestureHandler,
|
44
|
+
};
|
45
|
+
|
46
|
+
export default {
|
47
|
+
// Direction,
|
48
|
+
handleSetJSResponder(tag: number, blockNativeResponder: boolean) {
|
49
|
+
console.warn('handleSetJSResponder: ', tag, blockNativeResponder);
|
50
|
+
},
|
51
|
+
handleClearJSResponder() {
|
52
|
+
console.warn('handleClearJSResponder: ');
|
53
|
+
},
|
54
|
+
createGestureHandler<T>(
|
55
|
+
handlerName: keyof typeof Gestures,
|
56
|
+
handlerTag: number,
|
57
|
+
config: T
|
58
|
+
) {
|
59
|
+
if (isExperimentalWebImplementationEnabled()) {
|
60
|
+
if (!(handlerName in Gestures)) return;
|
61
|
+
|
62
|
+
const interactionManager = new InteractionManager();
|
63
|
+
|
64
|
+
const GestureClass = Gestures[handlerName];
|
65
|
+
NodeManager.createGestureHandler(handlerTag, new GestureClass());
|
66
|
+
interactionManager.configureInteractions(
|
67
|
+
NodeManager.getHandler(handlerTag),
|
68
|
+
(config as unknown) as Config
|
69
|
+
);
|
70
|
+
} else {
|
71
|
+
if (!(handlerName in HammerGestures)) return;
|
72
|
+
|
73
|
+
const GestureClass = HammerGestures[handlerName];
|
74
|
+
HammerNodeManager.createGestureHandler(handlerTag, new GestureClass());
|
75
|
+
}
|
76
|
+
|
77
|
+
this.updateGestureHandler(handlerTag, config);
|
78
|
+
},
|
79
|
+
attachGestureHandler(
|
80
|
+
handlerTag: number,
|
81
|
+
newView: number, //ref
|
82
|
+
_actionType: ActionType,
|
83
|
+
propsRef: React.RefObject<unknown>
|
84
|
+
) {
|
85
|
+
if (isExperimentalWebImplementationEnabled()) {
|
86
|
+
NodeManager.getHandler(handlerTag).init(newView, propsRef);
|
87
|
+
} else {
|
88
|
+
HammerNodeManager.getHandler(handlerTag).setView(newView, propsRef);
|
89
|
+
}
|
90
|
+
},
|
91
|
+
updateGestureHandler(handlerTag: number, newConfig: any) {
|
92
|
+
if (isExperimentalWebImplementationEnabled()) {
|
93
|
+
NodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
|
94
|
+
} else {
|
95
|
+
HammerNodeManager.getHandler(handlerTag).updateGestureConfig(newConfig);
|
96
|
+
}
|
97
|
+
},
|
98
|
+
getGestureHandlerNode(handlerTag: number) {
|
99
|
+
if (isExperimentalWebImplementationEnabled()) {
|
100
|
+
return NodeManager.getHandler(handlerTag);
|
101
|
+
} else {
|
102
|
+
return HammerNodeManager.getHandler(handlerTag);
|
103
|
+
}
|
104
|
+
},
|
105
|
+
dropGestureHandler(handlerTag: number) {
|
106
|
+
if (isExperimentalWebImplementationEnabled()) {
|
107
|
+
NodeManager.dropGestureHandler(handlerTag);
|
108
|
+
} else {
|
109
|
+
HammerNodeManager.dropGestureHandler(handlerTag);
|
110
|
+
}
|
111
|
+
},
|
112
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
113
|
+
flushOperations() {},
|
114
|
+
};
|