@remotion/studio 4.0.392 → 4.0.393
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/components/RenderModal/WebRenderModal.js +3 -4
- package/dist/esm/chunk-ate3k4rb.js +43960 -0
- package/dist/esm/{chunk-02cyqxg9.js → chunk-fnfxxf7g.js} +98 -292
- package/dist/esm/chunk-mbjrewap.js +43758 -0
- package/dist/esm/internals.mjs +671 -10296
- package/dist/esm/previewEntry.mjs +694 -10319
- package/dist/esm/renderEntry.mjs +1 -1
- package/package.json +10 -10
|
@@ -50299,106 +50299,6 @@ var getQualityForWebRendererQuality = (quality) => {
|
|
|
50299
50299
|
throw new Error(`Unsupported quality: ${quality}`);
|
|
50300
50300
|
}
|
|
50301
50301
|
};
|
|
50302
|
-
var parseTransformOrigin = (transformOrigin) => {
|
|
50303
|
-
if (transformOrigin.trim() === "") {
|
|
50304
|
-
return null;
|
|
50305
|
-
}
|
|
50306
|
-
const [x, y] = transformOrigin.split(" ");
|
|
50307
|
-
return { x: parseFloat(x), y: parseFloat(y) };
|
|
50308
|
-
};
|
|
50309
|
-
var getInternalTransformOrigin = (transform) => {
|
|
50310
|
-
const centerX = transform.boundingClientRect.width / 2;
|
|
50311
|
-
const centerY = transform.boundingClientRect.height / 2;
|
|
50312
|
-
const origin = parseTransformOrigin(transform.transformOrigin) ?? {
|
|
50313
|
-
x: centerX,
|
|
50314
|
-
y: centerY
|
|
50315
|
-
};
|
|
50316
|
-
return origin;
|
|
50317
|
-
};
|
|
50318
|
-
var getGlobalTransformOrigin = (transform) => {
|
|
50319
|
-
const { x: originX, y: originY } = getInternalTransformOrigin(transform);
|
|
50320
|
-
return {
|
|
50321
|
-
x: originX + transform.boundingClientRect.left,
|
|
50322
|
-
y: originY + transform.boundingClientRect.top
|
|
50323
|
-
};
|
|
50324
|
-
};
|
|
50325
|
-
var calculateTransforms = (element) => {
|
|
50326
|
-
let parent = element;
|
|
50327
|
-
const transforms = [];
|
|
50328
|
-
const toReset = [];
|
|
50329
|
-
let opacity = 1;
|
|
50330
|
-
let elementComputedStyle = null;
|
|
50331
|
-
while (parent) {
|
|
50332
|
-
const computedStyle = getComputedStyle(parent);
|
|
50333
|
-
const parentOpacity = computedStyle.opacity;
|
|
50334
|
-
if (parentOpacity && parentOpacity !== "") {
|
|
50335
|
-
opacity *= parseFloat(parentOpacity);
|
|
50336
|
-
}
|
|
50337
|
-
if (parent === element) {
|
|
50338
|
-
elementComputedStyle = computedStyle;
|
|
50339
|
-
}
|
|
50340
|
-
if (computedStyle.transform && computedStyle.transform !== "none" || parent === element) {
|
|
50341
|
-
const toParse = computedStyle.transform === "none" || computedStyle.transform === "" ? undefined : computedStyle.transform;
|
|
50342
|
-
const matrix = new DOMMatrix(toParse);
|
|
50343
|
-
const { transform, scale, rotate: rotate2 } = parent.style;
|
|
50344
|
-
const additionalMatrices = [];
|
|
50345
|
-
if (rotate2 !== "") {
|
|
50346
|
-
additionalMatrices.push(new DOMMatrix(`rotate(${rotate2})`));
|
|
50347
|
-
}
|
|
50348
|
-
if (scale !== "") {
|
|
50349
|
-
additionalMatrices.push(new DOMMatrix(`scale(${scale})`));
|
|
50350
|
-
}
|
|
50351
|
-
additionalMatrices.push(matrix);
|
|
50352
|
-
parent.style.transform = "none";
|
|
50353
|
-
parent.style.scale = "none";
|
|
50354
|
-
parent.style.rotate = "none";
|
|
50355
|
-
transforms.push({
|
|
50356
|
-
rect: parent,
|
|
50357
|
-
transformOrigin: computedStyle.transformOrigin,
|
|
50358
|
-
boundingClientRect: null,
|
|
50359
|
-
matrices: additionalMatrices
|
|
50360
|
-
});
|
|
50361
|
-
const parentRef = parent;
|
|
50362
|
-
toReset.push(() => {
|
|
50363
|
-
parentRef.style.transform = transform;
|
|
50364
|
-
parentRef.style.scale = scale;
|
|
50365
|
-
parentRef.style.rotate = rotate2;
|
|
50366
|
-
});
|
|
50367
|
-
}
|
|
50368
|
-
parent = parent.parentElement;
|
|
50369
|
-
}
|
|
50370
|
-
for (const transform of transforms) {
|
|
50371
|
-
transform.boundingClientRect = transform.rect.getBoundingClientRect();
|
|
50372
|
-
}
|
|
50373
|
-
const dimensions = transforms[0].boundingClientRect;
|
|
50374
|
-
const nativeTransformOrigin = getInternalTransformOrigin(transforms[0]);
|
|
50375
|
-
const totalMatrix = new DOMMatrix;
|
|
50376
|
-
for (const transform of transforms.slice().reverse()) {
|
|
50377
|
-
if (!transform.boundingClientRect) {
|
|
50378
|
-
throw new Error("Bounding client rect not found");
|
|
50379
|
-
}
|
|
50380
|
-
for (const matrix of transform.matrices) {
|
|
50381
|
-
const globalTransformOrigin = getGlobalTransformOrigin(transform);
|
|
50382
|
-
const transformMatrix = new DOMMatrix().translate(globalTransformOrigin.x, globalTransformOrigin.y).multiply(matrix).translate(-globalTransformOrigin.x, -globalTransformOrigin.y);
|
|
50383
|
-
totalMatrix.multiplySelf(transformMatrix);
|
|
50384
|
-
}
|
|
50385
|
-
}
|
|
50386
|
-
if (!elementComputedStyle) {
|
|
50387
|
-
throw new Error("Element computed style not found");
|
|
50388
|
-
}
|
|
50389
|
-
return {
|
|
50390
|
-
dimensions,
|
|
50391
|
-
totalMatrix,
|
|
50392
|
-
reset: () => {
|
|
50393
|
-
for (const reset of toReset) {
|
|
50394
|
-
reset();
|
|
50395
|
-
}
|
|
50396
|
-
},
|
|
50397
|
-
nativeTransformOrigin,
|
|
50398
|
-
opacity,
|
|
50399
|
-
computedStyle: elementComputedStyle
|
|
50400
|
-
};
|
|
50401
|
-
};
|
|
50402
50302
|
function parseValue({
|
|
50403
50303
|
value,
|
|
50404
50304
|
reference
|
|
@@ -50533,6 +50433,92 @@ function setBorderRadius({
|
|
|
50533
50433
|
ctx.restore();
|
|
50534
50434
|
};
|
|
50535
50435
|
}
|
|
50436
|
+
var parseTransformOrigin = (transformOrigin) => {
|
|
50437
|
+
if (transformOrigin.trim() === "") {
|
|
50438
|
+
return null;
|
|
50439
|
+
}
|
|
50440
|
+
const [x, y] = transformOrigin.split(" ");
|
|
50441
|
+
return { x: parseFloat(x), y: parseFloat(y) };
|
|
50442
|
+
};
|
|
50443
|
+
var getInternalTransformOrigin = (transform) => {
|
|
50444
|
+
const centerX = transform.boundingClientRect.width / 2;
|
|
50445
|
+
const centerY = transform.boundingClientRect.height / 2;
|
|
50446
|
+
const origin = parseTransformOrigin(transform.transformOrigin) ?? {
|
|
50447
|
+
x: centerX,
|
|
50448
|
+
y: centerY
|
|
50449
|
+
};
|
|
50450
|
+
return origin;
|
|
50451
|
+
};
|
|
50452
|
+
var getGlobalTransformOrigin = (transform) => {
|
|
50453
|
+
const { x: originX, y: originY } = getInternalTransformOrigin(transform);
|
|
50454
|
+
return {
|
|
50455
|
+
x: originX + transform.boundingClientRect.left,
|
|
50456
|
+
y: originY + transform.boundingClientRect.top
|
|
50457
|
+
};
|
|
50458
|
+
};
|
|
50459
|
+
var calculateTransforms = (element) => {
|
|
50460
|
+
let parent = element;
|
|
50461
|
+
const transforms = [];
|
|
50462
|
+
const toReset = [];
|
|
50463
|
+
let opacity = 1;
|
|
50464
|
+
let elementComputedStyle = null;
|
|
50465
|
+
while (parent) {
|
|
50466
|
+
const computedStyle = getComputedStyle(parent);
|
|
50467
|
+
const parentOpacity = computedStyle.opacity;
|
|
50468
|
+
if (parentOpacity && parentOpacity !== "") {
|
|
50469
|
+
opacity *= parseFloat(parentOpacity);
|
|
50470
|
+
}
|
|
50471
|
+
if (parent === element) {
|
|
50472
|
+
elementComputedStyle = computedStyle;
|
|
50473
|
+
}
|
|
50474
|
+
if (computedStyle.transform && computedStyle.transform !== "none" || parent === element) {
|
|
50475
|
+
const toParse = computedStyle.transform === "none" || computedStyle.transform === "" ? undefined : computedStyle.transform;
|
|
50476
|
+
const matrix = new DOMMatrix(toParse);
|
|
50477
|
+
const { transform } = parent.style;
|
|
50478
|
+
parent.style.transform = "none";
|
|
50479
|
+
transforms.push({
|
|
50480
|
+
matrix,
|
|
50481
|
+
rect: parent,
|
|
50482
|
+
transformOrigin: computedStyle.transformOrigin,
|
|
50483
|
+
boundingClientRect: null
|
|
50484
|
+
});
|
|
50485
|
+
const parentRef = parent;
|
|
50486
|
+
toReset.push(() => {
|
|
50487
|
+
parentRef.style.transform = transform;
|
|
50488
|
+
});
|
|
50489
|
+
}
|
|
50490
|
+
parent = parent.parentElement;
|
|
50491
|
+
}
|
|
50492
|
+
for (const transform of transforms) {
|
|
50493
|
+
transform.boundingClientRect = transform.rect.getBoundingClientRect();
|
|
50494
|
+
}
|
|
50495
|
+
const dimensions = transforms[0].boundingClientRect;
|
|
50496
|
+
const nativeTransformOrigin = getInternalTransformOrigin(transforms[0]);
|
|
50497
|
+
const totalMatrix = new DOMMatrix;
|
|
50498
|
+
for (const transform of transforms.slice().reverse()) {
|
|
50499
|
+
if (!transform.boundingClientRect) {
|
|
50500
|
+
throw new Error("Bounding client rect not found");
|
|
50501
|
+
}
|
|
50502
|
+
const globalTransformOrigin = getGlobalTransformOrigin(transform);
|
|
50503
|
+
const transformMatrix = new DOMMatrix().translate(globalTransformOrigin.x, globalTransformOrigin.y).multiply(transform.matrix).translate(-globalTransformOrigin.x, -globalTransformOrigin.y);
|
|
50504
|
+
totalMatrix.multiplySelf(transformMatrix);
|
|
50505
|
+
}
|
|
50506
|
+
if (!elementComputedStyle) {
|
|
50507
|
+
throw new Error("Element computed style not found");
|
|
50508
|
+
}
|
|
50509
|
+
return {
|
|
50510
|
+
dimensions,
|
|
50511
|
+
totalMatrix,
|
|
50512
|
+
reset: () => {
|
|
50513
|
+
for (const reset of toReset) {
|
|
50514
|
+
reset();
|
|
50515
|
+
}
|
|
50516
|
+
},
|
|
50517
|
+
nativeTransformOrigin,
|
|
50518
|
+
opacity,
|
|
50519
|
+
computedStyle: elementComputedStyle
|
|
50520
|
+
};
|
|
50521
|
+
};
|
|
50536
50522
|
var drawBorder = ({
|
|
50537
50523
|
ctx,
|
|
50538
50524
|
x,
|
|
@@ -50637,14 +50623,20 @@ var setTransform = ({
|
|
|
50637
50623
|
ctx.setTransform(new DOMMatrix);
|
|
50638
50624
|
};
|
|
50639
50625
|
};
|
|
50640
|
-
var
|
|
50641
|
-
|
|
50642
|
-
computedStyle,
|
|
50626
|
+
var drawElementToCanvas = async ({
|
|
50627
|
+
element,
|
|
50643
50628
|
context,
|
|
50644
|
-
draw
|
|
50645
|
-
opacity,
|
|
50646
|
-
totalMatrix
|
|
50629
|
+
draw
|
|
50647
50630
|
}) => {
|
|
50631
|
+
const { totalMatrix, reset, dimensions, opacity, computedStyle } = calculateTransforms(element);
|
|
50632
|
+
if (opacity === 0) {
|
|
50633
|
+
reset();
|
|
50634
|
+
return;
|
|
50635
|
+
}
|
|
50636
|
+
if (dimensions.width <= 0 || dimensions.height <= 0) {
|
|
50637
|
+
reset();
|
|
50638
|
+
return;
|
|
50639
|
+
}
|
|
50648
50640
|
const background2 = computedStyle.backgroundColor;
|
|
50649
50641
|
const borderRadius = parseBorderRadius({
|
|
50650
50642
|
borderRadius: computedStyle.borderRadius,
|
|
@@ -50686,192 +50678,6 @@ var drawElement = async ({
|
|
|
50686
50678
|
finishOpacity();
|
|
50687
50679
|
finishBorderRadius();
|
|
50688
50680
|
finishTransform();
|
|
50689
|
-
};
|
|
50690
|
-
function compileShader(shaderGl, source, type) {
|
|
50691
|
-
const shader = shaderGl.createShader(type);
|
|
50692
|
-
if (!shader) {
|
|
50693
|
-
throw new Error("Could not create shader");
|
|
50694
|
-
}
|
|
50695
|
-
shaderGl.shaderSource(shader, source);
|
|
50696
|
-
shaderGl.compileShader(shader);
|
|
50697
|
-
if (!shaderGl.getShaderParameter(shader, shaderGl.COMPILE_STATUS)) {
|
|
50698
|
-
const log = shaderGl.getShaderInfoLog(shader);
|
|
50699
|
-
shaderGl.deleteShader(shader);
|
|
50700
|
-
throw new Error("Shader compile error: " + log);
|
|
50701
|
-
}
|
|
50702
|
-
return shader;
|
|
50703
|
-
}
|
|
50704
|
-
var transformIn3d = ({
|
|
50705
|
-
canvasWidth,
|
|
50706
|
-
canvasHeight,
|
|
50707
|
-
matrix,
|
|
50708
|
-
sourceCanvas,
|
|
50709
|
-
offsetLeft,
|
|
50710
|
-
offsetTop
|
|
50711
|
-
}) => {
|
|
50712
|
-
const canvas = new OffscreenCanvas(canvasWidth, canvasHeight);
|
|
50713
|
-
const gl = canvas.getContext("webgl");
|
|
50714
|
-
if (!gl) {
|
|
50715
|
-
throw new Error("WebGL not supported");
|
|
50716
|
-
}
|
|
50717
|
-
const vsSource = `
|
|
50718
|
-
attribute vec2 aPosition;
|
|
50719
|
-
attribute vec2 aTexCoord;
|
|
50720
|
-
uniform mat4 uTransform;
|
|
50721
|
-
uniform mat4 uProjection;
|
|
50722
|
-
varying vec2 vTexCoord;
|
|
50723
|
-
|
|
50724
|
-
void main() {
|
|
50725
|
-
gl_Position = uProjection * uTransform * vec4(aPosition, 0.0, 1.0);
|
|
50726
|
-
vTexCoord = aTexCoord;
|
|
50727
|
-
}
|
|
50728
|
-
`;
|
|
50729
|
-
const fsSource = `
|
|
50730
|
-
precision mediump float;
|
|
50731
|
-
uniform sampler2D uTexture;
|
|
50732
|
-
varying vec2 vTexCoord;
|
|
50733
|
-
|
|
50734
|
-
void main() {
|
|
50735
|
-
gl_FragColor = texture2D(uTexture, vTexCoord);
|
|
50736
|
-
}
|
|
50737
|
-
`;
|
|
50738
|
-
const vertexShader = compileShader(gl, vsSource, gl.VERTEX_SHADER);
|
|
50739
|
-
const fragmentShader = compileShader(gl, fsSource, gl.FRAGMENT_SHADER);
|
|
50740
|
-
const program = gl.createProgram();
|
|
50741
|
-
gl.attachShader(program, vertexShader);
|
|
50742
|
-
gl.attachShader(program, fragmentShader);
|
|
50743
|
-
gl.linkProgram(program);
|
|
50744
|
-
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
|
|
50745
|
-
throw new Error("Program link error: " + gl.getProgramInfoLog(program));
|
|
50746
|
-
}
|
|
50747
|
-
gl.useProgram(program);
|
|
50748
|
-
const vertices = new Float32Array([
|
|
50749
|
-
offsetLeft,
|
|
50750
|
-
offsetTop,
|
|
50751
|
-
0,
|
|
50752
|
-
0,
|
|
50753
|
-
canvasWidth + offsetLeft,
|
|
50754
|
-
offsetTop,
|
|
50755
|
-
1,
|
|
50756
|
-
0,
|
|
50757
|
-
offsetLeft,
|
|
50758
|
-
canvasHeight + offsetTop,
|
|
50759
|
-
0,
|
|
50760
|
-
1,
|
|
50761
|
-
offsetLeft,
|
|
50762
|
-
canvasHeight + offsetTop,
|
|
50763
|
-
0,
|
|
50764
|
-
1,
|
|
50765
|
-
canvasWidth + offsetLeft,
|
|
50766
|
-
offsetTop,
|
|
50767
|
-
1,
|
|
50768
|
-
0,
|
|
50769
|
-
canvasWidth + offsetLeft,
|
|
50770
|
-
canvasHeight + offsetTop,
|
|
50771
|
-
1,
|
|
50772
|
-
1
|
|
50773
|
-
]);
|
|
50774
|
-
const vertexBuffer = gl.createBuffer();
|
|
50775
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
|
|
50776
|
-
gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);
|
|
50777
|
-
const aPosition = gl.getAttribLocation(program, "aPosition");
|
|
50778
|
-
const aTexCoord = gl.getAttribLocation(program, "aTexCoord");
|
|
50779
|
-
gl.enableVertexAttribArray(aPosition);
|
|
50780
|
-
gl.vertexAttribPointer(aPosition, 2, gl.FLOAT, false, 4 * 4, 0);
|
|
50781
|
-
gl.enableVertexAttribArray(aTexCoord);
|
|
50782
|
-
gl.vertexAttribPointer(aTexCoord, 2, gl.FLOAT, false, 4 * 4, 2 * 4);
|
|
50783
|
-
const texture = gl.createTexture();
|
|
50784
|
-
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
50785
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
|
|
50786
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
|
|
50787
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
|
|
50788
|
-
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
|
|
50789
|
-
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, sourceCanvas);
|
|
50790
|
-
const transformMatrix = matrix.toFloat32Array();
|
|
50791
|
-
const zScale = 1e9;
|
|
50792
|
-
const projectionMatrix = new Float32Array([
|
|
50793
|
-
2 / canvasWidth,
|
|
50794
|
-
0,
|
|
50795
|
-
0,
|
|
50796
|
-
0,
|
|
50797
|
-
0,
|
|
50798
|
-
-2 / canvasHeight,
|
|
50799
|
-
0,
|
|
50800
|
-
0,
|
|
50801
|
-
0,
|
|
50802
|
-
0,
|
|
50803
|
-
-2 / zScale,
|
|
50804
|
-
0,
|
|
50805
|
-
-1,
|
|
50806
|
-
1,
|
|
50807
|
-
0,
|
|
50808
|
-
1
|
|
50809
|
-
]);
|
|
50810
|
-
const uTransform = gl.getUniformLocation(program, "uTransform");
|
|
50811
|
-
const uProjection = gl.getUniformLocation(program, "uProjection");
|
|
50812
|
-
const uTexture = gl.getUniformLocation(program, "uTexture");
|
|
50813
|
-
gl.uniformMatrix4fv(uTransform, false, transformMatrix);
|
|
50814
|
-
gl.uniformMatrix4fv(uProjection, false, projectionMatrix);
|
|
50815
|
-
gl.uniform1i(uTexture, 0);
|
|
50816
|
-
gl.clearColor(0, 0, 0, 0);
|
|
50817
|
-
gl.clear(gl.COLOR_BUFFER_BIT);
|
|
50818
|
-
gl.enable(gl.BLEND);
|
|
50819
|
-
gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
|
|
50820
|
-
gl.drawArrays(gl.TRIANGLES, 0, 6);
|
|
50821
|
-
return canvas;
|
|
50822
|
-
};
|
|
50823
|
-
var drawElementToCanvas = async ({
|
|
50824
|
-
element,
|
|
50825
|
-
context,
|
|
50826
|
-
draw
|
|
50827
|
-
}) => {
|
|
50828
|
-
const { totalMatrix, reset, dimensions, opacity, computedStyle } = calculateTransforms(element);
|
|
50829
|
-
if (opacity === 0) {
|
|
50830
|
-
reset();
|
|
50831
|
-
return;
|
|
50832
|
-
}
|
|
50833
|
-
if (dimensions.width <= 0 || dimensions.height <= 0) {
|
|
50834
|
-
reset();
|
|
50835
|
-
return;
|
|
50836
|
-
}
|
|
50837
|
-
if (!totalMatrix.is2D) {
|
|
50838
|
-
const offsetLeft = Math.min(dimensions.left, 0);
|
|
50839
|
-
const offsetTop = Math.min(dimensions.top, 0);
|
|
50840
|
-
const tempCanvasWidth = Math.max(dimensions.width, dimensions.right);
|
|
50841
|
-
const tempCanvasHeight = Math.max(dimensions.height, dimensions.bottom);
|
|
50842
|
-
const tempCanvas = new OffscreenCanvas(tempCanvasWidth, tempCanvasHeight);
|
|
50843
|
-
const context2 = tempCanvas.getContext("2d");
|
|
50844
|
-
if (!context2) {
|
|
50845
|
-
throw new Error("Could not get context");
|
|
50846
|
-
}
|
|
50847
|
-
const adjustedDimensions = new DOMRect(dimensions.left - offsetLeft, dimensions.top - offsetTop, dimensions.width, dimensions.height);
|
|
50848
|
-
await drawElement({
|
|
50849
|
-
dimensions: adjustedDimensions,
|
|
50850
|
-
computedStyle,
|
|
50851
|
-
context: context2,
|
|
50852
|
-
draw,
|
|
50853
|
-
opacity,
|
|
50854
|
-
totalMatrix: new DOMMatrix
|
|
50855
|
-
});
|
|
50856
|
-
const transformed = transformIn3d({
|
|
50857
|
-
canvasWidth: tempCanvasWidth,
|
|
50858
|
-
canvasHeight: tempCanvasHeight,
|
|
50859
|
-
matrix: totalMatrix,
|
|
50860
|
-
sourceCanvas: tempCanvas,
|
|
50861
|
-
offsetLeft,
|
|
50862
|
-
offsetTop
|
|
50863
|
-
});
|
|
50864
|
-
context.drawImage(transformed, 0, 0);
|
|
50865
|
-
} else {
|
|
50866
|
-
await drawElement({
|
|
50867
|
-
dimensions,
|
|
50868
|
-
computedStyle,
|
|
50869
|
-
context,
|
|
50870
|
-
draw,
|
|
50871
|
-
opacity,
|
|
50872
|
-
totalMatrix
|
|
50873
|
-
});
|
|
50874
|
-
}
|
|
50875
50681
|
reset();
|
|
50876
50682
|
};
|
|
50877
50683
|
var getCollapsedText = (span) => {
|