@pixldocs/canvas-renderer 0.5.407 → 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-Dxlbnksl.js → index-DAOxGNQt.js} +82 -45
- package/dist/index-DAOxGNQt.js.map +1 -0
- package/dist/{index-DYykToy0.cjs → index-DaL8UMXJ.cjs} +82 -45
- package/dist/index-DaL8UMXJ.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-DuXVrbKW.js → vectorPdfExport-BZbppXw8.js} +4 -4
- package/dist/{vectorPdfExport-DuXVrbKW.js.map → vectorPdfExport-BZbppXw8.js.map} +1 -1
- package/dist/{vectorPdfExport-DRPD9NOQ.cjs → vectorPdfExport-CI2YBgI3.cjs} +4 -4
- package/dist/{vectorPdfExport-DRPD9NOQ.cjs.map → vectorPdfExport-CI2YBgI3.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/index-DYykToy0.cjs.map +0 -1
- package/dist/index-Dxlbnksl.js.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
|
};
|
|
@@ -13251,19 +13291,13 @@ const PageCanvas = forwardRef(
|
|
|
13251
13291
|
const liveDeltaY = Math.abs(rawScaleY / originalScaleY);
|
|
13252
13292
|
const hasResidualOriginal = Math.abs(Math.abs(originalScaleX) - 1) > 1e-4 || Math.abs(Math.abs(originalScaleY) - 1) > 1e-4;
|
|
13253
13293
|
const hasNoLiveDragDelta = Math.abs(liveDeltaX - 1) < 5e-4 && Math.abs(liveDeltaY - 1) < 5e-4;
|
|
13254
|
-
const
|
|
13255
|
-
if (
|
|
13256
|
-
|
|
13257
|
-
const asScaleY = Math.abs((ct == null ? void 0 : ct.target) === active ? originalScaleY : rawScaleY);
|
|
13258
|
-
const newW = Math.max(1, (active.width ?? 0) * asScaleX);
|
|
13259
|
-
const newH = Math.max(1, (active.height ?? 0) * asScaleY);
|
|
13260
|
-
active.set({ width: newW, height: newH, scaleX: 1, scaleY: 1 });
|
|
13294
|
+
const canNormalize = (ct == null ? void 0 : ct.target) === active ? hasResidualOriginal && hasNoLiveDragDelta : Math.abs(Math.abs(rawScaleX) - 1) > 1e-4 || Math.abs(Math.abs(rawScaleY) - 1) > 1e-4;
|
|
13295
|
+
if (canNormalize) {
|
|
13296
|
+
active.set({ scaleX: 1, scaleY: 1 });
|
|
13261
13297
|
active.setCoords();
|
|
13262
13298
|
if (ct && ct.target === active && ct.original) {
|
|
13263
13299
|
ct.original.scaleX = 1;
|
|
13264
13300
|
ct.original.scaleY = 1;
|
|
13265
|
-
ct.original.width = newW;
|
|
13266
|
-
ct.original.height = newH;
|
|
13267
13301
|
}
|
|
13268
13302
|
}
|
|
13269
13303
|
} catch {
|
|
@@ -14109,6 +14143,9 @@ const PageCanvas = forwardRef(
|
|
|
14109
14143
|
if (activeObj.__lastPointerForCrop) {
|
|
14110
14144
|
delete activeObj.__lastPointerForCrop;
|
|
14111
14145
|
}
|
|
14146
|
+
if (activeObj.__cornerResizeStart) {
|
|
14147
|
+
delete activeObj.__cornerResizeStart;
|
|
14148
|
+
}
|
|
14112
14149
|
}
|
|
14113
14150
|
if (!didTransformRef.current) {
|
|
14114
14151
|
editLockRef.current = false;
|
|
@@ -25167,9 +25204,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
25167
25204
|
}
|
|
25168
25205
|
return svgString;
|
|
25169
25206
|
}
|
|
25170
|
-
const resolvedPackageVersion = "0.5.
|
|
25207
|
+
const resolvedPackageVersion = "0.5.409";
|
|
25171
25208
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
25172
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
25209
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.409";
|
|
25173
25210
|
const roundParityValue = (value) => {
|
|
25174
25211
|
if (typeof value !== "number") return value;
|
|
25175
25212
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -25983,7 +26020,7 @@ class PixldocsRenderer {
|
|
|
25983
26020
|
await this.waitForCanvasScene(container, cloned, i);
|
|
25984
26021
|
}
|
|
25985
26022
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
25986
|
-
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-
|
|
26023
|
+
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-BZbppXw8.js");
|
|
25987
26024
|
const prepared = preparePagesForExport(
|
|
25988
26025
|
cloned.pages,
|
|
25989
26026
|
canvasWidth,
|
|
@@ -28303,7 +28340,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
28303
28340
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
28304
28341
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
28305
28342
|
try {
|
|
28306
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-
|
|
28343
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-BZbppXw8.js");
|
|
28307
28344
|
try {
|
|
28308
28345
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
28309
28346
|
} catch {
|
|
@@ -28703,4 +28740,4 @@ export {
|
|
|
28703
28740
|
buildTeaserBlurFlatKeys as y,
|
|
28704
28741
|
collectFontDescriptorsFromConfig as z
|
|
28705
28742
|
};
|
|
28706
|
-
//# sourceMappingURL=index-
|
|
28743
|
+
//# sourceMappingURL=index-DAOxGNQt.js.map
|