react-native-gesture-handler 2.6.0 → 2.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. package/android/build.gradle +2 -2
  2. package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  3. package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  4. package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +19 -0
  5. package/lib/commonjs/EnableExperimentalWebImplementation.js +7 -0
  6. package/lib/commonjs/EnableExperimentalWebImplementation.js.map +1 -1
  7. package/lib/commonjs/RNGestureHandlerModule.js +1 -1
  8. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  9. package/lib/commonjs/RNGestureHandlerModule.macos.js +20 -9
  10. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
  11. package/lib/commonjs/RNGestureHandlerModule.web.js +23 -10
  12. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  13. package/lib/commonjs/components/GestureComponents.web.js +1 -1
  14. package/lib/commonjs/components/GestureComponents.web.js.map +1 -1
  15. package/lib/commonjs/fabric/RNGestureHandlerButtonNativeComponent.js +1 -5
  16. package/lib/commonjs/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  17. package/lib/commonjs/fabric/RNGestureHandlerRootViewNativeComponent.js +1 -5
  18. package/lib/commonjs/fabric/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
  19. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  20. package/lib/commonjs/handlers/gestures/eventReceiver.js +14 -20
  21. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
  22. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js +32 -0
  23. package/lib/commonjs/handlers/gestures/gestureStateManager.web.js.map +1 -0
  24. package/lib/commonjs/web/detectors/RotationGestureDetector.js +13 -17
  25. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  26. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +3 -14
  27. package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
  28. package/lib/commonjs/web/handlers/FlingGestureHandler.js +37 -12
  29. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  30. package/lib/commonjs/web/handlers/GestureHandler.js +282 -79
  31. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  32. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +23 -18
  33. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  34. package/lib/commonjs/web/handlers/ManualGestureHandler.js +51 -0
  35. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -0
  36. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +81 -22
  37. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  38. package/lib/commonjs/web/handlers/PanGestureHandler.js +57 -40
  39. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  40. package/lib/commonjs/web/handlers/PinchGestureHandler.js +43 -34
  41. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  42. package/lib/commonjs/web/handlers/RotationGestureHandler.js +45 -39
  43. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  44. package/lib/commonjs/web/handlers/TapGestureHandler.js +52 -50
  45. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  46. package/lib/commonjs/web/interfaces.js +22 -1
  47. package/lib/commonjs/web/interfaces.js.map +1 -1
  48. package/lib/commonjs/web/tools/EventManager.js +40 -96
  49. package/lib/commonjs/web/tools/EventManager.js.map +1 -1
  50. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +109 -30
  51. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  52. package/lib/commonjs/web/tools/InteractionManager.js +24 -10
  53. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  54. package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
  55. package/lib/commonjs/web/tools/PointerEventManager.js +130 -0
  56. package/lib/commonjs/web/tools/PointerEventManager.js.map +1 -0
  57. package/lib/commonjs/web/tools/PointerTracker.js +97 -7
  58. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  59. package/lib/commonjs/web/tools/TouchEventManager.js +138 -0
  60. package/lib/commonjs/web/tools/TouchEventManager.js.map +1 -0
  61. package/lib/commonjs/web/utils.js +15 -0
  62. package/lib/commonjs/web/utils.js.map +1 -0
  63. package/lib/module/EnableExperimentalWebImplementation.js +5 -0
  64. package/lib/module/EnableExperimentalWebImplementation.js.map +1 -1
  65. package/lib/module/RNGestureHandlerModule.js +1 -1
  66. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  67. package/lib/module/RNGestureHandlerModule.macos.js +19 -10
  68. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
  69. package/lib/module/RNGestureHandlerModule.web.js +22 -11
  70. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  71. package/lib/module/components/GestureComponents.web.js +1 -1
  72. package/lib/module/components/GestureComponents.web.js.map +1 -1
  73. package/lib/module/fabric/RNGestureHandlerButtonNativeComponent.js +1 -5
  74. package/lib/module/fabric/RNGestureHandlerButtonNativeComponent.js.map +1 -1
  75. package/lib/module/fabric/RNGestureHandlerRootViewNativeComponent.js +1 -4
  76. package/lib/module/fabric/RNGestureHandlerRootViewNativeComponent.js.map +1 -1
  77. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  78. package/lib/module/handlers/gestures/eventReceiver.js +14 -20
  79. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
  80. package/lib/module/handlers/gestures/gestureStateManager.web.js +21 -0
  81. package/lib/module/handlers/gestures/gestureStateManager.web.js.map +1 -0
  82. package/lib/module/web/detectors/RotationGestureDetector.js +13 -17
  83. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  84. package/lib/module/web/detectors/ScaleGestureDetector.js +3 -14
  85. package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
  86. package/lib/module/web/handlers/FlingGestureHandler.js +37 -12
  87. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  88. package/lib/module/web/handlers/GestureHandler.js +276 -79
  89. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  90. package/lib/module/web/handlers/LongPressGestureHandler.js +23 -18
  91. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  92. package/lib/module/web/handlers/ManualGestureHandler.js +39 -0
  93. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -0
  94. package/lib/module/web/handlers/NativeViewGestureHandler.js +80 -22
  95. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  96. package/lib/module/web/handlers/PanGestureHandler.js +57 -41
  97. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  98. package/lib/module/web/handlers/PinchGestureHandler.js +43 -33
  99. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  100. package/lib/module/web/handlers/RotationGestureHandler.js +45 -38
  101. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  102. package/lib/module/web/handlers/TapGestureHandler.js +52 -50
  103. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  104. package/lib/module/web/interfaces.js +19 -0
  105. package/lib/module/web/interfaces.js.map +1 -1
  106. package/lib/module/web/tools/EventManager.js +39 -95
  107. package/lib/module/web/tools/EventManager.js.map +1 -1
  108. package/lib/module/web/tools/GestureHandlerOrchestrator.js +107 -30
  109. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  110. package/lib/module/web/tools/InteractionManager.js +24 -10
  111. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  112. package/lib/module/web/tools/NodeManager.js.map +1 -1
  113. package/lib/module/web/tools/PointerEventManager.js +116 -0
  114. package/lib/module/web/tools/PointerEventManager.js.map +1 -0
  115. package/lib/module/web/tools/PointerTracker.js +97 -7
  116. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  117. package/lib/module/web/tools/TouchEventManager.js +124 -0
  118. package/lib/module/web/tools/TouchEventManager.js.map +1 -0
  119. package/lib/module/web/utils.js +8 -0
  120. package/lib/module/web/utils.js.map +1 -0
  121. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +5 -2
  122. package/lib/typescript/RNGestureHandlerModule.web.d.ts +5 -2
  123. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +1 -1
  124. package/lib/typescript/fabric/RNGestureHandlerButtonNativeComponent.d.ts +3 -3
  125. package/lib/typescript/fabric/RNGestureHandlerRootViewNativeComponent.d.ts +3 -2
  126. package/lib/typescript/handlers/gestures/gestureStateManager.web.d.ts +4 -0
  127. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +7 -7
  128. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +6 -7
  129. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +12 -10
  130. package/lib/typescript/web/handlers/GestureHandler.d.ts +41 -32
  131. package/lib/typescript/web/handlers/LongPressGestureHandler.d.ts +6 -9
  132. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +11 -0
  133. package/lib/typescript/web/handlers/NativeViewGestureHandler.d.ts +15 -6
  134. package/lib/typescript/web/handlers/PanGestureHandler.d.ts +15 -23
  135. package/lib/typescript/web/handlers/PinchGestureHandler.d.ts +11 -12
  136. package/lib/typescript/web/handlers/RotationGestureHandler.d.ts +12 -12
  137. package/lib/typescript/web/handlers/TapGestureHandler.d.ts +11 -14
  138. package/lib/typescript/web/interfaces.d.ts +50 -10
  139. package/lib/typescript/web/tools/EventManager.d.ts +28 -26
  140. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +4 -2
  141. package/lib/typescript/web/tools/InteractionManager.d.ts +3 -0
  142. package/lib/typescript/web/tools/NodeManager.d.ts +3 -3
  143. package/lib/typescript/web/tools/PointerEventManager.d.ts +6 -0
  144. package/lib/typescript/web/tools/PointerTracker.d.ts +29 -5
  145. package/lib/typescript/web/tools/TouchEventManager.d.ts +6 -0
  146. package/lib/typescript/web/utils.d.ts +4 -0
  147. package/package.json +2 -2
  148. package/src/EnableExperimentalWebImplementation.ts +9 -0
  149. package/src/RNGestureHandlerModule.macos.ts +25 -10
  150. package/src/RNGestureHandlerModule.ts +4 -1
  151. package/src/RNGestureHandlerModule.web.ts +20 -7
  152. package/src/components/GestureComponents.web.tsx +1 -1
  153. package/src/fabric/RNGestureHandlerButtonNativeComponent.ts +2 -12
  154. package/src/fabric/RNGestureHandlerRootViewNativeComponent.ts +2 -8
  155. package/src/handlers/gestures/GestureDetector.tsx +0 -1
  156. package/src/handlers/gestures/eventReceiver.ts +23 -24
  157. package/src/handlers/gestures/gestureStateManager.web.ts +24 -0
  158. package/src/web/detectors/RotationGestureDetector.ts +20 -52
  159. package/src/web/detectors/ScaleGestureDetector.ts +9 -45
  160. package/src/web/handlers/FlingGestureHandler.ts +45 -22
  161. package/src/web/handlers/GestureHandler.ts +306 -97
  162. package/src/web/handlers/LongPressGestureHandler.ts +30 -24
  163. package/src/web/handlers/ManualGestureHandler.ts +39 -0
  164. package/src/web/handlers/NativeViewGestureHandler.ts +81 -24
  165. package/src/web/handlers/PanGestureHandler.ts +68 -53
  166. package/src/web/handlers/PinchGestureHandler.ts +47 -44
  167. package/src/web/handlers/RotationGestureHandler.ts +52 -51
  168. package/src/web/handlers/TapGestureHandler.ts +74 -56
  169. package/src/web/interfaces.ts +57 -10
  170. package/src/web/tools/EventManager.ts +58 -148
  171. package/src/web/tools/GestureHandlerOrchestrator.ts +115 -47
  172. package/src/web/tools/InteractionManager.ts +25 -9
  173. package/src/web/tools/NodeManager.ts +6 -6
  174. package/src/web/tools/PointerEventManager.ts +134 -0
  175. package/src/web/tools/PointerTracker.ts +120 -10
  176. package/src/web/tools/TouchEventManager.ts +167 -0
  177. package/src/web/utils.ts +8 -0
@@ -41,9 +41,9 @@ export default class PanGestureHandler extends GestureHandler {
41
41
 
42
42
  _defineProperty(this, "minVelocitySq", Number.MAX_SAFE_INTEGER);
43
43
 
44
- _defineProperty(this, "minPointers", 1);
44
+ _defineProperty(this, "minPointers", DEFAULT_MIN_POINTERS);
45
45
 
46
- _defineProperty(this, "maxPointers", 10);
46
+ _defineProperty(this, "maxPointers", DEFAULT_MAX_POINTERS);
47
47
 
48
48
  _defineProperty(this, "startX", 0);
49
49
 
@@ -58,6 +58,8 @@ export default class PanGestureHandler extends GestureHandler {
58
58
  _defineProperty(this, "lastY", 0);
59
59
 
60
60
  _defineProperty(this, "activateAfterLongPress", 0);
61
+
62
+ _defineProperty(this, "activationTimeout", 0);
61
63
  }
62
64
 
63
65
  init(ref, propsRef) {
@@ -103,6 +105,10 @@ export default class PanGestureHandler extends GestureHandler {
103
105
  this.minVelocityY = this.config.minVelocityY;
104
106
  }
105
107
 
108
+ if (this.config.activateAfterLongPress !== undefined) {
109
+ this.activateAfterLongPress = this.config.activateAfterLongPress;
110
+ }
111
+
106
112
  if (this.config.shouldCancelWhenOutside) {
107
113
  this.setShouldCancelWhenOutside(false);
108
114
  }
@@ -191,21 +197,20 @@ export default class PanGestureHandler extends GestureHandler {
191
197
  this.activateAfterLongPress = 0;
192
198
  }
193
199
 
194
- transformNativeEvent(event) {
195
- if (!this.view) {
196
- return {};
197
- }
198
-
200
+ transformNativeEvent() {
201
+ const rect = this.view.getBoundingClientRect();
199
202
  const ratio = PixelRatio.get();
203
+ const translationX = this.getTranslationX();
204
+ const translationY = this.getTranslationY();
200
205
  return {
201
- translationX: this.getTranslationX(),
202
- translationY: this.getTranslationY(),
203
- absoluteX: event.x,
204
- absoluteY: event.y,
206
+ translationX: isNaN(translationX) ? 0 : translationX,
207
+ translationY: isNaN(translationY) ? 0 : translationY,
208
+ absoluteX: this.tracker.getLastAvgX(),
209
+ absoluteY: this.tracker.getLastAvgY(),
205
210
  velocityX: this.velocityX * ratio * 10,
206
211
  velocityY: this.velocityY * ratio * 10,
207
- x: event.offsetX,
208
- y: event.offsetY
212
+ x: this.tracker.getLastAvgX() - rect.left,
213
+ y: this.tracker.getLastAvgY() - rect.top
209
214
  };
210
215
  }
211
216
 
@@ -215,25 +220,25 @@ export default class PanGestureHandler extends GestureHandler {
215
220
 
216
221
  getTranslationY() {
217
222
  return this.lastY - this.startY + this.offsetY;
223
+ }
224
+
225
+ clearActivationTimeout() {
226
+ clearTimeout(this.activationTimeout);
218
227
  } //EventsHandling
219
228
 
220
229
 
221
230
  onPointerDown(event) {
222
- super.onPointerDown(event);
223
231
  this.tracker.addToTracker(event);
224
-
225
- if (this.tracker.getTrackedPointersCount() > 1) {
226
- this.onPointerAdd(event);
227
- return;
228
- }
229
-
232
+ super.onPointerDown(event);
230
233
  this.lastX = this.tracker.getLastAvgX();
231
234
  this.lastY = this.tracker.getLastAvgY();
232
235
  this.tryBegin(event);
233
- this.checkBegan(event);
236
+ this.checkBegan();
234
237
  }
235
238
 
236
239
  onPointerAdd(event) {
240
+ this.tracker.addToTracker(event);
241
+ super.onPointerAdd(event);
237
242
  this.tryBegin(event);
238
243
  this.offsetX += this.lastX - this.startX;
239
244
  this.offsetY += this.lastY - this.startY;
@@ -244,24 +249,18 @@ export default class PanGestureHandler extends GestureHandler {
244
249
 
245
250
  if (this.tracker.getTrackedPointersCount() > this.maxPointers) {
246
251
  if (this.currentState === State.ACTIVE) {
247
- this.cancel(event);
252
+ this.cancel();
248
253
  } else {
249
- this.fail(event);
254
+ this.fail();
250
255
  }
251
256
  } else {
252
- this.checkBegan(event);
257
+ this.checkBegan();
253
258
  }
254
259
  }
255
260
 
256
261
  onPointerUp(event) {
257
262
  super.onPointerUp(event);
258
263
 
259
- if (this.tracker.getTrackedPointersCount() > 1) {
260
- this.tracker.removeFromTracker(event.pointerId);
261
- this.onPointerRemove(event);
262
- return;
263
- }
264
-
265
264
  if (this.currentState === State.ACTIVE) {
266
265
  this.lastX = this.tracker.getLastAvgX();
267
266
  this.lastY = this.tracker.getLastAvgY();
@@ -270,14 +269,16 @@ export default class PanGestureHandler extends GestureHandler {
270
269
  this.tracker.removeFromTracker(event.pointerId);
271
270
 
272
271
  if (this.currentState === State.ACTIVE) {
273
- this.end(event);
272
+ this.end();
274
273
  } else {
275
274
  this.resetProgress();
276
- this.fail(event);
275
+ this.fail();
277
276
  }
278
277
  }
279
278
 
280
279
  onPointerRemove(event) {
280
+ super.onPointerRemove(event);
281
+ this.tracker.removeFromTracker(event.pointerId);
281
282
  this.offsetX += this.lastX - this.startX;
282
283
  this.offsetY += this.lastY - this.startY;
283
284
  this.lastX = this.tracker.getLastAvgX();
@@ -286,7 +287,7 @@ export default class PanGestureHandler extends GestureHandler {
286
287
  this.startY = this.lastY;
287
288
 
288
289
  if (!(this.currentState === State.ACTIVE && this.tracker.getTrackedPointersCount() < this.minPointers)) {
289
- this.checkBegan(event);
290
+ this.checkBegan();
290
291
  }
291
292
  }
292
293
 
@@ -296,7 +297,7 @@ export default class PanGestureHandler extends GestureHandler {
296
297
  this.lastY = this.tracker.getLastAvgY();
297
298
  this.velocityX = this.tracker.getVelocityX(event.pointerId);
298
299
  this.velocityY = this.tracker.getVelocityY(event.pointerId);
299
- this.checkBegan(event);
300
+ this.checkBegan();
300
301
  super.onPointerMove(event);
301
302
  }
302
303
 
@@ -315,7 +316,7 @@ export default class PanGestureHandler extends GestureHandler {
315
316
  this.lastY = this.tracker.getLastAvgY();
316
317
  this.velocityX = this.tracker.getVelocityX(event.pointerId);
317
318
  this.velocityY = this.tracker.getVelocityY(event.pointerId);
318
- this.checkBegan(event);
319
+ this.checkBegan();
319
320
 
320
321
  if (this.currentState === State.ACTIVE) {
321
322
  super.onPointerOutOfBounds(event);
@@ -371,6 +372,7 @@ export default class PanGestureHandler extends GestureHandler {
371
372
  const distanceSq = dx * dx + dy * dy;
372
373
 
373
374
  if (this.activateAfterLongPress > 0 && distanceSq > DEFAULT_MIN_DIST_SQ) {
375
+ this.clearActivationTimeout();
374
376
  return true;
375
377
  }
376
378
 
@@ -396,29 +398,43 @@ export default class PanGestureHandler extends GestureHandler {
396
398
  this.offsetY = 0;
397
399
  this.velocityX = 0;
398
400
  this.velocityY = 0;
399
- this.begin(event); //Long press
401
+ this.begin();
402
+
403
+ if (this.activateAfterLongPress > 0) {
404
+ this.activationTimeout = setTimeout(() => {
405
+ this.activate();
406
+ }, this.activateAfterLongPress);
407
+ }
400
408
  } else {
401
409
  this.velocityX = this.tracker.getVelocityX(event.pointerId);
402
410
  this.velocityY = this.tracker.getVelocityY(event.pointerId);
403
411
  }
404
412
  }
405
413
 
406
- checkBegan(event) {
414
+ checkBegan() {
407
415
  if (this.currentState === State.BEGAN) {
408
416
  if (this.shouldFail()) {
409
- this.fail(event);
417
+ this.fail();
410
418
  } else if (this.shouldActivate()) {
411
- this.activate(event);
419
+ this.activate();
412
420
  }
413
421
  }
414
422
  }
415
423
 
416
- activate(event, force = false) {
424
+ activate(force = false) {
417
425
  if (this.currentState !== State.ACTIVE) {
418
426
  this.resetProgress();
419
427
  }
420
428
 
421
- super.activate(event, force);
429
+ super.activate(force);
430
+ }
431
+
432
+ onCancel() {
433
+ this.clearActivationTimeout();
434
+ }
435
+
436
+ onReset() {
437
+ this.clearActivationTimeout();
422
438
  }
423
439
 
424
440
  resetProgress() {
@@ -1 +1 @@
1
- {"version":3,"sources":["PanGestureHandler.ts"],"names":["PixelRatio","State","DEFAULT_TOUCH_SLOP","GestureHandler","DEFAULT_MIN_POINTERS","DEFAULT_MAX_POINTERS","DEFAULT_MIN_DIST_SQ","PanGestureHandler","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","init","ref","propsRef","updateGestureConfig","enabled","props","resetConfig","checkCustomActivationCriteria","customActivationProperties","config","minDist","undefined","minDistSq","hasCustomActivationCriteria","minPointers","maxPointers","minVelocity","minVelocityX","minVelocityY","shouldCancelWhenOutside","setShouldCancelWhenOutside","activeOffsetXStart","activeOffsetXEnd","failOffsetXStart","failOffsetXEnd","activeOffsetYStart","activeOffsetYEnd","failOffsetYStart","failOffsetYEnd","minVelocitySq","activateAfterLongPress","transformNativeEvent","event","view","ratio","get","translationX","getTranslationX","translationY","getTranslationY","absoluteX","x","absoluteY","y","velocityX","velocityY","offsetX","offsetY","lastX","startX","lastY","startY","onPointerDown","tracker","addToTracker","getTrackedPointersCount","onPointerAdd","getLastAvgX","getLastAvgY","tryBegin","checkBegan","currentState","ACTIVE","cancel","fail","onPointerUp","removeFromTracker","pointerId","onPointerRemove","end","resetProgress","onPointerMove","track","getVelocityX","getVelocityY","onPointerCancel","reset","onPointerOutOfBounds","getShouldCancelWhenOutside","shouldActivate","dx","dy","distanceSq","vx","vy","velocitySq","shouldFail","UNDETERMINED","begin","BEGAN","activate","force"],"mappings":"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","sourcesContent":["import { PixelRatio } from 'react-native';\nimport { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedPointerEvent } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\n\nconst DEFAULT_MIN_POINTERS = 1;\nconst DEFAULT_MAX_POINTERS = 10;\nconst DEFAULT_MIN_DIST_SQ = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;\n\nexport default class PanGestureHandler extends GestureHandler {\n private readonly customActivationProperties: string[] = [\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'minVelocityX',\n 'minVelocityY',\n ];\n\n public velocityX = 0;\n public velocityY = 0;\n\n private minDistSq = DEFAULT_MIN_DIST_SQ;\n\n private activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n private activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n private failOffsetXStart = Number.MIN_SAFE_INTEGER;\n private failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n\n private activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n private activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n private failOffsetYStart = Number.MIN_SAFE_INTEGER;\n private failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n\n private minVelocityX = Number.MAX_SAFE_INTEGER;\n private minVelocityY = Number.MAX_SAFE_INTEGER;\n private minVelocitySq = Number.MAX_SAFE_INTEGER;\n\n private minPointers = 1;\n private maxPointers = 10;\n\n private startX = 0;\n private startY = 0;\n private offsetX = 0;\n private offsetY = 0;\n private lastX = 0;\n private lastY = 0;\n\n // TODO: Implement logic required for activateAfterLongPress\n private activateAfterLongPress = 0;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n }\n\n public updateGestureConfig({ enabled = true, ...props }): void {\n this.resetConfig();\n\n super.updateGestureConfig({ enabled: enabled, ...props });\n this.checkCustomActivationCriteria(this.customActivationProperties);\n\n this.enabled = enabled;\n\n if (this.config.minDist !== undefined) {\n this.minDistSq = this.config.minDist * this.config.minDist;\n } else if (this.hasCustomActivationCriteria) {\n this.minDistSq = Number.MAX_SAFE_INTEGER;\n }\n\n if (this.config.minPointers !== undefined) {\n this.minPointers = this.config.minPointers;\n }\n\n if (this.config.maxPointers !== undefined) {\n this.maxPointers = this.config.maxPointers;\n }\n\n if (this.config.minVelocity !== undefined) {\n this.minVelocityX = this.config.minVelocity;\n this.minVelocityY = this.config.minVelocity;\n }\n\n if (this.config.minVelocityX !== undefined) {\n this.minVelocityX = this.config.minVelocityX;\n }\n\n if (this.config.minVelocityY !== undefined) {\n this.minVelocityY = this.config.minVelocityY;\n }\n\n if (this.config.shouldCancelWhenOutside) {\n this.setShouldCancelWhenOutside(false);\n }\n\n if (this.config.activeOffsetXStart !== undefined) {\n this.activeOffsetXStart = this.config.activeOffsetXStart;\n\n if (this.config.activeOffsetXEnd === undefined) {\n this.activeOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetXEnd !== undefined) {\n this.activeOffsetXEnd = this.config.activeOffsetXEnd;\n\n if (this.config.activeOffsetXStart === undefined) {\n this.activeOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXStart !== undefined) {\n this.failOffsetXStart = this.config.failOffsetXStart;\n\n if (this.config.failOffsetXEnd === undefined) {\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXEnd !== undefined) {\n this.failOffsetXEnd = this.config.failOffsetXEnd;\n\n if (this.config.failOffsetXStart === undefined) {\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYStart !== undefined) {\n this.activeOffsetYStart = this.config.activeOffsetYStart;\n\n if (this.config.activeOffsetYEnd === undefined) {\n this.activeOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYEnd !== undefined) {\n this.activeOffsetYEnd = this.config.activeOffsetYEnd;\n\n if (this.config.activeOffsetYStart === undefined) {\n this.activeOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYStart !== undefined) {\n this.failOffsetYStart = this.config.failOffsetYStart;\n\n if (this.config.failOffsetYEnd === undefined) {\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYEnd !== undefined) {\n this.failOffsetYEnd = this.config.failOffsetYEnd;\n\n if (this.config.failOffsetYStart === undefined) {\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n\n this.activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n this.activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n\n this.activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n this.activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n\n this.minVelocityX = Number.MAX_SAFE_INTEGER;\n this.minVelocityY = Number.MAX_SAFE_INTEGER;\n this.minVelocitySq = Number.MAX_SAFE_INTEGER;\n\n this.minDistSq = DEFAULT_MIN_DIST_SQ;\n\n this.minPointers = DEFAULT_MIN_POINTERS;\n this.maxPointers = DEFAULT_MAX_POINTERS;\n\n this.activateAfterLongPress = 0;\n }\n\n protected transformNativeEvent(event: AdaptedPointerEvent) {\n if (!this.view) {\n return {};\n }\n\n const ratio = PixelRatio.get();\n\n return {\n translationX: this.getTranslationX(),\n translationY: this.getTranslationY(),\n absoluteX: event.x,\n absoluteY: event.y,\n velocityX: this.velocityX * ratio * 10,\n velocityY: this.velocityY * ratio * 10,\n x: event.offsetX,\n y: event.offsetY,\n };\n }\n\n private getTranslationX(): number {\n return this.lastX - this.startX + this.offsetX;\n }\n private getTranslationY(): number {\n return this.lastY - this.startY + this.offsetY;\n }\n\n //EventsHandling\n protected onPointerDown(event: AdaptedPointerEvent): void {\n super.onPointerDown(event);\n this.tracker.addToTracker(event);\n\n if (this.tracker.getTrackedPointersCount() > 1) {\n this.onPointerAdd(event);\n return;\n }\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.tryBegin(event);\n this.checkBegan(event);\n }\n protected onPointerAdd(event: AdaptedPointerEvent): void {\n this.tryBegin(event);\n\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (this.tracker.getTrackedPointersCount() > this.maxPointers) {\n if (this.currentState === State.ACTIVE) {\n this.cancel(event);\n } else {\n this.fail(event);\n }\n } else {\n this.checkBegan(event);\n }\n }\n\n protected onPointerUp(event: AdaptedPointerEvent): void {\n super.onPointerUp(event);\n\n if (this.tracker.getTrackedPointersCount() > 1) {\n this.tracker.removeFromTracker(event.pointerId);\n\n this.onPointerRemove(event);\n return;\n }\n\n if (this.currentState === State.ACTIVE) {\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.currentState === State.ACTIVE) {\n this.end(event);\n } else {\n this.resetProgress();\n this.fail(event);\n }\n }\n protected onPointerRemove(event: AdaptedPointerEvent): void {\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (\n !(\n this.currentState === State.ACTIVE &&\n this.tracker.getTrackedPointersCount() < this.minPointers\n )\n ) {\n this.checkBegan(event);\n }\n }\n\n protected onPointerMove(event: AdaptedPointerEvent): void {\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n\n this.checkBegan(event);\n\n super.onPointerMove(event);\n }\n\n protected onPointerCancel(event: AdaptedPointerEvent): void {\n super.onPointerCancel(event);\n\n this.reset();\n }\n protected onPointerOutOfBounds(event: AdaptedPointerEvent): void {\n if (this.getShouldCancelWhenOutside()) {\n return;\n }\n\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n\n this.checkBegan(event);\n\n if (this.currentState === State.ACTIVE) {\n super.onPointerOutOfBounds(event);\n }\n }\n\n private shouldActivate(): boolean {\n const dx: number = this.getTranslationX();\n\n if (\n this.activeOffsetXStart !== Number.MAX_SAFE_INTEGER &&\n dx < this.activeOffsetXStart\n ) {\n return true;\n }\n\n if (\n this.activeOffsetXEnd !== Number.MIN_SAFE_INTEGER &&\n dx > this.activeOffsetXEnd\n ) {\n return true;\n }\n\n const dy: number = this.getTranslationY();\n\n if (\n this.activeOffsetYStart !== Number.MAX_SAFE_INTEGER &&\n dy < this.activeOffsetYStart\n ) {\n return true;\n }\n\n if (\n this.activeOffsetYEnd !== Number.MIN_SAFE_INTEGER &&\n dy > this.activeOffsetYEnd\n ) {\n return true;\n }\n\n const distanceSq: number = dx * dx + dy * dy;\n\n if (\n this.minDistSq !== Number.MAX_SAFE_INTEGER &&\n distanceSq >= this.minDistSq\n ) {\n return true;\n }\n\n const vx: number = this.velocityX;\n\n if (\n this.minVelocityX !== Number.MAX_SAFE_INTEGER &&\n ((this.minVelocityX < 0 && vx <= this.minVelocityX) ||\n (this.minVelocityX >= 0 && this.minVelocityX <= vx))\n ) {\n return true;\n }\n\n const vy: number = this.velocityY;\n if (\n this.minVelocityY !== Number.MAX_SAFE_INTEGER &&\n ((this.minVelocityY < 0 && vy <= this.minVelocityY) ||\n (this.minVelocityY >= 0 && this.minVelocityY <= vy))\n ) {\n return true;\n }\n\n const velocitySq: number = vx * vx + vy * vy;\n\n return (\n this.minVelocitySq !== Number.MAX_SAFE_INTEGER &&\n velocitySq >= this.minVelocitySq\n );\n }\n\n private shouldFail(): boolean {\n const dx: number = this.getTranslationX();\n const dy: number = this.getTranslationY();\n const distanceSq = dx * dx + dy * dy;\n\n if (this.activateAfterLongPress > 0 && distanceSq > DEFAULT_MIN_DIST_SQ) {\n return true;\n }\n\n if (\n this.failOffsetXStart !== Number.MIN_SAFE_INTEGER &&\n dx < this.failOffsetXStart\n ) {\n return true;\n }\n\n if (\n this.failOffsetXEnd !== Number.MAX_SAFE_INTEGER &&\n dx > this.failOffsetXEnd\n ) {\n return true;\n }\n\n if (\n this.failOffsetYStart !== Number.MIN_SAFE_INTEGER &&\n dy < this.failOffsetYStart\n ) {\n return true;\n }\n\n return (\n this.failOffsetYEnd !== Number.MAX_SAFE_INTEGER &&\n dy > this.failOffsetYEnd\n );\n }\n\n private tryBegin(event: AdaptedPointerEvent): void {\n if (\n this.currentState === State.UNDETERMINED &&\n this.tracker.getTrackedPointersCount() >= this.minPointers\n ) {\n this.resetProgress();\n this.offsetX = 0;\n this.offsetY = 0;\n this.velocityX = 0;\n this.velocityY = 0;\n\n this.begin(event);\n\n //Long press\n } else {\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n }\n }\n\n private checkBegan(event: AdaptedPointerEvent): void {\n if (this.currentState === State.BEGAN) {\n if (this.shouldFail()) {\n this.fail(event);\n } else if (this.shouldActivate()) {\n this.activate(event);\n }\n }\n }\n\n protected activate(event: AdaptedPointerEvent, force = false): void {\n if (this.currentState !== State.ACTIVE) {\n this.resetProgress();\n }\n\n super.activate(event, force);\n }\n\n protected resetProgress(): void {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n }\n}\n"]}
1
+ {"version":3,"sources":["PanGestureHandler.ts"],"names":["PixelRatio","State","DEFAULT_TOUCH_SLOP","GestureHandler","DEFAULT_MIN_POINTERS","DEFAULT_MAX_POINTERS","DEFAULT_MIN_DIST_SQ","PanGestureHandler","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","init","ref","propsRef","updateGestureConfig","enabled","props","resetConfig","checkCustomActivationCriteria","customActivationProperties","config","minDist","undefined","minDistSq","hasCustomActivationCriteria","minPointers","maxPointers","minVelocity","minVelocityX","minVelocityY","activateAfterLongPress","shouldCancelWhenOutside","setShouldCancelWhenOutside","activeOffsetXStart","activeOffsetXEnd","failOffsetXStart","failOffsetXEnd","activeOffsetYStart","activeOffsetYEnd","failOffsetYStart","failOffsetYEnd","minVelocitySq","transformNativeEvent","rect","view","getBoundingClientRect","ratio","get","translationX","getTranslationX","translationY","getTranslationY","isNaN","absoluteX","tracker","getLastAvgX","absoluteY","getLastAvgY","velocityX","velocityY","x","left","y","top","lastX","startX","offsetX","lastY","startY","offsetY","clearActivationTimeout","clearTimeout","activationTimeout","onPointerDown","event","addToTracker","tryBegin","checkBegan","onPointerAdd","getTrackedPointersCount","currentState","ACTIVE","cancel","fail","onPointerUp","removeFromTracker","pointerId","end","resetProgress","onPointerRemove","onPointerMove","track","getVelocityX","getVelocityY","onPointerCancel","reset","onPointerOutOfBounds","getShouldCancelWhenOutside","shouldActivate","dx","dy","distanceSq","vx","vy","velocitySq","shouldFail","UNDETERMINED","begin","setTimeout","activate","BEGAN","force","onCancel","onReset"],"mappings":"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","sourcesContent":["import { PixelRatio } from 'react-native';\nimport { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\n\nconst DEFAULT_MIN_POINTERS = 1;\nconst DEFAULT_MAX_POINTERS = 10;\nconst DEFAULT_MIN_DIST_SQ = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;\n\nexport default class PanGestureHandler extends GestureHandler {\n private readonly customActivationProperties: string[] = [\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'minVelocityX',\n 'minVelocityY',\n ];\n\n public velocityX = 0;\n public velocityY = 0;\n\n private minDistSq = DEFAULT_MIN_DIST_SQ;\n\n private activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n private activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n private failOffsetXStart = Number.MIN_SAFE_INTEGER;\n private failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n\n private activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n private activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n private failOffsetYStart = Number.MIN_SAFE_INTEGER;\n private failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n\n private minVelocityX = Number.MAX_SAFE_INTEGER;\n private minVelocityY = Number.MAX_SAFE_INTEGER;\n private minVelocitySq = Number.MAX_SAFE_INTEGER;\n\n private minPointers = DEFAULT_MIN_POINTERS;\n private maxPointers = DEFAULT_MAX_POINTERS;\n\n private startX = 0;\n private startY = 0;\n private offsetX = 0;\n private offsetY = 0;\n private lastX = 0;\n private lastY = 0;\n\n private activateAfterLongPress = 0;\n private activationTimeout = 0;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n this.resetConfig();\n\n super.updateGestureConfig({ enabled: enabled, ...props });\n this.checkCustomActivationCriteria(this.customActivationProperties);\n\n this.enabled = enabled;\n\n if (this.config.minDist !== undefined) {\n this.minDistSq = this.config.minDist * this.config.minDist;\n } else if (this.hasCustomActivationCriteria) {\n this.minDistSq = Number.MAX_SAFE_INTEGER;\n }\n\n if (this.config.minPointers !== undefined) {\n this.minPointers = this.config.minPointers;\n }\n\n if (this.config.maxPointers !== undefined) {\n this.maxPointers = this.config.maxPointers;\n }\n\n if (this.config.minVelocity !== undefined) {\n this.minVelocityX = this.config.minVelocity;\n this.minVelocityY = this.config.minVelocity;\n }\n\n if (this.config.minVelocityX !== undefined) {\n this.minVelocityX = this.config.minVelocityX;\n }\n\n if (this.config.minVelocityY !== undefined) {\n this.minVelocityY = this.config.minVelocityY;\n }\n\n if (this.config.activateAfterLongPress !== undefined) {\n this.activateAfterLongPress = this.config.activateAfterLongPress;\n }\n\n if (this.config.shouldCancelWhenOutside) {\n this.setShouldCancelWhenOutside(false);\n }\n\n if (this.config.activeOffsetXStart !== undefined) {\n this.activeOffsetXStart = this.config.activeOffsetXStart;\n\n if (this.config.activeOffsetXEnd === undefined) {\n this.activeOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetXEnd !== undefined) {\n this.activeOffsetXEnd = this.config.activeOffsetXEnd;\n\n if (this.config.activeOffsetXStart === undefined) {\n this.activeOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXStart !== undefined) {\n this.failOffsetXStart = this.config.failOffsetXStart;\n\n if (this.config.failOffsetXEnd === undefined) {\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXEnd !== undefined) {\n this.failOffsetXEnd = this.config.failOffsetXEnd;\n\n if (this.config.failOffsetXStart === undefined) {\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYStart !== undefined) {\n this.activeOffsetYStart = this.config.activeOffsetYStart;\n\n if (this.config.activeOffsetYEnd === undefined) {\n this.activeOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYEnd !== undefined) {\n this.activeOffsetYEnd = this.config.activeOffsetYEnd;\n\n if (this.config.activeOffsetYStart === undefined) {\n this.activeOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYStart !== undefined) {\n this.failOffsetYStart = this.config.failOffsetYStart;\n\n if (this.config.failOffsetYEnd === undefined) {\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYEnd !== undefined) {\n this.failOffsetYEnd = this.config.failOffsetYEnd;\n\n if (this.config.failOffsetYStart === undefined) {\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n\n this.activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n this.activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n\n this.activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n this.activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n\n this.minVelocityX = Number.MAX_SAFE_INTEGER;\n this.minVelocityY = Number.MAX_SAFE_INTEGER;\n this.minVelocitySq = Number.MAX_SAFE_INTEGER;\n\n this.minDistSq = DEFAULT_MIN_DIST_SQ;\n\n this.minPointers = DEFAULT_MIN_POINTERS;\n this.maxPointers = DEFAULT_MAX_POINTERS;\n\n this.activateAfterLongPress = 0;\n }\n\n protected transformNativeEvent() {\n const rect: DOMRect = this.view.getBoundingClientRect();\n const ratio = PixelRatio.get();\n\n const translationX: number = this.getTranslationX();\n const translationY: number = this.getTranslationY();\n\n return {\n translationX: isNaN(translationX) ? 0 : translationX,\n translationY: isNaN(translationY) ? 0 : translationY,\n absoluteX: this.tracker.getLastAvgX(),\n absoluteY: this.tracker.getLastAvgY(),\n velocityX: this.velocityX * ratio * 10,\n velocityY: this.velocityY * ratio * 10,\n x: this.tracker.getLastAvgX() - rect.left,\n y: this.tracker.getLastAvgY() - rect.top,\n };\n }\n\n private getTranslationX(): number {\n return this.lastX - this.startX + this.offsetX;\n }\n private getTranslationY(): number {\n return this.lastY - this.startY + this.offsetY;\n }\n\n private clearActivationTimeout(): void {\n clearTimeout(this.activationTimeout);\n }\n\n //EventsHandling\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.tryBegin(event);\n this.checkBegan();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.tryBegin(event);\n\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (this.tracker.getTrackedPointersCount() > this.maxPointers) {\n if (this.currentState === State.ACTIVE) {\n this.cancel();\n } else {\n this.fail();\n }\n } else {\n this.checkBegan();\n }\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n\n if (this.currentState === State.ACTIVE) {\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.resetProgress();\n this.fail();\n }\n }\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (\n !(\n this.currentState === State.ACTIVE &&\n this.tracker.getTrackedPointersCount() < this.minPointers\n )\n ) {\n this.checkBegan();\n }\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n\n this.checkBegan();\n\n super.onPointerMove(event);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n\n this.reset();\n }\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n if (this.getShouldCancelWhenOutside()) {\n return;\n }\n\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n\n this.checkBegan();\n\n if (this.currentState === State.ACTIVE) {\n super.onPointerOutOfBounds(event);\n }\n }\n\n private shouldActivate(): boolean {\n const dx: number = this.getTranslationX();\n\n if (\n this.activeOffsetXStart !== Number.MAX_SAFE_INTEGER &&\n dx < this.activeOffsetXStart\n ) {\n return true;\n }\n\n if (\n this.activeOffsetXEnd !== Number.MIN_SAFE_INTEGER &&\n dx > this.activeOffsetXEnd\n ) {\n return true;\n }\n\n const dy: number = this.getTranslationY();\n\n if (\n this.activeOffsetYStart !== Number.MAX_SAFE_INTEGER &&\n dy < this.activeOffsetYStart\n ) {\n return true;\n }\n\n if (\n this.activeOffsetYEnd !== Number.MIN_SAFE_INTEGER &&\n dy > this.activeOffsetYEnd\n ) {\n return true;\n }\n\n const distanceSq: number = dx * dx + dy * dy;\n\n if (\n this.minDistSq !== Number.MAX_SAFE_INTEGER &&\n distanceSq >= this.minDistSq\n ) {\n return true;\n }\n\n const vx: number = this.velocityX;\n\n if (\n this.minVelocityX !== Number.MAX_SAFE_INTEGER &&\n ((this.minVelocityX < 0 && vx <= this.minVelocityX) ||\n (this.minVelocityX >= 0 && this.minVelocityX <= vx))\n ) {\n return true;\n }\n\n const vy: number = this.velocityY;\n if (\n this.minVelocityY !== Number.MAX_SAFE_INTEGER &&\n ((this.minVelocityY < 0 && vy <= this.minVelocityY) ||\n (this.minVelocityY >= 0 && this.minVelocityY <= vy))\n ) {\n return true;\n }\n\n const velocitySq: number = vx * vx + vy * vy;\n\n return (\n this.minVelocitySq !== Number.MAX_SAFE_INTEGER &&\n velocitySq >= this.minVelocitySq\n );\n }\n\n private shouldFail(): boolean {\n const dx: number = this.getTranslationX();\n const dy: number = this.getTranslationY();\n const distanceSq = dx * dx + dy * dy;\n\n if (this.activateAfterLongPress > 0 && distanceSq > DEFAULT_MIN_DIST_SQ) {\n this.clearActivationTimeout();\n return true;\n }\n\n if (\n this.failOffsetXStart !== Number.MIN_SAFE_INTEGER &&\n dx < this.failOffsetXStart\n ) {\n return true;\n }\n\n if (\n this.failOffsetXEnd !== Number.MAX_SAFE_INTEGER &&\n dx > this.failOffsetXEnd\n ) {\n return true;\n }\n\n if (\n this.failOffsetYStart !== Number.MIN_SAFE_INTEGER &&\n dy < this.failOffsetYStart\n ) {\n return true;\n }\n\n return (\n this.failOffsetYEnd !== Number.MAX_SAFE_INTEGER &&\n dy > this.failOffsetYEnd\n );\n }\n\n private tryBegin(event: AdaptedEvent): void {\n if (\n this.currentState === State.UNDETERMINED &&\n this.tracker.getTrackedPointersCount() >= this.minPointers\n ) {\n this.resetProgress();\n this.offsetX = 0;\n this.offsetY = 0;\n this.velocityX = 0;\n this.velocityY = 0;\n\n this.begin();\n\n if (this.activateAfterLongPress > 0) {\n this.activationTimeout = setTimeout(() => {\n this.activate();\n }, this.activateAfterLongPress);\n }\n } else {\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n }\n }\n\n private checkBegan(): void {\n if (this.currentState === State.BEGAN) {\n if (this.shouldFail()) {\n this.fail();\n } else if (this.shouldActivate()) {\n this.activate();\n }\n }\n }\n\n public activate(force = false): void {\n if (this.currentState !== State.ACTIVE) {\n this.resetProgress();\n }\n\n super.activate(force);\n }\n\n protected onCancel(): void {\n this.clearActivationTimeout();\n }\n\n protected onReset(): void {\n this.clearActivationTimeout();\n }\n\n protected resetProgress(): void {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n }\n}\n"]}
@@ -2,7 +2,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
2
2
 
3
3
  import { State } from '../../State';
4
4
  import { DEFAULT_TOUCH_SLOP } from '../constants';
5
- import { EventTypes } from '../interfaces';
6
5
  import GestureHandler from './GestureHandler';
7
6
  import ScaleGestureDetector from '../detectors/ScaleGestureDetector';
8
7
  export default class PinchGestureHandler extends GestureHandler {
@@ -15,14 +14,14 @@ export default class PinchGestureHandler extends GestureHandler {
15
14
 
16
15
  _defineProperty(this, "startingSpan", 0);
17
16
 
18
- _defineProperty(this, "spanSlop", 0);
17
+ _defineProperty(this, "spanSlop", DEFAULT_TOUCH_SLOP);
19
18
 
20
19
  _defineProperty(this, "scaleDetectorListener", {
21
20
  onScaleBegin: detector => {
22
21
  this.startingSpan = detector.getCurrentSpan();
23
22
  return true;
24
23
  },
25
- onScale: (detector, event) => {
24
+ onScale: detector => {
26
25
  const prevScaleFactor = this.scale;
27
26
  this.scale *= detector.getScaleFactor(this.tracker.getTrackedPointersCount());
28
27
  const delta = detector.getTimeDelta();
@@ -32,12 +31,12 @@ export default class PinchGestureHandler extends GestureHandler {
32
31
  }
33
32
 
34
33
  if (Math.abs(this.startingSpan - detector.getCurrentSpan()) >= this.spanSlop && this.currentState === State.BEGAN) {
35
- this.activate(event);
34
+ this.activate();
36
35
  }
37
36
 
38
37
  return true;
39
38
  },
40
- onScaleEnd: (_detector, _event) => {}
39
+ onScaleEnd: _detector => {}
41
40
  });
42
41
 
43
42
  _defineProperty(this, "scaleGestureDetector", new ScaleGestureDetector(this.scaleDetectorListener));
@@ -46,7 +45,6 @@ export default class PinchGestureHandler extends GestureHandler {
46
45
  init(ref, propsRef) {
47
46
  super.init(ref, propsRef);
48
47
  this.setShouldCancelWhenOutside(false);
49
- this.spanSlop = DEFAULT_TOUCH_SLOP;
50
48
  }
51
49
 
52
50
  updateGestureConfig({
@@ -60,7 +58,7 @@ export default class PinchGestureHandler extends GestureHandler {
60
58
  this.enabled = enabled;
61
59
  }
62
60
 
63
- transformNativeEvent(_event) {
61
+ transformNativeEvent() {
64
62
  return {
65
63
  focalX: this.scaleGestureDetector.getFocusX(),
66
64
  focalY: this.scaleGestureDetector.getFocusY(),
@@ -70,37 +68,41 @@ export default class PinchGestureHandler extends GestureHandler {
70
68
  }
71
69
 
72
70
  onPointerDown(event) {
71
+ this.tracker.addToTracker(event);
73
72
  super.onPointerDown(event);
73
+ }
74
+
75
+ onPointerAdd(event) {
74
76
  this.tracker.addToTracker(event);
77
+ super.onPointerAdd(event);
78
+ this.tryBegin();
79
+ this.scaleGestureDetector.onTouchEvent(event, this.tracker);
80
+ }
75
81
 
76
- if (this.tracker.getTrackedPointersCount() < 2) {
82
+ onPointerUp(event) {
83
+ super.onPointerUp(event);
84
+ this.tracker.removeFromTracker(event.pointerId);
85
+
86
+ if (this.currentState !== State.ACTIVE) {
77
87
  return;
78
88
  }
79
89
 
80
- if (this.tracker.getTrackedPointersCount() > 1) {
81
- this.tryBegin(event);
82
- this.scaleGestureDetector.onTouchEvent(event, this.tracker);
83
- }
84
- }
90
+ this.scaleGestureDetector.onTouchEvent(event, this.tracker);
85
91
 
86
- onPointerUp(event) {
87
- if (this.tracker.getTrackedPointersCount() > 1) {
88
- this.scaleGestureDetector.onTouchEvent(event, this.tracker);
89
- this.tracker.removeFromTracker(event.pointerId);
92
+ if (this.currentState === State.ACTIVE) {
93
+ this.end();
90
94
  } else {
91
- this.tracker.removeFromTracker(event.pointerId);
92
-
93
- if (this.currentState !== State.ACTIVE) {
94
- return;
95
- }
96
-
97
- this.scaleGestureDetector.onTouchEvent(event, this.tracker);
95
+ this.fail();
98
96
  }
97
+ }
98
+
99
+ onPointerRemove(event) {
100
+ super.onPointerRemove(event);
101
+ this.scaleGestureDetector.onTouchEvent(event, this.tracker);
102
+ this.tracker.removeFromTracker(event.pointerId);
99
103
 
100
104
  if (this.currentState === State.ACTIVE && this.tracker.getTrackedPointersCount() < 2) {
101
- this.end(event);
102
- } else if (event.eventType === EventTypes.UP && this.currentState !== State.BEGAN) {
103
- this.fail(event);
105
+ this.end();
104
106
  }
105
107
  }
106
108
 
@@ -114,28 +116,36 @@ export default class PinchGestureHandler extends GestureHandler {
114
116
  super.onPointerMove(event);
115
117
  }
116
118
 
117
- onPointerOutOfBounds(_event) {//
119
+ onPointerOutOfBounds(event) {
120
+ if (this.tracker.getTrackedPointersCount() < 2) {
121
+ return;
122
+ }
123
+
124
+ this.tracker.track(event);
125
+ this.scaleGestureDetector.onTouchEvent(event, this.tracker);
126
+ super.onPointerOutOfBounds(event);
118
127
  }
119
128
 
120
- onPointerCancel(_event) {
129
+ onPointerCancel(event) {
130
+ super.onPointerCancel(event);
121
131
  this.reset();
122
132
  }
123
133
 
124
- tryBegin(event) {
134
+ tryBegin() {
125
135
  if (this.currentState !== State.UNDETERMINED) {
126
136
  return;
127
137
  }
128
138
 
129
139
  this.resetProgress();
130
- this.begin(event);
140
+ this.begin();
131
141
  }
132
142
 
133
- activate(event, force) {
143
+ activate(force) {
134
144
  if (this.currentState !== State.ACTIVE) {
135
145
  this.resetProgress();
136
146
  }
137
147
 
138
- super.activate(event, force);
148
+ super.activate(force);
139
149
  }
140
150
 
141
151
  onReset() {
@@ -1 +1 @@
1
- {"version":3,"sources":["PinchGestureHandler.ts"],"names":["State","DEFAULT_TOUCH_SLOP","EventTypes","GestureHandler","ScaleGestureDetector","PinchGestureHandler","onScaleBegin","detector","startingSpan","getCurrentSpan","onScale","event","prevScaleFactor","scale","getScaleFactor","tracker","getTrackedPointersCount","delta","getTimeDelta","velocity","Math","abs","spanSlop","currentState","BEGAN","activate","onScaleEnd","_detector","_event","scaleDetectorListener","init","ref","propsRef","setShouldCancelWhenOutside","updateGestureConfig","enabled","props","transformNativeEvent","focalX","scaleGestureDetector","getFocusX","focalY","getFocusY","onPointerDown","addToTracker","tryBegin","onTouchEvent","onPointerUp","removeFromTracker","pointerId","ACTIVE","end","eventType","UP","fail","onPointerMove","track","onPointerOutOfBounds","onPointerCancel","reset","UNDETERMINED","resetProgress","begin","force","onReset"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedPointerEvent, EventTypes } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nimport ScaleGestureDetector, {\n ScaleGestureListener,\n} from '../detectors/ScaleGestureDetector';\n\nexport default class PinchGestureHandler extends GestureHandler {\n private scale = 1;\n private velocity = 0;\n\n private startingSpan = 0;\n private spanSlop = 0;\n\n private scaleDetectorListener: ScaleGestureListener = {\n onScaleBegin: (detector: ScaleGestureDetector): boolean => {\n this.startingSpan = detector.getCurrentSpan();\n return true;\n },\n onScale: (\n detector: ScaleGestureDetector,\n event: AdaptedPointerEvent\n ): boolean => {\n const prevScaleFactor: number = this.scale;\n this.scale *= detector.getScaleFactor(\n this.tracker.getTrackedPointersCount()\n );\n\n const delta = detector.getTimeDelta();\n if (delta > 0) {\n this.velocity = (this.scale - prevScaleFactor) / delta;\n }\n\n if (\n Math.abs(this.startingSpan - detector.getCurrentSpan()) >=\n this.spanSlop &&\n this.currentState === State.BEGAN\n ) {\n this.activate(event);\n }\n return true;\n },\n onScaleEnd: (\n _detector: ScaleGestureDetector,\n _event: AdaptedPointerEvent\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ): void => {},\n };\n\n private scaleGestureDetector: ScaleGestureDetector = new ScaleGestureDetector(\n this.scaleDetectorListener\n );\n\n public init(ref: number, propsRef: React.RefObject<unknown>) {\n super.init(ref, propsRef);\n\n this.setShouldCancelWhenOutside(false);\n this.spanSlop = DEFAULT_TOUCH_SLOP;\n }\n\n public updateGestureConfig({ enabled = true, ...props }): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n this.enabled = enabled;\n }\n\n protected transformNativeEvent(_event: AdaptedPointerEvent) {\n return {\n focalX: this.scaleGestureDetector.getFocusX(),\n focalY: this.scaleGestureDetector.getFocusY(),\n velocity: this.velocity,\n scale: this.scale,\n };\n }\n\n protected onPointerDown(event: AdaptedPointerEvent): void {\n super.onPointerDown(event);\n\n this.tracker.addToTracker(event);\n\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n\n if (this.tracker.getTrackedPointersCount() > 1) {\n this.tryBegin(event);\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n }\n }\n protected onPointerUp(event: AdaptedPointerEvent): void {\n if (this.tracker.getTrackedPointersCount() > 1) {\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n this.tracker.removeFromTracker(event.pointerId);\n } else {\n this.tracker.removeFromTracker(event.pointerId);\n if (this.currentState !== State.ACTIVE) {\n return;\n }\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n }\n if (\n this.currentState === State.ACTIVE &&\n this.tracker.getTrackedPointersCount() < 2\n ) {\n this.end(event);\n } else if (\n event.eventType === EventTypes.UP &&\n this.currentState !== State.BEGAN\n ) {\n this.fail(event);\n }\n }\n protected onPointerMove(event: AdaptedPointerEvent): void {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n this.tracker.track(event);\n\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n super.onPointerMove(event);\n }\n protected onPointerOutOfBounds(_event: AdaptedPointerEvent): void {\n //\n }\n\n protected onPointerCancel(_event: AdaptedPointerEvent): void {\n this.reset();\n }\n\n private tryBegin(event: AdaptedPointerEvent): void {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.resetProgress();\n\n this.begin(event);\n }\n\n protected activate(event: AdaptedPointerEvent, force?: boolean): void {\n if (this.currentState !== State.ACTIVE) {\n this.resetProgress();\n }\n\n super.activate(event, force);\n }\n\n protected onReset(): void {\n this.resetProgress();\n }\n\n protected resetProgress(): void {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.velocity = 0;\n this.scale = 1;\n }\n}\n"]}
1
+ {"version":3,"sources":["PinchGestureHandler.ts"],"names":["State","DEFAULT_TOUCH_SLOP","GestureHandler","ScaleGestureDetector","PinchGestureHandler","onScaleBegin","detector","startingSpan","getCurrentSpan","onScale","prevScaleFactor","scale","getScaleFactor","tracker","getTrackedPointersCount","delta","getTimeDelta","velocity","Math","abs","spanSlop","currentState","BEGAN","activate","onScaleEnd","_detector","scaleDetectorListener","init","ref","propsRef","setShouldCancelWhenOutside","updateGestureConfig","enabled","props","transformNativeEvent","focalX","scaleGestureDetector","getFocusX","focalY","getFocusY","onPointerDown","event","addToTracker","onPointerAdd","tryBegin","onTouchEvent","onPointerUp","removeFromTracker","pointerId","ACTIVE","end","fail","onPointerRemove","onPointerMove","track","onPointerOutOfBounds","onPointerCancel","reset","UNDETERMINED","resetProgress","begin","force","onReset"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nimport ScaleGestureDetector, {\n ScaleGestureListener,\n} from '../detectors/ScaleGestureDetector';\n\nexport default class PinchGestureHandler extends GestureHandler {\n private scale = 1;\n private velocity = 0;\n\n private startingSpan = 0;\n private spanSlop = DEFAULT_TOUCH_SLOP;\n\n private scaleDetectorListener: ScaleGestureListener = {\n onScaleBegin: (detector: ScaleGestureDetector): boolean => {\n this.startingSpan = detector.getCurrentSpan();\n return true;\n },\n onScale: (detector: ScaleGestureDetector): boolean => {\n const prevScaleFactor: number = this.scale;\n this.scale *= detector.getScaleFactor(\n this.tracker.getTrackedPointersCount()\n );\n\n const delta = detector.getTimeDelta();\n if (delta > 0) {\n this.velocity = (this.scale - prevScaleFactor) / delta;\n }\n\n if (\n Math.abs(this.startingSpan - detector.getCurrentSpan()) >=\n this.spanSlop &&\n this.currentState === State.BEGAN\n ) {\n this.activate();\n }\n return true;\n },\n onScaleEnd: (\n _detector: ScaleGestureDetector\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n ): void => {},\n };\n\n private scaleGestureDetector: ScaleGestureDetector = new ScaleGestureDetector(\n this.scaleDetectorListener\n );\n\n public init(ref: number, propsRef: React.RefObject<unknown>) {\n super.init(ref, propsRef);\n\n this.setShouldCancelWhenOutside(false);\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n this.enabled = enabled;\n }\n\n protected transformNativeEvent() {\n return {\n focalX: this.scaleGestureDetector.getFocusX(),\n focalY: this.scaleGestureDetector.getFocusY(),\n velocity: this.velocity,\n scale: this.scale,\n };\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.tryBegin();\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n if (this.currentState !== State.ACTIVE) {\n return;\n }\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n this.tracker.removeFromTracker(event.pointerId);\n\n if (\n this.currentState === State.ACTIVE &&\n this.tracker.getTrackedPointersCount() < 2\n ) {\n this.end();\n }\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n this.tracker.track(event);\n\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n super.onPointerMove(event);\n }\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n this.tracker.track(event);\n\n this.scaleGestureDetector.onTouchEvent(event, this.tracker);\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.reset();\n }\n\n private tryBegin(): void {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.resetProgress();\n this.begin();\n }\n\n public activate(force?: boolean): void {\n if (this.currentState !== State.ACTIVE) {\n this.resetProgress();\n }\n\n super.activate(force);\n }\n\n protected onReset(): void {\n this.resetProgress();\n }\n\n protected resetProgress(): void {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n this.velocity = 0;\n this.scale = 1;\n }\n}\n"]}