@reportwright/viewer 0.0.0-stage → 0.11.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.
- package/CHANGELOG.md +206 -0
- package/LICENSE +23 -0
- package/README.md +146 -2
- package/dist/chunk-2NAW3MAP.js +1284 -0
- package/dist/chunk-2NAW3MAP.js.map +6 -0
- package/dist/chunk-3D43XGIN.js +1167 -0
- package/dist/chunk-3D43XGIN.js.map +6 -0
- package/dist/chunk-66QZ3RDV.js +1661 -0
- package/dist/chunk-66QZ3RDV.js.map +6 -0
- package/dist/chunk-72S6DETS.js +40 -0
- package/dist/chunk-72S6DETS.js.map +6 -0
- package/dist/chunk-AH47FS6Y.js +13 -0
- package/dist/chunk-AH47FS6Y.js.map +6 -0
- package/dist/chunk-APRPSQOD.js +301 -0
- package/dist/chunk-APRPSQOD.js.map +6 -0
- package/dist/chunk-BXKUE45K.js +1284 -0
- package/dist/chunk-BXKUE45K.js.map +6 -0
- package/dist/chunk-D2NTLAKL.js +14 -0
- package/dist/chunk-D2NTLAKL.js.map +6 -0
- package/dist/chunk-E7INJHTL.js +1284 -0
- package/dist/chunk-E7INJHTL.js.map +6 -0
- package/dist/chunk-FGEFSGJT.js +1284 -0
- package/dist/chunk-FGEFSGJT.js.map +6 -0
- package/dist/chunk-GJS242RR.js +1652 -0
- package/dist/chunk-GJS242RR.js.map +6 -0
- package/dist/chunk-HAMBWF6C.js +20682 -0
- package/dist/chunk-HAMBWF6C.js.map +6 -0
- package/dist/chunk-J56FRCFU.js +1284 -0
- package/dist/chunk-J56FRCFU.js.map +6 -0
- package/dist/chunk-KJTRZJHN.js +599 -0
- package/dist/chunk-KJTRZJHN.js.map +6 -0
- package/dist/chunk-N5WHQ4DM.js +153 -0
- package/dist/chunk-N5WHQ4DM.js.map +6 -0
- package/dist/chunk-NJWQT6VB.js +1284 -0
- package/dist/chunk-NJWQT6VB.js.map +6 -0
- package/dist/chunk-ODREGGKA.js +219 -0
- package/dist/chunk-ODREGGKA.js.map +6 -0
- package/dist/chunk-OLLMACWA.js +35 -0
- package/dist/chunk-OLLMACWA.js.map +6 -0
- package/dist/chunk-PXXMOP4N.js +1284 -0
- package/dist/chunk-PXXMOP4N.js.map +6 -0
- package/dist/chunk-RKGIVPK5.js +1284 -0
- package/dist/chunk-RKGIVPK5.js.map +6 -0
- package/dist/chunk-RYHJUQSV.js +98 -0
- package/dist/chunk-RYHJUQSV.js.map +6 -0
- package/dist/chunk-SBD55ZES.js +316 -0
- package/dist/chunk-SBD55ZES.js.map +6 -0
- package/dist/chunk-SR2TQ2ZK.js +70 -0
- package/dist/chunk-SR2TQ2ZK.js.map +6 -0
- package/dist/chunk-WQOBRZAL.js +14777 -0
- package/dist/chunk-WQOBRZAL.js.map +6 -0
- package/dist/designer.d.ts +48 -0
- package/dist/designer.js +35865 -0
- package/dist/designer.js.map +6 -0
- package/dist/peer/chunk-2NJMXASD.js +1282 -0
- package/dist/peer/chunk-2NJMXASD.js.map +6 -0
- package/dist/peer/chunk-5X4ZSSJT.js +1660 -0
- package/dist/peer/chunk-5X4ZSSJT.js.map +6 -0
- package/dist/peer/chunk-6YO42ALN.js +14777 -0
- package/dist/peer/chunk-6YO42ALN.js.map +6 -0
- package/dist/peer/chunk-76ZABVTI.js +598 -0
- package/dist/peer/chunk-76ZABVTI.js.map +6 -0
- package/dist/peer/chunk-776OR56A.js +6040 -0
- package/dist/peer/chunk-776OR56A.js.map +6 -0
- package/dist/peer/chunk-BPF3SLL4.js +1282 -0
- package/dist/peer/chunk-BPF3SLL4.js.map +6 -0
- package/dist/peer/chunk-BWVDLOVL.js +1282 -0
- package/dist/peer/chunk-BWVDLOVL.js.map +6 -0
- package/dist/peer/chunk-CXM3YSWF.js +1282 -0
- package/dist/peer/chunk-CXM3YSWF.js.map +6 -0
- package/dist/peer/chunk-DQFZ6LVB.js +1282 -0
- package/dist/peer/chunk-DQFZ6LVB.js.map +6 -0
- package/dist/peer/chunk-EKWTFHVE.js +152 -0
- package/dist/peer/chunk-EKWTFHVE.js.map +6 -0
- package/dist/peer/chunk-IMQRHDR4.js +12 -0
- package/dist/peer/chunk-IMQRHDR4.js.map +6 -0
- package/dist/peer/chunk-IPU2YRL2.js +300 -0
- package/dist/peer/chunk-IPU2YRL2.js.map +6 -0
- package/dist/peer/chunk-M4AGFUWE.js +97 -0
- package/dist/peer/chunk-M4AGFUWE.js.map +6 -0
- package/dist/peer/chunk-PG2PNYDX.js +1282 -0
- package/dist/peer/chunk-PG2PNYDX.js.map +6 -0
- package/dist/peer/chunk-QRAJXW2D.js +1282 -0
- package/dist/peer/chunk-QRAJXW2D.js.map +6 -0
- package/dist/peer/chunk-SHVCNAUG.js +1282 -0
- package/dist/peer/chunk-SHVCNAUG.js.map +6 -0
- package/dist/peer/chunk-Y5CAHLXS.js +218 -0
- package/dist/peer/chunk-Y5CAHLXS.js.map +6 -0
- package/dist/peer/designer.js +35841 -0
- package/dist/peer/designer.js.map +6 -0
- package/dist/peer/viewer.js +1061 -0
- package/dist/peer/viewer.js.map +6 -0
- package/dist/viewer.d.ts +77 -0
- package/dist/viewer.js +1066 -0
- package/dist/viewer.js.map +6 -0
- package/package.json +76 -4
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/i18n/zh.js"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
customFonts,
|
|
4
|
+
drillRefs,
|
|
5
|
+
fetchReport,
|
|
6
|
+
loadSources,
|
|
7
|
+
origin,
|
|
8
|
+
pruneSnapshot,
|
|
9
|
+
reportFetch,
|
|
10
|
+
resolveParameters,
|
|
11
|
+
reuseRefs
|
|
12
|
+
} from "./chunk-6YO42ALN.js";
|
|
13
|
+
import "../chunk-GJS242RR.js";
|
|
14
|
+
import "../chunk-72S6DETS.js";
|
|
15
|
+
import {
|
|
16
|
+
ALL_FONT_KEYS,
|
|
17
|
+
SHAPER,
|
|
18
|
+
fontFile,
|
|
19
|
+
fontKeysOf
|
|
20
|
+
} from "../chunk-3D43XGIN.js";
|
|
21
|
+
|
|
22
|
+
// src/viewer/interactiveHtml.js
|
|
23
|
+
var toB64 = (buf) => {
|
|
24
|
+
const u8 = new Uint8Array(buf);
|
|
25
|
+
let s = "";
|
|
26
|
+
for (let i = 0; i < u8.length; i += 32768) s += String.fromCharCode.apply(null, u8.subarray(i, i + 32768));
|
|
27
|
+
return btoa(s);
|
|
28
|
+
};
|
|
29
|
+
var getBuf = async (url) => {
|
|
30
|
+
const r = await fetch(url);
|
|
31
|
+
if (!r.ok) throw new Error(`HTTP ${r.status} for ${url}`);
|
|
32
|
+
return r.arrayBuffer();
|
|
33
|
+
};
|
|
34
|
+
function reachableReportIds(def) {
|
|
35
|
+
const out = reuseRefs(def);
|
|
36
|
+
for (const r of drillRefs(def)) out.add(r.report);
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
async function collectReports(def, rootId) {
|
|
40
|
+
const reports = {};
|
|
41
|
+
if (rootId) reports[rootId] = def;
|
|
42
|
+
const queue = [...reachableReportIds(def)];
|
|
43
|
+
const missing = [];
|
|
44
|
+
while (queue.length) {
|
|
45
|
+
const id = queue.shift();
|
|
46
|
+
if (reports[id] || missing.includes(id)) continue;
|
|
47
|
+
try {
|
|
48
|
+
const d = await fetchReport(id);
|
|
49
|
+
reports[id] = d;
|
|
50
|
+
queue.push(...reachableReportIds(d));
|
|
51
|
+
} catch {
|
|
52
|
+
missing.push(id);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return { reports, missing };
|
|
56
|
+
}
|
|
57
|
+
var MAX_DRILL_SNAPSHOTS = 250;
|
|
58
|
+
async function snapshotData(def, params, model, reports) {
|
|
59
|
+
const snapshot = {};
|
|
60
|
+
const base = origin();
|
|
61
|
+
const recording = async (url, init) => {
|
|
62
|
+
if (url in snapshot) return new Response(JSON.stringify(snapshot[url]), { status: 200, headers: { "content-type": "application/json" } });
|
|
63
|
+
const res = await reportFetch(base)(url, init);
|
|
64
|
+
if (res.ok) {
|
|
65
|
+
try {
|
|
66
|
+
snapshot[url] = await res.clone().json();
|
|
67
|
+
} catch {
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return res;
|
|
71
|
+
};
|
|
72
|
+
const load = async (d, p) => {
|
|
73
|
+
try {
|
|
74
|
+
await loadSources(d, { params: resolveParameters(d, p, { lenient: true }), fetch: recording, baseUrl: base });
|
|
75
|
+
} catch {
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
await load(def, params);
|
|
79
|
+
const seen = /* @__PURE__ */ new Set(), jobs = [];
|
|
80
|
+
for (const pg of model?.pages || []) for (const it of pg.items) {
|
|
81
|
+
const a = it.t === "link" && it.action;
|
|
82
|
+
if (!a || a.type !== "drill" || !reports[a.report]) continue;
|
|
83
|
+
const key = a.report + JSON.stringify(a.params || {});
|
|
84
|
+
if (seen.has(key)) continue;
|
|
85
|
+
seen.add(key);
|
|
86
|
+
jobs.push([reports[a.report], Object.fromEntries(Object.entries(a.params || {}).map(([k, v]) => [k, v == null ? "" : String(v)]))]);
|
|
87
|
+
}
|
|
88
|
+
const todo = jobs.slice(0, MAX_DRILL_SNAPSHOTS);
|
|
89
|
+
for (let i = 0; i < todo.length; i += 6) await Promise.all(todo.slice(i, i + 6).map(([d, p]) => load(d, p)));
|
|
90
|
+
return { snapshot, drillTargets: jobs.length, drillSnapshots: todo.length };
|
|
91
|
+
}
|
|
92
|
+
async function exportInteractiveHtml(def, opt = {}) {
|
|
93
|
+
const base = origin();
|
|
94
|
+
const bundleRes = await fetch(`${base}/embed/reportwright-viewer.full.js`);
|
|
95
|
+
if (!bundleRes.ok) throw Object.assign(new Error('The viewer bundle is missing. Run "npm run build:embed" (it also runs in "npm run build").'), { code: "NO_BUNDLE" });
|
|
96
|
+
const bundle = (await bundleRes.text()).replace(/<\/script/gi, "<\\/script");
|
|
97
|
+
const used = fontKeysOf(opt.model);
|
|
98
|
+
const shaped = (opt.model?.pages || []).some((pg) => pg.items.some((it) => it.t === "text" && it.lines.some((l) => l.runs?.some((r) => r.shaped || r.rtl))));
|
|
99
|
+
const keys = [.../* @__PURE__ */ new Set([...ALL_FONT_KEYS, ...used, ...shaped ? [SHAPER] : []])];
|
|
100
|
+
const fonts = {};
|
|
101
|
+
await Promise.all(keys.map(async (k) => {
|
|
102
|
+
fonts[k] = toB64(await getBuf(`${base}/fonts/${fontFile(k)}`));
|
|
103
|
+
}));
|
|
104
|
+
const uploaded = (await customFonts()).filter((f) => keys.includes(`u-${f.id}`));
|
|
105
|
+
let uiCss = "";
|
|
106
|
+
try {
|
|
107
|
+
const faces = [["PW UI", "ibm-plex-sans-latin-400-normal", 400], ["PW UI", "ibm-plex-sans-latin-600-normal", 600], ["PW Mono", "ibm-plex-mono-latin-400-normal", 400]];
|
|
108
|
+
const parts = await Promise.all(faces.map(async ([fam, file, w]) => `@font-face{font-family:"${fam}";src:url(data:font/woff2;base64,${toB64(await getBuf(`${base}/fonts/ui/${file}.woff2`))}) format("woff2");font-weight:${w};font-display:swap}`));
|
|
109
|
+
uiCss = parts.join("\n");
|
|
110
|
+
} catch {
|
|
111
|
+
}
|
|
112
|
+
const { reports, missing } = await collectReports(def, opt.reportId);
|
|
113
|
+
const { snapshot: raw, drillTargets, drillSnapshots } = await snapshotData(def, opt.params || {}, opt.model, reports);
|
|
114
|
+
const snapshot = pruneSnapshot(raw, [def, ...Object.values(reports)]);
|
|
115
|
+
const config = {
|
|
116
|
+
server: base,
|
|
117
|
+
definition: def,
|
|
118
|
+
params: opt.params || {},
|
|
119
|
+
lang: opt.lang || "en",
|
|
120
|
+
reports,
|
|
121
|
+
fonts,
|
|
122
|
+
customFonts: uploaded,
|
|
123
|
+
uiFontCss: uiCss,
|
|
124
|
+
snapshot,
|
|
125
|
+
height: "100vh",
|
|
126
|
+
title: def.name
|
|
127
|
+
};
|
|
128
|
+
const json = JSON.stringify(config).replace(/</g, "\\u003c");
|
|
129
|
+
const esc = (s) => String(s).replace(/&/g, "&").replace(/</g, "<");
|
|
130
|
+
const html = `<!doctype html>
|
|
131
|
+
<html lang="${esc(opt.lang || "en")}"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
132
|
+
<title>${esc(def.name || "Report")}</title>
|
|
133
|
+
<meta name="generator" content="ReportWright interactive HTML">
|
|
134
|
+
<style>html,body{margin:0;height:100%;background:#e6eaee}#report{height:100vh}#report-note{position:fixed;right:8px;bottom:6px;font:11px system-ui,sans-serif;color:#5f6b77;pointer-events:none}</style>
|
|
135
|
+
</head><body>
|
|
136
|
+
<div id="report"></div>
|
|
137
|
+
<div id="report-note">Exported ${esc((/* @__PURE__ */ new Date()).toLocaleString())} · data refreshes when online</div>
|
|
138
|
+
<script>${bundle}<\/script>
|
|
139
|
+
<script type="application/json" id="pw-config">${json}<\/script>
|
|
140
|
+
<script>
|
|
141
|
+
(function(){var c=JSON.parse(document.getElementById('pw-config').textContent);
|
|
142
|
+
var el=document.getElementById('report');var s=el.style;s.height='100vh';
|
|
143
|
+
ReportWright.mountViewer(el,c);})();
|
|
144
|
+
<\/script>
|
|
145
|
+
</body></html>`;
|
|
146
|
+
return { html, info: { reports: Object.keys(reports).length || 1, missing, bytes: html.length, drillTargets, drillSnapshots } };
|
|
147
|
+
}
|
|
148
|
+
export {
|
|
149
|
+
exportInteractiveHtml,
|
|
150
|
+
reachableReportIds
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=chunk-EKWTFHVE.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/viewer/interactiveHtml.js"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatValue,
|
|
3
|
+
isoDate
|
|
4
|
+
} from "../chunk-GJS242RR.js";
|
|
5
|
+
import {
|
|
6
|
+
drillUrl,
|
|
7
|
+
safeUrl
|
|
8
|
+
} from "../chunk-72S6DETS.js";
|
|
9
|
+
import {
|
|
10
|
+
withDeadline
|
|
11
|
+
} from "../chunk-D2NTLAKL.js";
|
|
12
|
+
import {
|
|
13
|
+
mergedRegions,
|
|
14
|
+
needsTableData
|
|
15
|
+
} from "../chunk-SR2TQ2ZK.js";
|
|
16
|
+
import {
|
|
17
|
+
fontFamilyCss,
|
|
18
|
+
pageToSvg
|
|
19
|
+
} from "../chunk-3D43XGIN.js";
|
|
20
|
+
|
|
21
|
+
// src/exporters/htmldata.js
|
|
22
|
+
var MAX_DATA_ROWS = 2e4;
|
|
23
|
+
var DATA_STRINGS = { pages: "Pages", tables: "Tables", all: "All", filter: "Filter", toggle: "Show or hide the rows of this group", sortAsc: "Sort ascending", sortDesc: "Sort descending" };
|
|
24
|
+
function tablesData(model, o = {}) {
|
|
25
|
+
const regions = mergedRegions(model);
|
|
26
|
+
if (!regions.length || regions.reduce((n, r) => n + r.rows.length, 0) > MAX_DATA_ROWS) return null;
|
|
27
|
+
const sortable = /* @__PURE__ */ new Map();
|
|
28
|
+
for (const pg of model.pages) {
|
|
29
|
+
const heads = pg.items.filter((i) => i.t === "text" && i.cell?.kind === "header" && i.clip);
|
|
30
|
+
for (const l of pg.items) {
|
|
31
|
+
if (l.t !== "link" || l.action?.type !== "sort") continue;
|
|
32
|
+
const h = heads.find((t) => t.cell.table === l.action.table && Math.abs(t.clip.x - l.x) < 1);
|
|
33
|
+
if (h) (sortable.get(h.cell.table) || sortable.set(h.cell.table, /* @__PURE__ */ new Set()).get(h.cell.table)).add(h.cell.col);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const show = (c) => c.value instanceof Date ? isoDate(c.value, model.timeZone || void 0) : typeof c.value === "boolean" ? String(c.value) : formatValue(c.value, c.format, { locale: o.locale, currency: o.currency });
|
|
37
|
+
return regions.map((r) => ({
|
|
38
|
+
name: String(r.name || "Table"),
|
|
39
|
+
cols: r.columns.length,
|
|
40
|
+
sort: [...sortable.get(r.name) || []],
|
|
41
|
+
rows: r.rows.map((row) => ({
|
|
42
|
+
k: row.kind,
|
|
43
|
+
l: row.level || 0,
|
|
44
|
+
c: row.cells.filter((c) => c.colIndex >= 0).map((c) => [c.colIndex, String(show(c) ?? ""), c.value instanceof Date ? c.value.getTime() : typeof c.value === "number" ? c.value : String(c.value ?? "").toLowerCase(), c.span || 1])
|
|
45
|
+
}))
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
var DATA_SCRIPT = `(() => {
|
|
49
|
+
const d = JSON.parse(document.getElementById('pw-data').textContent), S = d.strings;
|
|
50
|
+
const bar = document.getElementById('pw-bar'), box = document.getElementById('pw-tables');
|
|
51
|
+
const el = (tag, cls, text) => { const e = document.createElement(tag); if (cls) e.className = cls; if (text != null) e.textContent = text; return e; };
|
|
52
|
+
bar.hidden = false;
|
|
53
|
+
bar.addEventListener('click', (e) => {
|
|
54
|
+
const b = e.target.closest('button[data-view]');
|
|
55
|
+
if (!b) return;
|
|
56
|
+
const tables = b.dataset.view === 'tables';
|
|
57
|
+
document.body.classList.toggle('pw-show-tables', tables);
|
|
58
|
+
box.hidden = !tables;
|
|
59
|
+
for (const x of bar.querySelectorAll('button')) x.setAttribute('aria-pressed', String(x === b));
|
|
60
|
+
if (tables && !box.firstChild) for (const t of d.tables) box.appendChild(view(t));
|
|
61
|
+
});
|
|
62
|
+
function view(t) {
|
|
63
|
+
const sec = el('section', 'pw-t');
|
|
64
|
+
sec.appendChild(el('h2', null, t.name));
|
|
65
|
+
const heads = t.rows.filter(r => r.k === 'header');
|
|
66
|
+
const body = t.rows.filter(r => r.k !== 'header');
|
|
67
|
+
const label = (c) => { for (const h of heads) for (const x of h.c) if (x[0] === c) return x[1]; return String(c + 1); };
|
|
68
|
+
// filters: text columns of detail rows with a few distinct values
|
|
69
|
+
const active = new Map();
|
|
70
|
+
const bar2 = el('div', 'pw-f');
|
|
71
|
+
for (let c = 0; c < t.cols; c++) {
|
|
72
|
+
const vals = new Set(); let text = true;
|
|
73
|
+
for (const r of body) if (r.k === 'detail') for (const x of r.c) if (x[0] === c && x[1] !== '') { vals.add(x[1]); if (typeof x[2] === 'number') text = false; }
|
|
74
|
+
if (!text || vals.size < 2 || vals.size > 30) continue;
|
|
75
|
+
const lab = el('label', null, label(c) + ' ');
|
|
76
|
+
const s = el('select');
|
|
77
|
+
s.appendChild(new Option(S.all, ''));
|
|
78
|
+
for (const v of [...vals].sort()) s.appendChild(new Option(v, v));
|
|
79
|
+
s.addEventListener('change', () => { if (s.value) active.set(c, s.value); else active.delete(c); draw(); });
|
|
80
|
+
lab.appendChild(s);
|
|
81
|
+
bar2.appendChild(lab);
|
|
82
|
+
}
|
|
83
|
+
if (bar2.firstChild) { bar2.prepend(el('span', 'pw-fl', S.filter)); sec.appendChild(bar2); }
|
|
84
|
+
const table = el('table'), thead = el('thead'), tbody = el('tbody');
|
|
85
|
+
let order = null; // { c, dir }
|
|
86
|
+
const closed = new Set();
|
|
87
|
+
for (const h of heads) {
|
|
88
|
+
const tr = el('tr');
|
|
89
|
+
for (const x of h.c) {
|
|
90
|
+
const th = el('th');
|
|
91
|
+
th.scope = 'col';
|
|
92
|
+
if (x[3] > 1) th.colSpan = x[3];
|
|
93
|
+
if (t.sort.includes(x[0])) {
|
|
94
|
+
const b = el('button', 'pw-s', x[1]);
|
|
95
|
+
b.type = 'button';
|
|
96
|
+
b.title = S.sortAsc;
|
|
97
|
+
b.addEventListener('click', () => {
|
|
98
|
+
order = order && order.c === x[0] && order.dir === 1 ? { c: x[0], dir: -1 } : { c: x[0], dir: 1 };
|
|
99
|
+
for (const o of thead.querySelectorAll('th')) o.removeAttribute('aria-sort');
|
|
100
|
+
th.setAttribute('aria-sort', order.dir === 1 ? 'ascending' : 'descending');
|
|
101
|
+
b.title = order.dir === 1 ? S.sortDesc : S.sortAsc;
|
|
102
|
+
draw();
|
|
103
|
+
});
|
|
104
|
+
th.appendChild(b);
|
|
105
|
+
} else th.textContent = x[1];
|
|
106
|
+
tr.appendChild(th);
|
|
107
|
+
}
|
|
108
|
+
thead.appendChild(tr);
|
|
109
|
+
}
|
|
110
|
+
table.append(thead, tbody);
|
|
111
|
+
sec.appendChild(table);
|
|
112
|
+
const key = (r) => { const x = r.c.find(y => y[0] === order.c); return x ? x[2] : ''; };
|
|
113
|
+
const cmp = (a, b) => { const p = key(a), q = key(b); return (typeof p === typeof q ? (p < q ? -1 : p > q ? 1 : 0) : typeof p === 'number' ? -1 : 1) * order.dir; };
|
|
114
|
+
function draw() {
|
|
115
|
+
// detail rows sorted within each run between group rows; groups keep their place
|
|
116
|
+
let rows = body;
|
|
117
|
+
if (order) {
|
|
118
|
+
rows = [];
|
|
119
|
+
for (let i = 0; i < body.length;) {
|
|
120
|
+
if (body[i].k !== 'detail') { rows.push(body[i++]); continue; }
|
|
121
|
+
const run = [];
|
|
122
|
+
while (i < body.length && body[i].k === 'detail') run.push(body[i++]);
|
|
123
|
+
for (const x of run.sort(cmp)) rows.push(x);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const keep = (r) => { for (const [c, v] of active) { const x = r.c.find(y => y[0] === c); if (!x || x[1] !== v) return false; } return true; };
|
|
127
|
+
tbody.textContent = '';
|
|
128
|
+
let hideFrom = -1; // the level of a closed group whose rows are hidden
|
|
129
|
+
rows.forEach((r) => {
|
|
130
|
+
if (hideFrom >= 0 && (r.k === 'header' || r.k === 'footer' || (r.k === 'groupHeader' && r.l <= hideFrom) || (r.k === 'groupFooter' && r.l <= hideFrom))) hideFrom = -1;
|
|
131
|
+
if (hideFrom >= 0) return;
|
|
132
|
+
if (r.k === 'detail' && !keep(r)) return;
|
|
133
|
+
const tr = el('tr', 'pw-' + r.k);
|
|
134
|
+
let c0 = true;
|
|
135
|
+
for (const x of r.c) {
|
|
136
|
+
const td = el('td', typeof x[2] === 'number' ? 'pw-n' : null);
|
|
137
|
+
if (x[3] > 1) td.colSpan = x[3];
|
|
138
|
+
if (c0 && r.k === 'groupHeader') {
|
|
139
|
+
const b = el('button', 'pw-g', closed.has(r) ? '▶' : '▼');
|
|
140
|
+
b.type = 'button';
|
|
141
|
+
b.title = S.toggle;
|
|
142
|
+
b.setAttribute('aria-expanded', String(!closed.has(r)));
|
|
143
|
+
b.addEventListener('click', () => { if (closed.has(r)) closed.delete(r); else closed.add(r); draw(); });
|
|
144
|
+
td.append(b, ' ');
|
|
145
|
+
}
|
|
146
|
+
td.append(x[1]);
|
|
147
|
+
tr.appendChild(td);
|
|
148
|
+
c0 = false;
|
|
149
|
+
}
|
|
150
|
+
tbody.appendChild(tr);
|
|
151
|
+
if (r.k === 'groupHeader' && closed.has(r)) hideFrom = r.l;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
draw();
|
|
155
|
+
return sec;
|
|
156
|
+
}
|
|
157
|
+
})();`;
|
|
158
|
+
var DATA_CSS = `.pw-bar{position:sticky;top:0;z-index:2;display:flex;gap:4px;padding:4px;background:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.15)}
|
|
159
|
+
.pw-bar button{font:inherit;border:1px solid #c9d1d9;background:#fff;border-radius:6px;padding:4px 12px;cursor:pointer}.pw-bar button[aria-pressed=true]{background:#1f2937;color:#fff;border-color:#1f2937}
|
|
160
|
+
body.pw-show-tables .page{display:none}#pw-tables{width:100%;max-width:none;display:flex;flex-direction:column;gap:24px}
|
|
161
|
+
.pw-t{background:#fff;padding:16px;border-radius:8px;overflow-x:auto}.pw-t h2{font-size:16px;margin:0 0 8px}
|
|
162
|
+
.pw-t table{border-collapse:collapse;width:100%;font-size:13px}.pw-t th,.pw-t td{border-bottom:1px solid #e5e7eb;padding:4px 8px;text-align:left}.pw-t td.pw-n{text-align:right;font-variant-numeric:tabular-nums}
|
|
163
|
+
.pw-t th{background:#f1f5f9}.pw-t .pw-groupHeader td,.pw-t .pw-groupFooter td,.pw-t .pw-footer td{font-weight:600}
|
|
164
|
+
.pw-s,.pw-g{font:inherit;border:0;background:none;padding:0;cursor:pointer;color:inherit}.pw-s:after{content:" ⇅";opacity:.5}
|
|
165
|
+
.pw-f{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:8px;font-size:13px}.pw-fl{font-weight:600}
|
|
166
|
+
@media print{.pw-bar,#pw-tables{display:none}}`;
|
|
167
|
+
async function cspHash(text) {
|
|
168
|
+
const d = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text));
|
|
169
|
+
const u8 = new Uint8Array(d);
|
|
170
|
+
let s = "";
|
|
171
|
+
for (const b of u8) s += String.fromCharCode(b);
|
|
172
|
+
return btoa(s);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// src/exporters/html.js
|
|
176
|
+
function exportHtml(model, fontStore, opt = {}) {
|
|
177
|
+
return withDeadline(
|
|
178
|
+
htmlOf(model, fontStore, opt),
|
|
179
|
+
/** @type {any} */
|
|
180
|
+
opt.timeoutMs
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
async function htmlOf(model, fontStore, opt) {
|
|
184
|
+
const used = /* @__PURE__ */ new Map();
|
|
185
|
+
const layout = /* @__PURE__ */ new Set();
|
|
186
|
+
const add = (key, text) => {
|
|
187
|
+
let s = used.get(key);
|
|
188
|
+
if (!s) {
|
|
189
|
+
s = /* @__PURE__ */ new Set([32]);
|
|
190
|
+
used.set(key, s);
|
|
191
|
+
}
|
|
192
|
+
for (const ch of text) s.add(
|
|
193
|
+
/** @type {number} */
|
|
194
|
+
ch.codePointAt(0)
|
|
195
|
+
);
|
|
196
|
+
};
|
|
197
|
+
for (const pg of model.pages) for (const it of pg.items.flatMap((i) => i.t === "field" ? i.draw : [i])) if (it.t === "text") {
|
|
198
|
+
for (const l of it.lines) {
|
|
199
|
+
if (!l.runs) {
|
|
200
|
+
add(it.font, l.text);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
for (const r of l.runs) {
|
|
204
|
+
add(r.font, r.text);
|
|
205
|
+
if (r.shaped || r.rtl) layout.add(r.font);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
const faces = [];
|
|
210
|
+
for (const [key, cps] of used) {
|
|
211
|
+
let bytes = fontStore.bytes.get(key);
|
|
212
|
+
if (!bytes) continue;
|
|
213
|
+
if (opt.subset) {
|
|
214
|
+
try {
|
|
215
|
+
bytes = await opt.subset(bytes, cps, layout.has(key) ? { layout: true } : void 0);
|
|
216
|
+
} catch {
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
faces.push(`@font-face{font-family:"${fontFamilyCss(key)}";src:url(data:font/ttf;base64,${b64(bytes)}) format("truetype")}`);
|
|
220
|
+
}
|
|
221
|
+
const esc = (s) => String(s).replace(/&/g, "&").replace(/</g, "<");
|
|
222
|
+
const anchors = /* @__PURE__ */ new Map();
|
|
223
|
+
const jumpTo = (a) => {
|
|
224
|
+
const to = a.page ? a : model.bookmarks?.find((b) => b.label === a.target) || model.headings?.find((b) => b.label === a.target);
|
|
225
|
+
if (!to?.page) return null;
|
|
226
|
+
const y = Math.max(0, Math.round(to.y || 0));
|
|
227
|
+
const key = `${to.page}:${y}`;
|
|
228
|
+
if (!anchors.has(key)) anchors.set(key, { id: `at-${to.page}-${y}`, page: to.page, y });
|
|
229
|
+
return `#${anchors.get(key).id}`;
|
|
230
|
+
};
|
|
231
|
+
const drillHref = (a) => drillUrl(opt.drillBase, a);
|
|
232
|
+
const target = (a) => {
|
|
233
|
+
if (a?.type === "url") {
|
|
234
|
+
const h = safeUrl(a.href);
|
|
235
|
+
return h ? { href: h, external: true } : null;
|
|
236
|
+
}
|
|
237
|
+
if (a?.type === "bookmark") {
|
|
238
|
+
const h = jumpTo(a);
|
|
239
|
+
return h ? { href: h } : null;
|
|
240
|
+
}
|
|
241
|
+
if (a?.type === "drill") {
|
|
242
|
+
const h = drillHref(a);
|
|
243
|
+
return h ? { href: h, external: true } : { off: `Opens the report "${a.report}" in the ReportWright viewer` };
|
|
244
|
+
}
|
|
245
|
+
return null;
|
|
246
|
+
};
|
|
247
|
+
const svgs = model.pages.map((p) => pageToSvg({ items: p.items.filter((it) => it.t !== "link" || target(it.action)) }, p.width ?? model.width, p.height ?? model.height, { proxyBase: opt.drillBase || "" }).replace(/<rect class="pw-link"([^>]*?)data-action="([^"]*)"[^>]*>(<title>[^<]*<\/title>)?<\/rect>/g, (m, a, act, ttl = "") => {
|
|
248
|
+
let t = null;
|
|
249
|
+
try {
|
|
250
|
+
t = target(JSON.parse(act.replace(/"/g, '"').replace(/</g, "<").replace(/>/g, ">").replace(/'/g, "'").replace(/&/g, "&")));
|
|
251
|
+
} catch {
|
|
252
|
+
}
|
|
253
|
+
if (t && "href" in t) return `<a href="${attr(t.href)}"${t.external ? ' target="_blank" rel="noopener"' : ""}><rect${a}/>${ttl}</a>`;
|
|
254
|
+
if (t && "off" in t) return `<g class="pw-off"><rect${a}/><title>${esc(t.off)}</title></g>`;
|
|
255
|
+
return `<rect${a}/>`;
|
|
256
|
+
}));
|
|
257
|
+
const pages = model.pages.map((p, i) => {
|
|
258
|
+
const H = p.height ?? model.height;
|
|
259
|
+
const marks = [...anchors.values()].filter((x) => x.page === i + 1).map((x) => `<a class="pw-at" id="${x.id}" style="top:${(Math.min(x.y, H) / H * 100).toFixed(3)}%"></a>`).join("");
|
|
260
|
+
return `<section class="page${p.width ? " wide" : ""}" id="page-${i + 1}"${p.width ? ` style="width:min(100%,${Math.round(p.width * 96 / 72)}px)"` : ""}>${marks}${svgs[i]}</section>`;
|
|
261
|
+
}).join("\n");
|
|
262
|
+
if (!opt.static) needsTableData(model, "Interactive HTML (or pass static: true)");
|
|
263
|
+
const data = opt.static ? null : tablesData(model, { locale: opt.locale, currency: opt.currency });
|
|
264
|
+
const S = { ...DATA_STRINGS, ...opt.strings || {} };
|
|
265
|
+
const csp = data ? `<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'sha256-${await cspHash(DATA_SCRIPT)}'; style-src 'unsafe-inline'; font-src data:; img-src data: https: http:; base-uri 'none'; form-action 'none'">
|
|
266
|
+
` : "";
|
|
267
|
+
const lang = opt.lang && /^[A-Za-z]{2,3}(-[A-Za-z0-9]{2,8})*$/.test(opt.lang) ? opt.lang : "en";
|
|
268
|
+
return `<!doctype html>
|
|
269
|
+
<html lang="${data ? lang : "en"}"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
|
270
|
+
${csp}<title>${esc(opt.title || model.name || "Report")}</title>
|
|
271
|
+
<style>
|
|
272
|
+
${faces.join("\n")}
|
|
273
|
+
html{background:#e6eaee}body{margin:0;padding:24px 12px;display:flex;flex-direction:column;align-items:center;gap:18px;font-family:system-ui,sans-serif}
|
|
274
|
+
.page{position:relative;width:min(100%,${Math.round(model.width * 96 / 72)}px);background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08),0 6px 20px rgba(0,0,0,.08)}
|
|
275
|
+
.pw-at{position:absolute;left:0;width:1px;height:1px;scroll-margin-top:12px}.pw-off{cursor:not-allowed}
|
|
276
|
+
.page svg{display:block;width:100%;height:auto}
|
|
277
|
+
@media print{html{background:#fff}body{padding:0;gap:0}.page{box-shadow:none;width:100%;break-after:page}@page{size:${model.width}pt ${model.height}pt;margin:0}}
|
|
278
|
+
${data ? DATA_CSS + "\n" : ""}</style></head><body>
|
|
279
|
+
${data ? `<nav class="pw-bar" id="pw-bar" hidden><button type="button" data-view="pages" aria-pressed="true">${esc(S.pages)}</button><button type="button" data-view="tables" aria-pressed="false">${esc(S.tables)}</button></nav>
|
|
280
|
+
` : ""}${pages}
|
|
281
|
+
${data ? `<div id="pw-tables" hidden></div>
|
|
282
|
+
<script type="application/json" id="pw-data">${JSON.stringify({ tables: data, strings: S }).replace(/</g, "\\u003c")}<\/script>
|
|
283
|
+
<script>${DATA_SCRIPT}<\/script>
|
|
284
|
+
` : ""}</body></html>`;
|
|
285
|
+
}
|
|
286
|
+
var attr = (s) => String(s).replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/'/g, "'");
|
|
287
|
+
function b64(u8) {
|
|
288
|
+
if (typeof Buffer !== "undefined") return Buffer.from(u8).toString("base64");
|
|
289
|
+
let s = "";
|
|
290
|
+
for (let i = 0; i < u8.length; i += 32768) s += String.fromCharCode.apply(
|
|
291
|
+
null,
|
|
292
|
+
/** @type {any} */
|
|
293
|
+
u8.subarray(i, i + 32768)
|
|
294
|
+
);
|
|
295
|
+
return btoa(s);
|
|
296
|
+
}
|
|
297
|
+
export {
|
|
298
|
+
exportHtml
|
|
299
|
+
};
|
|
300
|
+
//# sourceMappingURL=chunk-IPU2YRL2.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/exporters/htmldata.js", "../../../src/exporters/html.js"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatValue,
|
|
3
|
+
isoDate,
|
|
4
|
+
roundHalfAway
|
|
5
|
+
} from "../chunk-GJS242RR.js";
|
|
6
|
+
import {
|
|
7
|
+
mergedRegions,
|
|
8
|
+
needsTableData,
|
|
9
|
+
textRows
|
|
10
|
+
} from "../chunk-SR2TQ2ZK.js";
|
|
11
|
+
|
|
12
|
+
// src/exporters/csv.js
|
|
13
|
+
var q = (v) => {
|
|
14
|
+
const s = v == null ? "" : String(v);
|
|
15
|
+
return /[",\n\r]/.test(s) ? `"${s.replace(/"/g, '""')}"` : s;
|
|
16
|
+
};
|
|
17
|
+
var text = (s) => /^[=+\-@\t\r]/.test(s) ? `'${s}` : s;
|
|
18
|
+
function shown(v, fmt) {
|
|
19
|
+
const m = /^([CcNnFfPp])(\d{0,2})$/.exec(fmt || "");
|
|
20
|
+
if (!m) return Number.isInteger(v) ? v : roundHalfAway(v, 6);
|
|
21
|
+
return roundHalfAway(v, (m[2] === "" ? 2 : Number(m[2])) + (m[1].toUpperCase() === "P" ? 2 : 0));
|
|
22
|
+
}
|
|
23
|
+
function exportCsv(model, { all = true, layout = false, locale, currency } = {}) {
|
|
24
|
+
needsTableData(model, "CSV");
|
|
25
|
+
const regions = mergedRegions(model);
|
|
26
|
+
if (!regions.length) {
|
|
27
|
+
return "\uFEFF" + model.pages.flatMap((p) => textRows(p.items).map((l) => q(text(l)))).join("\r\n");
|
|
28
|
+
}
|
|
29
|
+
const line = csvLine({ timeZone: model.timeZone, locale, currency });
|
|
30
|
+
const out = [];
|
|
31
|
+
if (!layout) {
|
|
32
|
+
const details = (r) => r.rows.reduce((n, x) => n + (x.kind === "detail" ? 1 : 0), 0);
|
|
33
|
+
const main = regions.reduce((a, b) => details(b) > details(a) ? b : a);
|
|
34
|
+
const names = csvNames(main.columns.length);
|
|
35
|
+
for (const row of main.rows) if (row.kind === "header") names.add(row);
|
|
36
|
+
out.push(names.line());
|
|
37
|
+
for (const row of main.rows) if (row.kind === "detail") out.push(line(main.columns.length, row));
|
|
38
|
+
return "\uFEFF" + out.join("\r\n");
|
|
39
|
+
}
|
|
40
|
+
for (const r of all ? regions : regions.slice(0, 1)) {
|
|
41
|
+
if (regions.length > 1) out.push(q(r.name));
|
|
42
|
+
for (const row of r.rows) out.push(line(r.columns.length, row));
|
|
43
|
+
out.push("");
|
|
44
|
+
}
|
|
45
|
+
return "\uFEFF" + out.join("\r\n");
|
|
46
|
+
}
|
|
47
|
+
function csvLine({ timeZone, locale, currency }) {
|
|
48
|
+
const cell = (c) => c.value instanceof Date ? isoDate(c.value, timeZone || void 0) : typeof c.value === "number" ? shown(c.value, c.format) : c.value === true || c.value === false ? String(c.value) : text(formatValue(c.value, null, { locale, currency }));
|
|
49
|
+
return (ncols, row) => {
|
|
50
|
+
const out = new Array(ncols).fill("");
|
|
51
|
+
for (const c of row.cells) if (c.colIndex >= 0) out[c.colIndex] = q(cell(c));
|
|
52
|
+
return out.join(",");
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
function csvNames(ncols) {
|
|
56
|
+
const names = Array.from({ length: ncols }, () => (
|
|
57
|
+
/** @type {string[]} */
|
|
58
|
+
[]
|
|
59
|
+
));
|
|
60
|
+
return {
|
|
61
|
+
/** @param {{ cells: any[] }} row */
|
|
62
|
+
add(row) {
|
|
63
|
+
for (const c of row.cells) {
|
|
64
|
+
const t = c.value == null ? "" : String(c.value).trim();
|
|
65
|
+
if (!t || c.colIndex < 0) continue;
|
|
66
|
+
for (let k = c.colIndex; k < Math.min(names.length, c.colIndex + Math.max(1, c.span || 1)); k++) if (names[k][names[k].length - 1] !== t) names[k].push(t);
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
line: () => names.map((n, i) => q(text(n.join(" ") || `Column ${i + 1}`))).join(",")
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
async function writeCsvStream(plan, put, { locale, currency } = {}) {
|
|
73
|
+
const n = plan.columns.length;
|
|
74
|
+
const line = csvLine({ timeZone: plan.timeZone, locale, currency });
|
|
75
|
+
const names = csvNames(n);
|
|
76
|
+
let started = false;
|
|
77
|
+
for await (const row of plan.rows()) {
|
|
78
|
+
if (row.kind === "header") {
|
|
79
|
+
names.add(row);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (row.kind !== "detail") continue;
|
|
83
|
+
if (!started) {
|
|
84
|
+
started = true;
|
|
85
|
+
await put("\uFEFF" + names.line());
|
|
86
|
+
}
|
|
87
|
+
await put("\r\n" + line(n, row));
|
|
88
|
+
}
|
|
89
|
+
if (!started) await put("\uFEFF" + names.line());
|
|
90
|
+
}
|
|
91
|
+
export {
|
|
92
|
+
csvLine,
|
|
93
|
+
csvNames,
|
|
94
|
+
exportCsv,
|
|
95
|
+
writeCsvStream
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=chunk-M4AGFUWE.js.map
|