@remotion/web-renderer 4.0.377 → 4.0.379
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/dist/calculate-transforms.js +24 -11
- package/dist/compose-canvas.js +1 -7
- package/dist/esm/index.mjs +22 -12
- package/package.json +5 -5
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import { parseTransformOrigin } from './parse-transform-origin';
|
|
2
|
+
const getInternalTransformOrigin = (transform) => {
|
|
3
|
+
var _a;
|
|
4
|
+
const centerX = transform.boundingClientRect.width / 2;
|
|
5
|
+
const centerY = transform.boundingClientRect.height / 2;
|
|
6
|
+
const origin = (_a = parseTransformOrigin(transform.transformOrigin)) !== null && _a !== void 0 ? _a : {
|
|
7
|
+
x: centerX,
|
|
8
|
+
y: centerY,
|
|
9
|
+
};
|
|
10
|
+
return origin;
|
|
11
|
+
};
|
|
12
|
+
const getGlobalTransformOrigin = (transform) => {
|
|
13
|
+
const { x: originX, y: originY } = getInternalTransformOrigin(transform);
|
|
14
|
+
return {
|
|
15
|
+
x: originX + transform.boundingClientRect.left,
|
|
16
|
+
y: originY + transform.boundingClientRect.top,
|
|
17
|
+
};
|
|
18
|
+
};
|
|
2
19
|
export const calculateTransforms = (element) => {
|
|
3
|
-
var _a, _b;
|
|
4
20
|
// Compute the cumulative transform by traversing parent nodes
|
|
5
21
|
let parent = element;
|
|
6
22
|
const transforms = [];
|
|
@@ -32,21 +48,18 @@ export const calculateTransforms = (element) => {
|
|
|
32
48
|
transform.boundingClientRect = transform.rect.getBoundingClientRect();
|
|
33
49
|
}
|
|
34
50
|
const dimensions = transforms[0].boundingClientRect;
|
|
35
|
-
const nativeTransformOrigin = (
|
|
36
|
-
|
|
51
|
+
const nativeTransformOrigin = getInternalTransformOrigin(transforms[0]);
|
|
52
|
+
const totalMatrix = new DOMMatrix();
|
|
37
53
|
for (const transform of transforms.slice().reverse()) {
|
|
38
54
|
if (!transform.boundingClientRect) {
|
|
39
55
|
throw new Error('Bounding client rect not found');
|
|
40
56
|
}
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
const deviationFromX = centerX - originX;
|
|
45
|
-
const deviationFromY = centerY - originY;
|
|
46
|
-
totalMatrix = totalMatrix
|
|
47
|
-
.translate(-deviationFromX, -deviationFromY)
|
|
57
|
+
const globalTransformOrigin = getGlobalTransformOrigin(transform);
|
|
58
|
+
const transformMatrix = new DOMMatrix()
|
|
59
|
+
.translate(globalTransformOrigin.x, globalTransformOrigin.y)
|
|
48
60
|
.multiply(transform.matrix)
|
|
49
|
-
.translate(
|
|
61
|
+
.translate(-globalTransformOrigin.x, -globalTransformOrigin.y);
|
|
62
|
+
totalMatrix.multiplySelf(transformMatrix);
|
|
50
63
|
}
|
|
51
64
|
return {
|
|
52
65
|
dimensions,
|
package/dist/compose-canvas.js
CHANGED
|
@@ -2,13 +2,7 @@ import { calculateTransforms } from './calculate-transforms';
|
|
|
2
2
|
import { turnSvgIntoDrawable } from './compose-svg';
|
|
3
3
|
export const composeCanvas = async (canvas, context) => {
|
|
4
4
|
const { totalMatrix, reset, dimensions } = calculateTransforms(canvas);
|
|
5
|
-
|
|
6
|
-
const translateY = dimensions.top + dimensions.height / 2;
|
|
7
|
-
const matrix = new DOMMatrix()
|
|
8
|
-
.translate(translateX, translateY)
|
|
9
|
-
.multiply(totalMatrix)
|
|
10
|
-
.translate(-translateX, -translateY);
|
|
11
|
-
context.setTransform(matrix);
|
|
5
|
+
context.setTransform(totalMatrix);
|
|
12
6
|
const drawable = canvas instanceof SVGSVGElement
|
|
13
7
|
? await turnSvgIntoDrawable(canvas)
|
|
14
8
|
: canvas;
|
package/dist/esm/index.mjs
CHANGED
|
@@ -7368,6 +7368,22 @@ var parseTransformOrigin = (transformOrigin) => {
|
|
|
7368
7368
|
};
|
|
7369
7369
|
|
|
7370
7370
|
// src/calculate-transforms.ts
|
|
7371
|
+
var getInternalTransformOrigin = (transform) => {
|
|
7372
|
+
const centerX = transform.boundingClientRect.width / 2;
|
|
7373
|
+
const centerY = transform.boundingClientRect.height / 2;
|
|
7374
|
+
const origin = parseTransformOrigin(transform.transformOrigin) ?? {
|
|
7375
|
+
x: centerX,
|
|
7376
|
+
y: centerY
|
|
7377
|
+
};
|
|
7378
|
+
return origin;
|
|
7379
|
+
};
|
|
7380
|
+
var getGlobalTransformOrigin = (transform) => {
|
|
7381
|
+
const { x: originX, y: originY } = getInternalTransformOrigin(transform);
|
|
7382
|
+
return {
|
|
7383
|
+
x: originX + transform.boundingClientRect.left,
|
|
7384
|
+
y: originY + transform.boundingClientRect.top
|
|
7385
|
+
};
|
|
7386
|
+
};
|
|
7371
7387
|
var calculateTransforms = (element) => {
|
|
7372
7388
|
let parent = element;
|
|
7373
7389
|
const transforms = [];
|
|
@@ -7396,18 +7412,15 @@ var calculateTransforms = (element) => {
|
|
|
7396
7412
|
transform.boundingClientRect = transform.rect.getBoundingClientRect();
|
|
7397
7413
|
}
|
|
7398
7414
|
const dimensions = transforms[0].boundingClientRect;
|
|
7399
|
-
const nativeTransformOrigin =
|
|
7400
|
-
|
|
7415
|
+
const nativeTransformOrigin = getInternalTransformOrigin(transforms[0]);
|
|
7416
|
+
const totalMatrix = new DOMMatrix;
|
|
7401
7417
|
for (const transform of transforms.slice().reverse()) {
|
|
7402
7418
|
if (!transform.boundingClientRect) {
|
|
7403
7419
|
throw new Error("Bounding client rect not found");
|
|
7404
7420
|
}
|
|
7405
|
-
const
|
|
7406
|
-
const
|
|
7407
|
-
|
|
7408
|
-
const deviationFromX = centerX - originX;
|
|
7409
|
-
const deviationFromY = centerY - originY;
|
|
7410
|
-
totalMatrix = totalMatrix.translate(-deviationFromX, -deviationFromY).multiply(transform.matrix).translate(deviationFromX, deviationFromY);
|
|
7421
|
+
const globalTransformOrigin = getGlobalTransformOrigin(transform);
|
|
7422
|
+
const transformMatrix = new DOMMatrix().translate(globalTransformOrigin.x, globalTransformOrigin.y).multiply(transform.matrix).translate(-globalTransformOrigin.x, -globalTransformOrigin.y);
|
|
7423
|
+
totalMatrix.multiplySelf(transformMatrix);
|
|
7411
7424
|
}
|
|
7412
7425
|
return {
|
|
7413
7426
|
dimensions,
|
|
@@ -7458,10 +7471,7 @@ var turnSvgIntoDrawable = (svg) => {
|
|
|
7458
7471
|
// src/compose-canvas.ts
|
|
7459
7472
|
var composeCanvas = async (canvas, context) => {
|
|
7460
7473
|
const { totalMatrix, reset, dimensions } = calculateTransforms(canvas);
|
|
7461
|
-
|
|
7462
|
-
const translateY = dimensions.top + dimensions.height / 2;
|
|
7463
|
-
const matrix = new DOMMatrix().translate(translateX, translateY).multiply(totalMatrix).translate(-translateX, -translateY);
|
|
7464
|
-
context.setTransform(matrix);
|
|
7474
|
+
context.setTransform(totalMatrix);
|
|
7465
7475
|
const drawable = canvas instanceof SVGSVGElement ? await turnSvgIntoDrawable(canvas) : canvas;
|
|
7466
7476
|
context.drawImage(drawable, dimensions.left, dimensions.top, dimensions.width, dimensions.height);
|
|
7467
7477
|
context.setTransform(new DOMMatrix);
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"url": "https://github.com/remotion-dev/remotion/tree/main/packages/web-renderer"
|
|
4
4
|
},
|
|
5
5
|
"name": "@remotion/web-renderer",
|
|
6
|
-
"version": "4.0.
|
|
6
|
+
"version": "4.0.379",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"sideEffects": false,
|
|
9
9
|
"scripts": {
|
|
@@ -16,13 +16,13 @@
|
|
|
16
16
|
"author": "Remotion <jonny@remotion.dev>",
|
|
17
17
|
"license": "UNLICENSED",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"remotion": "4.0.
|
|
19
|
+
"remotion": "4.0.379",
|
|
20
20
|
"mediabunny": "1.24.5"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@remotion/eslint-config-internal": "4.0.
|
|
24
|
-
"@remotion/player": "4.0.
|
|
25
|
-
"@remotion/media": "4.0.
|
|
23
|
+
"@remotion/eslint-config-internal": "4.0.379",
|
|
24
|
+
"@remotion/player": "4.0.379",
|
|
25
|
+
"@remotion/media": "4.0.379",
|
|
26
26
|
"@vitejs/plugin-react": "^5.1.0",
|
|
27
27
|
"@vitest/browser-playwright": "4.0.9",
|
|
28
28
|
"playwright": "1.55.1",
|