kakaotalk-chat-analyzer 0.13.3 → 0.13.5

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/README.md CHANGED
@@ -55,7 +55,7 @@
55
55
  | **인코딩** | UTF-8 BOM, UTF-8, CP949/EUC-KR 등 보내기 인코딩 자동 감지 |
56
56
  | **파싱** | `Date,User,Message` 헤더 기반 CSV + 멀티라인 메시지 처리 |
57
57
  | **리포트** | Wrapped·**ECharts**·**주제 맵**(c-TF-IDF)·**Kiwi+BM25** 키워드 120개·잔디·인사이트 등 **집계 전용** 시각화 |
58
- | **성능** | 줄 단위 스트림 파싱 · 단일 패스 집계 · 3MB+ Worker · 진행 표시(`--progress`) |
58
+ | **성능** | 줄 단위 스트림 파싱 · 단일 패스 집계 · 3MB+ Worker · 진행률 **기본 ON** (`--no-progress`로 끔) |
59
59
  | **배포** | BrewPage(기본) / TempFile / Cloudflare 등 **TTL 기반** 임시 호스팅 · iframe 공유 링크 안전 처리 |
60
60
  | **npx** | 짧은 별칭 **[`kcachat`](https://www.npmjs.com/package/kcachat)** 또는 본체 **`kakaotalk-chat-analyzer`** |
61
61
  | **프라이버시** | 원문 미포함, 참여자 **부분 마스킹 표시명**(기본), URL은 **도메인**만 집계 |
@@ -77,8 +77,8 @@
77
77
  로컬 벤치(합성 20만 메시지, 집계만): **약 0.4초대** — 환경·디스크·실제 대화 밀도에 따라 달라집니다.
78
78
 
79
79
  ```bash
80
- # 진행 상황 (2.5만 건마다 stderr)
81
- npx kcachat@latest "./KakaoTalk_Chat_....csv" --progress
80
+ # 진행률은 기본으로 stderr에 표시 (집계 Kiwi 준비 → 키워드·주제). 끄려면:
81
+ npx kcachat@latest "./KakaoTalk_Chat_....csv" --no-progress
82
82
 
83
83
  # 한국어 방은 시맨틱 키워드가 기본 ON (multilingual-e5-small, 끄려면 --no-semantic-keywords)
84
84
  # 영어 위주 방에서 강제: --semantic-keywords
@@ -99,42 +99,36 @@ npm run bench:stream -- 100000
99
99
 
100
100
  생성되는 `index.html`은 **브라우저만** 있으면 열리는 단일 파일입니다. (인터랙티브 차트는 CDN으로 ECharts를 불러옵니다.)
101
101
 
102
- - **⓪ Wrapped**: 채팅방 규모·리듬·MVP·급증일 카드형 한 장면 요약
103
- - **빠른 이동**: Wrapped · 숫자 요약 · 인터랙티브 차트 · 표·막대 모음 · 용어 설명
104
- - **인터랙티브 차트**: 워드클라우드, 시간대·요일·월별, 일별 캘린더 히트맵, 키워드 막대(80) + **전체 120개 표**
105
- - **연간 잔디**: 활동 **기간만** 단위(53주 고정 아님), 호버 건수 툴팁
106
- - **숫자·인사이트**: 지니(참여 쏠림)·리듬 점수·응답 간격(초/분 한국어)
107
- - **주제 맵**: 공기 그래프 군집 + 월별 **c-TF-IDF**로 방의 테마·시기별 화제
108
- - **키워드**: **Kiwi** 명사·고유명사 + **BM25/PMI** + 메시지 **등장 횟수**, 오픈채팅·잡음어 필터
102
+ - **⓪ Wrapped · 스토리**: 카드형 한 장면 요약, **페르소나·챕터**, **활동 기간/연간 그리드**(짧은 기간은 「활동 기간 그리드」), **이벤트 스파인**, 방 프로필·타임라인
103
+ - **빠른 이동**: Wrapped · 페르소나 · 연간 그리드 · 숫자 요약 · 하이라이트 · 주제 맵 · 인터랙티브 차트 · 용어 설명
104
+ - **혁신 레이어**: **dyad**(누가 누구에게 답하는가)·기간 비교·내러티브·브러시 기간 탐색
105
+ - **인터랙티브 차트**: 워드클라우드, 시간대·**요일 7색**·월별, **대화 테마 · c-TF-IDF**, **키워드 순위 목록**(인라인 막대·전체 120개)
106
+ - **숫자·인사이트**: 지니·리듬 점수·응답 간격(초/분)·하이라이트·시스템 알림 분리
107
+ - **키워드**: **Kiwi** + **BM25/PMI** + 한국어 **자동 시맨틱**(e5-small), 오픈채팅·잡음어 필터
109
108
  - **참여자**: 말풍선 맵 + 마스킹 닉네임 + 랭킹 테이블
109
+ - **생성 메타 (0.13.3+)**: 사이드 카드 **생성 도구**(`kca` 버전), 접기 **리포트 정보**, `#kca-provenance` JSON — BrewPage 링크로 **어떤 kca로 만들었는지** 확인 가능
110
110
  - **BrewPage**: iframe 섹션 점프·외부 링크 안전 처리
111
- - **테마**: 라이트 / 다크 / 시스템
111
+ - **테마**: 라이트 / 다크 / 시스템 · **OLED glass** 비주얼
112
112
 
113
- 원문 메시지·전체 URL은 HTML에 넣지 않습니다(BrewPage 5MiB 한도 고려). **이미 올린 링크는 재업로드해야** UI 바뀝니다.
113
+ 원문 메시지·전체 URL은 HTML에 넣지 않습니다(BrewPage 5MiB 한도 고려). **이미 올린 링크는 재업로드해야** UI·버전 메타가 바뀝니다.
114
114
 
115
115
  ### 최근
116
116
 
117
117
  | 버전 | 요약 |
118
118
  |------|------|
119
- | **0.11.1** | ECharts 차트 반응형 grid·모바일 말풍선 랭킹·`npm run report:viewport` |
120
- | **0.11.0** | 반응형 6레이어(모바일~4K)·컨테이너 쿼리·ECharts ResizeObserver·스크롤 리빌 |
121
- | **0.10.2** | CSS 복구: `.deck-nav` pill 네비·명시 라이트/다크 팔레트(대비)·테마 버튼 동기화 |
122
- | **0.10.1** | Pretendard 서브셋 CDN·`--kca-font-sans` 순환 참조 수정·카드 radius 토큰 |
123
- | **0.10.0** | 리포트 CSS **Open Props** 토큰·6레이어 번들(`report-styles.ts`)·시맨틱 컬러 리워크 |
124
- | **0.9.1** | 리포트 UX: 읽기 진행률·스크롤 스파이 네비·모바일 섹션 메뉴·히어로 바로가기·키워드 CSS 접기 |
125
- | **0.9.0** | 시맨틱 기본 **`Xenova/multilingual-e5-small`** (한국어 NDCG ~+68% vs MiniLM)·E5 `query:` 접두사 |
126
- | **0.8.1** | 키워드 랭킹 **메시지 등장 수 우선** (BM25 dl 버그 수정)·떨림 2-gram 제거 |
127
- | **0.8.0** | **한국어 우선**: 다국어 임베딩·한국어 **자동 시맨틱**·userWords 완화 |
128
- | **0.7.0** | **2단계 스트림**(집계→Kiwi 키워드)·`.kca-glossary`·주제 ECharts·`keyword:audit` CI |
129
- | **0.6.0** | **`--semantic-keywords`** MiniLM 클러스터 키워드 보조(opt-in) |
130
- | **0.5.0** | **주제 맵**(c-TF-IDF)·**BM25** 키워드·CSV 사전 스캔(userWords·진행률 %) |
131
- | **0.4.2** | 키워드 병합(공백+Kiwi)·브랜드 표기 통합·구 dedupe 제거, **진행률 % 기본 표시** |
132
- | **0.4.1** | Kiwi CI 캐시, `keyword:diff` 스크립트, `KCA_NO_KIWI`, 잡음어·장문 절단 |
133
- | **0.4.0** | **Kiwi** 형태소 + TF-IDF·PMI 키워드 (KR-WordRank 제거) |
134
- | **0.3.3** | 하이라이트 문구, 키워드 꼬리 필터, 팩트 매트릭스 중복 정리 |
135
- | **0.3.2** | 키워드 메시지 히트수, 지니·만/억 표기, 차트 리사이즈 |
136
- | **0.3.1** | ECharts 로드 순서 수정(빈 차트), 복붙·환영 문구 한국어 |
137
- | **0.3.0** | ECharts 섹션, 키워드 120, 2026 글래스 UI, Wrapped·잔디 개선 |
119
+ | **0.13.5** | 키워드 **순위 목록** 통합(ECharts 막대+표 인라인 막대 표) · 요약 상위 12·접기 기본 |
120
+ | **0.13.4** | Worker 분석 provenance **`kiwiAvailable`** 정확 표시 (`kiwiAvailableAtAnalysis`) |
121
+ | **0.13.3** | HTML **provenance**: `kca` 버전·`#kca-provenance` JSON·**리포트 정보** `<details>`·`kcachat` `KCA_INVOKER` |
122
+ | **0.13.2** | 키워드 막대 insideLeft·상위 3색, **활동 기간 그리드**(compact), 주제 테마/기간 분리, dyad visualMap |
123
+ | **0.13.1** | 생성 시각·소요, 이벤트 스파인, 히트맵/참여 pie, 주제맵·키워드 UX |
124
+ | **0.13.0** | dyad·타임라인·내러티브·기간 탐색(혁신 레이어) |
125
+ | **0.12.0** | OLED glassmorphism 리포트 비주얼 |
126
+ | **0.11.2** | lazy charts·Playwright `report:screenshots` |
127
+ | **0.11.1** | ECharts 반응형 grid·모바일 말풍선·`npm run report:viewport` |
128
+ | **0.11.0** | 반응형 6레이어·ResizeObserver·스크롤 리빌 |
129
+ | **0.10.x** | Open Props CSS 번들·테마 대비·Pretendard ([Releases](https://github.com/claudianus/kakaotalk-chat-analyzer/releases)에서 0.10.0–0.10.2) |
130
+ | **0.9.x** | e5-small 시맨틱 기본·스크롤 스파이 네비 ([Releases](https://github.com/claudianus/kakaotalk-chat-analyzer/releases)) |
131
+ | **0.3–0.8** | Kiwi·BM25·주제 맵·한국어 시맨틱·스트림 2단계 [Releases](https://github.com/claudianus/kakaotalk-chat-analyzer/releases) 참고 |
138
132
 
139
133
  ---
140
134
 
@@ -170,7 +164,7 @@ npx kcachat@latest "./KakaoTalk_Chat_....csv" --local
170
164
  npx kcachat@latest "./KakaoTalk_Chat_....csv"
171
165
  ```
172
166
 
173
- > **버전:** `kcachat@latest`는 본체 `kakaotalk-chat-analyzer@latest`를 매 실행 받습니다. 고정하려면 `npx kakaotalk-chat-analyzer@0.8.0`. 오프라인은 `kcachat … --bundled`. ([kcachat README](kcachat/README.md))
167
+ > **버전:** `kcachat@latest`는 본체 `kakaotalk-chat-analyzer@latest`를 매 실행 받습니다. 고정하려면 `npx kakaotalk-chat-analyzer@0.13.4`. 리포트 사이드 카드·`grep kca-provenance`로 실제 생성 버전을 확인하세요. 오프라인은 `kcachat … --bundled`. ([kcachat README](kcachat/README.md))
174
168
 
175
169
  CSV와 같은 폴더에 **`.kca-glossary.txt`**(한 줄에 한 단어)를 두면 Kiwi 사용자 사전에 자동 반영됩니다.
176
170
 
@@ -216,10 +210,13 @@ kca ./chat.csv --host tempfile --ttl 30
216
210
  # 보내기 구조 점검(원문 출력 없음, 스트리밍)
217
211
  kca inspect ./KakaoTalk_Chat_....csv
218
212
 
219
- # 대용량 진행 표시 / 프로파일
220
- kca ./chat.csv --progress
213
+ # 진행률 끄기(CI·스크립트) / 단계별 ms 프로파일
214
+ kca ./chat.csv --no-progress
221
215
  kca ./chat.csv --profile --no-worker
222
216
 
217
+ # YYYY-MM-DD 이후만 집계
218
+ kca ./chat.csv --since 2025-01-01
219
+
223
220
  kca --help
224
221
  ```
225
222
 
@@ -231,6 +228,7 @@ kca --help
231
228
 
232
229
  - **단일 `index.html`**: CSS·차트·안내 문구가 **한 파일에 포함**되어 오프라인에서도 동작합니다.
233
230
  - **원문 미저장**: 메시지 본문은 통계 계산에만 사용되며 HTML에 남기지 않습니다.
231
+ - **provenance (CLI)**: `kca` 버전·분석 옵션·HTML 크기·생성 소요가 **생성 도구** / **리포트 정보** / `#kca-provenance`에 기록됩니다.
234
232
  - **재업로드 안내**: 예전 BrewPage 링크는 생성 시점 HTML이 고정됩니다. UI·버그 수정 후에는 **다시 업로드**해야 반영됩니다.
235
233
  - 자세한 화면 구성은 [리포트 UX](#리포트-ux)를 참고하세요.
236
234
 
@@ -270,10 +268,12 @@ CSV 파일 (스트림 read)
270
268
 
271
269
  ```bash
272
270
  npm install
273
- npm run build
271
+ npm run build # sync-version → CSS 번들 → tsc
274
272
  npm test
275
273
  ```
276
274
 
275
+ 유용한 스크립트: `npm run report:qa` · `report:qa:serve` · `report:screenshots` · `keyword:audit` · `bench:stream` · Pages pill 동기화 `node scripts/sync-docs-version.mjs`
276
+
277
277
  ---
278
278
 
279
279
  ## 문서 사이트 (GitHub Pages)
@@ -286,7 +286,7 @@ npm test
286
286
  - **키워드 비교**: `npm run keyword:diff -- ./KakaoTalk_Chat_....csv 30`
287
287
  - LGPL 고지: [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)
288
288
 
289
- 랜딩 페이지(`docs/index.html`)는 **v0.4.x 리포트 UX·ECharts·Kiwi 키워드** 요약과 **복사 가능한 `npx` 예시**를 담은 단일 HTML이며, **GitHub Actions**가 `main`에 `docs/` 변경을 푸시할 때마다 배포합니다.
289
+ 랜딩 페이지([`docs/index.html`](docs/index.html))는 **v0.13.x** 리포트(혁신 레이어·OLED·provenance)·**복사 가능한 `npx` 예시**를 담은 단일 HTML이며, **GitHub Actions**가 `main`에 `docs/` 변경을 푸시할 때마다 배포합니다. pill 버전은 `node scripts/sync-docs-version.mjs`로 `package.json`과 맞출 수 있습니다.
290
290
 
291
291
  - **공개 URL:** [https://claudianus.github.io/kakaotalk-chat-analyzer/](https://claudianus.github.io/kakaotalk-chat-analyzer/)
292
292
  - **워크플로:** [`.github/workflows/pages.yml`](.github/workflows/pages.yml)
@@ -2,7 +2,7 @@ import { ReportAggregator } from "./aggregator.js";
2
2
  import { HeuristicPrepassCollector } from "./export-prepass.js";
3
3
  import { loadGlossaryForExport } from "./glossary.js";
4
4
  import { buildKeywordStopwords } from "./keyword-stopwords.js";
5
- import { initKiwiRuntime } from "./kiwi-runtime.js";
5
+ import { getKiwiRuntime, initKiwiRuntime } from "./kiwi-runtime.js";
6
6
  export { maskPartialDisplayName, parseChatRoomNameFromExportPath, safeInputName } from "./analysis-labels.js";
7
7
  import { runAnalyzeWorker, shouldUseAnalyzeWorker } from "./analyze-pool.js";
8
8
  import { isPrimarilyKoreanMessages } from "./korean-locale.js";
@@ -12,6 +12,9 @@ import { extractSemanticKeywords } from "./semantic-keywords.js";
12
12
  import { streamKakaoExport } from "./stream-parser.js";
13
13
  import { recordOnOrAfter } from "./report-date-filter.js";
14
14
  const DEFAULT_TOP = 30;
15
+ function withKiwiAnalysisFlag(report) {
16
+ return { ...report, kiwiAvailableAtAnalysis: getKiwiRuntime() != null };
17
+ }
15
18
  function mergeUserWords(...lists) {
16
19
  const seen = new Set();
17
20
  const out = [];
@@ -61,12 +64,12 @@ export function buildReportData(result, options) {
61
64
  continue;
62
65
  agg.consume(record);
63
66
  }
64
- return agg.finalize({
67
+ return withKiwiAnalysisFlag(agg.finalize({
65
68
  filePath: result.filePath,
66
69
  encoding: result.encoding,
67
70
  physicalLines: result.physicalLines,
68
71
  warningCount: result.warnings.length,
69
- }, { koreanPrimary: korean });
72
+ }, { koreanPrimary: korean }));
70
73
  }
71
74
  export async function buildReportDataAsync(result, options) {
72
75
  await prepareReportEngine();
@@ -87,12 +90,12 @@ export async function buildReportDataAsync(result, options) {
87
90
  agg.consume(record);
88
91
  }
89
92
  const usedSemantic = await applySemanticKeywords(agg, useSemantic, false);
90
- return agg.finalize({
93
+ return withKiwiAnalysisFlag(agg.finalize({
91
94
  filePath: result.filePath,
92
95
  encoding: result.encoding,
93
96
  physicalLines: result.physicalLines,
94
97
  warningCount: result.warnings.length,
95
- }, { usedSemanticKeywords: usedSemantic, koreanPrimary: prepass.isPrimarilyKorean() });
98
+ }, { usedSemanticKeywords: usedSemantic, koreanPrimary: prepass.isPrimarilyKorean() }));
96
99
  }
97
100
  function messageTextFromRecord(record) {
98
101
  return record.message;
@@ -218,7 +221,7 @@ export async function buildReportFromExportSync(filePath, options) {
218
221
  const sem = report.summary.usedSemanticKeywords ? " · 시맨틱" : "";
219
222
  console.error(`[kca] 완료 ${report.summary.totalMessages.toLocaleString("ko-KR")}건 · 주제 ${report.topics.length}개${sem}`);
220
223
  }
221
- return report;
224
+ return withKiwiAnalysisFlag(report);
222
225
  }
223
226
  export async function buildReportFromExport(filePath, options) {
224
227
  if (await shouldUseAnalyzeWorker(filePath, options)) {
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/analysis.ts"],"names":[],"mappings":"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"}
package/dist/src/cli.js CHANGED
@@ -3,7 +3,6 @@ import { mkdir, stat, writeFile } from "node:fs/promises";
3
3
  import { resolve } from "node:path";
4
4
  import { Command } from "commander";
5
5
  import { buildReportFromExport, reportUsedAnalyzeWorker } from "./analysis.js";
6
- import { getKiwiRuntime } from "./kiwi-runtime.js";
7
6
  import { buildReportProvenance } from "./report-provenance.js";
8
7
  import { clearOwnerToken, getConfigPath, getOwnerToken, saveOwnerToken } from "./config.js";
9
8
  import { describeStreamedExport } from "./stream-parser.js";
@@ -210,7 +209,7 @@ async function generateReport(csv, options) {
210
209
  workerRequested: resolveWorkerRequested(options.worker),
211
210
  workerUsed,
212
211
  semanticRequested: resolveSemanticRequested(options.semanticKeywords),
213
- kiwiAvailable: getKiwiRuntime() != null,
212
+ kiwiAvailable: data.kiwiAvailableAtAnalysis === true,
214
213
  buildTiming: { ...buildTiming },
215
214
  htmlBytes: Buffer.byteLength(html, "utf8"),
216
215
  });
@@ -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":";AACA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAC9C,MAAM,WAAW,GAAG,iBAAiB,CAAC;AACtC,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,4CAA4C,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/F,OAAO,CAAC,WAAW,CACjB,OAAO,EACP;;;;;;;;;;CAUD,CACA,CAAC;AAEF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAE3E,IAAI;KACD,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;KACvC,MAAM,CAAC,SAAS,EAAE,yBAAyB,EAAE,KAAK,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,uBAAuB,EAAE,KAAK,CAAC;KACnD,MAAM,CAAC,eAAe,EAAE,gCAAgC,EAAE,UAAU,CAAC;KACrE,MAAM,CAAC,cAAc,EAAE,eAAe,EAAE,IAAI,CAAC;KAC7C,MAAM,CAAC,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,CAAC;KAC3D,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,EAAE,eAAe,CAAC;KAC/E,MAAM,CAAC,eAAe,EAAE,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;KAC3D,MAAM,CAAC,iBAAiB,EAAE,WAAW,EAAE,WAAW,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,8BAA8B,EAAE,KAAK,CAAC;KAC1D,MAAM,CAAC,aAAa,EAAE,sCAAsC,EAAE,KAAK,CAAC;KACpE,MAAM,CAAC,eAAe,EAAE,uBAAuB,EAAE,KAAK,CAAC;KACvD,MAAM,CACL,wBAAwB,EACxB,+CAA+C,EAC/C,KAAK,CACN;KACA,MAAM,CACL,qBAAqB,EACrB,iDAAiD,EACjD,KAAK,CACN;KACA,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;KACrD,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,OAAoB,EAAE,EAAE;IAClD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE;QACzC,MAAM,EAAE,OAAO,CAAC,GAAG;QACnB,OAAO;QACP,GAAG;QACH,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC/D,QAAQ,EAAE,CAAC,OAAO,CAAC,UAAU;QAC7B,gBAAgB,EAAE,OAAO,CAAC,kBAAkB;YAC1C,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,OAAO,CAAC,gBAAgB;gBACxB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,SAAS;QACf,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;KACvC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAErD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;YACpC,IAAI;YACJ,OAAO;YACP,SAAS;YACT,KAAK,EAAE,aAAa;YACpB,UAAU,EAAE,KAAK,EAAE,UAAU;SAC9B,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,cAAc,CAAC;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS;gBACT,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,iDAAiD,GAAG,2BAA2B,OAAO,EAAE,CAAC,CAAC;QAC1G,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;KACrC,MAAM,CAAC,kBAAkB,EAAE,YAAY,EAAE,cAAc,CAAC;KACxD,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,IAAc,EAAE,OAAwB,EAAE,EAAE;IACzD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CACV,MAAM,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACxC,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,KAAK;YACb,gBAAgB,EAAE,KAAK;SACxB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;KACjC,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;IAC5B,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AAE3E,KAAK;KACF,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,eAAe,EAAE,kCAAkC,EAAE,UAAU,CAAC;KACvE,MAAM,CAAC,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,CAAC;KACvD,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,EAAE;IACtC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,SAAS,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,SAAS,iBAAiB,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,aAAa,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;AAEjD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IACxD,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAwBH,KAAK,UAAU,cAAc,CAC3B,GAAW,EACX,OASC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAa,EAAE,EAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;IAEjH,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC;IAEF,IAAI,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5D,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAE/C,MAAM,WAAW,GAAG;QAClB,gBAAgB;QAChB,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;QACd,OAAO,EAAE,gBAAgB;KAC1B,CAAC;IAEF,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,IAAI,GAAG,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACtD,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAE7C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAE3C,WAAW,CAAC,OAAO;QACjB,WAAW,CAAC,gBAAgB,GAAG,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC;IAEpF,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,EAAE;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,eAAe,EAAE,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC;QACvD,UAAU;QACV,iBAAiB,EAAE,wBAAwB,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACrE,aAAa,EAAE,IAAI,CAAC,uBAAuB,KAAK,IAAI;QACpD,WAAW,EAAE,EAAE,GAAG,WAAW,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;KAC3C,CAAC,CAAC;IAEH,IAAI,GAAG,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9D,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAExC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CACX,sBAAsB,WAAW,CAAC,OAAO,iBAAiB,WAAW,CAAC,gBAAgB,WAAW,WAAW,CAAC,YAAY,YAAY,WAAW,CAAC,WAAW,GAAG,CAChK,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,QAAgB;IAC5C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAgB;IAC9C,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,wBAAwB,CAC/B,gBAA0B;IAE1B,IAAI,gBAAgB,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,gBAAgB,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,IAAI,KAAK,KAAK,eAAe,IAAI,KAAK,KAAK,kBAAkB;QAAE,OAAO,KAAK,CAAC;IAC5E,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,oDAAoD,CAAC,CAAC;AACxG,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,QAAgB;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnE,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,QAAgB;IAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,IAAI,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,IAAI,CAAC;IACpC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACjE,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AAClD,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAqB,EAAE,SAAiB;IAClE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7D,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,UAAU;QAAE,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC1G,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,WAAW,SAAS,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,UAAU,CAAC;IAC1C,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC"}
@@ -58,4 +58,4 @@ export declare function serializeChartPayload(data: ReportData): string;
58
58
  export declare function buildChartPayload(data: ReportData): ChartPayload;
59
59
  export declare function serializeExplorerPayload(data: ReportData): string;
60
60
  export declare function renderChartDeck(data: ReportData): string;
61
- 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 function cssVar(name, fallback) {\n try {\n var v = getComputedStyle(document.body).getPropertyValue(name).trim();\n return v || fallback;\n } catch (e) { return fallback; }\n }\n var heatLo = cssVar(\"--chart-heat-lo\", dark ? \"#1a2744\" : \"#d4e4f4\");\n var heatHi = cssVar(\"--chart-heat-hi\", dark ? \"#5ee8ff\" : \"#1e4fd6\");\n var wdColors = [\n cssVar(\"--chart-wd-0\", dark ? \"#818cf8\" : \"#4f46e5\"),\n cssVar(\"--chart-wd-1\", dark ? \"#3ee8c5\" : \"#0f6b5c\"),\n cssVar(\"--chart-wd-2\", dark ? \"#34d399\" : \"#059669\"),\n cssVar(\"--chart-wd-3\", dark ? \"#2dd4bf\" : \"#0d9488\"),\n cssVar(\"--chart-wd-4\", dark ? \"#38bdf8\" : \"#0284c7\"),\n cssVar(\"--chart-wd-5\", dark ? \"#fbbf24\" : \"#d97706\"),\n cssVar(\"--chart-wd-6\", dark ? \"#fb923c\" : \"#ea580c\"),\n ];\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 var wdCounts = data.weekdays.map(function (w) { return w.count; });\n var wdMax = Math.max.apply(null, wdCounts.concat([1]));\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: [{\n type: \"bar\",\n data: data.weekdays.map(function (w, i) {\n var c = wdColors[i % 7];\n return {\n value: w.count,\n itemStyle: {\n color: c,\n borderRadius: [0, 6, 6, 0],\n shadowBlur: w.count >= wdMax ? 10 : 0,\n shadowColor: w.count >= wdMax ? (dark ? \"rgba(62,232,197,0.45)\" : \"rgba(15,107,92,0.35)\") : \"transparent\",\n },\n };\n }),\n }],\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 kwLimit = kg.w < 380 ? 20 : 30;\n var topBar = data.keywords.slice(0, kwLimit);\n var nKw = topBar.length;\n var padY = Math.min(48, 8 + nKw * 0.4);\n function kwBarColor(rankFromTop) {\n if (rankFromTop === 0) return dark ? \"#a78bfa\" : \"#6366f1\";\n if (rankFromTop === 1) return dark ? \"#818cf8\" : \"#4f46e5\";\n if (rankFromTop === 2) return dark ? \"#5b9bd5\" : \"#3b82f6\";\n return dark ? \"rgba(129,140,248,0.55)\" : \"rgba(79,70,229,0.45)\";\n }\n var kwSeries = topBar.map(function (k, i) {\n return {\n value: k.count,\n name: k.label,\n itemStyle: { color: kwBarColor(i), borderRadius: [0, 4, 4, 0] },\n };\n }).reverse();\n init(\"chart-kw-bar\", Object.assign(baseOpt(), {\n grid: { left: 8, right: kg.right, top: padY, bottom: padY, containLabel: false },\n xAxis: { type: \"value\", axisLabel: { color: muted, fontSize: kg.fs } },\n yAxis: {\n type: \"category\",\n data: topBar.map(function (k) { return k.label; }).reverse(),\n axisLabel: { show: false },\n axisTick: { show: false },\n axisLine: { show: false },\n },\n series: [{\n type: \"bar\",\n data: kwSeries,\n label: [\n {\n show: true,\n position: \"insideLeft\",\n color: text,\n fontSize: kg.fs,\n fontWeight: 600,\n formatter: \"{b}\",\n padding: [0, 0, 0, 6],\n },\n {\n show: true,\n position: \"right\",\n color: muted,\n fontSize: kg.fs,\n formatter: \"{c}\",\n },\n ],\n }],\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.topicsThemes && data.topicsThemes.length && document.getElementById(\"chart-topics\")) {\n var topEl = document.getElementById(\"chart-topics\");\n var tg = layout(topEl);\n var topics = data.topicsThemes.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({ value: [ci, ri, v], label: { show: v >= maxV * 0.15, formatter: String(v), color: text, fontSize: 9 } });\n }\n }\n var dyEl = document.getElementById(\"chart-dyad\");\n var dg = layout(dyEl);\n var splitFill = dark ? [\"rgba(255,255,255,0.03)\", \"rgba(255,255,255,0.06)\"] : [\"rgba(0,0,0,0.02)\", \"rgba(0,0,0,0.05)\"];\n init(\"chart-dyad\", Object.assign(baseOpt(), {\n tooltip: { position: \"top\", formatter: function (p) { var v = p.value[2]; return ix.aliases[p.value[1]] + \" \u2192 \" + ix.aliases[p.value[0]] + \": \" + v; } },\n grid: { left: Math.max(dg.leftCat, 72), right: dg.right, top: dg.top, bottom: 56 },\n xAxis: {\n type: \"category\",\n data: ix.aliases,\n axisLabel: { color: muted, fontSize: dg.fs, rotate: 32 },\n splitArea: { show: true, areaStyle: { color: splitFill } },\n },\n yAxis: {\n type: \"category\",\n data: ix.aliases,\n axisLabel: { color: muted, fontSize: dg.fs },\n splitArea: { show: true, areaStyle: { color: splitFill } },\n },\n visualMap: {\n min: 0,\n max: maxV,\n calculable: true,\n orient: \"horizontal\",\n left: \"center\",\n bottom: 4,\n inRange: { color: [heatLo, dark ? \"#2a9d8f\" : \"#7ecfc2\", dark ? \"#3ee8c5\" : \"#0f6b5c\", heatHi] },\n },\n series: [{\n type: \"heatmap\",\n data: heat,\n itemStyle: { borderWidth: 0 },\n emphasis: { itemStyle: { shadowBlur: 12, shadowColor: dark ? \"rgba(62,232,197,0.5)\" : \"rgba(15,107,92,0.35)\" } },\n }],\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";
61
+ 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 function cssVar(name, fallback) {\n try {\n var v = getComputedStyle(document.body).getPropertyValue(name).trim();\n return v || fallback;\n } catch (e) { return fallback; }\n }\n var heatLo = cssVar(\"--chart-heat-lo\", dark ? \"#1a2744\" : \"#d4e4f4\");\n var heatHi = cssVar(\"--chart-heat-hi\", dark ? \"#5ee8ff\" : \"#1e4fd6\");\n var wdColors = [\n cssVar(\"--chart-wd-0\", dark ? \"#818cf8\" : \"#4f46e5\"),\n cssVar(\"--chart-wd-1\", dark ? \"#3ee8c5\" : \"#0f6b5c\"),\n cssVar(\"--chart-wd-2\", dark ? \"#34d399\" : \"#059669\"),\n cssVar(\"--chart-wd-3\", dark ? \"#2dd4bf\" : \"#0d9488\"),\n cssVar(\"--chart-wd-4\", dark ? \"#38bdf8\" : \"#0284c7\"),\n cssVar(\"--chart-wd-5\", dark ? \"#fbbf24\" : \"#d97706\"),\n cssVar(\"--chart-wd-6\", dark ? \"#fb923c\" : \"#ea580c\"),\n ];\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 var wdCounts = data.weekdays.map(function (w) { return w.count; });\n var wdMax = Math.max.apply(null, wdCounts.concat([1]));\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: [{\n type: \"bar\",\n data: data.weekdays.map(function (w, i) {\n var c = wdColors[i % 7];\n return {\n value: w.count,\n itemStyle: {\n color: c,\n borderRadius: [0, 6, 6, 0],\n shadowBlur: w.count >= wdMax ? 10 : 0,\n shadowColor: w.count >= wdMax ? (dark ? \"rgba(62,232,197,0.45)\" : \"rgba(15,107,92,0.35)\") : \"transparent\",\n },\n };\n }),\n }],\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-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.topicsThemes && data.topicsThemes.length && document.getElementById(\"chart-topics\")) {\n var topEl = document.getElementById(\"chart-topics\");\n var tg = layout(topEl);\n var topics = data.topicsThemes.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({ value: [ci, ri, v], label: { show: v >= maxV * 0.15, formatter: String(v), color: text, fontSize: 9 } });\n }\n }\n var dyEl = document.getElementById(\"chart-dyad\");\n var dg = layout(dyEl);\n var splitFill = dark ? [\"rgba(255,255,255,0.03)\", \"rgba(255,255,255,0.06)\"] : [\"rgba(0,0,0,0.02)\", \"rgba(0,0,0,0.05)\"];\n init(\"chart-dyad\", Object.assign(baseOpt(), {\n tooltip: { position: \"top\", formatter: function (p) { var v = p.value[2]; return ix.aliases[p.value[1]] + \" \u2192 \" + ix.aliases[p.value[0]] + \": \" + v; } },\n grid: { left: Math.max(dg.leftCat, 72), right: dg.right, top: dg.top, bottom: 56 },\n xAxis: {\n type: \"category\",\n data: ix.aliases,\n axisLabel: { color: muted, fontSize: dg.fs, rotate: 32 },\n splitArea: { show: true, areaStyle: { color: splitFill } },\n },\n yAxis: {\n type: \"category\",\n data: ix.aliases,\n axisLabel: { color: muted, fontSize: dg.fs },\n splitArea: { show: true, areaStyle: { color: splitFill } },\n },\n visualMap: {\n min: 0,\n max: maxV,\n calculable: true,\n orient: \"horizontal\",\n left: \"center\",\n bottom: 4,\n inRange: { color: [heatLo, dark ? \"#2a9d8f\" : \"#7ecfc2\", dark ? \"#3ee8c5\" : \"#0f6b5c\", heatHi] },\n },\n series: [{\n type: \"heatmap\",\n data: heat,\n itemStyle: { borderWidth: 0 },\n emphasis: { itemStyle: { shadowBlur: 12, shadowColor: dark ? \"rgba(62,232,197,0.5)\" : \"rgba(15,107,92,0.35)\" } },\n }],\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";
@@ -1,6 +1,5 @@
1
1
  import { isShortActivitySpan, topicsThemesOnly } from "./report-chart-util.js";
2
2
  import { escapeHtml, formatNumber } from "./report-util.js";
3
- const KW_BAR_CHART_LIMIT = 30;
4
3
  /** @deprecated preconnect는 report-head.ts REPORT_HEAD_LINKS 사용 */
5
4
  export const CHART_CDN_HEAD = ``;
6
5
  /** body 끝: 차트 라이브러리 — defer 금지(인라인 init보다 반드시 먼저 실행) */
@@ -102,10 +101,9 @@ export function renderChartDeck(data) {
102
101
  <div id="chart-monthly" class="chart-box compact" role="img" aria-label="월별 차트"></div>
103
102
  </article>
104
103
  <article class="viz-card span-12">
105
- <h3>키워드 상위 ${formatNumber(Math.min(kw, KW_BAR_CHART_LIMIT))} · 메시지 등장 횟수</h3>
106
- <p class="viz-hint">차트는 상위 ${KW_BAR_CHART_LIMIT}개(막대 안에 키워드 표시). 아래 표에서 전체 ${formatNumber(kw)}개를 있어요.</p>
107
- <div id="chart-kw-bar" class="chart-box tall" role="img" aria-label="키워드 막대 차트"></div>
108
- ${renderKeywordTable(data.keywords)}
104
+ <h3>키워드 순위 · 메시지 등장 횟수</h3>
105
+ <p class="viz-hint">막대 길이 = 1위 대비 비율 · 전체 ${formatNumber(kw)} · 워드클라우드는 위 카드</p>
106
+ ${renderKeywordRankedList(data.keywords)}
109
107
  </article>
110
108
  <article class="viz-card span-6">
111
109
  <h3>참여자 상위</h3>
@@ -131,13 +129,36 @@ function renderParticipantLegend(participants) {
131
129
  .join("");
132
130
  return `<ul class="pie-legend" aria-label="참여자 범례">${rows}</ul>`;
133
131
  }
134
- function renderKeywordTable(items) {
132
+ function kwBarFillClass(rankIndex) {
133
+ if (rankIndex === 0)
134
+ return "kw-bar-fill kw-bar-fill--rank1";
135
+ if (rankIndex === 1)
136
+ return "kw-bar-fill kw-bar-fill--rank2";
137
+ if (rankIndex === 2)
138
+ return "kw-bar-fill kw-bar-fill--rank3";
139
+ return "kw-bar-fill";
140
+ }
141
+ function renderKeywordRankedList(items) {
135
142
  if (items.length === 0)
136
143
  return "";
144
+ const max = Math.max(items[0]?.count ?? 0, 1);
137
145
  const rows = items
138
- .map((item, i) => `<tr><td class="kw-rank num">${i + 1}</td><td>${escapeHtml(item.label)}</td><td class="num">${formatNumber(item.count)}</td></tr>`)
146
+ .map((item, i) => {
147
+ const width = Math.max(2, Math.round((item.count / max) * 100));
148
+ const fillClass = kwBarFillClass(i);
149
+ return `<tr>
150
+ <td class="kw-rank num">${i + 1}</td>
151
+ <td class="kw-label" title="${escapeHtml(item.label)}">${escapeHtml(item.label)}</td>
152
+ <td class="kw-bar-cell">
153
+ <div class="kw-bar-track" role="meter" aria-valuenow="${item.count}" aria-valuemin="0" aria-valuemax="${max}" aria-label="${escapeHtml(item.label)} 메시지 ${formatNumber(item.count)}건">
154
+ <span class="${fillClass}" style="width:${width}%"></span>
155
+ </div>
156
+ </td>
157
+ <td class="num">${formatNumber(item.count)}</td>
158
+ </tr>`;
159
+ })
139
160
  .join("");
140
- return `<div class="kw-table-wrap" style="margin-top:12px"><table class="kw-table"><thead><tr><th>#</th><th>키워드</th><th class="num">메시지 수</th></tr></thead><tbody>${rows}</tbody></table></div>`;
161
+ return `<div class="kw-table-wrap"><table class="kw-table kw-table--ranked"><colgroup><col class="kw-col-rank" /><col class="kw-col-label" /><col class="kw-col-bar" /><col class="kw-col-count" /></colgroup><thead><tr><th>#</th><th>키워드</th><th>비율</th><th class="num">메시지 수</th></tr></thead><tbody>${rows}</tbody></table></div>`;
141
162
  }
142
163
  export const CHARTS_INIT_SCRIPT = `
143
164
  (function () {
@@ -332,61 +353,6 @@ export const CHARTS_INIT_SCRIPT = `
332
353
  }
333
354
  }
334
355
 
335
- if (data.keywords && document.getElementById("chart-kw-bar")) {
336
- var kwEl = document.getElementById("chart-kw-bar");
337
- var kg = layout(kwEl);
338
- var kwLimit = kg.w < 380 ? 20 : 30;
339
- var topBar = data.keywords.slice(0, kwLimit);
340
- var nKw = topBar.length;
341
- var padY = Math.min(48, 8 + nKw * 0.4);
342
- function kwBarColor(rankFromTop) {
343
- if (rankFromTop === 0) return dark ? "#a78bfa" : "#6366f1";
344
- if (rankFromTop === 1) return dark ? "#818cf8" : "#4f46e5";
345
- if (rankFromTop === 2) return dark ? "#5b9bd5" : "#3b82f6";
346
- return dark ? "rgba(129,140,248,0.55)" : "rgba(79,70,229,0.45)";
347
- }
348
- var kwSeries = topBar.map(function (k, i) {
349
- return {
350
- value: k.count,
351
- name: k.label,
352
- itemStyle: { color: kwBarColor(i), borderRadius: [0, 4, 4, 0] },
353
- };
354
- }).reverse();
355
- init("chart-kw-bar", Object.assign(baseOpt(), {
356
- grid: { left: 8, right: kg.right, top: padY, bottom: padY, containLabel: false },
357
- xAxis: { type: "value", axisLabel: { color: muted, fontSize: kg.fs } },
358
- yAxis: {
359
- type: "category",
360
- data: topBar.map(function (k) { return k.label; }).reverse(),
361
- axisLabel: { show: false },
362
- axisTick: { show: false },
363
- axisLine: { show: false },
364
- },
365
- series: [{
366
- type: "bar",
367
- data: kwSeries,
368
- label: [
369
- {
370
- show: true,
371
- position: "insideLeft",
372
- color: text,
373
- fontSize: kg.fs,
374
- fontWeight: 600,
375
- formatter: "{b}",
376
- padding: [0, 0, 0, 6],
377
- },
378
- {
379
- show: true,
380
- position: "right",
381
- color: muted,
382
- fontSize: kg.fs,
383
- formatter: "{c}",
384
- },
385
- ],
386
- }],
387
- }));
388
- }
389
-
390
356
  if (data.keywords && document.getElementById("chart-kw-cloud")) {
391
357
  var cloudEl = document.getElementById("chart-kw-cloud");
392
358
  var cg = layout(cloudEl);
@@ -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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"}