@react-native-ohos/react-native-reanimated 3.18.2-rc.2 → 4.0.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 +1 -1
  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 +94 -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 +45 -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 +111 -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 +1380 -971
  187. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -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 +63 -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 +69 -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 +84 -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,111 @@
1
+ #include <reanimated/CSS/svg/values/SVGStrokeDashArray.h>
2
+
3
+ #include <sstream>
4
+ #include <string>
5
+ #include <vector>
6
+
7
+ namespace reanimated::css {
8
+
9
+ SVGStrokeDashArray::SVGStrokeDashArray() : values() {}
10
+
11
+ SVGStrokeDashArray::SVGStrokeDashArray(const std::vector<SVGLength> &values) : values(values) {}
12
+
13
+ SVGStrokeDashArray::SVGStrokeDashArray(jsi::Runtime &rt, const jsi::Value &jsiValue) {
14
+ const auto &array = jsiValue.asObject(rt).asArray(rt);
15
+ const auto arraySize = array.size(rt);
16
+ values.reserve(arraySize);
17
+ for (size_t i = 0; i < arraySize; ++i) {
18
+ values.emplace_back(rt, array.getValueAtIndex(rt, i));
19
+ }
20
+ }
21
+
22
+ SVGStrokeDashArray::SVGStrokeDashArray(const folly::dynamic &value) {
23
+ for (const auto &value : value) {
24
+ values.emplace_back(value);
25
+ }
26
+ }
27
+
28
+ bool SVGStrokeDashArray::canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue) {
29
+ if (!jsiValue.isObject() || !jsiValue.asObject(rt).isArray(rt)) {
30
+ return false;
31
+ }
32
+ const auto &array = jsiValue.asObject(rt).asArray(rt);
33
+ for (size_t i = 0; i < array.size(rt); ++i) {
34
+ if (!SVGLength::canConstruct(rt, array.getValueAtIndex(rt, i))) {
35
+ return false;
36
+ }
37
+ }
38
+ return true;
39
+ }
40
+
41
+ bool SVGStrokeDashArray::canConstruct(const folly::dynamic &value) {
42
+ return value.isArray() &&
43
+ std::all_of(value.begin(), value.end(), [](const auto &value) { return SVGLength::canConstruct(value); });
44
+ }
45
+
46
+ folly::dynamic SVGStrokeDashArray::toDynamic() const {
47
+ folly::dynamic array = folly::dynamic::array;
48
+ array.reserve(values.size());
49
+ for (const auto &value : values) {
50
+ array.push_back(value.toDynamic());
51
+ }
52
+ return array;
53
+ }
54
+
55
+ std::string SVGStrokeDashArray::toString() const {
56
+ std::stringstream ss;
57
+ ss << "{";
58
+ for (const auto &value : values) {
59
+ ss << value.toString();
60
+ if (&value != &values.back()) {
61
+ ss << ", ";
62
+ }
63
+ }
64
+ ss << "}";
65
+ return ss.str();
66
+ }
67
+
68
+ SVGStrokeDashArray SVGStrokeDashArray::interpolate(double progress, const SVGStrokeDashArray &to) const {
69
+ std::vector<SVGLength> result;
70
+ auto fromValues = values;
71
+ auto toValues = to.values;
72
+
73
+ // If one of the arrays is empty, we take the fist value from the second
74
+ // one and put it as the only element of the first (empty) array
75
+ // (this is how it works on the web)
76
+ if (fromValues.size() == 0 && toValues.size() > 0) {
77
+ fromValues = {toValues[0]};
78
+ }
79
+ if (toValues.size() == 0 && fromValues.size() > 0) {
80
+ toValues = {fromValues[0]};
81
+ }
82
+
83
+ const auto fromSize = fromValues.size();
84
+ const auto toSize = toValues.size();
85
+
86
+ // We need to find the least common multiple of the two arrays to get
87
+ // a smooth interpolation of the dash array pattern
88
+ const auto resultSize = std::lcm(fromSize, toSize);
89
+ result.reserve(resultSize);
90
+
91
+ for (size_t i = 0; i < resultSize; i++) {
92
+ result.emplace_back(fromValues[i % fromSize].interpolate(progress, toValues[i % toSize]));
93
+ }
94
+
95
+ return SVGStrokeDashArray(result);
96
+ }
97
+
98
+ bool SVGStrokeDashArray::operator==(const SVGStrokeDashArray &other) const {
99
+ return values == other.values;
100
+ }
101
+
102
+ #ifndef NDEBUG
103
+
104
+ std::ostream &operator<<(std::ostream &os, const SVGStrokeDashArray &strokeDashArray) {
105
+ os << "SVGStrokeDashArray(" << strokeDashArray.toString() << ")";
106
+ return os;
107
+ }
108
+
109
+ #endif // NDEBUG
110
+
111
+ } // namespace reanimated::css
@@ -0,0 +1,33 @@
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/svg/values/SVGLength.h>
4
+
5
+ #include <numeric>
6
+ #include <string>
7
+ #include <vector>
8
+
9
+ namespace reanimated::css {
10
+
11
+ struct SVGStrokeDashArray : public CSSSimpleValue<SVGStrokeDashArray> {
12
+ std::vector<SVGLength> values;
13
+
14
+ SVGStrokeDashArray();
15
+ explicit SVGStrokeDashArray(const std::vector<SVGLength> &values);
16
+ explicit SVGStrokeDashArray(jsi::Runtime &rt, const jsi::Value &jsiValue);
17
+ explicit SVGStrokeDashArray(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
+ SVGStrokeDashArray interpolate(double progress, const SVGStrokeDashArray &to) const override;
25
+
26
+ bool operator==(const SVGStrokeDashArray &other) const;
27
+
28
+ #ifndef NDEBUG
29
+ friend std::ostream &operator<<(std::ostream &os, const SVGStrokeDashArray &strokeDashArray);
30
+ #endif // NDEBUG
31
+ };
32
+
33
+ } // namespace reanimated::css
@@ -0,0 +1,75 @@
1
+ #include <reanimated/CSS/utils/DelayedItemsManager.h>
2
+
3
+ #include <functional>
4
+ #include <utility>
5
+
6
+ namespace reanimated::css {
7
+
8
+ template <typename TValue>
9
+ DelayedItem<TValue>::DelayedItem(double timestamp, TValue value) : timestamp(timestamp), value(std::move(value)) {}
10
+
11
+ template <typename TValue>
12
+ bool DelayedItemComparator<TValue>::operator()(const DelayedItem<TValue> &lhs, const DelayedItem<TValue> &rhs) const {
13
+ if (lhs.timestamp == rhs.timestamp) {
14
+ // Use address comparison as a tiebreaker when timestamps are equal
15
+ return std::less<const TValue *>{}(&lhs.value, &rhs.value);
16
+ }
17
+ return lhs.timestamp < rhs.timestamp;
18
+ }
19
+
20
+ template <typename TValue>
21
+ void DelayedItemsManager<TValue>::add(const double timestamp, const TValue value) {
22
+ auto result = itemsSet_.emplace(timestamp, value);
23
+ if (result.second) {
24
+ itemsMap_[result.first->value] = result.first;
25
+ }
26
+ }
27
+
28
+ template <typename TValue>
29
+ typename DelayedItemsManager<TValue>::Item DelayedItemsManager<TValue>::pop() {
30
+ if (itemsSet_.empty()) {
31
+ throw std::runtime_error("[Reanimated] No delayed items available to pop");
32
+ }
33
+ auto it = itemsSet_.begin();
34
+ Item result = std::move(*it);
35
+ itemsMap_.erase(it->value);
36
+ itemsSet_.erase(it);
37
+ return result;
38
+ }
39
+
40
+ template <typename TValue>
41
+ bool DelayedItemsManager<TValue>::remove(const TValue value) {
42
+ auto it = itemsMap_.find(value);
43
+
44
+ if (it == itemsMap_.end()) {
45
+ return false;
46
+ }
47
+
48
+ itemsSet_.erase(it->second);
49
+ itemsMap_.erase(it);
50
+ return true;
51
+ }
52
+
53
+ template <typename TValue>
54
+ const typename DelayedItemsManager<TValue>::Item &DelayedItemsManager<TValue>::top() const {
55
+ if (itemsSet_.empty()) {
56
+ throw std::runtime_error("[Reanimated] No delayed items available");
57
+ }
58
+ return *itemsSet_.begin();
59
+ }
60
+
61
+ template <typename TValue>
62
+ bool DelayedItemsManager<TValue>::empty() const {
63
+ return itemsSet_.empty();
64
+ }
65
+
66
+ template <typename TValue>
67
+ size_t DelayedItemsManager<TValue>::size() const {
68
+ return itemsSet_.size();
69
+ }
70
+
71
+ // Declare the types that will be used in the DelayedItemsManager class
72
+ template class DelayedItemsManager<std::shared_ptr<CSSAnimation>>;
73
+ template class DelayedItemsManager<Tag>;
74
+
75
+ } // namespace reanimated::css
@@ -0,0 +1,45 @@
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/core/CSSAnimation.h>
4
+
5
+ #include <functional>
6
+ #include <memory>
7
+ #include <set>
8
+ #include <stdexcept>
9
+ #include <unordered_map>
10
+ #include <utility>
11
+
12
+ namespace reanimated::css {
13
+
14
+ template <typename TValue>
15
+ struct DelayedItem {
16
+ const double timestamp;
17
+ const TValue value;
18
+
19
+ DelayedItem(double timestamp, TValue value);
20
+ };
21
+
22
+ template <typename TValue>
23
+ struct DelayedItemComparator {
24
+ bool operator()(const DelayedItem<TValue> &lhs, const DelayedItem<TValue> &rhs) const;
25
+ };
26
+
27
+ template <typename TValue>
28
+ class DelayedItemsManager {
29
+ using Item = DelayedItem<TValue>;
30
+ using ItemSet = std::set<Item, DelayedItemComparator<TValue>>;
31
+ using ItemMap = std::unordered_map<TValue, typename ItemSet::iterator>;
32
+
33
+ ItemSet itemsSet_;
34
+ ItemMap itemsMap_;
35
+
36
+ public:
37
+ void add(double timestamp, TValue value);
38
+ Item pop();
39
+ bool remove(TValue value);
40
+ const Item &top() const;
41
+ bool empty() const;
42
+ size_t size() const;
43
+ };
44
+
45
+ } // namespace reanimated::css
@@ -0,0 +1,12 @@
1
+ #include <reanimated/CSS/utils/algorithms.h>
2
+
3
+ #include <vector>
4
+
5
+ namespace reanimated::css {
6
+
7
+ size_t firstSmallerOrEqual(const double x, const std::vector<double> &arr) {
8
+ auto it = std::upper_bound(arr.begin(), arr.end(), x);
9
+ return it == arr.begin() ? 0 : std::distance(arr.begin(), --it);
10
+ }
11
+
12
+ } // namespace reanimated::css
@@ -0,0 +1,10 @@
1
+ #pragma once
2
+
3
+ #include <algorithm>
4
+ #include <vector>
5
+
6
+ namespace reanimated::css {
7
+
8
+ size_t firstSmallerOrEqual(double x, const std::vector<double> &arr);
9
+
10
+ } // namespace reanimated::css
@@ -0,0 +1,36 @@
1
+ #include <reanimated/CSS/utils/interpolators.h>
2
+
3
+ #include <memory>
4
+ #include <string>
5
+
6
+ namespace reanimated::css {
7
+
8
+ std::shared_ptr<PropertyInterpolator> createPropertyInterpolator(
9
+ const std::string &propertyName,
10
+ const PropertyPath &propertyPath,
11
+ const InterpolatorFactoriesRecord &factories,
12
+ const std::shared_ptr<ViewStylesRepository> &viewStylesRepository) {
13
+ auto it = factories.find(propertyName);
14
+
15
+ if (it == factories.cend()) {
16
+ throw std::invalid_argument("[Reanimated] No interpolator factory found for property: " + propertyName);
17
+ }
18
+
19
+ PropertyPath newPath = propertyPath;
20
+ newPath.emplace_back(propertyName);
21
+
22
+ return it->second->create(newPath, viewStylesRepository);
23
+ }
24
+
25
+ std::shared_ptr<PropertyInterpolator> createPropertyInterpolator(
26
+ size_t arrayIndex,
27
+ const PropertyPath &propertyPath,
28
+ const InterpolatorFactoriesArray &factories,
29
+ const std::shared_ptr<ViewStylesRepository> &viewStylesRepository) {
30
+ PropertyPath newPath = propertyPath;
31
+ newPath.emplace_back(std::to_string(arrayIndex));
32
+
33
+ return factories[arrayIndex % factories.size()]->create(newPath, viewStylesRepository);
34
+ }
35
+
36
+ } // namespace reanimated::css
@@ -0,0 +1,23 @@
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/interpolation/PropertyInterpolator.h>
4
+
5
+ #include <memory>
6
+ #include <string>
7
+ #include <vector>
8
+
9
+ namespace reanimated::css {
10
+
11
+ std::shared_ptr<PropertyInterpolator> createPropertyInterpolator(
12
+ const std::string &propertyName,
13
+ const PropertyPath &propertyPath,
14
+ const InterpolatorFactoriesRecord &factories,
15
+ const std::shared_ptr<ViewStylesRepository> &viewStylesRepository);
16
+
17
+ std::shared_ptr<PropertyInterpolator> createPropertyInterpolator(
18
+ size_t arrayIndex,
19
+ const PropertyPath &propertyPath,
20
+ const InterpolatorFactoriesArray &factories,
21
+ const std::shared_ptr<ViewStylesRepository> &viewStylesRepository);
22
+
23
+ } // namespace reanimated::css
@@ -0,0 +1,149 @@
1
+ #include <reanimated/CSS/utils/props.h>
2
+
3
+ #include <string>
4
+ #include <utility>
5
+
6
+ namespace reanimated::css {
7
+
8
+ bool isDiscreteProperty(const std::string &propName, const std::string &componentName) {
9
+ const auto &interpolators = getComponentInterpolators(componentName);
10
+ const auto it = interpolators.find(propName);
11
+ if (it == interpolators.end()) {
12
+ return false;
13
+ }
14
+ return it->second->isDiscreteProperty();
15
+ }
16
+
17
+ bool areArraysDifferentRecursive(const folly::dynamic &oldArray, const folly::dynamic &newArray) {
18
+ if (oldArray.size() != newArray.size()) {
19
+ return true;
20
+ }
21
+
22
+ for (size_t i = 0; i < oldArray.size(); i++) {
23
+ const auto [oldChangedProp, newChangedProp] = getChangedPropsRecursive(oldArray[i], newArray[i]);
24
+
25
+ if (!oldChangedProp.isNull() || !newChangedProp.isNull()) {
26
+ return true;
27
+ }
28
+ }
29
+
30
+ return false;
31
+ }
32
+
33
+ std::pair<folly::dynamic, folly::dynamic> getChangedPropsRecursive(
34
+ const folly::dynamic &oldProp,
35
+ const folly::dynamic &newProp) {
36
+ if (!oldProp.isObject() || !newProp.isObject()) {
37
+ // Primitive values comparison
38
+ if (oldProp != newProp) {
39
+ return {oldProp, newProp};
40
+ }
41
+ return {folly::dynamic(), folly::dynamic()};
42
+ }
43
+
44
+ if (oldProp.isArray() && newProp.isArray()) {
45
+ // Arrays comparison
46
+ if (areArraysDifferentRecursive(oldProp, newProp)) {
47
+ return {oldProp, newProp};
48
+ }
49
+ return {folly::dynamic(), folly::dynamic()};
50
+ }
51
+
52
+ folly::dynamic oldResult = folly::dynamic::object;
53
+ folly::dynamic newResult = folly::dynamic::object;
54
+ bool oldHasChanges = false;
55
+ bool newHasChanges = false;
56
+
57
+ // Check for removed properties
58
+ for (const auto &item : oldProp.items()) {
59
+ const auto &propName = item.first.asString();
60
+ if (!newProp.count(propName)) {
61
+ const auto &oldValue = item.second;
62
+ oldResult[propName] = oldValue;
63
+ oldHasChanges = true;
64
+ }
65
+ }
66
+
67
+ // Check for new and changed properties
68
+ for (const auto &item : newProp.items()) {
69
+ const auto &propName = item.first.asString();
70
+ const auto &newValue = item.second;
71
+
72
+ if (oldProp.count(propName)) {
73
+ const auto &oldValue = oldProp[propName];
74
+ auto [oldChangedProp, newChangedProp] = getChangedPropsRecursive(oldValue, newValue);
75
+
76
+ if (!oldChangedProp.isNull() && !newChangedProp.isNull()) {
77
+ oldResult[propName] = std::move(oldChangedProp);
78
+ newResult[propName] = std::move(newChangedProp);
79
+ oldHasChanges = true;
80
+ newHasChanges = true;
81
+ }
82
+ } else {
83
+ newResult[propName] = newValue;
84
+ newHasChanges = true;
85
+ }
86
+ }
87
+
88
+ return {
89
+ oldHasChanges ? std::move(oldResult) : folly::dynamic(), newHasChanges ? std::move(newResult) : folly::dynamic()};
90
+ }
91
+
92
+ std::pair<folly::dynamic, folly::dynamic>
93
+ getChangedValueForProp(const folly::dynamic &oldObject, const folly::dynamic &newObject, const std::string &propName) {
94
+ const bool oldHasProperty = oldObject.count(propName);
95
+ const bool newHasProperty = newObject.count(propName);
96
+
97
+ if (oldHasProperty && newHasProperty) {
98
+ const auto &oldVal = oldObject[propName];
99
+ const auto &newVal = newObject[propName];
100
+
101
+ if (oldVal.isObject() && newVal.isObject()) {
102
+ return getChangedPropsRecursive(oldVal, newVal);
103
+ } else if (oldVal != newVal) {
104
+ return {oldVal, newVal};
105
+ }
106
+
107
+ return {folly::dynamic(), folly::dynamic()};
108
+ }
109
+
110
+ if (oldHasProperty) {
111
+ const auto &oldVal = oldObject[propName];
112
+ return {oldVal, folly::dynamic()};
113
+ } else if (newHasProperty) {
114
+ const auto &newVal = newObject[propName];
115
+ return {folly::dynamic(), newVal};
116
+ }
117
+
118
+ return {folly::dynamic(), folly::dynamic()};
119
+ }
120
+
121
+ ChangedProps getChangedProps(
122
+ const folly::dynamic &oldProps,
123
+ const folly::dynamic &newProps,
124
+ const PropertyNames &allowedProperties) {
125
+ folly::dynamic oldResult = folly::dynamic::object;
126
+ folly::dynamic newResult = folly::dynamic::object;
127
+ PropertyNames changedPropertyNames;
128
+
129
+ for (const auto &propName : allowedProperties) {
130
+ auto [oldChangedProp, newChangedProp] = getChangedValueForProp(oldProps, newProps, propName);
131
+
132
+ const auto hasOldChangedProp = !oldChangedProp.isNull();
133
+ const auto hasNewChangedProp = !newChangedProp.isNull();
134
+
135
+ if (hasOldChangedProp) {
136
+ oldResult[propName] = std::move(oldChangedProp);
137
+ }
138
+ if (hasNewChangedProp) {
139
+ newResult[propName] = std::move(newChangedProp);
140
+ }
141
+ if (hasOldChangedProp || hasNewChangedProp) {
142
+ changedPropertyNames.push_back(propName);
143
+ }
144
+ }
145
+
146
+ return {std::move(oldResult), std::move(newResult), std::move(changedPropertyNames)};
147
+ }
148
+
149
+ } // namespace reanimated::css
@@ -0,0 +1,32 @@
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/InterpolatorRegistry.h>
4
+ #include <reanimated/CSS/common/definitions.h>
5
+
6
+ #include <memory>
7
+ #include <string>
8
+ #include <unordered_map>
9
+ #include <unordered_set>
10
+ #include <utility>
11
+
12
+ namespace reanimated::css {
13
+
14
+ struct ChangedProps {
15
+ const folly::dynamic oldProps;
16
+ const folly::dynamic newProps;
17
+ const PropertyNames changedPropertyNames;
18
+ };
19
+
20
+ bool isDiscreteProperty(const std::string &propName, const std::string &componentName);
21
+
22
+ // We need to specify it here because there are 2 methods referencing
23
+ // each other in the recursion and areArraysDifferentRecursive must be
24
+ // aware that getChangedPropsRecursive exists
25
+ std::pair<folly::dynamic, folly::dynamic> getChangedPropsRecursive(
26
+ const folly::dynamic &oldProp,
27
+ const folly::dynamic &newProp);
28
+
29
+ ChangedProps
30
+ getChangedProps(const folly::dynamic &oldProps, const folly::dynamic &newProps, const PropertyNames &allowedProperties);
31
+
32
+ } // namespace reanimated::css