@pixldocs/canvas-renderer 0.5.408 → 0.5.409
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/{index-D_anatnh.js → index-DAOxGNQt.js} +79 -36
- package/dist/index-DAOxGNQt.js.map +1 -0
- package/dist/{index-vGjobYro.cjs → index-DaL8UMXJ.cjs} +79 -36
- package/dist/index-DaL8UMXJ.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-PXI2Nd-d.js → vectorPdfExport-BZbppXw8.js} +4 -4
- package/dist/{vectorPdfExport-PXI2Nd-d.js.map → vectorPdfExport-BZbppXw8.js.map} +1 -1
- package/dist/{vectorPdfExport-DSZH7267.cjs → vectorPdfExport-CI2YBgI3.cjs} +4 -4
- package/dist/{vectorPdfExport-DSZH7267.cjs.map → vectorPdfExport-CI2YBgI3.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/index-D_anatnh.js.map +0 -1
- package/dist/index-vGjobYro.cjs.map +0 -1
|
@@ -4947,7 +4947,7 @@ function getLocalDeltaStable(target, eventData) {
|
|
|
4947
4947
|
target.__lastPointerForCrop = p;
|
|
4948
4948
|
const dx = p.x - last.x;
|
|
4949
4949
|
const dy = p.y - last.y;
|
|
4950
|
-
const angle = fabric.util.degreesToRadians(target
|
|
4950
|
+
const angle = fabric.util.degreesToRadians(getWorldAngleDeg(target));
|
|
4951
4951
|
const cos = Math.cos(-angle);
|
|
4952
4952
|
const sin = Math.sin(-angle);
|
|
4953
4953
|
return {
|
|
@@ -4973,8 +4973,40 @@ function localDeltaToWorld(dx, dy, angleDeg) {
|
|
|
4973
4973
|
y: dx * sin + dy * cos
|
|
4974
4974
|
};
|
|
4975
4975
|
}
|
|
4976
|
-
function
|
|
4977
|
-
|
|
4976
|
+
function getWorldAngleDeg(obj) {
|
|
4977
|
+
var _a2;
|
|
4978
|
+
try {
|
|
4979
|
+
if (typeof obj.getTotalAngle === "function") return obj.getTotalAngle() || 0;
|
|
4980
|
+
const matrix = (_a2 = obj.calcTransformMatrix) == null ? void 0 : _a2.call(obj);
|
|
4981
|
+
return matrix ? fabric.util.qrDecompose(matrix).angle || 0 : obj.angle || 0;
|
|
4982
|
+
} catch {
|
|
4983
|
+
return obj.angle || 0;
|
|
4984
|
+
}
|
|
4985
|
+
}
|
|
4986
|
+
function getWorldCenter(obj) {
|
|
4987
|
+
var _a2;
|
|
4988
|
+
try {
|
|
4989
|
+
const matrix = (_a2 = obj.calcTransformMatrix) == null ? void 0 : _a2.call(obj);
|
|
4990
|
+
if (matrix) {
|
|
4991
|
+
const decomposed = fabric.util.qrDecompose(matrix);
|
|
4992
|
+
return { x: decomposed.translateX || 0, y: decomposed.translateY || 0 };
|
|
4993
|
+
}
|
|
4994
|
+
} catch {
|
|
4995
|
+
}
|
|
4996
|
+
return { x: obj.left || 0, y: obj.top || 0 };
|
|
4997
|
+
}
|
|
4998
|
+
function setCenterFromWorld(obj, worldX, worldY) {
|
|
4999
|
+
const parent = obj.group;
|
|
5000
|
+
if (parent && typeof parent.calcTransformMatrix === "function") {
|
|
5001
|
+
try {
|
|
5002
|
+
const invParent = fabric.util.invertTransform(parent.calcTransformMatrix());
|
|
5003
|
+
const parentPoint = fabric.util.transformPoint({ x: worldX, y: worldY }, invParent);
|
|
5004
|
+
obj.set({ left: parentPoint.x, top: parentPoint.y, originX: "center", originY: "center" });
|
|
5005
|
+
return;
|
|
5006
|
+
} catch {
|
|
5007
|
+
}
|
|
5008
|
+
}
|
|
5009
|
+
obj.set({ left: worldX, top: worldY, originX: "center", originY: "center" });
|
|
4978
5010
|
}
|
|
4979
5011
|
function getCornerDefaultSigns(corner) {
|
|
4980
5012
|
switch (corner) {
|
|
@@ -5018,44 +5050,50 @@ function resizeFrameFromCornerUniform(eventData, transform, _x, _y) {
|
|
|
5018
5050
|
if (!canvas) return false;
|
|
5019
5051
|
const e = getDomEvent(eventData);
|
|
5020
5052
|
if (!e) return false;
|
|
5021
|
-
const pointer = canvas.getPointer(e);
|
|
5022
|
-
g.setCoords();
|
|
5023
|
-
const a = g.aCoords;
|
|
5024
|
-
if (!a) return false;
|
|
5025
5053
|
const corner = transform.corner;
|
|
5026
|
-
const anchor = getOppositeAnchor(a, corner);
|
|
5027
5054
|
const defaultSigns = getCornerDefaultSigns(corner);
|
|
5028
5055
|
const MIN_SIZE = 20;
|
|
5029
|
-
const
|
|
5030
|
-
const
|
|
5031
|
-
const
|
|
5032
|
-
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
|
|
5036
|
-
|
|
5056
|
+
const pointer = canvas.getPointer(e);
|
|
5057
|
+
const angle = getWorldAngleDeg(g);
|
|
5058
|
+
const snapshot = g.__cornerResizeStart && g.__cornerResizeStart.corner === corner && g.__cornerResizeStart.transform === transform ? g.__cornerResizeStart : (() => {
|
|
5059
|
+
const center = getWorldCenter(g);
|
|
5060
|
+
const baseW = Math.max(MIN_SIZE, ct.frameW || g.width || 1);
|
|
5061
|
+
const baseH = Math.max(MIN_SIZE, ct.frameH || g.height || 1);
|
|
5062
|
+
const anchorLocal = { x: -defaultSigns.x * baseW / 2, y: -defaultSigns.y * baseH / 2 };
|
|
5063
|
+
const anchorWorld = localDeltaToWorld(anchorLocal.x, anchorLocal.y, angle);
|
|
5064
|
+
const snap = {
|
|
5065
|
+
corner,
|
|
5066
|
+
transform,
|
|
5067
|
+
angle,
|
|
5068
|
+
baseW,
|
|
5069
|
+
baseH,
|
|
5070
|
+
anchorX: center.x + anchorWorld.x,
|
|
5071
|
+
anchorY: center.y + anchorWorld.y,
|
|
5072
|
+
signX: defaultSigns.x,
|
|
5073
|
+
signY: defaultSigns.y
|
|
5074
|
+
};
|
|
5075
|
+
g.__cornerResizeStart = snap;
|
|
5076
|
+
return snap;
|
|
5077
|
+
})();
|
|
5078
|
+
const localDelta = worldDeltaToLocal(pointer.x - snapshot.anchorX, pointer.y - snapshot.anchorY, snapshot.angle);
|
|
5079
|
+
const signX = snapshot.signX;
|
|
5080
|
+
const signY = snapshot.signY;
|
|
5037
5081
|
const rawW = Math.max(MIN_SIZE, Math.abs(localDelta.x));
|
|
5038
5082
|
const rawH = Math.max(MIN_SIZE, Math.abs(localDelta.y));
|
|
5039
|
-
const scaleFromW = rawW / baseW;
|
|
5040
|
-
const scaleFromH = rawH / baseH;
|
|
5083
|
+
const scaleFromW = rawW / snapshot.baseW;
|
|
5084
|
+
const scaleFromH = rawH / snapshot.baseH;
|
|
5041
5085
|
const s = Math.min(scaleFromW, scaleFromH);
|
|
5042
|
-
const newW = Math.max(MIN_SIZE, baseW * s);
|
|
5043
|
-
const newH = Math.max(MIN_SIZE, baseH * s);
|
|
5086
|
+
const newW = Math.max(MIN_SIZE, snapshot.baseW * s);
|
|
5087
|
+
const newH = Math.max(MIN_SIZE, snapshot.baseH * s);
|
|
5044
5088
|
ct.frameW = newW;
|
|
5045
5089
|
ct.frameH = newH;
|
|
5046
5090
|
const centerLocal = {
|
|
5047
5091
|
x: signX * (newW / 2),
|
|
5048
5092
|
y: signY * (newH / 2)
|
|
5049
5093
|
};
|
|
5050
|
-
const centerWorld = localDeltaToWorld(centerLocal.x, centerLocal.y, angle);
|
|
5051
|
-
g.
|
|
5052
|
-
|
|
5053
|
-
top: anchor.y + centerWorld.y,
|
|
5054
|
-
originX: "center",
|
|
5055
|
-
originY: "center",
|
|
5056
|
-
width: newW,
|
|
5057
|
-
height: newH
|
|
5058
|
-
});
|
|
5094
|
+
const centerWorld = localDeltaToWorld(centerLocal.x, centerLocal.y, snapshot.angle);
|
|
5095
|
+
setCenterFromWorld(g, snapshot.anchorX + centerWorld.x, snapshot.anchorY + centerWorld.y);
|
|
5096
|
+
g.set({ width: newW, height: newH });
|
|
5059
5097
|
updateCoverLayout(g);
|
|
5060
5098
|
canvas.requestRenderAll();
|
|
5061
5099
|
return true;
|
|
@@ -5065,8 +5103,9 @@ function resizeFrameFromSide(g, side, localDx, localDy) {
|
|
|
5065
5103
|
if (!ct) return;
|
|
5066
5104
|
const minSize = 30;
|
|
5067
5105
|
const moveCenterAlongLocalAxis = (obj, localX, localY) => {
|
|
5068
|
-
const
|
|
5069
|
-
|
|
5106
|
+
const center = getWorldCenter(obj);
|
|
5107
|
+
const worldDelta = localDeltaToWorld(localX, localY, getWorldAngleDeg(obj));
|
|
5108
|
+
setCenterFromWorld(obj, center.x + worldDelta.x, center.y + worldDelta.y);
|
|
5070
5109
|
};
|
|
5071
5110
|
if (side === "mr") {
|
|
5072
5111
|
ct.frameW = Math.max(minSize, ct.frameW + localDx);
|
|
@@ -5101,6 +5140,7 @@ function installCanvaMaskControls(g) {
|
|
|
5101
5140
|
};
|
|
5102
5141
|
g.set(controlStyle);
|
|
5103
5142
|
const notifyResizeSnap = (target, corner) => {
|
|
5143
|
+
if (target.group instanceof fabric.ActiveSelection) return;
|
|
5104
5144
|
const handler = target.__resizeSnapHandler;
|
|
5105
5145
|
if (typeof handler === "function") handler(target, corner);
|
|
5106
5146
|
};
|
|
@@ -14103,6 +14143,9 @@ const PageCanvas = forwardRef(
|
|
|
14103
14143
|
if (activeObj.__lastPointerForCrop) {
|
|
14104
14144
|
delete activeObj.__lastPointerForCrop;
|
|
14105
14145
|
}
|
|
14146
|
+
if (activeObj.__cornerResizeStart) {
|
|
14147
|
+
delete activeObj.__cornerResizeStart;
|
|
14148
|
+
}
|
|
14106
14149
|
}
|
|
14107
14150
|
if (!didTransformRef.current) {
|
|
14108
14151
|
editLockRef.current = false;
|
|
@@ -25161,9 +25204,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
25161
25204
|
}
|
|
25162
25205
|
return svgString;
|
|
25163
25206
|
}
|
|
25164
|
-
const resolvedPackageVersion = "0.5.
|
|
25207
|
+
const resolvedPackageVersion = "0.5.409";
|
|
25165
25208
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
25166
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
25209
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.409";
|
|
25167
25210
|
const roundParityValue = (value) => {
|
|
25168
25211
|
if (typeof value !== "number") return value;
|
|
25169
25212
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -25977,7 +26020,7 @@ class PixldocsRenderer {
|
|
|
25977
26020
|
await this.waitForCanvasScene(container, cloned, i);
|
|
25978
26021
|
}
|
|
25979
26022
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
25980
|
-
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-
|
|
26023
|
+
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-BZbppXw8.js");
|
|
25981
26024
|
const prepared = preparePagesForExport(
|
|
25982
26025
|
cloned.pages,
|
|
25983
26026
|
canvasWidth,
|
|
@@ -28297,7 +28340,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
28297
28340
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
28298
28341
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
28299
28342
|
try {
|
|
28300
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-
|
|
28343
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-BZbppXw8.js");
|
|
28301
28344
|
try {
|
|
28302
28345
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
28303
28346
|
} catch {
|
|
@@ -28697,4 +28740,4 @@ export {
|
|
|
28697
28740
|
buildTeaserBlurFlatKeys as y,
|
|
28698
28741
|
collectFontDescriptorsFromConfig as z
|
|
28699
28742
|
};
|
|
28700
|
-
//# sourceMappingURL=index-
|
|
28743
|
+
//# sourceMappingURL=index-DAOxGNQt.js.map
|