@react-native-ohos/react-native-reanimated 3.18.1-rc.6 → 4.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/compatibility.json +161 -0
  2. package/harmony/reanimated/BuildProfile.ets +1 -1
  3. package/harmony/reanimated/build-profile.json5 +8 -1
  4. package/harmony/reanimated/oh-package.json5 +3 -2
  5. package/harmony/reanimated/src/main/cpp/CMakeLists.txt +31 -40
  6. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +11 -16
  7. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +3 -4
  8. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -0
  9. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -0
  10. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -0
  11. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -0
  12. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -0
  13. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -0
  14. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -0
  15. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -0
  16. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -0
  17. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -0
  18. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -0
  19. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -0
  20. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -0
  21. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -0
  22. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -0
  23. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -0
  24. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -0
  25. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +93 -0
  26. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -0
  27. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -0
  28. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -0
  29. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -0
  30. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -0
  31. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -0
  32. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +44 -0
  33. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -0
  34. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -0
  35. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -0
  36. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -0
  37. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -0
  38. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -0
  39. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -0
  40. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -0
  41. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -0
  42. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -0
  43. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -0
  44. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -0
  45. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -0
  46. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -0
  47. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -0
  48. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -0
  49. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -0
  50. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -0
  51. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -0
  52. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -0
  53. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -0
  54. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -0
  55. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -0
  56. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -0
  57. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -0
  58. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -0
  59. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -0
  60. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -0
  61. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -0
  62. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -0
  63. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -0
  64. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -0
  65. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -0
  66. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -0
  67. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -0
  68. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -0
  69. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -0
  70. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -0
  71. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -0
  72. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -0
  73. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -0
  74. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -0
  75. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -0
  76. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -0
  77. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -0
  78. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -0
  79. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -0
  80. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -0
  81. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -0
  82. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -0
  83. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -0
  84. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -0
  85. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -0
  86. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -0
  87. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -0
  88. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -0
  89. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -0
  90. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -0
  91. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -0
  92. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -0
  93. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -0
  94. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -0
  95. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -0
  96. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -0
  97. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -0
  98. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -0
  99. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -0
  100. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -0
  101. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -0
  102. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -0
  103. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -0
  104. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -0
  105. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -0
  106. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -0
  107. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -0
  108. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -0
  109. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -0
  110. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -0
  111. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -0
  112. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -0
  113. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -0
  114. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -0
  115. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -0
  116. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -0
  117. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -0
  118. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -0
  119. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -0
  120. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -0
  121. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -0
  122. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -0
  123. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -0
  124. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -0
  125. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -0
  126. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -0
  127. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -0
  128. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -0
  129. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -0
  130. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -0
  131. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -0
  132. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -0
  133. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -0
  134. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -0
  135. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -0
  136. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -0
  137. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -0
  138. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -0
  139. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -0
  140. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -0
  141. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -0
  142. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -0
  143. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -0
  144. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -0
  145. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -0
  146. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -0
  147. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +110 -0
  148. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -0
  149. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -0
  150. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -0
  151. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -0
  152. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -0
  153. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -0
  154. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -0
  155. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -0
  156. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -0
  157. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +51 -39
  158. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +13 -15
  159. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +0 -3
  160. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +22 -53
  161. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +12 -8
  162. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +46 -37
  163. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +3 -10
  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 +4 -2
  171. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +62 -157
  172. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +38 -46
  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} +303 -276
  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 +5 -65
  180. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +52 -82
  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 +957 -552
  187. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +87 -111
  188. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +115 -163
  189. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +38 -54
  190. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +34 -36
  191. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +8 -0
  192. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +46 -58
  193. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +5 -9
  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 +26 -57
  197. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +12 -33
  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 +3 -4
  200. package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +60 -85
  201. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +1 -0
  202. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +0 -3
  203. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +266 -0
  204. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -0
  205. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +36 -0
  206. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -0
  207. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +3 -3
  208. package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +12 -1
  209. package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +1 -4
  210. package/harmony/reanimated.har +0 -0
  211. package/package.json +36 -18
  212. package/scripts/deploy.js +191 -0
  213. package/scripts/set-reanimated-version.js +37 -0
  214. package/scripts/update-version.js +119 -0
  215. package/scripts/validate-react-native-version.js +46 -0
  216. package/scripts/validate-worklets-build.js +17 -0
  217. package/scripts/validate-worklets-version.js +79 -0
  218. package/scripts/worklets-version.json +4 -0
  219. package/LICENSE +0 -21
  220. package/README.OpenSource +0 -11
  221. package/README.md +0 -10
  222. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.cpp +0 -68
  223. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.h +0 -68
  224. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy.h +0 -147
  225. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/CollectionUtils.h +0 -14
  226. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.cpp +0 -5
  227. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.h +0 -19
  228. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +0 -47
  229. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +0 -59
  230. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +0 -27
  231. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +0 -25
  232. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +0 -94
  233. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.h +0 -49
  234. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +0 -8
  235. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +0 -39
  236. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.cpp +0 -326
  237. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.h +0 -345
  238. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.cpp +0 -52
  239. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.h +0 -35
  240. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/Defs.h +0 -10
  241. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.cpp +0 -342
  242. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.h +0 -47
  243. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.cpp +0 -16
  244. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.h +0 -20
  245. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.cpp +0 -20
  246. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.h +0 -29
  247. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/PlatformLogger.h +0 -16
  248. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.cpp +0 -26
  249. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.h +0 -199
  250. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedVersion.cpp +0 -95
  251. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/SingleInstanceChecker.h +0 -72
  252. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ThreadSafeQueue.h +0 -49
  253. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.cpp +0 -20
  254. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.h +0 -22
  255. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +0 -29
  256. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.h +0 -41
  257. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +0 -16
  258. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +0 -19
  259. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.cpp +0 -112
  260. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.h +0 -127
  261. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.cpp +0 -53
  262. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.h +0 -22
  263. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +0 -191
  264. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +0 -155
  265. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +0 -90
  266. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +0 -36
  267. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +0 -182
  268. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +0 -22
  269. package/harmony/reanimated/src/main/cpp/ReanimatedLogger.cpp +0 -33
  270. package/harmony/reanimated/src/main/cpp/WorkletsModule.cpp +0 -61
  271. package/harmony/reanimated/src/main/cpp/WorkletsModule.h +0 -22
  272. package/harmony/reanimated/src/main/cpp/patches/AnimatedSensor/AnimatedSensorModule.cpp +0 -89
  273. package/harmony/reanimated/src/main/cpp/patches/Fabric/ShadowTreeCloner.cpp +0 -95
  274. package/harmony/reanimated/src/main/cpp/patches/NativeModules/ReanimatedModuleProxy.cpp +0 -964
  275. 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,10 +1,11 @@
1
- #ifdef RCT_NEW_ARCH_ENABLED
2
1
  #include <reanimated/LayoutAnimations/LayoutAnimationsUtils.h>
3
2
 
3
+ #include <memory>
4
+ #include <unordered_map>
5
+
4
6
  namespace reanimated {
5
7
 
6
- std::unordered_map<Tag, UpdateValues> &SurfaceManager::getUpdateMap(
7
- SurfaceId surfaceId) {
8
+ std::unordered_map<Tag, UpdateValues> &SurfaceManager::getUpdateMap(SurfaceId surfaceId) {
8
9
  auto props = props_.find(surfaceId);
9
10
  if (props != props_.end()) {
10
11
  return *props->second;
@@ -15,10 +16,7 @@ std::unordered_map<Tag, UpdateValues> &SurfaceManager::getUpdateMap(
15
16
  return *newProps;
16
17
  }
17
18
 
18
- void SurfaceManager::updateWindow(
19
- const SurfaceId surfaceId,
20
- const double windowWidth,
21
- const double windowHeight) {
19
+ void SurfaceManager::updateWindow(const SurfaceId surfaceId, const double windowWidth, const double windowHeight) {
22
20
  windows_.insert_or_assign(surfaceId, Rect{windowWidth, windowHeight});
23
21
  }
24
22
 
@@ -30,62 +28,4 @@ Rect SurfaceManager::getWindow(SurfaceId surfaceId) {
30
28
  return Rect{0, 0};
31
29
  }
32
30
 
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
31
  } // namespace reanimated
90
-
91
- #endif
@@ -1,6 +1,5 @@
1
1
  #pragma once
2
2
 
3
- #include <reanimated/Fabric/PropsRegistry.h>
4
3
  #include <reanimated/LayoutAnimations/LayoutAnimationsManager.h>
5
4
 
6
5
  #include <react/renderer/mounting/MountingOverrideDelegate.h>
@@ -14,12 +13,15 @@
14
13
 
15
14
  namespace reanimated {
16
15
 
16
+ enum BeforeOrAfter { BEFORE = 0, AFTER = 1 };
17
+
17
18
  struct Rect {
18
19
  double width, height;
19
20
  };
20
21
 
21
22
  struct Frame {
22
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) {}
23
25
  Frame(jsi::Runtime &runtime, const jsi::Object &newStyle) {
24
26
  if (newStyle.hasProperty(runtime, "originX")) {
25
27
  x = newStyle.getProperty(runtime, "originX").asNumber();
@@ -54,72 +56,57 @@ struct Snapshot {
54
56
  }
55
57
  };
56
58
 
57
- typedef enum ExitingState {
59
+ typedef enum class ExitingState : std::uint8_t {
58
60
  UNDEFINED = 1,
59
61
  WAITING = 2,
60
- ANIMATING = 4,
61
- DEAD = 8,
62
- MOVED = 16,
63
- DELETED = 32,
62
+ ANIMATING = 3,
63
+ DEAD = 4,
64
+ DELETED = 5,
64
65
  } ExitingState;
65
66
 
66
67
  struct MutationNode;
67
68
 
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;
69
+ enum TransitionState {
70
+ NONE = 0,
71
+ START = 1,
72
+ ACTIVE = 2,
73
+ END = 3,
74
+ CANCELLED = 4,
92
75
  };
93
76
 
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;
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
+ }
105
98
  };
106
99
 
107
100
  struct SurfaceManager {
108
- mutable std::unordered_map<
109
- SurfaceId,
110
- std::shared_ptr<std::unordered_map<Tag, UpdateValues>>>
111
- props_;
101
+ mutable std::unordered_map<SurfaceId, std::shared_ptr<std::unordered_map<Tag, UpdateValues>>> props_;
112
102
  mutable std::unordered_map<SurfaceId, Rect> windows_;
113
103
 
114
104
  std::unordered_map<Tag, UpdateValues> &getUpdateMap(SurfaceId surfaceId);
115
- void
116
- updateWindow(SurfaceId surfaceId, double windowWidth, double windowHeight);
105
+ void updateWindow(SurfaceId surfaceId, double windowWidth, double windowHeight);
117
106
  Rect getWindow(SurfaceId surfaceId);
118
107
  };
119
108
 
120
- static inline void updateLayoutMetrics(
121
- LayoutMetrics &layoutMetrics,
122
- Frame &frame) {
109
+ static inline void updateLayoutMetrics(LayoutMetrics &layoutMetrics, const Frame &frame) {
123
110
  // we use optional's here to avoid overwriting non-animated values
124
111
  if (frame.width) {
125
112
  layoutMetrics.frame.size.width = *frame.width;
@@ -135,42 +122,25 @@ static inline void updateLayoutMetrics(
135
122
  }
136
123
  }
137
124
 
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");
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");
144
130
  }
145
131
 
146
- static inline bool hasLayoutChanged(const ShadowViewMutation &mutation) {
147
- return mutation.oldChildShadowView.layoutMetrics.frame !=
148
- mutation.newChildShadowView.layoutMetrics.frame;
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");
149
136
  }
150
137
 
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);
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;
174
144
  }
175
145
 
176
146
  } // namespace reanimated