react-native-reanimated 4.5.0 → 4.5.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/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.cpp +9 -0
- package/Common/cpp/reanimated/CSS/svg/values/SVGStrokeDashArray.h +2 -0
- package/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp +7 -1
- package/android/CMakeLists.txt +6 -0
- package/android/src/main/java/com/swmansion/reanimated/keyboard/KeyboardAnimationCallback.kt +8 -1
- package/lib/module/common/style/registry.js +8 -0
- package/lib/module/common/style/registry.js.map +1 -1
- package/lib/module/css/native/managers/CSSPseudoStylesManager.js +2 -0
- package/lib/module/css/native/managers/CSSPseudoStylesManager.js.map +1 -1
- package/lib/module/css/svg/init.web.js +9 -9
- package/lib/module/css/svg/init.web.js.map +1 -1
- package/lib/module/css/utils/props.js +2 -2
- package/lib/module/css/utils/props.js.map +1 -1
- package/lib/module/css/web/animationParser.js +2 -2
- package/lib/module/css/web/animationParser.js.map +1 -1
- package/lib/module/css/web/managers/CSSAnimationsManager.js +3 -3
- package/lib/module/css/web/managers/CSSAnimationsManager.js.map +1 -1
- package/lib/module/css/web/managers/CSSManager.js +3 -2
- package/lib/module/css/web/managers/CSSManager.js.map +1 -1
- package/lib/module/css/web/managers/CSSPseudoSelectorsManager.js +3 -3
- package/lib/module/css/web/managers/CSSPseudoSelectorsManager.js.map +1 -1
- package/lib/module/platform-specific/jsVersion.js +1 -1
- package/lib/module/valueSetter.js +5 -3
- package/lib/module/valueSetter.js.map +1 -1
- package/lib/typescript/common/style/registry.d.ts +1 -0
- package/lib/typescript/common/style/registry.d.ts.map +1 -1
- package/lib/typescript/css/native/managers/CSSPseudoStylesManager.d.ts.map +1 -1
- package/lib/typescript/css/web/animationParser.d.ts +1 -1
- package/lib/typescript/css/web/managers/CSSAnimationsManager.d.ts +2 -2
- package/lib/typescript/css/web/managers/CSSManager.d.ts.map +1 -1
- package/lib/typescript/css/web/managers/CSSPseudoSelectorsManager.d.ts +2 -2
- package/lib/typescript/platform-specific/jsVersion.d.ts +1 -1
- package/lib/typescript/valueSetter.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/common/style/registry.ts +13 -0
- package/src/css/native/managers/CSSPseudoStylesManager.ts +2 -0
- package/src/css/svg/init.web.ts +17 -17
- package/src/css/utils/props.ts +2 -2
- package/src/css/web/animationParser.ts +2 -2
- package/src/css/web/managers/CSSAnimationsManager.ts +4 -4
- package/src/css/web/managers/CSSManager.ts +3 -5
- package/src/css/web/managers/CSSPseudoSelectorsManager.ts +4 -4
- package/src/platform-specific/jsVersion.ts +1 -1
- package/src/valueSetter.ts +5 -3
|
@@ -38,6 +38,15 @@ SVGStrokeDashArray SVGStrokeDashArray::interpolate(
|
|
|
38
38
|
return SVGStrokeDashArray(result);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
folly::dynamic SVGStrokeDashArray::toDynamic() const {
|
|
42
|
+
// Empty means "no dashing" - emit null instead of [], which react-native-svg
|
|
43
|
+
// would feed to Android's DashPathEffect that requires at least 2 intervals.
|
|
44
|
+
if (values.empty()) {
|
|
45
|
+
return nullptr;
|
|
46
|
+
}
|
|
47
|
+
return CSSLengthVector::toDynamic();
|
|
48
|
+
}
|
|
49
|
+
|
|
41
50
|
#ifndef NDEBUG
|
|
42
51
|
|
|
43
52
|
std::ostream &operator<<(std::ostream &os, const SVGStrokeDashArray &strokeDashArray) {
|
|
@@ -12,6 +12,8 @@ struct SVGStrokeDashArray : public CSSLengthVector<SVGStrokeDashArray> {
|
|
|
12
12
|
const SVGStrokeDashArray &to,
|
|
13
13
|
const ResolvableValueInterpolationContext &context) const override;
|
|
14
14
|
|
|
15
|
+
folly::dynamic toDynamic() const override;
|
|
16
|
+
|
|
15
17
|
#ifndef NDEBUG
|
|
16
18
|
friend std::ostream &operator<<(std::ostream &os, const SVGStrokeDashArray &strokeDashArray);
|
|
17
19
|
#endif // NDEBUG
|
|
@@ -413,7 +413,13 @@ void LayoutAnimationsProxy_Legacy::addOngoingAnimations(SurfaceId surfaceId, Sha
|
|
|
413
413
|
|
|
414
414
|
auto layoutAnimationIt = layoutAnimations_.find(tag);
|
|
415
415
|
|
|
416
|
-
if (layoutAnimationIt == layoutAnimations_.end() ||
|
|
416
|
+
if (layoutAnimationIt == layoutAnimations_.end() ||
|
|
417
|
+
// A settled animation is normally cleaned up without applying further
|
|
418
|
+
// updates. The exception is a flaky entering animation whose opacity was
|
|
419
|
+
// never restored (the view wasn't mounted in time) - we still need to
|
|
420
|
+
// apply that pending opacity, otherwise the view stays invisible. Only
|
|
421
|
+
// entering animations carry an opacity value.
|
|
422
|
+
(layoutAnimationIt->second.isSettled() && !layoutAnimationIt->second.opacity.has_value())) {
|
|
417
423
|
continue;
|
|
418
424
|
}
|
|
419
425
|
|
package/android/CMakeLists.txt
CHANGED
|
@@ -56,6 +56,12 @@ add_library(
|
|
|
56
56
|
target_precompile_headers(reanimated PRIVATE
|
|
57
57
|
"${ANDROID_CPP_DIR}/ReanimatedPCH.h")
|
|
58
58
|
|
|
59
|
+
# Stop Clang from embedding a build timestamp in the .pch. Without this the PCH
|
|
60
|
+
# is non-reproducible across builds, so ccache can't reuse it and translation
|
|
61
|
+
# units reject a restored PCH as "modified since built".
|
|
62
|
+
target_compile_options(reanimated PRIVATE
|
|
63
|
+
"$<$<COMPILE_LANGUAGE:CXX>:-Xclang;-fno-pch-timestamp>")
|
|
64
|
+
|
|
59
65
|
if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 80)
|
|
60
66
|
include(
|
|
61
67
|
"${REACT_NATIVE_DIR}/ReactCommon/cmake-utils/react-native-flags.cmake")
|
package/android/src/main/java/com/swmansion/reanimated/keyboard/KeyboardAnimationCallback.kt
CHANGED
|
@@ -12,6 +12,8 @@ class KeyboardAnimationCallback(
|
|
|
12
12
|
private val CONTENT_TYPE_MASK = WindowInsetsCompat.Type.ime()
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
private var mPendingStartDispatch = false
|
|
16
|
+
|
|
15
17
|
override fun onStart(
|
|
16
18
|
animation: WindowInsetsAnimationCompat,
|
|
17
19
|
bounds: WindowInsetsAnimationCompat.BoundsCompat,
|
|
@@ -20,7 +22,7 @@ class KeyboardAnimationCallback(
|
|
|
20
22
|
return bounds
|
|
21
23
|
}
|
|
22
24
|
mKeyboard.onAnimationStart()
|
|
23
|
-
|
|
25
|
+
mPendingStartDispatch = true
|
|
24
26
|
return super.onStart(animation, bounds)
|
|
25
27
|
}
|
|
26
28
|
|
|
@@ -36,6 +38,7 @@ class KeyboardAnimationCallback(
|
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
if (isAnyKeyboardAnimationRunning) {
|
|
41
|
+
mPendingStartDispatch = false
|
|
39
42
|
mKeyboard.updateHeight(insets, mIsNavigationBarTranslucent)
|
|
40
43
|
mNotifyAboutKeyboardChange.call()
|
|
41
44
|
}
|
|
@@ -44,6 +47,10 @@ class KeyboardAnimationCallback(
|
|
|
44
47
|
|
|
45
48
|
override fun onEnd(animation: WindowInsetsAnimationCompat) {
|
|
46
49
|
if (isKeyboardAnimation(animation)) {
|
|
50
|
+
if (mPendingStartDispatch) {
|
|
51
|
+
mNotifyAboutKeyboardChange.call()
|
|
52
|
+
}
|
|
53
|
+
mPendingStartDispatch = false
|
|
47
54
|
mKeyboard.onAnimationEnd()
|
|
48
55
|
mNotifyAboutKeyboardChange.call()
|
|
49
56
|
}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
import { STYLE_PROPERTIES_CONFIG } from "./config.js";
|
|
3
4
|
import { createNativePropsBuilder, stylePropsBuilder } from "./propsBuilder.js";
|
|
4
5
|
const DEFAULT_SEPARATELY_INTERPOLATED_NESTED_PROPERTIES = new Set(['boxShadow', 'shadowOffset', 'textShadowOffset', 'transformOrigin']);
|
|
5
6
|
const PROPS_BUILDERS = new Map();
|
|
6
7
|
const PATTERN_PROPS_BUILDERS = [];
|
|
8
|
+
const SUPPORTED_BUILDER_PROPS = new Set(Object.keys(STYLE_PROPERTIES_CONFIG));
|
|
9
|
+
export function isSupportedStyleProp(prop) {
|
|
10
|
+
return SUPPORTED_BUILDER_PROPS.has(prop);
|
|
11
|
+
}
|
|
7
12
|
function findEntry(compoundComponentName) {
|
|
8
13
|
const [reactViewName] = compoundComponentName.split('$');
|
|
9
14
|
const exact = PROPS_BUILDERS.get(compoundComponentName) ?? PROPS_BUILDERS.get(reactViewName);
|
|
@@ -30,6 +35,9 @@ export function getPropsBuilder(compoundComponentName) {
|
|
|
30
35
|
return findEntry(compoundComponentName)?.builder ?? stylePropsBuilder;
|
|
31
36
|
}
|
|
32
37
|
export function registerComponentPropsBuilder(componentName, config, options = {}) {
|
|
38
|
+
for (const prop in config) {
|
|
39
|
+
SUPPORTED_BUILDER_PROPS.add(prop);
|
|
40
|
+
}
|
|
33
41
|
const entry = {
|
|
34
42
|
builder: createNativePropsBuilder(config),
|
|
35
43
|
separatelyInterpolatedNestedProperties: options.separatelyInterpolatedNestedProperties?.length ? new Set(options.separatelyInterpolatedNestedProperties) : undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createNativePropsBuilder","stylePropsBuilder","DEFAULT_SEPARATELY_INTERPOLATED_NESTED_PROPERTIES","Set","PROPS_BUILDERS","Map","PATTERN_PROPS_BUILDERS","findEntry","compoundComponentName","reactViewName","split","exact","get","matcher","entry","matches","RegExp","test","getCompoundComponentName","componentDisplayName","getPropsBuilder","builder","registerComponentPropsBuilder","componentName","config","options","separatelyInterpolatedNestedProperties","length","undefined","set","push","getSeparatelyInterpolatedNestedProperties"],"sourceRoot":"../../../../src","sources":["common/style/registry.ts"],"mappings":"AAAA,YAAY;;AAEZ,
|
|
1
|
+
{"version":3,"names":["STYLE_PROPERTIES_CONFIG","createNativePropsBuilder","stylePropsBuilder","DEFAULT_SEPARATELY_INTERPOLATED_NESTED_PROPERTIES","Set","PROPS_BUILDERS","Map","PATTERN_PROPS_BUILDERS","SUPPORTED_BUILDER_PROPS","Object","keys","isSupportedStyleProp","prop","has","findEntry","compoundComponentName","reactViewName","split","exact","get","matcher","entry","matches","RegExp","test","getCompoundComponentName","componentDisplayName","getPropsBuilder","builder","registerComponentPropsBuilder","componentName","config","options","add","separatelyInterpolatedNestedProperties","length","undefined","set","push","getSeparatelyInterpolatedNestedProperties"],"sourceRoot":"../../../../src","sources":["common/style/registry.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,uBAAuB,QAAQ,aAAU;AAClD,SACEC,wBAAwB,EAGxBC,iBAAiB,QACZ,mBAAgB;AAEvB,MAAMC,iDAAiD,GAAG,IAAIC,GAAG,CAAS,CACxE,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,iBAAiB,CAClB,CAAC;AAOF,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAA4B,CAAC;AAC3D,MAAMC,sBAGJ,GAAG,EAAE;AAEP,MAAMC,uBAAuB,GAAG,IAAIJ,GAAG,CACrCK,MAAM,CAACC,IAAI,CAACV,uBAAuB,CACrC,CAAC;AAED,OAAO,SAASW,oBAAoBA,CAACC,IAAY,EAAW;EAC1D,OAAOJ,uBAAuB,CAACK,GAAG,CAACD,IAAI,CAAC;AAC1C;AAEA,SAASE,SAASA,CAACC,qBAA6B,EAA4B;EAC1E,MAAM,CAACC,aAAa,CAAC,GAAGD,qBAAqB,CAACE,KAAK,CAAC,GAAG,CAAC;EAExD,MAAMC,KAAK,GACTb,cAAc,CAACc,GAAG,CAACJ,qBAAqB,CAAC,IACzCV,cAAc,CAACc,GAAG,CAACH,aAAa,CAAC;EACnC,IAAIE,KAAK,EAAE;IACT,OAAOA,KAAK;EACd;;EAEA;EACA,KAAK,MAAM;IAAEE,OAAO;IAAEC;EAAM,CAAC,IAAId,sBAAsB,EAAE;IACvD,MAAMe,OAAO,GACXF,OAAO,YAAYG,MAAM,GACrBH,OAAO,CAACI,IAAI,CAACT,qBAAqB,CAAC,IAAIK,OAAO,CAACI,IAAI,CAACR,aAAa,CAAC,GAClEI,OAAO,CAACL,qBAAqB,CAAC,IAAIK,OAAO,CAACJ,aAAa,CAAC;IAC9D,IAAIM,OAAO,EAAE;MACX,OAAOD,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb;AAEA,OAAO,SAASI,wBAAwBA,CACtCT,aAAqB,EACrBU,oBAA4B,EACpB;EACR,OAAO,GAAGV,aAAa,IAAIU,oBAAoB,EAAE;AACnD;AAEA,OAAO,SAASC,eAAeA,CAC7BZ,qBAA6B,EACT;EACpB,OAAOD,SAAS,CAACC,qBAAqB,CAAC,EAAEa,OAAO,IAAI1B,iBAAiB;AACvE;AAEA,OAAO,SAAS2B,6BAA6BA,CAC3CC,aAA4D,EAC5DC,MAA6B,EAC7BC,OAEC,GAAG,CAAC,CAAC,EACN;EACA,KAAK,MAAMpB,IAAI,IAAImB,MAAM,EAAE;IACzBvB,uBAAuB,CAACyB,GAAG,CAACrB,IAAI,CAAC;EACnC;EAEA,MAAMS,KAAwB,GAAG;IAC/BO,OAAO,EAAE3B,wBAAwB,CAAC8B,MAAM,CAAC;IACzCG,sCAAsC,EAAEF,OAAO,CAC5CE,sCAAsC,EAAEC,MAAM,GAC7C,IAAI/B,GAAG,CAAC4B,OAAO,CAACE,sCAAsC,CAAC,GACvDE;EACN,CAAC;EAED,IAAI,OAAON,aAAa,KAAK,QAAQ,EAAE;IACrCzB,cAAc,CAACgC,GAAG,CAACP,aAAa,EAAET,KAAK,CAAC;EAC1C,CAAC,MAAM;IACLd,sBAAsB,CAAC+B,IAAI,CAAC;MAAElB,OAAO,EAAEU,aAAa;MAAET;IAAM,CAAC,CAAC;EAChE;AACF;AAEA,OAAO,SAASkB,yCAAyCA,CACvDxB,qBAA6B,EACR;EACrB,OACED,SAAS,CAACC,qBAAqB,CAAC,EAAEmB,sCAAsC,IACxE/B,iDAAiD;AAErD","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["logger","NATIVE_PSEUDO_SELECTORS","deepEqual","normalizeCSSTransitionProperties","registerPseudoStyles","unregisterPseudoStyles","CSSPseudoStylesManager","prevPseudoStylesBySelector","prevTransitionProperties","isRegistered","constructor","shadowNodeWrapper","viewTag","propsBuilder","update","pseudoStylesBySelector","transitionProperties","detach","normalizedTransition","mergedDefaultStyle","selector","defaultStyle","Object","entries","has","assign","builtDefaultStyle","build","includeUnprocessed","nullifyUndefinedValues","selectors","selectorStyle","__DEV__","warn","push","buildPseudoStyleEntry","length","unmountCleanup","builtSelectorStyle","transition","prop","keys","settings","getPropertyTransitionSettings","value","duration","delay","timingFunction","allowDiscrete","style","key","undefined","normalized","specificProperties","all"],"sourceRoot":"../../../../../src","sources":["css/native/managers/CSSPseudoStylesManager.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,MAAM,QAAQ,0BAAiB;AAExC,SAASC,uBAAuB,QAAQ,0BAAiB;AAOzD,SAASC,SAAS,QAAQ,sBAAa;AACvC,SAASC,gCAAgC,QAAQ,2BAAkB;AACnE,SAASC,oBAAoB,EAAEC,sBAAsB,QAAQ,aAAU;AAOvE,eAAe,MAAMC,sBAAsB,CAAoC;EAKrEC,0BAA0B,GAAkC,IAAI;EAChEC,wBAAwB,GAAmC,IAAI;EAC/DC,YAAY,GAAG,KAAK;EAE5BC,WAAWA,CACTC,iBAAoC,EACpCC,OAAe,EACfC,YAAgC,EAChC;IACA,IAAI,CAACF,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,YAAY,GAAGA,YAAY;EAClC;EAEAC,MAAMA,CACJC,sBAAqD,EACrDC,oBAAoD,EAC9C;IACN,IACEd,SAAS,CAACa,sBAAsB,EAAE,IAAI,CAACR,0BAA0B,CAAC,IAClEL,SAAS,CAACc,oBAAoB,EAAE,IAAI,CAACR,wBAAwB,CAAC,EAC9D;MACA;IACF;IACA,IAAI,CAACD,0BAA0B,GAAGQ,sBAAsB;IACxD,IAAI,CAACP,wBAAwB,GAAGQ,oBAAoB;IAEpD,IAAI,IAAI,CAACP,YAAY,EAAE;MACrB,IAAI,CAACQ,MAAM,CAAC,CAAC;IACf;IAEA,IAAI,CAACF,sBAAsB,EAAE;MAC3B;IACF;IAEA,MAAMG,oBAAoB,GAAGF,oBAAoB,GAC7Cb,gCAAgC,CAACa,oBAAoB,CAAC,GACtD,IAAI;IAER,MAAMG,kBAAiC,GAAG,CAAC,CAAC;IAC5C,KAAK,MAAM,CAACC,QAAQ,EAAE;MAAEC;IAAa,CAAC,CAAC,IAAIC,MAAM,CAACC,OAAO,CACvDR,sBACF,CAAC,EAAE;MACD,IAAId,uBAAuB,CAACuB,GAAG,CAACJ,QAAmC,CAAC,EAAE;QACpEE,MAAM,CAACG,MAAM,CAACN,kBAAkB,EAAEE,YAAY,CAAC;MACjD;IACF;IACA,MAAMK,iBAAiB,GAAG,IAAI,CAACb,YAAY,CAACc,KAAK,CAACR,kBAAkB,EAAE;MACpES,kBAAkB,EAAE;IACtB,CAAC,CAAC;IACFC,sBAAsB,CAACH,iBAAiB,CAAC;IAEzC,MAAMI,SAAgC,GAAG,EAAE;IAC3C,KAAK,MAAM,CAACV,QAAQ,EAAE;MAAEW;IAAc,CAAC,CAAC,IAAIT,MAAM,CAACC,OAAO,CACxDR,sBACF,CAAC,EAAE;MACD,IAAI,CAACd,uBAAuB,CAACuB,GAAG,CAACJ,QAAmC,CAAC,EAAE;QACrE,IAAIY,OAAO,EAAE;UACXhC,MAAM,CAACiC,IAAI,CACT,oBAAoBb,QAAQ,mDAC9B,CAAC;QACH;QACA;MACF;MACAU,SAAS,CAACI,IAAI,CACZ,IAAI,CAACC,qBAAqB,CACxBf,QAAQ,EACRW,aAAa,EACbL,iBAAiB,EACjBR,oBACF,CACF,CAAC;IACH;IAEA,IAAIY,SAAS,CAACM,MAAM,GAAG,CAAC,EAAE;MACxBhC,oBAAoB,CAAC,IAAI,CAACO,iBAAiB,EAAE;QAC3CU,YAAY,EAAEK,iBAAiB;QAC/BI;MACF,CAAC,CAAC;MACF,IAAI,CAACrB,YAAY,GAAG,IAAI;IAC1B;EACF;EAEA4B,cAAcA,CAAA,EAAS;IACrB,IAAI,IAAI,CAAC5B,YAAY,EAAE;MACrB,IAAI,CAACQ,MAAM,CAAC,CAAC;IACf;
|
|
1
|
+
{"version":3,"names":["logger","NATIVE_PSEUDO_SELECTORS","deepEqual","normalizeCSSTransitionProperties","registerPseudoStyles","unregisterPseudoStyles","CSSPseudoStylesManager","prevPseudoStylesBySelector","prevTransitionProperties","isRegistered","constructor","shadowNodeWrapper","viewTag","propsBuilder","update","pseudoStylesBySelector","transitionProperties","detach","normalizedTransition","mergedDefaultStyle","selector","defaultStyle","Object","entries","has","assign","builtDefaultStyle","build","includeUnprocessed","nullifyUndefinedValues","selectors","selectorStyle","__DEV__","warn","push","buildPseudoStyleEntry","length","unmountCleanup","builtSelectorStyle","transition","prop","keys","settings","getPropertyTransitionSettings","value","duration","delay","timingFunction","allowDiscrete","style","key","undefined","normalized","specificProperties","all"],"sourceRoot":"../../../../../src","sources":["css/native/managers/CSSPseudoStylesManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
import { registerWebSvgPropsBuilder, SVG_CIRCLE_WEB_PROPERTIES_CONFIG, SVG_COMMON_WEB_PROPERTIES_CONFIG, SVG_ELLIPSE_WEB_PROPERTIES_CONFIG, SVG_IMAGE_WEB_PROPERTIES_CONFIG, SVG_PATH_WEB_PROPERTIES_CONFIG, SVG_RECT_WEB_PROPERTIES_CONFIG } from "./web/index.js";
|
|
4
4
|
|
|
5
|
-
//
|
|
5
|
+
// SVG tags with no CSS-animatable geometry on web: any geometry they expose is
|
|
6
6
|
// an SVG attribute, not a CSS property. They fall back to the shared common config.
|
|
7
|
-
const
|
|
7
|
+
const COMMON_ONLY_TAGS = ['g', 'line', 'pattern', 'polygon', 'polyline', 'text', 'linearGradient', 'radialGradient'];
|
|
8
8
|
export function initSvgCssSupport() {
|
|
9
|
-
registerWebSvgPropsBuilder('
|
|
10
|
-
registerWebSvgPropsBuilder('
|
|
11
|
-
registerWebSvgPropsBuilder('
|
|
12
|
-
registerWebSvgPropsBuilder('
|
|
13
|
-
registerWebSvgPropsBuilder('
|
|
14
|
-
for (const
|
|
15
|
-
registerWebSvgPropsBuilder(
|
|
9
|
+
registerWebSvgPropsBuilder('circle', SVG_CIRCLE_WEB_PROPERTIES_CONFIG);
|
|
10
|
+
registerWebSvgPropsBuilder('ellipse', SVG_ELLIPSE_WEB_PROPERTIES_CONFIG);
|
|
11
|
+
registerWebSvgPropsBuilder('image', SVG_IMAGE_WEB_PROPERTIES_CONFIG);
|
|
12
|
+
registerWebSvgPropsBuilder('path', SVG_PATH_WEB_PROPERTIES_CONFIG);
|
|
13
|
+
registerWebSvgPropsBuilder('rect', SVG_RECT_WEB_PROPERTIES_CONFIG);
|
|
14
|
+
for (const tag of COMMON_ONLY_TAGS) {
|
|
15
|
+
registerWebSvgPropsBuilder(tag, SVG_COMMON_WEB_PROPERTIES_CONFIG);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
//# sourceMappingURL=init.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["registerWebSvgPropsBuilder","SVG_CIRCLE_WEB_PROPERTIES_CONFIG","SVG_COMMON_WEB_PROPERTIES_CONFIG","SVG_ELLIPSE_WEB_PROPERTIES_CONFIG","SVG_IMAGE_WEB_PROPERTIES_CONFIG","SVG_PATH_WEB_PROPERTIES_CONFIG","SVG_RECT_WEB_PROPERTIES_CONFIG","
|
|
1
|
+
{"version":3,"names":["registerWebSvgPropsBuilder","SVG_CIRCLE_WEB_PROPERTIES_CONFIG","SVG_COMMON_WEB_PROPERTIES_CONFIG","SVG_ELLIPSE_WEB_PROPERTIES_CONFIG","SVG_IMAGE_WEB_PROPERTIES_CONFIG","SVG_PATH_WEB_PROPERTIES_CONFIG","SVG_RECT_WEB_PROPERTIES_CONFIG","COMMON_ONLY_TAGS","initSvgCssSupport","tag"],"sourceRoot":"../../../../src","sources":["css/svg/init.web.ts"],"mappings":"AAAA,YAAY;;AACZ,SACEA,0BAA0B,EAC1BC,gCAAgC,EAChCC,gCAAgC,EAChCC,iCAAiC,EACjCC,+BAA+B,EAC/BC,8BAA8B,EAC9BC,8BAA8B,QACzB,gBAAO;;AAEd;AACA;AACA,MAAMC,gBAAgB,GAAG,CACvB,GAAG,EACH,MAAM,EACN,SAAS,EACT,SAAS,EACT,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,gBAAgB,CACR;AAEV,OAAO,SAASC,iBAAiBA,CAAA,EAAG;EAClCR,0BAA0B,CAAC,QAAQ,EAAEC,gCAAgC,CAAC;EACtED,0BAA0B,CAAC,SAAS,EAAEG,iCAAiC,CAAC;EACxEH,0BAA0B,CAAC,OAAO,EAAEI,+BAA+B,CAAC;EACpEJ,0BAA0B,CAAC,MAAM,EAAEK,8BAA8B,CAAC;EAClEL,0BAA0B,CAAC,MAAM,EAAEM,8BAA8B,CAAC;EAElE,KAAK,MAAMG,GAAG,IAAIF,gBAAgB,EAAE;IAClCP,0BAA0B,CAACS,GAAG,EAAEP,gCAAgC,CAAC;EACnE;AACF","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
import { isEmptyObject, logger } from "../../common/index.js";
|
|
3
|
+
import { isEmptyObject, isSupportedStyleProp, logger } from "../../common/index.js";
|
|
4
4
|
import { isSharedValue } from "../../isSharedValue.js";
|
|
5
5
|
import { isAnimationProp, isCSSKeyframesObject, isCSSKeyframesRule, isPseudoSelectorValue, isTransitionCallbackProp, isTransitionProp } from "./guards.js";
|
|
6
6
|
export function filterCSSAndStyleProperties(style) {
|
|
@@ -54,7 +54,7 @@ export function filterCSSAndStyleProperties(style) {
|
|
|
54
54
|
branch.selectorStyle[prop] = selectorValue;
|
|
55
55
|
branch.defaultStyle[prop] = defaultValue;
|
|
56
56
|
}
|
|
57
|
-
} else if (isEmptyObject(value)) {
|
|
57
|
+
} else if (isEmptyObject(value) && isSupportedStyleProp(prop)) {
|
|
58
58
|
throw new Error(`[Reanimated] Invalid value for "${prop}": an empty object is not a valid style value.`);
|
|
59
59
|
} else {
|
|
60
60
|
filteredStyle[prop] = value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isEmptyObject","logger","isSharedValue","isAnimationProp","isCSSKeyframesObject","isCSSKeyframesRule","isPseudoSelectorValue","isTransitionCallbackProp","isTransitionProp","filterCSSAndStyleProperties","style","animationProperties","transitionProperties","transitionCallbacks","filteredStyle","pseudoStylesBySelector","prop","value","Object","entries","undefined","transition","defaultValue","default","selector","selectorValue","branch","selectorStyle","defaultStyle","Error","animationName","hasAnimationName","Array","isArray","every","keyframes","finalAnimationConfig","hasTransitionConfig","keys","length","finalTransitionConfig","hasPseudoStyles","finalPseudoStyles","hasTransitionCallbacks","finalTransitionCallbacks","__DEV__","validateCSSAnimationProps","validateCSSTransitionProps","validateCSSTransitionCallbacks","props","warn","callbacks","callbackNames","isPlural","join"],"sourceRoot":"../../../../src","sources":["css/utils/props.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,aAAa,EAAEC,MAAM,QAAQ,uBAAc;
|
|
1
|
+
{"version":3,"names":["isEmptyObject","isSupportedStyleProp","logger","isSharedValue","isAnimationProp","isCSSKeyframesObject","isCSSKeyframesRule","isPseudoSelectorValue","isTransitionCallbackProp","isTransitionProp","filterCSSAndStyleProperties","style","animationProperties","transitionProperties","transitionCallbacks","filteredStyle","pseudoStylesBySelector","prop","value","Object","entries","undefined","transition","defaultValue","default","selector","selectorValue","branch","selectorStyle","defaultStyle","Error","animationName","hasAnimationName","Array","isArray","every","keyframes","finalAnimationConfig","hasTransitionConfig","keys","length","finalTransitionConfig","hasPseudoStyles","finalPseudoStyles","hasTransitionCallbacks","finalTransitionCallbacks","__DEV__","validateCSSAnimationProps","validateCSSTransitionProps","validateCSSTransitionCallbacks","props","warn","callbacks","callbackNames","isPlural","join"],"sourceRoot":"../../../../src","sources":["css/utils/props.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,8 +5,8 @@ import { webPropsBuilder } from "../../common/web/index.js";
|
|
|
5
5
|
import { getWebSvgPropsBuilder } from "../svg/web/index.js";
|
|
6
6
|
import { normalizeWebKeyframes } from "./normalization/index.js";
|
|
7
7
|
import { parseTimingFunction } from "./utils.js";
|
|
8
|
-
export function processKeyframeDefinitions(definitions,
|
|
9
|
-
const propsBuilder = getWebSvgPropsBuilder(
|
|
8
|
+
export function processKeyframeDefinitions(definitions, svgElementTag = '') {
|
|
9
|
+
const propsBuilder = getWebSvgPropsBuilder(svgElementTag) ?? webPropsBuilder;
|
|
10
10
|
|
|
11
11
|
// Whole-set fixups (strokeDasharray endpoints, open/closed path Z-padding)
|
|
12
12
|
// before serializing each block.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hasSuffix","webPropsBuilder","getWebSvgPropsBuilder","normalizeWebKeyframes","parseTimingFunction","processKeyframeDefinitions","definitions","
|
|
1
|
+
{"version":3,"names":["hasSuffix","webPropsBuilder","getWebSvgPropsBuilder","normalizeWebKeyframes","parseTimingFunction","processKeyframeDefinitions","definitions","svgElementTag","propsBuilder","keyframes","Object","entries","reduce","acc","timestamp","rules","step","parseFloat","processedBlock","processKeyframeBlock","push","join","animationTimingFunction","style","build"],"sourceRoot":"../../../../src","sources":["css/web/animationParser.ts"],"mappings":"AAAA,YAAY;;AACZ,SAASA,SAAS,QAAQ,uBAAc;AACxC,SAA+BC,eAAe,QAAQ,2BAAkB;AACxE,SAASC,qBAAqB,QAAQ,qBAAY;AAKlD,SAASC,qBAAqB,QAAQ,0BAAiB;AACvD,SAASC,mBAAmB,QAAQ,YAAS;AAE7C,OAAO,SAASC,0BAA0BA,CACxCC,WAA0C,EAC1CC,aAAa,GAAG,EAAE,EAClB;EACA,MAAMC,YAAY,GAAGN,qBAAqB,CAACK,aAAa,CAAC,IAAIN,eAAe;;EAE5E;EACA;EACA,MAAMQ,SAAS,GAAGN,qBAAqB,CAACG,WAAW,CAAC;EAEpD,OAAOI,MAAM,CAACC,OAAO,CAACF,SAAS,CAAC,CAC7BG,MAAM,CAAW,CAACC,GAAG,EAAE,CAACC,SAAS,EAAEC,KAAK,CAAC,KAAK;IAC7C,MAAMC,IAAI,GAAGhB,SAAS,CAACc,SAAS,CAAC,GAC7BA,SAAS,GACT,GAAGG,UAAU,CAACH,SAAS,CAAC,GAAG,GAAG,GAAG;IAErC,MAAMI,cAAc,GAAGC,oBAAoB,CAACJ,KAAK,EAAEP,YAAY,CAAC;IAEhE,IAAI,CAACU,cAAc,EAAE;MACnB,OAAOL,GAAG;IACZ;IAEAA,GAAG,CAACO,IAAI,CAAC,GAAGJ,IAAI,MAAME,cAAc,IAAI,CAAC;IAEzC,OAAOL,GAAG;EACZ,CAAC,EAAE,EAAE,CAAC,CACLQ,IAAI,CAAC,GAAG,CAAC;AACd;AAEA,SAASF,oBAAoBA,CAC3B;EAAEG,uBAAuB;EAAE,GAAGP;AAAoC,CAAC,EACnEP,YAA6B,EACd;EACf,MAAMe,KAAK,GAAGf,YAAY,CAACgB,KAAK,CAC9BT,KACF,CAAC;EAED,IAAI,CAACQ,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAEA,OAAOD,uBAAuB,GAC1B,8BAA8BlB,mBAAmB,CAACkB,uBAAuB,CAAC,KAAKC,KAAK,EAAE,GACtFA,KAAK;AACX","ignoreList":[]}
|
|
@@ -13,9 +13,9 @@ export default class CSSAnimationsManager {
|
|
|
13
13
|
// Keys are processed keyframes
|
|
14
14
|
attachedAnimations = {};
|
|
15
15
|
unmountCleanupCalled = false;
|
|
16
|
-
constructor(element,
|
|
16
|
+
constructor(element, svgElementTag = '') {
|
|
17
17
|
this.element = element;
|
|
18
|
-
this.
|
|
18
|
+
this.svgElementTag = svgElementTag;
|
|
19
19
|
}
|
|
20
20
|
update(animationProperties) {
|
|
21
21
|
if (!animationProperties) {
|
|
@@ -44,7 +44,7 @@ export default class CSSAnimationsManager {
|
|
|
44
44
|
} else {
|
|
45
45
|
// If keyframes was defined as an object, the additional processing is needed
|
|
46
46
|
const keyframes = definition;
|
|
47
|
-
const processedKeyframes = processKeyframeDefinitions(keyframes, this.
|
|
47
|
+
const processedKeyframes = processKeyframeDefinitions(keyframes, this.svgElementTag);
|
|
48
48
|
|
|
49
49
|
// If the animation with the same keyframes was already attached, we can reuse it
|
|
50
50
|
// Otherwise, we need to create a new CSSKeyframesRule object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["convertPropertiesToArrays","kebabizeCamelCase","maybeAddSuffix","removeElementAnimation","normalizeTimeUnit","processKeyframeDefinitions","insertCSSAnimation","removeCSSAnimation","CSSKeyframesRuleImpl","normalizeIterationCount","maybeAddSuffixes","parseTimingFunction","isCSSKeyframesRuleImpl","keyframes","CSSAnimationsManager","attachedAnimations","unmountCleanupCalled","constructor","element","
|
|
1
|
+
{"version":3,"names":["convertPropertiesToArrays","kebabizeCamelCase","maybeAddSuffix","removeElementAnimation","normalizeTimeUnit","processKeyframeDefinitions","insertCSSAnimation","removeCSSAnimation","CSSKeyframesRuleImpl","normalizeIterationCount","maybeAddSuffixes","parseTimingFunction","isCSSKeyframesRuleImpl","keyframes","CSSAnimationsManager","attachedAnimations","unmountCleanupCalled","constructor","element","svgElementTag","update","animationProperties","detach","animationName","definitions","animationSettings","length","timestamp","Date","now","processedAnimations","map","definition","processedAnimation","processedKeyframes","keyframesRule","removable","creationTimestamp","elapsedTime","updateAttachedAnimations","setElementAnimations","unmountCleanup","setTimeout","removeAnimationsFromStyleSheet","Object","values","newAttachedAnimations","forEach","rule","name","style","join","animationDuration","animationDelays","animationDelay","i","providedDelay","animationIterationCount","animationDirection","animationFillMode","animationPlayState","animationTimingFunction","animations"],"sourceRoot":"../../../../../src","sources":["css/web/managers/CSSAnimationsManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,9 +9,10 @@ export default class CSSManager {
|
|
|
9
9
|
constructor(viewInfo, componentDisplayName = '') {
|
|
10
10
|
configureWebCSS();
|
|
11
11
|
const element = viewInfo.DOMElement;
|
|
12
|
-
|
|
12
|
+
const svgElementTag = element?.tagName ?? componentDisplayName;
|
|
13
|
+
this.animationsManager = new CSSAnimationsManager(element, svgElementTag);
|
|
13
14
|
this.transitionsManager = new CSSTransitionsManager(element);
|
|
14
|
-
this.pseudoSelectorsManager = new CSSPseudoSelectorsManager(element,
|
|
15
|
+
this.pseudoSelectorsManager = new CSSPseudoSelectorsManager(element, svgElementTag);
|
|
15
16
|
}
|
|
16
17
|
update(style) {
|
|
17
18
|
const [animationProperties, transitionProperties, pseudoStylesBySelector, transitionCallbacks] = filterCSSAndStyleProperties(style);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["filterCSSAndStyleProperties","configureWebCSS","CSSAnimationsManager","CSSPseudoSelectorsManager","CSSTransitionsManager","CSSManager","constructor","viewInfo","componentDisplayName","element","DOMElement","animationsManager","transitionsManager","pseudoSelectorsManager","update","style","animationProperties","transitionProperties","pseudoStylesBySelector","transitionCallbacks","unmountCleanup"],"sourceRoot":"../../../../../src","sources":["css/web/managers/CSSManager.ts"],"mappings":"AAAA,YAAY;;AAKZ,SAASA,2BAA2B,QAAQ,sBAAa;AACzD,SAASC,eAAe,QAAQ,gBAAa;AAC7C,OAAOC,oBAAoB,MAAM,2BAAwB;AACzD,OAAOC,yBAAyB,MAAM,gCAA6B;AACnE,OAAOC,qBAAqB,MAAM,4BAAyB;AAE3D,eAAe,MAAMC,UAAU,CAAwB;EAKrDC,WAAWA,CAACC,QAAkB,EAAEC,oBAAoB,GAAG,EAAE,EAAE;IACzDP,eAAe,CAAC,CAAC;IAEjB,MAAMQ,OAAO,GAAGF,QAAQ,CAACG,UAAmC;
|
|
1
|
+
{"version":3,"names":["filterCSSAndStyleProperties","configureWebCSS","CSSAnimationsManager","CSSPseudoSelectorsManager","CSSTransitionsManager","CSSManager","constructor","viewInfo","componentDisplayName","element","DOMElement","svgElementTag","tagName","animationsManager","transitionsManager","pseudoSelectorsManager","update","style","animationProperties","transitionProperties","pseudoStylesBySelector","transitionCallbacks","unmountCleanup"],"sourceRoot":"../../../../../src","sources":["css/web/managers/CSSManager.ts"],"mappings":"AAAA,YAAY;;AAKZ,SAASA,2BAA2B,QAAQ,sBAAa;AACzD,SAASC,eAAe,QAAQ,gBAAa;AAC7C,OAAOC,oBAAoB,MAAM,2BAAwB;AACzD,OAAOC,yBAAyB,MAAM,gCAA6B;AACnE,OAAOC,qBAAqB,MAAM,4BAAyB;AAE3D,eAAe,MAAMC,UAAU,CAAwB;EAKrDC,WAAWA,CAACC,QAAkB,EAAEC,oBAAoB,GAAG,EAAE,EAAE;IACzDP,eAAe,CAAC,CAAC;IAEjB,MAAMQ,OAAO,GAAGF,QAAQ,CAACG,UAAmC;IAC5D,MAAMC,aAAa,GAAGF,OAAO,EAAEG,OAAO,IAAIJ,oBAAoB;IAE9D,IAAI,CAACK,iBAAiB,GAAG,IAAIX,oBAAoB,CAACO,OAAO,EAAEE,aAAa,CAAC;IACzE,IAAI,CAACG,kBAAkB,GAAG,IAAIV,qBAAqB,CAACK,OAAO,CAAC;IAC5D,IAAI,CAACM,sBAAsB,GAAG,IAAIZ,yBAAyB,CACzDM,OAAO,EACPE,aACF,CAAC;EACH;EAEAK,MAAMA,CAACC,KAAe,EAAQ;IAC5B,MAAM,CACJC,mBAAmB,EACnBC,oBAAoB,EACpBC,sBAAsB,EACtBC,mBAAmB,CACpB,GAAGrB,2BAA2B,CAACiB,KAAK,CAAC;IAEtC,IAAI,CAACJ,iBAAiB,CAACG,MAAM,CAACE,mBAAmB,CAAC;IAClD,IAAI,CAACJ,kBAAkB,CAACE,MAAM,CAACG,oBAAoB,EAAEE,mBAAmB,CAAC;IACzE,IAAI,CAACN,sBAAsB,CAACC,MAAM,CAACI,sBAAsB,CAAC;EAC5D;EAEAE,cAAcA,CAAA,EAAS;IACrB,IAAI,CAACT,iBAAiB,CAACS,cAAc,CAAC,CAAC;IACvC,IAAI,CAACR,kBAAkB,CAACQ,cAAc,CAAC,CAAC;IACxC,IAAI,CAACP,sBAAsB,CAACO,cAAc,CAAC,CAAC;EAC9C;AACF","ignoreList":[]}
|
|
@@ -47,9 +47,9 @@ function buildRules(viewId, pseudoStylesBySelector, propsBuilder) {
|
|
|
47
47
|
export default class CSSPseudoSelectorsManager {
|
|
48
48
|
viewId = null;
|
|
49
49
|
prevPseudoStylesBySelector = null;
|
|
50
|
-
constructor(element,
|
|
50
|
+
constructor(element, svgElementTag = '') {
|
|
51
51
|
this.element = element;
|
|
52
|
-
this.
|
|
52
|
+
this.svgElementTag = svgElementTag;
|
|
53
53
|
}
|
|
54
54
|
update(pseudoStylesBySelector) {
|
|
55
55
|
if (deepEqual(pseudoStylesBySelector, this.prevPseudoStylesBySelector)) {
|
|
@@ -60,7 +60,7 @@ export default class CSSPseudoSelectorsManager {
|
|
|
60
60
|
this.detach();
|
|
61
61
|
return;
|
|
62
62
|
}
|
|
63
|
-
const propsBuilder = getWebSvgPropsBuilder(this.
|
|
63
|
+
const propsBuilder = getWebSvgPropsBuilder(this.svgElementTag) ?? webPropsBuilder;
|
|
64
64
|
const viewId = this.ensureViewId();
|
|
65
65
|
this.syncActiveMarker(pseudoStylesBySelector);
|
|
66
66
|
insertPseudoSelectorCSS(viewId, buildRules(viewId, pseudoStylesBySelector, propsBuilder));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["logger","webPropsBuilder","ANIMATION_NAME_PREFIX","NATIVE_PSEUDO_SELECTORS","NATIVE_PSEUDO_SELECTORS_PRIORITY","getWebSvgPropsBuilder","deepEqual","insertPseudoSelectorCSS","removePseudoSelectorCSS","pseudoSelectorCounter","VIEW_ATTRIBUTE","ACTIVE_MARKER_ATTRIBUTE","orderSelectors","pseudoStylesBySelector","known","filter","sel","unknown","Object","keys","has","SELECTOR_INJECTION_PATTERN","buildSelectorRule","viewId","selector","propsBuilder","test","__DEV__","warn","declarations","build","selectorStyle","important","includeUnprocessed","base","buildRules","map","rule","CSSPseudoSelectorsManager","prevPseudoStylesBySelector","constructor","element","
|
|
1
|
+
{"version":3,"names":["logger","webPropsBuilder","ANIMATION_NAME_PREFIX","NATIVE_PSEUDO_SELECTORS","NATIVE_PSEUDO_SELECTORS_PRIORITY","getWebSvgPropsBuilder","deepEqual","insertPseudoSelectorCSS","removePseudoSelectorCSS","pseudoSelectorCounter","VIEW_ATTRIBUTE","ACTIVE_MARKER_ATTRIBUTE","orderSelectors","pseudoStylesBySelector","known","filter","sel","unknown","Object","keys","has","SELECTOR_INJECTION_PATTERN","buildSelectorRule","viewId","selector","propsBuilder","test","__DEV__","warn","declarations","build","selectorStyle","important","includeUnprocessed","base","buildRules","map","rule","CSSPseudoSelectorsManager","prevPseudoStylesBySelector","constructor","element","svgElementTag","update","detach","ensureViewId","syncActiveMarker","unmountCleanup","String","setAttribute","hasAnyActive","removeAttribute"],"sourceRoot":"../../../../../src","sources":["css/web/managers/CSSPseudoSelectorsManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,9 +5,11 @@ export function valueSetter(mutable, value, forceUpdate = false) {
|
|
|
5
5
|
|
|
6
6
|
const previousAnimation = mutable._animation;
|
|
7
7
|
if (previousAnimation) {
|
|
8
|
-
previousAnimation.cancelled = true;
|
|
9
|
-
previousAnimation.callback?.(false);
|
|
10
8
|
mutable._animation = null;
|
|
9
|
+
if (!previousAnimation.finished) {
|
|
10
|
+
previousAnimation.cancelled = true;
|
|
11
|
+
previousAnimation.callback?.(false);
|
|
12
|
+
}
|
|
11
13
|
}
|
|
12
14
|
if (typeof value === 'function' || value !== null && typeof value === 'object' &&
|
|
13
15
|
// TODO TYPESCRIPT fix this after fixing AnimationObject type
|
|
@@ -36,10 +38,10 @@ export function valueSetter(mutable, value, forceUpdate = false) {
|
|
|
36
38
|
return;
|
|
37
39
|
}
|
|
38
40
|
const finished = animation.onFrame(animation, timestamp);
|
|
39
|
-
animation.finished = true;
|
|
40
41
|
animation.timestamp = timestamp;
|
|
41
42
|
mutable._value = animation.current;
|
|
42
43
|
if (finished) {
|
|
44
|
+
animation.finished = true;
|
|
43
45
|
animation.callback?.(true /* finished */);
|
|
44
46
|
} else {
|
|
45
47
|
requestAnimationFrame(step);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["valueSetter","mutable","value","forceUpdate","previousAnimation","_animation","cancelled","callback","onFrame","undefined","onStart","animation","_value","current","isHigherOrder","initializeAnimation","timestamp","currentTimestamp","global","__frameTimestamp","_getAnimationTimestamp","step","
|
|
1
|
+
{"version":3,"names":["valueSetter","mutable","value","forceUpdate","previousAnimation","_animation","finished","cancelled","callback","onFrame","undefined","onStart","animation","_value","current","isHigherOrder","initializeAnimation","timestamp","currentTimestamp","global","__frameTimestamp","_getAnimationTimestamp","step","requestAnimationFrame"],"sourceRoot":"../../src","sources":["valueSetter.ts"],"mappings":"AAAA,YAAY;;AAGZ,OAAO,SAASA,WAAWA,CACzBC,OAAuB,EACvBC,KAAY,EACZC,WAAW,GAAG,KAAK,EACb;EACN,SAAS;;EACT,MAAMC,iBAAiB,GAAGH,OAAO,CAACI,UAAU;EAC5C,IAAID,iBAAiB,EAAE;IACrBH,OAAO,CAACI,UAAU,GAAG,IAAI;IACzB,IAAI,CAACD,iBAAiB,CAACE,QAAQ,EAAE;MAC/BF,iBAAiB,CAACG,SAAS,GAAG,IAAI;MAClCH,iBAAiB,CAACI,QAAQ,GAAG,KAAK,CAAC;IACrC;EACF;EACA,IACE,OAAON,KAAK,KAAK,UAAU,IAC1BA,KAAK,KAAK,IAAI,IACb,OAAOA,KAAK,KAAK,QAAQ;EACzB;EACCA,KAAK,CAAgCO,OAAO,KAAKC,SAAS,IAC1DR,KAAK,CAAgCS,OAAO,KAAKD,SAAU,EAC9D;IACA,MAAME,SAAiC,GACrC,OAAOV,KAAK,KAAK,UAAU;IACvB;IACCA,KAAK,CAAkC,CAAC;IACzC;IACCA,KAA2C;IAClD;IACA;IACA;IACA;IACA,IACED,OAAO,CAACY,MAAM,KAAKD,SAAS,CAACE,OAAO,IACpC,CAACF,SAAS,CAACG,aAAa,IACxB,CAACZ,WAAW,EACZ;MACAS,SAAS,CAACJ,QAAQ,GAAG,IAAI,CAAC;MAC1B;IACF;IACA;IACA,MAAMQ,mBAAmB,GAAIC,SAAiB,IAAK;MACjDL,SAAS,CAACD,OAAO,CAACC,SAAS,EAAEX,OAAO,CAACC,KAAK,EAAEe,SAAS,EAAEb,iBAAiB,CAAC;IAC3E,CAAC;IACD,MAAMc,gBAAgB,GACpBC,MAAM,CAACC,gBAAgB,IAAID,MAAM,CAACE,sBAAsB,CAAC,CAAC;IAC5DL,mBAAmB,CAACE,gBAAgB,CAAC;IAErC,MAAMI,IAAI,GAAIL,SAAiB,IAAK;MAClC,IAAIL,SAAS,CAACL,SAAS,EAAE;QACvB;MACF;MACA,MAAMD,QAAQ,GAAGM,SAAS,CAACH,OAAO,CAACG,SAAS,EAAEK,SAAS,CAAC;MACxDL,SAAS,CAACK,SAAS,GAAGA,SAAS;MAC/BhB,OAAO,CAACY,MAAM,GAAGD,SAAS,CAACE,OAAQ;MACnC,IAAIR,QAAQ,EAAE;QACZM,SAAS,CAACN,QAAQ,GAAG,IAAI;QACzBM,SAAS,CAACJ,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;MAC3C,CAAC,MAAM;QACLe,qBAAqB,CAACD,IAAI,CAAC;MAC7B;IACF,CAAC;IAEDrB,OAAO,CAACI,UAAU,GAAGO,SAAS;IAE9BU,IAAI,CAACJ,gBAAgB,CAAC;EACxB,CAAC,MAAM;IACL;IACA;IACA,IAAIjB,OAAO,CAACY,MAAM,KAAKX,KAAK,IAAI,CAACC,WAAW,EAAE;MAC5C;IACF;IACAF,OAAO,CAACY,MAAM,GAAGX,KAAK;EACxB;AACF","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { UnknownRecord } from '../types';
|
|
2
2
|
import { type NativePropsBuilder, type PropsBuilderConfig } from './propsBuilder';
|
|
3
|
+
export declare function isSupportedStyleProp(prop: string): boolean;
|
|
3
4
|
export declare function getCompoundComponentName(reactViewName: string, componentDisplayName: string): string;
|
|
4
5
|
export declare function getPropsBuilder(compoundComponentName: string): NativePropsBuilder;
|
|
5
6
|
export declare function registerComponentPropsBuilder<P extends UnknownRecord>(componentName: string | RegExp | ((name: string) => boolean), config: PropsBuilderConfig<P>, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/common/style/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/common/style/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAExB,MAAM,gBAAgB,CAAC;AAwBxB,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AA0BD,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,EACrB,oBAAoB,EAAE,MAAM,GAC3B,MAAM,CAER;AAED,wBAAgB,eAAe,CAC7B,qBAAqB,EAAE,MAAM,GAC5B,kBAAkB,CAEpB;AAED,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,aAAa,EACnE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,EAC5D,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC7B,OAAO,GAAE;IACP,sCAAsC,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvD,QAmBP;AAED,wBAAgB,yCAAyC,CACvD,qBAAqB,EAAE,MAAM,GAC5B,WAAW,CAAC,MAAM,CAAC,CAKrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CSSPseudoStylesManager.d.ts","sourceRoot":"","sources":["../../../../../src/css/native/managers/CSSPseudoStylesManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,iBAAiB,CAAC;AAEzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EAExB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAU1D,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,uBAAuB;IAC5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,OAAO,CAAC,0BAA0B,CAAuC;IACzE,OAAO,CAAC,wBAAwB,CAAwC;IACxE,OAAO,CAAC,YAAY,CAAS;gBAG3B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,kBAAkB;IAOlC,MAAM,CACJ,sBAAsB,EAAE,sBAAsB,GAAG,IAAI,EACrD,oBAAoB,EAAE,uBAAuB,GAAG,IAAI,GACnD,IAAI;IAkEP,cAAc,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"CSSPseudoStylesManager.d.ts","sourceRoot":"","sources":["../../../../../src/css/native/managers/CSSPseudoStylesManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,iBAAiB,CAAC;AAEzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EAExB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAU1D,MAAM,CAAC,OAAO,OAAO,sBAAuB,YAAW,uBAAuB;IAC5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;IAElD,OAAO,CAAC,0BAA0B,CAAuC;IACzE,OAAO,CAAC,wBAAwB,CAAwC;IACxE,OAAO,CAAC,YAAY,CAAS;gBAG3B,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,kBAAkB;IAOlC,MAAM,CACJ,sBAAsB,EAAE,sBAAsB,GAAG,IAAI,EACrD,oBAAoB,EAAE,uBAAuB,GAAG,IAAI,GACnD,IAAI;IAkEP,cAAc,IAAI,IAAI;IAQtB,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,qBAAqB;CAiC9B"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { CSSAnimationKeyframes } from '../types';
|
|
2
|
-
export declare function processKeyframeDefinitions<TStyle extends object>(definitions: CSSAnimationKeyframes<TStyle>,
|
|
2
|
+
export declare function processKeyframeDefinitions<TStyle extends object>(definitions: CSSAnimationKeyframes<TStyle>, svgElementTag?: string): string;
|
|
3
3
|
//# sourceMappingURL=animationParser.d.ts.map
|
|
@@ -2,10 +2,10 @@ import type { ReanimatedHTMLElement } from '../../../ReanimatedModule/js-reanima
|
|
|
2
2
|
import type { ExistingCSSAnimationProperties, ICSSAnimationsManager } from '../../types';
|
|
3
3
|
export default class CSSAnimationsManager implements ICSSAnimationsManager {
|
|
4
4
|
private readonly element;
|
|
5
|
-
private readonly
|
|
5
|
+
private readonly svgElementTag;
|
|
6
6
|
private attachedAnimations;
|
|
7
7
|
private unmountCleanupCalled;
|
|
8
|
-
constructor(element: ReanimatedHTMLElement,
|
|
8
|
+
constructor(element: ReanimatedHTMLElement, svgElementTag?: string);
|
|
9
9
|
update(animationProperties: ExistingCSSAnimationProperties | null): void;
|
|
10
10
|
unmountCleanup(): void;
|
|
11
11
|
private detach;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CSSManager.d.ts","sourceRoot":"","sources":["../../../../../src/css/web/managers/CSSManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuB;IACzD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA4B;gBAEvD,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,SAAK;
|
|
1
|
+
{"version":3,"file":"CSSManager.d.ts","sourceRoot":"","sources":["../../../../../src/css/web/managers/CSSManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8CAA8C,CAAC;AAE7E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,WAAW;IACpD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuB;IACzD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwB;IAC3D,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA4B;gBAEvD,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,SAAK;IAczD,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAa7B,cAAc,IAAI,IAAI;CAKvB"}
|
|
@@ -2,10 +2,10 @@ import type { ReanimatedHTMLElement } from '../../../ReanimatedModule/js-reanima
|
|
|
2
2
|
import type { PseudoStylesBySelector } from '../../utils';
|
|
3
3
|
export default class CSSPseudoSelectorsManager {
|
|
4
4
|
private readonly element;
|
|
5
|
-
private readonly
|
|
5
|
+
private readonly svgElementTag;
|
|
6
6
|
private viewId;
|
|
7
7
|
private prevPseudoStylesBySelector;
|
|
8
|
-
constructor(element: ReanimatedHTMLElement,
|
|
8
|
+
constructor(element: ReanimatedHTMLElement, svgElementTag?: string);
|
|
9
9
|
update(pseudoStylesBySelector: PseudoStylesBySelector | null): void;
|
|
10
10
|
unmountCleanup(): void;
|
|
11
11
|
private ensureViewId;
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* version used to build the native part of the library in runtime. Remember to
|
|
4
4
|
* keep this in sync with the version declared in `package.json`
|
|
5
5
|
*/
|
|
6
|
-
export declare const jsVersion = "4.5.
|
|
6
|
+
export declare const jsVersion = "4.5.1";
|
|
7
7
|
//# sourceMappingURL=jsVersion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueSetter.d.ts","sourceRoot":"","sources":["../../src/valueSetter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,OAAO,EAAE,MAAM,eAAe,CAAC;AAE9D,wBAAgB,WAAW,CAAC,KAAK,EAC/B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,KAAK,EAAE,KAAK,EACZ,WAAW,UAAQ,GAClB,IAAI,
|
|
1
|
+
{"version":3,"file":"valueSetter.d.ts","sourceRoot":"","sources":["../../src/valueSetter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,OAAO,EAAE,MAAM,eAAe,CAAC;AAE9D,wBAAgB,WAAW,CAAC,KAAK,EAC/B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,KAAK,EAAE,KAAK,EACZ,WAAW,UAAQ,GAClB,IAAI,CAsEN"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-reanimated",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.1",
|
|
4
4
|
"description": "More powerful alternative to Animated library for React Native.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"react-native": "0.86.0",
|
|
137
137
|
"react-native-svg": "15.15.4",
|
|
138
138
|
"react-native-web": "0.21.1",
|
|
139
|
-
"react-native-worklets": "0.10.
|
|
139
|
+
"react-native-worklets": "0.10.1",
|
|
140
140
|
"react-test-renderer": "19.2.3",
|
|
141
141
|
"typescript": "5.9.3"
|
|
142
142
|
},
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
import type { UnknownRecord } from '../types';
|
|
3
|
+
import { STYLE_PROPERTIES_CONFIG } from './config';
|
|
3
4
|
import {
|
|
4
5
|
createNativePropsBuilder,
|
|
5
6
|
type NativePropsBuilder,
|
|
@@ -25,6 +26,14 @@ const PATTERN_PROPS_BUILDERS: Array<{
|
|
|
25
26
|
entry: PropsBuilderEntry;
|
|
26
27
|
}> = [];
|
|
27
28
|
|
|
29
|
+
const SUPPORTED_BUILDER_PROPS = new Set<string>(
|
|
30
|
+
Object.keys(STYLE_PROPERTIES_CONFIG)
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
export function isSupportedStyleProp(prop: string): boolean {
|
|
34
|
+
return SUPPORTED_BUILDER_PROPS.has(prop);
|
|
35
|
+
}
|
|
36
|
+
|
|
28
37
|
function findEntry(compoundComponentName: string): PropsBuilderEntry | null {
|
|
29
38
|
const [reactViewName] = compoundComponentName.split('$');
|
|
30
39
|
|
|
@@ -69,6 +78,10 @@ export function registerComponentPropsBuilder<P extends UnknownRecord>(
|
|
|
69
78
|
separatelyInterpolatedNestedProperties?: readonly string[];
|
|
70
79
|
} = {}
|
|
71
80
|
) {
|
|
81
|
+
for (const prop in config) {
|
|
82
|
+
SUPPORTED_BUILDER_PROPS.add(prop);
|
|
83
|
+
}
|
|
84
|
+
|
|
72
85
|
const entry: PropsBuilderEntry = {
|
|
73
86
|
builder: createNativePropsBuilder(config),
|
|
74
87
|
separatelyInterpolatedNestedProperties: options
|
|
@@ -110,6 +110,8 @@ export default class CSSPseudoStylesManager implements ICSSPseudoStylesManager {
|
|
|
110
110
|
if (this.isRegistered) {
|
|
111
111
|
this.detach();
|
|
112
112
|
}
|
|
113
|
+
this.prevPseudoStylesBySelector = null;
|
|
114
|
+
this.prevTransitionProperties = null;
|
|
113
115
|
}
|
|
114
116
|
|
|
115
117
|
private detach() {
|
package/src/css/svg/init.web.ts
CHANGED
|
@@ -9,27 +9,27 @@ import {
|
|
|
9
9
|
SVG_RECT_WEB_PROPERTIES_CONFIG,
|
|
10
10
|
} from './web';
|
|
11
11
|
|
|
12
|
-
//
|
|
12
|
+
// SVG tags with no CSS-animatable geometry on web: any geometry they expose is
|
|
13
13
|
// an SVG attribute, not a CSS property. They fall back to the shared common config.
|
|
14
|
-
const
|
|
15
|
-
'
|
|
16
|
-
'
|
|
17
|
-
'
|
|
18
|
-
'
|
|
19
|
-
'
|
|
20
|
-
'
|
|
21
|
-
'
|
|
22
|
-
'
|
|
14
|
+
const COMMON_ONLY_TAGS = [
|
|
15
|
+
'g',
|
|
16
|
+
'line',
|
|
17
|
+
'pattern',
|
|
18
|
+
'polygon',
|
|
19
|
+
'polyline',
|
|
20
|
+
'text',
|
|
21
|
+
'linearGradient',
|
|
22
|
+
'radialGradient',
|
|
23
23
|
] as const;
|
|
24
24
|
|
|
25
25
|
export function initSvgCssSupport() {
|
|
26
|
-
registerWebSvgPropsBuilder('
|
|
27
|
-
registerWebSvgPropsBuilder('
|
|
28
|
-
registerWebSvgPropsBuilder('
|
|
29
|
-
registerWebSvgPropsBuilder('
|
|
30
|
-
registerWebSvgPropsBuilder('
|
|
26
|
+
registerWebSvgPropsBuilder('circle', SVG_CIRCLE_WEB_PROPERTIES_CONFIG);
|
|
27
|
+
registerWebSvgPropsBuilder('ellipse', SVG_ELLIPSE_WEB_PROPERTIES_CONFIG);
|
|
28
|
+
registerWebSvgPropsBuilder('image', SVG_IMAGE_WEB_PROPERTIES_CONFIG);
|
|
29
|
+
registerWebSvgPropsBuilder('path', SVG_PATH_WEB_PROPERTIES_CONFIG);
|
|
30
|
+
registerWebSvgPropsBuilder('rect', SVG_RECT_WEB_PROPERTIES_CONFIG);
|
|
31
31
|
|
|
32
|
-
for (const
|
|
33
|
-
registerWebSvgPropsBuilder(
|
|
32
|
+
for (const tag of COMMON_ONLY_TAGS) {
|
|
33
|
+
registerWebSvgPropsBuilder(tag, SVG_COMMON_WEB_PROPERTIES_CONFIG);
|
|
34
34
|
}
|
|
35
35
|
}
|
package/src/css/utils/props.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
import type { UnknownRecord } from '../../common';
|
|
3
|
-
import { isEmptyObject, logger } from '../../common';
|
|
3
|
+
import { isEmptyObject, isSupportedStyleProp, logger } from '../../common';
|
|
4
4
|
import { isSharedValue } from '../../isSharedValue';
|
|
5
5
|
import type {
|
|
6
6
|
CSSAnimationProperties,
|
|
@@ -84,7 +84,7 @@ export function filterCSSAndStyleProperties<S extends object>(
|
|
|
84
84
|
branch.selectorStyle[prop] = selectorValue;
|
|
85
85
|
branch.defaultStyle[prop] = defaultValue;
|
|
86
86
|
}
|
|
87
|
-
} else if (isEmptyObject(value)) {
|
|
87
|
+
} else if (isEmptyObject(value) && isSupportedStyleProp(prop)) {
|
|
88
88
|
throw new Error(
|
|
89
89
|
`[Reanimated] Invalid value for "${prop}": an empty object is not a valid style value.`
|
|
90
90
|
);
|
|
@@ -11,9 +11,9 @@ import { parseTimingFunction } from './utils';
|
|
|
11
11
|
|
|
12
12
|
export function processKeyframeDefinitions<TStyle extends object>(
|
|
13
13
|
definitions: CSSAnimationKeyframes<TStyle>,
|
|
14
|
-
|
|
14
|
+
svgElementTag = ''
|
|
15
15
|
) {
|
|
16
|
-
const propsBuilder = getWebSvgPropsBuilder(
|
|
16
|
+
const propsBuilder = getWebSvgPropsBuilder(svgElementTag) ?? webPropsBuilder;
|
|
17
17
|
|
|
18
18
|
// Whole-set fixups (strokeDasharray endpoints, open/closed path Z-padding)
|
|
19
19
|
// before serializing each block.
|
|
@@ -36,15 +36,15 @@ type ProcessedSettings = ConvertValuesToArrays<CSSAnimationSettings>;
|
|
|
36
36
|
|
|
37
37
|
export default class CSSAnimationsManager implements ICSSAnimationsManager {
|
|
38
38
|
private readonly element: ReanimatedHTMLElement;
|
|
39
|
-
private readonly
|
|
39
|
+
private readonly svgElementTag: string;
|
|
40
40
|
|
|
41
41
|
// Keys are processed keyframes
|
|
42
42
|
private attachedAnimations: Record<string, ProcessedAnimation> = {};
|
|
43
43
|
private unmountCleanupCalled = false;
|
|
44
44
|
|
|
45
|
-
constructor(element: ReanimatedHTMLElement,
|
|
45
|
+
constructor(element: ReanimatedHTMLElement, svgElementTag = '') {
|
|
46
46
|
this.element = element;
|
|
47
|
-
this.
|
|
47
|
+
this.svgElementTag = svgElementTag;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
update(animationProperties: ExistingCSSAnimationProperties | null) {
|
|
@@ -79,7 +79,7 @@ export default class CSSAnimationsManager implements ICSSAnimationsManager {
|
|
|
79
79
|
const keyframes = definition as CSSAnimationKeyframes;
|
|
80
80
|
const processedKeyframes = processKeyframeDefinitions(
|
|
81
81
|
keyframes,
|
|
82
|
-
this.
|
|
82
|
+
this.svgElementTag
|
|
83
83
|
);
|
|
84
84
|
|
|
85
85
|
// If the animation with the same keyframes was already attached, we can reuse it
|
|
@@ -18,15 +18,13 @@ export default class CSSManager implements ICSSManager {
|
|
|
18
18
|
configureWebCSS();
|
|
19
19
|
|
|
20
20
|
const element = viewInfo.DOMElement as ReanimatedHTMLElement;
|
|
21
|
+
const svgElementTag = element?.tagName ?? componentDisplayName;
|
|
21
22
|
|
|
22
|
-
this.animationsManager = new CSSAnimationsManager(
|
|
23
|
-
element,
|
|
24
|
-
componentDisplayName
|
|
25
|
-
);
|
|
23
|
+
this.animationsManager = new CSSAnimationsManager(element, svgElementTag);
|
|
26
24
|
this.transitionsManager = new CSSTransitionsManager(element);
|
|
27
25
|
this.pseudoSelectorsManager = new CSSPseudoSelectorsManager(
|
|
28
26
|
element,
|
|
29
|
-
|
|
27
|
+
svgElementTag
|
|
30
28
|
);
|
|
31
29
|
}
|
|
32
30
|
|
|
@@ -78,13 +78,13 @@ function buildRules(
|
|
|
78
78
|
|
|
79
79
|
export default class CSSPseudoSelectorsManager {
|
|
80
80
|
private readonly element: ReanimatedHTMLElement;
|
|
81
|
-
private readonly
|
|
81
|
+
private readonly svgElementTag: string;
|
|
82
82
|
private viewId: string | null = null;
|
|
83
83
|
private prevPseudoStylesBySelector: PseudoStylesBySelector | null = null;
|
|
84
84
|
|
|
85
|
-
constructor(element: ReanimatedHTMLElement,
|
|
85
|
+
constructor(element: ReanimatedHTMLElement, svgElementTag = '') {
|
|
86
86
|
this.element = element;
|
|
87
|
-
this.
|
|
87
|
+
this.svgElementTag = svgElementTag;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
update(pseudoStylesBySelector: PseudoStylesBySelector | null): void {
|
|
@@ -99,7 +99,7 @@ export default class CSSPseudoSelectorsManager {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
const propsBuilder =
|
|
102
|
-
getWebSvgPropsBuilder(this.
|
|
102
|
+
getWebSvgPropsBuilder(this.svgElementTag) ?? webPropsBuilder;
|
|
103
103
|
|
|
104
104
|
const viewId = this.ensureViewId();
|
|
105
105
|
this.syncActiveMarker(pseudoStylesBySelector);
|
package/src/valueSetter.ts
CHANGED
|
@@ -9,9 +9,11 @@ export function valueSetter<Value>(
|
|
|
9
9
|
'worklet';
|
|
10
10
|
const previousAnimation = mutable._animation;
|
|
11
11
|
if (previousAnimation) {
|
|
12
|
-
previousAnimation.cancelled = true;
|
|
13
|
-
previousAnimation.callback?.(false);
|
|
14
12
|
mutable._animation = null;
|
|
13
|
+
if (!previousAnimation.finished) {
|
|
14
|
+
previousAnimation.cancelled = true;
|
|
15
|
+
previousAnimation.callback?.(false);
|
|
16
|
+
}
|
|
15
17
|
}
|
|
16
18
|
if (
|
|
17
19
|
typeof value === 'function' ||
|
|
@@ -52,10 +54,10 @@ export function valueSetter<Value>(
|
|
|
52
54
|
return;
|
|
53
55
|
}
|
|
54
56
|
const finished = animation.onFrame(animation, timestamp);
|
|
55
|
-
animation.finished = true;
|
|
56
57
|
animation.timestamp = timestamp;
|
|
57
58
|
mutable._value = animation.current!;
|
|
58
59
|
if (finished) {
|
|
60
|
+
animation.finished = true;
|
|
59
61
|
animation.callback?.(true /* finished */);
|
|
60
62
|
} else {
|
|
61
63
|
requestAnimationFrame(step);
|