@pixldocs/canvas-renderer 0.5.344 → 0.5.346
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-Byw3hiCQ.cjs → index-C6VMQJMY.cjs} +78 -11
- package/dist/index-C6VMQJMY.cjs.map +1 -0
- package/dist/{index-C-BVebqn.js → index-Jiw7-9ee.js} +78 -11
- package/dist/index-Jiw7-9ee.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-C2_f1pzv.js → vectorPdfExport-Bbi4foK-.js} +4 -4
- package/dist/{vectorPdfExport-C2_f1pzv.js.map → vectorPdfExport-Bbi4foK-.js.map} +1 -1
- package/dist/{vectorPdfExport-DslpfbFV.cjs → vectorPdfExport-DRpVTciP.cjs} +4 -4
- package/dist/{vectorPdfExport-DslpfbFV.cjs.map → vectorPdfExport-DRpVTciP.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/index-Byw3hiCQ.cjs.map +0 -1
- package/dist/index-C-BVebqn.js.map +0 -1
|
@@ -12327,6 +12327,7 @@ const PageCanvas = forwardRef(
|
|
|
12327
12327
|
selectionLeft: rect.left,
|
|
12328
12328
|
selectionTop: rect.top
|
|
12329
12329
|
};
|
|
12330
|
+
prepareGroupSelectionTransformStart(active);
|
|
12330
12331
|
}
|
|
12331
12332
|
if (fabricCanvas._currentTransform) {
|
|
12332
12333
|
fabricCanvas.__isUserTransforming = true;
|
|
@@ -14462,7 +14463,7 @@ const PageCanvas = forwardRef(
|
|
|
14462
14463
|
});
|
|
14463
14464
|
let cropGroupSaveTimer = null;
|
|
14464
14465
|
fabricCanvas.on("object:modified", (e) => {
|
|
14465
|
-
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
14466
|
+
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
14466
14467
|
try {
|
|
14467
14468
|
dragStarted = false;
|
|
14468
14469
|
setGuides([]);
|
|
@@ -14970,9 +14971,8 @@ const PageCanvas = forwardRef(
|
|
|
14970
14971
|
}
|
|
14971
14972
|
if (!isActiveSelectionSideResize && !hadScale && !hadRotation && (Math.abs(deltaX) > 0.1 || Math.abs(deltaY) > 0.1)) {
|
|
14972
14973
|
const { updateNode: updateNodeStore, commitHistory: commitHistoryStore, getCurrentElements } = useEditorStore.getState();
|
|
14973
|
-
const
|
|
14974
|
-
|
|
14975
|
-
updateNodeStore(groupToMove.id, { left: newLeft, top: newTop }, { recordHistory: false, skipLayoutRecalc: true });
|
|
14974
|
+
const storePos = absoluteToStorePosition(movedGroupLeft, movedGroupTop, groupToMove.id, pageChildren2);
|
|
14975
|
+
updateNodeStore(groupToMove.id, { left: storePos.left, top: storePos.top }, { recordHistory: false, skipLayoutRecalc: true });
|
|
14976
14976
|
commitHistoryStore();
|
|
14977
14977
|
pendingGroupDrillInRef.current = null;
|
|
14978
14978
|
fabricCanvas.__activeEditingGroupId = null;
|
|
@@ -15012,6 +15012,37 @@ const PageCanvas = forwardRef(
|
|
|
15012
15012
|
}
|
|
15013
15013
|
}
|
|
15014
15014
|
const pendingCropGroupFrameBakes = [];
|
|
15015
|
+
const logicalGroupSelectionId = activeObj instanceof fabric.ActiveSelection ? activeObj.__pixldocsGroupSelection : void 0;
|
|
15016
|
+
const isLogicalGroupAS = !!logicalGroupSelectionId && !(activeObj == null ? void 0 : activeObj.__cropGroup) && !(activeObj == null ? void 0 : activeObj.__docuforgeSectionGroup);
|
|
15017
|
+
const logicalGroupNodeForBake = logicalGroupSelectionId ? findNodeById(pageChildren2, logicalGroupSelectionId) : null;
|
|
15018
|
+
const asAngleForBake = isLogicalGroupAS && activeObj ? normalizeAngle(Number((logicalGroupNodeForBake == null ? void 0 : logicalGroupNodeForBake.angle) ?? activeObj.angle ?? 0)) : 0;
|
|
15019
|
+
const logicalGroupFinalFrame = (() => {
|
|
15020
|
+
var _a3;
|
|
15021
|
+
if (!isLogicalGroupAS || !logicalGroupSelectionId || !(activeObj instanceof fabric.ActiveSelection)) return null;
|
|
15022
|
+
const baseline = ((_a3 = groupSelectionTransformStartRef.current) == null ? void 0 : _a3.groupId) === logicalGroupSelectionId ? groupSelectionTransformStartRef.current : null;
|
|
15023
|
+
const localWidth = Math.max(1, (activeObj.width ?? (baseline == null ? void 0 : baseline.groupWidth) ?? 1) * Math.abs(activeObj.scaleX ?? 1));
|
|
15024
|
+
const localHeight = Math.max(1, (activeObj.height ?? (baseline == null ? void 0 : baseline.groupHeight) ?? 1) * Math.abs(activeObj.scaleY ?? 1));
|
|
15025
|
+
const center = activeObj.getCenterPoint();
|
|
15026
|
+
return {
|
|
15027
|
+
groupId: logicalGroupSelectionId,
|
|
15028
|
+
left: center.x - localWidth / 2,
|
|
15029
|
+
top: center.y - localHeight / 2,
|
|
15030
|
+
width: localWidth,
|
|
15031
|
+
height: localHeight,
|
|
15032
|
+
centerX: center.x,
|
|
15033
|
+
centerY: center.y,
|
|
15034
|
+
angle: asAngleForBake,
|
|
15035
|
+
matrix: fabric.util.composeMatrix({
|
|
15036
|
+
translateX: center.x,
|
|
15037
|
+
translateY: center.y,
|
|
15038
|
+
angle: asAngleForBake,
|
|
15039
|
+
scaleX: 1,
|
|
15040
|
+
scaleY: 1,
|
|
15041
|
+
skewX: 0,
|
|
15042
|
+
skewY: 0
|
|
15043
|
+
})
|
|
15044
|
+
};
|
|
15045
|
+
})();
|
|
15015
15046
|
for (const obj of activeObjects) {
|
|
15016
15047
|
const objId = getObjectId(obj);
|
|
15017
15048
|
if (!objId || objId === "__background__") continue;
|
|
@@ -15102,6 +15133,7 @@ const PageCanvas = forwardRef(
|
|
|
15102
15133
|
let finalAngle = decomposed.angle;
|
|
15103
15134
|
let finalSkewX = decomposed.skewX;
|
|
15104
15135
|
let finalSkewY = decomposed.skewY;
|
|
15136
|
+
let finalAngleFromDecomposed = true;
|
|
15105
15137
|
if (obj instanceof fabric.Group && obj.__cropGroup) {
|
|
15106
15138
|
const ct = obj.__cropData;
|
|
15107
15139
|
if (ct) {
|
|
@@ -15164,6 +15196,7 @@ const PageCanvas = forwardRef(
|
|
|
15164
15196
|
finalAngle = (sourceElement == null ? void 0 : sourceElement.angle) ?? obj.angle ?? decomposed.angle;
|
|
15165
15197
|
finalSkewX = (sourceElement == null ? void 0 : sourceElement.skewX) ?? obj.skewX ?? 0;
|
|
15166
15198
|
finalSkewY = (sourceElement == null ? void 0 : sourceElement.skewY) ?? obj.skewY ?? 0;
|
|
15199
|
+
if ((sourceElement == null ? void 0 : sourceElement.angle) !== void 0 || obj.angle !== void 0) finalAngleFromDecomposed = false;
|
|
15167
15200
|
}
|
|
15168
15201
|
obj.set({ scaleX: 1, scaleY: 1 });
|
|
15169
15202
|
const newSrc = renderSmartElementToDataUri(sourceElement.smartElementType, sourceElement.smartProps, bakedW, bakedH);
|
|
@@ -15231,6 +15264,7 @@ const PageCanvas = forwardRef(
|
|
|
15231
15264
|
finalAngle = (sourceElement == null ? void 0 : sourceElement.angle) ?? obj.angle ?? decomposed.angle;
|
|
15232
15265
|
finalSkewX = (sourceElement == null ? void 0 : sourceElement.skewX) ?? obj.skewX ?? 0;
|
|
15233
15266
|
finalSkewY = (sourceElement == null ? void 0 : sourceElement.skewY) ?? obj.skewY ?? 0;
|
|
15267
|
+
if ((sourceElement == null ? void 0 : sourceElement.angle) !== void 0 || obj.angle !== void 0) finalAngleFromDecomposed = false;
|
|
15234
15268
|
}
|
|
15235
15269
|
try {
|
|
15236
15270
|
const angleRad = (finalAngle ?? 0) * Math.PI / 180;
|
|
@@ -15296,6 +15330,7 @@ const PageCanvas = forwardRef(
|
|
|
15296
15330
|
finalAngle = (sourceElement == null ? void 0 : sourceElement.angle) ?? obj.angle ?? decomposed.angle;
|
|
15297
15331
|
finalSkewX = (sourceElement == null ? void 0 : sourceElement.skewX) ?? obj.skewX ?? 0;
|
|
15298
15332
|
finalSkewY = (sourceElement == null ? void 0 : sourceElement.skewY) ?? obj.skewY ?? 0;
|
|
15333
|
+
if ((sourceElement == null ? void 0 : sourceElement.angle) !== void 0 || obj.angle !== void 0) finalAngleFromDecomposed = false;
|
|
15299
15334
|
}
|
|
15300
15335
|
} else if (obj instanceof fabric.Textbox && isActiveSelection && (Math.abs((decomposed.scaleX ?? 1) - 1) > 1e-3 || Math.abs((decomposed.scaleY ?? 1) - 1) > 1e-3)) {
|
|
15301
15336
|
const sx = Math.abs(decomposed.scaleX || 1);
|
|
@@ -15451,7 +15486,21 @@ const PageCanvas = forwardRef(
|
|
|
15451
15486
|
const state = useEditorStore.getState();
|
|
15452
15487
|
const page = state.canvas.pages.find((p) => p.id === pageId);
|
|
15453
15488
|
const pageChildrenForSave = (page == null ? void 0 : page.children) ?? [];
|
|
15454
|
-
const storePos =
|
|
15489
|
+
const storePos = (logicalGroupFinalFrame == null ? void 0 : logicalGroupFinalFrame.groupId) === logicalGroupSelectionId ? (() => {
|
|
15490
|
+
const localCenter = fabric.util.transformPoint(
|
|
15491
|
+
new fabric.Point(decomposed.translateX ?? 0, decomposed.translateY ?? 0),
|
|
15492
|
+
fabric.util.invertTransform(logicalGroupFinalFrame.matrix)
|
|
15493
|
+
);
|
|
15494
|
+
const localAngle = finalAngleFromDecomposed ? ((Number(finalAngle ?? 0) - asAngleForBake) % 360 + 540) % 360 - 180 : Number(finalAngle ?? 0);
|
|
15495
|
+
const localAngleRad = localAngle * Math.PI / 180;
|
|
15496
|
+
return {
|
|
15497
|
+
left: localCenter.x - finalWidth / 2 * Math.cos(localAngleRad) + finalHeight / 2 * Math.sin(localAngleRad) + logicalGroupFinalFrame.width / 2,
|
|
15498
|
+
top: localCenter.y - finalWidth / 2 * Math.sin(localAngleRad) - finalHeight / 2 * Math.cos(localAngleRad) + logicalGroupFinalFrame.height / 2
|
|
15499
|
+
};
|
|
15500
|
+
})() : absoluteToStorePosition(absoluteLeft, absoluteTop, objId, pageChildrenForSave);
|
|
15501
|
+
if (isLogicalGroupAS && finalAngleFromDecomposed && typeof finalAngle === "number") {
|
|
15502
|
+
finalAngle = ((finalAngle - asAngleForBake) % 360 + 540) % 360 - 180;
|
|
15503
|
+
}
|
|
15455
15504
|
const isLineObj = obj instanceof fabric.Line;
|
|
15456
15505
|
const isAutoShrinkText = (sourceElement == null ? void 0 : sourceElement.type) === "text" && sourceElement.overflowPolicy === "auto-shrink";
|
|
15457
15506
|
const autoShrinkStoredHeight = isAutoShrinkText ? sourceElement.height : void 0;
|
|
@@ -15513,7 +15562,25 @@ const PageCanvas = forwardRef(
|
|
|
15513
15562
|
updateElement(objId, elementUpdate, { recordHistory: false, skipLayoutRecalc: true });
|
|
15514
15563
|
obj.setCoords();
|
|
15515
15564
|
}
|
|
15516
|
-
|
|
15565
|
+
if (isLogicalGroupAS && logicalGroupSelectionId && activeObj instanceof fabric.ActiveSelection) {
|
|
15566
|
+
try {
|
|
15567
|
+
const pageChildrenForGroup = ((_j = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _j.children) ?? [];
|
|
15568
|
+
const groupNode = findNodeById(pageChildrenForGroup, logicalGroupSelectionId);
|
|
15569
|
+
if (groupNode && logicalGroupFinalFrame) {
|
|
15570
|
+
const storePosGroup = absoluteToStorePosition(logicalGroupFinalFrame.left, logicalGroupFinalFrame.top, logicalGroupSelectionId, pageChildrenForGroup);
|
|
15571
|
+
useEditorStore.getState().updateNode(logicalGroupSelectionId, {
|
|
15572
|
+
left: storePosGroup.left,
|
|
15573
|
+
top: storePosGroup.top,
|
|
15574
|
+
width: logicalGroupFinalFrame.width,
|
|
15575
|
+
height: logicalGroupFinalFrame.height,
|
|
15576
|
+
angle: logicalGroupFinalFrame.angle
|
|
15577
|
+
}, { recordHistory: false, skipLayoutRecalc: true });
|
|
15578
|
+
}
|
|
15579
|
+
} catch (err) {
|
|
15580
|
+
console.warn("[Pixldocs] logical-group envelope persist failed", err);
|
|
15581
|
+
}
|
|
15582
|
+
}
|
|
15583
|
+
const pageChildrenForReflow = ((_k = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _k.children) ?? [];
|
|
15517
15584
|
const stackGroupsToReflow = /* @__PURE__ */ new Set();
|
|
15518
15585
|
for (const id of modifiedIdsThisRound) {
|
|
15519
15586
|
const parent = findParentGroup(pageChildrenForReflow, id);
|
|
@@ -24654,9 +24721,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
24654
24721
|
}
|
|
24655
24722
|
return svgString;
|
|
24656
24723
|
}
|
|
24657
|
-
const resolvedPackageVersion = "0.5.
|
|
24724
|
+
const resolvedPackageVersion = "0.5.346";
|
|
24658
24725
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
24659
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
24726
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.346";
|
|
24660
24727
|
const roundParityValue = (value) => {
|
|
24661
24728
|
if (typeof value !== "number") return value;
|
|
24662
24729
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -25470,7 +25537,7 @@ class PixldocsRenderer {
|
|
|
25470
25537
|
await this.waitForCanvasScene(container, cloned, i);
|
|
25471
25538
|
}
|
|
25472
25539
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
25473
|
-
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-
|
|
25540
|
+
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-Bbi4foK-.js");
|
|
25474
25541
|
const prepared = preparePagesForExport(
|
|
25475
25542
|
cloned.pages,
|
|
25476
25543
|
canvasWidth,
|
|
@@ -27790,7 +27857,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
27790
27857
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
27791
27858
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
27792
27859
|
try {
|
|
27793
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-
|
|
27860
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-Bbi4foK-.js");
|
|
27794
27861
|
try {
|
|
27795
27862
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
27796
27863
|
} catch {
|
|
@@ -28190,4 +28257,4 @@ export {
|
|
|
28190
28257
|
buildTeaserBlurFlatKeys as y,
|
|
28191
28258
|
collectFontDescriptorsFromConfig as z
|
|
28192
28259
|
};
|
|
28193
|
-
//# sourceMappingURL=index-
|
|
28260
|
+
//# sourceMappingURL=index-Jiw7-9ee.js.map
|