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
package/lib/typescript/utils.js
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
export function toArray(object) {
|
3
|
-
if (!Array.isArray(object)) {
|
4
|
-
return [object];
|
5
|
-
}
|
6
|
-
return object;
|
7
|
-
}
|
8
|
-
export function withPrevAndCurrent(array, mapFn) {
|
9
|
-
const previousArr = [null];
|
10
|
-
const currentArr = [...array];
|
11
|
-
const transformedArr = [];
|
12
|
-
currentArr.forEach((current, i) => {
|
13
|
-
// This type cast is fine and solves problem mentioned in https://github.com/software-mansion/react-native-gesture-handler/pull/2867 (namely that `previous` can be undefined).
|
14
|
-
// Unfortunately, linter on our CI does not allow this type of casting as it is unnecessary. To bypass that we use eslint-disable.
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
16
|
-
const previous = previousArr[i];
|
17
|
-
const transformed = mapFn(previous, current);
|
18
|
-
previousArr.push(transformed);
|
19
|
-
transformedArr.push(transformed);
|
20
|
-
});
|
21
|
-
return transformedArr;
|
22
|
-
}
|
23
|
-
export function hasProperty(object, key) {
|
24
|
-
return Object.prototype.hasOwnProperty.call(object, key);
|
25
|
-
}
|
26
|
-
export function isTestEnv() {
|
27
|
-
// @ts-ignore Do not use `@types/node` because it will prioritise Node types over RN types which breaks the types (ex. setTimeout) in React Native projects.
|
28
|
-
return hasProperty(global, 'process') && process.env.NODE_ENV === 'test';
|
29
|
-
}
|
30
|
-
export function tagMessage(msg) {
|
31
|
-
return `[react-native-gesture-handler] ${msg}`;
|
32
|
-
}
|
33
|
-
// Helper method to check whether Fabric is enabled, however global.nativeFabricUIManager
|
34
|
-
// may not be initialized before the first render
|
35
|
-
export function isFabric() {
|
36
|
-
// @ts-expect-error nativeFabricUIManager is not yet included in the RN types
|
37
|
-
return !!global?.nativeFabricUIManager;
|
38
|
-
}
|
39
|
-
export function isReact19() {
|
40
|
-
return React.version.startsWith('19.');
|
41
|
-
}
|
42
|
-
export function isRemoteDebuggingEnabled() {
|
43
|
-
// react-native-reanimated checks if in remote debugging in the same way
|
44
|
-
// @ts-ignore global is available but node types are not included
|
45
|
-
const localGlobal = global;
|
46
|
-
return ((!localGlobal.nativeCallSyncHook || !!localGlobal.__REMOTEDEV__) &&
|
47
|
-
!localGlobal.RN$Bridgeless);
|
48
|
-
}
|
49
|
-
/**
|
50
|
-
* Recursively compares two objects for deep equality.
|
51
|
-
*
|
52
|
-
* **Note:** This function does not support cyclic references.
|
53
|
-
*
|
54
|
-
* @param obj1 - The first object to compare.
|
55
|
-
* @param obj2 - The second object to compare.
|
56
|
-
* @returns `true` if the objects are deeply equal, `false` otherwise.
|
57
|
-
*/
|
58
|
-
export function deepEqual(obj1, obj2) {
|
59
|
-
if (obj1 === obj2) {
|
60
|
-
return true;
|
61
|
-
}
|
62
|
-
if (typeof obj1 !== 'object' ||
|
63
|
-
typeof obj2 !== 'object' ||
|
64
|
-
obj1 === null ||
|
65
|
-
obj2 === null) {
|
66
|
-
return false;
|
67
|
-
}
|
68
|
-
const keys1 = Object.keys(obj1);
|
69
|
-
const keys2 = Object.keys(obj2);
|
70
|
-
if (keys1.length !== keys2.length) {
|
71
|
-
return false;
|
72
|
-
}
|
73
|
-
for (const key of keys1) {
|
74
|
-
if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) {
|
75
|
-
return false;
|
76
|
-
}
|
77
|
-
}
|
78
|
-
return true;
|
79
|
-
}
|
80
|
-
export const INT32_MAX = 2 ** 31 - 1;
|
@@ -1,38 +0,0 @@
|
|
1
|
-
// Gesture Handlers
|
2
|
-
import PanGestureHandler from './handlers/PanGestureHandler';
|
3
|
-
import TapGestureHandler from './handlers/TapGestureHandler';
|
4
|
-
import LongPressGestureHandler from './handlers/LongPressGestureHandler';
|
5
|
-
import PinchGestureHandler from './handlers/PinchGestureHandler';
|
6
|
-
import RotationGestureHandler from './handlers/RotationGestureHandler';
|
7
|
-
import FlingGestureHandler from './handlers/FlingGestureHandler';
|
8
|
-
import NativeViewGestureHandler from './handlers/NativeViewGestureHandler';
|
9
|
-
import ManualGestureHandler from './handlers/ManualGestureHandler';
|
10
|
-
import HoverGestureHandler from './handlers/HoverGestureHandler';
|
11
|
-
// Hammer Handlers
|
12
|
-
import HammerNativeViewGestureHandler from '../web_hammer/NativeViewGestureHandler';
|
13
|
-
import HammerPanGestureHandler from '../web_hammer/PanGestureHandler';
|
14
|
-
import HammerTapGestureHandler from '../web_hammer/TapGestureHandler';
|
15
|
-
import HammerLongPressGestureHandler from '../web_hammer/LongPressGestureHandler';
|
16
|
-
import HammerPinchGestureHandler from '../web_hammer/PinchGestureHandler';
|
17
|
-
import HammerRotationGestureHandler from '../web_hammer/RotationGestureHandler';
|
18
|
-
import HammerFlingGestureHandler from '../web_hammer/FlingGestureHandler';
|
19
|
-
export const Gestures = {
|
20
|
-
NativeViewGestureHandler,
|
21
|
-
PanGestureHandler,
|
22
|
-
TapGestureHandler,
|
23
|
-
LongPressGestureHandler,
|
24
|
-
PinchGestureHandler,
|
25
|
-
RotationGestureHandler,
|
26
|
-
FlingGestureHandler,
|
27
|
-
ManualGestureHandler,
|
28
|
-
HoverGestureHandler,
|
29
|
-
};
|
30
|
-
export const HammerGestures = {
|
31
|
-
NativeViewGestureHandler: HammerNativeViewGestureHandler,
|
32
|
-
PanGestureHandler: HammerPanGestureHandler,
|
33
|
-
TapGestureHandler: HammerTapGestureHandler,
|
34
|
-
LongPressGestureHandler: HammerLongPressGestureHandler,
|
35
|
-
PinchGestureHandler: HammerPinchGestureHandler,
|
36
|
-
RotationGestureHandler: HammerRotationGestureHandler,
|
37
|
-
FlingGestureHandler: HammerFlingGestureHandler,
|
38
|
-
};
|
@@ -1,122 +0,0 @@
|
|
1
|
-
import { EventTypes } from '../interfaces';
|
2
|
-
export default class RotationGestureDetector {
|
3
|
-
onRotationBegin;
|
4
|
-
onRotation;
|
5
|
-
onRotationEnd;
|
6
|
-
currentTime = 0;
|
7
|
-
previousTime = 0;
|
8
|
-
previousAngle = 0;
|
9
|
-
_rotation = 0;
|
10
|
-
_anchorX = 0;
|
11
|
-
_anchorY = 0;
|
12
|
-
isInProgress = false;
|
13
|
-
keyPointers = [NaN, NaN];
|
14
|
-
constructor(callbacks) {
|
15
|
-
this.onRotationBegin = callbacks.onRotationBegin;
|
16
|
-
this.onRotation = callbacks.onRotation;
|
17
|
-
this.onRotationEnd = callbacks.onRotationEnd;
|
18
|
-
}
|
19
|
-
updateCurrent(event, tracker) {
|
20
|
-
this.previousTime = this.currentTime;
|
21
|
-
this.currentTime = event.time;
|
22
|
-
const [firstPointerID, secondPointerID] = this.keyPointers;
|
23
|
-
const firstPointerCoords = tracker.getLastAbsoluteCoords(firstPointerID);
|
24
|
-
const secondPointerCoords = tracker.getLastAbsoluteCoords(secondPointerID);
|
25
|
-
if (!firstPointerCoords || !secondPointerCoords) {
|
26
|
-
return;
|
27
|
-
}
|
28
|
-
const vectorX = secondPointerCoords.x - firstPointerCoords.x;
|
29
|
-
const vectorY = secondPointerCoords.y - firstPointerCoords.y;
|
30
|
-
this._anchorX = (firstPointerCoords.x + secondPointerCoords.x) / 2;
|
31
|
-
this._anchorY = (firstPointerCoords.y + secondPointerCoords.y) / 2;
|
32
|
-
// Angle diff should be positive when rotating in clockwise direction
|
33
|
-
const angle = -Math.atan2(vectorY, vectorX);
|
34
|
-
this._rotation = Number.isNaN(this.previousAngle)
|
35
|
-
? 0
|
36
|
-
: this.previousAngle - angle;
|
37
|
-
this.previousAngle = angle;
|
38
|
-
if (this.rotation > Math.PI) {
|
39
|
-
this._rotation -= Math.PI;
|
40
|
-
}
|
41
|
-
else if (this.rotation < -Math.PI) {
|
42
|
-
this._rotation += Math.PI;
|
43
|
-
}
|
44
|
-
if (this.rotation > Math.PI / 2) {
|
45
|
-
this._rotation -= Math.PI;
|
46
|
-
}
|
47
|
-
else if (this.rotation < -Math.PI / 2) {
|
48
|
-
this._rotation += Math.PI;
|
49
|
-
}
|
50
|
-
}
|
51
|
-
finish() {
|
52
|
-
if (!this.isInProgress) {
|
53
|
-
return;
|
54
|
-
}
|
55
|
-
this.isInProgress = false;
|
56
|
-
this.keyPointers = [NaN, NaN];
|
57
|
-
this.onRotationEnd(this);
|
58
|
-
}
|
59
|
-
setKeyPointers(tracker) {
|
60
|
-
if (this.keyPointers[0] && this.keyPointers[1]) {
|
61
|
-
return;
|
62
|
-
}
|
63
|
-
const pointerIDs = tracker.trackedPointers.keys();
|
64
|
-
this.keyPointers[0] = pointerIDs.next().value;
|
65
|
-
this.keyPointers[1] = pointerIDs.next().value;
|
66
|
-
}
|
67
|
-
onTouchEvent(event, tracker) {
|
68
|
-
switch (event.eventType) {
|
69
|
-
case EventTypes.DOWN:
|
70
|
-
this.isInProgress = false;
|
71
|
-
break;
|
72
|
-
case EventTypes.ADDITIONAL_POINTER_DOWN:
|
73
|
-
if (this.isInProgress) {
|
74
|
-
break;
|
75
|
-
}
|
76
|
-
this.isInProgress = true;
|
77
|
-
this.previousTime = event.time;
|
78
|
-
this.previousAngle = NaN;
|
79
|
-
this.setKeyPointers(tracker);
|
80
|
-
this.updateCurrent(event, tracker);
|
81
|
-
this.onRotationBegin(this);
|
82
|
-
break;
|
83
|
-
case EventTypes.MOVE:
|
84
|
-
if (!this.isInProgress) {
|
85
|
-
break;
|
86
|
-
}
|
87
|
-
this.updateCurrent(event, tracker);
|
88
|
-
this.onRotation(this);
|
89
|
-
break;
|
90
|
-
case EventTypes.ADDITIONAL_POINTER_UP:
|
91
|
-
if (!this.isInProgress) {
|
92
|
-
break;
|
93
|
-
}
|
94
|
-
if (this.keyPointers.indexOf(event.pointerId) >= 0) {
|
95
|
-
this.finish();
|
96
|
-
}
|
97
|
-
break;
|
98
|
-
case EventTypes.UP:
|
99
|
-
if (this.isInProgress) {
|
100
|
-
this.finish();
|
101
|
-
}
|
102
|
-
break;
|
103
|
-
}
|
104
|
-
return true;
|
105
|
-
}
|
106
|
-
reset() {
|
107
|
-
this.keyPointers = [NaN, NaN];
|
108
|
-
this.isInProgress = false;
|
109
|
-
}
|
110
|
-
get anchorX() {
|
111
|
-
return this._anchorX;
|
112
|
-
}
|
113
|
-
get anchorY() {
|
114
|
-
return this._anchorY;
|
115
|
-
}
|
116
|
-
get rotation() {
|
117
|
-
return this._rotation;
|
118
|
-
}
|
119
|
-
get timeDelta() {
|
120
|
-
return this.currentTime + this.previousTime;
|
121
|
-
}
|
122
|
-
}
|
@@ -1,117 +0,0 @@
|
|
1
|
-
import { DEFAULT_TOUCH_SLOP } from '../constants';
|
2
|
-
import { EventTypes } from '../interfaces';
|
3
|
-
export default class ScaleGestureDetector {
|
4
|
-
onScaleBegin;
|
5
|
-
onScale;
|
6
|
-
onScaleEnd;
|
7
|
-
_focusX;
|
8
|
-
_focusY;
|
9
|
-
_currentSpan;
|
10
|
-
prevSpan;
|
11
|
-
initialSpan;
|
12
|
-
currentTime;
|
13
|
-
prevTime;
|
14
|
-
inProgress = false;
|
15
|
-
spanSlop;
|
16
|
-
minSpan;
|
17
|
-
constructor(callbacks) {
|
18
|
-
this.onScaleBegin = callbacks.onScaleBegin;
|
19
|
-
this.onScale = callbacks.onScale;
|
20
|
-
this.onScaleEnd = callbacks.onScaleEnd;
|
21
|
-
this.spanSlop = DEFAULT_TOUCH_SLOP * 2;
|
22
|
-
this.minSpan = 0;
|
23
|
-
}
|
24
|
-
onTouchEvent(event, tracker) {
|
25
|
-
this.currentTime = event.time;
|
26
|
-
const action = event.eventType;
|
27
|
-
const numOfPointers = tracker.trackedPointersCount;
|
28
|
-
const streamComplete = action === EventTypes.UP ||
|
29
|
-
action === EventTypes.ADDITIONAL_POINTER_UP ||
|
30
|
-
action === EventTypes.CANCEL;
|
31
|
-
if (action === EventTypes.DOWN || streamComplete) {
|
32
|
-
if (this.inProgress) {
|
33
|
-
this.onScaleEnd(this);
|
34
|
-
this.inProgress = false;
|
35
|
-
this.initialSpan = 0;
|
36
|
-
}
|
37
|
-
if (streamComplete) {
|
38
|
-
return true;
|
39
|
-
}
|
40
|
-
}
|
41
|
-
const configChanged = action === EventTypes.DOWN ||
|
42
|
-
action === EventTypes.ADDITIONAL_POINTER_UP ||
|
43
|
-
action === EventTypes.ADDITIONAL_POINTER_DOWN;
|
44
|
-
const pointerUp = action === EventTypes.ADDITIONAL_POINTER_UP;
|
45
|
-
const ignoredPointer = pointerUp
|
46
|
-
? event.pointerId
|
47
|
-
: undefined;
|
48
|
-
// Determine focal point
|
49
|
-
const div = pointerUp ? numOfPointers - 1 : numOfPointers;
|
50
|
-
const coordsSum = tracker.getAbsoluteCoordsSum();
|
51
|
-
const focusX = coordsSum.x / div;
|
52
|
-
const focusY = coordsSum.y / div;
|
53
|
-
// Determine average deviation from focal point
|
54
|
-
let devSumX = 0;
|
55
|
-
let devSumY = 0;
|
56
|
-
tracker.trackedPointers.forEach((value, key) => {
|
57
|
-
if (key === ignoredPointer) {
|
58
|
-
return;
|
59
|
-
}
|
60
|
-
devSumX += Math.abs(value.abosoluteCoords.x - focusX);
|
61
|
-
devSumY += Math.abs(value.abosoluteCoords.y - focusY);
|
62
|
-
});
|
63
|
-
const devX = devSumX / div;
|
64
|
-
const devY = devSumY / div;
|
65
|
-
const spanX = devX * 2;
|
66
|
-
const spanY = devY * 2;
|
67
|
-
const span = Math.hypot(spanX, spanY);
|
68
|
-
// Begin/end events
|
69
|
-
const wasInProgress = this.inProgress;
|
70
|
-
this._focusX = focusX;
|
71
|
-
this._focusY = focusY;
|
72
|
-
if (this.inProgress && (span < this.minSpan || configChanged)) {
|
73
|
-
this.onScaleEnd(this);
|
74
|
-
this.inProgress = false;
|
75
|
-
this.initialSpan = span;
|
76
|
-
}
|
77
|
-
if (configChanged) {
|
78
|
-
this.initialSpan = this.prevSpan = this._currentSpan = span;
|
79
|
-
}
|
80
|
-
if (!this.inProgress &&
|
81
|
-
span >= this.minSpan &&
|
82
|
-
(wasInProgress || Math.abs(span - this.initialSpan) > this.spanSlop)) {
|
83
|
-
this.prevSpan = this._currentSpan = span;
|
84
|
-
this.prevTime = this.currentTime;
|
85
|
-
this.inProgress = this.onScaleBegin(this);
|
86
|
-
}
|
87
|
-
// Handle motion
|
88
|
-
if (action !== EventTypes.MOVE) {
|
89
|
-
return true;
|
90
|
-
}
|
91
|
-
this._currentSpan = span;
|
92
|
-
if (this.inProgress && !this.onScale(this)) {
|
93
|
-
return true;
|
94
|
-
}
|
95
|
-
this.prevSpan = this.currentSpan;
|
96
|
-
this.prevTime = this.currentTime;
|
97
|
-
return true;
|
98
|
-
}
|
99
|
-
calculateScaleFactor(numOfPointers) {
|
100
|
-
if (numOfPointers < 2) {
|
101
|
-
return 1;
|
102
|
-
}
|
103
|
-
return this.prevSpan > 0 ? this.currentSpan / this.prevSpan : 1;
|
104
|
-
}
|
105
|
-
get currentSpan() {
|
106
|
-
return this._currentSpan;
|
107
|
-
}
|
108
|
-
get focusX() {
|
109
|
-
return this._focusX;
|
110
|
-
}
|
111
|
-
get focusY() {
|
112
|
-
return this._focusY;
|
113
|
-
}
|
114
|
-
get timeDelta() {
|
115
|
-
return this.currentTime - this.prevTime;
|
116
|
-
}
|
117
|
-
}
|
@@ -1,133 +0,0 @@
|
|
1
|
-
import { State } from '../../State';
|
2
|
-
import { DiagonalDirections, Directions } from '../../Directions';
|
3
|
-
import GestureHandler from './GestureHandler';
|
4
|
-
import Vector from '../tools/Vector';
|
5
|
-
import { coneToDeviation } from '../utils';
|
6
|
-
const DEFAULT_MAX_DURATION_MS = 800;
|
7
|
-
const DEFAULT_MIN_VELOCITY = 700;
|
8
|
-
const DEFAULT_ALIGNMENT_CONE = 30;
|
9
|
-
const DEFAULT_DIRECTION = Directions.RIGHT;
|
10
|
-
const DEFAULT_NUMBER_OF_TOUCHES_REQUIRED = 1;
|
11
|
-
const AXIAL_DEVIATION_COSINE = coneToDeviation(DEFAULT_ALIGNMENT_CONE);
|
12
|
-
const DIAGONAL_DEVIATION_COSINE = coneToDeviation(90 - DEFAULT_ALIGNMENT_CONE);
|
13
|
-
export default class FlingGestureHandler extends GestureHandler {
|
14
|
-
numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;
|
15
|
-
direction = DEFAULT_DIRECTION;
|
16
|
-
maxDurationMs = DEFAULT_MAX_DURATION_MS;
|
17
|
-
minVelocity = DEFAULT_MIN_VELOCITY;
|
18
|
-
delayTimeout;
|
19
|
-
maxNumberOfPointersSimultaneously = 0;
|
20
|
-
keyPointer = NaN;
|
21
|
-
updateGestureConfig({ enabled = true, ...props }) {
|
22
|
-
super.updateGestureConfig({ enabled: enabled, ...props });
|
23
|
-
if (this.config.direction) {
|
24
|
-
this.direction = this.config.direction;
|
25
|
-
}
|
26
|
-
if (this.config.numberOfPointers) {
|
27
|
-
this.numberOfPointersRequired = this.config.numberOfPointers;
|
28
|
-
}
|
29
|
-
}
|
30
|
-
startFling() {
|
31
|
-
this.begin();
|
32
|
-
this.maxNumberOfPointersSimultaneously = 1;
|
33
|
-
this.delayTimeout = setTimeout(() => this.fail(), this.maxDurationMs);
|
34
|
-
}
|
35
|
-
tryEndFling() {
|
36
|
-
const velocityVector = Vector.fromVelocity(this.tracker, this.keyPointer);
|
37
|
-
if (!velocityVector) {
|
38
|
-
return false;
|
39
|
-
}
|
40
|
-
const getAlignment = (direction, minimalAlignmentCosine) => {
|
41
|
-
return ((direction & this.direction) === direction &&
|
42
|
-
velocityVector.isSimilar(Vector.fromDirection(direction), minimalAlignmentCosine));
|
43
|
-
};
|
44
|
-
const axialDirectionsList = Object.values(Directions);
|
45
|
-
const diagonalDirectionsList = Object.values(DiagonalDirections);
|
46
|
-
// List of alignments to all activated directions
|
47
|
-
const axialAlignmentList = axialDirectionsList.map((direction) => getAlignment(direction, AXIAL_DEVIATION_COSINE));
|
48
|
-
const diagonalAlignmentList = diagonalDirectionsList.map((direction) => getAlignment(direction, DIAGONAL_DEVIATION_COSINE));
|
49
|
-
const isAligned = axialAlignmentList.some(Boolean) || diagonalAlignmentList.some(Boolean);
|
50
|
-
const isFast = velocityVector.magnitude > this.minVelocity;
|
51
|
-
if (this.maxNumberOfPointersSimultaneously ===
|
52
|
-
this.numberOfPointersRequired &&
|
53
|
-
isAligned &&
|
54
|
-
isFast) {
|
55
|
-
clearTimeout(this.delayTimeout);
|
56
|
-
this.activate();
|
57
|
-
return true;
|
58
|
-
}
|
59
|
-
return false;
|
60
|
-
}
|
61
|
-
endFling() {
|
62
|
-
if (!this.tryEndFling()) {
|
63
|
-
this.fail();
|
64
|
-
}
|
65
|
-
}
|
66
|
-
onPointerDown(event) {
|
67
|
-
if (!this.isButtonInConfig(event.button)) {
|
68
|
-
return;
|
69
|
-
}
|
70
|
-
this.tracker.addToTracker(event);
|
71
|
-
this.keyPointer = event.pointerId;
|
72
|
-
super.onPointerDown(event);
|
73
|
-
this.newPointerAction();
|
74
|
-
this.tryToSendTouchEvent(event);
|
75
|
-
}
|
76
|
-
onPointerAdd(event) {
|
77
|
-
this.tracker.addToTracker(event);
|
78
|
-
super.onPointerAdd(event);
|
79
|
-
this.newPointerAction();
|
80
|
-
}
|
81
|
-
newPointerAction() {
|
82
|
-
if (this.state === State.UNDETERMINED) {
|
83
|
-
this.startFling();
|
84
|
-
}
|
85
|
-
if (this.state !== State.BEGAN) {
|
86
|
-
return;
|
87
|
-
}
|
88
|
-
this.tryEndFling();
|
89
|
-
if (this.tracker.trackedPointersCount > this.maxNumberOfPointersSimultaneously) {
|
90
|
-
this.maxNumberOfPointersSimultaneously =
|
91
|
-
this.tracker.trackedPointersCount;
|
92
|
-
}
|
93
|
-
}
|
94
|
-
pointerMoveAction(event) {
|
95
|
-
this.tracker.track(event);
|
96
|
-
if (this.state !== State.BEGAN) {
|
97
|
-
return;
|
98
|
-
}
|
99
|
-
this.tryEndFling();
|
100
|
-
}
|
101
|
-
onPointerMove(event) {
|
102
|
-
this.pointerMoveAction(event);
|
103
|
-
super.onPointerMove(event);
|
104
|
-
}
|
105
|
-
onPointerOutOfBounds(event) {
|
106
|
-
this.pointerMoveAction(event);
|
107
|
-
super.onPointerOutOfBounds(event);
|
108
|
-
}
|
109
|
-
onPointerUp(event) {
|
110
|
-
super.onPointerUp(event);
|
111
|
-
this.onUp(event);
|
112
|
-
this.keyPointer = NaN;
|
113
|
-
}
|
114
|
-
onPointerRemove(event) {
|
115
|
-
super.onPointerRemove(event);
|
116
|
-
this.onUp(event);
|
117
|
-
}
|
118
|
-
onUp(event) {
|
119
|
-
if (this.state === State.BEGAN) {
|
120
|
-
this.endFling();
|
121
|
-
}
|
122
|
-
this.tracker.removeFromTracker(event.pointerId);
|
123
|
-
}
|
124
|
-
activate(force) {
|
125
|
-
super.activate(force);
|
126
|
-
this.end();
|
127
|
-
}
|
128
|
-
resetConfig() {
|
129
|
-
super.resetConfig();
|
130
|
-
this.numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;
|
131
|
-
this.direction = DEFAULT_DIRECTION;
|
132
|
-
}
|
133
|
-
}
|