@pixldocs/canvas-renderer 0.5.148 → 0.5.149
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-BkhtOI5W.js → index-Bpxp8eDf.js} +5 -5
- package/dist/{index-BkhtOI5W.js.map → index-Bpxp8eDf.js.map} +1 -1
- package/dist/{index-Bt1m9Esp.cjs → index-C6IaOn7u.cjs} +5 -5
- package/dist/{index-Bt1m9Esp.cjs.map → index-C6IaOn7u.cjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{vectorPdfExport-BX2pT0Zn.js → vectorPdfExport-DkZDHKeR.js} +26 -18
- package/dist/vectorPdfExport-DkZDHKeR.js.map +1 -0
- package/dist/{vectorPdfExport-JGntLQJQ.cjs → vectorPdfExport-FwEcQIPB.cjs} +26 -18
- package/dist/vectorPdfExport-FwEcQIPB.cjs.map +1 -0
- package/package.json +1 -1
- package/dist/vectorPdfExport-BX2pT0Zn.js.map +0 -1
- package/dist/vectorPdfExport-JGntLQJQ.cjs.map +0 -1
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jspdf = require("jspdf");
|
|
4
4
|
const svg2pdf_js = require("svg2pdf.js");
|
|
5
5
|
const fabric = require("fabric");
|
|
6
|
-
const index = require("./index-
|
|
6
|
+
const index = require("./index-C6IaOn7u.cjs");
|
|
7
7
|
const pdfFonts = require("./pdfFonts-BTEVnYX8.cjs");
|
|
8
8
|
function _interopNamespaceDefault(e) {
|
|
9
9
|
const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
|
|
@@ -1253,24 +1253,26 @@ async function bakeTextAnchorPositionsFromLiveSvg(svg) {
|
|
|
1253
1253
|
if (cleaned) node.setAttribute("style", cleaned);
|
|
1254
1254
|
else node.removeAttribute("style");
|
|
1255
1255
|
};
|
|
1256
|
-
const
|
|
1256
|
+
const readInheritedX = (node) => {
|
|
1257
|
+
let cur = node;
|
|
1258
|
+
while (cur) {
|
|
1259
|
+
const v = cur.getAttribute("x");
|
|
1260
|
+
if (v) {
|
|
1261
|
+
const parsed = parseFloat(v.split(/[\s,]+/)[0]);
|
|
1262
|
+
return Number.isFinite(parsed) ? parsed : NaN;
|
|
1263
|
+
}
|
|
1264
|
+
cur = cur.parentElement;
|
|
1265
|
+
}
|
|
1266
|
+
return NaN;
|
|
1267
|
+
};
|
|
1268
|
+
const bakeNode = (srcNode, liveNode, anchorOverride, refXOverride) => {
|
|
1257
1269
|
const anchor = (anchorOverride || _resolveAnchor(srcNode)).trim().toLowerCase();
|
|
1258
1270
|
if (anchor !== "middle" && anchor !== "end") return;
|
|
1259
1271
|
try {
|
|
1260
1272
|
const content = srcNode.textContent || "";
|
|
1261
1273
|
if (content.length > 0) {
|
|
1262
1274
|
const width = _measureWidthCanvas(srcNode, content);
|
|
1263
|
-
|
|
1264
|
-
let cur = srcNode;
|
|
1265
|
-
while (cur) {
|
|
1266
|
-
const v = cur.getAttribute("x");
|
|
1267
|
-
if (v) {
|
|
1268
|
-
refXAttr = v;
|
|
1269
|
-
break;
|
|
1270
|
-
}
|
|
1271
|
-
cur = cur.parentElement;
|
|
1272
|
-
}
|
|
1273
|
-
const refX = refXAttr !== null ? parseFloat(refXAttr.split(/[\s,]+/)[0]) : NaN;
|
|
1275
|
+
const refX = Number.isFinite(refXOverride) ? refXOverride : readInheritedX(srcNode);
|
|
1274
1276
|
if (width !== null && Number.isFinite(refX)) {
|
|
1275
1277
|
const newX = anchor === "middle" ? refX - width / 2 : refX - width;
|
|
1276
1278
|
srcNode.setAttribute("x", String(newX));
|
|
@@ -1297,9 +1299,15 @@ async function bakeTextAnchorPositionsFromLiveSvg(svg) {
|
|
|
1297
1299
|
if (srcTspans.length > 0) {
|
|
1298
1300
|
const parentAnchor = _resolveAnchor(srcText);
|
|
1299
1301
|
const tspanAnchors = srcTspans.map((tspan) => _resolveAnchor(tspan));
|
|
1300
|
-
|
|
1302
|
+
const parentRefX = readInheritedX(srcText);
|
|
1303
|
+
const tspanRefXs = srcTspans.map((tspan) => readInheritedX(tspan));
|
|
1301
1304
|
for (let j = 0; j < srcTspans.length; j++) {
|
|
1302
|
-
|
|
1305
|
+
const refX = Number.isFinite(tspanRefXs[j]) ? tspanRefXs[j] : parentRefX;
|
|
1306
|
+
if (liveTspans[j]) bakeNode(srcTspans[j], liveTspans[j], tspanAnchors[j] || parentAnchor, refX);
|
|
1307
|
+
}
|
|
1308
|
+
if (parentAnchor === "middle" || parentAnchor === "end") {
|
|
1309
|
+
srcText.setAttribute("text-anchor", "start");
|
|
1310
|
+
stripTextAnchorStyle(srcText);
|
|
1303
1311
|
}
|
|
1304
1312
|
} else {
|
|
1305
1313
|
bakeNode(srcText, liveText);
|
|
@@ -2469,7 +2477,7 @@ async function fetchSvgAsElement(imageUrl, colorMap) {
|
|
|
2469
2477
|
async function getRecoloredSvgDataUrl(imageUrl, colorMap) {
|
|
2470
2478
|
if (!colorMap || Object.keys(colorMap).length === 0) return null;
|
|
2471
2479
|
try {
|
|
2472
|
-
const { getNormalizedSvgUrl } = await Promise.resolve().then(() => require("./index-
|
|
2480
|
+
const { getNormalizedSvgUrl } = await Promise.resolve().then(() => require("./index-C6IaOn7u.cjs")).then((n) => n.canvasImageLoader);
|
|
2473
2481
|
return await getNormalizedSvgUrl(imageUrl, colorMap);
|
|
2474
2482
|
} catch {
|
|
2475
2483
|
return null;
|
|
@@ -3250,7 +3258,7 @@ async function fetchImageAsBase64(imageUrl, opts = {}) {
|
|
|
3250
3258
|
}
|
|
3251
3259
|
let fetchUrl = imageUrl;
|
|
3252
3260
|
if (imageUrl.startsWith("http://") || imageUrl.startsWith("https://")) {
|
|
3253
|
-
const { isPrivateUrl } = await Promise.resolve().then(() => require("./index-
|
|
3261
|
+
const { isPrivateUrl } = await Promise.resolve().then(() => require("./index-C6IaOn7u.cjs")).then((n) => n.canvasImageLoader);
|
|
3254
3262
|
if (isPrivateUrl(imageUrl)) return null;
|
|
3255
3263
|
const proxyUrl = new URL(`${index.API_URL}/image-proxy`);
|
|
3256
3264
|
proxyUrl.searchParams.set("url", imageUrl);
|
|
@@ -5232,4 +5240,4 @@ exports.exportMultiPagePdf = exportMultiPagePdf;
|
|
|
5232
5240
|
exports.logTextMeasurementDiagnostic = logTextMeasurementDiagnostic;
|
|
5233
5241
|
exports.preparePagesForExport = preparePagesForExport;
|
|
5234
5242
|
exports.rewriteSvgFontsForJsPDFWithSourceMeta = rewriteSvgFontsForJsPDFWithSourceMeta;
|
|
5235
|
-
//# sourceMappingURL=vectorPdfExport-
|
|
5243
|
+
//# sourceMappingURL=vectorPdfExport-FwEcQIPB.cjs.map
|