@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,137 +1,137 @@
1
- #include <reanimated/LayoutAnimations/LayoutAnimationsManager.h>
2
-
3
- #include <memory>
4
- #include <unordered_map>
5
- #include <utility>
6
- #include <vector>
7
-
8
- namespace reanimated {
9
-
10
- void LayoutAnimationsManager::configureAnimationBatch(const std::vector<LayoutAnimationConfig> &layoutAnimationsBatch) {
11
- auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
12
- for (const auto &layoutAnimationConfig : layoutAnimationsBatch) {
13
- const auto &[tag, type, config, sharedTag] = layoutAnimationConfig;
14
-
15
- if (type == LayoutAnimationType::ENTERING) {
16
- enteringAnimationsForNativeID_[tag] = config;
17
- continue;
18
- }
19
- if (type == LayoutAnimationType::SHARED_ELEMENT_TRANSITION_NATIVE_ID) {
20
- sharedTransitionsForNativeID_[tag] = config;
21
- sharedTransitionManager_->nativeIDToName_[tag] = sharedTag;
22
- continue;
23
- }
24
- if (type == LayoutAnimationType::SHARED_ELEMENT_TRANSITION) {
25
- if (config == nullptr) {
26
- // TODO (future): if the view was transitioned (e.g. so we are on the second screen)
27
- // and we remove the config, we should also bring back the view (probably using tagsToRestore_)
28
- sharedTransitions_.erase(tag);
29
- sharedTransitionManager_->tagToName_.erase(tag);
30
- } else {
31
- sharedTransitions_[tag] = config;
32
- sharedTransitionManager_->tagToName_[tag] = sharedTag;
33
- }
34
- continue;
35
- }
36
- if (config == nullptr) {
37
- getConfigsForType(type).erase(tag);
38
- } else {
39
- getConfigsForType(type)[tag] = config;
40
- }
41
- }
42
- }
43
-
44
- void LayoutAnimationsManager::setShouldAnimateExiting(const int tag, const bool value) {
45
- auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
46
- shouldAnimateExitingForTag_[tag] = value;
47
- }
48
-
49
- bool LayoutAnimationsManager::shouldAnimateExiting(const int tag, const bool shouldAnimate) {
50
- auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
51
- return shouldAnimateExitingForTag_.contains(tag) ? shouldAnimateExitingForTag_[tag] : shouldAnimate;
52
- }
53
-
54
- bool LayoutAnimationsManager::hasLayoutAnimation(const int tag, const LayoutAnimationType type) {
55
- auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
56
- return getConfigsForType(type).contains(tag);
57
- }
58
-
59
- void LayoutAnimationsManager::clearLayoutAnimationConfig(const int tag) {
60
- auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
61
- enteringAnimations_.erase(tag);
62
- exitingAnimations_.erase(tag);
63
- layoutAnimations_.erase(tag);
64
- shouldAnimateExitingForTag_.erase(tag);
65
- }
66
-
67
- void LayoutAnimationsManager::startLayoutAnimation(
68
- jsi::Runtime &rt,
69
- const int tag,
70
- const LayoutAnimationType type,
71
- const jsi::Object &values) {
72
- std::shared_ptr<Serializable> config;
73
- {
74
- auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
75
- if (!getConfigsForType(type).contains(tag)) {
76
- return;
77
- }
78
- config = getConfigsForType(type)[tag];
79
- }
80
- // TODO: cache the following!!
81
- jsi::Value layoutAnimationRepositoryAsValue =
82
- rt.global().getPropertyAsObject(rt, "global").getProperty(rt, "LayoutAnimationsManager");
83
- jsi::Function startAnimationForTag =
84
- layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(rt, "start");
85
- startAnimationForTag.call(rt, jsi::Value(tag), jsi::Value(static_cast<int>(type)), values, config->toJSValue(rt));
86
- }
87
-
88
- void LayoutAnimationsManager::cancelLayoutAnimation(jsi::Runtime &rt, const int tag) const {
89
- jsi::Value layoutAnimationRepositoryAsValue =
90
- rt.global().getPropertyAsObject(rt, "global").getProperty(rt, "LayoutAnimationsManager");
91
- jsi::Function cancelLayoutAnimation =
92
- layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(rt, "stop");
93
- cancelLayoutAnimation.call(rt, jsi::Value(tag));
94
- }
95
-
96
- void LayoutAnimationsManager::transferConfigFromNativeID(const int nativeId, const int tag) {
97
- auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
98
- const auto config = enteringAnimationsForNativeID_[nativeId];
99
- if (config) {
100
- enteringAnimations_.insert_or_assign(tag, config);
101
- }
102
- enteringAnimationsForNativeID_.erase(nativeId);
103
-
104
- const auto sharedTransitionConfig = sharedTransitionsForNativeID_[nativeId];
105
- if (sharedTransitionConfig) {
106
- sharedTransitions_.insert_or_assign(tag, sharedTransitionConfig);
107
- sharedTransitionManager_->tagToName_[tag] = sharedTransitionManager_->nativeIDToName_[nativeId];
108
- }
109
- sharedTransitionsForNativeID_.erase(nativeId);
110
- sharedTransitionManager_->nativeIDToName_.erase(nativeId);
111
- }
112
-
113
- void LayoutAnimationsManager::transferSharedConfig(const Tag from, const Tag to) {
114
- sharedTransitions_[to] = sharedTransitions_[from];
115
- }
116
-
117
- std::shared_ptr<SharedTransitionManager> LayoutAnimationsManager::getSharedTransitionManager() {
118
- return sharedTransitionManager_;
119
- }
120
-
121
- std::unordered_map<int, std::shared_ptr<Serializable>> &LayoutAnimationsManager::getConfigsForType(
122
- const LayoutAnimationType type) {
123
- switch (type) {
124
- case LayoutAnimationType::ENTERING:
125
- return enteringAnimations_;
126
- case LayoutAnimationType::EXITING:
127
- return exitingAnimations_;
128
- case LayoutAnimationType::LAYOUT:
129
- return layoutAnimations_;
130
- case LayoutAnimationType::SHARED_ELEMENT_TRANSITION:
131
- return sharedTransitions_;
132
- default:
133
- throw std::invalid_argument("[Reanimated] Unknown layout animation type");
134
- }
135
- }
136
-
137
- } // namespace reanimated
1
+ #include <reanimated/LayoutAnimations/LayoutAnimationsManager.h>
2
+
3
+ #include <memory>
4
+ #include <unordered_map>
5
+ #include <utility>
6
+ #include <vector>
7
+
8
+ namespace reanimated {
9
+
10
+ void LayoutAnimationsManager::configureAnimationBatch(const std::vector<LayoutAnimationConfig> &layoutAnimationsBatch) {
11
+ auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
12
+ for (const auto &layoutAnimationConfig : layoutAnimationsBatch) {
13
+ const auto &[tag, type, config, sharedTag] = layoutAnimationConfig;
14
+
15
+ if (type == LayoutAnimationType::ENTERING) {
16
+ enteringAnimationsForNativeID_[tag] = config;
17
+ continue;
18
+ }
19
+ if (type == LayoutAnimationType::SHARED_ELEMENT_TRANSITION_NATIVE_ID) {
20
+ sharedTransitionsForNativeID_[tag] = config;
21
+ sharedTransitionManager_->nativeIDToName_[tag] = sharedTag;
22
+ continue;
23
+ }
24
+ if (type == LayoutAnimationType::SHARED_ELEMENT_TRANSITION) {
25
+ if (config == nullptr) {
26
+ // TODO (future): if the view was transitioned (e.g. so we are on the second screen)
27
+ // and we remove the config, we should also bring back the view (probably using tagsToRestore_)
28
+ sharedTransitions_.erase(tag);
29
+ sharedTransitionManager_->tagToName_.erase(tag);
30
+ } else {
31
+ sharedTransitions_[tag] = config;
32
+ sharedTransitionManager_->tagToName_[tag] = sharedTag;
33
+ }
34
+ continue;
35
+ }
36
+ if (config == nullptr) {
37
+ getConfigsForType(type).erase(tag);
38
+ } else {
39
+ getConfigsForType(type)[tag] = config;
40
+ }
41
+ }
42
+ }
43
+
44
+ void LayoutAnimationsManager::setShouldAnimateExiting(const int tag, const bool value) {
45
+ auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
46
+ shouldAnimateExitingForTag_[tag] = value;
47
+ }
48
+
49
+ bool LayoutAnimationsManager::shouldAnimateExiting(const int tag, const bool shouldAnimate) {
50
+ auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
51
+ return shouldAnimateExitingForTag_.contains(tag) ? shouldAnimateExitingForTag_[tag] : shouldAnimate;
52
+ }
53
+
54
+ bool LayoutAnimationsManager::hasLayoutAnimation(const int tag, const LayoutAnimationType type) {
55
+ auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
56
+ return getConfigsForType(type).contains(tag);
57
+ }
58
+
59
+ void LayoutAnimationsManager::clearLayoutAnimationConfig(const int tag) {
60
+ auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
61
+ enteringAnimations_.erase(tag);
62
+ exitingAnimations_.erase(tag);
63
+ layoutAnimations_.erase(tag);
64
+ shouldAnimateExitingForTag_.erase(tag);
65
+ }
66
+
67
+ void LayoutAnimationsManager::startLayoutAnimation(
68
+ jsi::Runtime &rt,
69
+ const int tag,
70
+ const LayoutAnimationType type,
71
+ const jsi::Object &values) {
72
+ std::shared_ptr<Serializable> config;
73
+ {
74
+ auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
75
+ if (!getConfigsForType(type).contains(tag)) {
76
+ return;
77
+ }
78
+ config = getConfigsForType(type)[tag];
79
+ }
80
+ // TODO: cache the following!!
81
+ jsi::Value layoutAnimationRepositoryAsValue =
82
+ rt.global().getPropertyAsObject(rt, "global").getProperty(rt, "LayoutAnimationsManager");
83
+ jsi::Function startAnimationForTag =
84
+ layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(rt, "start");
85
+ startAnimationForTag.call(rt, jsi::Value(tag), jsi::Value(static_cast<int>(type)), values, config->toJSValue(rt));
86
+ }
87
+
88
+ void LayoutAnimationsManager::cancelLayoutAnimation(jsi::Runtime &rt, const int tag) const {
89
+ jsi::Value layoutAnimationRepositoryAsValue =
90
+ rt.global().getPropertyAsObject(rt, "global").getProperty(rt, "LayoutAnimationsManager");
91
+ jsi::Function cancelLayoutAnimation =
92
+ layoutAnimationRepositoryAsValue.getObject(rt).getPropertyAsFunction(rt, "stop");
93
+ cancelLayoutAnimation.call(rt, jsi::Value(tag));
94
+ }
95
+
96
+ void LayoutAnimationsManager::transferConfigFromNativeID(const int nativeId, const int tag) {
97
+ auto lock = std::unique_lock<std::recursive_mutex>(animationsMutex_);
98
+ const auto config = enteringAnimationsForNativeID_[nativeId];
99
+ if (config) {
100
+ enteringAnimations_.insert_or_assign(tag, config);
101
+ }
102
+ enteringAnimationsForNativeID_.erase(nativeId);
103
+
104
+ const auto sharedTransitionConfig = sharedTransitionsForNativeID_[nativeId];
105
+ if (sharedTransitionConfig) {
106
+ sharedTransitions_.insert_or_assign(tag, sharedTransitionConfig);
107
+ sharedTransitionManager_->tagToName_[tag] = sharedTransitionManager_->nativeIDToName_[nativeId];
108
+ }
109
+ sharedTransitionsForNativeID_.erase(nativeId);
110
+ sharedTransitionManager_->nativeIDToName_.erase(nativeId);
111
+ }
112
+
113
+ void LayoutAnimationsManager::transferSharedConfig(const Tag from, const Tag to) {
114
+ sharedTransitions_[to] = sharedTransitions_[from];
115
+ }
116
+
117
+ std::shared_ptr<SharedTransitionManager> LayoutAnimationsManager::getSharedTransitionManager() {
118
+ return sharedTransitionManager_;
119
+ }
120
+
121
+ std::unordered_map<int, std::shared_ptr<Serializable>> &LayoutAnimationsManager::getConfigsForType(
122
+ const LayoutAnimationType type) {
123
+ switch (type) {
124
+ case LayoutAnimationType::ENTERING:
125
+ return enteringAnimations_;
126
+ case LayoutAnimationType::EXITING:
127
+ return exitingAnimations_;
128
+ case LayoutAnimationType::LAYOUT:
129
+ return layoutAnimations_;
130
+ case LayoutAnimationType::SHARED_ELEMENT_TRANSITION:
131
+ return sharedTransitions_;
132
+ default:
133
+ throw std::invalid_argument("[Reanimated] Unknown layout animation type");
134
+ }
135
+ }
136
+
137
+ } // namespace reanimated
@@ -1,82 +1,82 @@
1
- #pragma once
2
-
3
- #include <react/renderer/graphics/Transform.h>
4
- #include <react/renderer/mounting/ShadowView.h>
5
- #include <reanimated/LayoutAnimations/LayoutAnimationType.h>
6
-
7
- #include <worklets/SharedItems/Serializable.h>
8
- #include <worklets/Tools/JSLogger.h>
9
-
10
- #include <jsi/jsi.h>
11
- #include <stdio.h>
12
- #include <functional>
13
- #include <memory>
14
- #include <mutex>
15
- #include <stack>
16
- #include <string>
17
- #include <unordered_map>
18
- #include <unordered_set>
19
- #include <utility>
20
- #include <vector>
21
-
22
- namespace reanimated {
23
-
24
- using namespace facebook;
25
- using namespace worklets;
26
- using SharedTag = std::string;
27
-
28
- // [0] is before and [1] is after (best to use BeforeOrAfter enum)
29
- struct Transition {
30
- ShadowView snapshot[2];
31
- Tag parentTag[2] = {0, 0};
32
- std::optional<Transform> transform[2];
33
- };
34
-
35
- struct SharedTransitionManager {
36
- std::unordered_map<std::string, Tag> containerTags_;
37
- std::unordered_map<Tag, std::string> tagToName_;
38
- std::unordered_map<Tag, std::string> nativeIDToName_;
39
- };
40
-
41
- using TransitionMap = std::unordered_map<SharedTag, Transition>;
42
- using Transitions = std::vector<std::pair<SharedTag, Transition>>;
43
-
44
- struct LayoutAnimationConfig {
45
- int tag;
46
- LayoutAnimationType type;
47
- std::shared_ptr<Serializable> config;
48
- std::string sharedTransitionTag;
49
- };
50
-
51
- class LayoutAnimationsManager {
52
- public:
53
- explicit LayoutAnimationsManager(const std::shared_ptr<JSLogger> &jsLogger)
54
- : jsLogger_(jsLogger), sharedTransitionManager_(std::make_shared<SharedTransitionManager>()) {}
55
- void configureAnimationBatch(const std::vector<LayoutAnimationConfig> &layoutAnimationsBatch);
56
- void setShouldAnimateExiting(const int tag, const bool value);
57
- bool shouldAnimateExiting(const int tag, const bool shouldAnimate);
58
- bool hasLayoutAnimation(const int tag, const LayoutAnimationType type);
59
- void startLayoutAnimation(jsi::Runtime &rt, const int tag, const LayoutAnimationType type, const jsi::Object &values);
60
- void clearLayoutAnimationConfig(const int tag);
61
- void cancelLayoutAnimation(jsi::Runtime &rt, const int tag) const;
62
- void transferConfigFromNativeID(const int nativeId, const int tag);
63
- void transferSharedConfig(const Tag from, const Tag to);
64
- std::shared_ptr<SharedTransitionManager> getSharedTransitionManager();
65
-
66
- private:
67
- std::unordered_map<int, std::shared_ptr<Serializable>> &getConfigsForType(const LayoutAnimationType type);
68
-
69
- std::shared_ptr<JSLogger> jsLogger_;
70
- std::shared_ptr<SharedTransitionManager> sharedTransitionManager_;
71
- std::unordered_map<int, std::shared_ptr<Serializable>> enteringAnimationsForNativeID_;
72
- std::unordered_map<int, std::shared_ptr<Serializable>> sharedTransitionsForNativeID_;
73
- std::unordered_map<int, std::shared_ptr<Serializable>> sharedTransitions_;
74
- std::unordered_map<int, std::shared_ptr<Serializable>> enteringAnimations_;
75
- std::unordered_map<int, std::shared_ptr<Serializable>> exitingAnimations_;
76
- std::unordered_map<int, std::shared_ptr<Serializable>> layoutAnimations_;
77
- std::unordered_map<int, bool> shouldAnimateExitingForTag_;
78
- mutable std::recursive_mutex animationsMutex_; // Protects `enteringAnimations_`, `exitingAnimations_`,
79
- // `layoutAnimations_` and `shouldAnimateExitingForTag_`.
80
- };
81
-
82
- } // namespace reanimated
1
+ #pragma once
2
+
3
+ #include <react/renderer/graphics/Transform.h>
4
+ #include <react/renderer/mounting/ShadowView.h>
5
+ #include <reanimated/LayoutAnimations/LayoutAnimationType.h>
6
+
7
+ #include <worklets/SharedItems/Serializable.h>
8
+ #include <worklets/Tools/JSLogger.h>
9
+
10
+ #include <jsi/jsi.h>
11
+ #include <stdio.h>
12
+ #include <functional>
13
+ #include <memory>
14
+ #include <mutex>
15
+ #include <stack>
16
+ #include <string>
17
+ #include <unordered_map>
18
+ #include <unordered_set>
19
+ #include <utility>
20
+ #include <vector>
21
+
22
+ namespace reanimated {
23
+
24
+ using namespace facebook;
25
+ using namespace worklets;
26
+ using SharedTag = std::string;
27
+
28
+ // [0] is before and [1] is after (best to use BeforeOrAfter enum)
29
+ struct Transition {
30
+ ShadowView snapshot[2];
31
+ Tag parentTag[2] = {0, 0};
32
+ std::optional<Transform> transform[2];
33
+ };
34
+
35
+ struct SharedTransitionManager {
36
+ std::unordered_map<std::string, Tag> containerTags_;
37
+ std::unordered_map<Tag, std::string> tagToName_;
38
+ std::unordered_map<Tag, std::string> nativeIDToName_;
39
+ };
40
+
41
+ using TransitionMap = std::unordered_map<SharedTag, Transition>;
42
+ using Transitions = std::vector<std::pair<SharedTag, Transition>>;
43
+
44
+ struct LayoutAnimationConfig {
45
+ int tag;
46
+ LayoutAnimationType type;
47
+ std::shared_ptr<Serializable> config;
48
+ std::string sharedTransitionTag;
49
+ };
50
+
51
+ class LayoutAnimationsManager {
52
+ public:
53
+ explicit LayoutAnimationsManager(const std::shared_ptr<JSLogger> &jsLogger)
54
+ : jsLogger_(jsLogger), sharedTransitionManager_(std::make_shared<SharedTransitionManager>()) {}
55
+ void configureAnimationBatch(const std::vector<LayoutAnimationConfig> &layoutAnimationsBatch);
56
+ void setShouldAnimateExiting(const int tag, const bool value);
57
+ bool shouldAnimateExiting(const int tag, const bool shouldAnimate);
58
+ bool hasLayoutAnimation(const int tag, const LayoutAnimationType type);
59
+ void startLayoutAnimation(jsi::Runtime &rt, const int tag, const LayoutAnimationType type, const jsi::Object &values);
60
+ void clearLayoutAnimationConfig(const int tag);
61
+ void cancelLayoutAnimation(jsi::Runtime &rt, const int tag) const;
62
+ void transferConfigFromNativeID(const int nativeId, const int tag);
63
+ void transferSharedConfig(const Tag from, const Tag to);
64
+ std::shared_ptr<SharedTransitionManager> getSharedTransitionManager();
65
+
66
+ private:
67
+ std::unordered_map<int, std::shared_ptr<Serializable>> &getConfigsForType(const LayoutAnimationType type);
68
+
69
+ std::shared_ptr<JSLogger> jsLogger_;
70
+ std::shared_ptr<SharedTransitionManager> sharedTransitionManager_;
71
+ std::unordered_map<int, std::shared_ptr<Serializable>> enteringAnimationsForNativeID_;
72
+ std::unordered_map<int, std::shared_ptr<Serializable>> sharedTransitionsForNativeID_;
73
+ std::unordered_map<int, std::shared_ptr<Serializable>> sharedTransitions_;
74
+ std::unordered_map<int, std::shared_ptr<Serializable>> enteringAnimations_;
75
+ std::unordered_map<int, std::shared_ptr<Serializable>> exitingAnimations_;
76
+ std::unordered_map<int, std::shared_ptr<Serializable>> layoutAnimations_;
77
+ std::unordered_map<int, bool> shouldAnimateExitingForTag_;
78
+ mutable std::recursive_mutex animationsMutex_; // Protects `enteringAnimations_`, `exitingAnimations_`,
79
+ // `layoutAnimations_` and `shouldAnimateExitingForTag_`.
80
+ };
81
+
82
+ } // namespace reanimated
@@ -1,79 +1,79 @@
1
- #include <ReactCommon/CallInvoker.h>
2
- #include <folly/dynamic.h>
3
- #include <react/renderer/uimanager/UIManagerBinding.h>
4
- #include <reanimated/Fabric/ShadowTreeCloner.h>
5
- #include <reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h>
6
-
7
- #include <functional>
8
- #include <memory>
9
- #include <utility>
10
- #include <vector>
11
-
12
- namespace reanimated {
13
-
14
- std::optional<facebook::react::SurfaceId>
15
- LayoutAnimationsProxyCommon::onTransitionProgress(int tag, double progress, bool isClosing, bool isGoingForward) {
16
- return std::nullopt;
17
- }
18
-
19
- std::optional<facebook::react::SurfaceId> LayoutAnimationsProxyCommon::onGestureCancel() {
20
- return std::nullopt;
21
- }
22
-
23
- void LayoutAnimationsProxyCommon::startSurface(const SurfaceId surfaceId) {}
24
-
25
- #ifdef ANDROID
26
-
27
- const facebook::react::ShadowNode *findInShadowTreeByTag(const facebook::react::ShadowNode &node, Tag tag) {
28
- if (node.getTag() == tag) {
29
- return &node;
30
- }
31
- for (const auto &child : node.getChildren()) {
32
- if (const auto result = findInShadowTreeByTag(*child, tag)) {
33
- return result;
34
- }
35
- }
36
- return nullptr;
37
- }
38
-
39
- void LayoutAnimationsProxyCommon::restoreOpacityInCaseOfFlakyEnteringAnimation(SurfaceId surfaceId) const {
40
- std::vector<std::pair<double, Tag>> opacityToRestore;
41
- for (const auto tag : finishedAnimationTags_) {
42
- const auto &opacity = layoutAnimations_[tag].opacity;
43
- if (opacity.has_value()) {
44
- opacityToRestore.emplace_back(std::pair<double, Tag>{opacity.value(), tag});
45
- }
46
- }
47
- if (opacityToRestore.empty()) {
48
- // Animation was successfully finished, and the opacity was restored, so we
49
- // don't need to do anything. Only the Entering animation has a set opacity
50
- // value.
51
- return;
52
- }
53
- const std::weak_ptr<UIManager> weakUiManager = uiManager_;
54
- jsInvoker_->invokeAsync([=](jsi::Runtime &runtime) {
55
- auto uiManager = weakUiManager.lock();
56
- if (!uiManager) {
57
- return;
58
- }
59
- uiManager->getShadowTreeRegistry().visit(surfaceId, [=](ShadowTree const &shadowTree) {
60
- shadowTree.commit(
61
- [=](RootShadowNode const &oldRootShadowNode) {
62
- const auto &rootShadowNode = static_cast<const ShadowNode &>(oldRootShadowNode);
63
- PropsMap propsMap;
64
- for (const auto &[opacity, tag] : opacityToRestore) {
65
- const auto *targetShadowNode = findInShadowTreeByTag(rootShadowNode, tag);
66
- if (targetShadowNode != nullptr) {
67
- propsMap[&targetShadowNode->getFamily()].emplace_back(folly::dynamic::object("opacity", opacity));
68
- }
69
- }
70
- return cloneShadowTreeWithNewProps(oldRootShadowNode, propsMap);
71
- },
72
- {});
73
- });
74
- });
75
- }
76
-
77
- #endif // ANDROID
78
-
79
- } // namespace reanimated
1
+ #include <ReactCommon/CallInvoker.h>
2
+ #include <folly/dynamic.h>
3
+ #include <react/renderer/uimanager/UIManagerBinding.h>
4
+ #include <reanimated/Fabric/ShadowTreeCloner.h>
5
+ #include <reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h>
6
+
7
+ #include <functional>
8
+ #include <memory>
9
+ #include <utility>
10
+ #include <vector>
11
+
12
+ namespace reanimated {
13
+
14
+ std::optional<facebook::react::SurfaceId>
15
+ LayoutAnimationsProxyCommon::onTransitionProgress(int tag, double progress, bool isClosing, bool isGoingForward) {
16
+ return std::nullopt;
17
+ }
18
+
19
+ std::optional<facebook::react::SurfaceId> LayoutAnimationsProxyCommon::onGestureCancel() {
20
+ return std::nullopt;
21
+ }
22
+
23
+ void LayoutAnimationsProxyCommon::startSurface(const SurfaceId surfaceId) {}
24
+
25
+ #ifdef ANDROID
26
+
27
+ const facebook::react::ShadowNode *findInShadowTreeByTag(const facebook::react::ShadowNode &node, Tag tag) {
28
+ if (node.getTag() == tag) {
29
+ return &node;
30
+ }
31
+ for (const auto &child : node.getChildren()) {
32
+ if (const auto result = findInShadowTreeByTag(*child, tag)) {
33
+ return result;
34
+ }
35
+ }
36
+ return nullptr;
37
+ }
38
+
39
+ void LayoutAnimationsProxyCommon::restoreOpacityInCaseOfFlakyEnteringAnimation(SurfaceId surfaceId) const {
40
+ std::vector<std::pair<double, Tag>> opacityToRestore;
41
+ for (const auto tag : finishedAnimationTags_) {
42
+ const auto &opacity = layoutAnimations_[tag].opacity;
43
+ if (opacity.has_value()) {
44
+ opacityToRestore.emplace_back(std::pair<double, Tag>{opacity.value(), tag});
45
+ }
46
+ }
47
+ if (opacityToRestore.empty()) {
48
+ // Animation was successfully finished, and the opacity was restored, so we
49
+ // don't need to do anything. Only the Entering animation has a set opacity
50
+ // value.
51
+ return;
52
+ }
53
+ const std::weak_ptr<UIManager> weakUiManager = uiManager_;
54
+ jsInvoker_->invokeAsync([=](jsi::Runtime &runtime) {
55
+ auto uiManager = weakUiManager.lock();
56
+ if (!uiManager) {
57
+ return;
58
+ }
59
+ uiManager->getShadowTreeRegistry().visit(surfaceId, [=](ShadowTree const &shadowTree) {
60
+ shadowTree.commit(
61
+ [=](RootShadowNode const &oldRootShadowNode) {
62
+ const auto &rootShadowNode = static_cast<const ShadowNode &>(oldRootShadowNode);
63
+ PropsMap propsMap;
64
+ for (const auto &[opacity, tag] : opacityToRestore) {
65
+ const auto *targetShadowNode = findInShadowTreeByTag(rootShadowNode, tag);
66
+ if (targetShadowNode != nullptr) {
67
+ propsMap[&targetShadowNode->getFamily()].emplace_back(folly::dynamic::object("opacity", opacity));
68
+ }
69
+ }
70
+ return cloneShadowTreeWithNewProps(oldRootShadowNode, propsMap);
71
+ },
72
+ {});
73
+ });
74
+ });
75
+ }
76
+
77
+ #endif // ANDROID
78
+
79
+ } // namespace reanimated