@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 @@
|
|
1
|
+
{"version":3,"sources":["jestUtils.ts"],"names":["invariant","DeviceEventEmitter","flingHandlerName","forceTouchHandlerName","BaseGesture","findHandlerByTestID","longPressHandlerName","nativeViewHandlerName","panHandlerName","pinchHandlerName","rotationHandlerName","tapHandlerName","State","hasProperty","withPrevAndCurrent","fireEvent","_element","_name","_data","require","_e","handlersDefaultEvents","x","y","absoluteX","absoluteY","numberOfPointers","force","duration","pointerInside","translationX","translationY","velocityX","velocityY","focalX","focalY","scale","velocity","anchorX","anchorY","rotation","isGesture","componentOrGesture","wrapWithNativeEvent","event","nativeEvent","fillOldStateChanges","previousEvent","currentEvent","isFirstEvent","oldState","UNDETERMINED","isGestureStateEvent","state","validateStateTransitions","stringify","JSON","errorMsgWithBothEvents","description","errorMsgWithCurrentEvent","BEGAN","fillMissingDefaultsFor","handlerType","handlerTag","isDiscreteHandler","fillMissingStatesTransitions","events","_events","lastEvent","length","firstEvent","shouldDuplicateFirstEvent","hasState","duplicated","unshift","shouldDuplicateLastEvent","END","FAILED","CANCELLED","push","isWithoutState","noEventsLeft","trueFn","fillEventsForCurrentState","shouldConsumeEvent","shouldTransitionToNextState","peekCurrentEvent","peekNextEvent","consumeCurrentEvent","shift","nextEvent","currentRequiredState","REQUIRED_EVENTS","currentStateIdx","eventData","shouldUseEvent","transformedEvents","ACTIVE","hasAllStates","iterations","nextRequiredState","e","getHandlerData","gesture","emitEvent","eventName","args","emit","handlerName","gestureHandlerComponent","props","fireGestureHandler","eventList","_","map","lastSentEvent","hasChangedState","getByGestureTestId","testID","handler","Error"],"mappings":"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","sourcesContent":["import invariant from 'invariant';\r\nimport { DeviceEventEmitter } from 'react-native';\r\nimport { ReactTestInstance } from 'react-test-renderer';\r\nimport {\r\n FlingGestureHandler,\r\n FlingGestureHandlerEventPayload,\r\n flingHandlerName,\r\n} from '../handlers/FlingGestureHandler';\r\nimport {\r\n ForceTouchGestureHandler,\r\n ForceTouchGestureHandlerEventPayload,\r\n forceTouchHandlerName,\r\n} from '../handlers/ForceTouchGestureHandler';\r\nimport {\r\n BaseGestureHandlerProps,\r\n GestureEvent,\r\n HandlerStateChangeEvent,\r\n} from '../handlers/gestureHandlerCommon';\r\nimport { FlingGesture } from '../handlers/gestures/flingGesture';\r\nimport { ForceTouchGesture } from '../handlers/gestures/forceTouchGesture';\r\nimport { BaseGesture, GestureType } from '../handlers/gestures/gesture';\r\nimport { LongPressGesture } from '../handlers/gestures/longPressGesture';\r\nimport { NativeGesture } from '../handlers/gestures/nativeGesture';\r\nimport { PanGesture } from '../handlers/gestures/panGesture';\r\nimport { PinchGesture } from '../handlers/gestures/pinchGesture';\r\nimport { RotationGesture } from '../handlers/gestures/rotationGesture';\r\nimport { TapGesture } from '../handlers/gestures/tapGesture';\r\nimport { findHandlerByTestID } from '../handlers/handlersRegistry';\r\nimport {\r\n LongPressGestureHandler,\r\n LongPressGestureHandlerEventPayload,\r\n longPressHandlerName,\r\n} from '../handlers/LongPressGestureHandler';\r\nimport {\r\n NativeViewGestureHandler,\r\n NativeViewGestureHandlerPayload,\r\n nativeViewHandlerName,\r\n} from '../handlers/NativeViewGestureHandler';\r\nimport {\r\n PanGestureHandler,\r\n PanGestureHandlerEventPayload,\r\n panHandlerName,\r\n} from '../handlers/PanGestureHandler';\r\nimport {\r\n PinchGestureHandler,\r\n PinchGestureHandlerEventPayload,\r\n pinchHandlerName,\r\n} from '../handlers/PinchGestureHandler';\r\nimport {\r\n RotationGestureHandler,\r\n RotationGestureHandlerEventPayload,\r\n rotationHandlerName,\r\n} from '../handlers/RotationGestureHandler';\r\nimport {\r\n TapGestureHandler,\r\n TapGestureHandlerEventPayload,\r\n tapHandlerName,\r\n} from '../handlers/TapGestureHandler';\r\nimport { State } from '../State';\r\nimport { hasProperty, withPrevAndCurrent } from '../utils';\r\n\r\n// load fireEvent conditionally, so RNGH may be used in setups without testing-library\r\nlet fireEvent = (\r\n _element: ReactTestInstance,\r\n _name: string,\r\n ..._data: any[]\r\n) => {\r\n // NOOP\r\n};\r\n\r\ntry {\r\n // eslint-disable-next-line @typescript-eslint/no-var-requires\r\n fireEvent = require('@testing-library/react-native').fireEvent;\r\n} catch (_e) {\r\n // do nothing if not available\r\n}\r\n\r\ntype GestureHandlerTestEvent<\r\n TEventPayload extends Record<string, unknown> = Record<string, unknown>\r\n> = (\r\n | GestureEvent<TEventPayload>\r\n | HandlerStateChangeEvent<TEventPayload>\r\n)['nativeEvent'];\r\n\r\ntype HandlerNames = keyof DefaultEventsMapping;\r\n\r\ntype WithNumberOfPointers<T> = {\r\n [P in keyof T]: T[P] & { numberOfPointers: number };\r\n};\r\ntype DefaultEventsMapping = WithNumberOfPointers<{\r\n [flingHandlerName]: FlingGestureHandlerEventPayload;\r\n [forceTouchHandlerName]: ForceTouchGestureHandlerEventPayload;\r\n [longPressHandlerName]: LongPressGestureHandlerEventPayload;\r\n [nativeViewHandlerName]: NativeViewGestureHandlerPayload;\r\n [panHandlerName]: PanGestureHandlerEventPayload;\r\n [pinchHandlerName]: PinchGestureHandlerEventPayload;\r\n [rotationHandlerName]: RotationGestureHandlerEventPayload;\r\n [tapHandlerName]: TapGestureHandlerEventPayload;\r\n}>;\r\n\r\nconst handlersDefaultEvents: DefaultEventsMapping = {\r\n [flingHandlerName]: {\r\n x: 0,\r\n y: 0,\r\n absoluteX: 0,\r\n absoluteY: 0,\r\n numberOfPointers: 1,\r\n },\r\n [forceTouchHandlerName]: {\r\n x: 0,\r\n y: 0,\r\n absoluteX: 0,\r\n absoluteY: 0,\r\n force: 1,\r\n numberOfPointers: 1,\r\n },\r\n [longPressHandlerName]: {\r\n x: 0,\r\n y: 0,\r\n absoluteX: 0,\r\n absoluteY: 0,\r\n duration: 100,\r\n numberOfPointers: 1,\r\n },\r\n [nativeViewHandlerName]: {\r\n pointerInside: true,\r\n numberOfPointers: 1,\r\n },\r\n [panHandlerName]: {\r\n x: 0,\r\n y: 0,\r\n absoluteX: 0,\r\n absoluteY: 0,\r\n translationX: 100,\r\n translationY: 0,\r\n velocityX: 3,\r\n velocityY: 0,\r\n numberOfPointers: 1,\r\n },\r\n [pinchHandlerName]: {\r\n focalX: 0,\r\n focalY: 0,\r\n scale: 2,\r\n velocity: 1,\r\n numberOfPointers: 2,\r\n },\r\n [rotationHandlerName]: {\r\n anchorX: 0,\r\n anchorY: 0,\r\n rotation: 3.14,\r\n velocity: 2,\r\n numberOfPointers: 2,\r\n },\r\n [tapHandlerName]: {\r\n x: 0,\r\n y: 0,\r\n absoluteX: 0,\r\n absoluteY: 0,\r\n numberOfPointers: 1,\r\n },\r\n};\r\n\r\nfunction isGesture(\r\n componentOrGesture: ReactTestInstance | GestureType\r\n): componentOrGesture is GestureType {\r\n return componentOrGesture instanceof BaseGesture;\r\n}\r\n\r\ninterface WrappedGestureHandlerTestEvent {\r\n nativeEvent: GestureHandlerTestEvent;\r\n}\r\nfunction wrapWithNativeEvent(\r\n event: GestureHandlerTestEvent\r\n): WrappedGestureHandlerTestEvent {\r\n return { nativeEvent: event };\r\n}\r\n\r\nfunction fillOldStateChanges(\r\n previousEvent: GestureHandlerTestEvent | null,\r\n currentEvent: Omit<GestureHandlerTestEvent, 'oldState'>\r\n): GestureHandlerTestEvent {\r\n const isFirstEvent = previousEvent === null;\r\n if (isFirstEvent) {\r\n return {\r\n oldState: State.UNDETERMINED,\r\n ...currentEvent,\r\n } as GestureHandlerTestEvent;\r\n }\r\n\r\n const isGestureStateEvent = previousEvent.state !== currentEvent.state;\r\n if (isGestureStateEvent) {\r\n return {\r\n oldState: previousEvent?.state,\r\n ...currentEvent,\r\n } as GestureHandlerTestEvent;\r\n } else {\r\n return currentEvent as GestureHandlerTestEvent;\r\n }\r\n}\r\n\r\ntype EventWithStates = Partial<\r\n Pick<GestureHandlerTestEvent, 'oldState' | 'state'>\r\n>;\r\nfunction validateStateTransitions(\r\n previousEvent: EventWithStates | null,\r\n currentEvent: EventWithStates\r\n) {\r\n function stringify(event: Record<string, unknown> | null) {\r\n return JSON.stringify(event, null, 2);\r\n }\r\n function errorMsgWithBothEvents(description: string) {\r\n return `${description}, invalid event: ${stringify(\r\n currentEvent\r\n )}, previous event: ${stringify(previousEvent)}`;\r\n }\r\n\r\n function errorMsgWithCurrentEvent(description: string) {\r\n return `${description}, invalid event: ${stringify(currentEvent)}`;\r\n }\r\n\r\n invariant(\r\n hasProperty(currentEvent, 'state'),\r\n errorMsgWithCurrentEvent('every event must have state')\r\n );\r\n\r\n const isFirstEvent = previousEvent === null;\r\n if (isFirstEvent) {\r\n invariant(\r\n currentEvent.state === State.BEGAN,\r\n errorMsgWithCurrentEvent('first event must have BEGAN state')\r\n );\r\n }\r\n\r\n if (previousEvent !== null) {\r\n if (previousEvent.state !== currentEvent.state) {\r\n invariant(\r\n hasProperty(currentEvent, 'oldState'),\r\n errorMsgWithCurrentEvent(\r\n 'when state changes, oldState field should be present'\r\n )\r\n );\r\n invariant(\r\n currentEvent.oldState === previousEvent.state,\r\n errorMsgWithBothEvents(\r\n \"when state changes, oldState should be the same as previous event' state\"\r\n )\r\n );\r\n }\r\n }\r\n\r\n return currentEvent;\r\n}\r\n\r\ntype EventWithoutStates = Omit<GestureHandlerTestEvent, 'oldState' | 'state'>;\r\ninterface HandlerInfo {\r\n handlerType: HandlerNames;\r\n handlerTag: number;\r\n}\r\nfunction fillMissingDefaultsFor({\r\n handlerType,\r\n handlerTag,\r\n}: HandlerInfo): (\r\n event: Partial<GestureHandlerTestEvent>\r\n) => EventWithoutStates {\r\n return (event) => {\r\n return {\r\n ...handlersDefaultEvents[handlerType],\r\n ...event,\r\n handlerTag,\r\n };\r\n };\r\n}\r\n\r\nfunction isDiscreteHandler(handlerType: HandlerNames) {\r\n return (\r\n handlerType === 'TapGestureHandler' ||\r\n handlerType === 'LongPressGestureHandler'\r\n );\r\n}\r\n\r\nfunction fillMissingStatesTransitions(\r\n events: EventWithoutStates[],\r\n isDiscreteHandler: boolean\r\n): EventWithoutStates[] {\r\n type Event = EventWithoutStates | null;\r\n const _events = [...events];\r\n const lastEvent = _events[_events.length - 1] ?? null;\r\n const firstEvent = _events[0] ?? null;\r\n\r\n const shouldDuplicateFirstEvent =\r\n !isDiscreteHandler && !hasState(State.BEGAN)(firstEvent);\r\n if (shouldDuplicateFirstEvent) {\r\n const duplicated = { ...firstEvent, state: State.BEGAN };\r\n // @ts-ignore badly typed, property may exist and we don't want to copy it\r\n delete duplicated.oldState;\r\n _events.unshift(duplicated);\r\n }\r\n\r\n const shouldDuplicateLastEvent =\r\n !hasState(State.END)(lastEvent) ||\r\n !hasState(State.FAILED)(lastEvent) ||\r\n !hasState(State.CANCELLED)(lastEvent);\r\n\r\n if (shouldDuplicateLastEvent) {\r\n const duplicated = { ...lastEvent, state: State.END };\r\n // @ts-ignore badly typed, property may exist and we don't want to copy it\r\n delete duplicated.oldState;\r\n _events.push(duplicated);\r\n }\r\n\r\n function isWithoutState(event: Event) {\r\n return event !== null && !hasProperty(event, 'state');\r\n }\r\n function hasState(state: State) {\r\n return (event: Event) => event !== null && event.state === state;\r\n }\r\n function noEventsLeft(event: Event) {\r\n return event === null;\r\n }\r\n\r\n function trueFn() {\r\n return true;\r\n }\r\n interface Args {\r\n shouldConsumeEvent?: (event: Event) => boolean;\r\n shouldTransitionToNextState?: (nextEvent: Event) => boolean;\r\n }\r\n function fillEventsForCurrentState({\r\n shouldConsumeEvent = trueFn,\r\n shouldTransitionToNextState = trueFn,\r\n }: Args) {\r\n function peekCurrentEvent(): Event {\r\n return _events[0] ?? null;\r\n }\r\n function peekNextEvent(): Event {\r\n return _events[1] ?? null;\r\n }\r\n function consumeCurrentEvent() {\r\n _events.shift();\r\n }\r\n const currentEvent = peekCurrentEvent();\r\n const nextEvent = peekNextEvent();\r\n const currentRequiredState = REQUIRED_EVENTS[currentStateIdx];\r\n\r\n let eventData = {};\r\n const shouldUseEvent = shouldConsumeEvent(currentEvent);\r\n if (shouldUseEvent) {\r\n eventData = currentEvent!;\r\n consumeCurrentEvent();\r\n }\r\n transformedEvents.push({ state: currentRequiredState, ...eventData });\r\n if (shouldTransitionToNextState(nextEvent)) {\r\n currentStateIdx++;\r\n }\r\n }\r\n\r\n const REQUIRED_EVENTS = [State.BEGAN, State.ACTIVE, State.END];\r\n\r\n let currentStateIdx = 0;\r\n const transformedEvents: EventWithoutStates[] = [];\r\n let hasAllStates;\r\n let iterations = 0;\r\n do {\r\n const nextRequiredState = REQUIRED_EVENTS[currentStateIdx];\r\n if (nextRequiredState === State.BEGAN) {\r\n fillEventsForCurrentState({\r\n shouldConsumeEvent: (e: Event) =>\r\n isWithoutState(e) || hasState(State.BEGAN)(e),\r\n });\r\n } else if (nextRequiredState === State.ACTIVE) {\r\n const shouldConsumeEvent = (e: Event) =>\r\n isWithoutState(e) || hasState(State.ACTIVE)(e);\r\n const shouldTransitionToNextState = (nextEvent: Event) =>\r\n noEventsLeft(nextEvent) ||\r\n hasState(State.END)(nextEvent) ||\r\n hasState(State.FAILED)(nextEvent) ||\r\n hasState(State.CANCELLED)(nextEvent);\r\n\r\n fillEventsForCurrentState({\r\n shouldConsumeEvent,\r\n shouldTransitionToNextState,\r\n });\r\n } else if (nextRequiredState === State.END) {\r\n fillEventsForCurrentState({});\r\n }\r\n hasAllStates = currentStateIdx === REQUIRED_EVENTS.length;\r\n\r\n invariant(\r\n iterations++ <= 500,\r\n 'exceeded max number of iterations, please report a bug in RNGH repository with your test case'\r\n );\r\n } while (!hasAllStates);\r\n\r\n return transformedEvents;\r\n}\r\n\r\ntype EventEmitter = (\r\n eventName: string,\r\n args: { nativeEvent: GestureHandlerTestEvent }\r\n) => void;\r\ninterface HandlerData {\r\n emitEvent: EventEmitter;\r\n handlerType: HandlerNames;\r\n handlerTag: number;\r\n}\r\nfunction getHandlerData(\r\n componentOrGesture: ReactTestInstance | GestureType\r\n): HandlerData {\r\n if (isGesture(componentOrGesture)) {\r\n const gesture = componentOrGesture;\r\n return {\r\n emitEvent: (eventName, args) => {\r\n DeviceEventEmitter.emit(eventName, args.nativeEvent);\r\n },\r\n handlerType: gesture.handlerName as HandlerNames,\r\n handlerTag: gesture.handlerTag,\r\n };\r\n }\r\n const gestureHandlerComponent = componentOrGesture;\r\n return {\r\n emitEvent: (eventName, args) => {\r\n fireEvent(gestureHandlerComponent, eventName, args);\r\n },\r\n handlerType: gestureHandlerComponent.props.handlerType as HandlerNames,\r\n handlerTag: gestureHandlerComponent.props.handlerTag as number,\r\n };\r\n}\r\ntype AllGestures =\r\n | TapGesture\r\n | PanGesture\r\n | LongPressGesture\r\n | RotationGesture\r\n | PinchGesture\r\n | FlingGesture\r\n | ForceTouchGesture\r\n | NativeGesture;\r\n\r\ntype AllHandlers =\r\n | TapGestureHandler\r\n | PanGestureHandler\r\n | LongPressGestureHandler\r\n | RotationGestureHandler\r\n | PinchGestureHandler\r\n | FlingGestureHandler\r\n | ForceTouchGestureHandler\r\n | NativeViewGestureHandler;\r\n\r\n// prettier-ignore\r\ntype ClassComponentConstructor<P> = new (props: P) => React.Component<P, any, any>;\r\n\r\ntype ExtractPayloadFromProps<T> = T extends BaseGestureHandlerProps<\r\n infer TPayload\r\n>\r\n ? TPayload\r\n : never;\r\n\r\ntype ExtractConfig<T> = T extends BaseGesture<infer TGesturePayload>\r\n ? TGesturePayload\r\n : T extends ClassComponentConstructor<infer THandlerProps>\r\n ? ExtractPayloadFromProps<THandlerProps>\r\n : Record<string, unknown>;\r\n\r\nexport function fireGestureHandler<THandler extends AllGestures | AllHandlers>(\r\n componentOrGesture: ReactTestInstance | GestureType,\r\n eventList: Partial<GestureHandlerTestEvent<ExtractConfig<THandler>>>[] = []\r\n): void {\r\n const { emitEvent, handlerType, handlerTag } =\r\n getHandlerData(componentOrGesture);\r\n\r\n let _ = fillMissingStatesTransitions(\r\n eventList,\r\n isDiscreteHandler(handlerType)\r\n );\r\n _ = _.map(fillMissingDefaultsFor({ handlerTag, handlerType }));\r\n _ = withPrevAndCurrent(_, fillOldStateChanges);\r\n _ = withPrevAndCurrent(_, validateStateTransitions);\r\n // @ts-ignore TODO\r\n _ = _.map(wrapWithNativeEvent);\r\n\r\n const events = _ as unknown as WrappedGestureHandlerTestEvent[];\r\n\r\n const firstEvent = events.shift()!;\r\n\r\n emitEvent('onGestureHandlerStateChange', firstEvent);\r\n let lastSentEvent = firstEvent;\r\n for (const event of events) {\r\n const hasChangedState =\r\n lastSentEvent.nativeEvent.state !== event.nativeEvent.state;\r\n\r\n if (hasChangedState) {\r\n emitEvent('onGestureHandlerStateChange', event);\r\n } else {\r\n emitEvent('onGestureHandlerEvent', event);\r\n }\r\n lastSentEvent = event;\r\n }\r\n}\r\n\r\nexport function getByGestureTestId(testID: string) {\r\n const handler = findHandlerByTestID(testID);\r\n if (handler === null) {\r\n throw new Error(`Handler with id: '${testID}' cannot be found`);\r\n }\r\n return handler;\r\n}\r\n"]}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import { TouchableHighlight, TouchableNativeFeedback, TouchableOpacity, TouchableWithoutFeedback, ScrollView, FlatList, Switch, TextInput, DrawerLayoutAndroid, View } from 'react-native';
|
2
|
+
import { State } from './State';
|
3
|
+
import { Directions } from './Directions';
|
4
|
+
|
5
|
+
const NOOP = () => {// do nothing
|
6
|
+
};
|
7
|
+
|
8
|
+
const PanGestureHandler = View;
|
9
|
+
const attachGestureHandler = NOOP;
|
10
|
+
const createGestureHandler = NOOP;
|
11
|
+
const dropGestureHandler = NOOP;
|
12
|
+
const updateGestureHandler = NOOP;
|
13
|
+
const flushOperations = NOOP;
|
14
|
+
const NativeViewGestureHandler = View;
|
15
|
+
const TapGestureHandler = View;
|
16
|
+
const ForceTouchGestureHandler = View;
|
17
|
+
const LongPressGestureHandler = View;
|
18
|
+
const PinchGestureHandler = View;
|
19
|
+
const RotationGestureHandler = View;
|
20
|
+
const FlingGestureHandler = View;
|
21
|
+
const RawButton = TouchableNativeFeedback;
|
22
|
+
const BaseButton = TouchableNativeFeedback;
|
23
|
+
const RectButton = TouchableNativeFeedback;
|
24
|
+
const BorderlessButton = TouchableNativeFeedback;
|
25
|
+
export default {
|
26
|
+
TouchableHighlight,
|
27
|
+
TouchableNativeFeedback,
|
28
|
+
TouchableOpacity,
|
29
|
+
TouchableWithoutFeedback,
|
30
|
+
ScrollView,
|
31
|
+
FlatList,
|
32
|
+
Switch,
|
33
|
+
TextInput,
|
34
|
+
DrawerLayoutAndroid,
|
35
|
+
NativeViewGestureHandler,
|
36
|
+
TapGestureHandler,
|
37
|
+
ForceTouchGestureHandler,
|
38
|
+
LongPressGestureHandler,
|
39
|
+
PinchGestureHandler,
|
40
|
+
RotationGestureHandler,
|
41
|
+
FlingGestureHandler,
|
42
|
+
RawButton,
|
43
|
+
BaseButton,
|
44
|
+
RectButton,
|
45
|
+
BorderlessButton,
|
46
|
+
PanGestureHandler,
|
47
|
+
attachGestureHandler,
|
48
|
+
createGestureHandler,
|
49
|
+
dropGestureHandler,
|
50
|
+
updateGestureHandler,
|
51
|
+
flushOperations,
|
52
|
+
// probably can be removed
|
53
|
+
Directions,
|
54
|
+
State
|
55
|
+
};
|
56
|
+
//# sourceMappingURL=mocks.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["mocks.ts"],"names":["TouchableHighlight","TouchableNativeFeedback","TouchableOpacity","TouchableWithoutFeedback","ScrollView","FlatList","Switch","TextInput","DrawerLayoutAndroid","View","State","Directions","NOOP","PanGestureHandler","attachGestureHandler","createGestureHandler","dropGestureHandler","updateGestureHandler","flushOperations","NativeViewGestureHandler","TapGestureHandler","ForceTouchGestureHandler","LongPressGestureHandler","PinchGestureHandler","RotationGestureHandler","FlingGestureHandler","RawButton","BaseButton","RectButton","BorderlessButton"],"mappings":"AAAA,SACEA,kBADF,EAEEC,uBAFF,EAGEC,gBAHF,EAIEC,wBAJF,EAKEC,UALF,EAMEC,QANF,EAOEC,MAPF,EAQEC,SARF,EASEC,mBATF,EAUEC,IAVF,QAWO,cAXP;AAYA,SAASC,KAAT,QAAsB,SAAtB;AACA,SAASC,UAAT,QAA2B,cAA3B;;AAEA,MAAMC,IAAI,GAAG,MAAM,CACjB;AACD,CAFD;;AAGA,MAAMC,iBAAiB,GAAGJ,IAA1B;AACA,MAAMK,oBAAoB,GAAGF,IAA7B;AACA,MAAMG,oBAAoB,GAAGH,IAA7B;AACA,MAAMI,kBAAkB,GAAGJ,IAA3B;AACA,MAAMK,oBAAoB,GAAGL,IAA7B;AACA,MAAMM,eAAe,GAAGN,IAAxB;AACA,MAAMO,wBAAwB,GAAGV,IAAjC;AACA,MAAMW,iBAAiB,GAAGX,IAA1B;AACA,MAAMY,wBAAwB,GAAGZ,IAAjC;AACA,MAAMa,uBAAuB,GAAGb,IAAhC;AACA,MAAMc,mBAAmB,GAAGd,IAA5B;AACA,MAAMe,sBAAsB,GAAGf,IAA/B;AACA,MAAMgB,mBAAmB,GAAGhB,IAA5B;AACA,MAAMiB,SAAS,GAAGzB,uBAAlB;AACA,MAAM0B,UAAU,GAAG1B,uBAAnB;AACA,MAAM2B,UAAU,GAAG3B,uBAAnB;AACA,MAAM4B,gBAAgB,GAAG5B,uBAAzB;AAEA,eAAe;AACbD,EAAAA,kBADa;AAEbC,EAAAA,uBAFa;AAGbC,EAAAA,gBAHa;AAIbC,EAAAA,wBAJa;AAKbC,EAAAA,UALa;AAMbC,EAAAA,QANa;AAObC,EAAAA,MAPa;AAQbC,EAAAA,SARa;AASbC,EAAAA,mBATa;AAUbW,EAAAA,wBAVa;AAWbC,EAAAA,iBAXa;AAYbC,EAAAA,wBAZa;AAabC,EAAAA,uBAba;AAcbC,EAAAA,mBAda;AAebC,EAAAA,sBAfa;AAgBbC,EAAAA,mBAhBa;AAiBbC,EAAAA,SAjBa;AAkBbC,EAAAA,UAlBa;AAmBbC,EAAAA,UAnBa;AAoBbC,EAAAA,gBApBa;AAqBbhB,EAAAA,iBArBa;AAsBbC,EAAAA,oBAtBa;AAuBbC,EAAAA,oBAvBa;AAwBbC,EAAAA,kBAxBa;AAyBbC,EAAAA,oBAzBa;AA0BbC,EAAAA,eA1Ba;AA2Bb;AACAP,EAAAA,UA5Ba;AA6BbD,EAAAA;AA7Ba,CAAf","sourcesContent":["import {\r\n TouchableHighlight,\r\n TouchableNativeFeedback,\r\n TouchableOpacity,\r\n TouchableWithoutFeedback,\r\n ScrollView,\r\n FlatList,\r\n Switch,\r\n TextInput,\r\n DrawerLayoutAndroid,\r\n View,\r\n} from 'react-native';\r\nimport { State } from './State';\r\nimport { Directions } from './Directions';\r\n\r\nconst NOOP = () => {\r\n // do nothing\r\n};\r\nconst PanGestureHandler = View;\r\nconst attachGestureHandler = NOOP;\r\nconst createGestureHandler = NOOP;\r\nconst dropGestureHandler = NOOP;\r\nconst updateGestureHandler = NOOP;\r\nconst flushOperations = NOOP;\r\nconst NativeViewGestureHandler = View;\r\nconst TapGestureHandler = View;\r\nconst ForceTouchGestureHandler = View;\r\nconst LongPressGestureHandler = View;\r\nconst PinchGestureHandler = View;\r\nconst RotationGestureHandler = View;\r\nconst FlingGestureHandler = View;\r\nconst RawButton = TouchableNativeFeedback;\r\nconst BaseButton = TouchableNativeFeedback;\r\nconst RectButton = TouchableNativeFeedback;\r\nconst BorderlessButton = TouchableNativeFeedback;\r\n\r\nexport default {\r\n TouchableHighlight,\r\n TouchableNativeFeedback,\r\n TouchableOpacity,\r\n TouchableWithoutFeedback,\r\n ScrollView,\r\n FlatList,\r\n Switch,\r\n TextInput,\r\n DrawerLayoutAndroid,\r\n NativeViewGestureHandler,\r\n TapGestureHandler,\r\n ForceTouchGestureHandler,\r\n LongPressGestureHandler,\r\n PinchGestureHandler,\r\n RotationGestureHandler,\r\n FlingGestureHandler,\r\n RawButton,\r\n BaseButton,\r\n RectButton,\r\n BorderlessButton,\r\n PanGestureHandler,\r\n attachGestureHandler,\r\n createGestureHandler,\r\n dropGestureHandler,\r\n updateGestureHandler,\r\n flushOperations,\r\n // probably can be removed\r\n Directions,\r\n State,\r\n} as const;\r\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["RNGestureHandlerButtonNativeComponent.ts"],"names":["codegenNativeComponent"],"mappings":"AAAA,OAAOA,sBAAP,MAAmC,yDAAnC;AAiBA,eAAeA,sBAAsB,CAAc,wBAAd,CAArC","sourcesContent":["import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\r\nimport type {\r\n Int32,\r\n WithDefault,\r\n} from 'react-native/Libraries/Types/CodegenTypes';\r\nimport type { ViewProps, ColorValue } from 'react-native';\r\n\r\ninterface NativeProps extends ViewProps {\r\n exclusive?: WithDefault<boolean, true>;\r\n foreground?: boolean;\r\n borderless?: boolean;\r\n enabled?: WithDefault<boolean, true>;\r\n rippleColor?: ColorValue;\r\n rippleRadius?: Int32;\r\n touchSoundDisabled?: WithDefault<boolean, false>;\r\n}\r\n\r\nexport default codegenNativeComponent<NativeProps>('RNGestureHandlerButton');\r\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["RNGestureHandlerRootViewNativeComponent.ts"],"names":["codegenNativeComponent"],"mappings":"AAAA,OAAOA,sBAAP,MAAmC,yDAAnC;AAKA,eAAeA,sBAAsB,CAAc,0BAAd,CAArC","sourcesContent":["import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';\r\nimport type { ViewProps } from 'react-native';\r\n\r\ninterface NativeProps extends ViewProps {}\r\n\r\nexport default codegenNativeComponent<NativeProps>('RNGestureHandlerRootView');\r\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
export function toArray(object) {
|
2
|
+
if (!Array.isArray(object)) {
|
3
|
+
return [object];
|
4
|
+
}
|
5
|
+
|
6
|
+
return object;
|
7
|
+
}
|
8
|
+
export function withPrevAndCurrent(array, mapFn) {
|
9
|
+
const previousArr = [null];
|
10
|
+
const currentArr = [...array];
|
11
|
+
const transformedArr = [];
|
12
|
+
currentArr.forEach((current, i) => {
|
13
|
+
const previous = previousArr[i];
|
14
|
+
const transformed = mapFn(previous, current);
|
15
|
+
previousArr.push(transformed);
|
16
|
+
transformedArr.push(transformed);
|
17
|
+
});
|
18
|
+
return transformedArr;
|
19
|
+
} // eslint-disable-next-line @typescript-eslint/ban-types
|
20
|
+
|
21
|
+
export function hasProperty(object, key) {
|
22
|
+
return Object.prototype.hasOwnProperty.call(object, key);
|
23
|
+
}
|
24
|
+
export function isJestEnv() {
|
25
|
+
// @ts-ignore Do not use `@types/node` because it will prioritise Node types over RN types which breaks the types (ex. setTimeout) in React Native projects.
|
26
|
+
return hasProperty(global, 'process') && !!process.env.JEST_WORKER_ID;
|
27
|
+
}
|
28
|
+
export function tagMessage(msg) {
|
29
|
+
return `[react-native-gesture-handler] ${msg}`;
|
30
|
+
} // helper method to check whether Fabric is enabled, however global.nativeFabricUIManager
|
31
|
+
// may not be initialized before the first render
|
32
|
+
|
33
|
+
export function isFabric() {
|
34
|
+
var _global;
|
35
|
+
|
36
|
+
// @ts-expect-error nativeFabricUIManager is not yet included in the RN types
|
37
|
+
return !!((_global = global) !== null && _global !== void 0 && _global.nativeFabricUIManager);
|
38
|
+
}
|
39
|
+
export function isRemoteDebuggingEnabled() {
|
40
|
+
// react-native-reanimated checks if in remote debugging in the same way
|
41
|
+
// @ts-ignore global is available but node types are not included
|
42
|
+
return !global.nativeCallSyncHook || global.__REMOTEDEV__;
|
43
|
+
}
|
44
|
+
//# sourceMappingURL=utils.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["utils.ts"],"names":["toArray","object","Array","isArray","withPrevAndCurrent","array","mapFn","previousArr","currentArr","transformedArr","forEach","current","i","previous","transformed","push","hasProperty","key","Object","prototype","hasOwnProperty","call","isJestEnv","global","process","env","JEST_WORKER_ID","tagMessage","msg","isFabric","nativeFabricUIManager","isRemoteDebuggingEnabled","nativeCallSyncHook","__REMOTEDEV__"],"mappings":"AAAA,OAAO,SAASA,OAAT,CAAoBC,MAApB,EAA0C;AAC/C,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcF,MAAd,CAAL,EAA4B;AAC1B,WAAO,CAACA,MAAD,CAAP;AACD;;AAED,SAAOA,MAAP;AACD;AAMD,OAAO,SAASG,kBAAT,CACLC,KADK,EAELC,KAFK,EAGU;AACf,QAAMC,WAAmC,GAAG,CAAC,IAAD,CAA5C;AACA,QAAMC,UAAU,GAAG,CAAC,GAAGH,KAAJ,CAAnB;AACA,QAAMI,cAA6B,GAAG,EAAtC;AACAD,EAAAA,UAAU,CAACE,OAAX,CAAmB,CAACC,OAAD,EAAUC,CAAV,KAAgB;AACjC,UAAMC,QAAQ,GAAGN,WAAW,CAACK,CAAD,CAA5B;AACA,UAAME,WAAW,GAAGR,KAAK,CAACO,QAAD,EAAWF,OAAX,CAAzB;AACAJ,IAAAA,WAAW,CAACQ,IAAZ,CAAiBD,WAAjB;AACAL,IAAAA,cAAc,CAACM,IAAf,CAAoBD,WAApB;AACD,GALD;AAMA,SAAOL,cAAP;AACD,C,CAED;;AACA,OAAO,SAASO,WAAT,CAAqBf,MAArB,EAAqCgB,GAArC,EAAkD;AACvD,SAAOC,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCpB,MAArC,EAA6CgB,GAA7C,CAAP;AACD;AAED,OAAO,SAASK,SAAT,GAA8B;AACnC;AACA,SAAON,WAAW,CAACO,MAAD,EAAS,SAAT,CAAX,IAAkC,CAAC,CAACC,OAAO,CAACC,GAAR,CAAYC,cAAvD;AACD;AAED,OAAO,SAASC,UAAT,CAAoBC,GAApB,EAAiC;AACtC,SAAQ,kCAAiCA,GAAI,EAA7C;AACD,C,CAED;AACA;;AACA,OAAO,SAASC,QAAT,GAA6B;AAAA;;AAClC;AACA,SAAO,CAAC,aAACN,MAAD,oCAAC,QAAQO,qBAAT,CAAR;AACD;AAED,OAAO,SAASC,wBAAT,GAA6C;AAClD;AACA;AACA,SAAO,CAAER,MAAD,CAAgBS,kBAAjB,IAAwCT,MAAD,CAAgBU,aAA9D;AACD","sourcesContent":["export function toArray<T>(object: T | T[]): T[] {\r\n if (!Array.isArray(object)) {\r\n return [object];\r\n }\r\n\r\n return object;\r\n}\r\n\r\nexport type withPrevAndCurrentMapFn<T, Transformed> = (\r\n previous: Transformed | null,\r\n current: T\r\n) => Transformed;\r\nexport function withPrevAndCurrent<T, Transformed>(\r\n array: T[],\r\n mapFn: withPrevAndCurrentMapFn<T, Transformed>\r\n): Transformed[] {\r\n const previousArr: (null | Transformed)[] = [null];\r\n const currentArr = [...array];\r\n const transformedArr: Transformed[] = [];\r\n currentArr.forEach((current, i) => {\r\n const previous = previousArr[i];\r\n const transformed = mapFn(previous, current);\r\n previousArr.push(transformed);\r\n transformedArr.push(transformed);\r\n });\r\n return transformedArr;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/ban-types\r\nexport function hasProperty(object: object, key: string) {\r\n return Object.prototype.hasOwnProperty.call(object, key);\r\n}\r\n\r\nexport function isJestEnv(): boolean {\r\n // @ts-ignore Do not use `@types/node` because it will prioritise Node types over RN types which breaks the types (ex. setTimeout) in React Native projects.\r\n return hasProperty(global, 'process') && !!process.env.JEST_WORKER_ID;\r\n}\r\n\r\nexport function tagMessage(msg: string) {\r\n return `[react-native-gesture-handler] ${msg}`;\r\n}\r\n\r\n// helper method to check whether Fabric is enabled, however global.nativeFabricUIManager\r\n// may not be initialized before the first render\r\nexport function isFabric(): boolean {\r\n // @ts-expect-error nativeFabricUIManager is not yet included in the RN types\r\n return !!global?.nativeFabricUIManager;\r\n}\r\n\r\nexport function isRemoteDebuggingEnabled(): boolean {\r\n // react-native-reanimated checks if in remote debugging in the same way\r\n // @ts-ignore global is available but node types are not included\r\n return !(global as any).nativeCallSyncHook || (global as any).__REMOTEDEV__;\r\n}\r\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["constants.ts"],"names":["DEFAULT_TOUCH_SLOP","Direction","RIGHT","LEFT","UP","DOWN"],"mappings":"AAAA,OAAO,MAAMA,kBAAkB,GAAG,EAA3B;AAEP,OAAO,MAAMC,SAAS,GAAG;AACvBC,EAAAA,KAAK,EAAE,CADgB;AAEvBC,EAAAA,IAAI,EAAE,CAFiB;AAGvBC,EAAAA,EAAE,EAAE,CAHmB;AAIvBC,EAAAA,IAAI,EAAE;AAJiB,CAAlB","sourcesContent":["export const DEFAULT_TOUCH_SLOP = 15;\r\n\r\nexport const Direction = {\r\n RIGHT: 1,\r\n LEFT: 2,\r\n UP: 4,\r\n DOWN: 8,\r\n};\r\n"]}
|
@@ -0,0 +1,155 @@
|
|
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
|
+
import { EventTypes } from '../interfaces';
|
4
|
+
export default class RotationGestureDetector {
|
5
|
+
constructor(callbacks) {
|
6
|
+
_defineProperty(this, "onRotationBegin", void 0);
|
7
|
+
|
8
|
+
_defineProperty(this, "onRotation", void 0);
|
9
|
+
|
10
|
+
_defineProperty(this, "onRotationEnd", void 0);
|
11
|
+
|
12
|
+
_defineProperty(this, "currentTime", 0);
|
13
|
+
|
14
|
+
_defineProperty(this, "previousTime", 0);
|
15
|
+
|
16
|
+
_defineProperty(this, "previousAngle", 0);
|
17
|
+
|
18
|
+
_defineProperty(this, "rotation", 0);
|
19
|
+
|
20
|
+
_defineProperty(this, "anchorX", 0);
|
21
|
+
|
22
|
+
_defineProperty(this, "anchorY", 0);
|
23
|
+
|
24
|
+
_defineProperty(this, "isInProgress", false);
|
25
|
+
|
26
|
+
_defineProperty(this, "keyPointers", [NaN, NaN]);
|
27
|
+
|
28
|
+
this.onRotationBegin = callbacks.onRotationBegin;
|
29
|
+
this.onRotation = callbacks.onRotation;
|
30
|
+
this.onRotationEnd = callbacks.onRotationEnd;
|
31
|
+
}
|
32
|
+
|
33
|
+
updateCurrent(event, tracker) {
|
34
|
+
this.previousTime = this.currentTime;
|
35
|
+
this.currentTime = event.time;
|
36
|
+
const [firstPointerID, secondPointerID] = this.keyPointers;
|
37
|
+
const firstPointerX = tracker.getLastX(firstPointerID);
|
38
|
+
const firstPointerY = tracker.getLastY(firstPointerID);
|
39
|
+
const secondPointerX = tracker.getLastX(secondPointerID);
|
40
|
+
const secondPointerY = tracker.getLastY(secondPointerID);
|
41
|
+
const vectorX = secondPointerX - firstPointerX;
|
42
|
+
const vectorY = secondPointerY - firstPointerY;
|
43
|
+
this.anchorX = (firstPointerX + secondPointerX) / 2;
|
44
|
+
this.anchorY = (firstPointerY + secondPointerY) / 2; //Angle diff should be positive when rotating in clockwise direction
|
45
|
+
|
46
|
+
const angle = -Math.atan2(vectorY, vectorX);
|
47
|
+
this.rotation = Number.isNaN(this.previousAngle) ? 0 : this.previousAngle - angle;
|
48
|
+
this.previousAngle = angle;
|
49
|
+
|
50
|
+
if (this.rotation > Math.PI) {
|
51
|
+
this.rotation -= Math.PI;
|
52
|
+
} else if (this.rotation < -Math.PI) {
|
53
|
+
this.rotation += Math.PI;
|
54
|
+
}
|
55
|
+
|
56
|
+
if (this.rotation > Math.PI / 2) {
|
57
|
+
this.rotation -= Math.PI;
|
58
|
+
} else if (this.rotation < -Math.PI / 2) {
|
59
|
+
this.rotation += Math.PI;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
|
63
|
+
finish() {
|
64
|
+
if (!this.isInProgress) {
|
65
|
+
return;
|
66
|
+
}
|
67
|
+
|
68
|
+
this.isInProgress = false;
|
69
|
+
this.keyPointers = [NaN, NaN];
|
70
|
+
this.onRotationEnd(this);
|
71
|
+
}
|
72
|
+
|
73
|
+
setKeyPointers(tracker) {
|
74
|
+
if (this.keyPointers[0] && this.keyPointers[1]) {
|
75
|
+
return;
|
76
|
+
}
|
77
|
+
|
78
|
+
const pointerIDs = tracker.getData().keys();
|
79
|
+
this.keyPointers[0] = pointerIDs.next().value;
|
80
|
+
this.keyPointers[1] = pointerIDs.next().value;
|
81
|
+
}
|
82
|
+
|
83
|
+
onTouchEvent(event, tracker) {
|
84
|
+
switch (event.eventType) {
|
85
|
+
case EventTypes.DOWN:
|
86
|
+
this.isInProgress = false;
|
87
|
+
break;
|
88
|
+
|
89
|
+
case EventTypes.ADDITIONAL_POINTER_DOWN:
|
90
|
+
if (this.isInProgress) {
|
91
|
+
break;
|
92
|
+
}
|
93
|
+
|
94
|
+
this.isInProgress = true;
|
95
|
+
this.previousTime = event.time;
|
96
|
+
this.previousAngle = NaN;
|
97
|
+
this.setKeyPointers(tracker);
|
98
|
+
this.updateCurrent(event, tracker);
|
99
|
+
this.onRotationBegin(this);
|
100
|
+
break;
|
101
|
+
|
102
|
+
case EventTypes.MOVE:
|
103
|
+
if (!this.isInProgress) {
|
104
|
+
break;
|
105
|
+
}
|
106
|
+
|
107
|
+
this.updateCurrent(event, tracker);
|
108
|
+
this.onRotation(this);
|
109
|
+
break;
|
110
|
+
|
111
|
+
case EventTypes.ADDITIONAL_POINTER_UP:
|
112
|
+
if (!this.isInProgress) {
|
113
|
+
break;
|
114
|
+
}
|
115
|
+
|
116
|
+
if (this.keyPointers.indexOf(event.pointerId) >= 0) {
|
117
|
+
this.finish();
|
118
|
+
}
|
119
|
+
|
120
|
+
break;
|
121
|
+
|
122
|
+
case EventTypes.UP:
|
123
|
+
if (this.isInProgress) {
|
124
|
+
this.finish();
|
125
|
+
}
|
126
|
+
|
127
|
+
break;
|
128
|
+
}
|
129
|
+
|
130
|
+
return true;
|
131
|
+
}
|
132
|
+
|
133
|
+
getTimeDelta() {
|
134
|
+
return this.currentTime + this.previousTime;
|
135
|
+
}
|
136
|
+
|
137
|
+
getAnchorX() {
|
138
|
+
return this.anchorX;
|
139
|
+
}
|
140
|
+
|
141
|
+
getAnchorY() {
|
142
|
+
return this.anchorY;
|
143
|
+
}
|
144
|
+
|
145
|
+
getRotation() {
|
146
|
+
return this.rotation;
|
147
|
+
}
|
148
|
+
|
149
|
+
reset() {
|
150
|
+
this.keyPointers = [NaN, NaN];
|
151
|
+
this.isInProgress = false;
|
152
|
+
}
|
153
|
+
|
154
|
+
}
|
155
|
+
//# sourceMappingURL=RotationGestureDetector.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["RotationGestureDetector.ts"],"names":["EventTypes","RotationGestureDetector","constructor","callbacks","NaN","onRotationBegin","onRotation","onRotationEnd","updateCurrent","event","tracker","previousTime","currentTime","time","firstPointerID","secondPointerID","keyPointers","firstPointerX","getLastX","firstPointerY","getLastY","secondPointerX","secondPointerY","vectorX","vectorY","anchorX","anchorY","angle","Math","atan2","rotation","Number","isNaN","previousAngle","PI","finish","isInProgress","setKeyPointers","pointerIDs","getData","keys","next","value","onTouchEvent","eventType","DOWN","ADDITIONAL_POINTER_DOWN","MOVE","ADDITIONAL_POINTER_UP","indexOf","pointerId","UP","getTimeDelta","getAnchorX","getAnchorY","getRotation","reset"],"mappings":"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","sourcesContent":["import { AdaptedEvent, EventTypes } from '../interfaces';\r\nimport PointerTracker from '../tools/PointerTracker';\r\n\r\nexport interface RotationGestureListener {\r\n onRotationBegin: (detector: RotationGestureDetector) => boolean;\r\n onRotation: (detector: RotationGestureDetector) => boolean;\r\n onRotationEnd: (detector: RotationGestureDetector) => void;\r\n}\r\n\r\nexport default class RotationGestureDetector\r\n implements RotationGestureListener\r\n{\r\n onRotationBegin: (detector: RotationGestureDetector) => boolean;\r\n onRotation: (detector: RotationGestureDetector) => boolean;\r\n onRotationEnd: (detector: RotationGestureDetector) => void;\r\n\r\n private currentTime = 0;\r\n private previousTime = 0;\r\n\r\n private previousAngle = 0;\r\n private rotation = 0;\r\n\r\n private anchorX = 0;\r\n private anchorY = 0;\r\n\r\n private isInProgress = false;\r\n\r\n private keyPointers: number[] = [NaN, NaN];\r\n\r\n constructor(callbacks: RotationGestureListener) {\r\n this.onRotationBegin = callbacks.onRotationBegin;\r\n this.onRotation = callbacks.onRotation;\r\n this.onRotationEnd = callbacks.onRotationEnd;\r\n }\r\n\r\n private updateCurrent(event: AdaptedEvent, tracker: PointerTracker): void {\r\n this.previousTime = this.currentTime;\r\n this.currentTime = event.time;\r\n\r\n const [firstPointerID, secondPointerID] = this.keyPointers;\r\n\r\n const firstPointerX: number = tracker.getLastX(firstPointerID);\r\n const firstPointerY: number = tracker.getLastY(firstPointerID);\r\n const secondPointerX: number = tracker.getLastX(secondPointerID);\r\n const secondPointerY: number = tracker.getLastY(secondPointerID);\r\n\r\n const vectorX: number = secondPointerX - firstPointerX;\r\n const vectorY: number = secondPointerY - firstPointerY;\r\n\r\n this.anchorX = (firstPointerX + secondPointerX) / 2;\r\n this.anchorY = (firstPointerY + secondPointerY) / 2;\r\n\r\n //Angle diff should be positive when rotating in clockwise direction\r\n const angle: number = -Math.atan2(vectorY, vectorX);\r\n\r\n this.rotation = Number.isNaN(this.previousAngle)\r\n ? 0\r\n : this.previousAngle - angle;\r\n\r\n this.previousAngle = angle;\r\n\r\n if (this.rotation > Math.PI) {\r\n this.rotation -= Math.PI;\r\n } else if (this.rotation < -Math.PI) {\r\n this.rotation += Math.PI;\r\n }\r\n\r\n if (this.rotation > Math.PI / 2) {\r\n this.rotation -= Math.PI;\r\n } else if (this.rotation < -Math.PI / 2) {\r\n this.rotation += Math.PI;\r\n }\r\n }\r\n\r\n private finish(): void {\r\n if (!this.isInProgress) {\r\n return;\r\n }\r\n\r\n this.isInProgress = false;\r\n this.keyPointers = [NaN, NaN];\r\n this.onRotationEnd(this);\r\n }\r\n\r\n private setKeyPointers(tracker: PointerTracker): void {\r\n if (this.keyPointers[0] && this.keyPointers[1]) {\r\n return;\r\n }\r\n\r\n const pointerIDs: IterableIterator<number> = tracker.getData().keys();\r\n\r\n this.keyPointers[0] = pointerIDs.next().value as number;\r\n this.keyPointers[1] = pointerIDs.next().value as number;\r\n }\r\n\r\n public onTouchEvent(event: AdaptedEvent, tracker: PointerTracker): boolean {\r\n switch (event.eventType) {\r\n case EventTypes.DOWN:\r\n this.isInProgress = false;\r\n break;\r\n\r\n case EventTypes.ADDITIONAL_POINTER_DOWN:\r\n if (this.isInProgress) {\r\n break;\r\n }\r\n this.isInProgress = true;\r\n\r\n this.previousTime = event.time;\r\n this.previousAngle = NaN;\r\n\r\n this.setKeyPointers(tracker);\r\n\r\n this.updateCurrent(event, tracker);\r\n this.onRotationBegin(this);\r\n break;\r\n\r\n case EventTypes.MOVE:\r\n if (!this.isInProgress) {\r\n break;\r\n }\r\n\r\n this.updateCurrent(event, tracker);\r\n this.onRotation(this);\r\n\r\n break;\r\n\r\n case EventTypes.ADDITIONAL_POINTER_UP:\r\n if (!this.isInProgress) {\r\n break;\r\n }\r\n\r\n if (this.keyPointers.indexOf(event.pointerId) >= 0) {\r\n this.finish();\r\n }\r\n\r\n break;\r\n\r\n case EventTypes.UP:\r\n if (this.isInProgress) {\r\n this.finish();\r\n }\r\n break;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public getTimeDelta(): number {\r\n return this.currentTime + this.previousTime;\r\n }\r\n\r\n public getAnchorX(): number {\r\n return this.anchorX;\r\n }\r\n\r\n public getAnchorY(): number {\r\n return this.anchorY;\r\n }\r\n\r\n public getRotation(): number {\r\n return this.rotation;\r\n }\r\n\r\n public reset(): void {\r\n this.keyPointers = [NaN, NaN];\r\n this.isInProgress = false;\r\n }\r\n}\r\n"]}
|
@@ -0,0 +1,145 @@
|
|
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
|
+
import { DEFAULT_TOUCH_SLOP } from '../constants';
|
4
|
+
import { EventTypes } from '../interfaces';
|
5
|
+
export default class ScaleGestureDetector {
|
6
|
+
constructor(callbacks) {
|
7
|
+
_defineProperty(this, "onScaleBegin", void 0);
|
8
|
+
|
9
|
+
_defineProperty(this, "onScale", void 0);
|
10
|
+
|
11
|
+
_defineProperty(this, "onScaleEnd", void 0);
|
12
|
+
|
13
|
+
_defineProperty(this, "focusX", void 0);
|
14
|
+
|
15
|
+
_defineProperty(this, "focusY", void 0);
|
16
|
+
|
17
|
+
_defineProperty(this, "currentSpan", void 0);
|
18
|
+
|
19
|
+
_defineProperty(this, "prevSpan", void 0);
|
20
|
+
|
21
|
+
_defineProperty(this, "initialSpan", void 0);
|
22
|
+
|
23
|
+
_defineProperty(this, "currentTime", void 0);
|
24
|
+
|
25
|
+
_defineProperty(this, "prevTime", void 0);
|
26
|
+
|
27
|
+
_defineProperty(this, "inProgress", false);
|
28
|
+
|
29
|
+
_defineProperty(this, "spanSlop", void 0);
|
30
|
+
|
31
|
+
_defineProperty(this, "minSpan", void 0);
|
32
|
+
|
33
|
+
this.onScaleBegin = callbacks.onScaleBegin;
|
34
|
+
this.onScale = callbacks.onScale;
|
35
|
+
this.onScaleEnd = callbacks.onScaleEnd;
|
36
|
+
this.spanSlop = DEFAULT_TOUCH_SLOP * 2;
|
37
|
+
this.minSpan = 0;
|
38
|
+
}
|
39
|
+
|
40
|
+
onTouchEvent(event, tracker) {
|
41
|
+
this.currentTime = event.time;
|
42
|
+
const action = event.eventType;
|
43
|
+
const numOfPointers = tracker.getTrackedPointersCount();
|
44
|
+
const streamComplete = action === EventTypes.UP || action === EventTypes.ADDITIONAL_POINTER_UP || action === EventTypes.CANCEL;
|
45
|
+
|
46
|
+
if (action === EventTypes.DOWN || streamComplete) {
|
47
|
+
if (this.inProgress) {
|
48
|
+
this.onScaleEnd(this);
|
49
|
+
this.inProgress = false;
|
50
|
+
this.initialSpan = 0;
|
51
|
+
}
|
52
|
+
|
53
|
+
if (streamComplete) {
|
54
|
+
return true;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
const configChanged = action === EventTypes.DOWN || action === EventTypes.ADDITIONAL_POINTER_UP || action === EventTypes.ADDITIONAL_POINTER_DOWN;
|
59
|
+
const pointerUp = action === EventTypes.ADDITIONAL_POINTER_UP;
|
60
|
+
const ignoredPointer = pointerUp ? event.pointerId : undefined; //Determine focal point
|
61
|
+
|
62
|
+
const div = pointerUp ? numOfPointers - 1 : numOfPointers;
|
63
|
+
const sumX = tracker.getSumX(ignoredPointer);
|
64
|
+
const sumY = tracker.getSumY(ignoredPointer);
|
65
|
+
const focusX = sumX / div;
|
66
|
+
const focusY = sumY / div; //Determine average deviation from focal point
|
67
|
+
|
68
|
+
let devSumX = 0;
|
69
|
+
let devSumY = 0;
|
70
|
+
tracker.getData().forEach((value, key) => {
|
71
|
+
if (key === ignoredPointer) {
|
72
|
+
return;
|
73
|
+
}
|
74
|
+
|
75
|
+
devSumX += Math.abs(value.lastX - focusX);
|
76
|
+
devSumY += Math.abs(value.lastY - focusY);
|
77
|
+
});
|
78
|
+
const devX = devSumX / div;
|
79
|
+
const devY = devSumY / div;
|
80
|
+
const spanX = devX * 2;
|
81
|
+
const spanY = devY * 2;
|
82
|
+
const span = Math.hypot(spanX, spanY); //Begin/end events
|
83
|
+
|
84
|
+
const wasInProgress = this.inProgress;
|
85
|
+
this.focusX = focusX;
|
86
|
+
this.focusY = focusY;
|
87
|
+
|
88
|
+
if (this.inProgress && (span < this.minSpan || configChanged)) {
|
89
|
+
this.onScaleEnd(this);
|
90
|
+
this.inProgress = false;
|
91
|
+
this.initialSpan = span;
|
92
|
+
}
|
93
|
+
|
94
|
+
if (configChanged) {
|
95
|
+
this.initialSpan = this.prevSpan = this.currentSpan = span;
|
96
|
+
}
|
97
|
+
|
98
|
+
if (!this.inProgress && span >= this.minSpan && (wasInProgress || Math.abs(span - this.initialSpan) > this.spanSlop)) {
|
99
|
+
this.prevSpan = this.currentSpan = span;
|
100
|
+
this.prevTime = this.currentTime;
|
101
|
+
this.inProgress = this.onScaleBegin(this);
|
102
|
+
} //Handle motion
|
103
|
+
|
104
|
+
|
105
|
+
if (action !== EventTypes.MOVE) {
|
106
|
+
return true;
|
107
|
+
}
|
108
|
+
|
109
|
+
this.currentSpan = span;
|
110
|
+
|
111
|
+
if (this.inProgress && !this.onScale(this)) {
|
112
|
+
return true;
|
113
|
+
}
|
114
|
+
|
115
|
+
this.prevSpan = this.currentSpan;
|
116
|
+
this.prevTime = this.currentTime;
|
117
|
+
return true;
|
118
|
+
}
|
119
|
+
|
120
|
+
getCurrentSpan() {
|
121
|
+
return this.currentSpan;
|
122
|
+
}
|
123
|
+
|
124
|
+
getFocusX() {
|
125
|
+
return this.focusX;
|
126
|
+
}
|
127
|
+
|
128
|
+
getFocusY() {
|
129
|
+
return this.focusY;
|
130
|
+
}
|
131
|
+
|
132
|
+
getTimeDelta() {
|
133
|
+
return this.currentTime - this.prevTime;
|
134
|
+
}
|
135
|
+
|
136
|
+
getScaleFactor(numOfPointers) {
|
137
|
+
if (numOfPointers < 2) {
|
138
|
+
return 1;
|
139
|
+
}
|
140
|
+
|
141
|
+
return this.prevSpan > 0 ? this.currentSpan / this.prevSpan : 1;
|
142
|
+
}
|
143
|
+
|
144
|
+
}
|
145
|
+
//# sourceMappingURL=ScaleGestureDetector.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["ScaleGestureDetector.ts"],"names":["DEFAULT_TOUCH_SLOP","EventTypes","ScaleGestureDetector","constructor","callbacks","onScaleBegin","onScale","onScaleEnd","spanSlop","minSpan","onTouchEvent","event","tracker","currentTime","time","action","eventType","numOfPointers","getTrackedPointersCount","streamComplete","UP","ADDITIONAL_POINTER_UP","CANCEL","DOWN","inProgress","initialSpan","configChanged","ADDITIONAL_POINTER_DOWN","pointerUp","ignoredPointer","pointerId","undefined","div","sumX","getSumX","sumY","getSumY","focusX","focusY","devSumX","devSumY","getData","forEach","value","key","Math","abs","lastX","lastY","devX","devY","spanX","spanY","span","hypot","wasInProgress","prevSpan","currentSpan","prevTime","MOVE","getCurrentSpan","getFocusX","getFocusY","getTimeDelta","getScaleFactor"],"mappings":"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","sourcesContent":["import { DEFAULT_TOUCH_SLOP } from '../constants';\r\nimport { AdaptedEvent, EventTypes } from '../interfaces';\r\n\r\nimport PointerTracker from '../tools/PointerTracker';\r\n\r\nexport interface ScaleGestureListener {\r\n onScaleBegin: (detector: ScaleGestureDetector) => boolean;\r\n onScale: (detector: ScaleGestureDetector) => boolean;\r\n onScaleEnd: (detector: ScaleGestureDetector) => void;\r\n}\r\n\r\nexport default class ScaleGestureDetector implements ScaleGestureListener {\r\n public onScaleBegin: (detector: ScaleGestureDetector) => boolean;\r\n public onScale: (detector: ScaleGestureDetector) => boolean;\r\n public onScaleEnd: (detector: ScaleGestureDetector) => void;\r\n\r\n private focusX!: number;\r\n private focusY!: number;\r\n\r\n private currentSpan!: number;\r\n private prevSpan!: number;\r\n private initialSpan!: number;\r\n\r\n private currentTime!: number;\r\n private prevTime!: number;\r\n\r\n private inProgress = false;\r\n\r\n private spanSlop: number;\r\n private minSpan: number;\r\n\r\n public constructor(callbacks: ScaleGestureListener) {\r\n this.onScaleBegin = callbacks.onScaleBegin;\r\n this.onScale = callbacks.onScale;\r\n this.onScaleEnd = callbacks.onScaleEnd;\r\n\r\n this.spanSlop = DEFAULT_TOUCH_SLOP * 2;\r\n this.minSpan = 0;\r\n }\r\n\r\n public onTouchEvent(event: AdaptedEvent, tracker: PointerTracker): boolean {\r\n this.currentTime = event.time;\r\n\r\n const action: EventTypes = event.eventType;\r\n const numOfPointers = tracker.getTrackedPointersCount();\r\n\r\n const streamComplete: boolean =\r\n action === EventTypes.UP ||\r\n action === EventTypes.ADDITIONAL_POINTER_UP ||\r\n action === EventTypes.CANCEL;\r\n\r\n if (action === EventTypes.DOWN || streamComplete) {\r\n if (this.inProgress) {\r\n this.onScaleEnd(this);\r\n this.inProgress = false;\r\n this.initialSpan = 0;\r\n }\r\n\r\n if (streamComplete) {\r\n return true;\r\n }\r\n }\r\n\r\n const configChanged: boolean =\r\n action === EventTypes.DOWN ||\r\n action === EventTypes.ADDITIONAL_POINTER_UP ||\r\n action === EventTypes.ADDITIONAL_POINTER_DOWN;\r\n\r\n const pointerUp = action === EventTypes.ADDITIONAL_POINTER_UP;\r\n\r\n const ignoredPointer: number | undefined = pointerUp\r\n ? event.pointerId\r\n : undefined;\r\n\r\n //Determine focal point\r\n\r\n const div: number = pointerUp ? numOfPointers - 1 : numOfPointers;\r\n\r\n const sumX = tracker.getSumX(ignoredPointer);\r\n const sumY = tracker.getSumY(ignoredPointer);\r\n\r\n const focusX = sumX / div;\r\n const focusY = sumY / div;\r\n\r\n //Determine average deviation from focal point\r\n\r\n let devSumX = 0;\r\n let devSumY = 0;\r\n\r\n tracker.getData().forEach((value, key) => {\r\n if (key === ignoredPointer) {\r\n return;\r\n }\r\n\r\n devSumX += Math.abs(value.lastX - focusX);\r\n devSumY += Math.abs(value.lastY - focusY);\r\n });\r\n\r\n const devX: number = devSumX / div;\r\n const devY: number = devSumY / div;\r\n\r\n const spanX: number = devX * 2;\r\n const spanY: number = devY * 2;\r\n\r\n const span = Math.hypot(spanX, spanY);\r\n\r\n //Begin/end events\r\n const wasInProgress: boolean = this.inProgress;\r\n this.focusX = focusX;\r\n this.focusY = focusY;\r\n\r\n if (this.inProgress && (span < this.minSpan || configChanged)) {\r\n this.onScaleEnd(this);\r\n this.inProgress = false;\r\n this.initialSpan = span;\r\n }\r\n\r\n if (configChanged) {\r\n this.initialSpan = this.prevSpan = this.currentSpan = span;\r\n }\r\n\r\n if (\r\n !this.inProgress &&\r\n span >= this.minSpan &&\r\n (wasInProgress || Math.abs(span - this.initialSpan) > this.spanSlop)\r\n ) {\r\n this.prevSpan = this.currentSpan = span;\r\n this.prevTime = this.currentTime;\r\n this.inProgress = this.onScaleBegin(this);\r\n }\r\n\r\n //Handle motion\r\n if (action !== EventTypes.MOVE) {\r\n return true;\r\n }\r\n\r\n this.currentSpan = span;\r\n\r\n if (this.inProgress && !this.onScale(this)) {\r\n return true;\r\n }\r\n\r\n this.prevSpan = this.currentSpan;\r\n this.prevTime = this.currentTime;\r\n\r\n return true;\r\n }\r\n\r\n public getCurrentSpan(): number {\r\n return this.currentSpan;\r\n }\r\n\r\n public getFocusX(): number {\r\n return this.focusX;\r\n }\r\n\r\n public getFocusY(): number {\r\n return this.focusY;\r\n }\r\n\r\n public getTimeDelta(): number {\r\n return this.currentTime - this.prevTime;\r\n }\r\n\r\n public getScaleFactor(numOfPointers: number): number {\r\n if (numOfPointers < 2) {\r\n return 1;\r\n }\r\n\r\n return this.prevSpan > 0 ? this.currentSpan / this.prevSpan : 1;\r\n }\r\n}\r\n"]}
|