@react-native-ohos/react-native-reanimated 3.18.2-rc.2 → 4.0.0-rc.1

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 (282) hide show
  1. package/compatibility.json +161 -0
  2. package/harmony/reanimated/BuildProfile.ets +16 -16
  3. package/harmony/reanimated/build-profile.json5 +18 -11
  4. package/harmony/reanimated/oh-package.json5 +12 -11
  5. package/harmony/reanimated/src/main/cpp/CMakeLists.txt +31 -40
  6. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -86
  7. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -47
  8. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -0
  9. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -0
  10. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -0
  11. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -0
  12. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -0
  13. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -0
  14. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -0
  15. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -0
  16. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -0
  17. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -0
  18. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -0
  19. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -0
  20. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -0
  21. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -0
  22. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -0
  23. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -0
  24. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -0
  25. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +93 -0
  26. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -0
  27. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -0
  28. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -0
  29. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -0
  30. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -0
  31. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -0
  32. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +44 -0
  33. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -0
  34. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -0
  35. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -0
  36. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -0
  37. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -0
  38. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -0
  39. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -0
  40. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -0
  41. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -0
  42. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -0
  43. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -0
  44. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -0
  45. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -0
  46. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -0
  47. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -0
  48. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -0
  49. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -0
  50. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -0
  51. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -0
  52. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -0
  53. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -0
  54. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -0
  55. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -0
  56. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -0
  57. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -0
  58. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -0
  59. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -0
  60. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -0
  61. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -0
  62. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -0
  63. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -0
  64. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -0
  65. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -0
  66. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -0
  67. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -0
  68. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -0
  69. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -0
  70. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -0
  71. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -0
  72. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -0
  73. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -0
  74. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -0
  75. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -0
  76. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -0
  77. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -0
  78. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -0
  79. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -0
  80. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -0
  81. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -0
  82. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -0
  83. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -0
  84. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -0
  85. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -0
  86. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -0
  87. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -0
  88. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -0
  89. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -0
  90. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -0
  91. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -0
  92. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -0
  93. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -0
  94. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -0
  95. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -0
  96. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -0
  97. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -0
  98. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -0
  99. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -0
  100. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -0
  101. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -0
  102. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -0
  103. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -0
  104. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -0
  105. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -0
  106. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -0
  107. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -0
  108. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -0
  109. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -0
  110. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -0
  111. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -0
  112. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -0
  113. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -0
  114. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -0
  115. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -0
  116. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -0
  117. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -0
  118. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -0
  119. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -0
  120. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -0
  121. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -0
  122. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -0
  123. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -0
  124. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -0
  125. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -0
  126. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -0
  127. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -0
  128. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -0
  129. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -0
  130. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -0
  131. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -0
  132. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -0
  133. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -0
  134. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -0
  135. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -0
  136. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -0
  137. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -0
  138. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -0
  139. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -0
  140. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -0
  141. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -0
  142. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -0
  143. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -0
  144. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -0
  145. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -0
  146. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -0
  147. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +110 -0
  148. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -0
  149. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -0
  150. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -0
  151. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -0
  152. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -0
  153. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -0
  154. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -0
  155. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -0
  156. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -0
  157. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -101
  158. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -51
  159. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -49
  160. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -96
  161. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -33
  162. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -95
  163. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -29
  164. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -0
  165. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -0
  166. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -0
  167. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -0
  168. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -0
  169. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -0
  170. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -9
  171. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -232
  172. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -90
  173. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -0
  174. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -0
  175. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -0
  176. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -0
  177. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/{LayoutAnimationsProxy.cpp → LayoutAnimationsProxy_Legacy.cpp} +897 -870
  178. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -0
  179. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -91
  180. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -176
  181. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -0
  182. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -0
  183. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -0
  184. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -0
  185. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -0
  186. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1376 -971
  187. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +228 -252
  188. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -231
  189. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -109
  190. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -56
  191. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -20
  192. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -70
  193. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -35
  194. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -0
  195. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -0
  196. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -98
  197. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -135
  198. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -0
  199. package/harmony/reanimated/src/main/cpp/Common/cpp/{worklets → reanimated}/Tools/ReanimatedVersion.h +18 -19
  200. package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +60 -85
  201. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +1 -0
  202. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +0 -3
  203. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +266 -0
  204. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -0
  205. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +36 -0
  206. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -0
  207. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +3 -3
  208. package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +5 -1
  209. package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +1 -4
  210. package/harmony/reanimated/src/main/module.json5 +12 -12
  211. package/harmony/reanimated/src/main/resources/base/element/color.json +7 -7
  212. package/harmony/reanimated/src/main/resources/base/element/string.json +15 -15
  213. package/harmony/reanimated/src/main/resources/base/profile/main_pages.json +5 -5
  214. package/harmony/reanimated/src/main/resources/en_US/element/string.json +15 -15
  215. package/harmony/reanimated/src/main/resources/zh_CN/element/string.json +15 -15
  216. package/harmony/reanimated/ts.ts +6 -6
  217. package/harmony/reanimated.har +0 -0
  218. package/package.json +68 -50
  219. package/scripts/deploy.js +191 -0
  220. package/scripts/set-reanimated-version.js +37 -0
  221. package/scripts/update-version.js +119 -0
  222. package/scripts/validate-react-native-version.js +46 -0
  223. package/scripts/validate-worklets-build.js +17 -0
  224. package/scripts/validate-worklets-version.js +79 -0
  225. package/scripts/worklets-version.json +4 -0
  226. package/LICENSE +0 -21
  227. package/README.OpenSource +0 -11
  228. package/README.md +0 -10
  229. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.cpp +0 -68
  230. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.h +0 -68
  231. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy.h +0 -147
  232. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/CollectionUtils.h +0 -14
  233. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.cpp +0 -5
  234. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.h +0 -19
  235. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +0 -47
  236. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +0 -59
  237. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +0 -27
  238. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +0 -25
  239. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +0 -94
  240. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.h +0 -49
  241. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +0 -8
  242. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +0 -39
  243. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.cpp +0 -326
  244. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.h +0 -345
  245. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.cpp +0 -52
  246. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.h +0 -35
  247. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/Defs.h +0 -10
  248. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.cpp +0 -342
  249. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.h +0 -47
  250. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.cpp +0 -16
  251. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.h +0 -20
  252. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.cpp +0 -20
  253. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.h +0 -29
  254. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/PlatformLogger.h +0 -16
  255. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.cpp +0 -26
  256. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.h +0 -199
  257. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedVersion.cpp +0 -95
  258. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/SingleInstanceChecker.h +0 -72
  259. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ThreadSafeQueue.h +0 -49
  260. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.cpp +0 -20
  261. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.h +0 -22
  262. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +0 -29
  263. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.h +0 -41
  264. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +0 -16
  265. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +0 -19
  266. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.cpp +0 -112
  267. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.h +0 -127
  268. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.cpp +0 -53
  269. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.h +0 -22
  270. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +0 -191
  271. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +0 -173
  272. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +0 -90
  273. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +0 -36
  274. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +0 -189
  275. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +0 -22
  276. package/harmony/reanimated/src/main/cpp/ReanimatedLogger.cpp +0 -33
  277. package/harmony/reanimated/src/main/cpp/WorkletsModule.cpp +0 -61
  278. package/harmony/reanimated/src/main/cpp/WorkletsModule.h +0 -22
  279. package/harmony/reanimated/src/main/cpp/patches/AnimatedSensor/AnimatedSensorModule.cpp +0 -89
  280. package/harmony/reanimated/src/main/cpp/patches/Fabric/ShadowTreeCloner.cpp +0 -95
  281. package/harmony/reanimated/src/main/cpp/patches/NativeModules/ReanimatedModuleProxy.cpp +0 -964
  282. package/harmony/reanimated/src/main/ets/WorkletsModule.ts +0 -15
@@ -0,0 +1,100 @@
1
+ #include <reanimated/CSS/common/values/CSSDiscreteArray.h>
2
+
3
+ #include <string>
4
+ #include <vector>
5
+
6
+ namespace reanimated::css {
7
+
8
+ template <typename TValue>
9
+ CSSDiscreteArray<TValue>::CSSDiscreteArray() : values() {}
10
+
11
+ template <typename TValue>
12
+ CSSDiscreteArray<TValue>::CSSDiscreteArray(const std::vector<TValue> &values) : values(values) {}
13
+
14
+ template <typename TValue>
15
+ CSSDiscreteArray<TValue>::CSSDiscreteArray(jsi::Runtime &rt, const jsi::Value &jsiValue) {
16
+ const auto &array = jsiValue.asObject(rt).asArray(rt);
17
+ values.reserve(array.size(rt));
18
+
19
+ for (size_t i = 0; i < array.size(rt); i++) {
20
+ values.emplace_back(rt, array.getValueAtIndex(rt, i));
21
+ }
22
+ }
23
+
24
+ template <typename TValue>
25
+ CSSDiscreteArray<TValue>::CSSDiscreteArray(const folly::dynamic &array) {
26
+ values.reserve(array.size());
27
+
28
+ for (size_t i = 0; i < array.size(); i++) {
29
+ values.emplace_back(array[i]);
30
+ }
31
+ }
32
+
33
+ template <typename TValue>
34
+ bool CSSDiscreteArray<TValue>::canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue) {
35
+ // TODO - maybe add better validation
36
+ return jsiValue.isObject() && jsiValue.asObject(rt).isArray(rt);
37
+ }
38
+
39
+ template <typename TValue>
40
+ bool CSSDiscreteArray<TValue>::canConstruct(const folly::dynamic &value) {
41
+ return value.isArray();
42
+ }
43
+
44
+ template <typename TValue>
45
+ folly::dynamic CSSDiscreteArray<TValue>::toDynamic() const {
46
+ folly::dynamic array = folly::dynamic::array;
47
+ for (const auto &value : values) {
48
+ array.push_back(value.toDynamic());
49
+ }
50
+ return array;
51
+ }
52
+
53
+ template <typename TValue>
54
+ std::string CSSDiscreteArray<TValue>::toString() const {
55
+ std::stringstream ss;
56
+
57
+ ss << "{";
58
+ for (size_t i = 0; i < values.size(); i++) {
59
+ ss << values[i].toString();
60
+ if (i < values.size() - 1) {
61
+ ss << ", ";
62
+ }
63
+ }
64
+ ss << "}";
65
+
66
+ return ss.str();
67
+ }
68
+
69
+ template <typename TValue>
70
+ CSSDiscreteArray<TValue> CSSDiscreteArray<TValue>::interpolate(double progress, const CSSDiscreteArray<TValue> &other)
71
+ const {
72
+ return CSSDiscreteArray<TValue>(progress < 0.5 ? values : other.values);
73
+ }
74
+
75
+ template <typename TValue>
76
+ bool CSSDiscreteArray<TValue>::operator==(const CSSDiscreteArray<TValue> &other) const {
77
+ if (values.size() != other.values.size()) {
78
+ return false;
79
+ }
80
+ for (size_t i = 0; i < values.size(); i++) {
81
+ if (values[i] != other.values[i]) {
82
+ return false;
83
+ }
84
+ }
85
+ return true;
86
+ }
87
+
88
+ #ifndef NDEBUG
89
+
90
+ template <typename TValue>
91
+ std::ostream &operator<<(std::ostream &os, const CSSDiscreteArray<TValue> &arrayValue) {
92
+ os << "CSSDiscreteArray(" << arrayValue.toString() << ")";
93
+ return os;
94
+ }
95
+
96
+ #endif // NDEBUG
97
+
98
+ template struct CSSDiscreteArray<CSSKeyword>;
99
+
100
+ } // namespace reanimated::css
@@ -0,0 +1,44 @@
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/common/values/CSSKeyword.h>
4
+
5
+ #include <string>
6
+ #include <vector>
7
+ #include <worklets/Tools/JSISerializer.h>
8
+ #include <type_traits>
9
+
10
+ namespace reanimated::css {
11
+ using namespace worklets;
12
+ /*
13
+ * CSSDiscreteArray is used for array interpolation when arrays need to be
14
+ * treated as discrete values. Instead of interpolating between corresponding
15
+ * elements of two arrays, this type interpolates between entire arrays
16
+ * treated as single discrete values.
17
+ */
18
+ template <typename TValue>
19
+ struct CSSDiscreteArray : public CSSSimpleValue<CSSDiscreteArray<TValue>> {
20
+ static_assert(CSSValueDerived<TValue>, "TValue must be derived from CSSValue");
21
+ static constexpr bool is_discrete_value = true;
22
+
23
+ std::vector<TValue> values;
24
+
25
+ CSSDiscreteArray();
26
+ explicit CSSDiscreteArray(const std::vector<TValue> &values);
27
+ explicit CSSDiscreteArray(jsi::Runtime &rt, const jsi::Value &jsiValue);
28
+ explicit CSSDiscreteArray(const folly::dynamic &value);
29
+
30
+ static bool canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue);
31
+ static bool canConstruct(const folly::dynamic &value);
32
+
33
+ folly::dynamic toDynamic() const override;
34
+ std::string toString() const override;
35
+ CSSDiscreteArray<TValue> interpolate(double progress, const CSSDiscreteArray<TValue> &other) const override;
36
+
37
+ bool operator==(const CSSDiscreteArray<TValue> &other) const;
38
+
39
+ #ifndef NDEBUG
40
+ friend std::ostream &operator<<(std::ostream &os, const CSSDiscreteArray<TValue> &arrayValue);
41
+ #endif // NDEBUG
42
+ };
43
+
44
+ } // namespace reanimated::css
@@ -0,0 +1,81 @@
1
+ #include <reanimated/CSS/common/values/CSSKeyword.h>
2
+
3
+ #include <string>
4
+
5
+ namespace reanimated::css {
6
+
7
+ template <typename TValue>
8
+ CSSKeywordBase<TValue>::CSSKeywordBase(const char *value) : value(value) {}
9
+
10
+ template <typename TValue>
11
+ CSSKeywordBase<TValue>::CSSKeywordBase(jsi::Runtime &rt, const jsi::Value &jsiValue) {
12
+ value = jsiValue.asString(rt).utf8(rt);
13
+ }
14
+
15
+ template <typename TValue>
16
+ CSSKeywordBase<TValue>::CSSKeywordBase(const folly::dynamic &value) {
17
+ this->value = value.asString();
18
+ }
19
+
20
+ template <typename TValue>
21
+ bool CSSKeywordBase<TValue>::canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue) {
22
+ return jsiValue.isString();
23
+ }
24
+
25
+ template <typename TValue>
26
+ bool CSSKeywordBase<TValue>::canConstruct(const folly::dynamic &value) {
27
+ return value.isString();
28
+ }
29
+
30
+ template <typename TValue>
31
+ folly::dynamic CSSKeywordBase<TValue>::toDynamic() const {
32
+ return value;
33
+ }
34
+
35
+ template <typename TValue>
36
+ std::string CSSKeywordBase<TValue>::toString() const {
37
+ return value;
38
+ }
39
+
40
+ template <typename TValue>
41
+ bool CSSKeywordBase<TValue>::operator==(const CSSKeywordBase<TValue> &other) const {
42
+ return value == other.value;
43
+ }
44
+
45
+ CSSKeyword CSSKeyword::interpolate(double progress, const CSSKeyword &to) const {
46
+ return CSSKeyword(progress < 0.5 ? value : to.value);
47
+ }
48
+
49
+ #ifndef NDEBUG
50
+
51
+ std::ostream &operator<<(std::ostream &os, const CSSKeyword &keywordValue) {
52
+ os << "CSSKeyword(" << keywordValue.toString() << ")";
53
+ return os;
54
+ }
55
+
56
+ #endif // NDEBUG
57
+
58
+ CSSDisplay CSSDisplay::interpolate(double progress, const CSSDisplay &to) const {
59
+ if (value == "none" && progress > 0) {
60
+ return CSSDisplay(to.value);
61
+ }
62
+ if (to.value == "none" && progress < 1) {
63
+ return CSSDisplay(value);
64
+ }
65
+ return CSSDisplay(progress < 0.5 ? value : to.value);
66
+ }
67
+
68
+ #ifndef NDEBUG
69
+
70
+ std::ostream &operator<<(std::ostream &os, const CSSDisplay &displayValue) {
71
+ os << "CSSDisplay(" << displayValue.toString() << ")";
72
+ return os;
73
+ }
74
+
75
+ #endif // NDEBUG
76
+
77
+ // Explicit template instantiations
78
+ template class CSSKeywordBase<CSSKeyword>;
79
+ template class CSSKeywordBase<CSSDisplay>;
80
+
81
+ } // namespace reanimated::css
@@ -0,0 +1,53 @@
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/common/values/CSSValue.h>
4
+
5
+ #include <string>
6
+
7
+ namespace reanimated::css {
8
+
9
+ template <typename TValue>
10
+ class CSSKeywordBase : public CSSSimpleValue<TValue> {
11
+ public:
12
+ static constexpr bool is_discrete_value = true;
13
+
14
+ CSSKeywordBase() = default;
15
+ explicit CSSKeywordBase(const char *value);
16
+ explicit CSSKeywordBase(jsi::Runtime &rt, const jsi::Value &jsiValue);
17
+ explicit CSSKeywordBase(const folly::dynamic &value);
18
+
19
+ static bool canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue);
20
+ static bool canConstruct(const folly::dynamic &value);
21
+
22
+ folly::dynamic toDynamic() const override;
23
+ std::string toString() const override;
24
+
25
+ bool operator==(const CSSKeywordBase &other) const;
26
+
27
+ protected:
28
+ std::string value;
29
+ };
30
+
31
+ struct CSSKeyword : public CSSKeywordBase<CSSKeyword> {
32
+ using CSSKeywordBase<CSSKeyword>::CSSKeywordBase;
33
+ using CSSKeywordBase<CSSKeyword>::canConstruct;
34
+
35
+ CSSKeyword interpolate(double progress, const CSSKeyword &to) const override;
36
+
37
+ #ifndef NDEBUG
38
+ friend std::ostream &operator<<(std::ostream &os, const CSSKeyword &keywordValue);
39
+ #endif // NDEBUG
40
+ };
41
+
42
+ struct CSSDisplay : public CSSKeywordBase<CSSDisplay> {
43
+ using CSSKeywordBase<CSSDisplay>::CSSKeywordBase;
44
+ using CSSKeywordBase<CSSDisplay>::canConstruct;
45
+
46
+ CSSDisplay interpolate(double progress, const CSSDisplay &to) const override;
47
+
48
+ #ifndef NDEBUG
49
+ friend std::ostream &operator<<(std::ostream &os, const CSSDisplay &displayValue);
50
+ #endif // NDEBUG
51
+ };
52
+
53
+ } // namespace reanimated::css
@@ -0,0 +1,122 @@
1
+ #include <reanimated/CSS/common/values/CSSLength.h>
2
+
3
+ #include <string>
4
+
5
+ namespace reanimated::css {
6
+
7
+ CSSLength::CSSLength() : value(0), isRelative(false) {}
8
+
9
+ CSSLength::CSSLength(const double value) : value(value), isRelative(false) {}
10
+
11
+ CSSLength::CSSLength(const double value, const bool isRelative) : value(value), isRelative(isRelative) {}
12
+
13
+ CSSLength::CSSLength(const char *value) {
14
+ if (!canConstruct(value)) {
15
+ throw std::invalid_argument("[Reanimated] CSSLength: Invalid value: " + std::string(value));
16
+ }
17
+
18
+ std::string str = value;
19
+ str.pop_back();
20
+ this->value = std::stod(str) / 100;
21
+ this->isRelative = true;
22
+ }
23
+
24
+ CSSLength::CSSLength(jsi::Runtime &rt, const jsi::Value &jsiValue) {
25
+ if (jsiValue.isNumber()) {
26
+ this->value = jsiValue.asNumber();
27
+ this->isRelative = false;
28
+ } else {
29
+ *this = CSSLength(jsiValue.asString(rt).utf8(rt));
30
+ }
31
+ }
32
+
33
+ CSSLength::CSSLength(const folly::dynamic &value) {
34
+ if (value.isNumber()) {
35
+ this->value = value.getDouble();
36
+ this->isRelative = false;
37
+ } else {
38
+ *this = CSSLength(value.asString().c_str());
39
+ }
40
+ }
41
+
42
+ bool CSSLength::canConstruct(const std::string &value) {
43
+ return !value.empty() && value.back() == '%';
44
+ }
45
+
46
+ bool CSSLength::canConstruct(const char *value) {
47
+ return canConstruct(std::string(value));
48
+ }
49
+
50
+ bool CSSLength::canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue) {
51
+ return jsiValue.isNumber() || (jsiValue.isString() && canConstruct(jsiValue.getString(rt).utf8(rt)));
52
+ }
53
+
54
+ bool CSSLength::canConstruct(const folly::dynamic &value) {
55
+ return value.isNumber() || (value.isString() && canConstruct(value.getString()));
56
+ }
57
+
58
+ folly::dynamic CSSLength::toDynamic() const {
59
+ if (isRelative) {
60
+ return std::to_string(value * 100) + "%";
61
+ }
62
+ return value;
63
+ }
64
+
65
+ std::string CSSLength::toString() const {
66
+ return isRelative ? (std::to_string(value * 100) + "%") : std::to_string(value);
67
+ }
68
+
69
+ CSSLength CSSLength::interpolate(
70
+ const double progress,
71
+ const CSSLength &to,
72
+ const ResolvableValueInterpolationContext &context) const {
73
+ // If both value types are the same, we can interpolate without reading the
74
+ // relative value from the shadow node
75
+ // (also, when one of the values is 0, and the other is relative)
76
+ if ((isRelative == to.isRelative) || (isRelative && to.value == 0) || (to.isRelative && value == 0)) {
77
+ return CSSLength(value + (to.value - value) * progress, isRelative || to.isRelative);
78
+ }
79
+ // Otherwise, we need to read the relative value from the shadow node and
80
+ // interpolate values as numbers
81
+ const auto resolvedFrom = resolve(context);
82
+ const auto resolvedTo = to.resolve(context);
83
+
84
+ if (!resolvedFrom.has_value() || !resolvedTo.has_value()) {
85
+ return progress < 0.5 ? *this : to;
86
+ }
87
+ return CSSLength(resolvedFrom.value() + (resolvedTo.value() - resolvedFrom.value()) * progress);
88
+ }
89
+
90
+ std::optional<double> CSSLength::resolve(const ResolvableValueInterpolationContext &context) const {
91
+ if (!isRelative) {
92
+ return value;
93
+ }
94
+
95
+ jsi::Value relativeValue;
96
+ if (context.relativeTo == RelativeTo::Self) {
97
+ relativeValue = context.viewStylesRepository->getNodeProp(context.node, context.relativeProperty);
98
+ } else {
99
+ relativeValue = context.viewStylesRepository->getParentNodeProp(context.node, context.relativeProperty);
100
+ }
101
+
102
+ if (!relativeValue.isNumber()) {
103
+ return std::nullopt;
104
+ }
105
+
106
+ return value * relativeValue.getNumber();
107
+ }
108
+
109
+ bool CSSLength::operator==(const CSSLength &other) const {
110
+ return value == other.value && isRelative == other.isRelative;
111
+ }
112
+
113
+ #ifndef NDEBUG
114
+
115
+ std::ostream &operator<<(std::ostream &os, const CSSLength &value) {
116
+ os << "CSSLength(" << value.toString() << ")";
117
+ return os;
118
+ }
119
+
120
+ #endif // NDEBUG
121
+
122
+ } // namespace reanimated::css
@@ -0,0 +1,38 @@
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/common/values/CSSValue.h>
4
+
5
+ #include <string>
6
+
7
+ namespace reanimated::css {
8
+
9
+ struct CSSLength : public CSSResolvableValue<CSSLength, double> {
10
+ double value;
11
+ bool isRelative;
12
+
13
+ CSSLength();
14
+ explicit CSSLength(double value);
15
+ explicit CSSLength(double value, bool isRelative);
16
+ explicit CSSLength(const char *value);
17
+ explicit CSSLength(jsi::Runtime &rt, const jsi::Value &jsiValue);
18
+ explicit CSSLength(const folly::dynamic &value);
19
+
20
+ static bool canConstruct(const std::string &value);
21
+ static bool canConstruct(const char *value);
22
+ static bool canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue);
23
+ static bool canConstruct(const folly::dynamic &value);
24
+
25
+ folly::dynamic toDynamic() const override;
26
+ std::string toString() const override;
27
+ CSSLength interpolate(double progress, const CSSLength &to, const ResolvableValueInterpolationContext &context)
28
+ const override;
29
+ std::optional<double> resolve(const ResolvableValueInterpolationContext &context) const override;
30
+
31
+ bool operator==(const CSSLength &other) const;
32
+
33
+ #ifndef NDEBUG
34
+ friend std::ostream &operator<<(std::ostream &os, const CSSLength &dimension);
35
+ #endif // NDEBUG
36
+ };
37
+
38
+ } // namespace reanimated::css
@@ -0,0 +1,82 @@
1
+ #include <reanimated/CSS/common/values/CSSNumber.h>
2
+
3
+ #include <algorithm>
4
+ #include <string>
5
+
6
+ namespace reanimated::css {
7
+
8
+ template <typename TDerived, typename TValue>
9
+ CSSNumberBase<TDerived, TValue>::CSSNumberBase() : value(0) {}
10
+
11
+ template <typename TDerived, typename TValue>
12
+ CSSNumberBase<TDerived, TValue>::CSSNumberBase(TValue value) : value(value) {}
13
+
14
+ template <typename TDerived, typename TValue>
15
+ CSSNumberBase<TDerived, TValue>::CSSNumberBase(jsi::Runtime &rt, const jsi::Value &jsiValue) {
16
+ value = static_cast<TValue>(jsiValue.asNumber());
17
+ }
18
+
19
+ template <typename TDerived, typename TValue>
20
+ CSSNumberBase<TDerived, TValue>::CSSNumberBase(const folly::dynamic &value) {
21
+ this->value = static_cast<TValue>(value.asDouble());
22
+ }
23
+
24
+ template <typename TDerived, typename TValue>
25
+ bool CSSNumberBase<TDerived, TValue>::canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue) {
26
+ return jsiValue.isNumber();
27
+ }
28
+
29
+ template <typename TDerived, typename TValue>
30
+ bool CSSNumberBase<TDerived, TValue>::canConstruct(const folly::dynamic &value) {
31
+ return value.isInt() || value.isDouble();
32
+ }
33
+
34
+ template <typename TDerived, typename TValue>
35
+ folly::dynamic CSSNumberBase<TDerived, TValue>::toDynamic() const {
36
+ return value;
37
+ }
38
+
39
+ template <typename TDerived, typename TValue>
40
+ std::string CSSNumberBase<TDerived, TValue>::toString() const {
41
+ return std::to_string(value);
42
+ }
43
+
44
+ template <typename TDerived, typename TValue>
45
+ TDerived CSSNumberBase<TDerived, TValue>::interpolate(double progress, const TDerived &other) const {
46
+ return TDerived(value + progress * (other.value - value));
47
+ }
48
+
49
+ template <typename TDerived, typename TValue>
50
+ bool CSSNumberBase<TDerived, TValue>::operator==(const CSSNumberBase<TDerived, TValue> &other) const {
51
+ return value == other.value;
52
+ }
53
+
54
+ CSSInteger CSSInteger::interpolate(double progress, const CSSInteger &other) const {
55
+ return CSSInteger(static_cast<int>(std::round(value + progress * (other.value - value))));
56
+ }
57
+
58
+ template struct CSSNumberBase<CSSDouble, double>;
59
+ template struct CSSNumberBase<CSSInteger, int>;
60
+
61
+ #ifdef ANDROID
62
+
63
+ CSSShadowRadiusAndroid::CSSShadowRadiusAndroid() : CSSNumberBase<CSSShadowRadiusAndroid, double>(1.0) {}
64
+
65
+ CSSShadowRadiusAndroid::CSSShadowRadiusAndroid(const double value)
66
+ : CSSNumberBase<CSSShadowRadiusAndroid, double>(std::max(1.0, value)) {}
67
+
68
+ CSSShadowRadiusAndroid::CSSShadowRadiusAndroid(jsi::Runtime &rt, const jsi::Value &jsiValue)
69
+ : CSSNumberBase<CSSShadowRadiusAndroid, double>(rt, jsiValue) {
70
+ value = std::max(1.0, value);
71
+ }
72
+
73
+ CSSShadowRadiusAndroid::CSSShadowRadiusAndroid(const folly::dynamic &value)
74
+ : CSSNumberBase<CSSShadowRadiusAndroid, double>(value) {
75
+ this->value = std::max(1.0, value.getDouble());
76
+ }
77
+
78
+ template struct CSSNumberBase<CSSShadowRadiusAndroid, double>;
79
+
80
+ #endif
81
+
82
+ } // namespace reanimated::css
@@ -0,0 +1,63 @@
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/common/values/CSSValue.h>
4
+
5
+ #include <string>
6
+
7
+ namespace reanimated::css {
8
+
9
+ template <typename TDerived, typename TValue>
10
+ struct CSSNumberBase : public CSSSimpleValue<TDerived> {
11
+ TValue value;
12
+
13
+ CSSNumberBase();
14
+ explicit CSSNumberBase(TValue value);
15
+ explicit CSSNumberBase(jsi::Runtime &rt, const jsi::Value &jsiValue);
16
+ explicit CSSNumberBase(const folly::dynamic &value);
17
+
18
+ static bool canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue);
19
+ static bool canConstruct(const folly::dynamic &value);
20
+
21
+ folly::dynamic toDynamic() const override;
22
+ std::string toString() const override;
23
+ TDerived interpolate(double progress, const TDerived &other) const override;
24
+
25
+ bool operator==(const CSSNumberBase<TDerived, TValue> &other) const;
26
+ };
27
+
28
+ #ifndef NDEBUG
29
+
30
+ template <typename TDerived, typename TValue>
31
+ std::ostream &operator<<(std::ostream &os, const CSSNumberBase<TDerived, TValue> &numberValue) {
32
+ os << "CSSNumberBase(" << numberValue.toString() << ")";
33
+ return os;
34
+ }
35
+
36
+ #endif // NDEBUG
37
+
38
+ struct CSSDouble : public CSSNumberBase<CSSDouble, double> {
39
+ // Inherit all constructors from the base class
40
+ using CSSNumberBase::CSSNumberBase;
41
+ };
42
+ struct CSSInteger : public CSSNumberBase<CSSInteger, int> {
43
+ // Inherit all constructors from the base class
44
+ using CSSNumberBase::CSSNumberBase;
45
+
46
+ CSSInteger interpolate(double progress, const CSSInteger &other) const override;
47
+ };
48
+
49
+ #ifdef ANDROID
50
+
51
+ // For some reason Android crashes when blurRadius is smaller than 1 so we use a
52
+ // custom value that will never be smaller than 1
53
+
54
+ struct CSSShadowRadiusAndroid : public CSSNumberBase<CSSShadowRadiusAndroid, double> {
55
+ CSSShadowRadiusAndroid();
56
+ explicit CSSShadowRadiusAndroid(double value);
57
+ explicit CSSShadowRadiusAndroid(jsi::Runtime &rt, const jsi::Value &jsiValue);
58
+ explicit CSSShadowRadiusAndroid(const folly::dynamic &value);
59
+ };
60
+
61
+ #endif
62
+
63
+ } // namespace reanimated::css