@nativescript-community/gesturehandler 2.0.20 → 2.0.21
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/gesturehandler.android.d.ts +180 -0
- package/gesturehandler.android.js +633 -0
- package/gesturehandler.android.js.map +1 -0
- package/gesturehandler.common.d.ts +97 -0
- package/gesturehandler.common.js +274 -0
- package/gesturehandler.common.js.map +1 -0
- package/gesturehandler.d.ts +156 -0
- package/gesturehandler.ios.d.ts +56 -0
- package/gesturehandler.ios.js +269 -0
- package/gesturehandler.ios.js.map +1 -0
- package/gestures_override.d.ts +29 -0
- package/gestures_override.js +417 -0
- package/gestures_override.js.map +1 -0
- package/package.json +2 -2
- package/references.d.ts +3 -0
- package/typings/android.d.ts +458 -0
- package/typings/extensions.android.d.ts +18 -0
- package/typings/ios.d.ts +246 -0
- package/vue/index.d.ts +4 -0
- package/vue/index.js +7 -0
- package/vue/index.js.map +1 -0
@@ -0,0 +1,633 @@
|
|
1
|
+
import { Application, Utils, View } from '@nativescript/core';
|
2
|
+
import { GestureTypes } from '@nativescript/core/ui/gestures';
|
3
|
+
import { Page } from '@nativescript/core/ui/page';
|
4
|
+
import { BaseGestureRootView, BaseNative, GestureHandlerStateEvent, GestureHandlerTouchEvent, GestureState, HandlerType, ManagerBase, ROOT_GESTURE_HANDLER_TAG, ViewDisposeEvent, ViewInitEvent, applyMixins, install as installBase, nativeProperty } from './gesturehandler.common';
|
5
|
+
import { observe as gestureObserve } from './gestures_override';
|
6
|
+
export { GestureState, GestureHandlerStateEvent, GestureHandlerTouchEvent, HandlerType, ViewInitEvent, ViewDisposeEvent };
|
7
|
+
let PageLayout;
|
8
|
+
class PageGestureExtended extends Page {
|
9
|
+
initNativeView() {
|
10
|
+
this.nativeViewProtected.initialize();
|
11
|
+
}
|
12
|
+
disposeNativeView() {
|
13
|
+
this.nativeViewProtected.tearDown();
|
14
|
+
}
|
15
|
+
get registry() {
|
16
|
+
return this.nativeViewProtected && this.nativeViewProtected.registry();
|
17
|
+
}
|
18
|
+
}
|
19
|
+
let installed = false;
|
20
|
+
let installedOverrides = false;
|
21
|
+
export class GestureRootView extends BaseGestureRootView {
|
22
|
+
createNativeView() {
|
23
|
+
if (!PageLayout) {
|
24
|
+
PageLayout = com.nativescript.gesturehandler.PageLayout;
|
25
|
+
}
|
26
|
+
const layout = new PageLayout(this._context, ROOT_GESTURE_HANDLER_TAG);
|
27
|
+
return layout;
|
28
|
+
}
|
29
|
+
initNativeView() {
|
30
|
+
super.initNativeView();
|
31
|
+
this.nativeView.initialize();
|
32
|
+
}
|
33
|
+
disposeNativeView() {
|
34
|
+
super.disposeNativeView();
|
35
|
+
this.nativeView.tearDown();
|
36
|
+
}
|
37
|
+
get registry() {
|
38
|
+
return this.nativeView && this.nativeView.registry();
|
39
|
+
}
|
40
|
+
}
|
41
|
+
export function install(overrideNGestures = false) {
|
42
|
+
if (!installed) {
|
43
|
+
installed = true;
|
44
|
+
installBase(overrideNGestures);
|
45
|
+
const NSPage = require('@nativescript/core/ui/page').Page;
|
46
|
+
NSPage.prototype.createNativeView = function () {
|
47
|
+
if (!PageLayout) {
|
48
|
+
PageLayout = com.nativescript.gesturehandler.PageLayout;
|
49
|
+
}
|
50
|
+
const layout = new PageLayout(this._context, ROOT_GESTURE_HANDLER_TAG);
|
51
|
+
//@ts-ignore
|
52
|
+
if (layout.addRowsFromJSON) {
|
53
|
+
//@ts-ignore
|
54
|
+
layout.addRowsFromJSON(JSON.stringify([
|
55
|
+
{ value: 1, type: 0 /* org.nativescript.widgets.GridUnitType.auto */ },
|
56
|
+
{ value: 1, type: 2 /* org.nativescript.widgets.GridUnitType.star */ }
|
57
|
+
]));
|
58
|
+
}
|
59
|
+
else {
|
60
|
+
layout.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.auto));
|
61
|
+
layout.addRow(new org.nativescript.widgets.ItemSpec(1, org.nativescript.widgets.GridUnitType.star));
|
62
|
+
}
|
63
|
+
// this.gestureRegistry = layout.registry();
|
64
|
+
return layout;
|
65
|
+
};
|
66
|
+
applyMixins(NSPage, [PageGestureExtended]);
|
67
|
+
}
|
68
|
+
if (overrideNGestures === true && !installedOverrides) {
|
69
|
+
installedOverrides = true;
|
70
|
+
const NSView = require('@nativescript/core/ui/core/view').View;
|
71
|
+
const NSButtonBase = require('@nativescript/core/ui/button').ButtonBase;
|
72
|
+
const NSButton = require('@nativescript/core/ui/button').Button;
|
73
|
+
delete NSButtonBase.tapEvent;
|
74
|
+
delete NSButton.tapEvent;
|
75
|
+
// we need to disable on click listener
|
76
|
+
NSButton.prototype.initNativeView = function () {
|
77
|
+
NSButtonBase.prototype.initNativeView.call(this);
|
78
|
+
};
|
79
|
+
NSButton.prototype.disposeNativeView = function () {
|
80
|
+
NSButtonBase.prototype.disposeNativeView.call(this);
|
81
|
+
};
|
82
|
+
NSView.prototype._observe = function (type, callback, thisArg) {
|
83
|
+
if (!this._gestureObservers[type]) {
|
84
|
+
this._gestureObservers[type] = [];
|
85
|
+
}
|
86
|
+
this._gestureObservers[type].push(gestureObserve(this, type, callback, thisArg));
|
87
|
+
if (this.isLoaded && !this.touchListenerIsSet) {
|
88
|
+
this.setOnTouchListener();
|
89
|
+
}
|
90
|
+
};
|
91
|
+
// NSView.prototype.setOnTouchListener = function () {
|
92
|
+
// if (!this.nativeViewProtected || !this.getGestureObservers(GestureTypes.touch)) {
|
93
|
+
// return;
|
94
|
+
// }
|
95
|
+
// // do not set noop listener that handles the event (disabled listener) if IsUserInteractionEnabled is
|
96
|
+
// // false as we might need the ability for the event to pass through to a parent view
|
97
|
+
// this.touchListener =
|
98
|
+
// this.touchListener ||
|
99
|
+
// new android.view.View.OnTouchListener({
|
100
|
+
// onTouch: (view: android.view.View, event: android.view.MotionEvent) => {
|
101
|
+
// this.handleGestureTouch(event);
|
102
|
+
// const nativeView = this.nativeViewProtected;
|
103
|
+
// if (!nativeView || !nativeView.onTouchEvent) {
|
104
|
+
// return false;
|
105
|
+
// }
|
106
|
+
// return nativeView.onTouchEvent(event);
|
107
|
+
// },
|
108
|
+
// });
|
109
|
+
// this.nativeViewProtected.setOnTouchListener(this.touchListener);
|
110
|
+
// this.touchListenerIsSet = true;
|
111
|
+
// console.log('setOnTouchListener', this);
|
112
|
+
// if (this.nativeViewProtected.setClickable) {
|
113
|
+
// this.nativeViewProtected.setClickable(this.isUserInteractionEnabled);
|
114
|
+
// }
|
115
|
+
// };
|
116
|
+
}
|
117
|
+
}
|
118
|
+
const KEY_HIT_SLOP_LEFT = 'left';
|
119
|
+
const KEY_HIT_SLOP_TOP = 'top';
|
120
|
+
const KEY_HIT_SLOP_RIGHT = 'right';
|
121
|
+
const KEY_HIT_SLOP_BOTTOM = 'bottom';
|
122
|
+
const KEY_HIT_SLOP_VERTICAL = 'vertical';
|
123
|
+
const KEY_HIT_SLOP_HORIZONTAL = 'horizontal';
|
124
|
+
const KEY_HIT_SLOP_WIDTH = 'width';
|
125
|
+
const KEY_HIT_SLOP_HEIGHT = 'height';
|
126
|
+
export class Handler extends BaseNative {
|
127
|
+
constructor() {
|
128
|
+
super(...arguments);
|
129
|
+
this.nativeGetterKey = 'nativeView';
|
130
|
+
this.tag = 0;
|
131
|
+
}
|
132
|
+
getExtraData(handler) {
|
133
|
+
const numberOfPointers = handler.getNumberOfPointers();
|
134
|
+
const positions = [];
|
135
|
+
for (let index = 0; index < numberOfPointers; index++) {
|
136
|
+
positions.push(Utils.layout.toDeviceIndependentPixels(handler.getXAtIndex(index)));
|
137
|
+
positions.push(Utils.layout.toDeviceIndependentPixels(handler.getYAtIndex(index)));
|
138
|
+
}
|
139
|
+
return {
|
140
|
+
// x: Utils.layout.toDeviceIndependentPixels(handler.getX()),
|
141
|
+
// y: Utils.layout.toDeviceIndependentPixels(handler.getY()),
|
142
|
+
positions,
|
143
|
+
numberOfPointers
|
144
|
+
};
|
145
|
+
}
|
146
|
+
initNativeView(native, options) {
|
147
|
+
super.initNativeView(native, options);
|
148
|
+
this.native.setTag(this.tag);
|
149
|
+
this.touchListener = new com.swmansion.gesturehandler.OnTouchEventListener({
|
150
|
+
shouldStartGesture: this.handleShouldStartGesture.bind(this),
|
151
|
+
onTouchEvent: this.onTouchEvent.bind(this),
|
152
|
+
onStateChange: this.onStateChange.bind(this)
|
153
|
+
});
|
154
|
+
native.setOnTouchEventListener(this.touchListener);
|
155
|
+
this.manager?.get()?.configureInteractions(this, options);
|
156
|
+
}
|
157
|
+
disposeNativeView() {
|
158
|
+
this.native.setInteractionController(null);
|
159
|
+
this.native.setOnTouchEventListener(null);
|
160
|
+
this.touchListener = null;
|
161
|
+
super.disposeNativeView();
|
162
|
+
}
|
163
|
+
handleShouldStartGesture(handler, event) {
|
164
|
+
if (this.shouldStartGesture) {
|
165
|
+
return this.shouldStartGesture(this.getExtraData(handler));
|
166
|
+
}
|
167
|
+
return true;
|
168
|
+
}
|
169
|
+
onTouchEvent(handler, event) {
|
170
|
+
const view = handler.getView();
|
171
|
+
this.notify({
|
172
|
+
eventName: GestureHandlerTouchEvent,
|
173
|
+
object: this,
|
174
|
+
data: {
|
175
|
+
state: handler.getState(),
|
176
|
+
android: view,
|
177
|
+
extraData: this.getExtraData(handler),
|
178
|
+
view: view.nsView ? view.nsView?.get() : null
|
179
|
+
}
|
180
|
+
});
|
181
|
+
}
|
182
|
+
onStateChange(handler, state, prevState) {
|
183
|
+
const view = handler.getView();
|
184
|
+
this.notify({
|
185
|
+
eventName: GestureHandlerStateEvent,
|
186
|
+
object: this,
|
187
|
+
data: {
|
188
|
+
state,
|
189
|
+
prevState,
|
190
|
+
android: view,
|
191
|
+
extraData: this.getExtraData(handler),
|
192
|
+
view: view.nsView ? view.nsView?.get() : null
|
193
|
+
}
|
194
|
+
});
|
195
|
+
}
|
196
|
+
setTag(tag) {
|
197
|
+
this.tag = tag;
|
198
|
+
if (this.native) {
|
199
|
+
this.native.setTag(tag);
|
200
|
+
}
|
201
|
+
}
|
202
|
+
getTag() {
|
203
|
+
return this.tag;
|
204
|
+
// return this.getNative().getTag();
|
205
|
+
}
|
206
|
+
getView() {
|
207
|
+
return this.getNative().getView();
|
208
|
+
}
|
209
|
+
cancel() {
|
210
|
+
return this.getNative().cancel();
|
211
|
+
}
|
212
|
+
attachToView(view) {
|
213
|
+
if (view === this.attachedView) {
|
214
|
+
return;
|
215
|
+
}
|
216
|
+
if (this.attachedView) {
|
217
|
+
this.detachFromView(this.attachedView);
|
218
|
+
}
|
219
|
+
this.attachedView = view;
|
220
|
+
this.manager?.get()?.attachGestureHandler(this, view);
|
221
|
+
}
|
222
|
+
detachFromView(view) {
|
223
|
+
if ((view && view !== this.attachedView) || !this.attachedView) {
|
224
|
+
return;
|
225
|
+
}
|
226
|
+
if (!this.attachedView) {
|
227
|
+
return;
|
228
|
+
}
|
229
|
+
this.manager?.get()?.detachGestureHandler(this, this.attachedView);
|
230
|
+
this.attachedView = null;
|
231
|
+
}
|
232
|
+
}
|
233
|
+
__decorate([
|
234
|
+
nativeProperty({
|
235
|
+
nativeSetterName: 'setHitSlop',
|
236
|
+
nativegetterName: 'getHitSlop',
|
237
|
+
converter: {
|
238
|
+
toNative(value) {
|
239
|
+
const HIT_SLOP_NONE = GestureHandler.HIT_SLOP_NONE;
|
240
|
+
if (typeof value === 'number') {
|
241
|
+
const hitSlop = Utils.layout.toDevicePixels(value);
|
242
|
+
return [hitSlop, hitSlop, hitSlop, hitSlop, HIT_SLOP_NONE, HIT_SLOP_NONE];
|
243
|
+
}
|
244
|
+
else {
|
245
|
+
let left = HIT_SLOP_NONE, top = HIT_SLOP_NONE, right = HIT_SLOP_NONE, bottom = HIT_SLOP_NONE;
|
246
|
+
let width = HIT_SLOP_NONE, height = HIT_SLOP_NONE;
|
247
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_HORIZONTAL)) {
|
248
|
+
const horizontalPad = Utils.layout.toDevicePixels(value[KEY_HIT_SLOP_HORIZONTAL]);
|
249
|
+
left = right = horizontalPad;
|
250
|
+
}
|
251
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_VERTICAL)) {
|
252
|
+
const verticalPad = Utils.layout.toDevicePixels(value[KEY_HIT_SLOP_VERTICAL]);
|
253
|
+
top = bottom = verticalPad;
|
254
|
+
}
|
255
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_LEFT)) {
|
256
|
+
left = Utils.layout.toDevicePixels(value[KEY_HIT_SLOP_LEFT]);
|
257
|
+
}
|
258
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_TOP)) {
|
259
|
+
top = Utils.layout.toDevicePixels(value[KEY_HIT_SLOP_TOP]);
|
260
|
+
}
|
261
|
+
if (value.hasKey(KEY_HIT_SLOP_RIGHT)) {
|
262
|
+
right = Utils.layout.toDevicePixels(value[KEY_HIT_SLOP_RIGHT]);
|
263
|
+
}
|
264
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_BOTTOM)) {
|
265
|
+
bottom = Utils.layout.toDevicePixels(value[KEY_HIT_SLOP_BOTTOM]);
|
266
|
+
}
|
267
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_WIDTH)) {
|
268
|
+
width = Utils.layout.toDevicePixels(value[KEY_HIT_SLOP_WIDTH]);
|
269
|
+
}
|
270
|
+
if (value.hasOwnProperty(KEY_HIT_SLOP_HEIGHT)) {
|
271
|
+
height = Utils.layout.toDevicePixels(value[KEY_HIT_SLOP_HEIGHT]);
|
272
|
+
}
|
273
|
+
return [left, top, right, bottom, width, height];
|
274
|
+
}
|
275
|
+
}
|
276
|
+
}
|
277
|
+
})
|
278
|
+
], Handler.prototype, "hitSlop", void 0);
|
279
|
+
__decorate([
|
280
|
+
nativeProperty
|
281
|
+
], Handler.prototype, "enabled", void 0);
|
282
|
+
__decorate([
|
283
|
+
nativeProperty
|
284
|
+
], Handler.prototype, "shouldCancelWhenOutside", void 0);
|
285
|
+
export class TapGestureHandler extends Handler {
|
286
|
+
createNative(options) {
|
287
|
+
return new com.swmansion.gesturehandler.TapGestureHandler();
|
288
|
+
}
|
289
|
+
getExtraData(handler) {
|
290
|
+
return Object.assign(super.getExtraData(handler), {
|
291
|
+
x: Utils.layout.toDeviceIndependentPixels(handler.getLastRelativePositionX()),
|
292
|
+
y: Utils.layout.toDeviceIndependentPixels(handler.getLastRelativePositionY()),
|
293
|
+
absoluteX: Utils.layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionX()),
|
294
|
+
absoluteY: Utils.layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionY())
|
295
|
+
});
|
296
|
+
}
|
297
|
+
}
|
298
|
+
__decorate([
|
299
|
+
nativeProperty
|
300
|
+
], TapGestureHandler.prototype, "numberOfTaps", void 0);
|
301
|
+
__decorate([
|
302
|
+
nativeProperty
|
303
|
+
], TapGestureHandler.prototype, "maxDurationMs", void 0);
|
304
|
+
__decorate([
|
305
|
+
nativeProperty
|
306
|
+
], TapGestureHandler.prototype, "maxDelayMs", void 0);
|
307
|
+
__decorate([
|
308
|
+
nativeProperty({ nativeSetterName: 'setMaxDx' })
|
309
|
+
], TapGestureHandler.prototype, "maxDeltaX", void 0);
|
310
|
+
__decorate([
|
311
|
+
nativeProperty({ nativeSetterName: 'setMaxDy' })
|
312
|
+
], TapGestureHandler.prototype, "maxDeltaY", void 0);
|
313
|
+
__decorate([
|
314
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
315
|
+
], TapGestureHandler.prototype, "maxDist", void 0);
|
316
|
+
__decorate([
|
317
|
+
nativeProperty({ nativeSetterName: 'setMinNumberOfPointers' })
|
318
|
+
], TapGestureHandler.prototype, "minPointers", void 0);
|
319
|
+
export class PanGestureHandler extends Handler {
|
320
|
+
createNative(options) {
|
321
|
+
const context = Utils.android.getApplicationContext();
|
322
|
+
return new com.swmansion.gesturehandler.PanGestureHandler(context);
|
323
|
+
}
|
324
|
+
getExtraData(handler) {
|
325
|
+
return Object.assign(super.getExtraData(handler), {
|
326
|
+
x: Utils.layout.toDeviceIndependentPixels(handler.getLastRelativePositionX()),
|
327
|
+
y: Utils.layout.toDeviceIndependentPixels(handler.getLastRelativePositionY()),
|
328
|
+
absoluteX: Utils.layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionX()),
|
329
|
+
absoluteY: Utils.layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionY()),
|
330
|
+
translationX: Utils.layout.toDeviceIndependentPixels(handler.getTranslationX()),
|
331
|
+
translationY: Utils.layout.toDeviceIndependentPixels(handler.getTranslationY()),
|
332
|
+
velocityX: Utils.layout.toDeviceIndependentPixels(handler.getVelocityX()),
|
333
|
+
velocityY: Utils.layout.toDeviceIndependentPixels(handler.getVelocityY())
|
334
|
+
});
|
335
|
+
}
|
336
|
+
}
|
337
|
+
__decorate([
|
338
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
339
|
+
], PanGestureHandler.prototype, "minDist", void 0);
|
340
|
+
__decorate([
|
341
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
342
|
+
], PanGestureHandler.prototype, "activeOffsetXStart", void 0);
|
343
|
+
__decorate([
|
344
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
345
|
+
], PanGestureHandler.prototype, "activeOffsetXEnd", void 0);
|
346
|
+
__decorate([
|
347
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
348
|
+
], PanGestureHandler.prototype, "failOffsetXStart", void 0);
|
349
|
+
__decorate([
|
350
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
351
|
+
], PanGestureHandler.prototype, "failOffsetXEnd", void 0);
|
352
|
+
__decorate([
|
353
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
354
|
+
], PanGestureHandler.prototype, "activeOffsetYStart", void 0);
|
355
|
+
__decorate([
|
356
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
357
|
+
], PanGestureHandler.prototype, "activeOffsetYEnd", void 0);
|
358
|
+
__decorate([
|
359
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
360
|
+
], PanGestureHandler.prototype, "failOffsetYStart", void 0);
|
361
|
+
__decorate([
|
362
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
363
|
+
], PanGestureHandler.prototype, "failOffsetYEnd", void 0);
|
364
|
+
__decorate([
|
365
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
366
|
+
], PanGestureHandler.prototype, "minVelocity", void 0);
|
367
|
+
__decorate([
|
368
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
369
|
+
], PanGestureHandler.prototype, "minVelocityX", void 0);
|
370
|
+
__decorate([
|
371
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
372
|
+
], PanGestureHandler.prototype, "minVelocityY", void 0);
|
373
|
+
__decorate([
|
374
|
+
nativeProperty
|
375
|
+
], PanGestureHandler.prototype, "minPointers", void 0);
|
376
|
+
__decorate([
|
377
|
+
nativeProperty
|
378
|
+
], PanGestureHandler.prototype, "maxPointers", void 0);
|
379
|
+
__decorate([
|
380
|
+
nativeProperty({ nativeSetterName: 'setAverageTouches' })
|
381
|
+
], PanGestureHandler.prototype, "avgTouches", void 0);
|
382
|
+
__decorate([
|
383
|
+
nativeProperty
|
384
|
+
], PanGestureHandler.prototype, "numberOfPointers", void 0);
|
385
|
+
export class PinchGestureHandler extends Handler {
|
386
|
+
createNative(options) {
|
387
|
+
return new com.swmansion.gesturehandler.PinchGestureHandler();
|
388
|
+
}
|
389
|
+
getExtraData(handler) {
|
390
|
+
return Object.assign(super.getExtraData(handler), {
|
391
|
+
x: Utils.layout.toDeviceIndependentPixels(handler.getLastRelativePositionX()),
|
392
|
+
y: Utils.layout.toDeviceIndependentPixels(handler.getLastRelativePositionY()),
|
393
|
+
absoluteX: Utils.layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionX()),
|
394
|
+
absoluteY: Utils.layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionY()),
|
395
|
+
scale: handler.getScale(),
|
396
|
+
focalX: Utils.layout.toDeviceIndependentPixels(handler.getFocalPointX()),
|
397
|
+
focalY: Utils.layout.toDeviceIndependentPixels(handler.getFocalPointY()),
|
398
|
+
velocity: handler.getVelocity()
|
399
|
+
});
|
400
|
+
}
|
401
|
+
}
|
402
|
+
__decorate([
|
403
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
404
|
+
], PinchGestureHandler.prototype, "minSpan", void 0);
|
405
|
+
const GestureHandler = com.swmansion.gesturehandler.GestureHandler;
|
406
|
+
export var FlingDirection;
|
407
|
+
(function (FlingDirection) {
|
408
|
+
FlingDirection[FlingDirection["DIRECTION_LEFT"] = GestureHandler.DIRECTION_LEFT] = "DIRECTION_LEFT";
|
409
|
+
FlingDirection[FlingDirection["DIRECTION_UP"] = GestureHandler.DIRECTION_UP] = "DIRECTION_UP";
|
410
|
+
FlingDirection[FlingDirection["DIRECTION_DOWN"] = GestureHandler.DIRECTION_DOWN] = "DIRECTION_DOWN";
|
411
|
+
FlingDirection[FlingDirection["DIRECTION_RIGHT"] = GestureHandler.DIRECTION_RIGHT] = "DIRECTION_RIGHT";
|
412
|
+
})(FlingDirection || (FlingDirection = {}));
|
413
|
+
function directionToString(direction) {
|
414
|
+
switch (direction) {
|
415
|
+
case GestureHandler.DIRECTION_RIGHT:
|
416
|
+
return 'right';
|
417
|
+
case GestureHandler.DIRECTION_UP:
|
418
|
+
return 'up';
|
419
|
+
case GestureHandler.DIRECTION_DOWN:
|
420
|
+
return 'down';
|
421
|
+
default:
|
422
|
+
return 'left';
|
423
|
+
}
|
424
|
+
}
|
425
|
+
function directionFromString(direction) {
|
426
|
+
switch (direction) {
|
427
|
+
case 'right':
|
428
|
+
return GestureHandler.DIRECTION_RIGHT;
|
429
|
+
case 'up':
|
430
|
+
return GestureHandler.DIRECTION_UP;
|
431
|
+
case 'down':
|
432
|
+
return GestureHandler.DIRECTION_DOWN;
|
433
|
+
default:
|
434
|
+
return GestureHandler.DIRECTION_LEFT;
|
435
|
+
}
|
436
|
+
}
|
437
|
+
export class FlingGestureHandler extends Handler {
|
438
|
+
createNative(options) {
|
439
|
+
return new com.swmansion.gesturehandler.FlingGestureHandler();
|
440
|
+
}
|
441
|
+
getExtraData(handler) {
|
442
|
+
return Object.assign(super.getExtraData(handler), {
|
443
|
+
direction: directionToString(handler.getRecognizedDirection())
|
444
|
+
});
|
445
|
+
}
|
446
|
+
}
|
447
|
+
__decorate([
|
448
|
+
nativeProperty
|
449
|
+
], FlingGestureHandler.prototype, "numberOfPointers", void 0);
|
450
|
+
__decorate([
|
451
|
+
nativeProperty
|
452
|
+
], FlingGestureHandler.prototype, "direction", void 0);
|
453
|
+
export class LongPressGestureHandler extends Handler {
|
454
|
+
createNative(options) {
|
455
|
+
const context = Utils.android.getApplicationContext();
|
456
|
+
return new com.swmansion.gesturehandler.LongPressGestureHandler(context);
|
457
|
+
}
|
458
|
+
getExtraData(handler) {
|
459
|
+
return Object.assign(super.getExtraData(handler), {
|
460
|
+
x: Utils.layout.toDeviceIndependentPixels(handler.getLastRelativePositionX()),
|
461
|
+
y: Utils.layout.toDeviceIndependentPixels(handler.getLastRelativePositionY()),
|
462
|
+
absoluteX: Utils.layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionX()),
|
463
|
+
absoluteY: Utils.layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionY())
|
464
|
+
});
|
465
|
+
}
|
466
|
+
}
|
467
|
+
__decorate([
|
468
|
+
nativeProperty
|
469
|
+
], LongPressGestureHandler.prototype, "minDurationMs", void 0);
|
470
|
+
__decorate([
|
471
|
+
nativeProperty({ converter: { fromNative: Utils.layout.toDevicePixels } })
|
472
|
+
], LongPressGestureHandler.prototype, "maxDist", void 0);
|
473
|
+
export class RotationGestureHandler extends Handler {
|
474
|
+
createNative(options) {
|
475
|
+
return new com.swmansion.gesturehandler.RotationGestureHandler();
|
476
|
+
}
|
477
|
+
getExtraData(handler) {
|
478
|
+
return Object.assign(super.getExtraData(handler), {
|
479
|
+
x: Utils.layout.toDeviceIndependentPixels(handler.getLastRelativePositionX()),
|
480
|
+
y: Utils.layout.toDeviceIndependentPixels(handler.getLastRelativePositionY()),
|
481
|
+
absoluteX: Utils.layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionX()),
|
482
|
+
absoluteY: Utils.layout.toDeviceIndependentPixels(handler.getLastAbsolutePositionY()),
|
483
|
+
rotation: handler.getRotation(),
|
484
|
+
anchorX: Utils.layout.toDeviceIndependentPixels(handler.getAnchorX()),
|
485
|
+
anchorY: Utils.layout.toDeviceIndependentPixels(handler.getAnchorY()),
|
486
|
+
velocity: handler.getVelocity()
|
487
|
+
});
|
488
|
+
}
|
489
|
+
}
|
490
|
+
export class NativeViewGestureHandler extends Handler {
|
491
|
+
createNative(options) {
|
492
|
+
return new com.swmansion.gesturehandler.NativeViewGestureHandler();
|
493
|
+
}
|
494
|
+
getExtraData(handler) {
|
495
|
+
return Object.assign(super.getExtraData(handler), {
|
496
|
+
pointerInside: handler.isWithinBounds()
|
497
|
+
});
|
498
|
+
}
|
499
|
+
}
|
500
|
+
__decorate([
|
501
|
+
nativeProperty
|
502
|
+
], NativeViewGestureHandler.prototype, "shouldActivateOnStart", void 0);
|
503
|
+
__decorate([
|
504
|
+
nativeProperty
|
505
|
+
], NativeViewGestureHandler.prototype, "disallowInterruption", void 0);
|
506
|
+
export class Manager extends ManagerBase {
|
507
|
+
constructor() {
|
508
|
+
super(...arguments);
|
509
|
+
this.viewListeners = new Map();
|
510
|
+
}
|
511
|
+
configureInteractions(handler, options = {}) {
|
512
|
+
this.interactionManager.configureInteractions(handler.getNative(), options.waitFor, options.simultaneousHandlers);
|
513
|
+
}
|
514
|
+
get interactionManager() {
|
515
|
+
if (!this._interactionManager) {
|
516
|
+
this._interactionManager = new com.nativescript.gesturehandler.GestureHandlerInteractionController();
|
517
|
+
}
|
518
|
+
return this._interactionManager;
|
519
|
+
}
|
520
|
+
static getInstance() {
|
521
|
+
if (!Manager.sManager) {
|
522
|
+
Manager.sManager = new Manager();
|
523
|
+
}
|
524
|
+
return Manager.sManager;
|
525
|
+
}
|
526
|
+
createGestureHandler(handlerName, handlerTag, config) {
|
527
|
+
let handler = null;
|
528
|
+
switch (handlerName) {
|
529
|
+
case 'tap':
|
530
|
+
handler = new TapGestureHandler(config);
|
531
|
+
break;
|
532
|
+
case 'pan':
|
533
|
+
handler = new PanGestureHandler(config);
|
534
|
+
break;
|
535
|
+
case 'nativeView':
|
536
|
+
handler = new NativeViewGestureHandler(config);
|
537
|
+
break;
|
538
|
+
case 'pinch':
|
539
|
+
handler = new PinchGestureHandler(config);
|
540
|
+
break;
|
541
|
+
case 'fling':
|
542
|
+
handler = new FlingGestureHandler(config);
|
543
|
+
break;
|
544
|
+
case 'rotation':
|
545
|
+
handler = new RotationGestureHandler(config);
|
546
|
+
break;
|
547
|
+
case 'longPress':
|
548
|
+
handler = new LongPressGestureHandler(config);
|
549
|
+
break;
|
550
|
+
}
|
551
|
+
if (handler) {
|
552
|
+
handler.manager = new WeakRef(this);
|
553
|
+
handler.setTag(handlerTag);
|
554
|
+
}
|
555
|
+
return handler;
|
556
|
+
}
|
557
|
+
findRegistry(view) {
|
558
|
+
let registry;
|
559
|
+
const page = view.page;
|
560
|
+
if (page) {
|
561
|
+
registry = page.registry;
|
562
|
+
}
|
563
|
+
else {
|
564
|
+
// no root page try to find a parent GestureRootView
|
565
|
+
let parent = view.parent;
|
566
|
+
while (parent) {
|
567
|
+
if (parent instanceof GestureRootView) {
|
568
|
+
return parent.registry;
|
569
|
+
}
|
570
|
+
parent = parent.parent;
|
571
|
+
}
|
572
|
+
}
|
573
|
+
return registry;
|
574
|
+
}
|
575
|
+
attachGestureHandlerToView(handler, view) {
|
576
|
+
const nHandler = handler.getNative();
|
577
|
+
if (nHandler) {
|
578
|
+
const registry = this.findRegistry(view);
|
579
|
+
if (registry) {
|
580
|
+
registry.registerHandler(nHandler);
|
581
|
+
registry.attachHandlerToView(nHandler.getTag(), view[handler.nativeGetterKey]);
|
582
|
+
}
|
583
|
+
else {
|
584
|
+
throw new Error('a Page or a GestureRootView is needed to attach a gesture');
|
585
|
+
}
|
586
|
+
}
|
587
|
+
}
|
588
|
+
detachGestureHandlerFromView(handler, view) {
|
589
|
+
const nHandler = handler.getNative();
|
590
|
+
if (nHandler) {
|
591
|
+
const registry = this.findRegistry(view);
|
592
|
+
if (registry) {
|
593
|
+
registry.dropHandler(nHandler.getTag());
|
594
|
+
}
|
595
|
+
}
|
596
|
+
}
|
597
|
+
attachGestureHandler(handler, view) {
|
598
|
+
if (view.nativeView) {
|
599
|
+
this.attachGestureHandlerToView(handler, view);
|
600
|
+
}
|
601
|
+
const onInit = () => this.attachGestureHandlerToView(handler, view);
|
602
|
+
const onDispose = () => this.detachGestureHandlerFromView(handler, view);
|
603
|
+
view.on(ViewInitEvent, onInit, this);
|
604
|
+
view.on(ViewDisposeEvent, onDispose, this);
|
605
|
+
let viewListeners = this.viewListeners.get(view);
|
606
|
+
if (!viewListeners) {
|
607
|
+
viewListeners = new Map();
|
608
|
+
this.viewListeners.set(view, viewListeners);
|
609
|
+
}
|
610
|
+
viewListeners.set(handler.getTag(), {
|
611
|
+
init: onInit,
|
612
|
+
dispose: onDispose
|
613
|
+
});
|
614
|
+
}
|
615
|
+
detachGestureHandler(handler, view) {
|
616
|
+
if (view) {
|
617
|
+
const viewListeners = this.viewListeners.get(view);
|
618
|
+
if (viewListeners) {
|
619
|
+
const listeners = viewListeners.get(handler.getTag());
|
620
|
+
if (listeners) {
|
621
|
+
view.off(ViewInitEvent, listeners.init, this);
|
622
|
+
view.off(ViewDisposeEvent, () => listeners.dispose, this);
|
623
|
+
viewListeners.delete(handler.getTag());
|
624
|
+
if (viewListeners.size === 0) {
|
625
|
+
this.viewListeners.delete(view);
|
626
|
+
}
|
627
|
+
}
|
628
|
+
}
|
629
|
+
}
|
630
|
+
this.detachGestureHandlerFromView(handler, view);
|
631
|
+
}
|
632
|
+
}
|
633
|
+
//# sourceMappingURL=gesturehandler.android.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"gesturehandler.android.js","sourceRoot":"../src/","sources":["gesturehandler.android.ts"],"names":[],"mappings":"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"}
|