react-native-gesture-handler 2.22.1 → 2.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/RNGestureHandler.podspec +8 -0
  2. package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +14 -0
  3. package/android/src/main/jni/cpp-adapter.cpp +19 -12
  4. package/apple/RNGestureHandler.mm +15 -8
  5. package/apple/RNGestureHandlerButton.mm +12 -2
  6. package/apple/RNGestureHandlerModule.mm +17 -5
  7. package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
  8. package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
  9. package/lib/commonjs/components/DrawerLayout.js +6 -0
  10. package/lib/commonjs/components/DrawerLayout.js.map +1 -1
  11. package/lib/commonjs/components/GestureButtons.js +11 -2
  12. package/lib/commonjs/components/GestureButtons.js.map +1 -1
  13. package/lib/commonjs/components/Pressable/Pressable.js +21 -5
  14. package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
  15. package/lib/commonjs/components/Pressable/index.js.map +1 -1
  16. package/lib/commonjs/components/ReanimatedSwipeable.js +49 -20
  17. package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -1
  18. package/lib/commonjs/components/Text.js +10 -4
  19. package/lib/commonjs/components/Text.js.map +1 -1
  20. package/lib/commonjs/components/touchables/TouchableHighlight.js +2 -0
  21. package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
  22. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +2 -0
  23. package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
  24. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +5 -1
  25. package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +1 -1
  26. package/lib/commonjs/components/touchables/TouchableOpacity.js +2 -0
  27. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
  28. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +3 -0
  29. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  30. package/lib/commonjs/findNodeHandle.web.js +9 -1
  31. package/lib/commonjs/findNodeHandle.web.js.map +1 -1
  32. package/lib/commonjs/handlers/FlingGestureHandler.js +8 -0
  33. package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
  34. package/lib/commonjs/handlers/ForceTouchGestureHandler.js +5 -1
  35. package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
  36. package/lib/commonjs/handlers/LongPressGestureHandler.js +8 -0
  37. package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
  38. package/lib/commonjs/handlers/NativeViewGestureHandler.js +8 -0
  39. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
  40. package/lib/commonjs/handlers/PanGestureHandler.js +8 -0
  41. package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
  42. package/lib/commonjs/handlers/PinchGestureHandler.js +8 -0
  43. package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
  44. package/lib/commonjs/handlers/RotationGestureHandler.js +8 -0
  45. package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
  46. package/lib/commonjs/handlers/TapGestureHandler.js +8 -0
  47. package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
  48. package/lib/commonjs/handlers/createHandler.js +6 -2
  49. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  50. package/lib/commonjs/handlers/gestures/GestureDetector/index.js +1 -1
  51. package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
  52. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +2 -2
  53. package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
  54. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +1 -1
  55. package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
  56. package/lib/commonjs/handlers/handlersRegistry.js +7 -2
  57. package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
  58. package/lib/commonjs/index.js.map +1 -1
  59. package/lib/commonjs/utils.js +3 -3
  60. package/lib/commonjs/utils.js.map +1 -1
  61. package/lib/commonjs/web/detectors/RotationGestureDetector.js +22 -22
  62. package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
  63. package/lib/commonjs/web/detectors/ScaleGestureDetector.js +24 -24
  64. package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
  65. package/lib/commonjs/web/handlers/FlingGestureHandler.js +6 -6
  66. package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
  67. package/lib/commonjs/web/handlers/GestureHandler.js +112 -92
  68. package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
  69. package/lib/commonjs/web/handlers/HoverGestureHandler.js +2 -2
  70. package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -1
  71. package/lib/commonjs/web/handlers/LongPressGestureHandler.js +6 -6
  72. package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
  73. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +13 -13
  74. package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
  75. package/lib/commonjs/web/handlers/PanGestureHandler.js +15 -15
  76. package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
  77. package/lib/commonjs/web/handlers/PinchGestureHandler.js +15 -15
  78. package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
  79. package/lib/commonjs/web/handlers/RotationGestureHandler.js +12 -12
  80. package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
  81. package/lib/commonjs/web/handlers/TapGestureHandler.js +4 -4
  82. package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
  83. package/lib/commonjs/web/tools/CircularBuffer.js +15 -15
  84. package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -1
  85. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +40 -40
  86. package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  87. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +32 -13
  88. package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  89. package/lib/commonjs/web/tools/InteractionManager.js +16 -18
  90. package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
  91. package/lib/commonjs/web/tools/NodeManager.js +2 -2
  92. package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
  93. package/lib/commonjs/web/tools/PointerTracker.js +18 -18
  94. package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
  95. package/lib/commonjs/web/tools/Vector.js.map +1 -1
  96. package/lib/commonjs/web/tools/VelocityTracker.js +1 -1
  97. package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -1
  98. package/lib/module/RNGestureHandlerModule.web.js +2 -2
  99. package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
  100. package/lib/module/components/DrawerLayout.js +7 -0
  101. package/lib/module/components/DrawerLayout.js.map +1 -1
  102. package/lib/module/components/GestureButtons.js +10 -2
  103. package/lib/module/components/GestureButtons.js.map +1 -1
  104. package/lib/module/components/Pressable/Pressable.js +22 -6
  105. package/lib/module/components/Pressable/Pressable.js.map +1 -1
  106. package/lib/module/components/Pressable/index.js.map +1 -1
  107. package/lib/module/components/ReanimatedSwipeable.js +49 -20
  108. package/lib/module/components/ReanimatedSwipeable.js.map +1 -1
  109. package/lib/module/components/Text.js +8 -3
  110. package/lib/module/components/Text.js.map +1 -1
  111. package/lib/module/components/touchables/TouchableHighlight.js +2 -0
  112. package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
  113. package/lib/module/components/touchables/TouchableNativeFeedback.android.js +2 -0
  114. package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
  115. package/lib/module/components/touchables/TouchableNativeFeedback.js +6 -1
  116. package/lib/module/components/touchables/TouchableNativeFeedback.js.map +1 -1
  117. package/lib/module/components/touchables/TouchableOpacity.js +5 -0
  118. package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
  119. package/lib/module/components/touchables/TouchableWithoutFeedback.js +4 -0
  120. package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
  121. package/lib/module/findNodeHandle.web.js +8 -1
  122. package/lib/module/findNodeHandle.web.js.map +1 -1
  123. package/lib/module/handlers/FlingGestureHandler.js +7 -0
  124. package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
  125. package/lib/module/handlers/ForceTouchGestureHandler.js +5 -1
  126. package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
  127. package/lib/module/handlers/LongPressGestureHandler.js +7 -0
  128. package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
  129. package/lib/module/handlers/NativeViewGestureHandler.js +7 -0
  130. package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
  131. package/lib/module/handlers/PanGestureHandler.js +7 -0
  132. package/lib/module/handlers/PanGestureHandler.js.map +1 -1
  133. package/lib/module/handlers/PinchGestureHandler.js +11 -0
  134. package/lib/module/handlers/PinchGestureHandler.js.map +1 -1
  135. package/lib/module/handlers/RotationGestureHandler.js +11 -0
  136. package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
  137. package/lib/module/handlers/TapGestureHandler.js +7 -0
  138. package/lib/module/handlers/TapGestureHandler.js.map +1 -1
  139. package/lib/module/handlers/createHandler.js +9 -4
  140. package/lib/module/handlers/createHandler.js.map +1 -1
  141. package/lib/module/handlers/gestures/GestureDetector/index.js +2 -2
  142. package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
  143. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +2 -2
  144. package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
  145. package/lib/module/handlers/gestures/GestureDetector/utils.js +2 -2
  146. package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
  147. package/lib/module/handlers/handlersRegistry.js +6 -3
  148. package/lib/module/handlers/handlersRegistry.js.map +1 -1
  149. package/lib/module/index.js.map +1 -1
  150. package/lib/module/utils.js +2 -2
  151. package/lib/module/utils.js.map +1 -1
  152. package/lib/module/web/detectors/RotationGestureDetector.js +22 -22
  153. package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
  154. package/lib/module/web/detectors/ScaleGestureDetector.js +24 -24
  155. package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
  156. package/lib/module/web/handlers/FlingGestureHandler.js +6 -6
  157. package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
  158. package/lib/module/web/handlers/GestureHandler.js +112 -92
  159. package/lib/module/web/handlers/GestureHandler.js.map +1 -1
  160. package/lib/module/web/handlers/HoverGestureHandler.js +2 -2
  161. package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -1
  162. package/lib/module/web/handlers/LongPressGestureHandler.js +6 -6
  163. package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
  164. package/lib/module/web/handlers/NativeViewGestureHandler.js +13 -13
  165. package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
  166. package/lib/module/web/handlers/PanGestureHandler.js +15 -15
  167. package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
  168. package/lib/module/web/handlers/PinchGestureHandler.js +15 -15
  169. package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
  170. package/lib/module/web/handlers/RotationGestureHandler.js +12 -12
  171. package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
  172. package/lib/module/web/handlers/TapGestureHandler.js +4 -4
  173. package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
  174. package/lib/module/web/tools/CircularBuffer.js +15 -15
  175. package/lib/module/web/tools/CircularBuffer.js.map +1 -1
  176. package/lib/module/web/tools/GestureHandlerOrchestrator.js +40 -40
  177. package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
  178. package/lib/module/web/tools/GestureHandlerWebDelegate.js +32 -13
  179. package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
  180. package/lib/module/web/tools/InteractionManager.js +16 -16
  181. package/lib/module/web/tools/InteractionManager.js.map +1 -1
  182. package/lib/module/web/tools/NodeManager.js +2 -2
  183. package/lib/module/web/tools/NodeManager.js.map +1 -1
  184. package/lib/module/web/tools/PointerTracker.js +18 -18
  185. package/lib/module/web/tools/PointerTracker.js.map +1 -1
  186. package/lib/module/web/tools/Vector.js.map +1 -1
  187. package/lib/module/web/tools/VelocityTracker.js +1 -1
  188. package/lib/module/web/tools/VelocityTracker.js.map +1 -1
  189. package/lib/typescript/components/DrawerLayout.d.ts +27 -0
  190. package/lib/typescript/components/GestureButtonsProps.d.ts +18 -2
  191. package/lib/typescript/components/Pressable/PressableProps.d.ts +3 -10
  192. package/lib/typescript/components/Pressable/index.d.ts +1 -1
  193. package/lib/typescript/components/ReanimatedSwipeable.d.ts +6 -0
  194. package/lib/typescript/components/touchables/TouchableHighlight.d.ts +5 -0
  195. package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +2 -0
  196. package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +5 -1
  197. package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +3 -0
  198. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +5 -0
  199. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +6 -0
  200. package/lib/typescript/handlers/FlingGestureHandler.d.ts +9 -0
  201. package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +9 -0
  202. package/lib/typescript/handlers/LongPressGestureHandler.d.ts +9 -0
  203. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +9 -0
  204. package/lib/typescript/handlers/PanGestureHandler.d.ts +9 -0
  205. package/lib/typescript/handlers/PinchGestureHandler.d.ts +9 -0
  206. package/lib/typescript/handlers/RotationGestureHandler.d.ts +9 -0
  207. package/lib/typescript/handlers/TapGestureHandler.d.ts +9 -0
  208. package/lib/typescript/handlers/handlersRegistry.d.ts +1 -0
  209. package/lib/typescript/index.d.ts +1 -1
  210. package/lib/typescript/utils.d.ts +1 -1
  211. package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +7 -7
  212. package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +8 -8
  213. package/lib/typescript/web/handlers/GestureHandler.d.ts +33 -28
  214. package/lib/typescript/web/handlers/IGestureHandler.d.ts +12 -13
  215. package/lib/typescript/web/tools/CircularBuffer.d.ts +3 -3
  216. package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +1 -1
  217. package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +2 -2
  218. package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +3 -2
  219. package/lib/typescript/web/tools/InteractionManager.d.ts +2 -2
  220. package/lib/typescript/web/tools/NodeManager.d.ts +1 -1
  221. package/lib/typescript/web/tools/PointerTracker.d.ts +4 -4
  222. package/lib/typescript/web/tools/VelocityTracker.d.ts +1 -1
  223. package/package.json +2 -2
  224. package/src/RNGestureHandlerModule.web.ts +2 -2
  225. package/src/components/DrawerLayout.tsx +29 -0
  226. package/src/components/GestureButtons.tsx +13 -2
  227. package/src/components/GestureButtonsProps.ts +31 -2
  228. package/src/components/Pressable/Pressable.tsx +22 -5
  229. package/src/components/Pressable/PressableProps.tsx +4 -11
  230. package/src/components/Pressable/index.ts +4 -1
  231. package/src/components/ReanimatedSwipeable.tsx +97 -66
  232. package/src/components/Text.tsx +13 -4
  233. package/src/components/touchables/TouchableHighlight.tsx +5 -0
  234. package/src/components/touchables/TouchableNativeFeedback.android.tsx +2 -0
  235. package/src/components/touchables/TouchableNativeFeedback.tsx +6 -1
  236. package/src/components/touchables/TouchableNativeFeedbackProps.tsx +3 -0
  237. package/src/components/touchables/TouchableOpacity.tsx +5 -0
  238. package/src/components/touchables/TouchableWithoutFeedback.tsx +6 -0
  239. package/src/findNodeHandle.web.ts +6 -0
  240. package/src/handlers/FlingGestureHandler.ts +10 -0
  241. package/src/handlers/ForceTouchGestureHandler.ts +9 -0
  242. package/src/handlers/LongPressGestureHandler.ts +10 -0
  243. package/src/handlers/NativeViewGestureHandler.ts +10 -0
  244. package/src/handlers/PanGestureHandler.ts +10 -0
  245. package/src/handlers/PinchGestureHandler.ts +10 -0
  246. package/src/handlers/RotationGestureHandler.ts +10 -0
  247. package/src/handlers/TapGestureHandler.ts +10 -0
  248. package/src/handlers/createHandler.tsx +11 -4
  249. package/src/handlers/gestures/GestureDetector/index.tsx +2 -2
  250. package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +3 -3
  251. package/src/handlers/gestures/GestureDetector/utils.ts +2 -2
  252. package/src/handlers/handlersRegistry.ts +7 -3
  253. package/src/index.ts +4 -1
  254. package/src/utils.ts +2 -2
  255. package/src/web/detectors/RotationGestureDetector.ts +22 -22
  256. package/src/web/detectors/ScaleGestureDetector.ts +24 -24
  257. package/src/web/handlers/FlingGestureHandler.ts +6 -7
  258. package/src/web/handlers/GestureHandler.ts +115 -105
  259. package/src/web/handlers/HoverGestureHandler.ts +2 -2
  260. package/src/web/handlers/IGestureHandler.ts +12 -13
  261. package/src/web/handlers/LongPressGestureHandler.ts +7 -7
  262. package/src/web/handlers/NativeViewGestureHandler.ts +14 -19
  263. package/src/web/handlers/PanGestureHandler.ts +17 -17
  264. package/src/web/handlers/PinchGestureHandler.ts +17 -21
  265. package/src/web/handlers/RotationGestureHandler.ts +12 -12
  266. package/src/web/handlers/TapGestureHandler.ts +4 -6
  267. package/src/web/tools/CircularBuffer.ts +15 -15
  268. package/src/web/tools/GestureHandlerDelegate.ts +1 -1
  269. package/src/web/tools/GestureHandlerOrchestrator.ts +42 -42
  270. package/src/web/tools/GestureHandlerWebDelegate.ts +32 -13
  271. package/src/web/tools/InteractionManager.ts +16 -16
  272. package/src/web/tools/NodeManager.ts +2 -2
  273. package/src/web/tools/PointerTracker.ts +20 -20
  274. package/src/web/tools/Vector.ts +1 -1
  275. package/src/web/tools/VelocityTracker.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["FlingGestureHandler.ts"],"names":["State","DiagonalDirections","Directions","GestureHandler","Vector","coneToDeviation","DEFAULT_MAX_DURATION_MS","DEFAULT_MIN_VELOCITY","DEFAULT_ALIGNMENT_CONE","DEFAULT_DIRECTION","RIGHT","DEFAULT_NUMBER_OF_TOUCHES_REQUIRED","AXIAL_DEVIATION_COSINE","DIAGONAL_DEVIATION_COSINE","FlingGestureHandler","NaN","updateGestureConfig","enabled","props","config","direction","numberOfPointers","numberOfPointersRequired","startFling","begin","maxNumberOfPointersSimultaneously","delayTimeout","setTimeout","fail","maxDurationMs","tryEndFling","velocityVector","fromVelocity","tracker","keyPointer","getAlignment","minimalAlignmentCosine","isSimilar","fromDirection","axialDirectionsList","Object","values","diagonalDirectionsList","axialAlignmentList","map","diagonalAlignmentList","isAligned","some","Boolean","isFast","magnitude","minVelocity","clearTimeout","activate","endFling","onPointerDown","event","isButtonInConfig","button","addToTracker","pointerId","newPointerAction","tryToSendTouchEvent","onPointerAdd","currentState","UNDETERMINED","BEGAN","getTrackedPointersCount","pointerMoveAction","track","onPointerMove","onPointerOutOfBounds","onPointerUp","onUp","onPointerRemove","removeFromTracker","force","end","resetConfig"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { DiagonalDirections, Directions } from '../../Directions';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nimport Vector from '../tools/Vector';\nimport { coneToDeviation } from '../utils';\n\nconst DEFAULT_MAX_DURATION_MS = 800;\nconst DEFAULT_MIN_VELOCITY = 700;\nconst DEFAULT_ALIGNMENT_CONE = 30;\nconst DEFAULT_DIRECTION = Directions.RIGHT;\nconst DEFAULT_NUMBER_OF_TOUCHES_REQUIRED = 1;\n\nconst AXIAL_DEVIATION_COSINE = coneToDeviation(DEFAULT_ALIGNMENT_CONE);\nconst DIAGONAL_DEVIATION_COSINE = coneToDeviation(90 - DEFAULT_ALIGNMENT_CONE);\n\nexport default class FlingGestureHandler extends GestureHandler {\n private numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n private direction: Directions = DEFAULT_DIRECTION;\n\n private maxDurationMs = DEFAULT_MAX_DURATION_MS;\n private minVelocity = DEFAULT_MIN_VELOCITY;\n private delayTimeout!: number;\n\n private maxNumberOfPointersSimultaneously = 0;\n private keyPointer = NaN;\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n if (this.config.direction) {\n this.direction = this.config.direction;\n }\n\n if (this.config.numberOfPointers) {\n this.numberOfPointersRequired = this.config.numberOfPointers;\n }\n }\n\n private startFling(): void {\n this.begin();\n\n this.maxNumberOfPointersSimultaneously = 1;\n\n this.delayTimeout = setTimeout(() => this.fail(), this.maxDurationMs);\n }\n\n private tryEndFling(): boolean {\n const velocityVector = Vector.fromVelocity(this.tracker, this.keyPointer);\n\n const getAlignment = (\n direction: Directions | DiagonalDirections,\n minimalAlignmentCosine: number\n ) => {\n return (\n (direction & this.direction) === direction &&\n velocityVector.isSimilar(\n Vector.fromDirection(direction),\n minimalAlignmentCosine\n )\n );\n };\n\n const axialDirectionsList = Object.values(Directions);\n const diagonalDirectionsList = Object.values(DiagonalDirections);\n\n // List of alignments to all activated directions\n const axialAlignmentList = axialDirectionsList.map((direction) =>\n getAlignment(direction, AXIAL_DEVIATION_COSINE)\n );\n\n const diagonalAlignmentList = diagonalDirectionsList.map((direction) =>\n getAlignment(direction, DIAGONAL_DEVIATION_COSINE)\n );\n\n const isAligned =\n axialAlignmentList.some(Boolean) || diagonalAlignmentList.some(Boolean);\n\n const isFast = velocityVector.magnitude > this.minVelocity;\n\n if (\n this.maxNumberOfPointersSimultaneously ===\n this.numberOfPointersRequired &&\n isAligned &&\n isFast\n ) {\n clearTimeout(this.delayTimeout);\n this.activate();\n\n return true;\n }\n\n return false;\n }\n\n private endFling() {\n if (!this.tryEndFling()) {\n this.fail();\n }\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n if (!this.isButtonInConfig(event.button)) {\n return;\n }\n\n this.tracker.addToTracker(event);\n this.keyPointer = event.pointerId;\n\n super.onPointerDown(event);\n this.newPointerAction();\n\n this.tryToSendTouchEvent(event);\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 if (this.currentState === State.UNDETERMINED) {\n this.startFling();\n }\n\n if (this.currentState !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling();\n\n if (\n this.tracker.getTrackedPointersCount() >\n this.maxNumberOfPointersSimultaneously\n ) {\n this.maxNumberOfPointersSimultaneously =\n this.tracker.getTrackedPointersCount();\n }\n }\n\n private pointerMoveAction(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n if (this.currentState !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling();\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.pointerMoveAction(event);\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.pointerMoveAction(event);\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.onUp(event);\n\n this.keyPointer = NaN;\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 if (this.currentState === State.BEGAN) {\n this.endFling();\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n public activate(force?: boolean): void {\n super.activate(force);\n this.end();\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n this.numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n this.direction = DEFAULT_DIRECTION;\n }\n}\n"]}
1
+ {"version":3,"sources":["FlingGestureHandler.ts"],"names":["State","DiagonalDirections","Directions","GestureHandler","Vector","coneToDeviation","DEFAULT_MAX_DURATION_MS","DEFAULT_MIN_VELOCITY","DEFAULT_ALIGNMENT_CONE","DEFAULT_DIRECTION","RIGHT","DEFAULT_NUMBER_OF_TOUCHES_REQUIRED","AXIAL_DEVIATION_COSINE","DIAGONAL_DEVIATION_COSINE","FlingGestureHandler","NaN","updateGestureConfig","enabled","props","config","direction","numberOfPointers","numberOfPointersRequired","startFling","begin","maxNumberOfPointersSimultaneously","delayTimeout","setTimeout","fail","maxDurationMs","tryEndFling","velocityVector","fromVelocity","tracker","keyPointer","getAlignment","minimalAlignmentCosine","isSimilar","fromDirection","axialDirectionsList","Object","values","diagonalDirectionsList","axialAlignmentList","map","diagonalAlignmentList","isAligned","some","Boolean","isFast","magnitude","minVelocity","clearTimeout","activate","endFling","onPointerDown","event","isButtonInConfig","button","addToTracker","pointerId","newPointerAction","tryToSendTouchEvent","onPointerAdd","state","UNDETERMINED","BEGAN","trackedPointersCount","pointerMoveAction","track","onPointerMove","onPointerOutOfBounds","onPointerUp","onUp","onPointerRemove","removeFromTracker","force","end","resetConfig"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { DiagonalDirections, Directions } from '../../Directions';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nimport Vector from '../tools/Vector';\nimport { coneToDeviation } from '../utils';\n\nconst DEFAULT_MAX_DURATION_MS = 800;\nconst DEFAULT_MIN_VELOCITY = 700;\nconst DEFAULT_ALIGNMENT_CONE = 30;\nconst DEFAULT_DIRECTION = Directions.RIGHT;\nconst DEFAULT_NUMBER_OF_TOUCHES_REQUIRED = 1;\n\nconst AXIAL_DEVIATION_COSINE = coneToDeviation(DEFAULT_ALIGNMENT_CONE);\nconst DIAGONAL_DEVIATION_COSINE = coneToDeviation(90 - DEFAULT_ALIGNMENT_CONE);\n\nexport default class FlingGestureHandler extends GestureHandler {\n private numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n private direction: Directions = DEFAULT_DIRECTION;\n\n private maxDurationMs = DEFAULT_MAX_DURATION_MS;\n private minVelocity = DEFAULT_MIN_VELOCITY;\n private delayTimeout!: number;\n\n private maxNumberOfPointersSimultaneously = 0;\n private keyPointer = NaN;\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n if (this.config.direction) {\n this.direction = this.config.direction;\n }\n\n if (this.config.numberOfPointers) {\n this.numberOfPointersRequired = this.config.numberOfPointers;\n }\n }\n\n private startFling(): void {\n this.begin();\n\n this.maxNumberOfPointersSimultaneously = 1;\n\n this.delayTimeout = setTimeout(() => this.fail(), this.maxDurationMs);\n }\n\n private tryEndFling(): boolean {\n const velocityVector = Vector.fromVelocity(this.tracker, this.keyPointer);\n\n const getAlignment = (\n direction: Directions | DiagonalDirections,\n minimalAlignmentCosine: number\n ) => {\n return (\n (direction & this.direction) === direction &&\n velocityVector.isSimilar(\n Vector.fromDirection(direction),\n minimalAlignmentCosine\n )\n );\n };\n\n const axialDirectionsList = Object.values(Directions);\n const diagonalDirectionsList = Object.values(DiagonalDirections);\n\n // List of alignments to all activated directions\n const axialAlignmentList = axialDirectionsList.map((direction) =>\n getAlignment(direction, AXIAL_DEVIATION_COSINE)\n );\n\n const diagonalAlignmentList = diagonalDirectionsList.map((direction) =>\n getAlignment(direction, DIAGONAL_DEVIATION_COSINE)\n );\n\n const isAligned =\n axialAlignmentList.some(Boolean) || diagonalAlignmentList.some(Boolean);\n\n const isFast = velocityVector.magnitude > this.minVelocity;\n\n if (\n this.maxNumberOfPointersSimultaneously ===\n this.numberOfPointersRequired &&\n isAligned &&\n isFast\n ) {\n clearTimeout(this.delayTimeout);\n this.activate();\n\n return true;\n }\n\n return false;\n }\n\n private endFling() {\n if (!this.tryEndFling()) {\n this.fail();\n }\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n if (!this.isButtonInConfig(event.button)) {\n return;\n }\n\n this.tracker.addToTracker(event);\n this.keyPointer = event.pointerId;\n\n super.onPointerDown(event);\n this.newPointerAction();\n\n this.tryToSendTouchEvent(event);\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 if (this.state === State.UNDETERMINED) {\n this.startFling();\n }\n\n if (this.state !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling();\n\n if (\n this.tracker.trackedPointersCount > this.maxNumberOfPointersSimultaneously\n ) {\n this.maxNumberOfPointersSimultaneously =\n this.tracker.trackedPointersCount;\n }\n }\n\n private pointerMoveAction(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n if (this.state !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling();\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.pointerMoveAction(event);\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.pointerMoveAction(event);\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.onUp(event);\n\n this.keyPointer = NaN;\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 if (this.state === State.BEGAN) {\n this.endFling();\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n public activate(force?: boolean): void {\n super.activate(force);\n this.end();\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n this.numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n this.direction = DEFAULT_DIRECTION;\n }\n}\n"]}
@@ -13,37 +13,37 @@ export default class GestureHandler {
13
13
  constructor(delegate) {
14
14
  _defineProperty(this, "lastSentState", null);
15
15
 
16
- _defineProperty(this, "currentState", State.UNDETERMINED);
16
+ _defineProperty(this, "_state", State.UNDETERMINED);
17
17
 
18
- _defineProperty(this, "shouldCancelWhenOutside", false);
18
+ _defineProperty(this, "_shouldCancelWhenOutside", false);
19
19
 
20
20
  _defineProperty(this, "hasCustomActivationCriteria", false);
21
21
 
22
- _defineProperty(this, "enabled", false);
22
+ _defineProperty(this, "_enabled", false);
23
23
 
24
24
  _defineProperty(this, "viewRef", void 0);
25
25
 
26
26
  _defineProperty(this, "propsRef", void 0);
27
27
 
28
- _defineProperty(this, "handlerTag", void 0);
28
+ _defineProperty(this, "_handlerTag", void 0);
29
29
 
30
- _defineProperty(this, "config", {
30
+ _defineProperty(this, "_config", {
31
31
  enabled: false
32
32
  });
33
33
 
34
- _defineProperty(this, "tracker", new PointerTracker());
34
+ _defineProperty(this, "_tracker", new PointerTracker());
35
35
 
36
- _defineProperty(this, "activationIndex", 0);
36
+ _defineProperty(this, "_activationIndex", 0);
37
37
 
38
- _defineProperty(this, "awaiting", false);
38
+ _defineProperty(this, "_awaiting", false);
39
39
 
40
- _defineProperty(this, "active", false);
40
+ _defineProperty(this, "_active", false);
41
41
 
42
- _defineProperty(this, "shouldResetProgress", false);
42
+ _defineProperty(this, "_shouldResetProgress", false);
43
43
 
44
- _defineProperty(this, "pointerType", PointerType.MOUSE);
44
+ _defineProperty(this, "_pointerType", PointerType.MOUSE);
45
45
 
46
- _defineProperty(this, "delegate", void 0);
46
+ _defineProperty(this, "_delegate", void 0);
47
47
 
48
48
  _defineProperty(this, "sendEvent", (newState, oldState) => {
49
49
  const {
@@ -60,13 +60,13 @@ export default class GestureHandler {
60
60
  invokeNullableMethod(onGestureHandlerStateChange, resultEvent);
61
61
  }
62
62
 
63
- if (this.currentState === State.ACTIVE) {
63
+ if (this.state === State.ACTIVE) {
64
64
  resultEvent.nativeEvent.oldState = undefined;
65
65
  invokeNullableMethod(onGestureHandlerEvent, resultEvent);
66
66
  }
67
67
  });
68
68
 
69
- this.delegate = delegate;
69
+ this._delegate = delegate;
70
70
  } //
71
71
  // Initializing handler
72
72
  //
@@ -75,7 +75,7 @@ export default class GestureHandler {
75
75
  init(viewRef, propsRef) {
76
76
  this.propsRef = propsRef;
77
77
  this.viewRef = viewRef;
78
- this.currentState = State.UNDETERMINED;
78
+ this.state = State.UNDETERMINED;
79
79
  this.delegate.init(viewRef, this);
80
80
  }
81
81
 
@@ -109,29 +109,29 @@ export default class GestureHandler {
109
109
  this.onReset();
110
110
  this.resetProgress();
111
111
  this.delegate.reset();
112
- this.currentState = State.UNDETERMINED;
112
+ this.state = State.UNDETERMINED;
113
113
  } //
114
114
  // State logic
115
115
  //
116
116
 
117
117
 
118
118
  moveToState(newState, sendIfDisabled) {
119
- if (this.currentState === newState) {
119
+ if (this.state === newState) {
120
120
  return;
121
121
  }
122
122
 
123
- const oldState = this.currentState;
124
- this.currentState = newState;
123
+ const oldState = this.state;
124
+ this.state = newState;
125
125
 
126
- if (this.tracker.getTrackedPointersCount() > 0 && this.config.needsPointerData && this.isFinished()) {
126
+ if (this.tracker.trackedPointersCount > 0 && this.config.needsPointerData && this.isFinished()) {
127
127
  this.cancelTouches();
128
128
  }
129
129
 
130
- GestureHandlerOrchestrator.getInstance().onHandlerStateChange(this, newState, oldState, sendIfDisabled);
130
+ GestureHandlerOrchestrator.instance.onHandlerStateChange(this, newState, oldState, sendIfDisabled);
131
131
  this.onStateChange(newState, oldState);
132
132
 
133
133
  if (!this.enabled && this.isFinished()) {
134
- this.currentState = State.UNDETERMINED;
134
+ this.state = State.UNDETERMINED;
135
135
  }
136
136
  }
137
137
 
@@ -142,7 +142,7 @@ export default class GestureHandler {
142
142
  return;
143
143
  }
144
144
 
145
- if (this.currentState === State.UNDETERMINED) {
145
+ if (this.state === State.UNDETERMINED) {
146
146
  this.moveToState(State.BEGAN);
147
147
  }
148
148
  }
@@ -152,7 +152,7 @@ export default class GestureHandler {
152
152
 
153
153
 
154
154
  fail(sendIfDisabled) {
155
- if (this.currentState === State.ACTIVE || this.currentState === State.BEGAN) {
155
+ if (this.state === State.ACTIVE || this.state === State.BEGAN) {
156
156
  // Here the order of calling the delegate and moveToState is important.
157
157
  // At this point we can use currentState as previuos state, because immediately after changing cursor we call moveToState method.
158
158
  this.delegate.onFail();
@@ -167,7 +167,7 @@ export default class GestureHandler {
167
167
 
168
168
 
169
169
  cancel(sendIfDisabled) {
170
- if (this.currentState === State.ACTIVE || this.currentState === State.UNDETERMINED || this.currentState === State.BEGAN) {
170
+ if (this.state === State.ACTIVE || this.state === State.UNDETERMINED || this.state === State.BEGAN) {
171
171
  this.onCancel(); // Same as above - order matters
172
172
 
173
173
  this.delegate.onCancel();
@@ -176,14 +176,14 @@ export default class GestureHandler {
176
176
  }
177
177
 
178
178
  activate(force = false) {
179
- if ((this.config.manualActivation !== true || force) && (this.currentState === State.UNDETERMINED || this.currentState === State.BEGAN)) {
179
+ if ((this.config.manualActivation !== true || force) && (this.state === State.UNDETERMINED || this.state === State.BEGAN)) {
180
180
  this.delegate.onActivate();
181
181
  this.moveToState(State.ACTIVE);
182
182
  }
183
183
  }
184
184
 
185
185
  end() {
186
- if (this.currentState === State.BEGAN || this.currentState === State.ACTIVE) {
186
+ if (this.state === State.BEGAN || this.state === State.ACTIVE) {
187
187
  // Same as above - order matters
188
188
  this.delegate.onEnd();
189
189
  this.moveToState(State.END);
@@ -195,22 +195,6 @@ export default class GestureHandler {
195
195
  //
196
196
 
197
197
 
198
- isAwaiting() {
199
- return this.awaiting;
200
- }
201
-
202
- setAwaiting(value) {
203
- this.awaiting = value;
204
- }
205
-
206
- isActive() {
207
- return this.active;
208
- }
209
-
210
- setActive(value) {
211
- this.active = value;
212
- }
213
-
214
198
  getShouldResetProgress() {
215
199
  return this.shouldResetProgress;
216
200
  }
@@ -219,20 +203,12 @@ export default class GestureHandler {
219
203
  this.shouldResetProgress = value;
220
204
  }
221
205
 
222
- getActivationIndex() {
223
- return this.activationIndex;
224
- }
225
-
226
- setActivationIndex(value) {
227
- this.activationIndex = value;
228
- }
229
-
230
206
  shouldWaitForHandlerFailure(handler) {
231
207
  if (handler === this) {
232
208
  return false;
233
209
  }
234
210
 
235
- return InteractionManager.getInstance().shouldWaitForHandlerFailure(this, handler);
211
+ return InteractionManager.instance.shouldWaitForHandlerFailure(this, handler);
236
212
  }
237
213
 
238
214
  shouldRequireToWaitForFailure(handler) {
@@ -240,7 +216,7 @@ export default class GestureHandler {
240
216
  return false;
241
217
  }
242
218
 
243
- return InteractionManager.getInstance().shouldRequireHandlerToWaitForFailure(this, handler);
219
+ return InteractionManager.instance.shouldRequireHandlerToWaitForFailure(this, handler);
244
220
  }
245
221
 
246
222
  shouldRecognizeSimultaneously(handler) {
@@ -248,7 +224,7 @@ export default class GestureHandler {
248
224
  return true;
249
225
  }
250
226
 
251
- return InteractionManager.getInstance().shouldRecognizeSimultaneously(this, handler);
227
+ return InteractionManager.instance.shouldRecognizeSimultaneously(this, handler);
252
228
  }
253
229
 
254
230
  shouldBeCancelledByOther(handler) {
@@ -256,18 +232,18 @@ export default class GestureHandler {
256
232
  return false;
257
233
  }
258
234
 
259
- return InteractionManager.getInstance().shouldHandlerBeCancelledBy(this, handler);
235
+ return InteractionManager.instance.shouldHandlerBeCancelledBy(this, handler);
260
236
  } //
261
237
  // Event actions
262
238
  //
263
239
 
264
240
 
265
241
  onPointerDown(event) {
266
- GestureHandlerOrchestrator.getInstance().recordHandlerIfNotPresent(this);
242
+ GestureHandlerOrchestrator.instance.recordHandlerIfNotPresent(this);
267
243
  this.pointerType = event.pointerType;
268
244
 
269
245
  if (this.pointerType === PointerType.TOUCH) {
270
- GestureHandlerOrchestrator.getInstance().cancelMouseAndPenGestures(this);
246
+ GestureHandlerOrchestrator.instance.cancelMouseAndPenGestures(this);
271
247
  } // TODO: Bring back touch events along with introducing `handleDown` method that will handle handler specific stuff
272
248
 
273
249
  } // Adding another pointer to existing ones
@@ -292,7 +268,7 @@ export default class GestureHandler {
292
268
 
293
269
  onPointerLeave(event) {
294
270
  if (this.shouldCancelWhenOutside) {
295
- switch (this.currentState) {
271
+ switch (this.state) {
296
272
  case State.ACTIVE:
297
273
  this.cancel();
298
274
  break;
@@ -337,7 +313,7 @@ export default class GestureHandler {
337
313
  }
338
314
 
339
315
  if (this.active) {
340
- this.sendEvent(this.currentState, this.currentState);
316
+ this.sendEvent(this.state, this.state);
341
317
  }
342
318
 
343
319
  this.tryToSendTouchEvent(event);
@@ -370,7 +346,7 @@ export default class GestureHandler {
370
346
  transformEventData(newState, oldState) {
371
347
  return {
372
348
  nativeEvent: {
373
- numberOfPointers: this.tracker.getTrackedPointersCount(),
349
+ numberOfPointers: this.tracker.trackedPointersCount,
374
350
  state: newState,
375
351
  pointerInside: this.delegate.isPointerInBounds(this.tracker.getAbsoluteCoordsAverage()),
376
352
  ...this.transformNativeEvent(),
@@ -387,7 +363,7 @@ export default class GestureHandler {
387
363
  const rect = this.delegate.measureView();
388
364
  const all = [];
389
365
  const changed = [];
390
- const trackerData = this.tracker.getData(); // This if handles edge case where all pointers have been cancelled
366
+ const trackerData = this.tracker.trackedPointers; // This if handles edge case where all pointers have been cancelled
391
367
  // When pointercancel is triggered, reset method is called. This means that tracker will be reset after first pointer being cancelled
392
368
  // The problem is, that handler will receive another pointercancel event from the rest of the pointers
393
369
  // To avoid crashing, we don't send event if tracker tracks no pointers, i.e. has been reset
@@ -463,7 +439,7 @@ export default class GestureHandler {
463
439
  return {
464
440
  nativeEvent: {
465
441
  handlerTag: this.handlerTag,
466
- state: this.currentState,
442
+ state: this.state,
467
443
  eventType: eventType,
468
444
  changedTouches: changed,
469
445
  allTouches: all,
@@ -478,7 +454,7 @@ export default class GestureHandler {
478
454
  const rect = this.delegate.measureView();
479
455
  const all = [];
480
456
  const changed = [];
481
- const trackerData = this.tracker.getData();
457
+ const trackerData = this.tracker.trackedPointers;
482
458
 
483
459
  if (trackerData.size === 0) {
484
460
  return;
@@ -504,7 +480,7 @@ export default class GestureHandler {
504
480
  const cancelEvent = {
505
481
  nativeEvent: {
506
482
  handlerTag: this.handlerTag,
507
- state: this.currentState,
483
+ state: this.state,
508
484
  eventType: TouchEventType.CANCELLED,
509
485
  changedTouches: changed,
510
486
  allTouches: all,
@@ -538,7 +514,7 @@ export default class GestureHandler {
538
514
  enabled = true,
539
515
  ...props
540
516
  }) {
541
- this.config = {
517
+ this._config = {
542
518
  enabled: enabled,
543
519
  ...props
544
520
  };
@@ -546,7 +522,7 @@ export default class GestureHandler {
546
522
  this.delegate.onEnabledChange(enabled);
547
523
 
548
524
  if (this.config.shouldCancelWhenOutside !== undefined) {
549
- this.setShouldCancelWhenOutside(this.config.shouldCancelWhenOutside);
525
+ this.shouldCancelWhenOutside = this.config.shouldCancelWhenOutside;
550
526
  }
551
527
 
552
528
  this.validateHitSlops();
@@ -555,13 +531,13 @@ export default class GestureHandler {
555
531
  return;
556
532
  }
557
533
 
558
- switch (this.currentState) {
534
+ switch (this.state) {
559
535
  case State.ACTIVE:
560
536
  this.fail(true);
561
537
  break;
562
538
 
563
539
  case State.UNDETERMINED:
564
- GestureHandlerOrchestrator.getInstance().removeHandlerFromOrchestrator(this);
540
+ GestureHandlerOrchestrator.instance.removeHandlerFromOrchestrator(this);
565
541
  break;
566
542
 
567
543
  default:
@@ -679,52 +655,96 @@ export default class GestureHandler {
679
655
  //
680
656
 
681
657
 
682
- getTag() {
683
- return this.handlerTag;
658
+ get handlerTag() {
659
+ return this._handlerTag;
684
660
  }
685
661
 
686
- setTag(tag) {
687
- this.handlerTag = tag;
662
+ set handlerTag(value) {
663
+ this._handlerTag = value;
688
664
  }
689
665
 
690
- getConfig() {
691
- return this.config;
666
+ get config() {
667
+ return this._config;
692
668
  }
693
669
 
694
- getDelegate() {
695
- return this.delegate;
670
+ get delegate() {
671
+ return this._delegate;
696
672
  }
697
673
 
698
- getTracker() {
699
- return this.tracker;
674
+ get tracker() {
675
+ return this._tracker;
700
676
  }
701
677
 
702
- getTrackedPointersID() {
703
- return this.tracker.getTrackedPointersID();
678
+ get state() {
679
+ return this._state;
704
680
  }
705
681
 
706
- getState() {
707
- return this.currentState;
682
+ set state(value) {
683
+ this._state = value;
708
684
  }
709
685
 
710
- isEnabled() {
711
- return this.enabled;
686
+ get shouldCancelWhenOutside() {
687
+ return this._shouldCancelWhenOutside;
712
688
  }
713
689
 
714
- isFinished() {
715
- return this.currentState === State.END || this.currentState === State.FAILED || this.currentState === State.CANCELLED;
690
+ set shouldCancelWhenOutside(value) {
691
+ this._shouldCancelWhenOutside = value;
692
+ }
693
+
694
+ get enabled() {
695
+ return this._enabled;
696
+ }
697
+
698
+ set enabled(value) {
699
+ this._enabled = value;
700
+ }
701
+
702
+ get pointerType() {
703
+ return this._pointerType;
704
+ }
705
+
706
+ set pointerType(value) {
707
+ this._pointerType = value;
708
+ }
709
+
710
+ get active() {
711
+ return this._active;
716
712
  }
717
713
 
718
- setShouldCancelWhenOutside(shouldCancel) {
719
- this.shouldCancelWhenOutside = shouldCancel;
714
+ set active(value) {
715
+ this._active = value;
720
716
  }
721
717
 
722
- getShouldCancelWhenOutside() {
723
- return this.shouldCancelWhenOutside;
718
+ get awaiting() {
719
+ return this._awaiting;
724
720
  }
725
721
 
726
- getPointerType() {
727
- return this.pointerType;
722
+ set awaiting(value) {
723
+ this._awaiting = value;
724
+ }
725
+
726
+ get activationIndex() {
727
+ return this._activationIndex;
728
+ }
729
+
730
+ set activationIndex(value) {
731
+ this._activationIndex = value;
732
+ }
733
+
734
+ get shouldResetProgress() {
735
+ return this._shouldResetProgress;
736
+ }
737
+
738
+ set shouldResetProgress(value) {
739
+ this._shouldResetProgress = value;
740
+ }
741
+
742
+ getTrackedPointersID() {
743
+ return this.tracker.trackedPointersIDs;
744
+ }
745
+
746
+ isFinished() {
747
+ return this.state === State.END || this.state === State.FAILED || this.state === State.CANCELLED;
728
748
  }
729
749
 
730
750
  }