react-native-gesture-handler 2.7.0 → 2.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (182) hide show
  1. package/android/build.gradle +10 -5
  2. package/android/noreanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +3 -3
  3. package/android/reanimated/src/main/java/com/swmansion/gesturehandler/ReanimatedEventDispatcher.kt +7 -7
  4. package/android/src/fabric/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +2 -2
  5. package/android/src/main/java/com/swmansion/gesturehandler/RNGestureHandlerPackage.kt +3 -3
  6. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/FlingGestureHandler.kt +12 -9
  7. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandler.kt +39 -31
  8. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerInteractionController.kt +1 -1
  9. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerOrchestrator.kt +28 -19
  10. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureHandlerRegistry.kt +1 -1
  11. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/GestureUtils.kt +1 -1
  12. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/LongPressGestureHandler.kt +1 -1
  13. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ManualGestureHandler.kt +1 -1
  14. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/NativeViewGestureHandler.kt +5 -5
  15. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/OnTouchEventListener.kt +1 -1
  16. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PanGestureHandler.kt +7 -5
  17. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PinchGestureHandler.kt +11 -4
  18. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/PointerEventsConfig.kt +1 -1
  19. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureDetector.kt +1 -1
  20. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/RotationGestureHandler.kt +7 -2
  21. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ScaleGestureDetector.java +1 -1
  22. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/TapGestureHandler.kt +3 -3
  23. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/core}/ViewConfigurationHelper.kt +1 -1
  24. package/android/{lib/src/main/java/com/swmansion/gesturehandler → src/main/java/com/swmansion/gesturehandler/react}/Extensions.kt +3 -3
  25. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +7 -6
  26. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt +1 -5
  27. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEvent.kt +6 -6
  28. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEventDataExtractor.kt +1 -1
  29. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerInteractionManager.kt +3 -3
  30. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerModule.kt +35 -14
  31. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRegistry.kt +2 -2
  32. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt +8 -6
  33. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootView.kt +0 -2
  34. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootViewManager.kt +4 -2
  35. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerStateChangeEvent.kt +7 -7
  36. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt +5 -5
  37. package/android/src/main/java/com/swmansion/gesturehandler/react/RNViewConfigurationHelper.kt +2 -2
  38. package/android/src/paper/java/com/swmansion/gesturehandler/ReactContextExtensions.kt +5 -5
  39. package/ios/Handlers/RNManualHandler.m +24 -8
  40. package/ios/RNGestureHandlerButtonComponentView.mm +7 -8
  41. package/ios/RNGestureHandlerManager.mm +176 -178
  42. package/lib/commonjs/RNGestureHandlerModule.macos.js.map +1 -1
  43. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  44. package/lib/commonjs/RNGestureHandlerModule.windows.js +156 -0
  45. package/lib/commonjs/RNGestureHandlerModule.windows.js.map +1 -0
  46. package/lib/commonjs/components/DrawerLayout.js +1 -0
  47. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  48. package/lib/commonjs/components/Swipeable.js.map +1 -1
  49. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  50. package/lib/commonjs/getShadowNodeFromRef.js +2 -2
  51. package/lib/commonjs/getShadowNodeFromRef.js.map +1 -1
  52. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  53. package/lib/commonjs/handlers/gestureHandlerCommon.js +5 -2
  54. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +1 -1
  55. package/lib/commonjs/handlers/gestureHandlerTypesCompat.js +4 -0
  56. package/lib/commonjs/handlers/gestures/GestureDetector.js +26 -12
  57. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
  58. package/lib/commonjs/handlers/gestures/eventReceiver.js.map +1 -1
  59. package/lib/commonjs/handlers/gestures/gesture.js.map +1 -1
  60. package/lib/commonjs/handlers/gestures/gestureComposition.js +15 -4
  61. package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
  62. package/lib/commonjs/jestUtils/jestUtils.js.map +1 -1
  63. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  64. package/lib/commonjs/web/handlers/FlingGestureHandler.js +18 -15
  65. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  66. package/lib/commonjs/web/handlers/GestureHandler.js +36 -7
  67. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  68. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +2 -1
  69. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  70. package/lib/commonjs/web/handlers/ManualGestureHandler.js +15 -0
  71. package/lib/commonjs/web/handlers/ManualGestureHandler.js.map +1 -1
  72. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +0 -5
  73. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  74. package/lib/commonjs/web/handlers/PanGestureHandler.js +0 -5
  75. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  76. package/lib/commonjs/web/handlers/PinchGestureHandler.js +0 -1
  77. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  78. package/lib/commonjs/web/handlers/RotationGestureHandler.js +0 -1
  79. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  80. package/lib/commonjs/web/handlers/TapGestureHandler.js +0 -1
  81. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  82. package/lib/commonjs/web/interfaces.js.map +1 -1
  83. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  84. package/lib/commonjs/web_hammer/GestureHandler.js.map +1 -1
  85. package/lib/commonjs/web_hammer/NodeManager.js +4 -1
  86. package/lib/commonjs/web_hammer/NodeManager.js.map +1 -1
  87. package/lib/commonjs/web_hammer/PanGestureHandler.js +25 -6
  88. package/lib/commonjs/web_hammer/PanGestureHandler.js.map +1 -1
  89. package/lib/module/RNGestureHandlerModule.macos.js.map +1 -1
  90. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  91. package/lib/module/RNGestureHandlerModule.windows.js +117 -0
  92. package/lib/module/RNGestureHandlerModule.windows.js.map +1 -0
  93. package/lib/module/components/DrawerLayout.js +1 -0
  94. package/lib/module/components/DrawerLayout.js.map +1 -1
  95. package/lib/module/components/Swipeable.js.map +1 -1
  96. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  97. package/lib/module/getShadowNodeFromRef.js +2 -2
  98. package/lib/module/getShadowNodeFromRef.js.map +1 -1
  99. package/lib/module/handlers/createHandler.js.map +1 -1
  100. package/lib/module/handlers/gestureHandlerCommon.js +5 -2
  101. package/lib/module/handlers/gestureHandlerCommon.js.map +1 -1
  102. package/lib/module/handlers/gestureHandlerTypesCompat.js +1 -1
  103. package/lib/module/handlers/gestures/GestureDetector.js +26 -12
  104. package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
  105. package/lib/module/handlers/gestures/eventReceiver.js.map +1 -1
  106. package/lib/module/handlers/gestures/gesture.js.map +1 -1
  107. package/lib/module/handlers/gestures/gestureComposition.js +15 -4
  108. package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
  109. package/lib/module/jestUtils/jestUtils.js.map +1 -1
  110. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  111. package/lib/module/web/handlers/FlingGestureHandler.js +18 -15
  112. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  113. package/lib/module/web/handlers/GestureHandler.js +36 -6
  114. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  115. package/lib/module/web/handlers/LongPressGestureHandler.js +2 -1
  116. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  117. package/lib/module/web/handlers/ManualGestureHandler.js +15 -0
  118. package/lib/module/web/handlers/ManualGestureHandler.js.map +1 -1
  119. package/lib/module/web/handlers/NativeViewGestureHandler.js +0 -5
  120. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  121. package/lib/module/web/handlers/PanGestureHandler.js +0 -5
  122. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  123. package/lib/module/web/handlers/PinchGestureHandler.js +0 -1
  124. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  125. package/lib/module/web/handlers/RotationGestureHandler.js +0 -1
  126. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  127. package/lib/module/web/handlers/TapGestureHandler.js +0 -1
  128. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  129. package/lib/module/web/interfaces.js.map +1 -1
  130. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  131. package/lib/module/web_hammer/GestureHandler.js.map +1 -1
  132. package/lib/module/web_hammer/NodeManager.js +4 -1
  133. package/lib/module/web_hammer/NodeManager.js.map +1 -1
  134. package/lib/module/web_hammer/PanGestureHandler.js +25 -6
  135. package/lib/module/web_hammer/PanGestureHandler.js.map +1 -1
  136. package/lib/typescript/RNGestureHandlerModule.macos.d.ts +1 -1
  137. package/lib/typescript/RNGestureHandlerModule.web.d.ts +1 -1
  138. package/lib/typescript/RNGestureHandlerModule.windows.d.ts +48 -0
  139. package/lib/typescript/components/DrawerLayout.d.ts +7 -0
  140. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +1 -1
  141. package/lib/typescript/handlers/PanGestureHandler.d.ts +1 -1
  142. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +3 -1
  143. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +3 -1
  144. package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +1 -0
  145. package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -0
  146. package/lib/typescript/web/handlers/ManualGestureHandler.d.ts +3 -1
  147. package/lib/typescript/web/interfaces.d.ts +3 -1
  148. package/lib/typescript/web/tools/NodeManager.d.ts +2 -2
  149. package/package.json +14 -10
  150. package/src/RNGestureHandlerModule.macos.ts +2 -2
  151. package/src/RNGestureHandlerModule.web.ts +2 -2
  152. package/src/RNGestureHandlerModule.windows.ts +140 -0
  153. package/src/components/DrawerLayout.tsx +14 -8
  154. package/src/components/Swipeable.tsx +2 -4
  155. package/src/components/touchables/TouchableOpacity.tsx +1 -1
  156. package/src/getShadowNodeFromRef.ts +3 -3
  157. package/src/handlers/createHandler.tsx +13 -15
  158. package/src/handlers/gestureHandlerCommon.ts +9 -4
  159. package/src/handlers/gestureHandlerTypesCompat.ts +34 -17
  160. package/src/handlers/gestures/GestureDetector.tsx +46 -19
  161. package/src/handlers/gestures/eventReceiver.ts +2 -1
  162. package/src/handlers/gestures/gesture.ts +8 -12
  163. package/src/handlers/gestures/gestureComposition.ts +19 -6
  164. package/src/jestUtils/jestUtils.ts +3 -4
  165. package/src/web/detectors/RotationGestureDetector.ts +2 -1
  166. package/src/web/handlers/FlingGestureHandler.ts +28 -20
  167. package/src/web/handlers/GestureHandler.ts +42 -17
  168. package/src/web/handlers/LongPressGestureHandler.ts +2 -2
  169. package/src/web/handlers/ManualGestureHandler.ts +10 -1
  170. package/src/web/handlers/NativeViewGestureHandler.ts +0 -5
  171. package/src/web/handlers/PanGestureHandler.ts +0 -6
  172. package/src/web/handlers/PinchGestureHandler.ts +0 -2
  173. package/src/web/handlers/RotationGestureHandler.ts +2 -5
  174. package/src/web/handlers/TapGestureHandler.ts +0 -2
  175. package/src/web/interfaces.ts +3 -0
  176. package/src/web/tools/InteractionManager.ts +2 -3
  177. package/src/web_hammer/GestureHandler.ts +6 -8
  178. package/src/web_hammer/NodeManager.ts +3 -1
  179. package/src/web_hammer/PanGestureHandler.ts +12 -6
  180. package/android/lib/build.gradle +0 -28
  181. package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  182. package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +0 -19
@@ -1 +1 @@
1
- {"version":3,"sources":["ManualGestureHandler.ts"],"names":["GestureHandler","ManualGestureHandler","init","ref","propsRef","onPointerDown","event","tracker","addToTracker","begin","onPointerAdd","onPointerMove","track","onPointerUp","removeFromTracker","pointerId","onPointerRemove","onPointerCancel","reset"],"mappings":"AACA,OAAOA,cAAP,MAA2B,kBAA3B;AAEA,eAAe,MAAMC,oBAAN,SAAmCD,cAAnC,CAAkD;AACxDE,EAAAA,IAAI,CAACC,GAAD,EAAcC,QAAd,EAAkD;AAC3D,UAAMF,IAAN,CAAWC,GAAX,EAAgBC,QAAhB;AACD;;AAESC,EAAAA,aAAa,CAACC,KAAD,EAA4B;AACjD,SAAKC,OAAL,CAAaC,YAAb,CAA0BF,KAA1B;AACA,UAAMD,aAAN,CAAoBC,KAApB;AACA,SAAKG,KAAL;AACD;;AAESC,EAAAA,YAAY,CAACJ,KAAD,EAA4B;AAChD,SAAKC,OAAL,CAAaC,YAAb,CAA0BF,KAA1B;AACA,UAAMI,YAAN,CAAmBJ,KAAnB;AACD;;AAESK,EAAAA,aAAa,CAACL,KAAD,EAA4B;AACjD,SAAKC,OAAL,CAAaK,KAAb,CAAmBN,KAAnB;AACA,UAAMK,aAAN,CAAoBL,KAApB;AACD;;AAESO,EAAAA,WAAW,CAACP,KAAD,EAA4B;AAC/C,UAAMO,WAAN,CAAkBP,KAAlB;AACA,SAAKC,OAAL,CAAaO,iBAAb,CAA+BR,KAAK,CAACS,SAArC;AACD;;AAESC,EAAAA,eAAe,CAACV,KAAD,EAA4B;AACnD,UAAMU,eAAN,CAAsBV,KAAtB;AACA,SAAKC,OAAL,CAAaO,iBAAb,CAA+BR,KAAK,CAACS,SAArC;AACD;;AAESE,EAAAA,eAAe,CAACX,KAAD,EAA4B;AACnD,UAAMW,eAAN,CAAsBX,KAAtB;AACA,SAAKY,KAAL;AACD;;AAlC8D","sourcesContent":["import { AdaptedEvent } from '../interfaces';\nimport GestureHandler from './GestureHandler';\n\nexport default class ManualGestureHandler extends GestureHandler {\n public init(ref: number, propsRef: React.RefObject<unknown>) {\n super.init(ref, propsRef);\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.begin();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n super.onPointerMove(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.reset();\n }\n}\n"]}
1
+ {"version":3,"sources":["ManualGestureHandler.ts"],"names":["GestureHandler","ManualGestureHandler","init","ref","propsRef","updateGestureConfig","enabled","props","onPointerDown","event","tracker","addToTracker","begin","onPointerAdd","onPointerMove","track","onPointerOutOfBounds","onPointerUp","removeFromTracker","pointerId","onPointerRemove","onPointerCancel","reset"],"mappings":"AACA,OAAOA,cAAP,MAA2B,kBAA3B;AAEA,eAAe,MAAMC,oBAAN,SAAmCD,cAAnC,CAAkD;AACxDE,EAAAA,IAAI,CAACC,GAAD,EAAcC,QAAd,EAAkD;AAC3D,UAAMF,IAAN,CAAWC,GAAX,EAAgBC,QAAhB;AACD;;AAEMC,EAAAA,mBAAmB,CAAC;AAAEC,IAAAA,OAAO,GAAG,IAAZ;AAAkB,OAAGC;AAArB,GAAD,EAA6C;AACrE,UAAMF,mBAAN,CAA0B;AAAEC,MAAAA,OAAO,EAAEA,OAAX;AAAoB,SAAGC;AAAvB,KAA1B;AACD;;AAESC,EAAAA,aAAa,CAACC,KAAD,EAA4B;AACjD,SAAKC,OAAL,CAAaC,YAAb,CAA0BF,KAA1B;AACA,UAAMD,aAAN,CAAoBC,KAApB;AACA,SAAKG,KAAL;AACD;;AAESC,EAAAA,YAAY,CAACJ,KAAD,EAA4B;AAChD,SAAKC,OAAL,CAAaC,YAAb,CAA0BF,KAA1B;AACA,UAAMI,YAAN,CAAmBJ,KAAnB;AACD;;AAESK,EAAAA,aAAa,CAACL,KAAD,EAA4B;AACjD,SAAKC,OAAL,CAAaK,KAAb,CAAmBN,KAAnB;AACA,UAAMK,aAAN,CAAoBL,KAApB;AACD;;AAESO,EAAAA,oBAAoB,CAACP,KAAD,EAA4B;AACxD,SAAKC,OAAL,CAAaK,KAAb,CAAmBN,KAAnB;AACA,UAAMO,oBAAN,CAA2BP,KAA3B;AACD;;AAESQ,EAAAA,WAAW,CAACR,KAAD,EAA4B;AAC/C,UAAMQ,WAAN,CAAkBR,KAAlB;AACA,SAAKC,OAAL,CAAaQ,iBAAb,CAA+BT,KAAK,CAACU,SAArC;AACD;;AAESC,EAAAA,eAAe,CAACX,KAAD,EAA4B;AACnD,UAAMW,eAAN,CAAsBX,KAAtB;AACA,SAAKC,OAAL,CAAaQ,iBAAb,CAA+BT,KAAK,CAACU,SAArC;AACD;;AAESE,EAAAA,eAAe,CAACZ,KAAD,EAA4B;AACnD,UAAMY,eAAN,CAAsBZ,KAAtB;AACA,SAAKa,KAAL;AACD;;AA3C8D","sourcesContent":["import { AdaptedEvent, Config } from '../interfaces';\nimport GestureHandler from './GestureHandler';\n\nexport default class ManualGestureHandler extends GestureHandler {\n public init(ref: number, propsRef: React.RefObject<unknown>) {\n super.init(ref, propsRef);\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.begin();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.tracker.track(event);\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.reset();\n }\n}\n"]}
@@ -32,11 +32,6 @@ export default class NativeViewGestureHandler extends GestureHandler {
32
32
  } else {
33
33
  this.buttonRole = false;
34
34
  }
35
-
36
- if (this.view.tagName.toLowerCase() === 'input') {
37
- //Enables text input on Safari
38
- this.view.style['webkitUserSelect'] = 'auto';
39
- }
40
35
  }
41
36
 
42
37
  updateGestureConfig({
@@ -1 +1 @@
1
- {"version":3,"sources":["NativeViewGestureHandler.ts"],"names":["State","DEFAULT_TOUCH_SLOP","GestureHandler","NativeViewGestureHandler","init","ref","propsRef","setShouldCancelWhenOutside","view","style","hasAttribute","buttonRole","tagName","toLowerCase","updateGestureConfig","enabled","props","config","shouldActivateOnStart","undefined","disallowInterruption","resetConfig","onPointerDown","event","tracker","addToTracker","newPointerAction","onPointerAdd","startX","getLastAvgX","startY","getLastAvgY","currentState","UNDETERMINED","begin","activate","onPointerMove","track","dx","dy","distSq","minDistSq","BEGAN","onPointerOut","cancel","onPointerUp","onUp","onPointerRemove","removeFromTracker","pointerId","getTrackedPointersCount","ACTIVE","end","fail","onPointerCancel","reset","shouldRecognizeSimultaneously","handler","getState","disallowsInterruption","canBeInterrupted","getTag","shouldBeCancelledByOther","_handler"],"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';\nexport default class NativeViewGestureHandler extends GestureHandler {\n private buttonRole!: boolean;\n\n //TODO: Implement logic for activation on start\n //@ts-ignore Logic yet to be implemented\n private shouldActivateOnStart = false;\n private disallowInterruption = false;\n\n private startX = 0;\n private startY = 0;\n private minDistSq = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n\n this.setShouldCancelWhenOutside(true);\n\n this.view.style['touchAction'] = 'auto';\n\n //@ts-ignore Turns on defualt touch behavior on Safari\n this.view.style['WebkitTouchCallout'] = 'auto';\n\n if (this.view.hasAttribute('role')) {\n this.buttonRole = true;\n } else {\n this.buttonRole = false;\n }\n\n if (this.view.tagName.toLowerCase() === 'input') {\n //Enables text input on Safari\n this.view.style['webkitUserSelect'] = 'auto';\n }\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n if (this.config.shouldActivateOnStart !== undefined) {\n this.shouldActivateOnStart = this.config.shouldActivateOnStart;\n }\n if (this.config.disallowInterruption !== undefined) {\n this.disallowInterruption = this.config.disallowInterruption;\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.newPointerAction();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.newPointerAction();\n }\n\n private newPointerAction(): void {\n this.startX = this.tracker.getLastAvgX();\n this.startY = this.tracker.getLastAvgY();\n\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.begin();\n if (this.buttonRole) {\n this.activate();\n }\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n const dx = this.startX - this.tracker.getLastAvgX();\n const dy = this.startY - this.tracker.getLastAvgY();\n const distSq = dx * dx + dy * dy;\n\n if (\n !this.buttonRole &&\n distSq >= this.minDistSq &&\n this.currentState === State.BEGAN\n ) {\n this.activate();\n }\n }\n\n protected onPointerOut(): void {\n this.cancel();\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.onUp(event);\n }\n\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.onUp(event);\n }\n\n private onUp(event: AdaptedEvent): void {\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.tracker.getTrackedPointersCount() === 0) {\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.cancel();\n this.reset();\n }\n\n public shouldRecognizeSimultaneously(handler: GestureHandler): boolean {\n if (super.shouldRecognizeSimultaneously(handler)) {\n return true;\n }\n\n if (\n handler instanceof NativeViewGestureHandler &&\n handler.getState() === State.ACTIVE &&\n handler.disallowsInterruption()\n ) {\n return false;\n }\n\n const canBeInterrupted = !this.disallowInterruption;\n\n if (\n this.currentState === State.ACTIVE &&\n handler.getState() === State.ACTIVE &&\n canBeInterrupted\n ) {\n return false;\n }\n\n return (\n this.currentState === State.ACTIVE &&\n canBeInterrupted &&\n handler.getTag() > 0\n );\n }\n\n public shouldBeCancelledByOther(_handler: GestureHandler): boolean {\n return !this.disallowInterruption;\n }\n\n public disallowsInterruption(): boolean {\n return this.disallowInterruption;\n }\n}\n"]}
1
+ {"version":3,"sources":["NativeViewGestureHandler.ts"],"names":["State","DEFAULT_TOUCH_SLOP","GestureHandler","NativeViewGestureHandler","init","ref","propsRef","setShouldCancelWhenOutside","view","style","hasAttribute","buttonRole","updateGestureConfig","enabled","props","config","shouldActivateOnStart","undefined","disallowInterruption","resetConfig","onPointerDown","event","tracker","addToTracker","newPointerAction","onPointerAdd","startX","getLastAvgX","startY","getLastAvgY","currentState","UNDETERMINED","begin","activate","onPointerMove","track","dx","dy","distSq","minDistSq","BEGAN","onPointerOut","cancel","onPointerUp","onUp","onPointerRemove","removeFromTracker","pointerId","getTrackedPointersCount","ACTIVE","end","fail","onPointerCancel","reset","shouldRecognizeSimultaneously","handler","getState","disallowsInterruption","canBeInterrupted","getTag","shouldBeCancelledByOther","_handler"],"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';\nexport default class NativeViewGestureHandler extends GestureHandler {\n private buttonRole!: boolean;\n\n //TODO: Implement logic for activation on start\n //@ts-ignore Logic yet to be implemented\n private shouldActivateOnStart = false;\n private disallowInterruption = false;\n\n private startX = 0;\n private startY = 0;\n private minDistSq = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n\n this.setShouldCancelWhenOutside(true);\n\n this.view.style['touchAction'] = 'auto';\n\n //@ts-ignore Turns on defualt touch behavior on Safari\n this.view.style['WebkitTouchCallout'] = 'auto';\n\n if (this.view.hasAttribute('role')) {\n this.buttonRole = true;\n } else {\n this.buttonRole = false;\n }\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n if (this.config.shouldActivateOnStart !== undefined) {\n this.shouldActivateOnStart = this.config.shouldActivateOnStart;\n }\n if (this.config.disallowInterruption !== undefined) {\n this.disallowInterruption = this.config.disallowInterruption;\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.newPointerAction();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.newPointerAction();\n }\n\n private newPointerAction(): void {\n this.startX = this.tracker.getLastAvgX();\n this.startY = this.tracker.getLastAvgY();\n\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.begin();\n if (this.buttonRole) {\n this.activate();\n }\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n const dx = this.startX - this.tracker.getLastAvgX();\n const dy = this.startY - this.tracker.getLastAvgY();\n const distSq = dx * dx + dy * dy;\n\n if (\n !this.buttonRole &&\n distSq >= this.minDistSq &&\n this.currentState === State.BEGAN\n ) {\n this.activate();\n }\n }\n\n protected onPointerOut(): void {\n this.cancel();\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.onUp(event);\n }\n\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.onUp(event);\n }\n\n private onUp(event: AdaptedEvent): void {\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.tracker.getTrackedPointersCount() === 0) {\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.cancel();\n this.reset();\n }\n\n public shouldRecognizeSimultaneously(handler: GestureHandler): boolean {\n if (super.shouldRecognizeSimultaneously(handler)) {\n return true;\n }\n\n if (\n handler instanceof NativeViewGestureHandler &&\n handler.getState() === State.ACTIVE &&\n handler.disallowsInterruption()\n ) {\n return false;\n }\n\n const canBeInterrupted = !this.disallowInterruption;\n\n if (\n this.currentState === State.ACTIVE &&\n handler.getState() === State.ACTIVE &&\n canBeInterrupted\n ) {\n return false;\n }\n\n return (\n this.currentState === State.ACTIVE &&\n canBeInterrupted &&\n handler.getTag() > 0\n );\n }\n\n public shouldBeCancelledByOther(_handler: GestureHandler): boolean {\n return !this.disallowInterruption;\n }\n\n public disallowsInterruption(): boolean {\n return this.disallowInterruption;\n }\n}\n"]}
@@ -76,7 +76,6 @@ export default class PanGestureHandler extends GestureHandler {
76
76
  ...props
77
77
  });
78
78
  this.checkCustomActivationCriteria(this.customActivationProperties);
79
- this.enabled = enabled;
80
79
 
81
80
  if (this.config.minDist !== undefined) {
82
81
  this.minDistSq = this.config.minDist * this.config.minDist;
@@ -109,10 +108,6 @@ export default class PanGestureHandler extends GestureHandler {
109
108
  this.activateAfterLongPress = this.config.activateAfterLongPress;
110
109
  }
111
110
 
112
- if (this.config.shouldCancelWhenOutside) {
113
- this.setShouldCancelWhenOutside(false);
114
- }
115
-
116
111
  if (this.config.activeOffsetXStart !== undefined) {
117
112
  this.activeOffsetXStart = this.config.activeOffsetXStart;
118
113
 
@@ -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","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"]}
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","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":";;AAAA,SAASA,UAAT,QAA2B,cAA3B;AACA,SAASC,KAAT,QAAsB,aAAtB;AACA,SAASC,kBAAT,QAAmC,cAAnC;AAGA,OAAOC,cAAP,MAA2B,kBAA3B;AAEA,MAAMC,oBAAoB,GAAG,CAA7B;AACA,MAAMC,oBAAoB,GAAG,EAA7B;AACA,MAAMC,mBAAmB,GAAGJ,kBAAkB,GAAGA,kBAAjD;AAEA,eAAe,MAAMK,iBAAN,SAAgCJ,cAAhC,CAA+C;AAAA;AAAA;;AAAA,wDACJ,CACtD,oBADsD,EAEtD,kBAFsD,EAGtD,kBAHsD,EAItD,gBAJsD,EAKtD,oBALsD,EAMtD,kBANsD,EAOtD,kBAPsD,EAQtD,gBARsD,EAStD,cATsD,EAUtD,cAVsD,CADI;;AAAA,uCAczC,CAdyC;;AAAA,uCAezC,CAfyC;;AAAA,uCAiBxCG,mBAjBwC;;AAAA,gDAmB/B,CAACE,MAAM,CAACC,gBAnBuB;;AAAA,8CAoBjCD,MAAM,CAACE,gBApB0B;;AAAA,8CAqBjCF,MAAM,CAACE,gBArB0B;;AAAA,4CAsBnCF,MAAM,CAACC,gBAtB4B;;AAAA,gDAwB/BD,MAAM,CAACC,gBAxBwB;;AAAA,8CAyBjCD,MAAM,CAACE,gBAzB0B;;AAAA,8CA0BjCF,MAAM,CAACE,gBA1B0B;;AAAA,4CA2BnCF,MAAM,CAACC,gBA3B4B;;AAAA,0CA6BrCD,MAAM,CAACC,gBA7B8B;;AAAA,0CA8BrCD,MAAM,CAACC,gBA9B8B;;AAAA,2CA+BpCD,MAAM,CAACC,gBA/B6B;;AAAA,yCAiCtCL,oBAjCsC;;AAAA,yCAkCtCC,oBAlCsC;;AAAA,oCAoC3C,CApC2C;;AAAA,oCAqC3C,CArC2C;;AAAA,qCAsC1C,CAtC0C;;AAAA,qCAuC1C,CAvC0C;;AAAA,mCAwC5C,CAxC4C;;AAAA,mCAyC5C,CAzC4C;;AAAA,oDA2C3B,CA3C2B;;AAAA,+CA4ChC,CA5CgC;AAAA;;AA8CrDM,EAAAA,IAAI,CAACC,GAAD,EAAcC,QAAd,EAAwD;AACjE,UAAMF,IAAN,CAAWC,GAAX,EAAgBC,QAAhB;AACD;;AAEMC,EAAAA,mBAAmB,CAAC;AAAEC,IAAAA,OAAO,GAAG,IAAZ;AAAkB,OAAGC;AAArB,GAAD,EAA6C;AACrE,SAAKC,WAAL;AAEA,UAAMH,mBAAN,CAA0B;AAAEC,MAAAA,OAAO,EAAEA,OAAX;AAAoB,SAAGC;AAAvB,KAA1B;AACA,SAAKE,6BAAL,CAAmC,KAAKC,0BAAxC;;AAEA,QAAI,KAAKC,MAAL,CAAYC,OAAZ,KAAwBC,SAA5B,EAAuC;AACrC,WAAKC,SAAL,GAAiB,KAAKH,MAAL,CAAYC,OAAZ,GAAsB,KAAKD,MAAL,CAAYC,OAAnD;AACD,KAFD,MAEO,IAAI,KAAKG,2BAAT,EAAsC;AAC3C,WAAKD,SAAL,GAAiBf,MAAM,CAACC,gBAAxB;AACD;;AAED,QAAI,KAAKW,MAAL,CAAYK,WAAZ,KAA4BH,SAAhC,EAA2C;AACzC,WAAKG,WAAL,GAAmB,KAAKL,MAAL,CAAYK,WAA/B;AACD;;AAED,QAAI,KAAKL,MAAL,CAAYM,WAAZ,KAA4BJ,SAAhC,EAA2C;AACzC,WAAKI,WAAL,GAAmB,KAAKN,MAAL,CAAYM,WAA/B;AACD;;AAED,QAAI,KAAKN,MAAL,CAAYO,WAAZ,KAA4BL,SAAhC,EAA2C;AACzC,WAAKM,YAAL,GAAoB,KAAKR,MAAL,CAAYO,WAAhC;AACA,WAAKE,YAAL,GAAoB,KAAKT,MAAL,CAAYO,WAAhC;AACD;;AAED,QAAI,KAAKP,MAAL,CAAYQ,YAAZ,KAA6BN,SAAjC,EAA4C;AAC1C,WAAKM,YAAL,GAAoB,KAAKR,MAAL,CAAYQ,YAAhC;AACD;;AAED,QAAI,KAAKR,MAAL,CAAYS,YAAZ,KAA6BP,SAAjC,EAA4C;AAC1C,WAAKO,YAAL,GAAoB,KAAKT,MAAL,CAAYS,YAAhC;AACD;;AAED,QAAI,KAAKT,MAAL,CAAYU,sBAAZ,KAAuCR,SAA3C,EAAsD;AACpD,WAAKQ,sBAAL,GAA8B,KAAKV,MAAL,CAAYU,sBAA1C;AACD;;AAED,QAAI,KAAKV,MAAL,CAAYW,kBAAZ,KAAmCT,SAAvC,EAAkD;AAChD,WAAKS,kBAAL,GAA0B,KAAKX,MAAL,CAAYW,kBAAtC;;AAEA,UAAI,KAAKX,MAAL,CAAYY,gBAAZ,KAAiCV,SAArC,EAAgD;AAC9C,aAAKU,gBAAL,GAAwBxB,MAAM,CAACC,gBAA/B;AACD;AACF;;AAED,QAAI,KAAKW,MAAL,CAAYY,gBAAZ,KAAiCV,SAArC,EAAgD;AAC9C,WAAKU,gBAAL,GAAwB,KAAKZ,MAAL,CAAYY,gBAApC;;AAEA,UAAI,KAAKZ,MAAL,CAAYW,kBAAZ,KAAmCT,SAAvC,EAAkD;AAChD,aAAKS,kBAAL,GAA0BvB,MAAM,CAACE,gBAAjC;AACD;AACF;;AAED,QAAI,KAAKU,MAAL,CAAYa,gBAAZ,KAAiCX,SAArC,EAAgD;AAC9C,WAAKW,gBAAL,GAAwB,KAAKb,MAAL,CAAYa,gBAApC;;AAEA,UAAI,KAAKb,MAAL,CAAYc,cAAZ,KAA+BZ,SAAnC,EAA8C;AAC5C,aAAKY,cAAL,GAAsB1B,MAAM,CAACC,gBAA7B;AACD;AACF;;AAED,QAAI,KAAKW,MAAL,CAAYc,cAAZ,KAA+BZ,SAAnC,EAA8C;AAC5C,WAAKY,cAAL,GAAsB,KAAKd,MAAL,CAAYc,cAAlC;;AAEA,UAAI,KAAKd,MAAL,CAAYa,gBAAZ,KAAiCX,SAArC,EAAgD;AAC9C,aAAKW,gBAAL,GAAwBzB,MAAM,CAACE,gBAA/B;AACD;AACF;;AAED,QAAI,KAAKU,MAAL,CAAYe,kBAAZ,KAAmCb,SAAvC,EAAkD;AAChD,WAAKa,kBAAL,GAA0B,KAAKf,MAAL,CAAYe,kBAAtC;;AAEA,UAAI,KAAKf,MAAL,CAAYgB,gBAAZ,KAAiCd,SAArC,EAAgD;AAC9C,aAAKc,gBAAL,GAAwB5B,MAAM,CAACC,gBAA/B;AACD;AACF;;AAED,QAAI,KAAKW,MAAL,CAAYgB,gBAAZ,KAAiCd,SAArC,EAAgD;AAC9C,WAAKc,gBAAL,GAAwB,KAAKhB,MAAL,CAAYgB,gBAApC;;AAEA,UAAI,KAAKhB,MAAL,CAAYe,kBAAZ,KAAmCb,SAAvC,EAAkD;AAChD,aAAKa,kBAAL,GAA0B3B,MAAM,CAACE,gBAAjC;AACD;AACF;;AAED,QAAI,KAAKU,MAAL,CAAYiB,gBAAZ,KAAiCf,SAArC,EAAgD;AAC9C,WAAKe,gBAAL,GAAwB,KAAKjB,MAAL,CAAYiB,gBAApC;;AAEA,UAAI,KAAKjB,MAAL,CAAYkB,cAAZ,KAA+BhB,SAAnC,EAA8C;AAC5C,aAAKgB,cAAL,GAAsB9B,MAAM,CAACC,gBAA7B;AACD;AACF;;AAED,QAAI,KAAKW,MAAL,CAAYkB,cAAZ,KAA+BhB,SAAnC,EAA8C;AAC5C,WAAKgB,cAAL,GAAsB,KAAKlB,MAAL,CAAYkB,cAAlC;;AAEA,UAAI,KAAKlB,MAAL,CAAYiB,gBAAZ,KAAiCf,SAArC,EAAgD;AAC9C,aAAKe,gBAAL,GAAwB7B,MAAM,CAACE,gBAA/B;AACD;AACF;AACF;;AAESO,EAAAA,WAAW,GAAS;AAC5B,UAAMA,WAAN;AAEA,SAAKc,kBAAL,GAA0B,CAACvB,MAAM,CAACC,gBAAlC;AACA,SAAKuB,gBAAL,GAAwBxB,MAAM,CAACE,gBAA/B;AACA,SAAKuB,gBAAL,GAAwBzB,MAAM,CAACE,gBAA/B;AACA,SAAKwB,cAAL,GAAsB1B,MAAM,CAACC,gBAA7B;AAEA,SAAK0B,kBAAL,GAA0B3B,MAAM,CAACC,gBAAjC;AACA,SAAK2B,gBAAL,GAAwB5B,MAAM,CAACE,gBAA/B;AACA,SAAK2B,gBAAL,GAAwB7B,MAAM,CAACE,gBAA/B;AACA,SAAK4B,cAAL,GAAsB9B,MAAM,CAACC,gBAA7B;AAEA,SAAKmB,YAAL,GAAoBpB,MAAM,CAACC,gBAA3B;AACA,SAAKoB,YAAL,GAAoBrB,MAAM,CAACC,gBAA3B;AACA,SAAK8B,aAAL,GAAqB/B,MAAM,CAACC,gBAA5B;AAEA,SAAKc,SAAL,GAAiBjB,mBAAjB;AAEA,SAAKmB,WAAL,GAAmBrB,oBAAnB;AACA,SAAKsB,WAAL,GAAmBrB,oBAAnB;AAEA,SAAKyB,sBAAL,GAA8B,CAA9B;AACD;;AAESU,EAAAA,oBAAoB,GAAG;AAC/B,UAAMC,IAAa,GAAG,KAAKC,IAAL,CAAUC,qBAAV,EAAtB;AACA,UAAMC,KAAK,GAAG5C,UAAU,CAAC6C,GAAX,EAAd;AAEA,UAAMC,YAAoB,GAAG,KAAKC,eAAL,EAA7B;AACA,UAAMC,YAAoB,GAAG,KAAKC,eAAL,EAA7B;AAEA,WAAO;AACLH,MAAAA,YAAY,EAAEI,KAAK,CAACJ,YAAD,CAAL,GAAsB,CAAtB,GAA0BA,YADnC;AAELE,MAAAA,YAAY,EAAEE,KAAK,CAACF,YAAD,CAAL,GAAsB,CAAtB,GAA0BA,YAFnC;AAGLG,MAAAA,SAAS,EAAE,KAAKC,OAAL,CAAaC,WAAb,EAHN;AAILC,MAAAA,SAAS,EAAE,KAAKF,OAAL,CAAaG,WAAb,EAJN;AAKLC,MAAAA,SAAS,EAAE,KAAKA,SAAL,GAAiBZ,KAAjB,GAAyB,EAL/B;AAMLa,MAAAA,SAAS,EAAE,KAAKA,SAAL,GAAiBb,KAAjB,GAAyB,EAN/B;AAOLc,MAAAA,CAAC,EAAE,KAAKN,OAAL,CAAaC,WAAb,KAA6BZ,IAAI,CAACkB,IAPhC;AAQLC,MAAAA,CAAC,EAAE,KAAKR,OAAL,CAAaG,WAAb,KAA6Bd,IAAI,CAACoB;AARhC,KAAP;AAUD;;AAEOd,EAAAA,eAAe,GAAW;AAChC,WAAO,KAAKe,KAAL,GAAa,KAAKC,MAAlB,GAA2B,KAAKC,OAAvC;AACD;;AACOf,EAAAA,eAAe,GAAW;AAChC,WAAO,KAAKgB,KAAL,GAAa,KAAKC,MAAlB,GAA2B,KAAKC,OAAvC;AACD;;AAEOC,EAAAA,sBAAsB,GAAS;AACrCC,IAAAA,YAAY,CAAC,KAAKC,iBAAN,CAAZ;AACD,GA7M2D,CA+M5D;;;AACUC,EAAAA,aAAa,CAACC,KAAD,EAA4B;AACjD,SAAKpB,OAAL,CAAaqB,YAAb,CAA0BD,KAA1B;AACA,UAAMD,aAAN,CAAoBC,KAApB;AAEA,SAAKV,KAAL,GAAa,KAAKV,OAAL,CAAaC,WAAb,EAAb;AACA,SAAKY,KAAL,GAAa,KAAKb,OAAL,CAAaG,WAAb,EAAb;AAEA,SAAKmB,QAAL,CAAcF,KAAd;AACA,SAAKG,UAAL;AACD;;AAESC,EAAAA,YAAY,CAACJ,KAAD,EAA4B;AAChD,SAAKpB,OAAL,CAAaqB,YAAb,CAA0BD,KAA1B;AACA,UAAMI,YAAN,CAAmBJ,KAAnB;AACA,SAAKE,QAAL,CAAcF,KAAd;AAEA,SAAKR,OAAL,IAAgB,KAAKF,KAAL,GAAa,KAAKC,MAAlC;AACA,SAAKI,OAAL,IAAgB,KAAKF,KAAL,GAAa,KAAKC,MAAlC;AAEA,SAAKJ,KAAL,GAAa,KAAKV,OAAL,CAAaC,WAAb,EAAb;AACA,SAAKY,KAAL,GAAa,KAAKb,OAAL,CAAaG,WAAb,EAAb;AAEA,SAAKQ,MAAL,GAAc,KAAKD,KAAnB;AACA,SAAKI,MAAL,GAAc,KAAKD,KAAnB;;AAEA,QAAI,KAAKb,OAAL,CAAayB,uBAAb,KAAyC,KAAKnD,WAAlD,EAA+D;AAC7D,UAAI,KAAKoD,YAAL,KAAsB7E,KAAK,CAAC8E,MAAhC,EAAwC;AACtC,aAAKC,MAAL;AACD,OAFD,MAEO;AACL,aAAKC,IAAL;AACD;AACF,KAND,MAMO;AACL,WAAKN,UAAL;AACD;AACF;;AAESO,EAAAA,WAAW,CAACV,KAAD,EAA4B;AAC/C,UAAMU,WAAN,CAAkBV,KAAlB;;AAEA,QAAI,KAAKM,YAAL,KAAsB7E,KAAK,CAAC8E,MAAhC,EAAwC;AACtC,WAAKjB,KAAL,GAAa,KAAKV,OAAL,CAAaC,WAAb,EAAb;AACA,WAAKY,KAAL,GAAa,KAAKb,OAAL,CAAaG,WAAb,EAAb;AACD;;AAED,SAAKH,OAAL,CAAa+B,iBAAb,CAA+BX,KAAK,CAACY,SAArC;;AAEA,QAAI,KAAKN,YAAL,KAAsB7E,KAAK,CAAC8E,MAAhC,EAAwC;AACtC,WAAKM,GAAL;AACD,KAFD,MAEO;AACL,WAAKC,aAAL;AACA,WAAKL,IAAL;AACD;AACF;;AACSM,EAAAA,eAAe,CAACf,KAAD,EAA4B;AACnD,UAAMe,eAAN,CAAsBf,KAAtB;AACA,SAAKpB,OAAL,CAAa+B,iBAAb,CAA+BX,KAAK,CAACY,SAArC;AAEA,SAAKpB,OAAL,IAAgB,KAAKF,KAAL,GAAa,KAAKC,MAAlC;AACA,SAAKI,OAAL,IAAgB,KAAKF,KAAL,GAAa,KAAKC,MAAlC;AAEA,SAAKJ,KAAL,GAAa,KAAKV,OAAL,CAAaC,WAAb,EAAb;AACA,SAAKY,KAAL,GAAa,KAAKb,OAAL,CAAaG,WAAb,EAAb;AAEA,SAAKQ,MAAL,GAAc,KAAKD,KAAnB;AACA,SAAKI,MAAL,GAAc,KAAKD,KAAnB;;AAEA,QACE,EACE,KAAKa,YAAL,KAAsB7E,KAAK,CAAC8E,MAA5B,IACA,KAAK3B,OAAL,CAAayB,uBAAb,KAAyC,KAAKpD,WAFhD,CADF,EAKE;AACA,WAAKkD,UAAL;AACD;AACF;;AAESa,EAAAA,aAAa,CAAChB,KAAD,EAA4B;AACjD,SAAKpB,OAAL,CAAaqC,KAAb,CAAmBjB,KAAnB;AAEA,SAAKV,KAAL,GAAa,KAAKV,OAAL,CAAaC,WAAb,EAAb;AACA,SAAKY,KAAL,GAAa,KAAKb,OAAL,CAAaG,WAAb,EAAb;AACA,SAAKC,SAAL,GAAiB,KAAKJ,OAAL,CAAasC,YAAb,CAA0BlB,KAAK,CAACY,SAAhC,CAAjB;AACA,SAAK3B,SAAL,GAAiB,KAAKL,OAAL,CAAauC,YAAb,CAA0BnB,KAAK,CAACY,SAAhC,CAAjB;AAEA,SAAKT,UAAL;AAEA,UAAMa,aAAN,CAAoBhB,KAApB;AACD;;AAESoB,EAAAA,eAAe,CAACpB,KAAD,EAA4B;AACnD,UAAMoB,eAAN,CAAsBpB,KAAtB;AAEA,SAAKqB,KAAL;AACD;;AACSC,EAAAA,oBAAoB,CAACtB,KAAD,EAA4B;AACxD,QAAI,KAAKuB,0BAAL,EAAJ,EAAuC;AACrC;AACD;;AAED,SAAK3C,OAAL,CAAaqC,KAAb,CAAmBjB,KAAnB;AAEA,SAAKV,KAAL,GAAa,KAAKV,OAAL,CAAaC,WAAb,EAAb;AACA,SAAKY,KAAL,GAAa,KAAKb,OAAL,CAAaG,WAAb,EAAb;AACA,SAAKC,SAAL,GAAiB,KAAKJ,OAAL,CAAasC,YAAb,CAA0BlB,KAAK,CAACY,SAAhC,CAAjB;AACA,SAAK3B,SAAL,GAAiB,KAAKL,OAAL,CAAauC,YAAb,CAA0BnB,KAAK,CAACY,SAAhC,CAAjB;AAEA,SAAKT,UAAL;;AAEA,QAAI,KAAKG,YAAL,KAAsB7E,KAAK,CAAC8E,MAAhC,EAAwC;AACtC,YAAMe,oBAAN,CAA2BtB,KAA3B;AACD;AACF;;AAEOwB,EAAAA,cAAc,GAAY;AAChC,UAAMC,EAAU,GAAG,KAAKlD,eAAL,EAAnB;;AAEA,QACE,KAAKhB,kBAAL,KAA4BvB,MAAM,CAACC,gBAAnC,IACAwF,EAAE,GAAG,KAAKlE,kBAFZ,EAGE;AACA,aAAO,IAAP;AACD;;AAED,QACE,KAAKC,gBAAL,KAA0BxB,MAAM,CAACE,gBAAjC,IACAuF,EAAE,GAAG,KAAKjE,gBAFZ,EAGE;AACA,aAAO,IAAP;AACD;;AAED,UAAMkE,EAAU,GAAG,KAAKjD,eAAL,EAAnB;;AAEA,QACE,KAAKd,kBAAL,KAA4B3B,MAAM,CAACC,gBAAnC,IACAyF,EAAE,GAAG,KAAK/D,kBAFZ,EAGE;AACA,aAAO,IAAP;AACD;;AAED,QACE,KAAKC,gBAAL,KAA0B5B,MAAM,CAACE,gBAAjC,IACAwF,EAAE,GAAG,KAAK9D,gBAFZ,EAGE;AACA,aAAO,IAAP;AACD;;AAED,UAAM+D,UAAkB,GAAGF,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAA1C;;AAEA,QACE,KAAK3E,SAAL,KAAmBf,MAAM,CAACC,gBAA1B,IACA0F,UAAU,IAAI,KAAK5E,SAFrB,EAGE;AACA,aAAO,IAAP;AACD;;AAED,UAAM6E,EAAU,GAAG,KAAK5C,SAAxB;;AAEA,QACE,KAAK5B,YAAL,KAAsBpB,MAAM,CAACC,gBAA7B,KACE,KAAKmB,YAAL,GAAoB,CAApB,IAAyBwE,EAAE,IAAI,KAAKxE,YAArC,IACE,KAAKA,YAAL,IAAqB,CAArB,IAA0B,KAAKA,YAAL,IAAqBwE,EAFlD,CADF,EAIE;AACA,aAAO,IAAP;AACD;;AAED,UAAMC,EAAU,GAAG,KAAK5C,SAAxB;;AACA,QACE,KAAK5B,YAAL,KAAsBrB,MAAM,CAACC,gBAA7B,KACE,KAAKoB,YAAL,GAAoB,CAApB,IAAyBwE,EAAE,IAAI,KAAKxE,YAArC,IACE,KAAKA,YAAL,IAAqB,CAArB,IAA0B,KAAKA,YAAL,IAAqBwE,EAFlD,CADF,EAIE;AACA,aAAO,IAAP;AACD;;AAED,UAAMC,UAAkB,GAAGF,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAA1C;AAEA,WACE,KAAK9D,aAAL,KAAuB/B,MAAM,CAACC,gBAA9B,IACA6F,UAAU,IAAI,KAAK/D,aAFrB;AAID;;AAEOgE,EAAAA,UAAU,GAAY;AAC5B,UAAMN,EAAU,GAAG,KAAKlD,eAAL,EAAnB;AACA,UAAMmD,EAAU,GAAG,KAAKjD,eAAL,EAAnB;AACA,UAAMkD,UAAU,GAAGF,EAAE,GAAGA,EAAL,GAAUC,EAAE,GAAGA,EAAlC;;AAEA,QAAI,KAAKpE,sBAAL,GAA8B,CAA9B,IAAmCqE,UAAU,GAAG7F,mBAApD,EAAyE;AACvE,WAAK8D,sBAAL;AACA,aAAO,IAAP;AACD;;AAED,QACE,KAAKnC,gBAAL,KAA0BzB,MAAM,CAACE,gBAAjC,IACAuF,EAAE,GAAG,KAAKhE,gBAFZ,EAGE;AACA,aAAO,IAAP;AACD;;AAED,QACE,KAAKC,cAAL,KAAwB1B,MAAM,CAACC,gBAA/B,IACAwF,EAAE,GAAG,KAAK/D,cAFZ,EAGE;AACA,aAAO,IAAP;AACD;;AAED,QACE,KAAKG,gBAAL,KAA0B7B,MAAM,CAACE,gBAAjC,IACAwF,EAAE,GAAG,KAAK7D,gBAFZ,EAGE;AACA,aAAO,IAAP;AACD;;AAED,WACE,KAAKC,cAAL,KAAwB9B,MAAM,CAACC,gBAA/B,IACAyF,EAAE,GAAG,KAAK5D,cAFZ;AAID;;AAEOoC,EAAAA,QAAQ,CAACF,KAAD,EAA4B;AAC1C,QACE,KAAKM,YAAL,KAAsB7E,KAAK,CAACuG,YAA5B,IACA,KAAKpD,OAAL,CAAayB,uBAAb,MAA0C,KAAKpD,WAFjD,EAGE;AACA,WAAK6D,aAAL;AACA,WAAKtB,OAAL,GAAe,CAAf;AACA,WAAKG,OAAL,GAAe,CAAf;AACA,WAAKX,SAAL,GAAiB,CAAjB;AACA,WAAKC,SAAL,GAAiB,CAAjB;AAEA,WAAKgD,KAAL;;AAEA,UAAI,KAAK3E,sBAAL,GAA8B,CAAlC,EAAqC;AACnC,aAAKwC,iBAAL,GAAyBoC,UAAU,CAAC,MAAM;AACxC,eAAKC,QAAL;AACD,SAFkC,EAEhC,KAAK7E,sBAF2B,CAAnC;AAGD;AACF,KAjBD,MAiBO;AACL,WAAK0B,SAAL,GAAiB,KAAKJ,OAAL,CAAasC,YAAb,CAA0BlB,KAAK,CAACY,SAAhC,CAAjB;AACA,WAAK3B,SAAL,GAAiB,KAAKL,OAAL,CAAauC,YAAb,CAA0BnB,KAAK,CAACY,SAAhC,CAAjB;AACD;AACF;;AAEOT,EAAAA,UAAU,GAAS;AACzB,QAAI,KAAKG,YAAL,KAAsB7E,KAAK,CAAC2G,KAAhC,EAAuC;AACrC,UAAI,KAAKL,UAAL,EAAJ,EAAuB;AACrB,aAAKtB,IAAL;AACD,OAFD,MAEO,IAAI,KAAKe,cAAL,EAAJ,EAA2B;AAChC,aAAKW,QAAL;AACD;AACF;AACF;;AAEMA,EAAAA,QAAQ,CAACE,KAAK,GAAG,KAAT,EAAsB;AACnC,QAAI,KAAK/B,YAAL,KAAsB7E,KAAK,CAAC8E,MAAhC,EAAwC;AACtC,WAAKO,aAAL;AACD;;AAED,UAAMqB,QAAN,CAAeE,KAAf;AACD;;AAESC,EAAAA,QAAQ,GAAS;AACzB,SAAK1C,sBAAL;AACD;;AAES2C,EAAAA,OAAO,GAAS;AACxB,SAAK3C,sBAAL;AACD;;AAESkB,EAAAA,aAAa,GAAS;AAC9B,QAAI,KAAKR,YAAL,KAAsB7E,KAAK,CAAC8E,MAAhC,EAAwC;AACtC;AACD;;AAED,SAAKhB,MAAL,GAAc,KAAKD,KAAnB;AACA,SAAKI,MAAL,GAAc,KAAKD,KAAnB;AACD;;AApe2D","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 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.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"]}
@@ -55,7 +55,6 @@ export default class PinchGestureHandler extends GestureHandler {
55
55
  enabled: enabled,
56
56
  ...props
57
57
  });
58
- this.enabled = enabled;
59
58
  }
60
59
 
61
60
  transformNativeEvent() {
@@ -1 +1 @@
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"]}
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\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"]}
@@ -54,7 +54,6 @@ export default class RotationGestureHandler extends GestureHandler {
54
54
  enabled: enabled,
55
55
  ...props
56
56
  });
57
- this.enabled = enabled;
58
57
  }
59
58
 
60
59
  transformNativeEvent() {
@@ -1 +1 @@
1
- {"version":3,"sources":["RotationGestureHandler.ts"],"names":["State","GestureHandler","RotationGestureDetector","ROTATION_RECOGNITION_THRESHOLD","Math","PI","RotationGestureHandler","onRotationBegin","_detector","onRotation","detector","previousRotation","rotation","getRotation","delta","getTimeDelta","velocity","abs","currentState","BEGAN","activate","onRotationEnd","end","rotationGestureListener","init","ref","propsRef","setShouldCancelWhenOutside","updateGestureConfig","enabled","props","transformNativeEvent","anchorX","getAnchorX","anchorY","getAnchorY","rotationGestureDetector","cachedAnchorX","cachedAnchorY","onPointerDown","event","tracker","addToTracker","onPointerAdd","tryBegin","onTouchEvent","onPointerMove","getTrackedPointersCount","track","onPointerOutOfBounds","onPointerUp","removeFromTracker","pointerId","ACTIVE","fail","onPointerRemove","onPointerCancel","reset","UNDETERMINED","begin","_force","onReset"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nimport RotationGestureDetector, {\n RotationGestureListener,\n} from '../detectors/RotationGestureDetector';\n\nconst ROTATION_RECOGNITION_THRESHOLD = Math.PI / 36;\n\nexport default class RotationGestureHandler extends GestureHandler {\n private rotation = 0;\n private velocity = 0;\n\n private cachedAnchorX = 0;\n private cachedAnchorY = 0;\n\n private rotationGestureListener: RotationGestureListener = {\n onRotationBegin: (_detector: RotationGestureDetector): boolean => true,\n onRotation: (detector: RotationGestureDetector): boolean => {\n const previousRotation: number = this.rotation;\n this.rotation += detector.getRotation();\n\n const delta = detector.getTimeDelta();\n\n if (delta > 0) {\n this.velocity = (this.rotation - previousRotation) / delta;\n }\n\n if (\n Math.abs(this.rotation) >= ROTATION_RECOGNITION_THRESHOLD &&\n this.currentState === State.BEGAN\n ) {\n this.activate();\n }\n\n return true;\n },\n onRotationEnd: (_detector: RotationGestureDetector): void => {\n this.end();\n },\n };\n\n private rotationGestureDetector: RotationGestureDetector = new RotationGestureDetector(\n this.rotationGestureListener\n );\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\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 rotation: this.rotation ? this.rotation : 0,\n anchorX: this.getAnchorX(),\n anchorY: this.getAnchorY(),\n velocity: this.velocity ? this.velocity : 0,\n };\n }\n\n public getAnchorX(): number {\n const anchorX = this.rotationGestureDetector.getAnchorX();\n\n return anchorX ? anchorX : this.cachedAnchorX;\n }\n\n public getAnchorY(): number {\n const anchorY = this.rotationGestureDetector.getAnchorY();\n\n return anchorY ? anchorY : this.cachedAnchorY;\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\n this.tryBegin();\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n\n if (this.getAnchorX()) {\n this.cachedAnchorX = this.getAnchorX();\n }\n if (this.getAnchorY()) {\n this.cachedAnchorY = this.getAnchorY();\n }\n\n this.tracker.track(event);\n\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n\n if (this.getAnchorX()) {\n this.cachedAnchorX = this.getAnchorX();\n }\n if (this.getAnchorY()) {\n this.cachedAnchorY = this.getAnchorY();\n }\n\n this.tracker.track(event);\n\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n\n if (this.currentState !== State.ACTIVE) {\n return;\n }\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.rotationGestureDetector.onTouchEvent(event, this.tracker);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.end();\n\n this.reset();\n }\n\n protected tryBegin(): void {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.begin();\n }\n\n public activate(_force?: boolean): void {\n super.activate();\n }\n\n protected onReset(): void {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.rotation = 0;\n this.velocity = 0;\n this.rotationGestureDetector.reset();\n }\n}\n"]}
1
+ {"version":3,"sources":["RotationGestureHandler.ts"],"names":["State","GestureHandler","RotationGestureDetector","ROTATION_RECOGNITION_THRESHOLD","Math","PI","RotationGestureHandler","onRotationBegin","_detector","onRotation","detector","previousRotation","rotation","getRotation","delta","getTimeDelta","velocity","abs","currentState","BEGAN","activate","onRotationEnd","end","rotationGestureListener","init","ref","propsRef","setShouldCancelWhenOutside","updateGestureConfig","enabled","props","transformNativeEvent","anchorX","getAnchorX","anchorY","getAnchorY","rotationGestureDetector","cachedAnchorX","cachedAnchorY","onPointerDown","event","tracker","addToTracker","onPointerAdd","tryBegin","onTouchEvent","onPointerMove","getTrackedPointersCount","track","onPointerOutOfBounds","onPointerUp","removeFromTracker","pointerId","ACTIVE","fail","onPointerRemove","onPointerCancel","reset","UNDETERMINED","begin","_force","onReset"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nimport RotationGestureDetector, {\n RotationGestureListener,\n} from '../detectors/RotationGestureDetector';\n\nconst ROTATION_RECOGNITION_THRESHOLD = Math.PI / 36;\n\nexport default class RotationGestureHandler extends GestureHandler {\n private rotation = 0;\n private velocity = 0;\n\n private cachedAnchorX = 0;\n private cachedAnchorY = 0;\n\n private rotationGestureListener: RotationGestureListener = {\n onRotationBegin: (_detector: RotationGestureDetector): boolean => true,\n onRotation: (detector: RotationGestureDetector): boolean => {\n const previousRotation: number = this.rotation;\n this.rotation += detector.getRotation();\n\n const delta = detector.getTimeDelta();\n\n if (delta > 0) {\n this.velocity = (this.rotation - previousRotation) / delta;\n }\n\n if (\n Math.abs(this.rotation) >= ROTATION_RECOGNITION_THRESHOLD &&\n this.currentState === State.BEGAN\n ) {\n this.activate();\n }\n\n return true;\n },\n onRotationEnd: (_detector: RotationGestureDetector): void => {\n this.end();\n },\n };\n\n private rotationGestureDetector: RotationGestureDetector =\n new RotationGestureDetector(this.rotationGestureListener);\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\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\n protected transformNativeEvent() {\n return {\n rotation: this.rotation ? this.rotation : 0,\n anchorX: this.getAnchorX(),\n anchorY: this.getAnchorY(),\n velocity: this.velocity ? this.velocity : 0,\n };\n }\n\n public getAnchorX(): number {\n const anchorX = this.rotationGestureDetector.getAnchorX();\n\n return anchorX ? anchorX : this.cachedAnchorX;\n }\n\n public getAnchorY(): number {\n const anchorY = this.rotationGestureDetector.getAnchorY();\n\n return anchorY ? anchorY : this.cachedAnchorY;\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\n this.tryBegin();\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n\n if (this.getAnchorX()) {\n this.cachedAnchorX = this.getAnchorX();\n }\n if (this.getAnchorY()) {\n this.cachedAnchorY = this.getAnchorY();\n }\n\n this.tracker.track(event);\n\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n if (this.tracker.getTrackedPointersCount() < 2) {\n return;\n }\n\n if (this.getAnchorX()) {\n this.cachedAnchorX = this.getAnchorX();\n }\n if (this.getAnchorY()) {\n this.cachedAnchorY = this.getAnchorY();\n }\n\n this.tracker.track(event);\n\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n this.rotationGestureDetector.onTouchEvent(event, this.tracker);\n\n if (this.currentState !== State.ACTIVE) {\n return;\n }\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.rotationGestureDetector.onTouchEvent(event, this.tracker);\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.end();\n\n this.reset();\n }\n\n protected tryBegin(): void {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.begin();\n }\n\n public activate(_force?: boolean): void {\n super.activate();\n }\n\n protected onReset(): void {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.rotation = 0;\n this.velocity = 0;\n this.rotationGestureDetector.reset();\n }\n}\n"]}
@@ -59,7 +59,6 @@ export default class TapGestureHandler extends GestureHandler {
59
59
  enabled: enabled,
60
60
  ...props
61
61
  });
62
- this.enabled = enabled;
63
62
 
64
63
  if (this.config.numberOfTaps !== undefined) {
65
64
  this.numberOfTaps = this.config.numberOfTaps;
@@ -1 +1 @@
1
- {"version":3,"sources":["TapGestureHandler.ts"],"names":["State","EventTypes","GestureHandler","DEFAULT_MAX_DURATION_MS","DEFAULT_MAX_DELAY_MS","DEFAULT_NUMBER_OF_TAPS","DEFAULT_MIN_NUMBER_OF_POINTERS","TapGestureHandler","Number","MIN_SAFE_INTEGER","init","ref","propsRef","setShouldCancelWhenOutside","updateGestureConfig","enabled","props","config","numberOfTaps","undefined","maxDurationMs","maxDelayMs","maxDeltaX","maxDeltaY","maxDist","maxDistSq","minPointers","minNumberOfPointers","resetConfig","transformNativeEvent","rect","view","getBoundingClientRect","x","tracker","getLastAvgX","left","y","getLastAvgY","top","absoluteX","absoluteY","clearTimeouts","clearTimeout","waitTimeout","delayTimeout","startTap","setTimeout","fail","endTap","tapsSoFar","currentMaxNumberOfPointers","activate","onPointerDown","event","addToTracker","trySettingPosition","startX","startY","lastX","lastY","updateState","onPointerAdd","offsetX","offsetY","onPointerUp","removeFromTracker","pointerId","onPointerRemove","onPointerMove","track","onPointerOutOfBounds","onPointerCancel","resetTracker","getTrackedPointersCount","shouldFail","currentState","UNDETERMINED","eventType","DOWN","begin","BEGAN","UP","dx","Math","abs","dy","distSq","end","onCancel","resetProgress"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { AdaptedEvent, Config, EventTypes } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\n\nconst DEFAULT_MAX_DURATION_MS = 500;\nconst DEFAULT_MAX_DELAY_MS = 500;\nconst DEFAULT_NUMBER_OF_TAPS = 1;\nconst DEFAULT_MIN_NUMBER_OF_POINTERS = 1;\n\nexport default class TapGestureHandler extends GestureHandler {\n private maxDeltaX = Number.MIN_SAFE_INTEGER;\n private maxDeltaY = Number.MIN_SAFE_INTEGER;\n private maxDistSq = Number.MIN_SAFE_INTEGER;\n private maxDurationMs = DEFAULT_MAX_DURATION_MS;\n private maxDelayMs = DEFAULT_MAX_DELAY_MS;\n\n private numberOfTaps = DEFAULT_NUMBER_OF_TAPS;\n private minNumberOfPointers = DEFAULT_MIN_NUMBER_OF_POINTERS;\n private currentMaxNumberOfPointers = 1;\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 waitTimeout: number | undefined;\n private delayTimeout: number | undefined;\n\n private tapsSoFar = 0;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n this.setShouldCancelWhenOutside(true);\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n this.enabled = enabled;\n\n if (this.config.numberOfTaps !== undefined) {\n this.numberOfTaps = this.config.numberOfTaps;\n }\n\n if (this.config.maxDurationMs !== undefined) {\n this.maxDurationMs = this.config.maxDurationMs;\n }\n\n if (this.config.maxDelayMs !== undefined) {\n this.maxDelayMs = this.config.maxDelayMs;\n }\n\n if (this.config.maxDeltaX !== undefined) {\n this.maxDeltaX = this.config.maxDeltaX;\n }\n\n if (this.config.maxDeltaY !== undefined) {\n this.maxDeltaY = this.config.maxDeltaY;\n }\n\n if (this.config.maxDist !== undefined) {\n this.maxDistSq = this.config.maxDist * this.config.maxDist;\n }\n\n if (this.config.minPointers !== undefined) {\n this.minNumberOfPointers = this.config.minPointers;\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n\n this.maxDeltaX = Number.MIN_SAFE_INTEGER;\n this.maxDeltaY = Number.MIN_SAFE_INTEGER;\n this.maxDistSq = Number.MIN_SAFE_INTEGER;\n this.maxDurationMs = DEFAULT_MAX_DURATION_MS;\n this.maxDelayMs = DEFAULT_MAX_DELAY_MS;\n this.numberOfTaps = DEFAULT_NUMBER_OF_TAPS;\n this.minNumberOfPointers = DEFAULT_MIN_NUMBER_OF_POINTERS;\n }\n\n protected transformNativeEvent() {\n const rect: DOMRect = this.view.getBoundingClientRect();\n\n return {\n x: this.tracker.getLastAvgX() - rect.left,\n y: this.tracker.getLastAvgY() - rect.top,\n absoluteX: this.tracker.getLastAvgX(),\n absoluteY: this.tracker.getLastAvgY(),\n };\n }\n\n private clearTimeouts(): void {\n clearTimeout(this.waitTimeout);\n clearTimeout(this.delayTimeout);\n }\n\n private startTap(): void {\n this.clearTimeouts();\n\n this.waitTimeout = setTimeout(() => this.fail(), this.maxDurationMs);\n }\n\n private endTap(): void {\n this.clearTimeouts();\n\n if (\n ++this.tapsSoFar === this.numberOfTaps &&\n this.currentMaxNumberOfPointers >= this.minNumberOfPointers\n ) {\n this.activate();\n } else {\n this.delayTimeout = setTimeout(() => this.fail(), this.maxDelayMs);\n }\n }\n\n //Handling Events\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n\n this.trySettingPosition(event);\n\n this.startX = event.x;\n this.startY = event.y;\n\n this.lastX = event.x;\n this.lastY = event.y;\n\n this.updateState(event);\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n super.onPointerAdd(event);\n this.tracker.addToTracker(event);\n this.trySettingPosition(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.tracker.getLastAvgX();\n this.startY = this.tracker.getLastAvgY();\n\n this.updateState(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.tracker.removeFromTracker(event.pointerId);\n\n this.updateState(event);\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 this.updateState(event);\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.trySettingPosition(event);\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.updateState(event);\n\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.trySettingPosition(event);\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.updateState(event);\n\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.tracker.resetTracker();\n this.fail();\n }\n\n private updateState(event: AdaptedEvent): void {\n if (\n this.currentMaxNumberOfPointers < this.tracker.getTrackedPointersCount()\n ) {\n this.currentMaxNumberOfPointers = this.tracker.getTrackedPointersCount();\n }\n\n if (this.shouldFail()) {\n this.fail();\n return;\n }\n\n switch (this.currentState) {\n case State.UNDETERMINED:\n if (event.eventType === EventTypes.DOWN) {\n this.begin();\n }\n this.startTap();\n break;\n case State.BEGAN:\n if (event.eventType === EventTypes.UP) {\n this.endTap();\n }\n if (event.eventType === EventTypes.DOWN) {\n this.startTap();\n }\n break;\n default:\n break;\n }\n }\n\n private trySettingPosition(event: AdaptedEvent): void {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.offsetX = 0;\n this.offsetY = 0;\n this.startX = event.x;\n this.startY = event.y;\n }\n\n private shouldFail(): boolean {\n const dx = this.lastX - this.startX + this.offsetX;\n\n if (\n this.maxDeltaX !== Number.MIN_SAFE_INTEGER &&\n Math.abs(dx) > this.maxDeltaX\n ) {\n return true;\n }\n\n const dy = this.lastY - this.startY + this.offsetY;\n if (\n this.maxDeltaY !== Number.MIN_SAFE_INTEGER &&\n Math.abs(dy) > this.maxDeltaY\n ) {\n return true;\n }\n\n const distSq = dy * dy + dx * dx;\n\n return (\n this.maxDistSq !== Number.MIN_SAFE_INTEGER && distSq > this.maxDistSq\n );\n }\n\n public activate(): void {\n super.activate();\n\n this.end();\n }\n\n protected onCancel(): void {\n this.resetProgress();\n this.clearTimeouts();\n }\n\n protected resetProgress(): void {\n this.clearTimeouts();\n this.tapsSoFar = 0;\n this.currentMaxNumberOfPointers = 0;\n }\n}\n"]}
1
+ {"version":3,"sources":["TapGestureHandler.ts"],"names":["State","EventTypes","GestureHandler","DEFAULT_MAX_DURATION_MS","DEFAULT_MAX_DELAY_MS","DEFAULT_NUMBER_OF_TAPS","DEFAULT_MIN_NUMBER_OF_POINTERS","TapGestureHandler","Number","MIN_SAFE_INTEGER","init","ref","propsRef","setShouldCancelWhenOutside","updateGestureConfig","enabled","props","config","numberOfTaps","undefined","maxDurationMs","maxDelayMs","maxDeltaX","maxDeltaY","maxDist","maxDistSq","minPointers","minNumberOfPointers","resetConfig","transformNativeEvent","rect","view","getBoundingClientRect","x","tracker","getLastAvgX","left","y","getLastAvgY","top","absoluteX","absoluteY","clearTimeouts","clearTimeout","waitTimeout","delayTimeout","startTap","setTimeout","fail","endTap","tapsSoFar","currentMaxNumberOfPointers","activate","onPointerDown","event","addToTracker","trySettingPosition","startX","startY","lastX","lastY","updateState","onPointerAdd","offsetX","offsetY","onPointerUp","removeFromTracker","pointerId","onPointerRemove","onPointerMove","track","onPointerOutOfBounds","onPointerCancel","resetTracker","getTrackedPointersCount","shouldFail","currentState","UNDETERMINED","eventType","DOWN","begin","BEGAN","UP","dx","Math","abs","dy","distSq","end","onCancel","resetProgress"],"mappings":";;AAAA,SAASA,KAAT,QAAsB,aAAtB;AACA,SAA+BC,UAA/B,QAAiD,eAAjD;AAEA,OAAOC,cAAP,MAA2B,kBAA3B;AAEA,MAAMC,uBAAuB,GAAG,GAAhC;AACA,MAAMC,oBAAoB,GAAG,GAA7B;AACA,MAAMC,sBAAsB,GAAG,CAA/B;AACA,MAAMC,8BAA8B,GAAG,CAAvC;AAEA,eAAe,MAAMC,iBAAN,SAAgCL,cAAhC,CAA+C;AAAA;AAAA;;AAAA,uCACxCM,MAAM,CAACC,gBADiC;;AAAA,uCAExCD,MAAM,CAACC,gBAFiC;;AAAA,uCAGxCD,MAAM,CAACC,gBAHiC;;AAAA,2CAIpCN,uBAJoC;;AAAA,wCAKvCC,oBALuC;;AAAA,0CAOrCC,sBAPqC;;AAAA,iDAQ9BC,8BAR8B;;AAAA,wDASvB,CATuB;;AAAA,oCAW3C,CAX2C;;AAAA,oCAY3C,CAZ2C;;AAAA,qCAa1C,CAb0C;;AAAA,qCAc1C,CAd0C;;AAAA,mCAe5C,CAf4C;;AAAA,mCAgB5C,CAhB4C;;AAAA;;AAAA;;AAAA,uCAqBxC,CArBwC;AAAA;;AAuBrDI,EAAAA,IAAI,CAACC,GAAD,EAAcC,QAAd,EAAwD;AACjE,UAAMF,IAAN,CAAWC,GAAX,EAAgBC,QAAhB;AACA,SAAKC,0BAAL,CAAgC,IAAhC;AACD;;AAEMC,EAAAA,mBAAmB,CAAC;AAAEC,IAAAA,OAAO,GAAG,IAAZ;AAAkB,OAAGC;AAArB,GAAD,EAA6C;AACrE,UAAMF,mBAAN,CAA0B;AAAEC,MAAAA,OAAO,EAAEA,OAAX;AAAoB,SAAGC;AAAvB,KAA1B;;AAEA,QAAI,KAAKC,MAAL,CAAYC,YAAZ,KAA6BC,SAAjC,EAA4C;AAC1C,WAAKD,YAAL,GAAoB,KAAKD,MAAL,CAAYC,YAAhC;AACD;;AAED,QAAI,KAAKD,MAAL,CAAYG,aAAZ,KAA8BD,SAAlC,EAA6C;AAC3C,WAAKC,aAAL,GAAqB,KAAKH,MAAL,CAAYG,aAAjC;AACD;;AAED,QAAI,KAAKH,MAAL,CAAYI,UAAZ,KAA2BF,SAA/B,EAA0C;AACxC,WAAKE,UAAL,GAAkB,KAAKJ,MAAL,CAAYI,UAA9B;AACD;;AAED,QAAI,KAAKJ,MAAL,CAAYK,SAAZ,KAA0BH,SAA9B,EAAyC;AACvC,WAAKG,SAAL,GAAiB,KAAKL,MAAL,CAAYK,SAA7B;AACD;;AAED,QAAI,KAAKL,MAAL,CAAYM,SAAZ,KAA0BJ,SAA9B,EAAyC;AACvC,WAAKI,SAAL,GAAiB,KAAKN,MAAL,CAAYM,SAA7B;AACD;;AAED,QAAI,KAAKN,MAAL,CAAYO,OAAZ,KAAwBL,SAA5B,EAAuC;AACrC,WAAKM,SAAL,GAAiB,KAAKR,MAAL,CAAYO,OAAZ,GAAsB,KAAKP,MAAL,CAAYO,OAAnD;AACD;;AAED,QAAI,KAAKP,MAAL,CAAYS,WAAZ,KAA4BP,SAAhC,EAA2C;AACzC,WAAKQ,mBAAL,GAA2B,KAAKV,MAAL,CAAYS,WAAvC;AACD;AACF;;AAESE,EAAAA,WAAW,GAAS;AAC5B,UAAMA,WAAN;AAEA,SAAKN,SAAL,GAAiBd,MAAM,CAACC,gBAAxB;AACA,SAAKc,SAAL,GAAiBf,MAAM,CAACC,gBAAxB;AACA,SAAKgB,SAAL,GAAiBjB,MAAM,CAACC,gBAAxB;AACA,SAAKW,aAAL,GAAqBjB,uBAArB;AACA,SAAKkB,UAAL,GAAkBjB,oBAAlB;AACA,SAAKc,YAAL,GAAoBb,sBAApB;AACA,SAAKsB,mBAAL,GAA2BrB,8BAA3B;AACD;;AAESuB,EAAAA,oBAAoB,GAAG;AAC/B,UAAMC,IAAa,GAAG,KAAKC,IAAL,CAAUC,qBAAV,EAAtB;AAEA,WAAO;AACLC,MAAAA,CAAC,EAAE,KAAKC,OAAL,CAAaC,WAAb,KAA6BL,IAAI,CAACM,IADhC;AAELC,MAAAA,CAAC,EAAE,KAAKH,OAAL,CAAaI,WAAb,KAA6BR,IAAI,CAACS,GAFhC;AAGLC,MAAAA,SAAS,EAAE,KAAKN,OAAL,CAAaC,WAAb,EAHN;AAILM,MAAAA,SAAS,EAAE,KAAKP,OAAL,CAAaI,WAAb;AAJN,KAAP;AAMD;;AAEOI,EAAAA,aAAa,GAAS;AAC5BC,IAAAA,YAAY,CAAC,KAAKC,WAAN,CAAZ;AACAD,IAAAA,YAAY,CAAC,KAAKE,YAAN,CAAZ;AACD;;AAEOC,EAAAA,QAAQ,GAAS;AACvB,SAAKJ,aAAL;AAEA,SAAKE,WAAL,GAAmBG,UAAU,CAAC,MAAM,KAAKC,IAAL,EAAP,EAAoB,KAAK5B,aAAzB,CAA7B;AACD;;AAEO6B,EAAAA,MAAM,GAAS;AACrB,SAAKP,aAAL;;AAEA,QACE,EAAE,KAAKQ,SAAP,KAAqB,KAAKhC,YAA1B,IACA,KAAKiC,0BAAL,IAAmC,KAAKxB,mBAF1C,EAGE;AACA,WAAKyB,QAAL;AACD,KALD,MAKO;AACL,WAAKP,YAAL,GAAoBE,UAAU,CAAC,MAAM,KAAKC,IAAL,EAAP,EAAoB,KAAK3B,UAAzB,CAA9B;AACD;AACF,GAzG2D,CA2G5D;;;AACUgC,EAAAA,aAAa,CAACC,KAAD,EAA4B;AACjD,SAAKpB,OAAL,CAAaqB,YAAb,CAA0BD,KAA1B;AACA,UAAMD,aAAN,CAAoBC,KAApB;AAEA,SAAKE,kBAAL,CAAwBF,KAAxB;AAEA,SAAKG,MAAL,GAAcH,KAAK,CAACrB,CAApB;AACA,SAAKyB,MAAL,GAAcJ,KAAK,CAACjB,CAApB;AAEA,SAAKsB,KAAL,GAAaL,KAAK,CAACrB,CAAnB;AACA,SAAK2B,KAAL,GAAaN,KAAK,CAACjB,CAAnB;AAEA,SAAKwB,WAAL,CAAiBP,KAAjB;AACD;;AAESQ,EAAAA,YAAY,CAACR,KAAD,EAA4B;AAChD,UAAMQ,YAAN,CAAmBR,KAAnB;AACA,SAAKpB,OAAL,CAAaqB,YAAb,CAA0BD,KAA1B;AACA,SAAKE,kBAAL,CAAwBF,KAAxB;AAEA,SAAKS,OAAL,IAAgB,KAAKJ,KAAL,GAAa,KAAKF,MAAlC;AACA,SAAKO,OAAL,IAAgB,KAAKJ,KAAL,GAAa,KAAKF,MAAlC;AAEA,SAAKC,KAAL,GAAa,KAAKzB,OAAL,CAAaC,WAAb,EAAb;AACA,SAAKyB,KAAL,GAAa,KAAK1B,OAAL,CAAaI,WAAb,EAAb;AAEA,SAAKmB,MAAL,GAAc,KAAKvB,OAAL,CAAaC,WAAb,EAAd;AACA,SAAKuB,MAAL,GAAc,KAAKxB,OAAL,CAAaI,WAAb,EAAd;AAEA,SAAKuB,WAAL,CAAiBP,KAAjB;AACD;;AAESW,EAAAA,WAAW,CAACX,KAAD,EAA4B;AAC/C,UAAMW,WAAN,CAAkBX,KAAlB;AACA,SAAKK,KAAL,GAAa,KAAKzB,OAAL,CAAaC,WAAb,EAAb;AACA,SAAKyB,KAAL,GAAa,KAAK1B,OAAL,CAAaI,WAAb,EAAb;AAEA,SAAKJ,OAAL,CAAagC,iBAAb,CAA+BZ,KAAK,CAACa,SAArC;AAEA,SAAKN,WAAL,CAAiBP,KAAjB;AACD;;AAESc,EAAAA,eAAe,CAACd,KAAD,EAA4B;AACnD,UAAMc,eAAN,CAAsBd,KAAtB;AACA,SAAKpB,OAAL,CAAagC,iBAAb,CAA+BZ,KAAK,CAACa,SAArC;AAEA,SAAKJ,OAAL,IAAgB,KAAKJ,KAAL,GAAa,KAAKF,MAAlC;AACA,SAAKO,OAAL,IAAgB,KAAKJ,KAAL,GAAa,KAAKF,MAAlC;AAEA,SAAKC,KAAL,GAAa,KAAKzB,OAAL,CAAaC,WAAb,EAAb;AACA,SAAKyB,KAAL,GAAa,KAAK1B,OAAL,CAAaI,WAAb,EAAb;AAEA,SAAKmB,MAAL,GAAc,KAAKE,KAAnB;AACA,SAAKD,MAAL,GAAc,KAAKE,KAAnB;AAEA,SAAKC,WAAL,CAAiBP,KAAjB;AACD;;AAESe,EAAAA,aAAa,CAACf,KAAD,EAA4B;AACjD,SAAKE,kBAAL,CAAwBF,KAAxB;AACA,SAAKpB,OAAL,CAAaoC,KAAb,CAAmBhB,KAAnB;AAEA,SAAKK,KAAL,GAAa,KAAKzB,OAAL,CAAaC,WAAb,EAAb;AACA,SAAKyB,KAAL,GAAa,KAAK1B,OAAL,CAAaI,WAAb,EAAb;AAEA,SAAKuB,WAAL,CAAiBP,KAAjB;AAEA,UAAMe,aAAN,CAAoBf,KAApB;AACD;;AAESiB,EAAAA,oBAAoB,CAACjB,KAAD,EAA4B;AACxD,SAAKE,kBAAL,CAAwBF,KAAxB;AACA,SAAKpB,OAAL,CAAaoC,KAAb,CAAmBhB,KAAnB;AAEA,SAAKK,KAAL,GAAa,KAAKzB,OAAL,CAAaC,WAAb,EAAb;AACA,SAAKyB,KAAL,GAAa,KAAK1B,OAAL,CAAaI,WAAb,EAAb;AAEA,SAAKuB,WAAL,CAAiBP,KAAjB;AAEA,UAAMiB,oBAAN,CAA2BjB,KAA3B;AACD;;AAESkB,EAAAA,eAAe,CAAClB,KAAD,EAA4B;AACnD,UAAMkB,eAAN,CAAsBlB,KAAtB;AACA,SAAKpB,OAAL,CAAauC,YAAb;AACA,SAAKzB,IAAL;AACD;;AAEOa,EAAAA,WAAW,CAACP,KAAD,EAA4B;AAC7C,QACE,KAAKH,0BAAL,GAAkC,KAAKjB,OAAL,CAAawC,uBAAb,EADpC,EAEE;AACA,WAAKvB,0BAAL,GAAkC,KAAKjB,OAAL,CAAawC,uBAAb,EAAlC;AACD;;AAED,QAAI,KAAKC,UAAL,EAAJ,EAAuB;AACrB,WAAK3B,IAAL;AACA;AACD;;AAED,YAAQ,KAAK4B,YAAb;AACE,WAAK5E,KAAK,CAAC6E,YAAX;AACE,YAAIvB,KAAK,CAACwB,SAAN,KAAoB7E,UAAU,CAAC8E,IAAnC,EAAyC;AACvC,eAAKC,KAAL;AACD;;AACD,aAAKlC,QAAL;AACA;;AACF,WAAK9C,KAAK,CAACiF,KAAX;AACE,YAAI3B,KAAK,CAACwB,SAAN,KAAoB7E,UAAU,CAACiF,EAAnC,EAAuC;AACrC,eAAKjC,MAAL;AACD;;AACD,YAAIK,KAAK,CAACwB,SAAN,KAAoB7E,UAAU,CAAC8E,IAAnC,EAAyC;AACvC,eAAKjC,QAAL;AACD;;AACD;;AACF;AACE;AAhBJ;AAkBD;;AAEOU,EAAAA,kBAAkB,CAACF,KAAD,EAA4B;AACpD,QAAI,KAAKsB,YAAL,KAAsB5E,KAAK,CAAC6E,YAAhC,EAA8C;AAC5C;AACD;;AAED,SAAKd,OAAL,GAAe,CAAf;AACA,SAAKC,OAAL,GAAe,CAAf;AACA,SAAKP,MAAL,GAAcH,KAAK,CAACrB,CAApB;AACA,SAAKyB,MAAL,GAAcJ,KAAK,CAACjB,CAApB;AACD;;AAEOsC,EAAAA,UAAU,GAAY;AAC5B,UAAMQ,EAAE,GAAG,KAAKxB,KAAL,GAAa,KAAKF,MAAlB,GAA2B,KAAKM,OAA3C;;AAEA,QACE,KAAKzC,SAAL,KAAmBd,MAAM,CAACC,gBAA1B,IACA2E,IAAI,CAACC,GAAL,CAASF,EAAT,IAAe,KAAK7D,SAFtB,EAGE;AACA,aAAO,IAAP;AACD;;AAED,UAAMgE,EAAE,GAAG,KAAK1B,KAAL,GAAa,KAAKF,MAAlB,GAA2B,KAAKM,OAA3C;;AACA,QACE,KAAKzC,SAAL,KAAmBf,MAAM,CAACC,gBAA1B,IACA2E,IAAI,CAACC,GAAL,CAASC,EAAT,IAAe,KAAK/D,SAFtB,EAGE;AACA,aAAO,IAAP;AACD;;AAED,UAAMgE,MAAM,GAAGD,EAAE,GAAGA,EAAL,GAAUH,EAAE,GAAGA,EAA9B;AAEA,WACE,KAAK1D,SAAL,KAAmBjB,MAAM,CAACC,gBAA1B,IAA8C8E,MAAM,GAAG,KAAK9D,SAD9D;AAGD;;AAEM2B,EAAAA,QAAQ,GAAS;AACtB,UAAMA,QAAN;AAEA,SAAKoC,GAAL;AACD;;AAESC,EAAAA,QAAQ,GAAS;AACzB,SAAKC,aAAL;AACA,SAAKhD,aAAL;AACD;;AAESgD,EAAAA,aAAa,GAAS;AAC9B,SAAKhD,aAAL;AACA,SAAKQ,SAAL,GAAiB,CAAjB;AACA,SAAKC,0BAAL,GAAkC,CAAlC;AACD;;AAvR2D","sourcesContent":["import { State } from '../../State';\nimport { AdaptedEvent, Config, EventTypes } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\n\nconst DEFAULT_MAX_DURATION_MS = 500;\nconst DEFAULT_MAX_DELAY_MS = 500;\nconst DEFAULT_NUMBER_OF_TAPS = 1;\nconst DEFAULT_MIN_NUMBER_OF_POINTERS = 1;\n\nexport default class TapGestureHandler extends GestureHandler {\n private maxDeltaX = Number.MIN_SAFE_INTEGER;\n private maxDeltaY = Number.MIN_SAFE_INTEGER;\n private maxDistSq = Number.MIN_SAFE_INTEGER;\n private maxDurationMs = DEFAULT_MAX_DURATION_MS;\n private maxDelayMs = DEFAULT_MAX_DELAY_MS;\n\n private numberOfTaps = DEFAULT_NUMBER_OF_TAPS;\n private minNumberOfPointers = DEFAULT_MIN_NUMBER_OF_POINTERS;\n private currentMaxNumberOfPointers = 1;\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 waitTimeout: number | undefined;\n private delayTimeout: number | undefined;\n\n private tapsSoFar = 0;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n this.setShouldCancelWhenOutside(true);\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n if (this.config.numberOfTaps !== undefined) {\n this.numberOfTaps = this.config.numberOfTaps;\n }\n\n if (this.config.maxDurationMs !== undefined) {\n this.maxDurationMs = this.config.maxDurationMs;\n }\n\n if (this.config.maxDelayMs !== undefined) {\n this.maxDelayMs = this.config.maxDelayMs;\n }\n\n if (this.config.maxDeltaX !== undefined) {\n this.maxDeltaX = this.config.maxDeltaX;\n }\n\n if (this.config.maxDeltaY !== undefined) {\n this.maxDeltaY = this.config.maxDeltaY;\n }\n\n if (this.config.maxDist !== undefined) {\n this.maxDistSq = this.config.maxDist * this.config.maxDist;\n }\n\n if (this.config.minPointers !== undefined) {\n this.minNumberOfPointers = this.config.minPointers;\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n\n this.maxDeltaX = Number.MIN_SAFE_INTEGER;\n this.maxDeltaY = Number.MIN_SAFE_INTEGER;\n this.maxDistSq = Number.MIN_SAFE_INTEGER;\n this.maxDurationMs = DEFAULT_MAX_DURATION_MS;\n this.maxDelayMs = DEFAULT_MAX_DELAY_MS;\n this.numberOfTaps = DEFAULT_NUMBER_OF_TAPS;\n this.minNumberOfPointers = DEFAULT_MIN_NUMBER_OF_POINTERS;\n }\n\n protected transformNativeEvent() {\n const rect: DOMRect = this.view.getBoundingClientRect();\n\n return {\n x: this.tracker.getLastAvgX() - rect.left,\n y: this.tracker.getLastAvgY() - rect.top,\n absoluteX: this.tracker.getLastAvgX(),\n absoluteY: this.tracker.getLastAvgY(),\n };\n }\n\n private clearTimeouts(): void {\n clearTimeout(this.waitTimeout);\n clearTimeout(this.delayTimeout);\n }\n\n private startTap(): void {\n this.clearTimeouts();\n\n this.waitTimeout = setTimeout(() => this.fail(), this.maxDurationMs);\n }\n\n private endTap(): void {\n this.clearTimeouts();\n\n if (\n ++this.tapsSoFar === this.numberOfTaps &&\n this.currentMaxNumberOfPointers >= this.minNumberOfPointers\n ) {\n this.activate();\n } else {\n this.delayTimeout = setTimeout(() => this.fail(), this.maxDelayMs);\n }\n }\n\n //Handling Events\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n\n this.trySettingPosition(event);\n\n this.startX = event.x;\n this.startY = event.y;\n\n this.lastX = event.x;\n this.lastY = event.y;\n\n this.updateState(event);\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n super.onPointerAdd(event);\n this.tracker.addToTracker(event);\n this.trySettingPosition(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.tracker.getLastAvgX();\n this.startY = this.tracker.getLastAvgY();\n\n this.updateState(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.tracker.removeFromTracker(event.pointerId);\n\n this.updateState(event);\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 this.updateState(event);\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.trySettingPosition(event);\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.updateState(event);\n\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.trySettingPosition(event);\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.updateState(event);\n\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.tracker.resetTracker();\n this.fail();\n }\n\n private updateState(event: AdaptedEvent): void {\n if (\n this.currentMaxNumberOfPointers < this.tracker.getTrackedPointersCount()\n ) {\n this.currentMaxNumberOfPointers = this.tracker.getTrackedPointersCount();\n }\n\n if (this.shouldFail()) {\n this.fail();\n return;\n }\n\n switch (this.currentState) {\n case State.UNDETERMINED:\n if (event.eventType === EventTypes.DOWN) {\n this.begin();\n }\n this.startTap();\n break;\n case State.BEGAN:\n if (event.eventType === EventTypes.UP) {\n this.endTap();\n }\n if (event.eventType === EventTypes.DOWN) {\n this.startTap();\n }\n break;\n default:\n break;\n }\n }\n\n private trySettingPosition(event: AdaptedEvent): void {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.offsetX = 0;\n this.offsetY = 0;\n this.startX = event.x;\n this.startY = event.y;\n }\n\n private shouldFail(): boolean {\n const dx = this.lastX - this.startX + this.offsetX;\n\n if (\n this.maxDeltaX !== Number.MIN_SAFE_INTEGER &&\n Math.abs(dx) > this.maxDeltaX\n ) {\n return true;\n }\n\n const dy = this.lastY - this.startY + this.offsetY;\n if (\n this.maxDeltaY !== Number.MIN_SAFE_INTEGER &&\n Math.abs(dy) > this.maxDeltaY\n ) {\n return true;\n }\n\n const distSq = dy * dy + dx * dx;\n\n return (\n this.maxDistSq !== Number.MIN_SAFE_INTEGER && distSq > this.maxDistSq\n );\n }\n\n public activate(): void {\n super.activate();\n\n this.end();\n }\n\n protected onCancel(): void {\n this.resetProgress();\n this.clearTimeouts();\n }\n\n protected resetProgress(): void {\n this.clearTimeouts();\n this.tapsSoFar = 0;\n this.currentMaxNumberOfPointers = 0;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["interfaces.ts"],"names":["MouseButtons","EventTypes","TouchEventType","PointerType"],"mappings":"AA6HA,WAAYA,YAAZ;;WAAYA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;GAAAA,Y,KAAAA,Y;;AAWZ,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAWZ,WAAYC,cAAZ;;WAAYA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;GAAAA,c,KAAAA,c;;AAQZ,WAAYC,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["import { Directions } from '../Directions';\nimport { State } from '../State';\n\nexport interface HitSlop {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n horizontal?: number;\n vertical?: number;\n width?: number;\n height?: number;\n}\n\nexport interface Handler {\n handlerTag: number;\n}\n\ntype ConfigArgs =\n | number\n | boolean\n | HitSlop\n | Directions\n | Handler[]\n | null\n | undefined;\n\nexport interface Config extends Record<string, ConfigArgs> {\n enabled?: boolean;\n simultaneousHandlers?: Handler[] | null;\n waitFor?: Handler[] | null;\n hitSlop?: HitSlop;\n shouldCancelWhenOutside?: boolean;\n\n activateAfterLongPress?: number;\n failOffsetXStart?: number;\n failOffsetYStart?: number;\n failOffsetXEnd?: number;\n failOffsetYEnd?: number;\n activeOffsetXStart?: number;\n activeOffsetXEnd?: number;\n activeOffsetYStart?: number;\n activeOffsetYEnd?: number;\n minPointers?: number;\n maxPointers?: number;\n minDist?: number;\n minDistSq?: number;\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n minVelocitySq?: number;\n maxDist?: number;\n maxDistSq?: number;\n numberOfPointers?: number;\n minDurationMs?: number;\n numberOfTaps?: number;\n maxDurationMs?: number;\n maxDelayMs?: number;\n maxDeltaX?: number;\n maxDeltaY?: number;\n shouldActivateOnStart?: boolean;\n disallowInterruption?: boolean;\n direction?: Directions;\n}\n\ntype NativeEventArgs = number | State | boolean | undefined;\ninterface NativeEvent extends Record<string, NativeEventArgs> {\n numberOfPointers: number;\n state: State;\n pointerInside: boolean | undefined;\n handlerTag: number;\n target: number;\n oldState?: State;\n}\n\nexport interface PointerData {\n id: number;\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n}\n\ntype TouchNativeArgs = number | State | TouchEventType | PointerData[];\n\ninterface NativeTouchEvent extends Record<string, TouchNativeArgs> {\n handlerTag: number;\n state: State;\n eventType: TouchEventType;\n changedTouches: PointerData[];\n allTouches: PointerData[];\n numberOfTouches: number;\n}\n\nexport interface ResultEvent extends Record<string, NativeEvent | number> {\n nativeEvent: NativeEvent;\n timeStamp: number;\n}\n\nexport interface ResultTouchEvent\n extends Record<string, NativeTouchEvent | number> {\n nativeEvent: NativeTouchEvent;\n timeStamp: number;\n}\n\nexport interface PropsRef {\n onGestureHandlerEvent: () => void;\n onGestureHandlerStateChange: () => void;\n}\n\nexport interface AdaptedEvent {\n x: number;\n y: number;\n offsetX: number;\n offsetY: number;\n pointerId: number;\n eventType: EventTypes;\n pointerType: PointerType;\n buttons: number;\n time: number;\n allTouches?: TouchList;\n changedTouches?: TouchList;\n touchEventType?: TouchEventType;\n}\n\nexport enum MouseButtons {\n NONE,\n LEFT,\n RIGHT,\n LEFT_RIGHT,\n SCROLL,\n SCROLL_LEFT,\n SCROLL_RIGHT,\n SCROLL_LEFT_RIGHT,\n}\n\nexport enum EventTypes {\n DOWN,\n ADDITIONAL_POINTER_DOWN,\n UP,\n ADDITIONAL_POINTER_UP,\n MOVE,\n ENTER,\n OUT,\n CANCEL,\n}\n\nexport enum TouchEventType {\n UNDETERMINED,\n DOWN,\n MOVE,\n UP,\n CANCELLED,\n}\n\nexport enum PointerType {\n NONE = 'none',\n MOUSE = 'mouse',\n TOUCH = 'touch',\n PEN = 'pen',\n}\n"]}
1
+ {"version":3,"sources":["interfaces.ts"],"names":["MouseButtons","EventTypes","TouchEventType","PointerType"],"mappings":"AAgIA,WAAYA,YAAZ;;WAAYA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;AAAAA,EAAAA,Y,CAAAA,Y;GAAAA,Y,KAAAA,Y;;AAWZ,WAAYC,UAAZ;;WAAYA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;AAAAA,EAAAA,U,CAAAA,U;GAAAA,U,KAAAA,U;;AAWZ,WAAYC,cAAZ;;WAAYA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;AAAAA,EAAAA,c,CAAAA,c;GAAAA,c,KAAAA,c;;AAQZ,WAAYC,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W","sourcesContent":["import { UserSelect } from '../handlers/gestureHandlerCommon';\nimport { Directions } from '../Directions';\nimport { State } from '../State';\n\nexport interface HitSlop {\n left?: number;\n right?: number;\n top?: number;\n bottom?: number;\n horizontal?: number;\n vertical?: number;\n width?: number;\n height?: number;\n}\n\nexport interface Handler {\n handlerTag: number;\n}\n\ntype ConfigArgs =\n | number\n | boolean\n | HitSlop\n | UserSelect\n | Directions\n | Handler[]\n | null\n | undefined;\n\nexport interface Config extends Record<string, ConfigArgs> {\n enabled?: boolean;\n simultaneousHandlers?: Handler[] | null;\n waitFor?: Handler[] | null;\n hitSlop?: HitSlop;\n shouldCancelWhenOutside?: boolean;\n userSelect?: UserSelect;\n\n activateAfterLongPress?: number;\n failOffsetXStart?: number;\n failOffsetYStart?: number;\n failOffsetXEnd?: number;\n failOffsetYEnd?: number;\n activeOffsetXStart?: number;\n activeOffsetXEnd?: number;\n activeOffsetYStart?: number;\n activeOffsetYEnd?: number;\n minPointers?: number;\n maxPointers?: number;\n minDist?: number;\n minDistSq?: number;\n minVelocity?: number;\n minVelocityX?: number;\n minVelocityY?: number;\n minVelocitySq?: number;\n maxDist?: number;\n maxDistSq?: number;\n numberOfPointers?: number;\n minDurationMs?: number;\n numberOfTaps?: number;\n maxDurationMs?: number;\n maxDelayMs?: number;\n maxDeltaX?: number;\n maxDeltaY?: number;\n shouldActivateOnStart?: boolean;\n disallowInterruption?: boolean;\n direction?: Directions;\n}\n\ntype NativeEventArgs = number | State | boolean | undefined;\ninterface NativeEvent extends Record<string, NativeEventArgs> {\n numberOfPointers: number;\n state: State;\n pointerInside: boolean | undefined;\n handlerTag: number;\n target: number;\n oldState?: State;\n}\n\nexport interface PointerData {\n id: number;\n x: number;\n y: number;\n absoluteX: number;\n absoluteY: number;\n}\n\ntype TouchNativeArgs = number | State | TouchEventType | PointerData[];\n\ninterface NativeTouchEvent extends Record<string, TouchNativeArgs> {\n handlerTag: number;\n state: State;\n eventType: TouchEventType;\n changedTouches: PointerData[];\n allTouches: PointerData[];\n numberOfTouches: number;\n}\n\nexport interface ResultEvent extends Record<string, NativeEvent | number> {\n nativeEvent: NativeEvent;\n timeStamp: number;\n}\n\nexport interface ResultTouchEvent\n extends Record<string, NativeTouchEvent | number> {\n nativeEvent: NativeTouchEvent;\n timeStamp: number;\n}\n\nexport interface PropsRef {\n onGestureHandlerEvent: () => void;\n onGestureHandlerStateChange: () => void;\n}\n\nexport interface AdaptedEvent {\n x: number;\n y: number;\n offsetX: number;\n offsetY: number;\n pointerId: number;\n eventType: EventTypes;\n pointerType: PointerType;\n buttons: number;\n time: number;\n allTouches?: TouchList;\n changedTouches?: TouchList;\n touchEventType?: TouchEventType;\n}\n\nexport enum MouseButtons {\n NONE,\n LEFT,\n RIGHT,\n LEFT_RIGHT,\n SCROLL,\n SCROLL_LEFT,\n SCROLL_RIGHT,\n SCROLL_LEFT_RIGHT,\n}\n\nexport enum EventTypes {\n DOWN,\n ADDITIONAL_POINTER_DOWN,\n UP,\n ADDITIONAL_POINTER_UP,\n MOVE,\n ENTER,\n OUT,\n CANCEL,\n}\n\nexport enum TouchEventType {\n UNDETERMINED,\n DOWN,\n MOVE,\n UP,\n CANCELLED,\n}\n\nexport enum PointerType {\n NONE = 'none',\n MOUSE = 'mouse',\n TOUCH = 'touch',\n PEN = 'pen',\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["InteractionManager.ts"],"names":["InteractionManager","constructor","Map","configureInteractions","handler","config","dropRelationsForHandlerWithTag","getTag","waitFor","forEach","otherHandler","push","handlerTag","waitForRelations","set","simultaneousHandlers","simultaneousRelations","shouldWaitForHandlerFailure","get","shouldWait","tag","shouldRecognizeSimultaneously","shouldRequireHandlerToWaitForFailure","_handler","_otherHandler","shouldHandlerBeCancelledBy","delete","reset","clear","getInstance","instance"],"mappings":"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","sourcesContent":["import GestureHandler from '../handlers/GestureHandler';\nimport { Config, Handler } from '../interfaces';\n\nexport default class InteractionManager {\n private static instance: InteractionManager;\n private readonly waitForRelations: Map<number, number[]> = new Map();\n private readonly simultaneousRelations: Map<number, number[]> = new Map();\n\n // Private becaues of singleton\n // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n private constructor() {}\n\n public configureInteractions(handler: GestureHandler, config: Config) {\n this.dropRelationsForHandlerWithTag(handler.getTag());\n\n if (config.waitFor) {\n const waitFor: number[] = [];\n config.waitFor.forEach((otherHandler: Handler): void => {\n // New API reference\n if (typeof otherHandler === 'number') {\n waitFor.push(otherHandler);\n } else {\n // Old API reference\n waitFor.push(otherHandler.handlerTag);\n }\n });\n\n this.waitForRelations.set(handler.getTag(), waitFor);\n }\n\n if (config.simultaneousHandlers) {\n const simultaneousHandlers: number[] = [];\n config.simultaneousHandlers.forEach((otherHandler: Handler): void => {\n if (typeof otherHandler === 'number') {\n simultaneousHandlers.push(otherHandler);\n } else {\n simultaneousHandlers.push(otherHandler.handlerTag);\n }\n });\n\n this.simultaneousRelations.set(handler.getTag(), simultaneousHandlers);\n }\n }\n\n public shouldWaitForHandlerFailure(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n const waitFor: number[] | undefined = this.waitForRelations.get(\n handler.getTag()\n );\n if (!waitFor) {\n return false;\n }\n\n let shouldWait = false;\n\n waitFor.forEach((tag: number): void => {\n if (tag === otherHandler.getTag()) {\n shouldWait = true;\n return; //Returns from callback\n }\n });\n\n return shouldWait;\n }\n\n public shouldRecognizeSimultaneously(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n const simultaneousHandlers:\n | number[]\n | undefined = this.simultaneousRelations.get(handler.getTag());\n if (!simultaneousHandlers) {\n return false;\n }\n\n let shouldRecognizeSimultaneously = false;\n\n simultaneousHandlers.forEach((tag: number): void => {\n if (tag === otherHandler.getTag()) {\n shouldRecognizeSimultaneously = true;\n return;\n }\n });\n\n return shouldRecognizeSimultaneously;\n }\n\n public shouldRequireHandlerToWaitForFailure(\n _handler: GestureHandler,\n _otherHandler: GestureHandler\n ): boolean {\n //TODO: Implement logic\n return false;\n }\n\n public shouldHandlerBeCancelledBy(\n _handler: GestureHandler,\n _otherHandler: GestureHandler\n ): boolean {\n //TODO: Implement logic\n return false;\n }\n\n public dropRelationsForHandlerWithTag(handlerTag: number): void {\n this.waitForRelations.delete(handlerTag);\n this.simultaneousRelations.delete(handlerTag);\n }\n\n public reset() {\n this.waitForRelations.clear();\n this.simultaneousRelations.clear();\n }\n\n public static getInstance(): InteractionManager {\n if (!this.instance) {\n this.instance = new InteractionManager();\n }\n\n return this.instance;\n }\n}\n"]}
1
+ {"version":3,"sources":["InteractionManager.ts"],"names":["InteractionManager","constructor","Map","configureInteractions","handler","config","dropRelationsForHandlerWithTag","getTag","waitFor","forEach","otherHandler","push","handlerTag","waitForRelations","set","simultaneousHandlers","simultaneousRelations","shouldWaitForHandlerFailure","get","shouldWait","tag","shouldRecognizeSimultaneously","shouldRequireHandlerToWaitForFailure","_handler","_otherHandler","shouldHandlerBeCancelledBy","delete","reset","clear","getInstance","instance"],"mappings":";;AAGA,eAAe,MAAMA,kBAAN,CAAyB;AAKtC;AACA;AACQC,EAAAA,WAAW,GAAG;AAAA,8CALqC,IAAIC,GAAJ,EAKrC;;AAAA,mDAJ0C,IAAIA,GAAJ,EAI1C;AAAE;;AAEjBC,EAAAA,qBAAqB,CAACC,OAAD,EAA0BC,MAA1B,EAA0C;AACpE,SAAKC,8BAAL,CAAoCF,OAAO,CAACG,MAAR,EAApC;;AAEA,QAAIF,MAAM,CAACG,OAAX,EAAoB;AAClB,YAAMA,OAAiB,GAAG,EAA1B;AACAH,MAAAA,MAAM,CAACG,OAAP,CAAeC,OAAf,CAAwBC,YAAD,IAAiC;AACtD;AACA,YAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;AACpCF,UAAAA,OAAO,CAACG,IAAR,CAAaD,YAAb;AACD,SAFD,MAEO;AACL;AACAF,UAAAA,OAAO,CAACG,IAAR,CAAaD,YAAY,CAACE,UAA1B;AACD;AACF,OARD;AAUA,WAAKC,gBAAL,CAAsBC,GAAtB,CAA0BV,OAAO,CAACG,MAAR,EAA1B,EAA4CC,OAA5C;AACD;;AAED,QAAIH,MAAM,CAACU,oBAAX,EAAiC;AAC/B,YAAMA,oBAA8B,GAAG,EAAvC;AACAV,MAAAA,MAAM,CAACU,oBAAP,CAA4BN,OAA5B,CAAqCC,YAAD,IAAiC;AACnE,YAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;AACpCK,UAAAA,oBAAoB,CAACJ,IAArB,CAA0BD,YAA1B;AACD,SAFD,MAEO;AACLK,UAAAA,oBAAoB,CAACJ,IAArB,CAA0BD,YAAY,CAACE,UAAvC;AACD;AACF,OAND;AAQA,WAAKI,qBAAL,CAA2BF,GAA3B,CAA+BV,OAAO,CAACG,MAAR,EAA/B,EAAiDQ,oBAAjD;AACD;AACF;;AAEME,EAAAA,2BAA2B,CAChCb,OADgC,EAEhCM,YAFgC,EAGvB;AACT,UAAMF,OAA6B,GAAG,KAAKK,gBAAL,CAAsBK,GAAtB,CACpCd,OAAO,CAACG,MAAR,EADoC,CAAtC;;AAGA,QAAI,CAACC,OAAL,EAAc;AACZ,aAAO,KAAP;AACD;;AAED,QAAIW,UAAU,GAAG,KAAjB;AAEAX,IAAAA,OAAO,CAACC,OAAR,CAAiBW,GAAD,IAAuB;AACrC,UAAIA,GAAG,KAAKV,YAAY,CAACH,MAAb,EAAZ,EAAmC;AACjCY,QAAAA,UAAU,GAAG,IAAb;AACA,eAFiC,CAEzB;AACT;AACF,KALD;AAOA,WAAOA,UAAP;AACD;;AAEME,EAAAA,6BAA6B,CAClCjB,OADkC,EAElCM,YAFkC,EAGzB;AACT,UAAMK,oBAA0C,GAC9C,KAAKC,qBAAL,CAA2BE,GAA3B,CAA+Bd,OAAO,CAACG,MAAR,EAA/B,CADF;;AAEA,QAAI,CAACQ,oBAAL,EAA2B;AACzB,aAAO,KAAP;AACD;;AAED,QAAIM,6BAA6B,GAAG,KAApC;AAEAN,IAAAA,oBAAoB,CAACN,OAArB,CAA8BW,GAAD,IAAuB;AAClD,UAAIA,GAAG,KAAKV,YAAY,CAACH,MAAb,EAAZ,EAAmC;AACjCc,QAAAA,6BAA6B,GAAG,IAAhC;AACA;AACD;AACF,KALD;AAOA,WAAOA,6BAAP;AACD;;AAEMC,EAAAA,oCAAoC,CACzCC,QADyC,EAEzCC,aAFyC,EAGhC;AACT;AACA,WAAO,KAAP;AACD;;AAEMC,EAAAA,0BAA0B,CAC/BF,QAD+B,EAE/BC,aAF+B,EAGtB;AACT;AACA,WAAO,KAAP;AACD;;AAEMlB,EAAAA,8BAA8B,CAACM,UAAD,EAA2B;AAC9D,SAAKC,gBAAL,CAAsBa,MAAtB,CAA6Bd,UAA7B;AACA,SAAKI,qBAAL,CAA2BU,MAA3B,CAAkCd,UAAlC;AACD;;AAEMe,EAAAA,KAAK,GAAG;AACb,SAAKd,gBAAL,CAAsBe,KAAtB;AACA,SAAKZ,qBAAL,CAA2BY,KAA3B;AACD;;AAEwB,SAAXC,WAAW,GAAuB;AAC9C,QAAI,CAAC,KAAKC,QAAV,EAAoB;AAClB,WAAKA,QAAL,GAAgB,IAAI9B,kBAAJ,EAAhB;AACD;;AAED,WAAO,KAAK8B,QAAZ;AACD;;AAtHqC;;gBAAnB9B,kB","sourcesContent":["import GestureHandler from '../handlers/GestureHandler';\nimport { Config, Handler } from '../interfaces';\n\nexport default class InteractionManager {\n private static instance: InteractionManager;\n private readonly waitForRelations: Map<number, number[]> = new Map();\n private readonly simultaneousRelations: Map<number, number[]> = new Map();\n\n // Private becaues of singleton\n // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function\n private constructor() {}\n\n public configureInteractions(handler: GestureHandler, config: Config) {\n this.dropRelationsForHandlerWithTag(handler.getTag());\n\n if (config.waitFor) {\n const waitFor: number[] = [];\n config.waitFor.forEach((otherHandler: Handler): void => {\n // New API reference\n if (typeof otherHandler === 'number') {\n waitFor.push(otherHandler);\n } else {\n // Old API reference\n waitFor.push(otherHandler.handlerTag);\n }\n });\n\n this.waitForRelations.set(handler.getTag(), waitFor);\n }\n\n if (config.simultaneousHandlers) {\n const simultaneousHandlers: number[] = [];\n config.simultaneousHandlers.forEach((otherHandler: Handler): void => {\n if (typeof otherHandler === 'number') {\n simultaneousHandlers.push(otherHandler);\n } else {\n simultaneousHandlers.push(otherHandler.handlerTag);\n }\n });\n\n this.simultaneousRelations.set(handler.getTag(), simultaneousHandlers);\n }\n }\n\n public shouldWaitForHandlerFailure(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n const waitFor: number[] | undefined = this.waitForRelations.get(\n handler.getTag()\n );\n if (!waitFor) {\n return false;\n }\n\n let shouldWait = false;\n\n waitFor.forEach((tag: number): void => {\n if (tag === otherHandler.getTag()) {\n shouldWait = true;\n return; //Returns from callback\n }\n });\n\n return shouldWait;\n }\n\n public shouldRecognizeSimultaneously(\n handler: GestureHandler,\n otherHandler: GestureHandler\n ): boolean {\n const simultaneousHandlers: number[] | undefined =\n this.simultaneousRelations.get(handler.getTag());\n if (!simultaneousHandlers) {\n return false;\n }\n\n let shouldRecognizeSimultaneously = false;\n\n simultaneousHandlers.forEach((tag: number): void => {\n if (tag === otherHandler.getTag()) {\n shouldRecognizeSimultaneously = true;\n return;\n }\n });\n\n return shouldRecognizeSimultaneously;\n }\n\n public shouldRequireHandlerToWaitForFailure(\n _handler: GestureHandler,\n _otherHandler: GestureHandler\n ): boolean {\n //TODO: Implement logic\n return false;\n }\n\n public shouldHandlerBeCancelledBy(\n _handler: GestureHandler,\n _otherHandler: GestureHandler\n ): boolean {\n //TODO: Implement logic\n return false;\n }\n\n public dropRelationsForHandlerWithTag(handlerTag: number): void {\n this.waitForRelations.delete(handlerTag);\n this.simultaneousRelations.delete(handlerTag);\n }\n\n public reset() {\n this.waitForRelations.clear();\n this.simultaneousRelations.clear();\n }\n\n public static getInstance(): InteractionManager {\n if (!this.instance) {\n this.instance = new InteractionManager();\n }\n\n return this.instance;\n }\n}\n"]}