@pixldocs/canvas-renderer 0.5.305 → 0.5.307
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-fZq9e7bO.js → index-D4p1jWxS.js} +125 -12
- package/dist/index-D4p1jWxS.js.map +1 -0
- package/dist/{index-C8ZNStHz.cjs → index-DDubE6xA.cjs} +125 -12
- package/dist/index-DDubE6xA.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-BwMJ3-iw.js → vectorPdfExport-B6HX4s-I.js} +4 -4
- package/dist/{vectorPdfExport-BwMJ3-iw.js.map → vectorPdfExport-B6HX4s-I.js.map} +1 -1
- package/dist/{vectorPdfExport-fYp0UsD2.cjs → vectorPdfExport-BLbk8p1V.cjs} +4 -4
- package/dist/{vectorPdfExport-fYp0UsD2.cjs.map → vectorPdfExport-BLbk8p1V.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/index-C8ZNStHz.cjs.map +0 -1
- package/dist/index-fZq9e7bO.js.map +0 -1
|
@@ -11259,10 +11259,31 @@ const PageCanvas = react.forwardRef(
|
|
|
11259
11259
|
const [ready, setReady] = react.useState(false);
|
|
11260
11260
|
const [unlockRequestId, setUnlockRequestId] = react.useState(0);
|
|
11261
11261
|
const applyLogicalGroupSelectionVisualState = react.useCallback((selection, groupId) => {
|
|
11262
|
-
var _a2;
|
|
11262
|
+
var _a2, _b2;
|
|
11263
11263
|
selection.__pixldocsGroupSelection = groupId;
|
|
11264
11264
|
delete selection.__pixldocsLogicalGroupIds;
|
|
11265
11265
|
selection.hasBorders = true;
|
|
11266
|
+
try {
|
|
11267
|
+
const state = useEditorStore.getState();
|
|
11268
|
+
const pages = ((_a2 = state.canvas) == null ? void 0 : _a2.pages) ?? [];
|
|
11269
|
+
let groupNode = null;
|
|
11270
|
+
for (const page of pages) {
|
|
11271
|
+
const found = findNodeById(page.children ?? [], groupId);
|
|
11272
|
+
if (found && isGroup(found)) {
|
|
11273
|
+
groupNode = found;
|
|
11274
|
+
break;
|
|
11275
|
+
}
|
|
11276
|
+
}
|
|
11277
|
+
if (groupNode && !isStackLayoutMode(groupNode.layoutMode) && typeof groupNode.angle === "number" && Math.abs(groupNode.angle) > 0.01) {
|
|
11278
|
+
const currentAngle = ((selection.angle ?? 0) % 360 + 360) % 360;
|
|
11279
|
+
const targetAngle = ((groupNode.angle ?? 0) % 360 + 360) % 360;
|
|
11280
|
+
if (Math.abs(currentAngle - targetAngle) > 0.01) {
|
|
11281
|
+
selection.rotate(targetAngle);
|
|
11282
|
+
selection.setCoords();
|
|
11283
|
+
}
|
|
11284
|
+
}
|
|
11285
|
+
} catch {
|
|
11286
|
+
}
|
|
11266
11287
|
const members = selection.getObjects();
|
|
11267
11288
|
for (const prev of suppressGroupMemberBordersRef.current) {
|
|
11268
11289
|
if (members.includes(prev)) continue;
|
|
@@ -11286,7 +11307,7 @@ const PageCanvas = react.forwardRef(
|
|
|
11286
11307
|
if (m.__pixldocsOrigHasControls === void 0) m.__pixldocsOrigHasControls = m.hasControls;
|
|
11287
11308
|
m.hasBorders = false;
|
|
11288
11309
|
m.hasControls = false;
|
|
11289
|
-
if (m.__cropGroup || ((
|
|
11310
|
+
if (m.__cropGroup || ((_b2 = m._ct) == null ? void 0 : _b2.isCropGroup)) {
|
|
11290
11311
|
if (m.__pixldocsOrigLockScalingX === void 0) {
|
|
11291
11312
|
m.__pixldocsOrigLockScalingX = m.lockScalingX;
|
|
11292
11313
|
m.__pixldocsOrigLockScalingY = m.lockScalingY;
|
|
@@ -13869,6 +13890,12 @@ const PageCanvas = react.forwardRef(
|
|
|
13869
13890
|
if (didShift) didReflowTextChild = true;
|
|
13870
13891
|
}
|
|
13871
13892
|
if (isXSide && didReflowTextChild && typeof obj.triggerLayout === "function") {
|
|
13893
|
+
obj.setCoords();
|
|
13894
|
+
const cornersBefore = obj.aCoords;
|
|
13895
|
+
let fixedMidBefore = null;
|
|
13896
|
+
if (cornersBefore) {
|
|
13897
|
+
fixedMidBefore = corner === "ml" ? { x: (cornersBefore.tr.x + cornersBefore.br.x) / 2, y: (cornersBefore.tr.y + cornersBefore.br.y) / 2 } : { x: (cornersBefore.tl.x + cornersBefore.bl.x) / 2, y: (cornersBefore.tl.y + cornersBefore.bl.y) / 2 };
|
|
13898
|
+
}
|
|
13872
13899
|
try {
|
|
13873
13900
|
obj.triggerLayout();
|
|
13874
13901
|
} catch {
|
|
@@ -13877,11 +13904,22 @@ const PageCanvas = react.forwardRef(
|
|
|
13877
13904
|
obj._set("scaleX", asSx0);
|
|
13878
13905
|
obj._set("scaleY", asSy0);
|
|
13879
13906
|
obj.setCoords();
|
|
13880
|
-
const
|
|
13881
|
-
|
|
13882
|
-
|
|
13883
|
-
|
|
13884
|
-
|
|
13907
|
+
const cornersAfter = obj.aCoords;
|
|
13908
|
+
if (fixedMidBefore && cornersAfter) {
|
|
13909
|
+
const fixedMidAfter = corner === "ml" ? { x: (cornersAfter.tr.x + cornersAfter.br.x) / 2, y: (cornersAfter.tr.y + cornersAfter.br.y) / 2 } : { x: (cornersAfter.tl.x + cornersAfter.bl.x) / 2, y: (cornersAfter.tl.y + cornersAfter.bl.y) / 2 };
|
|
13910
|
+
const dx = fixedMidBefore.x - fixedMidAfter.x;
|
|
13911
|
+
const dy = fixedMidBefore.y - fixedMidAfter.y;
|
|
13912
|
+
if (Math.abs(dx) > 0.01 || Math.abs(dy) > 0.01) {
|
|
13913
|
+
obj._set("left", (obj.left ?? 0) + dx);
|
|
13914
|
+
obj._set("top", (obj.top ?? 0) + dy);
|
|
13915
|
+
}
|
|
13916
|
+
} else {
|
|
13917
|
+
const afterRect = obj.getBoundingRect();
|
|
13918
|
+
const fixedLeft = asRect0.left;
|
|
13919
|
+
const fixedRight = asRect0.left + asRect0.width;
|
|
13920
|
+
const nextLeft = corner === "ml" ? (obj.left ?? 0) + (fixedRight - (afterRect.left + afterRect.width)) : (obj.left ?? 0) + (fixedLeft - afterRect.left);
|
|
13921
|
+
obj._set("left", nextLeft);
|
|
13922
|
+
}
|
|
13885
13923
|
} else {
|
|
13886
13924
|
obj._set("height", asH0);
|
|
13887
13925
|
obj._set("left", asLeft0);
|
|
@@ -14626,6 +14664,47 @@ const PageCanvas = react.forwardRef(
|
|
|
14626
14664
|
unlockEditsSoon();
|
|
14627
14665
|
return;
|
|
14628
14666
|
}
|
|
14667
|
+
if (hadRotation && !hadScale && isActiveSelection && activeObj instanceof fabric__namespace.ActiveSelection && !isStackLayoutMode(groupToMove.layoutMode)) {
|
|
14668
|
+
const groupSelectionId = activeObj.__pixldocsGroupSelection ?? groupToMove.id;
|
|
14669
|
+
const newAngle = ((activeObj.angle ?? 0) % 360 + 360) % 360;
|
|
14670
|
+
const { updateNode: updateNodeStore, commitHistory: commitHistoryStore, getCurrentElements } = useEditorStore.getState();
|
|
14671
|
+
const rotPatch = { angle: newAngle === 0 ? void 0 : newAngle };
|
|
14672
|
+
if (Math.abs(deltaX) > 0.1) rotPatch.left = (groupToMove.left ?? 0) + deltaX;
|
|
14673
|
+
if (Math.abs(deltaY) > 0.1) rotPatch.top = (groupToMove.top ?? 0) + deltaY;
|
|
14674
|
+
updateNodeStore(groupToMove.id, rotPatch, { recordHistory: false, skipLayoutRecalc: true });
|
|
14675
|
+
commitHistoryStore();
|
|
14676
|
+
pendingGroupDrillInRef.current = null;
|
|
14677
|
+
fabricCanvas.__activeEditingGroupId = null;
|
|
14678
|
+
setDrilledGroupBounds(null);
|
|
14679
|
+
drilledGroupIdRef.current = null;
|
|
14680
|
+
if (groupSelectionId) {
|
|
14681
|
+
restoreGroupSelectionVisualState(activeObj, groupSelectionId);
|
|
14682
|
+
fabricCanvas.setActiveObject(activeObj);
|
|
14683
|
+
activeObj.setCoords();
|
|
14684
|
+
}
|
|
14685
|
+
selectElements([groupSelectionId], false, false);
|
|
14686
|
+
fabricCanvas.requestRenderAll();
|
|
14687
|
+
elementsRef.current = getCurrentElements();
|
|
14688
|
+
const rotTargets = activeObj.getObjects();
|
|
14689
|
+
for (const o of rotTargets) {
|
|
14690
|
+
const oid = getObjectId(o);
|
|
14691
|
+
if (oid && oid !== "__background__") {
|
|
14692
|
+
justModifiedIdsRef.current.add(oid);
|
|
14693
|
+
modifiedIdsThisRound.add(oid);
|
|
14694
|
+
}
|
|
14695
|
+
}
|
|
14696
|
+
setTimeout(() => modifiedIdsThisRound.forEach((id) => justModifiedIdsRef.current.delete(id)), 150);
|
|
14697
|
+
groupSelectionTransformStartRef.current = null;
|
|
14698
|
+
const rotSnapshot = {
|
|
14699
|
+
memberIds: rotTargets.map((o) => getObjectId(o)).filter((id) => !!id && id !== "__background__"),
|
|
14700
|
+
groupSelectionId,
|
|
14701
|
+
expiresAt: Date.now() + 1200
|
|
14702
|
+
};
|
|
14703
|
+
recentGroupSelectionRestoreRef.current = rotSnapshot;
|
|
14704
|
+
restorePreservedGroupSelectionSoon(rotSnapshot);
|
|
14705
|
+
unlockEditsSoon();
|
|
14706
|
+
return;
|
|
14707
|
+
}
|
|
14629
14708
|
}
|
|
14630
14709
|
}
|
|
14631
14710
|
const pendingCropGroupFrameBakes = [];
|
|
@@ -14901,6 +14980,40 @@ const PageCanvas = react.forwardRef(
|
|
|
14901
14980
|
bakedTextScaleUpdates.minBoxHeight = Math.max(0, nextMinH);
|
|
14902
14981
|
obj.minBoxHeight = bakedTextScaleUpdates.minBoxHeight;
|
|
14903
14982
|
}
|
|
14983
|
+
const effectScale = isCornerHandle ? fontScale : Math.max(1e-3, Math.sqrt(sx * sy));
|
|
14984
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "strokeWidth", effectScale);
|
|
14985
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textShadowBlur", effectScale);
|
|
14986
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textShadowDistance", effectScale);
|
|
14987
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textShadowOffsetX", sx);
|
|
14988
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textShadowOffsetY", sy);
|
|
14989
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textBgPaddingTop", sy);
|
|
14990
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textBgPaddingBottom", sy);
|
|
14991
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textBgPaddingLeft", sx);
|
|
14992
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textBgPaddingRight", sx);
|
|
14993
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textBgPadding", effectScale);
|
|
14994
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textBgRxTL", effectScale);
|
|
14995
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textBgRxTR", effectScale);
|
|
14996
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textBgRxBR", effectScale);
|
|
14997
|
+
scaleUpdateNumber(bakedTextScaleUpdates, sourceElement ?? void 0, "textBgRxBL", effectScale);
|
|
14998
|
+
const tpSource = obj.textPath ?? (sourceElement == null ? void 0 : sourceElement.textPath);
|
|
14999
|
+
if (tpSource) {
|
|
15000
|
+
bakedTextScaleUpdates.textPath = scaleTextPathConfig(tpSource, sx, sy, effectScale);
|
|
15001
|
+
obj.textPath = bakedTextScaleUpdates.textPath;
|
|
15002
|
+
}
|
|
15003
|
+
if (bakedTextScaleUpdates.strokeWidth !== void 0) {
|
|
15004
|
+
obj.set({ strokeWidth: bakedTextScaleUpdates.strokeWidth });
|
|
15005
|
+
}
|
|
15006
|
+
const shadow = obj.shadow;
|
|
15007
|
+
if (shadow) {
|
|
15008
|
+
if (bakedTextScaleUpdates.textShadowBlur !== void 0) shadow.blur = bakedTextScaleUpdates.textShadowBlur;
|
|
15009
|
+
if (bakedTextScaleUpdates.textShadowOffsetX !== void 0) shadow.offsetX = bakedTextScaleUpdates.textShadowOffsetX;
|
|
15010
|
+
if (bakedTextScaleUpdates.textShadowOffsetY !== void 0) shadow.offsetY = bakedTextScaleUpdates.textShadowOffsetY;
|
|
15011
|
+
}
|
|
15012
|
+
if ((sourceElement == null ? void 0 : sourceElement.type) === "text") {
|
|
15013
|
+
const bakedElement = { ...sourceElement, ...bakedTextScaleUpdates };
|
|
15014
|
+
applyTextBackground(obj, extractTextBgConfig(bakedElement));
|
|
15015
|
+
applyTextShadow(obj, bakedElement);
|
|
15016
|
+
}
|
|
14904
15017
|
const prevObjCaching = obj.objectCaching;
|
|
14905
15018
|
obj.set({ width: bakedWidth, scaleX: 1, scaleY: 1, objectCaching: false });
|
|
14906
15019
|
obj.initDimensions();
|
|
@@ -24177,9 +24290,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
24177
24290
|
}
|
|
24178
24291
|
return svgString;
|
|
24179
24292
|
}
|
|
24180
|
-
const resolvedPackageVersion = "0.5.
|
|
24293
|
+
const resolvedPackageVersion = "0.5.307";
|
|
24181
24294
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
24182
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
24295
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.307";
|
|
24183
24296
|
const roundParityValue = (value) => {
|
|
24184
24297
|
if (typeof value !== "number") return value;
|
|
24185
24298
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -24993,7 +25106,7 @@ class PixldocsRenderer {
|
|
|
24993
25106
|
await this.waitForCanvasScene(container, cloned, i);
|
|
24994
25107
|
}
|
|
24995
25108
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
24996
|
-
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
25109
|
+
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-BLbk8p1V.cjs"));
|
|
24997
25110
|
const prepared = preparePagesForExport(
|
|
24998
25111
|
cloned.pages,
|
|
24999
25112
|
canvasWidth,
|
|
@@ -27313,7 +27426,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
27313
27426
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
27314
27427
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
27315
27428
|
try {
|
|
27316
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
27429
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-BLbk8p1V.cjs"));
|
|
27317
27430
|
try {
|
|
27318
27431
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
27319
27432
|
} catch {
|
|
@@ -27710,4 +27823,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
|
|
|
27710
27823
|
exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
|
|
27711
27824
|
exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
|
|
27712
27825
|
exports.warmTemplateFromForm = warmTemplateFromForm;
|
|
27713
|
-
//# sourceMappingURL=index-
|
|
27826
|
+
//# sourceMappingURL=index-DDubE6xA.cjs.map
|