@pixldocs/canvas-renderer 0.5.343 → 0.5.345
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-BVDxgitP.cjs → index-D4xGj5W4.cjs} +47 -10
- package/dist/index-D4xGj5W4.cjs.map +1 -0
- package/dist/{index-JXiTI3jA.js → index-wiw1EUl-.js} +47 -10
- package/dist/index-wiw1EUl-.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-CdDnoHs2.cjs → vectorPdfExport-Mhjrus5I.cjs} +4 -4
- package/dist/{vectorPdfExport-CdDnoHs2.cjs.map → vectorPdfExport-Mhjrus5I.cjs.map} +1 -1
- package/dist/{vectorPdfExport-DWz1fLQ7.js → vectorPdfExport-rFbeCudV.js} +4 -4
- package/dist/{vectorPdfExport-DWz1fLQ7.js.map → vectorPdfExport-rFbeCudV.js.map} +1 -1
- package/package.json +1 -1
- package/dist/index-BVDxgitP.cjs.map +0 -1
- package/dist/index-JXiTI3jA.js.map +0 -1
|
@@ -14480,7 +14480,7 @@ const PageCanvas = react.forwardRef(
|
|
|
14480
14480
|
});
|
|
14481
14481
|
let cropGroupSaveTimer = null;
|
|
14482
14482
|
fabricCanvas.on("object:modified", (e) => {
|
|
14483
|
-
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
14483
|
+
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
14484
14484
|
try {
|
|
14485
14485
|
dragStarted = false;
|
|
14486
14486
|
setGuides([]);
|
|
@@ -14942,13 +14942,15 @@ const PageCanvas = react.forwardRef(
|
|
|
14942
14942
|
const hadScale = isActiveSelection && activeObj && (hadResizeHandle || Math.abs((activeObj.scaleX ?? 1) - 1) > 0.01 || Math.abs((activeObj.scaleY ?? 1) - 1) > 0.01);
|
|
14943
14943
|
const startSelAngle = normalizeAngle((transformStart == null ? void 0 : transformStart.selectionAngle) ?? 0);
|
|
14944
14944
|
const currentSelAngle = isActiveSelection && activeObj ? normalizeAngle(activeObj.angle ?? 0) : 0;
|
|
14945
|
-
const
|
|
14945
|
+
const storedGroupAngle = normalizeAngle(Number(groupToMove.angle ?? 0));
|
|
14946
|
+
const effectiveStartAngle = transformStart ? startSelAngle : storedGroupAngle;
|
|
14947
|
+
const angleDelta = shortestAngleDelta(currentSelAngle, effectiveStartAngle);
|
|
14946
14948
|
const hadRotation = isActiveSelection && activeObj && angleDelta > 0.01;
|
|
14947
14949
|
if (activeGroupSelectionId === groupToMove.id && hadRotation && !hadScale && !activeSelectionResizeHandle && activeObj instanceof fabric__namespace.ActiveSelection) {
|
|
14948
14950
|
const { updateNode: updateNodeStore, commitHistory: commitHistoryStore, getCurrentElements } = useEditorStore.getState();
|
|
14949
14951
|
const center = activeObj.getCenterPoint();
|
|
14950
|
-
const baseCenterX = (transformStart == null ? void 0 : transformStart.selectionCenterX) ??
|
|
14951
|
-
const baseCenterY = (transformStart == null ? void 0 : transformStart.selectionCenterY) ??
|
|
14952
|
+
const baseCenterX = (transformStart == null ? void 0 : transformStart.selectionCenterX) ?? groupAbs.left + groupAbs.width / 2;
|
|
14953
|
+
const baseCenterY = (transformStart == null ? void 0 : transformStart.selectionCenterY) ?? groupAbs.top + groupAbs.height / 2;
|
|
14952
14954
|
const nextAbsLeft = groupAbs.left + (center.x - baseCenterX);
|
|
14953
14955
|
const nextAbsTop = groupAbs.top + (center.y - baseCenterY);
|
|
14954
14956
|
const storePos = absoluteToStorePosition(nextAbsLeft, nextAbsTop, groupToMove.id, pageChildren2);
|
|
@@ -15028,6 +15030,9 @@ const PageCanvas = react.forwardRef(
|
|
|
15028
15030
|
}
|
|
15029
15031
|
}
|
|
15030
15032
|
const pendingCropGroupFrameBakes = [];
|
|
15033
|
+
const logicalGroupSelectionId = activeObj instanceof fabric__namespace.ActiveSelection ? activeObj.__pixldocsGroupSelection : void 0;
|
|
15034
|
+
const isLogicalGroupAS = !!logicalGroupSelectionId && !(activeObj == null ? void 0 : activeObj.__cropGroup) && !(activeObj == null ? void 0 : activeObj.__docuforgeSectionGroup);
|
|
15035
|
+
const asAngleForBake = isLogicalGroupAS && activeObj ? normalizeAngle(activeObj.angle ?? 0) : 0;
|
|
15031
15036
|
for (const obj of activeObjects) {
|
|
15032
15037
|
const objId = getObjectId(obj);
|
|
15033
15038
|
if (!objId || objId === "__background__") continue;
|
|
@@ -15118,6 +15123,7 @@ const PageCanvas = react.forwardRef(
|
|
|
15118
15123
|
let finalAngle = decomposed.angle;
|
|
15119
15124
|
let finalSkewX = decomposed.skewX;
|
|
15120
15125
|
let finalSkewY = decomposed.skewY;
|
|
15126
|
+
let finalAngleFromDecomposed = true;
|
|
15121
15127
|
if (obj instanceof fabric__namespace.Group && obj.__cropGroup) {
|
|
15122
15128
|
const ct = obj.__cropData;
|
|
15123
15129
|
if (ct) {
|
|
@@ -15180,6 +15186,7 @@ const PageCanvas = react.forwardRef(
|
|
|
15180
15186
|
finalAngle = (sourceElement == null ? void 0 : sourceElement.angle) ?? obj.angle ?? decomposed.angle;
|
|
15181
15187
|
finalSkewX = (sourceElement == null ? void 0 : sourceElement.skewX) ?? obj.skewX ?? 0;
|
|
15182
15188
|
finalSkewY = (sourceElement == null ? void 0 : sourceElement.skewY) ?? obj.skewY ?? 0;
|
|
15189
|
+
if ((sourceElement == null ? void 0 : sourceElement.angle) !== void 0 || obj.angle !== void 0) finalAngleFromDecomposed = false;
|
|
15183
15190
|
}
|
|
15184
15191
|
obj.set({ scaleX: 1, scaleY: 1 });
|
|
15185
15192
|
const newSrc = renderSmartElementToDataUri(sourceElement.smartElementType, sourceElement.smartProps, bakedW, bakedH);
|
|
@@ -15247,6 +15254,7 @@ const PageCanvas = react.forwardRef(
|
|
|
15247
15254
|
finalAngle = (sourceElement == null ? void 0 : sourceElement.angle) ?? obj.angle ?? decomposed.angle;
|
|
15248
15255
|
finalSkewX = (sourceElement == null ? void 0 : sourceElement.skewX) ?? obj.skewX ?? 0;
|
|
15249
15256
|
finalSkewY = (sourceElement == null ? void 0 : sourceElement.skewY) ?? obj.skewY ?? 0;
|
|
15257
|
+
if ((sourceElement == null ? void 0 : sourceElement.angle) !== void 0 || obj.angle !== void 0) finalAngleFromDecomposed = false;
|
|
15250
15258
|
}
|
|
15251
15259
|
try {
|
|
15252
15260
|
const angleRad = (finalAngle ?? 0) * Math.PI / 180;
|
|
@@ -15312,6 +15320,7 @@ const PageCanvas = react.forwardRef(
|
|
|
15312
15320
|
finalAngle = (sourceElement == null ? void 0 : sourceElement.angle) ?? obj.angle ?? decomposed.angle;
|
|
15313
15321
|
finalSkewX = (sourceElement == null ? void 0 : sourceElement.skewX) ?? obj.skewX ?? 0;
|
|
15314
15322
|
finalSkewY = (sourceElement == null ? void 0 : sourceElement.skewY) ?? obj.skewY ?? 0;
|
|
15323
|
+
if ((sourceElement == null ? void 0 : sourceElement.angle) !== void 0 || obj.angle !== void 0) finalAngleFromDecomposed = false;
|
|
15315
15324
|
}
|
|
15316
15325
|
} else if (obj instanceof fabric__namespace.Textbox && isActiveSelection && (Math.abs((decomposed.scaleX ?? 1) - 1) > 1e-3 || Math.abs((decomposed.scaleY ?? 1) - 1) > 1e-3)) {
|
|
15317
15326
|
const sx = Math.abs(decomposed.scaleX || 1);
|
|
@@ -15468,6 +15477,9 @@ const PageCanvas = react.forwardRef(
|
|
|
15468
15477
|
const page = state.canvas.pages.find((p) => p.id === pageId);
|
|
15469
15478
|
const pageChildrenForSave = (page == null ? void 0 : page.children) ?? [];
|
|
15470
15479
|
const storePos = absoluteToStorePosition(absoluteLeft, absoluteTop, objId, pageChildrenForSave);
|
|
15480
|
+
if (isLogicalGroupAS && finalAngleFromDecomposed && typeof finalAngle === "number") {
|
|
15481
|
+
finalAngle = ((finalAngle - asAngleForBake) % 360 + 540) % 360 - 180;
|
|
15482
|
+
}
|
|
15471
15483
|
const isLineObj = obj instanceof fabric__namespace.Line;
|
|
15472
15484
|
const isAutoShrinkText = (sourceElement == null ? void 0 : sourceElement.type) === "text" && sourceElement.overflowPolicy === "auto-shrink";
|
|
15473
15485
|
const autoShrinkStoredHeight = isAutoShrinkText ? sourceElement.height : void 0;
|
|
@@ -15529,7 +15541,32 @@ const PageCanvas = react.forwardRef(
|
|
|
15529
15541
|
updateElement(objId, elementUpdate, { recordHistory: false, skipLayoutRecalc: true });
|
|
15530
15542
|
obj.setCoords();
|
|
15531
15543
|
}
|
|
15532
|
-
|
|
15544
|
+
if (isLogicalGroupAS && logicalGroupSelectionId && activeObj instanceof fabric__namespace.ActiveSelection) {
|
|
15545
|
+
try {
|
|
15546
|
+
const pageChildrenForGroup = ((_j = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _j.children) ?? [];
|
|
15547
|
+
const groupNode = findNodeById(pageChildrenForGroup, logicalGroupSelectionId);
|
|
15548
|
+
if (groupNode) {
|
|
15549
|
+
const baseline = ((_k = groupSelectionTransformStartRef.current) == null ? void 0 : _k.groupId) === logicalGroupSelectionId ? groupSelectionTransformStartRef.current : null;
|
|
15550
|
+
const center = activeObj.getCenterPoint();
|
|
15551
|
+
const prevAbs = getAbsoluteBounds(groupNode, pageChildrenForGroup, pageBoundsOptions);
|
|
15552
|
+
const baseCenterX = (baseline == null ? void 0 : baseline.selectionCenterX) ?? prevAbs.left + prevAbs.width / 2;
|
|
15553
|
+
const baseCenterY = (baseline == null ? void 0 : baseline.selectionCenterY) ?? prevAbs.top + prevAbs.height / 2;
|
|
15554
|
+
const baseLeft = (baseline == null ? void 0 : baseline.groupLeft) ?? prevAbs.left;
|
|
15555
|
+
const baseTop = (baseline == null ? void 0 : baseline.groupTop) ?? prevAbs.top;
|
|
15556
|
+
const newAbsLeft = baseLeft + (center.x - baseCenterX);
|
|
15557
|
+
const newAbsTop = baseTop + (center.y - baseCenterY);
|
|
15558
|
+
const storePosGroup = absoluteToStorePosition(newAbsLeft, newAbsTop, logicalGroupSelectionId, pageChildrenForGroup);
|
|
15559
|
+
useEditorStore.getState().updateNode(logicalGroupSelectionId, {
|
|
15560
|
+
left: storePosGroup.left,
|
|
15561
|
+
top: storePosGroup.top,
|
|
15562
|
+
angle: asAngleForBake
|
|
15563
|
+
}, { recordHistory: false, skipLayoutRecalc: true });
|
|
15564
|
+
}
|
|
15565
|
+
} catch (err) {
|
|
15566
|
+
console.warn("[Pixldocs] logical-group envelope persist failed", err);
|
|
15567
|
+
}
|
|
15568
|
+
}
|
|
15569
|
+
const pageChildrenForReflow = ((_l = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _l.children) ?? [];
|
|
15533
15570
|
const stackGroupsToReflow = /* @__PURE__ */ new Set();
|
|
15534
15571
|
for (const id of modifiedIdsThisRound) {
|
|
15535
15572
|
const parent = findParentGroup(pageChildrenForReflow, id);
|
|
@@ -24670,9 +24707,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
24670
24707
|
}
|
|
24671
24708
|
return svgString;
|
|
24672
24709
|
}
|
|
24673
|
-
const resolvedPackageVersion = "0.5.
|
|
24710
|
+
const resolvedPackageVersion = "0.5.345";
|
|
24674
24711
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
24675
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
24712
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.345";
|
|
24676
24713
|
const roundParityValue = (value) => {
|
|
24677
24714
|
if (typeof value !== "number") return value;
|
|
24678
24715
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -25486,7 +25523,7 @@ class PixldocsRenderer {
|
|
|
25486
25523
|
await this.waitForCanvasScene(container, cloned, i);
|
|
25487
25524
|
}
|
|
25488
25525
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
25489
|
-
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
25526
|
+
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-Mhjrus5I.cjs"));
|
|
25490
25527
|
const prepared = preparePagesForExport(
|
|
25491
25528
|
cloned.pages,
|
|
25492
25529
|
canvasWidth,
|
|
@@ -27806,7 +27843,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
27806
27843
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
27807
27844
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
27808
27845
|
try {
|
|
27809
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
27846
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-Mhjrus5I.cjs"));
|
|
27810
27847
|
try {
|
|
27811
27848
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
27812
27849
|
} catch {
|
|
@@ -28203,4 +28240,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
|
|
|
28203
28240
|
exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
|
|
28204
28241
|
exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
|
|
28205
28242
|
exports.warmTemplateFromForm = warmTemplateFromForm;
|
|
28206
|
-
//# sourceMappingURL=index-
|
|
28243
|
+
//# sourceMappingURL=index-D4xGj5W4.cjs.map
|