@react-native-oh-tpl/react-native-gesture-handler 2.12.1-0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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,563 @@
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
2
|
+
|
3
|
+
/* eslint-disable eslint-comments/no-unlimited-disable */
|
4
|
+
|
5
|
+
/* eslint-disable */
|
6
|
+
import Hammer from '@egjs/hammerjs';
|
7
|
+
import { findNodeHandle } from 'react-native';
|
8
|
+
import { State } from '../State';
|
9
|
+
import { EventMap } from './constants';
|
10
|
+
import * as NodeManager from './NodeManager';
|
11
|
+
import { ghQueueMicrotask } from '../ghQueueMicrotask'; // TODO(TS) Replace with HammerInput if https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438/files is merged
|
12
|
+
|
13
|
+
let gestureInstances = 0;
|
14
|
+
|
15
|
+
class GestureHandler {
|
16
|
+
get id() {
|
17
|
+
return `${this.name}${this.gestureInstance}`;
|
18
|
+
} // a simple way to check if GestureHandler is NativeViewGestureHandler, since importing it
|
19
|
+
// here to use instanceof would cause import cycle
|
20
|
+
|
21
|
+
|
22
|
+
get isNative() {
|
23
|
+
return false;
|
24
|
+
}
|
25
|
+
|
26
|
+
get isDiscrete() {
|
27
|
+
return false;
|
28
|
+
}
|
29
|
+
|
30
|
+
get shouldEnableGestureOnSetup() {
|
31
|
+
throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');
|
32
|
+
}
|
33
|
+
|
34
|
+
constructor() {
|
35
|
+
_defineProperty(this, "handlerTag", void 0);
|
36
|
+
|
37
|
+
_defineProperty(this, "isGestureRunning", false);
|
38
|
+
|
39
|
+
_defineProperty(this, "view", null);
|
40
|
+
|
41
|
+
_defineProperty(this, "hasCustomActivationCriteria", void 0);
|
42
|
+
|
43
|
+
_defineProperty(this, "hasGestureFailed", false);
|
44
|
+
|
45
|
+
_defineProperty(this, "hammer", null);
|
46
|
+
|
47
|
+
_defineProperty(this, "initialRotation", null);
|
48
|
+
|
49
|
+
_defineProperty(this, "__initialX", void 0);
|
50
|
+
|
51
|
+
_defineProperty(this, "__initialY", void 0);
|
52
|
+
|
53
|
+
_defineProperty(this, "config", {});
|
54
|
+
|
55
|
+
_defineProperty(this, "previousState", State.UNDETERMINED);
|
56
|
+
|
57
|
+
_defineProperty(this, "pendingGestures", {});
|
58
|
+
|
59
|
+
_defineProperty(this, "oldState", State.UNDETERMINED);
|
60
|
+
|
61
|
+
_defineProperty(this, "lastSentState", null);
|
62
|
+
|
63
|
+
_defineProperty(this, "gestureInstance", void 0);
|
64
|
+
|
65
|
+
_defineProperty(this, "_stillWaiting", void 0);
|
66
|
+
|
67
|
+
_defineProperty(this, "propsRef", void 0);
|
68
|
+
|
69
|
+
_defineProperty(this, "ref", void 0);
|
70
|
+
|
71
|
+
_defineProperty(this, "clearSelfAsPending", () => {
|
72
|
+
if (Array.isArray(this.config.waitFor)) {
|
73
|
+
for (const gesture of this.config.waitFor) {
|
74
|
+
gesture.removePendingGesture(this.id);
|
75
|
+
}
|
76
|
+
}
|
77
|
+
});
|
78
|
+
|
79
|
+
_defineProperty(this, "destroy", () => {
|
80
|
+
this.clearSelfAsPending();
|
81
|
+
|
82
|
+
if (this.hammer) {
|
83
|
+
this.hammer.stop(false);
|
84
|
+
this.hammer.destroy();
|
85
|
+
}
|
86
|
+
|
87
|
+
this.hammer = null;
|
88
|
+
});
|
89
|
+
|
90
|
+
_defineProperty(this, "isPointInView", ({
|
91
|
+
x,
|
92
|
+
y
|
93
|
+
}) => {
|
94
|
+
// @ts-ignore FIXME(TS)
|
95
|
+
const rect = this.view.getBoundingClientRect();
|
96
|
+
const pointerInside = x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;
|
97
|
+
return pointerInside;
|
98
|
+
});
|
99
|
+
|
100
|
+
_defineProperty(this, "sendEvent", nativeEvent => {
|
101
|
+
const {
|
102
|
+
onGestureHandlerEvent,
|
103
|
+
onGestureHandlerStateChange
|
104
|
+
} = this.propsRef.current;
|
105
|
+
const event = this.transformEventData(nativeEvent);
|
106
|
+
invokeNullableMethod(onGestureHandlerEvent, event);
|
107
|
+
|
108
|
+
if (this.lastSentState !== event.nativeEvent.state) {
|
109
|
+
this.lastSentState = event.nativeEvent.state;
|
110
|
+
invokeNullableMethod(onGestureHandlerStateChange, event);
|
111
|
+
}
|
112
|
+
});
|
113
|
+
|
114
|
+
_defineProperty(this, "sync", () => {
|
115
|
+
const gesture = this.hammer.get(this.name);
|
116
|
+
if (!gesture) return;
|
117
|
+
|
118
|
+
const enable = (recognizer, inputData) => {
|
119
|
+
if (!this.config.enabled) {
|
120
|
+
this.isGestureRunning = false;
|
121
|
+
this.hasGestureFailed = false;
|
122
|
+
return false;
|
123
|
+
} // Prevent events before the system is ready.
|
124
|
+
|
125
|
+
|
126
|
+
if (!inputData || !recognizer.options || typeof inputData.maxPointers === 'undefined') {
|
127
|
+
return this.shouldEnableGestureOnSetup;
|
128
|
+
}
|
129
|
+
|
130
|
+
if (this.hasGestureFailed) {
|
131
|
+
return false;
|
132
|
+
}
|
133
|
+
|
134
|
+
if (!this.isDiscrete) {
|
135
|
+
if (this.isGestureRunning) {
|
136
|
+
return true;
|
137
|
+
} // The built-in hammer.js "waitFor" doesn't work across multiple views.
|
138
|
+
// Only process if there are views to wait for.
|
139
|
+
|
140
|
+
|
141
|
+
this._stillWaiting = this._getPendingGestures(); // This gesture should continue waiting.
|
142
|
+
|
143
|
+
if (this._stillWaiting.length) {
|
144
|
+
// Check to see if one of the gestures you're waiting for has started.
|
145
|
+
// If it has then the gesture should fail.
|
146
|
+
for (const gesture of this._stillWaiting) {
|
147
|
+
// When the target gesture has started, this gesture must force fail.
|
148
|
+
if (!gesture.isDiscrete && gesture.isGestureRunning) {
|
149
|
+
this.hasGestureFailed = true;
|
150
|
+
this.isGestureRunning = false;
|
151
|
+
return false;
|
152
|
+
}
|
153
|
+
} // This gesture shouldn't start until the others have finished.
|
154
|
+
|
155
|
+
|
156
|
+
return false;
|
157
|
+
}
|
158
|
+
} // Use default behaviour
|
159
|
+
|
160
|
+
|
161
|
+
if (!this.hasCustomActivationCriteria) {
|
162
|
+
return true;
|
163
|
+
}
|
164
|
+
|
165
|
+
const deltaRotation = this.initialRotation == null ? 0 : inputData.rotation - this.initialRotation; // @ts-ignore FIXME(TS)
|
166
|
+
|
167
|
+
const {
|
168
|
+
success,
|
169
|
+
failed
|
170
|
+
} = this.isGestureEnabledForEvent(this.getConfig(), recognizer, { ...inputData,
|
171
|
+
deltaRotation
|
172
|
+
});
|
173
|
+
|
174
|
+
if (failed) {
|
175
|
+
this.simulateCancelEvent(inputData);
|
176
|
+
this.hasGestureFailed = true;
|
177
|
+
}
|
178
|
+
|
179
|
+
return success;
|
180
|
+
};
|
181
|
+
|
182
|
+
const params = this.getHammerConfig(); // @ts-ignore FIXME(TS)
|
183
|
+
|
184
|
+
gesture.set({ ...params,
|
185
|
+
enable
|
186
|
+
});
|
187
|
+
});
|
188
|
+
|
189
|
+
this.gestureInstance = gestureInstances++;
|
190
|
+
this.hasCustomActivationCriteria = false;
|
191
|
+
}
|
192
|
+
|
193
|
+
getConfig() {
|
194
|
+
return this.config;
|
195
|
+
}
|
196
|
+
|
197
|
+
onWaitingEnded(_gesture) {}
|
198
|
+
|
199
|
+
removePendingGesture(id) {
|
200
|
+
delete this.pendingGestures[id];
|
201
|
+
}
|
202
|
+
|
203
|
+
addPendingGesture(gesture) {
|
204
|
+
this.pendingGestures[gesture.id] = gesture;
|
205
|
+
}
|
206
|
+
|
207
|
+
isGestureEnabledForEvent(_config, _recognizer, _event) {
|
208
|
+
return {
|
209
|
+
success: true
|
210
|
+
};
|
211
|
+
}
|
212
|
+
|
213
|
+
get NativeGestureClass() {
|
214
|
+
throw new Error('Must override GestureHandler.NativeGestureClass');
|
215
|
+
}
|
216
|
+
|
217
|
+
updateHasCustomActivationCriteria(_config) {
|
218
|
+
return true;
|
219
|
+
}
|
220
|
+
|
221
|
+
updateGestureConfig({
|
222
|
+
enabled = true,
|
223
|
+
...props
|
224
|
+
}) {
|
225
|
+
this.clearSelfAsPending();
|
226
|
+
this.config = this.ensureConfig({
|
227
|
+
enabled,
|
228
|
+
...props
|
229
|
+
});
|
230
|
+
this.hasCustomActivationCriteria = this.updateHasCustomActivationCriteria(this.config);
|
231
|
+
|
232
|
+
if (Array.isArray(this.config.waitFor)) {
|
233
|
+
for (const gesture of this.config.waitFor) {
|
234
|
+
gesture.addPendingGesture(this);
|
235
|
+
}
|
236
|
+
}
|
237
|
+
|
238
|
+
if (this.hammer) {
|
239
|
+
this.sync();
|
240
|
+
}
|
241
|
+
|
242
|
+
return this.config;
|
243
|
+
}
|
244
|
+
|
245
|
+
getState(type) {
|
246
|
+
// @ts-ignore TODO(TS) check if this is needed
|
247
|
+
if (type == 0) {
|
248
|
+
return 0;
|
249
|
+
}
|
250
|
+
|
251
|
+
return EventMap[type];
|
252
|
+
}
|
253
|
+
|
254
|
+
transformEventData(event) {
|
255
|
+
const {
|
256
|
+
eventType,
|
257
|
+
maxPointers: numberOfPointers
|
258
|
+
} = event; // const direction = DirectionMap[ev.direction];
|
259
|
+
|
260
|
+
const changedTouch = event.changedPointers[0];
|
261
|
+
const pointerInside = this.isPointInView({
|
262
|
+
x: changedTouch.clientX,
|
263
|
+
y: changedTouch.clientY
|
264
|
+
}); // TODO(TS) Remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50966 is merged.
|
265
|
+
|
266
|
+
const state = this.getState(eventType);
|
267
|
+
|
268
|
+
if (state !== this.previousState) {
|
269
|
+
this.oldState = this.previousState;
|
270
|
+
this.previousState = state;
|
271
|
+
}
|
272
|
+
|
273
|
+
return {
|
274
|
+
nativeEvent: {
|
275
|
+
numberOfPointers,
|
276
|
+
state,
|
277
|
+
pointerInside,
|
278
|
+
...this.transformNativeEvent(event),
|
279
|
+
// onHandlerStateChange only
|
280
|
+
handlerTag: this.handlerTag,
|
281
|
+
target: this.ref,
|
282
|
+
// send oldState only when the state was changed, or is different than ACTIVE
|
283
|
+
// GestureDetector relies on the presence of `oldState` to differentiate between
|
284
|
+
// update events and state change events
|
285
|
+
oldState: state !== this.previousState || state != 4 ? this.oldState : undefined
|
286
|
+
},
|
287
|
+
timeStamp: Date.now()
|
288
|
+
};
|
289
|
+
}
|
290
|
+
|
291
|
+
transformNativeEvent(_event) {
|
292
|
+
return {};
|
293
|
+
}
|
294
|
+
|
295
|
+
cancelPendingGestures(event) {
|
296
|
+
for (const gesture of Object.values(this.pendingGestures)) {
|
297
|
+
if (gesture && gesture.isGestureRunning) {
|
298
|
+
gesture.hasGestureFailed = true;
|
299
|
+
gesture.cancelEvent(event);
|
300
|
+
}
|
301
|
+
}
|
302
|
+
}
|
303
|
+
|
304
|
+
notifyPendingGestures() {
|
305
|
+
for (const gesture of Object.values(this.pendingGestures)) {
|
306
|
+
if (gesture) {
|
307
|
+
gesture.onWaitingEnded(this);
|
308
|
+
}
|
309
|
+
}
|
310
|
+
} // FIXME event is undefined in runtime when firstly invoked (see Draggable example), check other functions taking event as input
|
311
|
+
|
312
|
+
|
313
|
+
onGestureEnded(event) {
|
314
|
+
this.isGestureRunning = false;
|
315
|
+
this.cancelPendingGestures(event);
|
316
|
+
}
|
317
|
+
|
318
|
+
forceInvalidate(event) {
|
319
|
+
if (this.isGestureRunning) {
|
320
|
+
this.hasGestureFailed = true;
|
321
|
+
this.cancelEvent(event);
|
322
|
+
}
|
323
|
+
}
|
324
|
+
|
325
|
+
cancelEvent(event) {
|
326
|
+
this.notifyPendingGestures();
|
327
|
+
this.sendEvent({ ...event,
|
328
|
+
eventType: Hammer.INPUT_CANCEL,
|
329
|
+
isFinal: true
|
330
|
+
});
|
331
|
+
this.onGestureEnded(event);
|
332
|
+
}
|
333
|
+
|
334
|
+
onRawEvent({
|
335
|
+
isFirst
|
336
|
+
}) {
|
337
|
+
if (isFirst) {
|
338
|
+
this.hasGestureFailed = false;
|
339
|
+
}
|
340
|
+
}
|
341
|
+
|
342
|
+
shouldUseTouchEvents(config) {
|
343
|
+
var _config$simultaneousH, _config$simultaneousH2;
|
344
|
+
|
345
|
+
return (_config$simultaneousH = (_config$simultaneousH2 = config.simultaneousHandlers) === null || _config$simultaneousH2 === void 0 ? void 0 : _config$simultaneousH2.some(handler => handler.isNative)) !== null && _config$simultaneousH !== void 0 ? _config$simultaneousH : false;
|
346
|
+
}
|
347
|
+
|
348
|
+
setView(ref, propsRef) {
|
349
|
+
if (ref == null) {
|
350
|
+
this.destroy();
|
351
|
+
this.view = null;
|
352
|
+
return;
|
353
|
+
} // @ts-ignore window doesn't exist on global type as we don't want to use Node types
|
354
|
+
|
355
|
+
|
356
|
+
const SUPPORTS_TOUCH = ('ontouchstart' in window);
|
357
|
+
this.propsRef = propsRef;
|
358
|
+
this.ref = ref;
|
359
|
+
this.view = findNodeHandle(ref); // When the browser starts handling the gesture (e.g. scrolling), it sends a pointercancel event and stops
|
360
|
+
// sending additional pointer events. This is not the case with touch events, so if the gesture is simultaneous
|
361
|
+
// with a NativeGestureHandler, we need to check if touch events are supported and use them if possible.
|
362
|
+
|
363
|
+
this.hammer = SUPPORTS_TOUCH && this.shouldUseTouchEvents(this.config) ? new Hammer.Manager(this.view, {
|
364
|
+
inputClass: Hammer.TouchInput
|
365
|
+
}) : new Hammer.Manager(this.view);
|
366
|
+
this.oldState = State.UNDETERMINED;
|
367
|
+
this.previousState = State.UNDETERMINED;
|
368
|
+
this.lastSentState = null;
|
369
|
+
const {
|
370
|
+
NativeGestureClass
|
371
|
+
} = this; // @ts-ignore TODO(TS)
|
372
|
+
|
373
|
+
const gesture = new NativeGestureClass(this.getHammerConfig());
|
374
|
+
this.hammer.add(gesture);
|
375
|
+
this.hammer.on('hammer.input', ev => {
|
376
|
+
if (!this.config.enabled) {
|
377
|
+
this.hasGestureFailed = false;
|
378
|
+
this.isGestureRunning = false;
|
379
|
+
return;
|
380
|
+
}
|
381
|
+
|
382
|
+
this.onRawEvent(ev); // TODO: Bacon: Check against something other than null
|
383
|
+
// The isFirst value is not called when the first rotation is calculated.
|
384
|
+
|
385
|
+
if (this.initialRotation === null && ev.rotation !== 0) {
|
386
|
+
this.initialRotation = ev.rotation;
|
387
|
+
}
|
388
|
+
|
389
|
+
if (ev.isFinal) {
|
390
|
+
// in favor of a willFail otherwise the last frame of the gesture will be captured.
|
391
|
+
setTimeout(() => {
|
392
|
+
this.initialRotation = null;
|
393
|
+
this.hasGestureFailed = false;
|
394
|
+
});
|
395
|
+
}
|
396
|
+
});
|
397
|
+
this.setupEvents();
|
398
|
+
this.sync();
|
399
|
+
}
|
400
|
+
|
401
|
+
setupEvents() {
|
402
|
+
// TODO(TS) Hammer types aren't exactly that what we get in runtime
|
403
|
+
if (!this.isDiscrete) {
|
404
|
+
this.hammer.on(`${this.name}start`, event => this.onStart(event));
|
405
|
+
this.hammer.on(`${this.name}end ${this.name}cancel`, event => {
|
406
|
+
this.onGestureEnded(event);
|
407
|
+
});
|
408
|
+
}
|
409
|
+
|
410
|
+
this.hammer.on(this.name, ev => this.onGestureActivated(ev)); // TODO(TS) remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438 is merged
|
411
|
+
}
|
412
|
+
|
413
|
+
onStart({
|
414
|
+
deltaX,
|
415
|
+
deltaY,
|
416
|
+
rotation
|
417
|
+
}) {
|
418
|
+
// Reset the state for the next gesture
|
419
|
+
this.oldState = State.UNDETERMINED;
|
420
|
+
this.previousState = State.UNDETERMINED;
|
421
|
+
this.lastSentState = null;
|
422
|
+
this.isGestureRunning = true;
|
423
|
+
this.__initialX = deltaX;
|
424
|
+
this.__initialY = deltaY;
|
425
|
+
this.initialRotation = rotation;
|
426
|
+
}
|
427
|
+
|
428
|
+
onGestureActivated(ev) {
|
429
|
+
this.sendEvent(ev);
|
430
|
+
}
|
431
|
+
|
432
|
+
onSuccess() {}
|
433
|
+
|
434
|
+
_getPendingGestures() {
|
435
|
+
if (Array.isArray(this.config.waitFor) && this.config.waitFor.length) {
|
436
|
+
// Get the list of gestures that this gesture is still waiting for.
|
437
|
+
// Use `=== false` in case a ref that isn't a gesture handler is used.
|
438
|
+
const stillWaiting = this.config.waitFor.filter(({
|
439
|
+
hasGestureFailed
|
440
|
+
}) => hasGestureFailed === false);
|
441
|
+
return stillWaiting;
|
442
|
+
}
|
443
|
+
|
444
|
+
return [];
|
445
|
+
}
|
446
|
+
|
447
|
+
getHammerConfig() {
|
448
|
+
const pointers = this.config.minPointers === this.config.maxPointers ? this.config.minPointers : 0;
|
449
|
+
return {
|
450
|
+
pointers
|
451
|
+
};
|
452
|
+
}
|
453
|
+
|
454
|
+
simulateCancelEvent(_inputData) {} // Validate the props
|
455
|
+
|
456
|
+
|
457
|
+
ensureConfig(config) {
|
458
|
+
const props = { ...config
|
459
|
+
}; // TODO(TS) We use ! to assert that if property is present then value is not empty (null, undefined)
|
460
|
+
|
461
|
+
if ('minDist' in config) {
|
462
|
+
props.minDist = config.minDist;
|
463
|
+
props.minDistSq = props.minDist * props.minDist;
|
464
|
+
}
|
465
|
+
|
466
|
+
if ('minVelocity' in config) {
|
467
|
+
props.minVelocity = config.minVelocity;
|
468
|
+
props.minVelocitySq = props.minVelocity * props.minVelocity;
|
469
|
+
}
|
470
|
+
|
471
|
+
if ('maxDist' in config) {
|
472
|
+
props.maxDist = config.maxDist;
|
473
|
+
props.maxDistSq = config.maxDist * config.maxDist;
|
474
|
+
}
|
475
|
+
|
476
|
+
if ('waitFor' in config) {
|
477
|
+
props.waitFor = asArray(config.waitFor).map(({
|
478
|
+
handlerTag
|
479
|
+
}) => NodeManager.getHandler(handlerTag)).filter(v => v);
|
480
|
+
} else {
|
481
|
+
props.waitFor = null;
|
482
|
+
}
|
483
|
+
|
484
|
+
if ('simultaneousHandlers' in config) {
|
485
|
+
const shouldUseTouchEvents = this.shouldUseTouchEvents(this.config);
|
486
|
+
props.simultaneousHandlers = asArray(config.simultaneousHandlers).map(handler => {
|
487
|
+
if (typeof handler === 'number') {
|
488
|
+
return NodeManager.getHandler(handler);
|
489
|
+
} else {
|
490
|
+
return NodeManager.getHandler(handler.handlerTag);
|
491
|
+
}
|
492
|
+
}).filter(v => v);
|
493
|
+
|
494
|
+
if (shouldUseTouchEvents !== this.shouldUseTouchEvents(props)) {
|
495
|
+
ghQueueMicrotask(() => {
|
496
|
+
// if the undelying event API needs to be changed, we need to unmount and mount
|
497
|
+
// the hammer instance again.
|
498
|
+
this.destroy();
|
499
|
+
this.setView(this.ref, this.propsRef);
|
500
|
+
});
|
501
|
+
}
|
502
|
+
} else {
|
503
|
+
props.simultaneousHandlers = null;
|
504
|
+
}
|
505
|
+
|
506
|
+
const configProps = ['minPointers', 'maxPointers', 'minDist', 'maxDist', 'maxDistSq', 'minVelocitySq', 'minDistSq', 'minVelocity', 'failOffsetXStart', 'failOffsetYStart', 'failOffsetXEnd', 'failOffsetYEnd', 'activeOffsetXStart', 'activeOffsetXEnd', 'activeOffsetYStart', 'activeOffsetYEnd'];
|
507
|
+
configProps.forEach(prop => {
|
508
|
+
if (typeof props[prop] === 'undefined') {
|
509
|
+
props[prop] = Number.NaN;
|
510
|
+
}
|
511
|
+
});
|
512
|
+
return props; // TODO(TS) how to convince TS that props are filled?
|
513
|
+
}
|
514
|
+
|
515
|
+
} // TODO(TS) investigate this method
|
516
|
+
// Used for sending data to a callback or AnimatedEvent
|
517
|
+
|
518
|
+
|
519
|
+
function invokeNullableMethod(method, event) {
|
520
|
+
if (method) {
|
521
|
+
if (typeof method === 'function') {
|
522
|
+
method(event);
|
523
|
+
} else {
|
524
|
+
// For use with reanimated's AnimatedEvent
|
525
|
+
if ('__getHandler' in method && typeof method.__getHandler === 'function') {
|
526
|
+
const handler = method.__getHandler();
|
527
|
+
|
528
|
+
invokeNullableMethod(handler, event);
|
529
|
+
} else {
|
530
|
+
if ('__nodeConfig' in method) {
|
531
|
+
const {
|
532
|
+
argMapping
|
533
|
+
} = method.__nodeConfig;
|
534
|
+
|
535
|
+
if (Array.isArray(argMapping)) {
|
536
|
+
for (const [index, [key, value]] of argMapping.entries()) {
|
537
|
+
if (key in event.nativeEvent) {
|
538
|
+
// @ts-ignore fix method type
|
539
|
+
const nativeValue = event.nativeEvent[key];
|
540
|
+
|
541
|
+
if (value && value.setValue) {
|
542
|
+
// Reanimated API
|
543
|
+
value.setValue(nativeValue);
|
544
|
+
} else {
|
545
|
+
// RN Animated API
|
546
|
+
method.__nodeConfig.argMapping[index] = [key, nativeValue];
|
547
|
+
}
|
548
|
+
}
|
549
|
+
}
|
550
|
+
}
|
551
|
+
}
|
552
|
+
}
|
553
|
+
}
|
554
|
+
}
|
555
|
+
}
|
556
|
+
|
557
|
+
function asArray(value) {
|
558
|
+
// TODO(TS) use config.waitFor type
|
559
|
+
return value == null ? [] : Array.isArray(value) ? value : [value];
|
560
|
+
}
|
561
|
+
|
562
|
+
export default GestureHandler;
|
563
|
+
//# sourceMappingURL=GestureHandler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["GestureHandler.ts"],"names":["Hammer","findNodeHandle","State","EventMap","NodeManager","ghQueueMicrotask","gestureInstances","GestureHandler","id","name","gestureInstance","isNative","isDiscrete","shouldEnableGestureOnSetup","Error","constructor","UNDETERMINED","Array","isArray","config","waitFor","gesture","removePendingGesture","clearSelfAsPending","hammer","stop","destroy","x","y","rect","view","getBoundingClientRect","pointerInside","left","right","top","bottom","nativeEvent","onGestureHandlerEvent","onGestureHandlerStateChange","propsRef","current","event","transformEventData","invokeNullableMethod","lastSentState","state","get","enable","recognizer","inputData","enabled","isGestureRunning","hasGestureFailed","options","maxPointers","_stillWaiting","_getPendingGestures","length","hasCustomActivationCriteria","deltaRotation","initialRotation","rotation","success","failed","isGestureEnabledForEvent","getConfig","simulateCancelEvent","params","getHammerConfig","set","onWaitingEnded","_gesture","pendingGestures","addPendingGesture","_config","_recognizer","_event","NativeGestureClass","updateHasCustomActivationCriteria","updateGestureConfig","props","ensureConfig","sync","getState","type","eventType","numberOfPointers","changedTouch","changedPointers","isPointInView","clientX","clientY","previousState","oldState","transformNativeEvent","handlerTag","target","ref","undefined","timeStamp","Date","now","cancelPendingGestures","Object","values","cancelEvent","notifyPendingGestures","onGestureEnded","forceInvalidate","sendEvent","INPUT_CANCEL","isFinal","onRawEvent","isFirst","shouldUseTouchEvents","simultaneousHandlers","some","handler","setView","SUPPORTS_TOUCH","window","Manager","inputClass","TouchInput","add","on","ev","setTimeout","setupEvents","onStart","onGestureActivated","deltaX","deltaY","__initialX","__initialY","onSuccess","stillWaiting","filter","pointers","minPointers","_inputData","minDist","minDistSq","minVelocity","minVelocitySq","maxDist","maxDistSq","asArray","map","getHandler","v","configProps","forEach","prop","Number","NaN","method","__getHandler","argMapping","__nodeConfig","index","key","value","entries","nativeValue","setValue"],"mappings":"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","sourcesContent":["/* eslint-disable eslint-comments/no-unlimited-disable */\r\n/* eslint-disable */\r\nimport Hammer from '@egjs/hammerjs';\r\nimport { findNodeHandle } from 'react-native';\r\n\r\nimport { State } from '../State';\r\nimport { EventMap } from './constants';\r\nimport * as NodeManager from './NodeManager';\r\nimport { ghQueueMicrotask } from '../ghQueueMicrotask';\r\n\r\n// TODO(TS) Replace with HammerInput if https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438/files is merged\r\nexport type HammerInputExt = Omit<HammerInput, 'destroy' | 'handler' | 'init'>;\r\n\r\nexport type Config = Partial<{\r\n enabled: boolean;\r\n minPointers: number;\r\n maxPointers: number;\r\n minDist: number;\r\n minDistSq: number;\r\n minVelocity: number;\r\n minVelocitySq: number;\r\n maxDist: number;\r\n maxDistSq: number;\r\n failOffsetXStart: number;\r\n failOffsetYStart: number;\r\n failOffsetXEnd: number;\r\n failOffsetYEnd: number;\r\n activeOffsetXStart: number;\r\n activeOffsetXEnd: number;\r\n activeOffsetYStart: number;\r\n activeOffsetYEnd: number;\r\n waitFor: any[] | null;\r\n simultaneousHandlers: any[] | null;\r\n}>;\r\n\r\ntype NativeEvent = ReturnType<GestureHandler['transformEventData']>;\r\n\r\nlet gestureInstances = 0;\r\n\r\nabstract class GestureHandler {\r\n public handlerTag: any;\r\n public isGestureRunning = false;\r\n public view: number | null = null;\r\n protected hasCustomActivationCriteria: boolean;\r\n protected hasGestureFailed = false;\r\n protected hammer: HammerManager | null = null;\r\n protected initialRotation: number | null = null;\r\n protected __initialX: any;\r\n protected __initialY: any;\r\n protected config: Config = {};\r\n protected previousState: State = State.UNDETERMINED;\r\n private pendingGestures: Record<string, this> = {};\r\n private oldState: State = State.UNDETERMINED;\r\n private lastSentState: State | null = null;\r\n private gestureInstance: number;\r\n private _stillWaiting: any;\r\n private propsRef: any;\r\n private ref: any;\r\n\r\n abstract get name(): string;\r\n\r\n get id() {\r\n return `${this.name}${this.gestureInstance}`;\r\n }\r\n\r\n // a simple way to check if GestureHandler is NativeViewGestureHandler, since importing it\r\n // here to use instanceof would cause import cycle\r\n get isNative() {\r\n return false;\r\n }\r\n\r\n get isDiscrete() {\r\n return false;\r\n }\r\n\r\n get shouldEnableGestureOnSetup(): boolean {\r\n throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');\r\n }\r\n\r\n constructor() {\r\n this.gestureInstance = gestureInstances++;\r\n this.hasCustomActivationCriteria = false;\r\n }\r\n\r\n getConfig() {\r\n return this.config;\r\n }\r\n\r\n onWaitingEnded(_gesture: this) {}\r\n\r\n removePendingGesture(id: string) {\r\n delete this.pendingGestures[id];\r\n }\r\n\r\n addPendingGesture(gesture: this) {\r\n this.pendingGestures[gesture.id] = gesture;\r\n }\r\n\r\n isGestureEnabledForEvent(\r\n _config: any,\r\n _recognizer: any,\r\n _event: any\r\n ): { failed?: boolean; success?: boolean } {\r\n return { success: true };\r\n }\r\n\r\n get NativeGestureClass(): RecognizerStatic {\r\n throw new Error('Must override GestureHandler.NativeGestureClass');\r\n }\r\n\r\n updateHasCustomActivationCriteria(_config: Config) {\r\n return true;\r\n }\r\n\r\n clearSelfAsPending = () => {\r\n if (Array.isArray(this.config.waitFor)) {\r\n for (const gesture of this.config.waitFor) {\r\n gesture.removePendingGesture(this.id);\r\n }\r\n }\r\n };\r\n\r\n updateGestureConfig({ enabled = true, ...props }) {\r\n this.clearSelfAsPending();\r\n\r\n this.config = this.ensureConfig({ enabled, ...props });\r\n this.hasCustomActivationCriteria = this.updateHasCustomActivationCriteria(\r\n this.config\r\n );\r\n if (Array.isArray(this.config.waitFor)) {\r\n for (const gesture of this.config.waitFor) {\r\n gesture.addPendingGesture(this);\r\n }\r\n }\r\n\r\n if (this.hammer) {\r\n this.sync();\r\n }\r\n return this.config;\r\n }\r\n\r\n destroy = () => {\r\n this.clearSelfAsPending();\r\n\r\n if (this.hammer) {\r\n this.hammer.stop(false);\r\n this.hammer.destroy();\r\n }\r\n this.hammer = null;\r\n };\r\n\r\n isPointInView = ({ x, y }: { x: number; y: number }) => {\r\n // @ts-ignore FIXME(TS)\r\n const rect = this.view!.getBoundingClientRect();\r\n const pointerInside =\r\n x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\r\n return pointerInside;\r\n };\r\n\r\n getState(type: keyof typeof EventMap): State {\r\n // @ts-ignore TODO(TS) check if this is needed\r\n if (type == 0) {\r\n return 0;\r\n }\r\n return EventMap[type];\r\n }\r\n\r\n transformEventData(event: HammerInputExt) {\r\n const { eventType, maxPointers: numberOfPointers } = event;\r\n // const direction = DirectionMap[ev.direction];\r\n const changedTouch = event.changedPointers[0];\r\n const pointerInside = this.isPointInView({\r\n x: changedTouch.clientX,\r\n y: changedTouch.clientY,\r\n });\r\n\r\n // TODO(TS) Remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50966 is merged.\r\n const state = this.getState(eventType as 1 | 2 | 4 | 8);\r\n if (state !== this.previousState) {\r\n this.oldState = this.previousState;\r\n this.previousState = state;\r\n }\r\n\r\n return {\r\n nativeEvent: {\r\n numberOfPointers,\r\n state,\r\n pointerInside,\r\n ...this.transformNativeEvent(event),\r\n // onHandlerStateChange only\r\n handlerTag: this.handlerTag,\r\n target: this.ref,\r\n // send oldState only when the state was changed, or is different than ACTIVE\r\n // GestureDetector relies on the presence of `oldState` to differentiate between\r\n // update events and state change events\r\n oldState:\r\n state !== this.previousState || state != 4\r\n ? this.oldState\r\n : undefined,\r\n },\r\n timeStamp: Date.now(),\r\n };\r\n }\r\n\r\n transformNativeEvent(_event: HammerInputExt) {\r\n return {};\r\n }\r\n\r\n sendEvent = (nativeEvent: HammerInputExt) => {\r\n const { onGestureHandlerEvent, onGestureHandlerStateChange } =\r\n this.propsRef.current;\r\n\r\n const event = this.transformEventData(nativeEvent);\r\n\r\n invokeNullableMethod(onGestureHandlerEvent, event);\r\n if (this.lastSentState !== event.nativeEvent.state) {\r\n this.lastSentState = event.nativeEvent.state as State;\r\n invokeNullableMethod(onGestureHandlerStateChange, event);\r\n }\r\n };\r\n\r\n cancelPendingGestures(event: HammerInputExt) {\r\n for (const gesture of Object.values(this.pendingGestures)) {\r\n if (gesture && gesture.isGestureRunning) {\r\n gesture.hasGestureFailed = true;\r\n gesture.cancelEvent(event);\r\n }\r\n }\r\n }\r\n\r\n notifyPendingGestures() {\r\n for (const gesture of Object.values(this.pendingGestures)) {\r\n if (gesture) {\r\n gesture.onWaitingEnded(this);\r\n }\r\n }\r\n }\r\n\r\n // FIXME event is undefined in runtime when firstly invoked (see Draggable example), check other functions taking event as input\r\n onGestureEnded(event: HammerInputExt) {\r\n this.isGestureRunning = false;\r\n this.cancelPendingGestures(event);\r\n }\r\n\r\n forceInvalidate(event: HammerInputExt) {\r\n if (this.isGestureRunning) {\r\n this.hasGestureFailed = true;\r\n this.cancelEvent(event);\r\n }\r\n }\r\n\r\n cancelEvent(event: HammerInputExt) {\r\n this.notifyPendingGestures();\r\n this.sendEvent({\r\n ...event,\r\n eventType: Hammer.INPUT_CANCEL,\r\n isFinal: true,\r\n });\r\n this.onGestureEnded(event);\r\n }\r\n\r\n onRawEvent({ isFirst }: HammerInputExt) {\r\n if (isFirst) {\r\n this.hasGestureFailed = false;\r\n }\r\n }\r\n\r\n shouldUseTouchEvents(config: Config) {\r\n return (\r\n config.simultaneousHandlers?.some((handler) => handler.isNative) ?? false\r\n );\r\n }\r\n\r\n setView(ref: Parameters<typeof findNodeHandle>['0'], propsRef: any) {\r\n if (ref == null) {\r\n this.destroy();\r\n this.view = null;\r\n return;\r\n }\r\n\r\n // @ts-ignore window doesn't exist on global type as we don't want to use Node types\r\n const SUPPORTS_TOUCH = 'ontouchstart' in window;\r\n this.propsRef = propsRef;\r\n this.ref = ref;\r\n\r\n this.view = findNodeHandle(ref);\r\n\r\n // When the browser starts handling the gesture (e.g. scrolling), it sends a pointercancel event and stops\r\n // sending additional pointer events. This is not the case with touch events, so if the gesture is simultaneous\r\n // with a NativeGestureHandler, we need to check if touch events are supported and use them if possible.\r\n this.hammer =\r\n SUPPORTS_TOUCH && this.shouldUseTouchEvents(this.config)\r\n ? new Hammer.Manager(this.view as any, {\r\n inputClass: Hammer.TouchInput,\r\n })\r\n : new Hammer.Manager(this.view as any);\r\n\r\n this.oldState = State.UNDETERMINED;\r\n this.previousState = State.UNDETERMINED;\r\n this.lastSentState = null;\r\n\r\n const { NativeGestureClass } = this;\r\n // @ts-ignore TODO(TS)\r\n const gesture = new NativeGestureClass(this.getHammerConfig());\r\n this.hammer.add(gesture);\r\n\r\n this.hammer.on('hammer.input', (ev: HammerInput) => {\r\n if (!this.config.enabled) {\r\n this.hasGestureFailed = false;\r\n this.isGestureRunning = false;\r\n return;\r\n }\r\n\r\n this.onRawEvent(ev as unknown as HammerInputExt);\r\n\r\n // TODO: Bacon: Check against something other than null\r\n // The isFirst value is not called when the first rotation is calculated.\r\n if (this.initialRotation === null && ev.rotation !== 0) {\r\n this.initialRotation = ev.rotation;\r\n }\r\n if (ev.isFinal) {\r\n // in favor of a willFail otherwise the last frame of the gesture will be captured.\r\n setTimeout(() => {\r\n this.initialRotation = null;\r\n this.hasGestureFailed = false;\r\n });\r\n }\r\n });\r\n\r\n this.setupEvents();\r\n this.sync();\r\n }\r\n\r\n setupEvents() {\r\n // TODO(TS) Hammer types aren't exactly that what we get in runtime\r\n if (!this.isDiscrete) {\r\n this.hammer!.on(`${this.name}start`, (event: HammerInput) =>\r\n this.onStart(event as unknown as HammerInputExt)\r\n );\r\n this.hammer!.on(\r\n `${this.name}end ${this.name}cancel`,\r\n (event: HammerInput) => {\r\n this.onGestureEnded(event as unknown as HammerInputExt);\r\n }\r\n );\r\n }\r\n this.hammer!.on(this.name, (ev: HammerInput) =>\r\n this.onGestureActivated(ev as unknown as HammerInputExt)\r\n ); // TODO(TS) remove cast after https://github.com/DefinitelyTyped/DefinitelyTyped/pull/50438 is merged\r\n }\r\n\r\n onStart({ deltaX, deltaY, rotation }: HammerInputExt) {\r\n // Reset the state for the next gesture\r\n this.oldState = State.UNDETERMINED;\r\n this.previousState = State.UNDETERMINED;\r\n this.lastSentState = null;\r\n\r\n this.isGestureRunning = true;\r\n this.__initialX = deltaX;\r\n this.__initialY = deltaY;\r\n this.initialRotation = rotation;\r\n }\r\n\r\n onGestureActivated(ev: HammerInputExt) {\r\n this.sendEvent(ev);\r\n }\r\n\r\n onSuccess() {}\r\n\r\n _getPendingGestures() {\r\n if (Array.isArray(this.config.waitFor) && this.config.waitFor.length) {\r\n // Get the list of gestures that this gesture is still waiting for.\r\n // Use `=== false` in case a ref that isn't a gesture handler is used.\r\n const stillWaiting = this.config.waitFor.filter(\r\n ({ hasGestureFailed }) => hasGestureFailed === false\r\n );\r\n return stillWaiting;\r\n }\r\n return [];\r\n }\r\n\r\n getHammerConfig() {\r\n const pointers =\r\n this.config.minPointers === this.config.maxPointers\r\n ? this.config.minPointers\r\n : 0;\r\n return {\r\n pointers,\r\n };\r\n }\r\n\r\n sync = () => {\r\n const gesture = this.hammer!.get(this.name);\r\n if (!gesture) return;\r\n\r\n const enable = (recognizer: any, inputData: any) => {\r\n if (!this.config.enabled) {\r\n this.isGestureRunning = false;\r\n this.hasGestureFailed = false;\r\n return false;\r\n }\r\n\r\n // Prevent events before the system is ready.\r\n if (\r\n !inputData ||\r\n !recognizer.options ||\r\n typeof inputData.maxPointers === 'undefined'\r\n ) {\r\n return this.shouldEnableGestureOnSetup;\r\n }\r\n\r\n if (this.hasGestureFailed) {\r\n return false;\r\n }\r\n\r\n if (!this.isDiscrete) {\r\n if (this.isGestureRunning) {\r\n return true;\r\n }\r\n // The built-in hammer.js \"waitFor\" doesn't work across multiple views.\r\n // Only process if there are views to wait for.\r\n this._stillWaiting = this._getPendingGestures();\r\n // This gesture should continue waiting.\r\n if (this._stillWaiting.length) {\r\n // Check to see if one of the gestures you're waiting for has started.\r\n // If it has then the gesture should fail.\r\n for (const gesture of this._stillWaiting) {\r\n // When the target gesture has started, this gesture must force fail.\r\n if (!gesture.isDiscrete && gesture.isGestureRunning) {\r\n this.hasGestureFailed = true;\r\n this.isGestureRunning = false;\r\n return false;\r\n }\r\n }\r\n // This gesture shouldn't start until the others have finished.\r\n return false;\r\n }\r\n }\r\n\r\n // Use default behaviour\r\n if (!this.hasCustomActivationCriteria) {\r\n return true;\r\n }\r\n\r\n const deltaRotation =\r\n this.initialRotation == null\r\n ? 0\r\n : inputData.rotation - this.initialRotation;\r\n // @ts-ignore FIXME(TS)\r\n const { success, failed } = this.isGestureEnabledForEvent(\r\n this.getConfig(),\r\n recognizer,\r\n {\r\n ...inputData,\r\n deltaRotation,\r\n }\r\n );\r\n\r\n if (failed) {\r\n this.simulateCancelEvent(inputData);\r\n this.hasGestureFailed = true;\r\n }\r\n return success;\r\n };\r\n\r\n const params = this.getHammerConfig();\r\n // @ts-ignore FIXME(TS)\r\n gesture.set({ ...params, enable });\r\n };\r\n\r\n simulateCancelEvent(_inputData: any) {}\r\n\r\n // Validate the props\r\n ensureConfig(config: Config): Required<Config> {\r\n const props = { ...config };\r\n\r\n // TODO(TS) We use ! to assert that if property is present then value is not empty (null, undefined)\r\n if ('minDist' in config) {\r\n props.minDist = config.minDist;\r\n props.minDistSq = props.minDist! * props.minDist!;\r\n }\r\n if ('minVelocity' in config) {\r\n props.minVelocity = config.minVelocity;\r\n props.minVelocitySq = props.minVelocity! * props.minVelocity!;\r\n }\r\n if ('maxDist' in config) {\r\n props.maxDist = config.maxDist;\r\n props.maxDistSq = config.maxDist! * config.maxDist!;\r\n }\r\n if ('waitFor' in config) {\r\n props.waitFor = asArray(config.waitFor)\r\n .map(({ handlerTag }: { handlerTag: number }) =>\r\n NodeManager.getHandler(handlerTag)\r\n )\r\n .filter((v) => v);\r\n } else {\r\n props.waitFor = null;\r\n }\r\n if ('simultaneousHandlers' in config) {\r\n const shouldUseTouchEvents = this.shouldUseTouchEvents(this.config);\r\n props.simultaneousHandlers = asArray(config.simultaneousHandlers)\r\n .map((handler: number | GestureHandler) => {\r\n if (typeof handler === 'number') {\r\n return NodeManager.getHandler(handler);\r\n } else {\r\n return NodeManager.getHandler(handler.handlerTag);\r\n }\r\n })\r\n .filter((v) => v);\r\n\r\n if (shouldUseTouchEvents !== this.shouldUseTouchEvents(props)) {\r\n ghQueueMicrotask(() => {\r\n // if the undelying event API needs to be changed, we need to unmount and mount\r\n // the hammer instance again.\r\n this.destroy();\r\n this.setView(this.ref, this.propsRef);\r\n });\r\n }\r\n } else {\r\n props.simultaneousHandlers = null;\r\n }\r\n\r\n const configProps = [\r\n 'minPointers',\r\n 'maxPointers',\r\n 'minDist',\r\n 'maxDist',\r\n 'maxDistSq',\r\n 'minVelocitySq',\r\n 'minDistSq',\r\n 'minVelocity',\r\n 'failOffsetXStart',\r\n 'failOffsetYStart',\r\n 'failOffsetXEnd',\r\n 'failOffsetYEnd',\r\n 'activeOffsetXStart',\r\n 'activeOffsetXEnd',\r\n 'activeOffsetYStart',\r\n 'activeOffsetYEnd',\r\n ] as const;\r\n configProps.forEach((prop: typeof configProps[number]) => {\r\n if (typeof props[prop] === 'undefined') {\r\n props[prop] = Number.NaN;\r\n }\r\n });\r\n return props as Required<Config>; // TODO(TS) how to convince TS that props are filled?\r\n }\r\n}\r\n\r\n// TODO(TS) investigate this method\r\n// Used for sending data to a callback or AnimatedEvent\r\nfunction invokeNullableMethod(\r\n method:\r\n | ((event: NativeEvent) => void)\r\n | { __getHandler: () => (event: NativeEvent) => void }\r\n | { __nodeConfig: { argMapping: any } },\r\n event: NativeEvent\r\n) {\r\n if (method) {\r\n if (typeof method === 'function') {\r\n method(event);\r\n } else {\r\n // For use with reanimated's AnimatedEvent\r\n if (\r\n '__getHandler' in method &&\r\n typeof method.__getHandler === 'function'\r\n ) {\r\n const handler = method.__getHandler();\r\n invokeNullableMethod(handler, event);\r\n } else {\r\n if ('__nodeConfig' in method) {\r\n const { argMapping } = method.__nodeConfig;\r\n if (Array.isArray(argMapping)) {\r\n for (const [index, [key, value]] of argMapping.entries()) {\r\n if (key in event.nativeEvent) {\r\n // @ts-ignore fix method type\r\n const nativeValue = event.nativeEvent[key];\r\n if (value && value.setValue) {\r\n // Reanimated API\r\n value.setValue(nativeValue);\r\n } else {\r\n // RN Animated API\r\n method.__nodeConfig.argMapping[index] = [key, nativeValue];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction asArray<T>(value: T | T[]) {\r\n // TODO(TS) use config.waitFor type\r\n return value == null ? [] : Array.isArray(value) ? value : [value];\r\n}\r\n\r\nexport default GestureHandler;\r\n"]}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import GestureHandler from './GestureHandler';
|
2
|
+
/**
|
3
|
+
* The base class for **Rotation** and **Pinch** gesture handlers.
|
4
|
+
*/
|
5
|
+
|
6
|
+
class IndiscreteGestureHandler extends GestureHandler {
|
7
|
+
get shouldEnableGestureOnSetup() {
|
8
|
+
return false;
|
9
|
+
}
|
10
|
+
|
11
|
+
updateGestureConfig({
|
12
|
+
minPointers = 2,
|
13
|
+
maxPointers = 2,
|
14
|
+
...props
|
15
|
+
}) {
|
16
|
+
return super.updateGestureConfig({
|
17
|
+
minPointers,
|
18
|
+
maxPointers,
|
19
|
+
...props
|
20
|
+
});
|
21
|
+
}
|
22
|
+
|
23
|
+
isGestureEnabledForEvent({
|
24
|
+
minPointers,
|
25
|
+
maxPointers
|
26
|
+
}, _recognizer, {
|
27
|
+
maxPointers: pointerLength
|
28
|
+
}) {
|
29
|
+
if (pointerLength > maxPointers) {
|
30
|
+
return {
|
31
|
+
failed: true
|
32
|
+
};
|
33
|
+
}
|
34
|
+
|
35
|
+
const validPointerCount = pointerLength >= minPointers;
|
36
|
+
return {
|
37
|
+
success: validPointerCount
|
38
|
+
};
|
39
|
+
}
|
40
|
+
|
41
|
+
}
|
42
|
+
|
43
|
+
export default IndiscreteGestureHandler;
|
44
|
+
//# sourceMappingURL=IndiscreteGestureHandler.js.map
|