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 +1 @@
1
- {"version":3,"names":["initSensorData","sensorType","SensorType","ROTATION","makeMutable","qw","qx","qy","qz","yaw","pitch","roll","interfaceOrientation","x","y","z","eulerToQuaternion","c1","Math","cos","s1","sin","c2","s2","c3","s3","adjustRotationToInterfaceOrientation","data","PI","q","adjustVectorToInterfaceOrientation","useAnimatedSensor","userConfig","ref","useRef","sensor","unregister","isAvailable","config","interval","adjustToInterfaceOrientation","iosReferenceFrame","IOSReferenceFrame","Auto","useEffect","current","sensorData","id","registerSensor","value","flushImmediates","unregisterSensor"],"sources":["useAnimatedSensor.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { makeMutable, registerSensor, unregisterSensor } from '../core';\nimport {\n SensorType,\n SharedValue,\n Value3D,\n ValueRotation,\n IOSReferenceFrame,\n} from '../commonTypes';\nimport { flushImmediates } from '../threads';\n\nexport type SensorConfig = {\n interval: number | 'auto';\n adjustToInterfaceOrientation: boolean;\n iosReferenceFrame: IOSReferenceFrame;\n};\n\nexport type AnimatedSensor = {\n sensor: SharedValue<Value3D | ValueRotation>;\n unregister: () => void;\n isAvailable: boolean;\n config: SensorConfig;\n};\n\nfunction initSensorData(\n sensorType: SensorType\n): SharedValue<Value3D | ValueRotation> {\n if (sensorType === SensorType.ROTATION) {\n return makeMutable<Value3D | ValueRotation>({\n qw: 0,\n qx: 0,\n qy: 0,\n qz: 0,\n yaw: 0,\n pitch: 0,\n roll: 0,\n interfaceOrientation: 0,\n });\n } else {\n return makeMutable<Value3D | ValueRotation>({\n x: 0,\n y: 0,\n z: 0,\n interfaceOrientation: 0,\n });\n }\n}\n\n// euler angles are in order ZXY, z = yaw, x = pitch, y = roll\n// https://github.com/mrdoob/three.js/blob/dev/src/math/Quaternion.js#L237\nfunction eulerToQuaternion(pitch: number, roll: number, yaw: number) {\n 'worklet';\n const c1 = Math.cos(pitch / 2);\n const s1 = Math.sin(pitch / 2);\n const c2 = Math.cos(roll / 2);\n const s2 = Math.sin(roll / 2);\n const c3 = Math.cos(yaw / 2);\n const s3 = Math.sin(yaw / 2);\n\n return [\n s1 * c2 * c3 - c1 * s2 * s3,\n c1 * s2 * c3 + s1 * c2 * s3,\n c1 * c2 * s3 + s1 * s2 * c3,\n c1 * c2 * c3 - s1 * s2 * s3,\n ];\n}\n\nfunction adjustRotationToInterfaceOrientation(data: ValueRotation) {\n 'worklet';\n const { interfaceOrientation, pitch, roll, yaw } = data;\n if (interfaceOrientation === 90) {\n data.pitch = roll;\n data.roll = -pitch;\n data.yaw = yaw - Math.PI / 2;\n } else if (interfaceOrientation === 270) {\n data.pitch = -roll;\n data.roll = pitch;\n data.yaw = yaw + Math.PI / 2;\n } else if (interfaceOrientation === 180) {\n data.pitch *= -1;\n data.roll *= -1;\n data.yaw *= -1;\n }\n\n const q = eulerToQuaternion(data.pitch, data.roll, data.yaw);\n data.qx = q[0];\n data.qy = q[1];\n data.qz = q[2];\n data.qw = q[3];\n return data;\n}\n\nfunction adjustVectorToInterfaceOrientation(data: Value3D) {\n 'worklet';\n const { interfaceOrientation, x, y } = data;\n if (interfaceOrientation === 90) {\n data.x = -y;\n data.y = x;\n } else if (interfaceOrientation === 270) {\n data.x = y;\n data.y = -x;\n } else if (interfaceOrientation === 180) {\n data.x *= -1;\n data.y *= -1;\n }\n return data;\n}\n\nexport function useAnimatedSensor(\n sensorType: SensorType,\n userConfig?: Partial<SensorConfig>\n): AnimatedSensor {\n const ref = useRef<AnimatedSensor>({\n sensor: initSensorData(sensorType),\n unregister: () => {\n // NOOP\n },\n isAvailable: false,\n config: {\n interval: 0,\n adjustToInterfaceOrientation: true,\n iosReferenceFrame: IOSReferenceFrame.Auto,\n },\n });\n\n useEffect(() => {\n ref.current.config = {\n interval: 'auto',\n adjustToInterfaceOrientation: true,\n iosReferenceFrame: IOSReferenceFrame.Auto,\n ...userConfig,\n };\n const sensorData = ref.current.sensor!;\n const id = registerSensor(\n sensorType,\n ref.current.config.interval === 'auto' ? -1 : ref.current.config.interval,\n ref.current.config.iosReferenceFrame,\n (data) => {\n 'worklet';\n if (ref.current.config.adjustToInterfaceOrientation) {\n if (sensorType === SensorType.ROTATION) {\n data = adjustRotationToInterfaceOrientation(data as ValueRotation);\n } else {\n data = adjustVectorToInterfaceOrientation(data as Value3D);\n }\n }\n sensorData.value = data;\n flushImmediates();\n }\n );\n\n if (id !== -1) {\n // if sensor is available\n ref.current.unregister = () => unregisterSensor(id);\n ref.current.isAvailable = true;\n } else {\n // if sensor is unavailable\n ref.current.unregister = () => {\n // NOOP\n };\n ref.current.isAvailable = false;\n }\n\n return () => {\n ref.current.unregister();\n };\n }, [sensorType, userConfig]);\n\n return ref.current;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_core","_commonTypes","_threads","initSensorData","sensorType","SensorType","ROTATION","makeMutable","qw","qx","qy","qz","yaw","pitch","roll","interfaceOrientation","x","y","z","eulerToQuaternion","c1","Math","cos","s1","sin","c2","s2","c3","s3","adjustRotationToInterfaceOrientation","data","PI","q","adjustVectorToInterfaceOrientation","useAnimatedSensor","userConfig","ref","useRef","sensor","unregister","isAvailable","config","interval","adjustToInterfaceOrientation","iosReferenceFrame","IOSReferenceFrame","Auto","useEffect","current","sensorData","id","registerSensor","value","callMicrotasks","unregisterSensor"],"sources":["useAnimatedSensor.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { makeMutable, registerSensor, unregisterSensor } from '../core';\nimport {\n SensorType,\n SharedValue,\n Value3D,\n ValueRotation,\n IOSReferenceFrame,\n} from '../commonTypes';\nimport { callMicrotasks } from '../threads';\n\nexport type SensorConfig = {\n interval: number | 'auto';\n adjustToInterfaceOrientation: boolean;\n iosReferenceFrame: IOSReferenceFrame;\n};\n\nexport type AnimatedSensor = {\n sensor: SharedValue<Value3D | ValueRotation>;\n unregister: () => void;\n isAvailable: boolean;\n config: SensorConfig;\n};\n\nfunction initSensorData(\n sensorType: SensorType\n): SharedValue<Value3D | ValueRotation> {\n if (sensorType === SensorType.ROTATION) {\n return makeMutable<Value3D | ValueRotation>({\n qw: 0,\n qx: 0,\n qy: 0,\n qz: 0,\n yaw: 0,\n pitch: 0,\n roll: 0,\n interfaceOrientation: 0,\n });\n } else {\n return makeMutable<Value3D | ValueRotation>({\n x: 0,\n y: 0,\n z: 0,\n interfaceOrientation: 0,\n });\n }\n}\n\n// euler angles are in order ZXY, z = yaw, x = pitch, y = roll\n// https://github.com/mrdoob/three.js/blob/dev/src/math/Quaternion.js#L237\nfunction eulerToQuaternion(pitch: number, roll: number, yaw: number) {\n 'worklet';\n const c1 = Math.cos(pitch / 2);\n const s1 = Math.sin(pitch / 2);\n const c2 = Math.cos(roll / 2);\n const s2 = Math.sin(roll / 2);\n const c3 = Math.cos(yaw / 2);\n const s3 = Math.sin(yaw / 2);\n\n return [\n s1 * c2 * c3 - c1 * s2 * s3,\n c1 * s2 * c3 + s1 * c2 * s3,\n c1 * c2 * s3 + s1 * s2 * c3,\n c1 * c2 * c3 - s1 * s2 * s3,\n ];\n}\n\nfunction adjustRotationToInterfaceOrientation(data: ValueRotation) {\n 'worklet';\n const { interfaceOrientation, pitch, roll, yaw } = data;\n if (interfaceOrientation === 90) {\n data.pitch = roll;\n data.roll = -pitch;\n data.yaw = yaw - Math.PI / 2;\n } else if (interfaceOrientation === 270) {\n data.pitch = -roll;\n data.roll = pitch;\n data.yaw = yaw + Math.PI / 2;\n } else if (interfaceOrientation === 180) {\n data.pitch *= -1;\n data.roll *= -1;\n data.yaw *= -1;\n }\n\n const q = eulerToQuaternion(data.pitch, data.roll, data.yaw);\n data.qx = q[0];\n data.qy = q[1];\n data.qz = q[2];\n data.qw = q[3];\n return data;\n}\n\nfunction adjustVectorToInterfaceOrientation(data: Value3D) {\n 'worklet';\n const { interfaceOrientation, x, y } = data;\n if (interfaceOrientation === 90) {\n data.x = -y;\n data.y = x;\n } else if (interfaceOrientation === 270) {\n data.x = y;\n data.y = -x;\n } else if (interfaceOrientation === 180) {\n data.x *= -1;\n data.y *= -1;\n }\n return data;\n}\n\nexport function useAnimatedSensor(\n sensorType: SensorType,\n userConfig?: Partial<SensorConfig>\n): AnimatedSensor {\n const ref = useRef<AnimatedSensor>({\n sensor: initSensorData(sensorType),\n unregister: () => {\n // NOOP\n },\n isAvailable: false,\n config: {\n interval: 0,\n adjustToInterfaceOrientation: true,\n iosReferenceFrame: IOSReferenceFrame.Auto,\n },\n });\n\n useEffect(() => {\n ref.current.config = {\n interval: 'auto',\n adjustToInterfaceOrientation: true,\n iosReferenceFrame: IOSReferenceFrame.Auto,\n ...userConfig,\n };\n const sensorData = ref.current.sensor!;\n const id = registerSensor(\n sensorType,\n ref.current.config.interval === 'auto' ? -1 : ref.current.config.interval,\n ref.current.config.iosReferenceFrame,\n (data) => {\n 'worklet';\n if (ref.current.config.adjustToInterfaceOrientation) {\n if (sensorType === SensorType.ROTATION) {\n data = adjustRotationToInterfaceOrientation(data as ValueRotation);\n } else {\n data = adjustVectorToInterfaceOrientation(data as Value3D);\n }\n }\n sensorData.value = data;\n callMicrotasks();\n }\n );\n\n if (id !== -1) {\n // if sensor is available\n ref.current.unregister = () => unregisterSensor(id);\n ref.current.isAvailable = true;\n } else {\n // if sensor is unavailable\n ref.current.unregister = () => {\n // NOOP\n };\n ref.current.isAvailable = false;\n }\n\n return () => {\n ref.current.unregister();\n };\n }, [sensorType, userConfig]);\n\n return ref.current;\n}\n"],"mappings":"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"}
@@ -4,44 +4,31 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useAnimatedStyle = useAnimatedStyle;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _core = require("../core");
11
-
12
9
  var _UpdateProps = _interopRequireWildcard(require("../UpdateProps"));
13
-
14
10
  var _animation = require("../animation");
15
-
16
11
  var _NativeReanimated = _interopRequireDefault(require("../NativeReanimated"));
17
-
18
12
  var _useSharedValue = require("./useSharedValue");
19
-
20
13
  var _utils = require("./utils");
21
-
22
14
  var _ViewDescriptorsSet = require("../ViewDescriptorsSet");
23
-
24
15
  var _PlatformChecker = require("../PlatformChecker");
25
-
26
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
17
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
-
30
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
-
32
19
  function prepareAnimation(frameTimestamp, animatedProp, lastAnimation, lastValue) {
33
20
  'worklet';
34
21
 
35
22
  if (Array.isArray(animatedProp)) {
36
23
  animatedProp.forEach((prop, index) => {
37
24
  prepareAnimation(frameTimestamp, prop, lastAnimation && lastAnimation[index], lastValue && lastValue[index]);
38
- }); // return animatedProp;
25
+ });
26
+ // return animatedProp;
39
27
  }
40
28
 
41
29
  if (typeof animatedProp === 'object' && animatedProp.onFrame) {
42
30
  const animation = animatedProp;
43
31
  let value = animation.current;
44
-
45
32
  if (lastValue !== undefined) {
46
33
  if (typeof lastValue === 'object') {
47
34
  if (lastValue.value !== undefined) {
@@ -61,11 +48,9 @@ function prepareAnimation(frameTimestamp, animatedProp, lastAnimation, lastValue
61
48
  value = lastValue;
62
49
  }
63
50
  }
64
-
65
51
  animation.callStart = timestamp => {
66
52
  animation.onStart(animation, value, timestamp, lastAnimation);
67
53
  };
68
-
69
54
  animation.callStart(frameTimestamp);
70
55
  animation.callStart = null;
71
56
  } else if (typeof animatedProp === 'object') {
@@ -73,14 +58,12 @@ function prepareAnimation(frameTimestamp, animatedProp, lastAnimation, lastValue
73
58
  Object.keys(animatedProp).forEach(key => prepareAnimation(frameTimestamp, animatedProp[key], lastAnimation && lastAnimation[key], lastValue && lastValue[key]));
74
59
  }
75
60
  }
76
-
77
61
  function runAnimations(animation, timestamp, key, result, animationsActive) {
78
62
  'worklet';
79
63
 
80
64
  if (!animationsActive.value) {
81
65
  return true;
82
66
  }
83
-
84
67
  if (Array.isArray(animation)) {
85
68
  result[key] = [];
86
69
  let allFinished = true;
@@ -92,21 +75,16 @@ function runAnimations(animation, timestamp, key, result, animationsActive) {
92
75
  return allFinished;
93
76
  } else if (typeof animation === 'object' && animation.onFrame) {
94
77
  let finished = true;
95
-
96
78
  if (!animation.finished) {
97
79
  if (animation.callStart) {
98
80
  animation.callStart(timestamp);
99
81
  animation.callStart = null;
100
82
  }
101
-
102
83
  finished = animation.onFrame(animation, timestamp);
103
84
  animation.timestamp = timestamp;
104
-
105
85
  if (finished) {
106
86
  animation.finished = true;
107
- animation.callback && animation.callback(true
108
- /* finished */
109
- );
87
+ animation.callback && animation.callback(true /* finished */);
110
88
  }
111
89
  }
112
90
 
@@ -126,7 +104,6 @@ function runAnimations(animation, timestamp, key, result, animationsActive) {
126
104
  return true;
127
105
  }
128
106
  }
129
-
130
107
  function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsActive) {
131
108
  'worklet';
132
109
 
@@ -137,10 +114,8 @@ function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsA
137
114
  let hasAnimations = false;
138
115
  let frameTimestamp;
139
116
  let hasNonAnimatedValues = false;
140
-
141
117
  for (const key in newValues) {
142
118
  const value = newValues[key];
143
-
144
119
  if ((0, _utils.isAnimated)(value)) {
145
120
  frameTimestamp = global.__frameTimestamp || performance.now();
146
121
  prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);
@@ -152,7 +127,6 @@ function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsA
152
127
  delete animations[key];
153
128
  }
154
129
  }
155
-
156
130
  if (hasAnimations) {
157
131
  const frame = timestamp => {
158
132
  const {
@@ -160,18 +134,14 @@ function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsA
160
134
  last,
161
135
  isAnimationCancelled
162
136
  } = state;
163
-
164
137
  if (isAnimationCancelled) {
165
138
  state.isAnimationRunning = false;
166
139
  return;
167
140
  }
168
-
169
141
  const updates = {};
170
142
  let allFinished = true;
171
-
172
143
  for (const propName in animations) {
173
144
  const finished = runAnimations(animations[propName], timestamp, propName, updates, animationsActive);
174
-
175
145
  if (finished) {
176
146
  last[propName] = updates[propName];
177
147
  delete animations[propName];
@@ -179,61 +149,52 @@ function styleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsA
179
149
  allFinished = false;
180
150
  }
181
151
  }
182
-
183
152
  if (updates) {
184
153
  (0, _UpdateProps.default)(viewDescriptors, updates, maybeViewRef);
185
154
  }
186
-
187
155
  if (!allFinished) {
188
156
  requestAnimationFrame(frame);
189
157
  } else {
190
158
  state.isAnimationRunning = false;
191
159
  }
192
160
  };
193
-
194
161
  state.animations = animations;
195
-
196
162
  if (!state.isAnimationRunning) {
197
163
  state.isAnimationCancelled = false;
198
164
  state.isAnimationRunning = true;
199
165
  frame(frameTimestamp);
200
166
  }
201
-
202
167
  if (hasNonAnimatedValues) {
203
168
  (0, _UpdateProps.default)(viewDescriptors, nonAnimatedNewValues, maybeViewRef);
204
169
  }
205
170
  } else {
206
171
  state.isAnimationCancelled = true;
207
172
  state.animations = [];
208
-
209
173
  if (!(0, _utils.shallowEqual)(oldValues, newValues)) {
210
174
  (0, _UpdateProps.default)(viewDescriptors, newValues, maybeViewRef);
211
175
  }
212
176
  }
213
-
214
177
  state.last = newValues;
215
178
  }
216
-
217
179
  function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animationsActive, animatedStyle) {
218
180
  'worklet';
219
181
 
220
182
  let adapters = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : [];
221
183
  const animations = state.animations ?? {};
222
184
  const newValues = updater() ?? {};
223
- const oldValues = state.last; // extract animated props
185
+ const oldValues = state.last;
224
186
 
187
+ // extract animated props
225
188
  let hasAnimations = false;
226
189
  let frameTimestamp;
227
190
  Object.keys(animations).forEach(key => {
228
191
  const value = newValues[key];
229
-
230
192
  if (!(0, _utils.isAnimated)(value)) {
231
193
  delete animations[key];
232
194
  }
233
195
  });
234
196
  Object.keys(newValues).forEach(key => {
235
197
  const value = newValues[key];
236
-
237
198
  if ((0, _utils.isAnimated)(value)) {
238
199
  frameTimestamp = global.__frameTimestamp || performance.now();
239
200
  prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);
@@ -241,24 +202,20 @@ function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animati
241
202
  hasAnimations = true;
242
203
  }
243
204
  });
244
-
245
205
  function frame(timestamp) {
246
206
  const {
247
207
  animations,
248
208
  last,
249
209
  isAnimationCancelled
250
210
  } = state;
251
-
252
211
  if (isAnimationCancelled) {
253
212
  state.isAnimationRunning = false;
254
213
  return;
255
214
  }
256
-
257
215
  const updates = {};
258
216
  let allFinished = true;
259
217
  Object.keys(animations).forEach(propName => {
260
218
  const finished = runAnimations(animations[propName], timestamp, propName, updates, animationsActive);
261
-
262
219
  if (finished) {
263
220
  last[propName] = updates[propName];
264
221
  delete animations[propName];
@@ -266,21 +223,17 @@ function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animati
266
223
  allFinished = false;
267
224
  }
268
225
  });
269
-
270
226
  if (Object.keys(updates).length) {
271
227
  (0, _UpdateProps.updatePropsJestWrapper)(viewDescriptors, updates, maybeViewRef, animatedStyle, adapters);
272
228
  }
273
-
274
229
  if (!allFinished) {
275
230
  requestAnimationFrame(frame);
276
231
  } else {
277
232
  state.isAnimationRunning = false;
278
233
  }
279
234
  }
280
-
281
235
  if (hasAnimations) {
282
236
  state.animations = animations;
283
-
284
237
  if (!state.isAnimationRunning) {
285
238
  state.isAnimationCancelled = false;
286
239
  state.isAnimationRunning = true;
@@ -289,17 +242,16 @@ function jestStyleUpdater(viewDescriptors, updater, state, maybeViewRef, animati
289
242
  } else {
290
243
  state.isAnimationCancelled = true;
291
244
  state.animations = [];
292
- } // calculate diff
293
-
245
+ }
294
246
 
247
+ // calculate diff
295
248
  state.last = newValues;
296
-
297
249
  if (!(0, _utils.shallowEqual)(oldValues, newValues)) {
298
250
  (0, _UpdateProps.updatePropsJestWrapper)(viewDescriptors, newValues, maybeViewRef, animatedStyle, adapters);
299
251
  }
300
- } // check for invalid usage of shared values in returned object
301
-
252
+ }
302
253
 
254
+ // check for invalid usage of shared values in returned object
303
255
  function checkSharedValueUsage(prop, currentKey) {
304
256
  if (Array.isArray(prop)) {
305
257
  // if it's an array (i.ex. transform) validate all its elements
@@ -316,40 +268,34 @@ function checkSharedValueUsage(prop, currentKey) {
316
268
  throw new Error(`invalid value passed to \`${currentKey}\`, maybe you forgot to use \`.value\`?`);
317
269
  }
318
270
  }
319
-
320
271
  function useAnimatedStyle(updater, dependencies, adapters) {
321
272
  const viewsRef = (0, _ViewDescriptorsSet.makeViewsRefSet)();
322
273
  const initRef = (0, _react.useRef)();
323
274
  let inputs = Object.values(updater._closure ?? {});
324
-
325
275
  if ((0, _PlatformChecker.shouldBeUseWeb)()) {
326
276
  var _dependencies;
327
-
328
277
  if (!inputs.length && (_dependencies = dependencies) !== null && _dependencies !== void 0 && _dependencies.length) {
329
278
  // let web work without a Babel/SWC plugin
330
279
  inputs = dependencies;
331
280
  }
332
-
333
281
  if (__DEV__ && !inputs.length && !dependencies && !updater.__workletHash) {
334
282
  throw new Error(`useAnimatedStyle was used without a dependency array or Babel plugin. Please explicitly pass a dependency array, or enable the Babel/SWC plugin.
335
283
 
336
284
  For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/web-support#web-without-a-babel-plugin`);
337
285
  }
338
286
  }
339
-
340
287
  const adaptersArray = adapters ? Array.isArray(adapters) ? adapters : [adapters] : [];
341
288
  const adaptersHash = adapters ? (0, _utils.buildWorkletsHash)(adaptersArray) : null;
342
289
  const animationsActive = (0, _useSharedValue.useSharedValue)(true);
343
- const animatedStyle = (0, _react.useRef)({}); // build dependencies
290
+ const animatedStyle = (0, _react.useRef)({});
344
291
 
292
+ // build dependencies
345
293
  if (!dependencies) {
346
294
  dependencies = [...inputs, updater.__workletHash];
347
295
  } else {
348
296
  dependencies.push(updater.__workletHash);
349
297
  }
350
-
351
298
  adaptersHash && dependencies.push(adaptersHash);
352
-
353
299
  if (!initRef.current) {
354
300
  const initialStyle = (0, _animation.initialUpdaterRun)(updater);
355
301
  (0, _utils.validateAnimatedStyles)(initialStyle);
@@ -366,9 +312,9 @@ For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/
366
312
  }),
367
313
  viewDescriptors: (0, _ViewDescriptorsSet.makeViewDescriptorsSet)()
368
314
  };
369
- } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
370
-
315
+ }
371
316
 
317
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
372
318
  const {
373
319
  initial,
374
320
  remoteState,
@@ -380,7 +326,6 @@ For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/
380
326
  (0, _react.useEffect)(() => {
381
327
  let fun;
382
328
  let updaterFn = updater;
383
-
384
329
  if (adapters) {
385
330
  updaterFn = () => {
386
331
  'worklet';
@@ -392,7 +337,6 @@ For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/
392
337
  return newValues;
393
338
  };
394
339
  }
395
-
396
340
  if ((0, _PlatformChecker.isJest)()) {
397
341
  fun = () => {
398
342
  'worklet';
@@ -406,7 +350,6 @@ For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/
406
350
  styleUpdater(sharableViewDescriptors, updaterFn, remoteState, maybeViewRef, animationsActive);
407
351
  };
408
352
  }
409
-
410
353
  const mapperId = (0, _core.startMapper)(fun, inputs);
411
354
  return () => {
412
355
  (0, _core.stopMapper)(mapperId);
@@ -419,7 +362,6 @@ For more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/
419
362
  };
420
363
  }, []);
421
364
  checkSharedValueUsage(initial.value);
422
-
423
365
  if (process.env.JEST_WORKER_ID) {
424
366
  return {
425
367
  viewDescriptors,
@@ -1 +1 @@
1
- {"version":3,"names":["prepareAnimation","frameTimestamp","animatedProp","lastAnimation","lastValue","Array","isArray","forEach","prop","index","onFrame","animation","value","current","undefined","callStart","timestamp","onStart","Object","keys","key","runAnimations","result","animationsActive","allFinished","entry","finished","callback","k","styleUpdater","viewDescriptors","updater","state","maybeViewRef","animations","newValues","oldValues","last","nonAnimatedNewValues","hasAnimations","hasNonAnimatedValues","isAnimated","global","__frameTimestamp","performance","now","frame","isAnimationCancelled","isAnimationRunning","updates","propName","updateProps","requestAnimationFrame","shallowEqual","jestStyleUpdater","animatedStyle","adapters","length","updatePropsJestWrapper","checkSharedValueUsage","currentKey","element","Error","useAnimatedStyle","dependencies","viewsRef","makeViewsRefSet","initRef","useRef","inputs","values","_closure","shouldBeUseWeb","__DEV__","__workletHash","adaptersArray","adaptersHash","buildWorkletsHash","useSharedValue","push","initialStyle","initialUpdaterRun","validateAnimatedStyles","initial","remoteState","makeRemote","makeViewDescriptorsSet","sharableViewDescriptors","NativeReanimatedModule","native","useEffect","fun","updaterFn","adapter","isJest","mapperId","startMapper","stopMapper","process","env","JEST_WORKER_ID"],"sources":["useAnimatedStyle.ts"],"sourcesContent":["import { MutableRefObject, useEffect, useRef } from 'react';\n\nimport { startMapper, stopMapper, makeRemote } from '../core';\nimport updateProps, { updatePropsJestWrapper } from '../UpdateProps';\nimport { initialUpdaterRun } from '../animation';\nimport NativeReanimatedModule from '../NativeReanimated';\nimport { useSharedValue } from './useSharedValue';\nimport {\n buildWorkletsHash,\n isAnimated,\n shallowEqual,\n validateAnimatedStyles,\n} from './utils';\nimport { DependencyList, Descriptor } from './commonTypes';\nimport {\n makeViewDescriptorsSet,\n makeViewsRefSet,\n ViewDescriptorsSet,\n ViewRefSet,\n} from '../ViewDescriptorsSet';\nimport { isJest, shouldBeUseWeb } from '../PlatformChecker';\nimport {\n AnimationObject,\n Timestamp,\n AdapterWorkletFunction,\n AnimatedStyle,\n BasicWorkletFunction,\n BasicWorkletFunctionOptional,\n NestedObjectValues,\n SharedValue,\n StyleProps,\n} from '../commonTypes';\nexport interface AnimatedStyleResult {\n viewDescriptors: ViewDescriptorsSet;\n initial: AnimatedStyle;\n viewsRef: ViewRefSet<any>;\n animatedStyle?: MutableRefObject<AnimatedStyle>;\n}\n\ninterface AnimatedState {\n last: AnimatedStyle;\n animations: AnimatedStyle;\n isAnimationRunning: boolean;\n isAnimationCancelled: boolean;\n}\n\ninterface AnimationRef {\n initial: {\n value: AnimatedStyle;\n updater: () => AnimatedStyle;\n };\n remoteState: AnimatedState;\n viewDescriptors: ViewDescriptorsSet;\n}\n\nfunction prepareAnimation(\n frameTimestamp: number,\n animatedProp: AnimatedStyle,\n lastAnimation: AnimatedStyle,\n lastValue: AnimatedStyle\n): void {\n 'worklet';\n if (Array.isArray(animatedProp)) {\n animatedProp.forEach((prop, index) => {\n prepareAnimation(\n frameTimestamp,\n prop,\n lastAnimation && lastAnimation[index],\n lastValue && lastValue[index]\n );\n });\n // return animatedProp;\n }\n if (typeof animatedProp === 'object' && animatedProp.onFrame) {\n const animation = animatedProp;\n\n let value = animation.current;\n if (lastValue !== undefined) {\n if (typeof lastValue === 'object') {\n if (lastValue.value !== undefined) {\n // previously it was a shared value\n value = lastValue.value;\n } else if (lastValue.onFrame !== undefined) {\n if (lastAnimation?.current !== undefined) {\n // it was an animation before, copy its state\n value = lastAnimation.current;\n } else if (lastValue?.current !== undefined) {\n // it was initialized\n value = lastValue.current;\n }\n }\n } else {\n // previously it was a plain value, just set it as starting point\n value = lastValue;\n }\n }\n\n animation.callStart = (timestamp: Timestamp) => {\n animation.onStart(animation, value, timestamp, lastAnimation);\n };\n animation.callStart(frameTimestamp);\n animation.callStart = null;\n } else if (typeof animatedProp === 'object') {\n // it is an object\n Object.keys(animatedProp).forEach((key) =>\n prepareAnimation(\n frameTimestamp,\n animatedProp[key],\n lastAnimation && lastAnimation[key],\n lastValue && lastValue[key]\n )\n );\n }\n}\n\nfunction runAnimations(\n animation: AnimatedStyle,\n timestamp: Timestamp,\n key: number | string,\n result: AnimatedStyle,\n animationsActive: SharedValue<boolean>\n): boolean {\n 'worklet';\n if (!animationsActive.value) {\n return true;\n }\n if (Array.isArray(animation)) {\n result[key] = [];\n let allFinished = true;\n animation.forEach((entry, index) => {\n if (\n !runAnimations(entry, timestamp, index, result[key], animationsActive)\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else if (typeof animation === 'object' && animation.onFrame) {\n let finished = true;\n if (!animation.finished) {\n if (animation.callStart) {\n animation.callStart(timestamp);\n animation.callStart = null;\n }\n finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n if (finished) {\n animation.finished = true;\n animation.callback && animation.callback(true /* finished */);\n }\n }\n result[key] = animation.current;\n return finished;\n } else if (typeof animation === 'object') {\n result[key] = {};\n let allFinished = true;\n Object.keys(animation).forEach((k) => {\n if (\n !runAnimations(\n animation[k],\n timestamp,\n k,\n result[key],\n animationsActive\n )\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else {\n result[key] = animation;\n return true;\n }\n}\n\nfunction styleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: BasicWorkletFunction<AnimatedStyle>,\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>\n): void {\n 'worklet';\n const animations = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n const nonAnimatedNewValues: StyleProps = {};\n\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n let hasNonAnimatedValues = false;\n for (const key in newValues) {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp = global.__frameTimestamp || performance.now();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n } else {\n hasNonAnimatedValues = true;\n nonAnimatedNewValues[key] = value;\n delete animations[key];\n }\n }\n\n if (hasAnimations) {\n const frame = (timestamp: Timestamp) => {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle = {};\n let allFinished = true;\n for (const propName in animations) {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n }\n\n if (updates) {\n updateProps(viewDescriptors, updates, maybeViewRef);\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n };\n\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n\n if (hasNonAnimatedValues) {\n updateProps(viewDescriptors, nonAnimatedNewValues, maybeViewRef);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n\n if (!shallowEqual(oldValues, newValues)) {\n updateProps(viewDescriptors, newValues, maybeViewRef);\n }\n }\n state.last = newValues;\n}\n\nfunction jestStyleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: BasicWorkletFunction<AnimatedStyle>,\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>,\n animatedStyle: MutableRefObject<AnimatedStyle>,\n adapters: AdapterWorkletFunction[] = []\n): void {\n 'worklet';\n const animations: AnimatedStyle = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n\n // extract animated props\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n Object.keys(animations).forEach((key) => {\n const value = newValues[key];\n if (!isAnimated(value)) {\n delete animations[key];\n }\n });\n Object.keys(newValues).forEach((key) => {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp = global.__frameTimestamp || performance.now();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n });\n\n function frame(timestamp: Timestamp) {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle = {};\n let allFinished = true;\n Object.keys(animations).forEach((propName) => {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n });\n\n if (Object.keys(updates).length) {\n updatePropsJestWrapper(\n viewDescriptors,\n updates,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n }\n\n if (hasAnimations) {\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n }\n\n // calculate diff\n state.last = newValues;\n\n if (!shallowEqual(oldValues, newValues)) {\n updatePropsJestWrapper(\n viewDescriptors,\n newValues,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n}\n\n// check for invalid usage of shared values in returned object\nfunction checkSharedValueUsage(\n prop: NestedObjectValues<AnimationObject>,\n currentKey?: string\n): void {\n if (Array.isArray(prop)) {\n // if it's an array (i.ex. transform) validate all its elements\n for (const element of prop) {\n checkSharedValueUsage(element, currentKey);\n }\n } else if (typeof prop === 'object' && prop.value === undefined) {\n // if it's a nested object, run validation for all its props\n for (const key of Object.keys(prop)) {\n checkSharedValueUsage(prop[key], key);\n }\n } else if (\n currentKey !== undefined &&\n typeof prop === 'object' &&\n prop.value !== undefined\n ) {\n // if shared value is passed insted of its value, throw an error\n throw new Error(\n `invalid value passed to \\`${currentKey}\\`, maybe you forgot to use \\`.value\\`?`\n );\n }\n}\n\nexport function useAnimatedStyle<T extends AnimatedStyle>(\n updater: BasicWorkletFunction<T>,\n dependencies?: DependencyList,\n adapters?: AdapterWorkletFunction | AdapterWorkletFunction[]\n): AnimatedStyleResult {\n const viewsRef: ViewRefSet<any> = makeViewsRefSet();\n const initRef = useRef<AnimationRef>();\n let inputs = Object.values(updater._closure ?? {});\n if (shouldBeUseWeb()) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel/SWC plugin\n inputs = dependencies;\n }\n if (__DEV__ && !inputs.length && !dependencies && !updater.__workletHash) {\n throw new Error(\n `useAnimatedStyle was used without a dependency array or Babel plugin. Please explicitly pass a dependency array, or enable the Babel/SWC plugin.\n\nFor more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/web-support#web-without-a-babel-plugin`\n );\n }\n }\n const adaptersArray: AdapterWorkletFunction[] = adapters\n ? Array.isArray(adapters)\n ? adapters\n : [adapters]\n : [];\n const adaptersHash = adapters ? buildWorkletsHash(adaptersArray) : null;\n const animationsActive = useSharedValue<boolean>(true);\n const animatedStyle: MutableRefObject<AnimatedStyle> = useRef<AnimatedStyle>(\n {}\n );\n\n // build dependencies\n if (!dependencies) {\n dependencies = [...inputs, updater.__workletHash];\n } else {\n dependencies.push(updater.__workletHash);\n }\n adaptersHash && dependencies.push(adaptersHash);\n\n if (!initRef.current) {\n const initialStyle: AnimatedStyle = initialUpdaterRun(updater);\n validateAnimatedStyles(initialStyle);\n initRef.current = {\n initial: {\n value: initialStyle,\n updater: updater,\n },\n remoteState: makeRemote<AnimatedState>({\n last: initialStyle,\n animations: {},\n isAnimationCancelled: false,\n isAnimationRunning: false,\n }),\n viewDescriptors: makeViewDescriptorsSet(),\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { initial, remoteState, viewDescriptors } = initRef.current!;\n const sharableViewDescriptors = viewDescriptors.sharableViewDescriptors;\n const maybeViewRef = NativeReanimatedModule.native ? undefined : viewsRef;\n\n dependencies.push(sharableViewDescriptors);\n\n useEffect(() => {\n let fun;\n let updaterFn = updater as BasicWorkletFunctionOptional<T>;\n if (adapters) {\n updaterFn = () => {\n 'worklet';\n const newValues = updater();\n adaptersArray.forEach((adapter) => {\n adapter(newValues);\n });\n return newValues;\n };\n }\n\n if (isJest()) {\n fun = () => {\n 'worklet';\n jestStyleUpdater(\n sharableViewDescriptors,\n updater,\n remoteState,\n maybeViewRef,\n animationsActive,\n animatedStyle,\n adaptersArray\n );\n };\n } else {\n fun = () => {\n 'worklet';\n styleUpdater(\n sharableViewDescriptors,\n updaterFn,\n remoteState,\n maybeViewRef,\n animationsActive\n );\n };\n }\n const mapperId = startMapper(fun, inputs);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n\n useEffect(() => {\n animationsActive.value = true;\n return () => {\n animationsActive.value = false;\n };\n }, []);\n\n checkSharedValueUsage(initial.value);\n\n if (process.env.JEST_WORKER_ID) {\n return { viewDescriptors, initial: initial, viewsRef, animatedStyle };\n } else {\n return { viewDescriptors, initial: initial, viewsRef };\n }\n}\n"],"mappings":";;;;;;;AAAA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAOA;;AAMA;;;;;;;;AAmCA,SAASA,gBAAT,CACEC,cADF,EAEEC,YAFF,EAGEC,aAHF,EAIEC,SAJF,EAKQ;EACN;;EACA,IAAIC,KAAK,CAACC,OAAN,CAAcJ,YAAd,CAAJ,EAAiC;IAC/BA,YAAY,CAACK,OAAb,CAAqB,CAACC,IAAD,EAAOC,KAAP,KAAiB;MACpCT,gBAAgB,CACdC,cADc,EAEdO,IAFc,EAGdL,aAAa,IAAIA,aAAa,CAACM,KAAD,CAHhB,EAIdL,SAAS,IAAIA,SAAS,CAACK,KAAD,CAJR,CAAhB;IAMD,CAPD,EAD+B,CAS/B;EACD;;EACD,IAAI,OAAOP,YAAP,KAAwB,QAAxB,IAAoCA,YAAY,CAACQ,OAArD,EAA8D;IAC5D,MAAMC,SAAS,GAAGT,YAAlB;IAEA,IAAIU,KAAK,GAAGD,SAAS,CAACE,OAAtB;;IACA,IAAIT,SAAS,KAAKU,SAAlB,EAA6B;MAC3B,IAAI,OAAOV,SAAP,KAAqB,QAAzB,EAAmC;QACjC,IAAIA,SAAS,CAACQ,KAAV,KAAoBE,SAAxB,EAAmC;UACjC;UACAF,KAAK,GAAGR,SAAS,CAACQ,KAAlB;QACD,CAHD,MAGO,IAAIR,SAAS,CAACM,OAAV,KAAsBI,SAA1B,EAAqC;UAC1C,IAAI,CAAAX,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEU,OAAf,MAA2BC,SAA/B,EAA0C;YACxC;YACAF,KAAK,GAAGT,aAAa,CAACU,OAAtB;UACD,CAHD,MAGO,IAAI,CAAAT,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAES,OAAX,MAAuBC,SAA3B,EAAsC;YAC3C;YACAF,KAAK,GAAGR,SAAS,CAACS,OAAlB;UACD;QACF;MACF,CAbD,MAaO;QACL;QACAD,KAAK,GAAGR,SAAR;MACD;IACF;;IAEDO,SAAS,CAACI,SAAV,GAAuBC,SAAD,IAA0B;MAC9CL,SAAS,CAACM,OAAV,CAAkBN,SAAlB,EAA6BC,KAA7B,EAAoCI,SAApC,EAA+Cb,aAA/C;IACD,CAFD;;IAGAQ,SAAS,CAACI,SAAV,CAAoBd,cAApB;IACAU,SAAS,CAACI,SAAV,GAAsB,IAAtB;EACD,CA7BD,MA6BO,IAAI,OAAOb,YAAP,KAAwB,QAA5B,EAAsC;IAC3C;IACAgB,MAAM,CAACC,IAAP,CAAYjB,YAAZ,EAA0BK,OAA1B,CAAmCa,GAAD,IAChCpB,gBAAgB,CACdC,cADc,EAEdC,YAAY,CAACkB,GAAD,CAFE,EAGdjB,aAAa,IAAIA,aAAa,CAACiB,GAAD,CAHhB,EAIdhB,SAAS,IAAIA,SAAS,CAACgB,GAAD,CAJR,CADlB;EAQD;AACF;;AAED,SAASC,aAAT,CACEV,SADF,EAEEK,SAFF,EAGEI,GAHF,EAIEE,MAJF,EAKEC,gBALF,EAMW;EACT;;EACA,IAAI,CAACA,gBAAgB,CAACX,KAAtB,EAA6B;IAC3B,OAAO,IAAP;EACD;;EACD,IAAIP,KAAK,CAACC,OAAN,CAAcK,SAAd,CAAJ,EAA8B;IAC5BW,MAAM,CAACF,GAAD,CAAN,GAAc,EAAd;IACA,IAAII,WAAW,GAAG,IAAlB;IACAb,SAAS,CAACJ,OAAV,CAAkB,CAACkB,KAAD,EAAQhB,KAAR,KAAkB;MAClC,IACE,CAACY,aAAa,CAACI,KAAD,EAAQT,SAAR,EAAmBP,KAAnB,EAA0Ba,MAAM,CAACF,GAAD,CAAhC,EAAuCG,gBAAvC,CADhB,EAEE;QACAC,WAAW,GAAG,KAAd;MACD;IACF,CAND;IAOA,OAAOA,WAAP;EACD,CAXD,MAWO,IAAI,OAAOb,SAAP,KAAqB,QAArB,IAAiCA,SAAS,CAACD,OAA/C,EAAwD;IAC7D,IAAIgB,QAAQ,GAAG,IAAf;;IACA,IAAI,CAACf,SAAS,CAACe,QAAf,EAAyB;MACvB,IAAIf,SAAS,CAACI,SAAd,EAAyB;QACvBJ,SAAS,CAACI,SAAV,CAAoBC,SAApB;QACAL,SAAS,CAACI,SAAV,GAAsB,IAAtB;MACD;;MACDW,QAAQ,GAAGf,SAAS,CAACD,OAAV,CAAkBC,SAAlB,EAA6BK,SAA7B,CAAX;MACAL,SAAS,CAACK,SAAV,GAAsBA,SAAtB;;MACA,IAAIU,QAAJ,EAAc;QACZf,SAAS,CAACe,QAAV,GAAqB,IAArB;QACAf,SAAS,CAACgB,QAAV,IAAsBhB,SAAS,CAACgB,QAAV,CAAmB;QAAK;QAAxB,CAAtB;MACD;IACF;;IACDL,MAAM,CAACF,GAAD,CAAN,GAAcT,SAAS,CAACE,OAAxB;IACA,OAAOa,QAAP;EACD,CAhBM,MAgBA,IAAI,OAAOf,SAAP,KAAqB,QAAzB,EAAmC;IACxCW,MAAM,CAACF,GAAD,CAAN,GAAc,EAAd;IACA,IAAII,WAAW,GAAG,IAAlB;IACAN,MAAM,CAACC,IAAP,CAAYR,SAAZ,EAAuBJ,OAAvB,CAAgCqB,CAAD,IAAO;MACpC,IACE,CAACP,aAAa,CACZV,SAAS,CAACiB,CAAD,CADG,EAEZZ,SAFY,EAGZY,CAHY,EAIZN,MAAM,CAACF,GAAD,CAJM,EAKZG,gBALY,CADhB,EAQE;QACAC,WAAW,GAAG,KAAd;MACD;IACF,CAZD;IAaA,OAAOA,WAAP;EACD,CAjBM,MAiBA;IACLF,MAAM,CAACF,GAAD,CAAN,GAAcT,SAAd;IACA,OAAO,IAAP;EACD;AACF;;AAED,SAASkB,YAAT,CACEC,eADF,EAEEC,OAFF,EAGEC,KAHF,EAIEC,YAJF,EAKEV,gBALF,EAMQ;EACN;;EACA,MAAMW,UAAU,GAAGF,KAAK,CAACE,UAAN,IAAoB,EAAvC;EACA,MAAMC,SAAS,GAAGJ,OAAO,MAAM,EAA/B;EACA,MAAMK,SAAS,GAAGJ,KAAK,CAACK,IAAxB;EACA,MAAMC,oBAAgC,GAAG,EAAzC;EAEA,IAAIC,aAAa,GAAG,KAApB;EACA,IAAItC,cAAJ;EACA,IAAIuC,oBAAoB,GAAG,KAA3B;;EACA,KAAK,MAAMpB,GAAX,IAAkBe,SAAlB,EAA6B;IAC3B,MAAMvB,KAAK,GAAGuB,SAAS,CAACf,GAAD,CAAvB;;IACA,IAAI,IAAAqB,iBAAA,EAAW7B,KAAX,CAAJ,EAAuB;MACrBX,cAAc,GAAGyC,MAAM,CAACC,gBAAP,IAA2BC,WAAW,CAACC,GAAZ,EAA5C;MACA7C,gBAAgB,CAACC,cAAD,EAAiBW,KAAjB,EAAwBsB,UAAU,CAACd,GAAD,CAAlC,EAAyCgB,SAAS,CAAChB,GAAD,CAAlD,CAAhB;MACAc,UAAU,CAACd,GAAD,CAAV,GAAkBR,KAAlB;MACA2B,aAAa,GAAG,IAAhB;IACD,CALD,MAKO;MACLC,oBAAoB,GAAG,IAAvB;MACAF,oBAAoB,CAAClB,GAAD,CAApB,GAA4BR,KAA5B;MACA,OAAOsB,UAAU,CAACd,GAAD,CAAjB;IACD;EACF;;EAED,IAAImB,aAAJ,EAAmB;IACjB,MAAMO,KAAK,GAAI9B,SAAD,IAA0B;MACtC,MAAM;QAAEkB,UAAF;QAAcG,IAAd;QAAoBU;MAApB,IAA6Cf,KAAnD;;MACA,IAAIe,oBAAJ,EAA0B;QACxBf,KAAK,CAACgB,kBAAN,GAA2B,KAA3B;QACA;MACD;;MAED,MAAMC,OAAsB,GAAG,EAA/B;MACA,IAAIzB,WAAW,GAAG,IAAlB;;MACA,KAAK,MAAM0B,QAAX,IAAuBhB,UAAvB,EAAmC;QACjC,MAAMR,QAAQ,GAAGL,aAAa,CAC5Ba,UAAU,CAACgB,QAAD,CADkB,EAE5BlC,SAF4B,EAG5BkC,QAH4B,EAI5BD,OAJ4B,EAK5B1B,gBAL4B,CAA9B;;QAOA,IAAIG,QAAJ,EAAc;UACZW,IAAI,CAACa,QAAD,CAAJ,GAAiBD,OAAO,CAACC,QAAD,CAAxB;UACA,OAAOhB,UAAU,CAACgB,QAAD,CAAjB;QACD,CAHD,MAGO;UACL1B,WAAW,GAAG,KAAd;QACD;MACF;;MAED,IAAIyB,OAAJ,EAAa;QACX,IAAAE,oBAAA,EAAYrB,eAAZ,EAA6BmB,OAA7B,EAAsChB,YAAtC;MACD;;MAED,IAAI,CAACT,WAAL,EAAkB;QAChB4B,qBAAqB,CAACN,KAAD,CAArB;MACD,CAFD,MAEO;QACLd,KAAK,CAACgB,kBAAN,GAA2B,KAA3B;MACD;IACF,CAlCD;;IAoCAhB,KAAK,CAACE,UAAN,GAAmBA,UAAnB;;IACA,IAAI,CAACF,KAAK,CAACgB,kBAAX,EAA+B;MAC7BhB,KAAK,CAACe,oBAAN,GAA6B,KAA7B;MACAf,KAAK,CAACgB,kBAAN,GAA2B,IAA3B;MACAF,KAAK,CAAC7C,cAAD,CAAL;IACD;;IAED,IAAIuC,oBAAJ,EAA0B;MACxB,IAAAW,oBAAA,EAAYrB,eAAZ,EAA6BQ,oBAA7B,EAAmDL,YAAnD;IACD;EACF,CA/CD,MA+CO;IACLD,KAAK,CAACe,oBAAN,GAA6B,IAA7B;IACAf,KAAK,CAACE,UAAN,GAAmB,EAAnB;;IAEA,IAAI,CAAC,IAAAmB,mBAAA,EAAajB,SAAb,EAAwBD,SAAxB,CAAL,EAAyC;MACvC,IAAAgB,oBAAA,EAAYrB,eAAZ,EAA6BK,SAA7B,EAAwCF,YAAxC;IACD;EACF;;EACDD,KAAK,CAACK,IAAN,GAAaF,SAAb;AACD;;AAED,SAASmB,gBAAT,CACExB,eADF,EAEEC,OAFF,EAGEC,KAHF,EAIEC,YAJF,EAKEV,gBALF,EAMEgC,aANF,EAQQ;EACN;;EADM,IADNC,QACM,uEAD+B,EAC/B;EAEN,MAAMtB,UAAyB,GAAGF,KAAK,CAACE,UAAN,IAAoB,EAAtD;EACA,MAAMC,SAAS,GAAGJ,OAAO,MAAM,EAA/B;EACA,MAAMK,SAAS,GAAGJ,KAAK,CAACK,IAAxB,CAJM,CAMN;;EACA,IAAIE,aAAa,GAAG,KAApB;EACA,IAAItC,cAAJ;EACAiB,MAAM,CAACC,IAAP,CAAYe,UAAZ,EAAwB3B,OAAxB,CAAiCa,GAAD,IAAS;IACvC,MAAMR,KAAK,GAAGuB,SAAS,CAACf,GAAD,CAAvB;;IACA,IAAI,CAAC,IAAAqB,iBAAA,EAAW7B,KAAX,CAAL,EAAwB;MACtB,OAAOsB,UAAU,CAACd,GAAD,CAAjB;IACD;EACF,CALD;EAMAF,MAAM,CAACC,IAAP,CAAYgB,SAAZ,EAAuB5B,OAAvB,CAAgCa,GAAD,IAAS;IACtC,MAAMR,KAAK,GAAGuB,SAAS,CAACf,GAAD,CAAvB;;IACA,IAAI,IAAAqB,iBAAA,EAAW7B,KAAX,CAAJ,EAAuB;MACrBX,cAAc,GAAGyC,MAAM,CAACC,gBAAP,IAA2BC,WAAW,CAACC,GAAZ,EAA5C;MACA7C,gBAAgB,CAACC,cAAD,EAAiBW,KAAjB,EAAwBsB,UAAU,CAACd,GAAD,CAAlC,EAAyCgB,SAAS,CAAChB,GAAD,CAAlD,CAAhB;MACAc,UAAU,CAACd,GAAD,CAAV,GAAkBR,KAAlB;MACA2B,aAAa,GAAG,IAAhB;IACD;EACF,CARD;;EAUA,SAASO,KAAT,CAAe9B,SAAf,EAAqC;IACnC,MAAM;MAAEkB,UAAF;MAAcG,IAAd;MAAoBU;IAApB,IAA6Cf,KAAnD;;IACA,IAAIe,oBAAJ,EAA0B;MACxBf,KAAK,CAACgB,kBAAN,GAA2B,KAA3B;MACA;IACD;;IAED,MAAMC,OAAsB,GAAG,EAA/B;IACA,IAAIzB,WAAW,GAAG,IAAlB;IACAN,MAAM,CAACC,IAAP,CAAYe,UAAZ,EAAwB3B,OAAxB,CAAiC2C,QAAD,IAAc;MAC5C,MAAMxB,QAAQ,GAAGL,aAAa,CAC5Ba,UAAU,CAACgB,QAAD,CADkB,EAE5BlC,SAF4B,EAG5BkC,QAH4B,EAI5BD,OAJ4B,EAK5B1B,gBAL4B,CAA9B;;MAOA,IAAIG,QAAJ,EAAc;QACZW,IAAI,CAACa,QAAD,CAAJ,GAAiBD,OAAO,CAACC,QAAD,CAAxB;QACA,OAAOhB,UAAU,CAACgB,QAAD,CAAjB;MACD,CAHD,MAGO;QACL1B,WAAW,GAAG,KAAd;MACD;IACF,CAdD;;IAgBA,IAAIN,MAAM,CAACC,IAAP,CAAY8B,OAAZ,EAAqBQ,MAAzB,EAAiC;MAC/B,IAAAC,mCAAA,EACE5B,eADF,EAEEmB,OAFF,EAGEhB,YAHF,EAIEsB,aAJF,EAKEC,QALF;IAOD;;IAED,IAAI,CAAChC,WAAL,EAAkB;MAChB4B,qBAAqB,CAACN,KAAD,CAArB;IACD,CAFD,MAEO;MACLd,KAAK,CAACgB,kBAAN,GAA2B,KAA3B;IACD;EACF;;EAED,IAAIT,aAAJ,EAAmB;IACjBP,KAAK,CAACE,UAAN,GAAmBA,UAAnB;;IACA,IAAI,CAACF,KAAK,CAACgB,kBAAX,EAA+B;MAC7BhB,KAAK,CAACe,oBAAN,GAA6B,KAA7B;MACAf,KAAK,CAACgB,kBAAN,GAA2B,IAA3B;MACAF,KAAK,CAAC7C,cAAD,CAAL;IACD;EACF,CAPD,MAOO;IACL+B,KAAK,CAACe,oBAAN,GAA6B,IAA7B;IACAf,KAAK,CAACE,UAAN,GAAmB,EAAnB;EACD,CA7EK,CA+EN;;;EACAF,KAAK,CAACK,IAAN,GAAaF,SAAb;;EAEA,IAAI,CAAC,IAAAkB,mBAAA,EAAajB,SAAb,EAAwBD,SAAxB,CAAL,EAAyC;IACvC,IAAAuB,mCAAA,EACE5B,eADF,EAEEK,SAFF,EAGEF,YAHF,EAIEsB,aAJF,EAKEC,QALF;EAOD;AACF,C,CAED;;;AACA,SAASG,qBAAT,CACEnD,IADF,EAEEoD,UAFF,EAGQ;EACN,IAAIvD,KAAK,CAACC,OAAN,CAAcE,IAAd,CAAJ,EAAyB;IACvB;IACA,KAAK,MAAMqD,OAAX,IAAsBrD,IAAtB,EAA4B;MAC1BmD,qBAAqB,CAACE,OAAD,EAAUD,UAAV,CAArB;IACD;EACF,CALD,MAKO,IAAI,OAAOpD,IAAP,KAAgB,QAAhB,IAA4BA,IAAI,CAACI,KAAL,KAAeE,SAA/C,EAA0D;IAC/D;IACA,KAAK,MAAMM,GAAX,IAAkBF,MAAM,CAACC,IAAP,CAAYX,IAAZ,CAAlB,EAAqC;MACnCmD,qBAAqB,CAACnD,IAAI,CAACY,GAAD,CAAL,EAAYA,GAAZ,CAArB;IACD;EACF,CALM,MAKA,IACLwC,UAAU,KAAK9C,SAAf,IACA,OAAON,IAAP,KAAgB,QADhB,IAEAA,IAAI,CAACI,KAAL,KAAeE,SAHV,EAIL;IACA;IACA,MAAM,IAAIgD,KAAJ,CACH,6BAA4BF,UAAW,yCADpC,CAAN;EAGD;AACF;;AAEM,SAASG,gBAAT,CACLhC,OADK,EAELiC,YAFK,EAGLR,QAHK,EAIgB;EACrB,MAAMS,QAAyB,GAAG,IAAAC,mCAAA,GAAlC;EACA,MAAMC,OAAO,GAAG,IAAAC,aAAA,GAAhB;EACA,IAAIC,MAAM,GAAGnD,MAAM,CAACoD,MAAP,CAAcvC,OAAO,CAACwC,QAAR,IAAoB,EAAlC,CAAb;;EACA,IAAI,IAAAC,+BAAA,GAAJ,EAAsB;IAAA;;IACpB,IAAI,CAACH,MAAM,CAACZ,MAAR,qBAAkBO,YAAlB,0CAAkB,cAAcP,MAApC,EAA4C;MAC1C;MACAY,MAAM,GAAGL,YAAT;IACD;;IACD,IAAIS,OAAO,IAAI,CAACJ,MAAM,CAACZ,MAAnB,IAA6B,CAACO,YAA9B,IAA8C,CAACjC,OAAO,CAAC2C,aAA3D,EAA0E;MACxE,MAAM,IAAIZ,KAAJ,CACH;AACT;AACA,oIAHY,CAAN;IAKD;EACF;;EACD,MAAMa,aAAuC,GAAGnB,QAAQ,GACpDnD,KAAK,CAACC,OAAN,CAAckD,QAAd,IACEA,QADF,GAEE,CAACA,QAAD,CAHkD,GAIpD,EAJJ;EAKA,MAAMoB,YAAY,GAAGpB,QAAQ,GAAG,IAAAqB,wBAAA,EAAkBF,aAAlB,CAAH,GAAsC,IAAnE;EACA,MAAMpD,gBAAgB,GAAG,IAAAuD,8BAAA,EAAwB,IAAxB,CAAzB;EACA,MAAMvB,aAA8C,GAAG,IAAAa,aAAA,EACrD,EADqD,CAAvD,CAxBqB,CA4BrB;;EACA,IAAI,CAACJ,YAAL,EAAmB;IACjBA,YAAY,GAAG,CAAC,GAAGK,MAAJ,EAAYtC,OAAO,CAAC2C,aAApB,CAAf;EACD,CAFD,MAEO;IACLV,YAAY,CAACe,IAAb,CAAkBhD,OAAO,CAAC2C,aAA1B;EACD;;EACDE,YAAY,IAAIZ,YAAY,CAACe,IAAb,CAAkBH,YAAlB,CAAhB;;EAEA,IAAI,CAACT,OAAO,CAACtD,OAAb,EAAsB;IACpB,MAAMmE,YAA2B,GAAG,IAAAC,4BAAA,EAAkBlD,OAAlB,CAApC;IACA,IAAAmD,6BAAA,EAAuBF,YAAvB;IACAb,OAAO,CAACtD,OAAR,GAAkB;MAChBsE,OAAO,EAAE;QACPvE,KAAK,EAAEoE,YADA;QAEPjD,OAAO,EAAEA;MAFF,CADO;MAKhBqD,WAAW,EAAE,IAAAC,gBAAA,EAA0B;QACrChD,IAAI,EAAE2C,YAD+B;QAErC9C,UAAU,EAAE,EAFyB;QAGrCa,oBAAoB,EAAE,KAHe;QAIrCC,kBAAkB,EAAE;MAJiB,CAA1B,CALG;MAWhBlB,eAAe,EAAE,IAAAwD,0CAAA;IAXD,CAAlB;EAaD,CApDoB,CAsDrB;;;EACA,MAAM;IAAEH,OAAF;IAAWC,WAAX;IAAwBtD;EAAxB,IAA4CqC,OAAO,CAACtD,OAA1D;EACA,MAAM0E,uBAAuB,GAAGzD,eAAe,CAACyD,uBAAhD;EACA,MAAMtD,YAAY,GAAGuD,yBAAA,CAAuBC,MAAvB,GAAgC3E,SAAhC,GAA4CmD,QAAjE;EAEAD,YAAY,CAACe,IAAb,CAAkBQ,uBAAlB;EAEA,IAAAG,gBAAA,EAAU,MAAM;IACd,IAAIC,GAAJ;IACA,IAAIC,SAAS,GAAG7D,OAAhB;;IACA,IAAIyB,QAAJ,EAAc;MACZoC,SAAS,GAAG,MAAM;QAChB;;QACA,MAAMzD,SAAS,GAAGJ,OAAO,EAAzB;QACA4C,aAAa,CAACpE,OAAd,CAAuBsF,OAAD,IAAa;UACjCA,OAAO,CAAC1D,SAAD,CAAP;QACD,CAFD;QAGA,OAAOA,SAAP;MACD,CAPD;IAQD;;IAED,IAAI,IAAA2D,uBAAA,GAAJ,EAAc;MACZH,GAAG,GAAG,MAAM;QACV;;QACArC,gBAAgB,CACdiC,uBADc,EAEdxD,OAFc,EAGdqD,WAHc,EAIdnD,YAJc,EAKdV,gBALc,EAMdgC,aANc,EAOdoB,aAPc,CAAhB;MASD,CAXD;IAYD,CAbD,MAaO;MACLgB,GAAG,GAAG,MAAM;QACV;;QACA9D,YAAY,CACV0D,uBADU,EAEVK,SAFU,EAGVR,WAHU,EAIVnD,YAJU,EAKVV,gBALU,CAAZ;MAOD,CATD;IAUD;;IACD,MAAMwE,QAAQ,GAAG,IAAAC,iBAAA,EAAYL,GAAZ,EAAiBtB,MAAjB,CAAjB;IACA,OAAO,MAAM;MACX,IAAA4B,gBAAA,EAAWF,QAAX;IACD,CAFD;EAGD,CA3CD,EA2CG/B,YA3CH;EA6CA,IAAA0B,gBAAA,EAAU,MAAM;IACdnE,gBAAgB,CAACX,KAAjB,GAAyB,IAAzB;IACA,OAAO,MAAM;MACXW,gBAAgB,CAACX,KAAjB,GAAyB,KAAzB;IACD,CAFD;EAGD,CALD,EAKG,EALH;EAOA+C,qBAAqB,CAACwB,OAAO,CAACvE,KAAT,CAArB;;EAEA,IAAIsF,OAAO,CAACC,GAAR,CAAYC,cAAhB,EAAgC;IAC9B,OAAO;MAAEtE,eAAF;MAAmBqD,OAAO,EAAEA,OAA5B;MAAqClB,QAArC;MAA+CV;IAA/C,CAAP;EACD,CAFD,MAEO;IACL,OAAO;MAAEzB,eAAF;MAAmBqD,OAAO,EAAEA,OAA5B;MAAqClB;IAArC,CAAP;EACD;AACF"}
1
+ {"version":3,"names":["_react","require","_core","_UpdateProps","_interopRequireWildcard","_animation","_NativeReanimated","_interopRequireDefault","_useSharedValue","_utils","_ViewDescriptorsSet","_PlatformChecker","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","prepareAnimation","frameTimestamp","animatedProp","lastAnimation","lastValue","Array","isArray","forEach","prop","index","onFrame","animation","value","current","undefined","callStart","timestamp","onStart","keys","runAnimations","result","animationsActive","allFinished","entry","finished","callback","k","styleUpdater","viewDescriptors","updater","state","maybeViewRef","animations","newValues","oldValues","last","nonAnimatedNewValues","hasAnimations","hasNonAnimatedValues","isAnimated","global","__frameTimestamp","performance","now","frame","isAnimationCancelled","isAnimationRunning","updates","propName","updateProps","requestAnimationFrame","shallowEqual","jestStyleUpdater","animatedStyle","adapters","arguments","length","updatePropsJestWrapper","checkSharedValueUsage","currentKey","element","Error","useAnimatedStyle","dependencies","viewsRef","makeViewsRefSet","initRef","useRef","inputs","values","_closure","shouldBeUseWeb","_dependencies","__DEV__","__workletHash","adaptersArray","adaptersHash","buildWorkletsHash","useSharedValue","push","initialStyle","initialUpdaterRun","validateAnimatedStyles","initial","remoteState","makeRemote","makeViewDescriptorsSet","sharableViewDescriptors","NativeReanimatedModule","native","useEffect","fun","updaterFn","adapter","isJest","mapperId","startMapper","stopMapper","process","env","JEST_WORKER_ID"],"sources":["useAnimatedStyle.ts"],"sourcesContent":["import { MutableRefObject, useEffect, useRef } from 'react';\n\nimport { startMapper, stopMapper, makeRemote } from '../core';\nimport updateProps, { updatePropsJestWrapper } from '../UpdateProps';\nimport { initialUpdaterRun } from '../animation';\nimport NativeReanimatedModule from '../NativeReanimated';\nimport { useSharedValue } from './useSharedValue';\nimport {\n buildWorkletsHash,\n isAnimated,\n shallowEqual,\n validateAnimatedStyles,\n} from './utils';\nimport { DependencyList, Descriptor } from './commonTypes';\nimport {\n makeViewDescriptorsSet,\n makeViewsRefSet,\n ViewDescriptorsSet,\n ViewRefSet,\n} from '../ViewDescriptorsSet';\nimport { isJest, shouldBeUseWeb } from '../PlatformChecker';\nimport {\n AnimationObject,\n Timestamp,\n AdapterWorkletFunction,\n AnimatedStyle,\n BasicWorkletFunction,\n BasicWorkletFunctionOptional,\n NestedObjectValues,\n SharedValue,\n StyleProps,\n} from '../commonTypes';\nexport interface AnimatedStyleResult {\n viewDescriptors: ViewDescriptorsSet;\n initial: AnimatedStyle;\n viewsRef: ViewRefSet<any>;\n animatedStyle?: MutableRefObject<AnimatedStyle>;\n}\n\ninterface AnimatedState {\n last: AnimatedStyle;\n animations: AnimatedStyle;\n isAnimationRunning: boolean;\n isAnimationCancelled: boolean;\n}\n\ninterface AnimationRef {\n initial: {\n value: AnimatedStyle;\n updater: () => AnimatedStyle;\n };\n remoteState: AnimatedState;\n viewDescriptors: ViewDescriptorsSet;\n}\n\nfunction prepareAnimation(\n frameTimestamp: number,\n animatedProp: AnimatedStyle,\n lastAnimation: AnimatedStyle,\n lastValue: AnimatedStyle\n): void {\n 'worklet';\n if (Array.isArray(animatedProp)) {\n animatedProp.forEach((prop, index) => {\n prepareAnimation(\n frameTimestamp,\n prop,\n lastAnimation && lastAnimation[index],\n lastValue && lastValue[index]\n );\n });\n // return animatedProp;\n }\n if (typeof animatedProp === 'object' && animatedProp.onFrame) {\n const animation = animatedProp;\n\n let value = animation.current;\n if (lastValue !== undefined) {\n if (typeof lastValue === 'object') {\n if (lastValue.value !== undefined) {\n // previously it was a shared value\n value = lastValue.value;\n } else if (lastValue.onFrame !== undefined) {\n if (lastAnimation?.current !== undefined) {\n // it was an animation before, copy its state\n value = lastAnimation.current;\n } else if (lastValue?.current !== undefined) {\n // it was initialized\n value = lastValue.current;\n }\n }\n } else {\n // previously it was a plain value, just set it as starting point\n value = lastValue;\n }\n }\n\n animation.callStart = (timestamp: Timestamp) => {\n animation.onStart(animation, value, timestamp, lastAnimation);\n };\n animation.callStart(frameTimestamp);\n animation.callStart = null;\n } else if (typeof animatedProp === 'object') {\n // it is an object\n Object.keys(animatedProp).forEach((key) =>\n prepareAnimation(\n frameTimestamp,\n animatedProp[key],\n lastAnimation && lastAnimation[key],\n lastValue && lastValue[key]\n )\n );\n }\n}\n\nfunction runAnimations(\n animation: AnimatedStyle,\n timestamp: Timestamp,\n key: number | string,\n result: AnimatedStyle,\n animationsActive: SharedValue<boolean>\n): boolean {\n 'worklet';\n if (!animationsActive.value) {\n return true;\n }\n if (Array.isArray(animation)) {\n result[key] = [];\n let allFinished = true;\n animation.forEach((entry, index) => {\n if (\n !runAnimations(entry, timestamp, index, result[key], animationsActive)\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else if (typeof animation === 'object' && animation.onFrame) {\n let finished = true;\n if (!animation.finished) {\n if (animation.callStart) {\n animation.callStart(timestamp);\n animation.callStart = null;\n }\n finished = animation.onFrame(animation, timestamp);\n animation.timestamp = timestamp;\n if (finished) {\n animation.finished = true;\n animation.callback && animation.callback(true /* finished */);\n }\n }\n result[key] = animation.current;\n return finished;\n } else if (typeof animation === 'object') {\n result[key] = {};\n let allFinished = true;\n Object.keys(animation).forEach((k) => {\n if (\n !runAnimations(\n animation[k],\n timestamp,\n k,\n result[key],\n animationsActive\n )\n ) {\n allFinished = false;\n }\n });\n return allFinished;\n } else {\n result[key] = animation;\n return true;\n }\n}\n\nfunction styleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: BasicWorkletFunction<AnimatedStyle>,\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>\n): void {\n 'worklet';\n const animations = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n const nonAnimatedNewValues: StyleProps = {};\n\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n let hasNonAnimatedValues = false;\n for (const key in newValues) {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp = global.__frameTimestamp || performance.now();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n } else {\n hasNonAnimatedValues = true;\n nonAnimatedNewValues[key] = value;\n delete animations[key];\n }\n }\n\n if (hasAnimations) {\n const frame = (timestamp: Timestamp) => {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle = {};\n let allFinished = true;\n for (const propName in animations) {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n }\n\n if (updates) {\n updateProps(viewDescriptors, updates, maybeViewRef);\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n };\n\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n\n if (hasNonAnimatedValues) {\n updateProps(viewDescriptors, nonAnimatedNewValues, maybeViewRef);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n\n if (!shallowEqual(oldValues, newValues)) {\n updateProps(viewDescriptors, newValues, maybeViewRef);\n }\n }\n state.last = newValues;\n}\n\nfunction jestStyleUpdater(\n viewDescriptors: SharedValue<Descriptor[]>,\n updater: BasicWorkletFunction<AnimatedStyle>,\n state: AnimatedState,\n maybeViewRef: ViewRefSet<any> | undefined,\n animationsActive: SharedValue<boolean>,\n animatedStyle: MutableRefObject<AnimatedStyle>,\n adapters: AdapterWorkletFunction[] = []\n): void {\n 'worklet';\n const animations: AnimatedStyle = state.animations ?? {};\n const newValues = updater() ?? {};\n const oldValues = state.last;\n\n // extract animated props\n let hasAnimations = false;\n let frameTimestamp: number | undefined;\n Object.keys(animations).forEach((key) => {\n const value = newValues[key];\n if (!isAnimated(value)) {\n delete animations[key];\n }\n });\n Object.keys(newValues).forEach((key) => {\n const value = newValues[key];\n if (isAnimated(value)) {\n frameTimestamp = global.__frameTimestamp || performance.now();\n prepareAnimation(frameTimestamp, value, animations[key], oldValues[key]);\n animations[key] = value;\n hasAnimations = true;\n }\n });\n\n function frame(timestamp: Timestamp) {\n const { animations, last, isAnimationCancelled } = state;\n if (isAnimationCancelled) {\n state.isAnimationRunning = false;\n return;\n }\n\n const updates: AnimatedStyle = {};\n let allFinished = true;\n Object.keys(animations).forEach((propName) => {\n const finished = runAnimations(\n animations[propName],\n timestamp,\n propName,\n updates,\n animationsActive\n );\n if (finished) {\n last[propName] = updates[propName];\n delete animations[propName];\n } else {\n allFinished = false;\n }\n });\n\n if (Object.keys(updates).length) {\n updatePropsJestWrapper(\n viewDescriptors,\n updates,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n\n if (!allFinished) {\n requestAnimationFrame(frame);\n } else {\n state.isAnimationRunning = false;\n }\n }\n\n if (hasAnimations) {\n state.animations = animations;\n if (!state.isAnimationRunning) {\n state.isAnimationCancelled = false;\n state.isAnimationRunning = true;\n frame(frameTimestamp!);\n }\n } else {\n state.isAnimationCancelled = true;\n state.animations = [];\n }\n\n // calculate diff\n state.last = newValues;\n\n if (!shallowEqual(oldValues, newValues)) {\n updatePropsJestWrapper(\n viewDescriptors,\n newValues,\n maybeViewRef,\n animatedStyle,\n adapters\n );\n }\n}\n\n// check for invalid usage of shared values in returned object\nfunction checkSharedValueUsage(\n prop: NestedObjectValues<AnimationObject>,\n currentKey?: string\n): void {\n if (Array.isArray(prop)) {\n // if it's an array (i.ex. transform) validate all its elements\n for (const element of prop) {\n checkSharedValueUsage(element, currentKey);\n }\n } else if (typeof prop === 'object' && prop.value === undefined) {\n // if it's a nested object, run validation for all its props\n for (const key of Object.keys(prop)) {\n checkSharedValueUsage(prop[key], key);\n }\n } else if (\n currentKey !== undefined &&\n typeof prop === 'object' &&\n prop.value !== undefined\n ) {\n // if shared value is passed insted of its value, throw an error\n throw new Error(\n `invalid value passed to \\`${currentKey}\\`, maybe you forgot to use \\`.value\\`?`\n );\n }\n}\n\nexport function useAnimatedStyle<T extends AnimatedStyle>(\n updater: BasicWorkletFunction<T>,\n dependencies?: DependencyList,\n adapters?: AdapterWorkletFunction | AdapterWorkletFunction[]\n): AnimatedStyleResult {\n const viewsRef: ViewRefSet<any> = makeViewsRefSet();\n const initRef = useRef<AnimationRef>();\n let inputs = Object.values(updater._closure ?? {});\n if (shouldBeUseWeb()) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel/SWC plugin\n inputs = dependencies;\n }\n if (__DEV__ && !inputs.length && !dependencies && !updater.__workletHash) {\n throw new Error(\n `useAnimatedStyle was used without a dependency array or Babel plugin. Please explicitly pass a dependency array, or enable the Babel/SWC plugin.\n\nFor more, see the docs: https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/web-support#web-without-a-babel-plugin`\n );\n }\n }\n const adaptersArray: AdapterWorkletFunction[] = adapters\n ? Array.isArray(adapters)\n ? adapters\n : [adapters]\n : [];\n const adaptersHash = adapters ? buildWorkletsHash(adaptersArray) : null;\n const animationsActive = useSharedValue<boolean>(true);\n const animatedStyle: MutableRefObject<AnimatedStyle> = useRef<AnimatedStyle>(\n {}\n );\n\n // build dependencies\n if (!dependencies) {\n dependencies = [...inputs, updater.__workletHash];\n } else {\n dependencies.push(updater.__workletHash);\n }\n adaptersHash && dependencies.push(adaptersHash);\n\n if (!initRef.current) {\n const initialStyle: AnimatedStyle = initialUpdaterRun(updater);\n validateAnimatedStyles(initialStyle);\n initRef.current = {\n initial: {\n value: initialStyle,\n updater: updater,\n },\n remoteState: makeRemote<AnimatedState>({\n last: initialStyle,\n animations: {},\n isAnimationCancelled: false,\n isAnimationRunning: false,\n }),\n viewDescriptors: makeViewDescriptorsSet(),\n };\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { initial, remoteState, viewDescriptors } = initRef.current!;\n const sharableViewDescriptors = viewDescriptors.sharableViewDescriptors;\n const maybeViewRef = NativeReanimatedModule.native ? undefined : viewsRef;\n\n dependencies.push(sharableViewDescriptors);\n\n useEffect(() => {\n let fun;\n let updaterFn = updater as BasicWorkletFunctionOptional<T>;\n if (adapters) {\n updaterFn = () => {\n 'worklet';\n const newValues = updater();\n adaptersArray.forEach((adapter) => {\n adapter(newValues);\n });\n return newValues;\n };\n }\n\n if (isJest()) {\n fun = () => {\n 'worklet';\n jestStyleUpdater(\n sharableViewDescriptors,\n updater,\n remoteState,\n maybeViewRef,\n animationsActive,\n animatedStyle,\n adaptersArray\n );\n };\n } else {\n fun = () => {\n 'worklet';\n styleUpdater(\n sharableViewDescriptors,\n updaterFn,\n remoteState,\n maybeViewRef,\n animationsActive\n );\n };\n }\n const mapperId = startMapper(fun, inputs);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n\n useEffect(() => {\n animationsActive.value = true;\n return () => {\n animationsActive.value = false;\n };\n }, []);\n\n checkSharedValueUsage(initial.value);\n\n if (process.env.JEST_WORKER_ID) {\n return { viewDescriptors, initial: initial, viewsRef, animatedStyle };\n } else {\n return { viewDescriptors, initial: initial, viewsRef };\n }\n}\n"],"mappings":"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"}
@@ -4,40 +4,32 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useDerivedValue = useDerivedValue;
7
-
8
7
  var _react = require("react");
9
-
10
8
  var _animation = require("../animation");
11
-
12
9
  var _core = require("../core");
13
-
14
10
  var _PlatformChecker = require("../PlatformChecker");
15
-
16
11
  function useDerivedValue(processor, dependencies) {
17
12
  const initRef = (0, _react.useRef)(null);
18
13
  let inputs = Object.values(processor._closure ?? {});
19
-
20
14
  if ((0, _PlatformChecker.shouldBeUseWeb)()) {
21
15
  var _dependencies;
22
-
23
16
  if (!inputs.length && (_dependencies = dependencies) !== null && _dependencies !== void 0 && _dependencies.length) {
24
17
  // let web work without a Babel/SWC plugin
25
18
  inputs = dependencies;
26
19
  }
27
- } // build dependencies
28
-
20
+ }
29
21
 
22
+ // build dependencies
30
23
  if (dependencies === undefined) {
31
24
  dependencies = [...inputs, processor.__workletHash];
32
25
  } else {
33
26
  dependencies.push(processor.__workletHash);
34
27
  }
35
-
36
28
  if (initRef.current === null) {
37
29
  initRef.current = (0, _core.makeMutable)((0, _animation.initialUpdaterRun)(processor));
38
- } // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
39
-
30
+ }
40
31
 
32
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
41
33
  const sharedValue = initRef.current;
42
34
  (0, _react.useEffect)(() => {
43
35
  const fun = () => {
@@ -45,7 +37,6 @@ function useDerivedValue(processor, dependencies) {
45
37
 
46
38
  sharedValue.value = processor();
47
39
  };
48
-
49
40
  const mapperId = (0, _core.startMapper)(fun, inputs, [sharedValue]);
50
41
  return () => {
51
42
  (0, _core.stopMapper)(mapperId);
@@ -1 +1 @@
1
- {"version":3,"names":["useDerivedValue","processor","dependencies","initRef","useRef","inputs","Object","values","_closure","shouldBeUseWeb","length","undefined","__workletHash","push","current","makeMutable","initialUpdaterRun","sharedValue","useEffect","fun","value","mapperId","startMapper","stopMapper"],"sources":["useDerivedValue.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { initialUpdaterRun } from '../animation';\nimport { BasicWorkletFunction, SharedValue } from '../commonTypes';\nimport { makeMutable, startMapper, stopMapper } from '../core';\nimport { DependencyList } from './commonTypes';\nimport { shouldBeUseWeb } from '../PlatformChecker';\n\nexport type DerivedValue<T> = Readonly<SharedValue<T>>;\n\nexport function useDerivedValue<T>(\n processor: BasicWorkletFunction<T>,\n dependencies: DependencyList\n): DerivedValue<T> {\n const initRef = useRef<SharedValue<T> | null>(null);\n let inputs = Object.values(processor._closure ?? {});\n if (shouldBeUseWeb()) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel/SWC plugin\n inputs = dependencies;\n }\n }\n\n // build dependencies\n if (dependencies === undefined) {\n dependencies = [...inputs, processor.__workletHash];\n } else {\n dependencies.push(processor.__workletHash);\n }\n\n if (initRef.current === null) {\n initRef.current = makeMutable(initialUpdaterRun(processor));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const sharedValue: SharedValue<T> = initRef.current!;\n\n useEffect(() => {\n const fun = () => {\n 'worklet';\n sharedValue.value = processor();\n };\n const mapperId = startMapper(fun, inputs, [sharedValue]);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n\n useEffect(() => {\n return () => {\n initRef.current = null;\n };\n }, []);\n\n return sharedValue;\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AAIO,SAASA,eAAT,CACLC,SADK,EAELC,YAFK,EAGY;EACjB,MAAMC,OAAO,GAAG,IAAAC,aAAA,EAA8B,IAA9B,CAAhB;EACA,IAAIC,MAAM,GAAGC,MAAM,CAACC,MAAP,CAAcN,SAAS,CAACO,QAAV,IAAsB,EAApC,CAAb;;EACA,IAAI,IAAAC,+BAAA,GAAJ,EAAsB;IAAA;;IACpB,IAAI,CAACJ,MAAM,CAACK,MAAR,qBAAkBR,YAAlB,0CAAkB,cAAcQ,MAApC,EAA4C;MAC1C;MACAL,MAAM,GAAGH,YAAT;IACD;EACF,CARgB,CAUjB;;;EACA,IAAIA,YAAY,KAAKS,SAArB,EAAgC;IAC9BT,YAAY,GAAG,CAAC,GAAGG,MAAJ,EAAYJ,SAAS,CAACW,aAAtB,CAAf;EACD,CAFD,MAEO;IACLV,YAAY,CAACW,IAAb,CAAkBZ,SAAS,CAACW,aAA5B;EACD;;EAED,IAAIT,OAAO,CAACW,OAAR,KAAoB,IAAxB,EAA8B;IAC5BX,OAAO,CAACW,OAAR,GAAkB,IAAAC,iBAAA,EAAY,IAAAC,4BAAA,EAAkBf,SAAlB,CAAZ,CAAlB;EACD,CAnBgB,CAqBjB;;;EACA,MAAMgB,WAA2B,GAAGd,OAAO,CAACW,OAA5C;EAEA,IAAAI,gBAAA,EAAU,MAAM;IACd,MAAMC,GAAG,GAAG,MAAM;MAChB;;MACAF,WAAW,CAACG,KAAZ,GAAoBnB,SAAS,EAA7B;IACD,CAHD;;IAIA,MAAMoB,QAAQ,GAAG,IAAAC,iBAAA,EAAYH,GAAZ,EAAiBd,MAAjB,EAAyB,CAACY,WAAD,CAAzB,CAAjB;IACA,OAAO,MAAM;MACX,IAAAM,gBAAA,EAAWF,QAAX;IACD,CAFD;EAGD,CATD,EASGnB,YATH;EAWA,IAAAgB,gBAAA,EAAU,MAAM;IACd,OAAO,MAAM;MACXf,OAAO,CAACW,OAAR,GAAkB,IAAlB;IACD,CAFD;EAGD,CAJD,EAIG,EAJH;EAMA,OAAOG,WAAP;AACD"}
1
+ {"version":3,"names":["_react","require","_animation","_core","_PlatformChecker","useDerivedValue","processor","dependencies","initRef","useRef","inputs","Object","values","_closure","shouldBeUseWeb","_dependencies","length","undefined","__workletHash","push","current","makeMutable","initialUpdaterRun","sharedValue","useEffect","fun","value","mapperId","startMapper","stopMapper"],"sources":["useDerivedValue.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { initialUpdaterRun } from '../animation';\nimport { BasicWorkletFunction, SharedValue } from '../commonTypes';\nimport { makeMutable, startMapper, stopMapper } from '../core';\nimport { DependencyList } from './commonTypes';\nimport { shouldBeUseWeb } from '../PlatformChecker';\n\nexport type DerivedValue<T> = Readonly<SharedValue<T>>;\n\nexport function useDerivedValue<T>(\n processor: BasicWorkletFunction<T>,\n dependencies: DependencyList\n): DerivedValue<T> {\n const initRef = useRef<SharedValue<T> | null>(null);\n let inputs = Object.values(processor._closure ?? {});\n if (shouldBeUseWeb()) {\n if (!inputs.length && dependencies?.length) {\n // let web work without a Babel/SWC plugin\n inputs = dependencies;\n }\n }\n\n // build dependencies\n if (dependencies === undefined) {\n dependencies = [...inputs, processor.__workletHash];\n } else {\n dependencies.push(processor.__workletHash);\n }\n\n if (initRef.current === null) {\n initRef.current = makeMutable(initialUpdaterRun(processor));\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const sharedValue: SharedValue<T> = initRef.current!;\n\n useEffect(() => {\n const fun = () => {\n 'worklet';\n sharedValue.value = processor();\n };\n const mapperId = startMapper(fun, inputs, [sharedValue]);\n return () => {\n stopMapper(mapperId);\n };\n }, dependencies);\n\n useEffect(() => {\n return () => {\n initRef.current = null;\n };\n }, []);\n\n return sharedValue;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AAEA,IAAAG,gBAAA,GAAAH,OAAA;AAIO,SAASI,eAAeA,CAC7BC,SAAkC,EAClCC,YAA4B,EACX;EACjB,MAAMC,OAAO,GAAG,IAAAC,aAAM,EAAwB,IAAI,CAAC;EACnD,IAAIC,MAAM,GAAGC,MAAM,CAACC,MAAM,CAACN,SAAS,CAACO,QAAQ,IAAI,CAAC,CAAC,CAAC;EACpD,IAAI,IAAAC,+BAAc,GAAE,EAAE;IAAA,IAAAC,aAAA;IACpB,IAAI,CAACL,MAAM,CAACM,MAAM,KAAAD,aAAA,GAAIR,YAAY,cAAAQ,aAAA,eAAZA,aAAA,CAAcC,MAAM,EAAE;MAC1C;MACAN,MAAM,GAAGH,YAAY;IACvB;EACF;;EAEA;EACA,IAAIA,YAAY,KAAKU,SAAS,EAAE;IAC9BV,YAAY,GAAG,CAAC,GAAGG,MAAM,EAAEJ,SAAS,CAACY,aAAa,CAAC;EACrD,CAAC,MAAM;IACLX,YAAY,CAACY,IAAI,CAACb,SAAS,CAACY,aAAa,CAAC;EAC5C;EAEA,IAAIV,OAAO,CAACY,OAAO,KAAK,IAAI,EAAE;IAC5BZ,OAAO,CAACY,OAAO,GAAG,IAAAC,iBAAW,EAAC,IAAAC,4BAAiB,EAAChB,SAAS,CAAC,CAAC;EAC7D;;EAEA;EACA,MAAMiB,WAA2B,GAAGf,OAAO,CAACY,OAAQ;EAEpD,IAAAI,gBAAS,EAAC,MAAM;IACd,MAAMC,GAAG,GAAGA,CAAA,KAAM;MAChB,SAAS;;MACTF,WAAW,CAACG,KAAK,GAAGpB,SAAS,EAAE;IACjC,CAAC;IACD,MAAMqB,QAAQ,GAAG,IAAAC,iBAAW,EAACH,GAAG,EAAEf,MAAM,EAAE,CAACa,WAAW,CAAC,CAAC;IACxD,OAAO,MAAM;MACX,IAAAM,gBAAU,EAACF,QAAQ,CAAC;IACtB,CAAC;EACH,CAAC,EAAEpB,YAAY,CAAC;EAEhB,IAAAiB,gBAAS,EAAC,MAAM;IACd,OAAO,MAAM;MACXhB,OAAO,CAACY,OAAO,GAAG,IAAI;IACxB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOG,WAAW;AACpB"}