react-native-gesture-handler 2.4.1 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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
|
+
};
|