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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (275) hide show
  1. package/compatibility.json +161 -0
  2. package/harmony/reanimated/BuildProfile.ets +1 -1
  3. package/harmony/reanimated/build-profile.json5 +8 -1
  4. package/harmony/reanimated/oh-package.json5 +3 -2
  5. package/harmony/reanimated/src/main/cpp/CMakeLists.txt +31 -40
  6. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +11 -16
  7. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +3 -4
  8. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -0
  9. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -0
  10. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -0
  11. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -0
  12. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -0
  13. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -0
  14. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -0
  15. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -0
  16. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -0
  17. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -0
  18. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -0
  19. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -0
  20. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -0
  21. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -0
  22. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -0
  23. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -0
  24. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -0
  25. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +93 -0
  26. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -0
  27. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -0
  28. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -0
  29. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -0
  30. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -0
  31. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -0
  32. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +44 -0
  33. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -0
  34. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -0
  35. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -0
  36. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -0
  37. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -0
  38. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -0
  39. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -0
  40. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -0
  41. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -0
  42. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -0
  43. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -0
  44. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -0
  45. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -0
  46. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -0
  47. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -0
  48. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -0
  49. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -0
  50. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -0
  51. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -0
  52. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -0
  53. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -0
  54. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -0
  55. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -0
  56. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -0
  57. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -0
  58. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -0
  59. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -0
  60. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -0
  61. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -0
  62. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -0
  63. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -0
  64. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -0
  65. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -0
  66. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -0
  67. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -0
  68. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -0
  69. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -0
  70. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -0
  71. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -0
  72. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -0
  73. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -0
  74. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -0
  75. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -0
  76. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -0
  77. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -0
  78. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -0
  79. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -0
  80. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -0
  81. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -0
  82. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -0
  83. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -0
  84. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -0
  85. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -0
  86. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -0
  87. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -0
  88. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -0
  89. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -0
  90. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -0
  91. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -0
  92. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -0
  93. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -0
  94. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -0
  95. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -0
  96. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -0
  97. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -0
  98. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -0
  99. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -0
  100. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -0
  101. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -0
  102. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -0
  103. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -0
  104. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -0
  105. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -0
  106. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -0
  107. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -0
  108. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -0
  109. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -0
  110. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -0
  111. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -0
  112. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -0
  113. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -0
  114. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -0
  115. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -0
  116. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -0
  117. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -0
  118. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -0
  119. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -0
  120. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -0
  121. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -0
  122. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -0
  123. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -0
  124. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -0
  125. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -0
  126. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -0
  127. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -0
  128. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -0
  129. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -0
  130. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -0
  131. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -0
  132. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -0
  133. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -0
  134. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -0
  135. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -0
  136. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -0
  137. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -0
  138. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -0
  139. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -0
  140. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -0
  141. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -0
  142. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -0
  143. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -0
  144. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -0
  145. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -0
  146. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -0
  147. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +110 -0
  148. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -0
  149. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -0
  150. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -0
  151. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -0
  152. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -0
  153. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -0
  154. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -0
  155. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -0
  156. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -0
  157. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +51 -39
  158. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +13 -15
  159. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +0 -3
  160. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +22 -53
  161. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +12 -8
  162. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +46 -37
  163. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +3 -10
  164. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -0
  165. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -0
  166. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -0
  167. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -0
  168. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -0
  169. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -0
  170. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +4 -2
  171. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +62 -157
  172. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +38 -46
  173. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -0
  174. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -0
  175. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -0
  176. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -0
  177. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/{LayoutAnimationsProxy.cpp → LayoutAnimationsProxy_Legacy.cpp} +303 -276
  178. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -0
  179. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +5 -65
  180. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +52 -82
  181. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -0
  182. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -0
  183. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -0
  184. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -0
  185. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -0
  186. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +957 -552
  187. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +87 -111
  188. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +115 -163
  189. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +38 -54
  190. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +34 -36
  191. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +8 -0
  192. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +46 -58
  193. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +5 -9
  194. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -0
  195. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -0
  196. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +26 -57
  197. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +12 -33
  198. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -0
  199. package/harmony/reanimated/src/main/cpp/Common/cpp/{worklets → reanimated}/Tools/ReanimatedVersion.h +3 -4
  200. package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +60 -85
  201. package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +1 -0
  202. package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +0 -3
  203. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +266 -0
  204. package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -0
  205. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +36 -0
  206. package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -0
  207. package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +3 -3
  208. package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +12 -1
  209. package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +1 -4
  210. package/harmony/reanimated.har +0 -0
  211. package/package.json +36 -18
  212. package/scripts/deploy.js +191 -0
  213. package/scripts/set-reanimated-version.js +37 -0
  214. package/scripts/update-version.js +119 -0
  215. package/scripts/validate-react-native-version.js +46 -0
  216. package/scripts/validate-worklets-build.js +17 -0
  217. package/scripts/validate-worklets-version.js +79 -0
  218. package/scripts/worklets-version.json +4 -0
  219. package/LICENSE +0 -21
  220. package/README.OpenSource +0 -11
  221. package/README.md +0 -10
  222. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.cpp +0 -68
  223. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.h +0 -68
  224. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy.h +0 -147
  225. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/CollectionUtils.h +0 -14
  226. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.cpp +0 -5
  227. package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.h +0 -19
  228. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +0 -47
  229. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +0 -59
  230. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +0 -27
  231. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +0 -25
  232. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +0 -94
  233. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.h +0 -49
  234. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +0 -8
  235. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +0 -39
  236. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.cpp +0 -326
  237. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.h +0 -345
  238. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.cpp +0 -52
  239. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.h +0 -35
  240. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/Defs.h +0 -10
  241. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.cpp +0 -342
  242. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.h +0 -47
  243. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.cpp +0 -16
  244. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.h +0 -20
  245. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.cpp +0 -20
  246. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.h +0 -29
  247. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/PlatformLogger.h +0 -16
  248. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.cpp +0 -26
  249. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.h +0 -199
  250. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedVersion.cpp +0 -95
  251. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/SingleInstanceChecker.h +0 -72
  252. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ThreadSafeQueue.h +0 -49
  253. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.cpp +0 -20
  254. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.h +0 -22
  255. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +0 -29
  256. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.h +0 -41
  257. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +0 -16
  258. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +0 -19
  259. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.cpp +0 -112
  260. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.h +0 -127
  261. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.cpp +0 -53
  262. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.h +0 -22
  263. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +0 -191
  264. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +0 -155
  265. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +0 -90
  266. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +0 -36
  267. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +0 -182
  268. package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +0 -22
  269. package/harmony/reanimated/src/main/cpp/ReanimatedLogger.cpp +0 -33
  270. package/harmony/reanimated/src/main/cpp/WorkletsModule.cpp +0 -61
  271. package/harmony/reanimated/src/main/cpp/WorkletsModule.h +0 -22
  272. package/harmony/reanimated/src/main/cpp/patches/AnimatedSensor/AnimatedSensorModule.cpp +0 -89
  273. package/harmony/reanimated/src/main/cpp/patches/Fabric/ShadowTreeCloner.cpp +0 -95
  274. package/harmony/reanimated/src/main/cpp/patches/NativeModules/ReanimatedModuleProxy.cpp +0 -964
  275. package/harmony/reanimated/src/main/ets/WorkletsModule.ts +0 -15
@@ -0,0 +1,390 @@
1
+ #include <reanimated/CSS/InterpolatorRegistry.h>
2
+ #include <reanimated/Tools/FeatureFlags.h>
3
+
4
+ #include <reanimated/CSS/common/values/CSSAngle.h>
5
+ #include <reanimated/CSS/common/values/CSSBoolean.h>
6
+ #include <reanimated/CSS/common/values/CSSColor.h>
7
+ #include <reanimated/CSS/common/values/CSSDiscreteArray.h>
8
+ #include <reanimated/CSS/common/values/CSSKeyword.h>
9
+ #include <reanimated/CSS/common/values/CSSLength.h>
10
+ #include <reanimated/CSS/common/values/CSSNumber.h>
11
+ #include <reanimated/CSS/common/values/CSSValue.h>
12
+
13
+ #include <reanimated/CSS/common/transforms/TransformMatrix2D.h>
14
+ #include <reanimated/CSS/common/values/complex/CSSBoxShadow.h>
15
+
16
+ #include <reanimated/CSS/svg/values/SVGBrush.h>
17
+ #include <reanimated/CSS/svg/values/SVGLength.h>
18
+ #include <reanimated/CSS/svg/values/SVGStrokeDashArray.h>
19
+
20
+ #include <reanimated/CSS/interpolation/InterpolatorFactory.h>
21
+
22
+ #include <reanimated/CSS/interpolation/transforms/operations/matrix.h>
23
+ #include <reanimated/CSS/interpolation/transforms/operations/perspective.h>
24
+ #include <reanimated/CSS/interpolation/transforms/operations/rotate.h>
25
+ #include <reanimated/CSS/interpolation/transforms/operations/scale.h>
26
+ #include <reanimated/CSS/interpolation/transforms/operations/skew.h>
27
+ #include <reanimated/CSS/interpolation/transforms/operations/translate.h>
28
+
29
+ #include <reanimated/CSS/interpolation/filters/operations/blur.h>
30
+ #include <reanimated/CSS/interpolation/filters/operations/brightness.h>
31
+ #include <reanimated/CSS/interpolation/filters/operations/contrast.h>
32
+ #include <reanimated/CSS/interpolation/filters/operations/dropShadow.h>
33
+ #include <reanimated/CSS/interpolation/filters/operations/grayscale.h>
34
+ #include <reanimated/CSS/interpolation/filters/operations/hueRotate.h>
35
+ #include <reanimated/CSS/interpolation/filters/operations/invert.h>
36
+ #include <reanimated/CSS/interpolation/filters/operations/opacity.h>
37
+ #include <reanimated/CSS/interpolation/filters/operations/saturate.h>
38
+ #include <reanimated/CSS/interpolation/filters/operations/sepia.h>
39
+
40
+ #include <limits>
41
+ #include <string>
42
+ #include <vector>
43
+
44
+ namespace reanimated::css {
45
+
46
+ namespace {
47
+
48
+ // Private implementation details
49
+ const std::array<uint8_t, 4> BLACK = {0, 0, 0, 255};
50
+ const std::array<uint8_t, 4> TRANSPARENT = {0, 0, 0, 0};
51
+
52
+ InterpolatorFactoriesRecord mergeInterpolators(const std::vector<InterpolatorFactoriesRecord> &maps) {
53
+ InterpolatorFactoriesRecord result;
54
+ for (const auto &map : maps) {
55
+ result.insert(map.begin(), map.end());
56
+ }
57
+ return result;
58
+ }
59
+
60
+ // ==========================
61
+ // React Native Interpolators
62
+ // ==========================
63
+
64
+ const InterpolatorFactoriesRecord FLEX_INTERPOLATORS = {
65
+ {"alignContent", value<CSSKeyword>("flex-start")},
66
+ {"alignItems", value<CSSKeyword>("stretch")},
67
+ {"alignSelf", value<CSSKeyword>("auto")},
68
+ {"aspectRatio", value<CSSDouble, CSSKeyword>("auto")},
69
+ {"borderBottomWidth", value<CSSDouble>(0)},
70
+ {"borderEndWidth", value<CSSDouble>(0)},
71
+ {"borderLeftWidth", value<CSSDouble>(0)},
72
+ {"borderRightWidth", value<CSSDouble>(0)},
73
+ {"borderStartWidth", value<CSSDouble>(0)},
74
+ {"borderTopWidth", value<CSSDouble>(0)},
75
+ {"borderWidth", value<CSSDouble>(0)},
76
+ {"bottom", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "height"})},
77
+ {"boxSizing", value<CSSKeyword>("border-box")},
78
+ {"display", value<CSSDisplay>("flex")},
79
+ {"end", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "width"})},
80
+ {"flex", value<CSSDouble>(0)},
81
+ {"flexBasis", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "width"})},
82
+ {"flexDirection", value<CSSKeyword>("column")},
83
+ {"rowGap", value<CSSLength>(0, {RelativeTo::Self, "height"})},
84
+ {"columnGap", value<CSSLength>(0, {RelativeTo::Self, "width"})},
85
+ {"flexGrow", value<CSSDouble>(0)},
86
+ {"flexShrink", value<CSSDouble>(0)},
87
+ {"flexWrap", value<CSSKeyword>("no-wrap")},
88
+ {"height", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "height"})},
89
+ {"justifyContent", value<CSSKeyword>("flex-start")},
90
+ {"left", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "width"})},
91
+ {"margin", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
92
+ {"marginBottom", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
93
+ {"marginEnd", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
94
+ {"marginHorizontal", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
95
+ {"marginLeft", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
96
+ {"marginRight", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
97
+ {"marginStart", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
98
+ {"marginTop", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
99
+ {"marginVertical", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
100
+ {"maxHeight", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "height"})},
101
+ {"maxWidth", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "width"})},
102
+ {"minHeight", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "height"})},
103
+ {"minWidth", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "width"})},
104
+ {"overflow", value<CSSKeyword>("visible")},
105
+ {"padding", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
106
+ {"paddingBottom", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
107
+ {"paddingEnd", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
108
+ {"paddingHorizontal", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
109
+ {"paddingLeft", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
110
+ {"paddingRight", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
111
+ {"paddingStart", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
112
+ {"paddingTop", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
113
+ {"paddingVertical", value<CSSLength, CSSKeyword>(0, {RelativeTo::Parent, "width"})},
114
+ {"position", value<CSSKeyword>("relative")},
115
+ {"right", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "width"})},
116
+ {"start", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "width"})},
117
+ {"top", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "height"})},
118
+ {"width", value<CSSLength, CSSKeyword>("auto", {RelativeTo::Parent, "width"})},
119
+ {"zIndex", value<CSSInteger>(0)},
120
+ {"direction", value<CSSKeyword>("inherit")}};
121
+
122
+ const InterpolatorFactoriesRecord SHADOW_INTERPOLATORS_IOS = {
123
+ {"shadowColor", value<CSSColor>(BLACK)},
124
+ {"shadowOffset", record({{"width", value<CSSDouble>(0)}, {"height", value<CSSDouble>(0)}})},
125
+ {"shadowRadius", value<CSSDouble>(0)},
126
+ {"shadowOpacity", value<CSSDouble>(1)}};
127
+
128
+ const InterpolatorFactoriesRecord TRANSFORMS_INTERPOLATORS = {
129
+ {"transformOrigin",
130
+ array(
131
+ {value<CSSLength>("50%", {RelativeTo::Self, "width"}),
132
+ value<CSSLength>("50%", {RelativeTo::Self, "height"}),
133
+ value<CSSDouble>(0)})},
134
+ {"transform",
135
+ transforms(
136
+ {{"perspective", transformOp<PerspectiveOperation>(std::numeric_limits<double>::infinity())},
137
+ {"rotate", transformOp<RotateOperation>("0deg")},
138
+ {"rotateX", transformOp<RotateXOperation>("0deg")},
139
+ {"rotateY", transformOp<RotateYOperation>("0deg")},
140
+ {"rotateZ", transformOp<RotateZOperation>("0deg")},
141
+ {"scale", transformOp<ScaleOperation>(1)},
142
+ {"scaleX", transformOp<ScaleXOperation>(1)},
143
+ {"scaleY", transformOp<ScaleYOperation>(1)},
144
+ {"translateX", transformOp<TranslateXOperation>(0, {RelativeTo::Self, "width"})},
145
+ {"translateY", transformOp<TranslateYOperation>(0, {RelativeTo::Self, "height"})},
146
+ {"skewX", transformOp<SkewXOperation>("0deg")},
147
+ {"skewY", transformOp<SkewYOperation>("0deg")},
148
+ {"matrix", transformOp<MatrixOperation>(TransformMatrix2D())}})},
149
+ };
150
+
151
+ const InterpolatorFactoriesRecord FILTER_INTERPOLATORS = {
152
+ {"filter",
153
+ filters(
154
+ {{"blur", filterOp<BlurOperation>(0)},
155
+ {"brightness", filterOp<BrightnessOperation>(1)},
156
+ {"contrast", filterOp<ContrastOperation>(1)},
157
+ {"dropShadow", filterOp<DropShadowOperation>(CSSDropShadow())},
158
+ {"grayscale", filterOp<GrayscaleOperation>(0)},
159
+ {"hueRotate", filterOp<HueRotateOperation>(0)},
160
+ {"invert", filterOp<InvertOperation>(0)},
161
+ {"opacity", filterOp<OpacityOperation>(1)},
162
+ {"saturate", filterOp<SaturateOperation>(1)},
163
+ {"sepia", filterOp<SepiaOperation>(0)}})}};
164
+
165
+ const InterpolatorFactoriesRecord VIEW_INTERPOLATORS = mergeInterpolators(
166
+ {FLEX_INTERPOLATORS,
167
+ SHADOW_INTERPOLATORS_IOS,
168
+ TRANSFORMS_INTERPOLATORS,
169
+ FILTER_INTERPOLATORS,
170
+ InterpolatorFactoriesRecord{
171
+ {"backfaceVisibility", value<CSSKeyword>("visible")},
172
+ {"backgroundColor", value<CSSColor>(TRANSPARENT)},
173
+ {"borderBlockColor", value<CSSColor>(BLACK)},
174
+ {"borderBlockEndColor", value<CSSColor>(BLACK)},
175
+ {"borderBlockStartColor", value<CSSColor>(BLACK)},
176
+ {"borderBottomColor", value<CSSColor>(BLACK)},
177
+ {"borderBottomEndRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
178
+ {"borderBottomLeftRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
179
+ {"borderBottomRightRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
180
+ {"borderBottomStartRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
181
+ {"borderColor", value<CSSColor>(BLACK)},
182
+ {"borderCurve", value<CSSKeyword>("circular")},
183
+ {"borderEndColor", value<CSSColor>(BLACK)},
184
+ {"borderEndEndRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
185
+ {"borderEndStartRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
186
+ {"borderLeftColor", value<CSSColor>(BLACK)},
187
+ {"borderRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
188
+ {"borderRightColor", value<CSSColor>(BLACK)},
189
+ {"borderStartColor", value<CSSColor>(BLACK)},
190
+ {"borderStartEndRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
191
+ {"borderStartStartRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
192
+ {"borderStyle", value<CSSKeyword>("solid")},
193
+ {"borderTopColor", value<CSSColor>(BLACK)},
194
+ {"borderTopEndRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
195
+ {"borderTopLeftRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
196
+ {"borderTopRightRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
197
+ {"borderTopStartRadius", value<CSSLength>(0, {RelativeTo::Self, "width"})},
198
+ {"outlineColor", value<CSSColor>(BLACK)},
199
+ {"outlineOffset", value<CSSDouble>(0)},
200
+ {"outlineStyle", value<CSSKeyword>("solid")},
201
+ {"outlineWidth", value<CSSDouble>(0)},
202
+ {"opacity", value<CSSDouble>(1)},
203
+ {"elevation", value<CSSDouble>(0)},
204
+ {"pointerEvents", value<CSSKeyword>("auto")},
205
+ {"isolation", value<CSSKeyword>("auto")},
206
+ {"cursor", value<CSSKeyword>("auto")},
207
+ {"boxShadow", array({value<CSSBoxShadow>(CSSBoxShadow())})},
208
+ {"mixBlendMode", value<CSSKeyword>("normal")}}});
209
+
210
+ const InterpolatorFactoriesRecord TEXT_INTERPOLATORS_IOS = {
211
+ {"fontVariant", value<CSSDiscreteArray<CSSKeyword>>(std::vector<CSSKeyword>{})},
212
+ {"textDecorationColor", value<CSSColor>(BLACK)},
213
+ {"textDecorationStyle", value<CSSKeyword>("solid")},
214
+ {"writingDirection", value<CSSKeyword>("auto")},
215
+ };
216
+
217
+ const InterpolatorFactoriesRecord TEXT_INTERPOLATORS_ANDROID = {
218
+ {"textAlignVertical", value<CSSKeyword>("auto")},
219
+ {"verticalAlign", value<CSSKeyword>("auto")},
220
+ {"includeFontPadding", value<CSSBoolean>(false)},
221
+ };
222
+
223
+ const InterpolatorFactoriesRecord TEXT_INTERPOLATORS = mergeInterpolators(
224
+ {VIEW_INTERPOLATORS,
225
+ TEXT_INTERPOLATORS_IOS,
226
+ TEXT_INTERPOLATORS_ANDROID,
227
+ InterpolatorFactoriesRecord{
228
+ {"color", value<CSSColor>(BLACK)},
229
+ {"fontFamily", value<CSSKeyword>("inherit")},
230
+ {"fontSize", value<CSSDouble>(14)},
231
+ {"fontStyle", value<CSSKeyword>("normal")},
232
+ {"fontWeight", value<CSSKeyword>("normal")},
233
+ {"letterSpacing", value<CSSDouble>(0)},
234
+ {"lineHeight", value<CSSDouble>(14)}, // TODO - should inherit from fontSize
235
+ {"textAlign", value<CSSKeyword>("auto")},
236
+ {"textDecorationLine", value<CSSKeyword>("none")},
237
+ {"textShadowColor", value<CSSColor>(BLACK)},
238
+ {"textShadowOffset", record({{"width", value<CSSDouble>(0)}, {"height", value<CSSDouble>(0)}})},
239
+ {"textShadowRadius", value<CSSDouble>(0)},
240
+ {"textTransform", value<CSSKeyword>("none")},
241
+ {"userSelect", value<CSSKeyword>("auto")},
242
+ }});
243
+
244
+ const InterpolatorFactoriesRecord IMAGE_INTERPOLATORS = mergeInterpolators(
245
+ {VIEW_INTERPOLATORS,
246
+ InterpolatorFactoriesRecord{
247
+ {"resizeMode", value<CSSKeyword>("cover")},
248
+ {"overlayColor", value<CSSColor>(BLACK)},
249
+ {"tintColor", value<CSSColor>(BLACK)},
250
+ }});
251
+
252
+ // =================
253
+ // SVG INTERPOLATORS
254
+ // =================
255
+
256
+ const InterpolatorFactoriesRecord SVG_COLOR_INTERPOLATORS = {
257
+ {"color", value<SVGBrush>(BLACK)},
258
+ };
259
+
260
+ const InterpolatorFactoriesRecord SVG_FILL_INTERPOLATORS = {
261
+ {"fill", value<SVGBrush>(BLACK)},
262
+ {"fillOpacity", value<CSSDouble>(1)},
263
+ {"fillRule", value<CSSInteger>(0)},
264
+ };
265
+
266
+ const InterpolatorFactoriesRecord SVG_STROKE_INTERPOLATORS = {
267
+ {"stroke", value<SVGBrush>(BLACK)},
268
+ {"strokeWidth", value<SVGLength>(1)},
269
+ {"strokeOpacity", value<CSSDouble>(1)},
270
+ {"strokeDasharray", value<SVGStrokeDashArray, CSSKeyword>(SVGStrokeDashArray())},
271
+ {"strokeDashoffset", value<SVGLength>(0)},
272
+ {"strokeLinecap", value<CSSInteger>(0)},
273
+ {"strokeLinejoin", value<CSSInteger>(0)},
274
+ {"strokeMiterlimit", value<CSSDouble>(4)},
275
+ {"vectorEffect", value<CSSInteger>(0)},
276
+ };
277
+
278
+ const InterpolatorFactoriesRecord SVG_CLIP_INTERPOLATORS = {
279
+ {"clipRule", value<CSSKeyword>("nonzero")},
280
+ {"clipPath", value<CSSKeyword>("none")},
281
+ };
282
+
283
+ const InterpolatorFactoriesRecord SVG_TRANSFORM_INTERPOLATORS = {
284
+ {"translateX", value<SVGLength>(0)},
285
+ {"translateY", value<SVGLength>(0)},
286
+ {"originX", value<SVGLength>(0)},
287
+ {"originY", value<SVGLength>(0)},
288
+ {"scaleX", value<CSSDouble>(1)},
289
+ {"scaleY", value<CSSDouble>(1)},
290
+ {"skewX", value<CSSAngle>(0)},
291
+ {"skewY", value<CSSAngle>(0)},
292
+ {"rotation", value<CSSAngle>(0)},
293
+ };
294
+
295
+ const InterpolatorFactoriesRecord SVG_COMMON_INTERPOLATORS = mergeInterpolators({
296
+ SVG_COLOR_INTERPOLATORS,
297
+ SVG_FILL_INTERPOLATORS,
298
+ SVG_STROKE_INTERPOLATORS,
299
+ InterpolatorFactoriesRecord{{"opacity", value<CSSDouble>(1)}},
300
+ });
301
+
302
+ const InterpolatorFactoriesRecord SVG_CIRCLE_INTERPOLATORS = mergeInterpolators(
303
+ {SVG_COMMON_INTERPOLATORS,
304
+ InterpolatorFactoriesRecord{
305
+ {"cx", value<SVGLength, CSSKeyword>(0)},
306
+ {"cy", value<SVGLength, CSSKeyword>(0)},
307
+ {"r", value<SVGLength, CSSKeyword>(0)},
308
+ }});
309
+
310
+ const InterpolatorFactoriesRecord SVG_ELLIPSE_INTERPOLATORS = mergeInterpolators(
311
+ {SVG_COMMON_INTERPOLATORS,
312
+ InterpolatorFactoriesRecord{
313
+ {"cx", value<SVGLength, CSSKeyword>(0)},
314
+ {"cy", value<SVGLength, CSSKeyword>(0)},
315
+ {"rx", value<SVGLength, CSSKeyword>(0)},
316
+ {"ry", value<SVGLength, CSSKeyword>(0)},
317
+ }});
318
+
319
+ const InterpolatorFactoriesRecord SVG_LINE_INTERPOLATORS = mergeInterpolators(
320
+ {SVG_COMMON_INTERPOLATORS,
321
+ InterpolatorFactoriesRecord{
322
+ {"x1", value<SVGLength, CSSKeyword>(0)},
323
+ {"y1", value<SVGLength, CSSKeyword>(0)},
324
+ {"x2", value<SVGLength, CSSKeyword>(0)},
325
+ {"y2", value<SVGLength, CSSKeyword>(0)},
326
+ }});
327
+
328
+ const InterpolatorFactoriesRecord SVG_RECT_INTERPOLATORS = mergeInterpolators(
329
+ {SVG_COMMON_INTERPOLATORS,
330
+ InterpolatorFactoriesRecord{
331
+ {"x", value<SVGLength, CSSKeyword>(0)},
332
+ {"y", value<SVGLength, CSSKeyword>(0)},
333
+ {"width", value<SVGLength, CSSKeyword>(0)},
334
+ {"height", value<SVGLength, CSSKeyword>(0)},
335
+ {"rx", value<SVGLength, CSSKeyword>(0)},
336
+ {"ry", value<SVGLength, CSSKeyword>(0)},
337
+ }});
338
+
339
+ const InterpolatorFactoriesRecord SVG_PATH_INTERPOLATORS = mergeInterpolators(
340
+ {SVG_COMMON_INTERPOLATORS,
341
+ InterpolatorFactoriesRecord{
342
+ // TODO - add more properties
343
+ }});
344
+
345
+ // ==================
346
+ // COMPONENT REGISTRY
347
+ // ==================
348
+
349
+ ComponentInterpolatorsMap initializeRegistry() {
350
+ ComponentInterpolatorsMap registry = {
351
+ // React Native Components
352
+ {"View", VIEW_INTERPOLATORS},
353
+ {"Paragraph", TEXT_INTERPOLATORS},
354
+ {"Image", IMAGE_INTERPOLATORS},
355
+ };
356
+
357
+ if (StaticFeatureFlags::getFlag("EXPERIMENTAL_CSS_ANIMATIONS_FOR_SVG_COMPONENTS")) {
358
+ // SVG Components
359
+ registry["RNSVGCircle"] = SVG_CIRCLE_INTERPOLATORS;
360
+ registry["RNSVGEllipse"] = SVG_ELLIPSE_INTERPOLATORS;
361
+ registry["RNSVGLine"] = SVG_LINE_INTERPOLATORS;
362
+ registry["RNSVGPath"] = SVG_PATH_INTERPOLATORS;
363
+ registry["RNSVGRect"] = SVG_RECT_INTERPOLATORS;
364
+ }
365
+
366
+ return registry;
367
+ }
368
+
369
+ ComponentInterpolatorsMap registry = initializeRegistry();
370
+
371
+ } // namespace
372
+
373
+ const InterpolatorFactoriesRecord &getComponentInterpolators(const std::string &componentName) {
374
+ if (auto it = registry.find(componentName); it != registry.end()) {
375
+ return it->second;
376
+ }
377
+
378
+ // Use View interpolators as a fallback for unknown components
379
+ // (e.g. we get the ScrollView component name for the ScrollView component
380
+ // but it should be styled in the same way as a View)
381
+ return VIEW_INTERPOLATORS;
382
+ }
383
+
384
+ void registerComponentInterpolators(
385
+ const std::string &componentName,
386
+ const InterpolatorFactoriesRecord &interpolators) {
387
+ registry[componentName] = interpolators;
388
+ }
389
+
390
+ } // namespace reanimated::css
@@ -0,0 +1,16 @@
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/interpolation/PropertyInterpolator.h>
4
+
5
+ #include <string>
6
+ #include <unordered_map>
7
+
8
+ namespace reanimated::css {
9
+
10
+ using ComponentInterpolatorsMap = std::unordered_map<std::string, InterpolatorFactoriesRecord>;
11
+
12
+ const InterpolatorFactoriesRecord &getComponentInterpolators(const std::string &componentName);
13
+
14
+ void registerComponentInterpolators(const std::string &componentName, const InterpolatorFactoriesRecord &interpolators);
15
+
16
+ } // namespace reanimated::css
@@ -0,0 +1,30 @@
1
+ #pragma once
2
+
3
+ #include <folly/dynamic.h>
4
+ #include <jsi/jsi.h>
5
+ #include <string>
6
+ #include <vector>
7
+
8
+ namespace reanimated::css {
9
+
10
+ using namespace facebook;
11
+
12
+ using PropertyNames = std::vector<std::string>;
13
+ using PropertyPath = std::vector<std::string>;
14
+ /**
15
+ * If nullopt - all style properties can trigger transition
16
+ * If empty vector - no style property can trigger transition
17
+ * Otherwise - only specified style properties can trigger transition
18
+ */
19
+ using TransitionProperties = std::optional<PropertyNames>;
20
+
21
+ using EasingFunction = std::function<double(double)>;
22
+ using ColorChannels = std::array<uint8_t, 4>;
23
+
24
+ struct FieldValidator {
25
+ std::string fieldName;
26
+ std::function<bool(const folly::dynamic &)> validateDynamic;
27
+ std::function<bool(jsi::Runtime &, const jsi::Value &)> validateJSI;
28
+ };
29
+
30
+ } // namespace reanimated::css
@@ -0,0 +1,46 @@
1
+ #include <reanimated/CSS/common/filters/FilterOp.h>
2
+
3
+ #include <array>
4
+ #include <string>
5
+ #include <unordered_map>
6
+
7
+ namespace reanimated::css {
8
+
9
+ constexpr std::array<const char *, 10> filterOperationStrings = {
10
+ "blur",
11
+ "brightness",
12
+ "contrast",
13
+ "dropShadow",
14
+ "grayscale",
15
+ "hueRotate",
16
+ "invert",
17
+ "opacity",
18
+ "saturate",
19
+ "sepia"};
20
+
21
+ FilterOp getFilterOperationType(const std::string &property) {
22
+ static const std::unordered_map<std::string, FilterOp> stringToEnumMap = {
23
+ {"blur", FilterOp::Blur},
24
+ {"brightness", FilterOp::Brightness},
25
+ {"contrast", FilterOp::Contrast},
26
+ {"dropShadow", FilterOp::DropShadow},
27
+ {"grayscale", FilterOp::Grayscale},
28
+ {"hueRotate", FilterOp::HueRotate},
29
+ {"invert", FilterOp::Invert},
30
+ {"opacity", FilterOp::Opacity},
31
+ {"saturate", FilterOp::Saturate},
32
+ {"sepia", FilterOp::Sepia}};
33
+
34
+ auto it = stringToEnumMap.find(property);
35
+ if (it != stringToEnumMap.end()) {
36
+ return it->second;
37
+ } else {
38
+ throw std::invalid_argument("[Reanimated] Unknown filter operation: " + property);
39
+ }
40
+ }
41
+
42
+ std::string getFilterOperationName(const FilterOp type) {
43
+ return filterOperationStrings[static_cast<uint8_t>(type)];
44
+ }
45
+
46
+ } // namespace reanimated::css
@@ -0,0 +1,23 @@
1
+ #pragma once
2
+
3
+ #include <string>
4
+
5
+ namespace reanimated::css {
6
+
7
+ enum class FilterOp : uint8_t {
8
+ Blur,
9
+ Brightness,
10
+ Contrast,
11
+ DropShadow,
12
+ Grayscale,
13
+ HueRotate,
14
+ Invert,
15
+ Opacity,
16
+ Saturate,
17
+ Sepia
18
+ };
19
+
20
+ FilterOp getFilterOperationType(const std::string &property);
21
+ std::string getFilterOperationName(const FilterOp type);
22
+
23
+ } // namespace reanimated::css
@@ -0,0 +1,53 @@
1
+ #include <reanimated/CSS/common/transforms/Quaternion.h>
2
+ #include <cmath>
3
+
4
+ namespace reanimated::css {
5
+
6
+ bool Quaternion::operator==(const Quaternion &other) const {
7
+ return x == other.x && y == other.y && z == other.z && w == other.w;
8
+ }
9
+
10
+ #ifndef NDEBUG
11
+
12
+ std::ostream &operator<<(std::ostream &os, const Quaternion &quaternion) {
13
+ os << "Quaternion(" << quaternion.x << ", " << quaternion.y << ", " << quaternion.z << ", " << quaternion.w << ")";
14
+ return os;
15
+ }
16
+
17
+ #endif // NDEBUG
18
+
19
+ Quaternion Quaternion::interpolate(const double t, const Quaternion &other) const {
20
+ const double kEpsilon = 1e-5;
21
+ Quaternion copy = *this;
22
+
23
+ double cosHalfAngle = copy.x * other.x + copy.y * other.y + copy.z * other.z + copy.w * other.w;
24
+
25
+ if (cosHalfAngle < 0.0) {
26
+ copy.x = -copy.x;
27
+ copy.y = -copy.y;
28
+ copy.z = -copy.z;
29
+ copy.w = -copy.w;
30
+ cosHalfAngle = -cosHalfAngle;
31
+ }
32
+
33
+ if (cosHalfAngle > 1)
34
+ cosHalfAngle = 1;
35
+
36
+ double sinHalfAngle = std::sqrt(1.0 - cosHalfAngle * cosHalfAngle);
37
+ if (sinHalfAngle < kEpsilon) {
38
+ // Quaternions share common axis and angle.
39
+ return *this;
40
+ }
41
+
42
+ double halfAngle = std::acos(cosHalfAngle);
43
+ double scale = std::sin((1 - t) * halfAngle) / sinHalfAngle;
44
+ double invscale = std::sin(t * halfAngle) / sinHalfAngle;
45
+
46
+ return {
47
+ copy.x * scale + other.x * invscale,
48
+ copy.y * scale + other.y * invscale,
49
+ copy.z * scale + other.z * invscale,
50
+ copy.w * scale + other.w * invscale};
51
+ }
52
+
53
+ } // namespace reanimated::css
@@ -0,0 +1,21 @@
1
+ #pragma once
2
+
3
+ #ifndef NDEBUG
4
+ #include <iostream>
5
+ #endif // NDEBUG
6
+
7
+ namespace reanimated::css {
8
+
9
+ struct Quaternion {
10
+ double x, y, z, w;
11
+
12
+ bool operator==(const Quaternion &other) const;
13
+
14
+ #ifndef NDEBUG
15
+ friend std::ostream &operator<<(std::ostream &os, const Quaternion &quaternion);
16
+ #endif // NDEBUG
17
+
18
+ Quaternion interpolate(double progress, const Quaternion &other) const;
19
+ };
20
+
21
+ } // namespace reanimated::css