@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,44 +1,45 @@
1
- #pragma once
2
-
3
- #include <reanimated/CSS/common/values/CSSKeyword.h>
4
-
5
- #include <string>
6
- #include <vector>
7
- #include <worklets/Tools/JSISerializer.h>
8
- #include <type_traits>
9
-
10
- namespace reanimated::css {
11
- using namespace worklets;
12
- /*
13
- * CSSDiscreteArray is used for array interpolation when arrays need to be
14
- * treated as discrete values. Instead of interpolating between corresponding
15
- * elements of two arrays, this type interpolates between entire arrays
16
- * treated as single discrete values.
17
- */
18
- template <typename TValue>
19
- struct CSSDiscreteArray : public CSSSimpleValue<CSSDiscreteArray<TValue>> {
20
- static_assert(CSSValueDerived<TValue>, "TValue must be derived from CSSValue");
21
- static constexpr bool is_discrete_value = true;
22
-
23
- std::vector<TValue> values;
24
-
25
- CSSDiscreteArray();
26
- explicit CSSDiscreteArray(const std::vector<TValue> &values);
27
- explicit CSSDiscreteArray(jsi::Runtime &rt, const jsi::Value &jsiValue);
28
- explicit CSSDiscreteArray(const folly::dynamic &value);
29
-
30
- static bool canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue);
31
- static bool canConstruct(const folly::dynamic &value);
32
-
33
- folly::dynamic toDynamic() const override;
34
- std::string toString() const override;
35
- CSSDiscreteArray<TValue> interpolate(double progress, const CSSDiscreteArray<TValue> &other) const override;
36
-
37
- bool operator==(const CSSDiscreteArray<TValue> &other) const;
38
-
39
- #ifndef NDEBUG
40
- friend std::ostream &operator<<(std::ostream &os, const CSSDiscreteArray<TValue> &arrayValue);
41
- #endif // NDEBUG
42
- };
43
-
44
- } // namespace reanimated::css
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/common/values/CSSKeyword.h>
4
+
5
+ #include <sstream>
6
+ #include <string>
7
+ #include <vector>
8
+ #include <worklets/Tools/JSISerializer.h>
9
+ #include <type_traits>
10
+
11
+ namespace reanimated::css {
12
+ using namespace worklets;
13
+ /*
14
+ * CSSDiscreteArray is used for array interpolation when arrays need to be
15
+ * treated as discrete values. Instead of interpolating between corresponding
16
+ * elements of two arrays, this type interpolates between entire arrays
17
+ * treated as single discrete values.
18
+ */
19
+ template <typename TValue>
20
+ struct CSSDiscreteArray : public CSSSimpleValue<CSSDiscreteArray<TValue>> {
21
+ static_assert(CSSValueDerived<TValue>, "TValue must be derived from CSSValue");
22
+ static constexpr bool is_discrete_value = true;
23
+
24
+ std::vector<TValue> values;
25
+
26
+ CSSDiscreteArray();
27
+ explicit CSSDiscreteArray(const std::vector<TValue> &values);
28
+ explicit CSSDiscreteArray(jsi::Runtime &rt, const jsi::Value &jsiValue);
29
+ explicit CSSDiscreteArray(const folly::dynamic &value);
30
+
31
+ static bool canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue);
32
+ static bool canConstruct(const folly::dynamic &value);
33
+
34
+ folly::dynamic toDynamic() const override;
35
+ std::string toString() const override;
36
+ CSSDiscreteArray<TValue> interpolate(double progress, const CSSDiscreteArray<TValue> &other) const override;
37
+
38
+ bool operator==(const CSSDiscreteArray<TValue> &other) const;
39
+
40
+ #ifndef NDEBUG
41
+ friend std::ostream &operator<<(std::ostream &os, const CSSDiscreteArray<TValue> &arrayValue);
42
+ #endif // NDEBUG
43
+ };
44
+
45
+ } // namespace reanimated::css
@@ -1,81 +1,81 @@
1
- #include <reanimated/CSS/common/values/CSSKeyword.h>
2
-
3
- #include <string>
4
-
5
- namespace reanimated::css {
6
-
7
- template <typename TValue>
8
- CSSKeywordBase<TValue>::CSSKeywordBase(const char *value) : value(value) {}
9
-
10
- template <typename TValue>
11
- CSSKeywordBase<TValue>::CSSKeywordBase(jsi::Runtime &rt, const jsi::Value &jsiValue) {
12
- value = jsiValue.asString(rt).utf8(rt);
13
- }
14
-
15
- template <typename TValue>
16
- CSSKeywordBase<TValue>::CSSKeywordBase(const folly::dynamic &value) {
17
- this->value = value.asString();
18
- }
19
-
20
- template <typename TValue>
21
- bool CSSKeywordBase<TValue>::canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue) {
22
- return jsiValue.isString();
23
- }
24
-
25
- template <typename TValue>
26
- bool CSSKeywordBase<TValue>::canConstruct(const folly::dynamic &value) {
27
- return value.isString();
28
- }
29
-
30
- template <typename TValue>
31
- folly::dynamic CSSKeywordBase<TValue>::toDynamic() const {
32
- return value;
33
- }
34
-
35
- template <typename TValue>
36
- std::string CSSKeywordBase<TValue>::toString() const {
37
- return value;
38
- }
39
-
40
- template <typename TValue>
41
- bool CSSKeywordBase<TValue>::operator==(const CSSKeywordBase<TValue> &other) const {
42
- return value == other.value;
43
- }
44
-
45
- CSSKeyword CSSKeyword::interpolate(double progress, const CSSKeyword &to) const {
46
- return CSSKeyword(progress < 0.5 ? value : to.value);
47
- }
48
-
49
- #ifndef NDEBUG
50
-
51
- std::ostream &operator<<(std::ostream &os, const CSSKeyword &keywordValue) {
52
- os << "CSSKeyword(" << keywordValue.toString() << ")";
53
- return os;
54
- }
55
-
56
- #endif // NDEBUG
57
-
58
- CSSDisplay CSSDisplay::interpolate(double progress, const CSSDisplay &to) const {
59
- if (value == "none" && progress > 0) {
60
- return CSSDisplay(to.value);
61
- }
62
- if (to.value == "none" && progress < 1) {
63
- return CSSDisplay(value);
64
- }
65
- return CSSDisplay(progress < 0.5 ? value : to.value);
66
- }
67
-
68
- #ifndef NDEBUG
69
-
70
- std::ostream &operator<<(std::ostream &os, const CSSDisplay &displayValue) {
71
- os << "CSSDisplay(" << displayValue.toString() << ")";
72
- return os;
73
- }
74
-
75
- #endif // NDEBUG
76
-
77
- // Explicit template instantiations
78
- template class CSSKeywordBase<CSSKeyword>;
79
- template class CSSKeywordBase<CSSDisplay>;
80
-
81
- } // namespace reanimated::css
1
+ #include <reanimated/CSS/common/values/CSSKeyword.h>
2
+
3
+ #include <string>
4
+
5
+ namespace reanimated::css {
6
+
7
+ template <typename TValue>
8
+ CSSKeywordBase<TValue>::CSSKeywordBase(const char *value) : value(value) {}
9
+
10
+ template <typename TValue>
11
+ CSSKeywordBase<TValue>::CSSKeywordBase(jsi::Runtime &rt, const jsi::Value &jsiValue) {
12
+ value = jsiValue.asString(rt).utf8(rt);
13
+ }
14
+
15
+ template <typename TValue>
16
+ CSSKeywordBase<TValue>::CSSKeywordBase(const folly::dynamic &value) {
17
+ this->value = value.asString();
18
+ }
19
+
20
+ template <typename TValue>
21
+ bool CSSKeywordBase<TValue>::canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue) {
22
+ return jsiValue.isString();
23
+ }
24
+
25
+ template <typename TValue>
26
+ bool CSSKeywordBase<TValue>::canConstruct(const folly::dynamic &value) {
27
+ return value.isString();
28
+ }
29
+
30
+ template <typename TValue>
31
+ folly::dynamic CSSKeywordBase<TValue>::toDynamic() const {
32
+ return value;
33
+ }
34
+
35
+ template <typename TValue>
36
+ std::string CSSKeywordBase<TValue>::toString() const {
37
+ return value;
38
+ }
39
+
40
+ template <typename TValue>
41
+ bool CSSKeywordBase<TValue>::operator==(const CSSKeywordBase<TValue> &other) const {
42
+ return value == other.value;
43
+ }
44
+
45
+ CSSKeyword CSSKeyword::interpolate(double progress, const CSSKeyword &to) const {
46
+ return CSSKeyword(progress < 0.5 ? value : to.value);
47
+ }
48
+
49
+ #ifndef NDEBUG
50
+
51
+ std::ostream &operator<<(std::ostream &os, const CSSKeyword &keywordValue) {
52
+ os << "CSSKeyword(" << keywordValue.toString() << ")";
53
+ return os;
54
+ }
55
+
56
+ #endif // NDEBUG
57
+
58
+ CSSDisplay CSSDisplay::interpolate(double progress, const CSSDisplay &to) const {
59
+ if (value == "none" && progress > 0) {
60
+ return CSSDisplay(to.value);
61
+ }
62
+ if (to.value == "none" && progress < 1) {
63
+ return CSSDisplay(value);
64
+ }
65
+ return CSSDisplay(progress < 0.5 ? value : to.value);
66
+ }
67
+
68
+ #ifndef NDEBUG
69
+
70
+ std::ostream &operator<<(std::ostream &os, const CSSDisplay &displayValue) {
71
+ os << "CSSDisplay(" << displayValue.toString() << ")";
72
+ return os;
73
+ }
74
+
75
+ #endif // NDEBUG
76
+
77
+ // Explicit template instantiations
78
+ template class CSSKeywordBase<CSSKeyword>;
79
+ template class CSSKeywordBase<CSSDisplay>;
80
+
81
+ } // namespace reanimated::css
@@ -1,53 +1,53 @@
1
- #pragma once
2
-
3
- #include <reanimated/CSS/common/values/CSSValue.h>
4
-
5
- #include <string>
6
-
7
- namespace reanimated::css {
8
-
9
- template <typename TValue>
10
- class CSSKeywordBase : public CSSSimpleValue<TValue> {
11
- public:
12
- static constexpr bool is_discrete_value = true;
13
-
14
- CSSKeywordBase() = default;
15
- explicit CSSKeywordBase(const char *value);
16
- explicit CSSKeywordBase(jsi::Runtime &rt, const jsi::Value &jsiValue);
17
- explicit CSSKeywordBase(const folly::dynamic &value);
18
-
19
- static bool canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue);
20
- static bool canConstruct(const folly::dynamic &value);
21
-
22
- folly::dynamic toDynamic() const override;
23
- std::string toString() const override;
24
-
25
- bool operator==(const CSSKeywordBase &other) const;
26
-
27
- protected:
28
- std::string value;
29
- };
30
-
31
- struct CSSKeyword : public CSSKeywordBase<CSSKeyword> {
32
- using CSSKeywordBase<CSSKeyword>::CSSKeywordBase;
33
- using CSSKeywordBase<CSSKeyword>::canConstruct;
34
-
35
- CSSKeyword interpolate(double progress, const CSSKeyword &to) const override;
36
-
37
- #ifndef NDEBUG
38
- friend std::ostream &operator<<(std::ostream &os, const CSSKeyword &keywordValue);
39
- #endif // NDEBUG
40
- };
41
-
42
- struct CSSDisplay : public CSSKeywordBase<CSSDisplay> {
43
- using CSSKeywordBase<CSSDisplay>::CSSKeywordBase;
44
- using CSSKeywordBase<CSSDisplay>::canConstruct;
45
-
46
- CSSDisplay interpolate(double progress, const CSSDisplay &to) const override;
47
-
48
- #ifndef NDEBUG
49
- friend std::ostream &operator<<(std::ostream &os, const CSSDisplay &displayValue);
50
- #endif // NDEBUG
51
- };
52
-
53
- } // namespace reanimated::css
1
+ #pragma once
2
+
3
+ #include <reanimated/CSS/common/values/CSSValue.h>
4
+
5
+ #include <string>
6
+
7
+ namespace reanimated::css {
8
+
9
+ template <typename TValue>
10
+ class CSSKeywordBase : public CSSSimpleValue<TValue> {
11
+ public:
12
+ static constexpr bool is_discrete_value = true;
13
+
14
+ CSSKeywordBase() = default;
15
+ explicit CSSKeywordBase(const char *value);
16
+ explicit CSSKeywordBase(jsi::Runtime &rt, const jsi::Value &jsiValue);
17
+ explicit CSSKeywordBase(const folly::dynamic &value);
18
+
19
+ static bool canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue);
20
+ static bool canConstruct(const folly::dynamic &value);
21
+
22
+ folly::dynamic toDynamic() const override;
23
+ std::string toString() const override;
24
+
25
+ bool operator==(const CSSKeywordBase &other) const;
26
+
27
+ protected:
28
+ std::string value;
29
+ };
30
+
31
+ struct CSSKeyword : public CSSKeywordBase<CSSKeyword> {
32
+ using CSSKeywordBase<CSSKeyword>::CSSKeywordBase;
33
+ using CSSKeywordBase<CSSKeyword>::canConstruct;
34
+
35
+ CSSKeyword interpolate(double progress, const CSSKeyword &to) const override;
36
+
37
+ #ifndef NDEBUG
38
+ friend std::ostream &operator<<(std::ostream &os, const CSSKeyword &keywordValue);
39
+ #endif // NDEBUG
40
+ };
41
+
42
+ struct CSSDisplay : public CSSKeywordBase<CSSDisplay> {
43
+ using CSSKeywordBase<CSSDisplay>::CSSKeywordBase;
44
+ using CSSKeywordBase<CSSDisplay>::canConstruct;
45
+
46
+ CSSDisplay interpolate(double progress, const CSSDisplay &to) const override;
47
+
48
+ #ifndef NDEBUG
49
+ friend std::ostream &operator<<(std::ostream &os, const CSSDisplay &displayValue);
50
+ #endif // NDEBUG
51
+ };
52
+
53
+ } // namespace reanimated::css
@@ -1,122 +1,122 @@
1
- #include <reanimated/CSS/common/values/CSSLength.h>
2
-
3
- #include <string>
4
-
5
- namespace reanimated::css {
6
-
7
- CSSLength::CSSLength() : value(0), isRelative(false) {}
8
-
9
- CSSLength::CSSLength(const double value) : value(value), isRelative(false) {}
10
-
11
- CSSLength::CSSLength(const double value, const bool isRelative) : value(value), isRelative(isRelative) {}
12
-
13
- CSSLength::CSSLength(const char *value) {
14
- if (!canConstruct(value)) {
15
- throw std::invalid_argument("[Reanimated] CSSLength: Invalid value: " + std::string(value));
16
- }
17
-
18
- std::string str = value;
19
- str.pop_back();
20
- this->value = std::stod(str) / 100;
21
- this->isRelative = true;
22
- }
23
-
24
- CSSLength::CSSLength(jsi::Runtime &rt, const jsi::Value &jsiValue) {
25
- if (jsiValue.isNumber()) {
26
- this->value = jsiValue.asNumber();
27
- this->isRelative = false;
28
- } else {
29
- *this = CSSLength(jsiValue.asString(rt).utf8(rt));
30
- }
31
- }
32
-
33
- CSSLength::CSSLength(const folly::dynamic &value) {
34
- if (value.isNumber()) {
35
- this->value = value.getDouble();
36
- this->isRelative = false;
37
- } else {
38
- *this = CSSLength(value.asString().c_str());
39
- }
40
- }
41
-
42
- bool CSSLength::canConstruct(const std::string &value) {
43
- return !value.empty() && value.back() == '%';
44
- }
45
-
46
- bool CSSLength::canConstruct(const char *value) {
47
- return canConstruct(std::string(value));
48
- }
49
-
50
- bool CSSLength::canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue) {
51
- return jsiValue.isNumber() || (jsiValue.isString() && canConstruct(jsiValue.getString(rt).utf8(rt)));
52
- }
53
-
54
- bool CSSLength::canConstruct(const folly::dynamic &value) {
55
- return value.isNumber() || (value.isString() && canConstruct(value.getString()));
56
- }
57
-
58
- folly::dynamic CSSLength::toDynamic() const {
59
- if (isRelative) {
60
- return std::to_string(value * 100) + "%";
61
- }
62
- return value;
63
- }
64
-
65
- std::string CSSLength::toString() const {
66
- return isRelative ? (std::to_string(value * 100) + "%") : std::to_string(value);
67
- }
68
-
69
- CSSLength CSSLength::interpolate(
70
- const double progress,
71
- const CSSLength &to,
72
- const ResolvableValueInterpolationContext &context) const {
73
- // If both value types are the same, we can interpolate without reading the
74
- // relative value from the shadow node
75
- // (also, when one of the values is 0, and the other is relative)
76
- if ((isRelative == to.isRelative) || (isRelative && to.value == 0) || (to.isRelative && value == 0)) {
77
- return CSSLength(value + (to.value - value) * progress, isRelative || to.isRelative);
78
- }
79
- // Otherwise, we need to read the relative value from the shadow node and
80
- // interpolate values as numbers
81
- const auto resolvedFrom = resolve(context);
82
- const auto resolvedTo = to.resolve(context);
83
-
84
- if (!resolvedFrom.has_value() || !resolvedTo.has_value()) {
85
- return progress < 0.5 ? *this : to;
86
- }
87
- return CSSLength(resolvedFrom.value() + (resolvedTo.value() - resolvedFrom.value()) * progress);
88
- }
89
-
90
- std::optional<double> CSSLength::resolve(const ResolvableValueInterpolationContext &context) const {
91
- if (!isRelative) {
92
- return value;
93
- }
94
-
95
- jsi::Value relativeValue;
96
- if (context.relativeTo == RelativeTo::Self) {
97
- relativeValue = context.viewStylesRepository->getNodeProp(context.node, context.relativeProperty);
98
- } else {
99
- relativeValue = context.viewStylesRepository->getParentNodeProp(context.node, context.relativeProperty);
100
- }
101
-
102
- if (!relativeValue.isNumber()) {
103
- return std::nullopt;
104
- }
105
-
106
- return value * relativeValue.getNumber();
107
- }
108
-
109
- bool CSSLength::operator==(const CSSLength &other) const {
110
- return value == other.value && isRelative == other.isRelative;
111
- }
112
-
113
- #ifndef NDEBUG
114
-
115
- std::ostream &operator<<(std::ostream &os, const CSSLength &value) {
116
- os << "CSSLength(" << value.toString() << ")";
117
- return os;
118
- }
119
-
120
- #endif // NDEBUG
121
-
122
- } // namespace reanimated::css
1
+ #include <reanimated/CSS/common/values/CSSLength.h>
2
+
3
+ #include <string>
4
+
5
+ namespace reanimated::css {
6
+
7
+ CSSLength::CSSLength() : value(0), isRelative(false) {}
8
+
9
+ CSSLength::CSSLength(const double value) : value(value), isRelative(false) {}
10
+
11
+ CSSLength::CSSLength(const double value, const bool isRelative) : value(value), isRelative(isRelative) {}
12
+
13
+ CSSLength::CSSLength(const char *value) {
14
+ if (!canConstruct(value)) {
15
+ throw std::invalid_argument("[Reanimated] CSSLength: Invalid value: " + std::string(value));
16
+ }
17
+
18
+ std::string str = value;
19
+ str.pop_back();
20
+ this->value = std::stod(str) / 100;
21
+ this->isRelative = true;
22
+ }
23
+
24
+ CSSLength::CSSLength(jsi::Runtime &rt, const jsi::Value &jsiValue) {
25
+ if (jsiValue.isNumber()) {
26
+ this->value = jsiValue.asNumber();
27
+ this->isRelative = false;
28
+ } else {
29
+ *this = CSSLength(jsiValue.asString(rt).utf8(rt));
30
+ }
31
+ }
32
+
33
+ CSSLength::CSSLength(const folly::dynamic &value) {
34
+ if (value.isNumber()) {
35
+ this->value = value.getDouble();
36
+ this->isRelative = false;
37
+ } else {
38
+ *this = CSSLength(value.asString().c_str());
39
+ }
40
+ }
41
+
42
+ bool CSSLength::canConstruct(const std::string &value) {
43
+ return !value.empty() && value.back() == '%';
44
+ }
45
+
46
+ bool CSSLength::canConstruct(const char *value) {
47
+ return canConstruct(std::string(value));
48
+ }
49
+
50
+ bool CSSLength::canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue) {
51
+ return jsiValue.isNumber() || (jsiValue.isString() && canConstruct(jsiValue.getString(rt).utf8(rt)));
52
+ }
53
+
54
+ bool CSSLength::canConstruct(const folly::dynamic &value) {
55
+ return value.isNumber() || (value.isString() && canConstruct(value.getString()));
56
+ }
57
+
58
+ folly::dynamic CSSLength::toDynamic() const {
59
+ if (isRelative) {
60
+ return std::to_string(value * 100) + "%";
61
+ }
62
+ return value;
63
+ }
64
+
65
+ std::string CSSLength::toString() const {
66
+ return isRelative ? (std::to_string(value * 100) + "%") : std::to_string(value);
67
+ }
68
+
69
+ CSSLength CSSLength::interpolate(
70
+ const double progress,
71
+ const CSSLength &to,
72
+ const ResolvableValueInterpolationContext &context) const {
73
+ // If both value types are the same, we can interpolate without reading the
74
+ // relative value from the shadow node
75
+ // (also, when one of the values is 0, and the other is relative)
76
+ if ((isRelative == to.isRelative) || (isRelative && to.value == 0) || (to.isRelative && value == 0)) {
77
+ return CSSLength(value + (to.value - value) * progress, isRelative || to.isRelative);
78
+ }
79
+ // Otherwise, we need to read the relative value from the shadow node and
80
+ // interpolate values as numbers
81
+ const auto resolvedFrom = resolve(context);
82
+ const auto resolvedTo = to.resolve(context);
83
+
84
+ if (!resolvedFrom.has_value() || !resolvedTo.has_value()) {
85
+ return progress < 0.5 ? *this : to;
86
+ }
87
+ return CSSLength(resolvedFrom.value() + (resolvedTo.value() - resolvedFrom.value()) * progress);
88
+ }
89
+
90
+ std::optional<double> CSSLength::resolve(const ResolvableValueInterpolationContext &context) const {
91
+ if (!isRelative) {
92
+ return value;
93
+ }
94
+
95
+ jsi::Value relativeValue;
96
+ if (context.relativeTo == RelativeTo::Self) {
97
+ relativeValue = context.viewStylesRepository->getNodeProp(context.node, context.relativeProperty);
98
+ } else {
99
+ relativeValue = context.viewStylesRepository->getParentNodeProp(context.node, context.relativeProperty);
100
+ }
101
+
102
+ if (!relativeValue.isNumber()) {
103
+ return std::nullopt;
104
+ }
105
+
106
+ return value * relativeValue.getNumber();
107
+ }
108
+
109
+ bool CSSLength::operator==(const CSSLength &other) const {
110
+ return value == other.value && isRelative == other.isRelative;
111
+ }
112
+
113
+ #ifndef NDEBUG
114
+
115
+ std::ostream &operator<<(std::ostream &os, const CSSLength &value) {
116
+ os << "CSSLength(" << value.toString() << ")";
117
+ return os;
118
+ }
119
+
120
+ #endif // NDEBUG
121
+
122
+ } // namespace reanimated::css