This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.
reValuate/node_modules/react-native-gesture-handler/react-native-gesture-handler.d.ts

586 lines
17 KiB
TypeScript
Raw Normal View History

2021-04-02 02:24:13 +03:00
// Project: https://github.com/software-mansion/react-native-gesture-handler
// TypeScript Version: 2.6.2
declare module 'react-native-gesture-handler' {
import * as React from 'react';
import {
Animated,
FlatListProperties,
ScrollViewProperties,
SwitchProperties,
TextInputProperties,
DrawerLayoutAndroidProperties,
TouchableHighlightProperties,
TouchableOpacityProperties,
TouchableNativeFeedbackProperties,
TouchableWithoutFeedbackProperties,
Insets,
ViewStyle,
StyleProp,
ViewProps,
} from 'react-native';
/* GESTURE HANDLER STATE */
export enum Directions {
RIGHT = 1,
LEFT = 2,
UP = 4,
DOWN = 8,
}
export enum State {
UNDETERMINED = 0,
FAILED,
BEGAN,
CANCELLED,
ACTIVE,
END,
}
/* STATE CHANGE EVENTS */
export interface GestureHandlerGestureEventNativeEvent {
handlerTag: number;
numberOfPointers: number;
state: State;
}
export interface GestureHandlerStateChangeNativeEvent {
handlerTag: number;
numberOfPointers: number;
state: State;
oldState: State;
}
export interface GestureHandlerStateChangeEvent {
nativeEvent: GestureHandlerStateChangeNativeEvent;
}
export interface GestureHandlerGestureEvent {
nativeEvent: GestureHandlerGestureEventNativeEvent;
}
interface NativeViewGestureHandlerEventExtra {
pointerInside: boolean;
}
export interface NativeViewGestureHandlerStateChangeEvent
extends GestureHandlerStateChangeEvent {
nativeEvent: GestureHandlerStateChangeNativeEvent &
NativeViewGestureHandlerEventExtra;
}
export interface NativeViewGestureHandlerGestureEvent
extends GestureHandlerGestureEvent {
nativeEvent: GestureHandlerGestureEventNativeEvent &
NativeViewGestureHandlerEventExtra;
}
interface TapGestureHandlerEventExtra {
x: number;
y: number;
absoluteX: number;
absoluteY: number;
}
interface ForceTouchGestureHandlerEventExtra {
x: number;
y: number;
absoluteX: number;
absoluteY: number;
force: number;
}
export interface TapGestureHandlerStateChangeEvent
extends GestureHandlerStateChangeEvent {
nativeEvent: GestureHandlerStateChangeNativeEvent &
TapGestureHandlerEventExtra;
}
export interface TapGestureHandlerGestureEvent
extends GestureHandlerGestureEvent {
nativeEvent: GestureHandlerGestureEventNativeEvent &
TapGestureHandlerEventExtra;
}
export interface ForceTouchGestureHandlerGestureEvent
extends GestureHandlerGestureEvent {
nativeEvent: GestureHandlerGestureEventNativeEvent &
ForceTouchGestureHandlerEventExtra;
}
export interface LongPressGestureHandlerStateChangeEvent
extends GestureHandlerStateChangeEvent {
nativeEvent: GestureHandlerStateChangeNativeEvent &
LongPressGestureHandlerEventExtra;
}
export interface ForceTouchGestureHandlerStateChangeEvent
extends GestureHandlerStateChangeEvent {
nativeEvent: GestureHandlerStateChangeNativeEvent &
ForceTouchGestureHandlerEventExtra;
}
interface LongPressGestureHandlerEventExtra {
x: number;
y: number;
absoluteX: number;
absoluteY: number;
}
export interface LongPressGestureHandlerGestureEvent
extends GestureHandlerGestureEvent {
nativeEvent: GestureHandlerGestureEventNativeEvent &
LongPressGestureHandlerEventExtra;
}
interface PanGestureHandlerEventExtra {
x: number;
y: number;
absoluteX: number;
absoluteY: number;
translationX: number;
translationY: number;
velocityX: number;
velocityY: number;
}
export interface PanGestureHandlerStateChangeEvent
extends GestureHandlerStateChangeEvent {
nativeEvent: GestureHandlerStateChangeNativeEvent &
PanGestureHandlerEventExtra;
}
export interface PanGestureHandlerGestureEvent
extends GestureHandlerGestureEvent {
nativeEvent: GestureHandlerGestureEventNativeEvent &
PanGestureHandlerEventExtra;
}
interface PinchGestureHandlerEventExtra {
scale: number;
focalX: number;
focalY: number;
velocity: number;
}
export interface PinchGestureHandlerStateChangeEvent
extends GestureHandlerStateChangeEvent {
nativeEvent: GestureHandlerStateChangeNativeEvent &
PinchGestureHandlerEventExtra;
}
export interface PinchGestureHandlerGestureEvent
extends GestureHandlerGestureEvent {
nativeEvent: GestureHandlerGestureEventNativeEvent &
PinchGestureHandlerEventExtra;
}
interface RotationGestureHandlerEventExtra {
rotation: number;
anchorX: number;
anchorY: number;
velocity: number;
}
export interface RotationGestureHandlerStateChangeEvent
extends GestureHandlerStateChangeEvent {
nativeEvent: GestureHandlerStateChangeNativeEvent &
RotationGestureHandlerEventExtra;
}
export interface RotationGestureHandlerGestureEvent
extends GestureHandlerGestureEvent {
nativeEvent: GestureHandlerGestureEventNativeEvent &
RotationGestureHandlerEventExtra;
}
export interface FlingGestureHandlerStateChangeEvent
extends GestureHandlerStateChangeEvent {
nativeEvent: GestureHandlerStateChangeNativeEvent &
FlingGestureHandlerEventExtra;
}
export interface FlingGestureHandlerGestureEvent
extends GestureHandlerGestureEvent {
nativeEvent: GestureHandlerGestureEventNativeEvent;
}
interface FlingGestureHandlerEventExtra {
x: number;
y: number;
absoluteX: number;
absoluteY: number;
}
/* GESTURE HANDLERS PROPERTIES */
export interface GestureHandlerProperties {
id?: string;
enabled?: boolean;
waitFor?: React.Ref<any> | React.Ref<any>[];
simultaneousHandlers?: React.Ref<any> | React.Ref<any>[];
shouldCancelWhenOutside?: boolean;
hitSlop?:
| number
| {
left?: number;
right?: number;
top?: number;
bottom?: number;
vertical?: number;
horizontal?: number;
}
| {
width: number;
left: number;
}
| {
width: number;
right: number;
}
| {
height: number;
top: number;
}
| {
height: number;
bottom: number;
};
}
export interface NativeViewGestureHandlerProperties
extends GestureHandlerProperties {
shouldActivateOnStart?: boolean;
disallowInterruption?: boolean;
onGestureEvent?: (event: NativeViewGestureHandlerGestureEvent) => void;
onHandlerStateChange?: (
event: NativeViewGestureHandlerStateChangeEvent
) => void;
}
export interface TapGestureHandlerProperties extends GestureHandlerProperties {
minPointers?: number;
maxDurationMs?: number;
maxDelayMs?: number;
numberOfTaps?: number;
maxDeltaX?: number;
maxDeltaY?: number;
maxDist?: number;
onGestureEvent?: (event: TapGestureHandlerGestureEvent) => void;
onHandlerStateChange?: (event: TapGestureHandlerStateChangeEvent) => void;
}
export interface ForceTouchGestureHandlerProperties extends GestureHandlerProperties {
minForce?: number,
maxForce?: number,
feedbackOnActivation?: boolean,
onGestureEvent?: (event: ForceTouchGestureHandlerGestureEvent) => void;
onHandlerStateChange?: (event: ForceTouchGestureHandlerStateChangeEvent) => void;
}
export interface LongPressGestureHandlerProperties
extends GestureHandlerProperties {
minDurationMs?: number;
maxDist?: number;
onGestureEvent?: (event: LongPressGestureHandlerGestureEvent) => void;
onHandlerStateChange?: (event: LongPressGestureHandlerStateChangeEvent) => void;
}
export interface PanGestureHandlerProperties extends GestureHandlerProperties {
/** @deprecated use activeOffsetX*/
minDeltaX?: number;
/** @deprecated use activeOffsetY*/
minDeltaY?: number;
/** @deprecated use failOffsetX*/
maxDeltaX?: number;
/** @deprecated use failOffsetY*/
maxDeltaY?: number;
/** @deprecated use activeOffsetX*/
minOffsetX?: number;
/** @deprecated use failOffsetY*/
minOffsetY?: number;
activeOffsetY?: number | number[];
activeOffsetX?: number | number[];
failOffsetY?: number | number[];
failOffsetX?: number | number[];
minDist?: number;
minVelocity?: number;
minVelocityX?: number;
minVelocityY?: number;
minPointers?: number;
maxPointers?: number;
avgTouches?: boolean;
onGestureEvent?: (event: PanGestureHandlerGestureEvent) => void;
onHandlerStateChange?: (event: PanGestureHandlerStateChangeEvent) => void;
}
export interface PinchGestureHandlerProperties
extends GestureHandlerProperties {
onGestureEvent?: (event: PinchGestureHandlerGestureEvent) => void;
onHandlerStateChange?: (event: PinchGestureHandlerStateChangeEvent) => void;
}
export interface RotationGestureHandlerProperties
extends GestureHandlerProperties {
onGestureEvent?: (event: RotationGestureHandlerGestureEvent) => void;
onHandlerStateChange?: (
event: RotationGestureHandlerStateChangeEvent
) => void;
}
export interface FlingGestureHandlerProperties
extends GestureHandlerProperties {
direction?: number;
numberOfPointers?: number;
onGestureEvent?: (event: FlingGestureHandlerGestureEvent) => void;
onHandlerStateChange?: (event: FlingGestureHandlerStateChangeEvent) => void;
}
/* GESTURE HANDLERS CLASSES */
export class NativeViewGestureHandler extends React.Component<
NativeViewGestureHandlerProperties
> {}
export class TapGestureHandler extends React.Component<
TapGestureHandlerProperties
> {}
export class LongPressGestureHandler extends React.Component<
LongPressGestureHandlerProperties
> {}
export class PanGestureHandler extends React.Component<
PanGestureHandlerProperties
> {}
export class PinchGestureHandler extends React.Component<
PinchGestureHandlerProperties
> {}
export class RotationGestureHandler extends React.Component<
RotationGestureHandlerProperties
> {}
export class FlingGestureHandler extends React.Component<
FlingGestureHandlerProperties
> {}
export class ForceTouchGestureHandler extends React.Component<
ForceTouchGestureHandlerProperties
> {}
/* BUTTONS PROPERTIES */
export interface RawButtonProperties
extends NativeViewGestureHandlerProperties {
exclusive?: boolean;
testID?: string;
accessibilityLabel?: string;
}
export interface BaseButtonProperties extends RawButtonProperties {
onPress?: (pointerInside: boolean) => void;
onActiveStateChange?: (active: boolean) => void;
style?: StyleProp<ViewStyle>;
rippleColor?: string;
}
export interface RectButtonProperties extends BaseButtonProperties {
underlayColor?: string;
activeOpacity?: number;
}
export interface BorderlessButtonProperties extends BaseButtonProperties {
borderless?: boolean;
activeOpacity?: number;
}
/* BUTTONS CLASSES */
export class RawButton extends React.Component<RawButtonProperties> {}
export class BaseButton extends React.Component<BaseButtonProperties> {}
export class RectButton extends React.Component<RectButtonProperties> {}
export class BorderlessButton extends React.Component<
BorderlessButtonProperties
> {}
export interface ContainedTouchableProperties {
containerStyle?: StyleProp<ViewStyle>
}
export class TouchableHighlight extends React.Component<
TouchableHighlightProperties | ContainedTouchableProperties
> {}
export class TouchableNativeFeedback extends React.Component<
TouchableNativeFeedbackProperties | ContainedTouchableProperties
> {}
export class TouchableOpacity extends React.Component<
TouchableOpacityProperties | ContainedTouchableProperties
> {}
export class TouchableWithoutFeedback extends React.Component<
TouchableWithoutFeedbackProperties | ContainedTouchableProperties
> {}
/* GESTURE HANDLER WRAPPED CLASSES */
export class ScrollView extends React.Component<
NativeViewGestureHandlerProperties & ScrollViewProperties
> {
scrollTo(y?: number | { x?: number; y?: number; animated?: boolean }, x?: number, animated?: boolean): void;
scrollToEnd(options?: { animated: boolean }): void;
}
export class Switch extends React.Component<
NativeViewGestureHandlerProperties & SwitchProperties
> {}
export class TextInput extends React.Component<
NativeViewGestureHandlerProperties & TextInputProperties
> {}
export class DrawerLayoutAndroid extends React.Component<
NativeViewGestureHandlerProperties & DrawerLayoutAndroidProperties
> {}
/* OTHER */
export class FlatList<ItemT> extends React.Component<
NativeViewGestureHandlerProperties & FlatListProperties<ItemT>
> {
scrollToEnd: (params?: { animated?: boolean }) => void;
scrollToIndex: (params: { animated?: boolean; index: number; viewOffset?: number; viewPosition?: number }) => void;
scrollToItem: (params: { animated?: boolean; item: ItemT; viewPosition?: number }) => void;
scrollToOffset: (params: { animated?: boolean; offset: number }) => void;
}
export const GestureHandlerRootView: React.ComponentType<ViewProps>;
export function gestureHandlerRootHOC<P = {}>(
Component: React.ComponentType<P>,
containerStyles?: StyleProp<ViewStyle>
): React.ComponentType<P>;
export function createNativeWrapper<P = {}>(
Component: React.ComponentType<P>,
config: NativeViewGestureHandlerProperties
): React.ComponentType<P>;
}
declare module 'react-native-gesture-handler/Swipeable' {
import { Animated, StyleProp, ViewStyle } from 'react-native';
import { PanGestureHandlerProperties } from 'react-native-gesture-handler'
type SwipeableExcludes = Exclude<keyof PanGestureHandlerProperties, 'onGestureEvent' | 'onHandlerStateChange'>
interface SwipeableProperties extends Pick<PanGestureHandlerProperties, SwipeableExcludes> {
friction?: number;
leftThreshold?: number;
rightThreshold?: number;
overshootLeft?: boolean;
overshootRight?: boolean;
overshootFriction?: number,
onSwipeableLeftOpen?: () => void;
onSwipeableRightOpen?: () => void;
onSwipeableOpen?: () => void;
onSwipeableClose?: () => void;
onSwipeableLeftWillOpen?: () => void;
onSwipeableRightWillOpen?: () => void;
onSwipeableWillOpen?: () => void;
onSwipeableWillClose?: () => void;
/**
*
* This map describes the values to use as inputRange for extra interpolation:
* AnimatedValue: [startValue, endValue]
*
* progressAnimatedValue: [0, 1]
* dragAnimatedValue: [0, +]
*
* To support `rtl` flexbox layouts use `flexDirection` styling.
* */
renderLeftActions?: (
progressAnimatedValue: Animated.AnimatedInterpolation,
dragAnimatedValue: Animated.AnimatedInterpolation
) => React.ReactNode;
/**
*
* This map describes the values to use as inputRange for extra interpolation:
* AnimatedValue: [startValue, endValue]
*
* progressAnimatedValue: [0, 1]
* dragAnimatedValue: [0, -]
*
* To support `rtl` flexbox layouts use `flexDirection` styling.
* */
renderRightActions?: (
progressAnimatedValue: Animated.AnimatedInterpolation,
dragAnimatedValue: Animated.AnimatedInterpolation
) => React.ReactNode;
useNativeAnimations?: boolean;
containerStyle?: StyleProp<ViewStyle>;
childrenContainerStyle?: StyleProp<ViewStyle>;
}
export default class Swipeable extends React.Component<SwipeableProperties> {
close: () => void;
openLeft: () => void;
openRight: () => void;
}
}
declare module 'react-native-gesture-handler/DrawerLayout' {
import { Animated, StatusBarAnimation, StyleProp, ViewStyle } from 'react-native';
export type DrawerPosition = 'left' | 'right';
export type DrawerState = 'Idle' | 'Dragging' | 'Settling';
export type DrawerType = 'front' | 'back' | 'slide';
export type DrawerLockMode = 'unlocked' | 'locked-closed' | 'locked-open';
export type DrawerKeyboardDismissMode = 'none' | 'on-drag';
export interface DrawerLayoutProperties {
renderNavigationView: (
progressAnimatedValue: Animated.Value
) => React.ReactNode;
drawerPosition?: DrawerPosition;
drawerWidth?: number;
drawerBackgroundColor?: string;
drawerLockMode?: DrawerLockMode;
keyboardDismissMode?: DrawerKeyboardDismissMode;
onDrawerClose?: () => void;
onDrawerOpen?: () => void;
onDrawerStateChanged?: (
newState: DrawerState,
drawerWillShow: boolean
) => void;
useNativeAnimations?: boolean;
drawerType?: DrawerType;
edgeWidth?: number;
minSwipeDistance?: number;
hideStatusBar?: boolean;
statusBarAnimation?: StatusBarAnimation;
overlayColor?: string;
contentContainerStyle?: StyleProp<ViewStyle>;
}
interface DrawerMovementOptionType {
velocity?: number;
}
export default class DrawerLayout extends React.Component<DrawerLayoutProperties> {
openDrawer: (options?: DrawerMovementOptionType) => void;
closeDrawer: (options?: DrawerMovementOptionType) => void;
}
}