@pixldocs/canvas-renderer 0.5.394 → 0.5.395
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-CgnT1WJ6.js → index-Bl3vMS3U.js} +148 -33
- package/dist/index-Bl3vMS3U.js.map +1 -0
- package/dist/{index-mH5LwfhM.cjs → index-apZqfLuE.cjs} +148 -33
- package/dist/index-apZqfLuE.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-RJHpxl55.cjs → vectorPdfExport-BFZzT33a.cjs} +4 -4
- package/dist/{vectorPdfExport-RJHpxl55.cjs.map → vectorPdfExport-BFZzT33a.cjs.map} +1 -1
- package/dist/{vectorPdfExport-BUj20FDX.js → vectorPdfExport-DXadS763.js} +4 -4
- package/dist/{vectorPdfExport-BUj20FDX.js.map → vectorPdfExport-DXadS763.js.map} +1 -1
- package/package.json +1 -1
- package/dist/index-CgnT1WJ6.js.map +0 -1
- package/dist/index-mH5LwfhM.cjs.map +0 -1
|
@@ -11436,7 +11436,7 @@ const bakeTextboxScaleIntoTypography = (obj, sourceElement) => {
|
|
|
11436
11436
|
};
|
|
11437
11437
|
return updates;
|
|
11438
11438
|
};
|
|
11439
|
-
function applyWarpAwareSelectionBorders(selection, preferredGroupAngle) {
|
|
11439
|
+
function applyWarpAwareSelectionBorders(selection, preferredGroupAngle, preferredGroupFrame) {
|
|
11440
11440
|
var _a2;
|
|
11441
11441
|
if (selection.__pixldocsOrigASHasBorders !== void 0) {
|
|
11442
11442
|
selection.hasBorders = selection.__pixldocsOrigASHasBorders;
|
|
@@ -11499,7 +11499,8 @@ function applyWarpAwareSelectionBorders(selection, preferredGroupAngle) {
|
|
|
11499
11499
|
for (const b of buckets) b.area = orientedAreaForAngle(b.angle);
|
|
11500
11500
|
buckets.sort((a, b) => b.count - a.count || a.area - b.area || Math.abs(b.angle) - Math.abs(a.angle));
|
|
11501
11501
|
const dominant = buckets[0];
|
|
11502
|
-
const
|
|
11502
|
+
const rawPreferredGroupAngle = typeof preferredGroupAngle === "number" && Number.isFinite(preferredGroupAngle) ? preferredGroupAngle : typeof selection.__pixldocsGroupAngle === "number" && Number.isFinite(selection.__pixldocsGroupAngle) ? selection.__pixldocsGroupAngle : null;
|
|
11503
|
+
const preferredAngle = rawPreferredGroupAngle != null ? normalizeAngle180(rawPreferredGroupAngle) : null;
|
|
11503
11504
|
let targetAngle = preferredAngle;
|
|
11504
11505
|
const isLogicalGroupSelection = !!selection.__pixldocsGroupSelection;
|
|
11505
11506
|
if (targetAngle == null && dominant && Math.abs(dominant.angle) > 0.5 && (isLogicalGroupSelection || kids.length === 1 || dominant.count >= 2 || dominant.count === kids.length)) {
|
|
@@ -11543,11 +11544,30 @@ function applyWarpAwareSelectionBorders(selection, preferredGroupAngle) {
|
|
|
11543
11544
|
targetAngle,
|
|
11544
11545
|
worldAngles
|
|
11545
11546
|
});
|
|
11547
|
+
const fixedFrame = preferredGroupFrame && Number.isFinite(preferredGroupFrame.left) && Number.isFinite(preferredGroupFrame.top) && Number.isFinite(preferredGroupFrame.width) && preferredGroupFrame.width > 0 && Number.isFinite(preferredGroupFrame.height) && preferredGroupFrame.height > 0 ? preferredGroupFrame : null;
|
|
11546
11548
|
selection.set({ angle: targetAngle, scaleX: 1, scaleY: 1, skewX: 0, skewY: 0 });
|
|
11549
|
+
if (fixedFrame) {
|
|
11550
|
+
selection.set({ width: fixedFrame.width, height: fixedFrame.height, originX: "center", originY: "center" });
|
|
11551
|
+
selection.setPositionByOrigin(
|
|
11552
|
+
new fabric.Point(fixedFrame.left + fixedFrame.width / 2, fixedFrame.top + fixedFrame.height / 2),
|
|
11553
|
+
"center",
|
|
11554
|
+
"center"
|
|
11555
|
+
);
|
|
11556
|
+
}
|
|
11547
11557
|
restoreKidsFromWorld();
|
|
11548
|
-
|
|
11549
|
-
|
|
11550
|
-
|
|
11558
|
+
if (!fixedFrame) {
|
|
11559
|
+
try {
|
|
11560
|
+
(_a2 = selection.triggerLayout) == null ? void 0 : _a2.call(selection);
|
|
11561
|
+
} catch {
|
|
11562
|
+
}
|
|
11563
|
+
}
|
|
11564
|
+
if (fixedFrame) {
|
|
11565
|
+
selection.set({ width: fixedFrame.width, height: fixedFrame.height, originX: "center", originY: "center" });
|
|
11566
|
+
selection.setPositionByOrigin(
|
|
11567
|
+
new fabric.Point(fixedFrame.left + fixedFrame.width / 2, fixedFrame.top + fixedFrame.height / 2),
|
|
11568
|
+
"center",
|
|
11569
|
+
"center"
|
|
11570
|
+
);
|
|
11551
11571
|
}
|
|
11552
11572
|
restoreKidsFromWorld();
|
|
11553
11573
|
selection.setCoords();
|
|
@@ -11636,14 +11656,50 @@ const PageCanvas = forwardRef(
|
|
|
11636
11656
|
const [ready, setReady] = useState(false);
|
|
11637
11657
|
const [unlockRequestId, setUnlockRequestId] = useState(0);
|
|
11638
11658
|
const applyLogicalGroupSelectionVisualState = useCallback((selection, groupId) => {
|
|
11639
|
-
var _a2;
|
|
11659
|
+
var _a2, _b2;
|
|
11640
11660
|
selection.__pixldocsGroupSelection = groupId;
|
|
11641
11661
|
delete selection.__pixldocsLogicalGroupIds;
|
|
11642
11662
|
const pageNow = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId);
|
|
11643
11663
|
const groupNode = pageNow ? findNodeById(pageNow.children ?? [], groupId) : null;
|
|
11644
|
-
|
|
11645
|
-
if (groupAngle
|
|
11646
|
-
|
|
11664
|
+
let groupAngle = groupNode && isGroup(groupNode) && typeof groupNode.angle === "number" ? groupNode.angle : void 0;
|
|
11665
|
+
if (groupAngle === void 0 && groupNode && isGroup(groupNode)) {
|
|
11666
|
+
try {
|
|
11667
|
+
const kids = selection.getObjects();
|
|
11668
|
+
const selectionMatrix = selection.calcTransformMatrix();
|
|
11669
|
+
const worldAngles = kids.map((kid) => normalizeAngle180(fabric.util.qrDecompose(
|
|
11670
|
+
fabric.util.multiplyTransformMatrices(
|
|
11671
|
+
selectionMatrix,
|
|
11672
|
+
kid.calcOwnMatrix()
|
|
11673
|
+
)
|
|
11674
|
+
).angle ?? 0));
|
|
11675
|
+
const buckets = [];
|
|
11676
|
+
for (const angle of worldAngles) {
|
|
11677
|
+
const bucket = buckets.find((candidate) => Math.abs(normalizeAngle180(candidate.angle - angle)) <= 2);
|
|
11678
|
+
if (bucket) bucket.count += 1;
|
|
11679
|
+
else buckets.push({ angle, count: 1 });
|
|
11680
|
+
}
|
|
11681
|
+
buckets.sort((a, b) => b.count - a.count || Math.abs(b.angle) - Math.abs(a.angle));
|
|
11682
|
+
const inferredAngle = (_a2 = buckets[0]) == null ? void 0 : _a2.angle;
|
|
11683
|
+
if (typeof inferredAngle === "number" && Number.isFinite(inferredAngle) && Math.abs(inferredAngle) > 0.01) {
|
|
11684
|
+
groupAngle = inferredAngle;
|
|
11685
|
+
useEditorStore.getState().updateNode(
|
|
11686
|
+
groupId,
|
|
11687
|
+
{ angle: inferredAngle },
|
|
11688
|
+
{ recordHistory: false, skipLayoutRecalc: true }
|
|
11689
|
+
);
|
|
11690
|
+
}
|
|
11691
|
+
} catch {
|
|
11692
|
+
}
|
|
11693
|
+
}
|
|
11694
|
+
if (groupAngle !== void 0) {
|
|
11695
|
+
selection.__pixldocsGroupAngle = groupAngle;
|
|
11696
|
+
const aligned = selection.__pixldocsAlignedAngle;
|
|
11697
|
+
if (typeof aligned === "number" && Math.abs(normalizeAngle180(aligned - groupAngle)) > 0.01) {
|
|
11698
|
+
delete selection.__pixldocsAlignedAngle;
|
|
11699
|
+
}
|
|
11700
|
+
} else {
|
|
11701
|
+
delete selection.__pixldocsGroupAngle;
|
|
11702
|
+
}
|
|
11647
11703
|
selection.hasBorders = true;
|
|
11648
11704
|
const members = selection.getObjects();
|
|
11649
11705
|
for (const prev of suppressGroupMemberBordersRef.current) {
|
|
@@ -11668,7 +11724,7 @@ const PageCanvas = forwardRef(
|
|
|
11668
11724
|
if (m.__pixldocsOrigHasControls === void 0) m.__pixldocsOrigHasControls = m.hasControls;
|
|
11669
11725
|
m.hasBorders = false;
|
|
11670
11726
|
m.hasControls = false;
|
|
11671
|
-
if (m.__cropGroup || ((
|
|
11727
|
+
if (m.__cropGroup || ((_b2 = m._ct) == null ? void 0 : _b2.isCropGroup)) {
|
|
11672
11728
|
if (m.__pixldocsOrigLockScalingX === void 0) {
|
|
11673
11729
|
m.__pixldocsOrigLockScalingX = m.lockScalingX;
|
|
11674
11730
|
m.__pixldocsOrigLockScalingY = m.lockScalingY;
|
|
@@ -11677,7 +11733,22 @@ const PageCanvas = forwardRef(
|
|
|
11677
11733
|
m.lockScalingY = false;
|
|
11678
11734
|
}
|
|
11679
11735
|
}
|
|
11680
|
-
|
|
11736
|
+
const groupFrame = groupNode && isGroup(groupNode) ? (() => {
|
|
11737
|
+
try {
|
|
11738
|
+
const abs = getAbsoluteBounds(groupNode, (pageNow == null ? void 0 : pageNow.children) ?? []);
|
|
11739
|
+
const storedW = Number(groupNode.width);
|
|
11740
|
+
const storedH = Number(groupNode.height);
|
|
11741
|
+
return {
|
|
11742
|
+
left: abs.left,
|
|
11743
|
+
top: abs.top,
|
|
11744
|
+
width: Number.isFinite(storedW) && storedW > 0 ? storedW : abs.width,
|
|
11745
|
+
height: Number.isFinite(storedH) && storedH > 0 ? storedH : abs.height
|
|
11746
|
+
};
|
|
11747
|
+
} catch {
|
|
11748
|
+
return null;
|
|
11749
|
+
}
|
|
11750
|
+
})() : null;
|
|
11751
|
+
applyWarpAwareSelectionBorders(selection, groupAngle, groupFrame);
|
|
11681
11752
|
}, [pageId]);
|
|
11682
11753
|
const pageBoundsOptions = useMemo(
|
|
11683
11754
|
() => ({ pageContentWidth: canvasWidth, pageContentHeight: canvasHeight }),
|
|
@@ -11780,7 +11851,11 @@ const PageCanvas = forwardRef(
|
|
|
11780
11851
|
const activeMembers = activeBeforeRestore.getObjects();
|
|
11781
11852
|
const sameMembers = activeMembers.length === members.length && members.every((member) => activeMembers.includes(member));
|
|
11782
11853
|
const sameGroup = activeBeforeRestore.__pixldocsGroupSelection === groupId;
|
|
11783
|
-
const
|
|
11854
|
+
const pageNow = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId);
|
|
11855
|
+
const groupNode = pageNow ? findNodeById(pageNow.children ?? [], groupId) : null;
|
|
11856
|
+
const savedAngle = groupNode && isGroup(groupNode) && typeof groupNode.angle === "number" ? groupNode.angle : null;
|
|
11857
|
+
const alignedAngle = activeBeforeRestore.__pixldocsAlignedAngle;
|
|
11858
|
+
const alreadyAligned = typeof alignedAngle === "number" && (savedAngle == null || Math.abs(normalizeAngle180(alignedAngle - savedAngle)) <= 0.01);
|
|
11784
11859
|
if (sameMembers && sameGroup && alreadyAligned) {
|
|
11785
11860
|
ensureCanvaControlRenders(activeBeforeRestore);
|
|
11786
11861
|
return;
|
|
@@ -11797,9 +11872,11 @@ const PageCanvas = forwardRef(
|
|
|
11797
11872
|
members.forEach((m) => m.setCoords());
|
|
11798
11873
|
} catch {
|
|
11799
11874
|
}
|
|
11800
|
-
|
|
11801
|
-
|
|
11802
|
-
|
|
11875
|
+
if (!selection.__pixldocsGroupSelection) {
|
|
11876
|
+
try {
|
|
11877
|
+
(_a2 = selection.triggerLayout) == null ? void 0 : _a2.call(selection);
|
|
11878
|
+
} catch {
|
|
11879
|
+
}
|
|
11803
11880
|
}
|
|
11804
11881
|
selection.setCoords();
|
|
11805
11882
|
fc.requestRenderAll();
|
|
@@ -13247,6 +13324,8 @@ const PageCanvas = forwardRef(
|
|
|
13247
13324
|
selectionTop: rect.top,
|
|
13248
13325
|
groupLeft: groupAbs.left,
|
|
13249
13326
|
groupTop: groupAbs.top,
|
|
13327
|
+
groupWidth: groupAbs.width,
|
|
13328
|
+
groupHeight: groupAbs.height,
|
|
13250
13329
|
selectionAngle: ((active.angle ?? 0) % 360 + 360) % 360
|
|
13251
13330
|
};
|
|
13252
13331
|
logRotDriftSelectionSnapshot("transform-start", active, {
|
|
@@ -13414,7 +13493,11 @@ const PageCanvas = forwardRef(
|
|
|
13414
13493
|
const activeIds = active.getObjects().map((obj) => getObjectId(obj)).filter((id) => !!id && id !== "__background__");
|
|
13415
13494
|
const sameMembers = activeIds.length === snapshot.memberIds.length && snapshot.memberIds.every((id) => activeIds.includes(id));
|
|
13416
13495
|
const sameGroup = active.__pixldocsGroupSelection === snapshot.groupSelectionId;
|
|
13417
|
-
const
|
|
13496
|
+
const pageNow = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId);
|
|
13497
|
+
const groupNode = pageNow ? findNodeById(pageNow.children ?? [], snapshot.groupSelectionId) : null;
|
|
13498
|
+
const savedAngle = groupNode && isGroup(groupNode) && typeof groupNode.angle === "number" ? groupNode.angle : null;
|
|
13499
|
+
const alignedAngle = active.__pixldocsAlignedAngle;
|
|
13500
|
+
const alreadyAligned = typeof alignedAngle === "number" && (savedAngle == null || Math.abs(normalizeAngle180(alignedAngle - savedAngle)) <= 0.01);
|
|
13418
13501
|
if (sameMembers && sameGroup && alreadyAligned) {
|
|
13419
13502
|
ensureCanvaControlRenders(active);
|
|
13420
13503
|
return;
|
|
@@ -13571,6 +13654,31 @@ const PageCanvas = forwardRef(
|
|
|
13571
13654
|
}
|
|
13572
13655
|
if (members.length === 0) return null;
|
|
13573
13656
|
const savedGroupAngle = typeof g.angle === "number" && Number.isFinite(g.angle) ? normalizeAngle180(g.angle) : null;
|
|
13657
|
+
const savedGroupWidth = Number(g.width);
|
|
13658
|
+
const savedGroupHeight = Number(g.height);
|
|
13659
|
+
if (savedGroupAngle != null && savedGroupWidth > 0 && savedGroupHeight > 0) {
|
|
13660
|
+
const pageNow = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId);
|
|
13661
|
+
const pageChildrenNow = (pageNow == null ? void 0 : pageNow.children) ?? [];
|
|
13662
|
+
const abs = getAbsoluteBounds(g, pageChildrenNow);
|
|
13663
|
+
const cx = abs.left + savedGroupWidth / 2;
|
|
13664
|
+
const cy = abs.top + savedGroupHeight / 2;
|
|
13665
|
+
const rad2 = savedGroupAngle * Math.PI / 180;
|
|
13666
|
+
const c = Math.cos(rad2), s = Math.sin(rad2);
|
|
13667
|
+
const rotate = (x, y) => {
|
|
13668
|
+
const dx = x - cx;
|
|
13669
|
+
const dy = y - cy;
|
|
13670
|
+
return { x: cx + dx * c - dy * s, y: cy + dx * s + dy * c };
|
|
13671
|
+
};
|
|
13672
|
+
return {
|
|
13673
|
+
corners: [
|
|
13674
|
+
rotate(abs.left, abs.top),
|
|
13675
|
+
rotate(abs.left + savedGroupWidth, abs.top),
|
|
13676
|
+
rotate(abs.left + savedGroupWidth, abs.top + savedGroupHeight),
|
|
13677
|
+
rotate(abs.left, abs.top + savedGroupHeight)
|
|
13678
|
+
],
|
|
13679
|
+
angle: savedGroupAngle
|
|
13680
|
+
};
|
|
13681
|
+
}
|
|
13574
13682
|
const worldPoints = [];
|
|
13575
13683
|
for (const m of members) {
|
|
13576
13684
|
(_a2 = m.setCoords) == null ? void 0 : _a2.call(m);
|
|
@@ -14810,6 +14918,7 @@ const PageCanvas = forwardRef(
|
|
|
14810
14918
|
fabricCanvas.on("object:rotating", (e) => {
|
|
14811
14919
|
var _a2, _b2;
|
|
14812
14920
|
markSimpleTransform(e);
|
|
14921
|
+
prepareGroupSelectionTransformStart(e.target);
|
|
14813
14922
|
didTransformRef.current = true;
|
|
14814
14923
|
const tr = e.target;
|
|
14815
14924
|
if (shouldLogRotDriftLiveTick(tr, "rotating")) {
|
|
@@ -14999,7 +15108,7 @@ const PageCanvas = forwardRef(
|
|
|
14999
15108
|
const groupLeft = fabricCenterX - w / 2;
|
|
15000
15109
|
const groupTop = fabricCenterY - h / 2;
|
|
15001
15110
|
const storePosGroup = absoluteToStorePosition(groupLeft, groupTop, movedGroupId, pageChildrenSec);
|
|
15002
|
-
useEditorStore.getState().updateNode(movedGroupId, { left: storePosGroup.left, top: storePosGroup.top }, { recordHistory: false, skipLayoutRecalc: true });
|
|
15111
|
+
useEditorStore.getState().updateNode(movedGroupId, { left: storePosGroup.left, top: storePosGroup.top, angle: fabricSectionGroup.angle ?? 0 }, { recordHistory: false, skipLayoutRecalc: true });
|
|
15003
15112
|
}
|
|
15004
15113
|
commitHistory();
|
|
15005
15114
|
unlockEditsSoon();
|
|
@@ -15142,7 +15251,7 @@ const PageCanvas = forwardRef(
|
|
|
15142
15251
|
const groupLeft = centerX - w / 2;
|
|
15143
15252
|
const groupTop = centerY - h / 2;
|
|
15144
15253
|
const storePosGroup = absoluteToStorePosition(groupLeft, groupTop, groupId, pageChildrenSec);
|
|
15145
|
-
useEditorStore.getState().updateNode(groupId, { left: storePosGroup.left, top: storePosGroup.top }, { recordHistory: false, skipLayoutRecalc: true });
|
|
15254
|
+
useEditorStore.getState().updateNode(groupId, { left: storePosGroup.left, top: storePosGroup.top, angle: active.angle ?? 0 }, { recordHistory: false, skipLayoutRecalc: true });
|
|
15146
15255
|
}
|
|
15147
15256
|
const node = findNodeById(pageChildrenSec, groupId);
|
|
15148
15257
|
if (isChildModified && node && !groupMoved) {
|
|
@@ -15171,7 +15280,7 @@ const PageCanvas = forwardRef(
|
|
|
15171
15280
|
const groupLeft = active.originX === "center" ? centerX - w / 2 : centerX;
|
|
15172
15281
|
const groupTop = active.originY === "center" ? centerY - h / 2 : centerY;
|
|
15173
15282
|
const storePos = absoluteToStorePosition(groupLeft, groupTop, groupId, pageChildren3);
|
|
15174
|
-
useEditorStore.getState().updateNode(groupId, { left: storePos.left, top: storePos.top }, { recordHistory: false, skipLayoutRecalc: true });
|
|
15283
|
+
useEditorStore.getState().updateNode(groupId, { left: storePos.left, top: storePos.top, angle: active.angle ?? 0 }, { recordHistory: false, skipLayoutRecalc: true });
|
|
15175
15284
|
commitHistory();
|
|
15176
15285
|
unlockEditsSoon();
|
|
15177
15286
|
return;
|
|
@@ -15996,9 +16105,11 @@ const PageCanvas = forwardRef(
|
|
|
15996
16105
|
} catch {
|
|
15997
16106
|
}
|
|
15998
16107
|
fabricCanvas.setActiveObject(newSel);
|
|
15999
|
-
|
|
16000
|
-
|
|
16001
|
-
|
|
16108
|
+
if (!wasGroupSel) {
|
|
16109
|
+
try {
|
|
16110
|
+
(_j = newSel.triggerLayout) == null ? void 0 : _j.call(newSel);
|
|
16111
|
+
} catch {
|
|
16112
|
+
}
|
|
16002
16113
|
}
|
|
16003
16114
|
try {
|
|
16004
16115
|
for (const member of membersToReselect) member.setCoords();
|
|
@@ -16375,7 +16486,12 @@ const PageCanvas = forwardRef(
|
|
|
16375
16486
|
const prevAS = activeBeforeSync instanceof fabric.ActiveSelection ? activeBeforeSync : null;
|
|
16376
16487
|
const prevMembers = prevAS ? prevAS.getObjects() : [];
|
|
16377
16488
|
const sameMembers = !!prevAS && prevMembers.length === freshMembers.length && prevMembers.every((m) => freshMembers.includes(m));
|
|
16378
|
-
const
|
|
16489
|
+
const savedSnapshotAngle = activeSelectionSnapshot.groupSelectionId ? (() => {
|
|
16490
|
+
const groupNode = findNodeById(pageTree, activeSelectionSnapshot.groupSelectionId);
|
|
16491
|
+
return groupNode && isGroup(groupNode) && typeof groupNode.angle === "number" ? groupNode.angle : null;
|
|
16492
|
+
})() : null;
|
|
16493
|
+
const prevAlignedAngle = sameMembers ? prevAS.__pixldocsAlignedAngle : null;
|
|
16494
|
+
const alreadyAligned = sameMembers && typeof prevAlignedAngle === "number" && (savedSnapshotAngle == null || Math.abs(normalizeAngle180(prevAlignedAngle - savedSnapshotAngle)) <= 0.01);
|
|
16379
16495
|
if (sameMembers && alreadyAligned) {
|
|
16380
16496
|
try {
|
|
16381
16497
|
ensureCanvaControlRenders(prevAS);
|
|
@@ -17417,11 +17533,10 @@ const PageCanvas = forwardRef(
|
|
|
17417
17533
|
if (sameSelection && (isFlatGroupSelection || isPureSingleGroupSelection)) {
|
|
17418
17534
|
if (selectedGroupSelectionId && active instanceof fabric.ActiveSelection) {
|
|
17419
17535
|
if (isPureSingleGroupSelection) {
|
|
17420
|
-
active
|
|
17421
|
-
delete active.__pixldocsLogicalGroupIds;
|
|
17422
|
-
suppressGroupMemberBordersRef.current = active.getObjects();
|
|
17536
|
+
applyLogicalGroupSelectionVisualState(active, selectedGroupSelectionId);
|
|
17423
17537
|
} else {
|
|
17424
17538
|
delete active.__pixldocsGroupSelection;
|
|
17539
|
+
delete active.__pixldocsGroupAngle;
|
|
17425
17540
|
active.__pixldocsLogicalGroupIds = selectedGroupIds;
|
|
17426
17541
|
active.hasBorders = true;
|
|
17427
17542
|
suppressGroupMemberBordersRef.current = active.getObjects().filter((m) => {
|
|
@@ -17461,10 +17576,10 @@ const PageCanvas = forwardRef(
|
|
|
17461
17576
|
const selection = new fabric.ActiveSelection(toSelect, { canvas: fc });
|
|
17462
17577
|
if (selectedGroupSelectionId) {
|
|
17463
17578
|
if (isPureSingleGroupSelection) {
|
|
17464
|
-
selection
|
|
17465
|
-
suppressGroupMemberBordersRef.current = toSelect;
|
|
17579
|
+
applyLogicalGroupSelectionVisualState(selection, selectedGroupSelectionId);
|
|
17466
17580
|
} else {
|
|
17467
17581
|
selection.__pixldocsLogicalGroupIds = selectedGroupIds;
|
|
17582
|
+
delete selection.__pixldocsGroupAngle;
|
|
17468
17583
|
selection.hasBorders = true;
|
|
17469
17584
|
suppressGroupMemberBordersRef.current = toSelect.filter((m) => {
|
|
17470
17585
|
const id = getObjectId(m);
|
|
@@ -25107,9 +25222,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
25107
25222
|
}
|
|
25108
25223
|
return svgString;
|
|
25109
25224
|
}
|
|
25110
|
-
const resolvedPackageVersion = "0.5.
|
|
25225
|
+
const resolvedPackageVersion = "0.5.395";
|
|
25111
25226
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
25112
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
25227
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.395";
|
|
25113
25228
|
const roundParityValue = (value) => {
|
|
25114
25229
|
if (typeof value !== "number") return value;
|
|
25115
25230
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -25923,7 +26038,7 @@ class PixldocsRenderer {
|
|
|
25923
26038
|
await this.waitForCanvasScene(container, cloned, i);
|
|
25924
26039
|
}
|
|
25925
26040
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
25926
|
-
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-
|
|
26041
|
+
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-DXadS763.js");
|
|
25927
26042
|
const prepared = preparePagesForExport(
|
|
25928
26043
|
cloned.pages,
|
|
25929
26044
|
canvasWidth,
|
|
@@ -28243,7 +28358,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
28243
28358
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
28244
28359
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
28245
28360
|
try {
|
|
28246
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-
|
|
28361
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-DXadS763.js");
|
|
28247
28362
|
try {
|
|
28248
28363
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
28249
28364
|
} catch {
|
|
@@ -28643,4 +28758,4 @@ export {
|
|
|
28643
28758
|
buildTeaserBlurFlatKeys as y,
|
|
28644
28759
|
collectFontDescriptorsFromConfig as z
|
|
28645
28760
|
};
|
|
28646
|
-
//# sourceMappingURL=index-
|
|
28761
|
+
//# sourceMappingURL=index-Bl3vMS3U.js.map
|