react-native-reanimated 3.0.2 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (473) hide show
  1. package/Common/cpp/Fabric/FabricUtils.h +1 -1
  2. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +38 -27
  3. package/Common/cpp/SharedItems/Shareables.h +22 -0
  4. package/Common/cpp/Tools/PlatformDepMethodsHolder.h +2 -0
  5. package/Common/cpp/Tools/RuntimeDecorator.cpp +4 -1
  6. package/Common/cpp/Tools/RuntimeDecorator.h +2 -1
  7. package/Common/cpp/Tools/SingleInstanceChecker.h +14 -2
  8. package/RNReanimated.podspec +5 -2
  9. package/android/CMakeLists.txt +4 -0
  10. package/android/build.gradle +18 -10
  11. package/android/src/main/cpp/NativeProxy.cpp +316 -337
  12. package/android/src/main/cpp/NativeProxy.h +53 -11
  13. package/android/src/main/java/com/swmansion/reanimated/NativeMethodsHelper.java +7 -12
  14. package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +11 -8
  15. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/NativeProxyCommon.java +21 -14
  16. package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +0 -3
  17. package/ios/Fabric/REAInitializerRCTFabricSurface.mm +1 -0
  18. package/ios/REANodesManager.h +1 -0
  19. package/ios/REANodesManager.mm +30 -4
  20. package/ios/keyboardObserver/REAKeyboardEventObserver.m +51 -130
  21. package/ios/native/NativeMethods.mm +1 -1
  22. package/ios/native/NativeProxy.mm +4 -1
  23. package/ios/native/REAIOSErrorHandler.mm +1 -1
  24. package/ios/native/REAIOSLogger.mm +1 -1
  25. package/ios/native/REAIOSScheduler.mm +1 -1
  26. package/ios/native/REAInitializer.mm +1 -1
  27. package/ios/native/REAMessageThread.mm +2 -2
  28. package/lib/commonjs/Animated.js +0 -8
  29. package/lib/commonjs/Animated.js.map +1 -1
  30. package/lib/commonjs/ConfigHelper.js +8 -19
  31. package/lib/commonjs/ConfigHelper.js.map +1 -1
  32. package/lib/commonjs/createAnimatedComponent.js +20 -158
  33. package/lib/commonjs/createAnimatedComponent.js.map +1 -1
  34. package/lib/commonjs/index.js +0 -9
  35. package/lib/commonjs/index.js.map +1 -1
  36. package/lib/commonjs/index.web.js +0 -7
  37. package/lib/commonjs/index.web.js.map +1 -1
  38. package/lib/commonjs/reanimated2/Bezier.js +14 -34
  39. package/lib/commonjs/reanimated2/Bezier.js.map +1 -1
  40. package/lib/commonjs/reanimated2/Colors.js +60 -132
  41. package/lib/commonjs/reanimated2/Colors.js.map +1 -1
  42. package/lib/commonjs/reanimated2/Easing.js +81 -34
  43. package/lib/commonjs/reanimated2/Easing.js.map +1 -1
  44. package/lib/commonjs/reanimated2/NativeMethods.js +8 -20
  45. package/lib/commonjs/reanimated2/NativeMethods.js.map +1 -1
  46. package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js +5 -31
  47. package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
  48. package/lib/commonjs/reanimated2/NativeReanimated/index.js +0 -7
  49. package/lib/commonjs/reanimated2/NativeReanimated/index.js.map +1 -1
  50. package/lib/commonjs/reanimated2/PlatformChecker.js +0 -6
  51. package/lib/commonjs/reanimated2/PlatformChecker.js.map +1 -1
  52. package/lib/commonjs/reanimated2/PropAdapters.js +10 -12
  53. package/lib/commonjs/reanimated2/PropAdapters.js.map +1 -1
  54. package/lib/commonjs/reanimated2/UpdateProps.js +3 -12
  55. package/lib/commonjs/reanimated2/UpdateProps.js.map +1 -1
  56. package/lib/commonjs/reanimated2/ViewDescriptorsSet.js +0 -10
  57. package/lib/commonjs/reanimated2/ViewDescriptorsSet.js.map +1 -1
  58. package/lib/commonjs/reanimated2/WorkletEventHandler.js +5 -22
  59. package/lib/commonjs/reanimated2/WorkletEventHandler.js.map +1 -1
  60. package/lib/commonjs/reanimated2/animation/decay.js +7 -18
  61. package/lib/commonjs/reanimated2/animation/decay.js.map +1 -1
  62. package/lib/commonjs/reanimated2/animation/delay.js +0 -11
  63. package/lib/commonjs/reanimated2/animation/delay.js.map +1 -1
  64. package/lib/commonjs/reanimated2/animation/index.js +0 -8
  65. package/lib/commonjs/reanimated2/animation/index.js.map +1 -1
  66. package/lib/commonjs/reanimated2/animation/repeat.js +6 -22
  67. package/lib/commonjs/reanimated2/animation/repeat.js.map +1 -1
  68. package/lib/commonjs/reanimated2/animation/sequence.js +3 -20
  69. package/lib/commonjs/reanimated2/animation/sequence.js.map +1 -1
  70. package/lib/commonjs/reanimated2/animation/spring.js +11 -23
  71. package/lib/commonjs/reanimated2/animation/spring.js.map +1 -1
  72. package/lib/commonjs/reanimated2/animation/styleAnimation.js +3 -35
  73. package/lib/commonjs/reanimated2/animation/styleAnimation.js.map +1 -1
  74. package/lib/commonjs/reanimated2/animation/timing.js +0 -11
  75. package/lib/commonjs/reanimated2/animation/timing.js.map +1 -1
  76. package/lib/commonjs/reanimated2/animation/util.js +11 -41
  77. package/lib/commonjs/reanimated2/animation/util.js.map +1 -1
  78. package/lib/commonjs/reanimated2/commonTypes.js +16 -23
  79. package/lib/commonjs/reanimated2/commonTypes.js.map +1 -1
  80. package/lib/commonjs/reanimated2/component/FlatList.js +0 -16
  81. package/lib/commonjs/reanimated2/component/FlatList.js.map +1 -1
  82. package/lib/commonjs/reanimated2/component/Image.js +0 -4
  83. package/lib/commonjs/reanimated2/component/Image.js.map +1 -1
  84. package/lib/commonjs/reanimated2/component/ScrollView.js +0 -4
  85. package/lib/commonjs/reanimated2/component/ScrollView.js.map +1 -1
  86. package/lib/commonjs/reanimated2/component/Text.js +0 -4
  87. package/lib/commonjs/reanimated2/component/Text.js.map +1 -1
  88. package/lib/commonjs/reanimated2/component/View.js +0 -4
  89. package/lib/commonjs/reanimated2/component/View.js.map +1 -1
  90. package/lib/commonjs/reanimated2/core.js +6 -48
  91. package/lib/commonjs/reanimated2/core.js.map +1 -1
  92. package/lib/commonjs/reanimated2/errors.js +3 -14
  93. package/lib/commonjs/reanimated2/errors.js.map +1 -1
  94. package/lib/commonjs/reanimated2/fabricUtils.js +3 -5
  95. package/lib/commonjs/reanimated2/fabricUtils.js.map +1 -1
  96. package/lib/commonjs/reanimated2/fabricUtils.web.js +1 -3
  97. package/lib/commonjs/reanimated2/fabricUtils.web.js.map +1 -1
  98. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js +3 -12
  99. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
  100. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js +13 -17
  101. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  102. package/lib/commonjs/reanimated2/globals.d.js.map +1 -1
  103. package/lib/commonjs/reanimated2/hook/Hooks.js +0 -5
  104. package/lib/commonjs/reanimated2/hook/Hooks.js.map +1 -1
  105. package/lib/commonjs/reanimated2/hook/commonTypes.js.map +1 -1
  106. package/lib/commonjs/reanimated2/hook/index.js +0 -12
  107. package/lib/commonjs/reanimated2/hook/index.js.map +1 -1
  108. package/lib/commonjs/reanimated2/hook/useAnimatedGestureHandler.js +4 -17
  109. package/lib/commonjs/reanimated2/hook/useAnimatedGestureHandler.js.map +1 -1
  110. package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js +2 -9
  111. package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
  112. package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js +1 -11
  113. package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js.map +1 -1
  114. package/lib/commonjs/reanimated2/hook/useAnimatedRef.js +0 -12
  115. package/lib/commonjs/reanimated2/hook/useAnimatedRef.js.map +1 -1
  116. package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js +2 -9
  117. package/lib/commonjs/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
  118. package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js +8 -23
  119. package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js.map +1 -1
  120. package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js +13 -71
  121. package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  122. package/lib/commonjs/reanimated2/hook/useDerivedValue.js +4 -13
  123. package/lib/commonjs/reanimated2/hook/useDerivedValue.js.map +1 -1
  124. package/lib/commonjs/reanimated2/hook/useFrameCallback.js +0 -5
  125. package/lib/commonjs/reanimated2/hook/useFrameCallback.js.map +1 -1
  126. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js +0 -7
  127. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js.map +1 -1
  128. package/lib/commonjs/reanimated2/hook/useSharedValue.js +2 -7
  129. package/lib/commonjs/reanimated2/hook/useSharedValue.js.map +1 -1
  130. package/lib/commonjs/reanimated2/hook/utils.js +8 -39
  131. package/lib/commonjs/reanimated2/hook/utils.js.map +1 -1
  132. package/lib/commonjs/reanimated2/index.js +0 -26
  133. package/lib/commonjs/reanimated2/index.js.map +1 -1
  134. package/lib/commonjs/reanimated2/initializers.js +21 -43
  135. package/lib/commonjs/reanimated2/initializers.js.map +1 -1
  136. package/lib/commonjs/reanimated2/interpolateColor.js +6 -43
  137. package/lib/commonjs/reanimated2/interpolateColor.js.map +1 -1
  138. package/lib/commonjs/reanimated2/interpolation.js +14 -29
  139. package/lib/commonjs/reanimated2/interpolation.js.map +1 -1
  140. package/lib/commonjs/reanimated2/jestUtils.js +11 -44
  141. package/lib/commonjs/reanimated2/jestUtils.js.map +1 -1
  142. package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js +15 -39
  143. package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
  144. package/lib/commonjs/reanimated2/js-reanimated/Mapper.js +9 -28
  145. package/lib/commonjs/reanimated2/js-reanimated/Mapper.js.map +1 -1
  146. package/lib/commonjs/reanimated2/js-reanimated/MapperRegistry.js +7 -37
  147. package/lib/commonjs/reanimated2/js-reanimated/MapperRegistry.js.map +1 -1
  148. package/lib/commonjs/reanimated2/js-reanimated/MutableValue.js +5 -18
  149. package/lib/commonjs/reanimated2/js-reanimated/MutableValue.js.map +1 -1
  150. package/lib/commonjs/reanimated2/js-reanimated/global.js +2 -9
  151. package/lib/commonjs/reanimated2/js-reanimated/global.js.map +1 -1
  152. package/lib/commonjs/reanimated2/js-reanimated/index.js +3 -14
  153. package/lib/commonjs/reanimated2/js-reanimated/index.js.map +1 -1
  154. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +7 -26
  155. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js.map +1 -1
  156. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +3 -49
  157. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js.map +1 -1
  158. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +7 -43
  159. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/Keyframe.js.map +1 -1
  160. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +4 -5
  161. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  162. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js +0 -4
  163. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
  164. package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js +4 -23
  165. package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
  166. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +3 -74
  167. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
  168. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Fade.js +3 -53
  169. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Fade.js.map +1 -1
  170. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Flip.js +3 -63
  171. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Flip.js.map +1 -1
  172. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +7 -26
  173. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
  174. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +3 -13
  175. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
  176. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js +3 -23
  177. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
  178. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +3 -43
  179. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Rotate.js.map +1 -1
  180. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js +3 -43
  181. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
  182. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +3 -23
  183. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Stretch.js.map +1 -1
  184. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +3 -83
  185. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  186. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/index.js +0 -20
  187. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/index.js.map +1 -1
  188. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +3 -22
  189. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
  190. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +5 -29
  191. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js.map +1 -1
  192. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +3 -9
  193. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js.map +1 -1
  194. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +5 -11
  195. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js.map +1 -1
  196. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +3 -8
  197. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js.map +1 -1
  198. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +3 -12
  199. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js.map +1 -1
  200. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/index.js +0 -12
  201. package/lib/commonjs/reanimated2/layoutReanimation/defaultTransitions/index.js.map +1 -1
  202. package/lib/commonjs/reanimated2/layoutReanimation/index.js +0 -9
  203. package/lib/commonjs/reanimated2/layoutReanimation/index.js.map +1 -1
  204. package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js +3 -17
  205. package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -1
  206. package/lib/commonjs/reanimated2/mappers.js +26 -32
  207. package/lib/commonjs/reanimated2/mappers.js.map +1 -1
  208. package/lib/commonjs/reanimated2/mock.js +5 -15
  209. package/lib/commonjs/reanimated2/mock.js.map +1 -1
  210. package/lib/commonjs/reanimated2/mutables.js +2 -28
  211. package/lib/commonjs/reanimated2/mutables.js.map +1 -1
  212. package/lib/commonjs/reanimated2/platform-specific/RNRenderer.js +0 -2
  213. package/lib/commonjs/reanimated2/platform-specific/RNRenderer.js.map +1 -1
  214. package/lib/commonjs/reanimated2/platform-specific/RNRenderer.web.js.map +1 -1
  215. package/lib/commonjs/reanimated2/platform-specific/checkCppVersion.js +31 -0
  216. package/lib/commonjs/reanimated2/platform-specific/checkCppVersion.js.map +1 -0
  217. package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js +0 -2
  218. package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js.map +1 -1
  219. package/lib/commonjs/reanimated2/platform-specific/jsVersion.js +14 -0
  220. package/lib/commonjs/reanimated2/platform-specific/jsVersion.js.map +1 -0
  221. package/lib/commonjs/reanimated2/pluginUtils.js +0 -1
  222. package/lib/commonjs/reanimated2/pluginUtils.js.map +1 -1
  223. package/lib/commonjs/reanimated2/shareables.js +92 -49
  224. package/lib/commonjs/reanimated2/shareables.js.map +1 -1
  225. package/lib/commonjs/reanimated2/threads.js +42 -46
  226. package/lib/commonjs/reanimated2/threads.js.map +1 -1
  227. package/lib/commonjs/reanimated2/utils.js +0 -5
  228. package/lib/commonjs/reanimated2/utils.js.map +1 -1
  229. package/lib/commonjs/reanimated2/valueSetter.js +6 -21
  230. package/lib/commonjs/reanimated2/valueSetter.js.map +1 -1
  231. package/lib/commonjs/setAndForwardRef.js +3 -3
  232. package/lib/commonjs/setAndForwardRef.js.map +1 -1
  233. package/lib/module/Animated.js.map +1 -1
  234. package/lib/module/ConfigHelper.js +9 -15
  235. package/lib/module/ConfigHelper.js.map +1 -1
  236. package/lib/module/createAnimatedComponent.js +20 -139
  237. package/lib/module/createAnimatedComponent.js.map +1 -1
  238. package/lib/module/index.js +0 -2
  239. package/lib/module/index.js.map +1 -1
  240. package/lib/module/index.web.js.map +1 -1
  241. package/lib/module/reanimated2/Bezier.js +14 -33
  242. package/lib/module/reanimated2/Bezier.js.map +1 -1
  243. package/lib/module/reanimated2/Colors.js +59 -109
  244. package/lib/module/reanimated2/Colors.js.map +1 -1
  245. package/lib/module/reanimated2/Easing.js +37 -33
  246. package/lib/module/reanimated2/Easing.js.map +1 -1
  247. package/lib/module/reanimated2/NativeMethods.js +8 -15
  248. package/lib/module/reanimated2/NativeMethods.js.map +1 -1
  249. package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js +5 -27
  250. package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
  251. package/lib/module/reanimated2/NativeReanimated/index.js +0 -2
  252. package/lib/module/reanimated2/NativeReanimated/index.js.map +1 -1
  253. package/lib/module/reanimated2/PlatformChecker.js.map +1 -1
  254. package/lib/module/reanimated2/PropAdapters.js +12 -10
  255. package/lib/module/reanimated2/PropAdapters.js.map +1 -1
  256. package/lib/module/reanimated2/UpdateProps.js +3 -5
  257. package/lib/module/reanimated2/UpdateProps.js.map +1 -1
  258. package/lib/module/reanimated2/ViewDescriptorsSet.js +0 -6
  259. package/lib/module/reanimated2/ViewDescriptorsSet.js.map +1 -1
  260. package/lib/module/reanimated2/WorkletEventHandler.js +5 -18
  261. package/lib/module/reanimated2/WorkletEventHandler.js.map +1 -1
  262. package/lib/module/reanimated2/animation/decay.js +7 -15
  263. package/lib/module/reanimated2/animation/decay.js.map +1 -1
  264. package/lib/module/reanimated2/animation/delay.js +0 -9
  265. package/lib/module/reanimated2/animation/delay.js.map +1 -1
  266. package/lib/module/reanimated2/animation/index.js.map +1 -1
  267. package/lib/module/reanimated2/animation/repeat.js +6 -20
  268. package/lib/module/reanimated2/animation/repeat.js.map +1 -1
  269. package/lib/module/reanimated2/animation/sequence.js +3 -18
  270. package/lib/module/reanimated2/animation/sequence.js.map +1 -1
  271. package/lib/module/reanimated2/animation/spring.js +11 -21
  272. package/lib/module/reanimated2/animation/spring.js.map +1 -1
  273. package/lib/module/reanimated2/animation/styleAnimation.js +7 -31
  274. package/lib/module/reanimated2/animation/styleAnimation.js.map +1 -1
  275. package/lib/module/reanimated2/animation/timing.js +0 -8
  276. package/lib/module/reanimated2/animation/timing.js.map +1 -1
  277. package/lib/module/reanimated2/animation/util.js +10 -33
  278. package/lib/module/reanimated2/animation/util.js.map +1 -1
  279. package/lib/module/reanimated2/commonTypes.js +12 -19
  280. package/lib/module/reanimated2/commonTypes.js.map +1 -1
  281. package/lib/module/reanimated2/component/FlatList.js +0 -4
  282. package/lib/module/reanimated2/component/FlatList.js.map +1 -1
  283. package/lib/module/reanimated2/component/Image.js.map +1 -1
  284. package/lib/module/reanimated2/component/ScrollView.js.map +1 -1
  285. package/lib/module/reanimated2/component/Text.js.map +1 -1
  286. package/lib/module/reanimated2/component/View.js.map +1 -1
  287. package/lib/module/reanimated2/core.js +6 -22
  288. package/lib/module/reanimated2/core.js.map +1 -1
  289. package/lib/module/reanimated2/errors.js +3 -13
  290. package/lib/module/reanimated2/errors.js.map +1 -1
  291. package/lib/module/reanimated2/fabricUtils.js +3 -3
  292. package/lib/module/reanimated2/fabricUtils.js.map +1 -1
  293. package/lib/module/reanimated2/fabricUtils.web.js +1 -1
  294. package/lib/module/reanimated2/fabricUtils.web.js.map +1 -1
  295. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js +3 -8
  296. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryJS.js.map +1 -1
  297. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js +13 -15
  298. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  299. package/lib/module/reanimated2/globals.d.js.map +1 -1
  300. package/lib/module/reanimated2/hook/Hooks.js +3 -2
  301. package/lib/module/reanimated2/hook/Hooks.js.map +1 -1
  302. package/lib/module/reanimated2/hook/commonTypes.js.map +1 -1
  303. package/lib/module/reanimated2/hook/index.js.map +1 -1
  304. package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js +3 -14
  305. package/lib/module/reanimated2/hook/useAnimatedGestureHandler.js.map +1 -1
  306. package/lib/module/reanimated2/hook/useAnimatedKeyboard.js +2 -5
  307. package/lib/module/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
  308. package/lib/module/reanimated2/hook/useAnimatedReaction.js +1 -7
  309. package/lib/module/reanimated2/hook/useAnimatedReaction.js.map +1 -1
  310. package/lib/module/reanimated2/hook/useAnimatedRef.js +0 -6
  311. package/lib/module/reanimated2/hook/useAnimatedRef.js.map +1 -1
  312. package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js +2 -7
  313. package/lib/module/reanimated2/hook/useAnimatedScrollHandler.js.map +1 -1
  314. package/lib/module/reanimated2/hook/useAnimatedSensor.js +9 -20
  315. package/lib/module/reanimated2/hook/useAnimatedSensor.js.map +1 -1
  316. package/lib/module/reanimated2/hook/useAnimatedStyle.js +13 -59
  317. package/lib/module/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  318. package/lib/module/reanimated2/hook/useDerivedValue.js +4 -8
  319. package/lib/module/reanimated2/hook/useDerivedValue.js.map +1 -1
  320. package/lib/module/reanimated2/hook/useFrameCallback.js.map +1 -1
  321. package/lib/module/reanimated2/hook/useScrollViewOffset.js +0 -1
  322. package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -1
  323. package/lib/module/reanimated2/hook/useSharedValue.js +2 -3
  324. package/lib/module/reanimated2/hook/useSharedValue.js.map +1 -1
  325. package/lib/module/reanimated2/hook/utils.js +8 -21
  326. package/lib/module/reanimated2/hook/utils.js.map +1 -1
  327. package/lib/module/reanimated2/index.js.map +1 -1
  328. package/lib/module/reanimated2/initializers.js +23 -37
  329. package/lib/module/reanimated2/initializers.js.map +1 -1
  330. package/lib/module/reanimated2/interpolateColor.js +5 -34
  331. package/lib/module/reanimated2/interpolateColor.js.map +1 -1
  332. package/lib/module/reanimated2/interpolation.js +13 -28
  333. package/lib/module/reanimated2/interpolation.js.map +1 -1
  334. package/lib/module/reanimated2/jestUtils.js +11 -35
  335. package/lib/module/reanimated2/jestUtils.js.map +1 -1
  336. package/lib/module/reanimated2/js-reanimated/JSReanimated.js +15 -35
  337. package/lib/module/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
  338. package/lib/module/reanimated2/js-reanimated/Mapper.js +9 -23
  339. package/lib/module/reanimated2/js-reanimated/Mapper.js.map +1 -1
  340. package/lib/module/reanimated2/js-reanimated/MapperRegistry.js +7 -35
  341. package/lib/module/reanimated2/js-reanimated/MapperRegistry.js.map +1 -1
  342. package/lib/module/reanimated2/js-reanimated/MutableValue.js +5 -16
  343. package/lib/module/reanimated2/js-reanimated/MutableValue.js.map +1 -1
  344. package/lib/module/reanimated2/js-reanimated/global.js +2 -6
  345. package/lib/module/reanimated2/js-reanimated/global.js.map +1 -1
  346. package/lib/module/reanimated2/js-reanimated/index.js +3 -9
  347. package/lib/module/reanimated2/js-reanimated/index.js.map +1 -1
  348. package/lib/module/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js +7 -23
  349. package/lib/module/reanimated2/layoutReanimation/animationBuilder/BaseAnimationBuilder.js.map +1 -1
  350. package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js +3 -45
  351. package/lib/module/reanimated2/layoutReanimation/animationBuilder/ComplexAnimationBuilder.js.map +1 -1
  352. package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js +7 -39
  353. package/lib/module/reanimated2/layoutReanimation/animationBuilder/Keyframe.js.map +1 -1
  354. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +3 -3
  355. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  356. package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
  357. package/lib/module/reanimated2/layoutReanimation/animationsManager.js +4 -19
  358. package/lib/module/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
  359. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +3 -52
  360. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
  361. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Fade.js +3 -32
  362. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Fade.js.map +1 -1
  363. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Flip.js +3 -38
  364. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Flip.js.map +1 -1
  365. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +7 -16
  366. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
  367. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js +3 -8
  368. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
  369. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js +3 -14
  370. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
  371. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Rotate.js +3 -26
  372. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Rotate.js.map +1 -1
  373. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js +3 -26
  374. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
  375. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Stretch.js +3 -14
  376. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Stretch.js.map +1 -1
  377. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +3 -50
  378. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  379. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/index.js.map +1 -1
  380. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js +3 -17
  381. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/CurvedTransition.js.map +1 -1
  382. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js +5 -23
  383. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/EntryExitTransition.js.map +1 -1
  384. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js +3 -5
  385. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/FadingTransition.js.map +1 -1
  386. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js +5 -6
  387. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/JumpingTransition.js.map +1 -1
  388. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js +3 -5
  389. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/LinearTransition.js.map +1 -1
  390. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js +3 -8
  391. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/SequencedTransition.js.map +1 -1
  392. package/lib/module/reanimated2/layoutReanimation/defaultTransitions/index.js.map +1 -1
  393. package/lib/module/reanimated2/layoutReanimation/index.js.map +1 -1
  394. package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js +3 -13
  395. package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -1
  396. package/lib/module/reanimated2/mappers.js +26 -25
  397. package/lib/module/reanimated2/mappers.js.map +1 -1
  398. package/lib/module/reanimated2/mock.js +5 -15
  399. package/lib/module/reanimated2/mock.js.map +1 -1
  400. package/lib/module/reanimated2/mutables.js +2 -19
  401. package/lib/module/reanimated2/mutables.js.map +1 -1
  402. package/lib/module/reanimated2/platform-specific/RNRenderer.js.map +1 -1
  403. package/lib/module/reanimated2/platform-specific/RNRenderer.web.js.map +1 -1
  404. package/lib/module/reanimated2/platform-specific/checkCppVersion.js +24 -0
  405. package/lib/module/reanimated2/platform-specific/checkCppVersion.js.map +1 -0
  406. package/lib/module/reanimated2/platform-specific/checkVersion.web.js +0 -1
  407. package/lib/module/reanimated2/platform-specific/checkVersion.web.js.map +1 -1
  408. package/lib/module/reanimated2/platform-specific/jsVersion.js +7 -0
  409. package/lib/module/reanimated2/platform-specific/jsVersion.js.map +1 -0
  410. package/lib/module/reanimated2/pluginUtils.js.map +1 -1
  411. package/lib/module/reanimated2/shareables.js +96 -44
  412. package/lib/module/reanimated2/shareables.js.map +1 -1
  413. package/lib/module/reanimated2/threads.js +39 -33
  414. package/lib/module/reanimated2/threads.js.map +1 -1
  415. package/lib/module/reanimated2/utils.js +0 -3
  416. package/lib/module/reanimated2/utils.js.map +1 -1
  417. package/lib/module/reanimated2/valueSetter.js +6 -19
  418. package/lib/module/reanimated2/valueSetter.js.map +1 -1
  419. package/lib/module/setAndForwardRef.js +3 -2
  420. package/lib/module/setAndForwardRef.js.map +1 -1
  421. package/package.json +46 -40
  422. package/plugin/.eslintrc.js +7 -0
  423. package/plugin/README.md +241 -0
  424. package/plugin/build/plugin.js +714 -0
  425. package/plugin/build/plugin.js.map +7 -0
  426. package/plugin/index.js +1 -807
  427. package/plugin/package.json +23 -0
  428. package/plugin/src/buildWorkletString.ts +213 -0
  429. package/plugin/src/commonObjects.ts +60 -0
  430. package/plugin/src/injectVersion.ts +37 -0
  431. package/plugin/src/makeWorklet.ts +375 -0
  432. package/plugin/src/plugin.ts +49 -0
  433. package/plugin/src/processForCalleesWorklets.ts +106 -0
  434. package/plugin/src/processIfGestureHandlerEventCallbackFunctionNode.ts +156 -0
  435. package/plugin/src/processIfWorkletFunction.ts +55 -0
  436. package/plugin/src/processIfWorkletNode.ts +44 -0
  437. package/plugin/src/processInlineStylesWarning.ts +129 -0
  438. package/plugin/src/processWorkletObjectMethod.ts +31 -0
  439. package/plugin/src/types.ts +15 -0
  440. package/plugin/src/utils.ts +6 -0
  441. package/plugin/tsconfig.json +15 -0
  442. package/plugin/yarn.lock +2193 -0
  443. package/react-native-reanimated.d.ts +1 -0
  444. package/scripts/reanimated_utils.rb +2 -2
  445. package/src/createAnimatedComponent.tsx +2 -3
  446. package/src/reanimated2/Easing.ts +19 -0
  447. package/src/reanimated2/NativeMethods.ts +9 -4
  448. package/src/reanimated2/NativeReanimated/NativeReanimated.ts +2 -2
  449. package/src/reanimated2/UpdateProps.ts +2 -2
  450. package/src/reanimated2/animation/decay.ts +7 -1
  451. package/src/reanimated2/animation/styleAnimation.ts +5 -1
  452. package/src/reanimated2/core.ts +4 -4
  453. package/src/reanimated2/errors.ts +1 -0
  454. package/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts +12 -4
  455. package/src/reanimated2/globals.d.ts +71 -112
  456. package/src/reanimated2/hook/commonTypes.ts +1 -1
  457. package/src/reanimated2/hook/useAnimatedReaction.ts +2 -2
  458. package/src/reanimated2/hook/useAnimatedSensor.ts +2 -2
  459. package/src/reanimated2/initializers.ts +11 -8
  460. package/src/reanimated2/jestUtils.ts +0 -1
  461. package/src/reanimated2/js-reanimated/JSReanimated.ts +5 -1
  462. package/src/reanimated2/js-reanimated/index.ts +1 -1
  463. package/src/reanimated2/mappers.ts +26 -4
  464. package/src/reanimated2/mock.ts +1 -0
  465. package/src/reanimated2/platform-specific/checkCppVersion.ts +29 -0
  466. package/src/reanimated2/platform-specific/jsVersion.ts +6 -0
  467. package/src/reanimated2/shareables.ts +107 -8
  468. package/src/reanimated2/threads.ts +36 -17
  469. package/lib/commonjs/reanimated2/platform-specific/checkVersion.js +0 -42
  470. package/lib/commonjs/reanimated2/platform-specific/checkVersion.js.map +0 -1
  471. package/lib/module/reanimated2/platform-specific/checkVersion.js +0 -35
  472. package/lib/module/reanimated2/platform-specific/checkVersion.js.map +0 -1
  473. package/src/reanimated2/platform-specific/checkVersion.ts +0 -39
@@ -4,46 +4,35 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _NativeReanimated = _interopRequireDefault(require("./NativeReanimated"));
9
-
10
8
  var _core = require("./core");
11
-
12
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
-
10
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
12
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
13
  function jsListener(eventName, handler) {
17
14
  return evt => {
18
- handler({ ...evt.nativeEvent,
15
+ handler({
16
+ ...evt.nativeEvent,
19
17
  eventName
20
18
  });
21
19
  };
22
20
  }
23
-
24
21
  class WorkletEventHandler {
25
22
  constructor(worklet) {
26
23
  let eventNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
27
-
28
24
  _defineProperty(this, "worklet", void 0);
29
-
30
25
  _defineProperty(this, "eventNames", void 0);
31
-
32
26
  _defineProperty(this, "reattachNeeded", void 0);
33
-
34
27
  _defineProperty(this, "listeners", void 0);
35
-
36
28
  _defineProperty(this, "viewTag", void 0);
37
-
38
29
  _defineProperty(this, "registrations", void 0);
39
-
40
30
  this.worklet = worklet;
41
31
  this.eventNames = eventNames;
42
32
  this.reattachNeeded = false;
43
33
  this.listeners = {};
44
34
  this.viewTag = undefined;
45
35
  this.registrations = [];
46
-
47
36
  if (!_NativeReanimated.default.native) {
48
37
  this.listeners = eventNames.reduce((acc, eventName) => {
49
38
  acc[eventName] = jsListener(eventName, worklet);
@@ -51,27 +40,21 @@ class WorkletEventHandler {
51
40
  }, {});
52
41
  }
53
42
  }
54
-
55
43
  updateWorklet(newWorklet) {
56
44
  this.worklet = newWorklet;
57
45
  this.reattachNeeded = true;
58
46
  }
59
-
60
47
  registerForEvents(viewTag, fallbackEventName) {
61
48
  this.viewTag = viewTag;
62
49
  this.registrations = this.eventNames.map(eventName => (0, _core.registerEventHandler)(viewTag + eventName, this.worklet));
63
-
64
50
  if (this.registrations.length === 0 && fallbackEventName) {
65
51
  this.registrations.push((0, _core.registerEventHandler)(viewTag + fallbackEventName, this.worklet));
66
52
  }
67
53
  }
68
-
69
54
  unregisterFromEvents() {
70
55
  this.registrations.forEach(id => (0, _core.unregisterEventHandler)(id));
71
56
  this.registrations = [];
72
57
  }
73
-
74
58
  }
75
-
76
59
  exports.default = WorkletEventHandler;
77
60
  //# sourceMappingURL=WorkletEventHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsListener","eventName","handler","evt","nativeEvent","WorkletEventHandler","constructor","worklet","eventNames","reattachNeeded","listeners","viewTag","undefined","registrations","NativeReanimatedModule","native","reduce","acc","updateWorklet","newWorklet","registerForEvents","fallbackEventName","map","registerEventHandler","length","push","unregisterFromEvents","forEach","id","unregisterEventHandler"],"sources":["WorkletEventHandler.ts"],"sourcesContent":["import { NativeEvent } from './commonTypes';\nimport NativeReanimatedModule from './NativeReanimated';\nimport { registerEventHandler, unregisterEventHandler } from './core';\n\nfunction jsListener<T extends NativeEvent<T>>(\n eventName: string,\n handler: (event: T) => void\n) {\n return (evt: T) => {\n handler({ ...evt.nativeEvent, eventName });\n };\n}\n\nexport default class WorkletEventHandler<T extends NativeEvent<T>> {\n worklet: (event: T) => void;\n eventNames: string[];\n reattachNeeded: boolean;\n listeners: Record<string, (event: T) => void>;\n viewTag: number | undefined;\n registrations: string[];\n constructor(worklet: (event: T) => void, eventNames: string[] = []) {\n this.worklet = worklet;\n this.eventNames = eventNames;\n this.reattachNeeded = false;\n this.listeners = {};\n this.viewTag = undefined;\n this.registrations = [];\n\n if (!NativeReanimatedModule.native) {\n this.listeners = eventNames.reduce(\n (acc: Record<string, (event: T) => void>, eventName: string) => {\n acc[eventName] = jsListener(eventName, worklet);\n return acc;\n },\n {}\n );\n }\n }\n\n updateWorklet(newWorklet: (event: T) => void): void {\n this.worklet = newWorklet;\n this.reattachNeeded = true;\n }\n\n registerForEvents(viewTag: number, fallbackEventName?: string): void {\n this.viewTag = viewTag;\n this.registrations = this.eventNames.map((eventName) =>\n registerEventHandler(viewTag + eventName, this.worklet)\n );\n if (this.registrations.length === 0 && fallbackEventName) {\n this.registrations.push(\n registerEventHandler(viewTag + fallbackEventName, this.worklet)\n );\n }\n }\n\n unregisterFromEvents(): void {\n this.registrations.forEach((id) => unregisterEventHandler(id));\n this.registrations = [];\n }\n}\n"],"mappings":";;;;;;;AACA;;AACA;;;;;;AAEA,SAASA,UAAT,CACEC,SADF,EAEEC,OAFF,EAGE;EACA,OAAQC,GAAD,IAAY;IACjBD,OAAO,CAAC,EAAE,GAAGC,GAAG,CAACC,WAAT;MAAsBH;IAAtB,CAAD,CAAP;EACD,CAFD;AAGD;;AAEc,MAAMI,mBAAN,CAAoD;EAOjEC,WAAW,CAACC,OAAD,EAAyD;IAAA,IAA3BC,UAA2B,uEAAJ,EAAI;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAAA;;IAClE,KAAKD,OAAL,GAAeA,OAAf;IACA,KAAKC,UAAL,GAAkBA,UAAlB;IACA,KAAKC,cAAL,GAAsB,KAAtB;IACA,KAAKC,SAAL,GAAiB,EAAjB;IACA,KAAKC,OAAL,GAAeC,SAAf;IACA,KAAKC,aAAL,GAAqB,EAArB;;IAEA,IAAI,CAACC,yBAAA,CAAuBC,MAA5B,EAAoC;MAClC,KAAKL,SAAL,GAAiBF,UAAU,CAACQ,MAAX,CACf,CAACC,GAAD,EAA0ChB,SAA1C,KAAgE;QAC9DgB,GAAG,CAAChB,SAAD,CAAH,GAAiBD,UAAU,CAACC,SAAD,EAAYM,OAAZ,CAA3B;QACA,OAAOU,GAAP;MACD,CAJc,EAKf,EALe,CAAjB;IAOD;EACF;;EAEDC,aAAa,CAACC,UAAD,EAAuC;IAClD,KAAKZ,OAAL,GAAeY,UAAf;IACA,KAAKV,cAAL,GAAsB,IAAtB;EACD;;EAEDW,iBAAiB,CAACT,OAAD,EAAkBU,iBAAlB,EAAoD;IACnE,KAAKV,OAAL,GAAeA,OAAf;IACA,KAAKE,aAAL,GAAqB,KAAKL,UAAL,CAAgBc,GAAhB,CAAqBrB,SAAD,IACvC,IAAAsB,0BAAA,EAAqBZ,OAAO,GAAGV,SAA/B,EAA0C,KAAKM,OAA/C,CADmB,CAArB;;IAGA,IAAI,KAAKM,aAAL,CAAmBW,MAAnB,KAA8B,CAA9B,IAAmCH,iBAAvC,EAA0D;MACxD,KAAKR,aAAL,CAAmBY,IAAnB,CACE,IAAAF,0BAAA,EAAqBZ,OAAO,GAAGU,iBAA/B,EAAkD,KAAKd,OAAvD,CADF;IAGD;EACF;;EAEDmB,oBAAoB,GAAS;IAC3B,KAAKb,aAAL,CAAmBc,OAAnB,CAA4BC,EAAD,IAAQ,IAAAC,4BAAA,EAAuBD,EAAvB,CAAnC;IACA,KAAKf,aAAL,GAAqB,EAArB;EACD;;AA9CgE"}
1
+ {"version":3,"names":["_NativeReanimated","_interopRequireDefault","require","_core","obj","__esModule","default","_defineProperty","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","jsListener","eventName","handler","evt","nativeEvent","WorkletEventHandler","constructor","worklet","eventNames","arguments","length","reattachNeeded","listeners","viewTag","registrations","NativeReanimatedModule","native","reduce","acc","updateWorklet","newWorklet","registerForEvents","fallbackEventName","map","registerEventHandler","push","unregisterFromEvents","forEach","id","unregisterEventHandler","exports"],"sources":["WorkletEventHandler.ts"],"sourcesContent":["import { NativeEvent } from './commonTypes';\nimport NativeReanimatedModule from './NativeReanimated';\nimport { registerEventHandler, unregisterEventHandler } from './core';\n\nfunction jsListener<T extends NativeEvent<T>>(\n eventName: string,\n handler: (event: T) => void\n) {\n return (evt: T) => {\n handler({ ...evt.nativeEvent, eventName });\n };\n}\n\nexport default class WorkletEventHandler<T extends NativeEvent<T>> {\n worklet: (event: T) => void;\n eventNames: string[];\n reattachNeeded: boolean;\n listeners: Record<string, (event: T) => void>;\n viewTag: number | undefined;\n registrations: string[];\n constructor(worklet: (event: T) => void, eventNames: string[] = []) {\n this.worklet = worklet;\n this.eventNames = eventNames;\n this.reattachNeeded = false;\n this.listeners = {};\n this.viewTag = undefined;\n this.registrations = [];\n\n if (!NativeReanimatedModule.native) {\n this.listeners = eventNames.reduce(\n (acc: Record<string, (event: T) => void>, eventName: string) => {\n acc[eventName] = jsListener(eventName, worklet);\n return acc;\n },\n {}\n );\n }\n }\n\n updateWorklet(newWorklet: (event: T) => void): void {\n this.worklet = newWorklet;\n this.reattachNeeded = true;\n }\n\n registerForEvents(viewTag: number, fallbackEventName?: string): void {\n this.viewTag = viewTag;\n this.registrations = this.eventNames.map((eventName) =>\n registerEventHandler(viewTag + eventName, this.worklet)\n );\n if (this.registrations.length === 0 && fallbackEventName) {\n this.registrations.push(\n registerEventHandler(viewTag + fallbackEventName, this.worklet)\n );\n }\n }\n\n unregisterFromEvents(): void {\n this.registrations.forEach((id) => unregisterEventHandler(id));\n this.registrations = [];\n }\n}\n"],"mappings":"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"}
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.withDecay = withDecay;
7
-
8
7
  var _util = require("./util");
9
-
10
8
  var _reactNative = require("react-native");
11
-
12
9
  function withDecay(userConfig, callback) {
13
10
  'worklet';
14
11
 
@@ -17,19 +14,22 @@ function withDecay(userConfig, callback) {
17
14
 
18
15
  const config = {
19
16
  deceleration: 0.998,
20
- velocityFactor: _reactNative.Platform.OS !== 'web' ? 1 : 1000,
17
+ velocityFactor: 1,
21
18
  velocity: 0,
22
19
  rubberBandFactor: 0.6
23
20
  };
24
-
25
21
  if (userConfig) {
26
22
  Object.keys(userConfig).forEach(key => config[key] = userConfig[key]);
27
23
  }
28
-
29
24
  const VELOCITY_EPS = _reactNative.Platform.OS !== 'web' ? 1 : 1 / 20;
30
25
  const SLOPE_FACTOR = 0.1;
31
- let decay;
32
26
 
27
+ // @piaskowyk: Velocity is expressed in pixels per second
28
+ // but pixels on Web are handled differently than on native
29
+ if (_reactNative.Platform.OS === 'web') {
30
+ config.velocity *= 1000;
31
+ }
32
+ let decay;
33
33
  if (config.rubberBandEffect) {
34
34
  decay = (animation, now) => {
35
35
  const {
@@ -42,18 +42,15 @@ function withDecay(userConfig, callback) {
42
42
  const deltaTime = Math.min(now - lastTimestamp, 64);
43
43
  const clampIndex = initialVelocity > 0 ? 1 : 0;
44
44
  let derivative = 0;
45
-
46
45
  if (current < config.clamp[0] || current > config.clamp[1]) {
47
46
  derivative = current - config.clamp[clampIndex];
48
47
  }
49
-
50
48
  if (derivative !== 0) {
51
49
  animation.springActive = true;
52
50
  } else if (derivative === 0 && animation.springActive) {
53
51
  animation.current = config.clamp[clampIndex];
54
52
  return true;
55
53
  }
56
-
57
54
  const v = velocity * Math.exp(-(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR) - derivative * config.rubberBandFactor;
58
55
  animation.current = current + v * config.velocityFactor * deltaTime / 1000;
59
56
  animation.velocity = v;
@@ -74,7 +71,6 @@ function withDecay(userConfig, callback) {
74
71
  animation.current = current + v * config.velocityFactor * deltaTime / 1000;
75
72
  animation.velocity = v;
76
73
  animation.lastTimestamp = now;
77
-
78
74
  if (config.clamp) {
79
75
  if (initialVelocity < 0 && animation.current <= config.clamp[0]) {
80
76
  animation.current = config.clamp[0];
@@ -84,31 +80,25 @@ function withDecay(userConfig, callback) {
84
80
  return true;
85
81
  }
86
82
  }
87
-
88
83
  return Math.abs(v) < VELOCITY_EPS;
89
84
  };
90
85
  }
91
-
92
86
  function validateConfig() {
93
87
  if (config.clamp) {
94
88
  if (!Array.isArray(config.clamp)) {
95
89
  throw Error(`config.clamp must be an array but is ${typeof config.clamp}`);
96
90
  }
97
-
98
91
  if (config.clamp.length !== 2) {
99
92
  throw Error(`clamp array must contain 2 items but is given ${config.clamp.length}`);
100
93
  }
101
94
  }
102
-
103
95
  if (config.velocityFactor <= 0) {
104
96
  throw Error(`config.velocityFactor must be greather then 0 but is ${config.velocityFactor}`);
105
97
  }
106
-
107
98
  if (config.rubberBandEffect && !config.clamp) {
108
99
  throw Error('You need to set `clamp` property when using `rubberBandEffect`.');
109
100
  }
110
101
  }
111
-
112
102
  function onStart(animation, value, now) {
113
103
  animation.current = value;
114
104
  animation.lastTimestamp = now;
@@ -116,7 +106,6 @@ function withDecay(userConfig, callback) {
116
106
  animation.initialVelocity = config.velocity;
117
107
  validateConfig();
118
108
  }
119
-
120
109
  return {
121
110
  onFrame: decay,
122
111
  onStart,
@@ -1 +1 @@
1
- {"version":3,"names":["withDecay","userConfig","callback","defineAnimation","config","deceleration","velocityFactor","Platform","OS","velocity","rubberBandFactor","Object","keys","forEach","key","VELOCITY_EPS","SLOPE_FACTOR","decay","rubberBandEffect","animation","now","lastTimestamp","startTimestamp","current","initialVelocity","deltaTime","Math","min","clampIndex","derivative","clamp","springActive","v","exp","abs","validateConfig","Array","isArray","Error","length","onStart","value","onFrame"],"sources":["decay.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport {\n Animation,\n AnimationCallback,\n AnimationObject,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\nimport { Platform } from 'react-native';\n\ninterface DecayConfig {\n deceleration?: number;\n velocityFactor?: number;\n clamp?: number[];\n velocity?: number;\n}\n\ninterface DefaultDecayConfig {\n deceleration: number;\n velocityFactor: number;\n clamp?: number[];\n velocity: number;\n rubberBandEffect?: boolean;\n rubberBandFactor: number;\n}\n\nexport interface DecayAnimation extends Animation<DecayAnimation> {\n lastTimestamp: Timestamp;\n startTimestamp: Timestamp;\n initialVelocity: number;\n velocity: number;\n current: AnimatableValue;\n}\n\nexport interface InnerDecayAnimation\n extends Omit<DecayAnimation, 'current'>,\n AnimationObject {\n current: number;\n}\n\nexport function withDecay(\n userConfig: DecayConfig,\n callback?: AnimationCallback\n): Animation<DecayAnimation> {\n 'worklet';\n\n return defineAnimation<DecayAnimation>(0, () => {\n 'worklet';\n const config: DefaultDecayConfig = {\n deceleration: 0.998,\n velocityFactor: Platform.OS !== 'web' ? 1 : 1000,\n velocity: 0,\n rubberBandFactor: 0.6,\n };\n if (userConfig) {\n Object.keys(userConfig).forEach(\n (key) =>\n ((config as any)[key] = userConfig[key as keyof typeof userConfig])\n );\n }\n\n const VELOCITY_EPS = Platform.OS !== 'web' ? 1 : 1 / 20;\n const SLOPE_FACTOR = 0.1;\n\n let decay: (animation: InnerDecayAnimation, now: number) => boolean;\n\n if (config.rubberBandEffect) {\n decay = (animation: InnerDecayAnimation, now: number): boolean => {\n const {\n lastTimestamp,\n startTimestamp,\n current,\n initialVelocity,\n velocity,\n } = animation;\n\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const clampIndex = initialVelocity > 0 ? 1 : 0;\n let derivative = 0;\n if (current < config.clamp![0] || current > config.clamp![1]) {\n derivative = current - config.clamp![clampIndex];\n }\n\n if (derivative !== 0) {\n animation.springActive = true;\n } else if (derivative === 0 && animation.springActive) {\n animation.current = config.clamp![clampIndex];\n return true;\n }\n\n const v =\n velocity *\n Math.exp(\n -(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR\n ) -\n derivative * config.rubberBandFactor;\n\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000;\n animation.velocity = v;\n animation.lastTimestamp = now;\n return false;\n };\n } else {\n decay = (animation: InnerDecayAnimation, now: number): boolean => {\n const {\n lastTimestamp,\n startTimestamp,\n initialVelocity,\n current,\n velocity,\n } = animation;\n\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const v =\n velocity *\n Math.exp(\n -(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR\n );\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000;\n animation.velocity = v;\n animation.lastTimestamp = now;\n\n if (config.clamp) {\n if (initialVelocity < 0 && animation.current <= config.clamp[0]) {\n animation.current = config.clamp[0];\n return true;\n } else if (\n initialVelocity > 0 &&\n animation.current >= config.clamp[1]\n ) {\n animation.current = config.clamp[1];\n return true;\n }\n }\n\n return Math.abs(v) < VELOCITY_EPS;\n };\n }\n\n function validateConfig(): void {\n if (config.clamp) {\n if (!Array.isArray(config.clamp)) {\n throw Error(\n `config.clamp must be an array but is ${typeof config.clamp}`\n );\n }\n if (config.clamp.length !== 2) {\n throw Error(\n `clamp array must contain 2 items but is given ${config.clamp.length}`\n );\n }\n }\n if (config.velocityFactor <= 0) {\n throw Error(\n `config.velocityFactor must be greather then 0 but is ${config.velocityFactor}`\n );\n }\n if (config.rubberBandEffect && !config.clamp) {\n throw Error(\n 'You need to set `clamp` property when using `rubberBandEffect`.'\n );\n }\n }\n\n function onStart(\n animation: DecayAnimation,\n value: number,\n now: Timestamp\n ): void {\n animation.current = value;\n animation.lastTimestamp = now;\n animation.startTimestamp = now;\n animation.initialVelocity = config.velocity;\n validateConfig();\n }\n\n return {\n onFrame: decay,\n onStart,\n callback,\n velocity: config.velocity ?? 0,\n initialVelocity: 0,\n current: 0,\n lastTimestamp: 0,\n startTimestamp: 0,\n } as DecayAnimation;\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_util","require","_reactNative","withDecay","userConfig","callback","defineAnimation","config","deceleration","velocityFactor","velocity","rubberBandFactor","Object","keys","forEach","key","VELOCITY_EPS","Platform","OS","SLOPE_FACTOR","decay","rubberBandEffect","animation","now","lastTimestamp","startTimestamp","current","initialVelocity","deltaTime","Math","min","clampIndex","derivative","clamp","springActive","v","exp","abs","validateConfig","Array","isArray","Error","length","onStart","value","onFrame"],"sources":["decay.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport {\n Animation,\n AnimationCallback,\n AnimationObject,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\nimport { Platform } from 'react-native';\n\ninterface DecayConfig {\n deceleration?: number;\n velocityFactor?: number;\n clamp?: number[];\n velocity?: number;\n}\n\ninterface DefaultDecayConfig {\n deceleration: number;\n velocityFactor: number;\n clamp?: number[];\n velocity: number;\n rubberBandEffect?: boolean;\n rubberBandFactor: number;\n}\n\nexport interface DecayAnimation extends Animation<DecayAnimation> {\n lastTimestamp: Timestamp;\n startTimestamp: Timestamp;\n initialVelocity: number;\n velocity: number;\n current: AnimatableValue;\n}\n\nexport interface InnerDecayAnimation\n extends Omit<DecayAnimation, 'current'>,\n AnimationObject {\n current: number;\n}\n\nexport function withDecay(\n userConfig: DecayConfig,\n callback?: AnimationCallback\n): Animation<DecayAnimation> {\n 'worklet';\n\n return defineAnimation<DecayAnimation>(0, () => {\n 'worklet';\n const config: DefaultDecayConfig = {\n deceleration: 0.998,\n velocityFactor: 1,\n velocity: 0,\n rubberBandFactor: 0.6,\n };\n if (userConfig) {\n Object.keys(userConfig).forEach(\n (key) =>\n ((config as any)[key] = userConfig[key as keyof typeof userConfig])\n );\n }\n\n const VELOCITY_EPS = Platform.OS !== 'web' ? 1 : 1 / 20;\n const SLOPE_FACTOR = 0.1;\n\n // @piaskowyk: Velocity is expressed in pixels per second\n // but pixels on Web are handled differently than on native\n if (Platform.OS === 'web') {\n config.velocity *= 1000;\n }\n\n let decay: (animation: InnerDecayAnimation, now: number) => boolean;\n\n if (config.rubberBandEffect) {\n decay = (animation: InnerDecayAnimation, now: number): boolean => {\n const {\n lastTimestamp,\n startTimestamp,\n current,\n initialVelocity,\n velocity,\n } = animation;\n\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const clampIndex = initialVelocity > 0 ? 1 : 0;\n let derivative = 0;\n if (current < config.clamp![0] || current > config.clamp![1]) {\n derivative = current - config.clamp![clampIndex];\n }\n\n if (derivative !== 0) {\n animation.springActive = true;\n } else if (derivative === 0 && animation.springActive) {\n animation.current = config.clamp![clampIndex];\n return true;\n }\n\n const v =\n velocity *\n Math.exp(\n -(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR\n ) -\n derivative * config.rubberBandFactor;\n\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000;\n animation.velocity = v;\n animation.lastTimestamp = now;\n return false;\n };\n } else {\n decay = (animation: InnerDecayAnimation, now: number): boolean => {\n const {\n lastTimestamp,\n startTimestamp,\n initialVelocity,\n current,\n velocity,\n } = animation;\n\n const deltaTime = Math.min(now - lastTimestamp, 64);\n const v =\n velocity *\n Math.exp(\n -(1 - config.deceleration) * (now - startTimestamp) * SLOPE_FACTOR\n );\n animation.current =\n current + (v * config.velocityFactor * deltaTime) / 1000;\n animation.velocity = v;\n animation.lastTimestamp = now;\n\n if (config.clamp) {\n if (initialVelocity < 0 && animation.current <= config.clamp[0]) {\n animation.current = config.clamp[0];\n return true;\n } else if (\n initialVelocity > 0 &&\n animation.current >= config.clamp[1]\n ) {\n animation.current = config.clamp[1];\n return true;\n }\n }\n\n return Math.abs(v) < VELOCITY_EPS;\n };\n }\n\n function validateConfig(): void {\n if (config.clamp) {\n if (!Array.isArray(config.clamp)) {\n throw Error(\n `config.clamp must be an array but is ${typeof config.clamp}`\n );\n }\n if (config.clamp.length !== 2) {\n throw Error(\n `clamp array must contain 2 items but is given ${config.clamp.length}`\n );\n }\n }\n if (config.velocityFactor <= 0) {\n throw Error(\n `config.velocityFactor must be greather then 0 but is ${config.velocityFactor}`\n );\n }\n if (config.rubberBandEffect && !config.clamp) {\n throw Error(\n 'You need to set `clamp` property when using `rubberBandEffect`.'\n );\n }\n }\n\n function onStart(\n animation: DecayAnimation,\n value: number,\n now: Timestamp\n ): void {\n animation.current = value;\n animation.lastTimestamp = now;\n animation.startTimestamp = now;\n animation.initialVelocity = config.velocity;\n validateConfig();\n }\n\n return {\n onFrame: decay,\n onStart,\n callback,\n velocity: config.velocity ?? 0,\n initialVelocity: 0,\n current: 0,\n lastTimestamp: 0,\n startTimestamp: 0,\n } as DecayAnimation;\n });\n}\n"],"mappings":"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"}
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.withDelay = withDelay;
7
-
8
7
  var _util = require("./util");
9
-
10
8
  function withDelay(delayMs, _nextAnimation) {
11
9
  'worklet';
12
10
 
@@ -14,54 +12,45 @@ function withDelay(delayMs, _nextAnimation) {
14
12
  'worklet';
15
13
 
16
14
  const nextAnimation = typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;
17
-
18
15
  function delay(animation, now) {
19
16
  const {
20
17
  startTime,
21
18
  started,
22
19
  previousAnimation
23
20
  } = animation;
24
-
25
21
  if (now - startTime > delayMs) {
26
22
  if (!started) {
27
23
  nextAnimation.onStart(nextAnimation, animation.current, now, previousAnimation);
28
24
  animation.previousAnimation = null;
29
25
  animation.started = true;
30
26
  }
31
-
32
27
  const finished = nextAnimation.onFrame(nextAnimation, now);
33
28
  animation.current = nextAnimation.current;
34
29
  return finished;
35
30
  } else if (previousAnimation) {
36
31
  const finished = previousAnimation.finished || previousAnimation.onFrame(previousAnimation, now);
37
32
  animation.current = previousAnimation.current;
38
-
39
33
  if (finished) {
40
34
  animation.previousAnimation = null;
41
35
  }
42
36
  }
43
-
44
37
  return false;
45
38
  }
46
-
47
39
  function onStart(animation, value, now, previousAnimation) {
48
40
  animation.startTime = now;
49
41
  animation.started = false;
50
42
  animation.current = value;
51
-
52
43
  if (previousAnimation === animation) {
53
44
  animation.previousAnimation = previousAnimation.previousAnimation;
54
45
  } else {
55
46
  animation.previousAnimation = previousAnimation;
56
47
  }
57
48
  }
58
-
59
49
  const callback = finished => {
60
50
  if (nextAnimation.callback) {
61
51
  nextAnimation.callback(finished);
62
52
  }
63
53
  };
64
-
65
54
  return {
66
55
  isHigherOrder: true,
67
56
  onFrame: delay,
@@ -1 +1 @@
1
- {"version":3,"names":["withDelay","delayMs","_nextAnimation","defineAnimation","nextAnimation","delay","animation","now","startTime","started","previousAnimation","onStart","current","finished","onFrame","value","callback","isHigherOrder"],"sources":["delay.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport { Animation, Timestamp, AnimatableValue } from '../commonTypes';\nimport { NextAnimation, DelayAnimation } from './commonTypes';\n\nexport function withDelay(\n delayMs: number,\n _nextAnimation: NextAnimation<DelayAnimation>\n): Animation<DelayAnimation> {\n 'worklet';\n return defineAnimation<DelayAnimation>(_nextAnimation, () => {\n 'worklet';\n const nextAnimation =\n typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n\n function delay(animation: DelayAnimation, now: Timestamp): boolean {\n const { startTime, started, previousAnimation } = animation;\n\n if (now - startTime > delayMs) {\n if (!started) {\n nextAnimation.onStart(\n nextAnimation,\n animation.current,\n now,\n previousAnimation as DelayAnimation\n );\n animation.previousAnimation = null;\n animation.started = true;\n }\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n return finished;\n } else if (previousAnimation) {\n const finished =\n previousAnimation.finished ||\n previousAnimation.onFrame(previousAnimation, now);\n animation.current = previousAnimation.current;\n if (finished) {\n animation.previousAnimation = null;\n }\n }\n return false;\n }\n\n function onStart(\n animation: DelayAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: DelayAnimation\n ): void {\n animation.startTime = now;\n animation.started = false;\n animation.current = value;\n if (previousAnimation === animation) {\n animation.previousAnimation = previousAnimation.previousAnimation;\n } else {\n animation.previousAnimation = previousAnimation;\n }\n }\n\n const callback = (finished?: boolean): void => {\n if (nextAnimation.callback) {\n nextAnimation.callback(finished);\n }\n };\n\n return {\n isHigherOrder: true,\n onFrame: delay,\n onStart,\n current: nextAnimation.current,\n callback,\n previousAnimation: null,\n startTime: 0,\n started: false,\n };\n });\n}\n"],"mappings":";;;;;;;AAAA;;AAIO,SAASA,SAAT,CACLC,OADK,EAELC,cAFK,EAGsB;EAC3B;;EACA,OAAO,IAAAC,qBAAA,EAAgCD,cAAhC,EAAgD,MAAM;IAC3D;;IACA,MAAME,aAAa,GACjB,OAAOF,cAAP,KAA0B,UAA1B,GAAuCA,cAAc,EAArD,GAA0DA,cAD5D;;IAGA,SAASG,KAAT,CAAeC,SAAf,EAA0CC,GAA1C,EAAmE;MACjE,MAAM;QAAEC,SAAF;QAAaC,OAAb;QAAsBC;MAAtB,IAA4CJ,SAAlD;;MAEA,IAAIC,GAAG,GAAGC,SAAN,GAAkBP,OAAtB,EAA+B;QAC7B,IAAI,CAACQ,OAAL,EAAc;UACZL,aAAa,CAACO,OAAd,CACEP,aADF,EAEEE,SAAS,CAACM,OAFZ,EAGEL,GAHF,EAIEG,iBAJF;UAMAJ,SAAS,CAACI,iBAAV,GAA8B,IAA9B;UACAJ,SAAS,CAACG,OAAV,GAAoB,IAApB;QACD;;QACD,MAAMI,QAAQ,GAAGT,aAAa,CAACU,OAAd,CAAsBV,aAAtB,EAAqCG,GAArC,CAAjB;QACAD,SAAS,CAACM,OAAV,GAAoBR,aAAa,CAACQ,OAAlC;QACA,OAAOC,QAAP;MACD,CAdD,MAcO,IAAIH,iBAAJ,EAAuB;QAC5B,MAAMG,QAAQ,GACZH,iBAAiB,CAACG,QAAlB,IACAH,iBAAiB,CAACI,OAAlB,CAA0BJ,iBAA1B,EAA6CH,GAA7C,CAFF;QAGAD,SAAS,CAACM,OAAV,GAAoBF,iBAAiB,CAACE,OAAtC;;QACA,IAAIC,QAAJ,EAAc;UACZP,SAAS,CAACI,iBAAV,GAA8B,IAA9B;QACD;MACF;;MACD,OAAO,KAAP;IACD;;IAED,SAASC,OAAT,CACEL,SADF,EAEES,KAFF,EAGER,GAHF,EAIEG,iBAJF,EAKQ;MACNJ,SAAS,CAACE,SAAV,GAAsBD,GAAtB;MACAD,SAAS,CAACG,OAAV,GAAoB,KAApB;MACAH,SAAS,CAACM,OAAV,GAAoBG,KAApB;;MACA,IAAIL,iBAAiB,KAAKJ,SAA1B,EAAqC;QACnCA,SAAS,CAACI,iBAAV,GAA8BA,iBAAiB,CAACA,iBAAhD;MACD,CAFD,MAEO;QACLJ,SAAS,CAACI,iBAAV,GAA8BA,iBAA9B;MACD;IACF;;IAED,MAAMM,QAAQ,GAAIH,QAAD,IAA8B;MAC7C,IAAIT,aAAa,CAACY,QAAlB,EAA4B;QAC1BZ,aAAa,CAACY,QAAd,CAAuBH,QAAvB;MACD;IACF,CAJD;;IAMA,OAAO;MACLI,aAAa,EAAE,IADV;MAELH,OAAO,EAAET,KAFJ;MAGLM,OAHK;MAILC,OAAO,EAAER,aAAa,CAACQ,OAJlB;MAKLI,QALK;MAMLN,iBAAiB,EAAE,IANd;MAOLF,SAAS,EAAE,CAPN;MAQLC,OAAO,EAAE;IARJ,CAAP;EAUD,CAlEM,CAAP;AAmED"}
1
+ {"version":3,"names":["_util","require","withDelay","delayMs","_nextAnimation","defineAnimation","nextAnimation","delay","animation","now","startTime","started","previousAnimation","onStart","current","finished","onFrame","value","callback","isHigherOrder"],"sources":["delay.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport { Animation, Timestamp, AnimatableValue } from '../commonTypes';\nimport { NextAnimation, DelayAnimation } from './commonTypes';\n\nexport function withDelay(\n delayMs: number,\n _nextAnimation: NextAnimation<DelayAnimation>\n): Animation<DelayAnimation> {\n 'worklet';\n return defineAnimation<DelayAnimation>(_nextAnimation, () => {\n 'worklet';\n const nextAnimation =\n typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n\n function delay(animation: DelayAnimation, now: Timestamp): boolean {\n const { startTime, started, previousAnimation } = animation;\n\n if (now - startTime > delayMs) {\n if (!started) {\n nextAnimation.onStart(\n nextAnimation,\n animation.current,\n now,\n previousAnimation as DelayAnimation\n );\n animation.previousAnimation = null;\n animation.started = true;\n }\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n return finished;\n } else if (previousAnimation) {\n const finished =\n previousAnimation.finished ||\n previousAnimation.onFrame(previousAnimation, now);\n animation.current = previousAnimation.current;\n if (finished) {\n animation.previousAnimation = null;\n }\n }\n return false;\n }\n\n function onStart(\n animation: DelayAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: DelayAnimation\n ): void {\n animation.startTime = now;\n animation.started = false;\n animation.current = value;\n if (previousAnimation === animation) {\n animation.previousAnimation = previousAnimation.previousAnimation;\n } else {\n animation.previousAnimation = previousAnimation;\n }\n }\n\n const callback = (finished?: boolean): void => {\n if (nextAnimation.callback) {\n nextAnimation.callback(finished);\n }\n };\n\n return {\n isHigherOrder: true,\n onFrame: delay,\n onStart,\n current: nextAnimation.current,\n callback,\n previousAnimation: null,\n startTime: 0,\n started: false,\n };\n });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAIO,SAASC,SAASA,CACvBC,OAAe,EACfC,cAA6C,EAClB;EAC3B,SAAS;;EACT,OAAO,IAAAC,qBAAe,EAAiBD,cAAc,EAAE,MAAM;IAC3D,SAAS;;IACT,MAAME,aAAa,GACjB,OAAOF,cAAc,KAAK,UAAU,GAAGA,cAAc,EAAE,GAAGA,cAAc;IAE1E,SAASG,KAAKA,CAACC,SAAyB,EAAEC,GAAc,EAAW;MACjE,MAAM;QAAEC,SAAS;QAAEC,OAAO;QAAEC;MAAkB,CAAC,GAAGJ,SAAS;MAE3D,IAAIC,GAAG,GAAGC,SAAS,GAAGP,OAAO,EAAE;QAC7B,IAAI,CAACQ,OAAO,EAAE;UACZL,aAAa,CAACO,OAAO,CACnBP,aAAa,EACbE,SAAS,CAACM,OAAO,EACjBL,GAAG,EACHG,iBAAiB,CAClB;UACDJ,SAAS,CAACI,iBAAiB,GAAG,IAAI;UAClCJ,SAAS,CAACG,OAAO,GAAG,IAAI;QAC1B;QACA,MAAMI,QAAQ,GAAGT,aAAa,CAACU,OAAO,CAACV,aAAa,EAAEG,GAAG,CAAC;QAC1DD,SAAS,CAACM,OAAO,GAAGR,aAAa,CAACQ,OAAO;QACzC,OAAOC,QAAQ;MACjB,CAAC,MAAM,IAAIH,iBAAiB,EAAE;QAC5B,MAAMG,QAAQ,GACZH,iBAAiB,CAACG,QAAQ,IAC1BH,iBAAiB,CAACI,OAAO,CAACJ,iBAAiB,EAAEH,GAAG,CAAC;QACnDD,SAAS,CAACM,OAAO,GAAGF,iBAAiB,CAACE,OAAO;QAC7C,IAAIC,QAAQ,EAAE;UACZP,SAAS,CAACI,iBAAiB,GAAG,IAAI;QACpC;MACF;MACA,OAAO,KAAK;IACd;IAEA,SAASC,OAAOA,CACdL,SAAyB,EACzBS,KAAsB,EACtBR,GAAc,EACdG,iBAAiC,EAC3B;MACNJ,SAAS,CAACE,SAAS,GAAGD,GAAG;MACzBD,SAAS,CAACG,OAAO,GAAG,KAAK;MACzBH,SAAS,CAACM,OAAO,GAAGG,KAAK;MACzB,IAAIL,iBAAiB,KAAKJ,SAAS,EAAE;QACnCA,SAAS,CAACI,iBAAiB,GAAGA,iBAAiB,CAACA,iBAAiB;MACnE,CAAC,MAAM;QACLJ,SAAS,CAACI,iBAAiB,GAAGA,iBAAiB;MACjD;IACF;IAEA,MAAMM,QAAQ,GAAIH,QAAkB,IAAW;MAC7C,IAAIT,aAAa,CAACY,QAAQ,EAAE;QAC1BZ,aAAa,CAACY,QAAQ,CAACH,QAAQ,CAAC;MAClC;IACF,CAAC;IAED,OAAO;MACLI,aAAa,EAAE,IAAI;MACnBH,OAAO,EAAET,KAAK;MACdM,OAAO;MACPC,OAAO,EAAER,aAAa,CAACQ,OAAO;MAC9BI,QAAQ;MACRN,iBAAiB,EAAE,IAAI;MACvBF,SAAS,EAAE,CAAC;MACZC,OAAO,EAAE;IACX,CAAC;EACH,CAAC,CAAC;AACJ"}
@@ -63,20 +63,12 @@ Object.defineProperty(exports, "withTiming", {
63
63
  return _timing.withTiming;
64
64
  }
65
65
  });
66
-
67
66
  var _util = require("./util");
68
-
69
67
  var _timing = require("./timing");
70
-
71
68
  var _spring = require("./spring");
72
-
73
69
  var _decay = require("./decay");
74
-
75
70
  var _delay = require("./delay");
76
-
77
71
  var _repeat = require("./repeat");
78
-
79
72
  var _sequence = require("./sequence");
80
-
81
73
  var _styleAnimation = require("./styleAnimation");
82
74
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export type {\n HigherOrderAnimation,\n NextAnimation,\n DelayAnimation,\n RepeatAnimation,\n SequenceAnimation,\n StyleLayoutAnimation,\n} from './commonTypes';\nexport { cancelAnimation, defineAnimation, initialUpdaterRun } from './util';\nexport { withTiming } from './timing';\nexport type { TimingAnimation } from './timing';\nexport { withSpring } from './spring';\nexport type { SpringAnimation } from './spring';\nexport { withDecay } from './decay';\nexport type { DecayAnimation } from './decay';\nexport { withDelay } from './delay';\nexport { withRepeat } from './repeat';\nexport { withSequence } from './sequence';\nexport { withStyleAnimation } from './styleAnimation';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA;;AACA;;AAEA;;AAEA;;AAEA;;AACA;;AACA;;AACA"}
1
+ {"version":3,"names":["_util","require","_timing","_spring","_decay","_delay","_repeat","_sequence","_styleAnimation"],"sources":["index.ts"],"sourcesContent":["export type {\n HigherOrderAnimation,\n NextAnimation,\n DelayAnimation,\n RepeatAnimation,\n SequenceAnimation,\n StyleLayoutAnimation,\n} from './commonTypes';\nexport { cancelAnimation, defineAnimation, initialUpdaterRun } from './util';\nexport { withTiming } from './timing';\nexport type { TimingAnimation } from './timing';\nexport { withSpring } from './spring';\nexport type { SpringAnimation } from './spring';\nexport { withDecay } from './decay';\nexport type { DecayAnimation } from './decay';\nexport { withDelay } from './delay';\nexport { withRepeat } from './repeat';\nexport { withSequence } from './sequence';\nexport { withStyleAnimation } from './styleAnimation';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA"}
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.withRepeat = withRepeat;
7
-
8
7
  var _util = require("./util");
9
-
10
8
  function withRepeat(_nextAnimation) {
11
9
  'worklet';
12
10
 
@@ -17,49 +15,36 @@ function withRepeat(_nextAnimation) {
17
15
  'worklet';
18
16
 
19
17
  const nextAnimation = typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;
20
-
21
18
  function repeat(animation, now) {
22
19
  const finished = nextAnimation.onFrame(nextAnimation, now);
23
20
  animation.current = nextAnimation.current;
24
-
25
21
  if (finished) {
26
- animation.reps += 1; // call inner animation's callback on every repetition
22
+ animation.reps += 1;
23
+ // call inner animation's callback on every repetition
27
24
  // as the second argument the animation's current value is passed
28
-
29
25
  if (nextAnimation.callback) {
30
- nextAnimation.callback(true
31
- /* finished */
32
- , animation.current);
26
+ nextAnimation.callback(true /* finished */, animation.current);
33
27
  }
34
-
35
28
  if (numberOfReps > 0 && animation.reps >= numberOfReps) {
36
29
  return true;
37
30
  }
38
-
39
31
  const startValue = reverse ? nextAnimation.current : animation.startValue;
40
-
41
32
  if (reverse) {
42
33
  nextAnimation.toValue = animation.startValue;
43
34
  animation.startValue = startValue;
44
35
  }
45
-
46
36
  nextAnimation.onStart(nextAnimation, startValue, now, nextAnimation.previousAnimation);
47
37
  return false;
48
38
  }
49
-
50
39
  return false;
51
40
  }
52
-
53
41
  const repCallback = finished => {
54
42
  if (callback) {
55
43
  callback(finished);
56
- } // when cancelled call inner animation's callback
57
-
58
-
44
+ }
45
+ // when cancelled call inner animation's callback
59
46
  if (!finished && nextAnimation.callback) {
60
- nextAnimation.callback(false
61
- /* finished */
62
- );
47
+ nextAnimation.callback(false /* finished */);
63
48
  }
64
49
  };
65
50
 
@@ -68,7 +53,6 @@ function withRepeat(_nextAnimation) {
68
53
  animation.reps = 0;
69
54
  nextAnimation.onStart(nextAnimation, value, now, previousAnimation);
70
55
  }
71
-
72
56
  return {
73
57
  isHigherOrder: true,
74
58
  onFrame: repeat,
@@ -1 +1 @@
1
- {"version":3,"names":["withRepeat","_nextAnimation","numberOfReps","reverse","callback","defineAnimation","nextAnimation","repeat","animation","now","finished","onFrame","current","reps","startValue","toValue","onStart","previousAnimation","repCallback","value","isHigherOrder"],"sources":["repeat.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport {\n Animation,\n AnimationCallback,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\nimport { NextAnimation, RepeatAnimation } from './commonTypes';\n\nexport interface InnerRepeatAnimation\n extends Omit<RepeatAnimation, 'toValue' | 'startValue'> {\n toValue: number;\n startValue: number;\n}\n\nexport function withRepeat(\n _nextAnimation: NextAnimation<RepeatAnimation>,\n numberOfReps = 2,\n reverse = false,\n callback?: AnimationCallback\n): Animation<RepeatAnimation> {\n 'worklet';\n\n return defineAnimation<RepeatAnimation>(_nextAnimation, () => {\n 'worklet';\n\n const nextAnimation: RepeatAnimation =\n typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n\n function repeat(animation: InnerRepeatAnimation, now: Timestamp): boolean {\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n if (finished) {\n animation.reps += 1;\n // call inner animation's callback on every repetition\n // as the second argument the animation's current value is passed\n if (nextAnimation.callback) {\n nextAnimation.callback(true /* finished */, animation.current);\n }\n if (numberOfReps > 0 && animation.reps >= numberOfReps) {\n return true;\n }\n\n const startValue = reverse\n ? (nextAnimation.current as number)\n : animation.startValue;\n if (reverse) {\n nextAnimation.toValue = animation.startValue;\n animation.startValue = startValue;\n }\n nextAnimation.onStart(\n nextAnimation,\n startValue,\n now,\n nextAnimation.previousAnimation as RepeatAnimation\n );\n return false;\n }\n return false;\n }\n\n const repCallback = (finished: boolean): void => {\n if (callback) {\n callback(finished);\n }\n // when cancelled call inner animation's callback\n if (!finished && nextAnimation.callback) {\n nextAnimation.callback(false /* finished */);\n }\n };\n\n function onStart(\n animation: RepeatAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: RepeatAnimation\n ): void {\n animation.startValue = value;\n animation.reps = 0;\n nextAnimation.onStart(nextAnimation, value, now, previousAnimation);\n }\n\n return {\n isHigherOrder: true,\n onFrame: repeat,\n onStart,\n reps: 0,\n current: nextAnimation.current,\n callback: repCallback,\n startValue: 0,\n } as RepeatAnimation;\n });\n}\n"],"mappings":";;;;;;;AAAA;;AAeO,SAASA,UAAT,CACLC,cADK,EAKuB;EAC5B;;EAD4B,IAH5BC,YAG4B,uEAHb,CAGa;EAAA,IAF5BC,OAE4B,uEAFlB,KAEkB;EAAA,IAD5BC,QAC4B;EAG5B,OAAO,IAAAC,qBAAA,EAAiCJ,cAAjC,EAAiD,MAAM;IAC5D;;IAEA,MAAMK,aAA8B,GAClC,OAAOL,cAAP,KAA0B,UAA1B,GAAuCA,cAAc,EAArD,GAA0DA,cAD5D;;IAGA,SAASM,MAAT,CAAgBC,SAAhB,EAAiDC,GAAjD,EAA0E;MACxE,MAAMC,QAAQ,GAAGJ,aAAa,CAACK,OAAd,CAAsBL,aAAtB,EAAqCG,GAArC,CAAjB;MACAD,SAAS,CAACI,OAAV,GAAoBN,aAAa,CAACM,OAAlC;;MACA,IAAIF,QAAJ,EAAc;QACZF,SAAS,CAACK,IAAV,IAAkB,CAAlB,CADY,CAEZ;QACA;;QACA,IAAIP,aAAa,CAACF,QAAlB,EAA4B;UAC1BE,aAAa,CAACF,QAAd,CAAuB;UAAK;UAA5B,EAA4CI,SAAS,CAACI,OAAtD;QACD;;QACD,IAAIV,YAAY,GAAG,CAAf,IAAoBM,SAAS,CAACK,IAAV,IAAkBX,YAA1C,EAAwD;UACtD,OAAO,IAAP;QACD;;QAED,MAAMY,UAAU,GAAGX,OAAO,GACrBG,aAAa,CAACM,OADO,GAEtBJ,SAAS,CAACM,UAFd;;QAGA,IAAIX,OAAJ,EAAa;UACXG,aAAa,CAACS,OAAd,GAAwBP,SAAS,CAACM,UAAlC;UACAN,SAAS,CAACM,UAAV,GAAuBA,UAAvB;QACD;;QACDR,aAAa,CAACU,OAAd,CACEV,aADF,EAEEQ,UAFF,EAGEL,GAHF,EAIEH,aAAa,CAACW,iBAJhB;QAMA,OAAO,KAAP;MACD;;MACD,OAAO,KAAP;IACD;;IAED,MAAMC,WAAW,GAAIR,QAAD,IAA6B;MAC/C,IAAIN,QAAJ,EAAc;QACZA,QAAQ,CAACM,QAAD,CAAR;MACD,CAH8C,CAI/C;;;MACA,IAAI,CAACA,QAAD,IAAaJ,aAAa,CAACF,QAA/B,EAAyC;QACvCE,aAAa,CAACF,QAAd,CAAuB;QAAM;QAA7B;MACD;IACF,CARD;;IAUA,SAASY,OAAT,CACER,SADF,EAEEW,KAFF,EAGEV,GAHF,EAIEQ,iBAJF,EAKQ;MACNT,SAAS,CAACM,UAAV,GAAuBK,KAAvB;MACAX,SAAS,CAACK,IAAV,GAAiB,CAAjB;MACAP,aAAa,CAACU,OAAd,CAAsBV,aAAtB,EAAqCa,KAArC,EAA4CV,GAA5C,EAAiDQ,iBAAjD;IACD;;IAED,OAAO;MACLG,aAAa,EAAE,IADV;MAELT,OAAO,EAAEJ,MAFJ;MAGLS,OAHK;MAILH,IAAI,EAAE,CAJD;MAKLD,OAAO,EAAEN,aAAa,CAACM,OALlB;MAMLR,QAAQ,EAAEc,WANL;MAOLJ,UAAU,EAAE;IAPP,CAAP;EASD,CApEM,CAAP;AAqED"}
1
+ {"version":3,"names":["_util","require","withRepeat","_nextAnimation","numberOfReps","arguments","length","undefined","reverse","callback","defineAnimation","nextAnimation","repeat","animation","now","finished","onFrame","current","reps","startValue","toValue","onStart","previousAnimation","repCallback","value","isHigherOrder"],"sources":["repeat.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport {\n Animation,\n AnimationCallback,\n AnimatableValue,\n Timestamp,\n} from '../commonTypes';\nimport { NextAnimation, RepeatAnimation } from './commonTypes';\n\nexport interface InnerRepeatAnimation\n extends Omit<RepeatAnimation, 'toValue' | 'startValue'> {\n toValue: number;\n startValue: number;\n}\n\nexport function withRepeat(\n _nextAnimation: NextAnimation<RepeatAnimation>,\n numberOfReps = 2,\n reverse = false,\n callback?: AnimationCallback\n): Animation<RepeatAnimation> {\n 'worklet';\n\n return defineAnimation<RepeatAnimation>(_nextAnimation, () => {\n 'worklet';\n\n const nextAnimation: RepeatAnimation =\n typeof _nextAnimation === 'function' ? _nextAnimation() : _nextAnimation;\n\n function repeat(animation: InnerRepeatAnimation, now: Timestamp): boolean {\n const finished = nextAnimation.onFrame(nextAnimation, now);\n animation.current = nextAnimation.current;\n if (finished) {\n animation.reps += 1;\n // call inner animation's callback on every repetition\n // as the second argument the animation's current value is passed\n if (nextAnimation.callback) {\n nextAnimation.callback(true /* finished */, animation.current);\n }\n if (numberOfReps > 0 && animation.reps >= numberOfReps) {\n return true;\n }\n\n const startValue = reverse\n ? (nextAnimation.current as number)\n : animation.startValue;\n if (reverse) {\n nextAnimation.toValue = animation.startValue;\n animation.startValue = startValue;\n }\n nextAnimation.onStart(\n nextAnimation,\n startValue,\n now,\n nextAnimation.previousAnimation as RepeatAnimation\n );\n return false;\n }\n return false;\n }\n\n const repCallback = (finished: boolean): void => {\n if (callback) {\n callback(finished);\n }\n // when cancelled call inner animation's callback\n if (!finished && nextAnimation.callback) {\n nextAnimation.callback(false /* finished */);\n }\n };\n\n function onStart(\n animation: RepeatAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: RepeatAnimation\n ): void {\n animation.startValue = value;\n animation.reps = 0;\n nextAnimation.onStart(nextAnimation, value, now, previousAnimation);\n }\n\n return {\n isHigherOrder: true,\n onFrame: repeat,\n onStart,\n reps: 0,\n current: nextAnimation.current,\n callback: repCallback,\n startValue: 0,\n } as RepeatAnimation;\n });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAeO,SAASC,UAAUA,CACxBC,cAA8C,EAIlB;EAC5B,SAAS;;EAAC,IAJVC,YAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,IAChBG,OAAO,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IACfI,QAA4B,GAAAJ,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAI5B,OAAO,IAAAG,qBAAe,EAAkBP,cAAc,EAAE,MAAM;IAC5D,SAAS;;IAET,MAAMQ,aAA8B,GAClC,OAAOR,cAAc,KAAK,UAAU,GAAGA,cAAc,EAAE,GAAGA,cAAc;IAE1E,SAASS,MAAMA,CAACC,SAA+B,EAAEC,GAAc,EAAW;MACxE,MAAMC,QAAQ,GAAGJ,aAAa,CAACK,OAAO,CAACL,aAAa,EAAEG,GAAG,CAAC;MAC1DD,SAAS,CAACI,OAAO,GAAGN,aAAa,CAACM,OAAO;MACzC,IAAIF,QAAQ,EAAE;QACZF,SAAS,CAACK,IAAI,IAAI,CAAC;QACnB;QACA;QACA,IAAIP,aAAa,CAACF,QAAQ,EAAE;UAC1BE,aAAa,CAACF,QAAQ,CAAC,IAAI,CAAC,gBAAgBI,SAAS,CAACI,OAAO,CAAC;QAChE;QACA,IAAIb,YAAY,GAAG,CAAC,IAAIS,SAAS,CAACK,IAAI,IAAId,YAAY,EAAE;UACtD,OAAO,IAAI;QACb;QAEA,MAAMe,UAAU,GAAGX,OAAO,GACrBG,aAAa,CAACM,OAAO,GACtBJ,SAAS,CAACM,UAAU;QACxB,IAAIX,OAAO,EAAE;UACXG,aAAa,CAACS,OAAO,GAAGP,SAAS,CAACM,UAAU;UAC5CN,SAAS,CAACM,UAAU,GAAGA,UAAU;QACnC;QACAR,aAAa,CAACU,OAAO,CACnBV,aAAa,EACbQ,UAAU,EACVL,GAAG,EACHH,aAAa,CAACW,iBAAiB,CAChC;QACD,OAAO,KAAK;MACd;MACA,OAAO,KAAK;IACd;IAEA,MAAMC,WAAW,GAAIR,QAAiB,IAAW;MAC/C,IAAIN,QAAQ,EAAE;QACZA,QAAQ,CAACM,QAAQ,CAAC;MACpB;MACA;MACA,IAAI,CAACA,QAAQ,IAAIJ,aAAa,CAACF,QAAQ,EAAE;QACvCE,aAAa,CAACF,QAAQ,CAAC,KAAK,CAAC,eAAe;MAC9C;IACF,CAAC;;IAED,SAASY,OAAOA,CACdR,SAA0B,EAC1BW,KAAsB,EACtBV,GAAc,EACdQ,iBAAkC,EAC5B;MACNT,SAAS,CAACM,UAAU,GAAGK,KAAK;MAC5BX,SAAS,CAACK,IAAI,GAAG,CAAC;MAClBP,aAAa,CAACU,OAAO,CAACV,aAAa,EAAEa,KAAK,EAAEV,GAAG,EAAEQ,iBAAiB,CAAC;IACrE;IAEA,OAAO;MACLG,aAAa,EAAE,IAAI;MACnBT,OAAO,EAAEJ,MAAM;MACfS,OAAO;MACPH,IAAI,EAAE,CAAC;MACPD,OAAO,EAAEN,aAAa,CAACM,OAAO;MAC9BR,QAAQ,EAAEc,WAAW;MACrBJ,UAAU,EAAE;IACd,CAAC;EACH,CAAC,CAAC;AACJ"}
@@ -4,16 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.withSequence = withSequence;
7
-
8
7
  var _util = require("./util");
9
-
10
8
  function withSequence() {
11
9
  'worklet';
12
10
 
13
11
  for (var _len = arguments.length, _animations = new Array(_len), _key = 0; _key < _len; _key++) {
14
12
  _animations[_key] = arguments[_key];
15
13
  }
16
-
17
14
  return (0, _util.defineAnimation)(_animations[0], () => {
18
15
  'worklet';
19
16
 
@@ -22,62 +19,48 @@ function withSequence() {
22
19
  result.finished = false;
23
20
  return result;
24
21
  });
25
-
26
22
  const firstAnimation = animations[0];
27
-
28
23
  const callback = finished => {
29
24
  if (finished) {
30
25
  // we want to call the callback after every single animation
31
26
  // not after all of them
32
27
  return;
33
- } // this is going to be called only if sequence has been cancelled
34
-
35
-
28
+ }
29
+ // this is going to be called only if sequence has been cancelled
36
30
  animations.forEach(animation => {
37
31
  if (typeof animation.callback === 'function' && !animation.finished) {
38
32
  animation.callback(finished);
39
33
  }
40
34
  });
41
35
  };
42
-
43
36
  function sequence(animation, now) {
44
37
  const currentAnim = animations[animation.animationIndex];
45
38
  const finished = currentAnim.onFrame(currentAnim, now);
46
39
  animation.current = currentAnim.current;
47
-
48
40
  if (finished) {
49
41
  // we want to call the callback after every single animation
50
42
  if (currentAnim.callback) {
51
- currentAnim.callback(true
52
- /* finished */
53
- );
43
+ currentAnim.callback(true /* finished */);
54
44
  }
55
45
 
56
46
  currentAnim.finished = true;
57
47
  animation.animationIndex += 1;
58
-
59
48
  if (animation.animationIndex < animations.length) {
60
49
  const nextAnim = animations[animation.animationIndex];
61
50
  nextAnim.onStart(nextAnim, currentAnim.current, now, currentAnim);
62
51
  return false;
63
52
  }
64
-
65
53
  return true;
66
54
  }
67
-
68
55
  return false;
69
56
  }
70
-
71
57
  function onStart(animation, value, now, previousAnimation) {
72
58
  animation.animationIndex = 0;
73
-
74
59
  if (previousAnimation === undefined) {
75
60
  previousAnimation = animations[animations.length - 1];
76
61
  }
77
-
78
62
  firstAnimation.onStart(firstAnimation, value, now, previousAnimation);
79
63
  }
80
-
81
64
  return {
82
65
  isHigherOrder: true,
83
66
  onFrame: sequence,
@@ -1 +1 @@
1
- {"version":3,"names":["withSequence","_animations","defineAnimation","animations","map","a","result","finished","firstAnimation","callback","forEach","animation","sequence","now","currentAnim","animationIndex","onFrame","current","length","nextAnim","onStart","value","previousAnimation","undefined","isHigherOrder"],"sources":["sequence.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport { NextAnimation, SequenceAnimation } from './commonTypes';\nimport {\n Animation,\n AnimatableValue,\n AnimationObject,\n Timestamp,\n} from '../commonTypes';\n\nexport function withSequence(\n ..._animations: NextAnimation<AnimationObject>[]\n): Animation<SequenceAnimation> {\n 'worklet';\n return defineAnimation<SequenceAnimation>(\n _animations[0] as SequenceAnimation,\n () => {\n 'worklet';\n const animations = _animations.map((a) => {\n const result = typeof a === 'function' ? a() : a;\n result.finished = false;\n return result;\n });\n const firstAnimation = animations[0];\n\n const callback = (finished: boolean): void => {\n if (finished) {\n // we want to call the callback after every single animation\n // not after all of them\n return;\n }\n // this is going to be called only if sequence has been cancelled\n animations.forEach((animation) => {\n if (typeof animation.callback === 'function' && !animation.finished) {\n animation.callback(finished);\n }\n });\n };\n\n function sequence(animation: SequenceAnimation, now: Timestamp): boolean {\n const currentAnim = animations[animation.animationIndex];\n const finished = currentAnim.onFrame(currentAnim, now);\n animation.current = currentAnim.current;\n if (finished) {\n // we want to call the callback after every single animation\n if (currentAnim.callback) {\n currentAnim.callback(true /* finished */);\n }\n currentAnim.finished = true;\n animation.animationIndex += 1;\n if (animation.animationIndex < animations.length) {\n const nextAnim = animations[animation.animationIndex];\n nextAnim.onStart(nextAnim, currentAnim.current, now, currentAnim);\n return false;\n }\n return true;\n }\n return false;\n }\n\n function onStart(\n animation: SequenceAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: SequenceAnimation\n ): void {\n animation.animationIndex = 0;\n if (previousAnimation === undefined) {\n previousAnimation = animations[\n animations.length - 1\n ] as SequenceAnimation;\n }\n firstAnimation.onStart(firstAnimation, value, now, previousAnimation);\n }\n\n return {\n isHigherOrder: true,\n onFrame: sequence,\n onStart,\n animationIndex: 0,\n current: firstAnimation.current,\n callback,\n } as SequenceAnimation;\n }\n );\n}\n"],"mappings":";;;;;;;AAAA;;AASO,SAASA,YAAT,GAEyB;EAC9B;;EAD8B,kCAD3BC,WAC2B;IAD3BA,WAC2B;EAAA;;EAE9B,OAAO,IAAAC,qBAAA,EACLD,WAAW,CAAC,CAAD,CADN,EAEL,MAAM;IACJ;;IACA,MAAME,UAAU,GAAGF,WAAW,CAACG,GAAZ,CAAiBC,CAAD,IAAO;MACxC,MAAMC,MAAM,GAAG,OAAOD,CAAP,KAAa,UAAb,GAA0BA,CAAC,EAA3B,GAAgCA,CAA/C;MACAC,MAAM,CAACC,QAAP,GAAkB,KAAlB;MACA,OAAOD,MAAP;IACD,CAJkB,CAAnB;;IAKA,MAAME,cAAc,GAAGL,UAAU,CAAC,CAAD,CAAjC;;IAEA,MAAMM,QAAQ,GAAIF,QAAD,IAA6B;MAC5C,IAAIA,QAAJ,EAAc;QACZ;QACA;QACA;MACD,CAL2C,CAM5C;;;MACAJ,UAAU,CAACO,OAAX,CAAoBC,SAAD,IAAe;QAChC,IAAI,OAAOA,SAAS,CAACF,QAAjB,KAA8B,UAA9B,IAA4C,CAACE,SAAS,CAACJ,QAA3D,EAAqE;UACnEI,SAAS,CAACF,QAAV,CAAmBF,QAAnB;QACD;MACF,CAJD;IAKD,CAZD;;IAcA,SAASK,QAAT,CAAkBD,SAAlB,EAAgDE,GAAhD,EAAyE;MACvE,MAAMC,WAAW,GAAGX,UAAU,CAACQ,SAAS,CAACI,cAAX,CAA9B;MACA,MAAMR,QAAQ,GAAGO,WAAW,CAACE,OAAZ,CAAoBF,WAApB,EAAiCD,GAAjC,CAAjB;MACAF,SAAS,CAACM,OAAV,GAAoBH,WAAW,CAACG,OAAhC;;MACA,IAAIV,QAAJ,EAAc;QACZ;QACA,IAAIO,WAAW,CAACL,QAAhB,EAA0B;UACxBK,WAAW,CAACL,QAAZ,CAAqB;UAAK;UAA1B;QACD;;QACDK,WAAW,CAACP,QAAZ,GAAuB,IAAvB;QACAI,SAAS,CAACI,cAAV,IAA4B,CAA5B;;QACA,IAAIJ,SAAS,CAACI,cAAV,GAA2BZ,UAAU,CAACe,MAA1C,EAAkD;UAChD,MAAMC,QAAQ,GAAGhB,UAAU,CAACQ,SAAS,CAACI,cAAX,CAA3B;UACAI,QAAQ,CAACC,OAAT,CAAiBD,QAAjB,EAA2BL,WAAW,CAACG,OAAvC,EAAgDJ,GAAhD,EAAqDC,WAArD;UACA,OAAO,KAAP;QACD;;QACD,OAAO,IAAP;MACD;;MACD,OAAO,KAAP;IACD;;IAED,SAASM,OAAT,CACET,SADF,EAEEU,KAFF,EAGER,GAHF,EAIES,iBAJF,EAKQ;MACNX,SAAS,CAACI,cAAV,GAA2B,CAA3B;;MACA,IAAIO,iBAAiB,KAAKC,SAA1B,EAAqC;QACnCD,iBAAiB,GAAGnB,UAAU,CAC5BA,UAAU,CAACe,MAAX,GAAoB,CADQ,CAA9B;MAGD;;MACDV,cAAc,CAACY,OAAf,CAAuBZ,cAAvB,EAAuCa,KAAvC,EAA8CR,GAA9C,EAAmDS,iBAAnD;IACD;;IAED,OAAO;MACLE,aAAa,EAAE,IADV;MAELR,OAAO,EAAEJ,QAFJ;MAGLQ,OAHK;MAILL,cAAc,EAAE,CAJX;MAKLE,OAAO,EAAET,cAAc,CAACS,OALnB;MAMLR;IANK,CAAP;EAQD,CArEI,CAAP;AAuED"}
1
+ {"version":3,"names":["_util","require","withSequence","_len","arguments","length","_animations","Array","_key","defineAnimation","animations","map","a","result","finished","firstAnimation","callback","forEach","animation","sequence","now","currentAnim","animationIndex","onFrame","current","nextAnim","onStart","value","previousAnimation","undefined","isHigherOrder"],"sources":["sequence.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport { NextAnimation, SequenceAnimation } from './commonTypes';\nimport {\n Animation,\n AnimatableValue,\n AnimationObject,\n Timestamp,\n} from '../commonTypes';\n\nexport function withSequence(\n ..._animations: NextAnimation<AnimationObject>[]\n): Animation<SequenceAnimation> {\n 'worklet';\n return defineAnimation<SequenceAnimation>(\n _animations[0] as SequenceAnimation,\n () => {\n 'worklet';\n const animations = _animations.map((a) => {\n const result = typeof a === 'function' ? a() : a;\n result.finished = false;\n return result;\n });\n const firstAnimation = animations[0];\n\n const callback = (finished: boolean): void => {\n if (finished) {\n // we want to call the callback after every single animation\n // not after all of them\n return;\n }\n // this is going to be called only if sequence has been cancelled\n animations.forEach((animation) => {\n if (typeof animation.callback === 'function' && !animation.finished) {\n animation.callback(finished);\n }\n });\n };\n\n function sequence(animation: SequenceAnimation, now: Timestamp): boolean {\n const currentAnim = animations[animation.animationIndex];\n const finished = currentAnim.onFrame(currentAnim, now);\n animation.current = currentAnim.current;\n if (finished) {\n // we want to call the callback after every single animation\n if (currentAnim.callback) {\n currentAnim.callback(true /* finished */);\n }\n currentAnim.finished = true;\n animation.animationIndex += 1;\n if (animation.animationIndex < animations.length) {\n const nextAnim = animations[animation.animationIndex];\n nextAnim.onStart(nextAnim, currentAnim.current, now, currentAnim);\n return false;\n }\n return true;\n }\n return false;\n }\n\n function onStart(\n animation: SequenceAnimation,\n value: AnimatableValue,\n now: Timestamp,\n previousAnimation: SequenceAnimation\n ): void {\n animation.animationIndex = 0;\n if (previousAnimation === undefined) {\n previousAnimation = animations[\n animations.length - 1\n ] as SequenceAnimation;\n }\n firstAnimation.onStart(firstAnimation, value, now, previousAnimation);\n }\n\n return {\n isHigherOrder: true,\n onFrame: sequence,\n onStart,\n animationIndex: 0,\n current: firstAnimation.current,\n callback,\n } as SequenceAnimation;\n }\n );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AASO,SAASC,YAAYA,CAAA,EAEI;EAC9B,SAAS;;EAAC,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAFPC,WAAW,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAXF,WAAW,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;EAAA;EAGd,OAAO,IAAAC,qBAAe,EACpBH,WAAW,CAAC,CAAC,CAAC,EACd,MAAM;IACJ,SAAS;;IACT,MAAMI,UAAU,GAAGJ,WAAW,CAACK,GAAG,CAAEC,CAAC,IAAK;MACxC,MAAMC,MAAM,GAAG,OAAOD,CAAC,KAAK,UAAU,GAAGA,CAAC,EAAE,GAAGA,CAAC;MAChDC,MAAM,CAACC,QAAQ,GAAG,KAAK;MACvB,OAAOD,MAAM;IACf,CAAC,CAAC;IACF,MAAME,cAAc,GAAGL,UAAU,CAAC,CAAC,CAAC;IAEpC,MAAMM,QAAQ,GAAIF,QAAiB,IAAW;MAC5C,IAAIA,QAAQ,EAAE;QACZ;QACA;QACA;MACF;MACA;MACAJ,UAAU,CAACO,OAAO,CAAEC,SAAS,IAAK;QAChC,IAAI,OAAOA,SAAS,CAACF,QAAQ,KAAK,UAAU,IAAI,CAACE,SAAS,CAACJ,QAAQ,EAAE;UACnEI,SAAS,CAACF,QAAQ,CAACF,QAAQ,CAAC;QAC9B;MACF,CAAC,CAAC;IACJ,CAAC;IAED,SAASK,QAAQA,CAACD,SAA4B,EAAEE,GAAc,EAAW;MACvE,MAAMC,WAAW,GAAGX,UAAU,CAACQ,SAAS,CAACI,cAAc,CAAC;MACxD,MAAMR,QAAQ,GAAGO,WAAW,CAACE,OAAO,CAACF,WAAW,EAAED,GAAG,CAAC;MACtDF,SAAS,CAACM,OAAO,GAAGH,WAAW,CAACG,OAAO;MACvC,IAAIV,QAAQ,EAAE;QACZ;QACA,IAAIO,WAAW,CAACL,QAAQ,EAAE;UACxBK,WAAW,CAACL,QAAQ,CAAC,IAAI,CAAC,eAAe;QAC3C;;QACAK,WAAW,CAACP,QAAQ,GAAG,IAAI;QAC3BI,SAAS,CAACI,cAAc,IAAI,CAAC;QAC7B,IAAIJ,SAAS,CAACI,cAAc,GAAGZ,UAAU,CAACL,MAAM,EAAE;UAChD,MAAMoB,QAAQ,GAAGf,UAAU,CAACQ,SAAS,CAACI,cAAc,CAAC;UACrDG,QAAQ,CAACC,OAAO,CAACD,QAAQ,EAAEJ,WAAW,CAACG,OAAO,EAAEJ,GAAG,EAAEC,WAAW,CAAC;UACjE,OAAO,KAAK;QACd;QACA,OAAO,IAAI;MACb;MACA,OAAO,KAAK;IACd;IAEA,SAASK,OAAOA,CACdR,SAA4B,EAC5BS,KAAsB,EACtBP,GAAc,EACdQ,iBAAoC,EAC9B;MACNV,SAAS,CAACI,cAAc,GAAG,CAAC;MAC5B,IAAIM,iBAAiB,KAAKC,SAAS,EAAE;QACnCD,iBAAiB,GAAGlB,UAAU,CAC5BA,UAAU,CAACL,MAAM,GAAG,CAAC,CACD;MACxB;MACAU,cAAc,CAACW,OAAO,CAACX,cAAc,EAAEY,KAAK,EAAEP,GAAG,EAAEQ,iBAAiB,CAAC;IACvE;IAEA,OAAO;MACLE,aAAa,EAAE,IAAI;MACnBP,OAAO,EAAEJ,QAAQ;MACjBO,OAAO;MACPJ,cAAc,EAAE,CAAC;MACjBE,OAAO,EAAET,cAAc,CAACS,OAAO;MAC/BR;IACF,CAAC;EACH,CAAC,CACF;AACH"}