@phoenix-wing/kt-codegen 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/ui/KtCodegenApplyReport.d.ts +72 -0
  2. package/dist/ui/KtCodegenApplyReport.d.ts.map +1 -0
  3. package/dist/ui/KtCodegenApplyReport.js +331 -0
  4. package/dist/ui/KtCodegenApplyReport.js.map +1 -0
  5. package/dist/ui/KtCodegenApplyReportModel.d.ts +73 -0
  6. package/dist/ui/KtCodegenApplyReportModel.d.ts.map +1 -0
  7. package/dist/ui/KtCodegenApplyReportModel.js +59 -0
  8. package/dist/ui/KtCodegenApplyReportModel.js.map +1 -0
  9. package/dist/ui/KtCodegenControlCatalog.d.ts +41 -0
  10. package/dist/ui/KtCodegenControlCatalog.d.ts.map +1 -0
  11. package/dist/ui/KtCodegenControlCatalog.js +365 -0
  12. package/dist/ui/KtCodegenControlCatalog.js.map +1 -0
  13. package/dist/ui/KtCodegenControlCatalogState.d.ts +54 -0
  14. package/dist/ui/KtCodegenControlCatalogState.d.ts.map +1 -0
  15. package/dist/ui/KtCodegenControlCatalogState.js +96 -0
  16. package/dist/ui/KtCodegenControlCatalogState.js.map +1 -0
  17. package/dist/ui/KtCodegenControlPanel.d.ts.map +1 -1
  18. package/dist/ui/KtCodegenControlPanel.js +20 -2
  19. package/dist/ui/KtCodegenControlPanel.js.map +1 -1
  20. package/dist/ui/KtCodegenControlViewModel.d.ts +9 -0
  21. package/dist/ui/KtCodegenControlViewModel.d.ts.map +1 -1
  22. package/dist/ui/KtCodegenControlViewModel.js +62 -0
  23. package/dist/ui/KtCodegenControlViewModel.js.map +1 -1
  24. package/dist/ui/KtCodegenPrimaryPanel.d.ts +2 -5
  25. package/dist/ui/KtCodegenPrimaryPanel.d.ts.map +1 -1
  26. package/dist/ui/KtCodegenPrimaryPanel.js +18 -100
  27. package/dist/ui/KtCodegenPrimaryPanel.js.map +1 -1
  28. package/dist/ui/KtCodegenPrimaryUiState.d.ts +10 -0
  29. package/dist/ui/KtCodegenPrimaryUiState.d.ts.map +1 -0
  30. package/dist/ui/KtCodegenPrimaryUiState.js +16 -0
  31. package/dist/ui/KtCodegenPrimaryUiState.js.map +1 -0
  32. package/dist/ui/KtCodegenUiContracts.d.ts +19 -0
  33. package/dist/ui/KtCodegenUiContracts.d.ts.map +1 -1
  34. package/dist/ui/index.d.ts +4 -0
  35. package/dist/ui/index.d.ts.map +1 -1
  36. package/dist/ui/index.js +4 -0
  37. package/dist/ui/index.js.map +1 -1
  38. package/package.json +6 -2
@@ -0,0 +1,72 @@
1
+ import { type KtCodegenApplyReportChange, type KtCodegenApplyReportHealth, type KtCodegenApplyReportItem, type KtCodegenApplyReportUiModel } from "./KtCodegenApplyReportModel.js";
2
+ export declare const KT_CODEGEN_APPLY_REPORT_SUMMARY_TAG_NAME = "kt-codegen-apply-report-summary";
3
+ export declare const KT_CODEGEN_APPLY_REPORT_TAG_NAME = "kt-codegen-apply-report";
4
+ export type KtCodegenApplyReportFilterDetail = {
5
+ readonly axis: "health";
6
+ readonly value: KtCodegenApplyReportHealth;
7
+ readonly selected: boolean;
8
+ } | {
9
+ readonly axis: "change";
10
+ readonly value: KtCodegenApplyReportChange;
11
+ readonly selected: boolean;
12
+ };
13
+ export type KtCodegenApplyReportActionDetail = {
14
+ readonly action: "openDocument";
15
+ readonly documentId: string;
16
+ } | {
17
+ readonly action: "openIssue";
18
+ readonly documentId: string;
19
+ readonly path: string;
20
+ readonly line?: number;
21
+ };
22
+ interface KtCodegenApplyReportSummaryModel {
23
+ readonly items: readonly KtCodegenApplyReportItem[];
24
+ readonly elapsedMilliseconds: number;
25
+ readonly interactive: boolean;
26
+ readonly health: ReadonlySet<KtCodegenApplyReportHealth>;
27
+ readonly change: ReadonlySet<KtCodegenApplyReportChange>;
28
+ }
29
+ export declare class KtCodegenApplyReportSummary extends HTMLElement {
30
+ private readonly root;
31
+ private currentModel;
32
+ get model(): KtCodegenApplyReportSummaryModel | undefined;
33
+ set model(value: KtCodegenApplyReportSummaryModel | undefined);
34
+ connectedCallback(): void;
35
+ private render;
36
+ private metric;
37
+ private filter;
38
+ }
39
+ export declare class KtCodegenApplyReport extends HTMLElement {
40
+ private readonly root;
41
+ private readonly summary;
42
+ private currentModel;
43
+ private documentId;
44
+ private readonly health;
45
+ private readonly change;
46
+ constructor();
47
+ get model(): KtCodegenApplyReportUiModel | undefined;
48
+ set model(value: KtCodegenApplyReportUiModel | undefined);
49
+ connectedCallback(): void;
50
+ private render;
51
+ private toolbar;
52
+ private documentLabel;
53
+ private stepButton;
54
+ private openDocumentButton;
55
+ private sectionTitle;
56
+ private itemTable;
57
+ private issueTable;
58
+ private link;
59
+ private status;
60
+ private cell;
61
+ private emptyRow;
62
+ private emit;
63
+ }
64
+ export declare function ktCodegenDefineApplyReportElements(): void;
65
+ declare global {
66
+ interface HTMLElementTagNameMap {
67
+ "kt-codegen-apply-report-summary": KtCodegenApplyReportSummary;
68
+ "kt-codegen-apply-report": KtCodegenApplyReport;
69
+ }
70
+ }
71
+ export {};
72
+ //# sourceMappingURL=KtCodegenApplyReport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KtCodegenApplyReport.d.ts","sourceRoot":"","sources":["../../src/ui/KtCodegenApplyReport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,331 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { ktCodegenApplyReportChangeLabel, ktCodegenApplyReportDuration, ktCodegenApplyReportHealthLabel, ktCodegenApplyReportTotals, ktCodegenFilterApplyReportItems, } from "./KtCodegenApplyReportModel.js";
3
+ export const KT_CODEGEN_APPLY_REPORT_SUMMARY_TAG_NAME = "kt-codegen-apply-report-summary";
4
+ export const KT_CODEGEN_APPLY_REPORT_TAG_NAME = "kt-codegen-apply-report";
5
+ const STYLE = `
6
+ :host { display: block; min-width: 0; color: var(--vscode-foreground, var(--text, #172033)); font: 13px/1.45 var(--vscode-font-family, system-ui, sans-serif); }
7
+ * { box-sizing: border-box; }
8
+ button, select, input { font: inherit; }
9
+ button, select { color: inherit; background: var(--vscode-button-secondaryBackground, var(--btn-bg, transparent)); border: 1px solid var(--vscode-panel-border, var(--border, #d7dde8)); border-radius: 3px; }
10
+ button { cursor: pointer; }
11
+ button:disabled { opacity: .5; cursor: default; }
12
+ button:focus-visible, select:focus-visible, input:focus-visible { outline: 1px solid var(--vscode-focusBorder, var(--accent, #2563eb)); outline-offset: 1px; }
13
+ .toolbar { display: flex; min-width: 0; align-items: center; gap: 6px; margin-bottom: 10px; }
14
+ .toolbar label { color: var(--vscode-descriptionForeground, var(--muted, #64748b)); }
15
+ .toolbar select { flex: 1 1 360px; min-width: 120px; max-width: 520px; padding: 4px 7px; color: var(--vscode-dropdown-foreground, inherit); background: var(--vscode-dropdown-background, var(--input-bg, transparent)); }
16
+ .toolbar button { min-height: 28px; padding: 3px 8px; }
17
+ .toolbar .step { min-width: 29px; padding-inline: 6px; font-size: 16px; }
18
+ .single-document { min-width: 0; flex: 1 1 auto; overflow: hidden; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
19
+ .summary { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 12px; }
20
+ .metric, .filter-chip { min-height: 28px; padding: 3px 8px; border: 1px solid var(--vscode-panel-border, var(--border, #d7dde8)); border-radius: 999px; background: var(--vscode-editorWidget-background, var(--panel-bg, transparent)); }
21
+ .metric { display: inline-flex; align-items: center; gap: 5px; color: var(--vscode-descriptionForeground, var(--muted, #64748b)); }
22
+ .metric strong, .filter-chip strong { color: var(--vscode-foreground, var(--text, #172033)); font-size: 12px; }
23
+ .filter-chip { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; user-select: none; }
24
+ .filter-chip:hover { background: var(--vscode-list-hoverBackground, var(--hover, rgba(37, 99, 235, .08))); }
25
+ .filter-chip input { width: 12px; height: 12px; margin: 0; accent-color: currentColor; }
26
+ .filter-chip.off { color: var(--vscode-descriptionForeground, var(--muted, #64748b)); opacity: .58; background: transparent; }
27
+ h2 { margin: 16px 0 7px; font-size: 14px; }
28
+ .table-wrap { max-width: 100%; overflow: auto; border: 1px solid var(--vscode-panel-border, var(--border, #d7dde8)); border-radius: 5px; }
29
+ table { width: 100%; min-width: 830px; border-collapse: collapse; font-size: 12px; }
30
+ th, td { padding: 7px 8px; border-right: 1px solid var(--vscode-panel-border, var(--border, #d7dde8)); border-bottom: 1px solid var(--vscode-panel-border, var(--border, #d7dde8)); text-align: left; vertical-align: top; }
31
+ th { position: sticky; z-index: 1; top: 0; background: var(--vscode-editorWidget-background, var(--panel-head-bg, #f5f7fb)); white-space: nowrap; }
32
+ tr:last-child td { border-bottom: 0; }
33
+ td:last-child, th:last-child { border-right: 0; }
34
+ .document-link, .issue-link { max-width: 100%; padding: 0; color: var(--vscode-textLink-foreground, var(--accent, #2563eb)); background: none; border: 0; text-align: left; overflow-wrap: anywhere; }
35
+ .document-link:hover, .issue-link:hover { color: var(--vscode-textLink-activeForeground, var(--accent, #1d4ed8)); text-decoration: underline; }
36
+ .document-path { display: block; max-width: 300px; overflow: hidden; color: var(--vscode-descriptionForeground, var(--muted, #64748b)); text-overflow: ellipsis; white-space: nowrap; }
37
+ .status { display: inline-block; padding: 1px 6px; border: 1px solid currentColor; border-radius: 999px; white-space: nowrap; }
38
+ .health-success, .change-updated, .change-unchanged { color: var(--vscode-testing-iconPassed, #15803d); }
39
+ .health-warning, .change-partial { color: var(--vscode-editorWarning-foreground, #b45309); }
40
+ .health-error, .change-not-applied { color: var(--vscode-errorForeground, #b91c1c); }
41
+ .empty { padding: 14px; color: var(--vscode-descriptionForeground, var(--muted, #64748b)); text-align: center; }
42
+ .issues table { table-layout: fixed; min-width: 720px; }
43
+ .issues th:nth-child(1) { width: 18%; } .issues th:nth-child(2) { width: 8%; } .issues th:nth-child(3) { width: 16%; } .issues th:nth-child(4) { width: 34%; } .issues th:nth-child(5) { width: 24%; }
44
+ .issues td { overflow-wrap: anywhere; }
45
+ @media (max-width: 640px) { .toolbar { align-items: stretch; flex-wrap: wrap; } .toolbar label { flex: 1 0 100%; } .toolbar select { max-width: none; } }
46
+ `;
47
+ export class KtCodegenApplyReportSummary extends HTMLElement {
48
+ root = this.attachShadow({ mode: "open" });
49
+ currentModel;
50
+ get model() { return this.currentModel; }
51
+ set model(value) { this.currentModel = value; this.render(); }
52
+ connectedCallback() { this.render(); }
53
+ render() {
54
+ if (!this.isConnected)
55
+ return;
56
+ const style = document.createElement("style");
57
+ style.textContent = STYLE;
58
+ const summary = document.createElement("div");
59
+ summary.className = "summary";
60
+ const model = this.currentModel;
61
+ if (!model) {
62
+ this.root.replaceChildren(style, summary);
63
+ return;
64
+ }
65
+ const totals = ktCodegenApplyReportTotals(model.items);
66
+ summary.append(this.metric("JSON", totals.total));
67
+ if (model.interactive) {
68
+ summary.append(this.filter("health", "success", "正常", totals.success, model.health.has("success")), this.filter("health", "warning", "警告", totals.warning, model.health.has("warning")), this.filter("health", "error", "错误", totals.error, model.health.has("error")), this.filter("change", "updated", "改写", totals.updated, model.change.has("updated")), this.filter("change", "unchanged", "一致", totals.unchanged, model.change.has("unchanged")), this.filter("change", "partial", "部分改写", totals.partial, model.change.has("partial")), this.filter("change", "not-applied", "未应用", totals.notApplied, model.change.has("not-applied")));
69
+ }
70
+ else if (model.items[0]) {
71
+ summary.append(this.metric(ktCodegenApplyReportHealthLabel(model.items[0].health), 1), this.metric(ktCodegenApplyReportChangeLabel(model.items[0].change), 1));
72
+ }
73
+ summary.append(this.metric("耗时", ktCodegenApplyReportDuration(model.elapsedMilliseconds)));
74
+ this.root.replaceChildren(style, summary);
75
+ }
76
+ metric(label, value) {
77
+ const metric = document.createElement("span");
78
+ metric.className = "metric";
79
+ const name = document.createElement("span");
80
+ name.textContent = label;
81
+ const count = document.createElement("strong");
82
+ count.textContent = String(value);
83
+ metric.append(name, count);
84
+ return metric;
85
+ }
86
+ filter(axis, value, label, count, selected) {
87
+ const chip = document.createElement("label");
88
+ chip.className = `filter-chip${selected ? "" : " off"}`;
89
+ const checkbox = document.createElement("input");
90
+ checkbox.type = "checkbox";
91
+ checkbox.checked = selected;
92
+ checkbox.setAttribute("aria-label", `筛选${label}`);
93
+ checkbox.onchange = () => this.dispatchEvent(new CustomEvent("kt-codegen-apply-report-filter-change", { bubbles: true, composed: true, detail: { axis, value, selected: checkbox.checked } }));
94
+ const name = document.createElement("span");
95
+ name.textContent = label;
96
+ const total = document.createElement("strong");
97
+ total.textContent = String(count);
98
+ chip.append(checkbox, name, total);
99
+ return chip;
100
+ }
101
+ }
102
+ export class KtCodegenApplyReport extends HTMLElement {
103
+ root = this.attachShadow({ mode: "open" });
104
+ summary = document.createElement(KT_CODEGEN_APPLY_REPORT_SUMMARY_TAG_NAME);
105
+ currentModel;
106
+ documentId = "";
107
+ health = new Set(["success", "warning", "error"]);
108
+ change = new Set(["updated", "unchanged", "partial", "not-applied"]);
109
+ constructor() {
110
+ super();
111
+ this.summary.addEventListener("kt-codegen-apply-report-filter-change", (event) => {
112
+ const detail = event.detail;
113
+ const values = detail.axis === "health" ? this.health : this.change;
114
+ if (detail.selected)
115
+ values.add(detail.value);
116
+ else
117
+ values.delete(detail.value);
118
+ this.render();
119
+ });
120
+ }
121
+ get model() { return this.currentModel; }
122
+ set model(value) {
123
+ this.currentModel = value;
124
+ if (this.documentId && !value?.items.some((item) => item.documentId === this.documentId))
125
+ this.documentId = "";
126
+ this.render();
127
+ }
128
+ connectedCallback() { this.render(); }
129
+ render() {
130
+ if (!this.isConnected)
131
+ return;
132
+ const style = document.createElement("style");
133
+ style.textContent = STYLE;
134
+ const model = this.currentModel;
135
+ if (!model) {
136
+ const empty = document.createElement("div");
137
+ empty.className = "empty";
138
+ empty.textContent = "暂无 Codegen 应用报告。";
139
+ this.root.replaceChildren(style, empty);
140
+ return;
141
+ }
142
+ const documentItems = this.documentId
143
+ ? model.items.filter((item) => item.documentId === this.documentId)
144
+ : model.items;
145
+ const visibleItems = ktCodegenFilterApplyReportItems(model.items, {
146
+ ...(this.documentId ? { documentId: this.documentId } : {}),
147
+ health: this.health,
148
+ change: this.change,
149
+ });
150
+ this.summary.model = {
151
+ items: documentItems,
152
+ elapsedMilliseconds: documentItems.length === 1
153
+ ? documentItems[0].elapsedMilliseconds
154
+ : model.elapsedMilliseconds,
155
+ interactive: documentItems.length !== 1,
156
+ health: this.health,
157
+ change: this.change,
158
+ };
159
+ this.root.replaceChildren(style, this.toolbar(model), this.summary, this.sectionTitle("运行明细"), this.itemTable(visibleItems), this.sectionTitle("问题列表"), this.issueTable(visibleItems));
160
+ }
161
+ toolbar(model) {
162
+ const toolbar = document.createElement("div");
163
+ toolbar.className = "toolbar";
164
+ const label = document.createElement("label");
165
+ label.textContent = "JSON";
166
+ if (model.items.length === 1) {
167
+ const single = document.createElement("span");
168
+ single.className = "single-document";
169
+ single.textContent = this.documentLabel(model.items[0]);
170
+ single.title = model.items[0].displayPath;
171
+ toolbar.append(label, single, this.openDocumentButton(model.items[0].documentId));
172
+ return toolbar;
173
+ }
174
+ const select = document.createElement("select");
175
+ select.setAttribute("aria-label", "筛选报告中的 JSON");
176
+ select.append(new Option(`全部 JSON(${model.items.length})`, ""));
177
+ for (const item of model.items)
178
+ select.append(new Option(this.documentLabel(item), item.documentId));
179
+ select.value = this.documentId;
180
+ select.onchange = () => { this.documentId = select.value; this.render(); };
181
+ const previous = this.stepButton("‹", -1, model);
182
+ const next = this.stepButton("›", 1, model);
183
+ toolbar.append(label, select, previous, next, this.openDocumentButton(this.documentId));
184
+ return toolbar;
185
+ }
186
+ documentLabel(item) {
187
+ return `${ktCodegenApplyReportHealthLabel(item.health)} · ${ktCodegenApplyReportChangeLabel(item.change)}|${item.fileName}`;
188
+ }
189
+ stepButton(label, offset, model) {
190
+ const button = document.createElement("button");
191
+ button.type = "button";
192
+ button.className = "step";
193
+ button.textContent = label;
194
+ button.title = offset < 0 ? "上一个 JSON" : "下一个 JSON";
195
+ button.onclick = () => {
196
+ const ids = ["", ...model.items.map((item) => item.documentId)];
197
+ const current = Math.max(0, ids.indexOf(this.documentId));
198
+ this.documentId = ids[(current + offset + ids.length) % ids.length];
199
+ this.render();
200
+ };
201
+ return button;
202
+ }
203
+ openDocumentButton(documentId) {
204
+ const button = document.createElement("button");
205
+ button.type = "button";
206
+ button.textContent = "打开 JSON";
207
+ button.disabled = !documentId;
208
+ button.onclick = () => this.emit({ action: "openDocument", documentId });
209
+ return button;
210
+ }
211
+ sectionTitle(text) {
212
+ const title = document.createElement("h2");
213
+ title.textContent = text;
214
+ return title;
215
+ }
216
+ itemTable(items) {
217
+ const wrapper = document.createElement("div");
218
+ wrapper.className = "table-wrap";
219
+ const table = document.createElement("table");
220
+ const head = document.createElement("thead");
221
+ const header = document.createElement("tr");
222
+ for (const label of ["JSON", "结果", "源码变化", "命中区域", "产物", "诊断", "预检错误", "修改文件", "写入区域", "耗时"]) {
223
+ const cell = document.createElement("th");
224
+ cell.textContent = label;
225
+ header.append(cell);
226
+ }
227
+ head.append(header);
228
+ const body = document.createElement("tbody");
229
+ if (!items.length)
230
+ this.emptyRow(body, 10, "当前筛选没有运行明细。");
231
+ for (const item of items) {
232
+ const row = document.createElement("tr");
233
+ const documentCell = document.createElement("td");
234
+ const link = this.link(item.fileName, () => this.emit({ action: "openDocument", documentId: item.documentId }), "document-link");
235
+ const path = document.createElement("small");
236
+ path.className = "document-path";
237
+ path.textContent = item.displayPath;
238
+ path.title = item.displayPath;
239
+ documentCell.append(link, path);
240
+ row.append(documentCell);
241
+ this.cell(row, this.status(ktCodegenApplyReportHealthLabel(item.health), `health-${item.health}`));
242
+ this.cell(row, this.status(ktCodegenApplyReportChangeLabel(item.change), `change-${item.change}`));
243
+ for (const value of [item.preflightRegionCount, item.preflightArtifactCount, item.preflightDiagnosticCount, item.preflightErrorCount, item.modifiedFileCount, item.writtenRegionCount, ktCodegenApplyReportDuration(item.elapsedMilliseconds)])
244
+ this.cell(row, value);
245
+ body.append(row);
246
+ }
247
+ table.append(head, body);
248
+ wrapper.append(table);
249
+ return wrapper;
250
+ }
251
+ issueTable(items) {
252
+ const wrapper = document.createElement("div");
253
+ wrapper.className = "table-wrap issues";
254
+ const table = document.createElement("table");
255
+ const head = document.createElement("thead");
256
+ const header = document.createElement("tr");
257
+ for (const label of ["JSON", "级别", "代码", "说明", "位置"]) {
258
+ const cell = document.createElement("th");
259
+ cell.textContent = label;
260
+ header.append(cell);
261
+ }
262
+ head.append(header);
263
+ const body = document.createElement("tbody");
264
+ let count = 0;
265
+ for (const item of items) {
266
+ for (const issue of item.issues) {
267
+ count += 1;
268
+ const row = document.createElement("tr");
269
+ this.cell(row, this.link(item.fileName, () => this.emit({ action: "openDocument", documentId: item.documentId }), "document-link"));
270
+ this.cell(row, issue.severity === "error" ? "错误" : "警告");
271
+ const code = document.createElement("code");
272
+ code.textContent = issue.code;
273
+ this.cell(row, code);
274
+ this.cell(row, issue.message);
275
+ const location = issue.path ? `${issue.path}${issue.line === undefined ? "" : `:${issue.line}`}` : "—";
276
+ this.cell(row, issue.path
277
+ ? this.link(location, () => this.emit({ action: "openIssue", documentId: item.documentId, path: issue.path, ...(issue.line === undefined ? {} : { line: issue.line }) }), "issue-link")
278
+ : location);
279
+ body.append(row);
280
+ }
281
+ }
282
+ if (!count)
283
+ this.emptyRow(body, 5, "当前筛选没有错误或警告。");
284
+ table.append(head, body);
285
+ wrapper.append(table);
286
+ return wrapper;
287
+ }
288
+ link(label, action, className) {
289
+ const button = document.createElement("button");
290
+ button.type = "button";
291
+ button.className = className;
292
+ button.textContent = label;
293
+ button.onclick = action;
294
+ return button;
295
+ }
296
+ status(label, tone) {
297
+ const value = document.createElement("span");
298
+ value.className = `status ${tone}`;
299
+ value.textContent = label;
300
+ return value;
301
+ }
302
+ cell(row, content) {
303
+ const cell = document.createElement("td");
304
+ if (content instanceof Node)
305
+ cell.append(content);
306
+ else
307
+ cell.textContent = String(content);
308
+ row.append(cell);
309
+ }
310
+ emptyRow(body, span, message) {
311
+ const row = document.createElement("tr");
312
+ const cell = document.createElement("td");
313
+ cell.colSpan = span;
314
+ cell.className = "empty";
315
+ cell.textContent = message;
316
+ row.append(cell);
317
+ body.append(row);
318
+ }
319
+ emit(detail) {
320
+ this.dispatchEvent(new CustomEvent("kt-codegen-apply-report-action", { bubbles: true, composed: true, detail }));
321
+ }
322
+ }
323
+ export function ktCodegenDefineApplyReportElements() {
324
+ if (!customElements.get(KT_CODEGEN_APPLY_REPORT_SUMMARY_TAG_NAME)) {
325
+ customElements.define(KT_CODEGEN_APPLY_REPORT_SUMMARY_TAG_NAME, KtCodegenApplyReportSummary);
326
+ }
327
+ if (!customElements.get(KT_CODEGEN_APPLY_REPORT_TAG_NAME)) {
328
+ customElements.define(KT_CODEGEN_APPLY_REPORT_TAG_NAME, KtCodegenApplyReport);
329
+ }
330
+ }
331
+ //# sourceMappingURL=KtCodegenApplyReport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KtCodegenApplyReport.js","sourceRoot":"","sources":["../../src/ui/KtCodegenApplyReport.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,EAC5B,+BAA+B,EAC/B,0BAA0B,EAC1B,+BAA+B,GAKhC,MAAM,gCAAgC,CAAC;AAExC,MAAM,CAAC,MAAM,wCAAwC,GAAG,iCAAiC,CAAC;AAC1F,MAAM,CAAC,MAAM,gCAAgC,GAAG,yBAAyB,CAAC;AAuB1E,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCb,CAAC;AAEF,MAAM,OAAO,2BAA4B,SAAQ,WAAW;IACzC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,YAAY,CAA+C;IAEnE,IAAI,KAAK,KAAmD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,IAAI,KAAK,CAAC,KAAmD,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5G,iBAAiB,KAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEpC,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;QAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EACnF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EACnF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAC7E,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EACnF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EACzF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EACrF,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAChG,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,CACZ,IAAI,CAAC,MAAM,CAAC,+BAA+B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EACtE,IAAI,CAAC,MAAM,CAAC,+BAA+B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CACvE,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEO,MAAM,CAAC,KAAa,EAAE,KAAsB;QAClD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CACZ,IAAW,EACX,KAAuF,EACvF,KAAa,EACb,KAAa,EACb,QAAiB;QAEjB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,cAAc,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACjD,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;QAC3B,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;QAC5B,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,KAAK,EAAE,CAAC,CAAC;QAClD,QAAQ,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAC1D,uCAAuC,EACvC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAsC,EAAE,CAC3H,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IAClC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,wCAAwC,CAAgC,CAAC;IACnH,YAAY,CAA0C;IACtD,UAAU,GAAG,EAAE,CAAC;IACP,MAAM,GAAG,IAAI,GAAG,CAA6B,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9E,MAAM,GAAG,IAAI,GAAG,CAA6B,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IAElH;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,uCAAuC,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/E,MAAM,MAAM,GAAI,KAAuD,CAAC,MAAM,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YACpE,IAAI,MAAM,CAAC,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAc,CAAC,CAAC;;gBAClD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAc,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,KAA8C,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAClF,IAAI,KAAK,CAAC,KAA8C;QACtD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAC/G,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IACD,iBAAiB,KAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEpC,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC5C,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;YAC1B,KAAK,CAAC,WAAW,GAAG,kBAAkB,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACxC,OAAO;QACT,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU;YACnC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC;YACnE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAChB,MAAM,YAAY,GAAG,+BAA+B,CAAC,KAAK,CAAC,KAAK,EAAE;YAChE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG;YACnB,KAAK,EAAE,aAAa;YACpB,mBAAmB,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC;gBAC7C,CAAC,CAAC,aAAa,CAAC,CAAC,CAAE,CAAC,mBAAmB;gBACvC,CAAC,CAAC,KAAK,CAAC,mBAAmB;YAC7B,WAAW,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,eAAe,CACvB,KAAK,EACL,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EACnB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EACzB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAC5B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EACzB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAC9B,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,KAAkC;QAChD,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;QAC3B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,CAAC,SAAS,GAAG,iBAAiB,CAAC;YACrC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,WAAW,CAAC;YAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YACnF,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAChE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACrG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa,CAAC,IAA8B;QAClD,OAAO,GAAG,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9H,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,MAAc,EAAE,KAAkC;QAClF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;QAC1B,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,MAAM,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;QACpD,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YACpB,MAAM,GAAG,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAE,CAAC;YACrE,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,kBAAkB,CAAC,UAAkB;QAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,MAAM,CAAC,QAAQ,GAAG,CAAC,UAAU,CAAC;QAC9B,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,CAAC;QACzE,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACzB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,SAAS,CAAC,KAA0C;QAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC7F,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,aAAa,CAAC,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;YACjI,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACnG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACnG,KAAK,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,UAAU,CAAC,KAA0C;QAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,KAAK,IAAI,CAAC,CAAC;gBACX,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;gBACpI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBACjG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBACvG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI;oBACvB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,IAAK,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC;oBACxL,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;QACnD,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,IAAI,CAAC,KAAa,EAAE,MAAkB,EAAE,SAAiB;QAC/D,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,KAAa,EAAE,IAAY;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7C,KAAK,CAAC,SAAS,GAAG,UAAU,IAAI,EAAE,CAAC;QACnC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,IAAI,CAAC,GAAwB,EAAE,OAA+B;QACpE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,OAAO,YAAY,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;;YAAM,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3F,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAEO,QAAQ,CAAC,IAA6B,EAAE,IAAY,EAAE,OAAe;QAC3E,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAEO,IAAI,CAAC,MAAwC;QACnD,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAChC,gCAAgC,EAChC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAC1C,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,kCAAkC;IAChD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,wCAAwC,CAAC,EAAE,CAAC;QAClE,cAAc,CAAC,MAAM,CAAC,wCAAwC,EAAE,2BAA2B,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE,CAAC;QAC1D,cAAc,CAAC,MAAM,CAAC,gCAAgC,EAAE,oBAAoB,CAAC,CAAC;IAChF,CAAC;AACH,CAAC"}
@@ -0,0 +1,73 @@
1
+ export declare const KT_CODEGEN_APPLY_REPORT_KIND: "kt.codegen.apply-report";
2
+ export declare const KT_CODEGEN_APPLY_REPORT_SCHEMA_VERSION: 1;
3
+ export type KtCodegenApplyReportHealth = "success" | "warning" | "error";
4
+ export type KtCodegenApplyReportChange = "updated" | "unchanged" | "partial" | "not-applied";
5
+ export interface KtCodegenApplyReportIssue {
6
+ readonly severity: "error" | "warning";
7
+ readonly code: string;
8
+ readonly message: string;
9
+ readonly path?: string;
10
+ /** 用户可见的 1-based 行号。 */
11
+ readonly line?: number;
12
+ }
13
+ export interface KtCodegenApplyReportItem {
14
+ /** Host 自己可验证并重新打开的稳定文档身份;组件不解释其格式。 */
15
+ readonly documentId: string;
16
+ readonly fileName: string;
17
+ readonly displayPath: string;
18
+ readonly health: KtCodegenApplyReportHealth;
19
+ readonly change: KtCodegenApplyReportChange;
20
+ readonly reasonCode: string;
21
+ readonly errorCount: number;
22
+ readonly preflightRegionCount: number;
23
+ readonly preflightArtifactCount: number;
24
+ readonly preflightDiagnosticCount: number;
25
+ readonly preflightErrorCount: number;
26
+ readonly modifiedFileCount: number;
27
+ readonly writtenRegionCount: number;
28
+ readonly elapsedMilliseconds: number;
29
+ readonly message?: string;
30
+ readonly issues: readonly KtCodegenApplyReportIssue[];
31
+ }
32
+ export interface KtCodegenApplyReportTotals {
33
+ readonly total: number;
34
+ readonly success: number;
35
+ readonly warning: number;
36
+ readonly error: number;
37
+ readonly updated: number;
38
+ readonly unchanged: number;
39
+ readonly partial: number;
40
+ readonly notApplied: number;
41
+ }
42
+ export interface KtCodegenApplyReportUiModel {
43
+ readonly kind: typeof KT_CODEGEN_APPLY_REPORT_KIND;
44
+ readonly schemaVersion: typeof KT_CODEGEN_APPLY_REPORT_SCHEMA_VERSION;
45
+ readonly reportId: string;
46
+ readonly applyKind: "single" | "batch";
47
+ readonly startedAt: string;
48
+ readonly finishedAt: string;
49
+ readonly elapsedMilliseconds: number;
50
+ readonly items: readonly KtCodegenApplyReportItem[];
51
+ readonly totals: KtCodegenApplyReportTotals;
52
+ readonly errorCount: number;
53
+ readonly warningCount: number;
54
+ }
55
+ export interface KtCodegenApplyReportFilter {
56
+ readonly documentId?: string;
57
+ readonly health?: ReadonlySet<KtCodegenApplyReportHealth>;
58
+ readonly change?: ReadonlySet<KtCodegenApplyReportChange>;
59
+ }
60
+ export declare function ktCodegenApplyReportTotals(items: readonly Pick<KtCodegenApplyReportItem, "health" | "change">[]): KtCodegenApplyReportTotals;
61
+ export declare function ktCodegenBuildApplyReport(input: {
62
+ readonly reportId: string;
63
+ readonly applyKind: "single" | "batch";
64
+ readonly startedAt: string;
65
+ readonly finishedAt: string;
66
+ readonly elapsedMilliseconds: number;
67
+ readonly items: readonly KtCodegenApplyReportItem[];
68
+ }): KtCodegenApplyReportUiModel;
69
+ export declare function ktCodegenFilterApplyReportItems(items: readonly KtCodegenApplyReportItem[], filter: KtCodegenApplyReportFilter): readonly KtCodegenApplyReportItem[];
70
+ export declare function ktCodegenApplyReportHealthLabel(value: KtCodegenApplyReportHealth): string;
71
+ export declare function ktCodegenApplyReportChangeLabel(value: KtCodegenApplyReportChange): string;
72
+ export declare function ktCodegenApplyReportDuration(milliseconds: number): string;
73
+ //# sourceMappingURL=KtCodegenApplyReportModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KtCodegenApplyReportModel.d.ts","sourceRoot":"","sources":["../../src/ui/KtCodegenApplyReportModel.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,EAAG,yBAAkC,CAAC;AAC/E,eAAO,MAAM,sCAAsC,EAAG,CAAU,CAAC;AAEjE,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AACzE,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;AAE7F,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wBAAwB;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,OAAO,4BAA4B,CAAC;IACnD,QAAQ,CAAC,aAAa,EAAE,OAAO,sCAAsC,CAAC;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACpD,QAAQ,CAAC,MAAM,EAAE,0BAA0B,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,0BAA0B,CAAC,CAAC;CAC3D;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,SAAS,IAAI,CAAC,wBAAwB,EAAE,QAAQ,GAAG,QAAQ,CAAC,EAAE,GACpE,0BAA0B,CAW5B;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACrD,GAAG,2BAA2B,CAmB9B;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,SAAS,wBAAwB,EAAE,EAC1C,MAAM,EAAE,0BAA0B,GACjC,SAAS,wBAAwB,EAAE,CASrC;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAEzF;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,0BAA0B,GAAG,MAAM,CAEzF;AAED,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAKzE"}
@@ -0,0 +1,59 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export const KT_CODEGEN_APPLY_REPORT_KIND = "kt.codegen.apply-report";
3
+ export const KT_CODEGEN_APPLY_REPORT_SCHEMA_VERSION = 1;
4
+ export function ktCodegenApplyReportTotals(items) {
5
+ return {
6
+ total: items.length,
7
+ success: items.filter((item) => item.health === "success").length,
8
+ warning: items.filter((item) => item.health === "warning").length,
9
+ error: items.filter((item) => item.health === "error").length,
10
+ updated: items.filter((item) => item.change === "updated").length,
11
+ unchanged: items.filter((item) => item.change === "unchanged").length,
12
+ partial: items.filter((item) => item.change === "partial").length,
13
+ notApplied: items.filter((item) => item.change === "not-applied").length,
14
+ };
15
+ }
16
+ export function ktCodegenBuildApplyReport(input) {
17
+ const duration = Number.isFinite(input.elapsedMilliseconds)
18
+ ? Math.max(0, Math.round(input.elapsedMilliseconds))
19
+ : 0;
20
+ return {
21
+ kind: KT_CODEGEN_APPLY_REPORT_KIND,
22
+ schemaVersion: KT_CODEGEN_APPLY_REPORT_SCHEMA_VERSION,
23
+ reportId: input.reportId,
24
+ applyKind: input.applyKind,
25
+ startedAt: input.startedAt,
26
+ finishedAt: input.finishedAt,
27
+ elapsedMilliseconds: duration,
28
+ items: [...input.items],
29
+ totals: ktCodegenApplyReportTotals(input.items),
30
+ errorCount: input.items.reduce((count, item) => count
31
+ + item.issues.filter((issue) => issue.severity === "error").length, 0),
32
+ warningCount: input.items.reduce((count, item) => count
33
+ + item.issues.filter((issue) => issue.severity === "warning").length, 0),
34
+ };
35
+ }
36
+ export function ktCodegenFilterApplyReportItems(items, filter) {
37
+ const documents = filter.documentId
38
+ ? items.filter((item) => item.documentId === filter.documentId)
39
+ : items;
40
+ if (documents.length === 1)
41
+ return documents;
42
+ return documents.filter((item) => ((!filter.health || filter.health.has(item.health))
43
+ && (!filter.change || filter.change.has(item.change))));
44
+ }
45
+ export function ktCodegenApplyReportHealthLabel(value) {
46
+ return value === "success" ? "正常" : value === "warning" ? "警告" : "错误";
47
+ }
48
+ export function ktCodegenApplyReportChangeLabel(value) {
49
+ return value === "updated" ? "改写" : value === "unchanged" ? "一致" : value === "partial" ? "部分改写" : "未应用";
50
+ }
51
+ export function ktCodegenApplyReportDuration(milliseconds) {
52
+ const value = Number.isFinite(milliseconds) ? Math.max(0, Math.round(milliseconds)) : 0;
53
+ if (value < 1_000)
54
+ return `${value} ms`;
55
+ if (value < 10_000)
56
+ return `${(value / 1_000).toFixed(2)} s`;
57
+ return `${(value / 1_000).toFixed(1)} s`;
58
+ }
59
+ //# sourceMappingURL=KtCodegenApplyReportModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KtCodegenApplyReportModel.js","sourceRoot":"","sources":["../../src/ui/KtCodegenApplyReportModel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { KtCodegenControlUiModel } from "./KtCodegenUiContracts.js";
2
+ export declare const KT_CODEGEN_CONTROL_CATALOG_TAG_NAME = "kt-codegen-control-catalog";
3
+ export declare class KtCodegenControlCatalog extends HTMLElement {
4
+ private readonly root;
5
+ private currentModel;
6
+ private currentDisabled;
7
+ private currentOutputEnabled;
8
+ private filter;
9
+ private singleMode;
10
+ private listScrollTop;
11
+ private focusedBlockKey;
12
+ private readonly rowChecks;
13
+ private readonly groupSelection;
14
+ private readonly expandedGroups;
15
+ get model(): KtCodegenControlUiModel | undefined;
16
+ set model(value: KtCodegenControlUiModel | undefined);
17
+ get disabled(): boolean;
18
+ set disabled(value: boolean);
19
+ get outputEnabled(): boolean;
20
+ set outputEnabled(value: boolean);
21
+ connectedCallback(): void;
22
+ private render;
23
+ private blockRow;
24
+ private visibleBlocks;
25
+ private selection;
26
+ private applySelection;
27
+ private syncSelectionPresentation;
28
+ private canPatchSelection;
29
+ private setFilter;
30
+ private statusLabel;
31
+ private groupCount;
32
+ private empty;
33
+ private emit;
34
+ }
35
+ export declare function ktCodegenDefineControlCatalogElement(tagName?: string): typeof KtCodegenControlCatalog;
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ "kt-codegen-control-catalog": KtCodegenControlCatalog;
39
+ }
40
+ }
41
+ //# sourceMappingURL=KtCodegenControlCatalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KtCodegenControlCatalog.d.ts","sourceRoot":"","sources":["../../src/ui/KtCodegenControlCatalog.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAGV,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,mCAAmC,+BAA+B,CAAC;AAyDhF,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAC5D,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,MAAM,CAAkE;IAChF,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkD;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAK1B;IACL,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF,IAAI,KAAK,IAAI,uBAAuB,GAAG,SAAS,CAA8B;IAC9E,IAAI,KAAK,CAAC,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAWnD;IAED,IAAI,QAAQ,IAAI,OAAO,CAAiC;IACxD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAI1B;IAED,IAAI,aAAa,IAAI,OAAO,CAAsC;IAClE,IAAI,aAAa,CAAC,KAAK,EAAE,OAAO,EAI/B;IAED,iBAAiB,IAAI,IAAI;IAEzB,OAAO,CAAC,MAAM;IA2Hd,OAAO,CAAC,QAAQ;IAsEhB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,yBAAyB;IAcjC,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,IAAI;CAGb;AAED,wBAAgB,oCAAoC,CAClD,OAAO,SAAsC,GAC5C,OAAO,uBAAuB,CAKhC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,4BAA4B,EAAE,uBAAuB,CAAC;KACvD;CACF"}