react-native-reanimated 2.8.0 → 3.0.0-rc.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 (381) hide show
  1. package/Common/cpp/Fabric/FabricUtils.cpp +128 -0
  2. package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +197 -0
  3. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +311 -6
  4. package/Common/cpp/Registries/EventHandlerRegistry.cpp +14 -1
  5. package/Common/cpp/Registries/NewestShadowNodesRegistry.cpp +68 -0
  6. package/Common/cpp/SharedItems/ShareableValue.cpp +18 -0
  7. package/Common/cpp/Tools/Mapper.cpp +23 -4
  8. package/Common/cpp/Tools/RuntimeDecorator.cpp +92 -32
  9. package/Common/cpp/Tools/Scheduler.cpp +4 -0
  10. package/Common/cpp/headers/Fabric/FabricUtils.h +78 -0
  11. package/Common/cpp/headers/Fabric/ReanimatedUIManagerBinding.h +46 -0
  12. package/Common/cpp/headers/NativeModules/NativeReanimatedModule.h +72 -2
  13. package/Common/cpp/headers/Registries/EventHandlerRegistry.h +8 -0
  14. package/Common/cpp/headers/Registries/NewestShadowNodesRegistry.h +41 -0
  15. package/Common/cpp/headers/SharedItems/SharedParent.h +3 -0
  16. package/Common/cpp/headers/SharedItems/ValueWrapper.h +25 -0
  17. package/Common/cpp/headers/SpecTools/ErrorHandler.h +5 -0
  18. package/Common/cpp/headers/Tools/Mapper.h +1 -1
  19. package/Common/cpp/headers/Tools/PlatformDepMethodsHolder.h +43 -8
  20. package/Common/cpp/headers/Tools/RuntimeDecorator.h +8 -3
  21. package/README.md +4 -0
  22. package/RNReanimated.podspec +22 -11
  23. package/android/CMakeLists.txt +139 -27
  24. package/android/build.gradle +86 -209
  25. package/android/local.properties +1 -0
  26. package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +310 -0
  27. package/android/src/fabric/java/com/swmansion/reanimated/ReaCompatibility.java +25 -0
  28. package/android/src/main/cpp/NativeProxy.cpp +178 -33
  29. package/android/src/main/cpp/headers/NativeProxy.h +43 -7
  30. package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +13 -245
  31. package/android/src/main/java/com/swmansion/reanimated/ReanimatedModule.java +0 -125
  32. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +2 -1
  33. package/android/src/{main → paper}/java/com/swmansion/reanimated/NativeProxy.java +15 -2
  34. package/android/src/paper/java/com/swmansion/reanimated/ReaCompatibility.java +17 -0
  35. package/ios/Fabric/REAInitializerRCTFabricSurface.h +12 -0
  36. package/ios/Fabric/REAInitializerRCTFabricSurface.mm +73 -0
  37. package/ios/REAEventDispatcher.m +0 -1
  38. package/ios/REAModule.h +10 -1
  39. package/ios/REAModule.mm +284 -0
  40. package/ios/REANodesManager.h +27 -51
  41. package/ios/{REANodesManager.m → REANodesManager.mm} +91 -223
  42. package/ios/native/NativeProxy.mm +144 -17
  43. package/ios/native/REAInitializer.mm +12 -4
  44. package/ios/native/UIResponder+Reanimated.h +3 -1
  45. package/ios/native/UIResponder+Reanimated.mm +3 -1
  46. package/lib/Animated.js +0 -4
  47. package/lib/createAnimatedComponent.js +30 -169
  48. package/lib/index.js +0 -4
  49. package/lib/reanimated2/Easing.js +0 -42
  50. package/lib/reanimated2/NativeMethods.js +20 -3
  51. package/lib/reanimated2/UpdateProps.js +25 -10
  52. package/lib/reanimated2/core.js +4 -1
  53. package/lib/reanimated2/fabricUtils.js +18 -0
  54. package/lib/reanimated2/globals.d.ts +17 -1
  55. package/lib/reanimated2/hook/useAnimatedRef.js +6 -2
  56. package/lib/reanimated2/hook/utils.js +0 -5
  57. package/lib/reanimated2/interpolateColor.js +5 -2
  58. package/lib/reanimated2/interpolation.js +0 -15
  59. package/lib/reanimated2/js-reanimated/index.js +3 -0
  60. package/lib/types/{lib/ConfigHelper.d.ts → ConfigHelper.d.ts} +0 -0
  61. package/lib/types/{lib/ReanimatedEventEmitter.d.ts → ReanimatedEventEmitter.d.ts} +0 -0
  62. package/lib/types/{lib/ReanimatedModule.d.ts → ReanimatedModule.d.ts} +0 -0
  63. package/lib/types/{lib/ReanimatedModule.macos.d.ts → ReanimatedModule.macos.d.ts} +0 -0
  64. package/lib/types/{lib/ReanimatedModule.native.d.ts → ReanimatedModule.native.d.ts} +0 -0
  65. package/lib/types/{lib/ReanimatedModule.windows.d.ts → ReanimatedModule.windows.d.ts} +0 -0
  66. package/lib/types/{lib/ReanimatedModuleCompat.d.ts → ReanimatedModuleCompat.d.ts} +0 -0
  67. package/lib/types/{lib/createAnimatedComponent.d.ts → createAnimatedComponent.d.ts} +0 -0
  68. package/lib/types/{lib/reanimated2 → reanimated2}/Bezier.d.ts +0 -0
  69. package/lib/types/{lib/reanimated2 → reanimated2}/Colors.d.ts +0 -0
  70. package/lib/types/{lib/reanimated2 → reanimated2}/Easing.d.ts +0 -0
  71. package/lib/types/{lib/reanimated2 → reanimated2}/NativeMethods.d.ts +2 -1
  72. package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/NativeReanimated.d.ts +0 -0
  73. package/lib/types/{lib/reanimated2 → reanimated2}/NativeReanimated/index.d.ts +0 -0
  74. package/lib/types/{lib/reanimated2 → reanimated2}/PlatformChecker.d.ts +0 -0
  75. package/lib/types/{lib/reanimated2 → reanimated2}/PropAdapters.d.ts +0 -0
  76. package/lib/types/{lib/reanimated2 → reanimated2}/UpdateProps.d.ts +0 -0
  77. package/lib/types/{lib/reanimated2 → reanimated2}/ViewDescriptorsSet.d.ts +0 -0
  78. package/lib/types/{lib/reanimated2 → reanimated2}/WorkletEventHandler.d.ts +0 -0
  79. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/MutableValue.d.ts +0 -0
  80. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.d.ts +0 -0
  81. package/lib/types/{lib/reanimated2 → reanimated2}/__mocks__/NativeReanimated.native.d.ts +0 -0
  82. package/lib/types/{lib/reanimated2 → reanimated2}/animation/commonTypes.d.ts +0 -0
  83. package/lib/types/{lib/reanimated2 → reanimated2}/animation/decay.d.ts +0 -0
  84. package/lib/types/{lib/reanimated2 → reanimated2}/animation/delay.d.ts +0 -0
  85. package/lib/types/{lib/reanimated2 → reanimated2}/animation/index.d.ts +0 -0
  86. package/lib/types/{lib/reanimated2 → reanimated2}/animation/repeat.d.ts +0 -0
  87. package/lib/types/{lib/reanimated2 → reanimated2}/animation/sequence.d.ts +0 -0
  88. package/lib/types/{lib/reanimated2 → reanimated2}/animation/spring.d.ts +0 -0
  89. package/lib/types/{lib/reanimated2 → reanimated2}/animation/styleAnimation.d.ts +0 -0
  90. package/lib/types/{lib/reanimated2 → reanimated2}/animation/timing.d.ts +0 -0
  91. package/lib/types/{lib/reanimated2 → reanimated2}/animation/util.d.ts +0 -0
  92. package/lib/types/{lib/reanimated2 → reanimated2}/commonTypes.d.ts +2 -1
  93. package/lib/types/{lib/reanimated2 → reanimated2}/component/FlatList.d.ts +0 -0
  94. package/lib/types/{lib/reanimated2 → reanimated2}/component/WrappedComponents.d.ts +0 -0
  95. package/lib/types/{lib/reanimated2 → reanimated2}/component/index.d.ts +0 -0
  96. package/lib/types/{lib/reanimated2 → reanimated2}/core.d.ts +0 -0
  97. package/lib/types/reanimated2/fabricUtils.d.ts +4 -0
  98. package/lib/types/{lib/reanimated2 → reanimated2}/hook/Hooks.d.ts +0 -0
  99. package/lib/types/{lib/reanimated2 → reanimated2}/hook/commonTypes.d.ts +2 -1
  100. package/lib/types/{lib/reanimated2 → reanimated2}/hook/index.d.ts +1 -1
  101. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedGestureHandler.d.ts +2 -2
  102. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedReaction.d.ts +0 -0
  103. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedRef.d.ts +0 -0
  104. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedScrollHandler.d.ts +2 -2
  105. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedSensor.d.ts +0 -0
  106. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useAnimatedStyle.d.ts +0 -0
  107. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useDerivedValue.d.ts +0 -0
  108. package/lib/types/{lib/reanimated2 → reanimated2}/hook/useSharedValue.d.ts +0 -0
  109. package/lib/types/{lib/reanimated2 → reanimated2}/hook/utils.d.ts +2 -2
  110. package/lib/types/{lib/reanimated2 → reanimated2}/index.d.ts +0 -0
  111. package/lib/types/{lib/reanimated2 → reanimated2}/interpolateColor.d.ts +5 -0
  112. package/lib/types/{lib/reanimated2 → reanimated2}/interpolation.d.ts +1 -4
  113. package/lib/types/{lib/reanimated2 → reanimated2}/jestUtils.d.ts +0 -0
  114. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/JSReanimated.d.ts +0 -0
  115. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/Mapper.d.ts +0 -0
  116. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MapperRegistry.d.ts +0 -0
  117. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/MutableValue.d.ts +0 -0
  118. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/commonTypes.d.ts +0 -0
  119. package/lib/types/{lib/reanimated2 → reanimated2}/js-reanimated/index.d.ts +0 -0
  120. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/LayoutAnimationRepository.d.ts +0 -0
  121. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/BaseAnimationBuilder.d.ts +0 -0
  122. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/ComplexAnimationBuilder.d.ts +0 -0
  123. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/Keyframe.d.ts +0 -0
  124. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/commonTypes.d.ts +0 -0
  125. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/animationBuilder/index.d.ts +0 -0
  126. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Bounce.d.ts +0 -0
  127. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Default.d.ts +0 -0
  128. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Fade.d.ts +0 -0
  129. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Flip.d.ts +0 -0
  130. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Lightspeed.d.ts +0 -0
  131. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Pinwheel.d.ts +0 -0
  132. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Roll.d.ts +0 -0
  133. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Rotate.d.ts +0 -0
  134. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Slide.d.ts +0 -0
  135. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Stretch.d.ts +0 -0
  136. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/Zoom.d.ts +0 -0
  137. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultAnimations/index.d.ts +0 -0
  138. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/CurvedTransition.d.ts +0 -0
  139. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/EntryExitTransition.d.ts +0 -0
  140. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/FadingTransition.d.ts +0 -0
  141. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/JumpingTransition.d.ts +0 -0
  142. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/LinearTransition.d.ts +0 -0
  143. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/SequencedTransition.d.ts +0 -0
  144. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/defaultTransitions/index.d.ts +0 -0
  145. package/lib/types/{lib/reanimated2 → reanimated2}/layoutReanimation/index.d.ts +0 -0
  146. package/lib/types/{lib/reanimated2 → reanimated2}/mock.d.ts +0 -0
  147. package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.d.ts +0 -0
  148. package/lib/types/{lib/reanimated2 → reanimated2}/platform-specific/RNRenderer.web.d.ts +0 -0
  149. package/lib/types/{lib/reanimated2 → reanimated2}/utils.d.ts +0 -0
  150. package/lib/types/{lib/setAndForwardRef.d.ts → setAndForwardRef.d.ts} +0 -0
  151. package/package.json +7 -5
  152. package/plugin.js +4 -1
  153. package/src/Animated.js +0 -4
  154. package/src/createAnimatedComponent.tsx +37 -197
  155. package/src/reanimated2/Easing.ts +0 -53
  156. package/src/reanimated2/NativeMethods.ts +39 -7
  157. package/src/reanimated2/UpdateProps.ts +38 -19
  158. package/src/reanimated2/commonTypes.ts +4 -1
  159. package/src/reanimated2/component/FlatList.tsx +8 -5
  160. package/src/reanimated2/core.ts +7 -1
  161. package/src/reanimated2/fabricUtils.ts +27 -0
  162. package/src/reanimated2/globals.d.ts +17 -1
  163. package/src/reanimated2/hook/commonTypes.ts +4 -2
  164. package/src/reanimated2/hook/index.ts +1 -1
  165. package/src/reanimated2/hook/useAnimatedGestureHandler.ts +2 -2
  166. package/src/reanimated2/hook/useAnimatedRef.ts +8 -3
  167. package/src/reanimated2/hook/useAnimatedScrollHandler.ts +2 -2
  168. package/src/reanimated2/hook/utils.ts +2 -11
  169. package/src/reanimated2/interpolateColor.ts +6 -2
  170. package/src/reanimated2/interpolation.ts +1 -26
  171. package/src/reanimated2/js-reanimated/index.ts +5 -0
  172. package/android/.gradle/7.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  173. package/android/.gradle/7.2/dependencies-accessors/gc.properties +0 -0
  174. package/android/.gradle/7.2/executionHistory/executionHistory.bin +0 -0
  175. package/android/.gradle/7.2/executionHistory/executionHistory.lock +0 -0
  176. package/android/.gradle/7.2/fileChanges/last-build.bin +0 -0
  177. package/android/.gradle/7.2/fileHashes/fileHashes.bin +0 -0
  178. package/android/.gradle/7.2/fileHashes/fileHashes.lock +0 -0
  179. package/android/.gradle/7.2/fileHashes/resourceHashesCache.bin +0 -0
  180. package/android/.gradle/7.2/gc.properties +0 -0
  181. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  182. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  183. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  184. package/android/.gradle/checksums/checksums.lock +0 -0
  185. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  186. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  187. package/android/.gradle/vcs-1/gc.properties +0 -0
  188. package/android/react-native-reanimated-64-hermes.aar +0 -0
  189. package/android/react-native-reanimated-64-jsc.aar +0 -0
  190. package/android/react-native-reanimated-65-hermes.aar +0 -0
  191. package/android/react-native-reanimated-65-jsc.aar +0 -0
  192. package/android/react-native-reanimated-66-hermes.aar +0 -0
  193. package/android/react-native-reanimated-66-jsc.aar +0 -0
  194. package/android/react-native-reanimated-67-hermes.aar +0 -0
  195. package/android/react-native-reanimated-67-jsc.aar +0 -0
  196. package/android/react-native-reanimated-68-hermes.aar +0 -0
  197. package/android/react-native-reanimated-68-jsc.aar +0 -0
  198. package/android/src/main/java/com/swmansion/reanimated/UpdateContext.java +0 -11
  199. package/android/src/main/java/com/swmansion/reanimated/nodes/AlwaysNode.java +0 -29
  200. package/android/src/main/java/com/swmansion/reanimated/nodes/BezierNode.java +0 -87
  201. package/android/src/main/java/com/swmansion/reanimated/nodes/BlockNode.java +0 -24
  202. package/android/src/main/java/com/swmansion/reanimated/nodes/CallFuncNode.java +0 -49
  203. package/android/src/main/java/com/swmansion/reanimated/nodes/ClockNode.java +0 -38
  204. package/android/src/main/java/com/swmansion/reanimated/nodes/ClockOpNode.java +0 -73
  205. package/android/src/main/java/com/swmansion/reanimated/nodes/ConcatNode.java +0 -36
  206. package/android/src/main/java/com/swmansion/reanimated/nodes/CondNode.java +0 -41
  207. package/android/src/main/java/com/swmansion/reanimated/nodes/DebugNode.java +0 -33
  208. package/android/src/main/java/com/swmansion/reanimated/nodes/EventNode.java +0 -83
  209. package/android/src/main/java/com/swmansion/reanimated/nodes/FinalNode.java +0 -5
  210. package/android/src/main/java/com/swmansion/reanimated/nodes/FunctionNode.java +0 -20
  211. package/android/src/main/java/com/swmansion/reanimated/nodes/JSCallNode.java +0 -41
  212. package/android/src/main/java/com/swmansion/reanimated/nodes/Node.java +0 -139
  213. package/android/src/main/java/com/swmansion/reanimated/nodes/NoopNode.java +0 -37
  214. package/android/src/main/java/com/swmansion/reanimated/nodes/OperatorNode.java +0 -377
  215. package/android/src/main/java/com/swmansion/reanimated/nodes/ParamNode.java +0 -71
  216. package/android/src/main/java/com/swmansion/reanimated/nodes/PropsNode.java +0 -153
  217. package/android/src/main/java/com/swmansion/reanimated/nodes/SetNode.java +0 -32
  218. package/android/src/main/java/com/swmansion/reanimated/nodes/StyleNode.java +0 -40
  219. package/android/src/main/java/com/swmansion/reanimated/nodes/TransformNode.java +0 -84
  220. package/android/src/main/java/com/swmansion/reanimated/nodes/ValueNode.java +0 -40
  221. package/android/src/main/java/com/swmansion/reanimated/transitions/ChangeTransition.java +0 -84
  222. package/android/src/main/java/com/swmansion/reanimated/transitions/SaneSidePropagation.java +0 -25
  223. package/android/src/main/java/com/swmansion/reanimated/transitions/Scale.java +0 -86
  224. package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionModule.java +0 -41
  225. package/android/src/main/java/com/swmansion/reanimated/transitions/TransitionUtils.java +0 -161
  226. package/ios/Nodes/REAAlwaysNode.h +0 -4
  227. package/ios/Nodes/REAAlwaysNode.m +0 -35
  228. package/ios/Nodes/REABezierNode.h +0 -5
  229. package/ios/Nodes/REABezierNode.m +0 -103
  230. package/ios/Nodes/REABlockNode.h +0 -5
  231. package/ios/Nodes/REABlockNode.m +0 -25
  232. package/ios/Nodes/REACallFuncNode.h +0 -6
  233. package/ios/Nodes/REACallFuncNode.m +0 -69
  234. package/ios/Nodes/REAClockNodes.h +0 -19
  235. package/ios/Nodes/REAClockNodes.m +0 -118
  236. package/ios/Nodes/REAConcatNode.h +0 -5
  237. package/ios/Nodes/REAConcatNode.m +0 -32
  238. package/ios/Nodes/REACondNode.h +0 -5
  239. package/ios/Nodes/REACondNode.m +0 -36
  240. package/ios/Nodes/READebugNode.h +0 -5
  241. package/ios/Nodes/READebugNode.m +0 -30
  242. package/ios/Nodes/REAEventNode.h +0 -8
  243. package/ios/Nodes/REAEventNode.m +0 -35
  244. package/ios/Nodes/REAFunctionNode.h +0 -6
  245. package/ios/Nodes/REAFunctionNode.m +0 -24
  246. package/ios/Nodes/REAJSCallNode.h +0 -5
  247. package/ios/Nodes/REAJSCallNode.m +0 -30
  248. package/ios/Nodes/REANode.h +0 -40
  249. package/ios/Nodes/REANode.m +0 -155
  250. package/ios/Nodes/REAOperatorNode.h +0 -5
  251. package/ios/Nodes/REAOperatorNode.m +0 -114
  252. package/ios/Nodes/REAParamNode.h +0 -10
  253. package/ios/Nodes/REAParamNode.m +0 -79
  254. package/ios/Nodes/REAPropsNode.h +0 -9
  255. package/ios/Nodes/REAPropsNode.m +0 -96
  256. package/ios/Nodes/REASetNode.h +0 -5
  257. package/ios/Nodes/REASetNode.m +0 -34
  258. package/ios/Nodes/REAStyleNode.h +0 -5
  259. package/ios/Nodes/REAStyleNode.m +0 -27
  260. package/ios/Nodes/REATransformNode.h +0 -5
  261. package/ios/Nodes/REATransformNode.m +0 -36
  262. package/ios/Nodes/REAValueNode.h +0 -9
  263. package/ios/Nodes/REAValueNode.m +0 -26
  264. package/ios/REAModule.m +0 -184
  265. package/ios/Transitioning/RCTConvert+REATransition.h +0 -11
  266. package/ios/Transitioning/RCTConvert+REATransition.m +0 -53
  267. package/ios/Transitioning/REAAllTransitions.h +0 -26
  268. package/ios/Transitioning/REAAllTransitions.m +0 -296
  269. package/ios/Transitioning/REATransition.h +0 -64
  270. package/ios/Transitioning/REATransition.m +0 -210
  271. package/ios/Transitioning/REATransitionAnimation.h +0 -17
  272. package/ios/Transitioning/REATransitionAnimation.m +0 -79
  273. package/ios/Transitioning/REATransitionManager.h +0 -9
  274. package/ios/Transitioning/REATransitionManager.m +0 -60
  275. package/ios/Transitioning/REATransitionValues.h +0 -15
  276. package/ios/Transitioning/REATransitionValues.m +0 -25
  277. package/lib/reanimated1/Easing.js +0 -231
  278. package/lib/reanimated1/SpringConfig.js +0 -79
  279. package/lib/reanimated1/Transitioning.js +0 -158
  280. package/lib/reanimated1/animations/Animation.js +0 -32
  281. package/lib/reanimated1/animations/SpringUtils.js +0 -199
  282. package/lib/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
  283. package/lib/reanimated1/animations/decay.js +0 -54
  284. package/lib/reanimated1/animations/spring.js +0 -198
  285. package/lib/reanimated1/animations/timing.js +0 -74
  286. package/lib/reanimated1/base.js +0 -13
  287. package/lib/reanimated1/core/AnimatedAlways.js +0 -33
  288. package/lib/reanimated1/core/AnimatedBezier.js +0 -150
  289. package/lib/reanimated1/core/AnimatedBlock.js +0 -52
  290. package/lib/reanimated1/core/AnimatedCall.js +0 -55
  291. package/lib/reanimated1/core/AnimatedCallFunc.js +0 -72
  292. package/lib/reanimated1/core/AnimatedClock.js +0 -90
  293. package/lib/reanimated1/core/AnimatedClockTest.js +0 -22
  294. package/lib/reanimated1/core/AnimatedCode.js +0 -32
  295. package/lib/reanimated1/core/AnimatedConcat.js +0 -32
  296. package/lib/reanimated1/core/AnimatedCond.js +0 -57
  297. package/lib/reanimated1/core/AnimatedDebug.js +0 -62
  298. package/lib/reanimated1/core/AnimatedEvent.js +0 -126
  299. package/lib/reanimated1/core/AnimatedFunction.js +0 -55
  300. package/lib/reanimated1/core/AnimatedNode.js +0 -223
  301. package/lib/reanimated1/core/AnimatedOperator.js +0 -103
  302. package/lib/reanimated1/core/AnimatedParam.js +0 -88
  303. package/lib/reanimated1/core/AnimatedProps.js +0 -108
  304. package/lib/reanimated1/core/AnimatedSet.js +0 -38
  305. package/lib/reanimated1/core/AnimatedStartClock.js +0 -30
  306. package/lib/reanimated1/core/AnimatedStopClock.js +0 -30
  307. package/lib/reanimated1/core/AnimatedStyle.js +0 -78
  308. package/lib/reanimated1/core/AnimatedTransform.js +0 -78
  309. package/lib/reanimated1/core/AnimatedValue.js +0 -38
  310. package/lib/reanimated1/core/Core.test.js +0 -30
  311. package/lib/reanimated1/core/InternalAnimatedValue.js +0 -87
  312. package/lib/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
  313. package/lib/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
  314. package/lib/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
  315. package/lib/reanimated1/derived/acc.js +0 -11
  316. package/lib/reanimated1/derived/color.js +0 -47
  317. package/lib/reanimated1/derived/diff.js +0 -16
  318. package/lib/reanimated1/derived/diffClamp.js +0 -11
  319. package/lib/reanimated1/derived/evaluateOnce.js +0 -35
  320. package/lib/reanimated1/derived/index.js +0 -8
  321. package/lib/reanimated1/derived/interpolate.js +0 -152
  322. package/lib/reanimated1/derived/interpolateColors.js +0 -62
  323. package/lib/reanimated1/derived/onChange.js +0 -14
  324. package/lib/reanimated1/derived/useCode.js +0 -41
  325. package/lib/reanimated1/index.js +0 -53
  326. package/lib/reanimated1/operators.js +0 -35
  327. package/lib/reanimated1/useValue.js +0 -10
  328. package/lib/reanimated1/val.js +0 -3
  329. package/lib/types/react-native-reanimated-tests.d.ts +0 -1
  330. package/src/reanimated1/Easing.js +0 -231
  331. package/src/reanimated1/SpringConfig.js +0 -79
  332. package/src/reanimated1/Transitioning.js +0 -158
  333. package/src/reanimated1/animations/Animation.js +0 -32
  334. package/src/reanimated1/animations/SpringUtils.js +0 -199
  335. package/src/reanimated1/animations/backwardCompatibleAnimWrapper.js +0 -117
  336. package/src/reanimated1/animations/decay.js +0 -54
  337. package/src/reanimated1/animations/spring.js +0 -198
  338. package/src/reanimated1/animations/timing.js +0 -74
  339. package/src/reanimated1/base.js +0 -13
  340. package/src/reanimated1/core/AnimatedAlways.js +0 -33
  341. package/src/reanimated1/core/AnimatedBezier.js +0 -150
  342. package/src/reanimated1/core/AnimatedBlock.js +0 -52
  343. package/src/reanimated1/core/AnimatedCall.js +0 -55
  344. package/src/reanimated1/core/AnimatedCallFunc.js +0 -72
  345. package/src/reanimated1/core/AnimatedClock.js +0 -90
  346. package/src/reanimated1/core/AnimatedClockTest.js +0 -22
  347. package/src/reanimated1/core/AnimatedCode.js +0 -32
  348. package/src/reanimated1/core/AnimatedConcat.js +0 -32
  349. package/src/reanimated1/core/AnimatedCond.js +0 -57
  350. package/src/reanimated1/core/AnimatedDebug.js +0 -62
  351. package/src/reanimated1/core/AnimatedEvent.js +0 -126
  352. package/src/reanimated1/core/AnimatedFunction.js +0 -55
  353. package/src/reanimated1/core/AnimatedNode.js +0 -223
  354. package/src/reanimated1/core/AnimatedOperator.js +0 -103
  355. package/src/reanimated1/core/AnimatedParam.js +0 -88
  356. package/src/reanimated1/core/AnimatedProps.js +0 -108
  357. package/src/reanimated1/core/AnimatedSet.js +0 -38
  358. package/src/reanimated1/core/AnimatedStartClock.js +0 -30
  359. package/src/reanimated1/core/AnimatedStopClock.js +0 -30
  360. package/src/reanimated1/core/AnimatedStyle.js +0 -78
  361. package/src/reanimated1/core/AnimatedTransform.js +0 -78
  362. package/src/reanimated1/core/AnimatedValue.js +0 -38
  363. package/src/reanimated1/core/Core.test.js +0 -30
  364. package/src/reanimated1/core/InternalAnimatedValue.js +0 -87
  365. package/src/reanimated1/core/__mocks__/AnimatedProps.js +0 -86
  366. package/src/reanimated1/core/createEventObjectProxyPolyfill.js +0 -44
  367. package/src/reanimated1/derived/__mocks__/evaluateOnce.js +0 -14
  368. package/src/reanimated1/derived/acc.js +0 -11
  369. package/src/reanimated1/derived/color.js +0 -47
  370. package/src/reanimated1/derived/diff.js +0 -16
  371. package/src/reanimated1/derived/diffClamp.js +0 -11
  372. package/src/reanimated1/derived/evaluateOnce.js +0 -35
  373. package/src/reanimated1/derived/index.js +0 -8
  374. package/src/reanimated1/derived/interpolate.js +0 -152
  375. package/src/reanimated1/derived/interpolateColors.js +0 -62
  376. package/src/reanimated1/derived/onChange.js +0 -14
  377. package/src/reanimated1/derived/useCode.js +0 -41
  378. package/src/reanimated1/index.js +0 -53
  379. package/src/reanimated1/operators.js +0 -35
  380. package/src/reanimated1/useValue.js +0 -10
  381. package/src/reanimated1/val.js +0 -3
@@ -1,158 +0,0 @@
1
- import React from 'react';
2
- import { View, findNodeHandle } from 'react-native';
3
- import ReanimatedModule from '../ReanimatedModule';
4
-
5
- const TransitioningContext = React.createContext();
6
-
7
- function configFromProps(type, props) {
8
- const config = { type };
9
- if ('durationMs' in props) {
10
- config.durationMs = props.durationMs;
11
- }
12
- if ('interpolation' in props) {
13
- config.interpolation = props.interpolation;
14
- }
15
- if ('type' in props) {
16
- config.animation = props.type;
17
- }
18
- if ('delayMs' in props) {
19
- config.delayMs = props.delayMs;
20
- }
21
- if ('propagation' in props) {
22
- config.propagation = props.propagation;
23
- }
24
- return config;
25
- }
26
-
27
- /**
28
- * The below wrapper is used to support legacy context API with Context.Consumer
29
- * render prop. We need it as we want to access `context` from within
30
- * `componentDidMount` callback. If we decided to drop support for older
31
- * react native we could rewrite it using hooks or `static contextType` API.
32
- */
33
- function wrapTransitioningContext(Comp) {
34
- return (props) => {
35
- return (
36
- <TransitioningContext.Consumer>
37
- {(context) => <Comp context={context} {...props} />}
38
- </TransitioningContext.Consumer>
39
- );
40
- };
41
- }
42
-
43
- class In extends React.Component {
44
- componentDidMount() {
45
- this.props.context.push(configFromProps('in', this.props));
46
- }
47
-
48
- render() {
49
- return this.props.children || null;
50
- }
51
- }
52
-
53
- class Change extends React.Component {
54
- componentDidMount() {
55
- this.props.context.push(configFromProps('change', this.props));
56
- }
57
-
58
- render() {
59
- return this.props.children || null;
60
- }
61
- }
62
-
63
- class Out extends React.Component {
64
- componentDidMount() {
65
- this.props.context.push(configFromProps('out', this.props));
66
- }
67
-
68
- render() {
69
- return this.props.children || null;
70
- }
71
- }
72
-
73
- class Together extends React.Component {
74
- transitions = [];
75
- componentDidMount() {
76
- const config = configFromProps('group', this.props);
77
- config.transitions = this.transitions;
78
- this.props.context.push(config);
79
- }
80
-
81
- render() {
82
- return (
83
- <TransitioningContext.Provider value={this.transitions}>
84
- {this.props.children}
85
- </TransitioningContext.Provider>
86
- );
87
- }
88
- }
89
-
90
- class Sequence extends React.Component {
91
- transitions = [];
92
- componentDidMount() {
93
- const config = configFromProps('group', this.props);
94
- config.sequence = true;
95
- config.transitions = this.transitions;
96
- this.props.context.push(config);
97
- }
98
-
99
- render() {
100
- return (
101
- <TransitioningContext.Provider value={this.transitions}>
102
- {this.props.children}
103
- </TransitioningContext.Provider>
104
- );
105
- }
106
- }
107
-
108
- function createTransitioningComponent(Component) {
109
- class Wrapped extends React.Component {
110
- propTypes = Component.propTypes;
111
- transitions = [];
112
- viewRef = React.createRef();
113
-
114
- componentDidMount() {
115
- if (this.props.animateMount) {
116
- this.animateNextTransition();
117
- }
118
- }
119
-
120
- setNativeProps(props) {
121
- this.viewRef.current.setNativeProps(props);
122
- }
123
-
124
- animateNextTransition() {
125
- const viewTag = findNodeHandle(this.viewRef.current);
126
- ReanimatedModule.animateNextTransition(viewTag, {
127
- transitions: this.transitions,
128
- });
129
- }
130
-
131
- render() {
132
- const { transition, ...rest } = this.props;
133
- return (
134
- <React.Fragment>
135
- <TransitioningContext.Provider value={this.transitions}>
136
- {transition}
137
- </TransitioningContext.Provider>
138
- <Component {...rest} ref={this.viewRef} collapsable={false} />
139
- </React.Fragment>
140
- );
141
- }
142
- }
143
- return Wrapped;
144
- }
145
-
146
- const Transitioning = {
147
- View: createTransitioningComponent(View),
148
- };
149
-
150
- const Transition = {
151
- Sequence: wrapTransitioningContext(Sequence),
152
- Together: wrapTransitioningContext(Together),
153
- In: wrapTransitioningContext(In),
154
- Out: wrapTransitioningContext(Out),
155
- Change: wrapTransitioningContext(Change),
156
- };
157
-
158
- export { Transitioning, Transition, createTransitioningComponent };
@@ -1,32 +0,0 @@
1
- import AnimatedValue from '../core/InternalAnimatedValue';
2
-
3
- class Animation {
4
- static springDefaultState() {
5
- return {
6
- position: new AnimatedValue(0),
7
- finished: new AnimatedValue(0),
8
- velocity: new AnimatedValue(0),
9
- time: new AnimatedValue(0),
10
- };
11
- }
12
-
13
- static decayDefaultState() {
14
- return {
15
- position: new AnimatedValue(0),
16
- finished: new AnimatedValue(0),
17
- velocity: new AnimatedValue(0),
18
- time: new AnimatedValue(0),
19
- };
20
- }
21
-
22
- static timingDefaultState() {
23
- return {
24
- position: new AnimatedValue(0),
25
- finished: new AnimatedValue(0),
26
- time: new AnimatedValue(0),
27
- frameTime: new AnimatedValue(0),
28
- };
29
- }
30
- }
31
-
32
- export default Animation;
@@ -1,199 +0,0 @@
1
- import {
2
- cond,
3
- sub,
4
- divide,
5
- multiply,
6
- add,
7
- pow,
8
- lessOrEq,
9
- and,
10
- greaterThan,
11
- } from './../base';
12
- import AnimatedValue from './../core/InternalAnimatedValue';
13
-
14
- function stiffnessFromOrigamiValue(oValue) {
15
- return (oValue - 30) * 3.62 + 194;
16
- }
17
-
18
- function dampingFromOrigamiValue(oValue) {
19
- return (oValue - 8) * 3 + 25;
20
- }
21
-
22
- function stiffnessFromOrigamiNode(oValue) {
23
- return add(multiply(sub(oValue, 30), 3.62), 194);
24
- }
25
-
26
- function dampingFromOrigamiNode(oValue) {
27
- return add(multiply(sub(oValue, 8), 3), 25);
28
- }
29
-
30
- function makeConfigFromOrigamiTensionAndFriction(prevConfig) {
31
- const { tension, friction, ...rest } = prevConfig;
32
- return {
33
- ...rest,
34
- stiffness:
35
- typeof tension === 'number'
36
- ? stiffnessFromOrigamiValue(tension)
37
- : stiffnessFromOrigamiNode(tension),
38
- damping:
39
- typeof friction === 'number'
40
- ? dampingFromOrigamiValue(friction)
41
- : dampingFromOrigamiNode(friction),
42
- };
43
- }
44
-
45
- function makeConfigFromBouncinessAndSpeed(prevConfig) {
46
- const { bounciness, speed, ...rest } = prevConfig;
47
- if (typeof bounciness === 'number' && typeof speed === 'number') {
48
- return fromBouncinessAndSpeedNumbers(bounciness, speed, rest);
49
- }
50
- return fromBouncinessAndSpeedNodes(bounciness, speed, rest);
51
- }
52
-
53
- function fromBouncinessAndSpeedNodes(bounciness, speed, rest) {
54
- function normalize(value, startValue, endValue) {
55
- return divide(sub(value, startValue), sub(endValue, startValue));
56
- }
57
-
58
- function projectNormal(n, start, end) {
59
- return add(start, multiply(n, sub(end, start)));
60
- }
61
-
62
- function linearInterpolation(t, start, end) {
63
- return add(multiply(t, end), multiply(sub(1, t), start));
64
- }
65
-
66
- function quadraticOutInterpolation(t, start, end) {
67
- return linearInterpolation(sub(multiply(2, t), multiply(t, t)), start, end);
68
- }
69
-
70
- function b3Friction1(x) {
71
- return add(
72
- sub(multiply(0.0007, pow(x, 3)), multiply(0.031, pow(x, 2))),
73
- multiply(0.64, x),
74
- 1.28
75
- );
76
- }
77
-
78
- function b3Friction2(x) {
79
- return add(
80
- sub(multiply(0.000044, pow(x, 3)), multiply(0.006, pow(x, 2))),
81
- multiply(0.36, x),
82
- 2
83
- );
84
- }
85
-
86
- function b3Friction3(x) {
87
- return add(
88
- sub(multiply(0.00000045, pow(x, 3)), multiply(0.000332, pow(x, 2))),
89
- multiply(0.1078, x),
90
- 5.84
91
- );
92
- }
93
-
94
- function b3Nobounce(tension) {
95
- return cond(
96
- lessOrEq(tension, 18),
97
- b3Friction1(tension),
98
- cond(
99
- and(greaterThan(tension, 18), lessOrEq(tension, 44)),
100
- b3Friction2(tension),
101
- b3Friction3(tension)
102
- )
103
- );
104
- }
105
-
106
- let b = normalize(divide(bounciness, 1.7), 0, 20);
107
- b = projectNormal(b, 0, 0.8);
108
- const s = normalize(divide(speed, 1.7), 0, 20);
109
- const bouncyTension = projectNormal(s, 0.5, 200);
110
- const bouncyFriction = quadraticOutInterpolation(
111
- b,
112
- b3Nobounce(bouncyTension),
113
- 0.01
114
- );
115
- return {
116
- ...rest,
117
- stiffness: stiffnessFromOrigamiNode(bouncyTension),
118
- damping: dampingFromOrigamiNode(bouncyFriction),
119
- };
120
- }
121
-
122
- function fromBouncinessAndSpeedNumbers(bounciness, speed, rest) {
123
- function normalize(value, startValue, endValue) {
124
- return (value - startValue) / (endValue - startValue);
125
- }
126
-
127
- function projectNormal(n, start, end) {
128
- return start + n * (end - start);
129
- }
130
-
131
- function linearInterpolation(t, start, end) {
132
- return t * end + (1 - t) * start;
133
- }
134
-
135
- function quadraticOutInterpolation(t, start, end) {
136
- return linearInterpolation(2 * t - t * t, start, end);
137
- }
138
-
139
- function b3Friction1(x) {
140
- return 0.0007 * Math.pow(x, 3) - 0.031 * Math.pow(x, 2) + 0.64 * x + 1.28;
141
- }
142
-
143
- function b3Friction2(x) {
144
- return 0.000044 * Math.pow(x, 3) - 0.006 * Math.pow(x, 2) + 0.36 * x + 2;
145
- }
146
-
147
- function b3Friction3(x) {
148
- return (
149
- 0.00000045 * Math.pow(x, 3) -
150
- 0.000332 * Math.pow(x, 2) +
151
- 0.1078 * x +
152
- 5.84
153
- );
154
- }
155
-
156
- function b3Nobounce(tension) {
157
- if (tension <= 18) {
158
- return b3Friction1(tension);
159
- } else if (tension > 18 && tension <= 44) {
160
- return b3Friction2(tension);
161
- } else {
162
- return b3Friction3(tension);
163
- }
164
- }
165
-
166
- let b = normalize(bounciness / 1.7, 0, 20);
167
- b = projectNormal(b, 0, 0.8);
168
- const s = normalize(speed / 1.7, 0, 20);
169
- const bouncyTension = projectNormal(s, 0.5, 200);
170
- const bouncyFriction = quadraticOutInterpolation(
171
- b,
172
- b3Nobounce(bouncyTension),
173
- 0.01
174
- );
175
-
176
- return {
177
- ...rest,
178
- stiffness: stiffnessFromOrigamiValue(bouncyTension),
179
- damping: dampingFromOrigamiValue(bouncyFriction),
180
- };
181
- }
182
-
183
- function makeDefaultConfig() {
184
- return {
185
- stiffness: new AnimatedValue(100),
186
- mass: new AnimatedValue(1),
187
- damping: new AnimatedValue(10),
188
- overshootClamping: false,
189
- restSpeedThreshold: 0.001,
190
- restDisplacementThreshold: 0.001,
191
- toValue: new AnimatedValue(0),
192
- };
193
- }
194
-
195
- export default {
196
- makeDefaultConfig,
197
- makeConfigFromBouncinessAndSpeed,
198
- makeConfigFromOrigamiTensionAndFriction,
199
- };
@@ -1,117 +0,0 @@
1
- import {
2
- always,
3
- block,
4
- call,
5
- clockRunning,
6
- cond,
7
- set,
8
- startClock,
9
- stopClock,
10
- } from '../base';
11
- import Clock from '../core/AnimatedClock';
12
- import { evaluateOnce } from '../derived/evaluateOnce';
13
-
14
- function createOldAnimationObject(node, animationStateDefaults, value, config) {
15
- const newClock = new Clock();
16
- const currentState = animationStateDefaults();
17
- let alwaysNode;
18
- let isStarted = false;
19
- let isDone = false;
20
- let wasStopped = false;
21
- let animationCallback;
22
- const animation = {
23
- start: (currentAnimationCallback) => {
24
- animationCallback = currentAnimationCallback;
25
- if (isStarted) {
26
- animationCallback && animationCallback({ finished: false });
27
- return;
28
- }
29
- if (isDone) {
30
- console.warn('Animation has been finished before');
31
- // inconsistent with React Native
32
- return;
33
- }
34
-
35
- if (!value.isNativelyInitialized()) {
36
- return;
37
- }
38
-
39
- isStarted = true;
40
- evaluateOnce(
41
- set(currentState.position, value),
42
- currentState.position,
43
- () => {
44
- alwaysNode = always(
45
- set(
46
- value,
47
- block([
48
- cond(clockRunning(newClock), 0, startClock(newClock)),
49
- node(newClock, currentState, config),
50
- cond(currentState.finished, [
51
- call([], () => {
52
- isStarted = false;
53
- if (!wasStopped) {
54
- isDone = true;
55
- }
56
- value.__detachAnimation(animation);
57
- isDone = true;
58
- if (!wasStopped) {
59
- wasStopped = false;
60
- }
61
- }),
62
- stopClock(newClock),
63
- ]),
64
- currentState.position,
65
- ])
66
- )
67
- );
68
- value.__attachAnimation(animation);
69
- alwaysNode.__addChild(value);
70
- }
71
- );
72
- },
73
- __detach: () => {
74
- animationCallback && animationCallback({ finished: isDone });
75
- animationCallback = null;
76
- value.__initialized && alwaysNode.__removeChild(value);
77
- },
78
- stop: () => {
79
- if (isDone) {
80
- console.warn(
81
- 'Calling stop has no effect as the animation has already completed'
82
- );
83
- return;
84
- }
85
- if (!isStarted) {
86
- console.warn(
87
- "Calling stop has no effect as the animation hasn't been started"
88
- );
89
- return;
90
- }
91
- wasStopped = true;
92
- evaluateOnce(set(currentState.finished, 1), currentState.finished);
93
- },
94
- __stopImmediately_testOnly: (result) => {
95
- animation.stop();
96
- isDone = result;
97
- value.__detachAnimation(animation);
98
- },
99
- };
100
- return animation;
101
- }
102
-
103
- /**
104
- * Depending on the arguments list we either return animation node or return an
105
- * animation object that is compatible with the original Animated API
106
- */
107
- export default function backwardsCompatibleAnimWrapper(
108
- node,
109
- animationStateDefaults
110
- ) {
111
- return (clock, state, config) => {
112
- if (config !== undefined) {
113
- return node(clock, state, config);
114
- }
115
- return createOldAnimationObject(node, animationStateDefaults, clock, state);
116
- };
117
- }
@@ -1,54 +0,0 @@
1
- import {
2
- cond,
3
- sub,
4
- pow,
5
- divide,
6
- multiply,
7
- add,
8
- block,
9
- set,
10
- lessThan,
11
- proc,
12
- abs,
13
- } from '../base';
14
-
15
- const VELOCITY_EPS = 5;
16
-
17
- function decay(clock, state, config) {
18
- const lastTime = cond(state.time, state.time, clock);
19
- const deltaTime = sub(clock, lastTime);
20
-
21
- // v0 = v / 1000
22
- // v = v0 * powf(deceleration, dt);
23
- // v = v * 1000;
24
-
25
- // x0 = x;
26
- // x = x0 + v0 * deceleration * (1 - powf(deceleration, dt)) / (1 - deceleration)
27
- const kv = pow(config.deceleration, deltaTime);
28
- const kx = divide(
29
- multiply(config.deceleration, sub(1, kv)),
30
- sub(1, config.deceleration)
31
- );
32
- const v0 = divide(state.velocity, 1000);
33
- const v = multiply(v0, kv, 1000);
34
- const x = add(state.position, multiply(v0, kx));
35
- return block([
36
- set(state.position, x),
37
- set(state.velocity, v),
38
- set(state.time, clock),
39
- cond(lessThan(abs(v), VELOCITY_EPS), set(state.finished, 1)),
40
- ]);
41
- }
42
-
43
- const procDecay = proc(
44
- (clock, time, velocity, position, finished, deceleration) =>
45
- decay(clock, { time, velocity, position, finished }, { deceleration })
46
- );
47
-
48
- export default function decayAnimation(
49
- clock,
50
- { time, velocity, position, finished },
51
- { deceleration }
52
- ) {
53
- return procDecay(clock, time, velocity, position, finished, deceleration);
54
- }