react-native-gesture-handler 2.27.1 → 2.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RNGestureHandler.podspec +3 -2
- package/ReanimatedSwipeable/package.json +4 -4
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt +14 -8
- package/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandlerOrchestrator.kt +10 -5
- package/android/src/main/jni/CMakeLists.txt +5 -0
- package/android/src/main/jni/cpp-adapter.cpp +6 -0
- package/apple/RNGestureHandler.h +4 -0
- package/apple/RNGestureHandler.mm +41 -6
- package/apple/RNGestureHandlerModule.mm +5 -0
- package/jestSetup.js +22 -3
- package/lib/commonjs/components/Pressable/Pressable.js +12 -21
- package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
- package/lib/commonjs/components/Pressable/StateMachine.js +8 -2
- package/lib/commonjs/components/Pressable/StateMachine.js.map +1 -1
- package/lib/commonjs/components/Pressable/stateDefinitions.js +22 -23
- package/lib/commonjs/components/Pressable/stateDefinitions.js.map +1 -1
- package/lib/commonjs/components/{ReanimatedSwipeable.js → ReanimatedSwipeable/ReanimatedSwipeable.js} +30 -39
- package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -0
- package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +12 -0
- package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js.map +1 -0
- package/lib/commonjs/components/ReanimatedSwipeable/index.js +21 -0
- package/lib/commonjs/components/ReanimatedSwipeable/index.js.map +1 -0
- package/lib/commonjs/components/gestureHandlerRootHOC.js +4 -1
- package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +1 -1
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/commonjs/mocks/Pressable.js +13 -0
- package/lib/commonjs/mocks/Pressable.js.map +1 -0
- package/lib/commonjs/{mocks.js → mocks/mocks.js} +8 -11
- package/lib/commonjs/mocks/mocks.js.map +1 -0
- package/lib/commonjs/web/handlers/GestureHandler.js +5 -2
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +0 -5
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/KeyboardEventManager.js +34 -8
- package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +14 -23
- package/lib/module/components/Pressable/Pressable.js.map +1 -1
- package/lib/module/components/Pressable/StateMachine.js +8 -2
- package/lib/module/components/Pressable/StateMachine.js.map +1 -1
- package/lib/module/components/Pressable/stateDefinitions.js +21 -22
- package/lib/module/components/Pressable/stateDefinitions.js.map +1 -1
- package/lib/module/components/{ReanimatedSwipeable.js → ReanimatedSwipeable/ReanimatedSwipeable.js} +24 -33
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js.map +1 -0
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +8 -0
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js.map +1 -0
- package/lib/module/components/ReanimatedSwipeable/index.js +5 -0
- package/lib/module/components/ReanimatedSwipeable/index.js.map +1 -0
- package/lib/module/components/gestureHandlerRootHOC.js +5 -0
- package/lib/module/components/gestureHandlerRootHOC.js.map +1 -1
- package/lib/module/handlers/createHandler.js +1 -1
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js +1 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/module/mocks/Pressable.js +4 -0
- package/lib/module/mocks/Pressable.js.map +1 -0
- package/lib/module/{mocks.js → mocks/mocks.js} +7 -11
- package/lib/module/mocks/mocks.js.map +1 -0
- package/lib/module/web/handlers/GestureHandler.js +5 -2
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +0 -5
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/module/web/tools/KeyboardEventManager.js +34 -8
- package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/typescript/ActionType.d.ts +1 -0
- package/lib/typescript/Directions.d.ts +1 -0
- package/lib/typescript/EnableNewWebImplementation.d.ts +1 -0
- package/lib/typescript/GestureHandlerRootViewContext.d.ts +1 -0
- package/lib/typescript/PlatformConstants.d.ts +1 -0
- package/lib/typescript/PlatformConstants.web.d.ts +1 -0
- package/lib/typescript/PointerType.d.ts +1 -0
- package/lib/typescript/RNGestureHandlerModule.d.ts +1 -0
- package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -0
- package/lib/typescript/RNGestureHandlerModule.windows.d.ts +1 -0
- package/lib/typescript/RNRenderer.d.ts +1 -0
- package/lib/typescript/RNRenderer.web.d.ts +1 -0
- package/lib/typescript/State.d.ts +1 -0
- package/lib/typescript/TouchEventType.d.ts +1 -0
- package/lib/typescript/components/DrawerLayout.d.ts +1 -0
- package/lib/typescript/components/GestureButtons.d.ts +1 -0
- package/lib/typescript/components/GestureButtonsProps.d.ts +10 -1
- package/lib/typescript/components/GestureButtonsProps.d.ts.map +1 -1
- package/lib/typescript/components/GestureComponents.d.ts +1 -0
- package/lib/typescript/components/GestureComponents.web.d.ts +1 -0
- package/lib/typescript/components/GestureHandlerButton.d.ts +1 -0
- package/lib/typescript/components/GestureHandlerButton.web.d.ts +1 -0
- package/lib/typescript/components/GestureHandlerRootView.android.d.ts +1 -0
- package/lib/typescript/components/GestureHandlerRootView.d.ts +1 -0
- package/lib/typescript/components/GestureHandlerRootView.web.d.ts +1 -0
- package/lib/typescript/components/Pressable/Pressable.d.ts +1 -0
- package/lib/typescript/components/Pressable/Pressable.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/PressableProps.d.ts +3 -4
- package/lib/typescript/components/Pressable/PressableProps.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/StateMachine.d.ts +4 -2
- package/lib/typescript/components/Pressable/StateMachine.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/index.d.ts +1 -0
- package/lib/typescript/components/Pressable/stateDefinitions.d.ts +3 -2
- package/lib/typescript/components/Pressable/stateDefinitions.d.ts.map +1 -1
- package/lib/typescript/components/Pressable/utils.d.ts +1 -0
- package/lib/typescript/components/ReanimatedDrawerLayout.d.ts +1 -0
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts +6 -0
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeable.d.ts.map +1 -0
- package/lib/typescript/components/{ReanimatedSwipeable.d.ts → ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts} +10 -7
- package/lib/typescript/components/ReanimatedSwipeable/ReanimatedSwipeableProps.d.ts.map +1 -0
- package/lib/typescript/components/ReanimatedSwipeable/index.d.ts +3 -0
- package/lib/typescript/components/ReanimatedSwipeable/index.d.ts.map +1 -0
- package/lib/typescript/components/Swipeable.d.ts +1 -0
- package/lib/typescript/components/Text.d.ts +1 -0
- package/lib/typescript/components/gestureHandlerRootHOC.d.ts +5 -0
- package/lib/typescript/components/gestureHandlerRootHOC.d.ts.map +1 -1
- package/lib/typescript/components/touchables/ExtraButtonProps.d.ts +1 -0
- package/lib/typescript/components/touchables/GenericTouchable.d.ts +1 -0
- package/lib/typescript/components/touchables/GenericTouchableProps.d.ts +1 -0
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +1 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +1 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +1 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +1 -0
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +1 -0
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +1 -0
- package/lib/typescript/components/touchables/index.d.ts +1 -0
- package/lib/typescript/components/utils.d.ts +1 -0
- package/lib/typescript/findNodeHandle.d.ts +1 -0
- package/lib/typescript/findNodeHandle.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 +1 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +1 -0
- package/lib/typescript/handlers/GestureHandlerEventPayload.d.ts +1 -0
- package/lib/typescript/handlers/LongPressGestureHandler.d.ts +1 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -0
- package/lib/typescript/handlers/PinchGestureHandler.d.ts +1 -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 +1 -0
- package/lib/typescript/handlers/TapGestureHandler.d.ts +1 -0
- package/lib/typescript/handlers/createHandler.d.ts +1 -0
- package/lib/typescript/handlers/createNativeWrapper.d.ts +1 -0
- package/lib/typescript/handlers/customDirectEventTypes.d.ts +1 -0
- package/lib/typescript/handlers/customDirectEventTypes.web.d.ts +1 -0
- package/lib/typescript/handlers/gestureHandlerCommon.d.ts +1 -0
- package/lib/typescript/handlers/gestureHandlerTypesCompat.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/index.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/types.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.d.ts +1 -0
- package/lib/typescript/handlers/gestures/GestureDetector/utils.d.ts +1 -0
- package/lib/typescript/handlers/gestures/eventReceiver.d.ts +1 -0
- package/lib/typescript/handlers/gestures/flingGesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/forceTouchGesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/gesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/gestureComposition.d.ts +1 -0
- package/lib/typescript/handlers/gestures/gestureObjects.d.ts +1 -0
- package/lib/typescript/handlers/gestures/gestureStateManager.d.ts +1 -0
- package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +1 -0
- package/lib/typescript/handlers/gestures/hoverGesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/longPressGesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/manualGesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/nativeGesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/panGesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/pinchGesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/reanimatedWrapper.d.ts +1 -0
- package/lib/typescript/handlers/gestures/rotationGesture.d.ts +1 -0
- package/lib/typescript/handlers/gestures/tapGesture.d.ts +1 -0
- package/lib/typescript/handlers/getNextHandlerTag.d.ts +1 -0
- package/lib/typescript/handlers/handlersRegistry.d.ts +1 -0
- package/lib/typescript/handlers/utils.d.ts +1 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/init.d.ts +1 -0
- package/lib/typescript/jestUtils/index.d.ts +1 -0
- package/lib/typescript/jestUtils/jestUtils.d.ts +1 -0
- package/lib/typescript/mocks/Pressable.d.ts +2 -0
- package/lib/typescript/mocks/Pressable.d.ts.map +1 -0
- package/lib/typescript/{mocks.d.ts → mocks/mocks.d.ts} +5 -4
- package/lib/typescript/mocks/mocks.d.ts.map +1 -0
- package/lib/typescript/mountRegistry.d.ts +1 -0
- package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +1 -0
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +1 -0
- package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +1 -0
- package/lib/typescript/typeUtils.d.ts +1 -0
- package/lib/typescript/utils.d.ts +1 -0
- package/lib/typescript/web/Gestures.d.ts +1 -0
- package/lib/typescript/web/constants.d.ts +1 -0
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +1 -0
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +1 -0
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts.map +1 -1
- package/lib/typescript/web/handlers/HoverGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/IGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/PanGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/TapGestureHandler.d.ts +1 -0
- package/lib/typescript/web/interfaces.d.ts +1 -0
- package/lib/typescript/web/tools/CircularBuffer.d.ts +1 -0
- package/lib/typescript/web/tools/EventManager.d.ts +1 -0
- package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +1 -0
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +1 -0
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +1 -0
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts.map +1 -1
- package/lib/typescript/web/tools/InteractionManager.d.ts +1 -0
- package/lib/typescript/web/tools/KeyboardEventManager.d.ts +7 -3
- package/lib/typescript/web/tools/KeyboardEventManager.d.ts.map +1 -1
- package/lib/typescript/web/tools/LeastSquareSolver.d.ts +1 -0
- package/lib/typescript/web/tools/NodeManager.d.ts +1 -0
- package/lib/typescript/web/tools/PointerEventManager.d.ts +1 -0
- package/lib/typescript/web/tools/PointerTracker.d.ts +1 -0
- package/lib/typescript/web/tools/Vector.d.ts +1 -0
- package/lib/typescript/web/tools/VelocityTracker.d.ts +1 -0
- package/lib/typescript/web/tools/WheelEventManager.d.ts +1 -0
- package/lib/typescript/web/utils.d.ts +1 -0
- package/lib/typescript/web_hammer/DiscreteGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/DraggingGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/Errors.d.ts +1 -0
- package/lib/typescript/web_hammer/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/GestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/IndiscreteGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/LongPressGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/NativeViewGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/NodeManager.d.ts +1 -0
- package/lib/typescript/web_hammer/PanGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/PinchGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/PressGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/RotationGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/TapGestureHandler.d.ts +1 -0
- package/lib/typescript/web_hammer/constants.d.ts +1 -0
- package/lib/typescript/web_hammer/utils.d.ts +1 -0
- package/package.json +4 -3
- package/scripts/gesture_handler_utils.rb +25 -0
- package/src/components/GestureButtonsProps.ts +10 -0
- package/src/components/Pressable/Pressable.tsx +20 -31
- package/src/components/Pressable/PressableProps.tsx +2 -4
- package/src/components/Pressable/StateMachine.tsx +12 -4
- package/src/components/Pressable/stateDefinitions.ts +23 -23
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +603 -0
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +199 -0
- package/src/components/ReanimatedSwipeable/index.ts +6 -0
- package/src/components/gestureHandlerRootHOC.tsx +4 -0
- package/src/handlers/createHandler.tsx +1 -1
- package/src/handlers/gestures/GestureDetector/index.tsx +1 -1
- package/src/mocks/Pressable.tsx +1 -0
- package/src/{mocks.tsx → mocks/mocks.tsx} +7 -11
- package/src/web/handlers/GestureHandler.ts +8 -3
- package/src/web/tools/GestureHandlerWebDelegate.ts +0 -5
- package/src/web/tools/KeyboardEventManager.ts +50 -8
- package/lib/commonjs/components/ReanimatedSwipeable.js.map +0 -1
- package/lib/commonjs/mocks.js.map +0 -1
- package/lib/module/components/ReanimatedSwipeable.js.map +0 -1
- package/lib/module/mocks.js.map +0 -1
- package/lib/typescript/ActionType.js +0 -6
- package/lib/typescript/Directions.js +0 -18
- package/lib/typescript/EnableNewWebImplementation.js +0 -30
- package/lib/typescript/GestureHandlerRootViewContext.js +0 -2
- package/lib/typescript/PlatformConstants.js +0 -3
- package/lib/typescript/PlatformConstants.web.js +0 -5
- package/lib/typescript/PointerType.js +0 -8
- package/lib/typescript/RNGestureHandlerModule.js +0 -4
- package/lib/typescript/RNGestureHandlerModule.web.js +0 -92
- package/lib/typescript/RNGestureHandlerModule.windows.js +0 -47
- package/lib/typescript/RNRenderer.js +0 -3
- package/lib/typescript/RNRenderer.web.js +0 -3
- package/lib/typescript/State.js +0 -9
- package/lib/typescript/TouchEventType.js +0 -7
- package/lib/typescript/components/DrawerLayout.js +0 -417
- package/lib/typescript/components/GestureButtons.js +0 -165
- package/lib/typescript/components/GestureButtonsProps.js +0 -1
- package/lib/typescript/components/GestureComponents.js +0 -67
- package/lib/typescript/components/GestureComponents.web.js +0 -21
- package/lib/typescript/components/GestureHandlerButton.js +0 -2
- package/lib/typescript/components/GestureHandlerButton.web.js +0 -3
- package/lib/typescript/components/GestureHandlerRootView.android.js +0 -17
- package/lib/typescript/components/GestureHandlerRootView.js +0 -16
- package/lib/typescript/components/GestureHandlerRootView.web.js +0 -11
- package/lib/typescript/components/Pressable/Pressable.js +0 -231
- package/lib/typescript/components/Pressable/PressableProps.js +0 -1
- package/lib/typescript/components/Pressable/StateMachine.js +0 -34
- package/lib/typescript/components/Pressable/index.js +0 -1
- package/lib/typescript/components/Pressable/stateDefinitions.js +0 -104
- package/lib/typescript/components/Pressable/utils.js +0 -80
- package/lib/typescript/components/ReanimatedDrawerLayout.js +0 -364
- package/lib/typescript/components/ReanimatedSwipeable.d.ts.map +0 -1
- package/lib/typescript/components/ReanimatedSwipeable.js +0 -400
- package/lib/typescript/components/Swipeable.js +0 -287
- package/lib/typescript/components/Text.js +0 -38
- package/lib/typescript/components/gestureHandlerRootHOC.js +0 -18
- package/lib/typescript/components/touchables/ExtraButtonProps.js +0 -1
- package/lib/typescript/components/touchables/GenericTouchable.js +0 -221
- package/lib/typescript/components/touchables/GenericTouchableProps.js +0 -1
- package/lib/typescript/components/touchables/TouchableHighlight.js +0 -75
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.js +0 -65
- package/lib/typescript/components/touchables/TouchableNativeFeedback.js +0 -6
- package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.js +0 -1
- package/lib/typescript/components/touchables/TouchableOpacity.js +0 -51
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.js +0 -10
- package/lib/typescript/components/touchables/index.js +0 -4
- package/lib/typescript/components/utils.js +0 -11
- package/lib/typescript/findNodeHandle.js +0 -2
- package/lib/typescript/findNodeHandle.web.js +0 -31
- package/lib/typescript/getShadowNodeFromRef.js +0 -45
- package/lib/typescript/getShadowNodeFromRef.web.js +0 -7
- package/lib/typescript/ghQueueMicrotask.js +0 -7
- package/lib/typescript/handlers/FlingGestureHandler.js +0 -19
- package/lib/typescript/handlers/ForceTouchGestureHandler.js +0 -37
- package/lib/typescript/handlers/GestureHandlerEventPayload.js +0 -1
- package/lib/typescript/handlers/LongPressGestureHandler.js +0 -22
- package/lib/typescript/handlers/NativeViewGestureHandler.js +0 -20
- package/lib/typescript/handlers/PanGestureHandler.js +0 -128
- package/lib/typescript/handlers/PinchGestureHandler.js +0 -12
- package/lib/typescript/handlers/PressabilityDebugView.js +0 -2
- package/lib/typescript/handlers/PressabilityDebugView.web.js +0 -4
- package/lib/typescript/handlers/RotationGestureHandler.js +0 -12
- package/lib/typescript/handlers/TapGestureHandler.js +0 -26
- package/lib/typescript/handlers/createHandler.js +0 -375
- package/lib/typescript/handlers/createNativeWrapper.js +0 -67
- package/lib/typescript/handlers/customDirectEventTypes.js +0 -2
- package/lib/typescript/handlers/customDirectEventTypes.web.js +0 -4
- package/lib/typescript/handlers/gestureHandlerCommon.js +0 -42
- package/lib/typescript/handlers/gestureHandlerTypesCompat.js +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.js +0 -22
- package/lib/typescript/handlers/gestures/GestureDetector/Wrap.web.js +0 -24
- package/lib/typescript/handlers/gestures/GestureDetector/attachHandlers.js +0 -55
- package/lib/typescript/handlers/gestures/GestureDetector/dropHandlers.js +0 -12
- package/lib/typescript/handlers/gestures/GestureDetector/index.js +0 -114
- package/lib/typescript/handlers/gestures/GestureDetector/needsToReattach.js +0 -18
- package/lib/typescript/handlers/gestures/GestureDetector/types.js +0 -1
- package/lib/typescript/handlers/gestures/GestureDetector/updateHandlers.js +0 -54
- package/lib/typescript/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -137
- package/lib/typescript/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -48
- package/lib/typescript/handlers/gestures/GestureDetector/useMountReactions.js +0 -35
- package/lib/typescript/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -32
- package/lib/typescript/handlers/gestures/GestureDetector/utils.js +0 -140
- package/lib/typescript/handlers/gestures/eventReceiver.js +0 -105
- package/lib/typescript/handlers/gestures/flingGesture.js +0 -27
- package/lib/typescript/handlers/gestures/forceTouchGesture.js +0 -57
- package/lib/typescript/handlers/gestures/gesture.js +0 -303
- package/lib/typescript/handlers/gestures/gestureComposition.js +0 -78
- package/lib/typescript/handlers/gestures/gestureObjects.js +0 -125
- package/lib/typescript/handlers/gestures/gestureStateManager.js +0 -60
- package/lib/typescript/handlers/gestures/gestureStateManager.web.js +0 -19
- package/lib/typescript/handlers/gestures/hoverGesture.js +0 -45
- package/lib/typescript/handlers/gestures/longPressGesture.js +0 -35
- package/lib/typescript/handlers/gestures/manualGesture.js +0 -16
- package/lib/typescript/handlers/gestures/nativeGesture.js +0 -24
- package/lib/typescript/handlers/gestures/panGesture.js +0 -181
- package/lib/typescript/handlers/gestures/pinchGesture.js +0 -27
- package/lib/typescript/handlers/gestures/reanimatedWrapper.js +0 -23
- package/lib/typescript/handlers/gestures/rotationGesture.js +0 -27
- package/lib/typescript/handlers/gestures/tapGesture.js +0 -72
- package/lib/typescript/handlers/getNextHandlerTag.js +0 -4
- package/lib/typescript/handlers/handlersRegistry.js +0 -36
- package/lib/typescript/handlers/utils.js +0 -58
- package/lib/typescript/index.js +0 -28
- package/lib/typescript/init.js +0 -15
- package/lib/typescript/jestUtils/index.js +0 -1
- package/lib/typescript/jestUtils/jestUtils.js +0 -290
- package/lib/typescript/mocks.d.ts.map +0 -1
- package/lib/typescript/mocks.js +0 -59
- package/lib/typescript/mountRegistry.js +0 -29
- package/lib/typescript/specs/NativeRNGestureHandlerModule.js +0 -2
- package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.js +0 -2
- package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.js +0 -2
- package/lib/typescript/typeUtils.js +0 -1
- package/lib/typescript/utils.js +0 -80
- package/lib/typescript/web/Gestures.js +0 -38
- package/lib/typescript/web/constants.js +0 -2
- package/lib/typescript/web/detectors/RotationGestureDetector.js +0 -122
- package/lib/typescript/web/detectors/ScaleGestureDetector.js +0 -117
- package/lib/typescript/web/handlers/FlingGestureHandler.js +0 -133
- package/lib/typescript/web/handlers/GestureHandler.js +0 -656
- package/lib/typescript/web/handlers/HoverGestureHandler.js +0 -37
- package/lib/typescript/web/handlers/IGestureHandler.js +0 -1
- package/lib/typescript/web/handlers/LongPressGestureHandler.js +0 -136
- package/lib/typescript/web/handlers/ManualGestureHandler.js +0 -29
- package/lib/typescript/web/handlers/NativeViewGestureHandler.js +0 -133
- package/lib/typescript/web/handlers/PanGestureHandler.js +0 -420
- package/lib/typescript/web/handlers/PinchGestureHandler.js +0 -117
- package/lib/typescript/web/handlers/RotationGestureHandler.js +0 -122
- package/lib/typescript/web/handlers/TapGestureHandler.js +0 -202
- package/lib/typescript/web/interfaces.js +0 -25
- package/lib/typescript/web/tools/CircularBuffer.js +0 -37
- package/lib/typescript/web/tools/EventManager.js +0 -85
- package/lib/typescript/web/tools/GestureHandlerDelegate.js +0 -1
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.js +0 -273
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.js +0 -169
- package/lib/typescript/web/tools/InteractionManager.js +0 -91
- package/lib/typescript/web/tools/KeyboardEventManager.js +0 -73
- package/lib/typescript/web/tools/LeastSquareSolver.js +0 -147
- package/lib/typescript/web/tools/NodeManager.js +0 -28
- package/lib/typescript/web/tools/PointerEventManager.js +0 -179
- package/lib/typescript/web/tools/PointerTracker.js +0 -161
- package/lib/typescript/web/tools/Vector.js +0 -43
- package/lib/typescript/web/tools/VelocityTracker.js +0 -76
- package/lib/typescript/web/tools/WheelEventManager.js +0 -40
- package/lib/typescript/web/utils.js +0 -233
- package/lib/typescript/web_hammer/DiscreteGestureHandler.js +0 -48
- package/lib/typescript/web_hammer/DraggingGestureHandler.js +0 -25
- package/lib/typescript/web_hammer/Errors.js +0 -5
- package/lib/typescript/web_hammer/FlingGestureHandler.js +0 -119
- package/lib/typescript/web_hammer/GestureHandler.js +0 -469
- package/lib/typescript/web_hammer/IndiscreteGestureHandler.js +0 -26
- package/lib/typescript/web_hammer/LongPressGestureHandler.js +0 -46
- package/lib/typescript/web_hammer/NativeViewGestureHandler.js +0 -40
- package/lib/typescript/web_hammer/NodeManager.js +0 -28
- package/lib/typescript/web_hammer/PanGestureHandler.js +0 -151
- package/lib/typescript/web_hammer/PinchGestureHandler.js +0 -19
- package/lib/typescript/web_hammer/PressGestureHandler.js +0 -133
- package/lib/typescript/web_hammer/RotationGestureHandler.js +0 -20
- package/lib/typescript/web_hammer/TapGestureHandler.js +0 -142
- package/lib/typescript/web_hammer/constants.js +0 -42
- package/lib/typescript/web_hammer/utils.js +0 -15
- package/src/components/ReanimatedSwipeable.tsx +0 -811
@@ -1,420 +0,0 @@
|
|
1
|
-
import { State } from '../../State';
|
2
|
-
import { DEFAULT_TOUCH_SLOP } from '../constants';
|
3
|
-
import { WheelDevice } from '../interfaces';
|
4
|
-
import GestureHandler from './GestureHandler';
|
5
|
-
const DEFAULT_MIN_POINTERS = 1;
|
6
|
-
const DEFAULT_MAX_POINTERS = 10;
|
7
|
-
const DEFAULT_MIN_DIST_SQ = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;
|
8
|
-
export default class PanGestureHandler extends GestureHandler {
|
9
|
-
customActivationProperties = [
|
10
|
-
'activeOffsetXStart',
|
11
|
-
'activeOffsetXEnd',
|
12
|
-
'failOffsetXStart',
|
13
|
-
'failOffsetXEnd',
|
14
|
-
'activeOffsetYStart',
|
15
|
-
'activeOffsetYEnd',
|
16
|
-
'failOffsetYStart',
|
17
|
-
'failOffsetYEnd',
|
18
|
-
'minVelocityX',
|
19
|
-
'minVelocityY',
|
20
|
-
'minVelocity',
|
21
|
-
];
|
22
|
-
velocityX = 0;
|
23
|
-
velocityY = 0;
|
24
|
-
minDistSq = DEFAULT_MIN_DIST_SQ;
|
25
|
-
activeOffsetXStart = -Number.MAX_SAFE_INTEGER;
|
26
|
-
activeOffsetXEnd = Number.MIN_SAFE_INTEGER;
|
27
|
-
failOffsetXStart = Number.MIN_SAFE_INTEGER;
|
28
|
-
failOffsetXEnd = Number.MAX_SAFE_INTEGER;
|
29
|
-
activeOffsetYStart = Number.MAX_SAFE_INTEGER;
|
30
|
-
activeOffsetYEnd = Number.MIN_SAFE_INTEGER;
|
31
|
-
failOffsetYStart = Number.MIN_SAFE_INTEGER;
|
32
|
-
failOffsetYEnd = Number.MAX_SAFE_INTEGER;
|
33
|
-
minVelocityX = Number.MAX_SAFE_INTEGER;
|
34
|
-
minVelocityY = Number.MAX_SAFE_INTEGER;
|
35
|
-
minVelocitySq = Number.MAX_SAFE_INTEGER;
|
36
|
-
minPointers = DEFAULT_MIN_POINTERS;
|
37
|
-
maxPointers = DEFAULT_MAX_POINTERS;
|
38
|
-
startX = 0;
|
39
|
-
startY = 0;
|
40
|
-
offsetX = 0;
|
41
|
-
offsetY = 0;
|
42
|
-
lastX = 0;
|
43
|
-
lastY = 0;
|
44
|
-
stylusData;
|
45
|
-
activateAfterLongPress = 0;
|
46
|
-
activationTimeout = 0;
|
47
|
-
enableTrackpadTwoFingerGesture = false;
|
48
|
-
endWheelTimeout = 0;
|
49
|
-
wheelDevice = WheelDevice.UNDETERMINED;
|
50
|
-
updateGestureConfig({ enabled = true, ...props }) {
|
51
|
-
this.resetConfig();
|
52
|
-
super.updateGestureConfig({ enabled: enabled, ...props });
|
53
|
-
this.checkCustomActivationCriteria(this.customActivationProperties);
|
54
|
-
if (this.config.minDist !== undefined) {
|
55
|
-
this.minDistSq = this.config.minDist * this.config.minDist;
|
56
|
-
}
|
57
|
-
else if (this.hasCustomActivationCriteria) {
|
58
|
-
this.minDistSq = Number.MAX_SAFE_INTEGER;
|
59
|
-
}
|
60
|
-
if (this.config.minPointers !== undefined) {
|
61
|
-
this.minPointers = this.config.minPointers;
|
62
|
-
}
|
63
|
-
if (this.config.maxPointers !== undefined) {
|
64
|
-
this.maxPointers = this.config.maxPointers;
|
65
|
-
}
|
66
|
-
if (this.config.minVelocity !== undefined) {
|
67
|
-
this.minVelocityX = this.config.minVelocity;
|
68
|
-
this.minVelocityY = this.config.minVelocity;
|
69
|
-
}
|
70
|
-
if (this.config.minVelocityX !== undefined) {
|
71
|
-
this.minVelocityX = this.config.minVelocityX;
|
72
|
-
}
|
73
|
-
if (this.config.minVelocityY !== undefined) {
|
74
|
-
this.minVelocityY = this.config.minVelocityY;
|
75
|
-
}
|
76
|
-
if (this.config.activateAfterLongPress !== undefined) {
|
77
|
-
this.activateAfterLongPress = this.config.activateAfterLongPress;
|
78
|
-
}
|
79
|
-
if (this.config.activeOffsetXStart !== undefined) {
|
80
|
-
this.activeOffsetXStart = this.config.activeOffsetXStart;
|
81
|
-
if (this.config.activeOffsetXEnd === undefined) {
|
82
|
-
this.activeOffsetXEnd = Number.MAX_SAFE_INTEGER;
|
83
|
-
}
|
84
|
-
}
|
85
|
-
if (this.config.activeOffsetXEnd !== undefined) {
|
86
|
-
this.activeOffsetXEnd = this.config.activeOffsetXEnd;
|
87
|
-
if (this.config.activeOffsetXStart === undefined) {
|
88
|
-
this.activeOffsetXStart = Number.MIN_SAFE_INTEGER;
|
89
|
-
}
|
90
|
-
}
|
91
|
-
if (this.config.failOffsetXStart !== undefined) {
|
92
|
-
this.failOffsetXStart = this.config.failOffsetXStart;
|
93
|
-
if (this.config.failOffsetXEnd === undefined) {
|
94
|
-
this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;
|
95
|
-
}
|
96
|
-
}
|
97
|
-
if (this.config.failOffsetXEnd !== undefined) {
|
98
|
-
this.failOffsetXEnd = this.config.failOffsetXEnd;
|
99
|
-
if (this.config.failOffsetXStart === undefined) {
|
100
|
-
this.failOffsetXStart = Number.MIN_SAFE_INTEGER;
|
101
|
-
}
|
102
|
-
}
|
103
|
-
if (this.config.activeOffsetYStart !== undefined) {
|
104
|
-
this.activeOffsetYStart = this.config.activeOffsetYStart;
|
105
|
-
if (this.config.activeOffsetYEnd === undefined) {
|
106
|
-
this.activeOffsetYEnd = Number.MAX_SAFE_INTEGER;
|
107
|
-
}
|
108
|
-
}
|
109
|
-
if (this.config.activeOffsetYEnd !== undefined) {
|
110
|
-
this.activeOffsetYEnd = this.config.activeOffsetYEnd;
|
111
|
-
if (this.config.activeOffsetYStart === undefined) {
|
112
|
-
this.activeOffsetYStart = Number.MIN_SAFE_INTEGER;
|
113
|
-
}
|
114
|
-
}
|
115
|
-
if (this.config.failOffsetYStart !== undefined) {
|
116
|
-
this.failOffsetYStart = this.config.failOffsetYStart;
|
117
|
-
if (this.config.failOffsetYEnd === undefined) {
|
118
|
-
this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;
|
119
|
-
}
|
120
|
-
}
|
121
|
-
if (this.config.failOffsetYEnd !== undefined) {
|
122
|
-
this.failOffsetYEnd = this.config.failOffsetYEnd;
|
123
|
-
if (this.config.failOffsetYStart === undefined) {
|
124
|
-
this.failOffsetYStart = Number.MIN_SAFE_INTEGER;
|
125
|
-
}
|
126
|
-
}
|
127
|
-
if (this.config.enableTrackpadTwoFingerGesture !== undefined) {
|
128
|
-
this.enableTrackpadTwoFingerGesture =
|
129
|
-
this.config.enableTrackpadTwoFingerGesture;
|
130
|
-
}
|
131
|
-
}
|
132
|
-
resetConfig() {
|
133
|
-
super.resetConfig();
|
134
|
-
this.activeOffsetXStart = -Number.MAX_SAFE_INTEGER;
|
135
|
-
this.activeOffsetXEnd = Number.MIN_SAFE_INTEGER;
|
136
|
-
this.failOffsetXStart = Number.MIN_SAFE_INTEGER;
|
137
|
-
this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;
|
138
|
-
this.activeOffsetYStart = Number.MAX_SAFE_INTEGER;
|
139
|
-
this.activeOffsetYEnd = Number.MIN_SAFE_INTEGER;
|
140
|
-
this.failOffsetYStart = Number.MIN_SAFE_INTEGER;
|
141
|
-
this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;
|
142
|
-
this.minVelocityX = Number.MAX_SAFE_INTEGER;
|
143
|
-
this.minVelocityY = Number.MAX_SAFE_INTEGER;
|
144
|
-
this.minVelocitySq = Number.MAX_SAFE_INTEGER;
|
145
|
-
this.minDistSq = DEFAULT_MIN_DIST_SQ;
|
146
|
-
this.minPointers = DEFAULT_MIN_POINTERS;
|
147
|
-
this.maxPointers = DEFAULT_MAX_POINTERS;
|
148
|
-
this.activateAfterLongPress = 0;
|
149
|
-
}
|
150
|
-
transformNativeEvent() {
|
151
|
-
const translationX = this.getTranslationX();
|
152
|
-
const translationY = this.getTranslationY();
|
153
|
-
return {
|
154
|
-
...super.transformNativeEvent(),
|
155
|
-
translationX: isNaN(translationX) ? 0 : translationX,
|
156
|
-
translationY: isNaN(translationY) ? 0 : translationY,
|
157
|
-
velocityX: this.velocityX,
|
158
|
-
velocityY: this.velocityY,
|
159
|
-
stylusData: this.stylusData,
|
160
|
-
};
|
161
|
-
}
|
162
|
-
getTranslationX() {
|
163
|
-
return this.lastX - this.startX + this.offsetX;
|
164
|
-
}
|
165
|
-
getTranslationY() {
|
166
|
-
return this.lastY - this.startY + this.offsetY;
|
167
|
-
}
|
168
|
-
clearActivationTimeout() {
|
169
|
-
clearTimeout(this.activationTimeout);
|
170
|
-
}
|
171
|
-
updateLastCoords() {
|
172
|
-
const { x, y } = this.tracker.getAbsoluteCoordsAverage();
|
173
|
-
this.lastX = x;
|
174
|
-
this.lastY = y;
|
175
|
-
}
|
176
|
-
updateVelocity(pointerId) {
|
177
|
-
const velocities = this.tracker.getVelocity(pointerId);
|
178
|
-
this.velocityX = velocities?.x ?? 0;
|
179
|
-
this.velocityY = velocities?.y ?? 0;
|
180
|
-
}
|
181
|
-
// Events Handling
|
182
|
-
onPointerDown(event) {
|
183
|
-
if (!this.isButtonInConfig(event.button)) {
|
184
|
-
return;
|
185
|
-
}
|
186
|
-
this.tracker.addToTracker(event);
|
187
|
-
this.stylusData = event.stylusData;
|
188
|
-
super.onPointerDown(event);
|
189
|
-
this.updateLastCoords();
|
190
|
-
this.startX = this.lastX;
|
191
|
-
this.startY = this.lastY;
|
192
|
-
this.tryBegin(event);
|
193
|
-
this.checkBegan();
|
194
|
-
this.tryToSendTouchEvent(event);
|
195
|
-
}
|
196
|
-
onPointerAdd(event) {
|
197
|
-
this.tracker.addToTracker(event);
|
198
|
-
super.onPointerAdd(event);
|
199
|
-
this.tryBegin(event);
|
200
|
-
this.offsetX += this.lastX - this.startX;
|
201
|
-
this.offsetY += this.lastY - this.startY;
|
202
|
-
this.updateLastCoords();
|
203
|
-
this.startX = this.lastX;
|
204
|
-
this.startY = this.lastY;
|
205
|
-
if (this.tracker.trackedPointersCount > this.maxPointers) {
|
206
|
-
if (this.state === State.ACTIVE) {
|
207
|
-
this.cancel();
|
208
|
-
}
|
209
|
-
else {
|
210
|
-
this.fail();
|
211
|
-
}
|
212
|
-
}
|
213
|
-
else {
|
214
|
-
this.checkBegan();
|
215
|
-
}
|
216
|
-
}
|
217
|
-
onPointerUp(event) {
|
218
|
-
this.stylusData = event.stylusData;
|
219
|
-
super.onPointerUp(event);
|
220
|
-
if (this.state === State.ACTIVE) {
|
221
|
-
const lastCoords = this.tracker.getAbsoluteCoordsAverage();
|
222
|
-
this.lastX = lastCoords.x;
|
223
|
-
this.lastY = lastCoords.y;
|
224
|
-
}
|
225
|
-
this.tracker.removeFromTracker(event.pointerId);
|
226
|
-
if (this.tracker.trackedPointersCount === 0) {
|
227
|
-
this.clearActivationTimeout();
|
228
|
-
}
|
229
|
-
if (this.state === State.ACTIVE) {
|
230
|
-
this.end();
|
231
|
-
}
|
232
|
-
else {
|
233
|
-
this.resetProgress();
|
234
|
-
this.fail();
|
235
|
-
}
|
236
|
-
}
|
237
|
-
onPointerRemove(event) {
|
238
|
-
super.onPointerRemove(event);
|
239
|
-
this.tracker.removeFromTracker(event.pointerId);
|
240
|
-
this.offsetX += this.lastX - this.startX;
|
241
|
-
this.offsetY += this.lastY - this.startY;
|
242
|
-
this.updateLastCoords();
|
243
|
-
this.startX = this.lastX;
|
244
|
-
this.startY = this.lastY;
|
245
|
-
if (!(this.state === State.ACTIVE &&
|
246
|
-
this.tracker.trackedPointersCount < this.minPointers)) {
|
247
|
-
this.checkBegan();
|
248
|
-
}
|
249
|
-
}
|
250
|
-
onPointerMove(event) {
|
251
|
-
this.tracker.track(event);
|
252
|
-
this.stylusData = event.stylusData;
|
253
|
-
this.updateLastCoords();
|
254
|
-
this.updateVelocity(event.pointerId);
|
255
|
-
this.checkBegan();
|
256
|
-
super.onPointerMove(event);
|
257
|
-
}
|
258
|
-
onPointerOutOfBounds(event) {
|
259
|
-
if (this.shouldCancelWhenOutside) {
|
260
|
-
return;
|
261
|
-
}
|
262
|
-
this.tracker.track(event);
|
263
|
-
this.stylusData = event.stylusData;
|
264
|
-
this.updateLastCoords();
|
265
|
-
this.updateVelocity(event.pointerId);
|
266
|
-
this.checkBegan();
|
267
|
-
if (this.state === State.ACTIVE) {
|
268
|
-
super.onPointerOutOfBounds(event);
|
269
|
-
}
|
270
|
-
}
|
271
|
-
scheduleWheelEnd(event) {
|
272
|
-
clearTimeout(this.endWheelTimeout);
|
273
|
-
this.endWheelTimeout = setTimeout(() => {
|
274
|
-
if (this.state === State.ACTIVE) {
|
275
|
-
this.end();
|
276
|
-
this.tracker.removeFromTracker(event.pointerId);
|
277
|
-
this.state = State.UNDETERMINED;
|
278
|
-
}
|
279
|
-
this.wheelDevice = WheelDevice.UNDETERMINED;
|
280
|
-
}, 30);
|
281
|
-
}
|
282
|
-
onWheel(event) {
|
283
|
-
if (this.wheelDevice === WheelDevice.MOUSE ||
|
284
|
-
!this.enableTrackpadTwoFingerGesture) {
|
285
|
-
return;
|
286
|
-
}
|
287
|
-
if (this.state === State.UNDETERMINED) {
|
288
|
-
this.wheelDevice =
|
289
|
-
event.wheelDeltaY % 120 !== 0
|
290
|
-
? WheelDevice.TOUCHPAD
|
291
|
-
: WheelDevice.MOUSE;
|
292
|
-
if (this.wheelDevice === WheelDevice.MOUSE) {
|
293
|
-
this.scheduleWheelEnd(event);
|
294
|
-
return;
|
295
|
-
}
|
296
|
-
this.tracker.addToTracker(event);
|
297
|
-
this.updateLastCoords();
|
298
|
-
this.startX = this.lastX;
|
299
|
-
this.startY = this.lastY;
|
300
|
-
this.begin();
|
301
|
-
this.activate();
|
302
|
-
}
|
303
|
-
this.tracker.track(event);
|
304
|
-
this.updateLastCoords();
|
305
|
-
this.updateVelocity(event.pointerId);
|
306
|
-
this.tryToSendMoveEvent(false, event);
|
307
|
-
this.scheduleWheelEnd(event);
|
308
|
-
}
|
309
|
-
shouldActivate() {
|
310
|
-
const dx = this.getTranslationX();
|
311
|
-
if (this.activeOffsetXStart !== Number.MAX_SAFE_INTEGER &&
|
312
|
-
dx < this.activeOffsetXStart) {
|
313
|
-
return true;
|
314
|
-
}
|
315
|
-
if (this.activeOffsetXEnd !== Number.MIN_SAFE_INTEGER &&
|
316
|
-
dx > this.activeOffsetXEnd) {
|
317
|
-
return true;
|
318
|
-
}
|
319
|
-
const dy = this.getTranslationY();
|
320
|
-
if (this.activeOffsetYStart !== Number.MAX_SAFE_INTEGER &&
|
321
|
-
dy < this.activeOffsetYStart) {
|
322
|
-
return true;
|
323
|
-
}
|
324
|
-
if (this.activeOffsetYEnd !== Number.MIN_SAFE_INTEGER &&
|
325
|
-
dy > this.activeOffsetYEnd) {
|
326
|
-
return true;
|
327
|
-
}
|
328
|
-
const distanceSq = dx * dx + dy * dy;
|
329
|
-
if (this.minDistSq !== Number.MAX_SAFE_INTEGER &&
|
330
|
-
distanceSq >= this.minDistSq) {
|
331
|
-
return true;
|
332
|
-
}
|
333
|
-
const vx = this.velocityX;
|
334
|
-
if (this.minVelocityX !== Number.MAX_SAFE_INTEGER &&
|
335
|
-
((this.minVelocityX < 0 && vx <= this.minVelocityX) ||
|
336
|
-
(this.minVelocityX >= 0 && this.minVelocityX <= vx))) {
|
337
|
-
return true;
|
338
|
-
}
|
339
|
-
const vy = this.velocityY;
|
340
|
-
if (this.minVelocityY !== Number.MAX_SAFE_INTEGER &&
|
341
|
-
((this.minVelocityY < 0 && vy <= this.minVelocityY) ||
|
342
|
-
(this.minVelocityY >= 0 && this.minVelocityY <= vy))) {
|
343
|
-
return true;
|
344
|
-
}
|
345
|
-
const velocitySq = vx * vx + vy * vy;
|
346
|
-
return (this.minVelocitySq !== Number.MAX_SAFE_INTEGER &&
|
347
|
-
velocitySq >= this.minVelocitySq);
|
348
|
-
}
|
349
|
-
shouldFail() {
|
350
|
-
const dx = this.getTranslationX();
|
351
|
-
const dy = this.getTranslationY();
|
352
|
-
const distanceSq = dx * dx + dy * dy;
|
353
|
-
if (this.activateAfterLongPress > 0 && distanceSq > DEFAULT_MIN_DIST_SQ) {
|
354
|
-
this.clearActivationTimeout();
|
355
|
-
return true;
|
356
|
-
}
|
357
|
-
if (this.failOffsetXStart !== Number.MIN_SAFE_INTEGER &&
|
358
|
-
dx < this.failOffsetXStart) {
|
359
|
-
return true;
|
360
|
-
}
|
361
|
-
if (this.failOffsetXEnd !== Number.MAX_SAFE_INTEGER &&
|
362
|
-
dx > this.failOffsetXEnd) {
|
363
|
-
return true;
|
364
|
-
}
|
365
|
-
if (this.failOffsetYStart !== Number.MIN_SAFE_INTEGER &&
|
366
|
-
dy < this.failOffsetYStart) {
|
367
|
-
return true;
|
368
|
-
}
|
369
|
-
return (this.failOffsetYEnd !== Number.MAX_SAFE_INTEGER &&
|
370
|
-
dy > this.failOffsetYEnd);
|
371
|
-
}
|
372
|
-
tryBegin(event) {
|
373
|
-
if (this.state === State.UNDETERMINED &&
|
374
|
-
this.tracker.trackedPointersCount >= this.minPointers) {
|
375
|
-
this.resetProgress();
|
376
|
-
this.offsetX = 0;
|
377
|
-
this.offsetY = 0;
|
378
|
-
this.velocityX = 0;
|
379
|
-
this.velocityY = 0;
|
380
|
-
this.begin();
|
381
|
-
if (this.activateAfterLongPress > 0) {
|
382
|
-
this.activationTimeout = setTimeout(() => {
|
383
|
-
this.activate();
|
384
|
-
}, this.activateAfterLongPress);
|
385
|
-
}
|
386
|
-
}
|
387
|
-
else {
|
388
|
-
this.updateVelocity(event.pointerId);
|
389
|
-
}
|
390
|
-
}
|
391
|
-
checkBegan() {
|
392
|
-
if (this.state === State.BEGAN) {
|
393
|
-
if (this.shouldFail()) {
|
394
|
-
this.fail();
|
395
|
-
}
|
396
|
-
else if (this.shouldActivate()) {
|
397
|
-
this.activate();
|
398
|
-
}
|
399
|
-
}
|
400
|
-
}
|
401
|
-
activate(force = false) {
|
402
|
-
if (this.state !== State.ACTIVE) {
|
403
|
-
this.resetProgress();
|
404
|
-
}
|
405
|
-
super.activate(force);
|
406
|
-
}
|
407
|
-
onCancel() {
|
408
|
-
this.clearActivationTimeout();
|
409
|
-
}
|
410
|
-
onReset() {
|
411
|
-
this.clearActivationTimeout();
|
412
|
-
}
|
413
|
-
resetProgress() {
|
414
|
-
if (this.state === State.ACTIVE) {
|
415
|
-
return;
|
416
|
-
}
|
417
|
-
this.startX = this.lastX;
|
418
|
-
this.startY = this.lastY;
|
419
|
-
}
|
420
|
-
}
|
@@ -1,117 +0,0 @@
|
|
1
|
-
import { State } from '../../State';
|
2
|
-
import { DEFAULT_TOUCH_SLOP } from '../constants';
|
3
|
-
import GestureHandler from './GestureHandler';
|
4
|
-
import ScaleGestureDetector from '../detectors/ScaleGestureDetector';
|
5
|
-
export default class PinchGestureHandler extends GestureHandler {
|
6
|
-
scale = 1;
|
7
|
-
velocity = 0;
|
8
|
-
startingSpan = 0;
|
9
|
-
spanSlop = DEFAULT_TOUCH_SLOP;
|
10
|
-
scaleDetectorListener = {
|
11
|
-
onScaleBegin: (detector) => {
|
12
|
-
this.startingSpan = detector.currentSpan;
|
13
|
-
return true;
|
14
|
-
},
|
15
|
-
onScale: (detector) => {
|
16
|
-
const prevScaleFactor = this.scale;
|
17
|
-
this.scale *= detector.calculateScaleFactor(this.tracker.trackedPointersCount);
|
18
|
-
const delta = detector.timeDelta;
|
19
|
-
if (delta > 0) {
|
20
|
-
this.velocity = (this.scale - prevScaleFactor) / delta;
|
21
|
-
}
|
22
|
-
if (Math.abs(this.startingSpan - detector.currentSpan) >= this.spanSlop &&
|
23
|
-
this.state === State.BEGAN) {
|
24
|
-
this.activate();
|
25
|
-
}
|
26
|
-
return true;
|
27
|
-
},
|
28
|
-
onScaleEnd: (_detector
|
29
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
30
|
-
) => { },
|
31
|
-
};
|
32
|
-
scaleGestureDetector = new ScaleGestureDetector(this.scaleDetectorListener);
|
33
|
-
init(ref, propsRef) {
|
34
|
-
super.init(ref, propsRef);
|
35
|
-
this.shouldCancelWhenOutside = false;
|
36
|
-
}
|
37
|
-
transformNativeEvent() {
|
38
|
-
return {
|
39
|
-
focalX: this.scaleGestureDetector.focusX,
|
40
|
-
focalY: this.scaleGestureDetector.focusY,
|
41
|
-
velocity: this.velocity,
|
42
|
-
scale: this.scale,
|
43
|
-
};
|
44
|
-
}
|
45
|
-
onPointerDown(event) {
|
46
|
-
this.tracker.addToTracker(event);
|
47
|
-
super.onPointerDown(event);
|
48
|
-
this.tryToSendTouchEvent(event);
|
49
|
-
}
|
50
|
-
onPointerAdd(event) {
|
51
|
-
this.tracker.addToTracker(event);
|
52
|
-
super.onPointerAdd(event);
|
53
|
-
this.tryBegin();
|
54
|
-
this.scaleGestureDetector.onTouchEvent(event, this.tracker);
|
55
|
-
}
|
56
|
-
onPointerUp(event) {
|
57
|
-
super.onPointerUp(event);
|
58
|
-
this.tracker.removeFromTracker(event.pointerId);
|
59
|
-
if (this.state !== State.ACTIVE) {
|
60
|
-
return;
|
61
|
-
}
|
62
|
-
this.scaleGestureDetector.onTouchEvent(event, this.tracker);
|
63
|
-
if (this.state === State.ACTIVE) {
|
64
|
-
this.end();
|
65
|
-
}
|
66
|
-
else {
|
67
|
-
this.fail();
|
68
|
-
}
|
69
|
-
}
|
70
|
-
onPointerRemove(event) {
|
71
|
-
super.onPointerRemove(event);
|
72
|
-
this.scaleGestureDetector.onTouchEvent(event, this.tracker);
|
73
|
-
this.tracker.removeFromTracker(event.pointerId);
|
74
|
-
if (this.state === State.ACTIVE && this.tracker.trackedPointersCount < 2) {
|
75
|
-
this.end();
|
76
|
-
}
|
77
|
-
}
|
78
|
-
onPointerMove(event) {
|
79
|
-
if (this.tracker.trackedPointersCount < 2) {
|
80
|
-
return;
|
81
|
-
}
|
82
|
-
this.tracker.track(event);
|
83
|
-
this.scaleGestureDetector.onTouchEvent(event, this.tracker);
|
84
|
-
super.onPointerMove(event);
|
85
|
-
}
|
86
|
-
onPointerOutOfBounds(event) {
|
87
|
-
if (this.tracker.trackedPointersCount < 2) {
|
88
|
-
return;
|
89
|
-
}
|
90
|
-
this.tracker.track(event);
|
91
|
-
this.scaleGestureDetector.onTouchEvent(event, this.tracker);
|
92
|
-
super.onPointerOutOfBounds(event);
|
93
|
-
}
|
94
|
-
tryBegin() {
|
95
|
-
if (this.state !== State.UNDETERMINED) {
|
96
|
-
return;
|
97
|
-
}
|
98
|
-
this.resetProgress();
|
99
|
-
this.begin();
|
100
|
-
}
|
101
|
-
activate(force) {
|
102
|
-
if (this.state !== State.ACTIVE) {
|
103
|
-
this.resetProgress();
|
104
|
-
}
|
105
|
-
super.activate(force);
|
106
|
-
}
|
107
|
-
onReset() {
|
108
|
-
this.resetProgress();
|
109
|
-
}
|
110
|
-
resetProgress() {
|
111
|
-
if (this.state === State.ACTIVE) {
|
112
|
-
return;
|
113
|
-
}
|
114
|
-
this.velocity = 0;
|
115
|
-
this.scale = 1;
|
116
|
-
}
|
117
|
-
}
|
@@ -1,122 +0,0 @@
|
|
1
|
-
import { State } from '../../State';
|
2
|
-
import GestureHandler from './GestureHandler';
|
3
|
-
import RotationGestureDetector from '../detectors/RotationGestureDetector';
|
4
|
-
const ROTATION_RECOGNITION_THRESHOLD = Math.PI / 36;
|
5
|
-
export default class RotationGestureHandler extends GestureHandler {
|
6
|
-
rotation = 0;
|
7
|
-
velocity = 0;
|
8
|
-
cachedAnchorX = 0;
|
9
|
-
cachedAnchorY = 0;
|
10
|
-
rotationGestureListener = {
|
11
|
-
onRotationBegin: (_detector) => true,
|
12
|
-
onRotation: (detector) => {
|
13
|
-
const previousRotation = this.rotation;
|
14
|
-
this.rotation += detector.rotation;
|
15
|
-
const delta = detector.timeDelta;
|
16
|
-
if (delta > 0) {
|
17
|
-
this.velocity = (this.rotation - previousRotation) / delta;
|
18
|
-
}
|
19
|
-
if (Math.abs(this.rotation) >= ROTATION_RECOGNITION_THRESHOLD &&
|
20
|
-
this.state === State.BEGAN) {
|
21
|
-
this.activate();
|
22
|
-
}
|
23
|
-
return true;
|
24
|
-
},
|
25
|
-
onRotationEnd: (_detector) => {
|
26
|
-
this.end();
|
27
|
-
},
|
28
|
-
};
|
29
|
-
rotationGestureDetector = new RotationGestureDetector(this.rotationGestureListener);
|
30
|
-
init(ref, propsRef) {
|
31
|
-
super.init(ref, propsRef);
|
32
|
-
this.shouldCancelWhenOutside = false;
|
33
|
-
}
|
34
|
-
transformNativeEvent() {
|
35
|
-
return {
|
36
|
-
rotation: this.rotation ? this.rotation : 0,
|
37
|
-
anchorX: this.getAnchorX(),
|
38
|
-
anchorY: this.getAnchorY(),
|
39
|
-
velocity: this.velocity ? this.velocity : 0,
|
40
|
-
};
|
41
|
-
}
|
42
|
-
getAnchorX() {
|
43
|
-
const anchorX = this.rotationGestureDetector.anchorX;
|
44
|
-
return anchorX ? anchorX : this.cachedAnchorX;
|
45
|
-
}
|
46
|
-
getAnchorY() {
|
47
|
-
const anchorY = this.rotationGestureDetector.anchorY;
|
48
|
-
return anchorY ? anchorY : this.cachedAnchorY;
|
49
|
-
}
|
50
|
-
onPointerDown(event) {
|
51
|
-
this.tracker.addToTracker(event);
|
52
|
-
super.onPointerDown(event);
|
53
|
-
this.tryToSendTouchEvent(event);
|
54
|
-
}
|
55
|
-
onPointerAdd(event) {
|
56
|
-
this.tracker.addToTracker(event);
|
57
|
-
super.onPointerAdd(event);
|
58
|
-
this.tryBegin();
|
59
|
-
this.rotationGestureDetector.onTouchEvent(event, this.tracker);
|
60
|
-
}
|
61
|
-
onPointerMove(event) {
|
62
|
-
if (this.tracker.trackedPointersCount < 2) {
|
63
|
-
return;
|
64
|
-
}
|
65
|
-
if (this.getAnchorX()) {
|
66
|
-
this.cachedAnchorX = this.getAnchorX();
|
67
|
-
}
|
68
|
-
if (this.getAnchorY()) {
|
69
|
-
this.cachedAnchorY = this.getAnchorY();
|
70
|
-
}
|
71
|
-
this.tracker.track(event);
|
72
|
-
this.rotationGestureDetector.onTouchEvent(event, this.tracker);
|
73
|
-
super.onPointerMove(event);
|
74
|
-
}
|
75
|
-
onPointerOutOfBounds(event) {
|
76
|
-
if (this.tracker.trackedPointersCount < 2) {
|
77
|
-
return;
|
78
|
-
}
|
79
|
-
if (this.getAnchorX()) {
|
80
|
-
this.cachedAnchorX = this.getAnchorX();
|
81
|
-
}
|
82
|
-
if (this.getAnchorY()) {
|
83
|
-
this.cachedAnchorY = this.getAnchorY();
|
84
|
-
}
|
85
|
-
this.tracker.track(event);
|
86
|
-
this.rotationGestureDetector.onTouchEvent(event, this.tracker);
|
87
|
-
super.onPointerOutOfBounds(event);
|
88
|
-
}
|
89
|
-
onPointerUp(event) {
|
90
|
-
super.onPointerUp(event);
|
91
|
-
this.tracker.removeFromTracker(event.pointerId);
|
92
|
-
this.rotationGestureDetector.onTouchEvent(event, this.tracker);
|
93
|
-
if (this.state !== State.ACTIVE) {
|
94
|
-
return;
|
95
|
-
}
|
96
|
-
if (this.state === State.ACTIVE) {
|
97
|
-
this.end();
|
98
|
-
}
|
99
|
-
else {
|
100
|
-
this.fail();
|
101
|
-
}
|
102
|
-
}
|
103
|
-
onPointerRemove(event) {
|
104
|
-
super.onPointerRemove(event);
|
105
|
-
this.rotationGestureDetector.onTouchEvent(event, this.tracker);
|
106
|
-
this.tracker.removeFromTracker(event.pointerId);
|
107
|
-
}
|
108
|
-
tryBegin() {
|
109
|
-
if (this.state !== State.UNDETERMINED) {
|
110
|
-
return;
|
111
|
-
}
|
112
|
-
this.begin();
|
113
|
-
}
|
114
|
-
onReset() {
|
115
|
-
if (this.state === State.ACTIVE) {
|
116
|
-
return;
|
117
|
-
}
|
118
|
-
this.rotation = 0;
|
119
|
-
this.velocity = 0;
|
120
|
-
this.rotationGestureDetector.reset();
|
121
|
-
}
|
122
|
-
}
|