gesturx 1.5.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +210 -80
- package/dist/index.js +556 -535
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +1 -1
- package/dist/index.umd.cjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -2,69 +2,44 @@ import { BehaviorSubject } from 'rxjs';
|
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { ObservedValueOf } from 'rxjs';
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
recognizers: (TapRecognizer | PanRecognizer | SwipeRecognizer | RotateRecognizer | PinchRecognizer)[];
|
|
7
|
-
afterEventReceived?: (event: PointerEvent) => PointerEvent;
|
|
8
|
-
}) => {
|
|
9
|
-
events$: Observable<PanEvent | SwipeEvent | TapEvent | RotateEvent | PinchEvent>;
|
|
10
|
-
initialize: (container: HTMLElement) => void;
|
|
11
|
-
recognizers: (PanRecognizer | SwipeRecognizer | TapRecognizer | RotateRecognizer | PinchRecognizer)[];
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export declare class Manager {
|
|
15
|
-
protected options: {
|
|
16
|
-
recognizers: Recognizer_2[];
|
|
17
|
-
afterEventReceived?: (event: PointerEvent) => PointerEvent;
|
|
18
|
-
};
|
|
19
|
-
readonly events$: Observable<ObservedValueOf<Recognizer_2["events$"]>>;
|
|
20
|
-
recognizers: Recognizer_2[];
|
|
21
|
-
constructor(options: {
|
|
22
|
-
recognizers: Recognizer_2[];
|
|
23
|
-
afterEventReceived?: (event: PointerEvent) => PointerEvent;
|
|
24
|
-
});
|
|
25
|
-
initialize(container: HTMLElement): void;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
declare type Options = {
|
|
5
|
+
declare type PanConfig = {
|
|
29
6
|
posThreshold?: number;
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
declare type Options_2 = {
|
|
7
|
+
delay?: number;
|
|
33
8
|
/**
|
|
34
|
-
*
|
|
9
|
+
* Number of inputs to trigger the event.
|
|
10
|
+
* Default to 1
|
|
35
11
|
*/
|
|
36
|
-
escapeVelocity?: number;
|
|
37
12
|
numInputs?: number;
|
|
38
|
-
maxRestTime?: number;
|
|
39
|
-
posThreshold?: number;
|
|
40
13
|
};
|
|
41
14
|
|
|
42
|
-
declare interface
|
|
43
|
-
|
|
44
|
-
maximumPressTime?: number;
|
|
45
|
-
maxTaps?: number;
|
|
46
|
-
posThreshold?: number;
|
|
15
|
+
export declare interface PanEvent extends RecognizerEvent {
|
|
16
|
+
type: "panStart" | "panMove" | "panEnd";
|
|
47
17
|
}
|
|
48
18
|
|
|
49
|
-
declare
|
|
50
|
-
posThreshold?: number;
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
declare type Options_5 = {
|
|
54
|
-
posThreshold?: number;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export declare interface PanEvent extends RecognizerEvent {
|
|
19
|
+
declare interface PanEvent_2 extends RecognizerEvent {
|
|
58
20
|
type: "panStart" | "panMove" | "panEnd";
|
|
59
21
|
}
|
|
60
22
|
|
|
61
|
-
export declare class PanRecognizer extends Recognizer<
|
|
62
|
-
protected options: Options;
|
|
23
|
+
export declare class PanRecognizer extends Recognizer<PanRecognizerOptions, PanEvent> implements PanRecognizerInterface {
|
|
63
24
|
events$: Observable<PanEvent>;
|
|
64
25
|
start$: Observable<PanEvent>;
|
|
65
26
|
end$: Observable<PanEvent>;
|
|
66
|
-
|
|
67
|
-
|
|
27
|
+
constructor(config?: RecognizerConfig<PanRecognizerOptions>);
|
|
28
|
+
update(config: RecognizerConfig<PanRecognizerOptions>): void;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
declare interface PanRecognizerInterface extends Recognizer<PanRecognizerOptions, PanEvent_2> {
|
|
32
|
+
events$: Observable<PanEvent_2>;
|
|
33
|
+
update(options: RecognizerConfig<PanRecognizerOptions>): void;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
declare interface PanRecognizerOptions {
|
|
37
|
+
/**
|
|
38
|
+
* @default 15
|
|
39
|
+
*/
|
|
40
|
+
posThreshold?: number;
|
|
41
|
+
delay?: number;
|
|
42
|
+
numInputs?: number;
|
|
68
43
|
}
|
|
69
44
|
|
|
70
45
|
export declare interface PinchEvent extends RecognizerEvent {
|
|
@@ -84,26 +59,106 @@ export declare interface PinchEvent extends RecognizerEvent {
|
|
|
84
59
|
deltaDistanceScale: number;
|
|
85
60
|
}
|
|
86
61
|
|
|
87
|
-
export declare class PinchRecognizer extends Recognizer<
|
|
88
|
-
|
|
62
|
+
export declare class PinchRecognizer extends Recognizer<PinchRecognizerOptions, PinchEvent> implements PinchRecognizerInterface {
|
|
63
|
+
events$: Observable<PinchEvent>;
|
|
64
|
+
constructor(config?: RecognizerConfig<PinchRecognizerOptions>);
|
|
65
|
+
update(options: RecognizerConfig<PinchRecognizerOptions>): void;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
declare interface PinchRecognizerInterface extends Recognizer<PinchRecognizerOptions, PinchEvent> {
|
|
89
69
|
events$: Observable<PinchEvent>;
|
|
90
|
-
|
|
70
|
+
update(options: RecognizerConfig<PinchRecognizerOptions>): void;
|
|
91
71
|
}
|
|
92
72
|
|
|
93
|
-
declare
|
|
94
|
-
|
|
95
|
-
protected validConfig$: Observable<ValidRecognizerConfig<Options>>;
|
|
96
|
-
constructor(options: Options);
|
|
97
|
-
initialize(config: RecognizerConfig<Options>): void;
|
|
98
|
-
update(options: Options): void;
|
|
73
|
+
declare interface PinchRecognizerOptions {
|
|
74
|
+
posThreshold?: number;
|
|
99
75
|
}
|
|
100
76
|
|
|
101
|
-
declare
|
|
77
|
+
export declare class Recognizable<T extends Recognizer<any, any>[]> implements RecognizableInterface<T> {
|
|
78
|
+
protected options: {
|
|
79
|
+
recognizers: T;
|
|
80
|
+
afterEventReceived?: (event: PointerEvent) => PointerEvent;
|
|
81
|
+
};
|
|
82
|
+
events$: Observable<ObservedValueOf<T[number]["events$"]>>;
|
|
83
|
+
recognizers: T;
|
|
84
|
+
state$: Observable<RecognizableState>;
|
|
85
|
+
constructor(options: {
|
|
86
|
+
recognizers: T;
|
|
87
|
+
afterEventReceived?: (event: PointerEvent) => PointerEvent;
|
|
88
|
+
});
|
|
89
|
+
update(options: RecognizerConfig<unknown>): void;
|
|
90
|
+
}
|
|
102
91
|
|
|
103
|
-
declare
|
|
92
|
+
declare interface RecognizableInterface<T extends Recognizer<any, any>[]> {
|
|
93
|
+
/**
|
|
94
|
+
* List of recognizers registered.
|
|
95
|
+
*
|
|
96
|
+
* You can access them directly from here if needed.
|
|
97
|
+
*/
|
|
98
|
+
readonly recognizers: T;
|
|
99
|
+
/**
|
|
100
|
+
* Dispatch events from all recognizer in one place.
|
|
101
|
+
*/
|
|
102
|
+
readonly events$: Observable<ObservedValueOf<T[number]["events$"]>>;
|
|
103
|
+
/**
|
|
104
|
+
* Global state based on registered recognizers.
|
|
105
|
+
*
|
|
106
|
+
* It is similar to the recognizer state but is a conveniant access
|
|
107
|
+
* which merge all their state together.
|
|
108
|
+
*/
|
|
109
|
+
readonly state$: Observable<RecognizableState>;
|
|
110
|
+
/**
|
|
111
|
+
* Initialize the instance with a given html element.
|
|
112
|
+
*
|
|
113
|
+
* You can only initialize one element per instance but you can
|
|
114
|
+
* change the element and call the method again if needed.
|
|
115
|
+
*/
|
|
116
|
+
update(options: RecognizerConfig<unknown>): void;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
declare type RecognizableState = {
|
|
120
|
+
/**
|
|
121
|
+
* Number of maximum simultaneous fingers currently registered
|
|
122
|
+
* by all recognizers.
|
|
123
|
+
*
|
|
124
|
+
* You can use this to detect how many fingers are touching the screen.
|
|
125
|
+
*
|
|
126
|
+
* This is assuming one of your recognizer is registering gestures.
|
|
127
|
+
*/
|
|
128
|
+
fingers: number;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export declare abstract class Recognizer<Options extends Record<any, any>, Event extends RecognizerEvent> {
|
|
132
|
+
protected configSubject: BehaviorSubject<RecognizerConfig<Options> & {
|
|
133
|
+
panConfig?: PanConfig | undefined;
|
|
134
|
+
}>;
|
|
135
|
+
protected panEvent$: Observable<PanEvent>;
|
|
136
|
+
protected pointerEvent$: Observable<PointerEvent>;
|
|
137
|
+
protected pointerDown$: Observable<PointerEvent>;
|
|
138
|
+
protected pointerUp$: Observable<PointerEvent>;
|
|
139
|
+
protected pointerCancel$: Observable<PointerEvent>;
|
|
140
|
+
protected pointerMove$: Observable<PointerEvent>;
|
|
141
|
+
protected pointerOff$: Observable<PointerEvent>;
|
|
142
|
+
state$: Observable<State>;
|
|
143
|
+
abstract events$: Observable<Event>;
|
|
144
|
+
protected failWith$: Observable<unknown>;
|
|
145
|
+
protected config$: Observable<RecognizerConfig<Options> & {
|
|
146
|
+
panConfig?: PanConfig | undefined;
|
|
147
|
+
} & {
|
|
148
|
+
container: HTMLElement;
|
|
149
|
+
}>;
|
|
150
|
+
constructor(config?: RecognizerConfig<Options>, panConfig?: PanConfig);
|
|
151
|
+
private updateInternal;
|
|
152
|
+
update(config: Partial<RecognizerConfig<Options>>, panConfig?: PanConfig): void;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export declare type RecognizerConfig<Options> = {
|
|
104
156
|
container?: HTMLElement;
|
|
105
157
|
afterEventReceived?: (event: PointerEvent) => PointerEvent;
|
|
106
158
|
options?: Options;
|
|
159
|
+
failWith?: {
|
|
160
|
+
start$: Observable<unknown>;
|
|
161
|
+
}[];
|
|
107
162
|
};
|
|
108
163
|
|
|
109
164
|
declare interface RecognizerEvent {
|
|
@@ -149,14 +204,8 @@ declare interface RecognizerEvent {
|
|
|
149
204
|
pointersAverageDistance: number;
|
|
150
205
|
}
|
|
151
206
|
|
|
152
|
-
declare interface
|
|
153
|
-
|
|
154
|
-
start$: Observable<unknown>;
|
|
155
|
-
}[];
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
export declare interface RotateEvent extends RecognizerEvent {
|
|
159
|
-
type: "rotate" | "rotateStart" | "rotateEnd";
|
|
207
|
+
declare interface RotateEvent extends RecognizerEvent {
|
|
208
|
+
type: "rotateMove" | "rotateStart" | "rotateEnd";
|
|
160
209
|
/**
|
|
161
210
|
* Current rotation angle
|
|
162
211
|
*/
|
|
@@ -167,13 +216,37 @@ export declare interface RotateEvent extends RecognizerEvent {
|
|
|
167
216
|
deltaAngle: number;
|
|
168
217
|
}
|
|
169
218
|
|
|
170
|
-
export declare class RotateRecognizer extends Recognizer<
|
|
171
|
-
protected options: Options_4;
|
|
219
|
+
export declare class RotateRecognizer extends Recognizer<RotateRecognizerOptions, RotateEvent> implements RotateRecognizerInterface {
|
|
172
220
|
events$: Observable<RotateEvent>;
|
|
173
|
-
constructor(
|
|
221
|
+
constructor(config?: RecognizerConfig<RotateRecognizerOptions>);
|
|
222
|
+
update(options: RecognizerConfig<RotateRecognizerOptions>): void;
|
|
174
223
|
}
|
|
175
224
|
|
|
176
|
-
|
|
225
|
+
declare interface RotateRecognizerInterface extends Recognizer<RotateRecognizerOptions, RotateEvent> {
|
|
226
|
+
events$: Observable<RotateEvent>;
|
|
227
|
+
update(options: RecognizerConfig<RotateRecognizerOptions>): void;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
declare interface RotateRecognizerOptions {
|
|
231
|
+
/**
|
|
232
|
+
* @default 15
|
|
233
|
+
*/
|
|
234
|
+
posThreshold?: number;
|
|
235
|
+
/**
|
|
236
|
+
* Minimum fingers required to trigger.
|
|
237
|
+
*
|
|
238
|
+
* A value lower than 2 will not work
|
|
239
|
+
*
|
|
240
|
+
* @default 2
|
|
241
|
+
*/
|
|
242
|
+
numInputs?: number;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
export declare type State = {
|
|
246
|
+
fingers: number;
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
declare interface SwipeEvent extends RecognizerEvent {
|
|
177
250
|
type: "swipe";
|
|
178
251
|
/**
|
|
179
252
|
* Angle between first pointer and last one in degree
|
|
@@ -185,23 +258,80 @@ export declare interface SwipeEvent extends RecognizerEvent {
|
|
|
185
258
|
angle: number;
|
|
186
259
|
}
|
|
187
260
|
|
|
188
|
-
export declare class SwipeRecognizer extends Recognizer<
|
|
189
|
-
|
|
261
|
+
export declare class SwipeRecognizer extends Recognizer<SwipeRecognizerOptions, SwipeEvent> implements SwipeRecognizerInterface {
|
|
262
|
+
events$: Observable<SwipeEvent>;
|
|
263
|
+
constructor(config?: RecognizerConfig<SwipeRecognizerOptions>);
|
|
264
|
+
update(config: RecognizerConfig<SwipeRecognizerOptions>): void;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
declare interface SwipeRecognizerInterface extends Recognizer<SwipeRecognizerOptions, SwipeEvent> {
|
|
190
268
|
events$: Observable<SwipeEvent>;
|
|
191
|
-
|
|
269
|
+
update(options: RecognizerConfig<SwipeRecognizerOptions>): void;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
declare interface SwipeRecognizerOptions {
|
|
273
|
+
/**
|
|
274
|
+
* The minimum velocity (px/ms) that the gesture has to obtain by the end event.
|
|
275
|
+
*
|
|
276
|
+
* @default 0.9
|
|
277
|
+
*/
|
|
278
|
+
escapeVelocity?: number;
|
|
192
279
|
}
|
|
193
280
|
|
|
194
|
-
|
|
281
|
+
declare interface TapEvent extends RecognizerEvent {
|
|
195
282
|
type: "tap";
|
|
196
283
|
taps: number;
|
|
197
284
|
}
|
|
198
285
|
|
|
199
|
-
export declare class TapRecognizer extends Recognizer<
|
|
200
|
-
protected options: Options_3;
|
|
286
|
+
export declare class TapRecognizer extends Recognizer<TapRecognizerOptions, TapEvent> implements TapRecognizerInterface {
|
|
201
287
|
events$: Observable<TapEvent>;
|
|
202
|
-
constructor(options
|
|
288
|
+
constructor(options?: RecognizerConfig<TapRecognizerOptions>);
|
|
289
|
+
update(config: RecognizerConfig<TapRecognizerOptions>): void;
|
|
203
290
|
}
|
|
204
291
|
|
|
205
|
-
declare
|
|
292
|
+
declare interface TapRecognizerInterface extends Recognizer<TapRecognizerOptions, TapEvent> {
|
|
293
|
+
events$: Observable<TapEvent>;
|
|
294
|
+
update(options: RecognizerConfig<TapRecognizerOptions>): void;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
declare interface TapRecognizerOptions {
|
|
298
|
+
/**
|
|
299
|
+
* Introduce a delay before recognizing a tap. This can be used to register more taps.
|
|
300
|
+
*
|
|
301
|
+
*
|
|
302
|
+
* A longer time will delay the click event but make it easier to multi taps.
|
|
303
|
+
* Try to find a good balance between latency and accessibility.
|
|
304
|
+
*
|
|
305
|
+
* @default 0
|
|
306
|
+
*/
|
|
307
|
+
multiTapThreshold?: number;
|
|
308
|
+
/**
|
|
309
|
+
* Maximum time you allow a finger to be pressed on the screen before cancelling the gesture.
|
|
310
|
+
*
|
|
311
|
+
* This can be used to allow long press for example.
|
|
312
|
+
* The default value does not really allow long press but rather accomodate for slower
|
|
313
|
+
* taps.
|
|
314
|
+
*
|
|
315
|
+
* @default 150
|
|
316
|
+
*/
|
|
317
|
+
maximumPressTime?: number;
|
|
318
|
+
/**
|
|
319
|
+
* Maximum number of taps allowed for the gesture. Going above will ignore the gesture.
|
|
320
|
+
* Going below will register a gesture with the number of taps.
|
|
321
|
+
*
|
|
322
|
+
* For example you can allow single and double tap only by setting `2` as value.
|
|
323
|
+
*
|
|
324
|
+
* @default 1
|
|
325
|
+
*/
|
|
326
|
+
maxTaps?: number;
|
|
327
|
+
/**
|
|
328
|
+
* A tolerance value which allows the user to move their finger about a radius measured in pixels.
|
|
329
|
+
* This allows the Tap gesture to be triggered more easily since a User might move their
|
|
330
|
+
* finger slightly during a tap event.
|
|
331
|
+
*
|
|
332
|
+
* @default 10
|
|
333
|
+
*/
|
|
334
|
+
tolerance?: number;
|
|
335
|
+
}
|
|
206
336
|
|
|
207
337
|
export { }
|