@amazon-devices/react-native-gesture-handler 4.0.1 → 4.0.2
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/kepler-compatibility.json +2 -1
- package/lib/commonjs/index.js +0 -268
- package/package.json +1 -1
- package/src/index.ts +0 -168
- package/README.md +0 -70
- package/lib/commonjs/ActionType.js +0 -15
- package/lib/commonjs/Directions.js +0 -31
- package/lib/commonjs/EnableNewWebImplementation.js +0 -40
- package/lib/commonjs/GestureHandlerRootViewContext.js +0 -10
- package/lib/commonjs/PlatformConstants.js +0 -9
- package/lib/commonjs/PlatformConstants.kepler.js +0 -12
- package/lib/commonjs/PlatformConstants.web.js +0 -12
- package/lib/commonjs/PointerType.js +0 -15
- package/lib/commonjs/RNGestureHandlerModule.js +0 -12
- package/lib/commonjs/RNGestureHandlerModule.kepler.js +0 -29
- package/lib/commonjs/RNGestureHandlerModule.web.js +0 -95
- package/lib/commonjs/RNGestureHandlerModule.windows.js +0 -56
- package/lib/commonjs/RNRenderer.js +0 -14
- package/lib/commonjs/RNRenderer.web.js +0 -10
- package/lib/commonjs/State.js +0 -19
- package/lib/commonjs/TouchEventType.js +0 -16
- package/lib/commonjs/components/DrawerLayout.js +0 -548
- package/lib/commonjs/components/GestureButtons.js +0 -212
- package/lib/commonjs/components/GestureButtonsProps.js +0 -6
- package/lib/commonjs/components/GestureComponents.js +0 -106
- package/lib/commonjs/components/GestureComponents.web.js +0 -39
- package/lib/commonjs/components/GestureHandlerButton.js +0 -10
- package/lib/commonjs/components/GestureHandlerButton.web.js +0 -16
- package/lib/commonjs/components/GestureHandlerRootView.android.js +0 -36
- package/lib/commonjs/components/GestureHandlerRootView.js +0 -35
- package/lib/commonjs/components/GestureHandlerRootView.kepler.js +0 -21
- package/lib/commonjs/components/GestureHandlerRootView.web.js +0 -30
- package/lib/commonjs/components/Pressable/Pressable.js +0 -274
- package/lib/commonjs/components/Pressable/PressableProps.js +0 -6
- package/lib/commonjs/components/Pressable/StateMachine.js +0 -44
- package/lib/commonjs/components/Pressable/index.js +0 -14
- package/lib/commonjs/components/Pressable/stateDefinitions.js +0 -88
- package/lib/commonjs/components/Pressable/utils.js +0 -92
- package/lib/commonjs/components/ReanimatedDrawerLayout.js +0 -357
- package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -337
- package/lib/commonjs/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -12
- package/lib/commonjs/components/ReanimatedSwipeable/index.js +0 -21
- package/lib/commonjs/components/Swipeable.js +0 -370
- package/lib/commonjs/components/Text.js +0 -60
- package/lib/commonjs/components/gestureHandlerRootHOC.js +0 -37
- package/lib/commonjs/components/touchables/ExtraButtonProps.js +0 -2
- package/lib/commonjs/components/touchables/GenericTouchable.js +0 -245
- package/lib/commonjs/components/touchables/GenericTouchableProps.js +0 -6
- package/lib/commonjs/components/touchables/TouchableHighlight.js +0 -93
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +0 -84
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +0 -13
- package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js +0 -6
- package/lib/commonjs/components/touchables/TouchableOpacity.js +0 -65
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +0 -33
- package/lib/commonjs/components/touchables/index.js +0 -35
- package/lib/commonjs/components/utils.js +0 -17
- package/lib/commonjs/findNodeHandle.js +0 -9
- package/lib/commonjs/findNodeHandle.web.js +0 -39
- package/lib/commonjs/getShadowNodeFromRef.js +0 -51
- package/lib/commonjs/getShadowNodeFromRef.web.js +0 -14
- package/lib/commonjs/ghQueueMicrotask.js +0 -10
- package/lib/commonjs/handlers/FlingGestureHandler.js +0 -31
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +0 -46
- package/lib/commonjs/handlers/GestureHandlerEventPayload.js +0 -6
- package/lib/commonjs/handlers/LongPressGestureHandler.js +0 -33
- package/lib/commonjs/handlers/NativeViewGestureHandler.js +0 -32
- package/lib/commonjs/handlers/PanGestureHandler.js +0 -112
- package/lib/commonjs/handlers/PinchGestureHandler.js +0 -29
- package/lib/commonjs/handlers/PressabilityDebugView.js +0 -13
- package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -11
- package/lib/commonjs/handlers/RotationGestureHandler.js +0 -29
- package/lib/commonjs/handlers/TapGestureHandler.js +0 -33
- package/lib/commonjs/handlers/createHandler.js +0 -405
- package/lib/commonjs/handlers/createNativeWrapper.js +0 -77
- package/lib/commonjs/handlers/customDirectEventTypes.js +0 -13
- package/lib/commonjs/handlers/customDirectEventTypes.web.js +0 -10
- package/lib/commonjs/handlers/gestureHandlerCommon.js +0 -27
- package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +0 -6
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +0 -32
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +0 -41
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +0 -67
- package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +0 -20
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js +0 -125
- package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +0 -22
- package/lib/commonjs/handlers/gestures/GestureDetector/types.js +0 -6
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +0 -66
- package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -143
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -47
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +0 -41
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -45
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +0 -143
- package/lib/commonjs/handlers/gestures/eventReceiver.js +0 -117
- package/lib/commonjs/handlers/gestures/flingGesture.js +0 -37
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js +0 -80
- package/lib/commonjs/handlers/gestures/gesture.js +0 -338
- package/lib/commonjs/handlers/gestures/gestureComposition.js +0 -90
- package/lib/commonjs/handlers/gestures/gestureObjects.js +0 -132
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +0 -70
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +0 -28
- package/lib/commonjs/handlers/gestures/hoverGesture.js +0 -57
- package/lib/commonjs/handlers/gestures/longPressGesture.js +0 -46
- package/lib/commonjs/handlers/gestures/manualGesture.js +0 -25
- package/lib/commonjs/handlers/gestures/nativeGesture.js +0 -34
- package/lib/commonjs/handlers/gestures/panGesture.js +0 -197
- package/lib/commonjs/handlers/gestures/pinchGesture.js +0 -38
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +0 -29
- package/lib/commonjs/handlers/gestures/rotationGesture.js +0 -38
- package/lib/commonjs/handlers/gestures/tapGesture.js +0 -87
- package/lib/commonjs/handlers/getNextHandlerTag.js +0 -11
- package/lib/commonjs/handlers/handlersRegistry.js +0 -50
- package/lib/commonjs/handlers/utils.js +0 -69
- package/lib/commonjs/init.js +0 -25
- package/lib/commonjs/jestUtils/index.js +0 -19
- package/lib/commonjs/jestUtils/jestUtils.js +0 -316
- package/lib/commonjs/mocks/Pressable.js +0 -13
- package/lib/commonjs/mocks/mocks.js +0 -70
- package/lib/commonjs/mocks.js +0 -61
- package/lib/commonjs/mountRegistry.js +0 -37
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +0 -9
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -20
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -17
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
- package/lib/commonjs/typeUtils.js +0 -2
- package/lib/commonjs/utils.js +0 -95
- package/lib/commonjs/web/Gestures.js +0 -48
- package/lib/commonjs/web/constants.js +0 -9
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +0 -124
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +0 -111
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +0 -143
- package/lib/commonjs/web/handlers/GestureHandler.js +0 -689
- package/lib/commonjs/web/handlers/HoverGestureHandler.js +0 -45
- package/lib/commonjs/web/handlers/IGestureHandler.js +0 -2
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +0 -146
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +0 -38
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -141
- package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -399
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -122
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -129
- package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -215
- package/lib/commonjs/web/interfaces.js +0 -32
- package/lib/commonjs/web/tools/CircularBuffer.js +0 -40
- package/lib/commonjs/web/tools/EventManager.js +0 -94
- package/lib/commonjs/web/tools/GestureHandlerDelegate.js +0 -6
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +0 -267
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +0 -165
- package/lib/commonjs/web/tools/InteractionManager.js +0 -96
- package/lib/commonjs/web/tools/KeyboardEventManager.js +0 -108
- package/lib/commonjs/web/tools/LeastSquareSolver.js +0 -159
- package/lib/commonjs/web/tools/NodeManager.js +0 -39
- package/lib/commonjs/web/tools/PointerEventManager.js +0 -189
- package/lib/commonjs/web/tools/PointerTracker.js +0 -192
- package/lib/commonjs/web/tools/Vector.js +0 -37
- package/lib/commonjs/web/tools/VelocityTracker.js +0 -85
- package/lib/commonjs/web/tools/WheelEventManager.js +0 -55
- package/lib/commonjs/web/utils.js +0 -235
- package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +0 -93
- package/lib/commonjs/web_hammer/DraggingGestureHandler.js +0 -43
- package/lib/commonjs/web_hammer/Errors.js +0 -13
- package/lib/commonjs/web_hammer/FlingGestureHandler.js +0 -139
- package/lib/commonjs/web_hammer/GestureHandler.js +0 -484
- package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +0 -45
- package/lib/commonjs/web_hammer/LongPressGestureHandler.js +0 -57
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +0 -57
- package/lib/commonjs/web_hammer/NodeManager.js +0 -41
- package/lib/commonjs/web_hammer/PanGestureHandler.js +0 -167
- package/lib/commonjs/web_hammer/PinchGestureHandler.js +0 -31
- package/lib/commonjs/web_hammer/PressGestureHandler.js +0 -153
- package/lib/commonjs/web_hammer/RotationGestureHandler.js +0 -32
- package/lib/commonjs/web_hammer/TapGestureHandler.js +0 -165
- package/lib/commonjs/web_hammer/constants.js +0 -51
- package/lib/commonjs/web_hammer/utils.js +0 -32
- package/lib/module/ActionType.js +0 -11
- package/lib/module/Directions.js +0 -27
- package/lib/module/EnableNewWebImplementation.js +0 -34
- package/lib/module/GestureHandlerRootViewContext.js +0 -5
- package/lib/module/PlatformConstants.js +0 -5
- package/lib/module/PlatformConstants.kepler.js +0 -8
- package/lib/module/PlatformConstants.web.js +0 -8
- package/lib/module/PointerType.js +0 -11
- package/lib/module/RNGestureHandlerModule.js +0 -8
- package/lib/module/RNGestureHandlerModule.kepler.js +0 -25
- package/lib/module/RNGestureHandlerModule.web.js +0 -90
- package/lib/module/RNGestureHandlerModule.windows.js +0 -50
- package/lib/module/RNRenderer.js +0 -6
- package/lib/module/RNRenderer.web.js +0 -6
- package/lib/module/State.js +0 -15
- package/lib/module/TouchEventType.js +0 -12
- package/lib/module/components/DrawerLayout.js +0 -541
- package/lib/module/components/GestureButtons.js +0 -200
- package/lib/module/components/GestureButtonsProps.js +0 -4
- package/lib/module/components/GestureComponents.js +0 -100
- package/lib/module/components/GestureComponents.web.js +0 -32
- package/lib/module/components/GestureHandlerButton.js +0 -5
- package/lib/module/components/GestureHandlerButton.web.js +0 -11
- package/lib/module/components/GestureHandlerRootView.android.js +0 -30
- package/lib/module/components/GestureHandlerRootView.js +0 -29
- package/lib/module/components/GestureHandlerRootView.kepler.js +0 -15
- package/lib/module/components/GestureHandlerRootView.web.js +0 -24
- package/lib/module/components/Pressable/Pressable.js +0 -268
- package/lib/module/components/Pressable/PressableProps.js +0 -4
- package/lib/module/components/Pressable/StateMachine.js +0 -40
- package/lib/module/components/Pressable/index.js +0 -4
- package/lib/module/components/Pressable/stateDefinitions.js +0 -83
- package/lib/module/components/Pressable/utils.js +0 -84
- package/lib/module/components/ReanimatedDrawerLayout.js +0 -352
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeable.js +0 -332
- package/lib/module/components/ReanimatedSwipeable/ReanimatedSwipeableProps.js +0 -8
- package/lib/module/components/ReanimatedSwipeable/index.js +0 -5
- package/lib/module/components/Swipeable.js +0 -364
- package/lib/module/components/Text.js +0 -55
- package/lib/module/components/gestureHandlerRootHOC.js +0 -33
- package/lib/module/components/touchables/ExtraButtonProps.js +0 -2
- package/lib/module/components/touchables/GenericTouchable.js +0 -239
- package/lib/module/components/touchables/GenericTouchableProps.js +0 -4
- package/lib/module/components/touchables/TouchableHighlight.js +0 -87
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js +0 -77
- package/lib/module/components/touchables/TouchableNativeFeedback.js +0 -10
- package/lib/module/components/touchables/TouchableNativeFeedbackProps.js +0 -4
- package/lib/module/components/touchables/TouchableOpacity.js +0 -59
- package/lib/module/components/touchables/TouchableWithoutFeedback.js +0 -27
- package/lib/module/components/touchables/index.js +0 -7
- package/lib/module/components/utils.js +0 -13
- package/lib/module/findNodeHandle.js +0 -5
- package/lib/module/findNodeHandle.web.js +0 -35
- package/lib/module/getShadowNodeFromRef.js +0 -47
- package/lib/module/getShadowNodeFromRef.web.js +0 -10
- package/lib/module/ghQueueMicrotask.js +0 -6
- package/lib/module/handlers/FlingGestureHandler.js +0 -26
- package/lib/module/handlers/ForceTouchGestureHandler.js +0 -41
- package/lib/module/handlers/GestureHandlerEventPayload.js +0 -4
- package/lib/module/handlers/LongPressGestureHandler.js +0 -28
- package/lib/module/handlers/NativeViewGestureHandler.js +0 -27
- package/lib/module/handlers/PanGestureHandler.js +0 -105
- package/lib/module/handlers/PinchGestureHandler.js +0 -25
- package/lib/module/handlers/PressabilityDebugView.js +0 -5
- package/lib/module/handlers/PressabilityDebugView.web.js +0 -7
- package/lib/module/handlers/RotationGestureHandler.js +0 -25
- package/lib/module/handlers/TapGestureHandler.js +0 -28
- package/lib/module/handlers/createHandler.js +0 -399
- package/lib/module/handlers/createNativeWrapper.js +0 -74
- package/lib/module/handlers/customDirectEventTypes.js +0 -5
- package/lib/module/handlers/customDirectEventTypes.web.js +0 -7
- package/lib/module/handlers/gestureHandlerCommon.js +0 -26
- package/lib/module/handlers/gestureHandlerTypesCompat.js +0 -4
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js +0 -26
- package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +0 -36
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +0 -62
- package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +0 -15
- package/lib/module/handlers/gestures/GestureDetector/index.js +0 -117
- package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +0 -18
- package/lib/module/handlers/gestures/GestureDetector/types.js +0 -4
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +0 -61
- package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +0 -139
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +0 -43
- package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +0 -37
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +0 -40
- package/lib/module/handlers/gestures/GestureDetector/utils.js +0 -134
- package/lib/module/handlers/gestures/eventReceiver.js +0 -110
- package/lib/module/handlers/gestures/flingGesture.js +0 -32
- package/lib/module/handlers/gestures/forceTouchGesture.js +0 -76
- package/lib/module/handlers/gestures/gesture.js +0 -332
- package/lib/module/handlers/gestures/gestureComposition.js +0 -83
- package/lib/module/handlers/gestures/gestureObjects.js +0 -129
- package/lib/module/handlers/gestures/gestureStateManager.js +0 -66
- package/lib/module/handlers/gestures/gestureStateManager.web.js +0 -23
- package/lib/module/handlers/gestures/hoverGesture.js +0 -52
- package/lib/module/handlers/gestures/longPressGesture.js +0 -41
- package/lib/module/handlers/gestures/manualGesture.js +0 -20
- package/lib/module/handlers/gestures/nativeGesture.js +0 -29
- package/lib/module/handlers/gestures/panGesture.js +0 -192
- package/lib/module/handlers/gestures/pinchGesture.js +0 -33
- package/lib/module/handlers/gestures/reanimatedWrapper.js +0 -26
- package/lib/module/handlers/gestures/rotationGesture.js +0 -33
- package/lib/module/handlers/gestures/tapGesture.js +0 -82
- package/lib/module/handlers/getNextHandlerTag.js +0 -7
- package/lib/module/handlers/handlersRegistry.js +0 -39
- package/lib/module/handlers/utils.js +0 -61
- package/lib/module/index.js +0 -31
- package/lib/module/init.js +0 -19
- package/lib/module/jestUtils/index.js +0 -4
- package/lib/module/jestUtils/jestUtils.js +0 -311
- package/lib/module/mocks/Pressable.js +0 -4
- package/lib/module/mocks/mocks.js +0 -64
- package/lib/module/mocks.js +0 -57
- package/lib/module/mountRegistry.js +0 -32
- package/lib/module/specs/NativeRNGestureHandlerModule.js +0 -5
- package/lib/module/specs/RNGestureHandlerButtonNativeComponent.kepler.js +0 -14
- package/lib/module/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
- package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.kepler.js +0 -11
- package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
- package/lib/module/typeUtils.js +0 -2
- package/lib/module/utils.js +0 -81
- package/lib/module/web/Gestures.js +0 -42
- package/lib/module/web/constants.js +0 -5
- package/lib/module/web/detectors/RotationGestureDetector.js +0 -119
- package/lib/module/web/detectors/ScaleGestureDetector.js +0 -106
- package/lib/module/web/handlers/FlingGestureHandler.js +0 -137
- package/lib/module/web/handlers/GestureHandler.js +0 -682
- package/lib/module/web/handlers/HoverGestureHandler.js +0 -39
- package/lib/module/web/handlers/IGestureHandler.js +0 -2
- package/lib/module/web/handlers/LongPressGestureHandler.js +0 -140
- package/lib/module/web/handlers/ManualGestureHandler.js +0 -32
- package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -135
- package/lib/module/web/handlers/PanGestureHandler.js +0 -393
- package/lib/module/web/handlers/PinchGestureHandler.js +0 -116
- package/lib/module/web/handlers/RotationGestureHandler.js +0 -123
- package/lib/module/web/handlers/TapGestureHandler.js +0 -209
- package/lib/module/web/interfaces.js +0 -28
- package/lib/module/web/tools/CircularBuffer.js +0 -35
- package/lib/module/web/tools/EventManager.js +0 -89
- package/lib/module/web/tools/GestureHandlerDelegate.js +0 -4
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +0 -261
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +0 -159
- package/lib/module/web/tools/InteractionManager.js +0 -91
- package/lib/module/web/tools/KeyboardEventManager.js +0 -102
- package/lib/module/web/tools/LeastSquareSolver.js +0 -154
- package/lib/module/web/tools/NodeManager.js +0 -34
- package/lib/module/web/tools/PointerEventManager.js +0 -183
- package/lib/module/web/tools/PointerTracker.js +0 -186
- package/lib/module/web/tools/Vector.js +0 -32
- package/lib/module/web/tools/VelocityTracker.js +0 -79
- package/lib/module/web/tools/WheelEventManager.js +0 -49
- package/lib/module/web/utils.js +0 -223
- package/lib/module/web_hammer/DiscreteGestureHandler.js +0 -87
- package/lib/module/web_hammer/DraggingGestureHandler.js +0 -37
- package/lib/module/web_hammer/Errors.js +0 -8
- package/lib/module/web_hammer/FlingGestureHandler.js +0 -133
- package/lib/module/web_hammer/GestureHandler.js +0 -478
- package/lib/module/web_hammer/IndiscreteGestureHandler.js +0 -41
- package/lib/module/web_hammer/LongPressGestureHandler.js +0 -51
- package/lib/module/web_hammer/NativeViewGestureHandler.js +0 -51
- package/lib/module/web_hammer/NodeManager.js +0 -33
- package/lib/module/web_hammer/PanGestureHandler.js +0 -162
- package/lib/module/web_hammer/PinchGestureHandler.js +0 -26
- package/lib/module/web_hammer/PressGestureHandler.js +0 -148
- package/lib/module/web_hammer/RotationGestureHandler.js +0 -27
- package/lib/module/web_hammer/TapGestureHandler.js +0 -160
- package/lib/module/web_hammer/constants.js +0 -46
- package/lib/module/web_hammer/utils.js +0 -21
- package/src/ActionType.ts +0 -9
- package/src/Directions.ts +0 -26
- package/src/EnableNewWebImplementation.ts +0 -53
- package/src/GestureHandlerRootViewContext.ts +0 -3
- package/src/PlatformConstants.kepler.ts +0 -5
- package/src/PlatformConstants.ts +0 -8
- package/src/PlatformConstants.web.ts +0 -5
- package/src/PointerType.ts +0 -7
- package/src/RNGestureHandlerModule.kepler.ts +0 -63
- package/src/RNGestureHandlerModule.ts +0 -5
- package/src/RNGestureHandlerModule.web.ts +0 -124
- package/src/RNGestureHandlerModule.windows.ts +0 -62
- package/src/RNRenderer.ts +0 -3
- package/src/RNRenderer.web.ts +0 -3
- package/src/State.ts +0 -13
- package/src/TouchEventType.ts +0 -11
- package/src/components/DrawerLayout.tsx +0 -788
- package/src/components/GestureButtons.tsx +0 -272
- package/src/components/GestureButtonsProps.ts +0 -156
- package/src/components/GestureComponents.tsx +0 -148
- package/src/components/GestureComponents.web.tsx +0 -41
- package/src/components/GestureHandlerButton.tsx +0 -5
- package/src/components/GestureHandlerButton.web.tsx +0 -6
- package/src/components/GestureHandlerRootView.android.tsx +0 -32
- package/src/components/GestureHandlerRootView.kepler.tsx +0 -18
- package/src/components/GestureHandlerRootView.tsx +0 -28
- package/src/components/GestureHandlerRootView.web.tsx +0 -22
- package/src/components/Pressable/Pressable.tsx +0 -401
- package/src/components/Pressable/PressableProps.tsx +0 -174
- package/src/components/Pressable/StateMachine.tsx +0 -57
- package/src/components/Pressable/index.ts +0 -5
- package/src/components/Pressable/stateDefinitions.ts +0 -126
- package/src/components/Pressable/utils.ts +0 -140
- package/src/components/ReanimatedDrawerLayout.tsx +0 -754
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeable.tsx +0 -607
- package/src/components/ReanimatedSwipeable/ReanimatedSwipeableProps.ts +0 -199
- package/src/components/ReanimatedSwipeable/index.ts +0 -6
- package/src/components/Swipeable.tsx +0 -595
- package/src/components/Text.tsx +0 -77
- package/src/components/gestureHandlerRootHOC.tsx +0 -33
- package/src/components/touchables/ExtraButtonProps.ts +0 -7
- package/src/components/touchables/GenericTouchable.tsx +0 -275
- package/src/components/touchables/GenericTouchableProps.ts +0 -28
- package/src/components/touchables/TouchableHighlight.tsx +0 -118
- package/src/components/touchables/TouchableNativeFeedback.android.tsx +0 -83
- package/src/components/touchables/TouchableNativeFeedback.tsx +0 -8
- package/src/components/touchables/TouchableNativeFeedbackProps.tsx +0 -10
- package/src/components/touchables/TouchableOpacity.tsx +0 -78
- package/src/components/touchables/TouchableWithoutFeedback.tsx +0 -39
- package/src/components/touchables/index.ts +0 -7
- package/src/components/utils.ts +0 -26
- package/src/findNodeHandle.ts +0 -3
- package/src/findNodeHandle.web.ts +0 -41
- package/src/getShadowNodeFromRef.ts +0 -50
- package/src/getShadowNodeFromRef.web.ts +0 -7
- package/src/ghQueueMicrotask.ts +0 -8
- package/src/handlers/FlingGestureHandler.ts +0 -64
- package/src/handlers/ForceTouchGestureHandler.ts +0 -88
- package/src/handlers/GestureHandlerEventPayload.ts +0 -229
- package/src/handlers/LongPressGestureHandler.ts +0 -65
- package/src/handlers/NativeViewGestureHandler.ts +0 -59
- package/src/handlers/PanGestureHandler.ts +0 -282
- package/src/handlers/PinchGestureHandler.ts +0 -32
- package/src/handlers/PressabilityDebugView.tsx +0 -2
- package/src/handlers/PressabilityDebugView.web.tsx +0 -4
- package/src/handlers/RotationGestureHandler.ts +0 -32
- package/src/handlers/TapGestureHandler.ts +0 -99
- package/src/handlers/createHandler.tsx +0 -586
- package/src/handlers/createNativeWrapper.tsx +0 -89
- package/src/handlers/customDirectEventTypes.ts +0 -2
- package/src/handlers/customDirectEventTypes.web.ts +0 -5
- package/src/handlers/gestureHandlerCommon.ts +0 -211
- package/src/handlers/gestureHandlerTypesCompat.ts +0 -101
- package/src/handlers/gestures/GestureDetector/Wrap.tsx +0 -35
- package/src/handlers/gestures/GestureDetector/Wrap.web.tsx +0 -42
- package/src/handlers/gestures/GestureDetector/attachHandlers.ts +0 -112
- package/src/handlers/gestures/GestureDetector/dropHandlers.ts +0 -17
- package/src/handlers/gestures/GestureDetector/index.tsx +0 -191
- package/src/handlers/gestures/GestureDetector/needsToReattach.ts +0 -27
- package/src/handlers/gestures/GestureDetector/types.ts +0 -32
- package/src/handlers/gestures/GestureDetector/updateHandlers.ts +0 -92
- package/src/handlers/gestures/GestureDetector/useAnimatedGesture.ts +0 -209
- package/src/handlers/gestures/GestureDetector/useDetectorUpdater.ts +0 -69
- package/src/handlers/gestures/GestureDetector/useMountReactions.ts +0 -51
- package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +0 -58
- package/src/handlers/gestures/GestureDetector/utils.ts +0 -181
- package/src/handlers/gestures/eventReceiver.ts +0 -173
- package/src/handlers/gestures/flingGesture.ts +0 -36
- package/src/handlers/gestures/forceTouchGesture.ts +0 -95
- package/src/handlers/gestures/gesture.ts +0 -472
- package/src/handlers/gestures/gestureComposition.ts +0 -124
- package/src/handlers/gestures/gestureObjects.ts +0 -143
- package/src/handlers/gestures/gestureStateManager.ts +0 -76
- package/src/handlers/gestures/gestureStateManager.web.ts +0 -26
- package/src/handlers/gestures/hoverGesture.ts +0 -77
- package/src/handlers/gestures/longPressGesture.ts +0 -45
- package/src/handlers/gestures/manualGesture.ts +0 -31
- package/src/handlers/gestures/nativeGesture.ts +0 -33
- package/src/handlers/gestures/panGesture.ts +0 -221
- package/src/handlers/gestures/pinchGesture.ts +0 -51
- package/src/handlers/gestures/reanimatedWrapper.ts +0 -57
- package/src/handlers/gestures/rotationGesture.ts +0 -51
- package/src/handlers/gestures/tapGesture.ts +0 -86
- package/src/handlers/getNextHandlerTag.ts +0 -5
- package/src/handlers/handlersRegistry.ts +0 -58
- package/src/handlers/utils.ts +0 -76
- package/src/init.ts +0 -18
- package/src/jestUtils/index.ts +0 -1
- package/src/jestUtils/jestUtils.ts +0 -513
- package/src/mocks/Pressable.tsx +0 -1
- package/src/mocks/mocks.tsx +0 -70
- package/src/mocks.ts +0 -67
- package/src/mountRegistry.ts +0 -51
- package/src/specs/NativeRNGestureHandlerModule.ts +0 -26
- package/src/specs/RNGestureHandlerButtonNativeComponent.kepler.ts +0 -27
- package/src/specs/RNGestureHandlerButtonNativeComponent.ts +0 -24
- package/src/specs/RNGestureHandlerRootViewNativeComponent.kepler.ts +0 -21
- package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +0 -7
- package/src/typeUtils.ts +0 -1
- package/src/utils.ts +0 -107
- package/src/web/Gestures.ts +0 -41
- package/src/web/constants.ts +0 -2
- package/src/web/detectors/RotationGestureDetector.ts +0 -170
- package/src/web/detectors/ScaleGestureDetector.ts +0 -171
- package/src/web/handlers/FlingGestureHandler.ts +0 -196
- package/src/web/handlers/GestureHandler.ts +0 -881
- package/src/web/handlers/HoverGestureHandler.ts +0 -49
- package/src/web/handlers/IGestureHandler.ts +0 -49
- package/src/web/handlers/LongPressGestureHandler.ts +0 -175
- package/src/web/handlers/ManualGestureHandler.ts +0 -37
- package/src/web/handlers/NativeViewGestureHandler.ts +0 -175
- package/src/web/handlers/PanGestureHandler.ts +0 -571
- package/src/web/handlers/PinchGestureHandler.ts +0 -152
- package/src/web/handlers/RotationGestureHandler.ts +0 -166
- package/src/web/handlers/TapGestureHandler.ts +0 -274
- package/src/web/interfaces.ts +0 -190
- package/src/web/tools/CircularBuffer.ts +0 -42
- package/src/web/tools/EventManager.ts +0 -108
- package/src/web/tools/GestureHandlerDelegate.ts +0 -26
- package/src/web/tools/GestureHandlerOrchestrator.ts +0 -392
- package/src/web/tools/GestureHandlerWebDelegate.ts +0 -227
- package/src/web/tools/InteractionManager.ts +0 -135
- package/src/web/tools/KeyboardEventManager.ts +0 -133
- package/src/web/tools/LeastSquareSolver.ts +0 -182
- package/src/web/tools/NodeManager.ts +0 -48
- package/src/web/tools/PointerEventManager.ts +0 -226
- package/src/web/tools/PointerTracker.ts +0 -228
- package/src/web/tools/Vector.ts +0 -59
- package/src/web/tools/VelocityTracker.ts +0 -98
- package/src/web/tools/WheelEventManager.ts +0 -48
- package/src/web/utils.ts +0 -293
- package/src/web_hammer/DiscreteGestureHandler.ts +0 -82
- package/src/web_hammer/DraggingGestureHandler.ts +0 -34
- package/src/web_hammer/Errors.ts +0 -7
- package/src/web_hammer/FlingGestureHandler.ts +0 -134
- package/src/web_hammer/GestureHandler.ts +0 -600
- package/src/web_hammer/IndiscreteGestureHandler.ts +0 -33
- package/src/web_hammer/LongPressGestureHandler.ts +0 -56
- package/src/web_hammer/NativeViewGestureHandler.ts +0 -47
- package/src/web_hammer/NodeManager.ts +0 -33
- package/src/web_hammer/PanGestureHandler.ts +0 -226
- package/src/web_hammer/PinchGestureHandler.ts +0 -25
- package/src/web_hammer/PressGestureHandler.ts +0 -170
- package/src/web_hammer/RotationGestureHandler.ts +0 -25
- package/src/web_hammer/TapGestureHandler.ts +0 -172
- package/src/web_hammer/constants.ts +0 -48
- package/src/web_hammer/utils.ts +0 -24
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
2
|
-
import { AdaptedEvent, EventTypes } from '../interfaces';
|
|
3
|
-
|
|
4
|
-
type PointerEventCallback = (event: AdaptedEvent) => void;
|
|
5
|
-
|
|
6
|
-
export default abstract class EventManager<T> {
|
|
7
|
-
protected readonly view: T;
|
|
8
|
-
protected pointersInBounds: number[] = [];
|
|
9
|
-
protected activePointersCounter: number;
|
|
10
|
-
|
|
11
|
-
constructor(view: T) {
|
|
12
|
-
this.view = view;
|
|
13
|
-
this.activePointersCounter = 0;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
public abstract registerListeners(): void;
|
|
17
|
-
public abstract unregisterListeners(): void;
|
|
18
|
-
|
|
19
|
-
protected abstract mapEvent(
|
|
20
|
-
event: Event,
|
|
21
|
-
eventType: EventTypes
|
|
22
|
-
): AdaptedEvent;
|
|
23
|
-
|
|
24
|
-
protected onPointerDown(_event: AdaptedEvent): void {}
|
|
25
|
-
protected onPointerAdd(_event: AdaptedEvent): void {}
|
|
26
|
-
protected onPointerUp(_event: AdaptedEvent): void {}
|
|
27
|
-
protected onPointerRemove(_event: AdaptedEvent): void {}
|
|
28
|
-
protected onPointerMove(_event: AdaptedEvent): void {}
|
|
29
|
-
protected onPointerLeave(_event: AdaptedEvent): void {} // Called only when pointer is pressed (or touching)
|
|
30
|
-
protected onPointerEnter(_event: AdaptedEvent): void {} // Called only when pointer is pressed (or touching)
|
|
31
|
-
protected onPointerCancel(_event: AdaptedEvent): void {
|
|
32
|
-
// When pointer cancel is triggered and there are more pointers on the view, only one pointer is cancelled
|
|
33
|
-
// Because we want all pointers to be cancelled by that event, we are doing it manually by reseting handler and changing activePointersCounter to 0
|
|
34
|
-
// Events that correspond to removing the pointer (pointerup, touchend) have condition, that they don't perform any action when activePointersCounter
|
|
35
|
-
// is equal to 0. This prevents counter from going to negative values, when pointers are removed from view after one of them has been cancelled
|
|
36
|
-
}
|
|
37
|
-
protected onPointerOutOfBounds(_event: AdaptedEvent): void {}
|
|
38
|
-
protected onPointerMoveOver(_event: AdaptedEvent): void {}
|
|
39
|
-
protected onPointerMoveOut(_event: AdaptedEvent): void {}
|
|
40
|
-
protected onWheel(_event: AdaptedEvent): void {}
|
|
41
|
-
|
|
42
|
-
public setOnPointerDown(callback: PointerEventCallback): void {
|
|
43
|
-
this.onPointerDown = callback;
|
|
44
|
-
}
|
|
45
|
-
public setOnPointerAdd(callback: PointerEventCallback): void {
|
|
46
|
-
this.onPointerAdd = callback;
|
|
47
|
-
}
|
|
48
|
-
public setOnPointerUp(callback: PointerEventCallback): void {
|
|
49
|
-
this.onPointerUp = callback;
|
|
50
|
-
}
|
|
51
|
-
public setOnPointerRemove(callback: PointerEventCallback): void {
|
|
52
|
-
this.onPointerRemove = callback;
|
|
53
|
-
}
|
|
54
|
-
public setOnPointerMove(callback: PointerEventCallback): void {
|
|
55
|
-
this.onPointerMove = callback;
|
|
56
|
-
}
|
|
57
|
-
public setOnPointerLeave(callback: PointerEventCallback): void {
|
|
58
|
-
this.onPointerLeave = callback;
|
|
59
|
-
}
|
|
60
|
-
public setOnPointerEnter(callback: PointerEventCallback): void {
|
|
61
|
-
this.onPointerEnter = callback;
|
|
62
|
-
}
|
|
63
|
-
public setOnPointerCancel(callback: PointerEventCallback): void {
|
|
64
|
-
this.onPointerCancel = callback;
|
|
65
|
-
}
|
|
66
|
-
public setOnPointerOutOfBounds(callback: PointerEventCallback): void {
|
|
67
|
-
this.onPointerOutOfBounds = callback;
|
|
68
|
-
}
|
|
69
|
-
public setOnPointerMoveOver(callback: PointerEventCallback): void {
|
|
70
|
-
this.onPointerMoveOver = callback;
|
|
71
|
-
}
|
|
72
|
-
public setOnPointerMoveOut(callback: PointerEventCallback): void {
|
|
73
|
-
this.onPointerMoveOut = callback;
|
|
74
|
-
}
|
|
75
|
-
public setOnWheel(callback: PointerEventCallback): void {
|
|
76
|
-
this.onWheel = callback;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
protected markAsInBounds(pointerId: number): void {
|
|
80
|
-
if (this.pointersInBounds.indexOf(pointerId) >= 0) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
this.pointersInBounds.push(pointerId);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
protected markAsOutOfBounds(pointerId: number): void {
|
|
88
|
-
const index: number = this.pointersInBounds.indexOf(pointerId);
|
|
89
|
-
|
|
90
|
-
if (index < 0) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
this.pointersInBounds.splice(index, 1);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
public resetManager(): void {
|
|
98
|
-
// Reseting activePointersCounter is necessary to make gestures such as pinch work properly
|
|
99
|
-
// There are gestures that end when there is still one active pointer (like pinch/rotation)
|
|
100
|
-
// When these gestures end, they are reset, but they still receive events from pointer that is active
|
|
101
|
-
// This causes trouble, since only onPointerDown registers gesture in orchestrator, and while gestures receive
|
|
102
|
-
// Events from active pointer after they finished, next pointerdown event will be registered as additional pointer, not the first one
|
|
103
|
-
// This casues trouble like gestures getting stuck in END state, even though they should have gone to UNDETERMINED
|
|
104
|
-
|
|
105
|
-
this.activePointersCounter = 0;
|
|
106
|
-
this.pointersInBounds = [];
|
|
107
|
-
}
|
|
108
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Config } from '../interfaces';
|
|
2
|
-
|
|
3
|
-
export interface MeasureResult {
|
|
4
|
-
pageX: number;
|
|
5
|
-
pageY: number;
|
|
6
|
-
width: number;
|
|
7
|
-
height: number;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export interface GestureHandlerDelegate<TComponent, THandler> {
|
|
11
|
-
view: TComponent;
|
|
12
|
-
|
|
13
|
-
init(viewRef: number, handler: THandler): void;
|
|
14
|
-
isPointerInBounds({ x, y }: { x: number; y: number }): boolean;
|
|
15
|
-
measureView(): MeasureResult;
|
|
16
|
-
reset(): void;
|
|
17
|
-
|
|
18
|
-
onBegin(): void;
|
|
19
|
-
onActivate(): void;
|
|
20
|
-
onEnd(): void;
|
|
21
|
-
onCancel(): void;
|
|
22
|
-
onFail(): void;
|
|
23
|
-
onEnabledChange(enabled: boolean): void;
|
|
24
|
-
|
|
25
|
-
destroy(config: Config): void;
|
|
26
|
-
}
|
|
@@ -1,392 +0,0 @@
|
|
|
1
|
-
import { PointerType } from '../../PointerType';
|
|
2
|
-
import { State } from '../../State';
|
|
3
|
-
|
|
4
|
-
import type IGestureHandler from '../handlers/IGestureHandler';
|
|
5
|
-
import PointerTracker from './PointerTracker';
|
|
6
|
-
|
|
7
|
-
export default class GestureHandlerOrchestrator {
|
|
8
|
-
private static _instance: GestureHandlerOrchestrator;
|
|
9
|
-
|
|
10
|
-
private gestureHandlers: IGestureHandler[] = [];
|
|
11
|
-
private awaitingHandlers: IGestureHandler[] = [];
|
|
12
|
-
private awaitingHandlersTags: Set<number> = new Set();
|
|
13
|
-
|
|
14
|
-
private handlingChangeSemaphore = 0;
|
|
15
|
-
private activationIndex = 0;
|
|
16
|
-
|
|
17
|
-
// Private beacuse of Singleton
|
|
18
|
-
// eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function
|
|
19
|
-
private constructor() {}
|
|
20
|
-
|
|
21
|
-
private scheduleFinishedHandlersCleanup(): void {
|
|
22
|
-
if (this.handlingChangeSemaphore === 0) {
|
|
23
|
-
this.cleanupFinishedHandlers();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
private cleanHandler(handler: IGestureHandler): void {
|
|
28
|
-
handler.reset();
|
|
29
|
-
handler.active = false;
|
|
30
|
-
handler.awaiting = false;
|
|
31
|
-
handler.activationIndex = Number.MAX_VALUE;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
public removeHandlerFromOrchestrator(handler: IGestureHandler): void {
|
|
35
|
-
const indexInGestureHandlers = this.gestureHandlers.indexOf(handler);
|
|
36
|
-
const indexInAwaitingHandlers = this.awaitingHandlers.indexOf(handler);
|
|
37
|
-
|
|
38
|
-
if (indexInGestureHandlers >= 0) {
|
|
39
|
-
this.gestureHandlers.splice(indexInGestureHandlers, 1);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (indexInAwaitingHandlers >= 0) {
|
|
43
|
-
this.awaitingHandlers.splice(indexInAwaitingHandlers, 1);
|
|
44
|
-
this.awaitingHandlersTags.delete(handler.handlerTag);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
private cleanupFinishedHandlers(): void {
|
|
49
|
-
const handlersToRemove = new Set<IGestureHandler>();
|
|
50
|
-
|
|
51
|
-
for (let i = this.gestureHandlers.length - 1; i >= 0; --i) {
|
|
52
|
-
const handler = this.gestureHandlers[i];
|
|
53
|
-
|
|
54
|
-
if (this.isFinished(handler.state) && !handler.awaiting) {
|
|
55
|
-
this.cleanHandler(handler);
|
|
56
|
-
handlersToRemove.add(handler);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
this.gestureHandlers = this.gestureHandlers.filter(
|
|
61
|
-
(handler) => !handlersToRemove.has(handler)
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
private hasOtherHandlerToWaitFor(handler: IGestureHandler): boolean {
|
|
66
|
-
const hasToWaitFor = (otherHandler: IGestureHandler) => {
|
|
67
|
-
return (
|
|
68
|
-
!this.isFinished(otherHandler.state) &&
|
|
69
|
-
this.shouldHandlerWaitForOther(handler, otherHandler)
|
|
70
|
-
);
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
return this.gestureHandlers.some(hasToWaitFor);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
private shouldBeCancelledByFinishedHandler(
|
|
77
|
-
handler: IGestureHandler
|
|
78
|
-
): boolean {
|
|
79
|
-
const shouldBeCancelled = (otherHandler: IGestureHandler) => {
|
|
80
|
-
return (
|
|
81
|
-
this.shouldHandlerWaitForOther(handler, otherHandler) &&
|
|
82
|
-
otherHandler.state === State.END
|
|
83
|
-
);
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
return this.gestureHandlers.some(shouldBeCancelled);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
private tryActivate(handler: IGestureHandler): void {
|
|
90
|
-
if (this.shouldBeCancelledByFinishedHandler(handler)) {
|
|
91
|
-
handler.cancel();
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (this.hasOtherHandlerToWaitFor(handler)) {
|
|
96
|
-
this.addAwaitingHandler(handler);
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
const handlerState = handler.state;
|
|
101
|
-
|
|
102
|
-
if (handlerState === State.CANCELLED || handlerState === State.FAILED) {
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
if (this.shouldActivate(handler)) {
|
|
107
|
-
this.makeActive(handler);
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
if (handlerState === State.ACTIVE) {
|
|
112
|
-
handler.fail();
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
if (handlerState === State.BEGAN) {
|
|
117
|
-
handler.cancel();
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
private shouldActivate(handler: IGestureHandler): boolean {
|
|
122
|
-
const shouldBeCancelledBy = (otherHandler: IGestureHandler) => {
|
|
123
|
-
return this.shouldHandlerBeCancelledBy(handler, otherHandler);
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
return !this.gestureHandlers.some(shouldBeCancelledBy);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
private cleanupAwaitingHandlers(handler: IGestureHandler): void {
|
|
130
|
-
const shouldWait = (otherHandler: IGestureHandler) => {
|
|
131
|
-
return (
|
|
132
|
-
!otherHandler.awaiting &&
|
|
133
|
-
this.shouldHandlerWaitForOther(otherHandler, handler)
|
|
134
|
-
);
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
for (const otherHandler of this.awaitingHandlers) {
|
|
138
|
-
if (shouldWait(otherHandler)) {
|
|
139
|
-
this.cleanHandler(otherHandler);
|
|
140
|
-
this.awaitingHandlersTags.delete(otherHandler.handlerTag);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
this.awaitingHandlers = this.awaitingHandlers.filter((otherHandler) =>
|
|
145
|
-
this.awaitingHandlersTags.has(otherHandler.handlerTag)
|
|
146
|
-
);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
public onHandlerStateChange(
|
|
150
|
-
handler: IGestureHandler,
|
|
151
|
-
newState: State,
|
|
152
|
-
oldState: State,
|
|
153
|
-
sendIfDisabled?: boolean
|
|
154
|
-
): void {
|
|
155
|
-
if (!handler.enabled && !sendIfDisabled) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
this.handlingChangeSemaphore += 1;
|
|
160
|
-
|
|
161
|
-
if (this.isFinished(newState)) {
|
|
162
|
-
for (const otherHandler of this.awaitingHandlers) {
|
|
163
|
-
if (
|
|
164
|
-
!this.shouldHandlerWaitForOther(otherHandler, handler) ||
|
|
165
|
-
!this.awaitingHandlersTags.has(otherHandler.handlerTag)
|
|
166
|
-
) {
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
if (newState !== State.END) {
|
|
171
|
-
this.tryActivate(otherHandler);
|
|
172
|
-
continue;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
otherHandler.cancel();
|
|
176
|
-
|
|
177
|
-
if (otherHandler.state === State.END) {
|
|
178
|
-
// Handle edge case, where discrete gestures end immediately after activation thus
|
|
179
|
-
// their state is set to END and when the gesture they are waiting for activates they
|
|
180
|
-
// should be cancelled, however `cancel` was never sent as gestures were already in the END state.
|
|
181
|
-
// Send synthetic BEGAN -> CANCELLED to properly handle JS logic
|
|
182
|
-
otherHandler.sendEvent(State.CANCELLED, State.BEGAN);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
otherHandler.awaiting = false;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
if (newState === State.ACTIVE) {
|
|
190
|
-
this.tryActivate(handler);
|
|
191
|
-
} else if (oldState === State.ACTIVE || oldState === State.END) {
|
|
192
|
-
if (handler.active) {
|
|
193
|
-
handler.sendEvent(newState, oldState);
|
|
194
|
-
} else if (
|
|
195
|
-
oldState === State.ACTIVE &&
|
|
196
|
-
(newState === State.CANCELLED || newState === State.FAILED)
|
|
197
|
-
) {
|
|
198
|
-
handler.sendEvent(newState, State.BEGAN);
|
|
199
|
-
}
|
|
200
|
-
} else if (
|
|
201
|
-
oldState !== State.UNDETERMINED ||
|
|
202
|
-
newState !== State.CANCELLED
|
|
203
|
-
) {
|
|
204
|
-
handler.sendEvent(newState, oldState);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
this.handlingChangeSemaphore -= 1;
|
|
208
|
-
|
|
209
|
-
this.scheduleFinishedHandlersCleanup();
|
|
210
|
-
|
|
211
|
-
if (!this.awaitingHandlers.includes(handler)) {
|
|
212
|
-
this.cleanupAwaitingHandlers(handler);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
private makeActive(handler: IGestureHandler): void {
|
|
217
|
-
const currentState = handler.state;
|
|
218
|
-
|
|
219
|
-
handler.active = true;
|
|
220
|
-
handler.shouldResetProgress = true;
|
|
221
|
-
handler.activationIndex = this.activationIndex++;
|
|
222
|
-
|
|
223
|
-
for (let i = this.gestureHandlers.length - 1; i >= 0; --i) {
|
|
224
|
-
if (this.shouldHandlerBeCancelledBy(this.gestureHandlers[i], handler)) {
|
|
225
|
-
this.gestureHandlers[i].cancel();
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
for (const otherHandler of this.awaitingHandlers) {
|
|
230
|
-
if (this.shouldHandlerBeCancelledBy(otherHandler, handler)) {
|
|
231
|
-
otherHandler.awaiting = false;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
handler.sendEvent(State.ACTIVE, State.BEGAN);
|
|
236
|
-
|
|
237
|
-
if (currentState !== State.ACTIVE) {
|
|
238
|
-
handler.sendEvent(State.END, State.ACTIVE);
|
|
239
|
-
if (currentState !== State.END) {
|
|
240
|
-
handler.sendEvent(State.UNDETERMINED, State.END);
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
if (!handler.awaiting) {
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
handler.awaiting = false;
|
|
249
|
-
|
|
250
|
-
this.awaitingHandlers = this.awaitingHandlers.filter(
|
|
251
|
-
(otherHandler) => otherHandler !== handler
|
|
252
|
-
);
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
private addAwaitingHandler(handler: IGestureHandler): void {
|
|
256
|
-
if (this.awaitingHandlers.includes(handler)) {
|
|
257
|
-
return;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
this.awaitingHandlers.push(handler);
|
|
261
|
-
this.awaitingHandlersTags.add(handler.handlerTag);
|
|
262
|
-
|
|
263
|
-
handler.awaiting = true;
|
|
264
|
-
handler.activationIndex = this.activationIndex++;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
public recordHandlerIfNotPresent(handler: IGestureHandler): void {
|
|
268
|
-
if (this.gestureHandlers.includes(handler)) {
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
this.gestureHandlers.push(handler);
|
|
273
|
-
|
|
274
|
-
handler.active = false;
|
|
275
|
-
handler.awaiting = false;
|
|
276
|
-
handler.activationIndex = Number.MAX_SAFE_INTEGER;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
private shouldHandlerWaitForOther(
|
|
280
|
-
handler: IGestureHandler,
|
|
281
|
-
otherHandler: IGestureHandler
|
|
282
|
-
): boolean {
|
|
283
|
-
return (
|
|
284
|
-
handler !== otherHandler &&
|
|
285
|
-
(handler.shouldWaitForHandlerFailure(otherHandler) ||
|
|
286
|
-
otherHandler.shouldRequireToWaitForFailure(handler))
|
|
287
|
-
);
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
private canRunSimultaneously(
|
|
291
|
-
gh1: IGestureHandler,
|
|
292
|
-
gh2: IGestureHandler
|
|
293
|
-
): boolean {
|
|
294
|
-
return (
|
|
295
|
-
gh1 === gh2 ||
|
|
296
|
-
gh1.shouldRecognizeSimultaneously(gh2) ||
|
|
297
|
-
gh2.shouldRecognizeSimultaneously(gh1)
|
|
298
|
-
);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
private shouldHandlerBeCancelledBy(
|
|
302
|
-
handler: IGestureHandler,
|
|
303
|
-
otherHandler: IGestureHandler
|
|
304
|
-
): boolean {
|
|
305
|
-
if (this.canRunSimultaneously(handler, otherHandler)) {
|
|
306
|
-
return false;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
if (handler.awaiting || handler.state === State.ACTIVE) {
|
|
310
|
-
return handler.shouldBeCancelledByOther(otherHandler);
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
const handlerPointers: number[] = handler.getTrackedPointersID();
|
|
314
|
-
const otherPointers: number[] = otherHandler.getTrackedPointersID();
|
|
315
|
-
|
|
316
|
-
if (
|
|
317
|
-
!PointerTracker.shareCommonPointers(handlerPointers, otherPointers) &&
|
|
318
|
-
handler.delegate.view !== otherHandler.delegate.view
|
|
319
|
-
) {
|
|
320
|
-
return this.checkOverlap(handler, otherHandler);
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
return true;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
private checkOverlap(
|
|
327
|
-
handler: IGestureHandler,
|
|
328
|
-
otherHandler: IGestureHandler
|
|
329
|
-
): boolean {
|
|
330
|
-
// If handlers don't have common pointers, default return value is false.
|
|
331
|
-
// However, if at least on pointer overlaps with both handlers, we return true
|
|
332
|
-
// This solves issue in overlapping parents example
|
|
333
|
-
|
|
334
|
-
// TODO: Find better way to handle that issue, for example by activation order and handler cancelling
|
|
335
|
-
|
|
336
|
-
const isPointerWithinBothBounds = (pointer: number) => {
|
|
337
|
-
const point = handler.tracker.getLastAbsoluteCoords(pointer);
|
|
338
|
-
|
|
339
|
-
return (
|
|
340
|
-
point &&
|
|
341
|
-
handler.delegate.isPointerInBounds(point) &&
|
|
342
|
-
otherHandler.delegate.isPointerInBounds(point)
|
|
343
|
-
);
|
|
344
|
-
};
|
|
345
|
-
|
|
346
|
-
return handler.getTrackedPointersID().some(isPointerWithinBothBounds);
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
private isFinished(state: State): boolean {
|
|
350
|
-
return (
|
|
351
|
-
state === State.END || state === State.FAILED || state === State.CANCELLED
|
|
352
|
-
);
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
// This function is called when handler receives touchdown event
|
|
356
|
-
// If handler is using mouse or pen as a pointer and any handler receives touch event,
|
|
357
|
-
// mouse/pen event dissappears - it doesn't send onPointerCancel nor onPointerUp (and others)
|
|
358
|
-
// This became a problem because handler was left at active state without any signal to end or fail
|
|
359
|
-
// To handle this, when new touch event is received, we loop through active handlers and check which type of
|
|
360
|
-
// pointer they're using. If there are any handler with mouse/pen as a pointer, we cancel them
|
|
361
|
-
public cancelMouseAndPenGestures(currentHandler: IGestureHandler): void {
|
|
362
|
-
this.gestureHandlers.forEach((handler: IGestureHandler) => {
|
|
363
|
-
if (
|
|
364
|
-
handler.pointerType !== PointerType.MOUSE &&
|
|
365
|
-
handler.pointerType !== PointerType.STYLUS
|
|
366
|
-
) {
|
|
367
|
-
return;
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
if (handler !== currentHandler) {
|
|
371
|
-
handler.cancel();
|
|
372
|
-
} else {
|
|
373
|
-
// Handler that received touch event should have its pointer tracker reset
|
|
374
|
-
// This allows handler to smoothly change from mouse/pen to touch
|
|
375
|
-
// The drawback is, that when we try to use mouse/pen one more time, it doesn't send onPointerDown at the first time
|
|
376
|
-
// so it is required to click two times to get handler to work
|
|
377
|
-
//
|
|
378
|
-
// However, handler will receive manually created onPointerEnter that is triggered in EventManager in onPointerMove method.
|
|
379
|
-
// There may be possibility to use that fact to make handler respond properly to first mouse click
|
|
380
|
-
handler.tracker.resetTracker();
|
|
381
|
-
}
|
|
382
|
-
});
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
public static get instance(): GestureHandlerOrchestrator {
|
|
386
|
-
if (!GestureHandlerOrchestrator._instance) {
|
|
387
|
-
GestureHandlerOrchestrator._instance = new GestureHandlerOrchestrator();
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
return GestureHandlerOrchestrator._instance;
|
|
391
|
-
}
|
|
392
|
-
}
|