@reportwright/viewer 0.12.0 → 0.13.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 (89) hide show
  1. package/CHANGELOG.md +133 -1
  2. package/README.md +43 -6
  3. package/THIRD-PARTY-NOTICES.md +52 -0
  4. package/dist/{chunk-SBD55ZES.js → chunk-BF7GCWZY.js} +103 -41
  5. package/dist/chunk-BF7GCWZY.js.map +6 -0
  6. package/dist/chunk-BR5K6SBL.js +324 -0
  7. package/dist/chunk-BR5K6SBL.js.map +6 -0
  8. package/dist/chunk-CNDUJ7IV.js +758 -0
  9. package/dist/chunk-CNDUJ7IV.js.map +6 -0
  10. package/dist/{chunk-RYHJUQSV.js → chunk-DXHLIJEY.js} +2 -2
  11. package/dist/{chunk-M6GENFAH.js → chunk-EK5CJY22.js} +4021 -4631
  12. package/dist/chunk-EK5CJY22.js.map +6 -0
  13. package/dist/{chunk-KJTRZJHN.js → chunk-F5EPQTPF.js} +4 -3
  14. package/dist/chunk-F5EPQTPF.js.map +6 -0
  15. package/dist/{chunk-SR2TQ2ZK.js → chunk-F6RMRXIN.js} +2 -2
  16. package/dist/chunk-F6RMRXIN.js.map +6 -0
  17. package/dist/chunk-FEM2QVOO.js +18 -0
  18. package/dist/{chunk-ODREGGKA.js → chunk-IFYCJZNS.js} +9 -6
  19. package/dist/chunk-IFYCJZNS.js.map +6 -0
  20. package/dist/{chunk-EOVGKHAS.js → chunk-L6YEIVVD.js} +86 -57
  21. package/dist/chunk-L6YEIVVD.js.map +6 -0
  22. package/dist/{chunk-APRPSQOD.js → chunk-PQNM6ET7.js} +28 -9
  23. package/dist/chunk-PQNM6ET7.js.map +6 -0
  24. package/dist/chunk-QFLVVM3H.js +856 -0
  25. package/dist/chunk-QFLVVM3H.js.map +6 -0
  26. package/dist/{chunk-5N6OFCHJ.js → chunk-TZXEEVKE.js} +1319 -76
  27. package/dist/chunk-TZXEEVKE.js.map +6 -0
  28. package/dist/{chunk-FARG6X2U.js → chunk-UHHURTSV.js} +15 -9
  29. package/dist/chunk-UHHURTSV.js.map +6 -0
  30. package/dist/chunk-UJL7C2AS.js +546 -0
  31. package/dist/chunk-UJL7C2AS.js.map +6 -0
  32. package/dist/chunk-YIX3OJXU.js +34 -0
  33. package/dist/designer.d.ts +19 -4
  34. package/dist/designer.js +616 -405
  35. package/dist/designer.js.map +3 -3
  36. package/dist/{peer/chunk-GBITRNHE.js → engine.worker.js} +11006 -9030
  37. package/dist/engine.worker.js.map +6 -0
  38. package/dist/peer/{chunk-NPYKZINU.js → chunk-2CD5COHN.js} +66 -37
  39. package/dist/peer/chunk-2CD5COHN.js.map +6 -0
  40. package/dist/peer/{chunk-IPU2YRL2.js → chunk-3CBV5SAI.js} +28 -9
  41. package/dist/peer/chunk-3CBV5SAI.js.map +6 -0
  42. package/dist/peer/{chunk-MCJPN2KL.js → chunk-45GVDKP5.js} +15 -9
  43. package/dist/peer/chunk-45GVDKP5.js.map +6 -0
  44. package/dist/peer/{chunk-76ZABVTI.js → chunk-LWXQX3NJ.js} +4 -3
  45. package/dist/peer/chunk-MKY3SDXU.js +758 -0
  46. package/dist/peer/chunk-MKY3SDXU.js.map +6 -0
  47. package/dist/peer/chunk-S6LSPHSU.js +17 -0
  48. package/dist/peer/chunk-S6LSPHSU.js.map +6 -0
  49. package/dist/peer/{chunk-M4AGFUWE.js → chunk-V42KN7HD.js} +2 -2
  50. package/dist/peer/{chunk-KBT6ZGGO.js → chunk-VZHHNQYB.js} +1319 -76
  51. package/dist/peer/chunk-VZHHNQYB.js.map +6 -0
  52. package/dist/peer/{chunk-Y5CAHLXS.js → chunk-YITWGAR4.js} +9 -6
  53. package/dist/peer/chunk-YITWGAR4.js.map +6 -0
  54. package/dist/peer/chunk-Z5II55QT.js +33 -0
  55. package/dist/peer/chunk-Z5II55QT.js.map +6 -0
  56. package/dist/peer/designer.js +473 -262
  57. package/dist/peer/designer.js.map +3 -3
  58. package/dist/peer/engine.worker.js +16782 -0
  59. package/dist/peer/engine.worker.js.map +6 -0
  60. package/dist/peer/viewer.js +17 -7
  61. package/dist/peer/viewer.js.map +1 -1
  62. package/dist/viewer.d.ts +11 -2
  63. package/dist/viewer.js +17 -7
  64. package/dist/viewer.js.map +1 -1
  65. package/package.json +4 -2
  66. package/dist/chunk-3D43XGIN.js +0 -1167
  67. package/dist/chunk-3D43XGIN.js.map +0 -6
  68. package/dist/chunk-5N6OFCHJ.js.map +0 -6
  69. package/dist/chunk-AH47FS6Y.js +0 -13
  70. package/dist/chunk-APRPSQOD.js.map +0 -6
  71. package/dist/chunk-EOVGKHAS.js.map +0 -6
  72. package/dist/chunk-FARG6X2U.js.map +0 -6
  73. package/dist/chunk-M6GENFAH.js.map +0 -6
  74. package/dist/chunk-ODREGGKA.js.map +0 -6
  75. package/dist/chunk-SBD55ZES.js.map +0 -6
  76. package/dist/chunk-SR2TQ2ZK.js.map +0 -6
  77. package/dist/peer/chunk-76ZABVTI.js.map +0 -6
  78. package/dist/peer/chunk-GBITRNHE.js.map +0 -6
  79. package/dist/peer/chunk-IMQRHDR4.js +0 -12
  80. package/dist/peer/chunk-IPU2YRL2.js.map +0 -6
  81. package/dist/peer/chunk-KBT6ZGGO.js.map +0 -6
  82. package/dist/peer/chunk-MCJPN2KL.js.map +0 -6
  83. package/dist/peer/chunk-NPYKZINU.js.map +0 -6
  84. package/dist/peer/chunk-Y5CAHLXS.js.map +0 -6
  85. /package/dist/{chunk-RYHJUQSV.js.map → chunk-DXHLIJEY.js.map} +0 -0
  86. /package/dist/{chunk-AH47FS6Y.js.map → chunk-FEM2QVOO.js.map} +0 -0
  87. /package/dist/{peer/chunk-IMQRHDR4.js.map → chunk-YIX3OJXU.js.map} +0 -0
  88. /package/dist/{chunk-KJTRZJHN.js.map → peer/chunk-LWXQX3NJ.js.map} +0 -0
  89. /package/dist/peer/{chunk-M4AGFUWE.js.map → chunk-V42KN7HD.js.map} +0 -0
@@ -0,0 +1,546 @@
1
+ import {
2
+ IMAGE_LIMITS,
3
+ dataUriBytesOf,
4
+ fontCss,
5
+ fontFile,
6
+ imageInfoOf,
7
+ isStandard,
8
+ standardCss,
9
+ unicodeRange
10
+ } from "./chunk-QFLVVM3H.js";
11
+
12
+ // src/exporters/color.js
13
+ var NAMED = { black: "#000000", white: "#ffffff", red: "#ff0000", green: "#008000", blue: "#0000ff", gray: "#808080", grey: "#808080", orange: "#ffa500", yellow: "#ffff00" };
14
+ function parseColor(c) {
15
+ if (!c || c === "none" || c === "transparent") return null;
16
+ let s = String(c).trim().toLowerCase();
17
+ if (NAMED[s]) s = NAMED[s];
18
+ let m = /^#([0-9a-f]{3,8})$/.exec(s);
19
+ if (m) {
20
+ let h = m[1];
21
+ if (h.length === 3 || h.length === 4) h = [...h].map((x) => x + x).join("");
22
+ const n2 = parseInt(h.slice(0, 6), 16);
23
+ const a = h.length === 8 ? parseInt(h.slice(6, 8), 16) / 255 : 1;
24
+ return { r: (n2 >> 16 & 255) / 255, g: (n2 >> 8 & 255) / 255, b: (n2 & 255) / 255, a };
25
+ }
26
+ m = /^rgba?\(([^)]+)\)$/.exec(s);
27
+ if (m) {
28
+ const [r, g, b, a = 1] = m[1].split(/[\s,/]+/).map(Number);
29
+ return { r: r / 255, g: g / 255, b: b / 255, a };
30
+ }
31
+ return null;
32
+ }
33
+ function cssColor(c) {
34
+ const p = parseColor(c);
35
+ if (!p) return "none";
36
+ return `rgba(${Math.round(p.r * 255)},${Math.round(p.g * 255)},${Math.round(p.b * 255)},${p.a})`;
37
+ }
38
+
39
+ // src/exporters/svg.js
40
+ var fontFamilyCss = (key) => `pw-${key}`;
41
+ var esc = (s) => String(s).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
42
+ var fontAttrs = (key) => {
43
+ const stack = standardCss(key);
44
+ if (!stack) return `font-family="${fontFamilyCss(key)}"`;
45
+ const c = fontCss(key);
46
+ return `font-family="${esc(stack)}"${c.weight !== 400 ? ` font-weight="${c.weight}"` : ""}${c.style === "italic" ? ' font-style="italic"' : ""}`;
47
+ };
48
+ function imageHref(src, proxyBase = "") {
49
+ const s = String(src ?? "").trim();
50
+ if (/^data:image\/(png|jpe?g|gif|webp|bmp|svg\+xml)[;,]/i.test(s)) return s;
51
+ if (/^https?:\/\//i.test(s)) return `${proxyBase}/api/data/proxy?url=${encodeURIComponent(s)}`;
52
+ if (s && !/^[a-z][a-z0-9+.-]*:/i.test(s) && !s.startsWith("//") && !s.includes("\\")) return s;
53
+ return "";
54
+ }
55
+ var n = (v) => Math.round(v * 100) / 100;
56
+ var ANIM_CSS = "<style>@media (prefers-reduced-motion:no-preference){.pw-a{transform-box:fill-box;animation:pw-fade .55s ease-out both}.pw-a-growY{animation-name:pw-growY}.pw-a-growX{animation-name:pw-growX}.pw-a-scale{animation-name:pw-scale}@keyframes pw-fade{from{opacity:0}}@keyframes pw-growY{from{transform:scaleY(0)}}@keyframes pw-growX{from{transform:scaleX(0)}}@keyframes pw-scale{from{trans\
57
+ form:scale(0);opacity:0}}}</style>";
58
+ var ANIM_KINDS = /* @__PURE__ */ new Set(["growY", "growX", "scale", "fade"]);
59
+ var ANIM_ORIGIN = { bottom: "center bottom", top: "center top", left: "left center", right: "right center" };
60
+ function pageToSvg(page, w, h, { background = true, animate = false, box = void 0, outline = null, proxyBase = "" } = {}) {
61
+ const vb = box ? `${n(box.x)} ${n(box.y)} ${n(box.w)} ${n(box.h)}` : `0 0 ${n(w)} ${n(h)}`;
62
+ const out = [`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${vb}" width="${n(w)}" height="${n(h)}" style="font-kerning:none;font-variant-ligatures:none;text-rendering:geometricPrecision">`];
63
+ if (background) out.push(`<rect width="${n(w)}" height="${n(h)}" fill="#ffffff"/>`);
64
+ let animated = false;
65
+ for (const it of page.items.flatMap((i) => i.t === "field" ? i.draw : [i])) {
66
+ const an = animate && it.anim && ANIM_KINDS.has(it.anim.k) ? it.anim : null;
67
+ if (an) {
68
+ if (!animated) {
69
+ out.push(ANIM_CSS);
70
+ animated = true;
71
+ }
72
+ const origin = ANIM_ORIGIN[an.o] || "center";
73
+ out.push(`<g class="pw-a pw-a-${an.k}" style="transform-origin:${origin};animation-delay:${Math.min(40, Math.max(0, Math.round(Number(an.i)) || 0)) * 25}ms">`);
74
+ }
75
+ if (it.rotate) out.push(`<g transform="rotate(${n(it.rotate.a)} ${n(it.rotate.cx)} ${n(it.rotate.cy)})">`);
76
+ switch (it.t) {
77
+ case "rect": {
78
+ const r = it.radius ? ` rx="${n(it.radius)}"` : "";
79
+ const stroke = it.stroke ? ` stroke="${cssColor(it.stroke)}" stroke-width="${n(it.strokeWidth || 1)}"${it.dash ? ` stroke-dasharray="${it.dash.join(" ")}"` : ""}` : "";
80
+ out.push(`<rect x="${n(it.x)}" y="${n(it.y)}" width="${n(it.w)}" height="${n(it.h)}"${r} fill="${cssColor(it.fill)}"${stroke}/>`);
81
+ break;
82
+ }
83
+ case "ellipse": {
84
+ const stroke = it.stroke ? ` stroke="${cssColor(it.stroke)}" stroke-width="${n(it.strokeWidth || 1)}"` : "";
85
+ out.push(`<ellipse cx="${n(it.cx)}" cy="${n(it.cy)}" rx="${n(it.rx)}" ry="${n(it.ry)}" fill="${cssColor(it.fill)}"${stroke}/>`);
86
+ break;
87
+ }
88
+ case "line":
89
+ out.push(`<line x1="${n(it.x1)}" y1="${n(it.y1)}" x2="${n(it.x2)}" y2="${n(it.y2)}" stroke="${cssColor(it.stroke)}" stroke-width="${n(it.strokeWidth)}"${it.dash ? ` stroke-dasharray="${it.dash.join(" ")}"` : ""}/>`);
90
+ break;
91
+ case "text": {
92
+ const d = outline ? textOutline(it, outline) : null;
93
+ if (d) {
94
+ out.push(`<path d="${d}" fill="${cssColor(it.color)}"/>`);
95
+ break;
96
+ }
97
+ const paint = `font-size="${n(it.size)}" fill="${cssColor(it.color)}"`;
98
+ const attrs = `${fontAttrs(it.font)} ${paint}`;
99
+ for (const l of it.lines) {
100
+ if (!l.runs) {
101
+ out.push(`<text x="${n(l.x)}" y="${n(l.y)}" ${attrs} xml:space="preserve">${esc(l.text)}</text>`);
102
+ continue;
103
+ }
104
+ for (const r of l.runs) {
105
+ if (!r.text.trim()) continue;
106
+ const font = `${fontAttrs(r.font)} ${paint}`;
107
+ if (!r.shaped && !r.rtl) {
108
+ out.push(`<text x="${n(l.x + r.x)}" y="${n(l.y)}" ${font}>${esc(r.text)}</text>`);
109
+ continue;
110
+ }
111
+ const style = (r.rtl ? "direction:rtl;unicode-bidi:bidi-override;" : "") + (r.shaped ? "font-kerning:normal;font-variant-ligatures:normal" : "");
112
+ out.push(`<text x="${n(l.x + r.x + r.w / 2)}" y="${n(l.y)}" text-anchor="middle" ${font} style="${style}">${esc(r.text)}</text>`);
113
+ }
114
+ }
115
+ break;
116
+ }
117
+ case "path": {
118
+ const stroke = it.stroke ? ` stroke="${cssColor(it.stroke)}" stroke-width="${n(it.strokeWidth || 1)}" stroke-linecap="${it.lineCap || "round"}" stroke-linejoin="round"${it.dash ? ` stroke-dasharray="${it.dash.join(" ")}"` : ""}` : "";
119
+ out.push(`<path transform="translate(${n(it.x)} ${n(it.y)})" d="${esc(it.d)}" fill="${cssColor(it.fill)}"${stroke}/>`);
120
+ break;
121
+ }
122
+ case "link": {
123
+ const tip = it.tip ?? (it.action ? linkTitle(it.action) : "");
124
+ const title = tip ? `<title>${esc(tip)}</title>` : "";
125
+ const tag = it.d ? "path" : "rect";
126
+ const geo = it.d ? `transform="translate(${n(it.x - (it.x0 ?? it.x))} ${n(it.y - (it.y0 ?? it.y))})" d="${esc(it.d)}"` : `x="${n(it.x)}" y="${n(it.y)}" width="${n(it.w)}" height="${n(it.h)}"`;
127
+ if (!it.action) out.push(`<${tag} class="pw-tip" ${geo} fill="transparent">${title}</${tag}>`);
128
+ else out.push(`<${tag} class="pw-link" ${geo} fill="transparent" data-action="${esc(JSON.stringify(it.action))}" style="cursor:pointer">${title}</${tag}>`);
129
+ break;
130
+ }
131
+ case "image": {
132
+ if (it.fit === "clip") out.push(`<svg x="${n(it.x)}" y="${n(it.y)}" width="${n(it.cw)}" height="${n(it.ch)}" overflow="hidden"><image x="0" y="0" width="${n(it.w)}" height="${n(it.h)}" href="${esc(imageHref(it.src, proxyBase))}" preserveAspectRatio="none"/></svg>`);
133
+ else {
134
+ const par = it.fit === "fill" ? "none" : it.fit === "cover" ? "xMidYMid slice" : "xMidYMid meet";
135
+ out.push(`<image x="${n(it.x)}" y="${n(it.y)}" width="${n(it.w)}" height="${n(it.h)}" href="${esc(imageHref(it.src, proxyBase))}" preserveAspectRatio="${par}"/>`);
136
+ }
137
+ break;
138
+ }
139
+ }
140
+ if (it.rotate) out.push("</g>");
141
+ if (an) out.push("</g>");
142
+ }
143
+ out.push("</svg>");
144
+ return out.join("");
145
+ }
146
+ function linkTitle(a) {
147
+ if (a.type === "url") return a.href;
148
+ if (a.type === "drill") return `Open ${a.report}`;
149
+ if (a.type === "toggle") return "Show or hide details";
150
+ if (a.type === "sort") return "Sort";
151
+ if (a.type === "bookmark") return `Go to ${a.target}`;
152
+ if (a.type === "params") return "Filter the report";
153
+ return "";
154
+ }
155
+ function fontFaceCss(keys, base = "/fonts") {
156
+ return keys.filter((k) => !isStandard(k)).map((k) => {
157
+ const file = fontFile(k), range = unicodeRange(k);
158
+ return `@font-face{font-family:"${fontFamilyCss(k)}";src:url("${base}/${file}")${file.endsWith(".ttf") ? ' format("truetype")' : ""};font-display:block${range ? `;unicode-range:${range}` : ""}}`;
159
+ }).join("\n");
160
+ }
161
+ function fontKeysOf(model) {
162
+ const keys = /* @__PURE__ */ new Set();
163
+ for (const pg of model?.pages || []) for (const it of pg.items.flatMap((i) => i.t === "field" ? [i, ...i.draw] : [i])) {
164
+ if (it.font) keys.add(it.font);
165
+ if (it.t === "text") for (const l of it.lines) for (const r of l.runs || []) keys.add(r.font);
166
+ }
167
+ return [...keys];
168
+ }
169
+
170
+ // src/exporters/figures.js
171
+ var FIGURE_KINDS = /* @__PURE__ */ new Set(["image", "chart", "map", "barcode", "shape", "line", "sparkline", "databar", "bullet", "iconset", "rangebar"]);
172
+ function figures(items) {
173
+ const shared = items.some((it, i) => i > 0 && it.tag && it.tag === items[i - 1].tag);
174
+ const same = (a, b) => a === b || !!a && !!b && (a.id != null ? a.id === b.id : !shared && a.k === b.k && a.alt === b.alt && a.h === b.h);
175
+ const out = [];
176
+ let cur = null;
177
+ items.forEach((it, i) => {
178
+ const t = it.tag;
179
+ if (!t || !FIGURE_KINDS.has(t.k)) {
180
+ cur = null;
181
+ return;
182
+ }
183
+ if (cur && same(cur.tag, t) && cur.last === i - 1) {
184
+ cur.items.push(it);
185
+ cur.last = i;
186
+ return;
187
+ }
188
+ cur = { tag: t, items: [it], at: i, last: i };
189
+ out.push(cur);
190
+ });
191
+ for (const f of out) f.box = boxOf(f.items);
192
+ return out.filter((f) => f.box && f.box.w > 0.5 && f.box.h > 0.5);
193
+ }
194
+ function boxOf(items) {
195
+ let x0 = Infinity, y0 = Infinity, x1 = -Infinity, y1 = -Infinity;
196
+ const add = (x, y, rot) => {
197
+ if (rot) {
198
+ const a = rot.a * Math.PI / 180, dx = x - rot.cx, dy = y - rot.cy;
199
+ x = rot.cx + dx * Math.cos(a) - dy * Math.sin(a);
200
+ y = rot.cy + dx * Math.sin(a) + dy * Math.cos(a);
201
+ }
202
+ if (!Number.isFinite(x) || !Number.isFinite(y)) return;
203
+ if (x < x0) x0 = x;
204
+ if (x > x1) x1 = x;
205
+ if (y < y0) y0 = y;
206
+ if (y > y1) y1 = y;
207
+ };
208
+ const rect = (x, y, w, h, r) => {
209
+ add(x, y, r);
210
+ add(x + w, y, r);
211
+ add(x, y + h, r);
212
+ add(x + w, y + h, r);
213
+ };
214
+ for (const it of items) {
215
+ const r = it.rotate;
216
+ const sw = (it.stroke ? Number(it.strokeWidth) || 1 : 0) / 2;
217
+ switch (it.t) {
218
+ case "rect":
219
+ case "image":
220
+ rect(it.x - sw, it.y - sw, (it.cw ?? it.w) + 2 * sw, (it.ch ?? it.h) + 2 * sw, r);
221
+ break;
222
+ case "ellipse":
223
+ rect(it.cx - it.rx - sw, it.cy - it.ry - sw, 2 * (it.rx + sw), 2 * (it.ry + sw), r);
224
+ break;
225
+ case "line":
226
+ rect(Math.min(it.x1, it.x2) - sw, Math.min(it.y1, it.y2) - sw, Math.abs(it.x2 - it.x1) + 2 * sw, Math.abs(it.y2 - it.y1) + 2 * sw, r);
227
+ break;
228
+ case "text":
229
+ for (const l of it.lines) rect(l.x, l.y - it.size, l.w ?? l.text.length * it.size * 0.6, it.size * 1.3, r);
230
+ break;
231
+ case "path": {
232
+ const b = pathBox(it.d);
233
+ if (b) rect(it.x + b.x0 - sw, it.y + b.y0 - sw, b.x1 - b.x0 + 2 * sw, b.y1 - b.y0 + 2 * sw, r);
234
+ break;
235
+ }
236
+ }
237
+ }
238
+ return x0 === Infinity ? null : { x: x0, y: y0, w: x1 - x0, h: y1 - y0 };
239
+ }
240
+ function pathBox(d) {
241
+ const toks = String(d).match(/[a-zA-Z]|-?(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?/g) || [];
242
+ let x0 = Infinity, y0 = Infinity, x1 = -Infinity, y1 = -Infinity;
243
+ const add = (x, y) => {
244
+ if (x < x0) x0 = x;
245
+ if (x > x1) x1 = x;
246
+ if (y < y0) y0 = y;
247
+ if (y > y1) y1 = y;
248
+ };
249
+ let cx = 0, cy = 0, sx = 0, sy = 0, cmd = "M", i = 0;
250
+ const num = () => Number(toks[i++]);
251
+ const ARGS = { M: 2, L: 2, H: 1, V: 1, C: 6, S: 4, Q: 4, T: 2, A: 7, Z: 0 };
252
+ let guard = 0;
253
+ while (i < toks.length && guard++ < 1e6) {
254
+ if (/[a-zA-Z]/.test(toks[i])) cmd = toks[i++];
255
+ const C = cmd.toUpperCase(), rel = cmd !== C, n2 = ARGS[C];
256
+ if (n2 === void 0) break;
257
+ if (C === "Z") {
258
+ cx = sx;
259
+ cy = sy;
260
+ continue;
261
+ }
262
+ if (i + n2 > toks.length) break;
263
+ const a = Array.from({ length: n2 }, num);
264
+ if (a.some((v) => !Number.isFinite(v))) break;
265
+ const ox = rel ? cx : 0, oy = rel ? cy : 0;
266
+ if (C === "H") {
267
+ cx = a[0] + ox;
268
+ add(cx, cy);
269
+ } else if (C === "V") {
270
+ cy = a[0] + oy;
271
+ add(cx, cy);
272
+ } else if (C === "A") {
273
+ const ex = a[5] + ox, ey = a[6] + oy;
274
+ add(cx, cy);
275
+ add(ex, ey);
276
+ for (const [px, py] of arcExtremes(cx, cy, a[0], a[1], a[2], a[3], a[4], ex, ey)) add(px, py);
277
+ cx = ex;
278
+ cy = ey;
279
+ } else {
280
+ for (let k = 0; k < n2; k += 2) add(a[k] + ox, a[k + 1] + oy);
281
+ cx = a[n2 - 2] + ox;
282
+ cy = a[n2 - 1] + oy;
283
+ if (C === "M") {
284
+ sx = cx;
285
+ sy = cy;
286
+ cmd = rel ? "l" : "L";
287
+ }
288
+ }
289
+ }
290
+ return x0 === Infinity ? null : { x0, y0, x1, y1 };
291
+ }
292
+ function arcExtremes(x1, y1, rx, ry, phi, large, sweep, x2, y2) {
293
+ rx = Math.abs(rx);
294
+ ry = Math.abs(ry);
295
+ if (!rx || !ry || x1 === x2 && y1 === y2) return [];
296
+ const f = phi % 360 * Math.PI / 180, cf = Math.cos(f), sf = Math.sin(f);
297
+ const dx = (x1 - x2) / 2, dy = (y1 - y2) / 2;
298
+ const x1p = cf * dx + sf * dy, y1p = -sf * dx + cf * dy;
299
+ const lam = x1p * x1p / (rx * rx) + y1p * y1p / (ry * ry);
300
+ if (lam > 1) {
301
+ rx *= Math.sqrt(lam);
302
+ ry *= Math.sqrt(lam);
303
+ }
304
+ const num = rx * rx * ry * ry - rx * rx * y1p * y1p - ry * ry * x1p * x1p;
305
+ const k = (large !== sweep ? 1 : -1) * Math.sqrt(Math.max(0, num / (rx * rx * y1p * y1p + ry * ry * x1p * x1p)));
306
+ const cxp = k * rx * y1p / ry, cyp = -k * ry * x1p / rx;
307
+ const cx = cf * cxp - sf * cyp + (x1 + x2) / 2, cy = sf * cxp + cf * cyp + (y1 + y2) / 2;
308
+ if (Math.abs(sf) > 1e-9) {
309
+ const R = Math.max(rx, ry);
310
+ return [[cx - R, cy - R], [cx + R, cy + R]];
311
+ }
312
+ const ang = (ux, uy) => Math.atan2(uy, ux);
313
+ const t1 = ang((x1p - cxp) / rx, (y1p - cyp) / ry);
314
+ let dt = ang((-x1p - cxp) / rx, (-y1p - cyp) / ry) - t1;
315
+ if (sweep && dt < 0) dt += 2 * Math.PI;
316
+ else if (!sweep && dt > 0) dt -= 2 * Math.PI;
317
+ const out = [];
318
+ for (let q = -4; q <= 4; q++) {
319
+ const t = q * Math.PI / 2, rel = dt >= 0 ? t - t1 : t1 - t;
320
+ const nrm = (rel % (2 * Math.PI) + 2 * Math.PI) % (2 * Math.PI);
321
+ if (nrm <= Math.abs(dt) + 1e-9) out.push([cx + rx * Math.cos(t) * cf, cy + ry * Math.sin(t)]);
322
+ }
323
+ return out;
324
+ }
325
+ function textOutline(it, fontOf) {
326
+ let d = "";
327
+ const glyph = (f, g, x, y, size) => {
328
+ const s = size / f.unitsPerEm;
329
+ const p = g.path;
330
+ for (const c of p.commands) {
331
+ const a = [];
332
+ for (let k = 0; k < c.args.length; k += 2) a.push(r2(x + c.args[k] * s), r2(y - c.args[k + 1] * s));
333
+ d += { moveTo: "M", lineTo: "L", quadraticCurveTo: "Q", bezierCurveTo: "C", closePath: "Z" }[c.command] + a.join(" ");
334
+ }
335
+ };
336
+ for (const l of it.lines) {
337
+ if (!l.runs) {
338
+ const f = fontOf(it.font);
339
+ if (!f || f.standard) return null;
340
+ let x = l.x;
341
+ for (const ch of l.text.replace(/\t/g, " ")) {
342
+ const g = f.glyphForCodePoint(
343
+ /** @type {number} */
344
+ ch.codePointAt(0)
345
+ );
346
+ glyph(f, g, x, l.y, it.size);
347
+ x += g.advanceWidth * it.size / f.unitsPerEm;
348
+ }
349
+ continue;
350
+ }
351
+ for (const r of l.runs) {
352
+ const f = fontOf(r.font);
353
+ if (!f || f.standard) return null;
354
+ const gs = r.glyphs || [];
355
+ for (let k = 0; k < gs.length; k += 4) glyph(f, f.getGlyph(gs[k]), l.x + r.x + gs[k + 1], l.y - gs[k + 2], it.size);
356
+ }
357
+ }
358
+ return d;
359
+ }
360
+ var r2 = (v) => Math.round(v * 100) / 100;
361
+ function figureSvg(fig, fontStore) {
362
+ const fontOf = (k) => {
363
+ try {
364
+ return fontStore?.get(k) || null;
365
+ } catch {
366
+ return null;
367
+ }
368
+ };
369
+ return pageToSvg({ items: fig.items.filter((i) => i.t !== "link" && i.t !== "bookmark") }, fig.box.w, fig.box.h, { background: false, box: fig.box, outline: fontStore ? fontOf : null });
370
+ }
371
+ async function rasterize(svg, w, h, opt = {}) {
372
+ const scale = opt.scale || 2;
373
+ const W = Math.max(1, Math.min(8e3, Math.round(w * scale))), H = Math.max(1, Math.min(8e3, Math.round(h * scale)));
374
+ try {
375
+ if (opt.rasterize) return await opt.rasterize(svg, w, h, scale);
376
+ if (typeof document !== "undefined" && typeof Image !== "undefined") {
377
+ const url = URL.createObjectURL(new Blob([svg], { type: "image/svg+xml" }));
378
+ try {
379
+ const img = new Image();
380
+ img.src = url;
381
+ await img.decode();
382
+ const c = document.createElement("canvas");
383
+ c.width = W;
384
+ c.height = H;
385
+ c.getContext("2d")?.drawImage(img, 0, 0, W, H);
386
+ const blob = await new Promise((res) => c.toBlob(res, "image/png"));
387
+ return blob ? new Uint8Array(await /** @type {Blob} */
388
+ blob.arrayBuffer()) : null;
389
+ } finally {
390
+ URL.revokeObjectURL(url);
391
+ }
392
+ }
393
+ if (
394
+ /** @type {any} */
395
+ globalThis.process?.versions?.node
396
+ ) {
397
+ const name = "sharp";
398
+ const sharp = (await import(
399
+ /* @vite-ignore */
400
+ /* webpackIgnore: true */
401
+ /* turbopackIgnore: true */
402
+ name
403
+ )).default;
404
+ return new Uint8Array(await sharp(Buffer.from(svg), { density: 72 * scale }).resize(W, H, { fit: "fill" }).png().toBuffer());
405
+ }
406
+ } catch {
407
+ }
408
+ return null;
409
+ }
410
+ async function figurePicture(fig, opt = {}) {
411
+ const bytesOf = async (src) => {
412
+ try {
413
+ const b = /^data:/i.test(src) ? dataUriBytesOf(src) : opt.fetchImage ? await opt.fetchImage(src) : null;
414
+ const info = b && b.length <= IMAGE_LIMITS.bytes ? imageInfoOf(b) : null;
415
+ return info && ["png", "jpeg", "svg"].includes(info.type) ? { b, info } : null;
416
+ } catch {
417
+ return null;
418
+ }
419
+ };
420
+ const items = [];
421
+ for (const it of fig.items) {
422
+ if (it.t !== "image") {
423
+ items.push(it);
424
+ continue;
425
+ }
426
+ const got = await bytesOf(it.src);
427
+ if (!got) continue;
428
+ const alone = fig.items.every((i) => i === it || i.t === "link" || i.t === "bookmark");
429
+ if (alone && (got.info.type === "png" || got.info.type === "jpeg") && (it.fit === "fill" || (it.fit || "contain") === "contain" && got.info.w > 0)) {
430
+ if (it.fit === "fill") return { [got.info.type]: got.b, w: it.w, h: it.h, x: it.x, y: it.y };
431
+ const s = Math.min(it.w / got.info.w, it.h / got.info.h);
432
+ const w = got.info.w * s, h = got.info.h * s;
433
+ return { [got.info.type]: got.b, w, h, x: it.x + (it.w - w) / 2, y: it.y + (it.h - h) / 2 };
434
+ }
435
+ items.push({ ...it, src: `data:image/${got.info.type === "svg" ? "svg+xml" : got.info.type};base64,${b64(got.b)}` });
436
+ }
437
+ const svg = figureSvg({ items, box: fig.box }, opt.fontStore);
438
+ const png = await rasterize(svg, fig.box.w, fig.box.h, opt);
439
+ return { svg, png, w: fig.box.w, h: fig.box.h, x: fig.box.x, y: fig.box.y };
440
+ }
441
+ function b64(u8) {
442
+ if (typeof Buffer !== "undefined") return Buffer.from(u8).toString("base64");
443
+ let s = "";
444
+ for (let i = 0; i < u8.length; i += 32768) s += String.fromCharCode.apply(
445
+ null,
446
+ /** @type {any} */
447
+ u8.subarray(i, i + 32768)
448
+ );
449
+ return btoa(s);
450
+ }
451
+ var hexOrNull = (c) => {
452
+ const s = String(c || "").trim();
453
+ const m = /^#?([0-9a-f]{6})([0-9a-f]{2})?$/i.exec(s) || /^#?([0-9a-f]{3})$/i.exec(s);
454
+ if (!m || m[2] === "00") return null;
455
+ return (m[1].length === 3 ? [...m[1]].map((x) => x + x).join("") : m[1]).toUpperCase();
456
+ };
457
+ var altOf = (tag) => tag?.alt || { chart: "Chart", image: "Picture", map: "Map", barcode: "Barcode", shape: "Shape", line: "Line", sparkline: "Sparkline", databar: "Data bar", bullet: "Bullet chart", iconset: "Status icon", rangebar: "Range bar" }[tag?.k] || "Graphic";
458
+ function boxDecor(items, i) {
459
+ const it = items[i], c = it.clip;
460
+ if (!c) return null;
461
+ const near = (a, b) => Math.abs(a - b) < 0.05;
462
+ const isBox = (r) => r && r.t === "rect" && !r.tag && near(r.x, c.x) && near(r.y, c.y) && near(r.w, c.w) && near(r.h, c.h);
463
+ let fill = null, radius = 0;
464
+ for (let k = i - 1; k >= Math.max(0, i - 2); k--) if (isBox(items[k]) && items[k].fill) {
465
+ fill = hexOrNull(items[k].fill);
466
+ radius = items[k].radius || 0;
467
+ break;
468
+ }
469
+ const sides = {};
470
+ for (let k = i + 1; k < items.length && k <= i + 6 + 2 * it.lines.length; k++) {
471
+ const o = items[k];
472
+ if (o.tag || o.art !== it.art) break;
473
+ if (o.t === "rect" && isBox(o) && o.stroke) {
474
+ for (const s of ["top", "right", "bottom", "left"]) sides[s] = o;
475
+ radius = o.radius || radius;
476
+ break;
477
+ }
478
+ if (o.t !== "line") break;
479
+ if (near(o.y1, o.y2) && near(o.y1, c.y) && near(Math.min(o.x1, o.x2), c.x)) sides.top = o;
480
+ else if (near(o.y1, o.y2) && near(o.y1, c.y + c.h) && near(Math.min(o.x1, o.x2), c.x)) sides.bottom = o;
481
+ else if (near(o.x1, o.x2) && near(o.x1, c.x) && near(Math.min(o.y1, o.y2), c.y)) sides.left = o;
482
+ else if (near(o.x1, o.x2) && near(o.x1, c.x + c.w) && near(Math.min(o.y1, o.y2), c.y)) sides.right = o;
483
+ }
484
+ return fill || Object.keys(sides).length ? { fill, radius, sides } : null;
485
+ }
486
+ function cellVisuals(items, used, tables) {
487
+ const out = /* @__PURE__ */ new Map();
488
+ if (!tables.size) return out;
489
+ const geo = [...tables.entries()].map(([key, b]) => {
490
+ const rows = /* @__PURE__ */ new Map();
491
+ let left = Infinity;
492
+ for (const it of b.cells) {
493
+ const c = it.clip;
494
+ if (!c) continue;
495
+ if (!rows.has(it.cell.row)) rows.set(it.cell.row, { y: c.y, h: c.h });
496
+ left = Math.min(left, c.x - it.cell.cols.slice(0, it.cell.col).reduce((s, w) => s + w, 0));
497
+ }
498
+ const cols = b.cells[0].cell.cols;
499
+ const edges = [left];
500
+ for (const w of cols) edges.push(edges[edges.length - 1] + w);
501
+ return { key, rows: [...rows.entries()], left, cols, edges, right: edges[edges.length - 1] };
502
+ });
503
+ const near = (a, b) => Math.abs(a - b) < 0.05;
504
+ items.forEach((it, i) => {
505
+ if (used.has(i) || it.tag || it.art || !["path", "ellipse", "rect"].includes(it.t)) return;
506
+ const bx = boxOf([it]);
507
+ if (!bx) return;
508
+ const cx = bx.x + bx.w / 2, cy = bx.y + bx.h / 2;
509
+ for (const g of geo) {
510
+ if (cx < g.left || cx > g.right) continue;
511
+ const row = g.rows.find(([, r3]) => cy >= r3.y && cy <= r3.y + r3.h);
512
+ if (!row) continue;
513
+ const [rid, r] = row;
514
+ if (it.t === "rect" && g.edges.some((e) => near(e, it.x)) && g.edges.some((e) => near(e, it.x + it.w))) return;
515
+ let col = 0, x = g.left;
516
+ while (col < g.cols.length - 1 && cx > x + g.cols[col]) x += g.cols[col++];
517
+ const m = out.get(g.key) || out.set(g.key, /* @__PURE__ */ new Map()).get(g.key);
518
+ const k = `${rid}|${col}`;
519
+ const v = m.get(k) || m.set(k, { items: [], box: null }).get(k);
520
+ v.items.push(it);
521
+ used.add(i);
522
+ return;
523
+ }
524
+ });
525
+ for (const m of out.values()) for (const v of m.values()) v.box = boxOf(v.items);
526
+ return out;
527
+ }
528
+
529
+ export {
530
+ parseColor,
531
+ figures,
532
+ boxOf,
533
+ figureSvg,
534
+ rasterize,
535
+ figurePicture,
536
+ hexOrNull,
537
+ altOf,
538
+ boxDecor,
539
+ cellVisuals,
540
+ fontFamilyCss,
541
+ pageToSvg,
542
+ linkTitle,
543
+ fontFaceCss,
544
+ fontKeysOf
545
+ };
546
+ //# sourceMappingURL=chunk-UJL7C2AS.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/exporters/color.js", "../../../src/exporters/svg.js", "../../../src/exporters/figures.js"],
4
+ "mappings": "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",
5
+ "names": ["n", "n", "r"]
6
+ }
@@ -0,0 +1,34 @@
1
+ import {
2
+ BAND_ITEMS,
3
+ ITEMS,
4
+ ReportError,
5
+ TextMeasurer,
6
+ baseContext,
7
+ finishText,
8
+ parameterOptions,
9
+ render,
10
+ resolveParameters
11
+ } from "./chunk-EK5CJY22.js";
12
+ import {
13
+ NO_CJK_FONTS
14
+ } from "./chunk-BR5K6SBL.js";
15
+ import "./chunk-72S6DETS.js";
16
+ import "./chunk-GJS242RR.js";
17
+ import {
18
+ FontStore
19
+ } from "./chunk-QFLVVM3H.js";
20
+ import "./chunk-OLLMACWA.js";
21
+ export {
22
+ BAND_ITEMS,
23
+ FontStore,
24
+ ITEMS,
25
+ NO_CJK_FONTS,
26
+ ReportError,
27
+ TextMeasurer,
28
+ baseContext,
29
+ finishText,
30
+ parameterOptions,
31
+ render,
32
+ resolveParameters
33
+ };
34
+ //# sourceMappingURL=chunk-YIX3OJXU.js.map