@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
|
@@ -4413,8 +4413,12 @@ async function loadImageAsync(element, placeholder, fc, fabricRef, syncLockedRef
|
|
|
4413
4413
|
const elementHeight2 = Number(element.height) * (element.scaleY ?? 1);
|
|
4414
4414
|
const scaledImageWidth = imgNaturalWidth * baseScaleX;
|
|
4415
4415
|
const scaledImageHeight = imgNaturalHeight * baseScaleY;
|
|
4416
|
-
const
|
|
4417
|
-
const
|
|
4416
|
+
const alignH = element.imageAlignH ?? "center";
|
|
4417
|
+
const alignV = element.imageAlignV ?? "middle";
|
|
4418
|
+
const slackX = elementWidth2 - scaledImageWidth;
|
|
4419
|
+
const slackY = elementHeight2 - scaledImageHeight;
|
|
4420
|
+
const imageLeft = imageFit2 === "contain" ? alignH === "left" ? 0 : alignH === "right" ? slackX : slackX / 2 : slackX / 2;
|
|
4421
|
+
const imageTop = imageFit2 === "contain" ? alignV === "top" ? 0 : alignV === "bottom" ? slackY : slackY / 2 : slackY / 2;
|
|
4418
4422
|
img.set({
|
|
4419
4423
|
originX: "left",
|
|
4420
4424
|
originY: "top",
|
|
@@ -5213,8 +5217,19 @@ function updateCoverLayout(g) {
|
|
|
5213
5217
|
const overflowY = Math.max(0, dispH - frameH);
|
|
5214
5218
|
const panX = clamp$1(img._ct.panX ?? 0.5, 0, 1);
|
|
5215
5219
|
const panY = clamp$1(img._ct.panY ?? 0.5, 0, 1);
|
|
5216
|
-
|
|
5217
|
-
|
|
5220
|
+
let offsetX = 0;
|
|
5221
|
+
let offsetY = 0;
|
|
5222
|
+
if (fitContain) {
|
|
5223
|
+
const alignH = ct.alignH ?? "center";
|
|
5224
|
+
const alignV = ct.alignV ?? "middle";
|
|
5225
|
+
const slackX = Math.max(0, frameW - dispW);
|
|
5226
|
+
const slackY = Math.max(0, frameH - dispH);
|
|
5227
|
+
offsetX = alignH === "left" ? -slackX / 2 : alignH === "right" ? slackX / 2 : 0;
|
|
5228
|
+
offsetY = alignV === "top" ? -slackY / 2 : alignV === "bottom" ? slackY / 2 : 0;
|
|
5229
|
+
} else {
|
|
5230
|
+
offsetX = overflowX > 0 ? -overflowX * (panX - 0.5) : 0;
|
|
5231
|
+
offsetY = overflowY > 0 ? -overflowY * (panY - 0.5) : 0;
|
|
5232
|
+
}
|
|
5218
5233
|
img.set({ left: offsetX, top: offsetY });
|
|
5219
5234
|
g.dirty = true;
|
|
5220
5235
|
img.dirty = true;
|
|
@@ -5587,7 +5602,10 @@ async function createMaskedImageElement({
|
|
|
5587
5602
|
visible = true,
|
|
5588
5603
|
panX = 0.5,
|
|
5589
5604
|
panY = 0.5,
|
|
5590
|
-
zoom = 1
|
|
5605
|
+
zoom = 1,
|
|
5606
|
+
fit = "cover",
|
|
5607
|
+
alignH = "center",
|
|
5608
|
+
alignV = "middle"
|
|
5591
5609
|
}) {
|
|
5592
5610
|
const img = image || (url ? await fabric.FabricImage.fromURL(getProxiedImageUrl(url), { crossOrigin: "anonymous" }) : null);
|
|
5593
5611
|
if (!img) {
|
|
@@ -5706,8 +5724,12 @@ async function createMaskedImageElement({
|
|
|
5706
5724
|
rx,
|
|
5707
5725
|
frameW,
|
|
5708
5726
|
frameH,
|
|
5709
|
-
|
|
5710
|
-
//
|
|
5727
|
+
// Honor the element's authored imageFit. When 'contain', the image is
|
|
5728
|
+
// scaled to fit fully inside the frame (no clipping) and alignH/alignV
|
|
5729
|
+
// control where the letterboxed image sits.
|
|
5730
|
+
fit,
|
|
5731
|
+
alignH,
|
|
5732
|
+
alignV,
|
|
5711
5733
|
_img: img,
|
|
5712
5734
|
_border: border
|
|
5713
5735
|
};
|
|
@@ -19616,7 +19638,13 @@ const PageCanvas = forwardRef(
|
|
|
19616
19638
|
visible: !isHidden,
|
|
19617
19639
|
panX,
|
|
19618
19640
|
panY,
|
|
19619
|
-
zoom: zoom2
|
|
19641
|
+
zoom: zoom2,
|
|
19642
|
+
// Honor authored Object Fit + alignment so contain logos render
|
|
19643
|
+
// fully inside the frame, with letterbox aligned to the chosen
|
|
19644
|
+
// edge (instead of being silently cover-cropped).
|
|
19645
|
+
fit: imageFitFinal === "contain" ? "contain" : "cover",
|
|
19646
|
+
alignH: element.imageAlignH ?? "center",
|
|
19647
|
+
alignV: element.imageAlignV ?? "middle"
|
|
19620
19648
|
});
|
|
19621
19649
|
cropGroup.__maintainResolution = element.maintainResolution !== false;
|
|
19622
19650
|
cropGroup.set({
|
|
@@ -26223,9 +26251,9 @@ function captureFabricCanvasSvgForPdf(fabricInstance, canvasWidth, canvasHeight)
|
|
|
26223
26251
|
}
|
|
26224
26252
|
return svgString;
|
|
26225
26253
|
}
|
|
26226
|
-
const resolvedPackageVersion = "0.5.
|
|
26254
|
+
const resolvedPackageVersion = "0.5.462";
|
|
26227
26255
|
const PACKAGE_VERSION = resolvedPackageVersion;
|
|
26228
|
-
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.
|
|
26256
|
+
const DEPLOYMENT_VERSION_MARKER = "__PIXLDOCS_CANVAS_RENDERER_VERSION__:0.5.462";
|
|
26229
26257
|
const roundParityValue = (value) => {
|
|
26230
26258
|
if (typeof value !== "number") return value;
|
|
26231
26259
|
return Number.isFinite(value) ? Number(value.toFixed(3)) : value;
|
|
@@ -27039,7 +27067,7 @@ class PixldocsRenderer {
|
|
|
27039
27067
|
await this.waitForCanvasScene(container, cloned, i);
|
|
27040
27068
|
}
|
|
27041
27069
|
console.log(`[canvas-renderer][pdf-unified] mounted ${cloned.pages.length} page(s), handing off to client exportMultiPagePdf`);
|
|
27042
|
-
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-
|
|
27070
|
+
const { exportMultiPagePdf, preparePagesForExport } = await import("./vectorPdfExport-CFxK100y.js");
|
|
27043
27071
|
const prepared = preparePagesForExport(
|
|
27044
27072
|
cloned.pages,
|
|
27045
27073
|
canvasWidth,
|
|
@@ -29359,7 +29387,7 @@ async function prepareLiveCanvasSvgForPdf(rawSvg, pageWidth, pageHeight, pageKey
|
|
|
29359
29387
|
if (options == null ? void 0 : options.stripPageBackground) stripRootPageBackgroundFromSvg(svgToDraw);
|
|
29360
29388
|
sanitizeSvgTreeForPdf(svgToDraw);
|
|
29361
29389
|
try {
|
|
29362
|
-
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-
|
|
29390
|
+
const { bakeTextAnchorPositionsFromLiveSvg, logTextMeasurementDiagnostic } = await import("./vectorPdfExport-CFxK100y.js");
|
|
29363
29391
|
try {
|
|
29364
29392
|
await logTextMeasurementDiagnostic(svgToDraw);
|
|
29365
29393
|
} catch {
|
|
@@ -29676,4 +29704,4 @@ export {
|
|
|
29676
29704
|
buildTeaserBlurFlatKeys as y,
|
|
29677
29705
|
collectFontDescriptorsFromConfig as z
|
|
29678
29706
|
};
|
|
29679
|
-
//# sourceMappingURL=index-
|
|
29707
|
+
//# sourceMappingURL=index-DzpYcUNd.js.map
|