kakaotalk-chat-analyzer 0.13.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cli.js +22 -6
- package/dist/src/cli.js.map +1 -1
- package/dist/src/event-spine.d.ts +5 -0
- package/dist/src/event-spine.js +93 -10
- package/dist/src/event-spine.js.map +1 -1
- package/dist/src/report-charts.d.ts +1 -1
- package/dist/src/report-charts.js +89 -25
- package/dist/src/report-charts.js.map +1 -1
- package/dist/src/report-innovation.js +6 -1
- package/dist/src/report-innovation.js.map +1 -1
- package/dist/src/report-styles.d.ts +1 -1
- package/dist/src/report-styles.js +32 -6
- package/dist/src/report-styles.js.map +1 -1
- package/dist/src/report.js +21 -3
- package/dist/src/report.js.map +1 -1
- package/dist/src/story.js +45 -12
- package/dist/src/story.js.map +1 -1
- package/dist/src/topic-map.js +57 -5
- package/dist/src/topic-map.js.map +1 -1
- package/dist/src/types.d.ts +9 -0
- package/dist/src/version.d.ts +2 -2
- package/dist/src/version.js +1 -1
- package/package.json +1 -1
package/dist/src/cli.js
CHANGED
|
@@ -175,19 +175,35 @@ async function generateReport(csv, options) {
|
|
|
175
175
|
semanticKeywords: options.semanticKeywords,
|
|
176
176
|
since: options.since,
|
|
177
177
|
});
|
|
178
|
-
|
|
178
|
+
const parseAggregateMs = Math.round(performance.now() - t0);
|
|
179
|
+
log("parse+aggregate", parseAggregateMs);
|
|
180
|
+
const outDir = resolve(options.outDir);
|
|
181
|
+
const htmlPath = resolve(outDir, "index.html");
|
|
182
|
+
const buildTiming = {
|
|
183
|
+
parseAggregateMs,
|
|
184
|
+
renderHtmlMs: 0,
|
|
185
|
+
writeFileMs: 0,
|
|
186
|
+
totalMs: parseAggregateMs,
|
|
187
|
+
};
|
|
179
188
|
t0 = performance.now();
|
|
180
|
-
|
|
181
|
-
|
|
189
|
+
let html = renderReportHtml({ ...data, buildTiming });
|
|
190
|
+
buildTiming.renderHtmlMs = Math.round(performance.now() - t0);
|
|
191
|
+
log("render HTML", buildTiming.renderHtmlMs);
|
|
182
192
|
if (options.profile) {
|
|
183
193
|
console.error(`[kca] messages: ${data.summary.totalMessages.toLocaleString("ko-KR")}`);
|
|
184
194
|
}
|
|
185
|
-
const outDir = resolve(options.outDir);
|
|
186
|
-
const htmlPath = resolve(outDir, "index.html");
|
|
187
195
|
t0 = performance.now();
|
|
188
196
|
await mkdir(outDir, { recursive: true });
|
|
189
197
|
await writeFile(htmlPath, html, "utf8");
|
|
190
|
-
|
|
198
|
+
buildTiming.writeFileMs = Math.round(performance.now() - t0);
|
|
199
|
+
log("write file", buildTiming.writeFileMs);
|
|
200
|
+
buildTiming.totalMs =
|
|
201
|
+
buildTiming.parseAggregateMs + buildTiming.renderHtmlMs + buildTiming.writeFileMs;
|
|
202
|
+
html = renderReportHtml({ ...data, buildTiming });
|
|
203
|
+
await writeFile(htmlPath, html, "utf8");
|
|
204
|
+
if (options.profile) {
|
|
205
|
+
console.error(`[kca] build total: ${buildTiming.totalMs}ms (aggregate ${buildTiming.parseAggregateMs} · html ${buildTiming.renderHtmlMs} · write ${buildTiming.writeFileMs})`);
|
|
206
|
+
}
|
|
191
207
|
return htmlPath;
|
|
192
208
|
}
|
|
193
209
|
async function readReportHtml(htmlPath) {
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,3 +15,8 @@ export interface BuildEventSpineInput {
|
|
|
15
15
|
}[];
|
|
16
16
|
}
|
|
17
17
|
export declare function buildEventSpine(input: BuildEventSpineInput): ReportTimelineEvent[];
|
|
18
|
+
/** 타임라인 힌트용 활동 범위 */
|
|
19
|
+
export declare function timelineActivityRange(daily: DailyCount[]): {
|
|
20
|
+
first: string;
|
|
21
|
+
last: string;
|
|
22
|
+
} | null;
|
package/dist/src/event-spine.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
const MIN_EVENTS_BEFORE_ENRICH = 8;
|
|
2
|
+
const MAX_EVENTS = 24;
|
|
1
3
|
export function buildEventSpine(input) {
|
|
2
4
|
const events = [];
|
|
3
|
-
for (const b of input.burstDays.slice(0,
|
|
5
|
+
for (const b of input.burstDays.slice(0, 8)) {
|
|
4
6
|
events.push({
|
|
5
7
|
date: b.date,
|
|
6
8
|
kind: "burst",
|
|
@@ -44,8 +46,9 @@ export function buildEventSpine(input) {
|
|
|
44
46
|
});
|
|
45
47
|
}
|
|
46
48
|
for (const r of input.repeatedPhrases.slice(0, 3)) {
|
|
49
|
+
const memeDate = findPhrasePeakDate(input.daily);
|
|
47
50
|
events.push({
|
|
48
|
-
date:
|
|
51
|
+
date: memeDate,
|
|
49
52
|
kind: "meme",
|
|
50
53
|
title: "반복 문구",
|
|
51
54
|
detail: `「${r.label}」 ${r.count}회`,
|
|
@@ -61,19 +64,99 @@ export function buildEventSpine(input) {
|
|
|
61
64
|
metric: pl.hits,
|
|
62
65
|
});
|
|
63
66
|
}
|
|
64
|
-
|
|
67
|
+
let merged = dedupeByDateKind(events);
|
|
68
|
+
if (merged.length < MIN_EVENTS_BEFORE_ENRICH) {
|
|
69
|
+
merged = enrichSparseTimeline(merged, input);
|
|
70
|
+
}
|
|
71
|
+
return merged
|
|
65
72
|
.sort((a, b) => a.date.localeCompare(b.date) || kindOrder(a.kind) - kindOrder(b.kind))
|
|
66
|
-
.slice(0,
|
|
73
|
+
.slice(0, MAX_EVENTS);
|
|
74
|
+
}
|
|
75
|
+
/** 타임라인 힌트용 활동 범위 */
|
|
76
|
+
export function timelineActivityRange(daily) {
|
|
77
|
+
const active = daily.filter((d) => d.count > 0).sort((a, b) => a.date.localeCompare(b.date));
|
|
78
|
+
if (active.length === 0)
|
|
79
|
+
return null;
|
|
80
|
+
return { first: active[0].date, last: active[active.length - 1].date };
|
|
81
|
+
}
|
|
82
|
+
function enrichSparseTimeline(existing, input) {
|
|
83
|
+
const out = [...existing];
|
|
84
|
+
const have = new Set(out.map((e) => `${e.date}\t${e.kind}`));
|
|
85
|
+
const active = input.daily.filter((d) => d.count > 0).sort((a, b) => a.date.localeCompare(b.date));
|
|
86
|
+
if (active.length > 0) {
|
|
87
|
+
const first = active[0];
|
|
88
|
+
const last = active[active.length - 1];
|
|
89
|
+
const milestones = [
|
|
90
|
+
{
|
|
91
|
+
date: first.date,
|
|
92
|
+
kind: "milestone",
|
|
93
|
+
title: "대화 시작",
|
|
94
|
+
detail: `첫 활동일 · ${first.count}건`,
|
|
95
|
+
metric: first.count,
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
date: last.date,
|
|
99
|
+
kind: "milestone",
|
|
100
|
+
title: "최근 활동",
|
|
101
|
+
detail: `마지막 활동일 · ${last.count}건`,
|
|
102
|
+
metric: last.count,
|
|
103
|
+
},
|
|
104
|
+
];
|
|
105
|
+
for (const m of milestones) {
|
|
106
|
+
const key = `${m.date}\tmilestone`;
|
|
107
|
+
if (!have.has(key)) {
|
|
108
|
+
out.push(m);
|
|
109
|
+
have.add(key);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const byMonth = new Map();
|
|
114
|
+
for (const d of active) {
|
|
115
|
+
const ym = d.date.slice(0, 7);
|
|
116
|
+
const cur = byMonth.get(ym);
|
|
117
|
+
if (!cur || d.count > cur.count)
|
|
118
|
+
byMonth.set(ym, d);
|
|
119
|
+
}
|
|
120
|
+
for (const peak of byMonth.values()) {
|
|
121
|
+
const key = `${peak.date}\tpeak`;
|
|
122
|
+
if (have.has(key) || out.some((e) => e.date === peak.date && e.kind === "burst"))
|
|
123
|
+
continue;
|
|
124
|
+
out.push({
|
|
125
|
+
date: peak.date,
|
|
126
|
+
kind: "peak",
|
|
127
|
+
title: "월간 최고 활동",
|
|
128
|
+
detail: `${peak.date.slice(0, 7)} 구간 중 ${peak.count}건`,
|
|
129
|
+
metric: peak.count,
|
|
130
|
+
});
|
|
131
|
+
have.add(key);
|
|
132
|
+
}
|
|
133
|
+
return dedupeByDateKind(out);
|
|
134
|
+
}
|
|
135
|
+
function dedupeByDateKind(events) {
|
|
136
|
+
const best = new Map();
|
|
137
|
+
for (const e of events) {
|
|
138
|
+
const key = `${e.date}\t${e.kind}`;
|
|
139
|
+
const prev = best.get(key);
|
|
140
|
+
if (!prev || (e.metric ?? 0) > (prev.metric ?? 0))
|
|
141
|
+
best.set(key, e);
|
|
142
|
+
}
|
|
143
|
+
return [...best.values()];
|
|
144
|
+
}
|
|
145
|
+
function findPhrasePeakDate(daily) {
|
|
146
|
+
const active = daily.filter((d) => d.count > 0).sort((a, b) => b.count - a.count);
|
|
147
|
+
return active[0]?.date ?? daily[0]?.date ?? "—";
|
|
67
148
|
}
|
|
68
149
|
function kindOrder(kind) {
|
|
69
150
|
const o = {
|
|
151
|
+
milestone: -1,
|
|
70
152
|
burst: 0,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
153
|
+
peak: 1,
|
|
154
|
+
silence: 2,
|
|
155
|
+
room: 3,
|
|
156
|
+
newcomer: 4,
|
|
157
|
+
links: 5,
|
|
158
|
+
plan: 6,
|
|
159
|
+
meme: 7,
|
|
77
160
|
};
|
|
78
161
|
return o[kind] ?? 9;
|
|
79
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-spine.js","sourceRoot":"","sources":["../../src/event-spine.ts"],"names":[],"mappings":"AAiBA,MAAM,UAAU,eAAe,CAAC,KAA2B;IACzD,MAAM,MAAM,GAA0B,EAAE,CAAC;IAEzC,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,gBAAgB;YAClC,MAAM,EAAE,CAAC,CAAC,KAAK;YACf,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACxF,IAAI,aAAa;QAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE9C,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QACxC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,EAAE;gBACrD,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,YAAY,CAAC,CAAC,UAAU,GAAG;gBACnC,MAAM,EAAE,CAAC,CAAC,UAAU;aACrB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,aAAa,CAAC,CAAC,KAAK,GAAG;YAC/B,MAAM,EAAE,CAAC,CAAC,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,
|
|
1
|
+
{"version":3,"file":"event-spine.js","sourceRoot":"","sources":["../../src/event-spine.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,4 +53,4 @@ export declare function serializeChartPayload(data: ReportData): string;
|
|
|
53
53
|
export declare function buildChartPayload(data: ReportData): ChartPayload;
|
|
54
54
|
export declare function serializeExplorerPayload(data: ReportData): string;
|
|
55
55
|
export declare function renderChartDeck(data: ReportData): string;
|
|
56
|
-
export declare const CHARTS_INIT_SCRIPT = "\n (function () {\n function run() {\n var dataEl = document.getElementById(\"kca-chart-data\");\n if (!dataEl) return;\n if (typeof echarts === \"undefined\") return;\n var data;\n try { data = JSON.parse(dataEl.textContent || \"{}\"); } catch (e) { return; }\n\n var dark = document.documentElement.getAttribute(\"data-theme\") === \"dark\" ||\n (!document.documentElement.getAttribute(\"data-theme\") &&\n window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches);\n var text = dark ? \"#e9eef5\" : \"#141a1f\";\n var muted = dark ? \"#8b98a8\" : \"#5c6670\";\n var accent = dark ? \"#3ee8c5\" : \"#0f6b5c\";\n var accent2 = dark ? \"#818cf8\" : \"#4f46e5\";\n\n function baseOpt() {\n return {\n textStyle: { color: text, fontFamily: \"Pretendard, Apple SD Gothic Neo, sans-serif\" },\n tooltip: { trigger: \"axis\", backgroundColor: dark ? \"#1c2128\" : \"#fff\", borderColor: \"transparent\" },\n };\n }\n\n var charts = [];\n function resizeAll() {\n charts.forEach(function (c) {\n try { c.resize(); } catch (e) {}\n });\n }\n function layout(el) {\n var w = (el && el.clientWidth) || 400;\n if (w < 380) {\n return { w: w, left: 28, right: 8, top: 14, bottom: 44, fs: 9, rot: 40, leftCat: 56, bottomRot: 42 };\n }\n if (w < 640) {\n return { w: w, left: 40, right: 10, top: 18, bottom: 34, fs: 10, rot: 26, leftCat: 72, bottomRot: 32 };\n }\n return { w: w, left: 48, right: 14, top: 22, bottom: 28, fs: 11, rot: 0, leftCat: 96, bottomRot: 28 };\n }\n function init(id, opt) {\n var el = document.getElementById(id);\n if (!el) return null;\n try {\n var chart = echarts.init(el, null, { renderer: \"canvas\" });\n chart.setOption(opt);\n charts.push(chart);\n if (typeof ResizeObserver !== \"undefined\") {\n var ro = new ResizeObserver(function () {\n requestAnimationFrame(function () {\n try { chart.resize(); } catch (e) {}\n });\n });\n ro.observe(el);\n }\n return chart;\n } catch (err) {\n console.error(\"[kca-chart]\", id, err);\n el.setAttribute(\"data-chart-failed\", \"1\");\n el.innerHTML = '<p style=\"margin:0;padding:12px;font-size:12px;color:var(--muted);text-align:center\">\uCC28\uD2B8\uB97C \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC5B4\uC694. \uC0C8\uB85C\uACE0\uCE68\uD558\uAC70\uB098 \uB124\uD2B8\uC6CC\uD06C(CDN)\uB97C \uD655\uC778\uD574 \uC8FC\uC138\uC694.</p>';\n return null;\n }\n }\n var mqWide = window.matchMedia && window.matchMedia(\"(min-width: 900px)\");\n if (mqWide && mqWide.addEventListener) {\n mqWide.addEventListener(\"change\", function () { setTimeout(resizeAll, 80); });\n } else if (mqWide && mqWide.addListener) {\n mqWide.addListener(function () { setTimeout(resizeAll, 80); });\n }\n var themeObs = new MutationObserver(function () { setTimeout(resizeAll, 60); });\n themeObs.observe(document.documentElement, { attributes: true, attributeFilter: [\"data-theme\"] });\n\n if (data.hourly && document.getElementById(\"chart-hours\")) {\n var hoursEl = document.getElementById(\"chart-hours\");\n var hg = layout(hoursEl);\n init(\"chart-hours\", Object.assign(baseOpt(), {\n grid: { left: hg.left, right: hg.right, top: hg.top, bottom: hg.bottom },\n xAxis: { type: \"category\", data: data.hourly.map(function (_, h) { return h + \"\uC2DC\"; }), axisLabel: { color: muted, fontSize: hg.fs, rotate: hg.rot } },\n yAxis: { type: \"value\", axisLabel: { color: muted }, splitLine: { lineStyle: { color: dark ? \"rgba(255,255,255,0.06)\" : \"rgba(0,0,0,0.06)\" } } },\n series: [{\n type: \"bar\",\n data: data.hourly,\n itemStyle: {\n borderRadius: [4, 4, 0, 0],\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\n { offset: 0, color: accent },\n { offset: 1, color: accent2 },\n ]),\n },\n }],\n }));\n }\n\n if (data.weekdays && document.getElementById(\"chart-weekday\")) {\n var wdEl = document.getElementById(\"chart-weekday\");\n var wg = layout(wdEl);\n init(\"chart-weekday\", Object.assign(baseOpt(), {\n grid: { left: wg.leftCat, right: wg.right, top: wg.top, bottom: wg.bottom },\n xAxis: { type: \"value\", axisLabel: { color: muted, fontSize: wg.fs } },\n yAxis: { type: \"category\", data: data.weekdays.map(function (w) { return w.label; }), axisLabel: { color: muted, fontSize: wg.fs } },\n series: [{ type: \"bar\", data: data.weekdays.map(function (w) { return w.count; }), itemStyle: { color: accent, borderRadius: [0, 6, 6, 0] } }],\n }));\n }\n\n if (data.monthly && document.getElementById(\"chart-monthly\")) {\n var moEl = document.getElementById(\"chart-monthly\");\n var mg = layout(moEl);\n init(\"chart-monthly\", Object.assign(baseOpt(), {\n grid: { left: mg.left, right: mg.right, top: mg.top, bottom: mg.bottom },\n xAxis: { type: \"category\", data: data.monthly.map(function (m) { return m.label; }), axisLabel: { color: muted, fontSize: mg.fs, rotate: mg.bottomRot } },\n yAxis: { type: \"value\", axisLabel: { color: muted, fontSize: mg.fs }, splitLine: { lineStyle: { color: dark ? \"rgba(255,255,255,0.06)\" : \"rgba(0,0,0,0.06)\" } } },\n series: [{ type: \"line\", smooth: true, data: data.monthly.map(function (m) { return m.count; }), areaStyle: { opacity: 0.12 }, lineStyle: { width: 2, color: accent2 }, itemStyle: { color: accent2 } }],\n }));\n }\n\n if (data.daily && document.getElementById(\"chart-daily-heat\")) {\n var heatEl = document.getElementById(\"chart-daily-heat\");\n var dg = layout(heatEl);\n var cellH = dg.w < 380 ? 9 : dg.w < 640 ? 11 : 14;\n var heat = data.daily.map(function (d) { return [d.date, d.count]; });\n init(\"chart-daily-heat\", Object.assign(baseOpt(), {\n tooltip: { position: \"top\" },\n visualMap: { min: 0, max: Math.max.apply(null, data.daily.map(function (d) { return d.count; })), calculable: true, orient: \"horizontal\", left: \"center\", bottom: 0, textStyle: { color: muted, fontSize: dg.fs }, itemWidth: dg.w < 380 ? 10 : 14, itemHeight: dg.w < 380 ? 60 : 80, inRange: { color: dark ? [\"#161b22\", \"#0e4429\", \"#006d32\", \"#26a641\", \"#39d353\"] : [\"#ebedf0\", \"#9be9a8\", \"#40c463\", \"#30a14e\", \"#216e39\"] } },\n calendar: { top: dg.w < 380 ? 28 : 36, left: dg.left, right: dg.right, cellSize: [\"auto\", cellH], range: data.daily.length ? [data.daily[0].date, data.daily[data.daily.length - 1].date] : undefined, itemStyle: { borderWidth: 0.5, borderColor: dark ? \"#30363d\" : \"#fff\" }, dayLabel: { color: muted, fontSize: dg.fs }, monthLabel: { color: muted, fontSize: dg.fs } },\n series: [{ type: \"heatmap\", coordinateSystem: \"calendar\", data: heat }],\n }));\n }\n\n if (data.keywords && document.getElementById(\"chart-kw-bar\")) {\n var kwEl = document.getElementById(\"chart-kw-bar\");\n var kg = layout(kwEl);\n var topBar = data.keywords.slice(0, kg.w < 380 ? 24 : 80);\n init(\"chart-kw-bar\", Object.assign(baseOpt(), {\n grid: { left: kg.leftCat, right: kg.right, top: kg.top, bottom: kg.bottom },\n xAxis: { type: \"value\", axisLabel: { color: muted, fontSize: kg.fs } },\n yAxis: { type: \"category\", data: topBar.map(function (k) { return k.label; }).reverse(), axisLabel: { color: text, fontSize: kg.fs } },\n series: [{ type: \"bar\", data: topBar.map(function (k) { return k.count; }).reverse(), itemStyle: { color: accent2, borderRadius: [0, 4, 4, 0] } }],\n }));\n }\n\n if (data.keywords && document.getElementById(\"chart-kw-cloud\")) {\n var cloudEl = document.getElementById(\"chart-kw-cloud\");\n var cg = layout(cloudEl);\n var cloud = data.keywords.slice(0, 100).map(function (k) {\n return { name: k.label, value: k.count };\n });\n var sizeLo = cg.w < 380 ? 10 : 12;\n var sizeHi = cg.w < 380 ? 34 : cg.w < 640 ? 46 : 56;\n init(\"chart-kw-cloud\", {\n textStyle: baseOpt().textStyle,\n tooltip: { show: true },\n series: [{\n type: \"wordCloud\",\n shape: \"circle\",\n gridSize: cg.w < 380 ? 8 : 6,\n sizeRange: [sizeLo, sizeHi],\n rotationRange: [-45, 45],\n textStyle: {\n fontFamily: \"Pretendard, Apple SD Gothic Neo, sans-serif\",\n color: function () {\n var palette = dark ? [\"#3ee8c5\", \"#818cf8\", \"#fbbf24\", \"#fb923c\", \"#f472b6\"] : [\"#0f6b5c\", \"#4f46e5\", \"#b8860b\", \"#c45c2a\", \"#be185d\"];\n return palette[Math.floor(Math.random() * palette.length)];\n },\n },\n data: cloud,\n }],\n });\n }\n\n if (data.participants && document.getElementById(\"chart-participants\")) {\n var pieEl = document.getElementById(\"chart-participants\");\n var pg = layout(pieEl);\n var p = data.participants.slice(0, pg.w < 380 ? 8 : 16);\n var pieR = pg.w < 380 ? [\"46%\", \"72%\"] : [\"42%\", \"70%\"];\n init(\"chart-participants\", Object.assign(baseOpt(), {\n tooltip: { trigger: \"item\" },\n series: [{\n type: \"pie\",\n radius: pieR,\n data: p.map(function (x) { return { name: x.alias, value: x.messages }; }),\n label: { color: text, fontSize: pg.fs },\n itemStyle: { borderRadius: 4, borderColor: dark ? \"#0d1117\" : \"#fff\", borderWidth: 2 },\n }],\n }));\n }\n\n if (data.topics && data.topics.length && document.getElementById(\"chart-topics\")) {\n var topEl = document.getElementById(\"chart-topics\");\n var tg = layout(topEl);\n var topics = data.topics.slice(0, 8);\n init(\"chart-topics\", Object.assign(baseOpt(), {\n grid: { left: Math.max(tg.leftCat, tg.w < 380 ? 72 : 96), right: tg.right, top: tg.top, bottom: tg.bottom },\n xAxis: { type: \"value\", axisLabel: { color: muted, fontSize: tg.fs, formatter: \"{value}%\" } },\n yAxis: {\n type: \"category\",\n data: topics.map(function (t) { return t.title; }).reverse(),\n axisLabel: { color: text, fontSize: tg.fs },\n },\n series: [{\n type: \"bar\",\n data: topics.map(function (t) { return t.messagePercent; }).reverse(),\n itemStyle: {\n borderRadius: [0, 6, 6, 0],\n color: function (p) { return p.dataIndex % 2 === 0 ? accent : accent2; },\n },\n }],\n }));\n }\n\n if (data.domains && document.getElementById(\"chart-domains\")) {\n init(\"chart-domains\", Object.assign(baseOpt(), {\n tooltip: { trigger: \"item\" },\n series: [{\n type: \"treemap\",\n data: data.domains.map(function (d) { return { name: d.label, value: d.count }; }),\n label: { color: text, fontSize: 11 },\n itemStyle: { borderColor: dark ? \"#0d1117\" : \"#fff\", gapWidth: 2 },\n }],\n }));\n }\n\n if (data.interaction && data.interaction.aliases.length && document.getElementById(\"chart-dyad\")) {\n var ix = data.interaction;\n var heat = [];\n var maxV = 1;\n for (var ri = 0; ri < ix.matrix.length; ri += 1) {\n for (var ci = 0; ci < ix.matrix[ri].length; ci += 1) {\n var v = ix.matrix[ri][ci];\n if (v > maxV) maxV = v;\n if (v > 0) heat.push([ci, ri, v]);\n }\n }\n var dyEl = document.getElementById(\"chart-dyad\");\n var dg = layout(dyEl);\n init(\"chart-dyad\", Object.assign(baseOpt(), {\n tooltip: { position: \"top\" },\n grid: { left: Math.max(dg.leftCat, 72), right: dg.right, top: dg.top, bottom: 56 },\n xAxis: { type: \"category\", data: ix.aliases, axisLabel: { color: muted, fontSize: dg.fs, rotate: 32 }, splitArea: { show: true } },\n yAxis: { type: \"category\", data: ix.aliases, axisLabel: { color: muted, fontSize: dg.fs }, splitArea: { show: true } },\n visualMap: { min: 0, max: maxV, calculable: true, orient: \"horizontal\", left: \"center\", bottom: 4, inRange: { color: [dark ? \"#0d1117\" : \"#f0f4f8\", accent, accent2] } },\n series: [{ type: \"heatmap\", data: heat, emphasis: { itemStyle: { shadowBlur: 12, shadowColor: \"rgba(0,0,0,0.35)\" } } }],\n }));\n }\n requestAnimationFrame(resizeAll);\n setTimeout(resizeAll, 150);\n window.addEventListener(\"resize\", resizeAll);\n window.addEventListener(\"load\", resizeAll);\n }\n function whenVisible() {\n var anchor = document.getElementById(\"s-viz\") || document.querySelector(\".chart-box\");\n if (!anchor || typeof IntersectionObserver === \"undefined\") {\n run();\n return;\n }\n var started = false;\n var io = new IntersectionObserver(function (entries) {\n if (started) return;\n if (entries.some(function (e) { return e.isIntersecting; })) {\n started = true;\n io.disconnect();\n run();\n }\n }, { rootMargin: \"280px 0px\", threshold: 0.01 });\n io.observe(anchor);\n setTimeout(function () {\n if (started) return;\n var r = anchor.getBoundingClientRect();\n if (r.top < window.innerHeight + 320) {\n started = true;\n io.disconnect();\n run();\n }\n }, 200);\n }\n function bootCharts() {\n if (typeof echarts === \"undefined\") return false;\n whenVisible();\n return true;\n }\n if (!bootCharts()) {\n window.addEventListener(\"load\", function () {\n var tries = 0;\n (function wait() {\n if (bootCharts()) return;\n if (++tries > 120) {\n document.querySelectorAll(\".chart-box\").forEach(function (el) {\n if (!el.querySelector(\"canvas\")) {\n el.innerHTML = '<p style=\"margin:0;padding:12px;font-size:12px;color:var(--muted);text-align:center\">ECharts CDN\uC744 \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.</p>';\n }\n });\n return;\n }\n setTimeout(wait, 50);\n })();\n });\n }\n })();\n";
|
|
56
|
+
export declare const CHARTS_INIT_SCRIPT = "\n (function () {\n function run() {\n var dataEl = document.getElementById(\"kca-chart-data\");\n if (!dataEl) return;\n if (typeof echarts === \"undefined\") return;\n var data;\n try { data = JSON.parse(dataEl.textContent || \"{}\"); } catch (e) { return; }\n\n var dark = document.documentElement.getAttribute(\"data-theme\") === \"dark\" ||\n (!document.documentElement.getAttribute(\"data-theme\") &&\n window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches);\n var text = dark ? \"#e9eef5\" : \"#141a1f\";\n var muted = dark ? \"#8b98a8\" : \"#5c6670\";\n var accent = dark ? \"#3ee8c5\" : \"#0f6b5c\";\n var accent2 = dark ? \"#818cf8\" : \"#4f46e5\";\n\n function baseOpt() {\n return {\n textStyle: { color: text, fontFamily: \"Pretendard, Apple SD Gothic Neo, sans-serif\" },\n tooltip: { trigger: \"axis\", backgroundColor: dark ? \"#1c2128\" : \"#fff\", borderColor: \"transparent\" },\n };\n }\n\n var charts = [];\n function resizeAll() {\n charts.forEach(function (c) {\n try { c.resize(); } catch (e) {}\n });\n }\n function layout(el) {\n var w = (el && el.clientWidth) || 400;\n if (w < 380) {\n return { w: w, left: 28, right: 8, top: 14, bottom: 44, fs: 9, rot: 40, leftCat: 56, bottomRot: 42 };\n }\n if (w < 640) {\n return { w: w, left: 40, right: 10, top: 18, bottom: 34, fs: 10, rot: 26, leftCat: 72, bottomRot: 32 };\n }\n return { w: w, left: 48, right: 14, top: 22, bottom: 28, fs: 11, rot: 0, leftCat: 96, bottomRot: 28 };\n }\n function init(id, opt) {\n var el = document.getElementById(id);\n if (!el) return null;\n try {\n var chart = echarts.init(el, null, { renderer: \"canvas\" });\n chart.setOption(opt);\n charts.push(chart);\n if (typeof ResizeObserver !== \"undefined\") {\n var ro = new ResizeObserver(function () {\n requestAnimationFrame(function () {\n try { chart.resize(); } catch (e) {}\n });\n });\n ro.observe(el);\n }\n return chart;\n } catch (err) {\n console.error(\"[kca-chart]\", id, err);\n el.setAttribute(\"data-chart-failed\", \"1\");\n el.innerHTML = '<p style=\"margin:0;padding:12px;font-size:12px;color:var(--muted);text-align:center\">\uCC28\uD2B8\uB97C \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC5B4\uC694. \uC0C8\uB85C\uACE0\uCE68\uD558\uAC70\uB098 \uB124\uD2B8\uC6CC\uD06C(CDN)\uB97C \uD655\uC778\uD574 \uC8FC\uC138\uC694.</p>';\n return null;\n }\n }\n var mqWide = window.matchMedia && window.matchMedia(\"(min-width: 900px)\");\n if (mqWide && mqWide.addEventListener) {\n mqWide.addEventListener(\"change\", function () { setTimeout(resizeAll, 80); });\n } else if (mqWide && mqWide.addListener) {\n mqWide.addListener(function () { setTimeout(resizeAll, 80); });\n }\n var themeObs = new MutationObserver(function () { setTimeout(resizeAll, 60); });\n themeObs.observe(document.documentElement, { attributes: true, attributeFilter: [\"data-theme\"] });\n\n function hourBarColor(h) {\n if (h <= 5) return dark ? \"#6366f1\" : \"#4f46e5\";\n if (h <= 11) return dark ? \"#3ee8c5\" : \"#0f6b5c\";\n if (h <= 17) return dark ? \"#fbbf24\" : \"#d97706\";\n return dark ? \"#3b82f6\" : \"#1d4ed8\";\n }\n if (data.hourly && document.getElementById(\"chart-hours\")) {\n var hoursEl = document.getElementById(\"chart-hours\");\n var hg = layout(hoursEl);\n init(\"chart-hours\", Object.assign(baseOpt(), {\n grid: { left: hg.left, right: hg.right, top: hg.top, bottom: hg.bottom },\n xAxis: { type: \"category\", data: data.hourly.map(function (_, h) { return h + \"\uC2DC\"; }), axisLabel: { color: muted, fontSize: hg.fs, rotate: hg.rot } },\n yAxis: { type: \"value\", axisLabel: { color: muted }, splitLine: { lineStyle: { color: dark ? \"rgba(255,255,255,0.06)\" : \"rgba(0,0,0,0.06)\" } } },\n series: [{\n type: \"bar\",\n data: data.hourly.map(function (v, h) {\n return { value: v, itemStyle: { color: hourBarColor(h), borderRadius: [4, 4, 0, 0] } };\n }),\n markArea: {\n silent: true,\n itemStyle: { color: dark ? \"rgba(99,102,241,0.12)\" : \"rgba(79,70,229,0.08)\" },\n data: [[{ xAxis: \"0\uC2DC\" }, { xAxis: \"5\uC2DC\" }], [{ xAxis: \"22\uC2DC\" }, { xAxis: \"23\uC2DC\" }]],\n },\n }],\n }));\n }\n\n if (data.weekdays && document.getElementById(\"chart-weekday\")) {\n var wdEl = document.getElementById(\"chart-weekday\");\n var wg = layout(wdEl);\n init(\"chart-weekday\", Object.assign(baseOpt(), {\n grid: { left: wg.leftCat, right: wg.right, top: wg.top, bottom: wg.bottom },\n xAxis: { type: \"value\", axisLabel: { color: muted, fontSize: wg.fs } },\n yAxis: { type: \"category\", data: data.weekdays.map(function (w) { return w.label; }), axisLabel: { color: muted, fontSize: wg.fs } },\n series: [{ type: \"bar\", data: data.weekdays.map(function (w) { return w.count; }), itemStyle: { color: accent, borderRadius: [0, 6, 6, 0] } }],\n }));\n }\n\n if (data.monthly && document.getElementById(\"chart-monthly\")) {\n var moEl = document.getElementById(\"chart-monthly\");\n var mg = layout(moEl);\n init(\"chart-monthly\", Object.assign(baseOpt(), {\n grid: { left: mg.left, right: mg.right, top: mg.top, bottom: mg.bottom },\n xAxis: { type: \"category\", data: data.monthly.map(function (m) { return m.label; }), axisLabel: { color: muted, fontSize: mg.fs, rotate: mg.bottomRot } },\n yAxis: { type: \"value\", axisLabel: { color: muted, fontSize: mg.fs }, splitLine: { lineStyle: { color: dark ? \"rgba(255,255,255,0.06)\" : \"rgba(0,0,0,0.06)\" } } },\n series: [{ type: \"line\", smooth: true, data: data.monthly.map(function (m) { return m.count; }), areaStyle: { opacity: 0.12 }, lineStyle: { width: 2, color: accent2 }, itemStyle: { color: accent2 } }],\n }));\n }\n\n if (data.daily && document.getElementById(\"chart-daily-heat\")) {\n var heatEl = document.getElementById(\"chart-daily-heat\");\n var dg = layout(heatEl);\n var heatMax = Math.max.apply(null, data.daily.map(function (d) { return d.count; }).concat([1]));\n var heat = data.daily.map(function (d) { return [d.date, d.count]; });\n var burstSet = {};\n (data.burstDates || []).forEach(function (d) { burstSet[d] = true; });\n var daySpan = data.daily.length;\n var useBarFallback = daySpan > 0 && daySpan < 90;\n if (useBarFallback) {\n var labels = data.daily.map(function (d) {\n var p = d.date.split(\"-\");\n return p.length === 3 ? Number(p[1]) + \"/\" + Number(p[2]) : d.date;\n });\n init(\"chart-daily-heat\", Object.assign(baseOpt(), {\n grid: { left: dg.left, right: dg.right, top: dg.top, bottom: Math.max(dg.bottom, 52), containLabel: true },\n tooltip: { trigger: \"axis\" },\n xAxis: { type: \"category\", data: labels, axisLabel: { color: muted, fontSize: dg.fs, rotate: labels.length > 20 ? 40 : 0, interval: labels.length > 40 ? Math.floor(labels.length / 20) : 0 } },\n yAxis: { type: \"value\", axisLabel: { color: muted }, splitLine: { lineStyle: { color: dark ? \"rgba(255,255,255,0.06)\" : \"rgba(0,0,0,0.06)\" } } },\n visualMap: { show: false, min: 0, max: heatMax, inRange: { color: dark ? [\"#161b22\", \"#0e4429\", \"#006d32\", \"#26a641\", \"#39d353\"] : [\"#ebedf0\", \"#9be9a8\", \"#40c463\", \"#30a14e\", \"#216e39\"] } },\n series: [{\n type: \"bar\",\n data: data.daily.map(function (d) { return d.count; }),\n itemStyle: { borderRadius: [3, 3, 0, 0], borderWidth: 0 },\n emphasis: { itemStyle: { shadowBlur: 10, shadowColor: dark ? \"rgba(62,232,197,0.45)\" : \"rgba(15,107,92,0.35)\" } },\n }],\n }));\n } else {\n var cellH = dg.w < 380 ? 12 : dg.w < 640 ? 14 : 16;\n var cellW = dg.w < 380 ? 12 : 14;\n init(\"chart-daily-heat\", Object.assign(baseOpt(), {\n tooltip: { position: \"top\" },\n visualMap: { min: 0, max: heatMax, calculable: true, orient: \"horizontal\", left: \"center\", bottom: 0, textStyle: { color: muted, fontSize: dg.fs }, itemWidth: dg.w < 380 ? 10 : 14, itemHeight: dg.w < 380 ? 60 : 80, inRange: { color: dark ? [\"#161b22\", \"#0e4429\", \"#006d32\", \"#26a641\", \"#39d353\"] : [\"#ebedf0\", \"#9be9a8\", \"#40c463\", \"#30a14e\", \"#216e39\"] } },\n calendar: { top: dg.w < 380 ? 28 : 36, left: dg.left, right: dg.right, cellSize: [cellW, cellH], range: data.daily.length ? [data.daily[0].date, data.daily[data.daily.length - 1].date] : undefined, itemStyle: { borderWidth: 0, borderColor: \"transparent\" }, dayLabel: { color: muted, fontSize: dg.fs }, monthLabel: { color: muted, fontSize: dg.fs } },\n series: [{ type: \"heatmap\", coordinateSystem: \"calendar\", data: heat, emphasis: { itemStyle: { shadowBlur: 8, shadowColor: dark ? \"rgba(62,232,197,0.5)\" : \"rgba(33,110,57,0.45)\" } } }],\n }));\n }\n }\n\n if (data.keywords && document.getElementById(\"chart-kw-bar\")) {\n var kwEl = document.getElementById(\"chart-kw-bar\");\n var kg = layout(kwEl);\n var topBar = data.keywords.slice(0, kg.w < 380 ? 24 : 80);\n var maxLabelLen = 0;\n topBar.forEach(function (k) { if (k.label.length > maxLabelLen) maxLabelLen = k.label.length; });\n var kwLeft = Math.max(kg.leftCat, Math.min(kg.w * 0.42, 24 + maxLabelLen * (kg.fs + 1)));\n init(\"chart-kw-bar\", Object.assign(baseOpt(), {\n grid: { left: kwLeft, right: kg.right, top: kg.top, bottom: kg.bottom, containLabel: true },\n xAxis: { type: \"value\", axisLabel: { color: muted, fontSize: kg.fs } },\n yAxis: { type: \"category\", data: topBar.map(function (k) { return k.label; }).reverse(), axisLabel: { color: text, fontSize: kg.fs, width: kwLeft - 12, overflow: \"truncate\" } },\n series: [{ type: \"bar\", data: topBar.map(function (k) { return k.count; }).reverse(), itemStyle: { color: accent2, borderRadius: [0, 4, 4, 0] }, label: { show: true, position: \"right\", color: muted, fontSize: kg.fs, formatter: function (p) { return p.value; } } }],\n }));\n }\n\n if (data.keywords && document.getElementById(\"chart-kw-cloud\")) {\n var cloudEl = document.getElementById(\"chart-kw-cloud\");\n var cg = layout(cloudEl);\n var cloud = data.keywords.slice(0, 100).map(function (k) {\n return { name: k.label, value: k.count };\n });\n var sizeLo = cg.w < 380 ? 10 : 12;\n var sizeHi = cg.w < 380 ? 34 : cg.w < 640 ? 46 : 56;\n init(\"chart-kw-cloud\", {\n textStyle: baseOpt().textStyle,\n tooltip: { show: true },\n series: [{\n type: \"wordCloud\",\n shape: \"circle\",\n gridSize: cg.w < 380 ? 8 : 6,\n sizeRange: [sizeLo, sizeHi],\n rotationRange: [-45, 45],\n textStyle: {\n fontFamily: \"Pretendard, Apple SD Gothic Neo, sans-serif\",\n color: function () {\n var palette = dark ? [\"#3ee8c5\", \"#818cf8\", \"#fbbf24\", \"#fb923c\", \"#f472b6\"] : [\"#0f6b5c\", \"#4f46e5\", \"#b8860b\", \"#c45c2a\", \"#be185d\"];\n return palette[Math.floor(Math.random() * palette.length)];\n },\n },\n data: cloud,\n }],\n });\n }\n\n if (data.participants && document.getElementById(\"chart-participants\")) {\n var pieEl = document.getElementById(\"chart-participants\");\n var pg = layout(pieEl);\n var topN = 10;\n var ranked = data.participants.slice().sort(function (a, b) { return b.messages - a.messages; });\n var topSlice = ranked.slice(0, topN);\n var otherSum = ranked.slice(topN).reduce(function (s, x) { return s + x.messages; }, 0);\n var pieData = topSlice.map(function (x) { return { name: x.alias, value: x.messages }; });\n if (otherSum > 0) pieData.push({ name: \"\uAE30\uD0C0\", value: otherSum });\n var pieR = pg.w < 380 ? [\"40%\", \"68%\"] : [\"38%\", \"66%\"];\n init(\"chart-participants\", Object.assign(baseOpt(), {\n tooltip: { trigger: \"item\", formatter: \"{b}: {c} ({d}%)\" },\n legend: { show: false },\n series: [{\n type: \"pie\",\n radius: pieR,\n center: [\"50%\", \"48%\"],\n avoidLabelOverlap: true,\n minShowLabelAngle: 10,\n data: pieData,\n label: {\n show: true,\n position: \"outside\",\n color: text,\n fontSize: pg.fs,\n formatter: function (params) {\n var n = params.name || \"\";\n return n.length > 8 ? n.slice(0, 7) + \"\u2026\" : n;\n },\n },\n labelLine: { show: true, length: 8, length2: 6, lineStyle: { color: muted } },\n itemStyle: { borderRadius: 4, borderWidth: 0 },\n }],\n }));\n }\n\n if (data.topics && data.topics.length && document.getElementById(\"chart-topics\")) {\n var topEl = document.getElementById(\"chart-topics\");\n var tg = layout(topEl);\n var topics = data.topics.slice(0, 8);\n init(\"chart-topics\", Object.assign(baseOpt(), {\n grid: { left: Math.max(tg.leftCat, tg.w < 380 ? 72 : 96), right: tg.right, top: tg.top, bottom: tg.bottom },\n xAxis: { type: \"value\", axisLabel: { color: muted, fontSize: tg.fs, formatter: \"{value}%\" } },\n yAxis: {\n type: \"category\",\n data: topics.map(function (t) { return t.title; }).reverse(),\n axisLabel: { color: text, fontSize: tg.fs },\n },\n series: [{\n type: \"bar\",\n data: topics.map(function (t) { return t.messagePercent; }).reverse(),\n itemStyle: {\n borderRadius: [0, 6, 6, 0],\n color: function (p) { return p.dataIndex % 2 === 0 ? accent : accent2; },\n },\n }],\n }));\n }\n\n if (data.domains && document.getElementById(\"chart-domains\")) {\n init(\"chart-domains\", Object.assign(baseOpt(), {\n tooltip: { trigger: \"item\" },\n series: [{\n type: \"treemap\",\n data: data.domains.map(function (d) { return { name: d.label, value: d.count }; }),\n label: { color: text, fontSize: 11 },\n itemStyle: { borderColor: dark ? \"#0d1117\" : \"#fff\", gapWidth: 2 },\n }],\n }));\n }\n\n if (data.interaction && data.interaction.aliases.length && document.getElementById(\"chart-dyad\")) {\n var ix = data.interaction;\n var heat = [];\n var maxV = 1;\n for (var ri = 0; ri < ix.matrix.length; ri += 1) {\n for (var ci = 0; ci < ix.matrix[ri].length; ci += 1) {\n var v = ix.matrix[ri][ci];\n if (v > maxV) maxV = v;\n if (v > 0) heat.push([ci, ri, v]);\n }\n }\n var dyEl = document.getElementById(\"chart-dyad\");\n var dg = layout(dyEl);\n init(\"chart-dyad\", Object.assign(baseOpt(), {\n tooltip: { position: \"top\" },\n grid: { left: Math.max(dg.leftCat, 72), right: dg.right, top: dg.top, bottom: 56 },\n xAxis: { type: \"category\", data: ix.aliases, axisLabel: { color: muted, fontSize: dg.fs, rotate: 32 }, splitArea: { show: true } },\n yAxis: { type: \"category\", data: ix.aliases, axisLabel: { color: muted, fontSize: dg.fs }, splitArea: { show: true } },\n visualMap: { min: 0, max: maxV, calculable: true, orient: \"horizontal\", left: \"center\", bottom: 4, inRange: { color: [dark ? \"#0d1117\" : \"#f0f4f8\", accent, accent2] } },\n series: [{ type: \"heatmap\", data: heat, emphasis: { itemStyle: { shadowBlur: 12, shadowColor: \"rgba(0,0,0,0.35)\" } } }],\n }));\n }\n requestAnimationFrame(resizeAll);\n setTimeout(resizeAll, 150);\n window.addEventListener(\"resize\", resizeAll);\n window.addEventListener(\"load\", resizeAll);\n }\n function whenVisible() {\n var anchor = document.getElementById(\"s-viz\") || document.querySelector(\".chart-box\");\n if (!anchor || typeof IntersectionObserver === \"undefined\") {\n run();\n return;\n }\n var started = false;\n var io = new IntersectionObserver(function (entries) {\n if (started) return;\n if (entries.some(function (e) { return e.isIntersecting; })) {\n started = true;\n io.disconnect();\n run();\n }\n }, { rootMargin: \"480px 0px\", threshold: 0.01 });\n io.observe(anchor);\n setTimeout(function () {\n if (started) return;\n var r = anchor.getBoundingClientRect();\n if (r.top < window.innerHeight + 320) {\n started = true;\n io.disconnect();\n run();\n }\n }, 200);\n }\n function bootCharts() {\n if (typeof echarts === \"undefined\") return false;\n whenVisible();\n return true;\n }\n if (!bootCharts()) {\n window.addEventListener(\"load\", function () {\n var tries = 0;\n (function wait() {\n if (bootCharts()) return;\n if (++tries > 120) {\n document.querySelectorAll(\".chart-box\").forEach(function (el) {\n if (!el.querySelector(\"canvas\")) {\n el.innerHTML = '<p style=\"margin:0;padding:12px;font-size:12px;color:var(--muted);text-align:center\">ECharts CDN\uC744 \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.</p>';\n }\n });\n return;\n }\n setTimeout(wait, 50);\n })();\n });\n }\n })();\n";
|
|
@@ -99,8 +99,9 @@ export function renderChartDeck(data) {
|
|
|
99
99
|
</article>
|
|
100
100
|
<article class="viz-card span-6">
|
|
101
101
|
<h3>참여자 상위</h3>
|
|
102
|
-
<p class="viz-hint">전체 ${formatNumber(data.participants.length)}명
|
|
102
|
+
<p class="viz-hint">전체 ${formatNumber(data.participants.length)}명 · 도넛 상위 10명 + 기타</p>
|
|
103
103
|
<div id="chart-participants" class="chart-box" role="img" aria-label="참여자 차트"></div>
|
|
104
|
+
${renderParticipantLegend(data.participants)}
|
|
104
105
|
</article>
|
|
105
106
|
<article class="viz-card span-6">
|
|
106
107
|
<h3>공유 도메인</h3>
|
|
@@ -111,6 +112,15 @@ export function renderChartDeck(data) {
|
|
|
111
112
|
</div>
|
|
112
113
|
${showLegacyDaily ? "" : "<!-- legacy daily heatmap omitted when story calendar exists -->"}`;
|
|
113
114
|
}
|
|
115
|
+
function renderParticipantLegend(participants) {
|
|
116
|
+
if (participants.length === 0)
|
|
117
|
+
return "";
|
|
118
|
+
const rows = participants
|
|
119
|
+
.slice(0, 12)
|
|
120
|
+
.map((p) => `<li><span class="pie-legend-name" title="${escapeHtml(p.alias)}">${escapeHtml(p.alias)}</span><span class="pie-legend-pct">${formatNumber(p.messages)} · ${p.sharePercent}%</span></li>`)
|
|
121
|
+
.join("");
|
|
122
|
+
return `<ul class="pie-legend" aria-label="참여자 범례">${rows}</ul>`;
|
|
123
|
+
}
|
|
114
124
|
function renderKeywordTable(items) {
|
|
115
125
|
if (items.length === 0)
|
|
116
126
|
return "";
|
|
@@ -191,6 +201,12 @@ export const CHARTS_INIT_SCRIPT = `
|
|
|
191
201
|
var themeObs = new MutationObserver(function () { setTimeout(resizeAll, 60); });
|
|
192
202
|
themeObs.observe(document.documentElement, { attributes: true, attributeFilter: ["data-theme"] });
|
|
193
203
|
|
|
204
|
+
function hourBarColor(h) {
|
|
205
|
+
if (h <= 5) return dark ? "#6366f1" : "#4f46e5";
|
|
206
|
+
if (h <= 11) return dark ? "#3ee8c5" : "#0f6b5c";
|
|
207
|
+
if (h <= 17) return dark ? "#fbbf24" : "#d97706";
|
|
208
|
+
return dark ? "#3b82f6" : "#1d4ed8";
|
|
209
|
+
}
|
|
194
210
|
if (data.hourly && document.getElementById("chart-hours")) {
|
|
195
211
|
var hoursEl = document.getElementById("chart-hours");
|
|
196
212
|
var hg = layout(hoursEl);
|
|
@@ -200,13 +216,13 @@ export const CHARTS_INIT_SCRIPT = `
|
|
|
200
216
|
yAxis: { type: "value", axisLabel: { color: muted }, splitLine: { lineStyle: { color: dark ? "rgba(255,255,255,0.06)" : "rgba(0,0,0,0.06)" } } },
|
|
201
217
|
series: [{
|
|
202
218
|
type: "bar",
|
|
203
|
-
data: data.hourly,
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
]
|
|
219
|
+
data: data.hourly.map(function (v, h) {
|
|
220
|
+
return { value: v, itemStyle: { color: hourBarColor(h), borderRadius: [4, 4, 0, 0] } };
|
|
221
|
+
}),
|
|
222
|
+
markArea: {
|
|
223
|
+
silent: true,
|
|
224
|
+
itemStyle: { color: dark ? "rgba(99,102,241,0.12)" : "rgba(79,70,229,0.08)" },
|
|
225
|
+
data: [[{ xAxis: "0시" }, { xAxis: "5시" }], [{ xAxis: "22시" }, { xAxis: "23시" }]],
|
|
210
226
|
},
|
|
211
227
|
}],
|
|
212
228
|
}));
|
|
@@ -237,25 +253,54 @@ export const CHARTS_INIT_SCRIPT = `
|
|
|
237
253
|
if (data.daily && document.getElementById("chart-daily-heat")) {
|
|
238
254
|
var heatEl = document.getElementById("chart-daily-heat");
|
|
239
255
|
var dg = layout(heatEl);
|
|
240
|
-
var
|
|
256
|
+
var heatMax = Math.max.apply(null, data.daily.map(function (d) { return d.count; }).concat([1]));
|
|
241
257
|
var heat = data.daily.map(function (d) { return [d.date, d.count]; });
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
258
|
+
var burstSet = {};
|
|
259
|
+
(data.burstDates || []).forEach(function (d) { burstSet[d] = true; });
|
|
260
|
+
var daySpan = data.daily.length;
|
|
261
|
+
var useBarFallback = daySpan > 0 && daySpan < 90;
|
|
262
|
+
if (useBarFallback) {
|
|
263
|
+
var labels = data.daily.map(function (d) {
|
|
264
|
+
var p = d.date.split("-");
|
|
265
|
+
return p.length === 3 ? Number(p[1]) + "/" + Number(p[2]) : d.date;
|
|
266
|
+
});
|
|
267
|
+
init("chart-daily-heat", Object.assign(baseOpt(), {
|
|
268
|
+
grid: { left: dg.left, right: dg.right, top: dg.top, bottom: Math.max(dg.bottom, 52), containLabel: true },
|
|
269
|
+
tooltip: { trigger: "axis" },
|
|
270
|
+
xAxis: { type: "category", data: labels, axisLabel: { color: muted, fontSize: dg.fs, rotate: labels.length > 20 ? 40 : 0, interval: labels.length > 40 ? Math.floor(labels.length / 20) : 0 } },
|
|
271
|
+
yAxis: { type: "value", axisLabel: { color: muted }, splitLine: { lineStyle: { color: dark ? "rgba(255,255,255,0.06)" : "rgba(0,0,0,0.06)" } } },
|
|
272
|
+
visualMap: { show: false, min: 0, max: heatMax, inRange: { color: dark ? ["#161b22", "#0e4429", "#006d32", "#26a641", "#39d353"] : ["#ebedf0", "#9be9a8", "#40c463", "#30a14e", "#216e39"] } },
|
|
273
|
+
series: [{
|
|
274
|
+
type: "bar",
|
|
275
|
+
data: data.daily.map(function (d) { return d.count; }),
|
|
276
|
+
itemStyle: { borderRadius: [3, 3, 0, 0], borderWidth: 0 },
|
|
277
|
+
emphasis: { itemStyle: { shadowBlur: 10, shadowColor: dark ? "rgba(62,232,197,0.45)" : "rgba(15,107,92,0.35)" } },
|
|
278
|
+
}],
|
|
279
|
+
}));
|
|
280
|
+
} else {
|
|
281
|
+
var cellH = dg.w < 380 ? 12 : dg.w < 640 ? 14 : 16;
|
|
282
|
+
var cellW = dg.w < 380 ? 12 : 14;
|
|
283
|
+
init("chart-daily-heat", Object.assign(baseOpt(), {
|
|
284
|
+
tooltip: { position: "top" },
|
|
285
|
+
visualMap: { min: 0, max: heatMax, calculable: true, orient: "horizontal", left: "center", bottom: 0, textStyle: { color: muted, fontSize: dg.fs }, itemWidth: dg.w < 380 ? 10 : 14, itemHeight: dg.w < 380 ? 60 : 80, inRange: { color: dark ? ["#161b22", "#0e4429", "#006d32", "#26a641", "#39d353"] : ["#ebedf0", "#9be9a8", "#40c463", "#30a14e", "#216e39"] } },
|
|
286
|
+
calendar: { top: dg.w < 380 ? 28 : 36, left: dg.left, right: dg.right, cellSize: [cellW, cellH], range: data.daily.length ? [data.daily[0].date, data.daily[data.daily.length - 1].date] : undefined, itemStyle: { borderWidth: 0, borderColor: "transparent" }, dayLabel: { color: muted, fontSize: dg.fs }, monthLabel: { color: muted, fontSize: dg.fs } },
|
|
287
|
+
series: [{ type: "heatmap", coordinateSystem: "calendar", data: heat, emphasis: { itemStyle: { shadowBlur: 8, shadowColor: dark ? "rgba(62,232,197,0.5)" : "rgba(33,110,57,0.45)" } } }],
|
|
288
|
+
}));
|
|
289
|
+
}
|
|
248
290
|
}
|
|
249
291
|
|
|
250
292
|
if (data.keywords && document.getElementById("chart-kw-bar")) {
|
|
251
293
|
var kwEl = document.getElementById("chart-kw-bar");
|
|
252
294
|
var kg = layout(kwEl);
|
|
253
295
|
var topBar = data.keywords.slice(0, kg.w < 380 ? 24 : 80);
|
|
296
|
+
var maxLabelLen = 0;
|
|
297
|
+
topBar.forEach(function (k) { if (k.label.length > maxLabelLen) maxLabelLen = k.label.length; });
|
|
298
|
+
var kwLeft = Math.max(kg.leftCat, Math.min(kg.w * 0.42, 24 + maxLabelLen * (kg.fs + 1)));
|
|
254
299
|
init("chart-kw-bar", Object.assign(baseOpt(), {
|
|
255
|
-
grid: { left:
|
|
300
|
+
grid: { left: kwLeft, right: kg.right, top: kg.top, bottom: kg.bottom, containLabel: true },
|
|
256
301
|
xAxis: { type: "value", axisLabel: { color: muted, fontSize: kg.fs } },
|
|
257
|
-
yAxis: { type: "category", data: topBar.map(function (k) { return k.label; }).reverse(), axisLabel: { color: text, fontSize: kg.fs } },
|
|
258
|
-
series: [{ type: "bar", data: topBar.map(function (k) { return k.count; }).reverse(), itemStyle: { color: accent2, borderRadius: [0, 4, 4, 0] } }],
|
|
302
|
+
yAxis: { type: "category", data: topBar.map(function (k) { return k.label; }).reverse(), axisLabel: { color: text, fontSize: kg.fs, width: kwLeft - 12, overflow: "truncate" } },
|
|
303
|
+
series: [{ type: "bar", data: topBar.map(function (k) { return k.count; }).reverse(), itemStyle: { color: accent2, borderRadius: [0, 4, 4, 0] }, label: { show: true, position: "right", color: muted, fontSize: kg.fs, formatter: function (p) { return p.value; } } }],
|
|
259
304
|
}));
|
|
260
305
|
}
|
|
261
306
|
|
|
@@ -291,16 +336,35 @@ export const CHARTS_INIT_SCRIPT = `
|
|
|
291
336
|
if (data.participants && document.getElementById("chart-participants")) {
|
|
292
337
|
var pieEl = document.getElementById("chart-participants");
|
|
293
338
|
var pg = layout(pieEl);
|
|
294
|
-
var
|
|
295
|
-
var
|
|
339
|
+
var topN = 10;
|
|
340
|
+
var ranked = data.participants.slice().sort(function (a, b) { return b.messages - a.messages; });
|
|
341
|
+
var topSlice = ranked.slice(0, topN);
|
|
342
|
+
var otherSum = ranked.slice(topN).reduce(function (s, x) { return s + x.messages; }, 0);
|
|
343
|
+
var pieData = topSlice.map(function (x) { return { name: x.alias, value: x.messages }; });
|
|
344
|
+
if (otherSum > 0) pieData.push({ name: "기타", value: otherSum });
|
|
345
|
+
var pieR = pg.w < 380 ? ["40%", "68%"] : ["38%", "66%"];
|
|
296
346
|
init("chart-participants", Object.assign(baseOpt(), {
|
|
297
|
-
tooltip: { trigger: "item" },
|
|
347
|
+
tooltip: { trigger: "item", formatter: "{b}: {c} ({d}%)" },
|
|
348
|
+
legend: { show: false },
|
|
298
349
|
series: [{
|
|
299
350
|
type: "pie",
|
|
300
351
|
radius: pieR,
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
352
|
+
center: ["50%", "48%"],
|
|
353
|
+
avoidLabelOverlap: true,
|
|
354
|
+
minShowLabelAngle: 10,
|
|
355
|
+
data: pieData,
|
|
356
|
+
label: {
|
|
357
|
+
show: true,
|
|
358
|
+
position: "outside",
|
|
359
|
+
color: text,
|
|
360
|
+
fontSize: pg.fs,
|
|
361
|
+
formatter: function (params) {
|
|
362
|
+
var n = params.name || "";
|
|
363
|
+
return n.length > 8 ? n.slice(0, 7) + "…" : n;
|
|
364
|
+
},
|
|
365
|
+
},
|
|
366
|
+
labelLine: { show: true, length: 8, length2: 6, lineStyle: { color: muted } },
|
|
367
|
+
itemStyle: { borderRadius: 4, borderWidth: 0 },
|
|
304
368
|
}],
|
|
305
369
|
}));
|
|
306
370
|
}
|
|
@@ -381,7 +445,7 @@ export const CHARTS_INIT_SCRIPT = `
|
|
|
381
445
|
io.disconnect();
|
|
382
446
|
run();
|
|
383
447
|
}
|
|
384
|
-
}, { rootMargin: "
|
|
448
|
+
}, { rootMargin: "480px 0px", threshold: 0.01 });
|
|
385
449
|
io.observe(anchor);
|
|
386
450
|
setTimeout(function () {
|
|
387
451
|
if (started) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-charts.js","sourceRoot":"","sources":["../../src/report-charts.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"report-charts.js","sourceRoot":"","sources":["../../src/report-charts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { timelineActivityRange } from "./event-spine.js";
|
|
1
2
|
import { escapeHtml, formatNumber, renderHighlightLine } from "./report-util.js";
|
|
2
3
|
export function renderInnovationDeck(data) {
|
|
3
4
|
return [
|
|
@@ -35,9 +36,13 @@ function renderTimelineBlock(data) {
|
|
|
35
36
|
</li>`;
|
|
36
37
|
})
|
|
37
38
|
.join("");
|
|
39
|
+
const range = timelineActivityRange(data.daily);
|
|
40
|
+
const rangeLine = range
|
|
41
|
+
? `활동 <strong>${escapeHtml(range.first)}</strong>~<strong>${escapeHtml(range.last)}</strong> · 이벤트 <strong>${data.timeline.length}</strong>건 — `
|
|
42
|
+
: "";
|
|
38
43
|
return `<section id="s-timeline" class="card spine-card anim-enter" style="margin-bottom:14px;--enter-delay:0.045s" aria-label="이벤트 타임라인">
|
|
39
44
|
<h2 class="section-glow">이벤트 스파인</h2>
|
|
40
|
-
<p class="chart-hint"
|
|
45
|
+
<p class="chart-hint">${rangeLine}급증·침묵·입퇴장·링크·약속 신호 등 <strong>임계값을 넘은 날</strong>만 나열합니다(전 기간 달력 아님).</p>
|
|
41
46
|
<ol class="spine-list">${items}</ol>
|
|
42
47
|
</section>`;
|
|
43
48
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-innovation.js","sourceRoot":"","sources":["../../src/report-innovation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"report-innovation.js","sourceRoot":"","sources":["../../src/report-innovation.ts"],"names":[],"mappings":"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"}
|