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
@@ -1,5 +1,6 @@
1
- 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; }
2
-
1
+ 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; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ 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); }
3
4
  import { Easing } from '../../Easing';
4
5
  import { withDelay, withSequence, withTiming } from '../../animation';
5
6
  export class Keyframe {
@@ -9,13 +10,9 @@ export class Keyframe {
9
10
  */
10
11
  constructor(definitions) {
11
12
  _defineProperty(this, "durationV", void 0);
12
-
13
13
  _defineProperty(this, "delayV", void 0);
14
-
15
14
  _defineProperty(this, "callbackV", void 0);
16
-
17
15
  _defineProperty(this, "definitions", void 0);
18
-
19
16
  _defineProperty(this, "build", () => {
20
17
  const delay = this.delayV;
21
18
  const delayFunction = this.getDelayFunction();
@@ -28,14 +25,14 @@ export class Keyframe {
28
25
  'worklet';
29
26
 
30
27
  const animations = {};
28
+
31
29
  /*
32
30
  For each style property, an animations sequence is created that corresponds with its key points.
33
31
  Transform style properties require special handling because of their nested structure.
34
32
  */
35
-
36
33
  const addAnimation = key => {
37
- const keyframePoints = keyframes[key]; // in case if property was only passed as initial value
38
-
34
+ const keyframePoints = keyframes[key];
35
+ // in case if property was only passed as initial value
39
36
  if (keyframePoints.length === 0) return;
40
37
  const animation = delayFunction(delay, keyframePoints.length === 1 ? withTiming(keyframePoints[0].value, {
41
38
  duration: keyframePoints[0].duration,
@@ -44,14 +41,11 @@ export class Keyframe {
44
41
  duration: keyframePoint.duration,
45
42
  easing: keyframePoint.easing ? keyframePoint.easing : Easing.linear
46
43
  }))));
47
-
48
44
  if (key.includes('transform')) {
49
45
  var _animations$transform;
50
-
51
46
  if (!('transform' in animations)) {
52
47
  animations.transform = [];
53
48
  }
54
-
55
49
  (_animations$transform = animations.transform) === null || _animations$transform === void 0 ? void 0 : _animations$transform.push({
56
50
  [key.split(':')[1]]: animation
57
51
  });
@@ -59,7 +53,6 @@ export class Keyframe {
59
53
  animations[key] = animation;
60
54
  }
61
55
  };
62
-
63
56
  Object.keys(initialValues).forEach(key => {
64
57
  if (key.includes('transform')) {
65
58
  initialValues[key].forEach((transformProp, index) => {
@@ -78,10 +71,8 @@ export class Keyframe {
78
71
  };
79
72
  };
80
73
  });
81
-
82
74
  this.definitions = definitions;
83
75
  }
84
-
85
76
  parseDefinitions() {
86
77
  /*
87
78
  Each style property contain an array with all their key points:
@@ -91,21 +82,17 @@ export class Keyframe {
91
82
  /*
92
83
  Parsing keyframes 'from' and 'to'.
93
84
  */
94
-
95
85
  if (this.definitions.from) {
96
86
  if (this.definitions['0']) {
97
87
  throw Error("You cannot provide both keyframe 0 and 'from' as they both specified initial values");
98
88
  }
99
-
100
89
  this.definitions['0'] = this.definitions.from;
101
90
  delete this.definitions.from;
102
91
  }
103
-
104
92
  if (this.definitions.to) {
105
93
  if (this.definitions['100']) {
106
94
  throw Error("You cannot provide both keyframe 100 and 'to' as they both specified values at the end of the animation.");
107
95
  }
108
-
109
96
  this.definitions['100'] = this.definitions.to;
110
97
  delete this.definitions.to;
111
98
  }
@@ -113,21 +100,16 @@ export class Keyframe {
113
100
  One of the assumptions is that keyframe 0 is required to properly set initial values.
114
101
  Every other keyframe should contain properties from the set provided as initial values.
115
102
  */
116
-
117
-
118
103
  if (!this.definitions['0']) {
119
104
  throw Error("Please provide 0, or 'from' keyframe with initial state of your object.");
120
105
  }
121
-
122
106
  const initialValues = this.definitions['0'];
123
107
  /*
124
108
  Initialize parsedKeyframes for properties provided in initial keyframe
125
109
  */
126
-
127
110
  Object.keys(initialValues).forEach(styleProp => {
128
111
  if (styleProp === 'transform') {
129
112
  var _initialValues$styleP;
130
-
131
113
  (_initialValues$styleP = initialValues[styleProp]) === null || _initialValues$styleP === void 0 ? void 0 : _initialValues$styleP.forEach((transformStyle, index) => {
132
114
  Object.keys(transformStyle).forEach(transformProp => {
133
115
  parsedKeyframes[index.toString() + '_transform:' + transformProp] = [];
@@ -139,17 +121,15 @@ export class Keyframe {
139
121
  });
140
122
  const duration = this.durationV ? this.durationV : 500;
141
123
  const animationKeyPoints = Array.from(Object.keys(this.definitions));
142
-
143
124
  const getAnimationDuration = (key, currentKeyPoint) => {
144
125
  const maxDuration = currentKeyPoint / 100 * duration;
145
126
  const currentDuration = parsedKeyframes[key].reduce((acc, value) => acc + value.duration, 0);
146
127
  return maxDuration - currentDuration;
147
128
  };
129
+
148
130
  /*
149
131
  Other keyframes can't contain properties that were not specified in initial keyframe.
150
132
  */
151
-
152
-
153
133
  const addKeyPoint = _ref => {
154
134
  let {
155
135
  key,
@@ -157,38 +137,31 @@ export class Keyframe {
157
137
  currentKeyPoint,
158
138
  easing
159
139
  } = _ref;
160
-
161
140
  if (!(key in parsedKeyframes)) {
162
141
  throw Error("Keyframe can contain only that set of properties that were provide with initial values (keyframe 0 or 'from')");
163
142
  }
164
-
165
143
  parsedKeyframes[key].push({
166
144
  duration: getAnimationDuration(key, currentKeyPoint),
167
145
  value: value,
168
146
  easing: easing
169
147
  });
170
148
  };
171
-
172
149
  animationKeyPoints.filter(value => parseInt(value) !== 0).sort((a, b) => parseInt(a) - parseInt(b)).forEach(keyPoint => {
173
150
  if (parseInt(keyPoint) < 0 || parseInt(keyPoint) > 100) {
174
151
  throw Error('Keyframe should be in between range 0 - 100.');
175
152
  }
176
-
177
153
  const keyframe = this.definitions[keyPoint];
178
154
  const easing = keyframe.easing;
179
155
  delete keyframe.easing;
180
-
181
156
  const addKeyPointWith = (key, value) => addKeyPoint({
182
157
  key,
183
158
  value,
184
159
  currentKeyPoint: parseInt(keyPoint),
185
160
  easing
186
161
  });
187
-
188
162
  Object.keys(keyframe).forEach(key => {
189
163
  if (key === 'transform') {
190
164
  var _keyframe$key;
191
-
192
165
  (_keyframe$key = keyframe[key]) === null || _keyframe$key === void 0 ? void 0 : _keyframe$key.forEach((transformStyle, index) => {
193
166
  Object.keys(transformStyle).forEach(transformProp => {
194
167
  addKeyPointWith(index.toString() + '_transform:' + transformProp, transformStyle[transformProp]);
@@ -204,22 +177,18 @@ export class Keyframe {
204
177
  keyframes: parsedKeyframes
205
178
  };
206
179
  }
207
-
208
180
  duration(durationMs) {
209
181
  this.durationV = durationMs;
210
182
  return this;
211
183
  }
212
-
213
184
  delay(delayMs) {
214
185
  this.delayV = delayMs;
215
186
  return this;
216
187
  }
217
-
218
188
  withCallback(callback) {
219
189
  this.callbackV = callback;
220
190
  return this;
221
191
  }
222
-
223
192
  getDelayFunction() {
224
193
  const delay = this.delayV;
225
194
  return delay ? withDelay : (_, animation) => {
@@ -228,6 +197,5 @@ export class Keyframe {
228
197
  return animation;
229
198
  };
230
199
  }
231
-
232
200
  }
233
201
  //# sourceMappingURL=Keyframe.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Easing","withDelay","withSequence","withTiming","Keyframe","constructor","definitions","delay","delayV","delayFunction","getDelayFunction","keyframes","initialValues","parseDefinitions","callback","callbackV","_targetValues","animations","addAnimation","key","keyframePoints","length","animation","value","duration","easing","linear","apply","map","keyframePoint","includes","transform","push","split","Object","keys","forEach","transformProp","index","transformPropKey","toString","parsedKeyframes","from","Error","to","styleProp","transformStyle","durationV","animationKeyPoints","Array","getAnimationDuration","currentKeyPoint","maxDuration","currentDuration","reduce","acc","addKeyPoint","filter","parseInt","sort","a","b","keyPoint","keyframe","addKeyPointWith","durationMs","delayMs","withCallback","_"],"sources":["Keyframe.ts"],"sourcesContent":["import { Easing, EasingFn } from '../../Easing';\nimport { withDelay, withSequence, withTiming } from '../../animation';\nimport {\n AnimationFunction,\n EntryExitAnimationFunction,\n IEntryExitAnimationBuilder,\n KeyframeProps,\n} from './commonTypes';\nimport { TransformProperty, StyleProps } from '../../commonTypes';\nexport interface KeyframePoint {\n duration: number;\n value: number | string;\n easing?: EasingFn;\n}\nexport interface ParsedKeyframesDefinition {\n initialValues: StyleProps;\n keyframes: Record<string, KeyframePoint[]>;\n}\nexport class Keyframe implements IEntryExitAnimationBuilder {\n durationV?: number;\n delayV?: number;\n callbackV?: (finished: boolean) => void;\n definitions: Record<string, KeyframeProps>;\n\n /*\n Keyframe definition should be passed in the constructor as the map\n which keys are between range 0 - 100 (%) and correspond to the point in the animation progress.\n */\n constructor(definitions: Record<string, KeyframeProps>) {\n this.definitions = definitions;\n }\n\n private parseDefinitions(): ParsedKeyframesDefinition {\n /* \n Each style property contain an array with all their key points: \n value, duration of transition to that value, and optional easing function (defaults to Linear)\n */\n const parsedKeyframes: Record<string, KeyframePoint[]> = {};\n /*\n Parsing keyframes 'from' and 'to'.\n */\n if (this.definitions.from) {\n if (this.definitions['0']) {\n throw Error(\n \"You cannot provide both keyframe 0 and 'from' as they both specified initial values\"\n );\n }\n this.definitions['0'] = this.definitions.from;\n delete this.definitions.from;\n }\n if (this.definitions.to) {\n if (this.definitions['100']) {\n throw Error(\n \"You cannot provide both keyframe 100 and 'to' as they both specified values at the end of the animation.\"\n );\n }\n this.definitions['100'] = this.definitions.to;\n delete this.definitions.to;\n }\n /* \n One of the assumptions is that keyframe 0 is required to properly set initial values.\n Every other keyframe should contain properties from the set provided as initial values.\n */\n if (!this.definitions['0']) {\n throw Error(\n \"Please provide 0, or 'from' keyframe with initial state of your object.\"\n );\n }\n const initialValues: StyleProps = this.definitions['0'] as StyleProps;\n /*\n Initialize parsedKeyframes for properties provided in initial keyframe\n */\n Object.keys(initialValues).forEach((styleProp: string) => {\n if (styleProp === 'transform') {\n initialValues[styleProp]?.forEach((transformStyle, index) => {\n Object.keys(transformStyle).forEach((transformProp: string) => {\n parsedKeyframes[index.toString() + '_transform:' + transformProp] =\n [];\n });\n });\n } else {\n parsedKeyframes[styleProp] = [];\n }\n });\n\n const duration: number = this.durationV ? this.durationV : 500;\n const animationKeyPoints: Array<string> = Array.from(\n Object.keys(this.definitions)\n );\n\n const getAnimationDuration = (\n key: string,\n currentKeyPoint: number\n ): number => {\n const maxDuration = (currentKeyPoint / 100) * duration;\n const currentDuration = parsedKeyframes[key].reduce(\n (acc: number, value: KeyframePoint) => acc + value.duration,\n 0\n );\n return maxDuration - currentDuration;\n };\n\n /* \n Other keyframes can't contain properties that were not specified in initial keyframe.\n */\n const addKeyPoint = ({\n key,\n value,\n currentKeyPoint,\n easing,\n }: {\n key: string;\n value: string | number;\n currentKeyPoint: number;\n easing?: EasingFn;\n }): void => {\n if (!(key in parsedKeyframes)) {\n throw Error(\n \"Keyframe can contain only that set of properties that were provide with initial values (keyframe 0 or 'from')\"\n );\n }\n parsedKeyframes[key].push({\n duration: getAnimationDuration(key, currentKeyPoint),\n value: value,\n easing: easing,\n });\n };\n animationKeyPoints\n .filter((value: string) => parseInt(value) !== 0)\n .sort((a: string, b: string) => parseInt(a) - parseInt(b))\n .forEach((keyPoint: string) => {\n if (parseInt(keyPoint) < 0 || parseInt(keyPoint) > 100) {\n throw Error('Keyframe should be in between range 0 - 100.');\n }\n const keyframe: KeyframeProps = this.definitions[keyPoint];\n const easing = keyframe.easing;\n delete keyframe.easing;\n const addKeyPointWith = (key: string, value: string | number) =>\n addKeyPoint({\n key,\n value,\n currentKeyPoint: parseInt(keyPoint),\n easing,\n });\n Object.keys(keyframe).forEach((key: string) => {\n if (key === 'transform') {\n keyframe[key]?.forEach(\n (transformStyle: { [key: string]: any }, index) => {\n Object.keys(transformStyle).forEach((transformProp: string) => {\n addKeyPointWith(\n index.toString() + '_transform:' + transformProp,\n transformStyle[transformProp]\n );\n });\n }\n );\n } else {\n addKeyPointWith(key, keyframe[key]);\n }\n });\n });\n return { initialValues: initialValues, keyframes: parsedKeyframes };\n }\n\n duration(durationMs: number): Keyframe {\n this.durationV = durationMs;\n return this;\n }\n\n delay(delayMs: number): Keyframe {\n this.delayV = delayMs;\n return this;\n }\n\n withCallback(callback: (finsihed: boolean) => void): Keyframe {\n this.callbackV = callback;\n return this;\n }\n\n private getDelayFunction(): AnimationFunction {\n const delay = this.delayV;\n return delay\n ? withDelay\n : (_, animation) => {\n 'worklet';\n return animation;\n };\n }\n\n build = (): EntryExitAnimationFunction => {\n const delay = this.delayV;\n const delayFunction = this.getDelayFunction();\n const { keyframes, initialValues } = this.parseDefinitions();\n const callback = this.callbackV;\n\n return (_targetValues) => {\n 'worklet';\n const animations: StyleProps = {};\n\n /* \n For each style property, an animations sequence is created that corresponds with its key points.\n Transform style properties require special handling because of their nested structure.\n */\n const addAnimation = (key: string) => {\n const keyframePoints = keyframes[key];\n // in case if property was only passed as initial value\n if (keyframePoints.length === 0) return;\n const animation = delayFunction(\n delay,\n keyframePoints.length === 1\n ? withTiming(keyframePoints[0].value, {\n duration: keyframePoints[0].duration,\n easing: keyframePoints[0].easing\n ? keyframePoints[0].easing\n : Easing.linear,\n })\n : withSequence.apply(\n this,\n keyframePoints.map((keyframePoint: KeyframePoint) =>\n withTiming(keyframePoint.value, {\n duration: keyframePoint.duration,\n easing: keyframePoint.easing\n ? keyframePoint.easing\n : Easing.linear,\n })\n )\n )\n );\n if (key.includes('transform')) {\n if (!('transform' in animations)) {\n animations.transform = [];\n }\n animations.transform?.push(<TransformProperty>{\n [key.split(':')[1]]: animation,\n });\n } else {\n animations[key] = animation;\n }\n };\n Object.keys(initialValues).forEach((key: string) => {\n if (key.includes('transform')) {\n initialValues[key].forEach(\n (transformProp: Record<string, number | string>, index: number) => {\n Object.keys(transformProp).forEach((transformPropKey: string) => {\n addAnimation(\n index.toString() + '_transform:' + transformPropKey\n );\n });\n }\n );\n } else {\n addAnimation(key);\n }\n });\n return {\n animations: animations,\n initialValues: initialValues,\n callback: callback,\n };\n };\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["Easing","withDelay","withSequence","withTiming","Keyframe","constructor","definitions","_defineProperty","delay","delayV","delayFunction","getDelayFunction","keyframes","initialValues","parseDefinitions","callback","callbackV","_targetValues","animations","addAnimation","key","keyframePoints","length","animation","value","duration","easing","linear","apply","map","keyframePoint","includes","_animations$transform","transform","push","split","Object","keys","forEach","transformProp","index","transformPropKey","toString","parsedKeyframes","from","Error","to","styleProp","_initialValues$styleP","transformStyle","durationV","animationKeyPoints","Array","getAnimationDuration","currentKeyPoint","maxDuration","currentDuration","reduce","acc","addKeyPoint","_ref","filter","parseInt","sort","a","b","keyPoint","keyframe","addKeyPointWith","_keyframe$key","durationMs","delayMs","withCallback","_"],"sources":["Keyframe.ts"],"sourcesContent":["import { Easing, EasingFn } from '../../Easing';\nimport { withDelay, withSequence, withTiming } from '../../animation';\nimport {\n AnimationFunction,\n EntryExitAnimationFunction,\n IEntryExitAnimationBuilder,\n KeyframeProps,\n} from './commonTypes';\nimport { TransformProperty, StyleProps } from '../../commonTypes';\nexport interface KeyframePoint {\n duration: number;\n value: number | string;\n easing?: EasingFn;\n}\nexport interface ParsedKeyframesDefinition {\n initialValues: StyleProps;\n keyframes: Record<string, KeyframePoint[]>;\n}\nexport class Keyframe implements IEntryExitAnimationBuilder {\n durationV?: number;\n delayV?: number;\n callbackV?: (finished: boolean) => void;\n definitions: Record<string, KeyframeProps>;\n\n /*\n Keyframe definition should be passed in the constructor as the map\n which keys are between range 0 - 100 (%) and correspond to the point in the animation progress.\n */\n constructor(definitions: Record<string, KeyframeProps>) {\n this.definitions = definitions;\n }\n\n private parseDefinitions(): ParsedKeyframesDefinition {\n /* \n Each style property contain an array with all their key points: \n value, duration of transition to that value, and optional easing function (defaults to Linear)\n */\n const parsedKeyframes: Record<string, KeyframePoint[]> = {};\n /*\n Parsing keyframes 'from' and 'to'.\n */\n if (this.definitions.from) {\n if (this.definitions['0']) {\n throw Error(\n \"You cannot provide both keyframe 0 and 'from' as they both specified initial values\"\n );\n }\n this.definitions['0'] = this.definitions.from;\n delete this.definitions.from;\n }\n if (this.definitions.to) {\n if (this.definitions['100']) {\n throw Error(\n \"You cannot provide both keyframe 100 and 'to' as they both specified values at the end of the animation.\"\n );\n }\n this.definitions['100'] = this.definitions.to;\n delete this.definitions.to;\n }\n /* \n One of the assumptions is that keyframe 0 is required to properly set initial values.\n Every other keyframe should contain properties from the set provided as initial values.\n */\n if (!this.definitions['0']) {\n throw Error(\n \"Please provide 0, or 'from' keyframe with initial state of your object.\"\n );\n }\n const initialValues: StyleProps = this.definitions['0'] as StyleProps;\n /*\n Initialize parsedKeyframes for properties provided in initial keyframe\n */\n Object.keys(initialValues).forEach((styleProp: string) => {\n if (styleProp === 'transform') {\n initialValues[styleProp]?.forEach((transformStyle, index) => {\n Object.keys(transformStyle).forEach((transformProp: string) => {\n parsedKeyframes[index.toString() + '_transform:' + transformProp] =\n [];\n });\n });\n } else {\n parsedKeyframes[styleProp] = [];\n }\n });\n\n const duration: number = this.durationV ? this.durationV : 500;\n const animationKeyPoints: Array<string> = Array.from(\n Object.keys(this.definitions)\n );\n\n const getAnimationDuration = (\n key: string,\n currentKeyPoint: number\n ): number => {\n const maxDuration = (currentKeyPoint / 100) * duration;\n const currentDuration = parsedKeyframes[key].reduce(\n (acc: number, value: KeyframePoint) => acc + value.duration,\n 0\n );\n return maxDuration - currentDuration;\n };\n\n /* \n Other keyframes can't contain properties that were not specified in initial keyframe.\n */\n const addKeyPoint = ({\n key,\n value,\n currentKeyPoint,\n easing,\n }: {\n key: string;\n value: string | number;\n currentKeyPoint: number;\n easing?: EasingFn;\n }): void => {\n if (!(key in parsedKeyframes)) {\n throw Error(\n \"Keyframe can contain only that set of properties that were provide with initial values (keyframe 0 or 'from')\"\n );\n }\n parsedKeyframes[key].push({\n duration: getAnimationDuration(key, currentKeyPoint),\n value: value,\n easing: easing,\n });\n };\n animationKeyPoints\n .filter((value: string) => parseInt(value) !== 0)\n .sort((a: string, b: string) => parseInt(a) - parseInt(b))\n .forEach((keyPoint: string) => {\n if (parseInt(keyPoint) < 0 || parseInt(keyPoint) > 100) {\n throw Error('Keyframe should be in between range 0 - 100.');\n }\n const keyframe: KeyframeProps = this.definitions[keyPoint];\n const easing = keyframe.easing;\n delete keyframe.easing;\n const addKeyPointWith = (key: string, value: string | number) =>\n addKeyPoint({\n key,\n value,\n currentKeyPoint: parseInt(keyPoint),\n easing,\n });\n Object.keys(keyframe).forEach((key: string) => {\n if (key === 'transform') {\n keyframe[key]?.forEach(\n (transformStyle: { [key: string]: any }, index) => {\n Object.keys(transformStyle).forEach((transformProp: string) => {\n addKeyPointWith(\n index.toString() + '_transform:' + transformProp,\n transformStyle[transformProp]\n );\n });\n }\n );\n } else {\n addKeyPointWith(key, keyframe[key]);\n }\n });\n });\n return { initialValues: initialValues, keyframes: parsedKeyframes };\n }\n\n duration(durationMs: number): Keyframe {\n this.durationV = durationMs;\n return this;\n }\n\n delay(delayMs: number): Keyframe {\n this.delayV = delayMs;\n return this;\n }\n\n withCallback(callback: (finsihed: boolean) => void): Keyframe {\n this.callbackV = callback;\n return this;\n }\n\n private getDelayFunction(): AnimationFunction {\n const delay = this.delayV;\n return delay\n ? withDelay\n : (_, animation) => {\n 'worklet';\n return animation;\n };\n }\n\n build = (): EntryExitAnimationFunction => {\n const delay = this.delayV;\n const delayFunction = this.getDelayFunction();\n const { keyframes, initialValues } = this.parseDefinitions();\n const callback = this.callbackV;\n\n return (_targetValues) => {\n 'worklet';\n const animations: StyleProps = {};\n\n /* \n For each style property, an animations sequence is created that corresponds with its key points.\n Transform style properties require special handling because of their nested structure.\n */\n const addAnimation = (key: string) => {\n const keyframePoints = keyframes[key];\n // in case if property was only passed as initial value\n if (keyframePoints.length === 0) return;\n const animation = delayFunction(\n delay,\n keyframePoints.length === 1\n ? withTiming(keyframePoints[0].value, {\n duration: keyframePoints[0].duration,\n easing: keyframePoints[0].easing\n ? keyframePoints[0].easing\n : Easing.linear,\n })\n : withSequence.apply(\n this,\n keyframePoints.map((keyframePoint: KeyframePoint) =>\n withTiming(keyframePoint.value, {\n duration: keyframePoint.duration,\n easing: keyframePoint.easing\n ? keyframePoint.easing\n : Easing.linear,\n })\n )\n )\n );\n if (key.includes('transform')) {\n if (!('transform' in animations)) {\n animations.transform = [];\n }\n animations.transform?.push(<TransformProperty>{\n [key.split(':')[1]]: animation,\n });\n } else {\n animations[key] = animation;\n }\n };\n Object.keys(initialValues).forEach((key: string) => {\n if (key.includes('transform')) {\n initialValues[key].forEach(\n (transformProp: Record<string, number | string>, index: number) => {\n Object.keys(transformProp).forEach((transformPropKey: string) => {\n addAnimation(\n index.toString() + '_transform:' + transformPropKey\n );\n });\n }\n );\n } else {\n addAnimation(key);\n }\n });\n return {\n animations: animations,\n initialValues: initialValues,\n callback: callback,\n };\n };\n };\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  // this is just a temporary mock
2
- export let LayoutAnimationType;
3
2
 
4
- (function (LayoutAnimationType) {
3
+ export let LayoutAnimationType = /*#__PURE__*/function (LayoutAnimationType) {
5
4
  LayoutAnimationType[LayoutAnimationType["ENTERING"] = 1] = "ENTERING";
6
5
  LayoutAnimationType[LayoutAnimationType["EXITING"] = 2] = "EXITING";
7
6
  LayoutAnimationType[LayoutAnimationType["LAYOUT"] = 3] = "LAYOUT";
8
7
  LayoutAnimationType[LayoutAnimationType["SHARED_ELEMENT_TRANSITION"] = 4] = "SHARED_ELEMENT_TRANSITION";
9
- })(LayoutAnimationType || (LayoutAnimationType = {}));
8
+ return LayoutAnimationType;
9
+ }({});
10
10
  //# sourceMappingURL=commonTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["LayoutAnimationType"],"sources":["commonTypes.ts"],"sourcesContent":["import { EasingFn } from '../../Easing';\nimport { StyleProps } from '../../commonTypes';\n\nexport interface KeyframeProps extends StyleProps {\n easing?: EasingFn;\n [key: string]: any;\n}\n\nexport type LayoutAnimation = {\n initialValues: StyleProps;\n animations: StyleProps;\n callback?: (finished: boolean) => void;\n};\n\nexport type AnimationFunction = (a?: any, b?: any, c?: any) => any; // this is just a temporary mock\n\nexport interface EntryAnimationsValues {\n targetOriginX: number;\n targetOriginY: number;\n targetWidth: number;\n targetHeight: number;\n targetGlobalOriginX: number;\n targetGlobalOriginY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport interface ExitAnimationsValues {\n currentOriginX: number;\n currentOriginY: number;\n currentWidth: number;\n currentHeight: number;\n currentGlobalOriginX: number;\n currentGlobalOriginY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport type EntryExitAnimationFunction = (\n targetValues: EntryAnimationsValues | ExitAnimationsValues\n) => LayoutAnimation;\n\nexport type AnimationConfigFunction<T> = (targetValues: T) => LayoutAnimation;\n\nexport interface LayoutAnimationsValues {\n [key: string]: number;\n currentOriginX: number;\n currentOriginY: number;\n currentWidth: number;\n currentHeight: number;\n currentGlobalOriginX: number;\n currentGlobalOriginY: number;\n targetOriginX: number;\n targetOriginY: number;\n targetWidth: number;\n targetHeight: number;\n targetGlobalOriginX: number;\n targetGlobalOriginY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport enum LayoutAnimationType {\n ENTERING = 1,\n EXITING = 2,\n LAYOUT = 3,\n SHARED_ELEMENT_TRANSITION = 4,\n}\n\nexport type LayoutAnimationFunction = (\n targetValues: LayoutAnimationsValues\n) => LayoutAnimation;\n\nexport type LayoutAnimationStartFunction = (\n tag: number,\n type: LayoutAnimationType,\n yogaValues: LayoutAnimationsValues,\n config: LayoutAnimationFunction\n) => void;\n\nexport interface ILayoutAnimationBuilder {\n build: () => LayoutAnimationFunction;\n}\n\nexport interface BaseLayoutAnimationConfig {\n duration?: number;\n easing?: EasingFn;\n type?: AnimationFunction;\n damping?: number;\n mass?: number;\n stiffness?: number;\n overshootClamping?: number;\n restDisplacementThreshold?: number;\n restSpeedThreshold?: number;\n}\n\nexport interface BaseBuilderAnimationConfig extends BaseLayoutAnimationConfig {\n rotate?: number | string;\n}\n\nexport type LayoutAnimationAndConfig = [\n AnimationFunction,\n BaseBuilderAnimationConfig\n];\n\nexport interface IEntryExitAnimationBuilder {\n build: () => EntryExitAnimationFunction;\n}\n\nexport interface IEntryAnimationBuilder {\n build: () => AnimationConfigFunction<EntryAnimationsValues>;\n}\n\nexport interface IExitAnimationBuilder {\n build: () => AnimationConfigFunction<ExitAnimationsValues>;\n}\n"],"mappings":"AAcoE;AAgDpE,WAAYA,mBAAZ;;WAAYA,mB;EAAAA,mB,CAAAA,mB;EAAAA,mB,CAAAA,mB;EAAAA,mB,CAAAA,mB;EAAAA,mB,CAAAA,mB;GAAAA,mB,KAAAA,mB"}
1
+ {"version":3,"names":["LayoutAnimationType"],"sources":["commonTypes.ts"],"sourcesContent":["import { EasingFn } from '../../Easing';\nimport { StyleProps } from '../../commonTypes';\n\nexport interface KeyframeProps extends StyleProps {\n easing?: EasingFn;\n [key: string]: any;\n}\n\nexport type LayoutAnimation = {\n initialValues: StyleProps;\n animations: StyleProps;\n callback?: (finished: boolean) => void;\n};\n\nexport type AnimationFunction = (a?: any, b?: any, c?: any) => any; // this is just a temporary mock\n\nexport interface EntryAnimationsValues {\n targetOriginX: number;\n targetOriginY: number;\n targetWidth: number;\n targetHeight: number;\n targetGlobalOriginX: number;\n targetGlobalOriginY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport interface ExitAnimationsValues {\n currentOriginX: number;\n currentOriginY: number;\n currentWidth: number;\n currentHeight: number;\n currentGlobalOriginX: number;\n currentGlobalOriginY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport type EntryExitAnimationFunction = (\n targetValues: EntryAnimationsValues | ExitAnimationsValues\n) => LayoutAnimation;\n\nexport type AnimationConfigFunction<T> = (targetValues: T) => LayoutAnimation;\n\nexport interface LayoutAnimationsValues {\n [key: string]: number;\n currentOriginX: number;\n currentOriginY: number;\n currentWidth: number;\n currentHeight: number;\n currentGlobalOriginX: number;\n currentGlobalOriginY: number;\n targetOriginX: number;\n targetOriginY: number;\n targetWidth: number;\n targetHeight: number;\n targetGlobalOriginX: number;\n targetGlobalOriginY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport enum LayoutAnimationType {\n ENTERING = 1,\n EXITING = 2,\n LAYOUT = 3,\n SHARED_ELEMENT_TRANSITION = 4,\n}\n\nexport type LayoutAnimationFunction = (\n targetValues: LayoutAnimationsValues\n) => LayoutAnimation;\n\nexport type LayoutAnimationStartFunction = (\n tag: number,\n type: LayoutAnimationType,\n yogaValues: LayoutAnimationsValues,\n config: LayoutAnimationFunction\n) => void;\n\nexport interface ILayoutAnimationBuilder {\n build: () => LayoutAnimationFunction;\n}\n\nexport interface BaseLayoutAnimationConfig {\n duration?: number;\n easing?: EasingFn;\n type?: AnimationFunction;\n damping?: number;\n mass?: number;\n stiffness?: number;\n overshootClamping?: number;\n restDisplacementThreshold?: number;\n restSpeedThreshold?: number;\n}\n\nexport interface BaseBuilderAnimationConfig extends BaseLayoutAnimationConfig {\n rotate?: number | string;\n}\n\nexport type LayoutAnimationAndConfig = [\n AnimationFunction,\n BaseBuilderAnimationConfig\n];\n\nexport interface IEntryExitAnimationBuilder {\n build: () => EntryExitAnimationFunction;\n}\n\nexport interface IEntryAnimationBuilder {\n build: () => AnimationConfigFunction<EntryAnimationsValues>;\n}\n\nexport interface IExitAnimationBuilder {\n build: () => AnimationConfigFunction<ExitAnimationsValues>;\n}\n"],"mappings":"AAcoE;;AAgDpE,WAAYA,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAnBA,mBAAmB,CAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["BaseAnimationBuilder","ComplexAnimationBuilder","Keyframe","LayoutAnimationType"],"sources":["index.ts"],"sourcesContent":["export { BaseAnimationBuilder } from './BaseAnimationBuilder';\nexport { ComplexAnimationBuilder } from './ComplexAnimationBuilder';\nexport { Keyframe } from './Keyframe';\nexport { LayoutAnimationType } from './commonTypes';\nexport type {\n LayoutAnimation,\n AnimationFunction,\n EntryAnimationsValues,\n ExitAnimationsValues,\n EntryExitAnimationFunction,\n AnimationConfigFunction,\n IEntryAnimationBuilder,\n IExitAnimationBuilder,\n LayoutAnimationsValues,\n LayoutAnimationFunction,\n LayoutAnimationStartFunction,\n ILayoutAnimationBuilder,\n BaseLayoutAnimationConfig,\n BaseBuilderAnimationConfig,\n LayoutAnimationAndConfig,\n IEntryExitAnimationBuilder,\n} from './commonTypes';\n"],"mappings":"AAAA,SAASA,oBAAT,QAAqC,wBAArC;AACA,SAASC,uBAAT,QAAwC,2BAAxC;AACA,SAASC,QAAT,QAAyB,YAAzB;AACA,SAASC,mBAAT,QAAoC,eAApC"}
1
+ {"version":3,"names":["BaseAnimationBuilder","ComplexAnimationBuilder","Keyframe","LayoutAnimationType"],"sources":["index.ts"],"sourcesContent":["export { BaseAnimationBuilder } from './BaseAnimationBuilder';\nexport { ComplexAnimationBuilder } from './ComplexAnimationBuilder';\nexport { Keyframe } from './Keyframe';\nexport { LayoutAnimationType } from './commonTypes';\nexport type {\n LayoutAnimation,\n AnimationFunction,\n EntryAnimationsValues,\n ExitAnimationsValues,\n EntryExitAnimationFunction,\n AnimationConfigFunction,\n IEntryAnimationBuilder,\n IExitAnimationBuilder,\n LayoutAnimationsValues,\n LayoutAnimationFunction,\n LayoutAnimationStartFunction,\n ILayoutAnimationBuilder,\n BaseLayoutAnimationConfig,\n BaseBuilderAnimationConfig,\n LayoutAnimationAndConfig,\n IEntryExitAnimationBuilder,\n} from './commonTypes';\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,uBAAuB,QAAQ,2BAA2B;AACnE,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,mBAAmB,QAAQ,eAAe"}
@@ -3,7 +3,6 @@ import { makeUIMutable } from '../mutables';
3
3
  import { LayoutAnimationType } from './animationBuilder';
4
4
  import { runOnUIImmediately } from '../threads';
5
5
  const TAG_OFFSET = 1e9;
6
-
7
6
  function startObservingProgress(tag, sharedValue, animationType) {
8
7
  'worklet';
9
8
 
@@ -12,15 +11,12 @@ function startObservingProgress(tag, sharedValue, animationType) {
12
11
  _notifyAboutProgress(tag, sharedValue.value, isSharedTransition);
13
12
  });
14
13
  }
15
-
16
14
  function stopObservingProgress(tag, sharedValue, cancelled, removeView) {
17
15
  'worklet';
18
16
 
19
17
  sharedValue.removeListener(tag + TAG_OFFSET);
20
-
21
18
  _notifyAboutEnd(tag, cancelled, removeView);
22
19
  }
23
-
24
20
  function createLayoutAnimationManager() {
25
21
  'worklet';
26
22
 
@@ -30,34 +26,30 @@ function createLayoutAnimationManager() {
30
26
  start(tag, type, yogaValues, config) {
31
27
  const style = config(yogaValues);
32
28
  let currentAnimation = style.animations;
33
-
34
29
  if (type === LayoutAnimationType.ENTERING) {
35
30
  enteringAnimationForTag.set(tag, currentAnimation);
36
31
  } else if (type === LayoutAnimationType.LAYOUT) {
37
32
  // When layout animation is requested, but entering is still running, we merge
38
33
  // new layout animation targets into the ongoing animation
39
34
  const enteringAnimation = enteringAnimationForTag.get(tag);
40
-
41
35
  if (enteringAnimation) {
42
- currentAnimation = { ...enteringAnimation,
36
+ currentAnimation = {
37
+ ...enteringAnimation,
43
38
  ...style.animations
44
39
  };
45
40
  }
46
41
  }
47
-
48
42
  let value = mutableValuesForTag.get(tag);
49
-
50
43
  if (value === undefined) {
51
44
  value = makeUIMutable(style.initialValues);
52
45
  mutableValuesForTag.set(tag, value);
53
46
  } else {
54
47
  stopObservingProgress(tag, value, false, false);
55
48
  value._value = style.initialValues;
56
- } // @ts-ignore The line below started failing because I added types to the method – don't have time to fix it right now
57
-
49
+ }
58
50
 
51
+ // @ts-ignore The line below started failing because I added types to the method – don't have time to fix it right now
59
52
  const animation = withStyleAnimation(currentAnimation);
60
-
61
53
  animation.callback = finished => {
62
54
  if (finished) {
63
55
  enteringAnimationForTag.delete(tag);
@@ -65,27 +57,20 @@ function createLayoutAnimationManager() {
65
57
  const shouldRemoveView = type === LayoutAnimationType.EXITING;
66
58
  stopObservingProgress(tag, value, finished, shouldRemoveView);
67
59
  }
68
-
69
60
  style.callback && style.callback(finished === undefined ? false : finished);
70
61
  };
71
-
72
62
  startObservingProgress(tag, value, type);
73
63
  value.value = animation;
74
64
  },
75
-
76
65
  stop(tag) {
77
66
  const value = mutableValuesForTag.get(tag);
78
-
79
67
  if (!value) {
80
68
  return;
81
69
  }
82
-
83
70
  stopObservingProgress(tag, value, true, true);
84
71
  }
85
-
86
72
  };
87
73
  }
88
-
89
74
  runOnUIImmediately(() => {
90
75
  'worklet';
91
76
 
@@ -1 +1 @@
1
- {"version":3,"names":["withStyleAnimation","makeUIMutable","LayoutAnimationType","runOnUIImmediately","TAG_OFFSET","startObservingProgress","tag","sharedValue","animationType","isSharedTransition","SHARED_ELEMENT_TRANSITION","addListener","_notifyAboutProgress","value","stopObservingProgress","cancelled","removeView","removeListener","_notifyAboutEnd","createLayoutAnimationManager","enteringAnimationForTag","Map","mutableValuesForTag","start","type","yogaValues","config","style","currentAnimation","animations","ENTERING","set","LAYOUT","enteringAnimation","get","undefined","initialValues","_value","animation","callback","finished","delete","shouldRemoveView","EXITING","stop","global","LayoutAnimationsManager"],"sources":["animationsManager.ts"],"sourcesContent":["import { withStyleAnimation } from '../animation/styleAnimation';\nimport { SharedValue } from '../commonTypes';\nimport { makeUIMutable } from '../mutables';\nimport {\n LayoutAnimationFunction,\n LayoutAnimationType,\n LayoutAnimationsValues,\n} from './animationBuilder';\nimport { runOnUIImmediately } from '../threads';\n\nconst TAG_OFFSET = 1e9;\n\nfunction startObservingProgress(\n tag: number,\n sharedValue: SharedValue<number>,\n animationType: LayoutAnimationType\n): void {\n 'worklet';\n const isSharedTransition =\n animationType === LayoutAnimationType.SHARED_ELEMENT_TRANSITION;\n sharedValue.addListener(tag + TAG_OFFSET, () => {\n _notifyAboutProgress(tag, sharedValue.value, isSharedTransition);\n });\n}\n\nfunction stopObservingProgress(\n tag: number,\n sharedValue: SharedValue<number>,\n cancelled: boolean,\n removeView: boolean\n): void {\n 'worklet';\n sharedValue.removeListener(tag + TAG_OFFSET);\n _notifyAboutEnd(tag, cancelled, removeView);\n}\n\nfunction createLayoutAnimationManager() {\n 'worklet';\n const enteringAnimationForTag = new Map();\n const mutableValuesForTag = new Map();\n\n return {\n start(\n tag: number,\n type: LayoutAnimationType,\n yogaValues: LayoutAnimationsValues,\n config: LayoutAnimationFunction\n ) {\n const style = config(yogaValues);\n let currentAnimation = style.animations;\n\n if (type === LayoutAnimationType.ENTERING) {\n enteringAnimationForTag.set(tag, currentAnimation);\n } else if (type === LayoutAnimationType.LAYOUT) {\n // When layout animation is requested, but entering is still running, we merge\n // new layout animation targets into the ongoing animation\n const enteringAnimation = enteringAnimationForTag.get(tag);\n if (enteringAnimation) {\n currentAnimation = { ...enteringAnimation, ...style.animations };\n }\n }\n\n let value = mutableValuesForTag.get(tag);\n if (value === undefined) {\n value = makeUIMutable(style.initialValues);\n mutableValuesForTag.set(tag, value);\n } else {\n stopObservingProgress(tag, value, false, false);\n value._value = style.initialValues;\n }\n\n // @ts-ignore The line below started failing because I added types to the method – don't have time to fix it right now\n const animation = withStyleAnimation(currentAnimation);\n\n animation.callback = (finished?: boolean) => {\n if (finished) {\n enteringAnimationForTag.delete(tag);\n mutableValuesForTag.delete(tag);\n const shouldRemoveView = type === LayoutAnimationType.EXITING;\n stopObservingProgress(tag, value, finished, shouldRemoveView);\n }\n style.callback &&\n style.callback(finished === undefined ? false : finished);\n };\n\n startObservingProgress(tag, value, type);\n value.value = animation;\n },\n stop(tag: number) {\n const value = mutableValuesForTag.get(tag);\n if (!value) {\n return;\n }\n stopObservingProgress(tag, value, true, true);\n },\n };\n}\n\nrunOnUIImmediately(() => {\n 'worklet';\n global.LayoutAnimationsManager = createLayoutAnimationManager();\n})();\n"],"mappings":"AAAA,SAASA,kBAAT,QAAmC,6BAAnC;AAEA,SAASC,aAAT,QAA8B,aAA9B;AACA,SAEEC,mBAFF,QAIO,oBAJP;AAKA,SAASC,kBAAT,QAAmC,YAAnC;AAEA,MAAMC,UAAU,GAAG,GAAnB;;AAEA,SAASC,sBAAT,CACEC,GADF,EAEEC,WAFF,EAGEC,aAHF,EAIQ;EACN;;EACA,MAAMC,kBAAkB,GACtBD,aAAa,KAAKN,mBAAmB,CAACQ,yBADxC;EAEAH,WAAW,CAACI,WAAZ,CAAwBL,GAAG,GAAGF,UAA9B,EAA0C,MAAM;IAC9CQ,oBAAoB,CAACN,GAAD,EAAMC,WAAW,CAACM,KAAlB,EAAyBJ,kBAAzB,CAApB;EACD,CAFD;AAGD;;AAED,SAASK,qBAAT,CACER,GADF,EAEEC,WAFF,EAGEQ,SAHF,EAIEC,UAJF,EAKQ;EACN;;EACAT,WAAW,CAACU,cAAZ,CAA2BX,GAAG,GAAGF,UAAjC;;EACAc,eAAe,CAACZ,GAAD,EAAMS,SAAN,EAAiBC,UAAjB,CAAf;AACD;;AAED,SAASG,4BAAT,GAAwC;EACtC;;EACA,MAAMC,uBAAuB,GAAG,IAAIC,GAAJ,EAAhC;EACA,MAAMC,mBAAmB,GAAG,IAAID,GAAJ,EAA5B;EAEA,OAAO;IACLE,KAAK,CACHjB,GADG,EAEHkB,IAFG,EAGHC,UAHG,EAIHC,MAJG,EAKH;MACA,MAAMC,KAAK,GAAGD,MAAM,CAACD,UAAD,CAApB;MACA,IAAIG,gBAAgB,GAAGD,KAAK,CAACE,UAA7B;;MAEA,IAAIL,IAAI,KAAKtB,mBAAmB,CAAC4B,QAAjC,EAA2C;QACzCV,uBAAuB,CAACW,GAAxB,CAA4BzB,GAA5B,EAAiCsB,gBAAjC;MACD,CAFD,MAEO,IAAIJ,IAAI,KAAKtB,mBAAmB,CAAC8B,MAAjC,EAAyC;QAC9C;QACA;QACA,MAAMC,iBAAiB,GAAGb,uBAAuB,CAACc,GAAxB,CAA4B5B,GAA5B,CAA1B;;QACA,IAAI2B,iBAAJ,EAAuB;UACrBL,gBAAgB,GAAG,EAAE,GAAGK,iBAAL;YAAwB,GAAGN,KAAK,CAACE;UAAjC,CAAnB;QACD;MACF;;MAED,IAAIhB,KAAK,GAAGS,mBAAmB,CAACY,GAApB,CAAwB5B,GAAxB,CAAZ;;MACA,IAAIO,KAAK,KAAKsB,SAAd,EAAyB;QACvBtB,KAAK,GAAGZ,aAAa,CAAC0B,KAAK,CAACS,aAAP,CAArB;QACAd,mBAAmB,CAACS,GAApB,CAAwBzB,GAAxB,EAA6BO,KAA7B;MACD,CAHD,MAGO;QACLC,qBAAqB,CAACR,GAAD,EAAMO,KAAN,EAAa,KAAb,EAAoB,KAApB,CAArB;QACAA,KAAK,CAACwB,MAAN,GAAeV,KAAK,CAACS,aAArB;MACD,CAtBD,CAwBA;;;MACA,MAAME,SAAS,GAAGtC,kBAAkB,CAAC4B,gBAAD,CAApC;;MAEAU,SAAS,CAACC,QAAV,GAAsBC,QAAD,IAAwB;QAC3C,IAAIA,QAAJ,EAAc;UACZpB,uBAAuB,CAACqB,MAAxB,CAA+BnC,GAA/B;UACAgB,mBAAmB,CAACmB,MAApB,CAA2BnC,GAA3B;UACA,MAAMoC,gBAAgB,GAAGlB,IAAI,KAAKtB,mBAAmB,CAACyC,OAAtD;UACA7B,qBAAqB,CAACR,GAAD,EAAMO,KAAN,EAAa2B,QAAb,EAAuBE,gBAAvB,CAArB;QACD;;QACDf,KAAK,CAACY,QAAN,IACEZ,KAAK,CAACY,QAAN,CAAeC,QAAQ,KAAKL,SAAb,GAAyB,KAAzB,GAAiCK,QAAhD,CADF;MAED,CATD;;MAWAnC,sBAAsB,CAACC,GAAD,EAAMO,KAAN,EAAaW,IAAb,CAAtB;MACAX,KAAK,CAACA,KAAN,GAAcyB,SAAd;IACD,CA9CI;;IA+CLM,IAAI,CAACtC,GAAD,EAAc;MAChB,MAAMO,KAAK,GAAGS,mBAAmB,CAACY,GAApB,CAAwB5B,GAAxB,CAAd;;MACA,IAAI,CAACO,KAAL,EAAY;QACV;MACD;;MACDC,qBAAqB,CAACR,GAAD,EAAMO,KAAN,EAAa,IAAb,EAAmB,IAAnB,CAArB;IACD;;EArDI,CAAP;AAuDD;;AAEDV,kBAAkB,CAAC,MAAM;EACvB;;EACA0C,MAAM,CAACC,uBAAP,GAAiC3B,4BAA4B,EAA7D;AACD,CAHiB,CAAlB"}
1
+ {"version":3,"names":["withStyleAnimation","makeUIMutable","LayoutAnimationType","runOnUIImmediately","TAG_OFFSET","startObservingProgress","tag","sharedValue","animationType","isSharedTransition","SHARED_ELEMENT_TRANSITION","addListener","_notifyAboutProgress","value","stopObservingProgress","cancelled","removeView","removeListener","_notifyAboutEnd","createLayoutAnimationManager","enteringAnimationForTag","Map","mutableValuesForTag","start","type","yogaValues","config","style","currentAnimation","animations","ENTERING","set","LAYOUT","enteringAnimation","get","undefined","initialValues","_value","animation","callback","finished","delete","shouldRemoveView","EXITING","stop","global","LayoutAnimationsManager"],"sources":["animationsManager.ts"],"sourcesContent":["import { withStyleAnimation } from '../animation/styleAnimation';\nimport { SharedValue } from '../commonTypes';\nimport { makeUIMutable } from '../mutables';\nimport {\n LayoutAnimationFunction,\n LayoutAnimationType,\n LayoutAnimationsValues,\n} from './animationBuilder';\nimport { runOnUIImmediately } from '../threads';\n\nconst TAG_OFFSET = 1e9;\n\nfunction startObservingProgress(\n tag: number,\n sharedValue: SharedValue<number>,\n animationType: LayoutAnimationType\n): void {\n 'worklet';\n const isSharedTransition =\n animationType === LayoutAnimationType.SHARED_ELEMENT_TRANSITION;\n sharedValue.addListener(tag + TAG_OFFSET, () => {\n _notifyAboutProgress(tag, sharedValue.value, isSharedTransition);\n });\n}\n\nfunction stopObservingProgress(\n tag: number,\n sharedValue: SharedValue<number>,\n cancelled: boolean,\n removeView: boolean\n): void {\n 'worklet';\n sharedValue.removeListener(tag + TAG_OFFSET);\n _notifyAboutEnd(tag, cancelled, removeView);\n}\n\nfunction createLayoutAnimationManager() {\n 'worklet';\n const enteringAnimationForTag = new Map();\n const mutableValuesForTag = new Map();\n\n return {\n start(\n tag: number,\n type: LayoutAnimationType,\n yogaValues: LayoutAnimationsValues,\n config: LayoutAnimationFunction\n ) {\n const style = config(yogaValues);\n let currentAnimation = style.animations;\n\n if (type === LayoutAnimationType.ENTERING) {\n enteringAnimationForTag.set(tag, currentAnimation);\n } else if (type === LayoutAnimationType.LAYOUT) {\n // When layout animation is requested, but entering is still running, we merge\n // new layout animation targets into the ongoing animation\n const enteringAnimation = enteringAnimationForTag.get(tag);\n if (enteringAnimation) {\n currentAnimation = { ...enteringAnimation, ...style.animations };\n }\n }\n\n let value = mutableValuesForTag.get(tag);\n if (value === undefined) {\n value = makeUIMutable(style.initialValues);\n mutableValuesForTag.set(tag, value);\n } else {\n stopObservingProgress(tag, value, false, false);\n value._value = style.initialValues;\n }\n\n // @ts-ignore The line below started failing because I added types to the method – don't have time to fix it right now\n const animation = withStyleAnimation(currentAnimation);\n\n animation.callback = (finished?: boolean) => {\n if (finished) {\n enteringAnimationForTag.delete(tag);\n mutableValuesForTag.delete(tag);\n const shouldRemoveView = type === LayoutAnimationType.EXITING;\n stopObservingProgress(tag, value, finished, shouldRemoveView);\n }\n style.callback &&\n style.callback(finished === undefined ? false : finished);\n };\n\n startObservingProgress(tag, value, type);\n value.value = animation;\n },\n stop(tag: number) {\n const value = mutableValuesForTag.get(tag);\n if (!value) {\n return;\n }\n stopObservingProgress(tag, value, true, true);\n },\n };\n}\n\nrunOnUIImmediately(() => {\n 'worklet';\n global.LayoutAnimationsManager = createLayoutAnimationManager();\n})();\n"],"mappings":"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"}