timarai-dashboard-mcp 1.0.3

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specs.js","sourceRoot":"","sources":["../../src/charts/specs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,371 @@
1
+ /**
2
+ * 纯手写 SVG 图表渲染器(零依赖)。
3
+ *
4
+ * 为什么不用 ECharts / Chart.js:
5
+ * 那些库要在浏览器里跑,本服务是 Node 进程,要用的话就得引 headless 浏览器——
6
+ * 安装体积大、跨平台易崩、每次出图慢。图表形态固定(折线/柱/条/环/双轴/KPI 卡),
7
+ * 手写 SVG 反而更快、更可控、产物可直接嵌进 HTML 报告和 PPT。
8
+ *
9
+ * 设计约束:
10
+ * - 产物是**自包含**的 `<svg>`,不引外部字体/CDN,离线可看;
11
+ * - 空数据必须优雅降级(画出「暂无数据」而不是崩掉坐标轴)——查询窗口内无统计产出是常态。
12
+ */
13
+ import { INK, PALETTE, compact, delta, esc, formatTick, formatValue, } from "./format.js";
14
+ const PAD = { left: 76, right: 28, top: 66, bottom: 58 };
15
+ /** 取色(下标安全,避免 noUncheckedIndexedAccess 报 undefined)。 */
16
+ function pick(index) {
17
+ const i = ((index % PALETTE.length) + PALETTE.length) % PALETTE.length;
18
+ return PALETTE[i] ?? "#378ADD";
19
+ }
20
+ const C0 = pick(0);
21
+ const C1 = pick(1);
22
+ function svgDoc(width, height, inner) {
23
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}" viewBox="0 0 ${width} ${height}" font-family="-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif">${inner}</svg>`;
24
+ }
25
+ function text(x, y, content, opts = {}) {
26
+ const { size = 12, weight = 400, fill = INK.text, anchor = "start" } = opts;
27
+ return `<text x="${x}" y="${y}" font-size="${size}" font-weight="${weight}" fill="${fill}" text-anchor="${anchor}">${esc(content)}</text>`;
28
+ }
29
+ function header(title, subtitle, width) {
30
+ const parts = [text(PAD.left - 12, 30, title, { size: 15, weight: 500, fill: INK.title })];
31
+ if (subtitle)
32
+ parts.push(text(PAD.left - 12, 50, subtitle, { size: 12, fill: INK.muted }));
33
+ parts.push(`<line x1="${PAD.left - 12}" y1="60" x2="${width - PAD.right}" y2="60" stroke="${INK.grid}" stroke-width="1"/>`);
34
+ return parts.join("");
35
+ }
36
+ function footnoteLine(text0, width, y) {
37
+ if (!text0)
38
+ return "";
39
+ return text(PAD.left - 12, y, text0, { size: 11, fill: INK.muted });
40
+ }
41
+ function legend(series, x, y) {
42
+ if (series.length < 2)
43
+ return "";
44
+ let cx = x;
45
+ const parts = [];
46
+ series.forEach((s, i) => {
47
+ const color = pick(i);
48
+ parts.push(`<rect x="${cx}" y="${y - 8}" width="10" height="10" rx="2" fill="${color}"/>`);
49
+ parts.push(text(cx + 15, y, s.name, { size: 12, fill: INK.text }));
50
+ cx += 22 + s.name.length * 12;
51
+ });
52
+ return parts.join("");
53
+ }
54
+ function emptyState(width, height, title, subtitle) {
55
+ return svgDoc(width, height, [
56
+ `<rect x="1" y="1" width="${width - 2}" height="${height - 2}" rx="10" fill="${INK.cardBg}" stroke="${INK.cardBorder}"/>`,
57
+ header(title, subtitle, width),
58
+ text(width / 2, height / 2 + 6, "暂无数据(该区间无统计记录)", {
59
+ size: 13,
60
+ fill: INK.muted,
61
+ anchor: "middle",
62
+ }),
63
+ ].join(""));
64
+ }
65
+ /** 取整的刻度值,避免轴标签出现 1234.5678 这种数字。 */
66
+ function niceScale(min, max, ticks = 5, zeroBased = true) {
67
+ if (!Number.isFinite(min) || !Number.isFinite(max)) {
68
+ return { min: 0, max: 1, ticks: [0, 0.25, 0.5, 0.75, 1] };
69
+ }
70
+ let lo = zeroBased ? Math.min(0, min) : min;
71
+ let hi = max;
72
+ if (hi === lo)
73
+ hi = lo + Math.abs(lo || 1);
74
+ if (!zeroBased) {
75
+ const pad = (hi - lo) * 0.15;
76
+ lo = Math.max(0, lo - pad);
77
+ hi = hi + pad;
78
+ }
79
+ const rawStep = (hi - lo) / ticks;
80
+ const mag = Math.pow(10, Math.floor(Math.log10(rawStep || 1)));
81
+ const norm = rawStep / mag;
82
+ const step = (norm <= 1 ? 1 : norm <= 2 ? 2 : norm <= 5 ? 5 : 10) * mag;
83
+ const niceMin = Math.floor(lo / step) * step;
84
+ const niceMax = Math.ceil(hi / step) * step;
85
+ const list = [];
86
+ for (let v = niceMin; v <= niceMax + step / 2; v += step)
87
+ list.push(Number(v.toFixed(10)));
88
+ return { min: niceMin, max: niceMax, ticks: list };
89
+ }
90
+ function yAxis(box, scale, format) {
91
+ const parts = [];
92
+ const span = scale.max - scale.min || 1;
93
+ for (const tick of scale.ticks) {
94
+ const y = box.y + box.h - ((tick - scale.min) / span) * box.h;
95
+ parts.push(`<line x1="${box.x}" y1="${y}" x2="${box.x + box.w}" y2="${y}" stroke="${INK.grid}" stroke-width="1"/>`);
96
+ parts.push(text(box.x - 10, y + 4, formatTick(tick, format), { size: 11, fill: INK.muted, anchor: "end" }));
97
+ }
98
+ return parts.join("");
99
+ }
100
+ /** x 轴标签抽稀:点多时隔位显示,但始终保留最后一点。 */
101
+ function xAxis(box, labels, maxLabels = 10) {
102
+ if (labels.length === 0)
103
+ return "";
104
+ const step0 = Math.ceil(labels.length / maxLabels);
105
+ const parts = [];
106
+ labels.forEach((label, i) => {
107
+ const show = i % step0 === 0 || i === labels.length - 1;
108
+ if (!show)
109
+ return;
110
+ const x = box.x + (labels.length === 1 ? box.w / 2 : (i / (labels.length - 1)) * box.w);
111
+ parts.push(`<line x1="${x}" y1="${box.y + box.h}" x2="${x}" y2="${box.y + box.h + 5}" stroke="${INK.axis}" stroke-width="1"/>`);
112
+ parts.push(text(x, box.y + box.h + 20, shortDate(label), { size: 11, fill: INK.muted, anchor: "middle" }));
113
+ });
114
+ return parts.join("");
115
+ }
116
+ function shortDate(label) {
117
+ const m = /^(\d{4})-(\d{2})-(\d{2})/.exec(label);
118
+ return m ? `${Number(m[2])}/${Number(m[3])}` : label;
119
+ }
120
+ function categoryScaleX(box, count, i) {
121
+ return count <= 1 ? box.x + box.w / 2 : box.x + (i / (count - 1)) * box.w;
122
+ }
123
+ function bandX(box, count, i) {
124
+ const band = box.w / Math.max(1, count);
125
+ return box.x + band * i + band / 2;
126
+ }
127
+ // ------------------------------------------------------------------ 折线
128
+ function renderLine(chart, width) {
129
+ const height = 340;
130
+ const box = { x: PAD.left, y: PAD.top, w: width - PAD.left - PAD.right, h: height - PAD.top - PAD.bottom };
131
+ const isRate = chart.series.some((s) => s.format === "percent");
132
+ const all = chart.series.flatMap((s) => s.values).filter((v) => Number.isFinite(v));
133
+ const scale = niceScale(Math.min(0, ...all), Math.max(0, ...all), 5, !isRate);
134
+ const span = scale.max - scale.min || 1;
135
+ const parts = [header(chart.title, chart.subtitle, width)];
136
+ parts.push(yAxis(box, scale, chart.series[0]?.format ?? "number"));
137
+ parts.push(legend(chart.series, PAD.left - 12, 42));
138
+ chart.series.forEach((s, si) => {
139
+ const color = pick(si);
140
+ const pts = s.values.map((v, i) => {
141
+ const x = categoryScaleX(box, s.values.length, i);
142
+ const y = box.y + box.h - ((v - scale.min) / span) * box.h;
143
+ return { x, y };
144
+ });
145
+ const line = pts.map((p) => `${p.x.toFixed(1)},${p.y.toFixed(1)}`).join(" ");
146
+ if (chart.series.length === 1) {
147
+ const area = `${box.x},${box.y + box.h} ${line} ${box.x + box.w},${box.y + box.h}`;
148
+ parts.push(`<polygon points="${area}" fill="${color}" opacity="0.10"/>`);
149
+ }
150
+ parts.push(`<polyline points="${line}" fill="none" stroke="${color}" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/>`);
151
+ if (pts.length <= 31) {
152
+ pts.forEach((p) => parts.push(`<circle cx="${p.x.toFixed(1)}" cy="${p.y.toFixed(1)}" r="2.6" fill="${INK.cardBg}" stroke="${color}" stroke-width="2"/>`));
153
+ }
154
+ });
155
+ parts.push(xAxis(box, chart.labels));
156
+ parts.push(footnoteLine(chart.footnote, width, height - 14));
157
+ return svgDoc(width, height, parts.join(""));
158
+ }
159
+ // ------------------------------------------------------------------ 柱状
160
+ function renderBar(chart, width) {
161
+ const height = 340;
162
+ const box = { x: PAD.left, y: PAD.top, w: width - PAD.left - PAD.right, h: height - PAD.top - PAD.bottom };
163
+ const all = chart.series.flatMap((s) => s.values).filter((v) => Number.isFinite(v));
164
+ const scale = niceScale(0, Math.max(0, ...all), 5, true);
165
+ const span = scale.max - scale.min || 1;
166
+ const parts = [header(chart.title, chart.subtitle, width)];
167
+ parts.push(yAxis(box, scale, chart.series[0]?.format ?? "number"));
168
+ parts.push(legend(chart.series, PAD.left - 12, 42));
169
+ const n = chart.labels.length;
170
+ const band = box.w / Math.max(1, n);
171
+ const groupW = band * 0.62;
172
+ const each = groupW / chart.series.length;
173
+ chart.series.forEach((s, si) => {
174
+ const color = pick(si);
175
+ s.values.forEach((v, i) => {
176
+ const cx = box.x + band * i + band / 2;
177
+ const x = cx - groupW / 2 + each * si;
178
+ const h = (Math.max(0, v) / span) * box.h;
179
+ const y = box.y + box.h - h;
180
+ parts.push(`<rect x="${x.toFixed(1)}" y="${y.toFixed(1)}" width="${(each * 0.86).toFixed(1)}" height="${Math.max(0, h).toFixed(1)}" rx="3" fill="${color}"/>`);
181
+ });
182
+ });
183
+ parts.push(xAxis(box, chart.labels));
184
+ parts.push(footnoteLine(chart.footnote, width, height - 14));
185
+ return svgDoc(width, height, parts.join(""));
186
+ }
187
+ // ------------------------------------------------------------------ 横向条形(排行)
188
+ function renderHBar(chart, width) {
189
+ const rowH = 30;
190
+ const height = PAD.top + chart.labels.length * rowH + 40;
191
+ const leftGutter = 168;
192
+ const box = { x: leftGutter, y: PAD.top, w: width - leftGutter - PAD.right - 54, h: chart.labels.length * rowH };
193
+ const all = chart.series.flatMap((s) => s.values).filter((v) => Number.isFinite(v));
194
+ const max = Math.max(1, ...all.map(Math.abs));
195
+ const parts = [header(chart.title, chart.subtitle, width)];
196
+ chart.labels.forEach((label, i) => {
197
+ const y = box.y + i * rowH;
198
+ const v = chart.series[0]?.values[i] ?? 0;
199
+ const w = (Math.abs(v) / max) * box.w;
200
+ const color = pick(0);
201
+ parts.push(text(leftGutter - 12, y + rowH / 2 + 4, label, { size: 12, fill: INK.text, anchor: "end" }));
202
+ parts.push(`<rect x="${box.x}" y="${y + 5}" width="${Math.max(2, w).toFixed(1)}" height="${rowH - 12}" rx="3" fill="${color}" opacity="0.85"/>`);
203
+ parts.push(text(box.x + Math.max(2, w) + 8, y + rowH / 2 + 4, formatValue(v, chart.series[0]?.format), { size: 11, fill: INK.muted }));
204
+ });
205
+ parts.push(footnoteLine(chart.footnote, width, height - 12));
206
+ return svgDoc(width, height, parts.join(""));
207
+ }
208
+ // ------------------------------------------------------------------ 环形占比
209
+ function renderDonut(chart, width) {
210
+ const height = 340;
211
+ const cx = 210;
212
+ const cy = 190;
213
+ const r = 104;
214
+ const inner = 62;
215
+ const values = chart.series[0]?.values ?? [];
216
+ const total = values.reduce((a, b) => a + Math.abs(b), 0);
217
+ const parts = [header(chart.title, chart.subtitle, width)];
218
+ const format = chart.series[0]?.format ?? "number";
219
+ if (total === 0) {
220
+ parts.push(`<circle cx="${cx}" cy="${cy}" r="${r}" fill="none" stroke="${INK.grid}" stroke-width="${r - inner}"/>`);
221
+ }
222
+ else if (values.filter((v) => Math.abs(v) > 0).length === 1) {
223
+ parts.push(`<circle cx="${cx}" cy="${cy}" r="${(r + inner) / 2}" fill="none" stroke="${C0}" stroke-width="${r - inner}"/>`);
224
+ }
225
+ else {
226
+ let angle = -Math.PI / 2;
227
+ values.forEach((v, i) => {
228
+ const sweep = (Math.abs(v) / total) * Math.PI * 2;
229
+ const color = pick(i);
230
+ parts.push(donutSlice(cx, cy, r, inner, angle, angle + sweep, color));
231
+ angle += sweep;
232
+ });
233
+ }
234
+ // 序列名(如「GMV·USD」)要画在圆心:多币种时本图只取主币种,
235
+ // 不标出来读者会把它当成全平台合计。
236
+ const seriesName = chart.series[0]?.name?.trim();
237
+ if (seriesName) {
238
+ parts.push(text(cx, cy - 30, seriesName, { size: 11, fill: INK.muted, anchor: "middle" }));
239
+ }
240
+ parts.push(text(cx, cy - 4, formatValue(total, format), { size: 18, weight: 500, fill: INK.title, anchor: "middle" }));
241
+ parts.push(text(cx, cy + 16, "合计", { size: 11, fill: INK.muted, anchor: "middle" }));
242
+ const legendX = 400;
243
+ let ly = PAD.top + 6;
244
+ chart.labels.forEach((label, i) => {
245
+ const v = values[i] ?? 0;
246
+ const share = total === 0 ? 0 : Math.abs(v) / total;
247
+ parts.push(`<rect x="${legendX}" y="${ly - 8}" width="10" height="10" rx="2" fill="${PALETTE[i % PALETTE.length]}"/>`);
248
+ parts.push(text(legendX + 16, ly, label, { size: 12, fill: INK.text }));
249
+ parts.push(text(legendX + 300, ly, `${formatValue(v, format)} ${(share * 100).toFixed(1)}%`, { size: 12, fill: INK.muted, anchor: "end" }));
250
+ ly += 24;
251
+ });
252
+ parts.push(footnoteLine(chart.footnote, width, height - 14));
253
+ return svgDoc(width, height, parts.join(""));
254
+ }
255
+ function donutSlice(cx, cy, r, inner, a0, a1, color) {
256
+ const p = (rad, radius) => `${(cx + Math.cos(rad) * radius).toFixed(2)},${(cy + Math.sin(rad) * radius).toFixed(2)}`;
257
+ const large = a1 - a0 > Math.PI ? 1 : 0;
258
+ return `<path d="M ${p(a0, r)} A ${r} ${r} 0 ${large} 1 ${p(a1, r)} L ${p(a1, inner)} A ${inner} ${inner} 0 ${large} 0 ${p(a0, inner)} Z" fill="${color}"/>`;
259
+ }
260
+ // ------------------------------------------------------------------ 双轴(柱 + 线)
261
+ function renderCombo(chart, width) {
262
+ const height = 360;
263
+ const box = { x: PAD.left, y: PAD.top, w: width - PAD.left - PAD.right - 40, h: height - PAD.top - PAD.bottom };
264
+ const barSeries = chart.series.find((s) => s.kind === "bar") ?? chart.series[0];
265
+ const lineSeries = chart.series.find((s) => s.kind === "line") ?? chart.series[1];
266
+ const barVals = barSeries?.values ?? [];
267
+ const lineVals = lineSeries?.values ?? [];
268
+ const left = niceScale(0, Math.max(0, ...barVals.filter(Number.isFinite)), 5, true);
269
+ const right = niceScale(Math.min(...[0, ...lineVals]), Math.max(0, ...lineVals.filter(Number.isFinite)), 5, lineSeries?.format !== "percent");
270
+ const parts = [header(chart.title, chart.subtitle, width)];
271
+ const spanL = left.max - left.min || 1;
272
+ for (const tick of left.ticks) {
273
+ const y = box.y + box.h - ((tick - left.min) / spanL) * box.h;
274
+ parts.push(`<line x1="${box.x}" y1="${y}" x2="${box.x + box.w}" y2="${y}" stroke="${INK.grid}" stroke-width="1"/>`);
275
+ parts.push(text(box.x - 10, y + 4, formatTick(tick, barSeries?.format ?? "number"), { size: 11, fill: INK.muted, anchor: "end" }));
276
+ }
277
+ const spanR = right.max - right.min || 1;
278
+ for (const tick of right.ticks) {
279
+ const y = box.y + box.h - ((tick - right.min) / spanR) * box.h;
280
+ parts.push(text(box.x + box.w + 10, y + 4, formatTick(tick, lineSeries?.format ?? "number"), { size: 11, fill: C1, anchor: "start" }));
281
+ }
282
+ parts.push(legend(chart.series, PAD.left - 12, 42));
283
+ const n = chart.labels.length;
284
+ const band = box.w / Math.max(1, n);
285
+ const bw = band * 0.42;
286
+ barVals.forEach((v, i) => {
287
+ const h = (Math.max(0, v) / spanL) * box.h;
288
+ const x = box.x + band * i + band / 2 - bw / 2;
289
+ parts.push(`<rect x="${x.toFixed(1)}" y="${(box.y + box.h - h).toFixed(1)}" width="${bw.toFixed(1)}" height="${Math.max(0, h).toFixed(1)}" rx="3" fill="${C0}" opacity="0.85"/>`);
290
+ });
291
+ if (lineVals.length > 0) {
292
+ const pts = lineVals.map((v, i) => {
293
+ const x = box.x + band * i + band / 2;
294
+ const y = box.y + box.h - ((v - right.min) / spanR) * box.h;
295
+ return `${x.toFixed(1)},${y.toFixed(1)}`;
296
+ });
297
+ parts.push(`<polyline points="${pts.join(" ")}" fill="none" stroke="${C1}" stroke-width="2" stroke-linejoin="round"/>`);
298
+ lineVals.forEach((v, i) => {
299
+ const x = box.x + band * i + band / 2;
300
+ const y = box.y + box.h - ((v - right.min) / spanR) * box.h;
301
+ parts.push(`<circle cx="${x.toFixed(1)}" cy="${y.toFixed(1)}" r="2.6" fill="${INK.cardBg}" stroke="${C1}" stroke-width="2"/>`);
302
+ });
303
+ }
304
+ parts.push(xAxis(box, chart.labels));
305
+ parts.push(footnoteLine(chart.footnote, width, height - 14));
306
+ return svgDoc(width, height, parts.join(""));
307
+ }
308
+ // ------------------------------------------------------------------ KPI 卡片
309
+ function renderKpi(chart, width) {
310
+ const cols = Math.min(4, Math.max(1, chart.labels.length));
311
+ const rows = Math.ceil(chart.labels.length / cols);
312
+ const cardW = Math.floor((width - 24) / cols) - 10;
313
+ const cardH = 104;
314
+ const height = PAD.top + rows * (cardH + 12) + 34;
315
+ const values = chart.series[0]?.values ?? [];
316
+ const format = chart.series[0]?.format ?? "number";
317
+ const parts = [header(chart.title, chart.subtitle, width)];
318
+ chart.labels.forEach((label, i) => {
319
+ const col = i % cols;
320
+ const row = Math.floor(i / cols);
321
+ const x = 12 + col * (cardW + 10);
322
+ const y = PAD.top + row * (cardH + 12);
323
+ const v = values[i] ?? 0;
324
+ const itemFormat = chart.formats?.[i] ?? format;
325
+ const d = delta(v, chart.previous?.[i]);
326
+ parts.push(`<rect x="${x}" y="${y}" width="${cardW}" height="${cardH}" rx="10" fill="${INK.cardBg}" stroke="${INK.cardBorder}" stroke-width="1"/>`);
327
+ parts.push(text(x + 16, y + 26, label, { size: 12, fill: INK.muted }));
328
+ parts.push(text(x + 16, y + 62, formatValue(v, itemFormat), { size: 22, weight: 500, fill: INK.title }));
329
+ if (d) {
330
+ parts.push(text(x + 16, y + 86, `${d.text} 环比`, { size: 12, fill: d.color }));
331
+ }
332
+ else {
333
+ parts.push(text(x + 16, y + 86, "无上期对照", { size: 11, fill: INK.axis }));
334
+ }
335
+ });
336
+ parts.push(footnoteLine(chart.footnote, width, height - 12));
337
+ return svgDoc(width, height, parts.join(""));
338
+ }
339
+ /** 图表渲染总入口。空数据统一降级为「暂无数据」卡片。 */
340
+ export function renderChart(chart, width = 880) {
341
+ const hasData = chart.labels.length > 0 && chart.series.some((s) => s.values.some((v) => Number.isFinite(v)));
342
+ if (!hasData && chart.kind !== "kpi") {
343
+ return emptyState(width, 260, chart.title, chart.subtitle);
344
+ }
345
+ switch (chart.kind) {
346
+ case "kpi":
347
+ return renderKpi(chart, width);
348
+ case "line":
349
+ return renderLine(chart, width);
350
+ case "bar":
351
+ return renderBar(chart, width);
352
+ case "hbar":
353
+ return renderHBar(chart, width);
354
+ case "donut":
355
+ return renderDonut(chart, width);
356
+ case "combo":
357
+ return renderCombo(chart, width);
358
+ default:
359
+ return emptyState(width, 260, chart.title, chart.subtitle);
360
+ }
361
+ }
362
+ /** 把 SVG 包成可直接双击打开/打印的独立 HTML。 */
363
+ export function svgToStandaloneHtml(svg, title) {
364
+ return `<!DOCTYPE html>
365
+ <html lang="zh-CN"><head><meta charset="utf-8"><title>${esc(title)}</title>
366
+ <style>body{margin:0;padding:24px;background:#FAFAF8;font-family:-apple-system,'PingFang SC','Microsoft YaHei',sans-serif}
367
+ svg{max-width:100%;height:auto;background:#fff;border-radius:10px}</style></head>
368
+ <body>${svg}</body></html>`;
369
+ }
370
+ export { compact };
371
+ //# sourceMappingURL=svg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.js","sourceRoot":"","sources":["../../src/charts/svg.ts"],"names":[],"mappings":"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"}