@react-native-oh-tpl/react-native-gesture-handler 2.12.1-0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DrawerLayout/package.json +6 -0
- package/LICENSE +21 -0
- package/README.md +62 -0
- package/RNGestureHandler.podspec +44 -0
- package/Swipeable/package.json +6 -0
- package/android/build.gradle +209 -0
- package/android/common/src/main/java/com/swmansion/common/GestureHandlerStateManager.kt +5 -0
- package/android/fabric/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java +29 -0
- package/android/fabric/src/main/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +12 -0
- package/android/gradle.properties +19 -0
- package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +10 -0
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerDelegate.java +50 -0
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerButtonManagerInterface.java +23 -0
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerDelegate.java +25 -0
- package/android/paper/src/main/java/com/facebook/react/viewmanagers/RNGestureHandlerRootViewManagerInterface.java +16 -0
- package/android/paper/src/main/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +13 -0
- package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +17 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +21 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/FlingGestureHandler.kt +100 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +807 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerInteractionController.kt +8 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +671 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerRegistry.kt +8 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureUtils.kt +47 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/HoverGestureHandler.kt +120 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/LongPressGestureHandler.kt +100 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/ManualGestureHandler.kt +11 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/NativeViewGestureHandler.kt +257 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/OnTouchEventListener.kt +9 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/PanGestureHandler.kt +322 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/PinchGestureHandler.kt +103 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/PointerEventsConfig.kt +23 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureDetector.kt +125 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/RotationGestureHandler.kt +93 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/ScaleGestureDetector.java +558 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/TapGestureHandler.kt +168 -0
- package/android/src/main/java/com/swmansion/gesturehandler/core/ViewConfigurationHelper.kt +10 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/Extensions.kt +16 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +423 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +15 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +75 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +74 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +702 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +100 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +142 -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 +78 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +51 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +78 -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/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/FlingGestureHandlerEventDataBuilder.kt +30 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/GestureHandlerEventDataBuilder.kt +22 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/HoverGestureHandlerEventDataBuilder.kt +30 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/LongPressGestureHandlerEventDataBuilder.kt +33 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/ManualGestureHandlerEventDataBuilder.kt +5 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/NativeGestureHandlerEventDataBuilder.kt +18 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/PanGestureHandlerEventDataBuilder.kt +42 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/PinchGestureHandlerEventDataBuilder.kt +30 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/RotationGestureHandlerEventDataBuilder.kt +30 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/eventbuilders/TapGestureHandlerEventDataBuilder.kt +30 -0
- package/android/src/main/jni/CMakeLists.txt +37 -0
- package/android/src/main/jni/cpp-adapter.cpp +44 -0
- package/ios/Handlers/RNFlingHandler.h +4 -0
- package/ios/Handlers/RNFlingHandler.m +152 -0
- package/ios/Handlers/RNForceTouchHandler.h +4 -0
- package/ios/Handlers/RNForceTouchHandler.m +175 -0
- package/ios/Handlers/RNHoverHandler.h +12 -0
- package/ios/Handlers/RNHoverHandler.m +153 -0
- package/ios/Handlers/RNLongPressHandler.h +12 -0
- package/ios/Handlers/RNLongPressHandler.m +183 -0
- package/ios/Handlers/RNManualHandler.h +4 -0
- package/ios/Handlers/RNManualHandler.m +88 -0
- package/ios/Handlers/RNNativeViewHandler.h +15 -0
- package/ios/Handlers/RNNativeViewHandler.mm +193 -0
- package/ios/Handlers/RNPanHandler.h +12 -0
- package/ios/Handlers/RNPanHandler.m +331 -0
- package/ios/Handlers/RNPinchHandler.h +12 -0
- package/ios/Handlers/RNPinchHandler.m +95 -0
- package/ios/Handlers/RNRotationHandler.h +12 -0
- package/ios/Handlers/RNRotationHandler.m +93 -0
- package/ios/Handlers/RNTapHandler.h +12 -0
- package/ios/Handlers/RNTapHandler.m +265 -0
- package/ios/RNGHTouchEventType.h +9 -0
- package/ios/RNGestureHandler.h +90 -0
- package/ios/RNGestureHandler.m +493 -0
- package/ios/RNGestureHandler.xcodeproj/project.pbxproj +690 -0
- package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- package/ios/RNGestureHandlerActionType.h +10 -0
- package/ios/RNGestureHandlerButton.h +19 -0
- package/ios/RNGestureHandlerButton.m +77 -0
- package/ios/RNGestureHandlerButtonComponentView.h +17 -0
- package/ios/RNGestureHandlerButtonComponentView.mm +64 -0
- package/ios/RNGestureHandlerButtonManager.h +5 -0
- package/ios/RNGestureHandlerButtonManager.m +34 -0
- package/ios/RNGestureHandlerDirection.h +8 -0
- package/ios/RNGestureHandlerEvents.h +65 -0
- package/ios/RNGestureHandlerEvents.m +260 -0
- package/ios/RNGestureHandlerManager.h +35 -0
- package/ios/RNGestureHandlerManager.mm +367 -0
- package/ios/RNGestureHandlerModule.h +7 -0
- package/ios/RNGestureHandlerModule.mm +320 -0
- package/ios/RNGestureHandlerPointerTracker.h +25 -0
- package/ios/RNGestureHandlerPointerTracker.m +243 -0
- package/ios/RNGestureHandlerRegistry.h +21 -0
- package/ios/RNGestureHandlerRegistry.m +63 -0
- package/ios/RNGestureHandlerRootViewComponentView.mm +21 -0
- package/ios/RNGestureHandlerState.h +10 -0
- package/ios/RNGestureHandlerStateManager.h +5 -0
- package/ios/RNManualActivationRecognizer.h +10 -0
- package/ios/RNManualActivationRecognizer.m +88 -0
- package/ios/RNRootViewGestureRecognizer.h +17 -0
- package/ios/RNRootViewGestureRecognizer.m +106 -0
- package/jest-utils/package.json +6 -0
- package/jestSetup.js +7 -0
- package/lib/commonjs/ActionType.js +15 -0
- package/lib/commonjs/ActionType.js.map +1 -0
- package/lib/commonjs/Directions.js +15 -0
- package/lib/commonjs/Directions.js.map +1 -0
- package/lib/commonjs/EnableNewWebImplementation.js +35 -0
- package/lib/commonjs/EnableNewWebImplementation.js.map +1 -0
- package/lib/commonjs/GestureHandlerRootViewContext.js +15 -0
- package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -0
- package/lib/commonjs/PlatformConstants.js +15 -0
- package/lib/commonjs/PlatformConstants.js.map +1 -0
- package/lib/commonjs/PlatformConstants.web.js +14 -0
- package/lib/commonjs/PlatformConstants.web.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.js +29 -0
- package/lib/commonjs/RNGestureHandlerModule.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.macos.js +149 -0
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.web.js +163 -0
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.windows.js +158 -0
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
- 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/State.js +18 -0
- package/lib/commonjs/State.js.map +1 -0
- package/lib/commonjs/TouchEventType.js +16 -0
- package/lib/commonjs/TouchEventType.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +566 -0
- package/lib/commonjs/components/DrawerLayout.js.map +1 -0
- package/lib/commonjs/components/GestureButtons.js +240 -0
- package/lib/commonjs/components/GestureButtons.js.map +1 -0
- package/lib/commonjs/components/GestureComponents.js +115 -0
- package/lib/commonjs/components/GestureComponents.js.map +1 -0
- package/lib/commonjs/components/GestureComponents.web.js +52 -0
- package/lib/commonjs/components/GestureComponents.web.js.map +1 -0
- package/lib/commonjs/components/GestureHandlerButton.js +14 -0
- package/lib/commonjs/components/GestureHandlerButton.js.map +1 -0
- package/lib/commonjs/components/GestureHandlerButton.web.js +24 -0
- package/lib/commonjs/components/GestureHandlerButton.web.js.map +1 -0
- package/lib/commonjs/components/GestureHandlerRootView.android.js +31 -0
- package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -0
- package/lib/commonjs/components/GestureHandlerRootView.js +31 -0
- package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -0
- package/lib/commonjs/components/GestureHandlerRootView.web.js +25 -0
- package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -0
- package/lib/commonjs/components/Swipeable.js +408 -0
- package/lib/commonjs/components/Swipeable.js.map +1 -0
- package/lib/commonjs/components/gestureHandlerRootHOC.js +40 -0
- package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -0
- package/lib/commonjs/components/touchables/GenericTouchable.js +289 -0
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -0
- package/lib/commonjs/components/touchables/TouchableHighlight.js +109 -0
- package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -0
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +100 -0
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -0
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +12 -0
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +1 -0
- package/lib/commonjs/components/touchables/TouchableOpacity.js +77 -0
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -0
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +26 -0
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -0
- package/lib/commonjs/components/touchables/index.js +40 -0
- package/lib/commonjs/components/touchables/index.js.map +1 -0
- package/lib/commonjs/getReactNativeVersion.js +22 -0
- package/lib/commonjs/getReactNativeVersion.js.map +1 -0
- package/lib/commonjs/getReactNativeVersion.web.js +11 -0
- package/lib/commonjs/getReactNativeVersion.web.js.map +1 -0
- package/lib/commonjs/getShadowNodeFromRef.js +27 -0
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -0
- package/lib/commonjs/getShadowNodeFromRef.web.js +15 -0
- package/lib/commonjs/getShadowNodeFromRef.web.js.map +1 -0
- package/lib/commonjs/ghQueueMicrotask.js +12 -0
- package/lib/commonjs/ghQueueMicrotask.js.map +1 -0
- package/lib/commonjs/handlers/FlingGestureHandler.js +25 -0
- package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +49 -0
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/LongPressGestureHandler.js +27 -0
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/NativeViewGestureHandler.js +27 -0
- package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/PanGestureHandler.js +123 -0
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/PinchGestureHandler.js +23 -0
- package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -0
- 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/RotationGestureHandler.js +23 -0
- package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/TapGestureHandler.js +27 -0
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -0
- package/lib/commonjs/handlers/createHandler.js +464 -0
- package/lib/commonjs/handlers/createHandler.js.map +1 -0
- package/lib/commonjs/handlers/createNativeWrapper.js +74 -0
- package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -0
- package/lib/commonjs/handlers/gestureHandlerCommon.js +103 -0
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -0
- package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +6 -0
- package/lib/commonjs/handlers/gestureHandlerTypesCompat.js.map +1 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js +669 -0
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -0
- package/lib/commonjs/handlers/gestures/eventReceiver.js +147 -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 +241 -0
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gestureComposition.js +105 -0
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gestureObjects.js +90 -0
- package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +65 -0
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -0
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +32 -0
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -0
- package/lib/commonjs/handlers/gestures/hoverGesture.js +74 -0
- package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -0
- package/lib/commonjs/handlers/gestures/longPressGesture.js +35 -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 +149 -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 +37 -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 +60 -0
- package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -0
- package/lib/commonjs/handlers/handlersRegistry.js +67 -0
- package/lib/commonjs/handlers/handlersRegistry.js.map +1 -0
- package/lib/commonjs/index.js +266 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/init.js +32 -0
- package/lib/commonjs/init.js.map +1 -0
- package/lib/commonjs/jestUtils/index.js +20 -0
- package/lib/commonjs/jestUtils/index.js.map +1 -0
- package/lib/commonjs/jestUtils/jestUtils.js +375 -0
- package/lib/commonjs/jestUtils/jestUtils.js.map +1 -0
- package/lib/commonjs/mocks.js +66 -0
- package/lib/commonjs/mocks.js.map +1 -0
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +15 -0
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +15 -0
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -0
- package/lib/commonjs/typeUtils.js +2 -0
- package/lib/commonjs/typeUtils.js.map +1 -0
- package/lib/commonjs/utils.js +63 -0
- package/lib/commonjs/utils.js.map +1 -0
- package/lib/commonjs/web/constants.js +16 -0
- package/lib/commonjs/web/constants.js.map +1 -0
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +165 -0
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -0
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +156 -0
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +167 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/GestureHandler.js +794 -0
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/HoverGestureHandler.js +62 -0
- package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +151 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +61 -0
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +178 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/PanGestureHandler.js +448 -0
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +174 -0
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +186 -0
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/TapGestureHandler.js +280 -0
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -0
- package/lib/commonjs/web/interfaces.js +55 -0
- package/lib/commonjs/web/interfaces.js.map +1 -0
- package/lib/commonjs/web/tools/CircularBuffer.js +59 -0
- package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -0
- package/lib/commonjs/web/tools/EventManager.js +127 -0
- package/lib/commonjs/web/tools/EventManager.js.map +1 -0
- package/lib/commonjs/web/tools/GestureHandlerDelegate.js +6 -0
- package/lib/commonjs/web/tools/GestureHandlerDelegate.js.map +1 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +349 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -0
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +118 -0
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -0
- package/lib/commonjs/web/tools/InteractionManager.js +114 -0
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -0
- package/lib/commonjs/web/tools/LeastSquareSolver.js +204 -0
- package/lib/commonjs/web/tools/LeastSquareSolver.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/PointerEventManager.js +198 -0
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -0
- package/lib/commonjs/web/tools/PointerTracker.js +226 -0
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -0
- package/lib/commonjs/web/tools/TouchEventManager.js +138 -0
- package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -0
- package/lib/commonjs/web/tools/VelocityTracker.js +111 -0
- package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -0
- package/lib/commonjs/web/utils.js +15 -0
- package/lib/commonjs/web/utils.js.map +1 -0
- package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +105 -0
- package/lib/commonjs/web_hammer/DiscreteGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/DraggingGestureHandler.js +53 -0
- package/lib/commonjs/web_hammer/DraggingGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/Errors.js +16 -0
- package/lib/commonjs/web_hammer/Errors.js.map +1 -0
- package/lib/commonjs/web_hammer/FlingGestureHandler.js +170 -0
- package/lib/commonjs/web_hammer/FlingGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/GestureHandler.js +579 -0
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +54 -0
- package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/LongPressGestureHandler.js +71 -0
- package/lib/commonjs/web_hammer/LongPressGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +66 -0
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/NodeManager.js +46 -0
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -0
- package/lib/commonjs/web_hammer/PanGestureHandler.js +208 -0
- package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/PinchGestureHandler.js +40 -0
- package/lib/commonjs/web_hammer/PinchGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/PressGestureHandler.js +188 -0
- package/lib/commonjs/web_hammer/PressGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/RotationGestureHandler.js +44 -0
- package/lib/commonjs/web_hammer/RotationGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/TapGestureHandler.js +192 -0
- package/lib/commonjs/web_hammer/TapGestureHandler.js.map +1 -0
- package/lib/commonjs/web_hammer/constants.js +64 -0
- package/lib/commonjs/web_hammer/constants.js.map +1 -0
- package/lib/commonjs/web_hammer/utils.js +42 -0
- package/lib/commonjs/web_hammer/utils.js.map +1 -0
- package/lib/module/ActionType.js +7 -0
- package/lib/module/ActionType.js.map +1 -0
- package/lib/module/Directions.js +7 -0
- package/lib/module/Directions.js.map +1 -0
- package/lib/module/EnableNewWebImplementation.js +22 -0
- package/lib/module/EnableNewWebImplementation.js.map +1 -0
- package/lib/module/GestureHandlerRootViewContext.js +3 -0
- package/lib/module/GestureHandlerRootViewContext.js.map +1 -0
- package/lib/module/PlatformConstants.js +5 -0
- package/lib/module/PlatformConstants.js.map +1 -0
- package/lib/module/PlatformConstants.web.js +7 -0
- package/lib/module/PlatformConstants.web.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.js +19 -0
- package/lib/module/RNGestureHandlerModule.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.macos.js +110 -0
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.web.js +122 -0
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.windows.js +118 -0
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
- 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/State.js +10 -0
- package/lib/module/State.js.map +1 -0
- package/lib/module/TouchEventType.js +8 -0
- package/lib/module/TouchEventType.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +551 -0
- package/lib/module/components/DrawerLayout.js.map +1 -0
- package/lib/module/components/GestureButtons.js +206 -0
- package/lib/module/components/GestureButtons.js.map +1 -0
- package/lib/module/components/GestureComponents.js +90 -0
- package/lib/module/components/GestureComponents.js.map +1 -0
- package/lib/module/components/GestureComponents.web.js +28 -0
- package/lib/module/components/GestureComponents.web.js.map +1 -0
- package/lib/module/components/GestureHandlerButton.js +3 -0
- package/lib/module/components/GestureHandlerButton.js.map +1 -0
- package/lib/module/components/GestureHandlerButton.web.js +9 -0
- package/lib/module/components/GestureHandlerButton.web.js.map +1 -0
- package/lib/module/components/GestureHandlerRootView.android.js +14 -0
- package/lib/module/components/GestureHandlerRootView.android.js.map +1 -0
- package/lib/module/components/GestureHandlerRootView.js +14 -0
- package/lib/module/components/GestureHandlerRootView.js.map +1 -0
- package/lib/module/components/GestureHandlerRootView.web.js +9 -0
- package/lib/module/components/GestureHandlerRootView.web.js.map +1 -0
- package/lib/module/components/Swipeable.js +390 -0
- package/lib/module/components/Swipeable.js.map +1 -0
- package/lib/module/components/gestureHandlerRootHOC.js +22 -0
- package/lib/module/components/gestureHandlerRootHOC.js.map +1 -0
- package/lib/module/components/touchables/GenericTouchable.js +273 -0
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -0
- package/lib/module/components/touchables/TouchableHighlight.js +95 -0
- package/lib/module/components/touchables/TouchableHighlight.js.map +1 -0
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js +84 -0
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -0
- package/lib/module/components/touchables/TouchableNativeFeedback.js +3 -0
- package/lib/module/components/touchables/TouchableNativeFeedback.js.map +1 -0
- package/lib/module/components/touchables/TouchableOpacity.js +63 -0
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -0
- package/lib/module/components/touchables/TouchableWithoutFeedback.js +10 -0
- package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -0
- package/lib/module/components/touchables/index.js +5 -0
- package/lib/module/components/touchables/index.js.map +1 -0
- package/lib/module/getReactNativeVersion.js +10 -0
- package/lib/module/getReactNativeVersion.js.map +1 -0
- package/lib/module/getReactNativeVersion.web.js +4 -0
- package/lib/module/getReactNativeVersion.web.js.map +1 -0
- package/lib/module/getShadowNodeFromRef.js +20 -0
- package/lib/module/getShadowNodeFromRef.js.map +1 -0
- package/lib/module/getShadowNodeFromRef.web.js +8 -0
- package/lib/module/getShadowNodeFromRef.web.js.map +1 -0
- package/lib/module/ghQueueMicrotask.js +5 -0
- package/lib/module/ghQueueMicrotask.js.map +1 -0
- package/lib/module/handlers/FlingGestureHandler.js +11 -0
- package/lib/module/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/module/handlers/ForceTouchGestureHandler.js +31 -0
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -0
- package/lib/module/handlers/LongPressGestureHandler.js +13 -0
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/module/handlers/NativeViewGestureHandler.js +12 -0
- package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/handlers/PanGestureHandler.js +107 -0
- package/lib/module/handlers/PanGestureHandler.js.map +1 -0
- package/lib/module/handlers/PinchGestureHandler.js +10 -0
- package/lib/module/handlers/PinchGestureHandler.js.map +1 -0
- 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/RotationGestureHandler.js +10 -0
- package/lib/module/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/module/handlers/TapGestureHandler.js +13 -0
- package/lib/module/handlers/TapGestureHandler.js.map +1 -0
- package/lib/module/handlers/createHandler.js +433 -0
- package/lib/module/handlers/createHandler.js.map +1 -0
- package/lib/module/handlers/createNativeWrapper.js +62 -0
- package/lib/module/handlers/createNativeWrapper.js.map +1 -0
- package/lib/module/handlers/gestureHandlerCommon.js +81 -0
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -0
- package/lib/module/handlers/gestureHandlerTypesCompat.js +2 -0
- package/lib/module/handlers/gestureHandlerTypesCompat.js.map +1 -0
- package/lib/module/handlers/gestures/GestureDetector.js +619 -0
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -0
- package/lib/module/handlers/gestures/eventReceiver.js +131 -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 +222 -0
- package/lib/module/handlers/gestures/gesture.js.map +1 -0
- package/lib/module/handlers/gestures/gestureComposition.js +90 -0
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -0
- package/lib/module/handlers/gestures/gestureObjects.js +71 -0
- package/lib/module/handlers/gestures/gestureObjects.js.map +1 -0
- package/lib/module/handlers/gestures/gestureStateManager.js +54 -0
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -0
- package/lib/module/handlers/gestures/gestureStateManager.web.js +21 -0
- package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -0
- package/lib/module/handlers/gestures/hoverGesture.js +62 -0
- package/lib/module/handlers/gestures/hoverGesture.js.map +1 -0
- package/lib/module/handlers/gestures/longPressGesture.js +25 -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 +140 -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 +30 -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 +50 -0
- package/lib/module/handlers/gestures/tapGesture.js.map +1 -0
- package/lib/module/handlers/handlersRegistry.js +44 -0
- package/lib/module/handlers/handlersRegistry.js.map +1 -0
- package/lib/module/index.js +25 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/init.js +16 -0
- package/lib/module/init.js.map +1 -0
- package/lib/module/jestUtils/index.js +2 -0
- package/lib/module/jestUtils/index.js.map +1 -0
- package/lib/module/jestUtils/jestUtils.js +350 -0
- package/lib/module/jestUtils/jestUtils.js.map +1 -0
- package/lib/module/mocks.js +56 -0
- package/lib/module/mocks.js.map +1 -0
- package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js +3 -0
- package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -0
- package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js +3 -0
- package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -0
- package/lib/module/typeUtils.js +2 -0
- package/lib/module/typeUtils.js.map +1 -0
- package/lib/module/utils.js +44 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/web/constants.js +8 -0
- package/lib/module/web/constants.js.map +1 -0
- package/lib/module/web/detectors/RotationGestureDetector.js +155 -0
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -0
- package/lib/module/web/detectors/ScaleGestureDetector.js +145 -0
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -0
- package/lib/module/web/handlers/FlingGestureHandler.js +152 -0
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/GestureHandler.js +776 -0
- package/lib/module/web/handlers/GestureHandler.js.map +1 -0
- package/lib/module/web/handlers/HoverGestureHandler.js +47 -0
- package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js +136 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/ManualGestureHandler.js +49 -0
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js +163 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/PanGestureHandler.js +433 -0
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/PinchGestureHandler.js +159 -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 +265 -0
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -0
- package/lib/module/web/interfaces.js +45 -0
- package/lib/module/web/interfaces.js.map +1 -0
- package/lib/module/web/tools/CircularBuffer.js +50 -0
- package/lib/module/web/tools/CircularBuffer.js.map +1 -0
- package/lib/module/web/tools/EventManager.js +118 -0
- package/lib/module/web/tools/EventManager.js.map +1 -0
- package/lib/module/web/tools/GestureHandlerDelegate.js +2 -0
- package/lib/module/web/tools/GestureHandlerDelegate.js.map +1 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +335 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -0
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +102 -0
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -0
- package/lib/module/web/tools/InteractionManager.js +105 -0
- package/lib/module/web/tools/InteractionManager.js.map +1 -0
- package/lib/module/web/tools/LeastSquareSolver.js +195 -0
- package/lib/module/web/tools/LeastSquareSolver.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/PointerEventManager.js +184 -0
- package/lib/module/web/tools/PointerEventManager.js.map +1 -0
- package/lib/module/web/tools/PointerTracker.js +213 -0
- package/lib/module/web/tools/PointerTracker.js.map +1 -0
- package/lib/module/web/tools/TouchEventManager.js +124 -0
- package/lib/module/web/tools/TouchEventManager.js.map +1 -0
- package/lib/module/web/tools/VelocityTracker.js +98 -0
- package/lib/module/web/tools/VelocityTracker.js.map +1 -0
- package/lib/module/web/utils.js +8 -0
- package/lib/module/web/utils.js.map +1 -0
- package/lib/module/web_hammer/DiscreteGestureHandler.js +94 -0
- package/lib/module/web_hammer/DiscreteGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/DraggingGestureHandler.js +40 -0
- package/lib/module/web_hammer/DraggingGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/Errors.js +7 -0
- package/lib/module/web_hammer/Errors.js.map +1 -0
- package/lib/module/web_hammer/FlingGestureHandler.js +156 -0
- package/lib/module/web_hammer/FlingGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/GestureHandler.js +563 -0
- package/lib/module/web_hammer/GestureHandler.js.map +1 -0
- package/lib/module/web_hammer/IndiscreteGestureHandler.js +44 -0
- package/lib/module/web_hammer/IndiscreteGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/LongPressGestureHandler.js +58 -0
- package/lib/module/web_hammer/LongPressGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/NativeViewGestureHandler.js +49 -0
- package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/NodeManager.js +33 -0
- package/lib/module/web_hammer/NodeManager.js.map +1 -0
- package/lib/module/web_hammer/PanGestureHandler.js +194 -0
- package/lib/module/web_hammer/PanGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/PinchGestureHandler.js +29 -0
- package/lib/module/web_hammer/PinchGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/PressGestureHandler.js +174 -0
- package/lib/module/web_hammer/PressGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/RotationGestureHandler.js +32 -0
- package/lib/module/web_hammer/RotationGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/TapGestureHandler.js +180 -0
- package/lib/module/web_hammer/TapGestureHandler.js.map +1 -0
- package/lib/module/web_hammer/constants.js +43 -0
- package/lib/module/web_hammer/constants.js.map +1 -0
- package/lib/module/web_hammer/utils.js +19 -0
- package/lib/module/web_hammer/utils.js.map +1 -0
- package/lib/typescript/ActionType.d.ts +7 -0
- package/lib/typescript/Directions.d.ts +7 -0
- package/lib/typescript/EnableNewWebImplementation.d.ts +3 -0
- package/lib/typescript/GestureHandlerRootViewContext.d.ts +3 -0
- package/lib/typescript/PlatformConstants.d.ts +5 -0
- package/lib/typescript/PlatformConstants.web.d.ts +4 -0
- package/lib/typescript/RNGestureHandlerModule.d.ts +13 -0
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +47 -0
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +50 -0
- package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
- package/lib/typescript/RNRenderer.d.ts +1 -0
- package/lib/typescript/RNRenderer.web.d.ts +3 -0
- package/lib/typescript/State.d.ts +9 -0
- package/lib/typescript/TouchEventType.d.ts +8 -0
- package/lib/typescript/components/DrawerLayout.d.ts +148 -0
- package/lib/typescript/components/GestureButtons.d.ts +121 -0
- package/lib/typescript/components/GestureComponents.d.ts +22 -0
- package/lib/typescript/components/GestureComponents.web.d.ts +8 -0
- package/lib/typescript/components/GestureHandlerButton.d.ts +4 -0
- package/lib/typescript/components/GestureHandlerButton.web.d.ts +4 -0
- package/lib/typescript/components/GestureHandlerRootView.android.d.ts +6 -0
- package/lib/typescript/components/GestureHandlerRootView.d.ts +6 -0
- package/lib/typescript/components/GestureHandlerRootView.web.d.ts +6 -0
- package/lib/typescript/components/Swipeable.d.ts +178 -0
- package/lib/typescript/components/gestureHandlerRootHOC.d.ts +3 -0
- package/lib/typescript/components/touchables/GenericTouchable.d.ts +68 -0
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +36 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +45 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +2 -0
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +25 -0
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +7 -0
- package/lib/typescript/components/touchables/index.d.ts +7 -0
- package/lib/typescript/getReactNativeVersion.d.ts +4 -0
- package/lib/typescript/getReactNativeVersion.web.d.ts +1 -0
- package/lib/typescript/getShadowNodeFromRef.d.ts +1 -0
- package/lib/typescript/getShadowNodeFromRef.web.d.ts +1 -0
- package/lib/typescript/ghQueueMicrotask.d.ts +1 -0
- package/lib/typescript/handlers/FlingGestureHandler.d.ts +34 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +44 -0
- package/lib/typescript/handlers/LongPressGestureHandler.d.ts +56 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +28 -0
- package/lib/typescript/handlers/PanGestureHandler.d.ts +139 -0
- package/lib/typescript/handlers/PinchGestureHandler.d.ts +29 -0
- package/lib/typescript/handlers/PressabilityDebugView.d.ts +1 -0
- package/lib/typescript/handlers/PressabilityDebugView.web.d.ts +1 -0
- package/lib/typescript/handlers/RotationGestureHandler.d.ts +29 -0
- package/lib/typescript/handlers/TapGestureHandler.d.ts +57 -0
- package/lib/typescript/handlers/createHandler.d.ts +11 -0
- package/lib/typescript/handlers/createNativeWrapper.d.ts +3 -0
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +68 -0
- package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +42 -0
- package/lib/typescript/handlers/gestures/GestureDetector.d.ts +19 -0
- package/lib/typescript/handlers/gestures/eventReceiver.d.ts +4 -0
- package/lib/typescript/handlers/gestures/flingGesture.d.ts +9 -0
- package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +15 -0
- package/lib/typescript/handlers/gestures/gesture.d.ts +110 -0
- package/lib/typescript/handlers/gestures/gestureComposition.d.ts +21 -0
- package/lib/typescript/handlers/gestures/gestureObjects.d.ts +41 -0
- package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +9 -0
- package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +4 -0
- package/lib/typescript/handlers/gestures/hoverGesture.d.ts +32 -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 +11 -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 +14 -0
- package/lib/typescript/index.d.ts +52 -0
- package/lib/typescript/init.d.ts +2 -0
- package/lib/typescript/jestUtils/index.d.ts +1 -0
- package/lib/typescript/jestUtils/jestUtils.d.ts +28 -0
- package/lib/typescript/mocks.d.ts +44 -0
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +14 -0
- package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +6 -0
- package/lib/typescript/typeUtils.d.ts +1 -0
- package/lib/typescript/utils.d.ts +8 -0
- package/lib/typescript/web/constants.d.ts +7 -0
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +30 -0
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +29 -0
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +27 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +90 -0
- package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +10 -0
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +26 -0
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +12 -0
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +24 -0
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +55 -0
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +28 -0
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +29 -0
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +39 -0
- package/lib/typescript/web/interfaces.d.ts +141 -0
- package/lib/typescript/web/tools/CircularBuffer.d.ts +11 -0
- package/lib/typescript/web/tools/EventManager.d.ts +34 -0
- package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +22 -0
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +29 -0
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +21 -0
- package/lib/typescript/web/tools/InteractionManager.d.ts +17 -0
- package/lib/typescript/web/tools/LeastSquareSolver.d.ts +12 -0
- package/lib/typescript/web/tools/NodeManager.d.ts +11 -0
- package/lib/typescript/web/tools/PointerEventManager.d.ts +8 -0
- package/lib/typescript/web/tools/PointerTracker.d.ts +53 -0
- package/lib/typescript/web/tools/TouchEventManager.d.ts +6 -0
- package/lib/typescript/web/tools/VelocityTracker.d.ts +13 -0
- package/lib/typescript/web/utils.d.ts +4 -0
- package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +20 -0
- package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +15 -0
- package/lib/typescript/web_hammer/Errors.d.ts +3 -0
- package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +43 -0
- package/lib/typescript/web_hammer/GestureHandler.d.ts +145 -0
- package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +40 -0
- package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +38 -0
- package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +7 -0
- package/lib/typescript/web_hammer/NodeManager.d.ts +8 -0
- package/lib/typescript/web_hammer/PanGestureHandler.d.ts +56 -0
- package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +13 -0
- package/lib/typescript/web_hammer/PressGestureHandler.d.ts +83 -0
- package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +13 -0
- package/lib/typescript/web_hammer/TapGestureHandler.d.ts +57 -0
- package/lib/typescript/web_hammer/constants.d.ts +39 -0
- package/lib/typescript/web_hammer/utils.d.ts +9 -0
- package/package.json +156 -0
- package/src/ActionType.ts +9 -0
- package/src/Directions.ts +9 -0
- package/src/EnableNewWebImplementation.ts +35 -0
- package/src/GestureHandlerRootViewContext.ts +3 -0
- package/src/PlatformConstants.ts +8 -0
- package/src/PlatformConstants.web.ts +5 -0
- package/src/RNGestureHandlerModule.macos.ts +133 -0
- package/src/RNGestureHandlerModule.ts +50 -0
- package/src/RNGestureHandlerModule.web.ts +146 -0
- package/src/RNGestureHandlerModule.windows.ts +144 -0
- package/src/RNRenderer.ts +3 -0
- package/src/RNRenderer.web.ts +3 -0
- package/src/State.ts +13 -0
- package/src/TouchEventType.ts +10 -0
- package/src/components/DrawerLayout.tsx +743 -0
- package/src/components/GestureButtons.tsx +332 -0
- package/src/components/GestureComponents.tsx +148 -0
- package/src/components/GestureComponents.web.tsx +41 -0
- package/src/components/GestureHandlerButton.tsx +5 -0
- package/src/components/GestureHandlerButton.web.tsx +6 -0
- package/src/components/GestureHandlerRootView.android.tsx +24 -0
- package/src/components/GestureHandlerRootView.tsx +23 -0
- package/src/components/GestureHandlerRootView.web.tsx +17 -0
- package/src/components/Swipeable.tsx +584 -0
- package/src/components/gestureHandlerRootHOC.tsx +32 -0
- package/src/components/touchables/GenericTouchable.tsx +301 -0
- package/src/components/touchables/TouchableHighlight.tsx +115 -0
- package/src/components/touchables/TouchableNativeFeedback.android.tsx +91 -0
- package/src/components/touchables/TouchableNativeFeedback.tsx +3 -0
- package/src/components/touchables/TouchableOpacity.tsx +75 -0
- package/src/components/touchables/TouchableWithoutFeedback.tsx +14 -0
- package/src/components/touchables/index.ts +7 -0
- package/src/getReactNativeVersion.ts +11 -0
- package/src/getReactNativeVersion.web.ts +3 -0
- package/src/getShadowNodeFromRef.ts +22 -0
- package/src/getShadowNodeFromRef.web.ts +7 -0
- package/src/ghQueueMicrotask.ts +5 -0
- package/src/handlers/FlingGestureHandler.ts +59 -0
- package/src/handlers/ForceTouchGestureHandler.ts +90 -0
- package/src/handlers/LongPressGestureHandler.ts +88 -0
- package/src/handlers/NativeViewGestureHandler.ts +55 -0
- package/src/handlers/PanGestureHandler.ts +325 -0
- package/src/handlers/PinchGestureHandler.ts +48 -0
- package/src/handlers/PressabilityDebugView.tsx +2 -0
- package/src/handlers/PressabilityDebugView.web.tsx +4 -0
- package/src/handlers/RotationGestureHandler.ts +48 -0
- package/src/handlers/TapGestureHandler.ts +94 -0
- package/src/handlers/createHandler.tsx +533 -0
- package/src/handlers/createNativeWrapper.tsx +80 -0
- package/src/handlers/gestureHandlerCommon.ts +250 -0
- package/src/handlers/gestureHandlerTypesCompat.ts +106 -0
- package/src/handlers/gestures/GestureDetector.tsx +822 -0
- package/src/handlers/gestures/eventReceiver.ts +155 -0
- package/src/handlers/gestures/flingGesture.ts +27 -0
- package/src/handlers/gestures/forceTouchGesture.ts +74 -0
- package/src/handlers/gestures/gesture.ts +349 -0
- package/src/handlers/gestures/gestureComposition.ts +122 -0
- package/src/handlers/gestures/gestureObjects.ts +84 -0
- package/src/handlers/gestures/gestureStateManager.ts +62 -0
- package/src/handlers/gestures/gestureStateManager.web.ts +24 -0
- package/src/handlers/gestures/hoverGesture.ts +83 -0
- package/src/handlers/gestures/longPressGesture.ts +28 -0
- package/src/handlers/gestures/manualGesture.ts +31 -0
- package/src/handlers/gestures/nativeGesture.ts +27 -0
- package/src/handlers/gestures/panGesture.ts +152 -0
- package/src/handlers/gestures/pinchGesture.ts +51 -0
- package/src/handlers/gestures/reanimatedWrapper.ts +56 -0
- package/src/handlers/gestures/rotationGesture.ts +51 -0
- package/src/handlers/gestures/tapGesture.ts +53 -0
- package/src/handlers/handlersRegistry.ts +60 -0
- package/src/index.ts +174 -0
- package/src/init.ts +18 -0
- package/src/jestUtils/index.ts +1 -0
- package/src/jestUtils/jestUtils.ts +505 -0
- package/src/mocks.ts +67 -0
- package/src/specs/RNGestureHandlerButtonNativeComponent.ts +18 -0
- package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +6 -0
- package/src/typeUtils.ts +1 -0
- package/src/utils.ts +54 -0
- package/src/web/constants.ts +8 -0
- package/src/web/detectors/RotationGestureDetector.ts +168 -0
- package/src/web/detectors/ScaleGestureDetector.ts +172 -0
- package/src/web/handlers/FlingGestureHandler.ts +161 -0
- package/src/web/handlers/GestureHandler.ts +849 -0
- package/src/web/handlers/HoverGestureHandler.ts +43 -0
- package/src/web/handlers/LongPressGestureHandler.ts +125 -0
- package/src/web/handlers/ManualGestureHandler.ts +43 -0
- package/src/web/handlers/NativeViewGestureHandler.ts +167 -0
- package/src/web/handlers/PanGestureHandler.ts +485 -0
- package/src/web/handlers/PinchGestureHandler.ts +158 -0
- package/src/web/handlers/RotationGestureHandler.ts +172 -0
- package/src/web/handlers/TapGestureHandler.ts +273 -0
- package/src/web/interfaces.ts +167 -0
- package/src/web/tools/CircularBuffer.ts +42 -0
- package/src/web/tools/EventManager.ts +104 -0
- package/src/web/tools/GestureHandlerDelegate.ts +23 -0
- package/src/web/tools/GestureHandlerOrchestrator.ts +389 -0
- package/src/web/tools/GestureHandlerWebDelegate.ts +115 -0
- package/src/web/tools/InteractionManager.ts +130 -0
- package/src/web/tools/LeastSquareSolver.ts +182 -0
- package/src/web/tools/NodeManager.ts +43 -0
- package/src/web/tools/PointerEventManager.ts +202 -0
- package/src/web/tools/PointerTracker.ts +240 -0
- package/src/web/tools/TouchEventManager.ts +167 -0
- package/src/web/tools/VelocityTracker.ts +98 -0
- package/src/web/utils.ts +8 -0
- package/src/web_hammer/DiscreteGestureHandler.ts +82 -0
- package/src/web_hammer/DraggingGestureHandler.ts +34 -0
- package/src/web_hammer/Errors.ts +7 -0
- package/src/web_hammer/FlingGestureHandler.ts +134 -0
- package/src/web_hammer/GestureHandler.ts +599 -0
- package/src/web_hammer/IndiscreteGestureHandler.ts +33 -0
- package/src/web_hammer/LongPressGestureHandler.ts +56 -0
- package/src/web_hammer/NativeViewGestureHandler.ts +47 -0
- package/src/web_hammer/NodeManager.ts +42 -0
- package/src/web_hammer/PanGestureHandler.ts +226 -0
- package/src/web_hammer/PinchGestureHandler.ts +25 -0
- package/src/web_hammer/PressGestureHandler.ts +167 -0
- package/src/web_hammer/RotationGestureHandler.ts +25 -0
- package/src/web_hammer/TapGestureHandler.ts +172 -0
- package/src/web_hammer/constants.ts +48 -0
- package/src/web_hammer/utils.ts +24 -0
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
#import "RNGestureHandlerManager.h"
|
|
2
|
+
|
|
3
|
+
#import <React/RCTComponent.h>
|
|
4
|
+
#import <React/RCTEventDispatcher.h>
|
|
5
|
+
#import <React/RCTLog.h>
|
|
6
|
+
#import <React/RCTModalHostViewController.h>
|
|
7
|
+
#import <React/RCTRootContentView.h>
|
|
8
|
+
#import <React/RCTRootView.h>
|
|
9
|
+
#import <React/RCTUIManager.h>
|
|
10
|
+
#import <React/RCTViewManager.h>
|
|
11
|
+
|
|
12
|
+
#import "RNGestureHandler.h"
|
|
13
|
+
#import "RNGestureHandlerActionType.h"
|
|
14
|
+
#import "RNGestureHandlerRegistry.h"
|
|
15
|
+
#import "RNGestureHandlerState.h"
|
|
16
|
+
#import "RNRootViewGestureRecognizer.h"
|
|
17
|
+
|
|
18
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
19
|
+
#import <React/RCTFabricModalHostViewController.h>
|
|
20
|
+
#import <React/RCTSurfaceTouchHandler.h>
|
|
21
|
+
#import <React/RCTSurfaceView.h>
|
|
22
|
+
#import <React/RCTViewComponentView.h>
|
|
23
|
+
#else
|
|
24
|
+
#import <React/RCTTouchHandler.h>
|
|
25
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
26
|
+
|
|
27
|
+
#import "Handlers/RNFlingHandler.h"
|
|
28
|
+
#import "Handlers/RNForceTouchHandler.h"
|
|
29
|
+
#import "Handlers/RNHoverHandler.h"
|
|
30
|
+
#import "Handlers/RNLongPressHandler.h"
|
|
31
|
+
#import "Handlers/RNManualHandler.h"
|
|
32
|
+
#import "Handlers/RNNativeViewHandler.h"
|
|
33
|
+
#import "Handlers/RNPanHandler.h"
|
|
34
|
+
#import "Handlers/RNPinchHandler.h"
|
|
35
|
+
#import "Handlers/RNRotationHandler.h"
|
|
36
|
+
#import "Handlers/RNTapHandler.h"
|
|
37
|
+
|
|
38
|
+
// We use the method below instead of RCTLog because we log out messages after the bridge gets
|
|
39
|
+
// turned down in some cases. Which normally with RCTLog would cause a crash in DEBUG mode
|
|
40
|
+
#define RCTLifecycleLog(...) \
|
|
41
|
+
RCTDefaultLogFunction( \
|
|
42
|
+
RCTLogLevelInfo, RCTLogSourceNative, @(__FILE__), @(__LINE__), [NSString stringWithFormat:__VA_ARGS__])
|
|
43
|
+
|
|
44
|
+
constexpr int NEW_ARCH_NUMBER_OF_ATTACH_RETRIES = 25;
|
|
45
|
+
|
|
46
|
+
@interface RNGestureHandlerManager () <RNGestureHandlerEventEmitter, RNRootViewGestureRecognizerDelegate>
|
|
47
|
+
|
|
48
|
+
@end
|
|
49
|
+
|
|
50
|
+
@implementation RNGestureHandlerManager {
|
|
51
|
+
RNGestureHandlerRegistry *_registry;
|
|
52
|
+
RCTUIManager *_uiManager;
|
|
53
|
+
NSHashTable<RNRootViewGestureRecognizer *> *_rootViewGestureRecognizers;
|
|
54
|
+
NSMutableDictionary<NSNumber *, NSNumber *> *_attachRetryCounter;
|
|
55
|
+
RCTEventDispatcher *_eventDispatcher;
|
|
56
|
+
id _reanimatedModule;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
- (instancetype)initWithUIManager:(RCTUIManager *)uiManager eventDispatcher:(RCTEventDispatcher *)eventDispatcher
|
|
60
|
+
{
|
|
61
|
+
if ((self = [super init])) {
|
|
62
|
+
_uiManager = uiManager;
|
|
63
|
+
_eventDispatcher = eventDispatcher;
|
|
64
|
+
_registry = [RNGestureHandlerRegistry new];
|
|
65
|
+
_rootViewGestureRecognizers = [NSHashTable hashTableWithOptions:NSPointerFunctionsWeakMemory];
|
|
66
|
+
_attachRetryCounter = [[NSMutableDictionary alloc] init];
|
|
67
|
+
_reanimatedModule = nil;
|
|
68
|
+
}
|
|
69
|
+
return self;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
- (void)createGestureHandler:(NSString *)handlerName tag:(NSNumber *)handlerTag config:(NSDictionary *)config
|
|
73
|
+
{
|
|
74
|
+
static NSDictionary *map;
|
|
75
|
+
static dispatch_once_t mapToken;
|
|
76
|
+
dispatch_once(&mapToken, ^{
|
|
77
|
+
map = @{
|
|
78
|
+
@"PanGestureHandler" : [RNPanGestureHandler class],
|
|
79
|
+
@"TapGestureHandler" : [RNTapGestureHandler class],
|
|
80
|
+
@"FlingGestureHandler" : [RNFlingGestureHandler class],
|
|
81
|
+
@"LongPressGestureHandler" : [RNLongPressGestureHandler class],
|
|
82
|
+
@"NativeViewGestureHandler" : [RNNativeViewGestureHandler class],
|
|
83
|
+
@"PinchGestureHandler" : [RNPinchGestureHandler class],
|
|
84
|
+
@"RotationGestureHandler" : [RNRotationGestureHandler class],
|
|
85
|
+
@"ForceTouchGestureHandler" : [RNForceTouchHandler class],
|
|
86
|
+
@"ManualGestureHandler" : [RNManualGestureHandler class],
|
|
87
|
+
@"HoverGestureHandler" : [RNHoverGestureHandler class],
|
|
88
|
+
};
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
Class nodeClass = map[handlerName];
|
|
92
|
+
if (!nodeClass) {
|
|
93
|
+
RCTLogError(@"Gesture handler type %@ is not supported", handlerName);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
RNGestureHandler *gestureHandler = [[nodeClass alloc] initWithTag:handlerTag];
|
|
98
|
+
[gestureHandler configure:config];
|
|
99
|
+
[_registry registerGestureHandler:gestureHandler];
|
|
100
|
+
|
|
101
|
+
__weak id<RNGestureHandlerEventEmitter> emitter = self;
|
|
102
|
+
gestureHandler.emitter = emitter;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
- (void)attachGestureHandler:(nonnull NSNumber *)handlerTag
|
|
106
|
+
toViewWithTag:(nonnull NSNumber *)viewTag
|
|
107
|
+
withActionType:(RNGestureHandlerActionType)actionType
|
|
108
|
+
{
|
|
109
|
+
UIView *view = [_uiManager viewForReactTag:viewTag];
|
|
110
|
+
|
|
111
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
112
|
+
if (view == nil || view.superview == nil) {
|
|
113
|
+
// There are a few reasons we could end up here:
|
|
114
|
+
// - the native view corresponding to the viewtag hasn't yet been created
|
|
115
|
+
// - the native view has been created, but it's not attached to window
|
|
116
|
+
// - the native view will not exist because it got flattened
|
|
117
|
+
// In the first two cases we just want to wait until the view gets created or gets attached to its superview
|
|
118
|
+
// In the third case we don't want to do anything but we cannot easily distinguish it here, hece the abomination
|
|
119
|
+
// below
|
|
120
|
+
// TODO: would be great to have a better solution, although it might require migration to the shadow nodes from
|
|
121
|
+
// viewTags
|
|
122
|
+
|
|
123
|
+
NSNumber *counter = [_attachRetryCounter objectForKey:viewTag];
|
|
124
|
+
if (counter == nil) {
|
|
125
|
+
counter = @1;
|
|
126
|
+
} else {
|
|
127
|
+
counter = [NSNumber numberWithInt:counter.intValue + 1];
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (counter.intValue > NEW_ARCH_NUMBER_OF_ATTACH_RETRIES) {
|
|
131
|
+
[_attachRetryCounter removeObjectForKey:viewTag];
|
|
132
|
+
} else {
|
|
133
|
+
[_attachRetryCounter setObject:counter forKey:viewTag];
|
|
134
|
+
|
|
135
|
+
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
|
|
136
|
+
[self attachGestureHandler:handlerTag toViewWithTag:viewTag withActionType:actionType];
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
[_attachRetryCounter removeObjectForKey:viewTag];
|
|
144
|
+
|
|
145
|
+
// I think it should be moved to RNNativeViewHandler, but that would require
|
|
146
|
+
// additional logic for setting contentView.reactTag, this works for now
|
|
147
|
+
if ([view isKindOfClass:[RCTViewComponentView class]]) {
|
|
148
|
+
RCTViewComponentView *componentView = (RCTViewComponentView *)view;
|
|
149
|
+
if (componentView.contentView != nil) {
|
|
150
|
+
view = componentView.contentView;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
view.reactTag = viewTag; // necessary for RNReanimated eventHash (e.g. "42onGestureHandlerEvent"), also will be
|
|
155
|
+
// returned as event.target
|
|
156
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
157
|
+
|
|
158
|
+
[_registry attachHandlerWithTag:handlerTag toView:view withActionType:actionType];
|
|
159
|
+
|
|
160
|
+
// register view if not already there
|
|
161
|
+
[self registerViewWithGestureRecognizerAttachedIfNeeded:view];
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
- (void)updateGestureHandler:(NSNumber *)handlerTag config:(NSDictionary *)config
|
|
165
|
+
{
|
|
166
|
+
RNGestureHandler *handler = [_registry handlerWithTag:handlerTag];
|
|
167
|
+
[handler configure:config];
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
- (void)dropGestureHandler:(NSNumber *)handlerTag
|
|
171
|
+
{
|
|
172
|
+
[_registry dropHandlerWithTag:handlerTag];
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
- (void)dropAllGestureHandlers
|
|
176
|
+
{
|
|
177
|
+
[_registry dropAllHandlers];
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
- (void)handleSetJSResponder:(NSNumber *)viewTag blockNativeResponder:(NSNumber *)blockNativeResponder
|
|
181
|
+
{
|
|
182
|
+
if ([blockNativeResponder boolValue]) {
|
|
183
|
+
for (RNRootViewGestureRecognizer *recognizer in _rootViewGestureRecognizers) {
|
|
184
|
+
[recognizer blockOtherRecognizers];
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
- (void)handleClearJSResponder
|
|
190
|
+
{
|
|
191
|
+
// ignore...
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
- (id)handlerWithTag:(NSNumber *)handlerTag
|
|
195
|
+
{
|
|
196
|
+
return [_registry handlerWithTag:handlerTag];
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
#pragma mark Root Views Management
|
|
200
|
+
|
|
201
|
+
- (void)registerViewWithGestureRecognizerAttachedIfNeeded:(UIView *)childView
|
|
202
|
+
{
|
|
203
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
204
|
+
UIView *touchHandlerView = childView;
|
|
205
|
+
|
|
206
|
+
if ([[childView reactViewController] isKindOfClass:[RCTFabricModalHostViewController class]]) {
|
|
207
|
+
touchHandlerView = [childView reactViewController].view;
|
|
208
|
+
} else {
|
|
209
|
+
while (touchHandlerView != nil && ![touchHandlerView isKindOfClass:[RCTSurfaceView class]]) {
|
|
210
|
+
touchHandlerView = touchHandlerView.superview;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
#else
|
|
214
|
+
UIView *touchHandlerView = nil;
|
|
215
|
+
|
|
216
|
+
if ([[childView reactViewController] isKindOfClass:[RCTModalHostViewController class]]) {
|
|
217
|
+
touchHandlerView = [childView reactViewController].view.subviews[0];
|
|
218
|
+
} else {
|
|
219
|
+
UIView *parent = childView;
|
|
220
|
+
while (parent != nil && ![parent respondsToSelector:@selector(touchHandler)]) {
|
|
221
|
+
parent = parent.superview;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
touchHandlerView = [[parent performSelector:@selector(touchHandler)] view];
|
|
225
|
+
}
|
|
226
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
227
|
+
|
|
228
|
+
if (touchHandlerView == nil) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// Many views can return the same touchHandler so we check if the one we want to register
|
|
233
|
+
// is not already present in the set.
|
|
234
|
+
for (UIGestureRecognizer *recognizer in touchHandlerView.gestureRecognizers) {
|
|
235
|
+
if ([recognizer isKindOfClass:[RNRootViewGestureRecognizer class]]) {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
RCTLifecycleLog(@"[GESTURE HANDLER] Initialize gesture handler for view %@", touchHandlerView);
|
|
241
|
+
RNRootViewGestureRecognizer *recognizer = [RNRootViewGestureRecognizer new];
|
|
242
|
+
recognizer.delegate = self;
|
|
243
|
+
touchHandlerView.userInteractionEnabled = YES;
|
|
244
|
+
[touchHandlerView addGestureRecognizer:recognizer];
|
|
245
|
+
[_rootViewGestureRecognizers addObject:recognizer];
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
- (void)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
|
|
249
|
+
didActivateInViewWithTouchHandler:(UIView *)viewWithTouchHandler
|
|
250
|
+
{
|
|
251
|
+
// Cancel touches in RN's root view in order to cancel all in-js recognizers
|
|
252
|
+
|
|
253
|
+
// As scroll events are special-cased in RN responder implementation and sending them would
|
|
254
|
+
// trigger JS responder change, we don't cancel touches if the handler that got activated is
|
|
255
|
+
// a scroll recognizer. This way root view will keep sending touchMove and touchEnd events
|
|
256
|
+
// and therefore allow JS responder to properly release the responder at the end of the touch
|
|
257
|
+
// stream.
|
|
258
|
+
// NOTE: this is not a proper fix and solving this problem requires upstream fixes to RN. In
|
|
259
|
+
// particular if we have one PanHandler and ScrollView that can work simultaniously then when
|
|
260
|
+
// the Pan handler activates it would still tigger cancel events.
|
|
261
|
+
// Once the upstream fix lands the line below along with this comment can be removed
|
|
262
|
+
if ([gestureRecognizer.view isKindOfClass:[UIScrollView class]])
|
|
263
|
+
return;
|
|
264
|
+
|
|
265
|
+
UIGestureRecognizer *touchHandler = nil;
|
|
266
|
+
|
|
267
|
+
// this way we can extract the touch handler on both architectures relatively easily
|
|
268
|
+
for (UIGestureRecognizer *recognizer in [viewWithTouchHandler gestureRecognizers]) {
|
|
269
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
270
|
+
if ([recognizer isKindOfClass:[RCTSurfaceTouchHandler class]]) {
|
|
271
|
+
#else
|
|
272
|
+
if ([recognizer isKindOfClass:[RCTTouchHandler class]]) {
|
|
273
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
274
|
+
touchHandler = recognizer;
|
|
275
|
+
break;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
[touchHandler setEnabled:NO];
|
|
279
|
+
[touchHandler setEnabled:YES];
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
#pragma mark Events
|
|
283
|
+
|
|
284
|
+
- (void)sendEvent:(RNGestureHandlerStateChange *)event withActionType:(RNGestureHandlerActionType)actionType
|
|
285
|
+
{
|
|
286
|
+
switch (actionType) {
|
|
287
|
+
case RNGestureHandlerActionTypeReanimatedWorklet:
|
|
288
|
+
[self sendEventForReanimated:event];
|
|
289
|
+
break;
|
|
290
|
+
|
|
291
|
+
case RNGestureHandlerActionTypeNativeAnimatedEvent:
|
|
292
|
+
if ([event.eventName isEqualToString:@"onGestureHandlerEvent"]) {
|
|
293
|
+
[self sendEventForNativeAnimatedEvent:event];
|
|
294
|
+
} else {
|
|
295
|
+
// Although onGestureEvent prop is an Animated.event with useNativeDriver: true,
|
|
296
|
+
// onHandlerStateChange prop is still a regular JS function.
|
|
297
|
+
// Also, Animated.event is only supported with old API.
|
|
298
|
+
[self sendEventForJSFunctionOldAPI:event];
|
|
299
|
+
}
|
|
300
|
+
break;
|
|
301
|
+
|
|
302
|
+
case RNGestureHandlerActionTypeJSFunctionOldAPI:
|
|
303
|
+
[self sendEventForJSFunctionOldAPI:event];
|
|
304
|
+
break;
|
|
305
|
+
|
|
306
|
+
case RNGestureHandlerActionTypeJSFunctionNewAPI:
|
|
307
|
+
[self sendEventForJSFunctionNewAPI:event];
|
|
308
|
+
break;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
- (void)sendEventForReanimated:(RNGestureHandlerStateChange *)event
|
|
313
|
+
{
|
|
314
|
+
// Delivers the event to Reanimated.
|
|
315
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
316
|
+
// Send event directly to Reanimated
|
|
317
|
+
if (_reanimatedModule == nil) {
|
|
318
|
+
_reanimatedModule = [_uiManager.bridge moduleForName:@"ReanimatedModule"];
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
[_reanimatedModule eventDispatcherWillDispatchEvent:event];
|
|
322
|
+
#else
|
|
323
|
+
// In the old architecture, Reanimated overwrites RCTEventDispatcher
|
|
324
|
+
// with REAEventDispatcher and intercepts all direct events.
|
|
325
|
+
[self sendEventForDirectEvent:event];
|
|
326
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
- (void)sendEventForNativeAnimatedEvent:(RNGestureHandlerStateChange *)event
|
|
330
|
+
{
|
|
331
|
+
// Delivers the event to NativeAnimatedModule.
|
|
332
|
+
// Currently, NativeAnimated[Turbo]Module is RCTEventDispatcherObserver so we can
|
|
333
|
+
// simply send a direct event which is handled by the observer but ignored on JS side.
|
|
334
|
+
// TODO: send event directly to NativeAnimated[Turbo]Module
|
|
335
|
+
[self sendEventForDirectEvent:event];
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
- (void)sendEventForJSFunctionOldAPI:(RNGestureHandlerStateChange *)event
|
|
339
|
+
{
|
|
340
|
+
// Delivers the event to JS (old RNGH API).
|
|
341
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
342
|
+
[self sendEventForDeviceEvent:event];
|
|
343
|
+
#else
|
|
344
|
+
[self sendEventForDirectEvent:event];
|
|
345
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
- (void)sendEventForJSFunctionNewAPI:(RNGestureHandlerStateChange *)event
|
|
349
|
+
{
|
|
350
|
+
// Delivers the event to JS (new RNGH API).
|
|
351
|
+
[self sendEventForDeviceEvent:event];
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
- (void)sendEventForDirectEvent:(RNGestureHandlerStateChange *)event
|
|
355
|
+
{
|
|
356
|
+
// Delivers the event to JS as a direct event.
|
|
357
|
+
[_eventDispatcher sendEvent:event];
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
- (void)sendEventForDeviceEvent:(RNGestureHandlerStateChange *)event
|
|
361
|
+
{
|
|
362
|
+
// Delivers the event to JS as a device event.
|
|
363
|
+
NSMutableDictionary *body = [[event arguments] objectAtIndex:2];
|
|
364
|
+
[_eventDispatcher sendDeviceEventWithName:@"onGestureHandlerStateChange" body:body];
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
@end
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
#import "RNGestureHandlerModule.h"
|
|
2
|
+
|
|
3
|
+
#import <React/RCTComponent.h>
|
|
4
|
+
#import <React/RCTLog.h>
|
|
5
|
+
#import <React/RCTUIManager.h>
|
|
6
|
+
#import <React/RCTUIManagerObserverCoordinator.h>
|
|
7
|
+
#import <React/RCTUIManagerUtils.h>
|
|
8
|
+
#import <React/RCTViewManager.h>
|
|
9
|
+
|
|
10
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
11
|
+
#import <React/RCTBridge+Private.h>
|
|
12
|
+
#import <React/RCTBridge.h>
|
|
13
|
+
#import <React/RCTSurfacePresenter.h>
|
|
14
|
+
#import <React/RCTUtils.h>
|
|
15
|
+
#import <ReactCommon/CallInvoker.h>
|
|
16
|
+
#import <ReactCommon/RCTTurboModule.h>
|
|
17
|
+
|
|
18
|
+
#import <react/renderer/uimanager/primitives.h>
|
|
19
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
20
|
+
|
|
21
|
+
#import "RNGestureHandler.h"
|
|
22
|
+
#import "RNGestureHandlerDirection.h"
|
|
23
|
+
#import "RNGestureHandlerManager.h"
|
|
24
|
+
#import "RNGestureHandlerState.h"
|
|
25
|
+
|
|
26
|
+
#import "RNGestureHandlerButton.h"
|
|
27
|
+
#import "RNGestureHandlerStateManager.h"
|
|
28
|
+
|
|
29
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
30
|
+
using namespace facebook;
|
|
31
|
+
using namespace react;
|
|
32
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
33
|
+
|
|
34
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
35
|
+
@interface RNGestureHandlerModule () <RCTSurfacePresenterObserver, RNGestureHandlerStateManager>
|
|
36
|
+
|
|
37
|
+
@end
|
|
38
|
+
#else
|
|
39
|
+
@interface RNGestureHandlerModule () <RCTUIManagerObserver, RNGestureHandlerStateManager>
|
|
40
|
+
|
|
41
|
+
@end
|
|
42
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
43
|
+
|
|
44
|
+
typedef void (^GestureHandlerOperation)(RNGestureHandlerManager *manager);
|
|
45
|
+
|
|
46
|
+
@implementation RNGestureHandlerModule {
|
|
47
|
+
RNGestureHandlerManager *_manager;
|
|
48
|
+
|
|
49
|
+
// Oparations called after views have been updated.
|
|
50
|
+
NSMutableArray<GestureHandlerOperation> *_operations;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
RCT_EXPORT_MODULE()
|
|
54
|
+
|
|
55
|
+
+ (BOOL)requiresMainQueueSetup
|
|
56
|
+
{
|
|
57
|
+
return YES;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
- (void)invalidate
|
|
61
|
+
{
|
|
62
|
+
RNGestureHandlerManager *handlerManager = _manager;
|
|
63
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
64
|
+
[handlerManager dropAllGestureHandlers];
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
_manager = nil;
|
|
68
|
+
|
|
69
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
70
|
+
[self.bridge.surfacePresenter removeObserver:self];
|
|
71
|
+
#else
|
|
72
|
+
[self.bridge.uiManager.observerCoordinator removeObserver:self];
|
|
73
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
- (dispatch_queue_t)methodQueue
|
|
77
|
+
{
|
|
78
|
+
// This module needs to be on the same queue as the UIManager to avoid
|
|
79
|
+
// having to lock `_operations` and `_preOperations` since `uiManagerWillFlushUIBlocks`
|
|
80
|
+
// will be called from that queue.
|
|
81
|
+
|
|
82
|
+
// This is required as this module rely on having all the view nodes created before
|
|
83
|
+
// gesture handlers can be associated with them
|
|
84
|
+
return RCTGetUIManagerQueue();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
88
|
+
void decorateRuntime(jsi::Runtime &runtime)
|
|
89
|
+
{
|
|
90
|
+
auto isFormsStackingContext = jsi::Function::createFromHostFunction(
|
|
91
|
+
runtime,
|
|
92
|
+
jsi::PropNameID::forAscii(runtime, "isFormsStackingContext"),
|
|
93
|
+
1,
|
|
94
|
+
[](jsi::Runtime &runtime, const jsi::Value &thisValue, const jsi::Value *arguments, size_t count) -> jsi::Value {
|
|
95
|
+
if (!arguments[0].isObject()) {
|
|
96
|
+
return jsi::Value::null();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
auto shadowNode = arguments[0].asObject(runtime).getHostObject<ShadowNodeWrapper>(runtime)->shadowNode;
|
|
100
|
+
bool isFormsStackingContext = shadowNode->getTraits().check(ShadowNodeTraits::FormsStackingContext);
|
|
101
|
+
|
|
102
|
+
return jsi::Value(isFormsStackingContext);
|
|
103
|
+
});
|
|
104
|
+
runtime.global().setProperty(runtime, "isFormsStackingContext", std::move(isFormsStackingContext));
|
|
105
|
+
}
|
|
106
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
107
|
+
|
|
108
|
+
- (void)setBridge:(RCTBridge *)bridge
|
|
109
|
+
{
|
|
110
|
+
[super setBridge:bridge];
|
|
111
|
+
|
|
112
|
+
_manager = [[RNGestureHandlerManager alloc] initWithUIManager:bridge.uiManager
|
|
113
|
+
eventDispatcher:bridge.eventDispatcher];
|
|
114
|
+
_operations = [NSMutableArray new];
|
|
115
|
+
|
|
116
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
117
|
+
[bridge.surfacePresenter addObserver:self];
|
|
118
|
+
#else
|
|
119
|
+
[bridge.uiManager.observerCoordinator addObserver:self];
|
|
120
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
124
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(install)
|
|
125
|
+
{
|
|
126
|
+
RCTCxxBridge *cxxBridge = (RCTCxxBridge *)self.bridge;
|
|
127
|
+
auto runtime = (jsi::Runtime *)cxxBridge.runtime;
|
|
128
|
+
decorateRuntime(*runtime);
|
|
129
|
+
return @true;
|
|
130
|
+
}
|
|
131
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
132
|
+
|
|
133
|
+
RCT_EXPORT_METHOD(createGestureHandler
|
|
134
|
+
: (nonnull NSString *)handlerName tag
|
|
135
|
+
: (nonnull NSNumber *)handlerTag config
|
|
136
|
+
: (NSDictionary *)config)
|
|
137
|
+
{
|
|
138
|
+
[self addOperationBlock:^(RNGestureHandlerManager *manager) {
|
|
139
|
+
[manager createGestureHandler:handlerName tag:handlerTag config:config];
|
|
140
|
+
}];
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
RCT_EXPORT_METHOD(attachGestureHandler
|
|
144
|
+
: (nonnull NSNumber *)handlerTag toViewWithTag
|
|
145
|
+
: (nonnull NSNumber *)viewTag actionType
|
|
146
|
+
: (nonnull NSNumber *)actionType)
|
|
147
|
+
{
|
|
148
|
+
[self addOperationBlock:^(RNGestureHandlerManager *manager) {
|
|
149
|
+
[manager attachGestureHandler:handlerTag
|
|
150
|
+
toViewWithTag:viewTag
|
|
151
|
+
withActionType:(RNGestureHandlerActionType)[actionType integerValue]];
|
|
152
|
+
}];
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
RCT_EXPORT_METHOD(updateGestureHandler : (nonnull NSNumber *)handlerTag config : (NSDictionary *)config)
|
|
156
|
+
{
|
|
157
|
+
[self addOperationBlock:^(RNGestureHandlerManager *manager) {
|
|
158
|
+
[manager updateGestureHandler:handlerTag config:config];
|
|
159
|
+
}];
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
RCT_EXPORT_METHOD(dropGestureHandler : (nonnull NSNumber *)handlerTag)
|
|
163
|
+
{
|
|
164
|
+
[self addOperationBlock:^(RNGestureHandlerManager *manager) {
|
|
165
|
+
[manager dropGestureHandler:handlerTag];
|
|
166
|
+
}];
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
RCT_EXPORT_METHOD(handleSetJSResponder
|
|
170
|
+
: (nonnull NSNumber *)viewTag blockNativeResponder
|
|
171
|
+
: (nonnull NSNumber *)blockNativeResponder)
|
|
172
|
+
{
|
|
173
|
+
[self addOperationBlock:^(RNGestureHandlerManager *manager) {
|
|
174
|
+
[manager handleSetJSResponder:viewTag blockNativeResponder:blockNativeResponder];
|
|
175
|
+
}];
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
RCT_EXPORT_METHOD(handleClearJSResponder)
|
|
179
|
+
{
|
|
180
|
+
[self addOperationBlock:^(RNGestureHandlerManager *manager) {
|
|
181
|
+
[manager handleClearJSResponder];
|
|
182
|
+
}];
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
RCT_EXPORT_METHOD(flushOperations)
|
|
186
|
+
{
|
|
187
|
+
// On the new arch we rely on `flushOperations` for scheduling the operations on the UI thread.
|
|
188
|
+
// On the old arch we rely on `uiManagerWillPerformMounting`
|
|
189
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
190
|
+
if (_operations.count == 0) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
NSArray<GestureHandlerOperation> *operations = _operations;
|
|
195
|
+
_operations = [NSMutableArray new];
|
|
196
|
+
|
|
197
|
+
[self.bridge.uiManager
|
|
198
|
+
addUIBlock:^(__unused RCTUIManager *manager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
199
|
+
for (GestureHandlerOperation operation in operations) {
|
|
200
|
+
operation(self->_manager);
|
|
201
|
+
}
|
|
202
|
+
}];
|
|
203
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
- (void)setGestureState:(int)state forHandler:(int)handlerTag
|
|
207
|
+
{
|
|
208
|
+
RNGestureHandler *handler = [_manager handlerWithTag:@(handlerTag)];
|
|
209
|
+
|
|
210
|
+
if (handler != nil) {
|
|
211
|
+
if (state == 1) { // FAILED
|
|
212
|
+
handler.recognizer.state = UIGestureRecognizerStateFailed;
|
|
213
|
+
} else if (state == 2) { // BEGAN
|
|
214
|
+
handler.recognizer.state = UIGestureRecognizerStatePossible;
|
|
215
|
+
} else if (state == 3) { // CANCELLED
|
|
216
|
+
handler.recognizer.state = UIGestureRecognizerStateCancelled;
|
|
217
|
+
} else if (state == 4) { // ACTIVE
|
|
218
|
+
[handler stopActivationBlocker];
|
|
219
|
+
handler.recognizer.state = UIGestureRecognizerStateBegan;
|
|
220
|
+
} else if (state == 5) { // ENDED
|
|
221
|
+
handler.recognizer.state = UIGestureRecognizerStateEnded;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// if the gesture was set to finish, cancel all pointers it was tracking
|
|
226
|
+
if (state == 1 || state == 3 || state == 5) {
|
|
227
|
+
[handler.pointerTracker cancelPointers];
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// do not send state change event when activating because it bypasses
|
|
231
|
+
// shouldRequireFailureOfGestureRecognizer
|
|
232
|
+
if (state != 4) {
|
|
233
|
+
[handler handleGesture:handler.recognizer];
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
#pragma mark-- Batch handling
|
|
238
|
+
|
|
239
|
+
- (void)addOperationBlock:(GestureHandlerOperation)operation
|
|
240
|
+
{
|
|
241
|
+
[_operations addObject:operation];
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
#pragma mark - RCTSurfacePresenterObserver
|
|
245
|
+
|
|
246
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
247
|
+
|
|
248
|
+
- (void)didMountComponentsWithRootTag:(NSInteger)rootTag
|
|
249
|
+
{
|
|
250
|
+
RCTAssertMainQueue();
|
|
251
|
+
|
|
252
|
+
if (_operations.count == 0) {
|
|
253
|
+
return;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
NSArray<GestureHandlerOperation> *operations = _operations;
|
|
257
|
+
_operations = [NSMutableArray new];
|
|
258
|
+
|
|
259
|
+
for (GestureHandlerOperation operation in operations) {
|
|
260
|
+
operation(self->_manager);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
#else
|
|
265
|
+
|
|
266
|
+
#pragma mark - RCTUIManagerObserver
|
|
267
|
+
|
|
268
|
+
- (void)uiManagerWillFlushUIBlocks:(RCTUIManager *)uiManager
|
|
269
|
+
{
|
|
270
|
+
[self uiManagerWillPerformMounting:uiManager];
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
- (void)uiManagerWillPerformMounting:(RCTUIManager *)uiManager
|
|
274
|
+
{
|
|
275
|
+
if (_operations.count == 0) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
NSArray<GestureHandlerOperation> *operations = _operations;
|
|
280
|
+
_operations = [NSMutableArray new];
|
|
281
|
+
|
|
282
|
+
[uiManager addUIBlock:^(__unused RCTUIManager *manager, __unused NSDictionary<NSNumber *, UIView *> *viewRegistry) {
|
|
283
|
+
for (GestureHandlerOperation operation in operations) {
|
|
284
|
+
operation(self->_manager);
|
|
285
|
+
}
|
|
286
|
+
}];
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
#endif // RCT_NEW_ARCH_ENABLED
|
|
290
|
+
|
|
291
|
+
#pragma mark Events
|
|
292
|
+
|
|
293
|
+
- (NSArray<NSString *> *)supportedEvents
|
|
294
|
+
{
|
|
295
|
+
return @[ @"onGestureHandlerEvent", @"onGestureHandlerStateChange" ];
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
#pragma mark Module Constants
|
|
299
|
+
|
|
300
|
+
- (NSDictionary *)constantsToExport
|
|
301
|
+
{
|
|
302
|
+
return @{
|
|
303
|
+
@"State" : @{
|
|
304
|
+
@"UNDETERMINED" : @(RNGestureHandlerStateUndetermined),
|
|
305
|
+
@"BEGAN" : @(RNGestureHandlerStateBegan),
|
|
306
|
+
@"ACTIVE" : @(RNGestureHandlerStateActive),
|
|
307
|
+
@"CANCELLED" : @(RNGestureHandlerStateCancelled),
|
|
308
|
+
@"FAILED" : @(RNGestureHandlerStateFailed),
|
|
309
|
+
@"END" : @(RNGestureHandlerStateEnd)
|
|
310
|
+
},
|
|
311
|
+
@"Direction" : @{
|
|
312
|
+
@"RIGHT" : @(RNGestureHandlerDirectionRight),
|
|
313
|
+
@"LEFT" : @(RNGestureHandlerDirectionLeft),
|
|
314
|
+
@"UP" : @(RNGestureHandlerDirectionUp),
|
|
315
|
+
@"DOWN" : @(RNGestureHandlerDirectionDown)
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
@end
|