react-native-gesture-handler 2.5.0 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +1 -0
- package/RNGestureHandler.podspec +17 -5
- package/android/build.gradle +71 -15
- package/android/lib/src/main/java/com/swmansion/gesturehandler/FlingGestureHandler.kt +2 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/GestureHandlerOrchestrator.kt +30 -9
- package/android/lib/src/main/java/com/swmansion/gesturehandler/LongPressGestureHandler.kt +5 -2
- package/android/lib/src/main/java/com/swmansion/gesturehandler/NativeViewGestureHandler.kt +2 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/PanGestureHandler.kt +2 -1
- package/android/lib/src/main/java/com/swmansion/gesturehandler/TapGestureHandler.kt +3 -2
- package/android/src/fabric/java/com/swmansion/gesturehandler/RNGestureHandlerComponentsRegistry.java +1 -1
- package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +0 -8
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +7 -1
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +1 -1
- package/android/src/main/jni/CMakeLists.txt +59 -0
- package/ios/RNGestureHandlerButtonComponentView.mm +1 -1
- package/ios/RNGestureHandlerManager.mm +0 -5
- package/ios/RNGestureHandlerRootViewComponentView.mm +1 -1
- package/lib/commonjs/EnableExperimentalWebImplementation.js +24 -0
- package/lib/commonjs/EnableExperimentalWebImplementation.js.map +1 -0
- package/lib/commonjs/RNGestureHandlerModule.macos.js +87 -30
- package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +87 -25
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNRenderer.js +16 -0
- package/lib/commonjs/RNRenderer.js.map +1 -0
- package/lib/commonjs/RNRenderer.web.js +11 -0
- package/lib/commonjs/RNRenderer.web.js.map +1 -0
- package/lib/commonjs/components/DrawerLayout.js +3 -1
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js +42 -9
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.js +41 -4
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.web.js +7 -2
- package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +3 -1
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +2 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +8 -1
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector.js +67 -12
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +7 -0
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/index.js +14 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/web/constants.js +3 -51
- package/lib/commonjs/web/constants.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +169 -0
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -0
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +167 -0
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +154 -0
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/GestureHandler.js +538 -0
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +147 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +116 -0
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/PanGestureHandler.js +451 -0
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +171 -0
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +187 -0
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/commonjs/web/handlers/TapGestureHandler.js +296 -0
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -0
- package/lib/commonjs/web/interfaces.js +34 -0
- package/lib/commonjs/web/interfaces.js.map +1 -0
- package/lib/commonjs/web/tools/EventManager.js +169 -0
- package/lib/commonjs/web/tools/EventManager.js.map +1 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +283 -0
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -0
- package/lib/commonjs/web/tools/InteractionManager.js +102 -0
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -0
- package/lib/commonjs/web/tools/NodeManager.js +48 -0
- package/lib/commonjs/web/tools/NodeManager.js.map +1 -0
- package/lib/commonjs/web/tools/PointerTracker.js +132 -0
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/Errors.js +0 -0
- package/lib/commonjs/{web → web_hammer}/Errors.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/GestureHandler.js +83 -42
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/NodeManager.js +0 -0
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PanGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/PressGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
- package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js +0 -0
- package/lib/commonjs/{web → web_hammer}/TapGestureHandler.js.map +0 -0
- package/lib/commonjs/web_hammer/constants.js +64 -0
- package/lib/commonjs/web_hammer/constants.js.map +1 -0
- package/lib/commonjs/{web → web_hammer}/utils.js +0 -0
- package/lib/commonjs/{web → web_hammer}/utils.js.map +0 -0
- package/lib/module/EnableExperimentalWebImplementation.js +15 -0
- package/lib/module/EnableExperimentalWebImplementation.js.map +1 -0
- package/lib/module/RNGestureHandlerModule.macos.js +74 -29
- package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +73 -24
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNRenderer.js +4 -0
- package/lib/module/RNRenderer.js.map +1 -0
- package/lib/module/RNRenderer.web.js +4 -0
- package/lib/module/RNRenderer.web.js.map +1 -0
- package/lib/module/components/DrawerLayout.js +3 -1
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js +43 -9
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureComponents.js +39 -4
- package/lib/module/components/GestureComponents.js.map +1 -1
- package/lib/module/components/GestureComponents.web.js +6 -2
- package/lib/module/components/GestureComponents.web.js.map +1 -1
- package/lib/module/components/Swipeable.js +3 -1
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +2 -1
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/handlers/createHandler.js +9 -2
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +64 -11
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +7 -0
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/web/constants.js +1 -36
- package/lib/module/web/constants.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js +159 -0
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -0
- package/lib/module/web/detectors/ScaleGestureDetector.js +156 -0
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -0
- package/lib/module/web/handlers/FlingGestureHandler.js +139 -0
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/GestureHandler.js +521 -0
- package/lib/module/web/handlers/GestureHandler.js.map +1 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js +133 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js +103 -0
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/PanGestureHandler.js +434 -0
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/PinchGestureHandler.js +155 -0
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/RotationGestureHandler.js +171 -0
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -0
- package/lib/module/web/handlers/TapGestureHandler.js +281 -0
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -0
- package/lib/module/web/interfaces.js +26 -0
- package/lib/module/web/interfaces.js.map +1 -0
- package/lib/module/web/tools/EventManager.js +160 -0
- package/lib/module/web/tools/EventManager.js.map +1 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +270 -0
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -0
- package/lib/module/web/tools/InteractionManager.js +93 -0
- package/lib/module/web/tools/InteractionManager.js.map +1 -0
- package/lib/module/web/tools/NodeManager.js +39 -0
- package/lib/module/web/tools/NodeManager.js.map +1 -0
- package/lib/module/web/tools/PointerTracker.js +122 -0
- package/lib/module/web/tools/PointerTracker.js.map +1 -0
- package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/DiscreteGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/DraggingGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/DraggingGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/Errors.js +0 -0
- package/lib/module/{web → web_hammer}/Errors.js.map +0 -0
- package/lib/module/{web → web_hammer}/FlingGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/FlingGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/GestureHandler.js +83 -42
- package/lib/module/web_hammer/GestureHandler.js.map +1 -0
- package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/IndiscreteGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/LongPressGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/LongPressGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/NativeViewGestureHandler.js +4 -0
- package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -0
- package/lib/module/{web → web_hammer}/NodeManager.js +0 -0
- package/lib/module/web_hammer/NodeManager.js.map +1 -0
- package/lib/module/{web → web_hammer}/PanGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PanGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/PinchGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PinchGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/PressGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/PressGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/RotationGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/RotationGestureHandler.js.map +0 -0
- package/lib/module/{web → web_hammer}/TapGestureHandler.js +0 -0
- package/lib/module/{web → web_hammer}/TapGestureHandler.js.map +0 -0
- package/lib/module/web_hammer/constants.js +43 -0
- package/lib/module/web_hammer/constants.js.map +1 -0
- package/lib/module/{web → web_hammer}/utils.js +0 -0
- package/lib/module/{web → web_hammer}/utils.js.map +0 -0
- package/lib/typescript/EnableExperimentalWebImplementation.d.ts +2 -0
- package/lib/typescript/RNGestureHandlerModule.macos.d.ts +28 -18
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +29 -18
- package/lib/typescript/RNRenderer.d.ts +1 -0
- package/lib/typescript/RNRenderer.web.d.ts +3 -0
- package/lib/typescript/components/DrawerLayout.d.ts +1 -1
- package/lib/typescript/components/GestureButtons.d.ts +16 -0
- package/lib/typescript/components/GestureComponents.d.ts +7 -3
- package/lib/typescript/components/GestureComponents.web.d.ts +1 -0
- package/lib/typescript/components/Swipeable.d.ts +1 -1
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/web/constants.d.ts +1 -33
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +30 -0
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +30 -0
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +31 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +84 -0
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +33 -0
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +16 -0
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +68 -0
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +30 -0
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +30 -0
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +49 -0
- package/lib/typescript/web/interfaces.d.ts +97 -0
- package/lib/typescript/web/tools/EventManager.d.ts +28 -0
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +28 -0
- package/lib/typescript/web/tools/InteractionManager.d.ts +13 -0
- package/lib/typescript/web/tools/NodeManager.d.ts +11 -0
- package/lib/typescript/web/tools/PointerTracker.d.ts +28 -0
- package/lib/typescript/{web → web_hammer}/DiscreteGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/DraggingGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/Errors.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/GestureHandler.d.ts +6 -0
- package/lib/typescript/{web → web_hammer}/IndiscreteGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/LongPressGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/NodeManager.d.ts +8 -0
- package/lib/typescript/{web → web_hammer}/PanGestureHandler.d.ts +1 -0
- package/lib/typescript/{web → web_hammer}/PinchGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/PressGestureHandler.d.ts +2 -0
- package/lib/typescript/{web → web_hammer}/RotationGestureHandler.d.ts +0 -0
- package/lib/typescript/{web → web_hammer}/TapGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/constants.d.ts +39 -0
- package/lib/typescript/{web → web_hammer}/utils.d.ts +0 -0
- package/package.json +1 -1
- package/src/EnableExperimentalWebImplementation.ts +18 -0
- package/src/RNGestureHandlerModule.macos.ts +81 -29
- package/src/RNGestureHandlerModule.web.ts +89 -26
- package/src/RNRenderer.ts +3 -0
- package/src/RNRenderer.web.ts +3 -0
- package/src/components/DrawerLayout.tsx +3 -4
- package/src/components/GestureButtons.tsx +57 -0
- package/src/components/GestureComponents.tsx +66 -6
- package/src/components/GestureComponents.web.tsx +5 -0
- package/src/components/Swipeable.tsx +3 -1
- package/src/components/touchables/GenericTouchable.tsx +1 -0
- package/src/handlers/createHandler.tsx +13 -2
- package/src/handlers/gestures/GestureDetector.tsx +78 -12
- package/src/handlers/gestures/reanimatedWrapper.ts +7 -0
- package/src/index.ts +3 -0
- package/src/web/constants.ts +1 -41
- package/src/web/detectors/RotationGestureDetector.ts +199 -0
- package/src/web/detectors/ScaleGestureDetector.ts +208 -0
- package/src/web/handlers/FlingGestureHandler.ts +146 -0
- package/src/web/handlers/GestureHandler.ts +572 -0
- package/src/web/handlers/LongPressGestureHandler.ts +122 -0
- package/src/web/handlers/NativeViewGestureHandler.ts +109 -0
- package/src/web/handlers/PanGestureHandler.ts +488 -0
- package/src/web/handlers/PinchGestureHandler.ts +162 -0
- package/src/web/handlers/RotationGestureHandler.ts +181 -0
- package/src/web/handlers/TapGestureHandler.ts +275 -0
- package/src/web/interfaces.ts +114 -0
- package/src/web/tools/EventManager.ts +186 -0
- package/src/web/tools/GestureHandlerOrchestrator.ts +329 -0
- package/src/web/tools/InteractionManager.ts +108 -0
- package/src/web/tools/NodeManager.ts +43 -0
- package/src/web/tools/PointerTracker.ts +130 -0
- package/src/{web → web_hammer}/DiscreteGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/DraggingGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/Errors.ts +0 -0
- package/src/{web → web_hammer}/FlingGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/GestureHandler.ts +102 -55
- package/src/{web → web_hammer}/IndiscreteGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/LongPressGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/NativeViewGestureHandler.ts +4 -0
- package/src/{web → web_hammer}/NodeManager.ts +6 -3
- package/src/{web → web_hammer}/PanGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/PinchGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/PressGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/RotationGestureHandler.ts +0 -0
- package/src/{web → web_hammer}/TapGestureHandler.ts +0 -0
- package/src/web_hammer/constants.ts +48 -0
- package/src/{web → web_hammer}/utils.ts +0 -0
- package/android/src/main/jni/Android.mk +0 -52
- package/android/src/main/jni/OnLoad.cpp +0 -9
- package/android/src/main/jni/RNGestureHandlerComponentsRegistry.cpp +0 -71
- package/android/src/main/jni/RNGestureHandlerComponentsRegistry.h +0 -34
- package/lib/commonjs/web/GestureHandler.js.map +0 -1
- package/lib/commonjs/web/NativeViewGestureHandler.js.map +0 -1
- package/lib/commonjs/web/NodeManager.js.map +0 -1
- package/lib/module/web/GestureHandler.js.map +0 -1
- package/lib/module/web/NativeViewGestureHandler.js.map +0 -1
- package/lib/module/web/NodeManager.js.map +0 -1
- package/lib/typescript/web/NodeManager.d.ts +0 -8
@@ -0,0 +1,538 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.default = void 0;
|
7
|
+
|
8
|
+
var _reactNative = require("react-native");
|
9
|
+
|
10
|
+
var _State = require("../../State");
|
11
|
+
|
12
|
+
var _EventManager = _interopRequireDefault(require("../tools/EventManager"));
|
13
|
+
|
14
|
+
var _GestureHandlerOrchestrator = _interopRequireDefault(require("../tools/GestureHandlerOrchestrator"));
|
15
|
+
|
16
|
+
var _PointerTracker = _interopRequireDefault(require("../tools/PointerTracker"));
|
17
|
+
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19
|
+
|
20
|
+
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; }
|
21
|
+
|
22
|
+
class GestureHandler {
|
23
|
+
// Orchestrator properties
|
24
|
+
constructor() {
|
25
|
+
_defineProperty(this, "lastSentState", null);
|
26
|
+
|
27
|
+
_defineProperty(this, "currentState", _State.State.UNDETERMINED);
|
28
|
+
|
29
|
+
_defineProperty(this, "shouldCancellWhenOutside", false);
|
30
|
+
|
31
|
+
_defineProperty(this, "hasCustomActivationCriteria", void 0);
|
32
|
+
|
33
|
+
_defineProperty(this, "enabled", false);
|
34
|
+
|
35
|
+
_defineProperty(this, "ref", void 0);
|
36
|
+
|
37
|
+
_defineProperty(this, "propsRef", void 0);
|
38
|
+
|
39
|
+
_defineProperty(this, "config", {
|
40
|
+
enabled: false
|
41
|
+
});
|
42
|
+
|
43
|
+
_defineProperty(this, "handlerTag", void 0);
|
44
|
+
|
45
|
+
_defineProperty(this, "view", null);
|
46
|
+
|
47
|
+
_defineProperty(this, "eventManager", void 0);
|
48
|
+
|
49
|
+
_defineProperty(this, "tracker", new _PointerTracker.default());
|
50
|
+
|
51
|
+
_defineProperty(this, "interactionManager", void 0);
|
52
|
+
|
53
|
+
_defineProperty(this, "activationIndex", 0);
|
54
|
+
|
55
|
+
_defineProperty(this, "awaiting", false);
|
56
|
+
|
57
|
+
_defineProperty(this, "active", false);
|
58
|
+
|
59
|
+
_defineProperty(this, "shouldResetProgress", false);
|
60
|
+
|
61
|
+
_defineProperty(this, "sendEvent", (event, newState, oldState) => {
|
62
|
+
const {
|
63
|
+
onGestureHandlerEvent,
|
64
|
+
onGestureHandlerStateChange
|
65
|
+
} = this.propsRef.current;
|
66
|
+
const resultEvent = this.transformEventData(event, newState, oldState); // In the new API oldState field has to be undefined, unless we send event state changed
|
67
|
+
// Here the order is flipped to avoid workarounds such as making backup of the state and setting it to undefined first, then changing it back
|
68
|
+
// Flipping order with setting oldState to undefined solves issue, when events were being sent twice instead of once
|
69
|
+
// However, this may cause trouble in the future (but for now we don't know that)
|
70
|
+
|
71
|
+
if (this.lastSentState !== newState) {
|
72
|
+
this.lastSentState = newState;
|
73
|
+
invokeNullableMethod(onGestureHandlerStateChange, resultEvent);
|
74
|
+
}
|
75
|
+
|
76
|
+
if (this.currentState === _State.State.ACTIVE) {
|
77
|
+
resultEvent.nativeEvent.oldState = undefined;
|
78
|
+
invokeNullableMethod(onGestureHandlerEvent, resultEvent);
|
79
|
+
}
|
80
|
+
});
|
81
|
+
|
82
|
+
this.hasCustomActivationCriteria = false;
|
83
|
+
} //
|
84
|
+
// Initializing handler
|
85
|
+
//
|
86
|
+
|
87
|
+
|
88
|
+
init(ref, propsRef) {
|
89
|
+
this.propsRef = propsRef;
|
90
|
+
this.ref = ref;
|
91
|
+
this.currentState = _State.State.UNDETERMINED;
|
92
|
+
this.setView(ref);
|
93
|
+
this.setEventManager();
|
94
|
+
}
|
95
|
+
|
96
|
+
setView(ref) {
|
97
|
+
if (!ref) {
|
98
|
+
this.view = null;
|
99
|
+
return;
|
100
|
+
}
|
101
|
+
|
102
|
+
this.view = (0, _reactNative.findNodeHandle)(ref);
|
103
|
+
this.view.style['touchAction'] = 'none';
|
104
|
+
this.view.style['webkitUserSelect'] = 'none';
|
105
|
+
this.view.style['userSelect'] = 'none'; //@ts-ignore This one disables default events on Safari
|
106
|
+
|
107
|
+
this.view.style['WebkitTouchCallout'] = 'none';
|
108
|
+
}
|
109
|
+
|
110
|
+
setEventManager() {
|
111
|
+
if (!this.view) {
|
112
|
+
return;
|
113
|
+
}
|
114
|
+
|
115
|
+
this.eventManager = new _EventManager.default(this.view);
|
116
|
+
this.eventManager.setOnPointerDown(this.onPointerDown.bind(this));
|
117
|
+
this.eventManager.setOnPointerUp(this.onPointerUp.bind(this));
|
118
|
+
this.eventManager.setOnPointerMove(this.onPointerMove.bind(this));
|
119
|
+
this.eventManager.setOnPointerEnter(this.onPointerEnter.bind(this));
|
120
|
+
this.eventManager.setOnPointerOut(this.onPointerOut.bind(this));
|
121
|
+
this.eventManager.setOnPointerCancel(this.onPointerCancel.bind(this));
|
122
|
+
this.eventManager.setOnPointerOutOfBounds(this.onPointerOutOfBounds.bind(this));
|
123
|
+
this.eventManager.setListeners();
|
124
|
+
}
|
125
|
+
|
126
|
+
setInteractionManager(manager) {
|
127
|
+
this.interactionManager = manager;
|
128
|
+
} //
|
129
|
+
// Resetting handler
|
130
|
+
//
|
131
|
+
|
132
|
+
|
133
|
+
onCancel() {}
|
134
|
+
|
135
|
+
onReset() {}
|
136
|
+
|
137
|
+
resetProgress() {}
|
138
|
+
|
139
|
+
reset() {
|
140
|
+
this.tracker.resetTracker();
|
141
|
+
this.onReset();
|
142
|
+
this.currentState = _State.State.UNDETERMINED;
|
143
|
+
} //
|
144
|
+
// State logic
|
145
|
+
//
|
146
|
+
|
147
|
+
|
148
|
+
moveToState(newState, event) {
|
149
|
+
if (this.currentState === newState) {
|
150
|
+
return;
|
151
|
+
}
|
152
|
+
|
153
|
+
const oldState = this.currentState;
|
154
|
+
this.currentState = newState;
|
155
|
+
|
156
|
+
_GestureHandlerOrchestrator.default.getInstance().onHandlerStateChange(this, newState, oldState, event);
|
157
|
+
|
158
|
+
this.onStateChange(newState, oldState);
|
159
|
+
}
|
160
|
+
|
161
|
+
onStateChange(_newState, _oldState) {}
|
162
|
+
|
163
|
+
begin(event) {
|
164
|
+
if (!this.checkHitSlop(event)) {
|
165
|
+
return;
|
166
|
+
}
|
167
|
+
|
168
|
+
if (this.currentState === _State.State.UNDETERMINED) {
|
169
|
+
this.moveToState(_State.State.BEGAN, event);
|
170
|
+
}
|
171
|
+
}
|
172
|
+
|
173
|
+
fail(event) {
|
174
|
+
if (this.currentState === _State.State.ACTIVE || this.currentState === _State.State.BEGAN) {
|
175
|
+
this.moveToState(_State.State.FAILED, event);
|
176
|
+
}
|
177
|
+
|
178
|
+
this.resetProgress();
|
179
|
+
}
|
180
|
+
|
181
|
+
cancel(event) {
|
182
|
+
if (this.currentState === _State.State.ACTIVE || this.currentState === _State.State.UNDETERMINED || this.currentState === _State.State.BEGAN) {
|
183
|
+
this.onCancel();
|
184
|
+
this.moveToState(_State.State.CANCELLED, event);
|
185
|
+
}
|
186
|
+
}
|
187
|
+
|
188
|
+
activate(event, _force = false) {
|
189
|
+
if (this.currentState === _State.State.UNDETERMINED || this.currentState === _State.State.BEGAN) {
|
190
|
+
this.moveToState(_State.State.ACTIVE, event);
|
191
|
+
}
|
192
|
+
}
|
193
|
+
|
194
|
+
end(event) {
|
195
|
+
if (this.currentState === _State.State.BEGAN || this.currentState === _State.State.ACTIVE) {
|
196
|
+
this.moveToState(_State.State.END, event);
|
197
|
+
}
|
198
|
+
|
199
|
+
this.resetProgress();
|
200
|
+
} //
|
201
|
+
// Methods for orchestrator
|
202
|
+
//
|
203
|
+
|
204
|
+
|
205
|
+
isAwaiting() {
|
206
|
+
return this.awaiting;
|
207
|
+
}
|
208
|
+
|
209
|
+
setAwaiting(value) {
|
210
|
+
this.awaiting = value;
|
211
|
+
}
|
212
|
+
|
213
|
+
isActive() {
|
214
|
+
return this.active;
|
215
|
+
}
|
216
|
+
|
217
|
+
setActive(value) {
|
218
|
+
this.active = value;
|
219
|
+
}
|
220
|
+
|
221
|
+
getShouldResetProgress() {
|
222
|
+
return this.shouldResetProgress;
|
223
|
+
}
|
224
|
+
|
225
|
+
setShouldResetProgress(value) {
|
226
|
+
this.shouldResetProgress = value;
|
227
|
+
}
|
228
|
+
|
229
|
+
getActivationIndex() {
|
230
|
+
return this.activationIndex;
|
231
|
+
}
|
232
|
+
|
233
|
+
setActivationIndex(value) {
|
234
|
+
this.activationIndex = value;
|
235
|
+
}
|
236
|
+
|
237
|
+
shouldWaitForHandlerFailure(handler) {
|
238
|
+
if (handler === this) {
|
239
|
+
return false;
|
240
|
+
}
|
241
|
+
|
242
|
+
return this.interactionManager.shouldWaitForHandlerFailure(this, handler);
|
243
|
+
}
|
244
|
+
|
245
|
+
shouldRequireToWaitForFailure(handler) {
|
246
|
+
if (handler === this) {
|
247
|
+
return false;
|
248
|
+
}
|
249
|
+
|
250
|
+
return this.interactionManager.shouldRequireHandlerToWaitForFailure(this, handler);
|
251
|
+
}
|
252
|
+
|
253
|
+
shouldRecognizeSimultaneously(handler) {
|
254
|
+
if (handler === this) {
|
255
|
+
return true;
|
256
|
+
}
|
257
|
+
|
258
|
+
return this.interactionManager.shouldRecognizeSimultaneously(this, handler);
|
259
|
+
}
|
260
|
+
|
261
|
+
shouldBeCancelledByOther(handler) {
|
262
|
+
if (handler === this) {
|
263
|
+
return false;
|
264
|
+
}
|
265
|
+
|
266
|
+
return this.interactionManager.shouldHandlerBeCancelledBy(this, handler);
|
267
|
+
} //
|
268
|
+
// Event actions
|
269
|
+
//
|
270
|
+
|
271
|
+
|
272
|
+
onPointerDown(_event) {
|
273
|
+
_GestureHandlerOrchestrator.default.getInstance().recordHandlerIfNotPresent(this);
|
274
|
+
} // Adding another pointer to existing ones
|
275
|
+
|
276
|
+
|
277
|
+
onPointerAdd(_event) {}
|
278
|
+
|
279
|
+
onPointerUp(_event) {} // Removing pointer, when there is more than one pointers
|
280
|
+
|
281
|
+
|
282
|
+
onPointerRemove(_event) {}
|
283
|
+
|
284
|
+
onPointerMove(event) {
|
285
|
+
this.tryToSendMoveEvent(event, false);
|
286
|
+
}
|
287
|
+
|
288
|
+
onPointerOut(_event) {}
|
289
|
+
|
290
|
+
onPointerEnter(_event) {}
|
291
|
+
|
292
|
+
onPointerCancel(_event) {}
|
293
|
+
|
294
|
+
onPointerOutOfBounds(event) {
|
295
|
+
this.tryToSendMoveEvent(event, true);
|
296
|
+
}
|
297
|
+
|
298
|
+
tryToSendMoveEvent(event, out) {
|
299
|
+
if (this.currentState === _State.State.ACTIVE && (!out || out && !this.shouldCancellWhenOutside)) {
|
300
|
+
this.sendEvent(event, this.currentState, this.currentState);
|
301
|
+
}
|
302
|
+
} //
|
303
|
+
// Events Sending
|
304
|
+
//
|
305
|
+
|
306
|
+
|
307
|
+
transformEventData(event, newState, oldState) {
|
308
|
+
var _this$eventManager;
|
309
|
+
|
310
|
+
return {
|
311
|
+
nativeEvent: {
|
312
|
+
numberOfPointers: this.tracker.getTrackedPointersCount(),
|
313
|
+
state: newState,
|
314
|
+
pointerInside: (_this$eventManager = this.eventManager) === null || _this$eventManager === void 0 ? void 0 : _this$eventManager.isPointerInBounds({
|
315
|
+
x: event.x,
|
316
|
+
y: event.y
|
317
|
+
}),
|
318
|
+
...this.transformNativeEvent(event),
|
319
|
+
handlerTag: this.handlerTag,
|
320
|
+
target: this.ref,
|
321
|
+
oldState: newState !== oldState ? oldState : undefined
|
322
|
+
},
|
323
|
+
timeStamp: Date.now()
|
324
|
+
};
|
325
|
+
}
|
326
|
+
|
327
|
+
transformNativeEvent(_event) {
|
328
|
+
return {};
|
329
|
+
} //
|
330
|
+
// Handling config
|
331
|
+
//
|
332
|
+
|
333
|
+
|
334
|
+
updateGestureConfig({
|
335
|
+
enabled = true,
|
336
|
+
...props
|
337
|
+
}) {
|
338
|
+
this.config = {
|
339
|
+
enabled,
|
340
|
+
...props
|
341
|
+
};
|
342
|
+
this.validateHitSlops();
|
343
|
+
}
|
344
|
+
|
345
|
+
checkCustomActivationCriteria(criterias) {
|
346
|
+
for (const key in this.config) {
|
347
|
+
if (criterias.indexOf(key) >= 0) {
|
348
|
+
this.hasCustomActivationCriteria = true;
|
349
|
+
}
|
350
|
+
}
|
351
|
+
}
|
352
|
+
|
353
|
+
validateHitSlops() {
|
354
|
+
if (!this.config.hitSlop) {
|
355
|
+
return;
|
356
|
+
}
|
357
|
+
|
358
|
+
if (this.config.hitSlop.left !== undefined && this.config.hitSlop.right !== undefined && this.config.hitSlop.width !== undefined) {
|
359
|
+
throw new Error('HitSlop Error: Cannot define left, right and width at the same time');
|
360
|
+
}
|
361
|
+
|
362
|
+
if (this.config.hitSlop.width !== undefined && this.config.hitSlop.left === undefined && this.config.hitSlop.right === undefined) {
|
363
|
+
throw new Error('HitSlop Error: When width is defined, either left or right has to be defined');
|
364
|
+
}
|
365
|
+
|
366
|
+
if (this.config.hitSlop.height !== undefined && this.config.hitSlop.top !== undefined && this.config.hitSlop.bottom !== undefined) {
|
367
|
+
throw new Error('HitSlop Error: Cannot define top, bottom and height at the same time');
|
368
|
+
}
|
369
|
+
|
370
|
+
if (this.config.hitSlop.height !== undefined && this.config.hitSlop.top === undefined && this.config.hitSlop.bottom === undefined) {
|
371
|
+
throw new Error('HitSlop Error: When height is defined, either top or bottom has to be defined');
|
372
|
+
}
|
373
|
+
}
|
374
|
+
|
375
|
+
checkHitSlop(event) {
|
376
|
+
if (!this.config.hitSlop || !this.view) {
|
377
|
+
return true;
|
378
|
+
}
|
379
|
+
|
380
|
+
const width = this.view.getBoundingClientRect().width;
|
381
|
+
const height = this.view.getBoundingClientRect().height;
|
382
|
+
let left = 0;
|
383
|
+
let top = 0;
|
384
|
+
let right = width;
|
385
|
+
let bottom = height;
|
386
|
+
|
387
|
+
if (this.config.hitSlop.horizontal !== undefined) {
|
388
|
+
left -= this.config.hitSlop.horizontal;
|
389
|
+
right += this.config.hitSlop.horizontal;
|
390
|
+
}
|
391
|
+
|
392
|
+
if (this.config.hitSlop.vertical !== undefined) {
|
393
|
+
top -= this.config.hitSlop.vertical;
|
394
|
+
bottom += this.config.hitSlop.vertical;
|
395
|
+
}
|
396
|
+
|
397
|
+
if (this.config.hitSlop.left !== undefined) {
|
398
|
+
left = -this.config.hitSlop.left;
|
399
|
+
}
|
400
|
+
|
401
|
+
if (this.config.hitSlop.right !== undefined) {
|
402
|
+
right = width + this.config.hitSlop.right;
|
403
|
+
}
|
404
|
+
|
405
|
+
if (this.config.hitSlop.top !== undefined) {
|
406
|
+
top = -this.config.hitSlop.top;
|
407
|
+
}
|
408
|
+
|
409
|
+
if (this.config.hitSlop.bottom !== undefined) {
|
410
|
+
bottom = width + this.config.hitSlop.bottom;
|
411
|
+
}
|
412
|
+
|
413
|
+
if (this.config.hitSlop.width !== undefined) {
|
414
|
+
if (this.config.hitSlop.left !== undefined) {
|
415
|
+
right = left + this.config.hitSlop.width;
|
416
|
+
} else if (this.config.hitSlop.right !== undefined) {
|
417
|
+
left = right - this.config.hitSlop.width;
|
418
|
+
}
|
419
|
+
}
|
420
|
+
|
421
|
+
if (this.config.hitSlop.height !== undefined) {
|
422
|
+
if (this.config.hitSlop.top !== undefined) {
|
423
|
+
bottom = top + this.config.hitSlop.height;
|
424
|
+
} else if (this.config.hitSlop.bottom !== undefined) {
|
425
|
+
top = bottom - this.config.hitSlop.height;
|
426
|
+
}
|
427
|
+
}
|
428
|
+
|
429
|
+
if (event.offsetX >= left && event.offsetX <= right && event.offsetY >= top && event.offsetY <= bottom) {
|
430
|
+
return true;
|
431
|
+
}
|
432
|
+
|
433
|
+
return false;
|
434
|
+
}
|
435
|
+
|
436
|
+
resetConfig() {} //
|
437
|
+
// Getters and setters
|
438
|
+
//
|
439
|
+
|
440
|
+
|
441
|
+
getTag() {
|
442
|
+
return this.handlerTag;
|
443
|
+
}
|
444
|
+
|
445
|
+
setTag(tag) {
|
446
|
+
this.handlerTag = tag;
|
447
|
+
}
|
448
|
+
|
449
|
+
getConfig() {
|
450
|
+
return this.config;
|
451
|
+
}
|
452
|
+
|
453
|
+
getShouldEnableGestureOnSetup() {
|
454
|
+
throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');
|
455
|
+
}
|
456
|
+
|
457
|
+
getView() {
|
458
|
+
return this.view;
|
459
|
+
}
|
460
|
+
|
461
|
+
getEventManager() {
|
462
|
+
return this.eventManager;
|
463
|
+
}
|
464
|
+
|
465
|
+
getTracker() {
|
466
|
+
return this.tracker;
|
467
|
+
}
|
468
|
+
|
469
|
+
getTrackedPointersID() {
|
470
|
+
return this.tracker.getTrackedPointersID();
|
471
|
+
}
|
472
|
+
|
473
|
+
getState() {
|
474
|
+
return this.currentState;
|
475
|
+
}
|
476
|
+
|
477
|
+
setShouldCancelWhenOutside(flag) {
|
478
|
+
this.shouldCancellWhenOutside = flag;
|
479
|
+
}
|
480
|
+
|
481
|
+
getShouldCancelWhenOutside() {
|
482
|
+
return this.shouldCancellWhenOutside;
|
483
|
+
}
|
484
|
+
|
485
|
+
}
|
486
|
+
|
487
|
+
exports.default = GestureHandler;
|
488
|
+
|
489
|
+
function invokeNullableMethod(method, event) {
|
490
|
+
if (!method) {
|
491
|
+
return;
|
492
|
+
}
|
493
|
+
|
494
|
+
if (typeof method === 'function') {
|
495
|
+
method(event);
|
496
|
+
return;
|
497
|
+
}
|
498
|
+
|
499
|
+
if ('__getHandler' in method && typeof method.__getHandler === 'function') {
|
500
|
+
const handler = method.__getHandler();
|
501
|
+
|
502
|
+
invokeNullableMethod(handler, event);
|
503
|
+
return;
|
504
|
+
}
|
505
|
+
|
506
|
+
if (!('__nodeConfig' in method)) {
|
507
|
+
return;
|
508
|
+
}
|
509
|
+
|
510
|
+
const {
|
511
|
+
argMapping
|
512
|
+
} = method.__nodeConfig;
|
513
|
+
|
514
|
+
if (!Array.isArray(argMapping)) {
|
515
|
+
return;
|
516
|
+
}
|
517
|
+
|
518
|
+
for (const [index, [key, value]] of argMapping.entries()) {
|
519
|
+
if (!(key in event.nativeEvent)) {
|
520
|
+
continue;
|
521
|
+
} // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
522
|
+
|
523
|
+
|
524
|
+
const nativeValue = event.nativeEvent[key]; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
525
|
+
|
526
|
+
if (value !== null && value !== void 0 && value.setValue) {
|
527
|
+
//Reanimated API
|
528
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
529
|
+
value.setValue(nativeValue);
|
530
|
+
} else {
|
531
|
+
//RN Animated API
|
532
|
+
method.__nodeConfig.argMapping[index] = [key, nativeValue];
|
533
|
+
}
|
534
|
+
}
|
535
|
+
|
536
|
+
return;
|
537
|
+
}
|
538
|
+
//# sourceMappingURL=GestureHandler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["GestureHandler.ts"],"names":["GestureHandler","constructor","State","UNDETERMINED","enabled","PointerTracker","event","newState","oldState","onGestureHandlerEvent","onGestureHandlerStateChange","propsRef","current","resultEvent","transformEventData","lastSentState","invokeNullableMethod","currentState","ACTIVE","nativeEvent","undefined","hasCustomActivationCriteria","init","ref","setView","setEventManager","view","style","eventManager","EventManager","setOnPointerDown","onPointerDown","bind","setOnPointerUp","onPointerUp","setOnPointerMove","onPointerMove","setOnPointerEnter","onPointerEnter","setOnPointerOut","onPointerOut","setOnPointerCancel","onPointerCancel","setOnPointerOutOfBounds","onPointerOutOfBounds","setListeners","setInteractionManager","manager","interactionManager","onCancel","onReset","resetProgress","reset","tracker","resetTracker","moveToState","GestureHandlerOrchestrator","getInstance","onHandlerStateChange","onStateChange","_newState","_oldState","begin","checkHitSlop","BEGAN","fail","FAILED","cancel","CANCELLED","activate","_force","end","END","isAwaiting","awaiting","setAwaiting","value","isActive","active","setActive","getShouldResetProgress","shouldResetProgress","setShouldResetProgress","getActivationIndex","activationIndex","setActivationIndex","shouldWaitForHandlerFailure","handler","shouldRequireToWaitForFailure","shouldRequireHandlerToWaitForFailure","shouldRecognizeSimultaneously","shouldBeCancelledByOther","shouldHandlerBeCancelledBy","_event","recordHandlerIfNotPresent","onPointerAdd","onPointerRemove","tryToSendMoveEvent","out","shouldCancellWhenOutside","sendEvent","numberOfPointers","getTrackedPointersCount","state","pointerInside","isPointerInBounds","x","y","transformNativeEvent","handlerTag","target","timeStamp","Date","now","updateGestureConfig","props","config","validateHitSlops","checkCustomActivationCriteria","criterias","key","indexOf","hitSlop","left","right","width","Error","height","top","bottom","getBoundingClientRect","horizontal","vertical","offsetX","offsetY","resetConfig","getTag","setTag","tag","getConfig","getShouldEnableGestureOnSetup","getView","getEventManager","getTracker","getTrackedPointersID","getState","setShouldCancelWhenOutside","flag","getShouldCancelWhenOutside","method","__getHandler","argMapping","__nodeConfig","Array","isArray","index","entries","nativeValue","setValue"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport { findNodeHandle } from 'react-native';\nimport { State } from '../../State';\nimport {\n Config,\n AdaptedPointerEvent,\n PropsRef,\n ResultEvent,\n} from '../interfaces';\nimport EventManager from '../tools/EventManager';\nimport GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';\nimport InteractionManager from '../tools/InteractionManager';\nimport PointerTracker from '../tools/PointerTracker';\n\nexport default abstract class GestureHandler {\n private lastSentState: State | null = null;\n protected currentState: State = State.UNDETERMINED;\n\n protected shouldCancellWhenOutside = false;\n protected hasCustomActivationCriteria: boolean;\n protected enabled = false;\n\n private ref!: number;\n private propsRef!: React.RefObject<unknown>;\n protected config: Config = { enabled: false };\n private handlerTag!: number;\n protected view: HTMLElement | null = null;\n\n protected eventManager!: EventManager;\n protected tracker: PointerTracker = new PointerTracker();\n protected interactionManager!: InteractionManager;\n\n // Orchestrator properties\n protected activationIndex = 0;\n protected awaiting = false;\n protected active = false;\n protected shouldResetProgress = false;\n\n public constructor() {\n this.hasCustomActivationCriteria = false;\n }\n\n //\n // Initializing handler\n //\n\n protected init(ref: number, propsRef: React.RefObject<unknown>) {\n this.propsRef = propsRef;\n this.ref = ref;\n\n this.currentState = State.UNDETERMINED;\n\n this.setView(ref);\n this.setEventManager();\n }\n\n private setView(ref: number) {\n if (!ref) {\n this.view = null;\n return;\n }\n\n this.view = (findNodeHandle(ref) as unknown) as HTMLElement;\n this.view.style['touchAction'] = 'none';\n this.view.style['webkitUserSelect'] = 'none';\n this.view.style['userSelect'] = 'none';\n\n //@ts-ignore This one disables default events on Safari\n this.view.style['WebkitTouchCallout'] = 'none';\n }\n\n private setEventManager(): void {\n if (!this.view) {\n return;\n }\n\n this.eventManager = new EventManager(this.view);\n\n this.eventManager.setOnPointerDown(this.onPointerDown.bind(this));\n this.eventManager.setOnPointerUp(this.onPointerUp.bind(this));\n this.eventManager.setOnPointerMove(this.onPointerMove.bind(this));\n this.eventManager.setOnPointerEnter(this.onPointerEnter.bind(this));\n this.eventManager.setOnPointerOut(this.onPointerOut.bind(this));\n this.eventManager.setOnPointerCancel(this.onPointerCancel.bind(this));\n this.eventManager.setOnPointerOutOfBounds(\n this.onPointerOutOfBounds.bind(this)\n );\n\n this.eventManager.setListeners();\n }\n\n public setInteractionManager(manager: InteractionManager): void {\n this.interactionManager = manager;\n }\n\n //\n // Resetting handler\n //\n\n protected onCancel(): void {}\n protected onReset(): void {}\n protected resetProgress(): void {}\n\n public reset(): void {\n this.tracker.resetTracker();\n this.onReset();\n this.currentState = State.UNDETERMINED;\n }\n\n //\n // State logic\n //\n\n public moveToState(newState: State, event: AdaptedPointerEvent) {\n if (this.currentState === newState) {\n return;\n }\n\n const oldState = this.currentState;\n this.currentState = newState;\n\n GestureHandlerOrchestrator.getInstance().onHandlerStateChange(\n this,\n newState,\n oldState,\n event\n );\n\n this.onStateChange(newState, oldState);\n }\n\n protected onStateChange(_newState: State, _oldState: State): void {}\n\n public begin(event: AdaptedPointerEvent): void {\n if (!this.checkHitSlop(event)) {\n return;\n }\n\n if (this.currentState === State.UNDETERMINED) {\n this.moveToState(State.BEGAN, event);\n }\n }\n\n public fail(event: AdaptedPointerEvent): void {\n if (\n this.currentState === State.ACTIVE ||\n this.currentState === State.BEGAN\n ) {\n this.moveToState(State.FAILED, event);\n }\n\n this.resetProgress();\n }\n\n public cancel(event: AdaptedPointerEvent): void {\n if (\n this.currentState === State.ACTIVE ||\n this.currentState === State.UNDETERMINED ||\n this.currentState === State.BEGAN\n ) {\n this.onCancel();\n this.moveToState(State.CANCELLED, event);\n }\n }\n\n protected activate(event: AdaptedPointerEvent, _force = false) {\n if (\n this.currentState === State.UNDETERMINED ||\n this.currentState === State.BEGAN\n ) {\n this.moveToState(State.ACTIVE, event);\n }\n }\n\n public end(event: AdaptedPointerEvent) {\n if (\n this.currentState === State.BEGAN ||\n this.currentState === State.ACTIVE\n ) {\n this.moveToState(State.END, event);\n }\n\n this.resetProgress();\n }\n\n //\n // Methods for orchestrator\n //\n\n public isAwaiting(): boolean {\n return this.awaiting;\n }\n public setAwaiting(value: boolean): void {\n this.awaiting = value;\n }\n\n public isActive(): boolean {\n return this.active;\n }\n public setActive(value: boolean): void {\n this.active = value;\n }\n\n public getShouldResetProgress(): boolean {\n return this.shouldResetProgress;\n }\n public setShouldResetProgress(value: boolean): void {\n this.shouldResetProgress = value;\n }\n\n public getActivationIndex(): number {\n return this.activationIndex;\n }\n public setActivationIndex(value: number): void {\n this.activationIndex = value;\n }\n\n public shouldWaitForHandlerFailure(handler: GestureHandler): boolean {\n if (handler === this) {\n return false;\n }\n\n return this.interactionManager.shouldWaitForHandlerFailure(this, handler);\n }\n\n public shouldRequireToWaitForFailure(handler: GestureHandler): boolean {\n if (handler === this) {\n return false;\n }\n\n return this.interactionManager.shouldRequireHandlerToWaitForFailure(\n this,\n handler\n );\n }\n\n public shouldRecognizeSimultaneously(handler: GestureHandler): boolean {\n if (handler === this) {\n return true;\n }\n\n return this.interactionManager.shouldRecognizeSimultaneously(this, handler);\n }\n\n public shouldBeCancelledByOther(handler: GestureHandler): boolean {\n if (handler === this) {\n return false;\n }\n\n return this.interactionManager.shouldHandlerBeCancelledBy(this, handler);\n }\n\n //\n // Event actions\n //\n\n protected onPointerDown(_event: AdaptedPointerEvent): void {\n GestureHandlerOrchestrator.getInstance().recordHandlerIfNotPresent(this);\n }\n // Adding another pointer to existing ones\n protected onPointerAdd(_event: AdaptedPointerEvent): void {}\n protected onPointerUp(_event: AdaptedPointerEvent): void {}\n // Removing pointer, when there is more than one pointers\n protected onPointerRemove(_event: AdaptedPointerEvent): void {}\n protected onPointerMove(event: AdaptedPointerEvent): void {\n this.tryToSendMoveEvent(event, false);\n }\n protected onPointerOut(_event: AdaptedPointerEvent): void {}\n protected onPointerEnter(_event: AdaptedPointerEvent): void {}\n protected onPointerCancel(_event: AdaptedPointerEvent): void {}\n protected onPointerOutOfBounds(event: AdaptedPointerEvent): void {\n this.tryToSendMoveEvent(event, true);\n }\n private tryToSendMoveEvent(event: AdaptedPointerEvent, out: boolean): void {\n if (\n this.currentState === State.ACTIVE &&\n (!out || (out && !this.shouldCancellWhenOutside))\n ) {\n this.sendEvent(event, this.currentState, this.currentState);\n }\n }\n\n //\n // Events Sending\n //\n\n public sendEvent = (\n event: AdaptedPointerEvent,\n newState: State,\n oldState: State\n ): void => {\n const {\n onGestureHandlerEvent,\n onGestureHandlerStateChange,\n }: PropsRef = this.propsRef.current as PropsRef;\n\n const resultEvent: ResultEvent = this.transformEventData(\n event,\n newState,\n oldState\n );\n\n // In the new API oldState field has to be undefined, unless we send event state changed\n // Here the order is flipped to avoid workarounds such as making backup of the state and setting it to undefined first, then changing it back\n // Flipping order with setting oldState to undefined solves issue, when events were being sent twice instead of once\n // However, this may cause trouble in the future (but for now we don't know that)\n\n if (this.lastSentState !== newState) {\n this.lastSentState = newState;\n invokeNullableMethod(onGestureHandlerStateChange, resultEvent);\n }\n if (this.currentState === State.ACTIVE) {\n resultEvent.nativeEvent.oldState = undefined;\n invokeNullableMethod(onGestureHandlerEvent, resultEvent);\n }\n };\n\n private transformEventData(\n event: AdaptedPointerEvent,\n newState: State,\n oldState: State\n ): ResultEvent {\n return {\n nativeEvent: {\n numberOfPointers: this.tracker.getTrackedPointersCount(),\n state: newState,\n pointerInside: this.eventManager?.isPointerInBounds({\n x: event.x,\n y: event.y,\n }),\n ...this.transformNativeEvent(event),\n handlerTag: this.handlerTag,\n target: this.ref,\n oldState: newState !== oldState ? oldState : undefined,\n },\n timeStamp: Date.now(),\n };\n }\n\n protected transformNativeEvent(_event: AdaptedPointerEvent) {\n return {};\n }\n\n //\n // Handling config\n //\n\n public updateGestureConfig({ enabled = true, ...props }): void {\n this.config = { enabled, ...props };\n this.validateHitSlops();\n }\n\n protected checkCustomActivationCriteria(criterias: string[]): void {\n for (const key in this.config) {\n if (criterias.indexOf(key) >= 0) {\n this.hasCustomActivationCriteria = true;\n }\n }\n }\n\n private validateHitSlops(): void {\n if (!this.config.hitSlop) {\n return;\n }\n\n if (\n this.config.hitSlop.left !== undefined &&\n this.config.hitSlop.right !== undefined &&\n this.config.hitSlop.width !== undefined\n ) {\n throw new Error(\n 'HitSlop Error: Cannot define left, right and width at the same time'\n );\n }\n\n if (\n this.config.hitSlop.width !== undefined &&\n this.config.hitSlop.left === undefined &&\n this.config.hitSlop.right === undefined\n ) {\n throw new Error(\n 'HitSlop Error: When width is defined, either left or right has to be defined'\n );\n }\n\n if (\n this.config.hitSlop.height !== undefined &&\n this.config.hitSlop.top !== undefined &&\n this.config.hitSlop.bottom !== undefined\n ) {\n throw new Error(\n 'HitSlop Error: Cannot define top, bottom and height at the same time'\n );\n }\n\n if (\n this.config.hitSlop.height !== undefined &&\n this.config.hitSlop.top === undefined &&\n this.config.hitSlop.bottom === undefined\n ) {\n throw new Error(\n 'HitSlop Error: When height is defined, either top or bottom has to be defined'\n );\n }\n }\n\n private checkHitSlop(event: AdaptedPointerEvent): boolean {\n if (!this.config.hitSlop || !this.view) {\n return true;\n }\n\n const width = this.view.getBoundingClientRect().width;\n const height = this.view.getBoundingClientRect().height;\n\n let left = 0;\n let top = 0;\n let right: number = width;\n let bottom: number = height;\n\n if (this.config.hitSlop.horizontal !== undefined) {\n left -= this.config.hitSlop.horizontal;\n right += this.config.hitSlop.horizontal;\n }\n\n if (this.config.hitSlop.vertical !== undefined) {\n top -= this.config.hitSlop.vertical;\n bottom += this.config.hitSlop.vertical;\n }\n\n if (this.config.hitSlop.left !== undefined) {\n left = -this.config.hitSlop.left;\n }\n\n if (this.config.hitSlop.right !== undefined) {\n right = width + this.config.hitSlop.right;\n }\n\n if (this.config.hitSlop.top !== undefined) {\n top = -this.config.hitSlop.top;\n }\n\n if (this.config.hitSlop.bottom !== undefined) {\n bottom = width + this.config.hitSlop.bottom;\n }\n if (this.config.hitSlop.width !== undefined) {\n if (this.config.hitSlop.left !== undefined) {\n right = left + this.config.hitSlop.width;\n } else if (this.config.hitSlop.right !== undefined) {\n left = right - this.config.hitSlop.width;\n }\n }\n\n if (this.config.hitSlop.height !== undefined) {\n if (this.config.hitSlop.top !== undefined) {\n bottom = top + this.config.hitSlop.height;\n } else if (this.config.hitSlop.bottom !== undefined) {\n top = bottom - this.config.hitSlop.height;\n }\n }\n\n if (\n event.offsetX >= left &&\n event.offsetX <= right &&\n event.offsetY >= top &&\n event.offsetY <= bottom\n ) {\n return true;\n }\n return false;\n }\n\n protected resetConfig(): void {}\n\n //\n // Getters and setters\n //\n\n public getTag(): number {\n return this.handlerTag;\n }\n public setTag(tag: number): void {\n this.handlerTag = tag;\n }\n\n protected getConfig() {\n return this.config;\n }\n\n public getShouldEnableGestureOnSetup(): boolean {\n throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');\n }\n\n public getView(): HTMLElement | null {\n return this.view;\n }\n\n public getEventManager(): EventManager {\n return this.eventManager;\n }\n\n public getTracker(): PointerTracker {\n return this.tracker;\n }\n\n public getTrackedPointersID(): number[] {\n return this.tracker.getTrackedPointersID();\n }\n\n public getState(): State {\n return this.currentState;\n }\n\n protected setShouldCancelWhenOutside(flag: boolean) {\n this.shouldCancellWhenOutside = flag;\n }\n protected getShouldCancelWhenOutside(): boolean {\n return this.shouldCancellWhenOutside;\n }\n}\n\nfunction invokeNullableMethod(\n method:\n | ((event: ResultEvent) => void)\n | { __getHandler: () => (event: ResultEvent) => void }\n | { __nodeConfig: { argMapping: unknown[] } },\n event: ResultEvent\n): void {\n if (!method) {\n return;\n }\n\n if (typeof method === 'function') {\n method(event);\n return;\n }\n\n if ('__getHandler' in method && typeof method.__getHandler === 'function') {\n const handler = method.__getHandler();\n invokeNullableMethod(handler, event);\n return;\n }\n\n if (!('__nodeConfig' in method)) {\n return;\n }\n\n const { argMapping } = method.__nodeConfig;\n if (!Array.isArray(argMapping)) {\n return;\n }\n\n for (const [index, [key, value]] of argMapping.entries()) {\n if (!(key in event.nativeEvent)) {\n continue;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const nativeValue = event.nativeEvent[key];\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (value?.setValue) {\n //Reanimated API\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n value.setValue(nativeValue);\n } else {\n //RN Animated API\n method.__nodeConfig.argMapping[index] = [key, nativeValue];\n }\n }\n\n return;\n}\n"]}
|