react-native-reanimated 3.0.0-rc.9 → 3.0.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 (329) hide show
  1. package/Common/cpp/AnimatedSensor/AnimatedSensorModule.cpp +30 -12
  2. package/Common/cpp/AnimatedSensor/AnimatedSensorModule.h +2 -0
  3. package/Common/cpp/Fabric/FabricUtils.cpp +3 -107
  4. package/Common/cpp/Fabric/FabricUtils.h +3 -24
  5. package/Common/cpp/Fabric/ReanimatedUIManagerBinding.cpp +54 -37
  6. package/Common/cpp/LayoutAnimations/LayoutAnimationType.h +8 -0
  7. package/Common/cpp/LayoutAnimations/LayoutAnimationsManager.cpp +81 -26
  8. package/Common/cpp/LayoutAnimations/LayoutAnimationsManager.h +20 -3
  9. package/Common/cpp/NativeModules/NativeReanimatedModule.cpp +105 -109
  10. package/Common/cpp/NativeModules/NativeReanimatedModule.h +19 -12
  11. package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.cpp +15 -7
  12. package/Common/cpp/NativeModules/NativeReanimatedModuleSpec.h +6 -2
  13. package/Common/cpp/ReanimatedRuntime/ReanimatedHermesRuntime.cpp +20 -1
  14. package/Common/cpp/ReanimatedRuntime/ReanimatedHermesRuntime.h +9 -0
  15. package/Common/cpp/ReanimatedRuntime/ReanimatedRuntime.cpp +5 -1
  16. package/Common/cpp/Registries/EventHandlerRegistry.cpp +8 -34
  17. package/Common/cpp/Registries/EventHandlerRegistry.h +7 -13
  18. package/Common/cpp/SharedItems/Shareables.cpp +9 -63
  19. package/Common/cpp/SharedItems/Shareables.h +77 -72
  20. package/Common/cpp/Tools/CollectionUtils.h +14 -0
  21. package/Common/cpp/Tools/JsiUtils.cpp +26 -0
  22. package/Common/cpp/Tools/JsiUtils.h +176 -0
  23. package/Common/cpp/Tools/PlatformDepMethodsHolder.h +5 -5
  24. package/Common/cpp/Tools/ReanimatedVersion.cpp +17 -0
  25. package/Common/cpp/Tools/ReanimatedVersion.h +11 -0
  26. package/Common/cpp/Tools/RuntimeDecorator.cpp +49 -230
  27. package/Common/cpp/Tools/RuntimeDecorator.h +0 -2
  28. package/Common/cpp/Tools/WorkletEventHandler.cpp +3 -2
  29. package/Common/cpp/Tools/WorkletEventHandler.h +14 -6
  30. package/RNReanimated.podspec +2 -1
  31. package/android/CMakeLists.txt +188 -181
  32. package/android/build.gradle +362 -311
  33. package/android/proguard-rules.pro +2 -0
  34. package/android/src/fabric/java/com/swmansion/reanimated/NativeProxy.java +63 -295
  35. package/android/src/main/cpp/LayoutAnimations.cpp +35 -5
  36. package/android/src/main/cpp/LayoutAnimations.h +23 -6
  37. package/android/src/main/cpp/NativeProxy.cpp +143 -98
  38. package/android/src/main/cpp/NativeProxy.h +22 -28
  39. package/android/src/main/java/com/swmansion/reanimated/ReanimatedPackage.java +5 -4
  40. package/android/src/main/java/com/swmansion/reanimated/Utils.java +7 -1
  41. package/android/src/main/java/com/swmansion/reanimated/keyboardObserver/ReanimatedKeyboardEventListener.java +10 -3
  42. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/AnimationsManager.java +218 -35
  43. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/LayoutAnimations.java +43 -17
  44. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/NativeMethodsHolder.java +6 -2
  45. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/SharedElement.java +19 -0
  46. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/SharedTransitionManager.java +610 -0
  47. package/android/src/main/java/com/swmansion/reanimated/layoutReanimation/Snapshot.java +93 -23
  48. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/AnimationFrameCallback.java +19 -0
  49. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/EventHandler.java +35 -0
  50. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/KeyboardEventDataUpdater.java +16 -0
  51. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/NativeProxyCommon.java +206 -0
  52. package/android/src/main/java/com/swmansion/reanimated/nativeProxy/SensorSetter.java +17 -0
  53. package/android/src/main/java/com/swmansion/reanimated/sensor/ReanimatedSensor.java +9 -3
  54. package/android/src/main/java/com/swmansion/reanimated/sensor/ReanimatedSensorContainer.java +3 -4
  55. package/android/src/main/java/com/swmansion/reanimated/sensor/ReanimatedSensorListener.java +31 -7
  56. package/android/src/paper/java/com/swmansion/reanimated/NativeProxy.java +90 -307
  57. package/android/src/reactNativeVersionPatch/ReanimatedUIManager/70/com/swmansion/reanimated/ReanimatedUIManagerFactory.java +16 -0
  58. package/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/ReanimatedUIManagerFactory.java +63 -0
  59. package/android/src/reactNativeVersionPatch/ReanimatedUIManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java +271 -0
  60. package/android/src/reactNativeVersionPatch/nativeHierarchyManager/latest/com/swmansion/reanimated/layoutReanimation/ReanimatedNativeHierarchyManager.java +76 -20
  61. package/ios/LayoutReanimation/REAAnimationsManager.h +28 -4
  62. package/ios/LayoutReanimation/REAAnimationsManager.m +216 -61
  63. package/ios/LayoutReanimation/REAFrame.h +10 -0
  64. package/ios/LayoutReanimation/REAFrame.m +15 -0
  65. package/ios/LayoutReanimation/REAScreensHelper.h +19 -0
  66. package/ios/LayoutReanimation/REAScreensHelper.m +106 -0
  67. package/ios/LayoutReanimation/REASharedElement.h +15 -0
  68. package/ios/LayoutReanimation/REASharedElement.m +16 -0
  69. package/ios/LayoutReanimation/REASharedTransitionManager.h +17 -0
  70. package/ios/LayoutReanimation/REASharedTransitionManager.m +632 -0
  71. package/ios/LayoutReanimation/REASnapshot.h +1 -0
  72. package/ios/LayoutReanimation/REASnapshot.m +96 -11
  73. package/ios/LayoutReanimation/REAUIManager.mm +64 -17
  74. package/ios/REAModule.mm +2 -7
  75. package/ios/REANodesManager.mm +1 -21
  76. package/ios/keyboardObserver/REAKeyboardEventObserver.m +72 -36
  77. package/ios/native/NativeProxy.mm +75 -114
  78. package/ios/native/REAInitializer.mm +2 -7
  79. package/ios/native/REAJSIUtils.h +60 -2
  80. package/ios/sensor/ReanimatedSensor.h +6 -2
  81. package/ios/sensor/ReanimatedSensor.m +43 -7
  82. package/ios/sensor/ReanimatedSensorContainer.h +4 -1
  83. package/ios/sensor/ReanimatedSensorContainer.m +8 -2
  84. package/lib/commonjs/createAnimatedComponent.js +232 -28
  85. package/lib/commonjs/createAnimatedComponent.js.map +1 -1
  86. package/lib/commonjs/reanimated2/Colors.js +43 -22
  87. package/lib/commonjs/reanimated2/Colors.js.map +1 -1
  88. package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js +16 -33
  89. package/lib/commonjs/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
  90. package/lib/commonjs/reanimated2/animation/styleAnimation.js +5 -1
  91. package/lib/commonjs/reanimated2/animation/styleAnimation.js.map +1 -1
  92. package/lib/commonjs/reanimated2/animation/util.js +17 -15
  93. package/lib/commonjs/reanimated2/animation/util.js.map +1 -1
  94. package/lib/commonjs/reanimated2/commonTypes.js +33 -1
  95. package/lib/commonjs/reanimated2/commonTypes.js.map +1 -1
  96. package/lib/commonjs/reanimated2/core.js +33 -14
  97. package/lib/commonjs/reanimated2/core.js.map +1 -1
  98. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js +2 -2
  99. package/lib/commonjs/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  100. package/lib/commonjs/reanimated2/globals.d.js.map +1 -1
  101. package/lib/commonjs/reanimated2/hook/index.js +0 -6
  102. package/lib/commonjs/reanimated2/hook/index.js.map +1 -1
  103. package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js +5 -2
  104. package/lib/commonjs/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
  105. package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js +13 -1
  106. package/lib/commonjs/reanimated2/hook/useAnimatedReaction.js.map +1 -1
  107. package/lib/commonjs/reanimated2/hook/useAnimatedRef.js +1 -1
  108. package/lib/commonjs/reanimated2/hook/useAnimatedRef.js.map +1 -1
  109. package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js +89 -16
  110. package/lib/commonjs/reanimated2/hook/useAnimatedSensor.js.map +1 -1
  111. package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js +43 -40
  112. package/lib/commonjs/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  113. package/lib/commonjs/reanimated2/hook/useDerivedValue.js +13 -1
  114. package/lib/commonjs/reanimated2/hook/useDerivedValue.js.map +1 -1
  115. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js +2 -2
  116. package/lib/commonjs/reanimated2/hook/useScrollViewOffset.js.map +1 -1
  117. package/lib/commonjs/reanimated2/hook/utils.js +18 -65
  118. package/lib/commonjs/reanimated2/hook/utils.js.map +1 -1
  119. package/lib/commonjs/reanimated2/index.js +13 -0
  120. package/lib/commonjs/reanimated2/index.js.map +1 -1
  121. package/lib/commonjs/reanimated2/initializers.js +71 -32
  122. package/lib/commonjs/reanimated2/initializers.js.map +1 -1
  123. package/lib/commonjs/reanimated2/interpolateColor.js +96 -19
  124. package/lib/commonjs/reanimated2/interpolateColor.js.map +1 -1
  125. package/lib/commonjs/reanimated2/jestUtils.js +1 -1
  126. package/lib/commonjs/reanimated2/jestUtils.js.map +1 -1
  127. package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js +103 -13
  128. package/lib/commonjs/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
  129. package/lib/commonjs/reanimated2/js-reanimated/Mapper.js +22 -0
  130. package/lib/commonjs/reanimated2/js-reanimated/Mapper.js.map +1 -1
  131. package/lib/commonjs/reanimated2/js-reanimated/WebSensor.js +2 -0
  132. package/lib/commonjs/reanimated2/js-reanimated/WebSensor.js.map +1 -0
  133. package/lib/commonjs/reanimated2/js-reanimated/commonTypes.js.map +1 -1
  134. package/lib/commonjs/reanimated2/js-reanimated/global.js +0 -2
  135. package/lib/commonjs/reanimated2/js-reanimated/global.js.map +1 -1
  136. package/lib/commonjs/reanimated2/js-reanimated/index.js +0 -1
  137. package/lib/commonjs/reanimated2/js-reanimated/index.js.map +1 -1
  138. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +11 -0
  139. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  140. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js +8 -0
  141. package/lib/commonjs/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
  142. package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js +17 -9
  143. package/lib/commonjs/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
  144. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +16 -23
  145. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
  146. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +8 -14
  147. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
  148. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js +8 -14
  149. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
  150. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js +8 -15
  151. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
  152. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +16 -23
  153. package/lib/commonjs/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  154. package/lib/commonjs/reanimated2/layoutReanimation/index.js +13 -0
  155. package/lib/commonjs/reanimated2/layoutReanimation/index.js.map +1 -1
  156. package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js +94 -0
  157. package/lib/commonjs/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -0
  158. package/lib/commonjs/reanimated2/mappers.js +18 -6
  159. package/lib/commonjs/reanimated2/mappers.js.map +1 -1
  160. package/lib/commonjs/reanimated2/mock.js +20 -1
  161. package/lib/commonjs/reanimated2/mock.js.map +1 -1
  162. package/lib/commonjs/reanimated2/mutables.js +4 -2
  163. package/lib/commonjs/reanimated2/mutables.js.map +1 -1
  164. package/lib/commonjs/reanimated2/platform-specific/checkVersion.js +42 -0
  165. package/lib/commonjs/reanimated2/platform-specific/checkVersion.js.map +1 -0
  166. package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js +15 -0
  167. package/lib/commonjs/reanimated2/platform-specific/checkVersion.web.js.map +1 -0
  168. package/lib/commonjs/reanimated2/pluginUtils.js +11 -0
  169. package/lib/commonjs/reanimated2/pluginUtils.js.map +1 -0
  170. package/lib/commonjs/reanimated2/shareables.js +36 -15
  171. package/lib/commonjs/reanimated2/shareables.js.map +1 -1
  172. package/lib/commonjs/reanimated2/threads.js +114 -4
  173. package/lib/commonjs/reanimated2/threads.js.map +1 -1
  174. package/lib/commonjs/reanimated2/utils.js +7 -0
  175. package/lib/commonjs/reanimated2/utils.js.map +1 -1
  176. package/lib/commonjs/reanimated2/valueSetter.js +1 -3
  177. package/lib/commonjs/reanimated2/valueSetter.js.map +1 -1
  178. package/lib/module/createAnimatedComponent.js +229 -29
  179. package/lib/module/createAnimatedComponent.js.map +1 -1
  180. package/lib/module/reanimated2/Colors.js +35 -19
  181. package/lib/module/reanimated2/Colors.js.map +1 -1
  182. package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js +16 -32
  183. package/lib/module/reanimated2/NativeReanimated/NativeReanimated.js.map +1 -1
  184. package/lib/module/reanimated2/animation/styleAnimation.js +5 -1
  185. package/lib/module/reanimated2/animation/styleAnimation.js.map +1 -1
  186. package/lib/module/reanimated2/animation/util.js +17 -16
  187. package/lib/module/reanimated2/animation/util.js.map +1 -1
  188. package/lib/module/reanimated2/commonTypes.js +29 -0
  189. package/lib/module/reanimated2/commonTypes.js.map +1 -1
  190. package/lib/module/reanimated2/core.js +32 -7
  191. package/lib/module/reanimated2/core.js.map +1 -1
  192. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js +2 -2
  193. package/lib/module/reanimated2/frameCallback/FrameCallbackRegistryUI.js.map +1 -1
  194. package/lib/module/reanimated2/globals.d.js.map +1 -1
  195. package/lib/module/reanimated2/hook/index.js +1 -1
  196. package/lib/module/reanimated2/hook/index.js.map +1 -1
  197. package/lib/module/reanimated2/hook/useAnimatedKeyboard.js +5 -2
  198. package/lib/module/reanimated2/hook/useAnimatedKeyboard.js.map +1 -1
  199. package/lib/module/reanimated2/hook/useAnimatedReaction.js +12 -1
  200. package/lib/module/reanimated2/hook/useAnimatedReaction.js.map +1 -1
  201. package/lib/module/reanimated2/hook/useAnimatedRef.js +2 -2
  202. package/lib/module/reanimated2/hook/useAnimatedRef.js.map +1 -1
  203. package/lib/module/reanimated2/hook/useAnimatedSensor.js +88 -13
  204. package/lib/module/reanimated2/hook/useAnimatedSensor.js.map +1 -1
  205. package/lib/module/reanimated2/hook/useAnimatedStyle.js +46 -43
  206. package/lib/module/reanimated2/hook/useAnimatedStyle.js.map +1 -1
  207. package/lib/module/reanimated2/hook/useDerivedValue.js +12 -1
  208. package/lib/module/reanimated2/hook/useDerivedValue.js.map +1 -1
  209. package/lib/module/reanimated2/hook/useScrollViewOffset.js +2 -2
  210. package/lib/module/reanimated2/hook/useScrollViewOffset.js.map +1 -1
  211. package/lib/module/reanimated2/hook/utils.js +17 -60
  212. package/lib/module/reanimated2/hook/utils.js.map +1 -1
  213. package/lib/module/reanimated2/index.js +1 -0
  214. package/lib/module/reanimated2/index.js.map +1 -1
  215. package/lib/module/reanimated2/initializers.js +72 -33
  216. package/lib/module/reanimated2/initializers.js.map +1 -1
  217. package/lib/module/reanimated2/interpolateColor.js +96 -19
  218. package/lib/module/reanimated2/interpolateColor.js.map +1 -1
  219. package/lib/module/reanimated2/jestUtils.js +1 -1
  220. package/lib/module/reanimated2/jestUtils.js.map +1 -1
  221. package/lib/module/reanimated2/js-reanimated/JSReanimated.js +103 -13
  222. package/lib/module/reanimated2/js-reanimated/JSReanimated.js.map +1 -1
  223. package/lib/module/reanimated2/js-reanimated/Mapper.js +21 -0
  224. package/lib/module/reanimated2/js-reanimated/Mapper.js.map +1 -1
  225. package/lib/module/reanimated2/js-reanimated/WebSensor.js +2 -0
  226. package/lib/module/reanimated2/js-reanimated/WebSensor.js.map +1 -0
  227. package/lib/module/reanimated2/js-reanimated/commonTypes.js.map +1 -1
  228. package/lib/module/reanimated2/js-reanimated/global.js +0 -2
  229. package/lib/module/reanimated2/js-reanimated/global.js.map +1 -1
  230. package/lib/module/reanimated2/js-reanimated/index.js +0 -1
  231. package/lib/module/reanimated2/js-reanimated/index.js.map +1 -1
  232. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js +9 -1
  233. package/lib/module/reanimated2/layoutReanimation/animationBuilder/commonTypes.js.map +1 -1
  234. package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js +1 -0
  235. package/lib/module/reanimated2/layoutReanimation/animationBuilder/index.js.map +1 -1
  236. package/lib/module/reanimated2/layoutReanimation/animationsManager.js +15 -8
  237. package/lib/module/reanimated2/layoutReanimation/animationsManager.js.map +1 -1
  238. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js +16 -21
  239. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Bounce.js.map +1 -1
  240. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js +8 -12
  241. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.js.map +1 -1
  242. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js +8 -12
  243. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Roll.js.map +1 -1
  244. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js +8 -13
  245. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Slide.js.map +1 -1
  246. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js +16 -21
  247. package/lib/module/reanimated2/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  248. package/lib/module/reanimated2/layoutReanimation/index.js +1 -0
  249. package/lib/module/reanimated2/layoutReanimation/index.js.map +1 -1
  250. package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js +82 -0
  251. package/lib/module/reanimated2/layoutReanimation/sharedTransitions/index.js.map +1 -0
  252. package/lib/module/reanimated2/mappers.js +16 -6
  253. package/lib/module/reanimated2/mappers.js.map +1 -1
  254. package/lib/module/reanimated2/mock.js +20 -1
  255. package/lib/module/reanimated2/mock.js.map +1 -1
  256. package/lib/module/reanimated2/mutables.js +4 -2
  257. package/lib/module/reanimated2/mutables.js.map +1 -1
  258. package/lib/module/reanimated2/platform-specific/checkVersion.js +35 -0
  259. package/lib/module/reanimated2/platform-specific/checkVersion.js.map +1 -0
  260. package/lib/module/reanimated2/platform-specific/checkVersion.web.js +8 -0
  261. package/lib/module/reanimated2/platform-specific/checkVersion.web.js.map +1 -0
  262. package/lib/module/reanimated2/pluginUtils.js +4 -0
  263. package/lib/module/reanimated2/pluginUtils.js.map +1 -0
  264. package/lib/module/reanimated2/shareables.js +36 -12
  265. package/lib/module/reanimated2/shareables.js.map +1 -1
  266. package/lib/module/reanimated2/threads.js +105 -4
  267. package/lib/module/reanimated2/threads.js.map +1 -1
  268. package/lib/module/reanimated2/utils.js +5 -0
  269. package/lib/module/reanimated2/utils.js.map +1 -1
  270. package/lib/module/reanimated2/valueSetter.js +1 -2
  271. package/lib/module/reanimated2/valueSetter.js.map +1 -1
  272. package/package.json +10 -10
  273. package/{plugin.js → plugin/index.js} +128 -249
  274. package/react-native-reanimated.d.ts +57 -10
  275. package/scripts/reanimated_utils.rb +15 -2
  276. package/src/createAnimatedComponent.tsx +238 -28
  277. package/src/reanimated2/Colors.ts +38 -11
  278. package/src/reanimated2/NativeReanimated/NativeReanimated.ts +52 -39
  279. package/src/reanimated2/animation/styleAnimation.ts +8 -1
  280. package/src/reanimated2/animation/util.ts +29 -16
  281. package/src/reanimated2/commonTypes.ts +28 -1
  282. package/src/reanimated2/core.ts +42 -9
  283. package/src/reanimated2/frameCallback/FrameCallbackRegistryUI.ts +2 -2
  284. package/src/reanimated2/globals.d.ts +12 -15
  285. package/src/reanimated2/hook/index.ts +1 -1
  286. package/src/reanimated2/hook/useAnimatedKeyboard.ts +10 -4
  287. package/src/reanimated2/hook/useAnimatedReaction.ts +12 -5
  288. package/src/reanimated2/hook/useAnimatedRef.ts +1 -4
  289. package/src/reanimated2/hook/useAnimatedSensor.ts +88 -11
  290. package/src/reanimated2/hook/useAnimatedStyle.ts +44 -36
  291. package/src/reanimated2/hook/useDerivedValue.ts +8 -1
  292. package/src/reanimated2/hook/useScrollViewOffset.ts +2 -2
  293. package/src/reanimated2/hook/utils.ts +15 -61
  294. package/src/reanimated2/index.ts +1 -0
  295. package/src/reanimated2/initializers.ts +76 -35
  296. package/src/reanimated2/interpolateColor.ts +104 -20
  297. package/src/reanimated2/jestUtils.ts +1 -1
  298. package/src/reanimated2/js-reanimated/JSReanimated.ts +98 -15
  299. package/src/reanimated2/js-reanimated/Mapper.ts +32 -0
  300. package/src/reanimated2/js-reanimated/WebSensor.ts +34 -0
  301. package/src/reanimated2/js-reanimated/commonTypes.ts +0 -1
  302. package/src/reanimated2/js-reanimated/global.ts +0 -1
  303. package/src/reanimated2/js-reanimated/index.ts +0 -1
  304. package/src/reanimated2/layoutReanimation/animationBuilder/commonTypes.ts +13 -1
  305. package/src/reanimated2/layoutReanimation/animationBuilder/index.ts +1 -0
  306. package/src/reanimated2/layoutReanimation/animationsManager.ts +17 -9
  307. package/src/reanimated2/layoutReanimation/defaultAnimations/Bounce.ts +16 -19
  308. package/src/reanimated2/layoutReanimation/defaultAnimations/Lightspeed.ts +14 -11
  309. package/src/reanimated2/layoutReanimation/defaultAnimations/Roll.ts +21 -11
  310. package/src/reanimated2/layoutReanimation/defaultAnimations/Slide.ts +32 -11
  311. package/src/reanimated2/layoutReanimation/defaultAnimations/Zoom.ts +36 -19
  312. package/src/reanimated2/layoutReanimation/index.ts +1 -0
  313. package/src/reanimated2/layoutReanimation/sharedTransitions/index.ts +87 -0
  314. package/src/reanimated2/mappers.ts +17 -6
  315. package/src/reanimated2/mock.ts +24 -1
  316. package/src/reanimated2/mutables.ts +2 -0
  317. package/src/reanimated2/platform-specific/checkVersion.ts +39 -0
  318. package/src/reanimated2/platform-specific/checkVersion.web.ts +6 -0
  319. package/src/reanimated2/pluginUtils.ts +8 -0
  320. package/src/reanimated2/shareables.ts +45 -16
  321. package/src/reanimated2/threads.ts +103 -1
  322. package/src/reanimated2/utils.ts +6 -0
  323. package/src/reanimated2/valueSetter.ts +1 -2
  324. package/lib/commonjs/reanimated2/time.js +0 -55
  325. package/lib/commonjs/reanimated2/time.js.map +0 -1
  326. package/lib/module/reanimated2/time.js +0 -37
  327. package/lib/module/reanimated2/time.js.map +0 -1
  328. package/src/reanimated2/time.ts +0 -30
  329. /package/android/src/{main/java → reactNativeVersionPatch/ReanimatedUIManager/70}/com/swmansion/reanimated/layoutReanimation/ReanimatedUIManager.java +0 -0
@@ -5,14 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.RGBtoHSV = RGBtoHSV;
7
7
  exports.blue = void 0;
8
- exports.convertToHSVA = convertToHSVA;
8
+ exports.convertToRGBA = convertToRGBA;
9
9
  exports.hsvToColor = exports.green = void 0;
10
10
  exports.isColor = isColor;
11
11
  exports.opacity = void 0;
12
12
  exports.processColor = processColor;
13
13
  exports.processColorInitially = processColorInitially;
14
- exports.rgbaColor = exports.red = void 0;
15
- exports.toRGBA = toRGBA;
14
+ exports.red = void 0;
15
+ exports.rgbaArrayToRGBAColor = rgbaArrayToRGBAColor;
16
+ exports.rgbaColor = void 0;
17
+ exports.toGammaSpace = toGammaSpace;
18
+ exports.toLinearSpace = toLinearSpace;
16
19
 
17
20
  var _reactNative = require("react-native");
18
21
 
@@ -574,7 +577,7 @@ function HSVtoRGB(h, s, v) {
574
577
  /* eslint-enable */
575
578
  }
576
579
 
577
- const hsvToColor = (h, s, v) => {
580
+ const hsvToColor = (h, s, v, a) => {
578
581
  'worklet';
579
582
 
580
583
  const {
@@ -582,7 +585,7 @@ const hsvToColor = (h, s, v) => {
582
585
  g,
583
586
  b
584
587
  } = HSVtoRGB(h, s, v);
585
- return rgbaColor(r, g, b);
588
+ return rgbaColor(r, g, b, a);
586
589
  };
587
590
 
588
591
  exports.hsvToColor = hsvToColor;
@@ -643,31 +646,49 @@ function processColor(color) {
643
646
  return normalizedColor;
644
647
  }
645
648
 
646
- function convertToHSVA(color) {
649
+ function convertToRGBA(color) {
647
650
  'worklet';
648
651
 
649
652
  const processedColor = processColorInitially(color); // argb;
650
653
 
651
654
  const a = (processedColor >>> 24) / 255;
652
- const r = processedColor << 8 >>> 24;
653
- const g = processedColor << 16 >>> 24;
654
- const b = processedColor << 24 >>> 24;
655
- const {
656
- h,
657
- s,
658
- v
659
- } = RGBtoHSV(r, g, b);
660
- return [h, s, v, a];
655
+ const r = (processedColor << 8 >>> 24) / 255;
656
+ const g = (processedColor << 16 >>> 24) / 255;
657
+ const b = (processedColor << 24 >>> 24) / 255;
658
+ return [r, g, b, a];
661
659
  }
662
660
 
663
- function toRGBA(HSVA) {
661
+ function rgbaArrayToRGBAColor(RGBA) {
664
662
  'worklet';
665
663
 
666
- const {
667
- r,
668
- g,
669
- b
670
- } = HSVtoRGB(HSVA[0], HSVA[1], HSVA[2]);
671
- return `rgba(${r}, ${g}, ${b}, ${HSVA[3]})`;
664
+ return `rgba(${Math.round(RGBA[0] * 255)}, ${Math.round(RGBA[1] * 255)}, ${Math.round(RGBA[2] * 255)}, ${RGBA[3]})`;
665
+ }
666
+
667
+ function toLinearSpace(RGBA) {
668
+ 'worklet';
669
+
670
+ let gamma = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2.2;
671
+ const res = [];
672
+
673
+ for (let i = 0; i < 3; ++i) {
674
+ res.push(Math.pow(RGBA[i], gamma));
675
+ }
676
+
677
+ res.push(RGBA[3]);
678
+ return res;
679
+ }
680
+
681
+ function toGammaSpace(RGBA) {
682
+ 'worklet';
683
+
684
+ let gamma = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2.2;
685
+ const res = [];
686
+
687
+ for (let i = 0; i < 3; ++i) {
688
+ res.push(Math.pow(RGBA[i], 1 / gamma));
689
+ }
690
+
691
+ res.push(RGBA[3]);
692
+ return res;
672
693
  }
673
694
  //# sourceMappingURL=Colors.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NUMBER","PERCENTAGE","call","args","join","jsCachedMatchers","uiCachedMatchers","isConfigured","makeRemote","getMatchers","cachedMatchers","_WORKLET","rgb","undefined","RegExp","rgba","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","p","q","t","hslToRgb","h","s","l","r","g","b","Math","round","parse255","str","int","Number","parseInt","parse360","parseFloat","parse1","num","parsePercentage","names","makeShareable","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","normalizeColor","color","matchers","match","exec","opacity","c","rgbaColor","alpha","Platform","OS","RGBtoHSV","arguments","length","max","min","d","v","HSVtoRGB","i","f","floor","hsvToColor","processColorInitially","normalizedColor","isColor","value","processColor","convertToHSVA","processedColor","a","toRGBA","HSVA"],"sources":["Colors.ts"],"sourcesContent":["/* global _WORKLET */\n/**\n * Copied from:\n * react-native/Libraries/StyleSheet/normalizeColor.js\n * react-native/Libraries/StyleSheet/processColor.js\n * https://github.com/wcandillon/react-native-redash/blob/master/src/Colors.ts\n */\n\n/* eslint no-bitwise: 0 */\nimport { Platform } from 'react-native';\nimport { makeRemote, makeShareable, isConfigured } from './core';\n\ninterface RGB {\n r: number;\n g: number;\n b: number;\n}\n\ninterface HSV {\n h: number;\n s: number;\n v: number;\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nconst NUMBER = '[-+]?(?:\\\\d+(?:\\\\.\\\\d*)?|\\\\.\\\\d+)';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args: unknown[]): string {\n 'worklet';\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\n// matchers use RegExp objects which needs to be created separately on JS and on\n// the UI thread. We keep separate cache of Regexes for UI and JS using the below\n// objects, then pick the right cache in getMatchers() method.\nconst jsCachedMatchers: Matchers = {};\nconst uiCachedMatchers: Matchers = !isConfigured() ? {} : makeRemote({});\ntype Matchers = {\n rgb?: RegExp;\n rgba?: RegExp;\n hsl?: RegExp;\n hsla?: RegExp;\n hex3?: RegExp;\n hex4?: RegExp;\n hex5?: RegExp;\n hex6?: RegExp;\n hex8?: RegExp;\n};\nfunction getMatchers(): Matchers {\n 'worklet';\n const cachedMatchers: Matchers = _WORKLET\n ? uiCachedMatchers\n : jsCachedMatchers;\n if (cachedMatchers.rgb === undefined) {\n cachedMatchers.rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\n cachedMatchers.rgba = new RegExp(\n 'rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)\n );\n cachedMatchers.hsl = new RegExp(\n 'hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)\n );\n cachedMatchers.hsla = new RegExp(\n 'hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)\n );\n cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex4 =\n /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;\n cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;\n }\n return cachedMatchers;\n}\n// cachedMatchers is lazy loaded and it is frozen when worklet is being created,\n// it is possible to call getMatchers() when the object is frozen, then cachedMatchers\n// has no assigned regexes\ngetMatchers();\n\nfunction hue2rgb(p: number, q: number, t: number): number {\n 'worklet';\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h: number, s: number, l: number): number {\n 'worklet';\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction parse255(str: string): number {\n 'worklet';\n const int = Number.parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str: string): number {\n 'worklet';\n const int = Number.parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str: string): number {\n 'worklet';\n const num = Number.parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str: string): number {\n 'worklet';\n // parseFloat conveniently ignores the final %\n const int = Number.parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nconst names: any = !isConfigured()\n ? null\n : makeShareable({\n transparent: 0x00000000,\n\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff,\n });\n\nfunction normalizeColor(color: unknown): number | null {\n 'worklet';\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n\n let match: RegExpExecArray | null | undefined;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers?.hex6?.exec(color))) {\n return Number.parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names[color] !== undefined) {\n return names[color];\n }\n\n if ((match = matchers?.rgb?.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.rgba?.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n parse1(match[4])) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.hex3?.exec(color))) {\n return (\n Number.parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers?.hex8?.exec(color))) {\n return Number.parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers?.hex4?.exec(color))) {\n return (\n Number.parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16\n ) >>> 0\n );\n }\n\n if ((match = matchers?.hsl?.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.hsla?.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nexport const opacity = (c: number): number => {\n 'worklet';\n return ((c >> 24) & 255) / 255;\n};\n\nexport const red = (c: number): number => {\n 'worklet';\n return (c >> 16) & 255;\n};\n\nexport const green = (c: number): number => {\n 'worklet';\n return (c >> 8) & 255;\n};\n\nexport const blue = (c: number): number => {\n 'worklet';\n return c & 255;\n};\n\nexport const rgbaColor = (\n r: number,\n g: number,\n b: number,\n alpha = 1\n): number | string => {\n 'worklet';\n if (Platform.OS === 'web' || !_WORKLET) {\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n }\n\n const c =\n Math.round(alpha * 255) * (1 << 24) +\n Math.round(r) * (1 << 16) +\n Math.round(g) * (1 << 8) +\n Math.round(b);\n if (Platform.OS === 'android') {\n // on Android color is represented as signed 32 bit int\n return c < (1 << 31) >>> 0 ? c : c - 4294967296; // 4294967296 == Math.pow(2, 32);\n }\n return c;\n};\n\n/* accepts parameters\n * r Object = {r:x, g:y, b:z}\n * OR\n * r, g, b\n * 0 <= r, g, b <= 255\n * returns 0 <= h, s, v <= 1\n */\nexport function RGBtoHSV(rgb: RGB): HSV;\nexport function RGBtoHSV(r: number, g: number, b: number): HSV;\nexport function RGBtoHSV(r: any, g?: any, b?: any): HSV {\n 'worklet';\n /* eslint-disable */\n if (arguments.length === 1) {\n g = r.g;\n b = r.b;\n r = r.r;\n }\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max / 255;\n\n let h;\n\n switch (max) {\n default:\n /* fallthrough */\n case min:\n h = 0;\n break;\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n }\n\n return {\n h: h,\n s: s,\n v: v,\n };\n /* eslint-enable */\n}\n\n/* accepts parameters\n * h Object = {h:x, s:y, v:z}\n * OR\n * h, s, v\n * 0 <= h, s, v <= 1\n * returns 0 <= r, g, b <= 255\n */\nfunction HSVtoRGB(hsv: HSV): RGB;\nfunction HSVtoRGB(h: number, s: number, v: number): RGB;\nfunction HSVtoRGB(h: any, s?: any, v?: any) {\n 'worklet';\n /* eslint-disable */\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1) {\n s = h.s;\n v = h.v;\n h = h.h;\n }\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n (r = v), (g = t), (b = p);\n break;\n case 1:\n (r = q), (g = v), (b = p);\n break;\n case 2:\n (r = p), (g = v), (b = t);\n break;\n case 3:\n (r = p), (g = q), (b = v);\n break;\n case 4:\n (r = t), (g = p), (b = v);\n break;\n case 5:\n (r = v), (g = p), (b = q);\n break;\n }\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n };\n /* eslint-enable */\n}\n\nexport const hsvToColor = (\n h: number,\n s: number,\n v: number\n): number | string => {\n 'worklet';\n const { r, g, b } = HSVtoRGB(h, s, v);\n return rgbaColor(r, g, b);\n};\n\nexport function processColorInitially(\n color: unknown\n): number | null | undefined {\n 'worklet';\n if (color === null || color === undefined || typeof color === 'number') {\n return color;\n }\n\n let normalizedColor = normalizeColor(color);\n\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0; // argb\n return normalizedColor;\n}\n\nexport function isColor(value: unknown): boolean {\n 'worklet';\n if (typeof value !== 'string') {\n return false;\n }\n return processColorInitially(value) != null;\n}\n\nexport function processColor(color: unknown): number | null | undefined {\n 'worklet';\n let normalizedColor = processColorInitially(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n\n return normalizedColor;\n}\n\nexport type ParsedColorArray = [number, number, number, number];\n\nexport function convertToHSVA(color: unknown): ParsedColorArray {\n 'worklet';\n const processedColor = processColorInitially(color)!; // argb;\n const a = (processedColor >>> 24) / 255;\n const r = (processedColor << 8) >>> 24;\n const g = (processedColor << 16) >>> 24;\n const b = (processedColor << 24) >>> 24;\n const { h, s, v } = RGBtoHSV(r, g, b);\n return [h, s, v, a];\n}\n\nexport function toRGBA(HSVA: ParsedColorArray): string {\n 'worklet';\n const { r, g, b } = HSVtoRGB(HSVA[0], HSVA[1], HSVA[2]);\n return `rgba(${r}, ${g}, ${b}, ${HSVA[3]})`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["NUMBER","PERCENTAGE","call","args","join","jsCachedMatchers","uiCachedMatchers","isConfigured","makeRemote","getMatchers","cachedMatchers","_WORKLET","rgb","undefined","RegExp","rgba","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","p","q","t","hslToRgb","h","s","l","r","g","b","Math","round","parse255","str","int","Number","parseInt","parse360","parseFloat","parse1","num","parsePercentage","names","makeShareable","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","normalizeColor","color","matchers","match","exec","opacity","c","rgbaColor","alpha","Platform","OS","RGBtoHSV","arguments","length","max","min","d","v","HSVtoRGB","i","f","floor","hsvToColor","a","processColorInitially","normalizedColor","isColor","value","processColor","convertToRGBA","processedColor","rgbaArrayToRGBAColor","RGBA","toLinearSpace","gamma","res","push","pow","toGammaSpace"],"sources":["Colors.ts"],"sourcesContent":["/* global _WORKLET */\n/**\n * Copied from:\n * react-native/Libraries/StyleSheet/normalizeColor.js\n * react-native/Libraries/StyleSheet/processColor.js\n * https://github.com/wcandillon/react-native-redash/blob/master/src/Colors.ts\n */\n\n/* eslint no-bitwise: 0 */\nimport { Platform } from 'react-native';\nimport { makeRemote, makeShareable, isConfigured } from './core';\n\ninterface RGB {\n r: number;\n g: number;\n b: number;\n}\n\ninterface HSV {\n h: number;\n s: number;\n v: number;\n}\n\n// var INTEGER = '[-+]?\\\\d+';\nconst NUMBER = '[-+]?(?:\\\\d+(?:\\\\.\\\\d*)?|\\\\.\\\\d+)';\nconst PERCENTAGE = NUMBER + '%';\n\nfunction call(...args: unknown[]): string {\n 'worklet';\n return '\\\\(\\\\s*(' + args.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\n// matchers use RegExp objects which needs to be created separately on JS and on\n// the UI thread. We keep separate cache of Regexes for UI and JS using the below\n// objects, then pick the right cache in getMatchers() method.\nconst jsCachedMatchers: Matchers = {};\nconst uiCachedMatchers: Matchers = !isConfigured() ? {} : makeRemote({});\ntype Matchers = {\n rgb?: RegExp;\n rgba?: RegExp;\n hsl?: RegExp;\n hsla?: RegExp;\n hex3?: RegExp;\n hex4?: RegExp;\n hex5?: RegExp;\n hex6?: RegExp;\n hex8?: RegExp;\n};\nfunction getMatchers(): Matchers {\n 'worklet';\n const cachedMatchers: Matchers = _WORKLET\n ? uiCachedMatchers\n : jsCachedMatchers;\n if (cachedMatchers.rgb === undefined) {\n cachedMatchers.rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\n cachedMatchers.rgba = new RegExp(\n 'rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)\n );\n cachedMatchers.hsl = new RegExp(\n 'hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)\n );\n cachedMatchers.hsla = new RegExp(\n 'hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)\n );\n cachedMatchers.hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex4 =\n /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\n cachedMatchers.hex6 = /^#([0-9a-fA-F]{6})$/;\n cachedMatchers.hex8 = /^#([0-9a-fA-F]{8})$/;\n }\n return cachedMatchers;\n}\n// cachedMatchers is lazy loaded and it is frozen when worklet is being created,\n// it is possible to call getMatchers() when the object is frozen, then cachedMatchers\n// has no assigned regexes\ngetMatchers();\n\nfunction hue2rgb(p: number, q: number, t: number): number {\n 'worklet';\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n\nfunction hslToRgb(h: number, s: number, l: number): number {\n 'worklet';\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n const r = hue2rgb(p, q, h + 1 / 3);\n const g = hue2rgb(p, q, h);\n const b = hue2rgb(p, q, h - 1 / 3);\n\n return (\n (Math.round(r * 255) << 24) |\n (Math.round(g * 255) << 16) |\n (Math.round(b * 255) << 8)\n );\n}\n\nfunction parse255(str: string): number {\n 'worklet';\n const int = Number.parseInt(str, 10);\n if (int < 0) {\n return 0;\n }\n if (int > 255) {\n return 255;\n }\n return int;\n}\n\nfunction parse360(str: string): number {\n 'worklet';\n const int = Number.parseFloat(str);\n return (((int % 360) + 360) % 360) / 360;\n}\n\nfunction parse1(str: string): number {\n 'worklet';\n const num = Number.parseFloat(str);\n if (num < 0) {\n return 0;\n }\n if (num > 1) {\n return 255;\n }\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str: string): number {\n 'worklet';\n // parseFloat conveniently ignores the final %\n const int = Number.parseFloat(str);\n if (int < 0) {\n return 0;\n }\n if (int > 100) {\n return 1;\n }\n return int / 100;\n}\n\nconst names: any = !isConfigured()\n ? null\n : makeShareable({\n transparent: 0x00000000,\n\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff,\n });\n\nfunction normalizeColor(color: unknown): number | null {\n 'worklet';\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n return null;\n }\n\n if (typeof color !== 'string') {\n return null;\n }\n\n const matchers = getMatchers();\n\n let match: RegExpExecArray | null | undefined;\n\n // Ordered based on occurrences on Facebook codebase\n if ((match = matchers?.hex6?.exec(color))) {\n return Number.parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names[color] !== undefined) {\n return names[color];\n }\n\n if ((match = matchers?.rgb?.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.rgba?.exec(color))) {\n return (\n // b\n ((parse255(match[1]) << 24) | // r\n (parse255(match[2]) << 16) | // g\n (parse255(match[3]) << 8) |\n parse1(match[4])) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.hex3?.exec(color))) {\n return (\n Number.parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n 'ff', // a\n 16\n ) >>> 0\n );\n }\n\n // https://drafts.csswg.org/css-color-4/#hex-notation\n if ((match = matchers?.hex8?.exec(color))) {\n return Number.parseInt(match[1], 16) >>> 0;\n }\n\n if ((match = matchers?.hex4?.exec(color))) {\n return (\n Number.parseInt(\n match[1] +\n match[1] + // r\n match[2] +\n match[2] + // g\n match[3] +\n match[3] + // b\n match[4] +\n match[4], // a\n 16\n ) >>> 0\n );\n }\n\n if ((match = matchers?.hsl?.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n 0x000000ff) >>> // a\n 0\n );\n }\n\n if ((match = matchers?.hsla?.exec(color))) {\n return (\n (hslToRgb(\n parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) |\n parse1(match[4])) >>> // a\n 0\n );\n }\n\n return null;\n}\n\nexport const opacity = (c: number): number => {\n 'worklet';\n return ((c >> 24) & 255) / 255;\n};\n\nexport const red = (c: number): number => {\n 'worklet';\n return (c >> 16) & 255;\n};\n\nexport const green = (c: number): number => {\n 'worklet';\n return (c >> 8) & 255;\n};\n\nexport const blue = (c: number): number => {\n 'worklet';\n return c & 255;\n};\n\nexport const rgbaColor = (\n r: number,\n g: number,\n b: number,\n alpha = 1\n): number | string => {\n 'worklet';\n if (Platform.OS === 'web' || !_WORKLET) {\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n }\n\n const c =\n Math.round(alpha * 255) * (1 << 24) +\n Math.round(r) * (1 << 16) +\n Math.round(g) * (1 << 8) +\n Math.round(b);\n if (Platform.OS === 'android') {\n // on Android color is represented as signed 32 bit int\n return c < (1 << 31) >>> 0 ? c : c - 4294967296; // 4294967296 == Math.pow(2, 32);\n }\n return c;\n};\n\n/* accepts parameters\n * r Object = {r:x, g:y, b:z}\n * OR\n * r, g, b\n * 0 <= r, g, b <= 255\n * returns 0 <= h, s, v <= 1\n */\nexport function RGBtoHSV(rgb: RGB): HSV;\nexport function RGBtoHSV(r: number, g: number, b: number): HSV;\nexport function RGBtoHSV(r: any, g?: any, b?: any): HSV {\n 'worklet';\n /* eslint-disable */\n if (arguments.length === 1) {\n g = r.g;\n b = r.b;\n r = r.r;\n }\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const d = max - min;\n const s = max === 0 ? 0 : d / max;\n const v = max / 255;\n\n let h;\n\n switch (max) {\n default:\n /* fallthrough */\n case min:\n h = 0;\n break;\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n }\n\n return {\n h: h,\n s: s,\n v: v,\n };\n /* eslint-enable */\n}\n\n/* accepts parameters\n * h Object = {h:x, s:y, v:z}\n * OR\n * h, s, v\n * 0 <= h, s, v <= 1\n * returns 0 <= r, g, b <= 255\n */\nfunction HSVtoRGB(hsv: HSV): RGB;\nfunction HSVtoRGB(h: number, s: number, v: number): RGB;\nfunction HSVtoRGB(h: any, s?: any, v?: any) {\n 'worklet';\n /* eslint-disable */\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1) {\n s = h.s;\n v = h.v;\n h = h.h;\n }\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n (r = v), (g = t), (b = p);\n break;\n case 1:\n (r = q), (g = v), (b = p);\n break;\n case 2:\n (r = p), (g = v), (b = t);\n break;\n case 3:\n (r = p), (g = q), (b = v);\n break;\n case 4:\n (r = t), (g = p), (b = v);\n break;\n case 5:\n (r = v), (g = p), (b = q);\n break;\n }\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n };\n /* eslint-enable */\n}\n\nexport const hsvToColor = (\n h: number,\n s: number,\n v: number,\n a: number\n): number | string => {\n 'worklet';\n const { r, g, b } = HSVtoRGB(h, s, v);\n return rgbaColor(r, g, b, a);\n};\n\nexport function processColorInitially(\n color: unknown\n): number | null | undefined {\n 'worklet';\n if (color === null || color === undefined || typeof color === 'number') {\n return color;\n }\n\n let normalizedColor = normalizeColor(color);\n\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0; // argb\n return normalizedColor;\n}\n\nexport function isColor(value: unknown): boolean {\n 'worklet';\n if (typeof value !== 'string') {\n return false;\n }\n return processColorInitially(value) != null;\n}\n\nexport function processColor(color: unknown): number | null | undefined {\n 'worklet';\n let normalizedColor = processColorInitially(color);\n if (normalizedColor === null || normalizedColor === undefined) {\n return undefined;\n }\n\n if (typeof normalizedColor !== 'number') {\n return null;\n }\n\n if (Platform.OS === 'android') {\n // Android use 32 bit *signed* integer to represent the color\n // We utilize the fact that bitwise operations in JS also operates on\n // signed 32 bit integers, so that we can use those to convert from\n // *unsigned* to *signed* 32bit int that way.\n normalizedColor = normalizedColor | 0x0;\n }\n\n return normalizedColor;\n}\n\nexport type ParsedColorArray = [number, number, number, number];\n\nexport function convertToRGBA(color: unknown): ParsedColorArray {\n 'worklet';\n const processedColor = processColorInitially(color)!; // argb;\n const a = (processedColor >>> 24) / 255;\n const r = ((processedColor << 8) >>> 24) / 255;\n const g = ((processedColor << 16) >>> 24) / 255;\n const b = ((processedColor << 24) >>> 24) / 255;\n return [r, g, b, a];\n}\n\nexport function rgbaArrayToRGBAColor(RGBA: ParsedColorArray): string {\n 'worklet';\n return `rgba(${Math.round(RGBA[0] * 255)}, ${Math.round(\n RGBA[1] * 255\n )}, ${Math.round(RGBA[2] * 255)}, ${RGBA[3]})`;\n}\n\nexport function toLinearSpace(\n RGBA: ParsedColorArray,\n gamma = 2.2\n): ParsedColorArray {\n 'worklet';\n const res = [];\n for (let i = 0; i < 3; ++i) {\n res.push(Math.pow(RGBA[i], gamma));\n }\n res.push(RGBA[3]);\n return res as ParsedColorArray;\n}\n\nexport function toGammaSpace(\n RGBA: ParsedColorArray,\n gamma = 2.2\n): ParsedColorArray {\n 'worklet';\n const res = [];\n for (let i = 0; i < 3; ++i) {\n res.push(Math.pow(RGBA[i], 1 / gamma));\n }\n res.push(RGBA[3]);\n return res as ParsedColorArray;\n}\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ exports.NativeReanimated = void 0;
7
7
 
8
8
  var _reactNative = require("react-native");
9
9
 
10
- var _package = require("../../../package.json");
10
+ var _checkVersion = require("../platform-specific/checkVersion");
11
11
 
12
12
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
13
 
@@ -30,41 +30,24 @@ class NativeReanimated {
30
30
  this.native = native;
31
31
 
32
32
  if (native) {
33
- this.checkVersion();
34
- }
35
- }
36
-
37
- checkVersion() {
38
- const cppVersion = global._REANIMATED_VERSION_CPP;
39
-
40
- const ok = (() => {
41
- if (_package.version.match(/^\d+\.\d+\.\d+$/) && cppVersion.match(/^\d+\.\d+\.\d+$/)) {
42
- // x.y.z, compare only major and minor, skip patch
43
- const [jsMajor, jsMinor] = _package.version.split('.');
44
-
45
- const [cppMajor, cppMinor] = cppVersion.split('.');
46
- return jsMajor === cppMajor && jsMinor === cppMinor;
47
- } else {
48
- // alpha, beta or rc, compare everything
49
- return _package.version === cppVersion;
33
+ if (this.InnerNativeModule === undefined) {
34
+ console.error(`[Reanimated] The native part of Reanimated doesn't seem to be initialized. This could be caused by\n\
35
+ - not rebuilding the app after installing or upgrading Reanimated\n\
36
+ - trying to run Reanimated on an unsupported platform\n\
37
+ - running in a brownfield app without manually initializing the native library`);
38
+ return;
50
39
  }
51
- })();
52
40
 
53
- if (!ok) {
54
- console.error(`[Reanimated] Mismatch between JavaScript part and native part of Reanimated (${_package.version} vs. ${cppVersion}). Did you forget to re-build the app after upgrading react-native-reanimated? If you use Expo Go, you must downgrade to ${cppVersion} which is bundled into Expo SDK.`); // TODO: detect Expo managed workflow
41
+ (0, _checkVersion.checkVersion)();
55
42
  }
56
43
  }
57
44
 
58
- getTimestamp() {
59
- throw new Error('stub implementation, used on the web only');
60
- }
61
-
62
45
  installCoreFunctions(callGuard, valueUnpacker) {
63
46
  return this.InnerNativeModule.installCoreFunctions(callGuard, valueUnpacker);
64
47
  }
65
48
 
66
- makeShareableClone(value) {
67
- return this.InnerNativeModule.makeShareableClone(value);
49
+ makeShareableClone(value, shouldPersistRemote) {
50
+ return this.InnerNativeModule.makeShareableClone(value, shouldPersistRemote);
68
51
  }
69
52
 
70
53
  makeSynchronizedDataHolder(valueRef) {
@@ -83,8 +66,8 @@ class NativeReanimated {
83
66
  return this.InnerNativeModule.scheduleOnUI(shareable);
84
67
  }
85
68
 
86
- registerSensor(sensorType, interval, handler) {
87
- return this.InnerNativeModule.registerSensor(sensorType, interval, handler);
69
+ registerSensor(sensorType, interval, iosReferenceFrame, handler) {
70
+ return this.InnerNativeModule.registerSensor(sensorType, interval, iosReferenceFrame, handler);
88
71
  }
89
72
 
90
73
  unregisterSensor(sensorId) {
@@ -103,8 +86,8 @@ class NativeReanimated {
103
86
  return this.InnerNativeModule.getViewProp(viewTag, propName, callback);
104
87
  }
105
88
 
106
- configureLayoutAnimation(viewTag, type, config) {
107
- this.InnerNativeModule.configureLayoutAnimation(viewTag, type, config);
89
+ configureLayoutAnimation(viewTag, type, sharedTransitionTag, config) {
90
+ this.InnerNativeModule.configureLayoutAnimation(viewTag, type, sharedTransitionTag, config);
108
91
  }
109
92
 
110
93
  enableLayoutAnimations(flag) {
@@ -115,8 +98,8 @@ class NativeReanimated {
115
98
  this.InnerNativeModule.configureProps(uiProps, nativeProps);
116
99
  }
117
100
 
118
- subscribeForKeyboardEvents(handler) {
119
- return this.InnerNativeModule.subscribeForKeyboardEvents(handler);
101
+ subscribeForKeyboardEvents(handler, isStatusBarTranslucent) {
102
+ return this.InnerNativeModule.subscribeForKeyboardEvents(handler, isStatusBarTranslucent);
120
103
  }
121
104
 
122
105
  unsubscribeFromKeyboardEvents(listenerId) {
@@ -1 +1 @@
1
- {"version":3,"names":["NativeReanimated","constructor","native","global","__reanimatedModuleProxy","undefined","ReanimatedModule","NativeModules","installTurboModule","InnerNativeModule","checkVersion","cppVersion","_REANIMATED_VERSION_CPP","ok","jsVersion","match","jsMajor","jsMinor","split","cppMajor","cppMinor","console","error","getTimestamp","Error","installCoreFunctions","callGuard","valueUnpacker","makeShareableClone","value","makeSynchronizedDataHolder","valueRef","getDataSynchronously","ref","updateDataSynchronously","scheduleOnUI","shareable","registerSensor","sensorType","interval","handler","unregisterSensor","sensorId","registerEventHandler","eventHash","eventHandler","unregisterEventHandler","id","getViewProp","viewTag","propName","callback","configureLayoutAnimation","type","config","enableLayoutAnimations","flag","configureProps","uiProps","nativeProps","subscribeForKeyboardEvents","unsubscribeFromKeyboardEvents","listenerId"],"sources":["NativeReanimated.ts"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport { ShareableRef, ShareableSyncDataHolderRef } from '../commonTypes';\nimport { LayoutAnimationFunction } from '../layoutReanimation';\nimport { version as jsVersion } from '../../../package.json';\n\nexport class NativeReanimated {\n native: boolean;\n private InnerNativeModule: any;\n\n constructor(native = true) {\n if (global.__reanimatedModuleProxy === undefined && native) {\n const { ReanimatedModule } = NativeModules;\n ReanimatedModule?.installTurboModule();\n }\n this.InnerNativeModule = global.__reanimatedModuleProxy;\n this.native = native;\n if (native) {\n this.checkVersion();\n }\n }\n\n checkVersion(): void {\n const cppVersion = global._REANIMATED_VERSION_CPP;\n const ok = (() => {\n if (\n jsVersion.match(/^\\d+\\.\\d+\\.\\d+$/) &&\n cppVersion.match(/^\\d+\\.\\d+\\.\\d+$/)\n ) {\n // x.y.z, compare only major and minor, skip patch\n const [jsMajor, jsMinor] = jsVersion.split('.');\n const [cppMajor, cppMinor] = cppVersion.split('.');\n return jsMajor === cppMajor && jsMinor === cppMinor;\n } else {\n // alpha, beta or rc, compare everything\n return jsVersion === cppVersion;\n }\n })();\n if (!ok) {\n console.error(\n `[Reanimated] Mismatch between JavaScript part and native part of Reanimated (${jsVersion} vs. ${cppVersion}). Did you forget to re-build the app after upgrading react-native-reanimated? If you use Expo Go, you must downgrade to ${cppVersion} which is bundled into Expo SDK.`\n );\n // TODO: detect Expo managed workflow\n }\n }\n\n getTimestamp(): number {\n throw new Error('stub implementation, used on the web only');\n }\n\n installCoreFunctions(\n callGuard: <T extends Array<any>, U>(\n fn: (...args: T) => U,\n ...args: T\n ) => void,\n valueUnpacker: <T>(value: T) => T\n ): void {\n return this.InnerNativeModule.installCoreFunctions(\n callGuard,\n valueUnpacker\n );\n }\n\n makeShareableClone<T>(value: T): ShareableRef<T> {\n return this.InnerNativeModule.makeShareableClone(value);\n }\n\n makeSynchronizedDataHolder<T>(\n valueRef: ShareableRef<T>\n ): ShareableSyncDataHolderRef<T> {\n return this.InnerNativeModule.makeSynchronizedDataHolder(valueRef);\n }\n\n getDataSynchronously<T>(ref: ShareableSyncDataHolderRef<T>): T {\n return this.InnerNativeModule.getDataSynchronously(ref);\n }\n\n updateDataSynchronously<T>(\n ref: ShareableSyncDataHolderRef<T>,\n value: T\n ): void {\n this.InnerNativeModule.updateDataSynchronously(ref, value);\n }\n\n scheduleOnUI<T>(shareable: ShareableRef<T>) {\n return this.InnerNativeModule.scheduleOnUI(shareable);\n }\n\n registerSensor<T>(\n sensorType: number,\n interval: number,\n handler: ShareableRef<T>\n ) {\n return this.InnerNativeModule.registerSensor(sensorType, interval, handler);\n }\n\n unregisterSensor(sensorId: number) {\n return this.InnerNativeModule.unregisterSensor(sensorId);\n }\n\n registerEventHandler<T>(\n eventHash: string,\n eventHandler: ShareableRef<T>\n ): string {\n return this.InnerNativeModule.registerEventHandler(eventHash, eventHandler);\n }\n\n unregisterEventHandler(id: string): void {\n return this.InnerNativeModule.unregisterEventHandler(id);\n }\n\n getViewProp<T>(\n viewTag: string,\n propName: string,\n callback?: (result: T) => void\n ): Promise<T> {\n return this.InnerNativeModule.getViewProp(viewTag, propName, callback);\n }\n\n configureLayoutAnimation(\n viewTag: number,\n type: string,\n config: ShareableRef<Keyframe | LayoutAnimationFunction>\n ) {\n this.InnerNativeModule.configureLayoutAnimation(viewTag, type, config);\n }\n\n enableLayoutAnimations(flag: boolean): void {\n this.InnerNativeModule.enableLayoutAnimations(flag);\n }\n\n configureProps(uiProps: string[], nativeProps: string[]): void {\n this.InnerNativeModule.configureProps(uiProps, nativeProps);\n }\n\n subscribeForKeyboardEvents(handler: ShareableRef<number>): number {\n return this.InnerNativeModule.subscribeForKeyboardEvents(handler);\n }\n\n unsubscribeFromKeyboardEvents(listenerId: number): void {\n this.InnerNativeModule.unsubscribeFromKeyboardEvents(listenerId);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["NativeReanimated","constructor","native","global","__reanimatedModuleProxy","undefined","ReanimatedModule","NativeModules","installTurboModule","InnerNativeModule","console","error","checkVersion","installCoreFunctions","callGuard","valueUnpacker","makeShareableClone","value","shouldPersistRemote","makeSynchronizedDataHolder","valueRef","getDataSynchronously","ref","updateDataSynchronously","scheduleOnUI","shareable","registerSensor","sensorType","interval","iosReferenceFrame","handler","unregisterSensor","sensorId","registerEventHandler","eventHash","eventHandler","unregisterEventHandler","id","getViewProp","viewTag","propName","callback","configureLayoutAnimation","type","sharedTransitionTag","config","enableLayoutAnimations","flag","configureProps","uiProps","nativeProps","subscribeForKeyboardEvents","isStatusBarTranslucent","unsubscribeFromKeyboardEvents","listenerId"],"sources":["NativeReanimated.ts"],"sourcesContent":["import { NativeModules } from 'react-native';\nimport {\n ShareableRef,\n ShareableSyncDataHolderRef,\n Value3D,\n ValueRotation,\n} from '../commonTypes';\nimport {\n LayoutAnimationFunction,\n LayoutAnimationType,\n} from '../layoutReanimation';\nimport { checkVersion } from '../platform-specific/checkVersion';\n\nexport class NativeReanimated {\n native: boolean;\n private InnerNativeModule: any;\n\n constructor(native = true) {\n if (global.__reanimatedModuleProxy === undefined && native) {\n const { ReanimatedModule } = NativeModules;\n ReanimatedModule?.installTurboModule();\n }\n this.InnerNativeModule = global.__reanimatedModuleProxy;\n this.native = native;\n if (native) {\n if (this.InnerNativeModule === undefined) {\n console.error(\n `[Reanimated] The native part of Reanimated doesn't seem to be initialized. This could be caused by\\n\\\n - not rebuilding the app after installing or upgrading Reanimated\\n\\\n - trying to run Reanimated on an unsupported platform\\n\\\n - running in a brownfield app without manually initializing the native library`\n );\n return;\n }\n checkVersion();\n }\n }\n\n installCoreFunctions(\n callGuard: <T extends Array<any>, U>(\n fn: (...args: T) => U,\n ...args: T\n ) => void,\n valueUnpacker: <T>(value: T) => T\n ): void {\n return this.InnerNativeModule.installCoreFunctions(\n callGuard,\n valueUnpacker\n );\n }\n\n makeShareableClone<T>(\n value: T,\n shouldPersistRemote: boolean\n ): ShareableRef<T> {\n return this.InnerNativeModule.makeShareableClone(\n value,\n shouldPersistRemote\n );\n }\n\n makeSynchronizedDataHolder<T>(\n valueRef: ShareableRef<T>\n ): ShareableSyncDataHolderRef<T> {\n return this.InnerNativeModule.makeSynchronizedDataHolder(valueRef);\n }\n\n getDataSynchronously<T>(ref: ShareableSyncDataHolderRef<T>): T {\n return this.InnerNativeModule.getDataSynchronously(ref);\n }\n\n updateDataSynchronously<T>(\n ref: ShareableSyncDataHolderRef<T>,\n value: T\n ): void {\n this.InnerNativeModule.updateDataSynchronously(ref, value);\n }\n\n scheduleOnUI<T>(shareable: ShareableRef<T>) {\n return this.InnerNativeModule.scheduleOnUI(shareable);\n }\n\n registerSensor<T>(\n sensorType: number,\n interval: number,\n iosReferenceFrame: number,\n handler: ShareableRef<T> | ((data: Value3D | ValueRotation) => void)\n ) {\n return this.InnerNativeModule.registerSensor(\n sensorType,\n interval,\n iosReferenceFrame,\n handler\n );\n }\n\n unregisterSensor(sensorId: number) {\n return this.InnerNativeModule.unregisterSensor(sensorId);\n }\n\n registerEventHandler<T>(\n eventHash: string,\n eventHandler: ShareableRef<T>\n ): string {\n return this.InnerNativeModule.registerEventHandler(eventHash, eventHandler);\n }\n\n unregisterEventHandler(id: string): void {\n return this.InnerNativeModule.unregisterEventHandler(id);\n }\n\n getViewProp<T>(\n viewTag: string,\n propName: string,\n callback?: (result: T) => void\n ): Promise<T> {\n return this.InnerNativeModule.getViewProp(viewTag, propName, callback);\n }\n\n configureLayoutAnimation(\n viewTag: number,\n type: LayoutAnimationType,\n sharedTransitionTag: string,\n config: ShareableRef<Keyframe | LayoutAnimationFunction>\n ) {\n this.InnerNativeModule.configureLayoutAnimation(\n viewTag,\n type,\n sharedTransitionTag,\n config\n );\n }\n\n enableLayoutAnimations(flag: boolean): void {\n this.InnerNativeModule.enableLayoutAnimations(flag);\n }\n\n configureProps(uiProps: string[], nativeProps: string[]): void {\n this.InnerNativeModule.configureProps(uiProps, nativeProps);\n }\n\n subscribeForKeyboardEvents(\n handler: ShareableRef<number>,\n isStatusBarTranslucent: boolean\n ): number {\n return this.InnerNativeModule.subscribeForKeyboardEvents(\n handler,\n isStatusBarTranslucent\n );\n }\n\n unsubscribeFromKeyboardEvents(listenerId: number): void {\n this.InnerNativeModule.unsubscribeFromKeyboardEvents(listenerId);\n }\n}\n"],"mappings":"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"}
@@ -43,7 +43,7 @@ function setPath(obj, path, value) {
43
43
  // creates entry if there isn't one
44
44
  currObj = currObj;
45
45
 
46
- if (!currObj[keys[i]]) {
46
+ if (!(keys[i] in currObj)) {
47
47
  // if next key is a number create an array
48
48
  if (typeof keys[i + 1] === 'number') {
49
49
  currObj[keys[i]] = [];
@@ -150,6 +150,10 @@ function withStyleAnimation(styleAnimations) {
150
150
  prevVal = prevAnimation.current;
151
151
  }
152
152
 
153
+ if (prevVal === undefined) {
154
+ console.warn(`Initial values for animation are missing for property ${currentEntry.path.join('.')}`);
155
+ }
156
+
153
157
  setPath(animation.current, currentEntry.path, prevVal);
154
158
  let currentAnimation;
155
159
 
@@ -1 +1 @@
1
- {"version":3,"names":["resolvePath","obj","path","keys","Array","isArray","reduce","acc","current","undefined","setPath","value","currObj","i","length","withStyleAnimation","styleAnimations","defineAnimation","onFrame","animation","now","stillGoing","entriesToCheck","currentEntry","pop","index","push","concat","key","Object","currentStyleAnimation","finished","callback","ColorProperties","includes","processColor","onStart","previousAnimation","prevAnimation","prevVal","currentAnimation","withTiming","duration","animationsToCheck","element","values","isHigherOrder"],"sources":["styleAnimation.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport {\n Timestamp,\n AnimatableValue,\n AnimationObject,\n Animation,\n AnimatedStyle,\n NestedObject,\n NestedObjectValues,\n} from '../commonTypes';\nimport { StyleLayoutAnimation } from './commonTypes';\nimport { withTiming } from './timing';\nimport { ColorProperties } from '../UpdateProps';\nimport { processColor } from '../Colors';\n\n// resolves path to value for nested objects\n// if path cannot be resolved returns undefined\nexport function resolvePath<T>(\n obj: NestedObject<T>,\n path: AnimatableValue[] | AnimatableValue\n): NestedObjectValues<T> | undefined {\n 'worklet';\n const keys: AnimatableValue[] = Array.isArray(path) ? path : [path];\n return keys.reduce<NestedObjectValues<T> | undefined>((acc, current) => {\n if (Array.isArray(acc) && typeof current === 'number') {\n return acc[current];\n } else if (typeof acc === 'object' && (current as number | string) in acc) {\n return (acc as { [key: string]: NestedObjectValues<T> })[\n current as number | string\n ];\n }\n return undefined;\n }, obj);\n}\n\n// set value at given path\ntype Path = Array<string | number> | string | number;\nexport function setPath<T>(\n obj: NestedObject<T>,\n path: Path,\n value: NestedObjectValues<T>\n): void {\n 'worklet';\n const keys: Path = Array.isArray(path) ? path : [path];\n let currObj: NestedObjectValues<T> = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n // creates entry if there isn't one\n currObj = currObj as { [key: string]: NestedObjectValues<T> };\n if (!currObj[keys[i]]) {\n // if next key is a number create an array\n if (typeof keys[i + 1] === 'number') {\n currObj[keys[i]] = [];\n } else {\n currObj[keys[i]] = {};\n }\n }\n currObj = currObj[keys[i]];\n }\n\n (currObj as { [key: string]: NestedObjectValues<T> })[keys[keys.length - 1]] =\n value;\n}\n\ninterface NestedObjectEntry<T> {\n value: NestedObjectValues<T>;\n path: (string | number)[];\n}\n\nexport function withStyleAnimation(\n styleAnimations: AnimatedStyle\n): StyleLayoutAnimation {\n 'worklet';\n return defineAnimation<StyleLayoutAnimation>({}, () => {\n 'worklet';\n\n const onFrame = (\n animation: StyleLayoutAnimation,\n now: Timestamp\n ): boolean => {\n let stillGoing = false;\n const entriesToCheck: NestedObjectEntry<AnimationObject>[] = [\n { value: animation.styleAnimations, path: [] },\n ];\n while (entriesToCheck.length > 0) {\n const currentEntry: NestedObjectEntry<AnimationObject> =\n entriesToCheck.pop() as NestedObjectEntry<AnimationObject>;\n if (Array.isArray(currentEntry.value)) {\n for (let index = 0; index < currentEntry.value.length; index++) {\n entriesToCheck.push({\n value: currentEntry.value[index],\n path: currentEntry.path.concat(index),\n });\n }\n } else if (\n typeof currentEntry.value === 'object' &&\n currentEntry.value.onFrame === undefined\n ) {\n // nested object\n for (const key of Object.keys(currentEntry.value)) {\n entriesToCheck.push({\n value: currentEntry.value[key],\n path: currentEntry.path.concat(key),\n });\n }\n } else {\n const currentStyleAnimation: AnimationObject =\n currentEntry.value as AnimationObject;\n if (currentStyleAnimation.finished) {\n continue;\n }\n const finished = currentStyleAnimation.onFrame(\n currentStyleAnimation,\n now\n );\n if (finished) {\n currentStyleAnimation.finished = true;\n if (currentStyleAnimation.callback) {\n currentStyleAnimation.callback(true);\n }\n } else {\n stillGoing = true;\n }\n\n if (ColorProperties.includes(currentEntry.path[0] as string)) {\n currentStyleAnimation.current = processColor(\n currentStyleAnimation.current\n ) as number;\n }\n\n setPath(\n animation.current,\n currentEntry.path,\n currentStyleAnimation.current\n );\n }\n }\n return !stillGoing;\n };\n\n const onStart = (\n animation: StyleLayoutAnimation,\n value: AnimatedStyle,\n now: Timestamp,\n previousAnimation: StyleLayoutAnimation\n ): void => {\n const entriesToCheck: NestedObjectEntry<\n AnimationObject | AnimatableValue\n >[] = [{ value: styleAnimations, path: [] }];\n while (entriesToCheck.length > 0) {\n const currentEntry: NestedObjectEntry<\n AnimationObject | AnimatableValue\n > = entriesToCheck.pop() as NestedObjectEntry<\n AnimationObject | AnimatableValue\n >;\n if (Array.isArray(currentEntry.value)) {\n for (let index = 0; index < currentEntry.value.length; index++) {\n entriesToCheck.push({\n value: currentEntry.value[index],\n path: currentEntry.path.concat(index),\n });\n }\n } else if (\n typeof currentEntry.value === 'object' &&\n currentEntry.value.onStart === undefined\n ) {\n for (const key of Object.keys(currentEntry.value)) {\n entriesToCheck.push({\n value: currentEntry.value[key],\n path: currentEntry.path.concat(key),\n });\n }\n } else {\n const prevAnimation = resolvePath(\n previousAnimation?.styleAnimations,\n currentEntry.path\n );\n let prevVal = resolvePath(value, currentEntry.path);\n if (prevAnimation && !prevVal) {\n prevVal = prevAnimation.current;\n }\n setPath(animation.current, currentEntry.path, prevVal);\n let currentAnimation: AnimationObject;\n if (\n typeof currentEntry.value !== 'object' ||\n !currentEntry.value.onStart\n ) {\n currentAnimation = withTiming(\n currentEntry.value as AnimatableValue,\n { duration: 0 }\n );\n setPath(\n animation.styleAnimations,\n currentEntry.path,\n currentAnimation\n );\n } else {\n currentAnimation = currentEntry.value as Animation<AnimationObject>;\n }\n currentAnimation.onStart(\n currentAnimation,\n prevVal,\n now,\n prevAnimation\n );\n }\n }\n };\n\n const callback = (finished: boolean): void => {\n if (!finished) {\n const animationsToCheck: NestedObjectValues<AnimationObject>[] = [\n styleAnimations,\n ];\n while (animationsToCheck.length > 0) {\n const currentAnimation: NestedObjectValues<AnimationObject> =\n animationsToCheck.pop() as NestedObjectValues<AnimationObject>;\n if (Array.isArray(currentAnimation)) {\n for (const element of currentAnimation) {\n animationsToCheck.push(element);\n }\n } else if (\n typeof currentAnimation === 'object' &&\n currentAnimation.onStart === undefined\n ) {\n for (const value of Object.values(currentAnimation)) {\n animationsToCheck.push(value);\n }\n } else {\n const currentStyleAnimation: AnimationObject =\n currentAnimation as AnimationObject;\n if (\n !currentStyleAnimation.finished &&\n currentStyleAnimation.callback\n ) {\n currentStyleAnimation.callback(false);\n }\n }\n }\n }\n };\n\n return {\n isHigherOrder: true,\n onFrame,\n onStart,\n current: {},\n styleAnimations,\n callback,\n } as StyleLayoutAnimation;\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["resolvePath","obj","path","keys","Array","isArray","reduce","acc","current","undefined","setPath","value","currObj","i","length","withStyleAnimation","styleAnimations","defineAnimation","onFrame","animation","now","stillGoing","entriesToCheck","currentEntry","pop","index","push","concat","key","Object","currentStyleAnimation","finished","callback","ColorProperties","includes","processColor","onStart","previousAnimation","prevAnimation","prevVal","console","warn","join","currentAnimation","withTiming","duration","animationsToCheck","element","values","isHigherOrder"],"sources":["styleAnimation.ts"],"sourcesContent":["import { defineAnimation } from './util';\nimport {\n Timestamp,\n AnimatableValue,\n AnimationObject,\n Animation,\n AnimatedStyle,\n NestedObject,\n NestedObjectValues,\n} from '../commonTypes';\nimport { StyleLayoutAnimation } from './commonTypes';\nimport { withTiming } from './timing';\nimport { ColorProperties } from '../UpdateProps';\nimport { processColor } from '../Colors';\n\n// resolves path to value for nested objects\n// if path cannot be resolved returns undefined\nexport function resolvePath<T>(\n obj: NestedObject<T>,\n path: AnimatableValue[] | AnimatableValue\n): NestedObjectValues<T> | undefined {\n 'worklet';\n const keys: AnimatableValue[] = Array.isArray(path) ? path : [path];\n return keys.reduce<NestedObjectValues<T> | undefined>((acc, current) => {\n if (Array.isArray(acc) && typeof current === 'number') {\n return acc[current];\n } else if (typeof acc === 'object' && (current as number | string) in acc) {\n return (acc as { [key: string]: NestedObjectValues<T> })[\n current as number | string\n ];\n }\n return undefined;\n }, obj);\n}\n\n// set value at given path\ntype Path = Array<string | number> | string | number;\nexport function setPath<T>(\n obj: NestedObject<T>,\n path: Path,\n value: NestedObjectValues<T>\n): void {\n 'worklet';\n const keys: Path = Array.isArray(path) ? path : [path];\n let currObj: NestedObjectValues<T> = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n // creates entry if there isn't one\n currObj = currObj as { [key: string]: NestedObjectValues<T> };\n if (!(keys[i] in currObj)) {\n // if next key is a number create an array\n if (typeof keys[i + 1] === 'number') {\n currObj[keys[i]] = [];\n } else {\n currObj[keys[i]] = {};\n }\n }\n currObj = currObj[keys[i]];\n }\n\n (currObj as { [key: string]: NestedObjectValues<T> })[keys[keys.length - 1]] =\n value;\n}\n\ninterface NestedObjectEntry<T> {\n value: NestedObjectValues<T>;\n path: (string | number)[];\n}\n\nexport function withStyleAnimation(\n styleAnimations: AnimatedStyle\n): StyleLayoutAnimation {\n 'worklet';\n return defineAnimation<StyleLayoutAnimation>({}, () => {\n 'worklet';\n\n const onFrame = (\n animation: StyleLayoutAnimation,\n now: Timestamp\n ): boolean => {\n let stillGoing = false;\n const entriesToCheck: NestedObjectEntry<AnimationObject>[] = [\n { value: animation.styleAnimations, path: [] },\n ];\n while (entriesToCheck.length > 0) {\n const currentEntry: NestedObjectEntry<AnimationObject> =\n entriesToCheck.pop() as NestedObjectEntry<AnimationObject>;\n if (Array.isArray(currentEntry.value)) {\n for (let index = 0; index < currentEntry.value.length; index++) {\n entriesToCheck.push({\n value: currentEntry.value[index],\n path: currentEntry.path.concat(index),\n });\n }\n } else if (\n typeof currentEntry.value === 'object' &&\n currentEntry.value.onFrame === undefined\n ) {\n // nested object\n for (const key of Object.keys(currentEntry.value)) {\n entriesToCheck.push({\n value: currentEntry.value[key],\n path: currentEntry.path.concat(key),\n });\n }\n } else {\n const currentStyleAnimation: AnimationObject =\n currentEntry.value as AnimationObject;\n if (currentStyleAnimation.finished) {\n continue;\n }\n const finished = currentStyleAnimation.onFrame(\n currentStyleAnimation,\n now\n );\n if (finished) {\n currentStyleAnimation.finished = true;\n if (currentStyleAnimation.callback) {\n currentStyleAnimation.callback(true);\n }\n } else {\n stillGoing = true;\n }\n\n if (ColorProperties.includes(currentEntry.path[0] as string)) {\n currentStyleAnimation.current = processColor(\n currentStyleAnimation.current\n ) as number;\n }\n\n setPath(\n animation.current,\n currentEntry.path,\n currentStyleAnimation.current\n );\n }\n }\n return !stillGoing;\n };\n\n const onStart = (\n animation: StyleLayoutAnimation,\n value: AnimatedStyle,\n now: Timestamp,\n previousAnimation: StyleLayoutAnimation\n ): void => {\n const entriesToCheck: NestedObjectEntry<\n AnimationObject | AnimatableValue\n >[] = [{ value: styleAnimations, path: [] }];\n while (entriesToCheck.length > 0) {\n const currentEntry: NestedObjectEntry<\n AnimationObject | AnimatableValue\n > = entriesToCheck.pop() as NestedObjectEntry<\n AnimationObject | AnimatableValue\n >;\n if (Array.isArray(currentEntry.value)) {\n for (let index = 0; index < currentEntry.value.length; index++) {\n entriesToCheck.push({\n value: currentEntry.value[index],\n path: currentEntry.path.concat(index),\n });\n }\n } else if (\n typeof currentEntry.value === 'object' &&\n currentEntry.value.onStart === undefined\n ) {\n for (const key of Object.keys(currentEntry.value)) {\n entriesToCheck.push({\n value: currentEntry.value[key],\n path: currentEntry.path.concat(key),\n });\n }\n } else {\n const prevAnimation = resolvePath(\n previousAnimation?.styleAnimations,\n currentEntry.path\n );\n let prevVal = resolvePath(value, currentEntry.path);\n if (prevAnimation && !prevVal) {\n prevVal = prevAnimation.current;\n }\n if (prevVal === undefined) {\n console.warn(\n `Initial values for animation are missing for property ${currentEntry.path.join(\n '.'\n )}`\n );\n }\n setPath(animation.current, currentEntry.path, prevVal);\n let currentAnimation: AnimationObject;\n if (\n typeof currentEntry.value !== 'object' ||\n !currentEntry.value.onStart\n ) {\n currentAnimation = withTiming(\n currentEntry.value as AnimatableValue,\n { duration: 0 }\n );\n setPath(\n animation.styleAnimations,\n currentEntry.path,\n currentAnimation\n );\n } else {\n currentAnimation = currentEntry.value as Animation<AnimationObject>;\n }\n currentAnimation.onStart(\n currentAnimation,\n prevVal,\n now,\n prevAnimation\n );\n }\n }\n };\n\n const callback = (finished: boolean): void => {\n if (!finished) {\n const animationsToCheck: NestedObjectValues<AnimationObject>[] = [\n styleAnimations,\n ];\n while (animationsToCheck.length > 0) {\n const currentAnimation: NestedObjectValues<AnimationObject> =\n animationsToCheck.pop() as NestedObjectValues<AnimationObject>;\n if (Array.isArray(currentAnimation)) {\n for (const element of currentAnimation) {\n animationsToCheck.push(element);\n }\n } else if (\n typeof currentAnimation === 'object' &&\n currentAnimation.onStart === undefined\n ) {\n for (const value of Object.values(currentAnimation)) {\n animationsToCheck.push(value);\n }\n } else {\n const currentStyleAnimation: AnimationObject =\n currentAnimation as AnimationObject;\n if (\n !currentStyleAnimation.finished &&\n currentStyleAnimation.callback\n ) {\n currentStyleAnimation.callback(false);\n }\n }\n }\n }\n };\n\n return {\n isHigherOrder: true,\n onFrame,\n onStart,\n current: {},\n styleAnimations,\n callback,\n } as StyleLayoutAnimation;\n });\n}\n"],"mappings":"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"}
@@ -106,44 +106,44 @@ function decorateAnimation(animation) {
106
106
  return res;
107
107
  };
108
108
 
109
- const tab = ['H', 'S', 'V', 'A'];
109
+ const tab = ['R', 'G', 'B', 'A'];
110
110
 
111
111
  const colorOnStart = (animation, value, timestamp, previousAnimation) => {
112
- let HSVAValue;
113
- let HSVACurrent;
114
- let HSVAToValue;
112
+ let RGBAValue;
113
+ let RGBACurrent;
114
+ let RGBAToValue;
115
115
  const res = [];
116
116
 
117
117
  if ((0, _Colors.isColor)(value)) {
118
- HSVACurrent = (0, _Colors.convertToHSVA)(animation.current);
119
- HSVAValue = (0, _Colors.convertToHSVA)(value);
118
+ RGBACurrent = (0, _Colors.toLinearSpace)((0, _Colors.convertToRGBA)(animation.current));
119
+ RGBAValue = (0, _Colors.toLinearSpace)((0, _Colors.convertToRGBA)(value));
120
120
 
121
121
  if (animation.toValue) {
122
- HSVAToValue = (0, _Colors.convertToHSVA)(animation.toValue);
122
+ RGBAToValue = (0, _Colors.toLinearSpace)((0, _Colors.convertToRGBA)(animation.toValue));
123
123
  }
124
124
  }
125
125
 
126
126
  tab.forEach((i, index) => {
127
127
  animation[i] = Object.assign({}, animationCopy);
128
- animation[i].current = HSVACurrent[index];
129
- animation[i].toValue = HSVAToValue ? HSVAToValue[index] : undefined;
130
- animation[i].onStart(animation[i], HSVAValue[index], timestamp, previousAnimation ? previousAnimation[i] : undefined);
128
+ animation[i].current = RGBACurrent[index];
129
+ animation[i].toValue = RGBAToValue ? RGBAToValue[index] : undefined;
130
+ animation[i].onStart(animation[i], RGBAValue[index], timestamp, previousAnimation ? previousAnimation[i] : undefined);
131
131
  res.push(animation[i].current);
132
132
  });
133
- animation.current = (0, _Colors.toRGBA)(res);
133
+ animation.current = (0, _Colors.rgbaArrayToRGBAColor)((0, _Colors.toGammaSpace)(res));
134
134
  };
135
135
 
136
136
  const colorOnFrame = (animation, timestamp) => {
137
- const HSVACurrent = (0, _Colors.convertToHSVA)(animation.current);
137
+ const RGBACurrent = (0, _Colors.toLinearSpace)((0, _Colors.convertToRGBA)(animation.current));
138
138
  const res = [];
139
139
  let finished = true;
140
140
  tab.forEach((i, index) => {
141
- animation[i].current = HSVACurrent[index]; // @ts-ignore: disable-next-line
141
+ animation[i].current = RGBACurrent[index]; // @ts-ignore: disable-next-line
142
142
 
143
143
  finished &= animation[i].onFrame(animation[i], timestamp);
144
144
  res.push(animation[i].current);
145
145
  });
146
- animation.current = (0, _Colors.toRGBA)(res);
146
+ animation.current = (0, _Colors.rgbaArrayToRGBAColor)((0, _Colors.toGammaSpace)(res));
147
147
  return finished;
148
148
  };
149
149
 
@@ -186,6 +186,8 @@ function decorateAnimation(animation) {
186
186
  };
187
187
  }
188
188
 
189
+ const IS_NATIVE = _NativeReanimated.default.native;
190
+
189
191
  function defineAnimation(starting, factory) {
190
192
  'worklet';
191
193
 
@@ -201,7 +203,7 @@ function defineAnimation(starting, factory) {
201
203
  return animation;
202
204
  };
203
205
 
204
- if (_WORKLET || !_NativeReanimated.default.native) {
206
+ if (_WORKLET || !IS_NATIVE) {
205
207
  return create();
206
208
  } // @ts-ignore: eslint-disable-line
207
209