@react-native-ohos/react-native-reanimated 4.0.1 → 4.0.2

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 (235) hide show
  1. package/compatibility.json +161 -161
  2. package/harmony/reanimated/BuildProfile.ets +1 -1
  3. package/harmony/reanimated/build-profile.json5 +18 -18
  4. package/harmony/reanimated/hvigorfile.ts +4 -4
  5. package/harmony/reanimated/index.ets +4 -4
  6. package/harmony/reanimated/oh-package-lock.json5 +39 -0
  7. package/harmony/reanimated/oh-package.json5 +12 -12
  8. package/harmony/reanimated/src/main/cpp/CMakeLists.txt +62 -62
  9. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -81
  10. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -46
  11. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -390
  12. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -16
  13. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -30
  14. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -46
  15. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -23
  16. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -53
  17. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -21
  18. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -166
  19. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -71
  20. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -368
  21. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -53
  22. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -594
  23. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -67
  24. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -52
  25. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -26
  26. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -156
  27. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -76
  28. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +94 -94
  29. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -33
  30. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -48
  31. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -31
  32. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -135
  33. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -61
  34. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -100
  35. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +45 -45
  36. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -81
  37. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -53
  38. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -122
  39. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -38
  40. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -82
  41. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -63
  42. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -118
  43. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -174
  44. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -111
  45. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -196
  46. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -66
  47. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -134
  48. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -44
  49. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -174
  50. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -49
  51. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -45
  52. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -26
  53. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -90
  54. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -43
  55. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -17
  56. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -13
  57. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -127
  58. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -51
  59. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -145
  60. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -47
  61. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -69
  62. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -22
  63. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -66
  64. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -15
  65. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -28
  66. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -15
  67. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -13
  68. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -12
  69. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -157
  70. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -189
  71. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -76
  72. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -66
  73. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -20
  74. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -136
  75. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -40
  76. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -38
  77. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -24
  78. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -58
  79. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -24
  80. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -14
  81. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -14
  82. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -14
  83. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -17
  84. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -14
  85. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -14
  86. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -14
  87. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -14
  88. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -14
  89. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -14
  90. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -95
  91. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -36
  92. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -41
  93. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -32
  94. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -99
  95. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -37
  96. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -308
  97. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -100
  98. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -19
  99. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -94
  100. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -18
  101. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -43
  102. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -26
  103. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -103
  104. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -42
  105. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -224
  106. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -52
  107. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -218
  108. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -89
  109. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -149
  110. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -33
  111. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -208
  112. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -56
  113. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -42
  114. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -20
  115. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -41
  116. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -39
  117. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -28
  118. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -25
  119. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -14
  120. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -20
  121. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -39
  122. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -25
  123. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -47
  124. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -43
  125. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -70
  126. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -40
  127. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -146
  128. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -71
  129. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -155
  130. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -53
  131. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -170
  132. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -67
  133. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -12
  134. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -41
  135. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -31
  136. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -193
  137. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -77
  138. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -340
  139. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -80
  140. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -45
  141. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -29
  142. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -167
  143. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -51
  144. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -61
  145. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -33
  146. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -80
  147. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -39
  148. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -93
  149. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -36
  150. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +111 -111
  151. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -33
  152. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -75
  153. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -45
  154. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -12
  155. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -10
  156. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -36
  157. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -23
  158. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -149
  159. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -32
  160. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -113
  161. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -49
  162. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -46
  163. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -56
  164. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -37
  165. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -104
  166. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -22
  167. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -72
  168. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -25
  169. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -160
  170. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -71
  171. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -161
  172. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -65
  173. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -11
  174. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -137
  175. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -82
  176. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -79
  177. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -81
  178. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -864
  179. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -214
  180. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp +897 -897
  181. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -220
  182. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -31
  183. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -146
  184. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -456
  185. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -102
  186. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -544
  187. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -119
  188. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -39
  189. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1380 -1380
  190. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -230
  191. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -183
  192. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -93
  193. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -54
  194. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -28
  195. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -58
  196. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -31
  197. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -18
  198. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -44
  199. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -67
  200. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -114
  201. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -46
  202. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.h +18 -18
  203. package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +246 -233
  204. package/harmony/reanimated/src/main/cpp/ReanimatedModule.h +23 -23
  205. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +56 -56
  206. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.h +30 -30
  207. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +44 -44
  208. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.h +16 -16
  209. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +265 -265
  210. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -36
  211. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +35 -35
  212. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -23
  213. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.cpp +23 -23
  214. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +19 -19
  215. package/harmony/reanimated/src/main/cpp/TransformParser.h +93 -93
  216. package/harmony/reanimated/src/main/ets/AnimationManager.ts +60 -60
  217. package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +62 -51
  218. package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +25 -25
  219. package/harmony/reanimated/src/main/module.json5 +12 -12
  220. package/harmony/reanimated/src/main/resources/base/element/color.json +7 -7
  221. package/harmony/reanimated/src/main/resources/base/element/string.json +15 -15
  222. package/harmony/reanimated/src/main/resources/base/profile/main_pages.json +5 -5
  223. package/harmony/reanimated/src/main/resources/en_US/element/string.json +15 -15
  224. package/harmony/reanimated/src/main/resources/zh_CN/element/string.json +15 -15
  225. package/harmony/reanimated/ts.ts +6 -6
  226. package/harmony/reanimated.har +0 -0
  227. package/package.json +70 -69
  228. package/scripts/deploy.js +191 -191
  229. package/scripts/set-reanimated-version.js +37 -37
  230. package/scripts/update-version.js +119 -119
  231. package/scripts/validate-react-native-version.js +46 -46
  232. package/scripts/validate-worklets-build.js +17 -17
  233. package/scripts/validate-worklets-version.js +84 -84
  234. package/scripts/worklets-version.json +4 -4
  235. package/src/index.ts +9 -9
@@ -1,72 +1,72 @@
1
- #include <reanimated/Fabric/updates/AnimatedPropsRegistry.h>
2
- #include <reanimated/Tools/FeatureFlags.h>
3
-
4
- #include <memory>
5
- #include <utility>
6
-
7
- namespace reanimated {
8
-
9
- #if REACT_NATIVE_MINOR_VERSION >= 81
10
- static inline std::shared_ptr<const ShadowNode> shadowNodeFromValue(
11
- jsi::Runtime &rt,
12
- const jsi::Value &shadowNodeWrapper) {
13
- return Bridging<std::shared_ptr<const ShadowNode>>::fromJs(rt, shadowNodeWrapper);
14
- }
15
- #endif
16
-
17
- void AnimatedPropsRegistry::update(jsi::Runtime &rt, const jsi::Value &operations, const double timestamp) {
18
- auto operationsArray = operations.asObject(rt).asArray(rt);
19
-
20
- for (size_t i = 0, length = operationsArray.size(rt); i < length; ++i) {
21
- auto item = operationsArray.getValueAtIndex(rt, i).asObject(rt);
22
- auto shadowNodeWrapper = item.getProperty(rt, "shadowNodeWrapper");
23
- auto shadowNode = shadowNodeFromValue(rt, shadowNodeWrapper);
24
-
25
- const jsi::Value &updates = item.getProperty(rt, "updates");
26
- addUpdatesToBatch(shadowNode, jsi::dynamicFromValue(rt, updates));
27
-
28
- if constexpr (StaticFeatureFlags::getFlag("FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS")) {
29
- timestampMap_[shadowNode->getTag()] = timestamp;
30
- }
31
- }
32
- }
33
-
34
- void AnimatedPropsRegistry::remove(const Tag tag) {
35
- updatesRegistry_.erase(tag);
36
- }
37
-
38
- jsi::Value AnimatedPropsRegistry::getUpdatesOlderThanTimestamp(jsi::Runtime &rt, const double timestamp) {
39
- std::vector<std::pair<Tag, std::reference_wrapper<const folly::dynamic>>> updates;
40
-
41
- for (const auto &[viewTag, pair] : updatesRegistry_) {
42
- if (timestampMap_.at(viewTag) < timestamp) {
43
- updates.emplace_back(viewTag, std::cref(pair.second));
44
- }
45
- }
46
-
47
- const jsi::Array array(rt, updates.size());
48
- size_t i = 0;
49
- for (const auto &[viewTag, styleProps] : updates) {
50
- const jsi::Object item(rt);
51
- item.setProperty(rt, "viewTag", viewTag);
52
- item.setProperty(rt, "styleProps", jsi::valueFromDynamic(rt, styleProps.get()));
53
- array.setValueAtIndex(rt, i++, item);
54
- }
55
-
56
- return jsi::Value(rt, array);
57
- }
58
-
59
- void AnimatedPropsRegistry::removeUpdatesOlderThanTimestamp(const double timestamp) {
60
- for (auto it = timestampMap_.begin(); it != timestampMap_.end();) {
61
- const auto viewTag = it->first;
62
- const auto viewTimestamp = it->second;
63
- if (viewTimestamp < timestamp) {
64
- it = timestampMap_.erase(it);
65
- updatesRegistry_.erase(viewTag);
66
- } else {
67
- it++;
68
- }
69
- }
70
- }
71
-
72
- } // namespace reanimated
1
+ #include <reanimated/Fabric/updates/AnimatedPropsRegistry.h>
2
+ #include <reanimated/Tools/FeatureFlags.h>
3
+
4
+ #include <memory>
5
+ #include <utility>
6
+
7
+ namespace reanimated {
8
+
9
+ #if REACT_NATIVE_MINOR_VERSION >= 81
10
+ static inline std::shared_ptr<const ShadowNode> shadowNodeFromValue(
11
+ jsi::Runtime &rt,
12
+ const jsi::Value &shadowNodeWrapper) {
13
+ return Bridging<std::shared_ptr<const ShadowNode>>::fromJs(rt, shadowNodeWrapper);
14
+ }
15
+ #endif
16
+
17
+ void AnimatedPropsRegistry::update(jsi::Runtime &rt, const jsi::Value &operations, const double timestamp) {
18
+ auto operationsArray = operations.asObject(rt).asArray(rt);
19
+
20
+ for (size_t i = 0, length = operationsArray.size(rt); i < length; ++i) {
21
+ auto item = operationsArray.getValueAtIndex(rt, i).asObject(rt);
22
+ auto shadowNodeWrapper = item.getProperty(rt, "shadowNodeWrapper");
23
+ auto shadowNode = shadowNodeFromValue(rt, shadowNodeWrapper);
24
+
25
+ const jsi::Value &updates = item.getProperty(rt, "updates");
26
+ addUpdatesToBatch(shadowNode, jsi::dynamicFromValue(rt, updates));
27
+
28
+ if constexpr (StaticFeatureFlags::getFlag("FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS")) {
29
+ timestampMap_[shadowNode->getTag()] = timestamp;
30
+ }
31
+ }
32
+ }
33
+
34
+ void AnimatedPropsRegistry::remove(const Tag tag) {
35
+ updatesRegistry_.erase(tag);
36
+ }
37
+
38
+ jsi::Value AnimatedPropsRegistry::getUpdatesOlderThanTimestamp(jsi::Runtime &rt, const double timestamp) {
39
+ std::vector<std::pair<Tag, std::reference_wrapper<const folly::dynamic>>> updates;
40
+
41
+ for (const auto &[viewTag, pair] : updatesRegistry_) {
42
+ if (timestampMap_.at(viewTag) < timestamp) {
43
+ updates.emplace_back(viewTag, std::cref(pair.second));
44
+ }
45
+ }
46
+
47
+ const jsi::Array array(rt, updates.size());
48
+ size_t i = 0;
49
+ for (const auto &[viewTag, styleProps] : updates) {
50
+ const jsi::Object item(rt);
51
+ item.setProperty(rt, "viewTag", viewTag);
52
+ item.setProperty(rt, "styleProps", jsi::valueFromDynamic(rt, styleProps.get()));
53
+ array.setValueAtIndex(rt, i++, item);
54
+ }
55
+
56
+ return jsi::Value(rt, array);
57
+ }
58
+
59
+ void AnimatedPropsRegistry::removeUpdatesOlderThanTimestamp(const double timestamp) {
60
+ for (auto it = timestampMap_.begin(); it != timestampMap_.end();) {
61
+ const auto viewTag = it->first;
62
+ const auto viewTimestamp = it->second;
63
+ if (viewTimestamp < timestamp) {
64
+ it = timestampMap_.erase(it);
65
+ updatesRegistry_.erase(viewTag);
66
+ } else {
67
+ it++;
68
+ }
69
+ }
70
+ }
71
+
72
+ } // namespace reanimated
@@ -1,25 +1,25 @@
1
- #pragma once
2
-
3
- #include <reanimated/Fabric/updates/UpdatesRegistry.h>
4
-
5
- #include <react/renderer/uimanager/UIManager.h>
6
-
7
- #include <memory>
8
- #include <string>
9
- #include <unordered_map>
10
- #include <vector>
11
-
12
- namespace reanimated {
13
-
14
- class AnimatedPropsRegistry : public UpdatesRegistry {
15
- public:
16
- void update(jsi::Runtime &rt, const jsi::Value &operations, double timestamp);
17
- void remove(Tag tag) override;
18
- jsi::Value getUpdatesOlderThanTimestamp(jsi::Runtime &rt, double timestamp);
19
- void removeUpdatesOlderThanTimestamp(double timestamp);
20
-
21
- private:
22
- std::unordered_map<Tag, double> timestampMap_; // viewTag -> timestamp, protected by `mutex_`
23
- };
24
-
25
- } // namespace reanimated
1
+ #pragma once
2
+
3
+ #include <reanimated/Fabric/updates/UpdatesRegistry.h>
4
+
5
+ #include <react/renderer/uimanager/UIManager.h>
6
+
7
+ #include <memory>
8
+ #include <string>
9
+ #include <unordered_map>
10
+ #include <vector>
11
+
12
+ namespace reanimated {
13
+
14
+ class AnimatedPropsRegistry : public UpdatesRegistry {
15
+ public:
16
+ void update(jsi::Runtime &rt, const jsi::Value &operations, double timestamp);
17
+ void remove(Tag tag) override;
18
+ jsi::Value getUpdatesOlderThanTimestamp(jsi::Runtime &rt, double timestamp);
19
+ void removeUpdatesOlderThanTimestamp(double timestamp);
20
+
21
+ private:
22
+ std::unordered_map<Tag, double> timestampMap_; // viewTag -> timestamp, protected by `mutex_`
23
+ };
24
+
25
+ } // namespace reanimated
@@ -1,160 +1,160 @@
1
- #include <reanimated/Fabric/updates/UpdatesRegistry.h>
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <unordered_set>
6
- #include <utility>
7
- #include <vector>
8
-
9
- namespace reanimated {
10
-
11
- std::lock_guard<std::mutex> UpdatesRegistry::lock() const {
12
- return std::lock_guard<std::mutex>{mutex_};
13
- }
14
-
15
- bool UpdatesRegistry::isEmpty() const {
16
- return updatesRegistry_.empty();
17
- }
18
-
19
- folly::dynamic UpdatesRegistry::get(const Tag tag) const {
20
- std::lock_guard<std::mutex> lock{mutex_};
21
-
22
- auto it = updatesRegistry_.find(tag);
23
- if (it == updatesRegistry_.cend()) {
24
- return nullptr;
25
- }
26
- return it->second.second;
27
- }
28
-
29
- void UpdatesRegistry::flushUpdates(UpdatesBatch &updatesBatch) {
30
- auto copiedUpdatesBatch = std::move(updatesBatch_);
31
- updatesBatch_.clear();
32
-
33
- // Store all updates in the registry for later use in the commit hook
34
- flushUpdatesToRegistry(copiedUpdatesBatch);
35
- // Flush the updates to the updatesBatch used to apply current changes
36
- for (auto &[shadowNode, props] : copiedUpdatesBatch) {
37
- updatesBatch.emplace_back(shadowNode, std::move(props));
38
- }
39
- }
40
-
41
- void UpdatesRegistry::collectProps(PropsMap &propsMap) {
42
- std::lock_guard<std::mutex> lock{mutex_};
43
-
44
- auto copiedRegistry = updatesRegistry_;
45
- for (const auto &[tag, pair] : copiedRegistry) {
46
- const auto &[shadowNode, props] = pair;
47
- auto &family = shadowNode->getFamily();
48
- auto it = propsMap.find(&family);
49
-
50
- if (it == propsMap.cend()) {
51
- auto propsVector = std::vector<RawProps>{};
52
- propsVector.emplace_back(RawProps(props));
53
- propsMap.emplace(&family, propsVector);
54
- } else {
55
- it->second.push_back(RawProps(props));
56
- }
57
- }
58
- }
59
-
60
- void UpdatesRegistry::addUpdatesToBatch(
61
- const std::shared_ptr<const ShadowNode> &shadowNode,
62
- const folly::dynamic &props) {
63
- updatesBatch_.emplace_back(shadowNode, props);
64
- }
65
-
66
- void UpdatesRegistry::setInUpdatesRegistry(
67
- const std::shared_ptr<const ShadowNode> &shadowNode,
68
- const folly::dynamic &props) {
69
- const auto tag = shadowNode->getTag();
70
- #ifdef ANDROID
71
- updatePropsToRevert(tag, &props);
72
- #endif
73
- updatesRegistry_[tag] = std::make_pair(shadowNode, props);
74
- }
75
-
76
- folly::dynamic UpdatesRegistry::getUpdatesFromRegistry(const Tag tag) const {
77
- auto it = updatesRegistry_.find(tag);
78
- if (it == updatesRegistry_.cend()) {
79
- return folly::dynamic();
80
- }
81
- return it->second.second;
82
- }
83
-
84
- void UpdatesRegistry::removeFromUpdatesRegistry(const Tag tag) {
85
- #ifdef ANDROID
86
- updatePropsToRevert(tag);
87
- #endif
88
- updatesRegistry_.erase(tag);
89
- }
90
-
91
- void UpdatesRegistry::flushUpdatesToRegistry(const UpdatesBatch &updatesBatch) {
92
- for (auto &[shadowNode, props] : updatesBatch) {
93
- const auto tag = shadowNode->getTag();
94
- auto it = updatesRegistry_.find(tag);
95
-
96
- if (it == updatesRegistry_.cend()) {
97
- updatesRegistry_[tag] = std::make_pair(shadowNode, props);
98
- } else {
99
- it->second.second.update(props);
100
- }
101
- }
102
- }
103
-
104
- #ifdef ANDROID
105
-
106
- bool UpdatesRegistry::hasPropsToRevert() const {
107
- return !propsToRevertMap_.empty();
108
- }
109
-
110
- void UpdatesRegistry::collectPropsToRevert(PropsToRevertMap &propsToRevertMap) {
111
- std::lock_guard<std::mutex> lock{mutex_};
112
-
113
- for (const auto &[tag, pair] : propsToRevertMap_) {
114
- const auto &[shadowNode, props] = pair;
115
- const auto it = propsToRevertMap.find(tag);
116
- if (it == propsToRevertMap.end()) {
117
- propsToRevertMap[tag] = {shadowNode, props};
118
- } else {
119
- it->second.props.insert(props.begin(), props.end());
120
- }
121
- }
122
-
123
- propsToRevertMap_.clear();
124
- }
125
-
126
- void UpdatesRegistry::updatePropsToRevert(const Tag tag, const folly::dynamic *newProps) {
127
- auto it = updatesRegistry_.find(tag);
128
- if (it == updatesRegistry_.end()) {
129
- return;
130
- }
131
-
132
- const auto &shadowNode = it->second.first;
133
- const auto &registryProps = it->second.second;
134
- if (propsToRevertMap_.find(tag) == propsToRevertMap_.end()) {
135
- propsToRevertMap_[tag] = {shadowNode, std::unordered_set<std::string>()};
136
- }
137
-
138
- if (newProps == nullptr) {
139
- // If newProps is not provided, revert all props from registry
140
- for (const auto &propName : registryProps.keys()) {
141
- propsToRevertMap_[tag].props.emplace(propName.asString());
142
- }
143
- } else {
144
- // If newProps is provided, revert only props that are in registry but not
145
- // in newProps
146
- for (const auto &propName : registryProps.keys()) {
147
- if (newProps->find(propName) == newProps->items().end()) {
148
- propsToRevertMap_[tag].props.emplace(propName.asString());
149
- }
150
- }
151
- }
152
-
153
- if (propsToRevertMap_[tag].props.empty()) {
154
- propsToRevertMap_.erase(tag);
155
- }
156
- }
157
-
158
- #endif
159
-
160
- } // namespace reanimated
1
+ #include <reanimated/Fabric/updates/UpdatesRegistry.h>
2
+
3
+ #include <memory>
4
+ #include <string>
5
+ #include <unordered_set>
6
+ #include <utility>
7
+ #include <vector>
8
+
9
+ namespace reanimated {
10
+
11
+ std::lock_guard<std::mutex> UpdatesRegistry::lock() const {
12
+ return std::lock_guard<std::mutex>{mutex_};
13
+ }
14
+
15
+ bool UpdatesRegistry::isEmpty() const {
16
+ return updatesRegistry_.empty();
17
+ }
18
+
19
+ folly::dynamic UpdatesRegistry::get(const Tag tag) const {
20
+ std::lock_guard<std::mutex> lock{mutex_};
21
+
22
+ auto it = updatesRegistry_.find(tag);
23
+ if (it == updatesRegistry_.cend()) {
24
+ return nullptr;
25
+ }
26
+ return it->second.second;
27
+ }
28
+
29
+ void UpdatesRegistry::flushUpdates(UpdatesBatch &updatesBatch) {
30
+ auto copiedUpdatesBatch = std::move(updatesBatch_);
31
+ updatesBatch_.clear();
32
+
33
+ // Store all updates in the registry for later use in the commit hook
34
+ flushUpdatesToRegistry(copiedUpdatesBatch);
35
+ // Flush the updates to the updatesBatch used to apply current changes
36
+ for (auto &[shadowNode, props] : copiedUpdatesBatch) {
37
+ updatesBatch.emplace_back(shadowNode, std::move(props));
38
+ }
39
+ }
40
+
41
+ void UpdatesRegistry::collectProps(PropsMap &propsMap) {
42
+ std::lock_guard<std::mutex> lock{mutex_};
43
+
44
+ auto copiedRegistry = updatesRegistry_;
45
+ for (const auto &[tag, pair] : copiedRegistry) {
46
+ const auto &[shadowNode, props] = pair;
47
+ auto &family = shadowNode->getFamily();
48
+ auto it = propsMap.find(&family);
49
+
50
+ if (it == propsMap.cend()) {
51
+ auto propsVector = std::vector<RawProps>{};
52
+ propsVector.emplace_back(RawProps(props));
53
+ propsMap.emplace(&family, propsVector);
54
+ } else {
55
+ it->second.push_back(RawProps(props));
56
+ }
57
+ }
58
+ }
59
+
60
+ void UpdatesRegistry::addUpdatesToBatch(
61
+ const std::shared_ptr<const ShadowNode> &shadowNode,
62
+ const folly::dynamic &props) {
63
+ updatesBatch_.emplace_back(shadowNode, props);
64
+ }
65
+
66
+ void UpdatesRegistry::setInUpdatesRegistry(
67
+ const std::shared_ptr<const ShadowNode> &shadowNode,
68
+ const folly::dynamic &props) {
69
+ const auto tag = shadowNode->getTag();
70
+ #ifdef ANDROID
71
+ updatePropsToRevert(tag, &props);
72
+ #endif
73
+ updatesRegistry_[tag] = std::make_pair(shadowNode, props);
74
+ }
75
+
76
+ folly::dynamic UpdatesRegistry::getUpdatesFromRegistry(const Tag tag) const {
77
+ auto it = updatesRegistry_.find(tag);
78
+ if (it == updatesRegistry_.cend()) {
79
+ return folly::dynamic();
80
+ }
81
+ return it->second.second;
82
+ }
83
+
84
+ void UpdatesRegistry::removeFromUpdatesRegistry(const Tag tag) {
85
+ #ifdef ANDROID
86
+ updatePropsToRevert(tag);
87
+ #endif
88
+ updatesRegistry_.erase(tag);
89
+ }
90
+
91
+ void UpdatesRegistry::flushUpdatesToRegistry(const UpdatesBatch &updatesBatch) {
92
+ for (auto &[shadowNode, props] : updatesBatch) {
93
+ const auto tag = shadowNode->getTag();
94
+ auto it = updatesRegistry_.find(tag);
95
+
96
+ if (it == updatesRegistry_.cend()) {
97
+ updatesRegistry_[tag] = std::make_pair(shadowNode, props);
98
+ } else {
99
+ it->second.second.update(props);
100
+ }
101
+ }
102
+ }
103
+
104
+ #ifdef ANDROID
105
+
106
+ bool UpdatesRegistry::hasPropsToRevert() const {
107
+ return !propsToRevertMap_.empty();
108
+ }
109
+
110
+ void UpdatesRegistry::collectPropsToRevert(PropsToRevertMap &propsToRevertMap) {
111
+ std::lock_guard<std::mutex> lock{mutex_};
112
+
113
+ for (const auto &[tag, pair] : propsToRevertMap_) {
114
+ const auto &[shadowNode, props] = pair;
115
+ const auto it = propsToRevertMap.find(tag);
116
+ if (it == propsToRevertMap.end()) {
117
+ propsToRevertMap[tag] = {shadowNode, props};
118
+ } else {
119
+ it->second.props.insert(props.begin(), props.end());
120
+ }
121
+ }
122
+
123
+ propsToRevertMap_.clear();
124
+ }
125
+
126
+ void UpdatesRegistry::updatePropsToRevert(const Tag tag, const folly::dynamic *newProps) {
127
+ auto it = updatesRegistry_.find(tag);
128
+ if (it == updatesRegistry_.end()) {
129
+ return;
130
+ }
131
+
132
+ const auto &shadowNode = it->second.first;
133
+ const auto &registryProps = it->second.second;
134
+ if (propsToRevertMap_.find(tag) == propsToRevertMap_.end()) {
135
+ propsToRevertMap_[tag] = {shadowNode, std::unordered_set<std::string>()};
136
+ }
137
+
138
+ if (newProps == nullptr) {
139
+ // If newProps is not provided, revert all props from registry
140
+ for (const auto &propName : registryProps.keys()) {
141
+ propsToRevertMap_[tag].props.emplace(propName.asString());
142
+ }
143
+ } else {
144
+ // If newProps is provided, revert only props that are in registry but not
145
+ // in newProps
146
+ for (const auto &propName : registryProps.keys()) {
147
+ if (newProps->find(propName) == newProps->items().end()) {
148
+ propsToRevertMap_[tag].props.emplace(propName.asString());
149
+ }
150
+ }
151
+ }
152
+
153
+ if (propsToRevertMap_[tag].props.empty()) {
154
+ propsToRevertMap_.erase(tag);
155
+ }
156
+ }
157
+
158
+ #endif
159
+
160
+ } // namespace reanimated
@@ -1,71 +1,71 @@
1
- #pragma once
2
-
3
- #include <reanimated/Fabric/ShadowTreeCloner.h>
4
-
5
- #include <react/renderer/core/ShadowNode.h>
6
-
7
- #include <jsi/jsi.h>
8
- #include <memory>
9
- #include <string>
10
- #include <unordered_map>
11
- #include <unordered_set>
12
- #include <utility>
13
- #include <vector>
14
-
15
- namespace reanimated {
16
-
17
- using namespace facebook;
18
- using namespace react;
19
-
20
- using UpdatesBatch = std::vector<std::pair<std::shared_ptr<const ShadowNode>, folly::dynamic>>;
21
- using RegistryMap = std::unordered_map<Tag, std::pair<std::shared_ptr<const ShadowNode>, folly::dynamic>>;
22
-
23
- #ifdef ANDROID
24
- struct PropsToRevert {
25
- std::shared_ptr<const ShadowNode> shadowNode;
26
- std::unordered_set<std::string> props;
27
- };
28
-
29
- using PropsToRevertMap = std::unordered_map<Tag, PropsToRevert>;
30
- #endif
31
-
32
- class UpdatesRegistry {
33
- public:
34
- virtual ~UpdatesRegistry() {}
35
-
36
- std::lock_guard<std::mutex> lock() const;
37
-
38
- virtual bool isEmpty() const;
39
- folly::dynamic get(Tag tag) const;
40
- virtual void remove(Tag tag) = 0;
41
-
42
- #ifdef ANDROID
43
- bool hasPropsToRevert() const;
44
- void collectPropsToRevert(PropsToRevertMap &propsToRevertMap);
45
- #endif
46
-
47
- void flushUpdates(UpdatesBatch &updatesBatch);
48
- void collectProps(PropsMap &propsMap);
49
-
50
- protected:
51
- mutable std::mutex mutex_;
52
- RegistryMap updatesRegistry_;
53
-
54
- void addUpdatesToBatch(const std::shared_ptr<const ShadowNode> &shadowNode, const folly::dynamic &props);
55
- folly::dynamic getUpdatesFromRegistry(const Tag tag) const;
56
- void setInUpdatesRegistry(const std::shared_ptr<const ShadowNode> &shadowNode, const folly::dynamic &props);
57
- void removeFromUpdatesRegistry(Tag tag);
58
-
59
- private:
60
- UpdatesBatch updatesBatch_;
61
-
62
- void flushUpdatesToRegistry(const UpdatesBatch &updatesBatch);
63
-
64
- #ifdef ANDROID
65
- PropsToRevertMap propsToRevertMap_;
66
-
67
- void updatePropsToRevert(Tag tag, const folly::dynamic *newProps = nullptr);
68
- #endif
69
- };
70
-
71
- } // namespace reanimated
1
+ #pragma once
2
+
3
+ #include <reanimated/Fabric/ShadowTreeCloner.h>
4
+
5
+ #include <react/renderer/core/ShadowNode.h>
6
+
7
+ #include <jsi/jsi.h>
8
+ #include <memory>
9
+ #include <string>
10
+ #include <unordered_map>
11
+ #include <unordered_set>
12
+ #include <utility>
13
+ #include <vector>
14
+
15
+ namespace reanimated {
16
+
17
+ using namespace facebook;
18
+ using namespace react;
19
+
20
+ using UpdatesBatch = std::vector<std::pair<std::shared_ptr<const ShadowNode>, folly::dynamic>>;
21
+ using RegistryMap = std::unordered_map<Tag, std::pair<std::shared_ptr<const ShadowNode>, folly::dynamic>>;
22
+
23
+ #ifdef ANDROID
24
+ struct PropsToRevert {
25
+ std::shared_ptr<const ShadowNode> shadowNode;
26
+ std::unordered_set<std::string> props;
27
+ };
28
+
29
+ using PropsToRevertMap = std::unordered_map<Tag, PropsToRevert>;
30
+ #endif
31
+
32
+ class UpdatesRegistry {
33
+ public:
34
+ virtual ~UpdatesRegistry() {}
35
+
36
+ std::lock_guard<std::mutex> lock() const;
37
+
38
+ virtual bool isEmpty() const;
39
+ folly::dynamic get(Tag tag) const;
40
+ virtual void remove(Tag tag) = 0;
41
+
42
+ #ifdef ANDROID
43
+ bool hasPropsToRevert() const;
44
+ void collectPropsToRevert(PropsToRevertMap &propsToRevertMap);
45
+ #endif
46
+
47
+ void flushUpdates(UpdatesBatch &updatesBatch);
48
+ void collectProps(PropsMap &propsMap);
49
+
50
+ protected:
51
+ mutable std::mutex mutex_;
52
+ RegistryMap updatesRegistry_;
53
+
54
+ void addUpdatesToBatch(const std::shared_ptr<const ShadowNode> &shadowNode, const folly::dynamic &props);
55
+ folly::dynamic getUpdatesFromRegistry(const Tag tag) const;
56
+ void setInUpdatesRegistry(const std::shared_ptr<const ShadowNode> &shadowNode, const folly::dynamic &props);
57
+ void removeFromUpdatesRegistry(Tag tag);
58
+
59
+ private:
60
+ UpdatesBatch updatesBatch_;
61
+
62
+ void flushUpdatesToRegistry(const UpdatesBatch &updatesBatch);
63
+
64
+ #ifdef ANDROID
65
+ PropsToRevertMap propsToRevertMap_;
66
+
67
+ void updatePropsToRevert(Tag tag, const folly::dynamic *newProps = nullptr);
68
+ #endif
69
+ };
70
+
71
+ } // namespace reanimated