@pixldocs/canvas-renderer 0.5.348 → 0.5.349
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-CaQvuDpL.cjs → index-CwQ8bAR_.cjs} +139 -48
- package/dist/index-CwQ8bAR_.cjs.map +1 -0
- package/dist/{index-BbbkWYa_.js → index-wt6naIdE.js} +139 -48
- package/dist/index-wt6naIdE.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-CXxYlE0-.js → vectorPdfExport-B8sTK3Ew.js} +4 -4
- package/dist/{vectorPdfExport-CXxYlE0-.js.map → vectorPdfExport-B8sTK3Ew.js.map} +1 -1
- package/dist/{vectorPdfExport-IeTP9Bi1.cjs → vectorPdfExport-eaaea4kH.cjs} +4 -4
- package/dist/{vectorPdfExport-IeTP9Bi1.cjs.map → vectorPdfExport-eaaea4kH.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/index-BbbkWYa_.js.map +0 -1
- package/dist/index-CaQvuDpL.cjs.map +0 -1
|
@@ -11208,6 +11208,95 @@ const rotatedTopLeftToCenter = (left, top, width, height, angleDeg = 0) => {
|
|
|
11208
11208
|
y: top + width / 2 * sin + height / 2 * cos
|
|
11209
11209
|
};
|
|
11210
11210
|
};
|
|
11211
|
+
const normalizeSignedAngle = (angle) => (angle % 360 + 540) % 360 - 180;
|
|
11212
|
+
const getGroupTransformFrame = (group, pageChildren, options) => {
|
|
11213
|
+
const bounds = getNodeBounds(group, pageChildren);
|
|
11214
|
+
const width = Math.max(1, Number(group.width ?? bounds.width) || bounds.width || 1);
|
|
11215
|
+
const height = Math.max(1, Number(group.height ?? bounds.height) || bounds.height || 1);
|
|
11216
|
+
return {
|
|
11217
|
+
left: Number(group.left ?? bounds.left ?? 0) || 0,
|
|
11218
|
+
top: Number(group.top ?? bounds.top ?? 0) || 0,
|
|
11219
|
+
width,
|
|
11220
|
+
height,
|
|
11221
|
+
angle: Number(group.angle ?? 0) || 0
|
|
11222
|
+
};
|
|
11223
|
+
};
|
|
11224
|
+
const getGroupLocalToParentMatrix = (group, pageChildren, options) => {
|
|
11225
|
+
const frame = getGroupTransformFrame(group, pageChildren);
|
|
11226
|
+
const rad = frame.angle * Math.PI / 180;
|
|
11227
|
+
const cos = Math.cos(rad);
|
|
11228
|
+
const sin = Math.sin(rad);
|
|
11229
|
+
const centerX = frame.left + frame.width / 2;
|
|
11230
|
+
const centerY = frame.top + frame.height / 2;
|
|
11231
|
+
return [
|
|
11232
|
+
cos,
|
|
11233
|
+
sin,
|
|
11234
|
+
-sin,
|
|
11235
|
+
cos,
|
|
11236
|
+
centerX - cos * frame.width / 2 + sin * frame.height / 2,
|
|
11237
|
+
centerY - sin * frame.width / 2 - cos * frame.height / 2
|
|
11238
|
+
];
|
|
11239
|
+
};
|
|
11240
|
+
const getAncestorGroupTransform = (nodeId, pageChildren, options) => {
|
|
11241
|
+
let matrix = [1, 0, 0, 1, 0, 0];
|
|
11242
|
+
let angle = 0;
|
|
11243
|
+
const chain = [];
|
|
11244
|
+
let currentId = nodeId;
|
|
11245
|
+
for (let guard = 0; guard < 32; guard++) {
|
|
11246
|
+
const parent = findParentGroup(pageChildren, currentId);
|
|
11247
|
+
if (!parent) break;
|
|
11248
|
+
chain.unshift(parent);
|
|
11249
|
+
currentId = parent.id;
|
|
11250
|
+
}
|
|
11251
|
+
for (const group of chain) {
|
|
11252
|
+
matrix = fabric.util.multiplyTransformMatrices(
|
|
11253
|
+
matrix,
|
|
11254
|
+
getGroupLocalToParentMatrix(group, pageChildren)
|
|
11255
|
+
);
|
|
11256
|
+
angle += Number(group.angle ?? 0) || 0;
|
|
11257
|
+
}
|
|
11258
|
+
return { matrix, angle: normalizeSignedAngle(angle) };
|
|
11259
|
+
};
|
|
11260
|
+
const getElementFabricPlacement = (element, pageChildren, options) => {
|
|
11261
|
+
if (!pageChildren.length) {
|
|
11262
|
+
return { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
11263
|
+
}
|
|
11264
|
+
const ancestor = getAncestorGroupTransform(element.id, pageChildren);
|
|
11265
|
+
const point = fabric.util.transformPoint(
|
|
11266
|
+
new fabric.Point(element.left ?? 0, element.top ?? 0),
|
|
11267
|
+
ancestor.matrix
|
|
11268
|
+
);
|
|
11269
|
+
return {
|
|
11270
|
+
left: point.x,
|
|
11271
|
+
top: point.y,
|
|
11272
|
+
angle: normalizeSignedAngle(ancestor.angle + Number(element.angle ?? 0))
|
|
11273
|
+
};
|
|
11274
|
+
};
|
|
11275
|
+
const centerToRotatedTopLeft = (centerX, centerY, width, height, angleDeg = 0) => {
|
|
11276
|
+
const angle = angleDeg * Math.PI / 180;
|
|
11277
|
+
const cos = Math.cos(angle);
|
|
11278
|
+
const sin = Math.sin(angle);
|
|
11279
|
+
return {
|
|
11280
|
+
left: centerX - width / 2 * cos + height / 2 * sin,
|
|
11281
|
+
top: centerY - width / 2 * sin - height / 2 * cos
|
|
11282
|
+
};
|
|
11283
|
+
};
|
|
11284
|
+
const getGroupAbsoluteTransformFrame = (group, pageChildren, options) => {
|
|
11285
|
+
const frame = getGroupTransformFrame(group, pageChildren);
|
|
11286
|
+
const ancestor = getAncestorGroupTransform(group.id, pageChildren);
|
|
11287
|
+
const centerLocal = rotatedTopLeftToCenter(frame.left, frame.top, frame.width, frame.height, frame.angle);
|
|
11288
|
+
const center = fabric.util.transformPoint(new fabric.Point(centerLocal.x, centerLocal.y), ancestor.matrix);
|
|
11289
|
+
const topLeft = fabric.util.transformPoint(new fabric.Point(frame.left, frame.top), ancestor.matrix);
|
|
11290
|
+
return {
|
|
11291
|
+
left: topLeft.x,
|
|
11292
|
+
top: topLeft.y,
|
|
11293
|
+
width: frame.width,
|
|
11294
|
+
height: frame.height,
|
|
11295
|
+
centerX: center.x,
|
|
11296
|
+
centerY: center.y,
|
|
11297
|
+
angle: normalizeSignedAngle(ancestor.angle + frame.angle)
|
|
11298
|
+
};
|
|
11299
|
+
};
|
|
11211
11300
|
function applyWarpAwareSelectionBorders(selection) {
|
|
11212
11301
|
var _a2;
|
|
11213
11302
|
if (selection.__pixldocsOrigASHasBorders !== void 0) {
|
|
@@ -11356,13 +11445,13 @@ const PageCanvas = forwardRef(
|
|
|
11356
11445
|
));
|
|
11357
11446
|
const pageChildren2 = ((_a2 = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _a2.children) ?? [];
|
|
11358
11447
|
const groupNode = findNodeById(pageChildren2, groupId);
|
|
11359
|
-
const
|
|
11360
|
-
const
|
|
11448
|
+
const groupFrame = groupNode && isGroup(groupNode) ? getGroupAbsoluteTransformFrame(groupNode, pageChildren2, pageBoundsOptions) : null;
|
|
11449
|
+
const groupAngle = groupFrame ? groupFrame.angle : 0;
|
|
11361
11450
|
if (Number.isFinite(groupAngle)) {
|
|
11362
11451
|
selection.set({ angle: groupAngle, scaleX: 1, scaleY: 1, skewX: 0, skewY: 0 });
|
|
11363
|
-
if (
|
|
11452
|
+
if (groupFrame) {
|
|
11364
11453
|
selection.setPositionByOrigin(
|
|
11365
|
-
new fabric.Point(
|
|
11454
|
+
new fabric.Point(groupFrame.centerX, groupFrame.centerY),
|
|
11366
11455
|
"center",
|
|
11367
11456
|
"center"
|
|
11368
11457
|
);
|
|
@@ -12848,9 +12937,10 @@ const PageCanvas = forwardRef(
|
|
|
12848
12937
|
const pageChildren2 = ((_b2 = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _b2.children) ?? [];
|
|
12849
12938
|
const groupNode = findNodeById(pageChildren2, groupId);
|
|
12850
12939
|
if (!groupNode) return;
|
|
12851
|
-
const
|
|
12940
|
+
const groupFrame = isGroup(groupNode) ? getGroupAbsoluteTransformFrame(groupNode, pageChildren2) : null;
|
|
12941
|
+
const groupAbs = groupFrame ?? getAbsoluteBounds(groupNode, pageChildren2);
|
|
12852
12942
|
const rect = active.getBoundingRect();
|
|
12853
|
-
const center = active.getCenterPoint();
|
|
12943
|
+
const center = groupFrame ? new fabric.Point(groupFrame.centerX, groupFrame.centerY) : active.getCenterPoint();
|
|
12854
12944
|
groupSelectionTransformStartRef.current = {
|
|
12855
12945
|
groupId,
|
|
12856
12946
|
selection: active,
|
|
@@ -12862,7 +12952,7 @@ const PageCanvas = forwardRef(
|
|
|
12862
12952
|
groupTop: groupAbs.top,
|
|
12863
12953
|
groupWidth: groupAbs.width,
|
|
12864
12954
|
groupHeight: groupAbs.height,
|
|
12865
|
-
selectionAngle: ((active.angle ?? 0) % 360 + 360) % 360
|
|
12955
|
+
selectionAngle: (((groupFrame == null ? void 0 : groupFrame.angle) ?? active.angle ?? 0) % 360 + 360) % 360
|
|
12866
12956
|
};
|
|
12867
12957
|
};
|
|
12868
12958
|
const restoreGroupSelectionVisualState = (selection, groupId) => {
|
|
@@ -15034,7 +15124,7 @@ const PageCanvas = forwardRef(
|
|
|
15034
15124
|
const logicalGroupSelectionId = activeObj instanceof fabric.ActiveSelection ? activeObj.__pixldocsGroupSelection : void 0;
|
|
15035
15125
|
const isLogicalGroupAS = !!logicalGroupSelectionId && !(activeObj == null ? void 0 : activeObj.__cropGroup) && !(activeObj == null ? void 0 : activeObj.__docuforgeSectionGroup);
|
|
15036
15126
|
const logicalGroupNodeForBake = logicalGroupSelectionId ? findNodeById(pageChildren2, logicalGroupSelectionId) : null;
|
|
15037
|
-
const asAngleForBake = isLogicalGroupAS && activeObj ? normalizeAngle(Number(
|
|
15127
|
+
const asAngleForBake = isLogicalGroupAS && activeObj ? normalizeAngle(Number(activeObj.angle ?? 0)) : 0;
|
|
15038
15128
|
const logicalGroupFinalFrame = (() => {
|
|
15039
15129
|
var _a3;
|
|
15040
15130
|
if (!isLogicalGroupAS || !logicalGroupSelectionId || !(activeObj instanceof fabric.ActiveSelection)) return null;
|
|
@@ -15042,10 +15132,11 @@ const PageCanvas = forwardRef(
|
|
|
15042
15132
|
const localWidth = Math.max(1, (activeObj.width ?? (baseline == null ? void 0 : baseline.groupWidth) ?? 1) * Math.abs(activeObj.scaleX ?? 1));
|
|
15043
15133
|
const localHeight = Math.max(1, (activeObj.height ?? (baseline == null ? void 0 : baseline.groupHeight) ?? 1) * Math.abs(activeObj.scaleY ?? 1));
|
|
15044
15134
|
const center = activeObj.getCenterPoint();
|
|
15135
|
+
const topLeft = centerToRotatedTopLeft(center.x, center.y, localWidth, localHeight, asAngleForBake);
|
|
15045
15136
|
return {
|
|
15046
15137
|
groupId: logicalGroupSelectionId,
|
|
15047
|
-
left:
|
|
15048
|
-
top:
|
|
15138
|
+
left: topLeft.left,
|
|
15139
|
+
top: topLeft.top,
|
|
15049
15140
|
width: localWidth,
|
|
15050
15141
|
height: localHeight,
|
|
15051
15142
|
centerX: center.x,
|
|
@@ -15107,16 +15198,15 @@ const PageCanvas = forwardRef(
|
|
|
15107
15198
|
modifiedIdsThisRound.add(objId);
|
|
15108
15199
|
let absoluteLeft;
|
|
15109
15200
|
let absoluteTop;
|
|
15110
|
-
|
|
15111
|
-
|
|
15112
|
-
|
|
15113
|
-
|
|
15114
|
-
|
|
15115
|
-
|
|
15116
|
-
|
|
15117
|
-
|
|
15118
|
-
|
|
15119
|
-
}
|
|
15201
|
+
const initialTopLeft = centerToRotatedTopLeft(
|
|
15202
|
+
decomposed.translateX ?? (obj.left ?? 0),
|
|
15203
|
+
decomposed.translateY ?? (obj.top ?? 0),
|
|
15204
|
+
intrinsicWidth * Math.abs(decomposed.scaleX || 1),
|
|
15205
|
+
intrinsicHeight * Math.abs(decomposed.scaleY || 1),
|
|
15206
|
+
decomposed.angle ?? 0
|
|
15207
|
+
);
|
|
15208
|
+
absoluteLeft = initialTopLeft.left;
|
|
15209
|
+
absoluteTop = initialTopLeft.top;
|
|
15120
15210
|
if (obj instanceof fabric.Group && obj.__cropGroup) {
|
|
15121
15211
|
const ct = obj.__cropData;
|
|
15122
15212
|
if (isActiveSelection && activeObj instanceof fabric.ActiveSelection) {
|
|
@@ -16200,7 +16290,7 @@ const PageCanvas = forwardRef(
|
|
|
16200
16290
|
const nextHeight = Math.max(minVisiblePlaceholder, Number(resolvedSizeImg.height) || 50);
|
|
16201
16291
|
const storePosImg = pageChildren ? (() => {
|
|
16202
16292
|
const node = findNodeById(pageChildren, element.id);
|
|
16203
|
-
return node ?
|
|
16293
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageChildren) : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16204
16294
|
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16205
16295
|
const elementForPlaceholder = { ...element, width: nextWidth, height: nextHeight };
|
|
16206
16296
|
const placeholder = isCropGroup2 ? createImagePlaceholderForGroup(elementForPlaceholder) : createImagePlaceholder(elementForPlaceholder);
|
|
@@ -16263,14 +16353,14 @@ const PageCanvas = forwardRef(
|
|
|
16263
16353
|
}
|
|
16264
16354
|
const cropPos = pageChildren ? (() => {
|
|
16265
16355
|
const node = findNodeById(pageChildren, element.id);
|
|
16266
|
-
return node ?
|
|
16267
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16268
|
-
const cropCenter = rotatedTopLeftToCenter(cropPos.left, cropPos.top, ct.frameW ?? 0, ct.frameH ?? 0, element.angle ?? 0);
|
|
16356
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageChildren) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16357
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16358
|
+
const cropCenter = rotatedTopLeftToCenter(cropPos.left, cropPos.top, ct.frameW ?? 0, ct.frameH ?? 0, cropPos.angle ?? element.angle ?? 0);
|
|
16269
16359
|
const cropCenterX = cropCenter.x;
|
|
16270
16360
|
const cropCenterY = cropCenter.y;
|
|
16271
16361
|
if (element.left !== void 0) existingObj.set({ left: cropCenterX });
|
|
16272
16362
|
if (element.top !== void 0) existingObj.set({ top: cropCenterY });
|
|
16273
|
-
|
|
16363
|
+
existingObj.set({ angle: cropPos.angle ?? element.angle ?? 0 });
|
|
16274
16364
|
existingObj.set({
|
|
16275
16365
|
flipX: element.flipX ?? false,
|
|
16276
16366
|
flipY: element.flipY ?? false
|
|
@@ -16393,8 +16483,8 @@ const PageCanvas = forwardRef(
|
|
|
16393
16483
|
if (isPlaceholderGroup) {
|
|
16394
16484
|
const storePosImg = pageChildren ? (() => {
|
|
16395
16485
|
const node = findNodeById(pageChildren, element.id);
|
|
16396
|
-
return node ?
|
|
16397
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16486
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageChildren) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16487
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16398
16488
|
const resolvedSizeImg = (pageChildren == null ? void 0 : pageChildren.length) ? getNodeBounds(element, pageChildren) : { width: typeof element.width === "number" ? element.width : 200, height: typeof element.height === "number" ? element.height : 50 };
|
|
16399
16489
|
const hasExplicitSize = typeof element.width === "number" && Number.isFinite(element.width) && element.width > 0 && typeof element.height === "number" && Number.isFinite(element.height) && element.height > 0;
|
|
16400
16490
|
const minVisiblePlaceholder = hasExplicitSize ? 1 : 20;
|
|
@@ -16408,7 +16498,7 @@ const PageCanvas = forwardRef(
|
|
|
16408
16498
|
top: storePosImg.top + nextHeight / 2,
|
|
16409
16499
|
originX: "center",
|
|
16410
16500
|
originY: "center",
|
|
16411
|
-
angle: element.angle ?? 0,
|
|
16501
|
+
angle: storePosImg.angle ?? element.angle ?? 0,
|
|
16412
16502
|
opacity: isHidden ? 0 : element.opacity ?? 1,
|
|
16413
16503
|
flipX: element.flipX ?? false,
|
|
16414
16504
|
flipY: element.flipY ?? false,
|
|
@@ -16457,8 +16547,8 @@ const PageCanvas = forwardRef(
|
|
|
16457
16547
|
const visibilityChanged = previousVisible !== currentVisible;
|
|
16458
16548
|
const storePosForImg = pageChildren ? (() => {
|
|
16459
16549
|
const node = findNodeById(pageChildren, element.id);
|
|
16460
|
-
return node ?
|
|
16461
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16550
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageChildren) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16551
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16462
16552
|
const positionChanged = Math.abs((existingObj.left ?? 0) - storePosForImg.left) > 0.1 || Math.abs((existingObj.top ?? 0) - storePosForImg.top) > 0.1;
|
|
16463
16553
|
if (visibilityChanged && !positionChanged || visibilityUpdateInProgressRef.current) {
|
|
16464
16554
|
const isDynamicField = dynamicFieldIds.includes(element.id);
|
|
@@ -16500,7 +16590,7 @@ const PageCanvas = forwardRef(
|
|
|
16500
16590
|
const fabricTop = existingObj.top ?? 0;
|
|
16501
16591
|
const storePos = pageChildren ? (() => {
|
|
16502
16592
|
const node = findNodeById(pageChildren, element.id);
|
|
16503
|
-
return node ?
|
|
16593
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageChildren) : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16504
16594
|
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16505
16595
|
const storeLeft = storePos.left;
|
|
16506
16596
|
const storeTop = storePos.top;
|
|
@@ -16627,7 +16717,7 @@ const PageCanvas = forwardRef(
|
|
|
16627
16717
|
setObjectData(placeholder, element.id);
|
|
16628
16718
|
const absPosImg = pageTree.length > 0 ? (() => {
|
|
16629
16719
|
const node = findNodeById(pageTree, element.id);
|
|
16630
|
-
return node ?
|
|
16720
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageTree) : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16631
16721
|
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16632
16722
|
const placeholderWidth = Number((placeholder.width ?? 0) * (placeholder.scaleX ?? 1));
|
|
16633
16723
|
const placeholderHeight = Number((placeholder.height ?? 0) * (placeholder.scaleY ?? 1));
|
|
@@ -16676,7 +16766,7 @@ const PageCanvas = forwardRef(
|
|
|
16676
16766
|
if (obj) {
|
|
16677
16767
|
const absPos = pageTree.length > 0 ? (() => {
|
|
16678
16768
|
const node = findNodeById(pageTree, element.id);
|
|
16679
|
-
return node ?
|
|
16769
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageTree) : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16680
16770
|
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16681
16771
|
obj.set({ left: absPos.left, top: absPos.top });
|
|
16682
16772
|
obj.setCoords();
|
|
@@ -17164,8 +17254,8 @@ const PageCanvas = forwardRef(
|
|
|
17164
17254
|
const currentPageTree = ((pageChildren == null ? void 0 : pageChildren.length) ? pageChildren : (_a2 = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _a2.children) ?? [];
|
|
17165
17255
|
const fabricPos = currentPageTree.length > 0 ? (() => {
|
|
17166
17256
|
const node = findNodeById(currentPageTree, element.id);
|
|
17167
|
-
return node ?
|
|
17168
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
17257
|
+
return node && isElement(node) ? getElementFabricPlacement(node, currentPageTree) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
17258
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
17169
17259
|
const resolvedSize = currentPageTree.length > 0 ? getNodeBounds(element, currentPageTree) : { width: typeof element.width === "number" ? element.width : 200, height: typeof element.height === "number" ? element.height : 50 };
|
|
17170
17260
|
const shouldPreserveSmallSize = typeof element.width === "number" && Number.isFinite(element.width) && element.width > 0 && typeof element.height === "number" && Number.isFinite(element.height) && element.height > 0;
|
|
17171
17261
|
const minVisible = shouldPreserveSmallSize ? 1 : 20;
|
|
@@ -18234,14 +18324,14 @@ const PageCanvas = forwardRef(
|
|
|
18234
18324
|
const pageTreeForCreate = ((pageChildren == null ? void 0 : pageChildren.length) ? pageChildren : (_f = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _f.children) ?? [];
|
|
18235
18325
|
const createPos = pageTreeForCreate.length > 0 ? (() => {
|
|
18236
18326
|
const node = findNodeById(pageTreeForCreate, element.id);
|
|
18237
|
-
return node ?
|
|
18238
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
18327
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageTreeForCreate, pageBoundsOptions) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
18328
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
18239
18329
|
img.set({
|
|
18240
18330
|
left: createPos.left,
|
|
18241
18331
|
top: createPos.top,
|
|
18242
18332
|
scaleX: finalScaleX,
|
|
18243
18333
|
scaleY: finalScaleY,
|
|
18244
|
-
angle: element.angle ?? 0,
|
|
18334
|
+
angle: createPos.angle ?? element.angle ?? 0,
|
|
18245
18335
|
skewX: element.skewX ?? 0,
|
|
18246
18336
|
skewY: element.skewY ?? 0,
|
|
18247
18337
|
flipX: element.flipX ?? false,
|
|
@@ -18328,8 +18418,8 @@ const PageCanvas = forwardRef(
|
|
|
18328
18418
|
const pageTreeForCrop = ((pageChildren == null ? void 0 : pageChildren.length) ? pageChildren : (_n = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _n.children) ?? [];
|
|
18329
18419
|
const createPosForCrop = pageTreeForCrop.length > 0 ? (() => {
|
|
18330
18420
|
const node = findNodeById(pageTreeForCrop, element.id);
|
|
18331
|
-
return node ?
|
|
18332
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
18421
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageTreeForCrop, pageBoundsOptions) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
18422
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
18333
18423
|
const nodeForCreate = pageTreeForCrop.length ? findNodeById(pageTreeForCrop, element.id) : null;
|
|
18334
18424
|
const createW = nodeForCreate && isElement(nodeForCreate) ? nodeForCreate.width : elementWidth;
|
|
18335
18425
|
const createH = nodeForCreate && isElement(nodeForCreate) ? nodeForCreate.height : elementHeight;
|
|
@@ -18337,8 +18427,9 @@ const PageCanvas = forwardRef(
|
|
|
18337
18427
|
const createSy = nodeForCreate && isElement(nodeForCreate) ? nodeForCreate.scaleY ?? 1 : element.scaleY ?? 1;
|
|
18338
18428
|
const frameW = Math.max(1, Number(createW) || 200) * createSx;
|
|
18339
18429
|
const frameH = Math.max(1, Number(createH) || 50) * createSy;
|
|
18340
|
-
const
|
|
18341
|
-
const
|
|
18430
|
+
const createCenter = rotatedTopLeftToCenter(createPosForCrop.left, createPosForCrop.top, frameW, frameH, createPosForCrop.angle ?? element.angle ?? 0);
|
|
18431
|
+
const createCenterX = createCenter.x;
|
|
18432
|
+
const createCenterY = createCenter.y;
|
|
18342
18433
|
const cropGroup = await createMaskedImageElement({
|
|
18343
18434
|
image: img,
|
|
18344
18435
|
frameW,
|
|
@@ -18351,7 +18442,7 @@ const PageCanvas = forwardRef(
|
|
|
18351
18442
|
strokeWidth: 0,
|
|
18352
18443
|
left: createCenterX,
|
|
18353
18444
|
top: createCenterY,
|
|
18354
|
-
angle: element.angle ?? 0,
|
|
18445
|
+
angle: createPosForCrop.angle ?? element.angle ?? 0,
|
|
18355
18446
|
opacity: isHidden ? 0 : element.opacity ?? 1,
|
|
18356
18447
|
selectable: allowSelection && !isHidden,
|
|
18357
18448
|
evented: canBeEvented && !isHidden,
|
|
@@ -24741,9 +24832,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
24741
24832
|
}
|
|
24742
24833
|
return svgString;
|
|
24743
24834
|
}
|
|
24744
|
-
const resolvedPackageVersion = "0.5.
|
|
24835
|
+
const resolvedPackageVersion = "0.5.349";
|
|
24745
24836
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
24746
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
24837
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.349";
|
|
24747
24838
|
const roundParityValue = (value) => {
|
|
24748
24839
|
if (typeof value !== "number") return value;
|
|
24749
24840
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -25557,7 +25648,7 @@ class PixldocsRenderer {
|
|
|
25557
25648
|
await this.waitForCanvasScene(container, cloned, i);
|
|
25558
25649
|
}
|
|
25559
25650
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
25560
|
-
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-
|
|
25651
|
+
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-B8sTK3Ew.js");
|
|
25561
25652
|
const prepared = preparePagesForExport(
|
|
25562
25653
|
cloned.pages,
|
|
25563
25654
|
canvasWidth,
|
|
@@ -27877,7 +27968,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
27877
27968
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
27878
27969
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
27879
27970
|
try {
|
|
27880
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-
|
|
27971
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-B8sTK3Ew.js");
|
|
27881
27972
|
try {
|
|
27882
27973
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
27883
27974
|
} catch {
|
|
@@ -28277,4 +28368,4 @@ export {
|
|
|
28277
28368
|
buildTeaserBlurFlatKeys as y,
|
|
28278
28369
|
collectFontDescriptorsFromConfig as z
|
|
28279
28370
|
};
|
|
28280
|
-
//# sourceMappingURL=index-
|
|
28371
|
+
//# sourceMappingURL=index-wt6naIdE.js.map
|