react-native-gesture-handler 2.22.1 → 2.23.0
Sign up to get free protection for your applications and to get access to all the features.
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +14 -0
- package/android/src/main/jni/cpp-adapter.cpp +19 -12
- package/apple/RNGestureHandler.mm +15 -8
- package/apple/RNGestureHandlerModule.mm +17 -5
- package/lib/commonjs/ActionType.js +3 -3
- package/lib/commonjs/ActionType.js.map +1 -1
- package/lib/commonjs/Directions.js +11 -8
- package/lib/commonjs/Directions.js.map +1 -1
- package/lib/commonjs/EnableNewWebImplementation.js +2 -10
- package/lib/commonjs/EnableNewWebImplementation.js.map +1 -1
- package/lib/commonjs/GestureHandlerRootViewContext.js +2 -7
- package/lib/commonjs/GestureHandlerRootViewContext.js.map +1 -1
- package/lib/commonjs/PlatformConstants.js +1 -6
- package/lib/commonjs/PlatformConstants.js.map +1 -1
- package/lib/commonjs/PlatformConstants.web.js +1 -3
- package/lib/commonjs/PlatformConstants.web.js.map +1 -1
- package/lib/commonjs/PointerType.js +3 -5
- package/lib/commonjs/PointerType.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.js +2 -6
- package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.web.js +13 -39
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/RNGestureHandlerModule.windows.js +22 -32
- package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/commonjs/RNRenderer.js +1 -3
- package/lib/commonjs/RNRenderer.js.map +1 -1
- package/lib/commonjs/RNRenderer.web.js +1 -2
- package/lib/commonjs/RNRenderer.web.js.map +1 -1
- package/lib/commonjs/State.js +4 -3
- package/lib/commonjs/State.js.map +1 -1
- package/lib/commonjs/TouchEventType.js +3 -3
- package/lib/commonjs/TouchEventType.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js +96 -115
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js +36 -80
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/GestureButtonsProps.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.js +26 -37
- package/lib/commonjs/components/GestureComponents.js.map +1 -1
- package/lib/commonjs/components/GestureComponents.web.js +13 -27
- package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.js +2 -6
- package/lib/commonjs/components/GestureHandlerButton.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerButton.web.js +4 -12
- package/lib/commonjs/components/GestureHandlerButton.web.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.android.js +4 -15
- package/lib/commonjs/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.js +4 -14
- package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
- package/lib/commonjs/components/GestureHandlerRootView.web.js +4 -13
- package/lib/commonjs/components/GestureHandlerRootView.web.js.map +1 -1
- package/lib/commonjs/components/Pressable/Pressable.js +46 -78
- package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
- package/lib/commonjs/components/Pressable/PressableProps.js.map +1 -1
- package/lib/commonjs/components/Pressable/index.js +1 -3
- package/lib/commonjs/components/Pressable/index.js.map +1 -1
- package/lib/commonjs/components/Pressable/utils.js +5 -20
- package/lib/commonjs/components/Pressable/utils.js.map +1 -1
- package/lib/commonjs/components/ReanimatedDrawerLayout.js +38 -76
- package/lib/commonjs/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/commonjs/components/ReanimatedSwipeable.js +61 -59
- package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -1
- package/lib/commonjs/components/Swipeable.js +34 -75
- package/lib/commonjs/components/Swipeable.js.map +1 -1
- package/lib/commonjs/components/Text.js +18 -26
- package/lib/commonjs/components/Text.js.map +1 -1
- package/lib/commonjs/components/gestureHandlerRootHOC.js +5 -14
- package/lib/commonjs/components/gestureHandlerRootHOC.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchable.js +40 -76
- package/lib/commonjs/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/commonjs/components/touchables/GenericTouchableProps.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableHighlight.js +20 -33
- package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +17 -31
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +5 -4
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedbackProps.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js +17 -24
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +12 -13
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/commonjs/components/touchables/index.js +7 -12
- package/lib/commonjs/components/touchables/index.js.map +1 -1
- package/lib/commonjs/findNodeHandle.js +1 -4
- package/lib/commonjs/findNodeHandle.js.map +1 -1
- package/lib/commonjs/findNodeHandle.web.js +9 -10
- package/lib/commonjs/findNodeHandle.web.js.map +1 -1
- package/lib/commonjs/getReactNativeVersion.js +1 -6
- package/lib/commonjs/getReactNativeVersion.js.map +1 -1
- package/lib/commonjs/getReactNativeVersion.web.js +0 -1
- package/lib/commonjs/getReactNativeVersion.web.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.js +13 -14
- package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
- package/lib/commonjs/getShadowNodeFromRef.web.js +0 -1
- package/lib/commonjs/getShadowNodeFromRef.web.js.map +1 -1
- package/lib/commonjs/ghQueueMicrotask.js +1 -2
- package/lib/commonjs/ghQueueMicrotask.js.map +1 -1
- package/lib/commonjs/handlers/FlingGestureHandler.js +16 -10
- package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +20 -23
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/GestureHandlerEventPayload.js.map +1 -1
- package/lib/commonjs/handlers/LongPressGestureHandler.js +16 -10
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/NativeViewGestureHandler.js +17 -12
- package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js +20 -31
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PinchGestureHandler.js +14 -8
- package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PressabilityDebugView.js +0 -1
- package/lib/commonjs/handlers/PressabilityDebugView.js.map +1 -1
- package/lib/commonjs/handlers/PressabilityDebugView.web.js +0 -1
- package/lib/commonjs/handlers/PressabilityDebugView.web.js.map +1 -1
- package/lib/commonjs/handlers/RotationGestureHandler.js +14 -8
- package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/TapGestureHandler.js +16 -10
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +55 -135
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/createNativeWrapper.js +17 -27
- package/lib/commonjs/handlers/createNativeWrapper.js.map +1 -1
- package/lib/commonjs/handlers/customDirectEventTypes.js +0 -1
- package/lib/commonjs/handlers/customDirectEventTypes.js.map +1 -1
- package/lib/commonjs/handlers/customDirectEventTypes.web.js +1 -2
- package/lib/commonjs/handlers/customDirectEventTypes.web.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerCommon.js +9 -10
- package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/commonjs/handlers/gestureHandlerTypesCompat.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js +5 -14
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js +10 -20
- package/lib/commonjs/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js +9 -29
- package/lib/commonjs/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js +1 -10
- package/lib/commonjs/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js +12 -37
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js +0 -3
- package/lib/commonjs/handlers/gestures/GestureDetector/needsToReattach.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/types.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js +12 -24
- package/lib/commonjs/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js +12 -48
- package/lib/commonjs/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js +3 -13
- package/lib/commonjs/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js +2 -9
- package/lib/commonjs/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +8 -16
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +28 -56
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/commonjs/handlers/gestures/eventReceiver.js +14 -46
- package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/commonjs/handlers/gestures/flingGesture.js +5 -12
- package/lib/commonjs/handlers/gestures/flingGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js +8 -19
- package/lib/commonjs/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gesture.js +44 -84
- package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureComposition.js +17 -31
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureObjects.js +1 -27
- package/lib/commonjs/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.js +3 -9
- package/lib/commonjs/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +2 -7
- package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -1
- package/lib/commonjs/handlers/gestures/hoverGesture.js +11 -25
- package/lib/commonjs/handlers/gestures/hoverGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/longPressGesture.js +6 -14
- package/lib/commonjs/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/manualGesture.js +0 -6
- package/lib/commonjs/handlers/gestures/manualGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/nativeGesture.js +5 -12
- package/lib/commonjs/handlers/gestures/nativeGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/panGesture.js +18 -43
- package/lib/commonjs/handlers/gestures/panGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/pinchGesture.js +2 -9
- package/lib/commonjs/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js +1 -8
- package/lib/commonjs/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/commonjs/handlers/gestures/rotationGesture.js +2 -9
- package/lib/commonjs/handlers/gestures/rotationGesture.js.map +1 -1
- package/lib/commonjs/handlers/gestures/tapGesture.js +10 -22
- package/lib/commonjs/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/commonjs/handlers/getNextHandlerTag.js +0 -1
- package/lib/commonjs/handlers/getNextHandlerTag.js.map +1 -1
- package/lib/commonjs/handlers/handlersRegistry.js +11 -21
- package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
- package/lib/commonjs/handlers/utils.js +6 -26
- package/lib/commonjs/handlers/utils.js.map +1 -1
- package/lib/commonjs/index.js +75 -104
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/init.js +4 -11
- package/lib/commonjs/init.js.map +1 -1
- package/lib/commonjs/jestUtils/index.js +4 -5
- package/lib/commonjs/jestUtils/index.js.map +1 -1
- package/lib/commonjs/jestUtils/jestUtils.js +19 -83
- package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
- package/lib/commonjs/mocks.js +5 -15
- package/lib/commonjs/mocks.js.map +1 -1
- package/lib/commonjs/mountRegistry.js +3 -12
- package/lib/commonjs/mountRegistry.js.map +1 -1
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +1 -5
- package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +2 -7
- package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +2 -7
- package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
- package/lib/commonjs/typeUtils.js.map +1 -1
- package/lib/commonjs/utils.js +15 -30
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/Gestures.js +5 -23
- package/lib/commonjs/web/Gestures.js.map +1 -1
- package/lib/commonjs/web/constants.js +2 -4
- package/lib/commonjs/web/constants.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +26 -62
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +36 -65
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +12 -55
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +160 -273
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/HoverGestureHandler.js +8 -21
- package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/IGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +12 -53
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/ManualGestureHandler.js +1 -11
- package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +21 -62
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +23 -138
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +19 -56
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +16 -54
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +10 -71
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/interfaces.js +9 -17
- package/lib/commonjs/web/interfaces.js.map +1 -1
- package/lib/commonjs/web/tools/CircularBuffer.js +17 -29
- package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -1
- package/lib/commonjs/web/tools/EventManager.js +7 -41
- package/lib/commonjs/web/tools/EventManager.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +51 -118
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +37 -58
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/InteractionManager.js +21 -40
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
- package/lib/commonjs/web/tools/KeyboardEventManager.js +4 -26
- package/lib/commonjs/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/LeastSquareSolver.js +30 -67
- package/lib/commonjs/web/tools/LeastSquareSolver.js.map +1 -1
- package/lib/commonjs/web/tools/NodeManager.js +9 -16
- package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerEventManager.js +10 -45
- package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerTracker.js +24 -60
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
- package/lib/commonjs/web/tools/Vector.js +3 -18
- package/lib/commonjs/web/tools/Vector.js.map +1 -1
- package/lib/commonjs/web/tools/VelocityTracker.js +10 -32
- package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -1
- package/lib/commonjs/web/tools/WheelEventManager.js +4 -17
- package/lib/commonjs/web/tools/WheelEventManager.js.map +1 -1
- package/lib/commonjs/web/utils.js +26 -55
- package/lib/commonjs/web/utils.js.map +1 -1
- package/lib/commonjs/web_hammer/DiscreteGestureHandler.js +7 -19
- package/lib/commonjs/web_hammer/DiscreteGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/DraggingGestureHandler.js +3 -13
- package/lib/commonjs/web_hammer/DraggingGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/Errors.js +0 -3
- package/lib/commonjs/web_hammer/Errors.js.map +1 -1
- package/lib/commonjs/web_hammer/FlingGestureHandler.js +13 -44
- package/lib/commonjs/web_hammer/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/GestureHandler.js +55 -142
- package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js +2 -11
- package/lib/commonjs/web_hammer/IndiscreteGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/LongPressGestureHandler.js +5 -19
- package/lib/commonjs/web_hammer/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js +16 -24
- package/lib/commonjs/web_hammer/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/NodeManager.js +9 -16
- package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
- package/lib/commonjs/web_hammer/PanGestureHandler.js +8 -49
- package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/PinchGestureHandler.js +2 -11
- package/lib/commonjs/web_hammer/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/PressGestureHandler.js +15 -43
- package/lib/commonjs/web_hammer/PressGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/RotationGestureHandler.js +2 -13
- package/lib/commonjs/web_hammer/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/TapGestureHandler.js +33 -52
- package/lib/commonjs/web_hammer/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web_hammer/constants.js +13 -26
- package/lib/commonjs/web_hammer/constants.js.map +1 -1
- package/lib/commonjs/web_hammer/utils.js +4 -14
- package/lib/commonjs/web_hammer/utils.js.map +1 -1
- package/lib/module/ActionType.js +3 -1
- package/lib/module/ActionType.js.map +1 -1
- package/lib/module/Directions.js +9 -3
- package/lib/module/Directions.js.map +1 -1
- package/lib/module/EnableNewWebImplementation.js +2 -5
- package/lib/module/EnableNewWebImplementation.js.map +1 -1
- package/lib/module/GestureHandlerRootViewContext.js.map +1 -1
- package/lib/module/PlatformConstants.js +0 -1
- package/lib/module/PlatformConstants.js.map +1 -1
- package/lib/module/PlatformConstants.web.js +0 -1
- package/lib/module/PlatformConstants.web.js.map +1 -1
- package/lib/module/PointerType.js +3 -4
- package/lib/module/PointerType.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.js +1 -0
- package/lib/module/RNGestureHandlerModule.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +12 -22
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.windows.js +18 -17
- package/lib/module/RNGestureHandlerModule.windows.js.map +1 -1
- package/lib/module/RNRenderer.js.map +1 -1
- package/lib/module/RNRenderer.web.js.map +1 -1
- package/lib/module/State.js +4 -1
- package/lib/module/State.js.map +1 -1
- package/lib/module/TouchEventType.js +3 -1
- package/lib/module/TouchEventType.js.map +1 -1
- package/lib/module/components/DrawerLayout.js +87 -99
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js +27 -55
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/GestureButtonsProps.js.map +1 -1
- package/lib/module/components/GestureComponents.js +17 -12
- package/lib/module/components/GestureComponents.js.map +1 -1
- package/lib/module/components/GestureComponents.web.js +4 -4
- package/lib/module/components/GestureComponents.web.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.js.map +1 -1
- package/lib/module/components/GestureHandlerButton.web.js +1 -2
- package/lib/module/components/GestureHandlerButton.web.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.android.js +1 -2
- package/lib/module/components/GestureHandlerRootView.android.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.js +1 -2
- package/lib/module/components/GestureHandlerRootView.js.map +1 -1
- package/lib/module/components/GestureHandlerRootView.web.js +1 -2
- package/lib/module/components/GestureHandlerRootView.web.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +44 -61
- package/lib/module/components/Pressable/Pressable.js.map +1 -1
- package/lib/module/components/Pressable/PressableProps.js.map +1 -1
- package/lib/module/components/Pressable/index.js.map +1 -1
- package/lib/module/components/Pressable/utils.js +4 -14
- package/lib/module/components/Pressable/utils.js.map +1 -1
- package/lib/module/components/ReanimatedDrawerLayout.js +34 -56
- package/lib/module/components/ReanimatedDrawerLayout.js.map +1 -1
- package/lib/module/components/ReanimatedSwipeable.js +57 -44
- package/lib/module/components/ReanimatedSwipeable.js.map +1 -1
- package/lib/module/components/Swipeable.js +28 -59
- package/lib/module/components/Swipeable.js.map +1 -1
- package/lib/module/components/Text.js +14 -13
- package/lib/module/components/Text.js.map +1 -1
- package/lib/module/components/gestureHandlerRootHOC.js +2 -2
- package/lib/module/components/gestureHandlerRootHOC.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchable.js +34 -63
- package/lib/module/components/touchables/GenericTouchable.js.map +1 -1
- package/lib/module/components/touchables/GenericTouchableProps.js.map +1 -1
- package/lib/module/components/touchables/TouchableHighlight.js +16 -23
- package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js +11 -19
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.js +6 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedbackProps.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js +13 -14
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/components/touchables/TouchableWithoutFeedback.js +9 -2
- package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/module/components/touchables/index.js.map +1 -1
- package/lib/module/findNodeHandle.js.map +1 -1
- package/lib/module/findNodeHandle.web.js +9 -8
- package/lib/module/findNodeHandle.web.js.map +1 -1
- package/lib/module/getReactNativeVersion.js.map +1 -1
- package/lib/module/getReactNativeVersion.web.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.js +13 -13
- package/lib/module/getShadowNodeFromRef.js.map +1 -1
- package/lib/module/getShadowNodeFromRef.web.js.map +1 -1
- package/lib/module/ghQueueMicrotask.js.map +1 -1
- package/lib/module/handlers/FlingGestureHandler.js +13 -0
- package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js +16 -8
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/module/handlers/GestureHandlerEventPayload.js.map +1 -1
- package/lib/module/handlers/LongPressGestureHandler.js +13 -0
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/handlers/NativeViewGestureHandler.js +13 -0
- package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js +15 -19
- package/lib/module/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/handlers/PinchGestureHandler.js +13 -0
- package/lib/module/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/handlers/PressabilityDebugView.js.map +1 -1
- package/lib/module/handlers/PressabilityDebugView.web.js.map +1 -1
- package/lib/module/handlers/RotationGestureHandler.js +13 -0
- package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/handlers/TapGestureHandler.js +13 -0
- package/lib/module/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js +54 -108
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/createNativeWrapper.js +12 -17
- package/lib/module/handlers/createNativeWrapper.js.map +1 -1
- package/lib/module/handlers/customDirectEventTypes.js.map +1 -1
- package/lib/module/handlers/customDirectEventTypes.web.js.map +1 -1
- package/lib/module/handlers/gestureHandlerCommon.js +9 -4
- package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
- package/lib/module/handlers/gestureHandlerTypesCompat.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js +3 -4
- package/lib/module/handlers/gestures/GestureDetector/Wrap.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js +5 -6
- package/lib/module/handlers/gestures/GestureDetector/Wrap.web.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js +8 -16
- package/lib/module/handlers/gestures/GestureDetector/attachHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js +0 -1
- package/lib/module/handlers/gestures/GestureDetector/dropHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js +9 -15
- package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js +0 -2
- package/lib/module/handlers/gestures/GestureDetector/needsToReattach.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/types.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js +11 -14
- package/lib/module/handlers/gestures/GestureDetector/updateHandlers.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js +12 -39
- package/lib/module/handlers/gestures/GestureDetector/useAnimatedGesture.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js +5 -5
- package/lib/module/handlers/gestures/GestureDetector/useDetectorUpdater.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js +2 -6
- package/lib/module/handlers/gestures/GestureDetector/useMountReactions.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +7 -9
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +25 -30
- package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/module/handlers/gestures/eventReceiver.js +14 -38
- package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
- package/lib/module/handlers/gestures/flingGesture.js +5 -9
- package/lib/module/handlers/gestures/flingGesture.js.map +1 -1
- package/lib/module/handlers/gestures/forceTouchGesture.js +8 -17
- package/lib/module/handlers/gestures/forceTouchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/gesture.js +44 -73
- package/lib/module/handlers/gestures/gesture.js.map +1 -1
- package/lib/module/handlers/gestures/gestureComposition.js +16 -24
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/module/handlers/gestures/gestureObjects.js +1 -14
- package/lib/module/handlers/gestures/gestureObjects.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.js +3 -4
- package/lib/module/handlers/gestures/gestureStateManager.js.map +1 -1
- package/lib/module/handlers/gestures/gestureStateManager.web.js +0 -1
- package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -1
- package/lib/module/handlers/gestures/hoverGesture.js +9 -18
- package/lib/module/handlers/gestures/hoverGesture.js.map +1 -1
- package/lib/module/handlers/gestures/longPressGesture.js +6 -11
- package/lib/module/handlers/gestures/longPressGesture.js.map +1 -1
- package/lib/module/handlers/gestures/manualGesture.js +0 -4
- package/lib/module/handlers/gestures/manualGesture.js.map +1 -1
- package/lib/module/handlers/gestures/nativeGesture.js +5 -9
- package/lib/module/handlers/gestures/nativeGesture.js.map +1 -1
- package/lib/module/handlers/gestures/panGesture.js +18 -41
- package/lib/module/handlers/gestures/panGesture.js.map +1 -1
- package/lib/module/handlers/gestures/pinchGesture.js +2 -7
- package/lib/module/handlers/gestures/pinchGesture.js.map +1 -1
- package/lib/module/handlers/gestures/reanimatedWrapper.js +0 -5
- package/lib/module/handlers/gestures/reanimatedWrapper.js.map +1 -1
- package/lib/module/handlers/gestures/rotationGesture.js +2 -7
- package/lib/module/handlers/gestures/rotationGesture.js.map +1 -1
- package/lib/module/handlers/gestures/tapGesture.js +10 -19
- package/lib/module/handlers/gestures/tapGesture.js.map +1 -1
- package/lib/module/handlers/getNextHandlerTag.js.map +1 -1
- package/lib/module/handlers/handlersRegistry.js +6 -8
- package/lib/module/handlers/handlersRegistry.js.map +1 -1
- package/lib/module/handlers/utils.js +4 -13
- package/lib/module/handlers/utils.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/init.js +3 -2
- package/lib/module/init.js.map +1 -1
- package/lib/module/jestUtils/index.js.map +1 -1
- package/lib/module/jestUtils/jestUtils.js +20 -66
- package/lib/module/jestUtils/jestUtils.js.map +1 -1
- package/lib/module/mocks.js +3 -7
- package/lib/module/mocks.js.map +1 -1
- package/lib/module/mountRegistry.js +3 -10
- package/lib/module/mountRegistry.js.map +1 -1
- package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -1
- package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -1
- package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
- package/lib/module/typeUtils.js.map +1 -1
- package/lib/module/utils.js +8 -13
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/Gestures.js +2 -1
- package/lib/module/web/Gestures.js.map +1 -1
- package/lib/module/web/constants.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js +26 -59
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/detectors/ScaleGestureDetector.js +36 -61
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +11 -45
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +159 -259
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/HoverGestureHandler.js +7 -13
- package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/IGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +11 -46
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/ManualGestureHandler.js +0 -6
- package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +20 -54
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +22 -129
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +18 -48
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +15 -46
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +9 -63
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/interfaces.js +9 -14
- package/lib/module/web/interfaces.js.map +1 -1
- package/lib/module/web/tools/CircularBuffer.js +17 -27
- package/lib/module/web/tools/CircularBuffer.js.map +1 -1
- package/lib/module/web/tools/EventManager.js +7 -39
- package/lib/module/web/tools/EventManager.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerDelegate.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +50 -111
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +36 -47
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/module/web/tools/InteractionManager.js +21 -35
- package/lib/module/web/tools/InteractionManager.js.map +1 -1
- package/lib/module/web/tools/KeyboardEventManager.js +3 -19
- package/lib/module/web/tools/KeyboardEventManager.js.map +1 -1
- package/lib/module/web/tools/LeastSquareSolver.js +30 -65
- package/lib/module/web/tools/LeastSquareSolver.js.map +1 -1
- package/lib/module/web/tools/NodeManager.js +9 -14
- package/lib/module/web/tools/NodeManager.js.map +1 -1
- package/lib/module/web/tools/PointerEventManager.js +9 -35
- package/lib/module/web/tools/PointerEventManager.js.map +1 -1
- package/lib/module/web/tools/PointerTracker.js +23 -54
- package/lib/module/web/tools/PointerTracker.js.map +1 -1
- package/lib/module/web/tools/Vector.js +3 -14
- package/lib/module/web/tools/Vector.js.map +1 -1
- package/lib/module/web/tools/VelocityTracker.js +9 -26
- package/lib/module/web/tools/VelocityTracker.js.map +1 -1
- package/lib/module/web/tools/WheelEventManager.js +3 -10
- package/lib/module/web/tools/WheelEventManager.js.map +1 -1
- package/lib/module/web/utils.js +21 -40
- package/lib/module/web/utils.js.map +1 -1
- package/lib/module/web_hammer/DiscreteGestureHandler.js +4 -13
- package/lib/module/web_hammer/DiscreteGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/DraggingGestureHandler.js +0 -5
- package/lib/module/web_hammer/DraggingGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/Errors.js +0 -1
- package/lib/module/web_hammer/Errors.js.map +1 -1
- package/lib/module/web_hammer/FlingGestureHandler.js +10 -35
- package/lib/module/web_hammer/FlingGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/GestureHandler.js +53 -130
- package/lib/module/web_hammer/GestureHandler.js.map +1 -1
- package/lib/module/web_hammer/IndiscreteGestureHandler.js +1 -6
- package/lib/module/web_hammer/IndiscreteGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/LongPressGestureHandler.js +2 -11
- package/lib/module/web_hammer/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/NativeViewGestureHandler.js +12 -12
- package/lib/module/web_hammer/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/NodeManager.js +6 -8
- package/lib/module/web_hammer/NodeManager.js.map +1 -1
- package/lib/module/web_hammer/PanGestureHandler.js +6 -40
- package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/PinchGestureHandler.js +0 -5
- package/lib/module/web_hammer/PinchGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/PressGestureHandler.js +13 -34
- package/lib/module/web_hammer/PressGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/RotationGestureHandler.js +0 -6
- package/lib/module/web_hammer/RotationGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/TapGestureHandler.js +31 -45
- package/lib/module/web_hammer/TapGestureHandler.js.map +1 -1
- package/lib/module/web_hammer/constants.js +2 -1
- package/lib/module/web_hammer/constants.js.map +1 -1
- package/lib/module/web_hammer/utils.js +2 -2
- package/lib/module/web_hammer/utils.js.map +1 -1
- package/lib/typescript/components/DrawerLayout.d.ts +27 -0
- package/lib/typescript/components/GestureButtonsProps.d.ts +18 -2
- package/lib/typescript/components/Pressable/PressableProps.d.ts +3 -10
- package/lib/typescript/components/Pressable/index.d.ts +1 -1
- package/lib/typescript/components/ReanimatedSwipeable.d.ts +6 -0
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +5 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +2 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +5 -1
- package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +3 -0
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +5 -0
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +6 -0
- package/lib/typescript/handlers/FlingGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/LongPressGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/PanGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/PinchGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/RotationGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/TapGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/handlersRegistry.d.ts +1 -0
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/utils.d.ts +1 -1
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +7 -7
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +8 -8
- package/lib/typescript/web/handlers/GestureHandler.d.ts +33 -28
- package/lib/typescript/web/handlers/IGestureHandler.d.ts +12 -13
- package/lib/typescript/web/tools/CircularBuffer.d.ts +3 -3
- package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +1 -1
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +2 -2
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +3 -2
- package/lib/typescript/web/tools/InteractionManager.d.ts +2 -2
- package/lib/typescript/web/tools/NodeManager.d.ts +1 -1
- package/lib/typescript/web/tools/PointerTracker.d.ts +4 -4
- package/lib/typescript/web/tools/VelocityTracker.d.ts +1 -1
- package/package.json +2 -2
- package/src/RNGestureHandlerModule.web.ts +2 -2
- package/src/components/DrawerLayout.tsx +29 -0
- package/src/components/GestureButtons.tsx +13 -2
- package/src/components/GestureButtonsProps.ts +31 -2
- package/src/components/Pressable/Pressable.tsx +22 -5
- package/src/components/Pressable/PressableProps.tsx +4 -11
- package/src/components/Pressable/index.ts +4 -1
- package/src/components/ReanimatedSwipeable.tsx +97 -66
- package/src/components/Text.tsx +13 -4
- package/src/components/touchables/TouchableHighlight.tsx +5 -0
- package/src/components/touchables/TouchableNativeFeedback.android.tsx +2 -0
- package/src/components/touchables/TouchableNativeFeedback.tsx +6 -1
- package/src/components/touchables/TouchableNativeFeedbackProps.tsx +3 -0
- package/src/components/touchables/TouchableOpacity.tsx +5 -0
- package/src/components/touchables/TouchableWithoutFeedback.tsx +6 -0
- package/src/findNodeHandle.web.ts +6 -0
- package/src/handlers/FlingGestureHandler.ts +10 -0
- package/src/handlers/ForceTouchGestureHandler.ts +9 -0
- package/src/handlers/LongPressGestureHandler.ts +10 -0
- package/src/handlers/NativeViewGestureHandler.ts +10 -0
- package/src/handlers/PanGestureHandler.ts +10 -0
- package/src/handlers/PinchGestureHandler.ts +10 -0
- package/src/handlers/RotationGestureHandler.ts +10 -0
- package/src/handlers/TapGestureHandler.ts +10 -0
- package/src/handlers/createHandler.tsx +11 -4
- package/src/handlers/gestures/GestureDetector/index.tsx +2 -2
- package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +3 -3
- package/src/handlers/gestures/GestureDetector/utils.ts +2 -2
- package/src/handlers/handlersRegistry.ts +7 -3
- package/src/index.ts +4 -1
- package/src/utils.ts +2 -2
- package/src/web/detectors/RotationGestureDetector.ts +22 -22
- package/src/web/detectors/ScaleGestureDetector.ts +24 -24
- package/src/web/handlers/FlingGestureHandler.ts +6 -7
- package/src/web/handlers/GestureHandler.ts +115 -105
- package/src/web/handlers/HoverGestureHandler.ts +2 -2
- package/src/web/handlers/IGestureHandler.ts +12 -13
- package/src/web/handlers/LongPressGestureHandler.ts +7 -7
- package/src/web/handlers/NativeViewGestureHandler.ts +14 -19
- package/src/web/handlers/PanGestureHandler.ts +17 -17
- package/src/web/handlers/PinchGestureHandler.ts +17 -21
- package/src/web/handlers/RotationGestureHandler.ts +12 -12
- package/src/web/handlers/TapGestureHandler.ts +4 -6
- package/src/web/tools/CircularBuffer.ts +15 -15
- package/src/web/tools/GestureHandlerDelegate.ts +1 -1
- package/src/web/tools/GestureHandlerOrchestrator.ts +42 -42
- package/src/web/tools/GestureHandlerWebDelegate.ts +32 -13
- package/src/web/tools/InteractionManager.ts +16 -16
- package/src/web/tools/NodeManager.ts +2 -2
- package/src/web/tools/PointerTracker.ts +20 -20
- package/src/web/tools/Vector.ts +1 -1
- package/src/web/tools/VelocityTracker.ts +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["DrawerLayout.tsx"],"names":["DRAG_TOSS","IDLE","DRAGGING","SETTLING","DrawerLayout","Component","constructor","props","React","createRef","state","drawerPosition","drawerWidth","drawerType","dragX","dragXValue","touchX","touchXValue","drawerTranslation","containerWidth","Animated","multiply","Value","add","setValue","translationX","startPositionX","dragOffsetFromOnStartPosition","interpolate","inputRange","outputRange","openValue","extrapolate","gestureOptions","useNativeDriver","useNativeAnimations","onDrawerSlide","listener","ev","Math","floor","abs","nativeEvent","position","onGestureEvent","event","x","setState","layout","width","newState","drawerWillShow","onDrawerStateChanged","oldState","State","ACTIVE","handleRelease","emitStateChanged","drawerState","keyboardDismissMode","Keyboard","dismiss","hideStatusBar","StatusBar","setHidden","statusBarAnimation","drawerShown","drawerLockMode","closeDrawer","velocityX","gestureStartX","dragOffsetBasedOnStart","startOffsetX","projOffsetX","shouldOpen","animateDrawer","showing","accessibilityIsModalView","current","setNativeProps","accessibilityViewIsModal","pointerEventsView","pointerEvents","minSwipeDistance","edgeWidth","fromLeft","gestureOrientation","hitSlop","left","undefined","right","panGestureHandler","activeOffsetX","fromValue","toValue","velocity","speed","nextFramePosition","min","max","willShow","updateShowing","spring","bounciness","start","finished","drawerOpened","onDrawerOpen","onDrawerClose","options","forceUpdate","overlayOpacity","dynamicOverlayStyles","opacity","backgroundColor","overlayColor","onTapHandlerStateChange","styles","overlay","drawerBackgroundColor","drawerContainerStyle","contentContainerStyle","drawerSlide","containerSlide","reverseContentDirection","I18nManager","isRTL","dynamicDrawerStyles","containerStyles","containerTranslateX","transform","translateX","drawerTranslateX","closedDrawerOffset","drawerStyles","flexDirection","main","handleContainerLayout","containerOnBack","containerInFront","children","renderOverlay","drawerContainer","renderNavigationView","ref","onGestureRef","updateAnimatedEvent","shouldComponentUpdate","render","userSelect","activeCursor","mouseButton","enableContextMenu","setPanGestureRef","openingHandlerStateChange","enableTrackpadTwoFingerGesture","renderDrawer","Left","Right","StyleSheet","create","absoluteFillObject","zIndex","flex","overflow"],"mappings":"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","sourcesContent":["// This component is based on RN's DrawerLayoutAndroid API\n//\n// It perhaps deserves to be put in a separate repo, but since it relies on\n// react-native-gesture-handler library which isn't very popular at the moment I\n// decided to keep it here for the time being. It will allow us to move faster\n// and fix issues that may arise in gesture handler library that could be found\n// when using the drawer component\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport invariant from 'invariant';\nimport {\n Animated,\n StyleSheet,\n View,\n Keyboard,\n StatusBar,\n I18nManager,\n StatusBarAnimation,\n StyleProp,\n ViewStyle,\n LayoutChangeEvent,\n NativeSyntheticEvent,\n} from 'react-native';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n UserSelect,\n ActiveCursor,\n MouseButton,\n} from '../handlers/gestureHandlerCommon';\nimport { PanGestureHandler } from '../handlers/PanGestureHandler';\nimport type {\n PanGestureHandlerEventPayload,\n TapGestureHandlerEventPayload,\n} from '../handlers/GestureHandlerEventPayload';\nimport { TapGestureHandler } from '../handlers/TapGestureHandler';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\nconst IDLE: DrawerState = 'Idle';\nconst DRAGGING: DrawerState = 'Dragging';\nconst SETTLING: DrawerState = 'Settling';\n\nexport type DrawerPosition = 'left' | 'right';\n\nexport type DrawerState = 'Idle' | 'Dragging' | 'Settling';\n\nexport type DrawerType = 'front' | 'back' | 'slide';\n\nexport type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open';\n\nexport type DrawerKeyboardDismissMode = 'none' | 'on-drag';\n\n// Animated.AnimatedInterpolation has been converted to a generic type\n// in @types/react-native 0.70. This way we can maintain compatibility\n// with all versions of @types/react-native`\ntype AnimatedInterpolation = ReturnType<Animated.Value['interpolate']>;\nexport interface DrawerLayoutProps {\n /**\n * This attribute is present in the standard implementation already and is one\n * of the required params. Gesture handler version of DrawerLayout make it\n * possible for the function passed as `renderNavigationView` to take an\n * Animated value as a parameter that indicates the progress of drawer\n * opening/closing animation (progress value is 0 when closed and 1 when\n * opened). This can be used by the drawer component to animated its children\n * while the drawer is opening or closing.\n */\n renderNavigationView: (\n progressAnimatedValue: Animated.Value\n ) => React.ReactNode;\n\n drawerPosition?: DrawerPosition;\n\n drawerWidth?: number;\n\n drawerBackgroundColor?: string;\n\n drawerLockMode?: DrawerLockMode;\n\n keyboardDismissMode?: DrawerKeyboardDismissMode;\n\n /**\n * Called when the drawer is closed.\n */\n onDrawerClose?: () => void;\n\n /**\n * Called when the drawer is opened.\n */\n onDrawerOpen?: () => void;\n\n /**\n * Called when the status of the drawer changes.\n */\n onDrawerStateChanged?: (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => void;\n useNativeAnimations?: boolean;\n\n drawerType?: DrawerType;\n\n /**\n * Defines how far from the edge of the content view the gesture should\n * activate.\n */\n edgeWidth?: number;\n\n minSwipeDistance?: number;\n\n /**\n * When set to true Drawer component will use\n * {@link https://reactnative.dev/docs/statusbar StatusBar} API to hide the OS\n * status bar whenever the drawer is pulled or when its in an \"open\" state.\n */\n hideStatusBar?: boolean;\n\n /**\n * @default 'slide'\n *\n * Can be used when hideStatusBar is set to true and will select the animation\n * used for hiding/showing the status bar. See\n * {@link https://reactnative.dev/docs/statusbar StatusBar} documentation for\n * more details\n */\n statusBarAnimation?: StatusBarAnimation;\n\n /**\n * @default black\n *\n * Color of a semi-transparent overlay to be displayed on top of the content\n * view when drawer gets open. A solid color should be used as the opacity is\n * added by the Drawer itself and the opacity of the overlay is animated (from\n * 0% to 70%).\n */\n overlayColor?: string;\n\n contentContainerStyle?: StyleProp<ViewStyle>;\n\n drawerContainerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n onDrawerSlide?: (position: number) => void;\n\n onGestureRef?: (ref: PanGestureHandler) => void;\n\n // Implicit `children` prop has been removed in @types/react^18.0.0\n children?:\n | React.ReactNode\n | ((openValue?: AnimatedInterpolation) => React.ReactNode);\n\n /**\n * @default 'none'\n * Defines which userSelect property should be used.\n * Values: 'none'|'text'|'auto'\n */\n userSelect?: UserSelect;\n\n /**\n * @default 'auto'\n * Defines which cursor property should be used when gesture activates.\n * Values: see CSS cursor values\n */\n activeCursor?: ActiveCursor;\n\n /**\n * @default 'MouseButton.LEFT'\n * Allows to choose which mouse button should underlying pan handler react to.\n */\n mouseButton?: MouseButton;\n\n /**\n * @default 'false if MouseButton.RIGHT is specified'\n * Allows to enable/disable context menu.\n */\n enableContextMenu?: boolean;\n}\n\nexport type DrawerLayoutState = {\n dragX: Animated.Value;\n touchX: Animated.Value;\n drawerTranslation: Animated.Value;\n containerWidth: number;\n drawerState: DrawerState;\n drawerOpened: boolean;\n};\n\nexport type DrawerMovementOption = {\n velocity?: number;\n speed?: number;\n};\nexport default class DrawerLayout extends Component<\n DrawerLayoutProps,\n DrawerLayoutState\n> {\n static defaultProps = {\n drawerWidth: 200,\n drawerPosition: 'left',\n useNativeAnimations: true,\n drawerType: 'front',\n edgeWidth: 20,\n minSwipeDistance: 3,\n overlayColor: 'rgba(0, 0, 0, 0.7)',\n drawerLockMode: 'unlocked',\n enableTrackpadTwoFingerGesture: false,\n };\n\n constructor(props: DrawerLayoutProps) {\n super(props);\n\n const dragX = new Animated.Value(0);\n const touchX = new Animated.Value(0);\n const drawerTranslation = new Animated.Value(0);\n\n this.state = {\n dragX,\n touchX,\n drawerTranslation,\n containerWidth: 0,\n drawerState: IDLE,\n drawerOpened: false,\n };\n\n this.updateAnimatedEvent(props, this.state);\n }\n\n shouldComponentUpdate(props: DrawerLayoutProps, state: DrawerLayoutState) {\n if (\n this.props.drawerPosition !== props.drawerPosition ||\n this.props.drawerWidth !== props.drawerWidth ||\n this.props.drawerType !== props.drawerType ||\n this.state.containerWidth !== state.containerWidth\n ) {\n this.updateAnimatedEvent(props, state);\n }\n\n return true;\n }\n\n private openValue?: AnimatedInterpolation;\n private onGestureEvent?: (\n event: GestureEvent<PanGestureHandlerEventPayload>\n ) => void;\n private accessibilityIsModalView = React.createRef<View>();\n private pointerEventsView = React.createRef<View>();\n private panGestureHandler = React.createRef<PanGestureHandler | null>();\n private drawerShown = false;\n\n static positions = {\n Left: 'left',\n Right: 'right',\n };\n\n private updateAnimatedEvent = (\n props: DrawerLayoutProps,\n state: DrawerLayoutState\n ) => {\n // Event definition is based on\n const { drawerPosition, drawerWidth, drawerType } = props;\n const {\n dragX: dragXValue,\n touchX: touchXValue,\n drawerTranslation,\n containerWidth,\n } = state;\n\n let dragX = dragXValue;\n let touchX = touchXValue;\n\n if (drawerPosition !== 'left') {\n // Most of the code is written in a way to handle left-side drawer. In\n // order to handle right-side drawer the only thing we need to do is to\n // reverse events coming from gesture handler in a way they emulate\n // left-side drawer gestures. E.g. dragX is simply -dragX, and touchX is\n // calulcated by subtracing real touchX from the width of the container\n // (such that when touch happens at the right edge the value is simply 0)\n dragX = Animated.multiply(\n new Animated.Value(-1),\n dragXValue\n ) as Animated.Value; // TODO(TS): (for all \"as\" in this file) make sure we can map this\n touchX = Animated.add(\n new Animated.Value(containerWidth),\n Animated.multiply(new Animated.Value(-1), touchXValue)\n ) as Animated.Value; // TODO(TS): make sure we can map this;\n touchXValue.setValue(containerWidth);\n } else {\n touchXValue.setValue(0);\n }\n\n // While closing the drawer when user starts gesture outside of its area (in greyed\n // out part of the window), we want the drawer to follow only once finger reaches the\n // edge of the drawer.\n // E.g. on the diagram below drawer is illustrate by X signs and the greyed out area by\n // dots. The touch gesture starts at '*' and moves left, touch path is indicated by\n // an arrow pointing left\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n //\n // For the above to work properly we define animated value that will keep\n // start position of the gesture. Then we use that value to calculate how\n // much we need to subtract from the dragX. If the gesture started on the\n // greyed out area we take the distance from the edge of the drawer to the\n // start position. Otherwise we don't subtract at all and the drawer be\n // pulled back as soon as you start the pan.\n //\n // This is used only when drawerType is \"front\"\n //\n let translationX = dragX;\n if (drawerType === 'front') {\n const startPositionX = Animated.add(\n touchX,\n Animated.multiply(new Animated.Value(-1), dragX)\n );\n\n const dragOffsetFromOnStartPosition = startPositionX.interpolate({\n inputRange: [drawerWidth! - 1, drawerWidth!, drawerWidth! + 1],\n outputRange: [0, 0, 1],\n });\n translationX = Animated.add(\n dragX,\n dragOffsetFromOnStartPosition\n ) as Animated.Value; // TODO: as above\n }\n\n this.openValue = Animated.add(translationX, drawerTranslation).interpolate({\n inputRange: [0, drawerWidth!],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n });\n\n const gestureOptions: {\n useNativeDriver: boolean;\n // TODO: make sure it is correct\n listener?: (\n ev: NativeSyntheticEvent<PanGestureHandlerEventPayload>\n ) => void;\n } = {\n useNativeDriver: props.useNativeAnimations!,\n };\n\n if (this.props.onDrawerSlide) {\n gestureOptions.listener = (ev) => {\n const translationX = Math.floor(Math.abs(ev.nativeEvent.translationX));\n const position = translationX / this.state.containerWidth;\n\n this.props.onDrawerSlide?.(position);\n };\n }\n\n this.onGestureEvent = Animated.event(\n [{ nativeEvent: { translationX: dragXValue, x: touchXValue } }],\n gestureOptions\n );\n };\n\n private handleContainerLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n this.setState({ containerWidth: nativeEvent.layout.width });\n };\n\n private emitStateChanged = (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => {\n this.props.onDrawerStateChanged?.(newState, drawerWillShow);\n };\n\n private openingHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent<PanGestureHandlerEventPayload>) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease({ nativeEvent });\n } else if (nativeEvent.state === State.ACTIVE) {\n this.emitStateChanged(DRAGGING, false);\n this.setState({ drawerState: DRAGGING });\n if (this.props.keyboardDismissMode === 'on-drag') {\n Keyboard.dismiss();\n }\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(true, this.props.statusBarAnimation || 'slide');\n }\n }\n };\n\n private onTapHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent<TapGestureHandlerEventPayload>) => {\n if (\n this.drawerShown &&\n nativeEvent.oldState === State.ACTIVE &&\n this.props.drawerLockMode !== 'locked-open'\n ) {\n this.closeDrawer();\n }\n };\n\n private handleRelease = ({\n nativeEvent,\n }: HandlerStateChangeEvent<PanGestureHandlerEventPayload>) => {\n const { drawerWidth, drawerPosition, drawerType } = this.props;\n const { containerWidth } = this.state;\n let { translationX: dragX, velocityX, x: touchX } = nativeEvent;\n\n if (drawerPosition !== 'left') {\n // See description in _updateAnimatedEvent about why events are flipped\n // for right-side drawer\n dragX = -dragX;\n touchX = containerWidth - touchX;\n velocityX = -velocityX;\n }\n\n const gestureStartX = touchX - dragX;\n let dragOffsetBasedOnStart = 0;\n\n if (drawerType === 'front') {\n dragOffsetBasedOnStart =\n gestureStartX > drawerWidth! ? gestureStartX - drawerWidth! : 0;\n }\n\n const startOffsetX =\n dragX + dragOffsetBasedOnStart + (this.drawerShown ? drawerWidth! : 0);\n const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;\n\n const shouldOpen = projOffsetX > drawerWidth! / 2;\n\n if (shouldOpen) {\n this.animateDrawer(startOffsetX, drawerWidth!, velocityX);\n } else {\n this.animateDrawer(startOffsetX, 0, velocityX);\n }\n };\n\n private updateShowing = (showing: boolean) => {\n this.drawerShown = showing;\n this.accessibilityIsModalView.current?.setNativeProps({\n accessibilityViewIsModal: showing,\n });\n this.pointerEventsView.current?.setNativeProps({\n pointerEvents: showing ? 'auto' : 'none',\n });\n const { drawerPosition, minSwipeDistance, edgeWidth } = this.props;\n const fromLeft = drawerPosition === 'left';\n // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n const gestureOrientation =\n (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1);\n // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n const hitSlop = fromLeft\n ? { left: 0, width: showing ? undefined : edgeWidth }\n : { right: 0, width: showing ? undefined : edgeWidth };\n // @ts-ignore internal API, maybe could be fixed in handler types\n this.panGestureHandler.current?.setNativeProps({\n hitSlop,\n activeOffsetX: gestureOrientation * minSwipeDistance!,\n });\n };\n\n private animateDrawer = (\n fromValue: number | null | undefined,\n toValue: number,\n velocity: number,\n speed?: number\n ) => {\n this.state.dragX.setValue(0);\n this.state.touchX.setValue(\n this.props.drawerPosition === 'left' ? 0 : this.state.containerWidth\n );\n\n if (fromValue != null) {\n let nextFramePosition = fromValue;\n if (this.props.useNativeAnimations) {\n // When using native driver, we predict the next position of the\n // animation because it takes one frame of a roundtrip to pass RELEASE\n // event from native driver to JS before we can start animating. Without\n // it, it is more noticable that the frame is dropped.\n if (fromValue < toValue && velocity > 0) {\n nextFramePosition = Math.min(fromValue + velocity / 60.0, toValue);\n } else if (fromValue > toValue && velocity < 0) {\n nextFramePosition = Math.max(fromValue + velocity / 60.0, toValue);\n }\n }\n this.state.drawerTranslation.setValue(nextFramePosition);\n }\n\n const willShow = toValue !== 0;\n this.updateShowing(willShow);\n this.emitStateChanged(SETTLING, willShow);\n this.setState({ drawerState: SETTLING });\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(willShow, this.props.statusBarAnimation || 'slide');\n }\n Animated.spring(this.state.drawerTranslation, {\n velocity,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations!,\n speed: speed ?? undefined,\n }).start(({ finished }) => {\n if (finished) {\n this.emitStateChanged(IDLE, willShow);\n this.setState({ drawerOpened: willShow });\n if (this.state.drawerState !== DRAGGING) {\n // It's possilbe that user started drag while the drawer\n // was settling, don't override state in this case\n this.setState({ drawerState: IDLE });\n }\n if (willShow) {\n this.props.onDrawerOpen?.();\n } else {\n this.props.onDrawerClose?.();\n }\n }\n });\n };\n\n openDrawer = (options: DrawerMovementOption = {}) => {\n this.animateDrawer(\n // TODO: decide if it should be null or undefined is the proper value\n undefined,\n this.props.drawerWidth!,\n options.velocity ? options.velocity : 0,\n options.speed\n );\n\n // We need to force the update, otherwise the overlay is not rerendered and\n // it would not be clickable\n this.forceUpdate();\n };\n\n closeDrawer = (options: DrawerMovementOption = {}) => {\n // TODO: decide if it should be null or undefined is the proper value\n this.animateDrawer(\n undefined,\n 0,\n options.velocity ? options.velocity : 0,\n options.speed\n );\n\n // We need to force the update, otherwise the overlay is not rerendered and\n // it would be still clickable\n this.forceUpdate();\n };\n\n private renderOverlay = () => {\n /* Overlay styles */\n invariant(this.openValue, 'should be set');\n let overlayOpacity;\n\n if (this.state.drawerState !== IDLE) {\n overlayOpacity = this.openValue;\n } else {\n overlayOpacity = this.state.drawerOpened ? 1 : 0;\n }\n\n const dynamicOverlayStyles = {\n opacity: overlayOpacity,\n backgroundColor: this.props.overlayColor,\n };\n\n return (\n <TapGestureHandler onHandlerStateChange={this.onTapHandlerStateChange}>\n <Animated.View\n pointerEvents={this.drawerShown ? 'auto' : 'none'}\n ref={this.pointerEventsView}\n style={[styles.overlay, dynamicOverlayStyles]}\n />\n </TapGestureHandler>\n );\n };\n\n private renderDrawer = () => {\n const {\n drawerBackgroundColor,\n drawerWidth,\n drawerPosition,\n drawerType,\n drawerContainerStyle,\n contentContainerStyle,\n } = this.props;\n\n const fromLeft = drawerPosition === 'left';\n const drawerSlide = drawerType !== 'back';\n const containerSlide = drawerType !== 'front';\n\n // We rely on row and row-reverse flex directions to position the drawer\n // properly. Apparently for RTL these are flipped which requires us to use\n // the opposite setting for the drawer to appear from left or right\n // according to the drawerPosition prop\n const reverseContentDirection = I18nManager.isRTL ? fromLeft : !fromLeft;\n\n const dynamicDrawerStyles = {\n backgroundColor: drawerBackgroundColor,\n width: drawerWidth,\n };\n const openValue = this.openValue;\n invariant(openValue, 'should be set');\n\n let containerStyles;\n if (containerSlide) {\n const containerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: fromLeft ? [0, drawerWidth!] : [0, -drawerWidth!],\n extrapolate: 'clamp',\n });\n containerStyles = {\n transform: [{ translateX: containerTranslateX }],\n };\n }\n\n let drawerTranslateX: number | AnimatedInterpolation = 0;\n if (drawerSlide) {\n const closedDrawerOffset = fromLeft ? -drawerWidth! : drawerWidth!;\n if (this.state.drawerState !== IDLE) {\n drawerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: [closedDrawerOffset, 0],\n extrapolate: 'clamp',\n });\n } else {\n drawerTranslateX = this.state.drawerOpened ? 0 : closedDrawerOffset;\n }\n }\n const drawerStyles: {\n transform: { translateX: number | AnimatedInterpolation }[];\n flexDirection: 'row-reverse' | 'row';\n } = {\n transform: [{ translateX: drawerTranslateX }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row',\n };\n\n return (\n <Animated.View style={styles.main} onLayout={this.handleContainerLayout}>\n <Animated.View\n style={[\n drawerType === 'front'\n ? styles.containerOnBack\n : styles.containerInFront,\n containerStyles,\n contentContainerStyle,\n ]}\n importantForAccessibility={\n this.drawerShown ? 'no-hide-descendants' : 'yes'\n }>\n {typeof this.props.children === 'function'\n ? this.props.children(this.openValue)\n : this.props.children}\n {this.renderOverlay()}\n </Animated.View>\n <Animated.View\n pointerEvents=\"box-none\"\n ref={this.accessibilityIsModalView}\n accessibilityViewIsModal={this.drawerShown}\n style={[styles.drawerContainer, drawerStyles, drawerContainerStyle]}>\n <View style={dynamicDrawerStyles}>\n {this.props.renderNavigationView(this.openValue as Animated.Value)}\n </View>\n </Animated.View>\n </Animated.View>\n );\n };\n\n private setPanGestureRef = (ref: PanGestureHandler) => {\n // TODO(TS): make sure it is OK taken from\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065#issuecomment-596081842\n (\n this.panGestureHandler as React.MutableRefObject<PanGestureHandler>\n ).current = ref;\n this.props.onGestureRef?.(ref);\n };\n\n render() {\n const { drawerPosition, drawerLockMode, edgeWidth, minSwipeDistance } =\n this.props;\n\n const fromLeft = drawerPosition === 'left';\n\n // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n const gestureOrientation =\n (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1);\n\n // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n const hitSlop = fromLeft\n ? { left: 0, width: this.drawerShown ? undefined : edgeWidth }\n : { right: 0, width: this.drawerShown ? undefined : edgeWidth };\n\n return (\n <PanGestureHandler\n // @ts-ignore could be fixed in handler types\n userSelect={this.props.userSelect}\n activeCursor={this.props.activeCursor}\n mouseButton={this.props.mouseButton}\n enableContextMenu={this.props.enableContextMenu}\n ref={this.setPanGestureRef}\n hitSlop={hitSlop}\n activeOffsetX={gestureOrientation * minSwipeDistance!}\n failOffsetY={[-15, 15]}\n onGestureEvent={this.onGestureEvent}\n onHandlerStateChange={this.openingHandlerStateChange}\n enableTrackpadTwoFingerGesture={\n this.props.enableTrackpadTwoFingerGesture\n }\n enabled={\n drawerLockMode !== 'locked-closed' && drawerLockMode !== 'locked-open'\n }>\n {this.renderDrawer()}\n </PanGestureHandler>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n drawerContainer: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1001,\n flexDirection: 'row',\n },\n containerInFront: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1002,\n },\n containerOnBack: {\n ...StyleSheet.absoluteFillObject,\n },\n main: {\n flex: 1,\n zIndex: 0,\n overflow: 'hidden',\n },\n overlay: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1000,\n },\n});\n"]}
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","React","_invariant","_interopRequireDefault","_reactNative","_PanGestureHandler","_TapGestureHandler","_State","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","DRAG_TOSS","IDLE","DRAGGING","SETTLING","DrawerLayout","Component","constructor","props","createRef","state","drawerPosition","drawerWidth","drawerType","dragX","dragXValue","touchX","touchXValue","drawerTranslation","containerWidth","Animated","multiply","Value","add","setValue","translationX","startPositionX","dragOffsetFromOnStartPosition","interpolate","inputRange","outputRange","openValue","extrapolate","gestureOptions","useNativeDriver","useNativeAnimations","onDrawerSlide","listener","ev","_this$props$onDrawerS","_this$props","Math","floor","abs","nativeEvent","position","onGestureEvent","event","x","setState","layout","width","newState","drawerWillShow","_this$props$onDrawerS2","_this$props2","onDrawerStateChanged","oldState","State","ACTIVE","handleRelease","emitStateChanged","drawerState","keyboardDismissMode","Keyboard","dismiss","hideStatusBar","StatusBar","setHidden","statusBarAnimation","drawerShown","drawerLockMode","closeDrawer","velocityX","gestureStartX","dragOffsetBasedOnStart","startOffsetX","projOffsetX","shouldOpen","animateDrawer","showing","_this$accessibilityIs","_this$pointerEventsVi","_this$panGestureHandl","accessibilityIsModalView","current","setNativeProps","accessibilityViewIsModal","pointerEventsView","pointerEvents","minSwipeDistance","edgeWidth","fromLeft","gestureOrientation","hitSlop","left","undefined","right","panGestureHandler","activeOffsetX","fromValue","toValue","velocity","speed","nextFramePosition","min","max","willShow","updateShowing","spring","bounciness","start","finished","drawerOpened","_this$props$onDrawerO","_this$props3","onDrawerOpen","_this$props$onDrawerC","_this$props4","onDrawerClose","options","forceUpdate","invariant","overlayOpacity","dynamicOverlayStyles","opacity","backgroundColor","overlayColor","createElement","TapGestureHandler","onHandlerStateChange","onTapHandlerStateChange","View","ref","style","styles","overlay","drawerBackgroundColor","drawerContainerStyle","contentContainerStyle","drawerSlide","containerSlide","reverseContentDirection","I18nManager","isRTL","dynamicDrawerStyles","containerStyles","containerTranslateX","transform","translateX","drawerTranslateX","closedDrawerOffset","drawerStyles","flexDirection","main","onLayout","handleContainerLayout","containerOnBack","containerInFront","importantForAccessibility","children","renderOverlay","drawerContainer","renderNavigationView","_this$props$onGesture","_this$props5","onGestureRef","updateAnimatedEvent","shouldComponentUpdate","render","PanGestureHandler","userSelect","activeCursor","mouseButton","enableContextMenu","setPanGestureRef","failOffsetY","openingHandlerStateChange","enableTrackpadTwoFingerGesture","enabled","renderDrawer","exports","Left","Right","StyleSheet","create","absoluteFillObject","zIndex","flex","overflow"],"sources":["DrawerLayout.tsx"],"sourcesContent":["// This component is based on RN's DrawerLayoutAndroid API\n//\n// It perhaps deserves to be put in a separate repo, but since it relies on\n// react-native-gesture-handler library which isn't very popular at the moment I\n// decided to keep it here for the time being. It will allow us to move faster\n// and fix issues that may arise in gesture handler library that could be found\n// when using the drawer component\n\nimport * as React from 'react';\nimport { Component } from 'react';\nimport invariant from 'invariant';\nimport {\n Animated,\n StyleSheet,\n View,\n Keyboard,\n StatusBar,\n I18nManager,\n StatusBarAnimation,\n StyleProp,\n ViewStyle,\n LayoutChangeEvent,\n NativeSyntheticEvent,\n} from 'react-native';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n UserSelect,\n ActiveCursor,\n MouseButton,\n} from '../handlers/gestureHandlerCommon';\nimport { PanGestureHandler } from '../handlers/PanGestureHandler';\nimport type {\n PanGestureHandlerEventPayload,\n TapGestureHandlerEventPayload,\n} from '../handlers/GestureHandlerEventPayload';\nimport { TapGestureHandler } from '../handlers/TapGestureHandler';\nimport { State } from '../State';\n\nconst DRAG_TOSS = 0.05;\n\nconst IDLE: DrawerState = 'Idle';\nconst DRAGGING: DrawerState = 'Dragging';\nconst SETTLING: DrawerState = 'Settling';\n\n/**\n * @deprecated DrawerLayout is deprecated. Use Reanimated version of DrawerLayout instead.\n */\nexport type DrawerPosition = 'left' | 'right';\n\n/**\n * @deprecated DrawerLayout is deprecated. Use Reanimated version of DrawerLayout instead.\n */\nexport type DrawerState = 'Idle' | 'Dragging' | 'Settling';\n\n/**\n * @deprecated DrawerLayout is deprecated. Use Reanimated version of DrawerLayout instead.\n */\nexport type DrawerType = 'front' | 'back' | 'slide';\n\n/**\n * @deprecated DrawerLayout is deprecated. Use Reanimated version of DrawerLayout instead.\n */\nexport type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open';\n\n/**\n * @deprecated DrawerLayout is deprecated. Use Reanimated version of DrawerLayout instead.\n */\nexport type DrawerKeyboardDismissMode = 'none' | 'on-drag';\n\n// Animated.AnimatedInterpolation has been converted to a generic type\n// in @types/react-native 0.70. This way we can maintain compatibility\n// with all versions of @types/react-native`\ntype AnimatedInterpolation = ReturnType<Animated.Value['interpolate']>;\n\n/**\n * @deprecated DrawerLayout is deprecated. Use Reanimated version of DrawerLayout instead.\n */\nexport interface DrawerLayoutProps {\n /**\n * This attribute is present in the standard implementation already and is one\n * of the required params. Gesture handler version of DrawerLayout make it\n * possible for the function passed as `renderNavigationView` to take an\n * Animated value as a parameter that indicates the progress of drawer\n * opening/closing animation (progress value is 0 when closed and 1 when\n * opened). This can be used by the drawer component to animated its children\n * while the drawer is opening or closing.\n */\n renderNavigationView: (\n progressAnimatedValue: Animated.Value\n ) => React.ReactNode;\n\n drawerPosition?: DrawerPosition;\n\n drawerWidth?: number;\n\n drawerBackgroundColor?: string;\n\n drawerLockMode?: DrawerLockMode;\n\n keyboardDismissMode?: DrawerKeyboardDismissMode;\n\n /**\n * Called when the drawer is closed.\n */\n onDrawerClose?: () => void;\n\n /**\n * Called when the drawer is opened.\n */\n onDrawerOpen?: () => void;\n\n /**\n * Called when the status of the drawer changes.\n */\n onDrawerStateChanged?: (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => void;\n useNativeAnimations?: boolean;\n\n drawerType?: DrawerType;\n\n /**\n * Defines how far from the edge of the content view the gesture should\n * activate.\n */\n edgeWidth?: number;\n\n minSwipeDistance?: number;\n\n /**\n * When set to true Drawer component will use\n * {@link https://reactnative.dev/docs/statusbar StatusBar} API to hide the OS\n * status bar whenever the drawer is pulled or when its in an \"open\" state.\n */\n hideStatusBar?: boolean;\n\n /**\n * @default 'slide'\n *\n * Can be used when hideStatusBar is set to true and will select the animation\n * used for hiding/showing the status bar. See\n * {@link https://reactnative.dev/docs/statusbar StatusBar} documentation for\n * more details\n */\n statusBarAnimation?: StatusBarAnimation;\n\n /**\n * @default black\n *\n * Color of a semi-transparent overlay to be displayed on top of the content\n * view when drawer gets open. A solid color should be used as the opacity is\n * added by the Drawer itself and the opacity of the overlay is animated (from\n * 0% to 70%).\n */\n overlayColor?: string;\n\n contentContainerStyle?: StyleProp<ViewStyle>;\n\n drawerContainerStyle?: StyleProp<ViewStyle>;\n\n /**\n * Enables two-finger gestures on supported devices, for example iPads with\n * trackpads. If not enabled the gesture will require click + drag, with\n * `enableTrackpadTwoFingerGesture` swiping with two fingers will also trigger\n * the gesture.\n */\n enableTrackpadTwoFingerGesture?: boolean;\n\n onDrawerSlide?: (position: number) => void;\n\n onGestureRef?: (ref: PanGestureHandler) => void;\n\n // Implicit `children` prop has been removed in @types/react^18.0.0\n children?:\n | React.ReactNode\n | ((openValue?: AnimatedInterpolation) => React.ReactNode);\n\n /**\n * @default 'none'\n * Defines which userSelect property should be used.\n * Values: 'none'|'text'|'auto'\n */\n userSelect?: UserSelect;\n\n /**\n * @default 'auto'\n * Defines which cursor property should be used when gesture activates.\n * Values: see CSS cursor values\n */\n activeCursor?: ActiveCursor;\n\n /**\n * @default 'MouseButton.LEFT'\n * Allows to choose which mouse button should underlying pan handler react to.\n */\n mouseButton?: MouseButton;\n\n /**\n * @default 'false if MouseButton.RIGHT is specified'\n * Allows to enable/disable context menu.\n */\n enableContextMenu?: boolean;\n}\n\n/**\n * @deprecated DrawerLayout is deprecated. Use Reanimated version of DrawerLayout instead.\n */\nexport type DrawerLayoutState = {\n dragX: Animated.Value;\n touchX: Animated.Value;\n drawerTranslation: Animated.Value;\n containerWidth: number;\n drawerState: DrawerState;\n drawerOpened: boolean;\n};\n\n/**\n * @deprecated DrawerLayout is deprecated. Use Reanimated version of DrawerLayout instead.\n */\nexport type DrawerMovementOption = {\n velocity?: number;\n speed?: number;\n};\n\n/**\n * @deprecated use Reanimated version of DrawerLayout instead\n */\nexport default class DrawerLayout extends Component<\n DrawerLayoutProps,\n DrawerLayoutState\n> {\n static defaultProps = {\n drawerWidth: 200,\n drawerPosition: 'left',\n useNativeAnimations: true,\n drawerType: 'front',\n edgeWidth: 20,\n minSwipeDistance: 3,\n overlayColor: 'rgba(0, 0, 0, 0.7)',\n drawerLockMode: 'unlocked',\n enableTrackpadTwoFingerGesture: false,\n };\n\n constructor(props: DrawerLayoutProps) {\n super(props);\n\n const dragX = new Animated.Value(0);\n const touchX = new Animated.Value(0);\n const drawerTranslation = new Animated.Value(0);\n\n this.state = {\n dragX,\n touchX,\n drawerTranslation,\n containerWidth: 0,\n drawerState: IDLE,\n drawerOpened: false,\n };\n\n this.updateAnimatedEvent(props, this.state);\n }\n\n shouldComponentUpdate(props: DrawerLayoutProps, state: DrawerLayoutState) {\n if (\n this.props.drawerPosition !== props.drawerPosition ||\n this.props.drawerWidth !== props.drawerWidth ||\n this.props.drawerType !== props.drawerType ||\n this.state.containerWidth !== state.containerWidth\n ) {\n this.updateAnimatedEvent(props, state);\n }\n\n return true;\n }\n\n private openValue?: AnimatedInterpolation;\n private onGestureEvent?: (\n event: GestureEvent<PanGestureHandlerEventPayload>\n ) => void;\n private accessibilityIsModalView = React.createRef<View>();\n private pointerEventsView = React.createRef<View>();\n private panGestureHandler = React.createRef<PanGestureHandler | null>();\n private drawerShown = false;\n\n static positions = {\n Left: 'left',\n Right: 'right',\n };\n\n private updateAnimatedEvent = (\n props: DrawerLayoutProps,\n state: DrawerLayoutState\n ) => {\n // Event definition is based on\n const { drawerPosition, drawerWidth, drawerType } = props;\n const {\n dragX: dragXValue,\n touchX: touchXValue,\n drawerTranslation,\n containerWidth,\n } = state;\n\n let dragX = dragXValue;\n let touchX = touchXValue;\n\n if (drawerPosition !== 'left') {\n // Most of the code is written in a way to handle left-side drawer. In\n // order to handle right-side drawer the only thing we need to do is to\n // reverse events coming from gesture handler in a way they emulate\n // left-side drawer gestures. E.g. dragX is simply -dragX, and touchX is\n // calulcated by subtracing real touchX from the width of the container\n // (such that when touch happens at the right edge the value is simply 0)\n dragX = Animated.multiply(\n new Animated.Value(-1),\n dragXValue\n ) as Animated.Value; // TODO(TS): (for all \"as\" in this file) make sure we can map this\n touchX = Animated.add(\n new Animated.Value(containerWidth),\n Animated.multiply(new Animated.Value(-1), touchXValue)\n ) as Animated.Value; // TODO(TS): make sure we can map this;\n touchXValue.setValue(containerWidth);\n } else {\n touchXValue.setValue(0);\n }\n\n // While closing the drawer when user starts gesture outside of its area (in greyed\n // out part of the window), we want the drawer to follow only once finger reaches the\n // edge of the drawer.\n // E.g. on the diagram below drawer is illustrate by X signs and the greyed out area by\n // dots. The touch gesture starts at '*' and moves left, touch path is indicated by\n // an arrow pointing left\n // 1) +---------------+ 2) +---------------+ 3) +---------------+ 4) +---------------+\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|.<-*..| |XXXXXXXX|<--*..| |XXXXX|<-----*..|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // |XXXXXXXX|......| |XXXXXXXX|......| |XXXXXXXX|......| |XXXXX|.........|\n // +---------------+ +---------------+ +---------------+ +---------------+\n //\n // For the above to work properly we define animated value that will keep\n // start position of the gesture. Then we use that value to calculate how\n // much we need to subtract from the dragX. If the gesture started on the\n // greyed out area we take the distance from the edge of the drawer to the\n // start position. Otherwise we don't subtract at all and the drawer be\n // pulled back as soon as you start the pan.\n //\n // This is used only when drawerType is \"front\"\n //\n let translationX = dragX;\n if (drawerType === 'front') {\n const startPositionX = Animated.add(\n touchX,\n Animated.multiply(new Animated.Value(-1), dragX)\n );\n\n const dragOffsetFromOnStartPosition = startPositionX.interpolate({\n inputRange: [drawerWidth! - 1, drawerWidth!, drawerWidth! + 1],\n outputRange: [0, 0, 1],\n });\n translationX = Animated.add(\n dragX,\n dragOffsetFromOnStartPosition\n ) as Animated.Value; // TODO: as above\n }\n\n this.openValue = Animated.add(translationX, drawerTranslation).interpolate({\n inputRange: [0, drawerWidth!],\n outputRange: [0, 1],\n extrapolate: 'clamp',\n });\n\n const gestureOptions: {\n useNativeDriver: boolean;\n // TODO: make sure it is correct\n listener?: (\n ev: NativeSyntheticEvent<PanGestureHandlerEventPayload>\n ) => void;\n } = {\n useNativeDriver: props.useNativeAnimations!,\n };\n\n if (this.props.onDrawerSlide) {\n gestureOptions.listener = (ev) => {\n const translationX = Math.floor(Math.abs(ev.nativeEvent.translationX));\n const position = translationX / this.state.containerWidth;\n\n this.props.onDrawerSlide?.(position);\n };\n }\n\n this.onGestureEvent = Animated.event(\n [{ nativeEvent: { translationX: dragXValue, x: touchXValue } }],\n gestureOptions\n );\n };\n\n private handleContainerLayout = ({ nativeEvent }: LayoutChangeEvent) => {\n this.setState({ containerWidth: nativeEvent.layout.width });\n };\n\n private emitStateChanged = (\n newState: DrawerState,\n drawerWillShow: boolean\n ) => {\n this.props.onDrawerStateChanged?.(newState, drawerWillShow);\n };\n\n private openingHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent<PanGestureHandlerEventPayload>) => {\n if (nativeEvent.oldState === State.ACTIVE) {\n this.handleRelease({ nativeEvent });\n } else if (nativeEvent.state === State.ACTIVE) {\n this.emitStateChanged(DRAGGING, false);\n this.setState({ drawerState: DRAGGING });\n if (this.props.keyboardDismissMode === 'on-drag') {\n Keyboard.dismiss();\n }\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(true, this.props.statusBarAnimation || 'slide');\n }\n }\n };\n\n private onTapHandlerStateChange = ({\n nativeEvent,\n }: HandlerStateChangeEvent<TapGestureHandlerEventPayload>) => {\n if (\n this.drawerShown &&\n nativeEvent.oldState === State.ACTIVE &&\n this.props.drawerLockMode !== 'locked-open'\n ) {\n this.closeDrawer();\n }\n };\n\n private handleRelease = ({\n nativeEvent,\n }: HandlerStateChangeEvent<PanGestureHandlerEventPayload>) => {\n const { drawerWidth, drawerPosition, drawerType } = this.props;\n const { containerWidth } = this.state;\n let { translationX: dragX, velocityX, x: touchX } = nativeEvent;\n\n if (drawerPosition !== 'left') {\n // See description in _updateAnimatedEvent about why events are flipped\n // for right-side drawer\n dragX = -dragX;\n touchX = containerWidth - touchX;\n velocityX = -velocityX;\n }\n\n const gestureStartX = touchX - dragX;\n let dragOffsetBasedOnStart = 0;\n\n if (drawerType === 'front') {\n dragOffsetBasedOnStart =\n gestureStartX > drawerWidth! ? gestureStartX - drawerWidth! : 0;\n }\n\n const startOffsetX =\n dragX + dragOffsetBasedOnStart + (this.drawerShown ? drawerWidth! : 0);\n const projOffsetX = startOffsetX + DRAG_TOSS * velocityX;\n\n const shouldOpen = projOffsetX > drawerWidth! / 2;\n\n if (shouldOpen) {\n this.animateDrawer(startOffsetX, drawerWidth!, velocityX);\n } else {\n this.animateDrawer(startOffsetX, 0, velocityX);\n }\n };\n\n private updateShowing = (showing: boolean) => {\n this.drawerShown = showing;\n this.accessibilityIsModalView.current?.setNativeProps({\n accessibilityViewIsModal: showing,\n });\n this.pointerEventsView.current?.setNativeProps({\n pointerEvents: showing ? 'auto' : 'none',\n });\n const { drawerPosition, minSwipeDistance, edgeWidth } = this.props;\n const fromLeft = drawerPosition === 'left';\n // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n const gestureOrientation =\n (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1);\n // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n const hitSlop = fromLeft\n ? { left: 0, width: showing ? undefined : edgeWidth }\n : { right: 0, width: showing ? undefined : edgeWidth };\n // @ts-ignore internal API, maybe could be fixed in handler types\n this.panGestureHandler.current?.setNativeProps({\n hitSlop,\n activeOffsetX: gestureOrientation * minSwipeDistance!,\n });\n };\n\n private animateDrawer = (\n fromValue: number | null | undefined,\n toValue: number,\n velocity: number,\n speed?: number\n ) => {\n this.state.dragX.setValue(0);\n this.state.touchX.setValue(\n this.props.drawerPosition === 'left' ? 0 : this.state.containerWidth\n );\n\n if (fromValue != null) {\n let nextFramePosition = fromValue;\n if (this.props.useNativeAnimations) {\n // When using native driver, we predict the next position of the\n // animation because it takes one frame of a roundtrip to pass RELEASE\n // event from native driver to JS before we can start animating. Without\n // it, it is more noticable that the frame is dropped.\n if (fromValue < toValue && velocity > 0) {\n nextFramePosition = Math.min(fromValue + velocity / 60.0, toValue);\n } else if (fromValue > toValue && velocity < 0) {\n nextFramePosition = Math.max(fromValue + velocity / 60.0, toValue);\n }\n }\n this.state.drawerTranslation.setValue(nextFramePosition);\n }\n\n const willShow = toValue !== 0;\n this.updateShowing(willShow);\n this.emitStateChanged(SETTLING, willShow);\n this.setState({ drawerState: SETTLING });\n if (this.props.hideStatusBar) {\n StatusBar.setHidden(willShow, this.props.statusBarAnimation || 'slide');\n }\n Animated.spring(this.state.drawerTranslation, {\n velocity,\n bounciness: 0,\n toValue,\n useNativeDriver: this.props.useNativeAnimations!,\n speed: speed ?? undefined,\n }).start(({ finished }) => {\n if (finished) {\n this.emitStateChanged(IDLE, willShow);\n this.setState({ drawerOpened: willShow });\n if (this.state.drawerState !== DRAGGING) {\n // It's possilbe that user started drag while the drawer\n // was settling, don't override state in this case\n this.setState({ drawerState: IDLE });\n }\n if (willShow) {\n this.props.onDrawerOpen?.();\n } else {\n this.props.onDrawerClose?.();\n }\n }\n });\n };\n\n openDrawer = (options: DrawerMovementOption = {}) => {\n this.animateDrawer(\n // TODO: decide if it should be null or undefined is the proper value\n undefined,\n this.props.drawerWidth!,\n options.velocity ? options.velocity : 0,\n options.speed\n );\n\n // We need to force the update, otherwise the overlay is not rerendered and\n // it would not be clickable\n this.forceUpdate();\n };\n\n closeDrawer = (options: DrawerMovementOption = {}) => {\n // TODO: decide if it should be null or undefined is the proper value\n this.animateDrawer(\n undefined,\n 0,\n options.velocity ? options.velocity : 0,\n options.speed\n );\n\n // We need to force the update, otherwise the overlay is not rerendered and\n // it would be still clickable\n this.forceUpdate();\n };\n\n private renderOverlay = () => {\n /* Overlay styles */\n invariant(this.openValue, 'should be set');\n let overlayOpacity;\n\n if (this.state.drawerState !== IDLE) {\n overlayOpacity = this.openValue;\n } else {\n overlayOpacity = this.state.drawerOpened ? 1 : 0;\n }\n\n const dynamicOverlayStyles = {\n opacity: overlayOpacity,\n backgroundColor: this.props.overlayColor,\n };\n\n return (\n <TapGestureHandler onHandlerStateChange={this.onTapHandlerStateChange}>\n <Animated.View\n pointerEvents={this.drawerShown ? 'auto' : 'none'}\n ref={this.pointerEventsView}\n style={[styles.overlay, dynamicOverlayStyles]}\n />\n </TapGestureHandler>\n );\n };\n\n private renderDrawer = () => {\n const {\n drawerBackgroundColor,\n drawerWidth,\n drawerPosition,\n drawerType,\n drawerContainerStyle,\n contentContainerStyle,\n } = this.props;\n\n const fromLeft = drawerPosition === 'left';\n const drawerSlide = drawerType !== 'back';\n const containerSlide = drawerType !== 'front';\n\n // We rely on row and row-reverse flex directions to position the drawer\n // properly. Apparently for RTL these are flipped which requires us to use\n // the opposite setting for the drawer to appear from left or right\n // according to the drawerPosition prop\n const reverseContentDirection = I18nManager.isRTL ? fromLeft : !fromLeft;\n\n const dynamicDrawerStyles = {\n backgroundColor: drawerBackgroundColor,\n width: drawerWidth,\n };\n const openValue = this.openValue;\n invariant(openValue, 'should be set');\n\n let containerStyles;\n if (containerSlide) {\n const containerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: fromLeft ? [0, drawerWidth!] : [0, -drawerWidth!],\n extrapolate: 'clamp',\n });\n containerStyles = {\n transform: [{ translateX: containerTranslateX }],\n };\n }\n\n let drawerTranslateX: number | AnimatedInterpolation = 0;\n if (drawerSlide) {\n const closedDrawerOffset = fromLeft ? -drawerWidth! : drawerWidth!;\n if (this.state.drawerState !== IDLE) {\n drawerTranslateX = openValue.interpolate({\n inputRange: [0, 1],\n outputRange: [closedDrawerOffset, 0],\n extrapolate: 'clamp',\n });\n } else {\n drawerTranslateX = this.state.drawerOpened ? 0 : closedDrawerOffset;\n }\n }\n const drawerStyles: {\n transform: { translateX: number | AnimatedInterpolation }[];\n flexDirection: 'row-reverse' | 'row';\n } = {\n transform: [{ translateX: drawerTranslateX }],\n flexDirection: reverseContentDirection ? 'row-reverse' : 'row',\n };\n\n return (\n <Animated.View style={styles.main} onLayout={this.handleContainerLayout}>\n <Animated.View\n style={[\n drawerType === 'front'\n ? styles.containerOnBack\n : styles.containerInFront,\n containerStyles,\n contentContainerStyle,\n ]}\n importantForAccessibility={\n this.drawerShown ? 'no-hide-descendants' : 'yes'\n }>\n {typeof this.props.children === 'function'\n ? this.props.children(this.openValue)\n : this.props.children}\n {this.renderOverlay()}\n </Animated.View>\n <Animated.View\n pointerEvents=\"box-none\"\n ref={this.accessibilityIsModalView}\n accessibilityViewIsModal={this.drawerShown}\n style={[styles.drawerContainer, drawerStyles, drawerContainerStyle]}>\n <View style={dynamicDrawerStyles}>\n {this.props.renderNavigationView(this.openValue as Animated.Value)}\n </View>\n </Animated.View>\n </Animated.View>\n );\n };\n\n private setPanGestureRef = (ref: PanGestureHandler) => {\n // TODO(TS): make sure it is OK taken from\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065#issuecomment-596081842\n (\n this.panGestureHandler as React.MutableRefObject<PanGestureHandler>\n ).current = ref;\n this.props.onGestureRef?.(ref);\n };\n\n render() {\n const { drawerPosition, drawerLockMode, edgeWidth, minSwipeDistance } =\n this.props;\n\n const fromLeft = drawerPosition === 'left';\n\n // gestureOrientation is 1 if the expected gesture is from left to right and\n // -1 otherwise e.g. when drawer is on the left and is closed we expect left\n // to right gesture, thus orientation will be 1.\n const gestureOrientation =\n (fromLeft ? 1 : -1) * (this.drawerShown ? -1 : 1);\n\n // When drawer is closed we want the hitSlop to be horizontally shorter than\n // the container size by the value of SLOP. This will make it only activate\n // when gesture happens not further than SLOP away from the edge\n const hitSlop = fromLeft\n ? { left: 0, width: this.drawerShown ? undefined : edgeWidth }\n : { right: 0, width: this.drawerShown ? undefined : edgeWidth };\n\n return (\n <PanGestureHandler\n // @ts-ignore could be fixed in handler types\n userSelect={this.props.userSelect}\n activeCursor={this.props.activeCursor}\n mouseButton={this.props.mouseButton}\n enableContextMenu={this.props.enableContextMenu}\n ref={this.setPanGestureRef}\n hitSlop={hitSlop}\n activeOffsetX={gestureOrientation * minSwipeDistance!}\n failOffsetY={[-15, 15]}\n onGestureEvent={this.onGestureEvent}\n onHandlerStateChange={this.openingHandlerStateChange}\n enableTrackpadTwoFingerGesture={\n this.props.enableTrackpadTwoFingerGesture\n }\n enabled={\n drawerLockMode !== 'locked-closed' && drawerLockMode !== 'locked-open'\n }>\n {this.renderDrawer()}\n </PanGestureHandler>\n );\n }\n}\n\nconst styles = StyleSheet.create({\n drawerContainer: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1001,\n flexDirection: 'row',\n },\n containerInFront: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1002,\n },\n containerOnBack: {\n ...StyleSheet.absoluteFillObject,\n },\n main: {\n flex: 1,\n zIndex: 0,\n overflow: 'hidden',\n },\n overlay: {\n ...StyleSheet.absoluteFillObject,\n zIndex: 1000,\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
@@ -3,50 +3,38 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
+
exports.BorderlessButton = exports.BaseButton = void 0;
|
6
7
|
Object.defineProperty(exports, "PureNativeButton", {
|
7
8
|
enumerable: true,
|
8
9
|
get: function () {
|
9
10
|
return _GestureHandlerButton.default;
|
10
11
|
}
|
11
12
|
});
|
12
|
-
exports.
|
13
|
-
|
13
|
+
exports.RectButton = exports.RawButton = void 0;
|
14
14
|
var React = _interopRequireWildcard(require("react"));
|
15
|
-
|
16
15
|
var _reactNative = require("react-native");
|
17
|
-
|
18
16
|
var _createNativeWrapper = _interopRequireDefault(require("../handlers/createNativeWrapper"));
|
19
|
-
|
20
17
|
var _GestureHandlerButton = _interopRequireDefault(require("./GestureHandlerButton"));
|
21
|
-
|
22
18
|
var _State = require("../State");
|
23
|
-
|
24
|
-
function _interopRequireDefault(
|
25
|
-
|
26
|
-
function
|
27
|
-
|
28
|
-
function
|
29
|
-
|
30
|
-
function
|
31
|
-
|
32
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
33
|
-
|
34
|
-
const RawButton = (0, _createNativeWrapper.default)(_GestureHandlerButton.default, {
|
19
|
+
var _utils = require("../utils");
|
20
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
21
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
22
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
23
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
24
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
25
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
26
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
27
|
+
const RawButton = exports.RawButton = (0, _createNativeWrapper.default)(_GestureHandlerButton.default, {
|
35
28
|
shouldCancelWhenOutside: false,
|
36
29
|
shouldActivateOnStart: false
|
37
30
|
});
|
38
|
-
|
39
|
-
|
31
|
+
let IS_FABRIC = null;
|
40
32
|
class InnerBaseButton extends React.Component {
|
41
33
|
constructor(props) {
|
42
34
|
super(props);
|
43
|
-
|
44
35
|
_defineProperty(this, "lastActive", void 0);
|
45
|
-
|
46
36
|
_defineProperty(this, "longPressTimeout", void 0);
|
47
|
-
|
48
37
|
_defineProperty(this, "longPressDetected", void 0);
|
49
|
-
|
50
38
|
_defineProperty(this, "handleEvent", ({
|
51
39
|
nativeEvent
|
52
40
|
}) => {
|
@@ -56,69 +44,67 @@ class InnerBaseButton extends React.Component {
|
|
56
44
|
pointerInside
|
57
45
|
} = nativeEvent;
|
58
46
|
const active = pointerInside && state === _State.State.ACTIVE;
|
59
|
-
|
60
47
|
if (active !== this.lastActive && this.props.onActiveStateChange) {
|
61
48
|
this.props.onActiveStateChange(active);
|
62
49
|
}
|
63
|
-
|
64
50
|
if (!this.longPressDetected && oldState === _State.State.ACTIVE && state !== _State.State.CANCELLED && this.lastActive && this.props.onPress) {
|
65
51
|
this.props.onPress(pointerInside);
|
66
52
|
}
|
67
|
-
|
68
|
-
|
53
|
+
if (!this.lastActive &&
|
54
|
+
// NativeViewGestureHandler sends different events based on platform
|
69
55
|
state === (_reactNative.Platform.OS !== 'android' ? _State.State.ACTIVE : _State.State.BEGAN) && pointerInside) {
|
70
56
|
this.longPressDetected = false;
|
71
|
-
|
72
57
|
if (this.props.onLongPress) {
|
73
58
|
this.longPressTimeout = setTimeout(this.onLongPress, this.props.delayLongPress);
|
74
59
|
}
|
75
|
-
} else if (
|
60
|
+
} else if (
|
61
|
+
// Cancel longpress timeout if it's set and the finger moved out of the view
|
76
62
|
state === _State.State.ACTIVE && !pointerInside && this.longPressTimeout !== undefined) {
|
77
63
|
clearTimeout(this.longPressTimeout);
|
78
64
|
this.longPressTimeout = undefined;
|
79
|
-
} else if (
|
65
|
+
} else if (
|
66
|
+
// Cancel longpress timeout if it's set and the gesture has finished
|
80
67
|
this.longPressTimeout !== undefined && (state === _State.State.END || state === _State.State.CANCELLED || state === _State.State.FAILED)) {
|
81
68
|
clearTimeout(this.longPressTimeout);
|
82
69
|
this.longPressTimeout = undefined;
|
83
70
|
}
|
84
|
-
|
85
71
|
this.lastActive = active;
|
86
72
|
});
|
87
|
-
|
88
73
|
_defineProperty(this, "onLongPress", () => {
|
89
74
|
var _this$props$onLongPre, _this$props;
|
90
|
-
|
91
75
|
this.longPressDetected = true;
|
92
|
-
(_this$props$onLongPre = (_this$props = this.props).onLongPress) === null || _this$props$onLongPre === void 0
|
76
|
+
(_this$props$onLongPre = (_this$props = this.props).onLongPress) === null || _this$props$onLongPre === void 0 || _this$props$onLongPre.call(_this$props);
|
93
77
|
});
|
94
|
-
|
78
|
+
// Normally, the parent would execute it's handler first, then forward the
|
79
|
+
// event to listeners. However, here our handler is virtually only forwarding
|
80
|
+
// events to listeners, so we reverse the order to keep the proper order of
|
81
|
+
// the callbacks (from "raw" ones to "processed").
|
95
82
|
_defineProperty(this, "onHandlerStateChange", e => {
|
96
83
|
var _this$props$onHandler, _this$props2;
|
97
|
-
|
98
|
-
(_this$props$onHandler = (_this$props2 = this.props).onHandlerStateChange) === null || _this$props$onHandler === void 0 ? void 0 : _this$props$onHandler.call(_this$props2, e);
|
84
|
+
(_this$props$onHandler = (_this$props2 = this.props).onHandlerStateChange) === null || _this$props$onHandler === void 0 || _this$props$onHandler.call(_this$props2, e);
|
99
85
|
this.handleEvent(e);
|
100
86
|
});
|
101
|
-
|
102
87
|
_defineProperty(this, "onGestureEvent", e => {
|
103
88
|
var _this$props$onGesture, _this$props3;
|
104
|
-
|
105
|
-
(_this$props$onGesture = (_this$props3 = this.props).onGestureEvent) === null || _this$props$onGesture === void 0 ? void 0 : _this$props$onGesture.call(_this$props3, e);
|
89
|
+
(_this$props$onGesture = (_this$props3 = this.props).onGestureEvent) === null || _this$props$onGesture === void 0 || _this$props$onGesture.call(_this$props3, e);
|
106
90
|
this.handleEvent(e); // TODO: maybe it is not correct
|
107
91
|
});
|
108
|
-
|
109
92
|
this.lastActive = false;
|
110
93
|
this.longPressDetected = false;
|
111
94
|
}
|
112
|
-
|
113
95
|
render() {
|
114
96
|
const {
|
115
|
-
rippleColor,
|
97
|
+
rippleColor: unprocessedRippleColor,
|
116
98
|
style,
|
117
99
|
...rest
|
118
100
|
} = this.props;
|
101
|
+
if (IS_FABRIC === null) {
|
102
|
+
IS_FABRIC = (0, _utils.isFabric)();
|
103
|
+
}
|
104
|
+
const rippleColor = IS_FABRIC ? unprocessedRippleColor : (0, _reactNative.processColor)(unprocessedRippleColor !== null && unprocessedRippleColor !== void 0 ? unprocessedRippleColor : undefined);
|
119
105
|
return /*#__PURE__*/React.createElement(RawButton, _extends({
|
120
106
|
ref: this.props.innerRef,
|
121
|
-
rippleColor:
|
107
|
+
rippleColor: rippleColor,
|
122
108
|
style: [style, _reactNative.Platform.OS === 'ios' && {
|
123
109
|
cursor: undefined
|
124
110
|
}]
|
@@ -127,20 +113,14 @@ class InnerBaseButton extends React.Component {
|
|
127
113
|
onHandlerStateChange: this.onHandlerStateChange
|
128
114
|
}));
|
129
115
|
}
|
130
|
-
|
131
116
|
}
|
132
|
-
|
133
117
|
_defineProperty(InnerBaseButton, "defaultProps", {
|
134
118
|
delayLongPress: 600
|
135
119
|
});
|
136
|
-
|
137
|
-
const BaseButton = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InnerBaseButton, _extends({
|
120
|
+
const BaseButton = exports.BaseButton = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InnerBaseButton, _extends({
|
138
121
|
innerRef: ref
|
139
122
|
}, props)));
|
140
|
-
exports.BaseButton = BaseButton;
|
141
|
-
|
142
123
|
const AnimatedBaseButton = _reactNative.Animated.createAnimatedComponent(BaseButton);
|
143
|
-
|
144
124
|
const btnStyles = _reactNative.StyleSheet.create({
|
145
125
|
underlay: {
|
146
126
|
position: 'absolute',
|
@@ -150,35 +130,26 @@ const btnStyles = _reactNative.StyleSheet.create({
|
|
150
130
|
top: 0
|
151
131
|
}
|
152
132
|
});
|
153
|
-
|
154
133
|
class InnerRectButton extends React.Component {
|
155
134
|
constructor(props) {
|
156
135
|
super(props);
|
157
|
-
|
158
136
|
_defineProperty(this, "opacity", void 0);
|
159
|
-
|
160
137
|
_defineProperty(this, "onActiveStateChange", active => {
|
161
138
|
var _this$props$onActiveS, _this$props4;
|
162
|
-
|
163
139
|
if (_reactNative.Platform.OS !== 'android') {
|
164
140
|
this.opacity.setValue(active ? this.props.activeOpacity : 0);
|
165
141
|
}
|
166
|
-
|
167
|
-
(_this$props$onActiveS = (_this$props4 = this.props).onActiveStateChange) === null || _this$props$onActiveS === void 0 ? void 0 : _this$props$onActiveS.call(_this$props4, active);
|
142
|
+
(_this$props$onActiveS = (_this$props4 = this.props).onActiveStateChange) === null || _this$props$onActiveS === void 0 || _this$props$onActiveS.call(_this$props4, active);
|
168
143
|
});
|
169
|
-
|
170
144
|
this.opacity = new _reactNative.Animated.Value(0);
|
171
145
|
}
|
172
|
-
|
173
146
|
render() {
|
174
147
|
const {
|
175
148
|
children,
|
176
149
|
style,
|
177
150
|
...rest
|
178
151
|
} = this.props;
|
179
|
-
|
180
152
|
const resolvedStyle = _reactNative.StyleSheet.flatten(style !== null && style !== void 0 ? style : {});
|
181
|
-
|
182
153
|
return /*#__PURE__*/React.createElement(BaseButton, _extends({}, rest, {
|
183
154
|
ref: this.props.innerRef,
|
184
155
|
style: resolvedStyle,
|
@@ -195,38 +166,27 @@ class InnerRectButton extends React.Component {
|
|
195
166
|
}]
|
196
167
|
}), children);
|
197
168
|
}
|
198
|
-
|
199
169
|
}
|
200
|
-
|
201
170
|
_defineProperty(InnerRectButton, "defaultProps", {
|
202
171
|
activeOpacity: 0.105,
|
203
172
|
underlayColor: 'black'
|
204
173
|
});
|
205
|
-
|
206
|
-
const RectButton = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InnerRectButton, _extends({
|
174
|
+
const RectButton = exports.RectButton = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InnerRectButton, _extends({
|
207
175
|
innerRef: ref
|
208
176
|
}, props)));
|
209
|
-
exports.RectButton = RectButton;
|
210
|
-
|
211
177
|
class InnerBorderlessButton extends React.Component {
|
212
178
|
constructor(props) {
|
213
179
|
super(props);
|
214
|
-
|
215
180
|
_defineProperty(this, "opacity", void 0);
|
216
|
-
|
217
181
|
_defineProperty(this, "onActiveStateChange", active => {
|
218
182
|
var _this$props$onActiveS2, _this$props5;
|
219
|
-
|
220
183
|
if (_reactNative.Platform.OS !== 'android') {
|
221
184
|
this.opacity.setValue(active ? this.props.activeOpacity : 1);
|
222
185
|
}
|
223
|
-
|
224
|
-
(_this$props$onActiveS2 = (_this$props5 = this.props).onActiveStateChange) === null || _this$props$onActiveS2 === void 0 ? void 0 : _this$props$onActiveS2.call(_this$props5, active);
|
186
|
+
(_this$props$onActiveS2 = (_this$props5 = this.props).onActiveStateChange) === null || _this$props$onActiveS2 === void 0 || _this$props$onActiveS2.call(_this$props5, active);
|
225
187
|
});
|
226
|
-
|
227
188
|
this.opacity = new _reactNative.Animated.Value(1);
|
228
189
|
}
|
229
|
-
|
230
190
|
render() {
|
231
191
|
const {
|
232
192
|
children,
|
@@ -244,16 +204,12 @@ class InnerBorderlessButton extends React.Component {
|
|
244
204
|
}]
|
245
205
|
}), children);
|
246
206
|
}
|
247
|
-
|
248
207
|
}
|
249
|
-
|
250
208
|
_defineProperty(InnerBorderlessButton, "defaultProps", {
|
251
209
|
activeOpacity: 0.3,
|
252
210
|
borderless: true
|
253
211
|
});
|
254
|
-
|
255
|
-
const BorderlessButton = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InnerBorderlessButton, _extends({
|
212
|
+
const BorderlessButton = exports.BorderlessButton = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(InnerBorderlessButton, _extends({
|
256
213
|
innerRef: ref
|
257
214
|
}, props)));
|
258
|
-
exports.BorderlessButton = BorderlessButton;
|
259
215
|
//# sourceMappingURL=GestureButtons.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["GestureButtons.tsx"],"names":["RawButton","GestureHandlerButton","shouldCancelWhenOutside","shouldActivateOnStart","InnerBaseButton","React","Component","constructor","props","nativeEvent","state","oldState","pointerInside","active","State","ACTIVE","lastActive","onActiveStateChange","longPressDetected","CANCELLED","onPress","Platform","OS","BEGAN","onLongPress","longPressTimeout","setTimeout","delayLongPress","undefined","clearTimeout","END","FAILED","e","onHandlerStateChange","handleEvent","onGestureEvent","render","rippleColor","style","rest","innerRef","cursor","BaseButton","forwardRef","ref","AnimatedBaseButton","Animated","createAnimatedComponent","btnStyles","StyleSheet","create","underlay","position","left","right","bottom","top","InnerRectButton","opacity","setValue","activeOpacity","Value","children","resolvedStyle","flatten","backgroundColor","underlayColor","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","RectButton","InnerBorderlessButton","borderless","BorderlessButton"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Animated, Platform, processColor, StyleSheet } from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\nimport GestureHandlerButton from './GestureHandlerButton';\nimport { State } from '../State';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport type { NativeViewGestureHandlerPayload } from '../handlers/GestureHandlerEventPayload';\nimport type {\n BaseButtonWithRefProps,\n BaseButtonProps,\n RectButtonWithRefProps,\n RectButtonProps,\n BorderlessButtonWithRefProps,\n BorderlessButtonProps,\n} from './GestureButtonsProps';\n\nexport const RawButton = createNativeWrapper(GestureHandlerButton, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: false,\n});\n\nclass InnerBaseButton extends React.Component<BaseButtonWithRefProps> {\n static defaultProps = {\n delayLongPress: 600,\n };\n\n private lastActive: boolean;\n private longPressTimeout: ReturnType<typeof setTimeout> | undefined;\n private longPressDetected: boolean;\n\n constructor(props: BaseButtonProps) {\n super(props);\n this.lastActive = false;\n this.longPressDetected = false;\n }\n\n private handleEvent = ({\n nativeEvent,\n }: HandlerStateChangeEvent<NativeViewGestureHandlerPayload>) => {\n const { state, oldState, pointerInside } = nativeEvent;\n const active = pointerInside && state === State.ACTIVE;\n\n if (active !== this.lastActive && this.props.onActiveStateChange) {\n this.props.onActiveStateChange(active);\n }\n\n if (\n !this.longPressDetected &&\n oldState === State.ACTIVE &&\n state !== State.CANCELLED &&\n this.lastActive &&\n this.props.onPress\n ) {\n this.props.onPress(pointerInside);\n }\n\n if (\n !this.lastActive &&\n // NativeViewGestureHandler sends different events based on platform\n state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) &&\n pointerInside\n ) {\n this.longPressDetected = false;\n if (this.props.onLongPress) {\n this.longPressTimeout = setTimeout(\n this.onLongPress,\n this.props.delayLongPress\n );\n }\n } else if (\n // Cancel longpress timeout if it's set and the finger moved out of the view\n state === State.ACTIVE &&\n !pointerInside &&\n this.longPressTimeout !== undefined\n ) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n } else if (\n // Cancel longpress timeout if it's set and the gesture has finished\n this.longPressTimeout !== undefined &&\n (state === State.END ||\n state === State.CANCELLED ||\n state === State.FAILED)\n ) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n }\n\n this.lastActive = active;\n };\n\n private onLongPress = () => {\n this.longPressDetected = true;\n this.props.onLongPress?.();\n };\n\n // Normally, the parent would execute it's handler first, then forward the\n // event to listeners. However, here our handler is virtually only forwarding\n // events to listeners, so we reverse the order to keep the proper order of\n // the callbacks (from \"raw\" ones to \"processed\").\n private onHandlerStateChange = (\n e: HandlerStateChangeEvent<NativeViewGestureHandlerPayload>\n ) => {\n this.props.onHandlerStateChange?.(e);\n this.handleEvent(e);\n };\n\n private onGestureEvent = (\n e: GestureEvent<NativeViewGestureHandlerPayload>\n ) => {\n this.props.onGestureEvent?.(e);\n this.handleEvent(\n e as HandlerStateChangeEvent<NativeViewGestureHandlerPayload>\n ); // TODO: maybe it is not correct\n };\n\n render() {\n const { rippleColor, style, ...rest } = this.props;\n\n return (\n <RawButton\n ref={this.props.innerRef}\n rippleColor={processColor(rippleColor)}\n style={[style, Platform.OS === 'ios' && { cursor: undefined }]}\n {...rest}\n onGestureEvent={this.onGestureEvent}\n onHandlerStateChange={this.onHandlerStateChange}\n />\n );\n }\n}\n\nexport const BaseButton = React.forwardRef<\n any,\n Omit<BaseButtonProps, 'innerRef'>\n>((props, ref) => <InnerBaseButton innerRef={ref} {...props} />);\n\nconst AnimatedBaseButton = Animated.createAnimatedComponent(BaseButton);\n\nconst btnStyles = StyleSheet.create({\n underlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n top: 0,\n },\n});\n\nclass InnerRectButton extends React.Component<RectButtonWithRefProps> {\n static defaultProps = {\n activeOpacity: 0.105,\n underlayColor: 'black',\n };\n\n private opacity: Animated.Value;\n\n constructor(props: RectButtonProps) {\n super(props);\n this.opacity = new Animated.Value(0);\n }\n\n private onActiveStateChange = (active: boolean) => {\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity! : 0);\n }\n\n this.props.onActiveStateChange?.(active);\n };\n\n render() {\n const { children, style, ...rest } = this.props;\n\n const resolvedStyle = StyleSheet.flatten(style ?? {});\n\n return (\n <BaseButton\n {...rest}\n ref={this.props.innerRef}\n style={resolvedStyle}\n onActiveStateChange={this.onActiveStateChange}>\n <Animated.View\n style={[\n btnStyles.underlay,\n {\n opacity: this.opacity,\n backgroundColor: this.props.underlayColor,\n borderRadius: resolvedStyle.borderRadius,\n borderTopLeftRadius: resolvedStyle.borderTopLeftRadius,\n borderTopRightRadius: resolvedStyle.borderTopRightRadius,\n borderBottomLeftRadius: resolvedStyle.borderBottomLeftRadius,\n borderBottomRightRadius: resolvedStyle.borderBottomRightRadius,\n },\n ]}\n />\n {children}\n </BaseButton>\n );\n }\n}\n\nexport const RectButton = React.forwardRef<\n any,\n Omit<RectButtonProps, 'innerRef'>\n>((props, ref) => <InnerRectButton innerRef={ref} {...props} />);\n\nclass InnerBorderlessButton extends React.Component<BorderlessButtonWithRefProps> {\n static defaultProps = {\n activeOpacity: 0.3,\n borderless: true,\n };\n\n private opacity: Animated.Value;\n\n constructor(props: BorderlessButtonProps) {\n super(props);\n this.opacity = new Animated.Value(1);\n }\n\n private onActiveStateChange = (active: boolean) => {\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity! : 1);\n }\n\n this.props.onActiveStateChange?.(active);\n };\n\n render() {\n const { children, style, innerRef, ...rest } = this.props;\n\n return (\n <AnimatedBaseButton\n {...rest}\n // @ts-ignore We don't want `innerRef` to be accessible from public API.\n // However in this case we need to set it indirectly on `BaseButton`, hence we use ts-ignore\n innerRef={innerRef}\n onActiveStateChange={this.onActiveStateChange}\n style={[style, Platform.OS === 'ios' && { opacity: this.opacity }]}>\n {children}\n </AnimatedBaseButton>\n );\n }\n}\n\nexport const BorderlessButton = React.forwardRef<\n any,\n Omit<BorderlessButtonProps, 'innerRef'>\n>((props, ref) => <InnerBorderlessButton innerRef={ref} {...props} />);\n\nexport { default as PureNativeButton } from './GestureHandlerButton';\n"]}
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_createNativeWrapper","_interopRequireDefault","_GestureHandlerButton","_State","_utils","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","RawButton","exports","createNativeWrapper","GestureHandlerButton","shouldCancelWhenOutside","shouldActivateOnStart","IS_FABRIC","InnerBaseButton","Component","constructor","props","nativeEvent","state","oldState","pointerInside","active","State","ACTIVE","lastActive","onActiveStateChange","longPressDetected","CANCELLED","onPress","Platform","OS","BEGAN","onLongPress","longPressTimeout","setTimeout","delayLongPress","undefined","clearTimeout","END","FAILED","_this$props$onLongPre","_this$props","_this$props$onHandler","_this$props2","onHandlerStateChange","handleEvent","_this$props$onGesture","_this$props3","onGestureEvent","render","rippleColor","unprocessedRippleColor","style","rest","isFabric","processColor","createElement","ref","innerRef","cursor","BaseButton","forwardRef","AnimatedBaseButton","Animated","createAnimatedComponent","btnStyles","StyleSheet","create","underlay","position","left","right","bottom","top","InnerRectButton","_this$props$onActiveS","_this$props4","opacity","setValue","activeOpacity","Value","children","resolvedStyle","flatten","View","backgroundColor","underlayColor","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","RectButton","InnerBorderlessButton","_this$props$onActiveS2","_this$props5","borderless","BorderlessButton"],"sources":["GestureButtons.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Animated, Platform, processColor, StyleSheet } from 'react-native';\n\nimport createNativeWrapper from '../handlers/createNativeWrapper';\nimport GestureHandlerButton from './GestureHandlerButton';\nimport { State } from '../State';\n\nimport {\n GestureEvent,\n HandlerStateChangeEvent,\n} from '../handlers/gestureHandlerCommon';\nimport type { NativeViewGestureHandlerPayload } from '../handlers/GestureHandlerEventPayload';\nimport type {\n BaseButtonWithRefProps,\n BaseButtonProps,\n RectButtonWithRefProps,\n RectButtonProps,\n BorderlessButtonWithRefProps,\n BorderlessButtonProps,\n} from './GestureButtonsProps';\nimport { isFabric } from '../utils';\n\nexport const RawButton = createNativeWrapper(GestureHandlerButton, {\n shouldCancelWhenOutside: false,\n shouldActivateOnStart: false,\n});\n\nlet IS_FABRIC: null | boolean = null;\n\nclass InnerBaseButton extends React.Component<BaseButtonWithRefProps> {\n static defaultProps = {\n delayLongPress: 600,\n };\n\n private lastActive: boolean;\n private longPressTimeout: ReturnType<typeof setTimeout> | undefined;\n private longPressDetected: boolean;\n\n constructor(props: BaseButtonProps) {\n super(props);\n this.lastActive = false;\n this.longPressDetected = false;\n }\n\n private handleEvent = ({\n nativeEvent,\n }: HandlerStateChangeEvent<NativeViewGestureHandlerPayload>) => {\n const { state, oldState, pointerInside } = nativeEvent;\n const active = pointerInside && state === State.ACTIVE;\n\n if (active !== this.lastActive && this.props.onActiveStateChange) {\n this.props.onActiveStateChange(active);\n }\n\n if (\n !this.longPressDetected &&\n oldState === State.ACTIVE &&\n state !== State.CANCELLED &&\n this.lastActive &&\n this.props.onPress\n ) {\n this.props.onPress(pointerInside);\n }\n\n if (\n !this.lastActive &&\n // NativeViewGestureHandler sends different events based on platform\n state === (Platform.OS !== 'android' ? State.ACTIVE : State.BEGAN) &&\n pointerInside\n ) {\n this.longPressDetected = false;\n if (this.props.onLongPress) {\n this.longPressTimeout = setTimeout(\n this.onLongPress,\n this.props.delayLongPress\n );\n }\n } else if (\n // Cancel longpress timeout if it's set and the finger moved out of the view\n state === State.ACTIVE &&\n !pointerInside &&\n this.longPressTimeout !== undefined\n ) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n } else if (\n // Cancel longpress timeout if it's set and the gesture has finished\n this.longPressTimeout !== undefined &&\n (state === State.END ||\n state === State.CANCELLED ||\n state === State.FAILED)\n ) {\n clearTimeout(this.longPressTimeout);\n this.longPressTimeout = undefined;\n }\n\n this.lastActive = active;\n };\n\n private onLongPress = () => {\n this.longPressDetected = true;\n this.props.onLongPress?.();\n };\n\n // Normally, the parent would execute it's handler first, then forward the\n // event to listeners. However, here our handler is virtually only forwarding\n // events to listeners, so we reverse the order to keep the proper order of\n // the callbacks (from \"raw\" ones to \"processed\").\n private onHandlerStateChange = (\n e: HandlerStateChangeEvent<NativeViewGestureHandlerPayload>\n ) => {\n this.props.onHandlerStateChange?.(e);\n this.handleEvent(e);\n };\n\n private onGestureEvent = (\n e: GestureEvent<NativeViewGestureHandlerPayload>\n ) => {\n this.props.onGestureEvent?.(e);\n this.handleEvent(\n e as HandlerStateChangeEvent<NativeViewGestureHandlerPayload>\n ); // TODO: maybe it is not correct\n };\n\n render() {\n const { rippleColor: unprocessedRippleColor, style, ...rest } = this.props;\n\n if (IS_FABRIC === null) {\n IS_FABRIC = isFabric();\n }\n\n const rippleColor = IS_FABRIC\n ? unprocessedRippleColor\n : processColor(unprocessedRippleColor ?? undefined);\n\n return (\n <RawButton\n ref={this.props.innerRef}\n rippleColor={rippleColor}\n style={[style, Platform.OS === 'ios' && { cursor: undefined }]}\n {...rest}\n onGestureEvent={this.onGestureEvent}\n onHandlerStateChange={this.onHandlerStateChange}\n />\n );\n }\n}\n\nexport const BaseButton = React.forwardRef<\n any,\n Omit<BaseButtonProps, 'innerRef'>\n>((props, ref) => <InnerBaseButton innerRef={ref} {...props} />);\n\nconst AnimatedBaseButton = Animated.createAnimatedComponent(BaseButton);\n\nconst btnStyles = StyleSheet.create({\n underlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n bottom: 0,\n top: 0,\n },\n});\n\nclass InnerRectButton extends React.Component<RectButtonWithRefProps> {\n static defaultProps = {\n activeOpacity: 0.105,\n underlayColor: 'black',\n };\n\n private opacity: Animated.Value;\n\n constructor(props: RectButtonProps) {\n super(props);\n this.opacity = new Animated.Value(0);\n }\n\n private onActiveStateChange = (active: boolean) => {\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity! : 0);\n }\n\n this.props.onActiveStateChange?.(active);\n };\n\n render() {\n const { children, style, ...rest } = this.props;\n\n const resolvedStyle = StyleSheet.flatten(style ?? {});\n\n return (\n <BaseButton\n {...rest}\n ref={this.props.innerRef}\n style={resolvedStyle}\n onActiveStateChange={this.onActiveStateChange}>\n <Animated.View\n style={[\n btnStyles.underlay,\n {\n opacity: this.opacity,\n backgroundColor: this.props.underlayColor,\n borderRadius: resolvedStyle.borderRadius,\n borderTopLeftRadius: resolvedStyle.borderTopLeftRadius,\n borderTopRightRadius: resolvedStyle.borderTopRightRadius,\n borderBottomLeftRadius: resolvedStyle.borderBottomLeftRadius,\n borderBottomRightRadius: resolvedStyle.borderBottomRightRadius,\n },\n ]}\n />\n {children}\n </BaseButton>\n );\n }\n}\n\nexport const RectButton = React.forwardRef<\n any,\n Omit<RectButtonProps, 'innerRef'>\n>((props, ref) => <InnerRectButton innerRef={ref} {...props} />);\n\nclass InnerBorderlessButton extends React.Component<BorderlessButtonWithRefProps> {\n static defaultProps = {\n activeOpacity: 0.3,\n borderless: true,\n };\n\n private opacity: Animated.Value;\n\n constructor(props: BorderlessButtonProps) {\n super(props);\n this.opacity = new Animated.Value(1);\n }\n\n private onActiveStateChange = (active: boolean) => {\n if (Platform.OS !== 'android') {\n this.opacity.setValue(active ? this.props.activeOpacity! : 1);\n }\n\n this.props.onActiveStateChange?.(active);\n };\n\n render() {\n const { children, style, innerRef, ...rest } = this.props;\n\n return (\n <AnimatedBaseButton\n {...rest}\n // @ts-ignore We don't want `innerRef` to be accessible from public API.\n // However in this case we need to set it indirectly on `BaseButton`, hence we use ts-ignore\n innerRef={innerRef}\n onActiveStateChange={this.onActiveStateChange}\n style={[style, Platform.OS === 'ios' && { opacity: this.opacity }]}>\n {children}\n </AnimatedBaseButton>\n );\n }\n}\n\nexport const BorderlessButton = React.forwardRef<\n any,\n Omit<BorderlessButtonProps, 'innerRef'>\n>((props, ref) => <InnerBorderlessButton innerRef={ref} {...props} />);\n\nexport { default as PureNativeButton } from './GestureHandlerButton';\n"],"mappings":"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","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":[],"
|
1
|
+
{"version":3,"names":[],"sources":["GestureButtonsProps.ts"],"sourcesContent":["import * as React from 'react';\nimport {\n AccessibilityProps,\n ColorValue,\n StyleProp,\n ViewStyle,\n} from 'react-native';\nimport type { NativeViewGestureHandlerProps } from '../handlers/NativeViewGestureHandler';\n\nexport interface RawButtonProps\n extends NativeViewGestureHandlerProps,\n AccessibilityProps {\n /**\n * Defines if more than one button could be pressed simultaneously. By default\n * set true.\n */\n exclusive?: boolean;\n // TODO: we should transform props in `createNativeWrapper`\n /**\n * Android only.\n *\n * Defines color of native ripple animation used since API level 21.\n */\n rippleColor?: number | ColorValue | null;\n\n /**\n * Android only.\n *\n * Defines radius of native ripple animation used since API level 21.\n */\n rippleRadius?: number | null;\n\n /**\n * Android only.\n *\n * Set this to true if you want the ripple animation to render outside the view bounds.\n */\n borderless?: boolean;\n\n /**\n * Android only.\n *\n * Defines whether the ripple animation should be drawn on the foreground of the view.\n */\n foreground?: boolean;\n\n /**\n * Android only.\n *\n * Set this to true if you don't want the system to play sound when the button is pressed.\n */\n touchSoundDisabled?: boolean;\n\n /**\n * Style object, use it to set additional styles.\n */\n style?: StyleProp<ViewStyle>;\n\n /**\n * Used for testing-library compatibility, not passed to the native component.\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n testOnly_onPress?: Function | null;\n\n /**\n * Used for testing-library compatibility, not passed to the native component.\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n testOnly_onPressIn?: Function | null;\n\n /**\n * Used for testing-library compatibility, not passed to the native component.\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n testOnly_onPressOut?: Function | null;\n\n /**\n * Used for testing-library compatibility, not passed to the native component.\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n testOnly_onLongPress?: Function | null;\n}\ninterface ButtonWithRefProps {\n innerRef?: React.ForwardedRef<React.ComponentType<any>>;\n}\n\nexport interface BaseButtonProps extends RawButtonProps {\n /**\n * Called when the button gets pressed (analogous to `onPress` in\n * `TouchableHighlight` from RN core).\n */\n onPress?: (pointerInside: boolean) => void;\n\n /**\n * Called when the button gets pressed and is held for `delayLongPress`\n * milliseconds.\n */\n onLongPress?: () => void;\n\n /**\n * Called when button changes from inactive to active and vice versa. It\n * passes active state as a boolean variable as a first parameter for that\n * method.\n */\n onActiveStateChange?: (active: boolean) => void;\n style?: StyleProp<ViewStyle>;\n testID?: string;\n\n /**\n * Delay, in milliseconds, after which the `onLongPress` callback gets called.\n * Defaults to 600.\n */\n delayLongPress?: number;\n}\nexport interface BaseButtonWithRefProps\n extends BaseButtonProps,\n ButtonWithRefProps {}\n\nexport interface RectButtonProps extends BaseButtonProps {\n /**\n * Background color that will be dimmed when button is in active state.\n */\n underlayColor?: string;\n\n /**\n * iOS only.\n *\n * Opacity applied to the underlay when button is in active state.\n */\n activeOpacity?: number;\n}\nexport interface RectButtonWithRefProps\n extends RectButtonProps,\n ButtonWithRefProps {}\n\nexport interface BorderlessButtonProps extends BaseButtonProps {\n /**\n * iOS only.\n *\n * Opacity applied to the button when it is in an active state.\n */\n activeOpacity?: number;\n}\nexport interface BorderlessButtonWithRefProps\n extends BorderlessButtonProps,\n ButtonWithRefProps {}\n"],"mappings":"","ignoreList":[]}
|