@pixldocs/canvas-renderer 0.5.347 → 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-ap13xnH3.cjs → index-CwQ8bAR_.cjs} +164 -51
- package/dist/index-CwQ8bAR_.cjs.map +1 -0
- package/dist/{index-BV35-LzJ.js → index-wt6naIdE.js} +164 -51
- package/dist/index-wt6naIdE.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-DVIaYc4_.js → vectorPdfExport-B8sTK3Ew.js} +4 -4
- package/dist/{vectorPdfExport-DVIaYc4_.js.map → vectorPdfExport-B8sTK3Ew.js.map} +1 -1
- package/dist/{vectorPdfExport-dKHuR_jl.cjs → vectorPdfExport-eaaea4kH.cjs} +4 -4
- package/dist/{vectorPdfExport-dKHuR_jl.cjs.map → vectorPdfExport-eaaea4kH.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/index-BV35-LzJ.js.map +0 -1
- package/dist/index-ap13xnH3.cjs.map +0 -1
|
@@ -11226,6 +11226,95 @@ const rotatedTopLeftToCenter = (left, top, width, height, angleDeg = 0) => {
|
|
|
11226
11226
|
y: top + width / 2 * sin + height / 2 * cos
|
|
11227
11227
|
};
|
|
11228
11228
|
};
|
|
11229
|
+
const normalizeSignedAngle = (angle) => (angle % 360 + 540) % 360 - 180;
|
|
11230
|
+
const getGroupTransformFrame = (group, pageChildren, options) => {
|
|
11231
|
+
const bounds = getNodeBounds(group, pageChildren);
|
|
11232
|
+
const width = Math.max(1, Number(group.width ?? bounds.width) || bounds.width || 1);
|
|
11233
|
+
const height = Math.max(1, Number(group.height ?? bounds.height) || bounds.height || 1);
|
|
11234
|
+
return {
|
|
11235
|
+
left: Number(group.left ?? bounds.left ?? 0) || 0,
|
|
11236
|
+
top: Number(group.top ?? bounds.top ?? 0) || 0,
|
|
11237
|
+
width,
|
|
11238
|
+
height,
|
|
11239
|
+
angle: Number(group.angle ?? 0) || 0
|
|
11240
|
+
};
|
|
11241
|
+
};
|
|
11242
|
+
const getGroupLocalToParentMatrix = (group, pageChildren, options) => {
|
|
11243
|
+
const frame = getGroupTransformFrame(group, pageChildren);
|
|
11244
|
+
const rad = frame.angle * Math.PI / 180;
|
|
11245
|
+
const cos = Math.cos(rad);
|
|
11246
|
+
const sin = Math.sin(rad);
|
|
11247
|
+
const centerX = frame.left + frame.width / 2;
|
|
11248
|
+
const centerY = frame.top + frame.height / 2;
|
|
11249
|
+
return [
|
|
11250
|
+
cos,
|
|
11251
|
+
sin,
|
|
11252
|
+
-sin,
|
|
11253
|
+
cos,
|
|
11254
|
+
centerX - cos * frame.width / 2 + sin * frame.height / 2,
|
|
11255
|
+
centerY - sin * frame.width / 2 - cos * frame.height / 2
|
|
11256
|
+
];
|
|
11257
|
+
};
|
|
11258
|
+
const getAncestorGroupTransform = (nodeId, pageChildren, options) => {
|
|
11259
|
+
let matrix = [1, 0, 0, 1, 0, 0];
|
|
11260
|
+
let angle = 0;
|
|
11261
|
+
const chain = [];
|
|
11262
|
+
let currentId = nodeId;
|
|
11263
|
+
for (let guard = 0; guard < 32; guard++) {
|
|
11264
|
+
const parent = findParentGroup(pageChildren, currentId);
|
|
11265
|
+
if (!parent) break;
|
|
11266
|
+
chain.unshift(parent);
|
|
11267
|
+
currentId = parent.id;
|
|
11268
|
+
}
|
|
11269
|
+
for (const group of chain) {
|
|
11270
|
+
matrix = fabric__namespace.util.multiplyTransformMatrices(
|
|
11271
|
+
matrix,
|
|
11272
|
+
getGroupLocalToParentMatrix(group, pageChildren)
|
|
11273
|
+
);
|
|
11274
|
+
angle += Number(group.angle ?? 0) || 0;
|
|
11275
|
+
}
|
|
11276
|
+
return { matrix, angle: normalizeSignedAngle(angle) };
|
|
11277
|
+
};
|
|
11278
|
+
const getElementFabricPlacement = (element, pageChildren, options) => {
|
|
11279
|
+
if (!pageChildren.length) {
|
|
11280
|
+
return { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
11281
|
+
}
|
|
11282
|
+
const ancestor = getAncestorGroupTransform(element.id, pageChildren);
|
|
11283
|
+
const point = fabric__namespace.util.transformPoint(
|
|
11284
|
+
new fabric__namespace.Point(element.left ?? 0, element.top ?? 0),
|
|
11285
|
+
ancestor.matrix
|
|
11286
|
+
);
|
|
11287
|
+
return {
|
|
11288
|
+
left: point.x,
|
|
11289
|
+
top: point.y,
|
|
11290
|
+
angle: normalizeSignedAngle(ancestor.angle + Number(element.angle ?? 0))
|
|
11291
|
+
};
|
|
11292
|
+
};
|
|
11293
|
+
const centerToRotatedTopLeft = (centerX, centerY, width, height, angleDeg = 0) => {
|
|
11294
|
+
const angle = angleDeg * Math.PI / 180;
|
|
11295
|
+
const cos = Math.cos(angle);
|
|
11296
|
+
const sin = Math.sin(angle);
|
|
11297
|
+
return {
|
|
11298
|
+
left: centerX - width / 2 * cos + height / 2 * sin,
|
|
11299
|
+
top: centerY - width / 2 * sin - height / 2 * cos
|
|
11300
|
+
};
|
|
11301
|
+
};
|
|
11302
|
+
const getGroupAbsoluteTransformFrame = (group, pageChildren, options) => {
|
|
11303
|
+
const frame = getGroupTransformFrame(group, pageChildren);
|
|
11304
|
+
const ancestor = getAncestorGroupTransform(group.id, pageChildren);
|
|
11305
|
+
const centerLocal = rotatedTopLeftToCenter(frame.left, frame.top, frame.width, frame.height, frame.angle);
|
|
11306
|
+
const center = fabric__namespace.util.transformPoint(new fabric__namespace.Point(centerLocal.x, centerLocal.y), ancestor.matrix);
|
|
11307
|
+
const topLeft = fabric__namespace.util.transformPoint(new fabric__namespace.Point(frame.left, frame.top), ancestor.matrix);
|
|
11308
|
+
return {
|
|
11309
|
+
left: topLeft.x,
|
|
11310
|
+
top: topLeft.y,
|
|
11311
|
+
width: frame.width,
|
|
11312
|
+
height: frame.height,
|
|
11313
|
+
centerX: center.x,
|
|
11314
|
+
centerY: center.y,
|
|
11315
|
+
angle: normalizeSignedAngle(ancestor.angle + frame.angle)
|
|
11316
|
+
};
|
|
11317
|
+
};
|
|
11229
11318
|
function applyWarpAwareSelectionBorders(selection) {
|
|
11230
11319
|
var _a2;
|
|
11231
11320
|
if (selection.__pixldocsOrigASHasBorders !== void 0) {
|
|
@@ -11366,19 +11455,37 @@ const PageCanvas = react.forwardRef(
|
|
|
11366
11455
|
delete selection.__pixldocsLogicalGroupIds;
|
|
11367
11456
|
selection.hasBorders = true;
|
|
11368
11457
|
try {
|
|
11458
|
+
const membersBeforeFrame = selection.getObjects();
|
|
11459
|
+
const selectionMatrixBefore = selection.calcTransformMatrix();
|
|
11460
|
+
const memberWorldMatrices = membersBeforeFrame.map((member) => fabric__namespace.util.multiplyTransformMatrices(
|
|
11461
|
+
selectionMatrixBefore,
|
|
11462
|
+
member.calcOwnMatrix()
|
|
11463
|
+
));
|
|
11369
11464
|
const pageChildren2 = ((_a2 = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _a2.children) ?? [];
|
|
11370
11465
|
const groupNode = findNodeById(pageChildren2, groupId);
|
|
11371
|
-
const
|
|
11372
|
-
const
|
|
11373
|
-
if (Number.isFinite(groupAngle)
|
|
11466
|
+
const groupFrame = groupNode && isGroup(groupNode) ? getGroupAbsoluteTransformFrame(groupNode, pageChildren2, pageBoundsOptions) : null;
|
|
11467
|
+
const groupAngle = groupFrame ? groupFrame.angle : 0;
|
|
11468
|
+
if (Number.isFinite(groupAngle)) {
|
|
11374
11469
|
selection.set({ angle: groupAngle, scaleX: 1, scaleY: 1, skewX: 0, skewY: 0 });
|
|
11375
|
-
if (
|
|
11470
|
+
if (groupFrame) {
|
|
11376
11471
|
selection.setPositionByOrigin(
|
|
11377
|
-
new fabric__namespace.Point(
|
|
11472
|
+
new fabric__namespace.Point(groupFrame.centerX, groupFrame.centerY),
|
|
11378
11473
|
"center",
|
|
11379
11474
|
"center"
|
|
11380
11475
|
);
|
|
11381
11476
|
}
|
|
11477
|
+
const invSelectionAfter = fabric__namespace.util.invertTransform(
|
|
11478
|
+
selection.calcTransformMatrix()
|
|
11479
|
+
);
|
|
11480
|
+
membersBeforeFrame.forEach((member, index) => {
|
|
11481
|
+
const localMatrix = fabric__namespace.util.multiplyTransformMatrices(
|
|
11482
|
+
invSelectionAfter,
|
|
11483
|
+
memberWorldMatrices[index]
|
|
11484
|
+
);
|
|
11485
|
+
fabric__namespace.util.applyTransformToObject(member, localMatrix);
|
|
11486
|
+
member.setCoords();
|
|
11487
|
+
member.dirty = true;
|
|
11488
|
+
});
|
|
11382
11489
|
selection.setCoords();
|
|
11383
11490
|
}
|
|
11384
11491
|
} catch {
|
|
@@ -12848,9 +12955,10 @@ const PageCanvas = react.forwardRef(
|
|
|
12848
12955
|
const pageChildren2 = ((_b2 = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _b2.children) ?? [];
|
|
12849
12956
|
const groupNode = findNodeById(pageChildren2, groupId);
|
|
12850
12957
|
if (!groupNode) return;
|
|
12851
|
-
const
|
|
12958
|
+
const groupFrame = isGroup(groupNode) ? getGroupAbsoluteTransformFrame(groupNode, pageChildren2) : null;
|
|
12959
|
+
const groupAbs = groupFrame ?? getAbsoluteBounds(groupNode, pageChildren2);
|
|
12852
12960
|
const rect = active.getBoundingRect();
|
|
12853
|
-
const center = active.getCenterPoint();
|
|
12961
|
+
const center = groupFrame ? new fabric__namespace.Point(groupFrame.centerX, groupFrame.centerY) : active.getCenterPoint();
|
|
12854
12962
|
groupSelectionTransformStartRef.current = {
|
|
12855
12963
|
groupId,
|
|
12856
12964
|
selection: active,
|
|
@@ -12862,7 +12970,7 @@ const PageCanvas = react.forwardRef(
|
|
|
12862
12970
|
groupTop: groupAbs.top,
|
|
12863
12971
|
groupWidth: groupAbs.width,
|
|
12864
12972
|
groupHeight: groupAbs.height,
|
|
12865
|
-
selectionAngle: ((active.angle ?? 0) % 360 + 360) % 360
|
|
12973
|
+
selectionAngle: (((groupFrame == null ? void 0 : groupFrame.angle) ?? active.angle ?? 0) % 360 + 360) % 360
|
|
12866
12974
|
};
|
|
12867
12975
|
};
|
|
12868
12976
|
const restoreGroupSelectionVisualState = (selection, groupId) => {
|
|
@@ -15034,7 +15142,7 @@ const PageCanvas = react.forwardRef(
|
|
|
15034
15142
|
const logicalGroupSelectionId = activeObj instanceof fabric__namespace.ActiveSelection ? activeObj.__pixldocsGroupSelection : void 0;
|
|
15035
15143
|
const isLogicalGroupAS = !!logicalGroupSelectionId && !(activeObj == null ? void 0 : activeObj.__cropGroup) && !(activeObj == null ? void 0 : activeObj.__docuforgeSectionGroup);
|
|
15036
15144
|
const logicalGroupNodeForBake = logicalGroupSelectionId ? findNodeById(pageChildren2, logicalGroupSelectionId) : null;
|
|
15037
|
-
const asAngleForBake = isLogicalGroupAS && activeObj ? normalizeAngle(Number(
|
|
15145
|
+
const asAngleForBake = isLogicalGroupAS && activeObj ? normalizeAngle(Number(activeObj.angle ?? 0)) : 0;
|
|
15038
15146
|
const logicalGroupFinalFrame = (() => {
|
|
15039
15147
|
var _a3;
|
|
15040
15148
|
if (!isLogicalGroupAS || !logicalGroupSelectionId || !(activeObj instanceof fabric__namespace.ActiveSelection)) return null;
|
|
@@ -15042,10 +15150,11 @@ const PageCanvas = react.forwardRef(
|
|
|
15042
15150
|
const localWidth = Math.max(1, (activeObj.width ?? (baseline == null ? void 0 : baseline.groupWidth) ?? 1) * Math.abs(activeObj.scaleX ?? 1));
|
|
15043
15151
|
const localHeight = Math.max(1, (activeObj.height ?? (baseline == null ? void 0 : baseline.groupHeight) ?? 1) * Math.abs(activeObj.scaleY ?? 1));
|
|
15044
15152
|
const center = activeObj.getCenterPoint();
|
|
15153
|
+
const topLeft = centerToRotatedTopLeft(center.x, center.y, localWidth, localHeight, asAngleForBake);
|
|
15045
15154
|
return {
|
|
15046
15155
|
groupId: logicalGroupSelectionId,
|
|
15047
|
-
left:
|
|
15048
|
-
top:
|
|
15156
|
+
left: topLeft.left,
|
|
15157
|
+
top: topLeft.top,
|
|
15049
15158
|
width: localWidth,
|
|
15050
15159
|
height: localHeight,
|
|
15051
15160
|
centerX: center.x,
|
|
@@ -15107,16 +15216,15 @@ const PageCanvas = react.forwardRef(
|
|
|
15107
15216
|
modifiedIdsThisRound.add(objId);
|
|
15108
15217
|
let absoluteLeft;
|
|
15109
15218
|
let absoluteTop;
|
|
15110
|
-
|
|
15111
|
-
|
|
15112
|
-
|
|
15113
|
-
|
|
15114
|
-
|
|
15115
|
-
|
|
15116
|
-
|
|
15117
|
-
|
|
15118
|
-
|
|
15119
|
-
}
|
|
15219
|
+
const initialTopLeft = centerToRotatedTopLeft(
|
|
15220
|
+
decomposed.translateX ?? (obj.left ?? 0),
|
|
15221
|
+
decomposed.translateY ?? (obj.top ?? 0),
|
|
15222
|
+
intrinsicWidth * Math.abs(decomposed.scaleX || 1),
|
|
15223
|
+
intrinsicHeight * Math.abs(decomposed.scaleY || 1),
|
|
15224
|
+
decomposed.angle ?? 0
|
|
15225
|
+
);
|
|
15226
|
+
absoluteLeft = initialTopLeft.left;
|
|
15227
|
+
absoluteTop = initialTopLeft.top;
|
|
15120
15228
|
if (obj instanceof fabric__namespace.Group && obj.__cropGroup) {
|
|
15121
15229
|
const ct = obj.__cropData;
|
|
15122
15230
|
if (isActiveSelection && activeObj instanceof fabric__namespace.ActiveSelection) {
|
|
@@ -15535,9 +15643,13 @@ const PageCanvas = react.forwardRef(
|
|
|
15535
15643
|
skewX: isLineObj ? 0 : finalSkewX,
|
|
15536
15644
|
skewY: isLineObj ? 0 : finalSkewY,
|
|
15537
15645
|
scaleX: finalScaleX,
|
|
15538
|
-
scaleY: finalScaleY
|
|
15539
|
-
transformMatrix: finalAbsoluteMatrix
|
|
15646
|
+
scaleY: finalScaleY
|
|
15540
15647
|
};
|
|
15648
|
+
if (!isLogicalGroupAS) {
|
|
15649
|
+
elementUpdate.transformMatrix = finalAbsoluteMatrix;
|
|
15650
|
+
} else {
|
|
15651
|
+
elementUpdate.transformMatrix = void 0;
|
|
15652
|
+
}
|
|
15541
15653
|
if (obj instanceof fabric__namespace.Textbox) {
|
|
15542
15654
|
const bakedTextScaleUpdates = obj.__pixldocsBakedTextScaleUpdates;
|
|
15543
15655
|
if (bakedTextScaleUpdates && typeof bakedTextScaleUpdates === "object") {
|
|
@@ -16196,7 +16308,7 @@ const PageCanvas = react.forwardRef(
|
|
|
16196
16308
|
const nextHeight = Math.max(minVisiblePlaceholder, Number(resolvedSizeImg.height) || 50);
|
|
16197
16309
|
const storePosImg = pageChildren ? (() => {
|
|
16198
16310
|
const node = findNodeById(pageChildren, element.id);
|
|
16199
|
-
return node ?
|
|
16311
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageChildren) : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16200
16312
|
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16201
16313
|
const elementForPlaceholder = { ...element, width: nextWidth, height: nextHeight };
|
|
16202
16314
|
const placeholder = isCropGroup2 ? createImagePlaceholderForGroup(elementForPlaceholder) : createImagePlaceholder(elementForPlaceholder);
|
|
@@ -16259,14 +16371,14 @@ const PageCanvas = react.forwardRef(
|
|
|
16259
16371
|
}
|
|
16260
16372
|
const cropPos = pageChildren ? (() => {
|
|
16261
16373
|
const node = findNodeById(pageChildren, element.id);
|
|
16262
|
-
return node ?
|
|
16263
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16264
|
-
const cropCenter = rotatedTopLeftToCenter(cropPos.left, cropPos.top, ct.frameW ?? 0, ct.frameH ?? 0, element.angle ?? 0);
|
|
16374
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageChildren) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16375
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16376
|
+
const cropCenter = rotatedTopLeftToCenter(cropPos.left, cropPos.top, ct.frameW ?? 0, ct.frameH ?? 0, cropPos.angle ?? element.angle ?? 0);
|
|
16265
16377
|
const cropCenterX = cropCenter.x;
|
|
16266
16378
|
const cropCenterY = cropCenter.y;
|
|
16267
16379
|
if (element.left !== void 0) existingObj.set({ left: cropCenterX });
|
|
16268
16380
|
if (element.top !== void 0) existingObj.set({ top: cropCenterY });
|
|
16269
|
-
|
|
16381
|
+
existingObj.set({ angle: cropPos.angle ?? element.angle ?? 0 });
|
|
16270
16382
|
existingObj.set({
|
|
16271
16383
|
flipX: element.flipX ?? false,
|
|
16272
16384
|
flipY: element.flipY ?? false
|
|
@@ -16389,8 +16501,8 @@ const PageCanvas = react.forwardRef(
|
|
|
16389
16501
|
if (isPlaceholderGroup) {
|
|
16390
16502
|
const storePosImg = pageChildren ? (() => {
|
|
16391
16503
|
const node = findNodeById(pageChildren, element.id);
|
|
16392
|
-
return node ?
|
|
16393
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16504
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageChildren) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16505
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16394
16506
|
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 };
|
|
16395
16507
|
const hasExplicitSize = typeof element.width === "number" && Number.isFinite(element.width) && element.width > 0 && typeof element.height === "number" && Number.isFinite(element.height) && element.height > 0;
|
|
16396
16508
|
const minVisiblePlaceholder = hasExplicitSize ? 1 : 20;
|
|
@@ -16404,7 +16516,7 @@ const PageCanvas = react.forwardRef(
|
|
|
16404
16516
|
top: storePosImg.top + nextHeight / 2,
|
|
16405
16517
|
originX: "center",
|
|
16406
16518
|
originY: "center",
|
|
16407
|
-
angle: element.angle ?? 0,
|
|
16519
|
+
angle: storePosImg.angle ?? element.angle ?? 0,
|
|
16408
16520
|
opacity: isHidden ? 0 : element.opacity ?? 1,
|
|
16409
16521
|
flipX: element.flipX ?? false,
|
|
16410
16522
|
flipY: element.flipY ?? false,
|
|
@@ -16453,8 +16565,8 @@ const PageCanvas = react.forwardRef(
|
|
|
16453
16565
|
const visibilityChanged = previousVisible !== currentVisible;
|
|
16454
16566
|
const storePosForImg = pageChildren ? (() => {
|
|
16455
16567
|
const node = findNodeById(pageChildren, element.id);
|
|
16456
|
-
return node ?
|
|
16457
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16568
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageChildren) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16569
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
16458
16570
|
const positionChanged = Math.abs((existingObj.left ?? 0) - storePosForImg.left) > 0.1 || Math.abs((existingObj.top ?? 0) - storePosForImg.top) > 0.1;
|
|
16459
16571
|
if (visibilityChanged && !positionChanged || visibilityUpdateInProgressRef.current) {
|
|
16460
16572
|
const isDynamicField = dynamicFieldIds.includes(element.id);
|
|
@@ -16496,7 +16608,7 @@ const PageCanvas = react.forwardRef(
|
|
|
16496
16608
|
const fabricTop = existingObj.top ?? 0;
|
|
16497
16609
|
const storePos = pageChildren ? (() => {
|
|
16498
16610
|
const node = findNodeById(pageChildren, element.id);
|
|
16499
|
-
return node ?
|
|
16611
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageChildren) : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16500
16612
|
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16501
16613
|
const storeLeft = storePos.left;
|
|
16502
16614
|
const storeTop = storePos.top;
|
|
@@ -16623,7 +16735,7 @@ const PageCanvas = react.forwardRef(
|
|
|
16623
16735
|
setObjectData(placeholder, element.id);
|
|
16624
16736
|
const absPosImg = pageTree.length > 0 ? (() => {
|
|
16625
16737
|
const node = findNodeById(pageTree, element.id);
|
|
16626
|
-
return node ?
|
|
16738
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageTree) : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16627
16739
|
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16628
16740
|
const placeholderWidth = Number((placeholder.width ?? 0) * (placeholder.scaleX ?? 1));
|
|
16629
16741
|
const placeholderHeight = Number((placeholder.height ?? 0) * (placeholder.scaleY ?? 1));
|
|
@@ -16672,7 +16784,7 @@ const PageCanvas = react.forwardRef(
|
|
|
16672
16784
|
if (obj) {
|
|
16673
16785
|
const absPos = pageTree.length > 0 ? (() => {
|
|
16674
16786
|
const node = findNodeById(pageTree, element.id);
|
|
16675
|
-
return node ?
|
|
16787
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageTree) : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16676
16788
|
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
16677
16789
|
obj.set({ left: absPos.left, top: absPos.top });
|
|
16678
16790
|
obj.setCoords();
|
|
@@ -17160,8 +17272,8 @@ const PageCanvas = react.forwardRef(
|
|
|
17160
17272
|
const currentPageTree = ((pageChildren == null ? void 0 : pageChildren.length) ? pageChildren : (_a2 = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _a2.children) ?? [];
|
|
17161
17273
|
const fabricPos = currentPageTree.length > 0 ? (() => {
|
|
17162
17274
|
const node = findNodeById(currentPageTree, element.id);
|
|
17163
|
-
return node ?
|
|
17164
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
17275
|
+
return node && isElement(node) ? getElementFabricPlacement(node, currentPageTree) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
17276
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
17165
17277
|
const resolvedSize = currentPageTree.length > 0 ? getNodeBounds(element, currentPageTree) : { width: typeof element.width === "number" ? element.width : 200, height: typeof element.height === "number" ? element.height : 50 };
|
|
17166
17278
|
const shouldPreserveSmallSize = typeof element.width === "number" && Number.isFinite(element.width) && element.width > 0 && typeof element.height === "number" && Number.isFinite(element.height) && element.height > 0;
|
|
17167
17279
|
const minVisible = shouldPreserveSmallSize ? 1 : 20;
|
|
@@ -18230,14 +18342,14 @@ const PageCanvas = react.forwardRef(
|
|
|
18230
18342
|
const pageTreeForCreate = ((pageChildren == null ? void 0 : pageChildren.length) ? pageChildren : (_f = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _f.children) ?? [];
|
|
18231
18343
|
const createPos = pageTreeForCreate.length > 0 ? (() => {
|
|
18232
18344
|
const node = findNodeById(pageTreeForCreate, element.id);
|
|
18233
|
-
return node ?
|
|
18234
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
18345
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageTreeForCreate, pageBoundsOptions) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
18346
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
18235
18347
|
img.set({
|
|
18236
18348
|
left: createPos.left,
|
|
18237
18349
|
top: createPos.top,
|
|
18238
18350
|
scaleX: finalScaleX,
|
|
18239
18351
|
scaleY: finalScaleY,
|
|
18240
|
-
angle: element.angle ?? 0,
|
|
18352
|
+
angle: createPos.angle ?? element.angle ?? 0,
|
|
18241
18353
|
skewX: element.skewX ?? 0,
|
|
18242
18354
|
skewY: element.skewY ?? 0,
|
|
18243
18355
|
flipX: element.flipX ?? false,
|
|
@@ -18324,8 +18436,8 @@ const PageCanvas = react.forwardRef(
|
|
|
18324
18436
|
const pageTreeForCrop = ((pageChildren == null ? void 0 : pageChildren.length) ? pageChildren : (_n = useEditorStore.getState().canvas.pages.find((p) => p.id === pageId)) == null ? void 0 : _n.children) ?? [];
|
|
18325
18437
|
const createPosForCrop = pageTreeForCrop.length > 0 ? (() => {
|
|
18326
18438
|
const node = findNodeById(pageTreeForCrop, element.id);
|
|
18327
|
-
return node ?
|
|
18328
|
-
})() : { left: element.left ?? 0, top: element.top ?? 0 };
|
|
18439
|
+
return node && isElement(node) ? getElementFabricPlacement(node, pageTreeForCrop, pageBoundsOptions) : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
18440
|
+
})() : { left: element.left ?? 0, top: element.top ?? 0, angle: element.angle ?? 0 };
|
|
18329
18441
|
const nodeForCreate = pageTreeForCrop.length ? findNodeById(pageTreeForCrop, element.id) : null;
|
|
18330
18442
|
const createW = nodeForCreate && isElement(nodeForCreate) ? nodeForCreate.width : elementWidth;
|
|
18331
18443
|
const createH = nodeForCreate && isElement(nodeForCreate) ? nodeForCreate.height : elementHeight;
|
|
@@ -18333,8 +18445,9 @@ const PageCanvas = react.forwardRef(
|
|
|
18333
18445
|
const createSy = nodeForCreate && isElement(nodeForCreate) ? nodeForCreate.scaleY ?? 1 : element.scaleY ?? 1;
|
|
18334
18446
|
const frameW = Math.max(1, Number(createW) || 200) * createSx;
|
|
18335
18447
|
const frameH = Math.max(1, Number(createH) || 50) * createSy;
|
|
18336
|
-
const
|
|
18337
|
-
const
|
|
18448
|
+
const createCenter = rotatedTopLeftToCenter(createPosForCrop.left, createPosForCrop.top, frameW, frameH, createPosForCrop.angle ?? element.angle ?? 0);
|
|
18449
|
+
const createCenterX = createCenter.x;
|
|
18450
|
+
const createCenterY = createCenter.y;
|
|
18338
18451
|
const cropGroup = await createMaskedImageElement({
|
|
18339
18452
|
image: img,
|
|
18340
18453
|
frameW,
|
|
@@ -18347,7 +18460,7 @@ const PageCanvas = react.forwardRef(
|
|
|
18347
18460
|
strokeWidth: 0,
|
|
18348
18461
|
left: createCenterX,
|
|
18349
18462
|
top: createCenterY,
|
|
18350
|
-
angle: element.angle ?? 0,
|
|
18463
|
+
angle: createPosForCrop.angle ?? element.angle ?? 0,
|
|
18351
18464
|
opacity: isHidden ? 0 : element.opacity ?? 1,
|
|
18352
18465
|
selectable: allowSelection && !isHidden,
|
|
18353
18466
|
evented: canBeEvented && !isHidden,
|
|
@@ -24737,9 +24850,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
24737
24850
|
}
|
|
24738
24851
|
return svgString;
|
|
24739
24852
|
}
|
|
24740
|
-
const resolvedPackageVersion = "0.5.
|
|
24853
|
+
const resolvedPackageVersion = "0.5.349";
|
|
24741
24854
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
24742
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
24855
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.349";
|
|
24743
24856
|
const roundParityValue = (value) => {
|
|
24744
24857
|
if (typeof value !== "number") return value;
|
|
24745
24858
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -25553,7 +25666,7 @@ class PixldocsRenderer {
|
|
|
25553
25666
|
await this.waitForCanvasScene(container, cloned, i);
|
|
25554
25667
|
}
|
|
25555
25668
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
25556
|
-
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
25669
|
+
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-eaaea4kH.cjs"));
|
|
25557
25670
|
const prepared = preparePagesForExport(
|
|
25558
25671
|
cloned.pages,
|
|
25559
25672
|
canvasWidth,
|
|
@@ -27873,7 +27986,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
27873
27986
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
27874
27987
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
27875
27988
|
try {
|
|
27876
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
27989
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-eaaea4kH.cjs"));
|
|
27877
27990
|
try {
|
|
27878
27991
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
27879
27992
|
} catch {
|
|
@@ -28270,4 +28383,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
|
|
|
28270
28383
|
exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
|
|
28271
28384
|
exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
|
|
28272
28385
|
exports.warmTemplateFromForm = warmTemplateFromForm;
|
|
28273
|
-
//# sourceMappingURL=index-
|
|
28386
|
+
//# sourceMappingURL=index-CwQ8bAR_.cjs.map
|