@pixldocs/canvas-renderer 0.5.345 → 0.5.347
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-wiw1EUl-.js → index-BV35-LzJ.js} +59 -29
- package/dist/index-BV35-LzJ.js.map +1 -0
- package/dist/{index-D4xGj5W4.cjs → index-ap13xnH3.cjs} +59 -29
- package/dist/index-ap13xnH3.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-rFbeCudV.js → vectorPdfExport-DVIaYc4_.js} +4 -4
- package/dist/{vectorPdfExport-rFbeCudV.js.map → vectorPdfExport-DVIaYc4_.js.map} +1 -1
- package/dist/{vectorPdfExport-Mhjrus5I.cjs → vectorPdfExport-dKHuR_jl.cjs} +4 -4
- package/dist/{vectorPdfExport-Mhjrus5I.cjs.map → vectorPdfExport-dKHuR_jl.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
|
@@ -11234,6 +11234,7 @@ function applyWarpAwareSelectionBorders(selection) {
|
|
|
11234
11234
|
}
|
|
11235
11235
|
selection.hasBorders = true;
|
|
11236
11236
|
selection.hasControls = true;
|
|
11237
|
+
if (selection.__pixldocsGroupSelection) return;
|
|
11237
11238
|
try {
|
|
11238
11239
|
if (selection.__pixldocsAlignedAngle == null) {
|
|
11239
11240
|
const kids = selection.getObjects();
|
|
@@ -12345,6 +12346,7 @@ const PageCanvas = react.forwardRef(
|
|
|
12345
12346
|
selectionLeft: rect.left,
|
|
12346
12347
|
selectionTop: rect.top
|
|
12347
12348
|
};
|
|
12349
|
+
prepareGroupSelectionTransformStart(active);
|
|
12348
12350
|
}
|
|
12349
12351
|
if (fabricCanvas._currentTransform) {
|
|
12350
12352
|
fabricCanvas.__isUserTransforming = true;
|
|
@@ -14480,7 +14482,7 @@ const PageCanvas = react.forwardRef(
|
|
|
14480
14482
|
});
|
|
14481
14483
|
let cropGroupSaveTimer = null;
|
|
14482
14484
|
fabricCanvas.on("object:modified", (e) => {
|
|
14483
|
-
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k
|
|
14485
|
+
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k;
|
|
14484
14486
|
try {
|
|
14485
14487
|
dragStarted = false;
|
|
14486
14488
|
setGuides([]);
|
|
@@ -14988,9 +14990,8 @@ const PageCanvas = react.forwardRef(
|
|
|
14988
14990
|
}
|
|
14989
14991
|
if (!isActiveSelectionSideResize && !hadScale && !hadRotation && (Math.abs(deltaX) > 0.1 || Math.abs(deltaY) > 0.1)) {
|
|
14990
14992
|
const { updateNode: updateNodeStore, commitHistory: commitHistoryStore, getCurrentElements } = useEditorStore.getState();
|
|
14991
|
-
const
|
|
14992
|
-
|
|
14993
|
-
updateNodeStore(groupToMove.id, { left: newLeft, top: newTop }, { recordHistory: false, skipLayoutRecalc: true });
|
|
14993
|
+
const storePos = absoluteToStorePosition(movedGroupLeft, movedGroupTop, groupToMove.id, pageChildren2);
|
|
14994
|
+
updateNodeStore(groupToMove.id, { left: storePos.left, top: storePos.top }, { recordHistory: false, skipLayoutRecalc: true });
|
|
14994
14995
|
commitHistoryStore();
|
|
14995
14996
|
pendingGroupDrillInRef.current = null;
|
|
14996
14997
|
fabricCanvas.__activeEditingGroupId = null;
|
|
@@ -15032,7 +15033,35 @@ const PageCanvas = react.forwardRef(
|
|
|
15032
15033
|
const pendingCropGroupFrameBakes = [];
|
|
15033
15034
|
const logicalGroupSelectionId = activeObj instanceof fabric__namespace.ActiveSelection ? activeObj.__pixldocsGroupSelection : void 0;
|
|
15034
15035
|
const isLogicalGroupAS = !!logicalGroupSelectionId && !(activeObj == null ? void 0 : activeObj.__cropGroup) && !(activeObj == null ? void 0 : activeObj.__docuforgeSectionGroup);
|
|
15035
|
-
const
|
|
15036
|
+
const logicalGroupNodeForBake = logicalGroupSelectionId ? findNodeById(pageChildren2, logicalGroupSelectionId) : null;
|
|
15037
|
+
const asAngleForBake = isLogicalGroupAS && activeObj ? normalizeAngle(Number((logicalGroupNodeForBake == null ? void 0 : logicalGroupNodeForBake.angle) ?? activeObj.angle ?? 0)) : 0;
|
|
15038
|
+
const logicalGroupFinalFrame = (() => {
|
|
15039
|
+
var _a3;
|
|
15040
|
+
if (!isLogicalGroupAS || !logicalGroupSelectionId || !(activeObj instanceof fabric__namespace.ActiveSelection)) return null;
|
|
15041
|
+
const baseline = ((_a3 = groupSelectionTransformStartRef.current) == null ? void 0 : _a3.groupId) === logicalGroupSelectionId ? groupSelectionTransformStartRef.current : null;
|
|
15042
|
+
const localWidth = Math.max(1, (activeObj.width ?? (baseline == null ? void 0 : baseline.groupWidth) ?? 1) * Math.abs(activeObj.scaleX ?? 1));
|
|
15043
|
+
const localHeight = Math.max(1, (activeObj.height ?? (baseline == null ? void 0 : baseline.groupHeight) ?? 1) * Math.abs(activeObj.scaleY ?? 1));
|
|
15044
|
+
const center = activeObj.getCenterPoint();
|
|
15045
|
+
return {
|
|
15046
|
+
groupId: logicalGroupSelectionId,
|
|
15047
|
+
left: center.x - localWidth / 2,
|
|
15048
|
+
top: center.y - localHeight / 2,
|
|
15049
|
+
width: localWidth,
|
|
15050
|
+
height: localHeight,
|
|
15051
|
+
centerX: center.x,
|
|
15052
|
+
centerY: center.y,
|
|
15053
|
+
angle: asAngleForBake,
|
|
15054
|
+
matrix: fabric__namespace.util.composeMatrix({
|
|
15055
|
+
translateX: center.x,
|
|
15056
|
+
translateY: center.y,
|
|
15057
|
+
angle: asAngleForBake,
|
|
15058
|
+
scaleX: 1,
|
|
15059
|
+
scaleY: 1,
|
|
15060
|
+
skewX: 0,
|
|
15061
|
+
skewY: 0
|
|
15062
|
+
})
|
|
15063
|
+
};
|
|
15064
|
+
})();
|
|
15036
15065
|
for (const obj of activeObjects) {
|
|
15037
15066
|
const objId = getObjectId(obj);
|
|
15038
15067
|
if (!objId || objId === "__background__") continue;
|
|
@@ -15476,7 +15505,18 @@ const PageCanvas = react.forwardRef(
|
|
|
15476
15505
|
const state = useEditorStore.getState();
|
|
15477
15506
|
const page = state.canvas.pages.find((p) => p.id === pageId);
|
|
15478
15507
|
const pageChildrenForSave = (page == null ? void 0 : page.children) ?? [];
|
|
15479
|
-
const storePos =
|
|
15508
|
+
const storePos = (logicalGroupFinalFrame == null ? void 0 : logicalGroupFinalFrame.groupId) === logicalGroupSelectionId ? (() => {
|
|
15509
|
+
const localCenter = fabric__namespace.util.transformPoint(
|
|
15510
|
+
new fabric__namespace.Point(decomposed.translateX ?? 0, decomposed.translateY ?? 0),
|
|
15511
|
+
fabric__namespace.util.invertTransform(logicalGroupFinalFrame.matrix)
|
|
15512
|
+
);
|
|
15513
|
+
const localAngle = finalAngleFromDecomposed ? ((Number(finalAngle ?? 0) - asAngleForBake) % 360 + 540) % 360 - 180 : Number(finalAngle ?? 0);
|
|
15514
|
+
const localAngleRad = localAngle * Math.PI / 180;
|
|
15515
|
+
return {
|
|
15516
|
+
left: localCenter.x - finalWidth / 2 * Math.cos(localAngleRad) + finalHeight / 2 * Math.sin(localAngleRad) + logicalGroupFinalFrame.width / 2,
|
|
15517
|
+
top: localCenter.y - finalWidth / 2 * Math.sin(localAngleRad) - finalHeight / 2 * Math.cos(localAngleRad) + logicalGroupFinalFrame.height / 2
|
|
15518
|
+
};
|
|
15519
|
+
})() : absoluteToStorePosition(absoluteLeft, absoluteTop, objId, pageChildrenForSave);
|
|
15480
15520
|
if (isLogicalGroupAS && finalAngleFromDecomposed && typeof finalAngle === "number") {
|
|
15481
15521
|
finalAngle = ((finalAngle - asAngleForBake) % 360 + 540) % 360 - 180;
|
|
15482
15522
|
}
|
|
@@ -15545,28 +15585,21 @@ const PageCanvas = react.forwardRef(
|
|
|
15545
15585
|
try {
|
|
15546
15586
|
const pageChildrenForGroup = ((_j = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _j.children) ?? [];
|
|
15547
15587
|
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);
|
|
15588
|
+
if (groupNode && logicalGroupFinalFrame) {
|
|
15589
|
+
const storePosGroup = absoluteToStorePosition(logicalGroupFinalFrame.left, logicalGroupFinalFrame.top, logicalGroupSelectionId, pageChildrenForGroup);
|
|
15559
15590
|
useEditorStore.getState().updateNode(logicalGroupSelectionId, {
|
|
15560
15591
|
left: storePosGroup.left,
|
|
15561
15592
|
top: storePosGroup.top,
|
|
15562
|
-
|
|
15593
|
+
width: logicalGroupFinalFrame.width,
|
|
15594
|
+
height: logicalGroupFinalFrame.height,
|
|
15595
|
+
angle: logicalGroupFinalFrame.angle
|
|
15563
15596
|
}, { recordHistory: false, skipLayoutRecalc: true });
|
|
15564
15597
|
}
|
|
15565
15598
|
} catch (err) {
|
|
15566
15599
|
console.warn("[Pixldocs] logical-group envelope persist failed", err);
|
|
15567
15600
|
}
|
|
15568
15601
|
}
|
|
15569
|
-
const pageChildrenForReflow = ((
|
|
15602
|
+
const pageChildrenForReflow = ((_k = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _k.children) ?? [];
|
|
15570
15603
|
const stackGroupsToReflow = /* @__PURE__ */ new Set();
|
|
15571
15604
|
for (const id of modifiedIdsThisRound) {
|
|
15572
15605
|
const parent = findParentGroup(pageChildrenForReflow, id);
|
|
@@ -17029,9 +17062,7 @@ const PageCanvas = react.forwardRef(
|
|
|
17029
17062
|
if (sameSelection && isFlatGroupSelection) {
|
|
17030
17063
|
if (selectedGroupSelectionId && active instanceof fabric__namespace.ActiveSelection) {
|
|
17031
17064
|
if (isPureSingleGroupSelection) {
|
|
17032
|
-
active
|
|
17033
|
-
delete active.__pixldocsLogicalGroupIds;
|
|
17034
|
-
suppressGroupMemberBordersRef.current = active.getObjects();
|
|
17065
|
+
applyLogicalGroupSelectionVisualState(active, selectedGroupSelectionId);
|
|
17035
17066
|
} else {
|
|
17036
17067
|
delete active.__pixldocsGroupSelection;
|
|
17037
17068
|
active.__pixldocsLogicalGroupIds = selectedGroupIds;
|
|
@@ -17071,8 +17102,7 @@ const PageCanvas = react.forwardRef(
|
|
|
17071
17102
|
const selection = new fabric__namespace.ActiveSelection(toSelect, { canvas: fc });
|
|
17072
17103
|
if (selectedGroupSelectionId) {
|
|
17073
17104
|
if (isPureSingleGroupSelection) {
|
|
17074
|
-
selection
|
|
17075
|
-
suppressGroupMemberBordersRef.current = toSelect;
|
|
17105
|
+
applyLogicalGroupSelectionVisualState(selection, selectedGroupSelectionId);
|
|
17076
17106
|
} else {
|
|
17077
17107
|
selection.__pixldocsLogicalGroupIds = selectedGroupIds;
|
|
17078
17108
|
selection.hasBorders = true;
|
|
@@ -24707,9 +24737,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
24707
24737
|
}
|
|
24708
24738
|
return svgString;
|
|
24709
24739
|
}
|
|
24710
|
-
const resolvedPackageVersion = "0.5.
|
|
24740
|
+
const resolvedPackageVersion = "0.5.347";
|
|
24711
24741
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
24712
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
24742
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.347";
|
|
24713
24743
|
const roundParityValue = (value) => {
|
|
24714
24744
|
if (typeof value !== "number") return value;
|
|
24715
24745
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -25523,7 +25553,7 @@ class PixldocsRenderer {
|
|
|
25523
25553
|
await this.waitForCanvasScene(container, cloned, i);
|
|
25524
25554
|
}
|
|
25525
25555
|
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-
|
|
25556
|
+
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-dKHuR_jl.cjs"));
|
|
25527
25557
|
const prepared = preparePagesForExport(
|
|
25528
25558
|
cloned.pages,
|
|
25529
25559
|
canvasWidth,
|
|
@@ -27843,7 +27873,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
27843
27873
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
27844
27874
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
27845
27875
|
try {
|
|
27846
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
27876
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-dKHuR_jl.cjs"));
|
|
27847
27877
|
try {
|
|
27848
27878
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
27849
27879
|
} catch {
|
|
@@ -28240,4 +28270,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
|
|
|
28240
28270
|
exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
|
|
28241
28271
|
exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
|
|
28242
28272
|
exports.warmTemplateFromForm = warmTemplateFromForm;
|
|
28243
|
-
//# sourceMappingURL=index-
|
|
28273
|
+
//# sourceMappingURL=index-ap13xnH3.cjs.map
|