graphics-debug 0.0.50 → 0.0.51
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/{chunk-NVFLPFBX.js → chunk-EO534DRE.js} +1 -1
- package/dist/chunk-EO534DRE.js.map +1 -0
- package/dist/{chunk-J5MZK6YF.js → chunk-QTNAVSSJ.js} +32 -4
- package/dist/chunk-QTNAVSSJ.js.map +1 -0
- package/dist/cli/cli.js +4 -4
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +4 -2
- package/dist/lib/matcher.js +2 -2
- package/dist/lib/react.js +2 -2
- package/dist/lib/stackGraphics.d.ts +5 -1
- package/dist/lib/stackGraphics.js +3 -1
- package/package.json +2 -2
- package/dist/chunk-J5MZK6YF.js.map +0 -1
- package/dist/chunk-NVFLPFBX.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../lib/index.ts"],"sourcesContent":["import { getGraphicsObjectsFromLogString } from \"./getGraphicsObjectsFromLogString\"\nimport { getSvgFromGraphicsObject } from \"./getSvgFromGraphicsObject\"\nimport {\n drawGraphicsToCanvas,\n computeTransformFromViewbox,\n getBounds,\n} from \"./drawGraphicsToCanvas\"\nimport { translateGraphics } from \"./translateGraphics\"\nimport { mergeGraphics } from \"./mergeGraphics\"\nimport {\n stackGraphicsHorizontally,\n stackGraphicsVertically,\n createGraphicsGrid,\n} from \"./stackGraphics\"\n\nexport type {\n Point,\n Line,\n Rect,\n Circle,\n Text,\n NinePointAnchor,\n GraphicsObject,\n Viewbox,\n CenterViewbox,\n TransformOptions,\n} from \"./types\"\nexport { getGraphicsObjectsFromLogString } from \"./getGraphicsObjectsFromLogString\"\nexport { getSvgFromGraphicsObject } from \"./getSvgFromGraphicsObject\"\nexport {\n drawGraphicsToCanvas,\n computeTransformFromViewbox,\n getBounds,\n} from \"./drawGraphicsToCanvas\"\nexport { translateGraphics } from \"./translateGraphics\"\nexport { mergeGraphics } from \"./mergeGraphics\"\nexport {\n stackGraphicsHorizontally,\n stackGraphicsVertically,\n createGraphicsGrid,\n} from \"./stackGraphics\"\nexport { FONT_SIZE_WIDTH_RATIO, FONT_SIZE_HEIGHT_RATIO } from \"./constants\"\n\nexport function getSvgFromLogString(logString: string): string {\n const objects = getGraphicsObjectsFromLogString(logString)\n if (objects.length === 0) return \"\"\n return getSvgFromGraphicsObject(objects[0])\n}\n\nexport function getHtmlFromLogString(logString: string): string {\n const svgs = getSvgsFromLogString(logString)\n if (svgs.length === 0) return \"\"\n\n const sections = svgs\n .map(\n ({ title, svg }) => `\n <section>\n <h2>${title}</h2>\n ${svg}\n </section>\n `,\n )\n .join(\"\\n\")\n\n return `\n<!DOCTYPE html>\n<html>\n<head>\n <title>Graphics Debug Output</title>\n <style>\n body { font-family: system-ui; max-width: 1200px; margin: 0 auto; padding: 20px; }\n h1 { color: #333; }\n section { margin: 40px 0; }\n svg { max-width: 100%; height: auto; border: 1px solid #eee; }\n </style>\n</head>\n<body>\n <h1>Graphics Debug Output</h1>\n ${sections}\n</body>\n</html>`\n}\n\nexport function getSvgsFromLogString(\n logString: string,\n): Array<{ title: string; svg: string }> {\n const objects = getGraphicsObjectsFromLogString(logString)\n return objects.map((obj) => ({\n title: obj.title || \"Untitled Graphic\",\n svg: getSvgFromGraphicsObject(obj),\n }))\n}\n"],"mappings":";;;;;;;;AA2CO,SAAS,oBAAoB,WAA2B;AAC7D,QAAM,UAAU,gCAAgC,SAAS;AACzD,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,SAAO,yBAAyB,QAAQ,CAAC,CAAC;AAC5C;AAEO,SAAS,qBAAqB,WAA2B;AAC9D,QAAM,OAAO,qBAAqB,SAAS;AAC3C,MAAI,KAAK,WAAW,EAAG,QAAO;AAE9B,QAAM,WAAW,KACd;AAAA,IACC,CAAC,EAAE,OAAO,IAAI,MAAM;AAAA;AAAA,YAEd,KAAK;AAAA,QACT,GAAG;AAAA;AAAA;AAAA,EAGP,EACC,KAAK,IAAI;AAEZ,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcL,QAAQ;AAAA;AAAA;AAGZ;AAEO,SAAS,qBACd,WACuC;AACvC,QAAM,UAAU,gCAAgC,SAAS;AACzD,SAAO,QAAQ,IAAI,CAAC,SAAS;AAAA,IAC3B,OAAO,IAAI,SAAS;AAAA,IACpB,KAAK,yBAAyB,GAAG;AAAA,EACnC,EAAE;AACJ;","names":[]}
|
|
@@ -20,7 +20,7 @@ function stackGraphicsHorizontally(graphicsList) {
|
|
|
20
20
|
const prevWidth = prevBounds.maxX - prevBounds.minX;
|
|
21
21
|
const width = bounds.maxX - bounds.minX;
|
|
22
22
|
const padding = (prevWidth + width) / 8;
|
|
23
|
-
const dx = prevBounds.
|
|
23
|
+
const dx = prevBounds.minX - padding - bounds.maxX;
|
|
24
24
|
const dy = baseMinY - bounds.minY;
|
|
25
25
|
const shifted = translateGraphics(g, dx, dy);
|
|
26
26
|
result = mergeGraphics(result, shifted);
|
|
@@ -40,16 +40,44 @@ function stackGraphicsVertically(graphicsList) {
|
|
|
40
40
|
const height = bounds.maxY - bounds.minY;
|
|
41
41
|
const padding = (prevHeight + height) / 8;
|
|
42
42
|
const dx = baseMinX - bounds.minX;
|
|
43
|
-
const dy = prevBounds.
|
|
43
|
+
const dy = prevBounds.minY - padding - bounds.maxY;
|
|
44
44
|
const shifted = translateGraphics(g, dx, dy);
|
|
45
45
|
result = mergeGraphics(result, shifted);
|
|
46
46
|
prevBounds = getBounds(shifted);
|
|
47
47
|
}
|
|
48
48
|
return result;
|
|
49
49
|
}
|
|
50
|
+
function createGraphicsGrid(graphicsRows, opts = {}) {
|
|
51
|
+
if (graphicsRows.length === 0 || graphicsRows[0].length === 0) return {};
|
|
52
|
+
let maxWidth = 0;
|
|
53
|
+
let maxHeight = 0;
|
|
54
|
+
for (const row of graphicsRows) {
|
|
55
|
+
for (const g of row) {
|
|
56
|
+
const b = getBounds(g);
|
|
57
|
+
maxWidth = Math.max(maxWidth, b.maxX - b.minX);
|
|
58
|
+
maxHeight = Math.max(maxHeight, b.maxY - b.minY);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const cellWidth = opts.cellWidth ?? maxWidth;
|
|
62
|
+
const cellHeight = opts.cellHeight ?? maxHeight;
|
|
63
|
+
let result = null;
|
|
64
|
+
for (let r = 0; r < graphicsRows.length; r++) {
|
|
65
|
+
const row = graphicsRows[r];
|
|
66
|
+
for (let c = 0; c < row.length; c++) {
|
|
67
|
+
const g = row[c];
|
|
68
|
+
const b = getBounds(g);
|
|
69
|
+
const dx = c * cellWidth - b.minX;
|
|
70
|
+
const dy = r * cellHeight - b.minY;
|
|
71
|
+
const shifted = translateGraphics(g, dx, dy);
|
|
72
|
+
result = result ? mergeGraphics(result, shifted) : shifted;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return result ?? {};
|
|
76
|
+
}
|
|
50
77
|
|
|
51
78
|
export {
|
|
52
79
|
stackGraphicsHorizontally,
|
|
53
|
-
stackGraphicsVertically
|
|
80
|
+
stackGraphicsVertically,
|
|
81
|
+
createGraphicsGrid
|
|
54
82
|
};
|
|
55
|
-
//# sourceMappingURL=chunk-
|
|
83
|
+
//# sourceMappingURL=chunk-QTNAVSSJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../lib/stackGraphics.ts"],"sourcesContent":["export {\n stackGraphicsHorizontally,\n stackGraphicsVertically,\n createGraphicsGrid,\n}\nimport type { GraphicsObject } from \"./types\"\nimport { getBounds } from \"./drawGraphicsToCanvas\"\nimport { translateGraphics } from \"./translateGraphics\"\nimport { mergeGraphics } from \"./mergeGraphics\"\n\nfunction stackGraphicsHorizontally(\n graphicsList: GraphicsObject[],\n): GraphicsObject {\n if (graphicsList.length === 0) return {}\n let result = graphicsList[0]\n let prevBounds = getBounds(result)\n const baseMinY = prevBounds.minY\n for (let i = 1; i < graphicsList.length; i++) {\n const g = graphicsList[i]\n const bounds = getBounds(g)\n const prevWidth = prevBounds.maxX - prevBounds.minX\n const width = bounds.maxX - bounds.minX\n const padding = (prevWidth + width) / 8\n const dx = prevBounds.minX - padding - bounds.maxX\n const dy = baseMinY - bounds.minY\n const shifted = translateGraphics(g, dx, dy)\n result = mergeGraphics(result, shifted)\n prevBounds = getBounds(shifted)\n }\n return result\n}\n\nfunction stackGraphicsVertically(\n graphicsList: GraphicsObject[],\n): GraphicsObject {\n if (graphicsList.length === 0) return {}\n let result = graphicsList[0]\n let prevBounds = getBounds(result)\n const baseMinX = prevBounds.minX\n for (let i = 1; i < graphicsList.length; i++) {\n const g = graphicsList[i]\n const bounds = getBounds(g)\n const prevHeight = prevBounds.maxY - prevBounds.minY\n const height = bounds.maxY - bounds.minY\n const padding = (prevHeight + height) / 8\n const dx = baseMinX - bounds.minX\n const dy = prevBounds.minY - padding - bounds.maxY\n const shifted = translateGraphics(g, dx, dy)\n result = mergeGraphics(result, shifted)\n prevBounds = getBounds(shifted)\n }\n return result\n}\n\nfunction createGraphicsGrid(\n graphicsRows: GraphicsObject[][],\n opts: { cellWidth?: number; cellHeight?: number } = {},\n): GraphicsObject {\n if (graphicsRows.length === 0 || graphicsRows[0].length === 0) return {}\n\n let maxWidth = 0\n let maxHeight = 0\n for (const row of graphicsRows) {\n for (const g of row) {\n const b = getBounds(g)\n maxWidth = Math.max(maxWidth, b.maxX - b.minX)\n maxHeight = Math.max(maxHeight, b.maxY - b.minY)\n }\n }\n\n const cellWidth = opts.cellWidth ?? maxWidth\n const cellHeight = opts.cellHeight ?? maxHeight\n\n let result: GraphicsObject | null = null\n\n for (let r = 0; r < graphicsRows.length; r++) {\n const row = graphicsRows[r]\n for (let c = 0; c < row.length; c++) {\n const g = row[c]\n const b = getBounds(g)\n const dx = c * cellWidth - b.minX\n const dy = r * cellHeight - b.minY\n const shifted = translateGraphics(g, dx, dy)\n result = result ? mergeGraphics(result, shifted) : shifted\n }\n }\n\n return result ?? {}\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAS,0BACP,cACgB;AAChB,MAAI,aAAa,WAAW,EAAG,QAAO,CAAC;AACvC,MAAI,SAAS,aAAa,CAAC;AAC3B,MAAI,aAAa,UAAU,MAAM;AACjC,QAAM,WAAW,WAAW;AAC5B,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,IAAI,aAAa,CAAC;AACxB,UAAM,SAAS,UAAU,CAAC;AAC1B,UAAM,YAAY,WAAW,OAAO,WAAW;AAC/C,UAAM,QAAQ,OAAO,OAAO,OAAO;AACnC,UAAM,WAAW,YAAY,SAAS;AACtC,UAAM,KAAK,WAAW,OAAO,UAAU,OAAO;AAC9C,UAAM,KAAK,WAAW,OAAO;AAC7B,UAAM,UAAU,kBAAkB,GAAG,IAAI,EAAE;AAC3C,aAAS,cAAc,QAAQ,OAAO;AACtC,iBAAa,UAAU,OAAO;AAAA,EAChC;AACA,SAAO;AACT;AAEA,SAAS,wBACP,cACgB;AAChB,MAAI,aAAa,WAAW,EAAG,QAAO,CAAC;AACvC,MAAI,SAAS,aAAa,CAAC;AAC3B,MAAI,aAAa,UAAU,MAAM;AACjC,QAAM,WAAW,WAAW;AAC5B,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,IAAI,aAAa,CAAC;AACxB,UAAM,SAAS,UAAU,CAAC;AAC1B,UAAM,aAAa,WAAW,OAAO,WAAW;AAChD,UAAM,SAAS,OAAO,OAAO,OAAO;AACpC,UAAM,WAAW,aAAa,UAAU;AACxC,UAAM,KAAK,WAAW,OAAO;AAC7B,UAAM,KAAK,WAAW,OAAO,UAAU,OAAO;AAC9C,UAAM,UAAU,kBAAkB,GAAG,IAAI,EAAE;AAC3C,aAAS,cAAc,QAAQ,OAAO;AACtC,iBAAa,UAAU,OAAO;AAAA,EAChC;AACA,SAAO;AACT;AAEA,SAAS,mBACP,cACA,OAAoD,CAAC,GACrC;AAChB,MAAI,aAAa,WAAW,KAAK,aAAa,CAAC,EAAE,WAAW,EAAG,QAAO,CAAC;AAEvE,MAAI,WAAW;AACf,MAAI,YAAY;AAChB,aAAW,OAAO,cAAc;AAC9B,eAAW,KAAK,KAAK;AACnB,YAAM,IAAI,UAAU,CAAC;AACrB,iBAAW,KAAK,IAAI,UAAU,EAAE,OAAO,EAAE,IAAI;AAC7C,kBAAY,KAAK,IAAI,WAAW,EAAE,OAAO,EAAE,IAAI;AAAA,IACjD;AAAA,EACF;AAEA,QAAM,YAAY,KAAK,aAAa;AACpC,QAAM,aAAa,KAAK,cAAc;AAEtC,MAAI,SAAgC;AAEpC,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,MAAM,aAAa,CAAC;AAC1B,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,YAAM,IAAI,IAAI,CAAC;AACf,YAAM,IAAI,UAAU,CAAC;AACrB,YAAM,KAAK,IAAI,YAAY,EAAE;AAC7B,YAAM,KAAK,IAAI,aAAa,EAAE;AAC9B,YAAM,UAAU,kBAAkB,GAAG,IAAI,EAAE;AAC3C,eAAS,SAAS,cAAc,QAAQ,OAAO,IAAI;AAAA,IACrD;AAAA,EACF;AAEA,SAAO,UAAU,CAAC;AACpB;","names":[]}
|
package/dist/cli/cli.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import {
|
|
3
3
|
getHtmlFromLogString,
|
|
4
4
|
getSvgsFromLogString
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
5
|
+
} from "../chunk-EO534DRE.js";
|
|
6
|
+
import "../chunk-QTNAVSSJ.js";
|
|
7
7
|
import "../chunk-K2IJQPPY.js";
|
|
8
8
|
import "../chunk-ARYXS3GC.js";
|
|
9
9
|
import {
|
|
@@ -14,8 +14,8 @@ import "../chunk-ZGI74PYD.js";
|
|
|
14
14
|
import "../chunk-TJJMMKHI.js";
|
|
15
15
|
|
|
16
16
|
// cli/cli.ts
|
|
17
|
-
import { parseArgs } from "
|
|
18
|
-
import { writeFileSync } from "
|
|
17
|
+
import { parseArgs } from "util";
|
|
18
|
+
import { writeFileSync } from "fs";
|
|
19
19
|
async function getInput() {
|
|
20
20
|
if (process.stdin.isTTY && process.stderr.isTTY) {
|
|
21
21
|
console.error(
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { getSvgFromGraphicsObject } from './getSvgFromGraphicsObject.js';
|
|
|
4
4
|
export { computeTransformFromViewbox, drawGraphicsToCanvas, getBounds } from './drawGraphicsToCanvas.js';
|
|
5
5
|
export { translateGraphics } from './translateGraphics.js';
|
|
6
6
|
export { mergeGraphics } from './mergeGraphics.js';
|
|
7
|
-
export { stackGraphicsHorizontally, stackGraphicsVertically } from './stackGraphics.js';
|
|
7
|
+
export { createGraphicsGrid, stackGraphicsHorizontally, stackGraphicsVertically } from './stackGraphics.js';
|
|
8
8
|
export { FONT_SIZE_HEIGHT_RATIO, FONT_SIZE_WIDTH_RATIO } from './constants.js';
|
|
9
9
|
import 'transformation-matrix';
|
|
10
10
|
|
package/dist/lib/index.js
CHANGED
|
@@ -2,11 +2,12 @@ import {
|
|
|
2
2
|
getHtmlFromLogString,
|
|
3
3
|
getSvgFromLogString,
|
|
4
4
|
getSvgsFromLogString
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-EO534DRE.js";
|
|
6
6
|
import {
|
|
7
|
+
createGraphicsGrid,
|
|
7
8
|
stackGraphicsHorizontally,
|
|
8
9
|
stackGraphicsVertically
|
|
9
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-QTNAVSSJ.js";
|
|
10
11
|
import {
|
|
11
12
|
translateGraphics
|
|
12
13
|
} from "../chunk-K2IJQPPY.js";
|
|
@@ -32,6 +33,7 @@ export {
|
|
|
32
33
|
FONT_SIZE_HEIGHT_RATIO,
|
|
33
34
|
FONT_SIZE_WIDTH_RATIO,
|
|
34
35
|
computeTransformFromViewbox,
|
|
36
|
+
createGraphicsGrid,
|
|
35
37
|
drawGraphicsToCanvas,
|
|
36
38
|
getBounds,
|
|
37
39
|
getGraphicsObjectsFromLogString,
|
package/dist/lib/matcher.js
CHANGED
|
@@ -5,8 +5,8 @@ import "../chunk-ZGI74PYD.js";
|
|
|
5
5
|
|
|
6
6
|
// lib/matcher.ts
|
|
7
7
|
import { expect } from "bun:test";
|
|
8
|
-
import * as fs from "
|
|
9
|
-
import * as path from "
|
|
8
|
+
import * as fs from "fs";
|
|
9
|
+
import * as path from "path";
|
|
10
10
|
import looksSame from "looks-same";
|
|
11
11
|
async function toMatchGraphicsSvg(receivedMaybePromise, testPathOriginal, opts = {}) {
|
|
12
12
|
const received = await receivedMaybePromise;
|
package/dist/lib/react.js
CHANGED
|
@@ -3,5 +3,9 @@ import 'transformation-matrix';
|
|
|
3
3
|
|
|
4
4
|
declare function stackGraphicsHorizontally(graphicsList: GraphicsObject[]): GraphicsObject;
|
|
5
5
|
declare function stackGraphicsVertically(graphicsList: GraphicsObject[]): GraphicsObject;
|
|
6
|
+
declare function createGraphicsGrid(graphicsRows: GraphicsObject[][], opts?: {
|
|
7
|
+
cellWidth?: number;
|
|
8
|
+
cellHeight?: number;
|
|
9
|
+
}): GraphicsObject;
|
|
6
10
|
|
|
7
|
-
export { stackGraphicsHorizontally, stackGraphicsVertically };
|
|
11
|
+
export { createGraphicsGrid, stackGraphicsHorizontally, stackGraphicsVertically };
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
+
createGraphicsGrid,
|
|
2
3
|
stackGraphicsHorizontally,
|
|
3
4
|
stackGraphicsVertically
|
|
4
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-QTNAVSSJ.js";
|
|
5
6
|
import "../chunk-K2IJQPPY.js";
|
|
6
7
|
import "../chunk-ARYXS3GC.js";
|
|
7
8
|
import "../chunk-ZGI74PYD.js";
|
|
8
9
|
import "../chunk-TJJMMKHI.js";
|
|
9
10
|
export {
|
|
11
|
+
createGraphicsGrid,
|
|
10
12
|
stackGraphicsHorizontally,
|
|
11
13
|
stackGraphicsVertically
|
|
12
14
|
};
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "graphics-debug",
|
|
3
3
|
"main": "dist/lib/index.js",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.51",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist"
|
|
8
8
|
],
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"react-router-dom": "^6.28.0",
|
|
66
66
|
"react-supergrid": "^1.0.10",
|
|
67
67
|
"svgson": "^5.3.1",
|
|
68
|
-
"transformation-matrix": "^
|
|
68
|
+
"transformation-matrix": "^3.0.0",
|
|
69
69
|
"use-mouse-matrix-transform": "^1.3.0"
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/stackGraphics.ts"],"sourcesContent":["export { stackGraphicsHorizontally, stackGraphicsVertically }\nimport type { GraphicsObject } from \"./types\"\nimport { getBounds } from \"./drawGraphicsToCanvas\"\nimport { translateGraphics } from \"./translateGraphics\"\nimport { mergeGraphics } from \"./mergeGraphics\"\n\nfunction stackGraphicsHorizontally(\n graphicsList: GraphicsObject[],\n): GraphicsObject {\n if (graphicsList.length === 0) return {}\n let result = graphicsList[0]\n let prevBounds = getBounds(result)\n const baseMinY = prevBounds.minY\n for (let i = 1; i < graphicsList.length; i++) {\n const g = graphicsList[i]\n const bounds = getBounds(g)\n const prevWidth = prevBounds.maxX - prevBounds.minX\n const width = bounds.maxX - bounds.minX\n const padding = (prevWidth + width) / 8\n const dx = prevBounds.maxX + padding - bounds.minX\n const dy = baseMinY - bounds.minY\n const shifted = translateGraphics(g, dx, dy)\n result = mergeGraphics(result, shifted)\n prevBounds = getBounds(shifted)\n }\n return result\n}\n\nfunction stackGraphicsVertically(\n graphicsList: GraphicsObject[],\n): GraphicsObject {\n if (graphicsList.length === 0) return {}\n let result = graphicsList[0]\n let prevBounds = getBounds(result)\n const baseMinX = prevBounds.minX\n for (let i = 1; i < graphicsList.length; i++) {\n const g = graphicsList[i]\n const bounds = getBounds(g)\n const prevHeight = prevBounds.maxY - prevBounds.minY\n const height = bounds.maxY - bounds.minY\n const padding = (prevHeight + height) / 8\n const dx = baseMinX - bounds.minX\n const dy = prevBounds.maxY + padding - bounds.minY\n const shifted = translateGraphics(g, dx, dy)\n result = mergeGraphics(result, shifted)\n prevBounds = getBounds(shifted)\n }\n return result\n}\n"],"mappings":";;;;;;;;;;;AAMA,SAAS,0BACP,cACgB;AAChB,MAAI,aAAa,WAAW,EAAG,QAAO,CAAC;AACvC,MAAI,SAAS,aAAa,CAAC;AAC3B,MAAI,aAAa,UAAU,MAAM;AACjC,QAAM,WAAW,WAAW;AAC5B,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,IAAI,aAAa,CAAC;AACxB,UAAM,SAAS,UAAU,CAAC;AAC1B,UAAM,YAAY,WAAW,OAAO,WAAW;AAC/C,UAAM,QAAQ,OAAO,OAAO,OAAO;AACnC,UAAM,WAAW,YAAY,SAAS;AACtC,UAAM,KAAK,WAAW,OAAO,UAAU,OAAO;AAC9C,UAAM,KAAK,WAAW,OAAO;AAC7B,UAAM,UAAU,kBAAkB,GAAG,IAAI,EAAE;AAC3C,aAAS,cAAc,QAAQ,OAAO;AACtC,iBAAa,UAAU,OAAO;AAAA,EAChC;AACA,SAAO;AACT;AAEA,SAAS,wBACP,cACgB;AAChB,MAAI,aAAa,WAAW,EAAG,QAAO,CAAC;AACvC,MAAI,SAAS,aAAa,CAAC;AAC3B,MAAI,aAAa,UAAU,MAAM;AACjC,QAAM,WAAW,WAAW;AAC5B,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,IAAI,aAAa,CAAC;AACxB,UAAM,SAAS,UAAU,CAAC;AAC1B,UAAM,aAAa,WAAW,OAAO,WAAW;AAChD,UAAM,SAAS,OAAO,OAAO,OAAO;AACpC,UAAM,WAAW,aAAa,UAAU;AACxC,UAAM,KAAK,WAAW,OAAO;AAC7B,UAAM,KAAK,WAAW,OAAO,UAAU,OAAO;AAC9C,UAAM,UAAU,kBAAkB,GAAG,IAAI,EAAE;AAC3C,aAAS,cAAc,QAAQ,OAAO;AACtC,iBAAa,UAAU,OAAO;AAAA,EAChC;AACA,SAAO;AACT;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/index.ts"],"sourcesContent":["import { getGraphicsObjectsFromLogString } from \"./getGraphicsObjectsFromLogString\"\nimport { getSvgFromGraphicsObject } from \"./getSvgFromGraphicsObject\"\nimport {\n drawGraphicsToCanvas,\n computeTransformFromViewbox,\n getBounds,\n} from \"./drawGraphicsToCanvas\"\nimport { translateGraphics } from \"./translateGraphics\"\nimport { mergeGraphics } from \"./mergeGraphics\"\nimport {\n stackGraphicsHorizontally,\n stackGraphicsVertically,\n} from \"./stackGraphics\"\n\nexport type {\n Point,\n Line,\n Rect,\n Circle,\n Text,\n NinePointAnchor,\n GraphicsObject,\n Viewbox,\n CenterViewbox,\n TransformOptions,\n} from \"./types\"\nexport { getGraphicsObjectsFromLogString } from \"./getGraphicsObjectsFromLogString\"\nexport { getSvgFromGraphicsObject } from \"./getSvgFromGraphicsObject\"\nexport {\n drawGraphicsToCanvas,\n computeTransformFromViewbox,\n getBounds,\n} from \"./drawGraphicsToCanvas\"\nexport { translateGraphics } from \"./translateGraphics\"\nexport { mergeGraphics } from \"./mergeGraphics\"\nexport {\n stackGraphicsHorizontally,\n stackGraphicsVertically,\n} from \"./stackGraphics\"\nexport { FONT_SIZE_WIDTH_RATIO, FONT_SIZE_HEIGHT_RATIO } from \"./constants\"\n\nexport function getSvgFromLogString(logString: string): string {\n const objects = getGraphicsObjectsFromLogString(logString)\n if (objects.length === 0) return \"\"\n return getSvgFromGraphicsObject(objects[0])\n}\n\nexport function getHtmlFromLogString(logString: string): string {\n const svgs = getSvgsFromLogString(logString)\n if (svgs.length === 0) return \"\"\n\n const sections = svgs\n .map(\n ({ title, svg }) => `\n <section>\n <h2>${title}</h2>\n ${svg}\n </section>\n `,\n )\n .join(\"\\n\")\n\n return `\n<!DOCTYPE html>\n<html>\n<head>\n <title>Graphics Debug Output</title>\n <style>\n body { font-family: system-ui; max-width: 1200px; margin: 0 auto; padding: 20px; }\n h1 { color: #333; }\n section { margin: 40px 0; }\n svg { max-width: 100%; height: auto; border: 1px solid #eee; }\n </style>\n</head>\n<body>\n <h1>Graphics Debug Output</h1>\n ${sections}\n</body>\n</html>`\n}\n\nexport function getSvgsFromLogString(\n logString: string,\n): Array<{ title: string; svg: string }> {\n const objects = getGraphicsObjectsFromLogString(logString)\n return objects.map((obj) => ({\n title: obj.title || \"Untitled Graphic\",\n svg: getSvgFromGraphicsObject(obj),\n }))\n}\n"],"mappings":";;;;;;;;AAyCO,SAAS,oBAAoB,WAA2B;AAC7D,QAAM,UAAU,gCAAgC,SAAS;AACzD,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,SAAO,yBAAyB,QAAQ,CAAC,CAAC;AAC5C;AAEO,SAAS,qBAAqB,WAA2B;AAC9D,QAAM,OAAO,qBAAqB,SAAS;AAC3C,MAAI,KAAK,WAAW,EAAG,QAAO;AAE9B,QAAM,WAAW,KACd;AAAA,IACC,CAAC,EAAE,OAAO,IAAI,MAAM;AAAA;AAAA,YAEd,KAAK;AAAA,QACT,GAAG;AAAA;AAAA;AAAA,EAGP,EACC,KAAK,IAAI;AAEZ,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcL,QAAQ;AAAA;AAAA;AAGZ;AAEO,SAAS,qBACd,WACuC;AACvC,QAAM,UAAU,gCAAgC,SAAS;AACzD,SAAO,QAAQ,IAAI,CAAC,SAAS;AAAA,IAC3B,OAAO,IAAI,SAAS;AAAA,IACpB,KAAK,yBAAyB,GAAG;AAAA,EACnC,EAAE;AACJ;","names":[]}
|