@react-native-ohos/react-native-reanimated 4.0.0-rc.1 → 4.0.2-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/compatibility.json +161 -161
  2. package/harmony/reanimated/BuildProfile.ets +16 -16
  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 +65 -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 -93
  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 -44
  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 -110
  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 -1376
  190. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -228
  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 +233 -230
  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 +51 -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 -68
  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 -79
  234. package/scripts/worklets-version.json +4 -4
  235. package/src/index.ts +9 -9
@@ -1,218 +1,218 @@
1
- #include <reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h>
2
-
3
- #include <reanimated/CSS/interpolation/transforms/operations/rotate.h>
4
- #include <reanimated/CSS/interpolation/transforms/operations/scale.h>
5
- #include <reanimated/CSS/interpolation/transforms/operations/skew.h>
6
- #include <reanimated/CSS/interpolation/transforms/operations/translate.h>
7
-
8
- #include <utility>
9
-
10
- namespace reanimated::css {
11
-
12
- // Base implementation for simple operations
13
- template <typename TOperation, typename TEnable>
14
- std::unique_ptr<StyleOperation> TransformOperationInterpolator<TOperation, TEnable>::interpolate(
15
- double progress,
16
- const std::shared_ptr<StyleOperation> &from,
17
- const std::shared_ptr<StyleOperation> &to,
18
- const StyleOperationsInterpolationContext & /* context */) const {
19
- const auto &fromOp = *std::static_pointer_cast<TOperation>(from);
20
- const auto &toOp = *std::static_pointer_cast<TOperation>(to);
21
- return std::make_unique<TOperation>(fromOp.value.interpolate(progress, toOp.value));
22
- }
23
-
24
- // Specialization for PerspectiveOperation
25
- TransformOperationInterpolator<PerspectiveOperation, void>::TransformOperationInterpolator(
26
- const std::shared_ptr<PerspectiveOperation> &defaultOperation)
27
- : StyleOperationInterpolator(defaultOperation) {}
28
-
29
- std::unique_ptr<StyleOperation> TransformOperationInterpolator<PerspectiveOperation, void>::interpolate(
30
- double progress,
31
- const std::shared_ptr<StyleOperation> &from,
32
- const std::shared_ptr<StyleOperation> &to,
33
- const StyleOperationsInterpolationContext & /* context */) const {
34
- // TODO - check if this implementation is correct
35
- const auto &fromValue = std::static_pointer_cast<PerspectiveOperation>(from)->value;
36
- const auto &toValue = std::static_pointer_cast<PerspectiveOperation>(to)->value;
37
-
38
- if (fromValue.value == 0)
39
- return std::make_unique<PerspectiveOperation>(toValue);
40
- if (toValue.value == 0)
41
- return std::make_unique<PerspectiveOperation>(fromValue);
42
-
43
- return std::make_unique<PerspectiveOperation>(fromValue.interpolate(progress, toValue));
44
- }
45
-
46
- // Specialization for MatrixOperation
47
- TransformOperationInterpolator<MatrixOperation, void>::TransformOperationInterpolator(
48
- const std::shared_ptr<MatrixOperation> &defaultOperation)
49
- : StyleOperationInterpolator(defaultOperation) {}
50
-
51
- std::unique_ptr<StyleOperation> TransformOperationInterpolator<MatrixOperation, void>::interpolate(
52
- double progress,
53
- const std::shared_ptr<StyleOperation> &from,
54
- const std::shared_ptr<StyleOperation> &to,
55
- const StyleOperationsInterpolationContext &context) const {
56
- const auto fromOperation = std::static_pointer_cast<TransformOperation>(from);
57
- const auto toOperation = std::static_pointer_cast<TransformOperation>(to);
58
- const auto shouldBe3D = fromOperation->is3D() || toOperation->is3D();
59
-
60
- const auto fromMatrix = matrixFromOperation(fromOperation, shouldBe3D, context);
61
- const auto toMatrix = matrixFromOperation(toOperation, shouldBe3D, context);
62
-
63
- if (shouldBe3D) {
64
- return std::make_unique<MatrixOperation>(interpolateMatrix<TransformMatrix3D>(progress, fromMatrix, toMatrix));
65
- }
66
-
67
- const auto result2D = interpolateMatrix<TransformMatrix2D>(progress, fromMatrix, toMatrix);
68
-
69
- // Unfortunately 2D matrices aren't handled properly in RN, so we have to
70
- // convert them to 3D
71
- // see the issue: https://github.com/facebook/react-native/issues/53639
72
- return std::make_unique<MatrixOperation>(TransformMatrix3D::from2D(result2D));
73
- }
74
-
75
- template <typename MatrixType>
76
- MatrixType TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix(
77
- double progress,
78
- const TransformMatrix::Shared &from,
79
- const TransformMatrix::Shared &to) const {
80
- const auto fromMatrix = std::static_pointer_cast<const MatrixType>(from);
81
- const auto toMatrix = std::static_pointer_cast<const MatrixType>(to);
82
- const auto decomposedFrom = fromMatrix->decompose();
83
- const auto decomposedTo = toMatrix->decompose();
84
-
85
- if (!decomposedFrom.has_value() || !decomposedTo.has_value()) {
86
- return progress < 0.5 ? *fromMatrix : *toMatrix;
87
- }
88
-
89
- return MatrixType::recompose(decomposedFrom->interpolate(progress, decomposedTo.value()));
90
- }
91
-
92
- TransformMatrix::Shared TransformOperationInterpolator<MatrixOperation, void>::matrixFromOperation(
93
- const std::shared_ptr<TransformOperation> &operation,
94
- const bool shouldBe3D,
95
- const StyleOperationsInterpolationContext &context) const {
96
- const auto &matrixOperation = std::static_pointer_cast<MatrixOperation>(operation);
97
-
98
- if (std::holds_alternative<TransformMatrix::Shared>(matrixOperation->value)) {
99
- const auto &matrix = std::get<TransformMatrix::Shared>(matrixOperation->value);
100
-
101
- if (shouldBe3D && !matrixOperation->is3D()) {
102
- return std::make_shared<TransformMatrix3D>(
103
- TransformMatrix3D::from2D(static_cast<const TransformMatrix2D &>(*matrix)));
104
- }
105
-
106
- return matrix;
107
- }
108
-
109
- const auto &operations = std::get<TransformOperations>(matrixOperation->value);
110
-
111
- // Map over operations and resolve unresolved ones
112
- TransformOperations resolvedOperations;
113
- resolvedOperations.reserve(operations.size());
114
-
115
- std::transform(
116
- operations.begin(),
117
- operations.end(),
118
- std::back_inserter(resolvedOperations),
119
- [&](const auto &operation) -> std::shared_ptr<TransformOperation> {
120
- if (operation->shouldResolve()) {
121
- const auto &interpolator = context.interpolators->at(operation->type);
122
- return std::static_pointer_cast<TransformOperation>(interpolator->resolveOperation(operation, context));
123
- }
124
-
125
- return operation;
126
- });
127
-
128
- if (shouldBe3D) {
129
- return std::make_shared<TransformMatrix3D>(matrixFromOperations3D(resolvedOperations));
130
- }
131
- return std::make_shared<TransformMatrix2D>(matrixFromOperations2D(resolvedOperations));
132
- }
133
-
134
- // Explicit template instantiations
135
- template TransformMatrix2D TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix<TransformMatrix2D>(
136
- double,
137
- const TransformMatrix::Shared &,
138
- const TransformMatrix::Shared &) const;
139
- template TransformMatrix3D TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix<TransformMatrix3D>(
140
- double,
141
- const TransformMatrix::Shared &,
142
- const TransformMatrix::Shared &) const;
143
-
144
- // Specialization for resolvable operations
145
- template <typename TOperation>
146
- TransformOperationInterpolator<
147
- TOperation,
148
- std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::TransformOperationInterpolator(
149
- const std::shared_ptr<TOperation> &defaultOperation,
150
- ResolvableValueInterpolatorConfig config)
151
- : StyleOperationInterpolator(defaultOperation), config_(std::move(config)) {}
152
-
153
- template <typename TOperation>
154
- std::unique_ptr<StyleOperation> TransformOperationInterpolator<
155
- TOperation,
156
- std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::interpolate(
157
- double progress,
158
- const std::shared_ptr<StyleOperation> &from,
159
- const std::shared_ptr<StyleOperation> &to,
160
- const StyleOperationsInterpolationContext &context) const {
161
- const auto &fromOp = *std::static_pointer_cast<TOperation>(from);
162
- const auto &toOp = *std::static_pointer_cast<TOperation>(to);
163
-
164
- return std::make_unique<TOperation>(
165
- fromOp.value.interpolate(progress, toOp.value, getResolvableValueContext(context)));
166
- }
167
-
168
- template <typename TOperation>
169
- std::shared_ptr<StyleOperation> TransformOperationInterpolator<
170
- TOperation,
171
- std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::resolveOperation(
172
- const std::shared_ptr<StyleOperation> &operation,
173
- const StyleOperationsInterpolationContext &context) const {
174
- const auto &resolvableOp = std::static_pointer_cast<TOperation>(operation);
175
- const auto &resolved = resolvableOp->value.resolve(getResolvableValueContext(context));
176
-
177
- if (!resolved.has_value()) {
178
- throw std::invalid_argument(
179
- "[Reanimated] Cannot resolve resolvable operation: " + operation->getOperationName() +
180
- " for node with tag: " + std::to_string(context.node->getTag()));
181
- }
182
-
183
- return std::make_shared<TOperation>(resolved.value());
184
- }
185
-
186
- template <typename TOperation>
187
- ResolvableValueInterpolationContext TransformOperationInterpolator<
188
- TOperation,
189
- std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::getResolvableValueContext(
190
- const StyleOperationsInterpolationContext &context) const {
191
- return ResolvableValueInterpolationContext{
192
- .node = context.node,
193
- .fallbackInterpolateThreshold = context.fallbackInterpolateThreshold,
194
- .viewStylesRepository = context.viewStylesRepository,
195
- .relativeProperty = config_.relativeProperty,
196
- .relativeTo = config_.relativeTo};
197
- }
198
-
199
- // Rotate operations
200
- template class TransformOperationInterpolator<RotateOperation, void>;
201
- template class TransformOperationInterpolator<RotateXOperation, void>;
202
- template class TransformOperationInterpolator<RotateYOperation, void>;
203
- template class TransformOperationInterpolator<RotateZOperation, void>;
204
-
205
- // Scale operations
206
- template class TransformOperationInterpolator<ScaleOperation, void>;
207
- template class TransformOperationInterpolator<ScaleXOperation, void>;
208
- template class TransformOperationInterpolator<ScaleYOperation, void>;
209
-
210
- // Skew operations
211
- template class TransformOperationInterpolator<SkewXOperation, void>;
212
- template class TransformOperationInterpolator<SkewYOperation, void>;
213
-
214
- // Translate operations (resolvable)
215
- template class TransformOperationInterpolator<TranslateXOperation>;
216
- template class TransformOperationInterpolator<TranslateYOperation>;
217
-
218
- } // namespace reanimated::css
1
+ #include <reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h>
2
+
3
+ #include <reanimated/CSS/interpolation/transforms/operations/rotate.h>
4
+ #include <reanimated/CSS/interpolation/transforms/operations/scale.h>
5
+ #include <reanimated/CSS/interpolation/transforms/operations/skew.h>
6
+ #include <reanimated/CSS/interpolation/transforms/operations/translate.h>
7
+
8
+ #include <utility>
9
+
10
+ namespace reanimated::css {
11
+
12
+ // Base implementation for simple operations
13
+ template <typename TOperation, typename TEnable>
14
+ std::unique_ptr<StyleOperation> TransformOperationInterpolator<TOperation, TEnable>::interpolate(
15
+ double progress,
16
+ const std::shared_ptr<StyleOperation> &from,
17
+ const std::shared_ptr<StyleOperation> &to,
18
+ const StyleOperationsInterpolationContext & /* context */) const {
19
+ const auto &fromOp = *std::static_pointer_cast<TOperation>(from);
20
+ const auto &toOp = *std::static_pointer_cast<TOperation>(to);
21
+ return std::make_unique<TOperation>(fromOp.value.interpolate(progress, toOp.value));
22
+ }
23
+
24
+ // Specialization for PerspectiveOperation
25
+ TransformOperationInterpolator<PerspectiveOperation, void>::TransformOperationInterpolator(
26
+ const std::shared_ptr<PerspectiveOperation> &defaultOperation)
27
+ : StyleOperationInterpolator(defaultOperation) {}
28
+
29
+ std::unique_ptr<StyleOperation> TransformOperationInterpolator<PerspectiveOperation, void>::interpolate(
30
+ double progress,
31
+ const std::shared_ptr<StyleOperation> &from,
32
+ const std::shared_ptr<StyleOperation> &to,
33
+ const StyleOperationsInterpolationContext & /* context */) const {
34
+ // TODO - check if this implementation is correct
35
+ const auto &fromValue = std::static_pointer_cast<PerspectiveOperation>(from)->value;
36
+ const auto &toValue = std::static_pointer_cast<PerspectiveOperation>(to)->value;
37
+
38
+ if (fromValue.value == 0)
39
+ return std::make_unique<PerspectiveOperation>(toValue);
40
+ if (toValue.value == 0)
41
+ return std::make_unique<PerspectiveOperation>(fromValue);
42
+
43
+ return std::make_unique<PerspectiveOperation>(fromValue.interpolate(progress, toValue));
44
+ }
45
+
46
+ // Specialization for MatrixOperation
47
+ TransformOperationInterpolator<MatrixOperation, void>::TransformOperationInterpolator(
48
+ const std::shared_ptr<MatrixOperation> &defaultOperation)
49
+ : StyleOperationInterpolator(defaultOperation) {}
50
+
51
+ std::unique_ptr<StyleOperation> TransformOperationInterpolator<MatrixOperation, void>::interpolate(
52
+ double progress,
53
+ const std::shared_ptr<StyleOperation> &from,
54
+ const std::shared_ptr<StyleOperation> &to,
55
+ const StyleOperationsInterpolationContext &context) const {
56
+ const auto fromOperation = std::static_pointer_cast<TransformOperation>(from);
57
+ const auto toOperation = std::static_pointer_cast<TransformOperation>(to);
58
+ const auto shouldBe3D = fromOperation->is3D() || toOperation->is3D();
59
+
60
+ const auto fromMatrix = matrixFromOperation(fromOperation, shouldBe3D, context);
61
+ const auto toMatrix = matrixFromOperation(toOperation, shouldBe3D, context);
62
+
63
+ if (shouldBe3D) {
64
+ return std::make_unique<MatrixOperation>(interpolateMatrix<TransformMatrix3D>(progress, fromMatrix, toMatrix));
65
+ }
66
+
67
+ const auto result2D = interpolateMatrix<TransformMatrix2D>(progress, fromMatrix, toMatrix);
68
+
69
+ // Unfortunately 2D matrices aren't handled properly in RN, so we have to
70
+ // convert them to 3D
71
+ // see the issue: https://github.com/facebook/react-native/issues/53639
72
+ return std::make_unique<MatrixOperation>(TransformMatrix3D::from2D(result2D));
73
+ }
74
+
75
+ template <typename MatrixType>
76
+ MatrixType TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix(
77
+ double progress,
78
+ const TransformMatrix::Shared &from,
79
+ const TransformMatrix::Shared &to) const {
80
+ const auto fromMatrix = std::static_pointer_cast<const MatrixType>(from);
81
+ const auto toMatrix = std::static_pointer_cast<const MatrixType>(to);
82
+ const auto decomposedFrom = fromMatrix->decompose();
83
+ const auto decomposedTo = toMatrix->decompose();
84
+
85
+ if (!decomposedFrom.has_value() || !decomposedTo.has_value()) {
86
+ return progress < 0.5 ? *fromMatrix : *toMatrix;
87
+ }
88
+
89
+ return MatrixType::recompose(decomposedFrom->interpolate(progress, decomposedTo.value()));
90
+ }
91
+
92
+ TransformMatrix::Shared TransformOperationInterpolator<MatrixOperation, void>::matrixFromOperation(
93
+ const std::shared_ptr<TransformOperation> &operation,
94
+ const bool shouldBe3D,
95
+ const StyleOperationsInterpolationContext &context) const {
96
+ const auto &matrixOperation = std::static_pointer_cast<MatrixOperation>(operation);
97
+
98
+ if (std::holds_alternative<TransformMatrix::Shared>(matrixOperation->value)) {
99
+ const auto &matrix = std::get<TransformMatrix::Shared>(matrixOperation->value);
100
+
101
+ if (shouldBe3D && !matrixOperation->is3D()) {
102
+ return std::make_shared<TransformMatrix3D>(
103
+ TransformMatrix3D::from2D(static_cast<const TransformMatrix2D &>(*matrix)));
104
+ }
105
+
106
+ return matrix;
107
+ }
108
+
109
+ const auto &operations = std::get<TransformOperations>(matrixOperation->value);
110
+
111
+ // Map over operations and resolve unresolved ones
112
+ TransformOperations resolvedOperations;
113
+ resolvedOperations.reserve(operations.size());
114
+
115
+ std::transform(
116
+ operations.begin(),
117
+ operations.end(),
118
+ std::back_inserter(resolvedOperations),
119
+ [&](const auto &operation) -> std::shared_ptr<TransformOperation> {
120
+ if (operation->shouldResolve()) {
121
+ const auto &interpolator = context.interpolators->at(operation->type);
122
+ return std::static_pointer_cast<TransformOperation>(interpolator->resolveOperation(operation, context));
123
+ }
124
+
125
+ return operation;
126
+ });
127
+
128
+ if (shouldBe3D) {
129
+ return std::make_shared<TransformMatrix3D>(matrixFromOperations3D(resolvedOperations));
130
+ }
131
+ return std::make_shared<TransformMatrix2D>(matrixFromOperations2D(resolvedOperations));
132
+ }
133
+
134
+ // Explicit template instantiations
135
+ template TransformMatrix2D TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix<TransformMatrix2D>(
136
+ double,
137
+ const TransformMatrix::Shared &,
138
+ const TransformMatrix::Shared &) const;
139
+ template TransformMatrix3D TransformOperationInterpolator<MatrixOperation, void>::interpolateMatrix<TransformMatrix3D>(
140
+ double,
141
+ const TransformMatrix::Shared &,
142
+ const TransformMatrix::Shared &) const;
143
+
144
+ // Specialization for resolvable operations
145
+ template <typename TOperation>
146
+ TransformOperationInterpolator<
147
+ TOperation,
148
+ std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::TransformOperationInterpolator(
149
+ const std::shared_ptr<TOperation> &defaultOperation,
150
+ ResolvableValueInterpolatorConfig config)
151
+ : StyleOperationInterpolator(defaultOperation), config_(std::move(config)) {}
152
+
153
+ template <typename TOperation>
154
+ std::unique_ptr<StyleOperation> TransformOperationInterpolator<
155
+ TOperation,
156
+ std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::interpolate(
157
+ double progress,
158
+ const std::shared_ptr<StyleOperation> &from,
159
+ const std::shared_ptr<StyleOperation> &to,
160
+ const StyleOperationsInterpolationContext &context) const {
161
+ const auto &fromOp = *std::static_pointer_cast<TOperation>(from);
162
+ const auto &toOp = *std::static_pointer_cast<TOperation>(to);
163
+
164
+ return std::make_unique<TOperation>(
165
+ fromOp.value.interpolate(progress, toOp.value, getResolvableValueContext(context)));
166
+ }
167
+
168
+ template <typename TOperation>
169
+ std::shared_ptr<StyleOperation> TransformOperationInterpolator<
170
+ TOperation,
171
+ std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::resolveOperation(
172
+ const std::shared_ptr<StyleOperation> &operation,
173
+ const StyleOperationsInterpolationContext &context) const {
174
+ const auto &resolvableOp = std::static_pointer_cast<TOperation>(operation);
175
+ const auto &resolved = resolvableOp->value.resolve(getResolvableValueContext(context));
176
+
177
+ if (!resolved.has_value()) {
178
+ throw std::invalid_argument(
179
+ "[Reanimated] Cannot resolve resolvable operation: " + operation->getOperationName() +
180
+ " for node with tag: " + std::to_string(context.node->getTag()));
181
+ }
182
+
183
+ return std::make_shared<TOperation>(resolved.value());
184
+ }
185
+
186
+ template <typename TOperation>
187
+ ResolvableValueInterpolationContext TransformOperationInterpolator<
188
+ TOperation,
189
+ std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>>::getResolvableValueContext(
190
+ const StyleOperationsInterpolationContext &context) const {
191
+ return ResolvableValueInterpolationContext{
192
+ .node = context.node,
193
+ .fallbackInterpolateThreshold = context.fallbackInterpolateThreshold,
194
+ .viewStylesRepository = context.viewStylesRepository,
195
+ .relativeProperty = config_.relativeProperty,
196
+ .relativeTo = config_.relativeTo};
197
+ }
198
+
199
+ // Rotate operations
200
+ template class TransformOperationInterpolator<RotateOperation, void>;
201
+ template class TransformOperationInterpolator<RotateXOperation, void>;
202
+ template class TransformOperationInterpolator<RotateYOperation, void>;
203
+ template class TransformOperationInterpolator<RotateZOperation, void>;
204
+
205
+ // Scale operations
206
+ template class TransformOperationInterpolator<ScaleOperation, void>;
207
+ template class TransformOperationInterpolator<ScaleXOperation, void>;
208
+ template class TransformOperationInterpolator<ScaleYOperation, void>;
209
+
210
+ // Skew operations
211
+ template class TransformOperationInterpolator<SkewXOperation, void>;
212
+ template class TransformOperationInterpolator<SkewYOperation, void>;
213
+
214
+ // Translate operations (resolvable)
215
+ template class TransformOperationInterpolator<TranslateXOperation>;
216
+ template class TransformOperationInterpolator<TranslateYOperation>;
217
+
218
+ } // namespace reanimated::css
@@ -1,89 +1,89 @@
1
- #pragma once
2
-
3
- #include <reanimated/CSS/interpolation/configs.h>
4
- #include <reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h>
5
- #include <reanimated/CSS/interpolation/transforms/operations/matrix.h>
6
- #include <reanimated/CSS/interpolation/transforms/operations/perspective.h>
7
-
8
- #include <memory>
9
- #include <type_traits>
10
-
11
- namespace reanimated::css {
12
-
13
- // Base implementation for simple operations
14
- template <typename TOperation, typename = void>
15
- class TransformOperationInterpolator : public StyleOperationInterpolator {
16
- public:
17
- using StyleOperationInterpolator::StyleOperationInterpolator;
18
-
19
- std::unique_ptr<StyleOperation> interpolate(
20
- double progress,
21
- const std::shared_ptr<StyleOperation> &from,
22
- const std::shared_ptr<StyleOperation> &to,
23
- const StyleOperationsInterpolationContext &context) const override;
24
- };
25
-
26
- // Specialization for PerspectiveOperation
27
- template <>
28
- class TransformOperationInterpolator<PerspectiveOperation, void> : public StyleOperationInterpolator {
29
- public:
30
- explicit TransformOperationInterpolator(const std::shared_ptr<PerspectiveOperation> &defaultOperation);
31
-
32
- std::unique_ptr<StyleOperation> interpolate(
33
- double progress,
34
- const std::shared_ptr<StyleOperation> &from,
35
- const std::shared_ptr<StyleOperation> &to,
36
- const StyleOperationsInterpolationContext &context) const override;
37
- };
38
-
39
- // Specialization for MatrixOperation
40
- template <>
41
- class TransformOperationInterpolator<MatrixOperation, void> : public StyleOperationInterpolator {
42
- public:
43
- explicit TransformOperationInterpolator(const std::shared_ptr<MatrixOperation> &defaultOperation);
44
-
45
- std::unique_ptr<StyleOperation> interpolate(
46
- double progress,
47
- const std::shared_ptr<StyleOperation> &from,
48
- const std::shared_ptr<StyleOperation> &to,
49
- const StyleOperationsInterpolationContext &context) const override;
50
-
51
- protected:
52
- template <typename MatrixType>
53
- MatrixType interpolateMatrix(double progress, const TransformMatrix::Shared &from, const TransformMatrix::Shared &to)
54
- const;
55
-
56
- TransformMatrix::Shared matrixFromOperation(
57
- const std::shared_ptr<TransformOperation> &operation,
58
- bool shouldBe3D,
59
- const StyleOperationsInterpolationContext &context) const;
60
- };
61
-
62
- // Specialization for resolvable operations
63
- template <typename TOperation>
64
- class TransformOperationInterpolator<
65
- TOperation,
66
- std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>> : public StyleOperationInterpolator {
67
- public:
68
- TransformOperationInterpolator(
69
- const std::shared_ptr<TOperation> &defaultOperation,
70
- ResolvableValueInterpolatorConfig config);
71
-
72
- std::unique_ptr<StyleOperation> interpolate(
73
- double progress,
74
- const std::shared_ptr<StyleOperation> &from,
75
- const std::shared_ptr<StyleOperation> &to,
76
- const StyleOperationsInterpolationContext &context) const override;
77
-
78
- std::shared_ptr<StyleOperation> resolveOperation(
79
- const std::shared_ptr<StyleOperation> &operation,
80
- const StyleOperationsInterpolationContext &context) const override;
81
-
82
- protected:
83
- const ResolvableValueInterpolatorConfig config_;
84
-
85
- ResolvableValueInterpolationContext getResolvableValueContext(
86
- const StyleOperationsInterpolationContext &context) const;
87
- };
88
-
89
- } // namespace reanimated::css
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/interpolation/configs.h>
4
+ #include <reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h>
5
+ #include <reanimated/CSS/interpolation/transforms/operations/matrix.h>
6
+ #include <reanimated/CSS/interpolation/transforms/operations/perspective.h>
7
+
8
+ #include <memory>
9
+ #include <type_traits>
10
+
11
+ namespace reanimated::css {
12
+
13
+ // Base implementation for simple operations
14
+ template <typename TOperation, typename = void>
15
+ class TransformOperationInterpolator : public StyleOperationInterpolator {
16
+ public:
17
+ using StyleOperationInterpolator::StyleOperationInterpolator;
18
+
19
+ std::unique_ptr<StyleOperation> interpolate(
20
+ double progress,
21
+ const std::shared_ptr<StyleOperation> &from,
22
+ const std::shared_ptr<StyleOperation> &to,
23
+ const StyleOperationsInterpolationContext &context) const override;
24
+ };
25
+
26
+ // Specialization for PerspectiveOperation
27
+ template <>
28
+ class TransformOperationInterpolator<PerspectiveOperation, void> : public StyleOperationInterpolator {
29
+ public:
30
+ explicit TransformOperationInterpolator(const std::shared_ptr<PerspectiveOperation> &defaultOperation);
31
+
32
+ std::unique_ptr<StyleOperation> interpolate(
33
+ double progress,
34
+ const std::shared_ptr<StyleOperation> &from,
35
+ const std::shared_ptr<StyleOperation> &to,
36
+ const StyleOperationsInterpolationContext &context) const override;
37
+ };
38
+
39
+ // Specialization for MatrixOperation
40
+ template <>
41
+ class TransformOperationInterpolator<MatrixOperation, void> : public StyleOperationInterpolator {
42
+ public:
43
+ explicit TransformOperationInterpolator(const std::shared_ptr<MatrixOperation> &defaultOperation);
44
+
45
+ std::unique_ptr<StyleOperation> interpolate(
46
+ double progress,
47
+ const std::shared_ptr<StyleOperation> &from,
48
+ const std::shared_ptr<StyleOperation> &to,
49
+ const StyleOperationsInterpolationContext &context) const override;
50
+
51
+ protected:
52
+ template <typename MatrixType>
53
+ MatrixType interpolateMatrix(double progress, const TransformMatrix::Shared &from, const TransformMatrix::Shared &to)
54
+ const;
55
+
56
+ TransformMatrix::Shared matrixFromOperation(
57
+ const std::shared_ptr<TransformOperation> &operation,
58
+ bool shouldBe3D,
59
+ const StyleOperationsInterpolationContext &context) const;
60
+ };
61
+
62
+ // Specialization for resolvable operations
63
+ template <typename TOperation>
64
+ class TransformOperationInterpolator<
65
+ TOperation,
66
+ std::enable_if_t<ResolvableOp<TOperation> && !std::is_same_v<TOperation, PerspectiveOperation> && !std::is_same_v<TOperation, MatrixOperation>>> : public StyleOperationInterpolator {
67
+ public:
68
+ TransformOperationInterpolator(
69
+ const std::shared_ptr<TOperation> &defaultOperation,
70
+ ResolvableValueInterpolatorConfig config);
71
+
72
+ std::unique_ptr<StyleOperation> interpolate(
73
+ double progress,
74
+ const std::shared_ptr<StyleOperation> &from,
75
+ const std::shared_ptr<StyleOperation> &to,
76
+ const StyleOperationsInterpolationContext &context) const override;
77
+
78
+ std::shared_ptr<StyleOperation> resolveOperation(
79
+ const std::shared_ptr<StyleOperation> &operation,
80
+ const StyleOperationsInterpolationContext &context) const override;
81
+
82
+ protected:
83
+ const ResolvableValueInterpolatorConfig config_;
84
+
85
+ ResolvableValueInterpolationContext getResolvableValueContext(
86
+ const StyleOperationsInterpolationContext &context) const;
87
+ };
88
+
89
+ } // namespace reanimated::css