@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,220 @@
1
+ #pragma once
2
+
3
+ #include <react/renderer/componentregistry/ComponentDescriptorFactory.h>
4
+ #include <react/renderer/mounting/MountingOverrideDelegate.h>
5
+ #include <react/renderer/scheduler/Scheduler.h>
6
+ #include <react/renderer/uimanager/UIManagerAnimationDelegate.h>
7
+ #include <react/renderer/uimanager/UIManagerBinding.h>
8
+ #include <reanimated/LayoutAnimations/LayoutAnimationsManager.h>
9
+ #include <reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h>
10
+ #include <reanimated/LayoutAnimations/LayoutAnimationsUtils.h>
11
+ #include <reanimated/Tools/PlatformDepMethodsHolder.h>
12
+ #include <worklets/Tools/UIScheduler.h>
13
+
14
+ #include <memory>
15
+ #include <string>
16
+ #include <unordered_map>
17
+ #include <unordered_set>
18
+ #include <utility>
19
+ #include <vector>
20
+
21
+ namespace reanimated {
22
+
23
+ class ReanimatedModuleProxy;
24
+
25
+ using namespace facebook;
26
+
27
+ typedef enum ExitingState_Legacy {
28
+ UNDEFINED = 1,
29
+ WAITING = 2,
30
+ ANIMATING = 4,
31
+ DEAD = 8,
32
+ MOVED = 16,
33
+ DELETED = 32,
34
+ } ExitingState_Legacy;
35
+
36
+ struct MutationNode;
37
+
38
+ /**
39
+ Represents a view that was either removed or had a child removed from the
40
+ ShadowTree
41
+ */
42
+ struct Node {
43
+ std::vector<std::shared_ptr<MutationNode>> children, unflattenedChildren;
44
+ std::shared_ptr<Node> parent, unflattenedParent;
45
+ Tag tag;
46
+ void removeChildFromUnflattenedTree(std::shared_ptr<MutationNode> child);
47
+ void applyMutationToIndices(ShadowViewMutation mutation);
48
+ void insertChildren(std::vector<std::shared_ptr<MutationNode>> &newChildren);
49
+ void insertUnflattenedChildren(std::vector<std::shared_ptr<MutationNode>> &newChildren);
50
+ virtual bool isMutationNode();
51
+ explicit Node(const Tag tag) : tag(tag) {}
52
+ Node(Node &&node)
53
+ : children(std::move(node.children)), unflattenedChildren(std::move(node.unflattenedChildren)), tag(node.tag) {}
54
+ Node(Node &node) : children(node.children), unflattenedChildren(node.unflattenedChildren), tag(node.tag) {}
55
+ virtual ~Node() = default;
56
+ };
57
+
58
+ /**
59
+ Represents a view that was removed from the ShadowTree
60
+ */
61
+ struct MutationNode : public Node {
62
+ ShadowViewMutation mutation;
63
+ ExitingState_Legacy state = UNDEFINED;
64
+ explicit MutationNode(ShadowViewMutation &mutation) : Node(mutation.oldChildShadowView.tag), mutation(mutation) {}
65
+ MutationNode(ShadowViewMutation &mutation, Node &&node) : Node(std::move(node)), mutation(mutation) {}
66
+ bool isMutationNode() override;
67
+ };
68
+
69
+ static inline bool isRNSScreen(std::shared_ptr<MutationNode> node) {
70
+ const auto &componentName = node->mutation.oldChildShadowView.componentName;
71
+ return !std::strcmp(componentName, "RNSScreenStack") || !std::strcmp(componentName, "RNSScreen") ||
72
+ !std::strcmp(componentName, "RNSModalScreen");
73
+ }
74
+
75
+ static inline void mergeAndSwap(
76
+ std::vector<std::shared_ptr<MutationNode>> &A,
77
+ std::vector<std::shared_ptr<MutationNode>> &B) {
78
+ std::vector<std::shared_ptr<MutationNode>> merged;
79
+ auto it1 = A.begin(), it2 = B.begin();
80
+ while (it1 != A.end() && it2 != B.end()) {
81
+ if ((*it1)->mutation.index < (*it2)->mutation.index) {
82
+ merged.push_back(*it1);
83
+ it1++;
84
+ } else {
85
+ merged.push_back(*it2);
86
+ it2++;
87
+ }
88
+ }
89
+ while (it1 != A.end()) {
90
+ merged.push_back(*it1);
91
+ it1++;
92
+ }
93
+ while (it2 != B.end()) {
94
+ merged.push_back(*it2);
95
+ it2++;
96
+ }
97
+ std::swap(A, merged);
98
+ }
99
+
100
+ struct SurfaceContext {
101
+ mutable std::unordered_set<std::shared_ptr<MutationNode>> deadNodes;
102
+ };
103
+
104
+ struct LayoutAnimationsProxy_Legacy : public LayoutAnimationsProxyCommon,
105
+ public UIManagerAnimationDelegate,
106
+ public std::enable_shared_from_this<LayoutAnimationsProxy_Legacy> {
107
+ mutable std::unordered_map<Tag, std::shared_ptr<Node>> nodeForTag_;
108
+ mutable std::recursive_mutex mutex;
109
+ mutable SurfaceManager surfaceManager;
110
+ mutable std::unordered_map<SurfaceId, SurfaceContext> surfaceContext_;
111
+ mutable std::unordered_map<Tag, int> leastRemoved;
112
+ mutable std::unordered_set<SurfaceId> surfacesToRemove_;
113
+
114
+ LayoutAnimationsProxy_Legacy(
115
+ std::shared_ptr<LayoutAnimationsManager> layoutAnimationsManager,
116
+ SharedComponentDescriptorRegistry componentDescriptorRegistry,
117
+ std::shared_ptr<const ContextContainer> contextContainer,
118
+ jsi::Runtime &uiRuntime,
119
+ const std::shared_ptr<UIScheduler> &uiScheduler
120
+ #ifdef ANDROID
121
+ ,
122
+ PreserveMountedTagsFunction filterUnmountedTagsFunction,
123
+ std::shared_ptr<UIManager> uiManager,
124
+ std::shared_ptr<CallInvoker> jsInvoker
125
+ #endif
126
+ )
127
+ : LayoutAnimationsProxyCommon(
128
+ std::move(layoutAnimationsManager),
129
+ std::move(componentDescriptorRegistry),
130
+ std::move(contextContainer),
131
+ uiRuntime,
132
+ uiScheduler
133
+ #ifdef ANDROID
134
+ ,
135
+ std::move(filterUnmountedTagsFunction),
136
+ std::move(uiManager),
137
+ std::move(jsInvoker)
138
+ #endif
139
+ ) {
140
+ }
141
+
142
+ void startEnteringAnimation(const int tag, ShadowViewMutation &mutation) const;
143
+ void startExitingAnimation(const int tag, ShadowViewMutation &mutation) const;
144
+ void startLayoutAnimation(const int tag, const ShadowViewMutation &mutation) const;
145
+
146
+ void transferConfigFromNativeID(const std::string &nativeId, const int tag) const;
147
+ std::optional<SurfaceId> progressLayoutAnimation(int tag, const jsi::Object &newStyle) override;
148
+ std::optional<SurfaceId> endLayoutAnimation(int tag, bool shouldRemove) override;
149
+ void maybeCancelAnimation(const int tag) const;
150
+
151
+ void parseRemoveMutations(
152
+ std::unordered_map<Tag, Tag> &movedViews,
153
+ ShadowViewMutationList &mutations,
154
+ std::vector<std::shared_ptr<MutationNode>> &roots) const;
155
+ void handleRemovals(
156
+ ShadowViewMutationList &filteredMutations,
157
+ std::vector<std::shared_ptr<MutationNode>> &roots,
158
+ std::unordered_set<std::shared_ptr<MutationNode>> &deadNodes,
159
+ bool shouldAnimate) const;
160
+
161
+ void handleUpdatesAndEnterings(
162
+ ShadowViewMutationList &filteredMutations,
163
+ const std::unordered_map<Tag, Tag> &movedViews,
164
+ ShadowViewMutationList &mutations,
165
+ const PropsParserContext &propsParserContext,
166
+ SurfaceId surfaceId) const;
167
+ void addOngoingAnimations(SurfaceId surfaceId, ShadowViewMutationList &mutations) const;
168
+ void updateOngoingAnimationTarget(const int tag, const ShadowViewMutation &mutation) const;
169
+ std::shared_ptr<ShadowView> cloneViewWithoutOpacity(
170
+ facebook::react::ShadowViewMutation &mutation,
171
+ const PropsParserContext &propsParserContext) const;
172
+ void maybeRestoreOpacity(LayoutAnimation &layoutAnimation, const jsi::Object &newStyle) const;
173
+ void maybeUpdateWindowDimensions(facebook::react::ShadowViewMutation &mutation, SurfaceId surfaceId) const;
174
+ void createLayoutAnimation(
175
+ const ShadowViewMutation &mutation,
176
+ ShadowView &oldView,
177
+ const SurfaceId &surfaceId,
178
+ const int tag) const;
179
+
180
+ void updateIndexForMutation(ShadowViewMutation &mutation) const;
181
+
182
+ void removeRecursively(std::shared_ptr<MutationNode> node, ShadowViewMutationList &mutations) const;
183
+ bool startAnimationsRecursively(
184
+ const std::shared_ptr<MutationNode> &node,
185
+ bool shouldRemoveSubviewsWithoutAnimations,
186
+ bool shouldAnimate,
187
+ bool isScreenPop,
188
+ ShadowViewMutationList &mutations) const;
189
+ void endAnimationsRecursively(const std::shared_ptr<MutationNode> &node, ShadowViewMutationList &mutations) const;
190
+ void maybeDropAncestors(
191
+ const std::shared_ptr<Node> &node,
192
+ const std::shared_ptr<MutationNode> &child,
193
+ ShadowViewMutationList &cleanupMutations) const;
194
+
195
+ const ComponentDescriptor &getComponentDescriptorForShadowView(const ShadowView &shadowView) const;
196
+ // MountingOverrideDelegate
197
+
198
+ bool shouldOverridePullTransaction() const override;
199
+ std::optional<MountingTransaction> pullTransaction(
200
+ SurfaceId surfaceId,
201
+ MountingTransaction::Number number,
202
+ const TransactionTelemetry &telemetry,
203
+ ShadowViewMutationList mutations) const override;
204
+
205
+ // UIManagerAnimationDelegate
206
+
207
+ void uiManagerDidConfigureNextLayoutAnimation(
208
+ jsi::Runtime &runtime,
209
+ const RawValue &config,
210
+ const jsi::Value &successCallbackValue,
211
+ const jsi::Value &failureCallbackValue) const override;
212
+
213
+ void setComponentDescriptorRegistry(const SharedComponentDescriptorRegistry &componentDescriptorRegistry) override;
214
+
215
+ bool shouldAnimateFrame() const override;
216
+
217
+ void stopSurface(SurfaceId surfaceId) override;
218
+ };
219
+
220
+ } // namespace reanimated
@@ -1,91 +1,31 @@
1
- #ifdef RCT_NEW_ARCH_ENABLED
2
- #include <reanimated/LayoutAnimations/LayoutAnimationsUtils.h>
3
-
4
- namespace reanimated {
5
-
6
- std::unordered_map<Tag, UpdateValues> &SurfaceManager::getUpdateMap(
7
- SurfaceId surfaceId) {
8
- auto props = props_.find(surfaceId);
9
- if (props != props_.end()) {
10
- return *props->second;
11
- }
12
-
13
- auto newProps = std::make_shared<std::unordered_map<Tag, UpdateValues>>();
14
- props_.insert_or_assign(surfaceId, newProps);
15
- return *newProps;
16
- }
17
-
18
- void SurfaceManager::updateWindow(
19
- const SurfaceId surfaceId,
20
- const double windowWidth,
21
- const double windowHeight) {
22
- windows_.insert_or_assign(surfaceId, Rect{windowWidth, windowHeight});
23
- }
24
-
25
- Rect SurfaceManager::getWindow(SurfaceId surfaceId) {
26
- auto windowIt = windows_.find(surfaceId);
27
- if (windowIt != windows_.end()) {
28
- return windowIt->second;
29
- }
30
- return Rect{0, 0};
31
- }
32
-
33
- void Node::applyMutationToIndices(ShadowViewMutation mutation) {
34
- #if REACT_NATIVE_MINOR_VERSION >= 78
35
- const auto parentTag = mutation.parentTag;
36
- #else
37
- const auto parentTag = mutation.parentShadowView.tag;
38
- #endif // REACT_NATIVE_MINOR_VERSION >= 78
39
-
40
- if (tag != parentTag) {
41
- return;
42
- }
43
-
44
- int delta = mutation.type == ShadowViewMutation::Insert ? 1 : -1;
45
- for (int i = children.size() - 1; i >= 0; i--) {
46
- if (children[i]->mutation.index < mutation.index) {
47
- return;
48
- }
49
- children[i]->mutation.index += delta;
50
- }
51
- }
52
-
53
- // Should only be called on unflattened parents
54
- void Node::removeChildFromUnflattenedTree(std::shared_ptr<MutationNode> child) {
55
- for (int i = unflattenedChildren.size() - 1; i >= 0; i--) {
56
- if (unflattenedChildren[i]->tag == child->tag) {
57
- unflattenedChildren.erase(unflattenedChildren.begin() + i);
58
- break;
59
- }
60
- }
61
-
62
- auto &flattenedChildren = child->parent->children;
63
- for (int i = flattenedChildren.size() - 1; i >= 0; i--) {
64
- if (flattenedChildren[i]->tag == child->tag) {
65
- flattenedChildren.erase(flattenedChildren.begin() + i);
66
- return;
67
- }
68
- flattenedChildren[i]->mutation.index--;
69
- }
70
- }
71
-
72
- void Node::insertChildren(
73
- std::vector<std::shared_ptr<MutationNode>> &newChildren) {
74
- mergeAndSwap(children, newChildren);
75
- }
76
-
77
- void Node::insertUnflattenedChildren(
78
- std::vector<std::shared_ptr<MutationNode>> &newChildren) {
79
- mergeAndSwap(unflattenedChildren, newChildren);
80
- }
81
-
82
- bool Node::isMutationMode() {
83
- return false;
84
- }
85
-
86
- bool MutationNode::isMutationMode() {
87
- return true;
88
- }
89
- } // namespace reanimated
90
-
91
- #endif
1
+ #include <reanimated/LayoutAnimations/LayoutAnimationsUtils.h>
2
+
3
+ #include <memory>
4
+ #include <unordered_map>
5
+
6
+ namespace reanimated {
7
+
8
+ std::unordered_map<Tag, UpdateValues> &SurfaceManager::getUpdateMap(SurfaceId surfaceId) {
9
+ auto props = props_.find(surfaceId);
10
+ if (props != props_.end()) {
11
+ return *props->second;
12
+ }
13
+
14
+ auto newProps = std::make_shared<std::unordered_map<Tag, UpdateValues>>();
15
+ props_.insert_or_assign(surfaceId, newProps);
16
+ return *newProps;
17
+ }
18
+
19
+ void SurfaceManager::updateWindow(const SurfaceId surfaceId, const double windowWidth, const double windowHeight) {
20
+ windows_.insert_or_assign(surfaceId, Rect{windowWidth, windowHeight});
21
+ }
22
+
23
+ Rect SurfaceManager::getWindow(SurfaceId surfaceId) {
24
+ auto windowIt = windows_.find(surfaceId);
25
+ if (windowIt != windows_.end()) {
26
+ return windowIt->second;
27
+ }
28
+ return Rect{0, 0};
29
+ }
30
+
31
+ } // namespace reanimated
@@ -1,176 +1,146 @@
1
- #pragma once
2
-
3
- #include <reanimated/Fabric/PropsRegistry.h>
4
- #include <reanimated/LayoutAnimations/LayoutAnimationsManager.h>
5
-
6
- #include <react/renderer/mounting/MountingOverrideDelegate.h>
7
- #include <react/renderer/mounting/ShadowView.h>
8
-
9
- #include <memory>
10
- #include <unordered_map>
11
- #include <unordered_set>
12
- #include <utility>
13
- #include <vector>
14
-
15
- namespace reanimated {
16
-
17
- struct Rect {
18
- double width, height;
19
- };
20
-
21
- struct Frame {
22
- std::optional<double> x, y, width, height;
23
- Frame(jsi::Runtime &runtime, const jsi::Object &newStyle) {
24
- if (newStyle.hasProperty(runtime, "originX")) {
25
- x = newStyle.getProperty(runtime, "originX").asNumber();
26
- }
27
- if (newStyle.hasProperty(runtime, "originY")) {
28
- y = newStyle.getProperty(runtime, "originY").asNumber();
29
- }
30
- if (newStyle.hasProperty(runtime, "width")) {
31
- width = newStyle.getProperty(runtime, "width").asNumber();
32
- }
33
- if (newStyle.hasProperty(runtime, "height")) {
34
- height = newStyle.getProperty(runtime, "height").asNumber();
35
- }
36
- }
37
- };
38
-
39
- struct UpdateValues {
40
- Props::Shared newProps;
41
- Frame frame;
42
- };
43
-
44
- struct Snapshot {
45
- double x, y, width, height, windowWidth, windowHeight;
46
- Snapshot(const ShadowView &shadowView, Rect window) {
47
- const auto &frame = shadowView.layoutMetrics.frame;
48
- x = frame.origin.x;
49
- y = frame.origin.y;
50
- width = frame.size.width;
51
- height = frame.size.height;
52
- windowWidth = window.width;
53
- windowHeight = window.height;
54
- }
55
- };
56
-
57
- typedef enum ExitingState {
58
- UNDEFINED = 1,
59
- WAITING = 2,
60
- ANIMATING = 4,
61
- DEAD = 8,
62
- MOVED = 16,
63
- DELETED = 32,
64
- } ExitingState;
65
-
66
- struct MutationNode;
67
-
68
- /**
69
- Represents a view that was either removed or had a child removed from the
70
- ShadowTree
71
- */
72
- struct Node {
73
- std::vector<std::shared_ptr<MutationNode>> children, unflattenedChildren;
74
- std::shared_ptr<Node> parent, unflattenedParent;
75
- Tag tag;
76
- void removeChildFromUnflattenedTree(std::shared_ptr<MutationNode> child);
77
- void applyMutationToIndices(ShadowViewMutation mutation);
78
- void insertChildren(std::vector<std::shared_ptr<MutationNode>> &newChildren);
79
- void insertUnflattenedChildren(
80
- std::vector<std::shared_ptr<MutationNode>> &newChildren);
81
- virtual bool isMutationMode();
82
- explicit Node(const Tag tag) : tag(tag) {}
83
- Node(Node &&node)
84
- : children(std::move(node.children)),
85
- unflattenedChildren(std::move(node.unflattenedChildren)),
86
- tag(node.tag) {}
87
- Node(Node &node)
88
- : children(node.children),
89
- unflattenedChildren(node.unflattenedChildren),
90
- tag(node.tag) {}
91
- virtual ~Node() = default;
92
- };
93
-
94
- /**
95
- Represents a view that was removed from the ShadowTree
96
- */
97
- struct MutationNode : public Node {
98
- ShadowViewMutation mutation;
99
- ExitingState state = UNDEFINED;
100
- explicit MutationNode(ShadowViewMutation &mutation)
101
- : Node(mutation.oldChildShadowView.tag), mutation(mutation) {}
102
- MutationNode(ShadowViewMutation &mutation, Node &&node)
103
- : Node(std::move(node)), mutation(mutation) {}
104
- bool isMutationMode() override;
105
- };
106
-
107
- struct SurfaceManager {
108
- mutable std::unordered_map<
109
- SurfaceId,
110
- std::shared_ptr<std::unordered_map<Tag, UpdateValues>>>
111
- props_;
112
- mutable std::unordered_map<SurfaceId, Rect> windows_;
113
-
114
- std::unordered_map<Tag, UpdateValues> &getUpdateMap(SurfaceId surfaceId);
115
- void
116
- updateWindow(SurfaceId surfaceId, double windowWidth, double windowHeight);
117
- Rect getWindow(SurfaceId surfaceId);
118
- };
119
-
120
- static inline void updateLayoutMetrics(
121
- LayoutMetrics &layoutMetrics,
122
- Frame &frame) {
123
- // we use optional's here to avoid overwriting non-animated values
124
- if (frame.width) {
125
- layoutMetrics.frame.size.width = *frame.width;
126
- }
127
- if (frame.height) {
128
- layoutMetrics.frame.size.height = *frame.height;
129
- }
130
- if (frame.x) {
131
- layoutMetrics.frame.origin.x = *frame.x;
132
- }
133
- if (frame.y) {
134
- layoutMetrics.frame.origin.y = *frame.y;
135
- }
136
- }
137
-
138
- static inline bool isRNSScreen(std::shared_ptr<MutationNode> node) {
139
- return !std::strcmp(
140
- node->mutation.oldChildShadowView.componentName,
141
- "RNSScreenStack") ||
142
- !std::strcmp(
143
- node->mutation.oldChildShadowView.componentName, "RNSScreen");
144
- }
145
-
146
- static inline bool hasLayoutChanged(const ShadowViewMutation &mutation) {
147
- return mutation.oldChildShadowView.layoutMetrics.frame !=
148
- mutation.newChildShadowView.layoutMetrics.frame;
149
- }
150
-
151
- static inline void mergeAndSwap(
152
- std::vector<std::shared_ptr<MutationNode>> &A,
153
- std::vector<std::shared_ptr<MutationNode>> &B) {
154
- std::vector<std::shared_ptr<MutationNode>> merged;
155
- auto it1 = A.begin(), it2 = B.begin();
156
- while (it1 != A.end() && it2 != B.end()) {
157
- if ((*it1)->mutation.index < (*it2)->mutation.index) {
158
- merged.push_back(*it1);
159
- it1++;
160
- } else {
161
- merged.push_back(*it2);
162
- it2++;
163
- }
164
- }
165
- while (it1 != A.end()) {
166
- merged.push_back(*it1);
167
- it1++;
168
- }
169
- while (it2 != B.end()) {
170
- merged.push_back(*it2);
171
- it2++;
172
- }
173
- std::swap(A, merged);
174
- }
175
-
176
- } // namespace reanimated
1
+ #pragma once
2
+
3
+ #include <reanimated/LayoutAnimations/LayoutAnimationsManager.h>
4
+
5
+ #include <react/renderer/mounting/MountingOverrideDelegate.h>
6
+ #include <react/renderer/mounting/ShadowView.h>
7
+
8
+ #include <memory>
9
+ #include <unordered_map>
10
+ #include <unordered_set>
11
+ #include <utility>
12
+ #include <vector>
13
+
14
+ namespace reanimated {
15
+
16
+ enum BeforeOrAfter { BEFORE = 0, AFTER = 1 };
17
+
18
+ struct Rect {
19
+ double width, height;
20
+ };
21
+
22
+ struct Frame {
23
+ std::optional<double> x, y, width, height;
24
+ Frame(double x, double y, double width, double height) : x(x), y(y), width(width), height(height) {}
25
+ Frame(jsi::Runtime &runtime, const jsi::Object &newStyle) {
26
+ if (newStyle.hasProperty(runtime, "originX")) {
27
+ x = newStyle.getProperty(runtime, "originX").asNumber();
28
+ }
29
+ if (newStyle.hasProperty(runtime, "originY")) {
30
+ y = newStyle.getProperty(runtime, "originY").asNumber();
31
+ }
32
+ if (newStyle.hasProperty(runtime, "width")) {
33
+ width = newStyle.getProperty(runtime, "width").asNumber();
34
+ }
35
+ if (newStyle.hasProperty(runtime, "height")) {
36
+ height = newStyle.getProperty(runtime, "height").asNumber();
37
+ }
38
+ }
39
+ };
40
+
41
+ struct UpdateValues {
42
+ Props::Shared newProps;
43
+ Frame frame;
44
+ };
45
+
46
+ struct Snapshot {
47
+ double x, y, width, height, windowWidth, windowHeight;
48
+ Snapshot(const ShadowView &shadowView, Rect window) {
49
+ const auto &frame = shadowView.layoutMetrics.frame;
50
+ x = frame.origin.x;
51
+ y = frame.origin.y;
52
+ width = frame.size.width;
53
+ height = frame.size.height;
54
+ windowWidth = window.width;
55
+ windowHeight = window.height;
56
+ }
57
+ };
58
+
59
+ typedef enum class ExitingState : std::uint8_t {
60
+ UNDEFINED = 1,
61
+ WAITING = 2,
62
+ ANIMATING = 3,
63
+ DEAD = 4,
64
+ DELETED = 5,
65
+ } ExitingState;
66
+
67
+ struct MutationNode;
68
+
69
+ enum TransitionState {
70
+ NONE = 0,
71
+ START = 1,
72
+ ACTIVE = 2,
73
+ END = 3,
74
+ CANCELLED = 4,
75
+ };
76
+
77
+ enum Intent {
78
+ NO_INTENT = 0,
79
+ TO_MOVE = 1,
80
+ TO_DELETE = 2,
81
+ };
82
+
83
+ struct LightNode {
84
+ ShadowView previous;
85
+ ShadowView current;
86
+ ExitingState state = ExitingState::UNDEFINED;
87
+ std::weak_ptr<LightNode> parent;
88
+ std::vector<std::shared_ptr<LightNode>> children;
89
+ int removeChild(std::shared_ptr<LightNode> child) {
90
+ for (int i = children.size() - 1; i >= 0; i--) {
91
+ if (children[i]->current.tag == child->current.tag) {
92
+ children.erase(children.begin() + i);
93
+ return i;
94
+ }
95
+ }
96
+ return -1;
97
+ }
98
+ };
99
+
100
+ struct SurfaceManager {
101
+ mutable std::unordered_map<SurfaceId, std::shared_ptr<std::unordered_map<Tag, UpdateValues>>> props_;
102
+ mutable std::unordered_map<SurfaceId, Rect> windows_;
103
+
104
+ std::unordered_map<Tag, UpdateValues> &getUpdateMap(SurfaceId surfaceId);
105
+ void updateWindow(SurfaceId surfaceId, double windowWidth, double windowHeight);
106
+ Rect getWindow(SurfaceId surfaceId);
107
+ };
108
+
109
+ static inline void updateLayoutMetrics(LayoutMetrics &layoutMetrics, const Frame &frame) {
110
+ // we use optional's here to avoid overwriting non-animated values
111
+ if (frame.width) {
112
+ layoutMetrics.frame.size.width = *frame.width;
113
+ }
114
+ if (frame.height) {
115
+ layoutMetrics.frame.size.height = *frame.height;
116
+ }
117
+ if (frame.x) {
118
+ layoutMetrics.frame.origin.x = *frame.x;
119
+ }
120
+ if (frame.y) {
121
+ layoutMetrics.frame.origin.y = *frame.y;
122
+ }
123
+ }
124
+
125
+ static inline bool isRNSScreenOrStack(const std::shared_ptr<LightNode> &node) {
126
+ const auto componentName = node->current.componentName;
127
+ react_native_assert(componentName && "Component name is nullptr");
128
+ return !std::strcmp(componentName, "RNSScreenStack") || !std::strcmp(componentName, "RNSScreen") ||
129
+ !std::strcmp(componentName, "RNSModalScreen");
130
+ }
131
+
132
+ static inline bool isRNSScreen(const std::shared_ptr<LightNode> &node) {
133
+ const auto componentName = node->current.componentName;
134
+ react_native_assert(componentName && "Component name is nullptr");
135
+ return !std::strcmp(componentName, "RNSScreen") || !std::strcmp(componentName, "RNSModalScreen");
136
+ }
137
+
138
+ static inline bool isRoot(const std::shared_ptr<LightNode> &node) {
139
+ return node->current.tag % 10 == 1;
140
+ }
141
+
142
+ static inline bool hasLayoutChanged(const ShadowViewMutation &mutation) {
143
+ return mutation.oldChildShadowView.layoutMetrics.frame != mutation.newChildShadowView.layoutMetrics.frame;
144
+ }
145
+
146
+ } // namespace reanimated