react-native-reanimated 3.17.3 → 3.17.5
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/Fabric/ShadowTreeCloner.cpp +37 -17
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/lib/module/Colors.js +14 -9
- package/lib/module/Colors.js.map +1 -1
- package/lib/module/createAnimatedComponent/InlinePropManager.js +1 -1
- package/lib/module/createAnimatedComponent/InlinePropManager.js.map +1 -1
- package/lib/module/createAnimatedComponent/PropsFilter.js +7 -8
- package/lib/module/createAnimatedComponent/PropsFilter.js.map +1 -1
- package/lib/module/hook/useAnimatedStyle.js +2 -2
- package/lib/module/hook/useAnimatedStyle.js.map +1 -1
- package/lib/module/layoutReanimation/defaultAnimations/Pinwheel.js +4 -4
- package/lib/module/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
- package/lib/module/layoutReanimation/defaultAnimations/Zoom.js +2 -2
- package/lib/module/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
- package/lib/module/platform-specific/jsVersion.js +1 -1
- package/lib/module/processBoxShadow.js +57 -44
- package/lib/module/processBoxShadow.js.map +1 -1
- package/lib/module/screenTransition/styleUpdater.js +1 -1
- package/lib/module/screenTransition/styleUpdater.js.map +1 -1
- package/lib/module/updateProps/index.js +5 -0
- package/lib/module/updateProps/index.js.map +1 -0
- package/lib/module/updateProps/processTransformOrigin.js +115 -0
- package/lib/module/updateProps/processTransformOrigin.js.map +1 -0
- package/lib/module/{UpdateProps.js → updateProps/updateProps.js} +10 -11
- package/lib/module/updateProps/updateProps.js.map +1 -0
- package/lib/typescript/Colors.d.ts.map +1 -1
- package/lib/typescript/createAnimatedComponent/PropsFilter.d.ts +1 -1
- package/lib/typescript/createAnimatedComponent/PropsFilter.d.ts.map +1 -1
- package/lib/typescript/platform-specific/jsVersion.d.ts +1 -1
- package/lib/typescript/processBoxShadow.d.ts.map +1 -1
- package/lib/typescript/updateProps/index.d.ts +3 -0
- package/lib/typescript/updateProps/index.d.ts.map +1 -0
- package/lib/typescript/updateProps/processTransformOrigin.d.ts +2 -0
- package/lib/typescript/updateProps/processTransformOrigin.d.ts.map +1 -0
- package/lib/typescript/{UpdateProps.d.ts → updateProps/updateProps.d.ts} +3 -7
- package/lib/typescript/updateProps/updateProps.d.ts.map +1 -0
- package/package.json +7 -7
- package/src/Colors.ts +15 -9
- package/src/createAnimatedComponent/InlinePropManager.ts +1 -1
- package/src/createAnimatedComponent/PropsFilter.tsx +12 -8
- package/src/hook/useAnimatedStyle.ts +2 -2
- package/src/layoutReanimation/defaultAnimations/Pinwheel.ts +4 -4
- package/src/layoutReanimation/defaultAnimations/Zoom.ts +2 -2
- package/src/platform-specific/jsVersion.ts +1 -1
- package/src/processBoxShadow.ts +60 -48
- package/src/screenTransition/styleUpdater.ts +1 -1
- package/src/updateProps/index.ts +4 -0
- package/src/updateProps/processTransformOrigin.ts +145 -0
- package/src/{UpdateProps.ts → updateProps/updateProps.ts} +23 -28
- package/lib/module/UpdateProps.js.map +0 -1
- package/lib/typescript/UpdateProps.d.ts.map +0 -1
|
@@ -4,6 +4,12 @@
|
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
// @ts-ignore BoxShadowValue isn't available in RN 0.75
|
|
7
|
+
import { ReanimatedError } from "./errors.js";
|
|
8
|
+
const isLength = value => {
|
|
9
|
+
'worklet';
|
|
10
|
+
|
|
11
|
+
return value.endsWith('px') || !isNaN(Number(value));
|
|
12
|
+
};
|
|
7
13
|
function parseBoxShadowString(rawBoxShadows) {
|
|
8
14
|
'worklet';
|
|
9
15
|
|
|
@@ -22,51 +28,54 @@ function parseBoxShadowString(rawBoxShadows) {
|
|
|
22
28
|
// split rawBoxShadow string by all whitespaces that are not in parenthesis
|
|
23
29
|
const args = rawBoxShadow.split(/\s+(?![^(]*\))/);
|
|
24
30
|
for (const arg of args) {
|
|
25
|
-
if (arg
|
|
26
|
-
|
|
31
|
+
if (isLength(arg)) {
|
|
32
|
+
switch (lengthCount) {
|
|
33
|
+
case 0:
|
|
34
|
+
offsetX = arg;
|
|
35
|
+
lengthCount++;
|
|
36
|
+
break;
|
|
37
|
+
case 1:
|
|
38
|
+
if (keywordDetectedAfterLength) {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
offsetY = arg;
|
|
42
|
+
lengthCount++;
|
|
43
|
+
break;
|
|
44
|
+
case 2:
|
|
45
|
+
if (keywordDetectedAfterLength) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
boxShadow.blurRadius = arg;
|
|
49
|
+
lengthCount++;
|
|
50
|
+
break;
|
|
51
|
+
case 3:
|
|
52
|
+
if (keywordDetectedAfterLength) {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
boxShadow.spreadDistance = arg;
|
|
56
|
+
lengthCount++;
|
|
57
|
+
break;
|
|
58
|
+
default:
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
} else if (arg === 'inset') {
|
|
62
|
+
if (boxShadow.inset) {
|
|
27
63
|
return [];
|
|
28
64
|
}
|
|
29
|
-
if (offsetX
|
|
65
|
+
if (offsetX !== null) {
|
|
30
66
|
keywordDetectedAfterLength = true;
|
|
31
67
|
}
|
|
32
68
|
boxShadow.inset = true;
|
|
33
69
|
continue;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
case 0:
|
|
37
|
-
offsetX = arg;
|
|
38
|
-
lengthCount++;
|
|
39
|
-
break;
|
|
40
|
-
case 1:
|
|
41
|
-
if (keywordDetectedAfterLength) {
|
|
42
|
-
return [];
|
|
43
|
-
}
|
|
44
|
-
offsetY = arg;
|
|
45
|
-
lengthCount++;
|
|
46
|
-
break;
|
|
47
|
-
case 2:
|
|
48
|
-
if (keywordDetectedAfterLength) {
|
|
49
|
-
return [];
|
|
50
|
-
}
|
|
51
|
-
boxShadow.blurRadius = arg;
|
|
52
|
-
lengthCount++;
|
|
53
|
-
break;
|
|
54
|
-
case 3:
|
|
55
|
-
if (keywordDetectedAfterLength) {
|
|
56
|
-
return [];
|
|
57
|
-
}
|
|
58
|
-
boxShadow.spreadDistance = arg;
|
|
59
|
-
lengthCount++;
|
|
60
|
-
break;
|
|
61
|
-
case 4:
|
|
62
|
-
if (keywordDetectedAfterLength) {
|
|
63
|
-
return [];
|
|
64
|
-
}
|
|
65
|
-
boxShadow.color = arg;
|
|
66
|
-
lengthCount++;
|
|
67
|
-
break;
|
|
68
|
-
default:
|
|
70
|
+
} else {
|
|
71
|
+
if (boxShadow.color) {
|
|
69
72
|
return [];
|
|
73
|
+
}
|
|
74
|
+
if (offsetX != null) {
|
|
75
|
+
keywordDetectedAfterLength = true;
|
|
76
|
+
}
|
|
77
|
+
boxShadow.color = arg;
|
|
78
|
+
continue;
|
|
70
79
|
}
|
|
71
80
|
}
|
|
72
81
|
if (offsetX === null || offsetY === null) {
|
|
@@ -84,10 +93,7 @@ function parseLength(length) {
|
|
|
84
93
|
// matches on args with units like "1.5 5% -80deg"
|
|
85
94
|
const argsWithUnitsRegex = /([+-]?\d*(\.\d+)?)([\w\W]+)?/g;
|
|
86
95
|
const match = argsWithUnitsRegex.exec(length);
|
|
87
|
-
if (!match ||
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
if (match[3] != null && match[3] !== 'px') {
|
|
96
|
+
if (!match || !isLength(length)) {
|
|
91
97
|
return null;
|
|
92
98
|
}
|
|
93
99
|
return Number(match[1]);
|
|
@@ -97,10 +103,17 @@ export function processBoxShadow(props) {
|
|
|
97
103
|
|
|
98
104
|
const result = [];
|
|
99
105
|
const rawBoxShadows = props.boxShadow;
|
|
100
|
-
if (rawBoxShadows ===
|
|
106
|
+
if (rawBoxShadows === null) {
|
|
101
107
|
return result;
|
|
102
108
|
}
|
|
103
|
-
|
|
109
|
+
let boxShadowList;
|
|
110
|
+
if (typeof rawBoxShadows === 'string') {
|
|
111
|
+
boxShadowList = parseBoxShadowString(rawBoxShadows.replace(/\n/g, ' '));
|
|
112
|
+
} else if (Array.isArray(rawBoxShadows)) {
|
|
113
|
+
boxShadowList = rawBoxShadows;
|
|
114
|
+
} else {
|
|
115
|
+
throw new ReanimatedError(`Box shadow value must be an array of shadow objects or a string. Received: ${JSON.stringify(rawBoxShadows)}`);
|
|
116
|
+
}
|
|
104
117
|
for (const rawBoxShadow of boxShadowList) {
|
|
105
118
|
const parsedBoxShadow = {
|
|
106
119
|
offsetX: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["parseBoxShadowString","rawBoxShadows","result","rawBoxShadow","split","map","bS","trim","filter","boxShadow","offsetX","offsetY","keywordDetectedAfterLength","lengthCount","args","arg","
|
|
1
|
+
{"version":3,"names":["ReanimatedError","isLength","value","endsWith","isNaN","Number","parseBoxShadowString","rawBoxShadows","result","rawBoxShadow","split","map","bS","trim","filter","boxShadow","offsetX","offsetY","keywordDetectedAfterLength","lengthCount","args","arg","blurRadius","spreadDistance","inset","color","push","parseLength","length","argsWithUnitsRegex","match","exec","processBoxShadow","props","boxShadowList","replace","Array","isArray","JSON","stringify","parsedBoxShadow"],"sourceRoot":"../../src","sources":["processBoxShadow.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isFabric","updateProps","IS_FABRIC","createViewDescriptorPaper","screenId","tag","name","createViewDescriptorFabric","shadowNodeWrapper","createViewDescriptor","applyStyleForTopScreen","screenTransitionConfig","event","screenDimensions","topScreenId","screenTransition","topScreenStyle","computeTopScreenStyle","topScreenDescriptor","value","undefined","applyStyleForBelowTopScreen","belowTopScreenId","belowTopScreenStyle","computeBelowTopScreenStyle","belowTopScreenDescriptor","applyStyle"],"sourceRoot":"../../../src","sources":["screenTransition/styleUpdater.ts"],"mappings":"AAAA,YAAY;;AAGZ,SAASA,QAAQ,QAAQ,uBAAoB;AAC7C,
|
|
1
|
+
{"version":3,"names":["isFabric","updateProps","IS_FABRIC","createViewDescriptorPaper","screenId","tag","name","createViewDescriptorFabric","shadowNodeWrapper","createViewDescriptor","applyStyleForTopScreen","screenTransitionConfig","event","screenDimensions","topScreenId","screenTransition","topScreenStyle","computeTopScreenStyle","topScreenDescriptor","value","undefined","applyStyleForBelowTopScreen","belowTopScreenId","belowTopScreenStyle","computeBelowTopScreenStyle","belowTopScreenDescriptor","applyStyle"],"sourceRoot":"../../../src","sources":["screenTransition/styleUpdater.ts"],"mappings":"AAAA,YAAY;;AAGZ,SAASA,QAAQ,QAAQ,uBAAoB;AAC7C,SAASC,WAAW,QAAQ,yBAAgB;AAM5C,MAAMC,SAAS,GAAGF,QAAQ,CAAC,CAAC;AAE5B,SAASG,yBAAyBA,CAACC,QAAoC,EAAE;EACvE,SAAS;;EACT,OAAO;IAAEC,GAAG,EAAED,QAAQ;IAAEE,IAAI,EAAE;EAAU,CAAC;AAC3C;AACA,SAASC,0BAA0BA,CAACH,QAAoC,EAAE;EACxE,SAAS;;EACT,OAAO;IAAEI,iBAAiB,EAAEJ;EAAS,CAAC;AACxC;AACA,MAAMK,oBAAoB,GAAGP,SAAS,GAClCK,0BAA0B,GAC1BJ,yBAAyB;AAE7B,SAASO,sBAAsBA,CAC7BC,sBAA8C,EAC9CC,KAAoC,EACpC;EACA,SAAS;;EACT,MAAM;IAAEC,gBAAgB;IAAEC,WAAW;IAAEC;EAAiB,CAAC,GACvDJ,sBAAsB;EACxB,MAAM;IAAEK,cAAc,EAAEC;EAAsB,CAAC,GAAGF,gBAAgB;EAClE,MAAMC,cAAc,GAAGC,qBAAqB,CAACL,KAAK,EAAEC,gBAAgB,CAAC;EACrE,MAAMK,mBAAmB,GAAG;IAC1BC,KAAK,EAAE,CAACV,oBAAoB,CAACK,WAAW,CAAC;EAC3C,CAAC;EACDb,WAAW,CAACiB,mBAAmB,EAAEF,cAAc,EAAEI,SAAS,CAAC;AAC7D;AAEA,OAAO,SAASC,2BAA2BA,CACzCV,sBAA8C,EAC9CC,KAAoC,EACpC;EACA,SAAS;;EACT,MAAM;IAAEC,gBAAgB;IAAES,gBAAgB;IAAEP;EAAiB,CAAC,GAC5DJ,sBAAsB;EACxB,MAAM;IAAEY,mBAAmB,EAAEC;EAA2B,CAAC,GAAGT,gBAAgB;EAC5E,MAAMQ,mBAAmB,GAAGC,0BAA0B,CACpDZ,KAAK,EACLC,gBACF,CAAC;EACD,MAAMY,wBAAwB,GAAG;IAC/BN,KAAK,EAAE,CAACV,oBAAoB,CAACa,gBAAgB,CAAC;EAChD,CAAC;EACDrB,WAAW,CAACwB,wBAAwB,EAAEF,mBAAmB,EAAEH,SAAS,CAAC;AACvE;AAEA,OAAO,SAASM,UAAUA,CACxBf,sBAA8C,EAC9CC,KAAoC,EACpC;EACA,SAAS;;EACTF,sBAAsB,CAACC,sBAAsB,EAAEC,KAAK,CAAC;EACrDS,2BAA2B,CAACV,sBAAsB,EAAEC,KAAK,CAAC;AAC5D","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","updateProps","updatePropsJestWrapper"],"sourceRoot":"../../../src","sources":["updateProps/index.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,OAAO,IAAIC,WAAW,QAAQ,kBAAe;AACtD,SAASC,sBAAsB,QAAQ,kBAAe","ignoreList":[]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { ReanimatedError } from "../errors.js";
|
|
4
|
+
const INDEX_X = 0;
|
|
5
|
+
const INDEX_Y = 1;
|
|
6
|
+
const INDEX_Z = 2;
|
|
7
|
+
|
|
8
|
+
// Implementation based on https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/StyleSheet/processTransformOrigin.js
|
|
9
|
+
function validateTransformOrigin(transformOrigin) {
|
|
10
|
+
'worklet';
|
|
11
|
+
|
|
12
|
+
if (transformOrigin.length !== 3) {
|
|
13
|
+
throw new ReanimatedError('Transform origin must have exactly 3 values.');
|
|
14
|
+
}
|
|
15
|
+
const [x, y, z] = transformOrigin;
|
|
16
|
+
if (!(typeof x === 'number' || typeof x === 'string' && x.endsWith('%'))) {
|
|
17
|
+
throw new ReanimatedError(`Transform origin x-position must be a number or a percentage string. Passed value: ${x}.`);
|
|
18
|
+
}
|
|
19
|
+
if (!(typeof y === 'number' || typeof y === 'string' && y.endsWith('%'))) {
|
|
20
|
+
throw new ReanimatedError(`Transform origin y-position must be a number or a percentage string. Passed value: ${y}.`);
|
|
21
|
+
}
|
|
22
|
+
if (typeof z !== 'number') {
|
|
23
|
+
throw new ReanimatedError(`Transform origin z-position must be a number. Passed value: ${z}.`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export function processTransformOrigin(transformOriginIn) {
|
|
27
|
+
'worklet';
|
|
28
|
+
|
|
29
|
+
let transformOrigin = Array.isArray(transformOriginIn) ? transformOriginIn : ['50%', '50%', 0];
|
|
30
|
+
if (typeof transformOriginIn === 'string') {
|
|
31
|
+
const transformOriginString = transformOriginIn;
|
|
32
|
+
const regex = /(top|bottom|left|right|center|\d+(?:%|px)|0)/gi;
|
|
33
|
+
const transformOriginArray = ['50%', '50%', 0];
|
|
34
|
+
let index = INDEX_X;
|
|
35
|
+
let matches;
|
|
36
|
+
while (matches = regex.exec(transformOriginString)) {
|
|
37
|
+
let nextIndex = index + 1;
|
|
38
|
+
const value = matches[0];
|
|
39
|
+
const valueLower = value.toLowerCase();
|
|
40
|
+
switch (valueLower) {
|
|
41
|
+
case 'left':
|
|
42
|
+
case 'right':
|
|
43
|
+
{
|
|
44
|
+
if (index !== INDEX_X) {
|
|
45
|
+
throw new ReanimatedError(`Transform-origin ${value} can only be used for x-position`);
|
|
46
|
+
}
|
|
47
|
+
transformOriginArray[INDEX_X] = valueLower === 'left' ? 0 : '100%';
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
case 'top':
|
|
51
|
+
case 'bottom':
|
|
52
|
+
{
|
|
53
|
+
if (index === INDEX_Z) {
|
|
54
|
+
throw new ReanimatedError(`Transform-origin ${value} can only be used for y-position`);
|
|
55
|
+
}
|
|
56
|
+
transformOriginArray[INDEX_Y] = valueLower === 'top' ? 0 : '100%';
|
|
57
|
+
|
|
58
|
+
// Handle [[ center | left | right ] && [ center | top | bottom ]] <length>?
|
|
59
|
+
if (index === INDEX_X) {
|
|
60
|
+
const horizontal = regex.exec(transformOriginString);
|
|
61
|
+
if (horizontal == null) {
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
switch (horizontal?.[0].toLowerCase()) {
|
|
65
|
+
case 'left':
|
|
66
|
+
transformOriginArray[INDEX_X] = 0;
|
|
67
|
+
break;
|
|
68
|
+
case 'right':
|
|
69
|
+
transformOriginArray[INDEX_X] = '100%';
|
|
70
|
+
break;
|
|
71
|
+
case 'center':
|
|
72
|
+
transformOriginArray[INDEX_X] = '50%';
|
|
73
|
+
break;
|
|
74
|
+
default:
|
|
75
|
+
throw new ReanimatedError(`Could not parse transform-origin: ${transformOriginString}`);
|
|
76
|
+
}
|
|
77
|
+
nextIndex = INDEX_Z;
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
case 'center':
|
|
82
|
+
{
|
|
83
|
+
if (index === INDEX_Z) {
|
|
84
|
+
throw new ReanimatedError(`Transform-origin value ${value} cannot be used for z-position`);
|
|
85
|
+
}
|
|
86
|
+
transformOriginArray[index] = '50%';
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
default:
|
|
90
|
+
{
|
|
91
|
+
if (value.endsWith('%')) {
|
|
92
|
+
transformOriginArray[index] = value;
|
|
93
|
+
} else {
|
|
94
|
+
const numericValue = parseFloat(value);
|
|
95
|
+
if (isNaN(numericValue)) {
|
|
96
|
+
throw new ReanimatedError(`Invalid numeric value in transform-origin: ${value}`);
|
|
97
|
+
}
|
|
98
|
+
transformOriginArray[index] = numericValue;
|
|
99
|
+
}
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
index = nextIndex;
|
|
104
|
+
}
|
|
105
|
+
transformOrigin = transformOriginArray;
|
|
106
|
+
}
|
|
107
|
+
if (typeof transformOriginIn !== 'string' && !Array.isArray(transformOriginIn)) {
|
|
108
|
+
throw new ReanimatedError(`Invalid transformOrigin type: ${typeof transformOriginIn}`);
|
|
109
|
+
}
|
|
110
|
+
if (__DEV__) {
|
|
111
|
+
validateTransformOrigin(transformOrigin);
|
|
112
|
+
}
|
|
113
|
+
return transformOrigin;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=processTransformOrigin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ReanimatedError","INDEX_X","INDEX_Y","INDEX_Z","validateTransformOrigin","transformOrigin","length","x","y","z","endsWith","processTransformOrigin","transformOriginIn","Array","isArray","transformOriginString","regex","transformOriginArray","index","matches","exec","nextIndex","value","valueLower","toLowerCase","horizontal","numericValue","parseFloat","isNaN","__DEV__"],"sourceRoot":"../../../src","sources":["updateProps/processTransformOrigin.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-redundant-type-constituents */
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-redundant-type-constituents, @typescript-eslint/no-explicit-any */
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
import { processColorsInProps } from "
|
|
5
|
-
import { ReanimatedError } from "
|
|
6
|
-
import { isFabric, isJest, shouldBeUseWeb } from "
|
|
7
|
-
import { _updatePropsJS } from "
|
|
8
|
-
import { runOnUIImmediately } from "
|
|
4
|
+
import { processColorsInProps } from "../Colors.js";
|
|
5
|
+
import { ReanimatedError } from "../errors.js";
|
|
6
|
+
import { isFabric, isJest, shouldBeUseWeb } from "../PlatformChecker.js";
|
|
7
|
+
import { _updatePropsJS } from "../ReanimatedModule/js-reanimated/index.js";
|
|
8
|
+
import { runOnUIImmediately } from "../threads.js";
|
|
9
|
+
import { processTransformOrigin } from "./processTransformOrigin.js";
|
|
9
10
|
let updateProps;
|
|
10
11
|
if (shouldBeUseWeb()) {
|
|
11
12
|
updateProps = (viewDescriptors, updates, isAnimatedProps) => {
|
|
@@ -21,10 +22,8 @@ if (shouldBeUseWeb()) {
|
|
|
21
22
|
'worklet';
|
|
22
23
|
|
|
23
24
|
processColorsInProps(updates);
|
|
24
|
-
if (updates
|
|
25
|
-
|
|
26
|
-
throw new ReanimatedError('Please use transformOrigin in array form');
|
|
27
|
-
}
|
|
25
|
+
if ('transformOrigin' in updates) {
|
|
26
|
+
updates.transformOrigin = processTransformOrigin(updates.transformOrigin);
|
|
28
27
|
}
|
|
29
28
|
global.UpdatePropsManager.update(viewDescriptors, updates);
|
|
30
29
|
};
|
|
@@ -113,4 +112,4 @@ if (shouldBeUseWeb()) {
|
|
|
113
112
|
* This used to be `SharedValue<Descriptors[]>` but objects holding just a
|
|
114
113
|
* single `value` prop are fine too.
|
|
115
114
|
*/
|
|
116
|
-
//# sourceMappingURL=
|
|
115
|
+
//# sourceMappingURL=updateProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["processColorsInProps","ReanimatedError","isFabric","isJest","shouldBeUseWeb","_updatePropsJS","runOnUIImmediately","processTransformOrigin","updateProps","viewDescriptors","updates","isAnimatedProps","value","forEach","viewDescriptor","component","tag","transformOrigin","global","UpdatePropsManager","update","updatePropsJestWrapper","animatedValues","adapters","adapter","current","createUpdatePropsManager","operations","push","shadowNodeWrapper","length","queueMicrotask","flush","_updatePropsFabric","name","_updatePropsPaper","maybeThrowError","Proxy","get","set"],"sourceRoot":"../../../src","sources":["updateProps/updateProps.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../src/Colors.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAUhD,UAAU,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAgJD,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAKtD;AAgKD,eAAO,MAAM,eAAe,UAyB1B,CAAC;AAOH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAiJ5D;AAED,eAAO,MAAM,OAAO,MAAO,MAAM,KAAG,MAGnC,CAAC;AAEF,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAG/B,CAAC;AAEF,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAGjC,CAAC;AAEF,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MAGhC,CAAC;AAEF,eAAO,MAAM,SAAS,MACjB,MAAM,KACN,MAAM,KACN,MAAM,qBAER,MAAM,GAAG,MAKX,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CA4B7D;AA4CD,eAAO,MAAM,UAAU,MAClB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACR,MAAM,GAAG,MAIX,CAAC;
|
|
1
|
+
{"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../src/Colors.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAUhD,UAAU,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAgJD,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAKtD;AAgKD,eAAO,MAAM,eAAe,UAyB1B,CAAC;AAOH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAiJ5D;AAED,eAAO,MAAM,OAAO,MAAO,MAAM,KAAG,MAGnC,CAAC;AAEF,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAG/B,CAAC;AAEF,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAGjC,CAAC;AAEF,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MAGhC,CAAC;AAEF,eAAO,MAAM,SAAS,MACjB,MAAM,KACN,MAAM,KACN,MAAM,qBAER,MAAM,GAAG,MAKX,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CA4B7D;AA4CD,eAAO,MAAM,UAAU,MAClB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACR,MAAM,GAAG,MAIX,CAAC;AA4BF,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM/C;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAoBtE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,QAwBrD;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAQ9D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAMnE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,gBAAgB,EACtB,KAAK,SAAM,GACV,gBAAgB,CAQlB;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,gBAAgB,EACtB,KAAK,SAAM,GACV,gBAAgB,CAQlB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { IAnimatedComponentInternal, IPropsFilter } from './commonTypes';
|
|
3
3
|
export declare class PropsFilter implements IPropsFilter {
|
|
4
|
-
private
|
|
4
|
+
private _initialPropsMap;
|
|
5
5
|
filterNonAnimatedProps(component: React.Component<unknown, unknown> & IAnimatedComponentInternal): Record<string, unknown>;
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=PropsFilter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropsFilter.d.ts","sourceRoot":"","sources":["../../../src/createAnimatedComponent/PropsFilter.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"PropsFilter.d.ts","sourceRoot":"","sources":["../../../src/createAnimatedComponent/PropsFilter.tsx"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAGV,0BAA0B,EAE1B,YAAY,EACb,MAAM,eAAe,CAAC;AASvB,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,gBAAgB,CAA8C;IAE/D,sBAAsB,CAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,0BAA0B,GACxE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAmE3B"}
|
|
@@ -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 = "3.17.
|
|
6
|
+
export declare const jsVersion = "3.17.5";
|
|
7
7
|
//# sourceMappingURL=jsVersion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processBoxShadow.d.ts","sourceRoot":"","sources":["../../src/processBoxShadow.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"processBoxShadow.d.ts","sourceRoot":"","sources":["../../src/processBoxShadow.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAyGpC,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,iCAqFjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/updateProps/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processTransformOrigin.d.ts","sourceRoot":"","sources":["../../../src/updateProps/processTransformOrigin.ts"],"names":[],"mappings":"AA+BA,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,GAC7D,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CA+GxB"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import type { MutableRefObject } from 'react';
|
|
2
|
-
import type { AnimatedStyle, StyleProps } from '
|
|
3
|
-
import type { Descriptor } from '
|
|
2
|
+
import type { AnimatedStyle, StyleProps } from '../commonTypes';
|
|
3
|
+
import type { Descriptor } from '../hook/commonTypes';
|
|
4
4
|
declare let updateProps: (viewDescriptors: ViewDescriptorsWrapper, updates: StyleProps | AnimatedStyle<any>, isAnimatedProps?: boolean) => void;
|
|
5
5
|
export declare const updatePropsJestWrapper: (viewDescriptors: ViewDescriptorsWrapper, updates: AnimatedStyle<any>, animatedValues: MutableRefObject<AnimatedStyle<any>>, adapters: ((updates: AnimatedStyle<any>) => void)[]) => void;
|
|
6
6
|
export default updateProps;
|
|
7
|
-
export interface UpdatePropsManager {
|
|
8
|
-
update(viewDescriptors: ViewDescriptorsWrapper, updates: StyleProps | AnimatedStyle<any>): void;
|
|
9
|
-
flush(): void;
|
|
10
|
-
}
|
|
11
7
|
/**
|
|
12
8
|
* This used to be `SharedValue<Descriptors[]>` but objects holding just a
|
|
13
9
|
* single `value` prop are fine too.
|
|
@@ -15,4 +11,4 @@ export interface UpdatePropsManager {
|
|
|
15
11
|
interface ViewDescriptorsWrapper {
|
|
16
12
|
value: Readonly<Descriptor[]>;
|
|
17
13
|
}
|
|
18
|
-
//# sourceMappingURL=
|
|
14
|
+
//# sourceMappingURL=updateProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateProps.d.ts","sourceRoot":"","sources":["../../../src/updateProps/updateProps.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,KAAK,EACV,aAAa,EAEb,UAAU,EACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOtD,QAAA,IAAI,WAAW,EAAE,CACf,eAAe,EAAE,sBAAsB,EACvC,OAAO,EAAE,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,EACxC,eAAe,CAAC,EAAE,OAAO,KACtB,IAAI,CAAC;AAqBV,eAAO,MAAM,sBAAsB,oBAChB,sBAAsB,WAC9B,cAAc,GAAG,CAAC,kBACX,iBAAiB,cAAc,GAAG,CAAC,CAAC,uBAC/B,cAAc,GAAG,CAAC,KAAK,IAAI,QAC/C,IAUF,CAAC;AAEF,eAAe,WAAW,CAAC;AAyF3B;;;GAGG;AACH,UAAU,sBAAsB;IAC9B,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;CAC/B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-reanimated",
|
|
3
|
-
"version": "3.17.
|
|
3
|
+
"version": "3.17.5",
|
|
4
4
|
"description": "More powerful alternative to Animated library for React Native.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -102,10 +102,10 @@
|
|
|
102
102
|
"@babel/core": "^7.25.2",
|
|
103
103
|
"@babel/preset-env": "^7.25.3",
|
|
104
104
|
"@babel/types": "^7.20.0",
|
|
105
|
-
"@react-native/babel-preset": "0.
|
|
106
|
-
"@react-native/eslint-config": "0.
|
|
107
|
-
"@react-native/metro-config": "0.
|
|
108
|
-
"@react-native/typescript-config": "0.
|
|
105
|
+
"@react-native/babel-preset": "0.79.0-rc.4",
|
|
106
|
+
"@react-native/eslint-config": "0.79.0-rc.4",
|
|
107
|
+
"@react-native/metro-config": "0.79.0-rc.4",
|
|
108
|
+
"@react-native/typescript-config": "0.79.0-rc.4",
|
|
109
109
|
"@testing-library/jest-native": "^4.0.4",
|
|
110
110
|
"@testing-library/react-hooks": "^8.0.0",
|
|
111
111
|
"@testing-library/react-native": "^13.0.1",
|
|
@@ -144,9 +144,9 @@
|
|
|
144
144
|
"madge": "^5.0.1",
|
|
145
145
|
"prettier": "^3.3.3",
|
|
146
146
|
"react": "19.0.0",
|
|
147
|
-
"react-native": "0.
|
|
147
|
+
"react-native": "0.79.0-rc.4",
|
|
148
148
|
"react-native-builder-bob": "patch:react-native-builder-bob@npm%3A0.33.1#~/.yarn/patches/react-native-builder-bob-npm-0.33.1-383d9e23a5.patch",
|
|
149
|
-
"react-native-gesture-handler": "2.
|
|
149
|
+
"react-native-gesture-handler": "2.25.0",
|
|
150
150
|
"react-native-web": "0.19.13",
|
|
151
151
|
"react-test-renderer": "19.0.0",
|
|
152
152
|
"shelljs": "^0.8.5",
|
package/src/Colors.ts
CHANGED
|
@@ -631,22 +631,28 @@ export const hsvToColor = (
|
|
|
631
631
|
|
|
632
632
|
function processColorInitially(color: unknown): number | null | undefined {
|
|
633
633
|
'worklet';
|
|
634
|
-
if (color === null || color === undefined
|
|
634
|
+
if (color === null || color === undefined) {
|
|
635
635
|
return color;
|
|
636
636
|
}
|
|
637
637
|
|
|
638
|
-
let
|
|
638
|
+
let colorNumber: number;
|
|
639
639
|
|
|
640
|
-
if (
|
|
641
|
-
|
|
642
|
-
}
|
|
640
|
+
if (typeof color === 'number') {
|
|
641
|
+
colorNumber = color;
|
|
642
|
+
} else {
|
|
643
|
+
const normalizedColor = normalizeColor(color);
|
|
644
|
+
if (normalizedColor === null || normalizedColor === undefined) {
|
|
645
|
+
return undefined;
|
|
646
|
+
}
|
|
643
647
|
|
|
644
|
-
|
|
645
|
-
|
|
648
|
+
if (typeof normalizedColor !== 'number') {
|
|
649
|
+
return null;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
colorNumber = normalizedColor;
|
|
646
653
|
}
|
|
647
654
|
|
|
648
|
-
|
|
649
|
-
return normalizedColor;
|
|
655
|
+
return ((colorNumber << 24) | (colorNumber >>> 8)) >>> 0; // alpha rgb
|
|
650
656
|
}
|
|
651
657
|
|
|
652
658
|
export function isColor(value: unknown): boolean {
|
|
@@ -3,7 +3,7 @@ import type { StyleProps } from '../commonTypes';
|
|
|
3
3
|
import { adaptViewConfig } from '../ConfigHelper';
|
|
4
4
|
import { isSharedValue } from '../isSharedValue';
|
|
5
5
|
import { startMapper, stopMapper } from '../mappers';
|
|
6
|
-
import updateProps from '../
|
|
6
|
+
import { updateProps } from '../updateProps';
|
|
7
7
|
import type { ViewDescriptorsSet } from '../ViewDescriptorsSet';
|
|
8
8
|
import { makeViewDescriptorsSet } from '../ViewDescriptorsSet';
|
|
9
9
|
import type {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { initialUpdaterRun } from '../animation';
|
|
4
4
|
import type { StyleProps } from '../commonTypes';
|
|
5
|
+
import type { AnimatedStyleHandle } from '../hook/commonTypes';
|
|
5
6
|
import { isSharedValue } from '../isSharedValue';
|
|
6
7
|
import { isChromeDebugger } from '../PlatformChecker';
|
|
7
8
|
import { WorkletEventHandler } from '../WorkletEventHandler';
|
|
@@ -21,7 +22,7 @@ function dummyListener() {
|
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
export class PropsFilter implements IPropsFilter {
|
|
24
|
-
private
|
|
25
|
+
private _initialPropsMap = new Map<AnimatedStyleHandle, StyleProps>();
|
|
25
26
|
|
|
26
27
|
public filterNonAnimatedProps(
|
|
27
28
|
component: React.Component<unknown, unknown> & IAnimatedComponentInternal
|
|
@@ -29,22 +30,25 @@ export class PropsFilter implements IPropsFilter {
|
|
|
29
30
|
const inputProps =
|
|
30
31
|
component.props as AnimatedComponentProps<InitialComponentProps>;
|
|
31
32
|
const props: Record<string, unknown> = {};
|
|
33
|
+
|
|
32
34
|
for (const key in inputProps) {
|
|
33
35
|
const value = inputProps[key];
|
|
34
36
|
if (key === 'style') {
|
|
35
37
|
const styleProp = inputProps.style;
|
|
36
38
|
const styles = flattenArray<StyleProps>(styleProp ?? []);
|
|
39
|
+
|
|
37
40
|
const processedStyle: StyleProps[] = styles.map((style) => {
|
|
38
41
|
if (style && style.viewDescriptors) {
|
|
39
|
-
|
|
42
|
+
const handle = style as AnimatedStyleHandle;
|
|
43
|
+
|
|
40
44
|
if (component._isFirstRender) {
|
|
41
|
-
this.
|
|
42
|
-
...
|
|
43
|
-
...
|
|
44
|
-
|
|
45
|
-
};
|
|
45
|
+
this._initialPropsMap.set(handle, {
|
|
46
|
+
...handle.initial.value,
|
|
47
|
+
...initialUpdaterRun(handle.initial.updater),
|
|
48
|
+
} as StyleProps);
|
|
46
49
|
}
|
|
47
|
-
|
|
50
|
+
|
|
51
|
+
return this._initialPropsMap.get(handle) ?? {};
|
|
48
52
|
} else if (hasInlineStyles(style)) {
|
|
49
53
|
return getInlineStyle(style, component._isFirstRender);
|
|
50
54
|
} else {
|
|
@@ -20,7 +20,7 @@ import type { AnimatedProps } from '../createAnimatedComponent/commonTypes';
|
|
|
20
20
|
import { ReanimatedError } from '../errors';
|
|
21
21
|
import { isJest, shouldBeUseWeb } from '../PlatformChecker';
|
|
22
22
|
import { processBoxShadow } from '../processBoxShadow';
|
|
23
|
-
import updateProps,
|
|
23
|
+
import { updateProps, updatePropsJestWrapper } from '../updateProps';
|
|
24
24
|
import type { ViewDescriptorsSet } from '../ViewDescriptorsSet';
|
|
25
25
|
import { makeViewDescriptorsSet } from '../ViewDescriptorsSet';
|
|
26
26
|
import type {
|
|
@@ -212,7 +212,7 @@ function styleUpdater(
|
|
|
212
212
|
let hasAnimations = false;
|
|
213
213
|
let frameTimestamp: number | undefined;
|
|
214
214
|
let hasNonAnimatedValues = false;
|
|
215
|
-
if (!SHOULD_BE_USE_WEB &&
|
|
215
|
+
if (!SHOULD_BE_USE_WEB && newValues.boxShadow) {
|
|
216
216
|
processBoxShadow(newValues);
|
|
217
217
|
}
|
|
218
218
|
for (const key in newValues) {
|