react-native-gesture-handler 1.10.3 → 2.1.2
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 +7 -6
- package/android/build.gradle +49 -1
- package/android/common/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +5 -0
- package/android/gradle.properties +19 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.kt +18 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/Extensions.kt +11 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +96 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.kt +713 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.kt +8 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +562 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.kt +8 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.kt +21 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.kt +49 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +97 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/ManualGestureHandler.kt +11 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +129 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.kt +9 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +289 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.kt +88 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/{PointerEventsConfig.java → PointerEventsConfig.kt} +3 -5
- package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.kt +125 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.kt +79 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +167 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.kt +10 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +348 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +57 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +59 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +8 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +61 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +686 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.kt +17 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +95 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +132 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.kt +5 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +68 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +34 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +66 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +69 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +51 -0
- package/ios/Handlers/RNFlingHandler.m +78 -5
- package/ios/Handlers/RNForceTouchHandler.m +29 -4
- package/ios/Handlers/RNLongPressHandler.m +105 -3
- package/ios/Handlers/RNManualHandler.h +4 -0
- package/ios/Handlers/RNManualHandler.m +73 -0
- package/ios/Handlers/RNNativeViewHandler.m +30 -2
- package/ios/Handlers/RNPanHandler.m +64 -4
- package/ios/Handlers/RNPinchHandler.m +61 -2
- package/ios/Handlers/RNRotationHandler.m +60 -1
- package/ios/Handlers/RNTapHandler.m +55 -8
- package/ios/RNGestureHandler.h +18 -4
- package/ios/RNGestureHandler.m +123 -13
- package/ios/RNGestureHandlerEvents.h +9 -0
- package/ios/RNGestureHandlerEvents.m +34 -0
- package/ios/RNGestureHandlerManager.h +7 -0
- package/ios/RNGestureHandlerManager.m +62 -34
- package/ios/RNGestureHandlerModule.m +39 -3
- package/ios/RNGestureHandlerPointerTracker.h +25 -0
- package/ios/RNGestureHandlerPointerTracker.m +237 -0
- package/ios/RNGestureHandlerRegistry.h +1 -0
- package/ios/RNGestureHandlerRegistry.m +10 -0
- package/ios/RNGestureHandlerStateManager.h +5 -0
- package/ios/RNManualActivationRecognizer.h +10 -0
- package/ios/RNManualActivationRecognizer.m +80 -0
- package/ios/RNRootViewGestureRecognizer.m +1 -1
- package/ios/RNTouchEventType.h +9 -0
- package/lib/commonjs/EventType.js +16 -0
- package/lib/commonjs/EventType.js.map +1 -0
- package/lib/commonjs/GestureHandlerRootView.android.js +1 -13
- package/lib/commonjs/GestureHandlerRootView.android.js.map +1 -1
- package/lib/commonjs/GestureHandlerRootView.js +11 -3
- package/lib/commonjs/GestureHandlerRootView.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.js +3 -1
- package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js +41 -37
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.js +31 -12
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +10 -6
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +2 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/gestureHandlerRootHOC.js +1 -1
- package/lib/commonjs/gestureHandlerRootHOC.js.map +1 -1
- package/lib/commonjs/handlers/FlingGestureHandler.js +23 -0
- package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +44 -0
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/LongPressGestureHandler.js +23 -0
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/NativeViewGestureHandler.js +6 -4
- package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js +121 -0
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/PinchGestureHandler.js +21 -0
- package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/RotationGestureHandler.js +21 -0
- package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/TapGestureHandler.js +23 -0
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/createHandler.js +52 -83
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +80 -0
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js +440 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
- package/lib/commonjs/handlers/gestures/eventReceiver.js +135 -0
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -0
- package/lib/commonjs/handlers/gestures/flingGesture.js +34 -0
- package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js +65 -0
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gesture.js +193 -0
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gestureComposition.js +94 -0
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gestureObjects.js +85 -0
- package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +58 -0
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -0
- package/lib/commonjs/handlers/gestures/longPressGesture.js +34 -0
- package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/manualGesture.js +31 -0
- package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/nativeGesture.js +34 -0
- package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/panGesture.js +144 -0
- package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/pinchGesture.js +45 -0
- package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +24 -0
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -0
- package/lib/commonjs/handlers/gestures/rotationGesture.js +45 -0
- package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/tapGesture.js +59 -0
- package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -0
- package/lib/commonjs/handlers/handlersRegistry.js +31 -0
- package/lib/commonjs/handlers/handlersRegistry.js.map +1 -0
- package/lib/commonjs/index.js +146 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/init.js +13 -0
- package/lib/commonjs/init.js.map +1 -0
- package/lib/commonjs/mocks.js +31 -2
- package/lib/commonjs/mocks.js.map +1 -1
- package/lib/commonjs/utils.js +15 -0
- package/lib/commonjs/utils.js.map +1 -0
- package/lib/commonjs/web/Errors.js +1 -1
- package/lib/commonjs/web/Errors.js.map +1 -1
- package/lib/commonjs/web/GestureHandler.js +4 -6
- package/lib/commonjs/web/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/NodeManager.js +8 -2
- package/lib/commonjs/web/NodeManager.js.map +1 -1
- package/lib/module/EventType.js +8 -0
- package/lib/module/EventType.js.map +1 -0
- package/lib/module/GestureHandlerRootView.android.js +2 -14
- package/lib/module/GestureHandlerRootView.android.js.map +1 -1
- package/lib/module/GestureHandlerRootView.js +5 -1
- package/lib/module/GestureHandlerRootView.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.js +3 -1
- package/lib/module/RNGestureHandlerModule.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +2 -2
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/components/DrawerLayout.js +43 -40
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureComponents.js +29 -11
- package/lib/module/components/GestureComponents.js.map +1 -1
- package/lib/module/components/Swipeable.js +9 -6
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +2 -1
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/gestureHandlerRootHOC.js +1 -1
- package/lib/module/gestureHandlerRootHOC.js.map +1 -1
- package/lib/module/handlers/FlingGestureHandler.js +10 -0
- package/lib/module/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/module/handlers/ForceTouchGestureHandler.js +29 -0
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -0
- package/lib/module/handlers/LongPressGestureHandler.js +10 -0
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/module/handlers/NativeViewGestureHandler.js +4 -3
- package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js +106 -0
- package/lib/module/handlers/PanGestureHandler.js.map +1 -0
- package/lib/module/handlers/PinchGestureHandler.js +9 -0
- package/lib/module/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/module/handlers/RotationGestureHandler.js +9 -0
- package/lib/module/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/module/handlers/TapGestureHandler.js +10 -0
- package/lib/module/handlers/TapGestureHandler.js.map +1 -0
- package/lib/module/handlers/createHandler.js +41 -76
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +66 -0
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -0
- package/lib/module/handlers/gestures/GestureDetector.js +402 -0
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
- package/lib/module/handlers/gestures/eventReceiver.js +120 -0
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -0
- package/lib/module/handlers/gestures/flingGesture.js +24 -0
- package/lib/module/handlers/gestures/flingGesture.js.map +1 -0
- package/lib/module/handlers/gestures/forceTouchGesture.js +56 -0
- package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -0
- package/lib/module/handlers/gestures/gesture.js +175 -0
- package/lib/module/handlers/gestures/gesture.js.map +1 -0
- package/lib/module/handlers/gestures/gestureComposition.js +79 -0
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -0
- package/lib/module/handlers/gestures/gestureObjects.js +67 -0
- package/lib/module/handlers/gestures/gestureObjects.js.map +1 -0
- package/lib/module/handlers/gestures/gestureStateManager.js +48 -0
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -0
- package/lib/module/handlers/gestures/longPressGesture.js +24 -0
- package/lib/module/handlers/gestures/longPressGesture.js.map +1 -0
- package/lib/module/handlers/gestures/manualGesture.js +22 -0
- package/lib/module/handlers/gestures/manualGesture.js.map +1 -0
- package/lib/module/handlers/gestures/nativeGesture.js +24 -0
- package/lib/module/handlers/gestures/nativeGesture.js.map +1 -0
- package/lib/module/handlers/gestures/panGesture.js +135 -0
- package/lib/module/handlers/gestures/panGesture.js.map +1 -0
- package/lib/module/handlers/gestures/pinchGesture.js +36 -0
- package/lib/module/handlers/gestures/pinchGesture.js.map +1 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js +19 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -0
- package/lib/module/handlers/gestures/rotationGesture.js +36 -0
- package/lib/module/handlers/gestures/rotationGesture.js.map +1 -0
- package/lib/module/handlers/gestures/tapGesture.js +49 -0
- package/lib/module/handlers/gestures/tapGesture.js.map +1 -0
- package/lib/module/handlers/handlersRegistry.js +16 -0
- package/lib/module/handlers/handlersRegistry.js.map +1 -0
- package/lib/module/index.js +22 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/init.js +5 -0
- package/lib/module/init.js.map +1 -0
- package/lib/module/mocks.js +31 -2
- package/lib/module/mocks.js.map +1 -1
- package/lib/module/utils.js +8 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/web/Errors.js +1 -1
- package/lib/module/web/Errors.js.map +1 -1
- package/lib/module/web/GestureHandler.js +4 -6
- package/lib/module/web/GestureHandler.js.map +1 -1
- package/lib/module/web/NodeManager.js +8 -2
- package/lib/module/web/NodeManager.js.map +1 -1
- package/lib/typescript/EventType.d.ts +8 -0
- package/lib/typescript/GestureHandlerRootView.android.d.ts +2 -4
- package/lib/typescript/GestureHandlerRootView.d.ts +5 -2
- package/lib/typescript/RNGestureHandlerModule.d.ts +1 -1
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
- package/lib/typescript/components/DrawerLayout.d.ts +50 -1
- package/lib/typescript/components/GestureButtons.d.ts +36 -0
- package/lib/typescript/components/GestureComponents.d.ts +8 -35
- package/lib/typescript/components/Swipeable.d.ts +73 -6
- package/lib/typescript/components/touchables/GenericTouchable.d.ts +2 -2
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -0
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -0
- package/lib/typescript/handlers/FlingGestureHandler.d.ts +33 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +43 -0
- package/lib/typescript/handlers/LongPressGestureHandler.d.ts +55 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +19 -4
- package/lib/typescript/handlers/PanGestureHandler.d.ts +137 -0
- package/lib/typescript/handlers/PinchGestureHandler.d.ts +28 -0
- package/lib/typescript/handlers/RotationGestureHandler.d.ts +28 -0
- package/lib/typescript/handlers/TapGestureHandler.d.ts +56 -0
- package/lib/typescript/handlers/createHandler.d.ts +1 -1
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +62 -0
- package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +8 -1
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +16 -0
- package/lib/typescript/handlers/gestures/eventReceiver.d.ts +2 -0
- package/lib/typescript/handlers/gestures/flingGesture.d.ts +9 -0
- package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +16 -0
- package/lib/typescript/handlers/gestures/gesture.d.ts +97 -0
- package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
- package/lib/typescript/handlers/gestures/gestureObjects.d.ts +39 -0
- package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +9 -0
- package/lib/typescript/handlers/gestures/longPressGesture.d.ts +9 -0
- package/lib/typescript/handlers/gestures/manualGesture.d.ts +7 -0
- package/lib/typescript/handlers/gestures/nativeGesture.d.ts +9 -0
- package/lib/typescript/handlers/gestures/panGesture.d.ts +26 -0
- package/lib/typescript/handlers/gestures/pinchGesture.d.ts +12 -0
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +14 -0
- package/lib/typescript/handlers/gestures/rotationGesture.d.ts +12 -0
- package/lib/typescript/handlers/gestures/tapGesture.d.ts +14 -0
- package/lib/typescript/handlers/handlersRegistry.d.ts +6 -0
- package/lib/typescript/index.d.ts +29 -2
- package/lib/typescript/init.d.ts +1 -0
- package/lib/typescript/mocks.d.ts +21 -2
- package/lib/typescript/utils.d.ts +1 -0
- package/lib/typescript/web/FlingGestureHandler.d.ts +0 -1
- package/lib/typescript/web/GestureHandler.d.ts +0 -1
- package/lib/typescript/web/PanGestureHandler.d.ts +0 -1
- package/lib/typescript/web/PinchGestureHandler.d.ts +0 -1
- package/lib/typescript/web/PressGestureHandler.d.ts +0 -1
- package/lib/typescript/web/RotationGestureHandler.d.ts +0 -1
- package/lib/typescript/web/TapGestureHandler.d.ts +0 -1
- package/package.json +8 -5
- package/src/EventType.ts +10 -0
- package/src/GestureHandlerRootView.android.tsx +9 -25
- package/src/GestureHandlerRootView.tsx +11 -2
- package/src/RNGestureHandlerModule.ts +5 -1
- package/src/RNGestureHandlerModule.web.ts +1 -0
- package/src/components/DrawerLayout.tsx +114 -41
- package/src/components/GestureButtons.tsx +45 -5
- package/src/components/GestureComponents.tsx +47 -41
- package/src/components/Swipeable.tsx +108 -21
- package/src/components/touchables/GenericTouchable.tsx +2 -1
- package/src/components/touchables/TouchableOpacity.tsx +1 -1
- package/src/handlers/FlingGestureHandler.ts +57 -0
- package/src/handlers/ForceTouchGestureHandler.ts +83 -0
- package/src/handlers/LongPressGestureHandler.ts +84 -0
- package/src/handlers/NativeViewGestureHandler.ts +31 -7
- package/src/handlers/PanGestureHandler.ts +321 -0
- package/src/handlers/PinchGestureHandler.ts +46 -0
- package/src/handlers/RotationGestureHandler.ts +46 -0
- package/src/handlers/TapGestureHandler.ts +90 -0
- package/src/handlers/createHandler.ts +54 -79
- package/src/handlers/gestureHandlerCommon.ts +185 -0
- package/src/handlers/gestureHandlerTypesCompat.ts +19 -5
- package/src/handlers/gestures/GestureDetector.tsx +519 -0
- package/src/handlers/gestures/eventReceiver.ts +151 -0
- package/src/handlers/gestures/flingGesture.ts +27 -0
- package/src/handlers/gestures/forceTouchGesture.ts +74 -0
- package/src/handlers/gestures/gesture.ts +292 -0
- package/src/handlers/gestures/gestureComposition.ts +109 -0
- package/src/handlers/gestures/gestureObjects.ts +79 -0
- package/src/handlers/gestures/gestureStateManager.ts +60 -0
- package/src/handlers/gestures/longPressGesture.ts +27 -0
- package/src/handlers/gestures/manualGesture.ts +31 -0
- package/src/handlers/gestures/nativeGesture.ts +27 -0
- package/src/handlers/gestures/panGesture.ts +147 -0
- package/src/handlers/gestures/pinchGesture.ts +51 -0
- package/src/handlers/gestures/reanimatedWrapper.ts +45 -0
- package/src/handlers/gestures/rotationGesture.ts +51 -0
- package/src/handlers/gestures/tapGesture.ts +52 -0
- package/src/handlers/handlersRegistry.ts +22 -0
- package/src/index.ts +57 -17
- package/src/init.ts +5 -0
- package/src/mocks.ts +42 -2
- package/src/utils.ts +7 -0
- package/src/web/GestureHandler.ts +1 -2
- package/src/web/NodeManager.ts +5 -0
- package/android/lib/src/main/java/com/swmansion/gesturehandler/BaseGestureHandlerInteractionController.java +0 -23
- package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.java +0 -110
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandler.java +0 -531
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerInteractionController.java +0 -8
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.java +0 -543
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistry.java +0 -10
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerRegistryImpl.java +0 -29
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureUtils.java +0 -53
- package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.java +0 -81
- package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.java +0 -110
- package/android/lib/src/main/java/com/swmansion/gesturehandler/OnTouchEventListener.java +0 -8
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.java +0 -312
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PinchGestureHandler.java +0 -109
- package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureDetector.java +0 -169
- package/android/lib/src/main/java/com/swmansion/gesturehandler/RotationGestureHandler.java +0 -96
- package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.java +0 -172
- package/android/lib/src/main/java/com/swmansion/gesturehandler/ViewConfigurationHelper.java +0 -10
- package/android/src/main/java/com/facebook/react/views/modal/RNGHModalUtils.java +0 -21
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.java +0 -296
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.java +0 -72
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.java +0 -77
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.java +0 -8
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.java +0 -86
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.java +0 -731
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerPackage.java +0 -31
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.java +0 -101
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.java +0 -151
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootInterface.java +0 -7
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.java +0 -76
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.java +0 -49
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.java +0 -82
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.java +0 -61
- package/lib/commonjs/handlers/gestureHandlers.js +0 -236
- package/lib/commonjs/handlers/gestureHandlers.js.map +0 -1
- package/lib/module/handlers/gestureHandlers.js +0 -216
- package/lib/module/handlers/gestureHandlers.js.map +0 -1
- package/lib/typescript/handlers/gestureHandlers.d.ts +0 -158
- package/src/handlers/gestureHandlers.ts +0 -511
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { State } from '../State';
|
|
3
|
-
import { ValueOf } from '../typeUtils';
|
|
4
|
-
export interface GestureEventPayload {
|
|
5
|
-
handlerTag: number;
|
|
6
|
-
numberOfPointers: number;
|
|
7
|
-
state: ValueOf<typeof State>;
|
|
8
|
-
}
|
|
9
|
-
export interface HandlerStateChangeEventPayload {
|
|
10
|
-
handlerTag: number;
|
|
11
|
-
numberOfPointers: number;
|
|
12
|
-
state: ValueOf<typeof State>;
|
|
13
|
-
oldState: ValueOf<typeof State>;
|
|
14
|
-
}
|
|
15
|
-
export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
|
|
16
|
-
nativeEvent: Readonly<GestureEventPayload & ExtraEventPayloadT>;
|
|
17
|
-
}
|
|
18
|
-
export interface HandlerStateChangeEvent<ExtraEventPayloadT = Record<string, unknown>> {
|
|
19
|
-
nativeEvent: Readonly<HandlerStateChangeEventPayload & ExtraEventPayloadT>;
|
|
20
|
-
}
|
|
21
|
-
export declare type BaseGestureHandlerProps<ExtraEventPayloadT extends Record<string, unknown> = Record<string, unknown>> = {
|
|
22
|
-
id?: string;
|
|
23
|
-
enabled?: boolean;
|
|
24
|
-
minPointers?: number;
|
|
25
|
-
waitFor?: React.Ref<unknown> | React.Ref<unknown>[];
|
|
26
|
-
simultaneousHandlers?: React.Ref<unknown> | React.Ref<unknown>[];
|
|
27
|
-
shouldCancelWhenOutside?: boolean;
|
|
28
|
-
hitSlop?: number | Partial<Record<'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal', number>> | Record<'width' | 'left', number> | Record<'width' | 'right', number> | Record<'height' | 'top', number> | Record<'height' | 'bottom', number>;
|
|
29
|
-
onBegan?: (event: HandlerStateChangeEvent) => void;
|
|
30
|
-
onFailed?: (event: HandlerStateChangeEvent) => void;
|
|
31
|
-
onCancelled?: (event: HandlerStateChangeEvent) => void;
|
|
32
|
-
onActivated?: (event: HandlerStateChangeEvent) => void;
|
|
33
|
-
onEnded?: (event: HandlerStateChangeEvent) => void;
|
|
34
|
-
onGestureEvent?: (event: GestureEvent<ExtraEventPayloadT>) => void;
|
|
35
|
-
onHandlerStateChange?: (event: HandlerStateChangeEvent<ExtraEventPayloadT>) => void;
|
|
36
|
-
};
|
|
37
|
-
export declare const baseProps: readonly ["id", "enabled", "minPointers", "waitFor", "simultaneousHandlers", "shouldCancelWhenOutside", "hitSlop", "onBegan", "onFailed", "onCancelled", "onActivated", "onEnded", "onGestureEvent", "onHandlerStateChange"];
|
|
38
|
-
export declare type TapGestureHandlerEventPayload = {
|
|
39
|
-
x: number;
|
|
40
|
-
y: number;
|
|
41
|
-
absoluteX: number;
|
|
42
|
-
absoluteY: number;
|
|
43
|
-
};
|
|
44
|
-
export interface TapGestureHandlerProps extends BaseGestureHandlerProps<TapGestureHandlerEventPayload> {
|
|
45
|
-
minPointers?: number;
|
|
46
|
-
maxDurationMs?: number;
|
|
47
|
-
maxDelayMs?: number;
|
|
48
|
-
numberOfTaps?: number;
|
|
49
|
-
maxDeltaX?: number;
|
|
50
|
-
maxDeltaY?: number;
|
|
51
|
-
maxDist?: number;
|
|
52
|
-
}
|
|
53
|
-
export declare type TapGestureHandler = typeof TapGestureHandler;
|
|
54
|
-
export declare const TapGestureHandler: React.ComponentType<TapGestureHandlerProps & React.RefAttributes<any>>;
|
|
55
|
-
export declare type FlingGestureHandlerEventPayload = {
|
|
56
|
-
x: number;
|
|
57
|
-
y: number;
|
|
58
|
-
absoluteX: number;
|
|
59
|
-
absoluteY: number;
|
|
60
|
-
};
|
|
61
|
-
export interface FlingGestureHandlerProps extends BaseGestureHandlerProps<FlingGestureHandlerEventPayload> {
|
|
62
|
-
direction?: number;
|
|
63
|
-
numberOfPointers?: number;
|
|
64
|
-
}
|
|
65
|
-
export declare type FlingGestureHandler = typeof FlingGestureHandler;
|
|
66
|
-
export declare const FlingGestureHandler: React.ComponentType<FlingGestureHandlerProps & React.RefAttributes<any>>;
|
|
67
|
-
declare class ForceTouchFallback extends React.Component {
|
|
68
|
-
static forceTouchAvailable: boolean;
|
|
69
|
-
componentDidMount(): void;
|
|
70
|
-
render(): React.ReactNode;
|
|
71
|
-
}
|
|
72
|
-
export declare type ForceTouchGestureHandlerEventPayload = {
|
|
73
|
-
x: number;
|
|
74
|
-
y: number;
|
|
75
|
-
absoluteX: number;
|
|
76
|
-
absoluteY: number;
|
|
77
|
-
force: number;
|
|
78
|
-
};
|
|
79
|
-
export interface ForceTouchGestureHandlerProps extends BaseGestureHandlerProps<ForceTouchGestureHandlerEventPayload> {
|
|
80
|
-
minForce?: number;
|
|
81
|
-
maxForce?: number;
|
|
82
|
-
feedbackOnActivation?: boolean;
|
|
83
|
-
}
|
|
84
|
-
export declare type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {
|
|
85
|
-
forceTouchAvailable: boolean;
|
|
86
|
-
};
|
|
87
|
-
export declare const ForceTouchGestureHandler: typeof ForceTouchFallback | React.ComponentClass<ForceTouchGestureHandlerProps & React.RefAttributes<any>, any> | React.FunctionComponent<ForceTouchGestureHandlerProps & React.RefAttributes<any>>;
|
|
88
|
-
export declare type LongPressGestureHandlerEventPayload = {
|
|
89
|
-
x: number;
|
|
90
|
-
y: number;
|
|
91
|
-
absoluteX: number;
|
|
92
|
-
absoluteY: number;
|
|
93
|
-
};
|
|
94
|
-
export interface LongPressGestureHandlerProps extends BaseGestureHandlerProps<LongPressGestureHandlerEventPayload> {
|
|
95
|
-
minDurationMs?: number;
|
|
96
|
-
maxDist?: number;
|
|
97
|
-
}
|
|
98
|
-
export declare type LongPressGestureHandler = typeof LongPressGestureHandler;
|
|
99
|
-
export declare const LongPressGestureHandler: React.ComponentType<LongPressGestureHandlerProps & React.RefAttributes<any>>;
|
|
100
|
-
export declare type PanGestureHandlerEventPayload = {
|
|
101
|
-
x: number;
|
|
102
|
-
y: number;
|
|
103
|
-
absoluteX: number;
|
|
104
|
-
absoluteY: number;
|
|
105
|
-
translationX: number;
|
|
106
|
-
translationY: number;
|
|
107
|
-
velocityX: number;
|
|
108
|
-
velocityY: number;
|
|
109
|
-
};
|
|
110
|
-
export interface PanGestureHandlerProps extends BaseGestureHandlerProps<PanGestureHandlerEventPayload> {
|
|
111
|
-
/** @deprecated use activeOffsetX*/
|
|
112
|
-
minDeltaX?: number;
|
|
113
|
-
/** @deprecated use activeOffsetY*/
|
|
114
|
-
minDeltaY?: number;
|
|
115
|
-
/** @deprecated use failOffsetX*/
|
|
116
|
-
maxDeltaX?: number;
|
|
117
|
-
/** @deprecated use failOffsetY*/
|
|
118
|
-
maxDeltaY?: number;
|
|
119
|
-
/** @deprecated use activeOffsetX*/
|
|
120
|
-
minOffsetX?: number;
|
|
121
|
-
/** @deprecated use failOffsetY*/
|
|
122
|
-
minOffsetY?: number;
|
|
123
|
-
activeOffsetY?: number | number[];
|
|
124
|
-
activeOffsetX?: number | number[];
|
|
125
|
-
failOffsetY?: number | number[];
|
|
126
|
-
failOffsetX?: number | number[];
|
|
127
|
-
minDist?: number;
|
|
128
|
-
minVelocity?: number;
|
|
129
|
-
minVelocityX?: number;
|
|
130
|
-
minVelocityY?: number;
|
|
131
|
-
minPointers?: number;
|
|
132
|
-
maxPointers?: number;
|
|
133
|
-
avgTouches?: boolean;
|
|
134
|
-
enableTrackpadTwoFingerGesture?: boolean;
|
|
135
|
-
}
|
|
136
|
-
export declare type PanGestureHandler = typeof PanGestureHandler;
|
|
137
|
-
export declare const PanGestureHandler: React.ComponentType<PanGestureHandlerProps & React.RefAttributes<any>>;
|
|
138
|
-
export declare type PinchGestureHandlerEventPayload = {
|
|
139
|
-
scale: number;
|
|
140
|
-
focalX: number;
|
|
141
|
-
focalY: number;
|
|
142
|
-
velocity: number;
|
|
143
|
-
};
|
|
144
|
-
export interface PinchGestureHandlerProps extends BaseGestureHandlerProps<PinchGestureHandlerEventPayload> {
|
|
145
|
-
}
|
|
146
|
-
export declare type PinchGestureHandler = typeof PinchGestureHandler;
|
|
147
|
-
export declare const PinchGestureHandler: React.ComponentType<PinchGestureHandlerProps & React.RefAttributes<any>>;
|
|
148
|
-
export declare type RotationGestureHandlerEventPayload = {
|
|
149
|
-
rotation: number;
|
|
150
|
-
anchorX: number;
|
|
151
|
-
anchorY: number;
|
|
152
|
-
velocity: number;
|
|
153
|
-
};
|
|
154
|
-
export interface RotationGestureHandlerProps extends BaseGestureHandlerProps<RotationGestureHandlerEventPayload> {
|
|
155
|
-
}
|
|
156
|
-
export declare type RotationGestureHandler = typeof RotationGestureHandler;
|
|
157
|
-
export declare const RotationGestureHandler: React.ComponentType<RotationGestureHandlerProps & React.RefAttributes<any>>;
|
|
158
|
-
export {};
|
|
@@ -1,511 +0,0 @@
|
|
|
1
|
-
// Previous types exported gesture handlers as classes which creates an interface and variable, both named the same as class.
|
|
2
|
-
// Without those types, we'd introduce breaking change, forcing users to prefix every handler type specification with typeof
|
|
3
|
-
// e.g. React.createRef<TapGestureHandler> -> React.createRef<typeof TapGestureHandler>.
|
|
4
|
-
// See https://www.typescriptlang.org/docs/handbook/classes.html#constructor-functions for reference.
|
|
5
|
-
import * as React from 'react';
|
|
6
|
-
|
|
7
|
-
import createHandler from './createHandler';
|
|
8
|
-
import PlatformConstants from '../PlatformConstants';
|
|
9
|
-
import { State } from '../State';
|
|
10
|
-
import { ValueOf } from '../typeUtils';
|
|
11
|
-
|
|
12
|
-
export interface GestureEventPayload {
|
|
13
|
-
handlerTag: number;
|
|
14
|
-
numberOfPointers: number;
|
|
15
|
-
state: ValueOf<typeof State>;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export interface HandlerStateChangeEventPayload {
|
|
19
|
-
handlerTag: number;
|
|
20
|
-
numberOfPointers: number;
|
|
21
|
-
state: ValueOf<typeof State>;
|
|
22
|
-
oldState: ValueOf<typeof State>;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
//TODO(TS) events in handlers
|
|
26
|
-
|
|
27
|
-
export interface GestureEvent<ExtraEventPayloadT = Record<string, unknown>> {
|
|
28
|
-
nativeEvent: Readonly<GestureEventPayload & ExtraEventPayloadT>;
|
|
29
|
-
}
|
|
30
|
-
export interface HandlerStateChangeEvent<
|
|
31
|
-
ExtraEventPayloadT = Record<string, unknown>
|
|
32
|
-
> {
|
|
33
|
-
nativeEvent: Readonly<HandlerStateChangeEventPayload & ExtraEventPayloadT>;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// Events payloads are types instead of interfaces due to TS limitation.
|
|
37
|
-
// See https://github.com/microsoft/TypeScript/issues/15300 for more info.
|
|
38
|
-
export type BaseGestureHandlerProps<
|
|
39
|
-
ExtraEventPayloadT extends Record<string, unknown> = Record<string, unknown>
|
|
40
|
-
> = {
|
|
41
|
-
id?: string;
|
|
42
|
-
enabled?: boolean;
|
|
43
|
-
minPointers?: number;
|
|
44
|
-
waitFor?: React.Ref<unknown> | React.Ref<unknown>[];
|
|
45
|
-
simultaneousHandlers?: React.Ref<unknown> | React.Ref<unknown>[];
|
|
46
|
-
shouldCancelWhenOutside?: boolean;
|
|
47
|
-
hitSlop?:
|
|
48
|
-
| number
|
|
49
|
-
// TODO(TS) take into consideration types from GestureHandler#setHitSlop
|
|
50
|
-
| Partial<
|
|
51
|
-
Record<
|
|
52
|
-
'left' | 'right' | 'top' | 'bottom' | 'vertical' | 'horizontal',
|
|
53
|
-
number
|
|
54
|
-
>
|
|
55
|
-
>
|
|
56
|
-
| Record<'width' | 'left', number>
|
|
57
|
-
| Record<'width' | 'right', number>
|
|
58
|
-
| Record<'height' | 'top', number>
|
|
59
|
-
| Record<'height' | 'bottom', number>;
|
|
60
|
-
// TODO(TS) - fix event types
|
|
61
|
-
onBegan?: (event: HandlerStateChangeEvent) => void;
|
|
62
|
-
onFailed?: (event: HandlerStateChangeEvent) => void;
|
|
63
|
-
onCancelled?: (event: HandlerStateChangeEvent) => void;
|
|
64
|
-
onActivated?: (event: HandlerStateChangeEvent) => void;
|
|
65
|
-
onEnded?: (event: HandlerStateChangeEvent) => void;
|
|
66
|
-
|
|
67
|
-
//TODO(TS) consider using NativeSyntheticEvent
|
|
68
|
-
onGestureEvent?: (event: GestureEvent<ExtraEventPayloadT>) => void;
|
|
69
|
-
onHandlerStateChange?: (
|
|
70
|
-
event: HandlerStateChangeEvent<ExtraEventPayloadT>
|
|
71
|
-
) => void;
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
export const baseProps = [
|
|
75
|
-
'id',
|
|
76
|
-
'enabled',
|
|
77
|
-
'minPointers',
|
|
78
|
-
'waitFor',
|
|
79
|
-
'simultaneousHandlers',
|
|
80
|
-
'shouldCancelWhenOutside',
|
|
81
|
-
'hitSlop',
|
|
82
|
-
'onBegan',
|
|
83
|
-
'onFailed',
|
|
84
|
-
'onCancelled',
|
|
85
|
-
'onActivated',
|
|
86
|
-
'onEnded',
|
|
87
|
-
'onGestureEvent',
|
|
88
|
-
'onHandlerStateChange',
|
|
89
|
-
] as const;
|
|
90
|
-
|
|
91
|
-
export type TapGestureHandlerEventPayload = {
|
|
92
|
-
x: number;
|
|
93
|
-
y: number;
|
|
94
|
-
absoluteX: number;
|
|
95
|
-
absoluteY: number;
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
export interface TapGestureHandlerProps
|
|
99
|
-
extends BaseGestureHandlerProps<TapGestureHandlerEventPayload> {
|
|
100
|
-
minPointers?: number;
|
|
101
|
-
maxDurationMs?: number;
|
|
102
|
-
maxDelayMs?: number;
|
|
103
|
-
numberOfTaps?: number;
|
|
104
|
-
maxDeltaX?: number;
|
|
105
|
-
maxDeltaY?: number;
|
|
106
|
-
maxDist?: number;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export type TapGestureHandler = typeof TapGestureHandler;
|
|
110
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
|
|
111
|
-
export const TapGestureHandler = createHandler<
|
|
112
|
-
TapGestureHandlerProps,
|
|
113
|
-
TapGestureHandlerEventPayload
|
|
114
|
-
>({
|
|
115
|
-
name: 'TapGestureHandler',
|
|
116
|
-
allowedProps: [
|
|
117
|
-
...baseProps,
|
|
118
|
-
'maxDurationMs',
|
|
119
|
-
'maxDelayMs',
|
|
120
|
-
'numberOfTaps',
|
|
121
|
-
'maxDeltaX',
|
|
122
|
-
'maxDeltaY',
|
|
123
|
-
'maxDist',
|
|
124
|
-
'minPointers',
|
|
125
|
-
] as const,
|
|
126
|
-
config: {},
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
export type FlingGestureHandlerEventPayload = {
|
|
130
|
-
x: number;
|
|
131
|
-
y: number;
|
|
132
|
-
absoluteX: number;
|
|
133
|
-
absoluteY: number;
|
|
134
|
-
};
|
|
135
|
-
|
|
136
|
-
export interface FlingGestureHandlerProps
|
|
137
|
-
extends BaseGestureHandlerProps<FlingGestureHandlerEventPayload> {
|
|
138
|
-
direction?: number;
|
|
139
|
-
numberOfPointers?: number;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
export type FlingGestureHandler = typeof FlingGestureHandler;
|
|
143
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
|
|
144
|
-
export const FlingGestureHandler = createHandler<
|
|
145
|
-
FlingGestureHandlerProps,
|
|
146
|
-
FlingGestureHandlerEventPayload
|
|
147
|
-
>({
|
|
148
|
-
name: 'FlingGestureHandler',
|
|
149
|
-
allowedProps: [...baseProps, 'numberOfPointers', 'direction'] as const,
|
|
150
|
-
config: {},
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
class ForceTouchFallback extends React.Component {
|
|
154
|
-
static forceTouchAvailable = false;
|
|
155
|
-
componentDidMount() {
|
|
156
|
-
console.warn(
|
|
157
|
-
'ForceTouchGestureHandler is not available on this platform. Please use ForceTouchGestureHandler.forceTouchAvailable to conditionally render other components that would provide a fallback behavior specific to your usecase'
|
|
158
|
-
);
|
|
159
|
-
}
|
|
160
|
-
render() {
|
|
161
|
-
return this.props.children;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
export type ForceTouchGestureHandlerEventPayload = {
|
|
166
|
-
x: number;
|
|
167
|
-
y: number;
|
|
168
|
-
absoluteX: number;
|
|
169
|
-
absoluteY: number;
|
|
170
|
-
force: number;
|
|
171
|
-
};
|
|
172
|
-
|
|
173
|
-
export interface ForceTouchGestureHandlerProps
|
|
174
|
-
extends BaseGestureHandlerProps<ForceTouchGestureHandlerEventPayload> {
|
|
175
|
-
minForce?: number;
|
|
176
|
-
maxForce?: number;
|
|
177
|
-
feedbackOnActivation?: boolean;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
export type ForceTouchGestureHandler = typeof ForceTouchGestureHandler & {
|
|
181
|
-
forceTouchAvailable: boolean;
|
|
182
|
-
};
|
|
183
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
|
|
184
|
-
export const ForceTouchGestureHandler = PlatformConstants?.forceTouchAvailable
|
|
185
|
-
? createHandler<
|
|
186
|
-
ForceTouchGestureHandlerProps,
|
|
187
|
-
ForceTouchGestureHandlerEventPayload
|
|
188
|
-
>({
|
|
189
|
-
name: 'ForceTouchGestureHandler',
|
|
190
|
-
allowedProps: [
|
|
191
|
-
...baseProps,
|
|
192
|
-
'minForce',
|
|
193
|
-
'maxForce',
|
|
194
|
-
'feedbackOnActivation',
|
|
195
|
-
] as const,
|
|
196
|
-
config: {},
|
|
197
|
-
})
|
|
198
|
-
: ForceTouchFallback;
|
|
199
|
-
|
|
200
|
-
(ForceTouchGestureHandler as ForceTouchGestureHandler).forceTouchAvailable =
|
|
201
|
-
PlatformConstants?.forceTouchAvailable || false;
|
|
202
|
-
|
|
203
|
-
export type LongPressGestureHandlerEventPayload = {
|
|
204
|
-
x: number;
|
|
205
|
-
y: number;
|
|
206
|
-
absoluteX: number;
|
|
207
|
-
absoluteY: number;
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
export interface LongPressGestureHandlerProps
|
|
211
|
-
extends BaseGestureHandlerProps<LongPressGestureHandlerEventPayload> {
|
|
212
|
-
minDurationMs?: number;
|
|
213
|
-
maxDist?: number;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
export type LongPressGestureHandler = typeof LongPressGestureHandler;
|
|
217
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
|
|
218
|
-
export const LongPressGestureHandler = createHandler<
|
|
219
|
-
LongPressGestureHandlerProps,
|
|
220
|
-
LongPressGestureHandlerEventPayload
|
|
221
|
-
>({
|
|
222
|
-
name: 'LongPressGestureHandler',
|
|
223
|
-
allowedProps: [...baseProps, 'minDurationMs', 'maxDist'] as const,
|
|
224
|
-
config: {},
|
|
225
|
-
});
|
|
226
|
-
|
|
227
|
-
function validatePanGestureHandlerProps(props: PanGestureHandlerProps) {
|
|
228
|
-
if (props.minDeltaX && props.activeOffsetX) {
|
|
229
|
-
throw new Error(
|
|
230
|
-
`It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd`
|
|
231
|
-
);
|
|
232
|
-
}
|
|
233
|
-
if (props.maxDeltaX && props.failOffsetX) {
|
|
234
|
-
throw new Error(
|
|
235
|
-
`It's not supported use minDeltaX with activeOffsetXStart or activeOffsetXEnd`
|
|
236
|
-
);
|
|
237
|
-
}
|
|
238
|
-
if (props.minDeltaY && props.activeOffsetY) {
|
|
239
|
-
throw new Error(
|
|
240
|
-
`It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd`
|
|
241
|
-
);
|
|
242
|
-
}
|
|
243
|
-
if (props.maxDeltaY && props.failOffsetY) {
|
|
244
|
-
throw new Error(
|
|
245
|
-
`It's not supported use minDeltaX with activeOffsetYStart or activeOffsetYEnd`
|
|
246
|
-
);
|
|
247
|
-
}
|
|
248
|
-
if (
|
|
249
|
-
Array.isArray(props.activeOffsetX) &&
|
|
250
|
-
(props.activeOffsetX[0] > 0 || props.activeOffsetX[1] < 0)
|
|
251
|
-
) {
|
|
252
|
-
throw new Error(
|
|
253
|
-
`First element of activeOffsetX should be negative, a the second one should be positive`
|
|
254
|
-
);
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
if (
|
|
258
|
-
Array.isArray(props.activeOffsetY) &&
|
|
259
|
-
(props.activeOffsetY[0] > 0 || props.activeOffsetY[1] < 0)
|
|
260
|
-
) {
|
|
261
|
-
throw new Error(
|
|
262
|
-
`First element of activeOffsetY should be negative, a the second one should be positive`
|
|
263
|
-
);
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
if (
|
|
267
|
-
Array.isArray(props.failOffsetX) &&
|
|
268
|
-
(props.failOffsetX[0] > 0 || props.failOffsetX[1] < 0)
|
|
269
|
-
) {
|
|
270
|
-
throw new Error(
|
|
271
|
-
`First element of failOffsetX should be negative, a the second one should be positive`
|
|
272
|
-
);
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
if (
|
|
276
|
-
Array.isArray(props.failOffsetY) &&
|
|
277
|
-
(props.failOffsetY[0] > 0 || props.failOffsetY[1] < 0)
|
|
278
|
-
) {
|
|
279
|
-
throw new Error(
|
|
280
|
-
`First element of failOffsetY should be negative, a the second one should be positive`
|
|
281
|
-
);
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
function transformPanGestureHandlerProps(props: PanGestureHandlerProps) {
|
|
286
|
-
type InternalPanGHKeys =
|
|
287
|
-
| 'activeOffsetXStart'
|
|
288
|
-
| 'activeOffsetXEnd'
|
|
289
|
-
| 'failOffsetXStart'
|
|
290
|
-
| 'failOffsetXEnd'
|
|
291
|
-
| 'activeOffsetYStart'
|
|
292
|
-
| 'activeOffsetYEnd'
|
|
293
|
-
| 'failOffsetYStart'
|
|
294
|
-
| 'failOffsetYEnd';
|
|
295
|
-
type PanGestureHandlerInternalProps = PanGestureHandlerProps &
|
|
296
|
-
Partial<Record<InternalPanGHKeys, number>>;
|
|
297
|
-
|
|
298
|
-
const res: PanGestureHandlerInternalProps = { ...props };
|
|
299
|
-
if (props.minDeltaX !== undefined) {
|
|
300
|
-
delete res.minDeltaX;
|
|
301
|
-
res.activeOffsetXStart = -props.minDeltaX;
|
|
302
|
-
res.activeOffsetXEnd = props.minDeltaX;
|
|
303
|
-
}
|
|
304
|
-
if (props.maxDeltaX !== undefined) {
|
|
305
|
-
delete res.maxDeltaX;
|
|
306
|
-
res.failOffsetXStart = -props.maxDeltaX;
|
|
307
|
-
res.failOffsetXEnd = props.maxDeltaX;
|
|
308
|
-
}
|
|
309
|
-
if (props.minOffsetX !== undefined) {
|
|
310
|
-
delete res.minOffsetX;
|
|
311
|
-
if (props.minOffsetX < 0) {
|
|
312
|
-
res.activeOffsetXStart = props.minOffsetX;
|
|
313
|
-
} else {
|
|
314
|
-
res.activeOffsetXEnd = props.minOffsetX;
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
if (props.minDeltaY !== undefined) {
|
|
319
|
-
delete res.minDeltaY;
|
|
320
|
-
res.activeOffsetYStart = -props.minDeltaY;
|
|
321
|
-
res.activeOffsetYEnd = props.minDeltaY;
|
|
322
|
-
}
|
|
323
|
-
if (props.maxDeltaY !== undefined) {
|
|
324
|
-
delete res.maxDeltaY;
|
|
325
|
-
res.failOffsetYStart = -props.maxDeltaY;
|
|
326
|
-
res.failOffsetYEnd = props.maxDeltaY;
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
if (props.minOffsetY !== undefined) {
|
|
330
|
-
delete res.minOffsetY;
|
|
331
|
-
if (props.minOffsetY < 0) {
|
|
332
|
-
res.activeOffsetYStart = props.minOffsetY;
|
|
333
|
-
} else {
|
|
334
|
-
res.activeOffsetYEnd = props.minOffsetY;
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
if (props.activeOffsetX !== undefined) {
|
|
339
|
-
delete res.activeOffsetX;
|
|
340
|
-
if (Array.isArray(props.activeOffsetX)) {
|
|
341
|
-
res.activeOffsetXStart = props.activeOffsetX[0];
|
|
342
|
-
res.activeOffsetXEnd = props.activeOffsetX[1];
|
|
343
|
-
} else if (props.activeOffsetX < 0) {
|
|
344
|
-
res.activeOffsetXStart = props.activeOffsetX;
|
|
345
|
-
} else {
|
|
346
|
-
res.activeOffsetXEnd = props.activeOffsetX;
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
if (props.activeOffsetY !== undefined) {
|
|
351
|
-
delete res.activeOffsetY;
|
|
352
|
-
if (Array.isArray(props.activeOffsetY)) {
|
|
353
|
-
res.activeOffsetYStart = props.activeOffsetY[0];
|
|
354
|
-
res.activeOffsetYEnd = props.activeOffsetY[1];
|
|
355
|
-
} else if (props.activeOffsetY < 0) {
|
|
356
|
-
res.activeOffsetYStart = props.activeOffsetY;
|
|
357
|
-
} else {
|
|
358
|
-
res.activeOffsetYEnd = props.activeOffsetY;
|
|
359
|
-
}
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
if (props.failOffsetX !== undefined) {
|
|
363
|
-
delete res.failOffsetX;
|
|
364
|
-
if (Array.isArray(props.failOffsetX)) {
|
|
365
|
-
res.failOffsetXStart = props.failOffsetX[0];
|
|
366
|
-
res.failOffsetXEnd = props.failOffsetX[1];
|
|
367
|
-
} else if (props.failOffsetX < 0) {
|
|
368
|
-
res.failOffsetXStart = props.failOffsetX;
|
|
369
|
-
} else {
|
|
370
|
-
res.failOffsetXEnd = props.failOffsetX;
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
if (props.failOffsetY !== undefined) {
|
|
375
|
-
delete res.failOffsetY;
|
|
376
|
-
if (Array.isArray(props.failOffsetY)) {
|
|
377
|
-
res.failOffsetYStart = props.failOffsetY[0];
|
|
378
|
-
res.failOffsetYEnd = props.failOffsetY[1];
|
|
379
|
-
} else if (props.failOffsetY < 0) {
|
|
380
|
-
res.failOffsetYStart = props.failOffsetY;
|
|
381
|
-
} else {
|
|
382
|
-
res.failOffsetYEnd = props.failOffsetY;
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
return res;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
function managePanProps(props: PanGestureHandlerProps) {
|
|
390
|
-
if (__DEV__) {
|
|
391
|
-
validatePanGestureHandlerProps(props);
|
|
392
|
-
}
|
|
393
|
-
return transformPanGestureHandlerProps(props);
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
export type PanGestureHandlerEventPayload = {
|
|
397
|
-
x: number;
|
|
398
|
-
y: number;
|
|
399
|
-
absoluteX: number;
|
|
400
|
-
absoluteY: number;
|
|
401
|
-
translationX: number;
|
|
402
|
-
translationY: number;
|
|
403
|
-
velocityX: number;
|
|
404
|
-
velocityY: number;
|
|
405
|
-
};
|
|
406
|
-
|
|
407
|
-
export interface PanGestureHandlerProps
|
|
408
|
-
extends BaseGestureHandlerProps<PanGestureHandlerEventPayload> {
|
|
409
|
-
/** @deprecated use activeOffsetX*/
|
|
410
|
-
minDeltaX?: number;
|
|
411
|
-
/** @deprecated use activeOffsetY*/
|
|
412
|
-
minDeltaY?: number;
|
|
413
|
-
/** @deprecated use failOffsetX*/
|
|
414
|
-
maxDeltaX?: number;
|
|
415
|
-
/** @deprecated use failOffsetY*/
|
|
416
|
-
maxDeltaY?: number;
|
|
417
|
-
/** @deprecated use activeOffsetX*/
|
|
418
|
-
minOffsetX?: number;
|
|
419
|
-
/** @deprecated use failOffsetY*/
|
|
420
|
-
minOffsetY?: number;
|
|
421
|
-
activeOffsetY?: number | number[];
|
|
422
|
-
activeOffsetX?: number | number[];
|
|
423
|
-
failOffsetY?: number | number[];
|
|
424
|
-
failOffsetX?: number | number[];
|
|
425
|
-
minDist?: number;
|
|
426
|
-
minVelocity?: number;
|
|
427
|
-
minVelocityX?: number;
|
|
428
|
-
minVelocityY?: number;
|
|
429
|
-
minPointers?: number;
|
|
430
|
-
maxPointers?: number;
|
|
431
|
-
avgTouches?: boolean;
|
|
432
|
-
enableTrackpadTwoFingerGesture?: boolean;
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
export type PanGestureHandler = typeof PanGestureHandler;
|
|
436
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
|
|
437
|
-
export const PanGestureHandler = createHandler<
|
|
438
|
-
PanGestureHandlerProps,
|
|
439
|
-
PanGestureHandlerEventPayload
|
|
440
|
-
>({
|
|
441
|
-
name: 'PanGestureHandler',
|
|
442
|
-
allowedProps: [
|
|
443
|
-
...baseProps,
|
|
444
|
-
'activeOffsetY',
|
|
445
|
-
'activeOffsetX',
|
|
446
|
-
'failOffsetY',
|
|
447
|
-
'failOffsetX',
|
|
448
|
-
'minDist',
|
|
449
|
-
'minVelocity',
|
|
450
|
-
'minVelocityX',
|
|
451
|
-
'minVelocityY',
|
|
452
|
-
'minPointers',
|
|
453
|
-
'maxPointers',
|
|
454
|
-
'avgTouches',
|
|
455
|
-
'enableTrackpadTwoFingerGesture',
|
|
456
|
-
] as const,
|
|
457
|
-
config: {},
|
|
458
|
-
transformProps: managePanProps,
|
|
459
|
-
customNativeProps: [
|
|
460
|
-
'activeOffsetYStart',
|
|
461
|
-
'activeOffsetYEnd',
|
|
462
|
-
'activeOffsetXStart',
|
|
463
|
-
'activeOffsetXEnd',
|
|
464
|
-
'failOffsetYStart',
|
|
465
|
-
'failOffsetYEnd',
|
|
466
|
-
'failOffsetXStart',
|
|
467
|
-
'failOffsetXEnd',
|
|
468
|
-
],
|
|
469
|
-
});
|
|
470
|
-
|
|
471
|
-
export type PinchGestureHandlerEventPayload = {
|
|
472
|
-
scale: number;
|
|
473
|
-
focalX: number;
|
|
474
|
-
focalY: number;
|
|
475
|
-
velocity: number;
|
|
476
|
-
};
|
|
477
|
-
|
|
478
|
-
export interface PinchGestureHandlerProps
|
|
479
|
-
extends BaseGestureHandlerProps<PinchGestureHandlerEventPayload> {}
|
|
480
|
-
|
|
481
|
-
export type PinchGestureHandler = typeof PinchGestureHandler;
|
|
482
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
|
|
483
|
-
export const PinchGestureHandler = createHandler<
|
|
484
|
-
PinchGestureHandlerProps,
|
|
485
|
-
PinchGestureHandlerEventPayload
|
|
486
|
-
>({
|
|
487
|
-
name: 'PinchGestureHandler',
|
|
488
|
-
allowedProps: baseProps,
|
|
489
|
-
config: {},
|
|
490
|
-
});
|
|
491
|
-
|
|
492
|
-
export type RotationGestureHandlerEventPayload = {
|
|
493
|
-
rotation: number;
|
|
494
|
-
anchorX: number;
|
|
495
|
-
anchorY: number;
|
|
496
|
-
velocity: number;
|
|
497
|
-
};
|
|
498
|
-
|
|
499
|
-
export interface RotationGestureHandlerProps
|
|
500
|
-
extends BaseGestureHandlerProps<RotationGestureHandlerEventPayload> {}
|
|
501
|
-
|
|
502
|
-
export type RotationGestureHandler = typeof RotationGestureHandler;
|
|
503
|
-
// eslint-disable-next-line @typescript-eslint/no-redeclare -- backward compatibility; see description on the top of this file
|
|
504
|
-
export const RotationGestureHandler = createHandler<
|
|
505
|
-
RotationGestureHandlerProps,
|
|
506
|
-
RotationGestureHandlerEventPayload
|
|
507
|
-
>({
|
|
508
|
-
name: 'RotationGestureHandler',
|
|
509
|
-
allowedProps: baseProps,
|
|
510
|
-
config: {},
|
|
511
|
-
});
|