UNPKG

4.55 kBTypeScriptView Raw
1import React, { Component, TouchEventHandler } from 'react';
2export declare type GestureHandler = (s: IGestureStatus) => void;
3export declare type Finger = {
4 x: number;
5 y: number;
6};
7export declare type MultiFingerStatus = {
8 x: number;
9 y: number;
10 z: number;
11 angle: number;
12};
13export declare type SingeFingerMoveStatus = {
14 x: number;
15 y: number;
16 z: number;
17 time: number;
18 velocity: number;
19 angle: number;
20};
21export interface IGesture {
22 enableRotate?: boolean;
23 enablePinch?: boolean;
24 direction?: 'all' | 'vertical' | 'horizontal';
25 onPinch?: GestureHandler;
26 onPinchStart?: GestureHandler;
27 onPinchMove?: GestureHandler;
28 onPinchEnd?: GestureHandler;
29 onPinchCancel?: GestureHandler;
30 onPinchIn?: GestureHandler;
31 onPinchOut?: GestureHandler;
32 onRotate?: GestureHandler;
33 onRotateStart?: GestureHandler;
34 onRotateMove?: GestureHandler;
35 onRotateEnd?: GestureHandler;
36 onRotateCancel?: GestureHandler;
37 onPan?: GestureHandler;
38 onPanStart?: GestureHandler;
39 onPanMove?: GestureHandler;
40 onPanEnd?: GestureHandler;
41 onPanCancel?: GestureHandler;
42 onPanLeft?: GestureHandler;
43 onPanRight?: GestureHandler;
44 onPanUp?: GestureHandler;
45 onPanDown?: GestureHandler;
46 onTap?: GestureHandler;
47 onPress?: GestureHandler;
48 onPressUp?: GestureHandler;
49 onSwipe?: GestureHandler;
50 onSwipeLeft?: GestureHandler;
51 onSwipeRight?: GestureHandler;
52 onSwipeUp?: GestureHandler;
53 onSwipeDown?: GestureHandler;
54 onTouchStart?: TouchEventHandler<HTMLElement>;
55 onTouchMove?: TouchEventHandler<HTMLElement>;
56 onTouchEnd?: TouchEventHandler<HTMLElement>;
57 onTouchCancel?: TouchEventHandler<HTMLElement>;
58}
59export interface IGestureStatus {
60 startTime: number;
61 startTouches: Finger[];
62 startMutliFingerStatus?: MultiFingerStatus[];
63 time: number;
64 touches: Finger[];
65 preTouches: Finger[];
66 mutliFingerStatus?: MultiFingerStatus[];
67 moveStatus?: SingeFingerMoveStatus;
68 press?: boolean;
69 pan?: boolean;
70 availablePan?: boolean;
71 swipe?: boolean;
72 direction?: number;
73 pinch?: boolean;
74 scale?: number;
75 rotate?: boolean;
76 rotation?: number;
77 srcEvent: any;
78}
79export default class Gesture extends Component<IGesture, any> {
80 static defaultProps: {
81 enableRotate: boolean;
82 enablePinch: boolean;
83 direction: string;
84 };
85 state: {};
86 protected gesture: IGestureStatus;
87 protected event: any;
88 private pressTimer;
89 private directionSetting;
90 constructor(props: any);
91 triggerEvent: (name: any, ...args: any[]) => void;
92 triggerCombineEvent: (mainEventName: any, eventStatus: any, ...args: any[]) => void;
93 triggerSubEvent: (mainEventName: any, eventStatus: any, ...args: any[]) => void;
94 triggerPinchEvent: (mainEventName: any, eventStatus: any, ...args: any[]) => void;
95 initPressTimer: () => void;
96 cleanPressTimer: () => void;
97 setGestureState: (params: any) => void;
98 getGestureState: () => {
99 startTime: number;
100 startTouches: Finger[];
101 startMutliFingerStatus?: MultiFingerStatus[] | undefined;
102 time: number;
103 touches: Finger[];
104 preTouches: Finger[];
105 mutliFingerStatus?: MultiFingerStatus[] | undefined;
106 moveStatus?: SingeFingerMoveStatus | undefined;
107 press?: boolean | undefined;
108 pan?: boolean | undefined;
109 availablePan?: boolean | undefined;
110 swipe?: boolean | undefined;
111 direction?: number | undefined;
112 pinch?: boolean | undefined;
113 scale?: number | undefined;
114 rotate?: boolean | undefined;
115 rotation?: number | undefined;
116 srcEvent: any;
117 };
118 cleanGestureState: () => void;
119 getTouches: (e: any) => any;
120 triggerUserCb: (status: any, e: any) => void;
121 _handleTouchStart: (e: any) => void;
122 initGestureStatus: (e: any) => void;
123 checkIfMultiTouchStart: () => void;
124 _handleTouchMove: (e: any) => void;
125 checkIfMultiTouchMove: () => void;
126 allowGesture: () => boolean;
127 checkIfSingleTouchMove: () => void;
128 checkIfMultiTouchEnd: (status: any) => void;
129 updateGestureStatus: (e: any) => void;
130 _handleTouchEnd: (e: any) => void;
131 _handleTouchCancel: (e: any) => void;
132 triggerAllowEvent: (type: any, status: any) => void;
133 doSingleTouchEnd: (status: any) => void;
134 componentWillUnmount(): void;
135 getTouchAction: () => "auto" | "pan-x pan-y" | "pan-x" | "pan-y";
136 render(): React.ReactElement<any>;
137}