@agile-team/mach-report 0.4.0 → 0.5.0

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.
Files changed (94) hide show
  1. package/dist/index.cjs +1663 -0
  2. package/dist/index.d.cts +344 -0
  3. package/dist/index.d.ts +344 -13
  4. package/dist/index.js +1611 -14
  5. package/dist/manager.cjs +122 -0
  6. package/dist/{manager/api.d.ts → manager.d.cts} +55 -3
  7. package/dist/manager.d.ts +97 -5
  8. package/dist/manager.js +119 -6
  9. package/dist/pdf.cjs +52530 -0
  10. package/dist/pdf.d.cts +33 -0
  11. package/dist/pdf.d.ts +31 -4
  12. package/dist/pdf.js +52527 -7
  13. package/dist/sql.cjs +45207 -0
  14. package/dist/sql.d.cts +95 -0
  15. package/dist/sql.d.ts +93 -3
  16. package/dist/sql.js +45194 -6
  17. package/dist/textwrap-DWzM7pt1.d.cts +135 -0
  18. package/dist/textwrap-DWzM7pt1.d.ts +135 -0
  19. package/package.json +44 -15
  20. package/dist/builder/template-builder.d.ts +0 -53
  21. package/dist/builder/template-builder.js +0 -153
  22. package/dist/builder/template-builder.js.map +0 -1
  23. package/dist/compat/jh4j-template.d.ts +0 -12
  24. package/dist/compat/jh4j-template.js +0 -196
  25. package/dist/compat/jh4j-template.js.map +0 -1
  26. package/dist/defaults.d.ts +0 -27
  27. package/dist/defaults.js +0 -28
  28. package/dist/defaults.js.map +0 -1
  29. package/dist/index.js.map +0 -1
  30. package/dist/layout/paginate.d.ts +0 -51
  31. package/dist/layout/paginate.js +0 -197
  32. package/dist/layout/paginate.js.map +0 -1
  33. package/dist/layout/textwrap.d.ts +0 -36
  34. package/dist/layout/textwrap.js +0 -173
  35. package/dist/layout/textwrap.js.map +0 -1
  36. package/dist/manager/api.js +0 -101
  37. package/dist/manager/api.js.map +0 -1
  38. package/dist/manager/index.d.ts +0 -2
  39. package/dist/manager/index.js +0 -3
  40. package/dist/manager/index.js.map +0 -1
  41. package/dist/manager/types.d.ts +0 -50
  42. package/dist/manager/types.js +0 -8
  43. package/dist/manager/types.js.map +0 -1
  44. package/dist/manager.js.map +0 -1
  45. package/dist/pdf/font-loader.d.ts +0 -5
  46. package/dist/pdf/font-loader.js +0 -84
  47. package/dist/pdf/font-loader.js.map +0 -1
  48. package/dist/pdf/index.d.ts +0 -2
  49. package/dist/pdf/index.js +0 -3
  50. package/dist/pdf/index.js.map +0 -1
  51. package/dist/pdf/render-pdf.d.ts +0 -19
  52. package/dist/pdf/render-pdf.js +0 -284
  53. package/dist/pdf/render-pdf.js.map +0 -1
  54. package/dist/pdf.js.map +0 -1
  55. package/dist/render/canvas.d.ts +0 -61
  56. package/dist/render/canvas.js +0 -402
  57. package/dist/render/canvas.js.map +0 -1
  58. package/dist/render/dom.d.ts +0 -10
  59. package/dist/render/dom.js +0 -311
  60. package/dist/render/dom.js.map +0 -1
  61. package/dist/render/grid-geometry.d.ts +0 -41
  62. package/dist/render/grid-geometry.js +0 -131
  63. package/dist/render/grid-geometry.js.map +0 -1
  64. package/dist/render/style.d.ts +0 -40
  65. package/dist/render/style.js +0 -39
  66. package/dist/render/style.js.map +0 -1
  67. package/dist/render/window.d.ts +0 -23
  68. package/dist/render/window.js +0 -58
  69. package/dist/render/window.js.map +0 -1
  70. package/dist/schema/render-plan.d.ts +0 -96
  71. package/dist/schema/render-plan.js +0 -25
  72. package/dist/schema/render-plan.js.map +0 -1
  73. package/dist/schema/validate.d.ts +0 -15
  74. package/dist/schema/validate.js +0 -129
  75. package/dist/schema/validate.js.map +0 -1
  76. package/dist/sql/ast-check.d.ts +0 -14
  77. package/dist/sql/ast-check.js +0 -44
  78. package/dist/sql/ast-check.js.map +0 -1
  79. package/dist/sql/compile.d.ts +0 -31
  80. package/dist/sql/compile.js +0 -145
  81. package/dist/sql/compile.js.map +0 -1
  82. package/dist/sql/expr.d.ts +0 -21
  83. package/dist/sql/expr.js +0 -123
  84. package/dist/sql/expr.js.map +0 -1
  85. package/dist/sql/index.d.ts +0 -4
  86. package/dist/sql/index.js +0 -5
  87. package/dist/sql/index.js.map +0 -1
  88. package/dist/sql/tokenizer.d.ts +0 -25
  89. package/dist/sql/tokenizer.js +0 -124
  90. package/dist/sql/tokenizer.js.map +0 -1
  91. package/dist/sql.js.map +0 -1
  92. package/dist/units.d.ts +0 -11
  93. package/dist/units.js +0 -26
  94. package/dist/units.js.map +0 -1
@@ -1,402 +0,0 @@
1
- import { isRichText } from "../schema/render-plan";
2
- import { resolveGridLayout } from "./grid-geometry";
3
- import { wrapText } from "../layout/textwrap";
4
- import { heuristicMeasurer } from "../layout/textwrap";
5
- import { ptToPx } from "../units";
6
- import { DEFAULT_FONT_PT, DEFAULT_TEXT_COLOR, LINE_HEIGHT } from "../defaults";
7
- import { resolveBoxBorders, resolveFontSize, resolveLineHeight, resolveStroke, resolveTextColor } from "./style";
8
- import { computePageWindow } from "./window";
9
- const PX_PER_MM_BASE = 96 / 25.4;
10
- export function measurePageSizePx(page, dpi = 96) {
11
- const pxPerMm = (dpi / 96) * PX_PER_MM_BASE;
12
- return {
13
- widthPx: Math.max(1, Math.round(page.pageWidthMm * pxPerMm)),
14
- heightPx: Math.max(1, Math.round(page.pageHeightMm * pxPerMm))
15
- };
16
- }
17
- function createPageCanvas(page, dpr, dpi) {
18
- const canvas = document.createElement("canvas");
19
- const { widthPx: w, heightPx: h } = measurePageSizePx(page, dpi);
20
- canvas.width = Math.round(w * dpr);
21
- canvas.height = Math.round(h * dpr);
22
- canvas.style.width = `${w}px`;
23
- canvas.style.height = `${h}px`;
24
- const ctx = canvas.getContext("2d");
25
- if (!ctx) {
26
- throw new Error("当前环境不支持 Canvas 2D(测试需真浏览器,见 e2e/canvas.spec.ts)");
27
- }
28
- ctx.scale(dpr, dpr);
29
- ctx.fillStyle = "#ffffff";
30
- ctx.fillRect(0, 0, w, h);
31
- return { canvas, ctx };
32
- }
33
- /** pt→px 换算(与 DOM 后端 units.ptToPx 同一真相源),供单测直接断言 */
34
- export function planFontSizePx(style, dpi = 96) {
35
- return resolveFontSize(style, dpi).fontSizePx;
36
- }
37
- function drawTextBlock(ctx, spec, x, y, w, h, fontFamily, verticalAlign = "top") {
38
- ctx.font = `${spec.bold ? "bold " : ""}${spec.fontSizePx}px ${fontFamily}`;
39
- ctx.fillStyle = spec.color;
40
- ctx.textBaseline = "alphabetic";
41
- const lineH = spec.fontSizePx * spec.lineHeight;
42
- const lines = spec.text === "" ? [""] : spec.text.split("\n");
43
- const totalH = lines.length * lineH;
44
- let topY = y;
45
- if (verticalAlign === "middle")
46
- topY = y + (h - totalH) / 2;
47
- else if (verticalAlign === "bottom")
48
- topY = y + h - totalH;
49
- lines.forEach((line, i) => {
50
- ctx.textAlign = spec.align === "center" ? "center" : spec.align === "right" ? "right" : "left";
51
- const tx = spec.align === "center" ? x + w / 2 : spec.align === "right" ? x + w : x;
52
- ctx.fillText(line, tx, topY + i * lineH + spec.fontSizePx * 0.8, w);
53
- });
54
- ctx.textAlign = "left";
55
- }
56
- function drawGrid(ctx, grid, comp, x, y, w, h, pxPerMm, dpi, fontFamily, measurer) {
57
- const layout = resolveGridLayout(grid, w / pxPerMm, h / pxPerMm);
58
- const borders = resolveBoxBorders(comp.style);
59
- const stroke = resolveStroke(comp.style);
60
- // 单元格底色(独立于边框开关)
61
- for (const box of layout.cells) {
62
- const bg = box.cell.style?.backgroundColor;
63
- if (bg) {
64
- ctx.fillStyle = bg;
65
- ctx.fillRect(x + box.xMm * pxPerMm, y + box.yMm * pxPerMm, box.widthMm * pxPerMm, box.heightMm * pxPerMm);
66
- }
67
- }
68
- if (borders.inner) {
69
- ctx.strokeStyle = stroke.color;
70
- ctx.lineWidth = ptToPx(stroke.widthPt, dpi);
71
- // 内部线段(span 感知:合并单元格中间无线)
72
- for (const e of layout.edges) {
73
- ctx.beginPath();
74
- if (e.kind === "v") {
75
- ctx.moveTo(x + e.pos * pxPerMm, y + e.from * pxPerMm);
76
- ctx.lineTo(x + e.pos * pxPerMm, y + e.to * pxPerMm);
77
- }
78
- else {
79
- ctx.moveTo(x + e.from * pxPerMm, y + e.pos * pxPerMm);
80
- ctx.lineTo(x + e.to * pxPerMm, y + e.pos * pxPerMm);
81
- }
82
- ctx.stroke();
83
- }
84
- // 外框(四边独立开关)
85
- ctx.beginPath();
86
- if (borders.top) {
87
- ctx.moveTo(x, y);
88
- ctx.lineTo(x + w, y);
89
- }
90
- if (borders.right) {
91
- ctx.moveTo(x + w, y);
92
- ctx.lineTo(x + w, y + h);
93
- }
94
- if (borders.bottom) {
95
- ctx.moveTo(x + w, y + h);
96
- ctx.lineTo(x, y + h);
97
- }
98
- if (borders.left) {
99
- ctx.moveTo(x, y + h);
100
- ctx.lineTo(x, y);
101
- }
102
- ctx.stroke();
103
- }
104
- for (const box of layout.cells) {
105
- const text = typeof box.cell.text === "string" ? box.cell.text : "";
106
- if (!text)
107
- continue;
108
- const st = box.cell.style;
109
- const fontSizePt = st?.fontSize ?? DEFAULT_FONT_PT;
110
- const lines = wrapText(text, box.widthMm - 1, { fontSizePt }, measurer).join("\n");
111
- drawTextBlock(ctx, {
112
- text: lines,
113
- fontSizePx: resolveFontSize(st, dpi).fontSizePx,
114
- bold: st?.bold ?? false,
115
- color: st?.color ?? resolveTextColor(comp.style, DEFAULT_TEXT_COLOR),
116
- align: st?.align ?? "left",
117
- lineHeight: LINE_HEIGHT
118
- }, x + (box.xMm + 0.5) * pxPerMm, y + box.yMm * pxPerMm, Math.max(0, (box.widthMm - 1) * pxPerMm), box.heightMm * pxPerMm, fontFamily, st?.verticalAlign ?? "middle");
119
- }
120
- }
121
- function drawComponent(ctx, comp, pxPerMm, dpi, fontFamily, measurer) {
122
- const x = comp.leftMm * pxPerMm;
123
- const y = comp.topMm * pxPerMm;
124
- const w = comp.widthMm * pxPerMm;
125
- const h = comp.heightMm * pxPerMm;
126
- const s = comp.style ?? {};
127
- if (comp.grid) {
128
- drawGrid(ctx, comp.grid, comp, x, y, w, h, pxPerMm, dpi, fontFamily, measurer);
129
- return;
130
- }
131
- switch (comp.kind) {
132
- case "text": {
133
- const fontSizePt = s.fontSize ?? DEFAULT_FONT_PT;
134
- const text = isRichText(comp)
135
- ? comp.richParagraphs
136
- .map((p) => (p.segments ?? []).map((seg) => seg.text ?? seg.field ?? "").join(""))
137
- .join("\n")
138
- : Array.isArray(comp.lines) && comp.lines.length > 0
139
- ? comp.lines.join("\n")
140
- : wrapText(comp.text ?? "", comp.widthMm, { fontSizePt }, measurer).join("\n");
141
- drawTextBlock(ctx, {
142
- text,
143
- fontSizePx: resolveFontSize(s, dpi).fontSizePx,
144
- bold: s.bold ?? false,
145
- color: resolveTextColor(s),
146
- align: s.align ?? "left",
147
- lineHeight: resolveLineHeight(s)
148
- }, x, y, w, h, fontFamily, s.verticalAlign);
149
- break;
150
- }
151
- case "rect": {
152
- const stroke = resolveStroke(s);
153
- const borders = resolveBoxBorders(s);
154
- if (s.backgroundColor) {
155
- ctx.fillStyle = s.backgroundColor;
156
- ctx.fillRect(x, y, w, h);
157
- }
158
- if (borders.inner) {
159
- ctx.strokeStyle = stroke.color;
160
- ctx.lineWidth = ptToPx(stroke.widthPt, dpi);
161
- ctx.beginPath();
162
- if (borders.top) {
163
- ctx.moveTo(x, y);
164
- ctx.lineTo(x + w, y);
165
- }
166
- if (borders.right) {
167
- ctx.moveTo(x + w, y);
168
- ctx.lineTo(x + w, y + h);
169
- }
170
- if (borders.bottom) {
171
- ctx.moveTo(x + w, y + h);
172
- ctx.lineTo(x, y + h);
173
- }
174
- if (borders.left) {
175
- ctx.moveTo(x, y + h);
176
- ctx.lineTo(x, y);
177
- }
178
- ctx.stroke();
179
- }
180
- break;
181
- }
182
- case "line": {
183
- const stroke = resolveStroke({ ...s, borderColor: s.lineColor ?? s.borderColor });
184
- ctx.strokeStyle = stroke.color;
185
- ctx.lineWidth = ptToPx(stroke.widthPt, dpi);
186
- ctx.beginPath();
187
- ctx.moveTo(x, y + h / 2);
188
- ctx.lineTo(x + w, y + h / 2);
189
- ctx.stroke();
190
- break;
191
- }
192
- case "ellipse": {
193
- const stroke = resolveStroke(s);
194
- ctx.strokeStyle = stroke.color;
195
- ctx.lineWidth = ptToPx(stroke.widthPt, dpi);
196
- if (s.backgroundColor) {
197
- ctx.fillStyle = s.backgroundColor;
198
- ctx.beginPath();
199
- ctx.ellipse(x + w / 2, y + h / 2, w / 2, h / 2, 0, 0, Math.PI * 2);
200
- ctx.fill();
201
- }
202
- ctx.beginPath();
203
- ctx.ellipse(x + w / 2, y + h / 2, w / 2, h / 2, 0, 0, Math.PI * 2);
204
- ctx.stroke();
205
- break;
206
- }
207
- default:
208
- break;
209
- }
210
- }
211
- /**
212
- * RenderPlan → Canvas 位图页(顶点原点坐标系,与 DOM/PDF 一致)。
213
- *
214
- * ⚠️ 内存模型:A4 @dpr2 ≈ 14MB/页,全量渲染 100 页 ≈ 1.4GB。
215
- * 大报表必须使用 createCanvasPager(窗口化 + 画布池 + 分帧渲染),
216
- * 本函数适合页数少或已指定 start/end 区间的场景。
217
- */
218
- export function renderPlanToCanvas(plan, options = {}) {
219
- const dpr = options.dpr ?? (typeof devicePixelRatio === "number" ? devicePixelRatio : 1);
220
- const dpi = options.dpi ?? 96;
221
- const pxPerMm = (dpi / 96) * PX_PER_MM_BASE;
222
- const fontFamily = options.fontFamily ?? '"Microsoft YaHei", sans-serif';
223
- const measurer = options.measurer ?? heuristicMeasurer;
224
- const start = Math.max(0, options.start ?? 0);
225
- const end = Math.min(plan.pages.length - 1, options.end ?? plan.pages.length - 1);
226
- const canvases = [];
227
- for (let i = start; i <= end; i++) {
228
- const page = plan.pages[i];
229
- const { canvas, ctx } = createPageCanvas(page, dpr, dpi);
230
- for (const comp of page.components) {
231
- drawComponent(ctx, comp, pxPerMm, dpi, fontFamily, measurer);
232
- }
233
- canvases.push(canvas);
234
- }
235
- return { canvases };
236
- }
237
- /**
238
- * Canvas 虚拟化分页器(大报表专用):
239
- * - 视口窗口化:只绘制窗口内页(computePageWindow 与 DOM 后端共用)
240
- * - 画布池:固定数量 canvas 复用重绘,滚动零新增位图
241
- * - 分帧:每帧最多 pagesPerFrame 页,滚动期间不产生长任务
242
- *
243
- * 内存从 O(总页数) 降到 O(窗口+2×overscan)。
244
- */
245
- export function createCanvasPager(plan, options = {}) {
246
- const dpr = options.dpr ?? (typeof devicePixelRatio === "number" ? devicePixelRatio : 1);
247
- const dpi = options.dpi ?? 96;
248
- const pxPerMm = (dpi / 96) * PX_PER_MM_BASE;
249
- const fontFamily = options.fontFamily ?? '"Microsoft YaHei", sans-serif';
250
- const measurer = options.measurer ?? heuristicMeasurer;
251
- const overscan = options.overscan ?? 1;
252
- const gapPx = options.gapPx ?? 18;
253
- const pagesPerFrame = options.pagesPerFrame ?? 1;
254
- const pageHeightsPx = plan.pages.map((p) => p.pageHeightMm * pxPerMm);
255
- const maxPageWidthPx = Math.max(1, ...plan.pages.map((p) => p.pageWidthMm * pxPerMm));
256
- const windowState = { start: 0, end: -1 };
257
- let viewport = null;
258
- let contentEl = null;
259
- let topSpacer = null;
260
- let bottomSpacer = null;
261
- /** 页槽:固定数量,与窗口内页一一对应(复用 canvas 位图) */
262
- let slots = [];
263
- let raf = 0;
264
- let queued = [];
265
- function ensureLayout() {
266
- const vp = viewport;
267
- vp.innerHTML = "";
268
- contentEl = document.createElement("div");
269
- contentEl.style.cssText = `width:${maxPageWidthPx}px;margin:0 auto;`;
270
- topSpacer = document.createElement("div");
271
- bottomSpacer = document.createElement("div");
272
- contentEl.appendChild(topSpacer);
273
- slots = [];
274
- const slotCount = Math.min(plan.pages.length, 3 + overscan * 2);
275
- for (let i = 0; i < slotCount; i++) {
276
- const slot = document.createElement("div");
277
- slot.style.cssText = `margin:0 auto ${gapPx}px;box-shadow:0 2px 8px rgba(0,0,0,.35);background:#fff;`;
278
- contentEl.appendChild(slot);
279
- slots.push(slot);
280
- }
281
- contentEl.appendChild(bottomSpacer);
282
- vp.appendChild(contentEl);
283
- }
284
- function drawPageInto(slot, pageIndex) {
285
- const page = plan.pages[pageIndex];
286
- const { widthPx: w, heightPx: h } = measurePageSizePx(page, dpi);
287
- // 画布池:槽位内已有 canvas 则复用(重设尺寸即清空位图,避免重复分配大块内存)
288
- let canvas = slot.firstElementChild;
289
- if (!canvas || canvas.tagName !== "CANVAS") {
290
- canvas = document.createElement("canvas");
291
- slot.innerHTML = "";
292
- slot.appendChild(canvas);
293
- }
294
- canvas.width = Math.round(w * dpr);
295
- canvas.height = Math.round(h * dpr);
296
- canvas.style.width = `${w}px`;
297
- canvas.style.height = `${h}px`;
298
- const ctx = canvas.getContext("2d");
299
- if (!ctx)
300
- return;
301
- ctx.setTransform(1, 0, 0, 1, 0, 0);
302
- ctx.scale(dpr, dpr);
303
- ctx.fillStyle = "#ffffff";
304
- ctx.fillRect(0, 0, w, h);
305
- for (const comp of page.components) {
306
- drawComponent(ctx, comp, pxPerMm, dpi, fontFamily, measurer);
307
- }
308
- canvas.dataset.canvasPage = String(pageIndex);
309
- slot.style.height = `${h}px`;
310
- slot.style.width = `${w}px`;
311
- }
312
- function applyWindow(win) {
313
- windowState.start = win.start;
314
- windowState.end = win.end;
315
- topSpacer.style.height = `${win.start * gapPx + pageHeightsPx.slice(0, win.start).reduce((s, h) => s + h, 0)}px`;
316
- const below = plan.pages.length - 1 - win.end;
317
- bottomSpacer.style.height = `${below * gapPx + pageHeightsPx.slice(win.end + 1).reduce((s, h) => s + h, 0)}px`;
318
- // 窗口外槽位隐藏(避免空槽参与布局压矮滚动区),窗口内槽位先按页高占位
319
- // (画布分帧绘完前布局即稳定,滚动高度不抖动)
320
- const used = win.end - win.start + 1;
321
- slots.forEach((slot, i) => {
322
- if (i < used) {
323
- slot.style.display = "";
324
- const pageIndex = win.start + i;
325
- slot.style.height = `${pageHeightsPx[pageIndex] ?? 0}px`;
326
- }
327
- else {
328
- slot.style.display = "none";
329
- }
330
- });
331
- // 收集待渲染页(跳过已就位的槽位),分帧消费
332
- queued = [];
333
- for (let i = win.start; i <= win.end; i++) {
334
- const slot = slots[i - win.start];
335
- if (!slot)
336
- continue;
337
- const already = slot.firstElementChild;
338
- if (already?.dataset?.canvasPage !== String(i))
339
- queued.push(i);
340
- }
341
- scheduleFrame();
342
- }
343
- function scheduleFrame() {
344
- if (raf || queued.length === 0)
345
- return;
346
- raf = requestAnimationFrame(() => {
347
- raf = 0;
348
- let budget = Math.max(1, pagesPerFrame);
349
- while (queued.length > 0 && budget-- > 0) {
350
- const pageIndex = queued.shift();
351
- const slot = slots[pageIndex - windowState.start];
352
- if (slot)
353
- drawPageInto(slot, pageIndex);
354
- }
355
- if (queued.length > 0)
356
- scheduleFrame();
357
- });
358
- }
359
- function onScroll() {
360
- if (raf)
361
- return;
362
- raf = requestAnimationFrame(() => {
363
- raf = 0;
364
- const vp = viewport;
365
- const win = computePageWindow({
366
- pageHeightsPx,
367
- viewportHeightPx: vp.clientHeight,
368
- scrollTopPx: vp.scrollTop,
369
- overscan,
370
- gapPx
371
- });
372
- // 窗口未变(仍在缓冲内)则只继续消费队列
373
- if (win.start !== windowState.start || win.end !== windowState.end) {
374
- applyWindow(win);
375
- }
376
- else {
377
- scheduleFrame();
378
- }
379
- });
380
- }
381
- return {
382
- attach(vp) {
383
- viewport = vp;
384
- ensureLayout();
385
- vp.addEventListener("scroll", onScroll, { passive: true });
386
- onScroll();
387
- },
388
- destroy() {
389
- if (raf)
390
- cancelAnimationFrame(raf);
391
- raf = 0;
392
- viewport?.removeEventListener("scroll", onScroll);
393
- queued = [];
394
- contentEl?.remove();
395
- viewport = null;
396
- },
397
- window() {
398
- return { ...windowState };
399
- }
400
- };
401
- }
402
- //# sourceMappingURL=canvas.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../src/render/canvas.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { PlanComponent, PlanPage, RenderPlan } from "../schema/render-plan";
2
- export interface RenderOptions {
3
- dpi?: number;
4
- classNames?: Partial<Record<ClassKey, string>>;
5
- }
6
- export type ClassKey = "root" | "page" | "comp" | "text" | "lines" | "line" | "rich" | "paragraph" | "segment" | "image" | "shape" | "grid" | "row" | "cell" | "unknown";
7
- export declare function classOf(key: ClassKey, options?: RenderOptions): string;
8
- export declare function renderComponent(comp: PlanComponent, dpi: number, options: RenderOptions, doc: Document): HTMLElement;
9
- export declare function renderPage(page: PlanPage, dpi: number, options: RenderOptions, doc: Document): HTMLElement;
10
- export declare function renderPlan(plan: RenderPlan, doc: Document, options?: RenderOptions): HTMLElement;