@react-native-ohos/react-native-reanimated 3.18.2-rc.2 → 4.0.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.
- package/compatibility.json +161 -0
- package/harmony/reanimated/BuildProfile.ets +1 -1
- package/harmony/reanimated/build-profile.json5 +18 -11
- package/harmony/reanimated/oh-package.json5 +12 -11
- package/harmony/reanimated/src/main/cpp/CMakeLists.txt +31 -40
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +81 -86
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +46 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.cpp +390 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/InterpolatorRegistry.h +16 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/definitions.h +30 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.cpp +46 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/filters/FilterOp.h +23 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.cpp +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/Quaternion.h +21 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.cpp +166 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.cpp +368 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix2D.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.cpp +594 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformMatrix3D.h +67 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.cpp +52 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/TransformOp.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.cpp +156 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/transforms/vectors.h +76 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.cpp +94 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSAngle.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.cpp +48 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSBoolean.h +31 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.cpp +135 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSColor.h +61 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.cpp +100 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSDiscreteArray.h +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.cpp +81 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSKeyword.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.cpp +122 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSLength.h +38 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.cpp +82 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSNumber.h +63 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValue.h +118 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +174 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h +111 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.cpp +196 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSBoxShadow.h +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.cpp +134 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/complex/CSSDropShadow.h +44 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.cpp +174 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSAnimationConfig.h +49 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.cpp +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSKeyframesConfig.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.cpp +90 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/CSSTransitionConfig.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.cpp +17 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/configs/common.h +13 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.cpp +127 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSAnimation.h +51 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.cpp +145 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/core/CSSTransition.h +47 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.cpp +69 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/EasingFunctions.h +22 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.cpp +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/cubicBezier.h +15 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.cpp +28 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/linear.h +15 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.cpp +13 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/easing/steps.h +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.cpp +157 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/InterpolatorFactory.h +189 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +76 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.h +66 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/configs.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.cpp +136 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperation.h +40 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.cpp +38 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterOperationInterpolator.h +24 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.cpp +58 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/FilterStyleInterpolator.h +24 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/blur.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/brightness.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/contrast.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/dropShadow.h +17 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/grayscale.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/hueRotate.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/invert.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/opacity.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/saturate.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/filters/operations/sepia.h +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.cpp +95 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/ArrayPropertiesInterpolator.h +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/GroupPropertiesInterpolator.h +32 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.cpp +99 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/groups/RecordPropertiesInterpolator.h +37 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.cpp +308 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/OperationsStyleInterpolator.h +100 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.cpp +19 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperation.h +94 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.cpp +18 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/operations/StyleOperationInterpolator.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/AnimationStyleInterpolator.h +26 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.cpp +103 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/styles/TransitionStyleInterpolator.h +42 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.cpp +224 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperation.h +52 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.cpp +218 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformOperationInterpolator.h +89 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.cpp +149 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/TransformsStyleInterpolator.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.cpp +208 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/matrix.h +56 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.cpp +42 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/perspective.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/rotate.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.cpp +28 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/scale.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.cpp +14 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/skew.h +20 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.cpp +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/transforms/operations/translate.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.cpp +47 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ResolvableValueInterpolator.h +43 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.cpp +70 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/SimpleValueInterpolator.h +40 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.cpp +146 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/interpolation/values/ValueInterpolator.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.cpp +155 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/misc/ViewStylesRepository.h +53 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.cpp +170 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/AnimationProgressProvider.h +67 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/KeyframeProgressProvider.h +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.cpp +41 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/RawProgressProvider.h +31 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.cpp +193 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/progress/TransitionProgressProvider.h +77 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +340 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +80 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.cpp +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSKeyframesRegistry.h +29 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +167 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +51 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.cpp +61 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/registries/StaticPropsRegistry.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.cpp +80 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGBrush.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.cpp +93 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGLength.h +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +111 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +33 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +75 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +45 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.cpp +12 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/algorithms.h +10 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.cpp +36 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/interpolators.h +23 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.cpp +149 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/utils/props.h +32 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +113 -101
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +49 -51
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedCommitShadowNode.h +46 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +56 -96
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +37 -33
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +104 -95
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/ShadowTreeCloner.h +22 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +72 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +25 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +160 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +71 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.cpp +161 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/updates/UpdatesRegistryManager.h +65 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationType.h +11 -9
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.cpp +137 -232
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +82 -90
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.cpp +79 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +81 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +864 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +214 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/{LayoutAnimationsProxy.cpp → LayoutAnimationsProxy_Legacy.cpp} +897 -870
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +220 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.cpp +31 -91
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +146 -176
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.cpp +456 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/PropsDiffer.h +102 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +544 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.cpp +119 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/PropValueProcessor.h +39 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +1380 -971
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +230 -252
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.cpp +183 -231
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxySpec.h +93 -109
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.cpp +54 -56
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/RNRuntimeDecorator.h +28 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +58 -70
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +31 -35
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.cpp +18 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeatureFlags.h +44 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/PlatformDepMethodsHolder.h +67 -98
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedSystraceSection.h +114 -135
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/ReanimatedVersion.cpp +46 -0
- package/harmony/reanimated/src/main/cpp/Common/cpp/{worklets → reanimated}/Tools/ReanimatedVersion.h +18 -19
- package/harmony/reanimated/src/main/cpp/ReanimatedModule.cpp +63 -85
- package/harmony/reanimated/src/main/cpp/ReanimatedNodesManager.cpp +1 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedPackage.cpp +0 -3
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.cpp +266 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensor.h +36 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.cpp +36 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedSensorContainer.h +23 -0
- package/harmony/reanimated/src/main/cpp/ReanimatedUIScheduler.h +3 -3
- package/harmony/reanimated/src/main/ets/ReanimatedModule.ts +5 -1
- package/harmony/reanimated/src/main/ets/ReanimatedPackage.ts +1 -4
- package/harmony/reanimated/src/main/module.json5 +12 -12
- package/harmony/reanimated/src/main/resources/base/element/color.json +7 -7
- package/harmony/reanimated/src/main/resources/base/element/string.json +15 -15
- package/harmony/reanimated/src/main/resources/base/profile/main_pages.json +5 -5
- package/harmony/reanimated/src/main/resources/en_US/element/string.json +15 -15
- package/harmony/reanimated/src/main/resources/zh_CN/element/string.json +15 -15
- package/harmony/reanimated/ts.ts +6 -6
- package/harmony/reanimated.har +0 -0
- package/package.json +69 -50
- package/scripts/deploy.js +191 -0
- package/scripts/set-reanimated-version.js +37 -0
- package/scripts/update-version.js +119 -0
- package/scripts/validate-react-native-version.js +46 -0
- package/scripts/validate-worklets-build.js +17 -0
- package/scripts/validate-worklets-version.js +84 -0
- package/scripts/worklets-version.json +4 -0
- package/LICENSE +0 -21
- package/README.OpenSource +0 -11
- package/README.md +0 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.cpp +0 -68
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Fabric/PropsRegistry.h +0 -68
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy.h +0 -147
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/CollectionUtils.h +0 -14
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.cpp +0 -5
- package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/Tools/FeaturesConfig.h +0 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +0 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +0 -59
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.cpp +0 -27
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/NativeModules/WorkletsModuleProxySpec.h +0 -25
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +0 -94
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/EventHandlerRegistry.h +0 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +0 -8
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +0 -39
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.cpp +0 -326
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/SharedItems/Shareables.h +0 -345
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.cpp +0 -52
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/AsyncQueue.h +0 -35
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/Defs.h +0 -10
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.cpp +0 -342
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSISerializer.h +0 -47
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.cpp +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSLogger.h +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.cpp +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/JSScheduler.h +0 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/PlatformLogger.h +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.cpp +0 -26
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedJSIUtils.h +0 -199
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ReanimatedVersion.cpp +0 -95
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/SingleInstanceChecker.h +0 -72
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/ThreadSafeQueue.h +0 -49
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.cpp +0 -20
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/UIScheduler.h +0 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +0 -29
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/Tools/WorkletEventHandler.h +0 -41
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +0 -16
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +0 -19
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.cpp +0 -112
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedHermesRuntime.h +0 -127
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.cpp +0 -53
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/ReanimatedRuntime.h +0 -22
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +0 -191
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +0 -173
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +0 -90
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +0 -36
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +0 -189
- package/harmony/reanimated/src/main/cpp/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +0 -22
- package/harmony/reanimated/src/main/cpp/ReanimatedLogger.cpp +0 -33
- package/harmony/reanimated/src/main/cpp/WorkletsModule.cpp +0 -61
- package/harmony/reanimated/src/main/cpp/WorkletsModule.h +0 -22
- package/harmony/reanimated/src/main/cpp/patches/AnimatedSensor/AnimatedSensorModule.cpp +0 -89
- package/harmony/reanimated/src/main/cpp/patches/Fabric/ShadowTreeCloner.cpp +0 -95
- package/harmony/reanimated/src/main/cpp/patches/NativeModules/ReanimatedModuleProxy.cpp +0 -964
- package/harmony/reanimated/src/main/ets/WorkletsModule.ts +0 -15
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/misc/ViewStylesRepository.h>
|
|
4
|
+
|
|
5
|
+
#include <memory>
|
|
6
|
+
#include <string>
|
|
7
|
+
#include <type_traits>
|
|
8
|
+
|
|
9
|
+
namespace reanimated::css {
|
|
10
|
+
|
|
11
|
+
using namespace facebook;
|
|
12
|
+
|
|
13
|
+
enum class RelativeTo : std::uint8_t {
|
|
14
|
+
Parent,
|
|
15
|
+
Self,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
struct ValueInterpolationContext {
|
|
19
|
+
const std::shared_ptr<const ShadowNode> &node;
|
|
20
|
+
const double fallbackInterpolateThreshold;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
struct ResolvableValueInterpolationContext {
|
|
24
|
+
const std::shared_ptr<const ShadowNode> &node;
|
|
25
|
+
const double fallbackInterpolateThreshold;
|
|
26
|
+
const std::shared_ptr<ViewStylesRepository> &viewStylesRepository;
|
|
27
|
+
const std::string &relativeProperty;
|
|
28
|
+
const RelativeTo relativeTo;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
struct CSSValue {
|
|
32
|
+
// This field should be overridden in discrete value types
|
|
33
|
+
static constexpr bool is_discrete_value = false;
|
|
34
|
+
|
|
35
|
+
virtual ~CSSValue() = default;
|
|
36
|
+
|
|
37
|
+
virtual folly::dynamic toDynamic() const = 0;
|
|
38
|
+
virtual std::string toString() const = 0;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// Base for leaf values that can be interpolated without resolution
|
|
42
|
+
template <typename TDerived>
|
|
43
|
+
struct CSSSimpleValue : public CSSValue {
|
|
44
|
+
static constexpr bool is_resolvable_value = false;
|
|
45
|
+
|
|
46
|
+
virtual TDerived interpolate(double progress, const TDerived &to) const = 0;
|
|
47
|
+
virtual bool canInterpolateTo(const TDerived &to) const {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// Base for leaf values that need resolution before interpolation
|
|
53
|
+
template <typename TDerived, typename TResolved = TDerived>
|
|
54
|
+
struct CSSResolvableValue : public CSSValue {
|
|
55
|
+
static constexpr bool is_resolvable_value = true;
|
|
56
|
+
|
|
57
|
+
virtual TDerived interpolate(double progress, const TDerived &to, const ResolvableValueInterpolationContext &context)
|
|
58
|
+
const = 0;
|
|
59
|
+
virtual std::optional<TResolved> resolve(const ResolvableValueInterpolationContext &context) const = 0;
|
|
60
|
+
virtual bool canInterpolateTo(const TDerived &to) const {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
// Checks if a type is a resolvable value that needs resolution before
|
|
66
|
+
// interpolation
|
|
67
|
+
//template <typename TCSSValue>
|
|
68
|
+
//concept Resolvable = requires {
|
|
69
|
+
// { TCSSValue::is_resolvable_value } -> std::convertible_to<bool>;
|
|
70
|
+
// requires TCSSValue::is_resolvable_value == true;
|
|
71
|
+
//};
|
|
72
|
+
//TODO
|
|
73
|
+
namespace detail {
|
|
74
|
+
template <typename T>
|
|
75
|
+
auto test_resolvable(int) -> std::enable_if_t<
|
|
76
|
+
std::is_convertible_v<decltype(T::is_resolvable_value), bool> &&
|
|
77
|
+
T::is_resolvable_value == true,
|
|
78
|
+
std::true_type
|
|
79
|
+
>;
|
|
80
|
+
template <typename>
|
|
81
|
+
auto test_resolvable(...) -> std::false_type;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
template <typename TCSSValue>
|
|
85
|
+
constexpr bool Resolvable = decltype(detail::test_resolvable<TCSSValue>(0))::value;
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
// Checks if a type is a discrete value
|
|
90
|
+
//template <typename TCSSValue>
|
|
91
|
+
//concept Discrete = requires {
|
|
92
|
+
// { TCSSValue::is_discrete_value } -> std::convertible_to<bool>;
|
|
93
|
+
// requires TCSSValue::is_discrete_value == true;
|
|
94
|
+
//};
|
|
95
|
+
//TODO
|
|
96
|
+
namespace detail {
|
|
97
|
+
template <typename T>
|
|
98
|
+
auto test_discrete(int) -> std::enable_if_t<
|
|
99
|
+
std::is_convertible_v<decltype(T::is_discrete_value), bool> &&
|
|
100
|
+
T::is_discrete_value == true,
|
|
101
|
+
std::true_type
|
|
102
|
+
>;
|
|
103
|
+
template <typename>
|
|
104
|
+
auto test_discrete(...) -> std::false_type;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
template <typename TCSSValue>
|
|
108
|
+
constexpr bool Discrete = decltype(detail::test_discrete<TCSSValue>(0))::value;
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
// Check if a type is derived from CSSValue
|
|
112
|
+
//template <typename TCSSValue>
|
|
113
|
+
//concept CSSValueDerived = std::is_base_of_v<CSSValue, TCSSValue>;
|
|
114
|
+
//TODO
|
|
115
|
+
template<typename TCSSValue>
|
|
116
|
+
constexpr bool CSSValueDerived = std::is_base_of_v<CSSValue, TCSSValue>;
|
|
117
|
+
|
|
118
|
+
} // namespace reanimated::css
|
package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
#include <reanimated/CSS/common/values/CSSAngle.h>
|
|
2
|
+
#include <reanimated/CSS/common/values/CSSBoolean.h>
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSColor.h>
|
|
4
|
+
#include <reanimated/CSS/common/values/CSSDiscreteArray.h>
|
|
5
|
+
#include <reanimated/CSS/common/values/CSSKeyword.h>
|
|
6
|
+
#include <reanimated/CSS/common/values/CSSLength.h>
|
|
7
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
8
|
+
#include <reanimated/CSS/common/values/CSSValueVariant.h>
|
|
9
|
+
#include <reanimated/CSS/common/values/complex/CSSBoxShadow.h>
|
|
10
|
+
#include <reanimated/CSS/svg/values/SVGBrush.h>
|
|
11
|
+
#include <reanimated/CSS/svg/values/SVGLength.h>
|
|
12
|
+
#include <reanimated/CSS/svg/values/SVGStrokeDashArray.h>
|
|
13
|
+
|
|
14
|
+
#include <worklets/Tools/JSISerializer.h>
|
|
15
|
+
|
|
16
|
+
#include <string>
|
|
17
|
+
#include <utility>
|
|
18
|
+
#include <vector>
|
|
19
|
+
|
|
20
|
+
namespace reanimated::css {
|
|
21
|
+
|
|
22
|
+
template <typename... AllowedTypes>
|
|
23
|
+
CSSValueVariant<AllowedTypes...>::CSSValueVariant(std::variant<AllowedTypes...> &&storage)
|
|
24
|
+
: storage_(std::move(storage)) {}
|
|
25
|
+
|
|
26
|
+
template <typename... AllowedTypes>
|
|
27
|
+
CSSValueVariant<AllowedTypes...>::CSSValueVariant(jsi::Runtime &rt, const jsi::Value &jsiValue) {
|
|
28
|
+
auto tryOne = [&]<typename TCSSValue>() -> bool {
|
|
29
|
+
// We have to check in a runtime if the type can be constructed from the
|
|
30
|
+
// provided jsi::Value. The first match will be used to construct the
|
|
31
|
+
// CSS value.
|
|
32
|
+
if (!TCSSValue::canConstruct(rt, jsiValue)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
storage_ = TCSSValue(rt, jsiValue);
|
|
36
|
+
return true;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// Try constructing with each allowed type until one succeeds
|
|
40
|
+
if (!(tryOne.template operator()<AllowedTypes>() || ...)) {
|
|
41
|
+
throw std::runtime_error(
|
|
42
|
+
"[Reanimated] No compatible type found for construction from: " + worklets::stringifyJSIValue(rt, jsiValue));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
template <typename... AllowedTypes>
|
|
47
|
+
CSSValueVariant<AllowedTypes...>::CSSValueVariant(const folly::dynamic &value) {
|
|
48
|
+
auto tryOne = [&]<typename TCSSValue>() -> bool {
|
|
49
|
+
// We have to check in a runtime if the type can be constructed from the
|
|
50
|
+
// provided folly::dynamic. The first match will be used to construct the
|
|
51
|
+
// CSS value.
|
|
52
|
+
if (!TCSSValue::canConstruct(value)) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
storage_ = TCSSValue(value);
|
|
56
|
+
return true;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
// Try constructing with each allowed type until one succeeds
|
|
60
|
+
if (!(tryOne.template operator()<AllowedTypes>() || ...)) {
|
|
61
|
+
throw std::runtime_error("[Reanimated] No compatible type found for construction from: " + folly::toJson(value));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
template <typename... AllowedTypes>
|
|
66
|
+
bool CSSValueVariant<AllowedTypes...>::operator==(const CSSValueVariant &other) const {
|
|
67
|
+
if (storage_.index() != other.storage_.index()) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
return std::visit(
|
|
72
|
+
[](const auto &lhs, const auto &rhs) {
|
|
73
|
+
REA_IF_SAME_TYPE(lhs, rhs) {
|
|
74
|
+
return lhs == rhs;
|
|
75
|
+
}
|
|
76
|
+
return false;
|
|
77
|
+
},
|
|
78
|
+
storage_,
|
|
79
|
+
other.storage_);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
template <typename... AllowedTypes>
|
|
83
|
+
bool CSSValueVariant<AllowedTypes...>::operator==(const CSSValue &other) const {
|
|
84
|
+
if (auto *o = dynamic_cast<const CSSValueVariant *>(&other)) {
|
|
85
|
+
return *this == *o;
|
|
86
|
+
}
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
template <typename... AllowedTypes>
|
|
91
|
+
folly::dynamic CSSValueVariant<AllowedTypes...>::toDynamic() const {
|
|
92
|
+
return std::visit([](const auto &v) { return v.toDynamic(); }, storage_);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
template <typename... AllowedTypes>
|
|
96
|
+
std::string CSSValueVariant<AllowedTypes...>::toString() const {
|
|
97
|
+
return std::visit([](const auto &v) { return v.toString(); }, storage_);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
template <typename... AllowedTypes>
|
|
101
|
+
CSSValueVariant<AllowedTypes...> CSSValueVariant<AllowedTypes...>::interpolate(
|
|
102
|
+
const double progress,
|
|
103
|
+
const CSSValueVariant &to,
|
|
104
|
+
const ValueInterpolationContext &context) const {
|
|
105
|
+
if (storage_.index() != to.storage_.index()) {
|
|
106
|
+
return fallbackInterpolate(progress, to, context.fallbackInterpolateThreshold);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return std::visit(
|
|
110
|
+
[&](const auto &fromValue, const auto &toValue) -> CSSValueVariant {
|
|
111
|
+
REA_IF_SAME_TYPE(fromValue, toValue) {
|
|
112
|
+
if constexpr (Resolvable<L>) {
|
|
113
|
+
throw std::runtime_error("[Reanimated] Resolvable value cannot be interpolated as non-resolvable");
|
|
114
|
+
} else if (fromValue.canInterpolateTo(toValue)) {
|
|
115
|
+
return CSSValueVariant(fromValue.interpolate(progress, toValue));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return fallbackInterpolate(progress, to, context.fallbackInterpolateThreshold);
|
|
119
|
+
},
|
|
120
|
+
storage_,
|
|
121
|
+
to.storage_);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
template <typename... AllowedTypes>
|
|
125
|
+
CSSValueVariant<AllowedTypes...> CSSValueVariant<AllowedTypes...>::interpolate(
|
|
126
|
+
const double progress,
|
|
127
|
+
const CSSValueVariant &to,
|
|
128
|
+
const ResolvableValueInterpolationContext &context) const {
|
|
129
|
+
if (storage_.index() != to.storage_.index()) {
|
|
130
|
+
return fallbackInterpolate(progress, to, context.fallbackInterpolateThreshold);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return std::visit(
|
|
134
|
+
[&](const auto &fromValue, const auto &toValue) -> CSSValueVariant {
|
|
135
|
+
REA_IF_SAME_TYPE(fromValue, toValue) {
|
|
136
|
+
if constexpr (!Resolvable<L>) {
|
|
137
|
+
throw std::runtime_error("[Reanimated] Non-resolvable value cannot be interpolated as resolvable");
|
|
138
|
+
} else if (fromValue.canInterpolateTo(toValue)) {
|
|
139
|
+
return CSSValueVariant(fromValue.interpolate(progress, toValue, context));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return fallbackInterpolate(progress, to, context.fallbackInterpolateThreshold);
|
|
143
|
+
},
|
|
144
|
+
storage_,
|
|
145
|
+
to.storage_);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
template <typename... AllowedTypes>
|
|
149
|
+
CSSValueVariant<AllowedTypes...> CSSValueVariant<AllowedTypes...>::fallbackInterpolate(
|
|
150
|
+
const double progress,
|
|
151
|
+
const CSSValueVariant &to,
|
|
152
|
+
const double fallbackInterpolateThreshold) const {
|
|
153
|
+
return (progress < fallbackInterpolateThreshold) ? *this : to;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
template class CSSValueVariant<CSSLength>;
|
|
157
|
+
template class CSSValueVariant<CSSLength, CSSKeyword>;
|
|
158
|
+
template class CSSValueVariant<CSSDouble>;
|
|
159
|
+
template class CSSValueVariant<CSSDouble, CSSKeyword>;
|
|
160
|
+
template class CSSValueVariant<CSSInteger>;
|
|
161
|
+
template class CSSValueVariant<CSSKeyword>;
|
|
162
|
+
template class CSSValueVariant<CSSAngle>;
|
|
163
|
+
template class CSSValueVariant<CSSBoolean>;
|
|
164
|
+
template class CSSValueVariant<CSSColor>;
|
|
165
|
+
template class CSSValueVariant<CSSDisplay>;
|
|
166
|
+
template class CSSValueVariant<CSSBoxShadow>;
|
|
167
|
+
template class CSSValueVariant<CSSDiscreteArray<CSSKeyword>>;
|
|
168
|
+
|
|
169
|
+
template class CSSValueVariant<SVGLength>;
|
|
170
|
+
template class CSSValueVariant<SVGLength, CSSKeyword>;
|
|
171
|
+
template class CSSValueVariant<SVGStrokeDashArray, CSSKeyword>;
|
|
172
|
+
template class CSSValueVariant<SVGBrush>;
|
|
173
|
+
|
|
174
|
+
} // namespace reanimated::css
|
package/harmony/reanimated/src/main/cpp/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.h
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/values/CSSValue.h>
|
|
4
|
+
|
|
5
|
+
#include <folly/json.h>
|
|
6
|
+
|
|
7
|
+
#include <stdexcept>
|
|
8
|
+
#include <string>
|
|
9
|
+
#include <type_traits>
|
|
10
|
+
#include <utility>
|
|
11
|
+
#include <variant>
|
|
12
|
+
|
|
13
|
+
namespace reanimated::css {
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Macro to check if two lambda parameters have the same reference-removed type.
|
|
17
|
+
*
|
|
18
|
+
* Usage:
|
|
19
|
+
* REA_IF_SAME_TYPE(lhs, rhs) {
|
|
20
|
+
* // same-type block
|
|
21
|
+
* } else {
|
|
22
|
+
* // mismatch block
|
|
23
|
+
* }
|
|
24
|
+
*/
|
|
25
|
+
#define REA_IF_SAME_TYPE(lhs, rhs) \
|
|
26
|
+
using L = std::remove_reference_t<decltype(lhs)>; \
|
|
27
|
+
using R = std::remove_reference_t<decltype(rhs)>; \
|
|
28
|
+
if constexpr (std::is_same_v<L, R>) // NOLINT(readability/braces)
|
|
29
|
+
|
|
30
|
+
// Checks whether a type has canConstruct(...) for a generic value
|
|
31
|
+
template <typename TCSSValue, typename TValue>
|
|
32
|
+
concept ValueConstructibleCSSValue = requires(TValue &&value) {
|
|
33
|
+
{ TCSSValue::canConstruct(std::forward<TValue>(value)) } -> std::same_as<bool>;
|
|
34
|
+
}; // NOLINT(readability/braces)
|
|
35
|
+
|
|
36
|
+
// Checks whether a type can be constructed from a jsi::Value
|
|
37
|
+
template <typename TCSSValue>
|
|
38
|
+
concept JSIConstructibleCSSValue = requires(jsi::Runtime &rt, const jsi::Value &value) {
|
|
39
|
+
{ TCSSValue::canConstruct(rt, value) } -> std::same_as<bool>;
|
|
40
|
+
{ TCSSValue(rt, value) } -> std::same_as<TCSSValue>;
|
|
41
|
+
}; // NOLINT(readability/braces)
|
|
42
|
+
|
|
43
|
+
// Checks whether a type can be constructed from a folly::dynamic
|
|
44
|
+
template <typename TCSSValue>
|
|
45
|
+
concept DynamicConstructibleCSSValue = requires(const folly::dynamic &value) {
|
|
46
|
+
{ TCSSValue::canConstruct(value) } -> std::same_as<bool>;
|
|
47
|
+
{ TCSSValue(value) } -> std::same_as<TCSSValue>;
|
|
48
|
+
}; // NOLINT(readability/braces)
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* CSSValueVariant
|
|
52
|
+
*
|
|
53
|
+
* A std::variant-based container for multiple CSSValue-derived types.
|
|
54
|
+
*/
|
|
55
|
+
template <typename... AllowedTypes>
|
|
56
|
+
class CSSValueVariant final : public CSSValue {
|
|
57
|
+
static_assert(
|
|
58
|
+
(JSIConstructibleCSSValue<AllowedTypes> && ...),
|
|
59
|
+
"CSSValueVariant accepts only types that can be constructed from a jsi::Value");
|
|
60
|
+
static_assert(
|
|
61
|
+
(DynamicConstructibleCSSValue<AllowedTypes> && ...),
|
|
62
|
+
"CSSValueVariant accepts only types that can be constructed from a folly::dynamic");
|
|
63
|
+
|
|
64
|
+
public:
|
|
65
|
+
CSSValueVariant() = default;
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Construct from std::variant storage directly
|
|
69
|
+
*/
|
|
70
|
+
explicit CSSValueVariant(std::variant<AllowedTypes...> &&storage);
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Construct from jsi::Value if it matches any AllowedType's constructor
|
|
74
|
+
* (chooses the first one that matches)
|
|
75
|
+
*/
|
|
76
|
+
explicit CSSValueVariant(jsi::Runtime &rt, const jsi::Value &jsiValue);
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Construct from folly::dynamic if it matches any AllowedType's constructor
|
|
80
|
+
* (chooses the first one that matches)
|
|
81
|
+
*/
|
|
82
|
+
explicit CSSValueVariant(const folly::dynamic &value);
|
|
83
|
+
|
|
84
|
+
bool operator==(const CSSValueVariant &other) const;
|
|
85
|
+
bool operator==(const CSSValue &other) const;
|
|
86
|
+
|
|
87
|
+
folly::dynamic toDynamic() const override;
|
|
88
|
+
std::string toString() const override;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Interpolate (non-resolvable)
|
|
92
|
+
*/
|
|
93
|
+
CSSValueVariant
|
|
94
|
+
interpolate(const double progress, const CSSValueVariant &to, const ValueInterpolationContext &context) const;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Interpolate (resolvable)
|
|
98
|
+
*/
|
|
99
|
+
CSSValueVariant interpolate(
|
|
100
|
+
const double progress,
|
|
101
|
+
const CSSValueVariant &to,
|
|
102
|
+
const ResolvableValueInterpolationContext &context) const;
|
|
103
|
+
|
|
104
|
+
private:
|
|
105
|
+
std::variant<AllowedTypes...> storage_;
|
|
106
|
+
|
|
107
|
+
CSSValueVariant
|
|
108
|
+
fallbackInterpolate(const double progress, const CSSValueVariant &to, double fallbackInterpolateThreshold) const;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
#include <reanimated/CSS/common/values/complex/CSSBoxShadow.h>
|
|
2
|
+
|
|
3
|
+
#include <string>
|
|
4
|
+
#include <utility>
|
|
5
|
+
#include <vector>
|
|
6
|
+
|
|
7
|
+
namespace reanimated::css {
|
|
8
|
+
|
|
9
|
+
CSSBoxShadow::CSSBoxShadow(
|
|
10
|
+
CSSDouble offsetX,
|
|
11
|
+
CSSDouble offsetY,
|
|
12
|
+
#ifdef ANDROID
|
|
13
|
+
CSSShadowRadiusAndroid blurRadius,
|
|
14
|
+
#else
|
|
15
|
+
CSSDouble blurRadius,
|
|
16
|
+
#endif
|
|
17
|
+
CSSDouble spreadDistance,
|
|
18
|
+
CSSColor color,
|
|
19
|
+
std::optional<CSSBoolean> inset)
|
|
20
|
+
: offsetX(std::move(offsetX)),
|
|
21
|
+
offsetY(std::move(offsetY)),
|
|
22
|
+
blurRadius(std::move(blurRadius)),
|
|
23
|
+
spreadDistance(std::move(spreadDistance)),
|
|
24
|
+
color(std::move(color)),
|
|
25
|
+
inset(std::move(inset)) {
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
CSSBoxShadow::CSSBoxShadow(jsi::Runtime &rt, const jsi::Value &jsiValue) {
|
|
29
|
+
const auto &obj = jsiValue.asObject(rt);
|
|
30
|
+
|
|
31
|
+
// Only assign fields that exist in the object and keep default values for
|
|
32
|
+
// others
|
|
33
|
+
if (obj.hasProperty(rt, "offsetX")) {
|
|
34
|
+
offsetX = CSSDouble(rt, obj.getProperty(rt, "offsetX"));
|
|
35
|
+
}
|
|
36
|
+
if (obj.hasProperty(rt, "offsetY")) {
|
|
37
|
+
offsetY = CSSDouble(rt, obj.getProperty(rt, "offsetY"));
|
|
38
|
+
}
|
|
39
|
+
if (obj.hasProperty(rt, "blurRadius")) {
|
|
40
|
+
#ifdef ANDROID
|
|
41
|
+
blurRadius = CSSShadowRadiusAndroid(rt, obj.getProperty(rt, "blurRadius"));
|
|
42
|
+
#else
|
|
43
|
+
blurRadius = CSSDouble(rt, obj.getProperty(rt, "blurRadius"));
|
|
44
|
+
#endif
|
|
45
|
+
}
|
|
46
|
+
if (obj.hasProperty(rt, "spreadDistance")) {
|
|
47
|
+
spreadDistance = CSSDouble(rt, obj.getProperty(rt, "spreadDistance"));
|
|
48
|
+
}
|
|
49
|
+
if (obj.hasProperty(rt, "color")) {
|
|
50
|
+
color = CSSColor(rt, obj.getProperty(rt, "color"));
|
|
51
|
+
}
|
|
52
|
+
// Every non-default (not empty) shadow must have an inset
|
|
53
|
+
inset = CSSBoolean(rt, obj.hasProperty(rt, "inset") ? obj.getProperty(rt, "inset") : false);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
CSSBoxShadow::CSSBoxShadow(const folly::dynamic &value) {
|
|
57
|
+
// Only assign fields that exist in the object and keep default values for
|
|
58
|
+
// others
|
|
59
|
+
if (value.count("offsetX") > 0) {
|
|
60
|
+
offsetX = CSSDouble(value["offsetX"]);
|
|
61
|
+
}
|
|
62
|
+
if (value.count("offsetY") > 0) {
|
|
63
|
+
offsetY = CSSDouble(value["offsetY"]);
|
|
64
|
+
}
|
|
65
|
+
if (value.count("blurRadius") > 0) {
|
|
66
|
+
#ifdef ANDROID
|
|
67
|
+
blurRadius = CSSShadowRadiusAndroid(value["blurRadius"]);
|
|
68
|
+
#else
|
|
69
|
+
blurRadius = CSSDouble(value["blurRadius"]);
|
|
70
|
+
#endif
|
|
71
|
+
}
|
|
72
|
+
if (value.count("spreadDistance") > 0) {
|
|
73
|
+
spreadDistance = CSSDouble(value["spreadDistance"]);
|
|
74
|
+
}
|
|
75
|
+
if (value.count("color") > 0) {
|
|
76
|
+
color = CSSColor(value["color"]);
|
|
77
|
+
}
|
|
78
|
+
// Every non-default (not empty) shadow must have an inset
|
|
79
|
+
inset = CSSBoolean(value.count("inset") > 0 ? value["inset"] : false);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
bool CSSBoxShadow::canConstruct(const folly::dynamic &value) {
|
|
83
|
+
if (!value.isObject()) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
for (const auto &validator : fieldValidators) {
|
|
88
|
+
if (value.count(validator.fieldName) > 0 && !validator.validateDynamic(value[validator.fieldName])) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
bool CSSBoxShadow::canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue) {
|
|
97
|
+
if (!jsiValue.isObject()) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const auto &obj = jsiValue.asObject(rt);
|
|
102
|
+
|
|
103
|
+
for (const auto &validator : fieldValidators) {
|
|
104
|
+
const auto &fieldName = validator.fieldName.c_str();
|
|
105
|
+
if (obj.hasProperty(rt, fieldName) && !validator.validateJSI(rt, obj.getProperty(rt, fieldName))) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
folly::dynamic CSSBoxShadow::toDynamic() const {
|
|
114
|
+
folly::dynamic obj = folly::dynamic::object();
|
|
115
|
+
|
|
116
|
+
obj["offsetX"] = offsetX.toDynamic();
|
|
117
|
+
obj["offsetY"] = offsetY.toDynamic();
|
|
118
|
+
obj["blurRadius"] = blurRadius.toDynamic();
|
|
119
|
+
obj["spreadDistance"] = spreadDistance.toDynamic();
|
|
120
|
+
obj["color"] = color.toDynamic();
|
|
121
|
+
if (inset.has_value()) {
|
|
122
|
+
obj["inset"] = inset->toDynamic();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return obj;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
std::string CSSBoxShadow::toString() const {
|
|
129
|
+
return (inset.has_value() && inset.value().value ? "inset " : "") + offsetX.toString() + " " + offsetY.toString() +
|
|
130
|
+
" " + blurRadius.toString() + " " + spreadDistance.toString() + " " + color.toString();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
CSSBoxShadow CSSBoxShadow::interpolate(double progress, const CSSBoxShadow &to) const {
|
|
134
|
+
const auto &fromInset = inset.value_or(to.inset.value_or(CSSBoolean(false)));
|
|
135
|
+
const auto &toInset = to.inset.value_or(inset.value_or(CSSBoolean(false)));
|
|
136
|
+
|
|
137
|
+
return CSSBoxShadow(
|
|
138
|
+
offsetX.interpolate(progress, to.offsetX),
|
|
139
|
+
offsetY.interpolate(progress, to.offsetY),
|
|
140
|
+
blurRadius.interpolate(progress, to.blurRadius),
|
|
141
|
+
spreadDistance.interpolate(progress, to.spreadDistance),
|
|
142
|
+
color.interpolate(progress, to.color),
|
|
143
|
+
fromInset.interpolate(progress, toInset));
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
bool CSSBoxShadow::canInterpolateTo(const CSSBoxShadow &to) const {
|
|
147
|
+
return !inset.has_value() || !to.inset.has_value() || inset.value() == to.inset.value();
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
bool CSSBoxShadow::operator==(const CSSBoxShadow &other) const {
|
|
151
|
+
return offsetX == other.offsetX && offsetY == other.offsetY && blurRadius == other.blurRadius &&
|
|
152
|
+
spreadDistance == other.spreadDistance && color == other.color && inset == other.inset;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
#ifndef NDEBUG
|
|
156
|
+
|
|
157
|
+
std::ostream &operator<<(std::ostream &os, const CSSBoxShadow &shadowValue) {
|
|
158
|
+
os << "CSSBoxShadow(" << shadowValue.toString() << ")";
|
|
159
|
+
return os;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
#endif // NDEBUG
|
|
163
|
+
|
|
164
|
+
const std::vector<FieldValidator> CSSBoxShadow::fieldValidators = {
|
|
165
|
+
{"offsetX",
|
|
166
|
+
[](const folly::dynamic &val) { return CSSDouble::canConstruct(val); },
|
|
167
|
+
[](jsi::Runtime &rt, const jsi::Value &val) {
|
|
168
|
+
return CSSDouble::canConstruct(rt, val);
|
|
169
|
+
}},
|
|
170
|
+
{"offsetY",
|
|
171
|
+
[](const folly::dynamic &val) { return CSSDouble::canConstruct(val); },
|
|
172
|
+
[](jsi::Runtime &rt, const jsi::Value &val) {
|
|
173
|
+
return CSSDouble::canConstruct(rt, val);
|
|
174
|
+
}},
|
|
175
|
+
{"blurRadius",
|
|
176
|
+
[](const folly::dynamic &val) { return CSSDouble::canConstruct(val); },
|
|
177
|
+
[](jsi::Runtime &rt, const jsi::Value &val) {
|
|
178
|
+
return CSSDouble::canConstruct(rt, val);
|
|
179
|
+
}},
|
|
180
|
+
{"spreadDistance",
|
|
181
|
+
[](const folly::dynamic &val) { return CSSDouble::canConstruct(val); },
|
|
182
|
+
[](jsi::Runtime &rt, const jsi::Value &val) {
|
|
183
|
+
return CSSDouble::canConstruct(rt, val);
|
|
184
|
+
}},
|
|
185
|
+
{"color",
|
|
186
|
+
[](const folly::dynamic &val) { return CSSColor::canConstruct(val); },
|
|
187
|
+
[](jsi::Runtime &rt, const jsi::Value &val) {
|
|
188
|
+
return CSSColor::canConstruct(rt, val);
|
|
189
|
+
}},
|
|
190
|
+
{"inset",
|
|
191
|
+
[](const folly::dynamic &val) { return CSSBoolean::canConstruct(val); },
|
|
192
|
+
[](jsi::Runtime &rt, const jsi::Value &val) {
|
|
193
|
+
return CSSBoolean::canConstruct(rt, val);
|
|
194
|
+
}}};
|
|
195
|
+
|
|
196
|
+
} // namespace reanimated::css
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <reanimated/CSS/common/definitions.h>
|
|
4
|
+
#include <reanimated/CSS/common/values/CSSBoolean.h>
|
|
5
|
+
#include <reanimated/CSS/common/values/CSSColor.h>
|
|
6
|
+
#include <reanimated/CSS/common/values/CSSNumber.h>
|
|
7
|
+
|
|
8
|
+
#include <folly/json.h>
|
|
9
|
+
#include <functional>
|
|
10
|
+
#include <optional>
|
|
11
|
+
#include <string>
|
|
12
|
+
#include <vector>
|
|
13
|
+
|
|
14
|
+
namespace reanimated::css {
|
|
15
|
+
|
|
16
|
+
struct CSSBoxShadow : public CSSSimpleValue<CSSBoxShadow> {
|
|
17
|
+
CSSDouble offsetX;
|
|
18
|
+
CSSDouble offsetY;
|
|
19
|
+
#ifdef ANDROID
|
|
20
|
+
// For some reason Android crashes when blurRadius is smaller
|
|
21
|
+
// than 1, so we use a custom value type that will never be
|
|
22
|
+
// smaller than 1
|
|
23
|
+
CSSShadowRadiusAndroid blurRadius;
|
|
24
|
+
#else
|
|
25
|
+
CSSDouble blurRadius;
|
|
26
|
+
#endif
|
|
27
|
+
CSSDouble spreadDistance;
|
|
28
|
+
CSSColor color;
|
|
29
|
+
// inset has no default value - it must be the same as in the other
|
|
30
|
+
// keyframe if it's not set
|
|
31
|
+
std::optional<CSSBoolean> inset;
|
|
32
|
+
|
|
33
|
+
CSSBoxShadow() = default;
|
|
34
|
+
explicit CSSBoxShadow(
|
|
35
|
+
CSSDouble offsetX,
|
|
36
|
+
CSSDouble offsetY,
|
|
37
|
+
#ifdef ANDROID
|
|
38
|
+
CSSShadowRadiusAndroid blurRadius,
|
|
39
|
+
#else
|
|
40
|
+
CSSDouble blurRadius,
|
|
41
|
+
#endif
|
|
42
|
+
CSSDouble spreadDistance,
|
|
43
|
+
CSSColor color,
|
|
44
|
+
std::optional<CSSBoolean> inset);
|
|
45
|
+
explicit CSSBoxShadow(jsi::Runtime &rt, const jsi::Value &jsiValue);
|
|
46
|
+
explicit CSSBoxShadow(const folly::dynamic &value);
|
|
47
|
+
|
|
48
|
+
static bool canConstruct(jsi::Runtime &rt, const jsi::Value &jsiValue);
|
|
49
|
+
static bool canConstruct(const folly::dynamic &value);
|
|
50
|
+
|
|
51
|
+
folly::dynamic toDynamic() const override;
|
|
52
|
+
std::string toString() const override;
|
|
53
|
+
CSSBoxShadow interpolate(double progress, const CSSBoxShadow &to) const override;
|
|
54
|
+
bool canInterpolateTo(const CSSBoxShadow &to) const override;
|
|
55
|
+
|
|
56
|
+
bool operator==(const CSSBoxShadow &other) const;
|
|
57
|
+
|
|
58
|
+
#ifndef NDEBUG
|
|
59
|
+
friend std::ostream &operator<<(std::ostream &os, const CSSBoxShadow &shadowValue);
|
|
60
|
+
#endif // NDEBUG
|
|
61
|
+
|
|
62
|
+
private:
|
|
63
|
+
static const std::vector<FieldValidator> fieldValidators;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
} // namespace reanimated::css
|