@pixldocs/canvas-renderer 0.5.461 → 0.5.462
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-D1sMo2it.cjs → index-DjoKgogq.cjs} +41 -13
- package/dist/index-DjoKgogq.cjs.map +1 -0
- package/dist/{index-COG7WTYO.js → index-DzpYcUNd.js} +41 -13
- package/dist/index-DzpYcUNd.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-Bn1wgD8Q.js → vectorPdfExport-CFxK100y.js} +30 -8
- package/dist/{vectorPdfExport-Bn1wgD8Q.js.map → vectorPdfExport-CFxK100y.js.map} +1 -1
- package/dist/{vectorPdfExport-C7mmAR68.cjs → vectorPdfExport-IjuMSK-o.cjs} +30 -8
- package/dist/{vectorPdfExport-C7mmAR68.cjs.map → vectorPdfExport-IjuMSK-o.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/index-COG7WTYO.js.map +0 -1
- package/dist/index-D1sMo2it.cjs.map +0 -1
|
@@ -4431,8 +4431,12 @@ async function loadImageAsync(element, placeholder, fc, fabricRef, syncLockedRef
|
|
|
4431
4431
|
const elementHeight2 = Number(element.height) * (element.scaleY ?? 1);
|
|
4432
4432
|
const scaledImageWidth = imgNaturalWidth * baseScaleX;
|
|
4433
4433
|
const scaledImageHeight = imgNaturalHeight * baseScaleY;
|
|
4434
|
-
const
|
|
4435
|
-
const
|
|
4434
|
+
const alignH = element.imageAlignH ?? "center";
|
|
4435
|
+
const alignV = element.imageAlignV ?? "middle";
|
|
4436
|
+
const slackX = elementWidth2 - scaledImageWidth;
|
|
4437
|
+
const slackY = elementHeight2 - scaledImageHeight;
|
|
4438
|
+
const imageLeft = imageFit2 === "contain" ? alignH === "left" ? 0 : alignH === "right" ? slackX : slackX / 2 : slackX / 2;
|
|
4439
|
+
const imageTop = imageFit2 === "contain" ? alignV === "top" ? 0 : alignV === "bottom" ? slackY : slackY / 2 : slackY / 2;
|
|
4436
4440
|
img.set({
|
|
4437
4441
|
originX: "left",
|
|
4438
4442
|
originY: "top",
|
|
@@ -5231,8 +5235,19 @@ function updateCoverLayout(g) {
|
|
|
5231
5235
|
const overflowY = Math.max(0, dispH - frameH);
|
|
5232
5236
|
const panX = clamp$1(img._ct.panX ?? 0.5, 0, 1);
|
|
5233
5237
|
const panY = clamp$1(img._ct.panY ?? 0.5, 0, 1);
|
|
5234
|
-
|
|
5235
|
-
|
|
5238
|
+
let offsetX = 0;
|
|
5239
|
+
let offsetY = 0;
|
|
5240
|
+
if (fitContain) {
|
|
5241
|
+
const alignH = ct.alignH ?? "center";
|
|
5242
|
+
const alignV = ct.alignV ?? "middle";
|
|
5243
|
+
const slackX = Math.max(0, frameW - dispW);
|
|
5244
|
+
const slackY = Math.max(0, frameH - dispH);
|
|
5245
|
+
offsetX = alignH === "left" ? -slackX / 2 : alignH === "right" ? slackX / 2 : 0;
|
|
5246
|
+
offsetY = alignV === "top" ? -slackY / 2 : alignV === "bottom" ? slackY / 2 : 0;
|
|
5247
|
+
} else {
|
|
5248
|
+
offsetX = overflowX > 0 ? -overflowX * (panX - 0.5) : 0;
|
|
5249
|
+
offsetY = overflowY > 0 ? -overflowY * (panY - 0.5) : 0;
|
|
5250
|
+
}
|
|
5236
5251
|
img.set({ left: offsetX, top: offsetY });
|
|
5237
5252
|
g.dirty = true;
|
|
5238
5253
|
img.dirty = true;
|
|
@@ -5605,7 +5620,10 @@ async function createMaskedImageElement({
|
|
|
5605
5620
|
visible = true,
|
|
5606
5621
|
panX = 0.5,
|
|
5607
5622
|
panY = 0.5,
|
|
5608
|
-
zoom = 1
|
|
5623
|
+
zoom = 1,
|
|
5624
|
+
fit = "cover",
|
|
5625
|
+
alignH = "center",
|
|
5626
|
+
alignV = "middle"
|
|
5609
5627
|
}) {
|
|
5610
5628
|
const img = image || (url ? await fabric__namespace.FabricImage.fromURL(getProxiedImageUrl(url), { crossOrigin: "anonymous" }) : null);
|
|
5611
5629
|
if (!img) {
|
|
@@ -5724,8 +5742,12 @@ async function createMaskedImageElement({
|
|
|
5724
5742
|
rx,
|
|
5725
5743
|
frameW,
|
|
5726
5744
|
frameH,
|
|
5727
|
-
|
|
5728
|
-
//
|
|
5745
|
+
// Honor the element's authored imageFit. When 'contain', the image is
|
|
5746
|
+
// scaled to fit fully inside the frame (no clipping) and alignH/alignV
|
|
5747
|
+
// control where the letterboxed image sits.
|
|
5748
|
+
fit,
|
|
5749
|
+
alignH,
|
|
5750
|
+
alignV,
|
|
5729
5751
|
_img: img,
|
|
5730
5752
|
_border: border
|
|
5731
5753
|
};
|
|
@@ -19634,7 +19656,13 @@ const PageCanvas = react.forwardRef(
|
|
|
19634
19656
|
visible: !isHidden,
|
|
19635
19657
|
panX,
|
|
19636
19658
|
panY,
|
|
19637
|
-
zoom: zoom2
|
|
19659
|
+
zoom: zoom2,
|
|
19660
|
+
// Honor authored Object Fit + alignment so contain logos render
|
|
19661
|
+
// fully inside the frame, with letterbox aligned to the chosen
|
|
19662
|
+
// edge (instead of being silently cover-cropped).
|
|
19663
|
+
fit: imageFitFinal === "contain" ? "contain" : "cover",
|
|
19664
|
+
alignH: element.imageAlignH ?? "center",
|
|
19665
|
+
alignV: element.imageAlignV ?? "middle"
|
|
19638
19666
|
});
|
|
19639
19667
|
cropGroup.__maintainResolution = element.maintainResolution !== false;
|
|
19640
19668
|
cropGroup.set({
|
|
@@ -26241,9 +26269,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
26241
26269
|
}
|
|
26242
26270
|
return svgString;
|
|
26243
26271
|
}
|
|
26244
|
-
const resolvedPackageVersion = "0.5.
|
|
26272
|
+
const resolvedPackageVersion = "0.5.462";
|
|
26245
26273
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
26246
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
26274
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.462";
|
|
26247
26275
|
const roundParityValue = (value) => {
|
|
26248
26276
|
if (typeof value !== "number") return value;
|
|
26249
26277
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -27057,7 +27085,7 @@ class PixldocsRenderer {
|
|
|
27057
27085
|
await this.waitForCanvasScene(container, cloned, i);
|
|
27058
27086
|
}
|
|
27059
27087
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
27060
|
-
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
27088
|
+
const { exportMultiPagePdf, preparePagesForExport } = await Promise.resolve().then(() => require("./vectorPdfExport-IjuMSK-o.cjs"));
|
|
27061
27089
|
const prepared = preparePagesForExport(
|
|
27062
27090
|
cloned.pages,
|
|
27063
27091
|
canvasWidth,
|
|
@@ -29377,7 +29405,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
29377
29405
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
29378
29406
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
29379
29407
|
try {
|
|
29380
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-
|
|
29408
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await Promise.resolve().then(() => require("./vectorPdfExport-IjuMSK-o.cjs"));
|
|
29381
29409
|
try {
|
|
29382
29410
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
29383
29411
|
} catch {
|
|
@@ -29691,4 +29719,4 @@ exports.setAutoShrinkDebug = setAutoShrinkDebug;
|
|
|
29691
29719
|
exports.setBundledAssetPrefixes = setBundledAssetPrefixes;
|
|
29692
29720
|
exports.warmResolvedTemplateForPreview = warmResolvedTemplateForPreview;
|
|
29693
29721
|
exports.warmTemplateFromForm = warmTemplateFromForm;
|
|
29694
|
-
//# sourceMappingURL=index-
|
|
29722
|
+
//# sourceMappingURL=index-DjoKgogq.cjs.map
|