@pixldocs/canvas-renderer 0.5.345 → 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-D4xGj5W4.cjs → index-C6VMQJMY.cjs} +56 -24
- package/dist/index-C6VMQJMY.cjs.map +1 -0
- package/dist/{index-wiw1EUl-.js → index-Jiw7-9ee.js} +56 -24
- package/dist/index-Jiw7-9ee.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-rFbeCudV.js → vectorPdfExport-Bbi4foK-.js} +4 -4
- package/dist/{vectorPdfExport-rFbeCudV.js.map → vectorPdfExport-Bbi4foK-.js.map} +1 -1
- package/dist/{vectorPdfExport-Mhjrus5I.cjs → vectorPdfExport-DRpVTciP.cjs} +4 -4
- package/dist/{vectorPdfExport-Mhjrus5I.cjs.map → vectorPdfExport-DRpVTciP.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/index-D4xGj5W4.cjs.map +0 -1
- package/dist/index-wiw1EUl-.js.map +0 -1
|
@@ -12345,6 +12345,7 @@ const PageCanvas = react.forwardRef(
|
|
|
12345
12345
|
selectionLeft: rect.left,
|
|
12346
12346
|
selectionTop: rect.top
|
|
12347
12347
|
};
|
|
12348
|
+
prepareGroupSelectionTransformStart(active);
|
|
12348
12349
|
}
|
|
12349
12350
|
if (fabricCanvas._currentTransform) {
|
|
12350
12351
|
fabricCanvas.__isUserTransforming = true;
|
|
@@ -14480,7 +14481,7 @@ const PageCanvas = react.forwardRef(
|
|
|
14480
14481
|
});
|
|
14481
14482
|
let cropGroupSaveTimer = null;
|
|
14482
14483
|
fabricCanvas.on("object:modified", (e) => {
|
|
14483
|
-
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k
|
|
14484
|
+
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
14484
14485
|
try {
|
|
14485
14486
|
dragStarted = false;
|
|
14486
14487
|
setGuides([]);
|
|
@@ -14988,9 +14989,8 @@ const PageCanvas = react.forwardRef(
|
|
|
14988
14989
|
}
|
|
14989
14990
|
if (!isActiveSelectionSideResize && !hadScale && !hadRotation && (Math.abs(deltaX) > 0.1 || Math.abs(deltaY) > 0.1)) {
|
|
14990
14991
|
const { updateNode: updateNodeStore, commitHistory: commitHistoryStore, getCurrentElements } = useEditorStore.getState();
|
|
14991
|
-
const
|
|
14992
|
-
|
|
14993
|
-
updateNodeStore(groupToMove.id, { left: newLeft, top: newTop }, { recordHistory: false, skipLayoutRecalc: true });
|
|
14992
|
+
const storePos = absoluteToStorePosition(movedGroupLeft, movedGroupTop, groupToMove.id, pageChildren2);
|
|
14993
|
+
updateNodeStore(groupToMove.id, { left: storePos.left, top: storePos.top }, { recordHistory: false, skipLayoutRecalc: true });
|
|
14994
14994
|
commitHistoryStore();
|
|
14995
14995
|
pendingGroupDrillInRef.current = null;
|
|
14996
14996
|
fabricCanvas.__activeEditingGroupId = null;
|
|
@@ -15032,7 +15032,35 @@ const PageCanvas = react.forwardRef(
|
|
|
15032
15032
|
const pendingCropGroupFrameBakes = [];
|
|
15033
15033
|
const logicalGroupSelectionId = activeObj instanceof fabric__namespace.ActiveSelection ? activeObj.__pixldocsGroupSelection : void 0;
|
|
15034
15034
|
const isLogicalGroupAS = !!logicalGroupSelectionId && !(activeObj == null ? void 0 : activeObj.__cropGroup) && !(activeObj == null ? void 0 : activeObj.__docuforgeSectionGroup);
|
|
15035
|
-
const
|
|
15035
|
+
const logicalGroupNodeForBake = logicalGroupSelectionId ? findNodeById(pageChildren2, logicalGroupSelectionId) : null;
|
|
15036
|
+
const asAngleForBake = isLogicalGroupAS && activeObj ? normalizeAngle(Number((logicalGroupNodeForBake == null ? void 0 : logicalGroupNodeForBake.angle) ?? activeObj.angle ?? 0)) : 0;
|
|
15037
|
+
const logicalGroupFinalFrame = (() => {
|
|
15038
|
+
var _a3;
|
|
15039
|
+
if (!isLogicalGroupAS || !logicalGroupSelectionId || !(activeObj instanceof fabric__namespace.ActiveSelection)) return null;
|
|
15040
|
+
const baseline = ((_a3 = groupSelectionTransformStartRef.current) == null ? void 0 : _a3.groupId) === logicalGroupSelectionId ? groupSelectionTransformStartRef.current : null;
|
|
15041
|
+
const localWidth = Math.max(1, (activeObj.width ?? (baseline == null ? void 0 : baseline.groupWidth) ?? 1) * Math.abs(activeObj.scaleX ?? 1));
|
|
15042
|
+
const localHeight = Math.max(1, (activeObj.height ?? (baseline == null ? void 0 : baseline.groupHeight) ?? 1) * Math.abs(activeObj.scaleY ?? 1));
|
|
15043
|
+
const center = activeObj.getCenterPoint();
|
|
15044
|
+
return {
|
|
15045
|
+
groupId: logicalGroupSelectionId,
|
|
15046
|
+
left: center.x - localWidth / 2,
|
|
15047
|
+
top: center.y - localHeight / 2,
|
|
15048
|
+
width: localWidth,
|
|
15049
|
+
height: localHeight,
|
|
15050
|
+
centerX: center.x,
|
|
15051
|
+
centerY: center.y,
|
|
15052
|
+
angle: asAngleForBake,
|
|
15053
|
+
matrix: fabric__namespace.util.composeMatrix({
|
|
15054
|
+
translateX: center.x,
|
|
15055
|
+
translateY: center.y,
|
|
15056
|
+
angle: asAngleForBake,
|
|
15057
|
+
scaleX: 1,
|
|
15058
|
+
scaleY: 1,
|
|
15059
|
+
skewX: 0,
|
|
15060
|
+
skewY: 0
|
|
15061
|
+
})
|
|
15062
|
+
};
|
|
15063
|
+
})();
|
|
15036
15064
|
for (const obj of activeObjects) {
|
|
15037
15065
|
const objId = getObjectId(obj);
|
|
15038
15066
|
if (!objId || objId === "__background__") continue;
|
|
@@ -15476,7 +15504,18 @@ const PageCanvas = react.forwardRef(
|
|
|
15476
15504
|
const state = useEditorStore.getState();
|
|
15477
15505
|
const page = state.canvas.pages.find((p) => p.id === pageId);
|
|
15478
15506
|
const pageChildrenForSave = (page == null ? void 0 : page.children) ?? [];
|
|
15479
|
-
const storePos =
|
|
15507
|
+
const storePos = (logicalGroupFinalFrame == null ? void 0 : logicalGroupFinalFrame.groupId) === logicalGroupSelectionId ? (() => {
|
|
15508
|
+
const localCenter = fabric__namespace.util.transformPoint(
|
|
15509
|
+
new fabric__namespace.Point(decomposed.translateX ?? 0, decomposed.translateY ?? 0),
|
|
15510
|
+
fabric__namespace.util.invertTransform(logicalGroupFinalFrame.matrix)
|
|
15511
|
+
);
|
|
15512
|
+
const localAngle = finalAngleFromDecomposed ? ((Number(finalAngle ?? 0) - asAngleForBake) % 360 + 540) % 360 - 180 : Number(finalAngle ?? 0);
|
|
15513
|
+
const localAngleRad = localAngle * Math.PI / 180;
|
|
15514
|
+
return {
|
|
15515
|
+
left: localCenter.x - finalWidth / 2 * Math.cos(localAngleRad) + finalHeight / 2 * Math.sin(localAngleRad) + logicalGroupFinalFrame.width / 2,
|
|
15516
|
+
top: localCenter.y - finalWidth / 2 * Math.sin(localAngleRad) - finalHeight / 2 * Math.cos(localAngleRad) + logicalGroupFinalFrame.height / 2
|
|
15517
|
+
};
|
|
15518
|
+
})() : absoluteToStorePosition(absoluteLeft, absoluteTop, objId, pageChildrenForSave);
|
|
15480
15519
|
if (isLogicalGroupAS && finalAngleFromDecomposed && typeof finalAngle === "number") {
|
|
15481
15520
|
finalAngle = ((finalAngle - asAngleForBake) % 360 + 540) % 360 - 180;
|
|
15482
15521
|
}
|
|
@@ -15545,28 +15584,21 @@ const PageCanvas = react.forwardRef(
|
|
|
15545
15584
|
try {
|
|
15546
15585
|
const pageChildrenForGroup = ((_j = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _j.children) ?? [];
|
|
15547
15586
|
const groupNode = findNodeById(pageChildrenForGroup, logicalGroupSelectionId);
|
|
15548
|
-
if (groupNode) {
|
|
15549
|
-
const
|
|
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);
|
|
15587
|
+
if (groupNode && logicalGroupFinalFrame) {
|
|
15588
|
+
const storePosGroup = absoluteToStorePosition(logicalGroupFinalFrame.left, logicalGroupFinalFrame.top, logicalGroupSelectionId, pageChildrenForGroup);
|
|
15559
15589
|
useEditorStore.getState().updateNode(logicalGroupSelectionId, {
|
|
15560
15590
|
left: storePosGroup.left,
|
|
15561
15591
|
top: storePosGroup.top,
|
|
15562
|
-
|
|
15592
|
+
width: logicalGroupFinalFrame.width,
|
|
15593
|
+
height: logicalGroupFinalFrame.height,
|
|
15594
|
+
angle: logicalGroupFinalFrame.angle
|
|
15563
15595
|
}, { recordHistory: false, skipLayoutRecalc: true });
|
|
15564
15596
|
}
|
|
15565
15597
|
} catch (err) {
|
|
15566
15598
|
console.warn("[Pixldocs] logical-group envelope persist failed", err);
|
|
15567
15599
|
}
|
|
15568
15600
|
}
|
|
15569
|
-
const pageChildrenForReflow = ((
|
|
15601
|
+
const pageChildrenForReflow = ((_k = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _k.children) ?? [];
|
|
15570
15602
|
const stackGroupsToReflow = /* @__PURE__ */ new Set();
|
|
15571
15603
|
for (const id of modifiedIdsThisRound) {
|
|
15572
15604
|
const parent = findParentGroup(pageChildrenForReflow, id);
|
|
@@ -24707,9 +24739,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
24707
24739
|
}
|
|
24708
24740
|
return svgString;
|
|
24709
24741
|
}
|
|
24710
|
-
const resolvedPackageVersion = "0.5.
|
|
24742
|
+
const resolvedPackageVersion = "0.5.346";
|
|
24711
24743
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
24712
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
24744
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.346";
|
|
24713
24745
|
const roundParityValue = (value) => {
|
|
24714
24746
|
if (typeof value !== "number") return value;
|
|
24715
24747
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -25523,7 +25555,7 @@ class PixldocsRenderer {
|
|
|
25523
25555
|
await this.waitForCanvasScene(container, cloned, i);
|
|
25524
25556
|
}
|
|
25525
25557
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
25526
|
-
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
25558
|
+
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-DRpVTciP.cjs"));
|
|
25527
25559
|
const prepared = preparePagesForExport(
|
|
25528
25560
|
cloned.pages,
|
|
25529
25561
|
canvasWidth,
|
|
@@ -27843,7 +27875,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
27843
27875
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
27844
27876
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
27845
27877
|
try {
|
|
27846
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
27878
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-DRpVTciP.cjs"));
|
|
27847
27879
|
try {
|
|
27848
27880
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
27849
27881
|
} catch {
|
|
@@ -28240,4 +28272,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
|
|
|
28240
28272
|
exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
|
|
28241
28273
|
exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
|
|
28242
28274
|
exports.warmTemplateFromForm = warmTemplateFromForm;
|
|
28243
|
-
//# sourceMappingURL=index-
|
|
28275
|
+
//# sourceMappingURL=index-C6VMQJMY.cjs.map
|