@phoenix-wing/code-core 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +3 -1
  2. package/dist/index.d.ts +2 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/pnwCodeIgnore.d.ts +26 -0
  7. package/dist/pnwCodeIgnore.d.ts.map +1 -0
  8. package/dist/pnwCodeIgnore.js +115 -0
  9. package/dist/pnwCodeIgnore.js.map +1 -0
  10. package/dist/pnwCodeRenamePlan.d.ts.map +1 -1
  11. package/dist/pnwCodeRenamePlan.js +9 -16
  12. package/dist/pnwCodeRenamePlan.js.map +1 -1
  13. package/dist/pnwCodeReplacementRules.d.ts +40 -0
  14. package/dist/pnwCodeReplacementRules.d.ts.map +1 -0
  15. package/dist/pnwCodeReplacementRules.js +87 -0
  16. package/dist/pnwCodeReplacementRules.js.map +1 -0
  17. package/dist/ui/PnwCodeRenameResultsPanel.d.ts +40 -0
  18. package/dist/ui/PnwCodeRenameResultsPanel.d.ts.map +1 -0
  19. package/dist/ui/PnwCodeRenameResultsPanel.js +120 -0
  20. package/dist/ui/PnwCodeRenameResultsPanel.js.map +1 -0
  21. package/dist/ui/PnwCodeRenameResultsState.d.ts +59 -0
  22. package/dist/ui/PnwCodeRenameResultsState.d.ts.map +1 -0
  23. package/dist/ui/PnwCodeRenameResultsState.js +87 -0
  24. package/dist/ui/PnwCodeRenameResultsState.js.map +1 -0
  25. package/dist/ui/PnwCodeReorderMembersPanel.d.ts +38 -0
  26. package/dist/ui/PnwCodeReorderMembersPanel.d.ts.map +1 -0
  27. package/dist/ui/PnwCodeReorderMembersPanel.js +216 -0
  28. package/dist/ui/PnwCodeReorderMembersPanel.js.map +1 -0
  29. package/dist/ui/PnwCodeReorderMembersPanelState.d.ts +57 -0
  30. package/dist/ui/PnwCodeReorderMembersPanelState.d.ts.map +1 -0
  31. package/dist/ui/PnwCodeReorderMembersPanelState.js +71 -0
  32. package/dist/ui/PnwCodeReorderMembersPanelState.js.map +1 -0
  33. package/dist/ui/PnwCodeUuidResultsPanel.d.ts +63 -0
  34. package/dist/ui/PnwCodeUuidResultsPanel.d.ts.map +1 -0
  35. package/dist/ui/PnwCodeUuidResultsPanel.js +193 -0
  36. package/dist/ui/PnwCodeUuidResultsPanel.js.map +1 -0
  37. package/dist/ui/PnwCodeUuidResultsState.d.ts +47 -0
  38. package/dist/ui/PnwCodeUuidResultsState.d.ts.map +1 -0
  39. package/dist/ui/PnwCodeUuidResultsState.js +84 -0
  40. package/dist/ui/PnwCodeUuidResultsState.js.map +1 -0
  41. package/dist/ui/index.d.ts +5 -0
  42. package/dist/ui/index.d.ts.map +1 -0
  43. package/dist/ui/index.js +6 -0
  44. package/dist/ui/index.js.map +1 -0
  45. package/dist/ui/model.d.ts +4 -0
  46. package/dist/ui/model.d.ts.map +1 -0
  47. package/dist/ui/model.js +5 -0
  48. package/dist/ui/model.js.map +1 -0
  49. package/package.json +9 -1
  50. package/src/fixtures/pnx_bom_analysis_cmd_min.cpp +42 -2
  51. package/src/fixtures/pnx_bom_analysis_param_min.h +19 -3
  52. package/src/index.ts +24 -0
@@ -0,0 +1,63 @@
1
+ import { type PnwCodeUuidFileResultRow, type PnwCodeUuidResultHit } from "./PnwCodeUuidResultsState.js";
2
+ export declare const PNW_CODE_UUID_RESULTS_PANEL_TAG = "pnw-code-uuid-results-panel";
3
+ export declare const PNW_CODE_UUID_RESULTS_ACTION = "pnw-code-uuid-results-action";
4
+ export interface PnwCodeUuidResultsCapabilities {
5
+ readonly selection?: boolean;
6
+ readonly open?: boolean;
7
+ readonly apply?: boolean;
8
+ readonly cancel?: boolean;
9
+ readonly gitDiff?: boolean;
10
+ }
11
+ export interface PnwCodeUuidResultsPanelModel {
12
+ readonly presentation: "hits" | "files";
13
+ readonly running?: boolean;
14
+ readonly hits?: readonly PnwCodeUuidResultHit[];
15
+ readonly files?: readonly PnwCodeUuidFileResultRow[];
16
+ readonly selectedIds?: readonly string[];
17
+ readonly emptyMessage?: string;
18
+ readonly capabilities?: PnwCodeUuidResultsCapabilities;
19
+ }
20
+ export type PnwCodeUuidResultsActionDetail = {
21
+ readonly kind: "selection";
22
+ readonly scope: "hit" | "file";
23
+ readonly ids: readonly string[];
24
+ } | {
25
+ readonly kind: "action";
26
+ readonly scope: "hit" | "file";
27
+ readonly action: "open" | "apply" | "cancel" | "gitDiff";
28
+ readonly ids: readonly string[];
29
+ };
30
+ export declare class PnwCodeUuidResultsPanel extends HTMLElement {
31
+ private readonly root;
32
+ private currentModel;
33
+ private selectedIds;
34
+ get model(): PnwCodeUuidResultsPanelModel | undefined;
35
+ set model(value: PnwCodeUuidResultsPanelModel | undefined);
36
+ connectedCallback(): void;
37
+ private enabled;
38
+ private sanitizeSelection;
39
+ private render;
40
+ private renderHits;
41
+ private renderFiles;
42
+ private hitRow;
43
+ private fileRow;
44
+ private actionButtons;
45
+ private groupCheckbox;
46
+ private itemCheckbox;
47
+ private updateSelection;
48
+ private stateBadge;
49
+ private icon;
50
+ private empty;
51
+ private span;
52
+ private basename;
53
+ private dirname;
54
+ private emitAction;
55
+ private emit;
56
+ }
57
+ export declare function pnwCodeDefineUuidResultsPanel(tagName?: string): typeof PnwCodeUuidResultsPanel;
58
+ declare global {
59
+ interface HTMLElementTagNameMap {
60
+ "pnw-code-uuid-results-panel": PnwCodeUuidResultsPanel;
61
+ }
62
+ }
63
+ //# sourceMappingURL=PnwCodeUuidResultsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PnwCodeUuidResultsPanel.d.ts","sourceRoot":"","sources":["../../src/ui/PnwCodeUuidResultsPanel.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EAE1B,MAAM,8BAA8B,CAAC;AAEtC,eAAO,MAAM,+BAA+B,gCAAgC,CAAC;AAC7E,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,8BAA8B,CAAC;CACxD;AAED,MAAM,MAAM,8BAA8B,GACtC;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAC/F;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzD,QAAQ,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC;AAwBN,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuC;IAC5D,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,WAAW,CAAyB;IAE5C,IAAI,KAAK,IAAI,4BAA4B,GAAG,SAAS,CAA8B;IACnF,IAAI,KAAK,CAAC,KAAK,EAAE,4BAA4B,GAAG,SAAS,EAIxD;IAED,iBAAiB,IAAI,IAAI;IAEzB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,IAAI;CACb;AAED,wBAAgB,6BAA6B,CAAC,OAAO,SAAkC,GAAG,OAAO,uBAAuB,CAGvH;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,6BAA6B,EAAE,uBAAuB,CAAC;KAAE;CAAE"}
@@ -0,0 +1,193 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { pnwCodeGroupUuidHits, pnwCodeSelectUuidFileUris, pnwCodeSelectUuidHitIds, } from "./PnwCodeUuidResultsState.js";
3
+ export const PNW_CODE_UUID_RESULTS_PANEL_TAG = "pnw-code-uuid-results-panel";
4
+ export const PNW_CODE_UUID_RESULTS_ACTION = "pnw-code-uuid-results-action";
5
+ const STATE_LABEL = {
6
+ pending: "待替换",
7
+ cancelled: "已移除",
8
+ applied: "已改写",
9
+ blocked: "错误",
10
+ };
11
+ const STYLE = `
12
+ :host{display:block;min-width:0;max-width:100%;color:var(--vscode-foreground,var(--text,#172033));font:12px/1.4 var(--vscode-font-family,system-ui,sans-serif)}
13
+ :host([hidden]){display:none}*{box-sizing:border-box}button,input{font:inherit}button{cursor:pointer}
14
+ button:focus-visible,input:focus-visible{outline:1px solid var(--vscode-focusBorder,var(--accent,#2563eb));outline-offset:1px}
15
+ .panel{min-width:0;max-width:100%;overflow:auto;border:1px solid var(--vscode-panel-border,var(--border,#d7dde8));border-radius:6px;background:var(--vscode-editor-background,var(--panel-bg,#fff))}
16
+ .group+.group{border-top:1px solid var(--vscode-panel-border,var(--border,#d7dde8))}.group-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:7px;min-height:32px;padding:5px 9px;background:var(--vscode-editorWidget-background,var(--panel-head-bg,#eef2ff))}
17
+ .group-title{font-weight:650}.identity{min-width:0;overflow:hidden;color:var(--vscode-descriptionForeground,var(--muted,#64748b));font:11px/1.3 var(--vscode-editor-font-family,monospace);text-overflow:ellipsis;white-space:nowrap}.count{margin-left:auto;color:var(--vscode-descriptionForeground,var(--muted,#64748b));white-space:nowrap}
18
+ .list{margin:0;padding:0;list-style:none}.row{display:flex;align-items:center;gap:7px;min-width:0;min-height:35px;padding:4px 8px;border-top:1px solid color-mix(in srgb,var(--vscode-panel-border,var(--border,#d7dde8)) 65%,transparent)}.row:hover{background:var(--vscode-list-hoverBackground,var(--hover,rgba(37,99,235,.08)))}
19
+ .main{display:block;flex:1 1 auto;min-width:0;overflow:hidden}.path{display:block;overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.detail{display:block;overflow:hidden;color:var(--vscode-descriptionForeground,var(--muted,#64748b));font-size:11px;text-overflow:ellipsis;white-space:nowrap}.clickable{cursor:pointer}.clickable:hover .path{text-decoration:underline}
20
+ .mapping{flex:0 1 46%;min-width:90px;overflow:hidden;color:var(--vscode-descriptionForeground,var(--muted,#64748b));font:11px/1.3 var(--vscode-editor-font-family,monospace);text-overflow:ellipsis;white-space:nowrap}.mapping strong{color:var(--vscode-testing-iconPassed,#15803d);font-weight:500}
21
+ .actions{display:flex;flex:0 0 auto;gap:2px;opacity:0}.row:hover .actions,.actions:focus-within{opacity:1}.icon{width:26px;height:26px;padding:0;color:inherit;background:transparent;border:1px solid transparent;border-radius:3px}.icon:hover{background:var(--vscode-toolbar-hoverBackground,var(--hover,rgba(37,99,235,.08)));border-color:var(--vscode-panel-border,var(--border,#d7dde8))}
22
+ .state{flex:0 0 auto;padding:1px 6px;border:1px solid currentColor;border-radius:999px;color:var(--vscode-descriptionForeground,var(--muted,#64748b));font-size:10px;white-space:nowrap}.state.pending{color:var(--vscode-gitDecoration-modifiedResourceForeground,#b45309)}.state.applied{color:var(--vscode-testing-iconPassed,#15803d)}.state.blocked{color:var(--vscode-errorForeground,var(--danger,#b91c1c))}
23
+ .empty{padding:20px 10px;color:var(--vscode-descriptionForeground,var(--muted,#64748b));text-align:center}
24
+ `;
25
+ export class PnwCodeUuidResultsPanel extends HTMLElement {
26
+ root = this.attachShadow({ mode: "open" });
27
+ currentModel;
28
+ selectedIds = [];
29
+ get model() { return this.currentModel; }
30
+ set model(value) {
31
+ this.currentModel = value;
32
+ this.selectedIds = this.sanitizeSelection(value?.selectedIds ?? []);
33
+ this.render();
34
+ }
35
+ connectedCallback() { this.render(); }
36
+ enabled(key) {
37
+ return this.currentModel?.capabilities?.[key] === true;
38
+ }
39
+ sanitizeSelection(ids) {
40
+ if (!this.currentModel)
41
+ return [];
42
+ return this.currentModel.presentation === "hits"
43
+ ? pnwCodeSelectUuidHitIds(this.currentModel.hits ?? [], ids)
44
+ : pnwCodeSelectUuidFileUris(this.currentModel.files ?? [], ids);
45
+ }
46
+ render() {
47
+ if (!this.isConnected)
48
+ return;
49
+ const style = document.createElement("style");
50
+ style.textContent = STYLE;
51
+ const panel = document.createElement("section");
52
+ panel.className = "panel";
53
+ panel.setAttribute("aria-label", "UUID 扫描结果");
54
+ const model = this.currentModel;
55
+ if (!model)
56
+ panel.append(this.empty("UUID 结果尚未激活。"));
57
+ else if (model.presentation === "hits")
58
+ this.renderHits(panel, model.hits ?? []);
59
+ else
60
+ this.renderFiles(panel, model.files ?? []);
61
+ this.root.replaceChildren(style, panel);
62
+ }
63
+ renderHits(panel, hits) {
64
+ if (!hits.length) {
65
+ panel.append(this.empty(this.currentModel?.emptyMessage ?? "没有 UUID 命中"));
66
+ return;
67
+ }
68
+ for (const [index, group] of pnwCodeGroupUuidHits(hits).entries()) {
69
+ const section = document.createElement("section");
70
+ section.className = "group";
71
+ const head = document.createElement("div");
72
+ head.className = "group-head";
73
+ if (this.enabled("selection"))
74
+ head.append(this.groupCheckbox(group.hits.map((hit) => hit.id), `选择同值组 ${index + 1}`));
75
+ head.append(this.span(`同值组 ${index + 1}`, "group-title"), this.span(group.displayValue, "identity"), this.span(`${group.hits.length} 处`, "count"));
76
+ const list = document.createElement("ul");
77
+ list.className = "list";
78
+ for (const hit of group.hits)
79
+ list.append(this.hitRow(hit));
80
+ section.append(head, list);
81
+ panel.append(section);
82
+ }
83
+ }
84
+ renderFiles(panel, rows) {
85
+ if (!rows.length) {
86
+ panel.append(this.empty(this.currentModel?.emptyMessage ?? "没有 UUID 文件结果"));
87
+ return;
88
+ }
89
+ const section = document.createElement("section");
90
+ section.className = "group";
91
+ const head = document.createElement("div");
92
+ head.className = "group-head";
93
+ if (this.enabled("selection"))
94
+ head.append(this.groupCheckbox(rows.filter((row) => row.state === "pending").map((row) => row.uri), "选择全部待替换文件"));
95
+ head.append(this.span("命中文件", "group-title"), this.span(`${rows.length} 个`, "count"));
96
+ const list = document.createElement("ul");
97
+ list.className = "list";
98
+ for (const row of rows)
99
+ list.append(this.fileRow(row));
100
+ section.append(head, list);
101
+ panel.append(section);
102
+ }
103
+ hitRow(hit) {
104
+ const state = hit.state ?? "pending";
105
+ const item = document.createElement("li");
106
+ item.className = "row";
107
+ if (this.enabled("selection"))
108
+ item.append(this.itemCheckbox(hit.id, `选择 ${hit.relativePath} 第 ${hit.line} 行`, state === "pending"));
109
+ const main = document.createElement("span");
110
+ main.className = `main${this.enabled("open") ? " clickable" : ""}`;
111
+ main.title = hit.relativePath;
112
+ main.append(this.span(this.basename(hit.relativePath), "path"), this.span(`${this.dirname(hit.relativePath)} · L${hit.line}:${hit.column}`, "detail"));
113
+ if (this.enabled("open"))
114
+ main.onclick = () => this.emitAction("hit", "open", [hit.id]);
115
+ const mapping = this.span(hit.to ? `${hit.from} → ${hit.to}` : hit.from, "mapping");
116
+ mapping.title = [hit.from, hit.to, hit.warning].filter(Boolean).join("\n");
117
+ const actions = this.actionButtons("hit", hit.id, state);
118
+ item.append(main, mapping, actions, this.stateBadge(state));
119
+ return item;
120
+ }
121
+ fileRow(row) {
122
+ const item = document.createElement("li");
123
+ item.className = "row";
124
+ if (this.enabled("selection"))
125
+ item.append(this.itemCheckbox(row.uri, `选择 ${row.relativePath}`, row.state === "pending"));
126
+ const main = document.createElement("span");
127
+ main.className = `main${this.enabled("open") ? " clickable" : ""}`;
128
+ main.title = [row.relativePath, row.encoding, ...row.warnings].join("\n");
129
+ main.append(this.span(this.basename(row.relativePath), "path"), this.span(`${this.dirname(row.relativePath)} · ${row.hitCount} 处 · L${row.firstLine} · ${row.encoding}`, "detail"));
130
+ if (this.enabled("open"))
131
+ main.onclick = () => this.emitAction("file", "open", [row.uri]);
132
+ const sample = row.mappings[0];
133
+ const mapping = this.span(sample ? `${sample.from}${sample.to ? ` → ${sample.to}` : ""}` : "", "mapping");
134
+ mapping.title = row.mappings.map((entry) => `L${entry.line}:${entry.column} ${entry.from}${entry.to ? ` → ${entry.to}` : ""}`).join("\n");
135
+ item.append(main, mapping, this.actionButtons("file", row.uri, row.state), this.stateBadge(row.state));
136
+ return item;
137
+ }
138
+ actionButtons(scope, id, state) {
139
+ const actions = document.createElement("span");
140
+ actions.className = "actions";
141
+ if (!this.currentModel?.running && state === "pending") {
142
+ if (this.enabled("apply"))
143
+ actions.append(this.icon("✓", "应用", scope, "apply", id));
144
+ if (this.enabled("cancel"))
145
+ actions.append(this.icon("×", "从本次结果移除", scope, "cancel", id));
146
+ }
147
+ if (!this.currentModel?.running && state === "applied" && this.enabled("gitDiff"))
148
+ actions.append(this.icon("⇄", "查看 Git 差异", scope, "gitDiff", id));
149
+ return actions;
150
+ }
151
+ groupCheckbox(ids, label) {
152
+ const selected = new Set(this.selectedIds);
153
+ const checkbox = document.createElement("input");
154
+ checkbox.type = "checkbox";
155
+ checkbox.disabled = !ids.length || Boolean(this.currentModel?.running);
156
+ checkbox.checked = ids.length > 0 && ids.every((id) => selected.has(id));
157
+ checkbox.indeterminate = ids.some((id) => selected.has(id)) && !checkbox.checked;
158
+ checkbox.setAttribute("aria-label", label);
159
+ checkbox.onchange = () => { const next = new Set(this.selectedIds); for (const id of ids)
160
+ checkbox.checked ? next.add(id) : next.delete(id); this.updateSelection([...next]); };
161
+ return checkbox;
162
+ }
163
+ itemCheckbox(id, label, selectable) {
164
+ const checkbox = document.createElement("input");
165
+ checkbox.type = "checkbox";
166
+ checkbox.checked = this.selectedIds.includes(id);
167
+ checkbox.disabled = !selectable || Boolean(this.currentModel?.running);
168
+ checkbox.setAttribute("aria-label", label);
169
+ checkbox.onchange = () => { const next = new Set(this.selectedIds); checkbox.checked ? next.add(id) : next.delete(id); this.updateSelection([...next]); };
170
+ return checkbox;
171
+ }
172
+ updateSelection(ids) {
173
+ this.selectedIds = this.sanitizeSelection(ids);
174
+ this.render();
175
+ this.emit({ kind: "selection", scope: this.currentModel?.presentation === "files" ? "file" : "hit", ids: this.selectedIds });
176
+ }
177
+ stateBadge(state) { return this.span(STATE_LABEL[state], `state ${state}`); }
178
+ icon(text, title, scope, action, id) { const button = document.createElement("button"); button.type = "button"; button.className = "icon"; button.textContent = text; button.title = title; button.setAttribute("aria-label", title); button.onclick = () => this.emitAction(scope, action, [id]); return button; }
179
+ empty(text) { return this.span(text, "empty"); }
180
+ span(text, className) { const span = document.createElement("span"); span.className = className; span.textContent = text; return span; }
181
+ basename(path) { const normalized = path.replaceAll("\\", "/"); return normalized.slice(normalized.lastIndexOf("/") + 1); }
182
+ dirname(path) { const normalized = path.replaceAll("\\", "/"); const index = normalized.lastIndexOf("/"); return index > 0 ? normalized.slice(0, index) : "."; }
183
+ emitAction(scope, action, ids) { this.emit({ kind: "action", scope, action, ids }); }
184
+ emit(detail) { this.dispatchEvent(new CustomEvent(PNW_CODE_UUID_RESULTS_ACTION, { bubbles: true, composed: true, detail })); }
185
+ }
186
+ export function pnwCodeDefineUuidResultsPanel(tagName = PNW_CODE_UUID_RESULTS_PANEL_TAG) {
187
+ const registered = customElements.get(tagName);
188
+ if (registered)
189
+ return registered;
190
+ customElements.define(tagName, PnwCodeUuidResultsPanel);
191
+ return PnwCodeUuidResultsPanel;
192
+ }
193
+ //# sourceMappingURL=PnwCodeUuidResultsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PnwCodeUuidResultsPanel.js","sourceRoot":"","sources":["../../src/ui/PnwCodeUuidResultsPanel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ export type PnwCodeUuidResultState = "pending" | "cancelled" | "applied" | "blocked";
2
+ export interface PnwCodeUuidResultHit {
3
+ readonly id: string;
4
+ readonly fileId: string;
5
+ readonly relativePath: string;
6
+ readonly line: number;
7
+ readonly column: number;
8
+ readonly from: string;
9
+ readonly normalized: string;
10
+ readonly kind: "uuid" | "guid32" | "caa-guid" | "suspicious";
11
+ readonly to?: string;
12
+ readonly state?: PnwCodeUuidResultState;
13
+ readonly warning?: string;
14
+ }
15
+ export interface PnwCodeUuidResultFile {
16
+ readonly uri: string;
17
+ readonly relativePath: string;
18
+ readonly encoding: string;
19
+ }
20
+ export interface PnwCodeUuidHitGroup {
21
+ readonly normalized: string;
22
+ readonly displayValue: string;
23
+ readonly hits: readonly PnwCodeUuidResultHit[];
24
+ }
25
+ export interface PnwCodeUuidFileResultRow {
26
+ readonly uri: string;
27
+ readonly relativePath: string;
28
+ readonly encoding: string;
29
+ readonly hitCount: number;
30
+ readonly firstLine: number;
31
+ readonly state: PnwCodeUuidResultState;
32
+ readonly hasApplied: boolean;
33
+ readonly warnings: readonly string[];
34
+ readonly mappings: readonly {
35
+ readonly line: number;
36
+ readonly column: number;
37
+ readonly from: string;
38
+ readonly to: string;
39
+ }[];
40
+ }
41
+ export declare function pnwCodeFormatUuidDisplay(value: string): string;
42
+ export declare function pnwCodeGroupUuidHits(hits: readonly PnwCodeUuidResultHit[]): readonly PnwCodeUuidHitGroup[];
43
+ export declare function pnwCodeSelectUuidHitIds(hits: readonly PnwCodeUuidResultHit[], requestedIds: readonly string[]): readonly string[];
44
+ export declare function pnwCodeProjectUuidFiles(files: readonly PnwCodeUuidResultFile[], hits: readonly PnwCodeUuidResultHit[]): readonly PnwCodeUuidFileResultRow[];
45
+ export declare function pnwCodeSelectUuidFileUris(rows: readonly PnwCodeUuidFileResultRow[], requestedUris: readonly string[]): readonly string[];
46
+ export declare function pnwCodeSelectedUuidGroupCount(hits: readonly PnwCodeUuidResultHit[], selectedHitIds: readonly string[]): number;
47
+ //# sourceMappingURL=PnwCodeUuidResultsState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PnwCodeUuidResultsState.d.ts","sourceRoot":"","sources":["../../src/ui/PnwCodeUuidResultsState.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAErF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;IAC7D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,SAAS,oBAAoB,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,SAAS;QAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;CACL;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,oBAAoB,EAAE,GACpC,SAAS,mBAAmB,EAAE,CAmBhC;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,SAAS,oBAAoB,EAAE,EACrC,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,SAAS,MAAM,EAAE,CAKnB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,qBAAqB,EAAE,EACvC,IAAI,EAAE,SAAS,oBAAoB,EAAE,GACpC,SAAS,wBAAwB,EAAE,CAsCrC;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,wBAAwB,EAAE,EACzC,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,SAAS,MAAM,EAAE,CAGnB;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,SAAS,oBAAoB,EAAE,EACrC,cAAc,EAAE,SAAS,MAAM,EAAE,GAChC,MAAM,CAGR"}
@@ -0,0 +1,84 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export function pnwCodeFormatUuidDisplay(value) {
3
+ const normalized = value.replace(/[^0-9a-f]/giu, "").toLocaleLowerCase();
4
+ if (normalized.length !== 32)
5
+ return value;
6
+ return `${normalized.slice(0, 8)}-${normalized.slice(8, 12)}-${normalized.slice(12, 16)}-${normalized.slice(16, 20)}-${normalized.slice(20)}`;
7
+ }
8
+ export function pnwCodeGroupUuidHits(hits) {
9
+ const groups = new Map();
10
+ for (const hit of hits) {
11
+ const key = hit.normalized || hit.from;
12
+ const group = groups.get(key) ?? [];
13
+ group.push(hit);
14
+ groups.set(key, group);
15
+ }
16
+ return [...groups.entries()]
17
+ .sort(([left], [right]) => left.localeCompare(right))
18
+ .map(([normalized, groupHits]) => ({
19
+ normalized,
20
+ displayValue: pnwCodeFormatUuidDisplay(normalized),
21
+ hits: [...groupHits].sort((left, right) => left.relativePath.localeCompare(right.relativePath)
22
+ || left.line - right.line
23
+ || left.column - right.column
24
+ || left.id.localeCompare(right.id)),
25
+ }));
26
+ }
27
+ export function pnwCodeSelectUuidHitIds(hits, requestedIds) {
28
+ const requested = new Set(requestedIds);
29
+ return hits
30
+ .filter((hit) => (hit.state ?? "pending") === "pending" && requested.has(hit.id))
31
+ .map((hit) => hit.id);
32
+ }
33
+ export function pnwCodeProjectUuidFiles(files, hits) {
34
+ const hitsByFile = new Map();
35
+ for (const hit of hits) {
36
+ const group = hitsByFile.get(hit.fileId) ?? [];
37
+ group.push(hit);
38
+ hitsByFile.set(hit.fileId, group);
39
+ }
40
+ return files
41
+ .flatMap((file) => {
42
+ const fileHits = hitsByFile.get(file.uri) ?? [];
43
+ if (!fileHits.length)
44
+ return [];
45
+ const sorted = [...fileHits].sort((left, right) => left.line - right.line || left.column - right.column);
46
+ const states = sorted.map((hit) => hit.state ?? "pending");
47
+ const state = states.includes("pending")
48
+ ? "pending"
49
+ : states.includes("blocked")
50
+ ? "blocked"
51
+ : states.includes("cancelled")
52
+ ? "cancelled"
53
+ : "applied";
54
+ return [{
55
+ ...file,
56
+ hitCount: sorted.length,
57
+ firstLine: sorted[0]?.line ?? 1,
58
+ state,
59
+ hasApplied: states.includes("applied"),
60
+ warnings: [...new Set(sorted.map((hit) => hit.warning).filter((warning) => Boolean(warning)))],
61
+ mappings: sorted.slice(0, 8).map((hit) => ({
62
+ line: hit.line,
63
+ column: hit.column,
64
+ from: hit.from,
65
+ to: hit.to ?? "",
66
+ })),
67
+ }];
68
+ })
69
+ .sort((left, right) => pnwCodeBasename(left.relativePath).localeCompare(pnwCodeBasename(right.relativePath), undefined, { sensitivity: "base" })
70
+ || left.relativePath.localeCompare(right.relativePath));
71
+ }
72
+ export function pnwCodeSelectUuidFileUris(rows, requestedUris) {
73
+ const requested = new Set(requestedUris);
74
+ return rows.filter((row) => row.state === "pending" && requested.has(row.uri)).map((row) => row.uri);
75
+ }
76
+ export function pnwCodeSelectedUuidGroupCount(hits, selectedHitIds) {
77
+ const selected = new Set(selectedHitIds);
78
+ return new Set(hits.filter((hit) => selected.has(hit.id)).map((hit) => hit.normalized || hit.from)).size;
79
+ }
80
+ function pnwCodeBasename(path) {
81
+ const normalized = path.replaceAll("\\", "/");
82
+ return normalized.slice(normalized.lastIndexOf("/") + 1);
83
+ }
84
+ //# sourceMappingURL=PnwCodeUuidResultsState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PnwCodeUuidResultsState.js","sourceRoot":"","sources":["../../src/ui/PnwCodeUuidResultsState.ts"],"names":[],"mappings":"AAAA,sCAAsC;AA+CtC,MAAM,UAAU,wBAAwB,CAAC,KAAa;IACpD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC;IACzE,IAAI,UAAU,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AAChJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,IAAqC;IAErC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkC,CAAC;IACzD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;SACzB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,UAAU;QACV,YAAY,EAAE,wBAAwB,CAAC,UAAU,CAAC;QAClD,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACxC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC;eAChD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;eACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;eAC1B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACtC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,IAAqC,EACrC,YAA+B;IAE/B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAChF,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,KAAuC,EACvC,IAAqC;IAErC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC7D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,KAAK;SACT,OAAO,CAAC,CAAC,IAAI,EAA8B,EAAE;QAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;QAC3D,MAAM,KAAK,GAA2B,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9D,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAC1B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAC5B,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,SAAS,CAAC;QAClB,OAAO,CAAC;gBACN,GAAG,IAAI;gBACP,QAAQ,EAAE,MAAM,CAAC,MAAM;gBACvB,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;gBAC/B,KAAK;gBACL,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACtC,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAqB,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjH,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACzC,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;iBACjB,CAAC,CAAC;aACJ,CAAC,CAAC;IACL,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACpB,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;WACtH,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,IAAyC,EACzC,aAAgC;IAEhC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IACzC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,IAAqC,EACrC,cAAiC;IAEjC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;IACzC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3G,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,OAAO,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./model.js";
2
+ export * from "./PnwCodeReorderMembersPanel.js";
3
+ export * from "./PnwCodeUuidResultsPanel.js";
4
+ export * from "./PnwCodeRenameResultsPanel.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,6 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export * from "./model.js";
3
+ export * from "./PnwCodeReorderMembersPanel.js";
4
+ export * from "./PnwCodeUuidResultsPanel.js";
5
+ export * from "./PnwCodeRenameResultsPanel.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,cAAc,YAAY,CAAC;AAC3B,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./PnwCodeReorderMembersPanelState.js";
2
+ export * from "./PnwCodeUuidResultsState.js";
3
+ export * from "./PnwCodeRenameResultsState.js";
4
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/ui/model.ts"],"names":[],"mappings":"AAEA,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,5 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ export * from "./PnwCodeReorderMembersPanelState.js";
3
+ export * from "./PnwCodeUuidResultsState.js";
4
+ export * from "./PnwCodeRenameResultsState.js";
5
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/ui/model.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phoenix-wing/code-core",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Phoenix Code 跨宿主纯 TypeScript 算法与契约",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -11,6 +11,14 @@
11
11
  "types": "./dist/index.d.ts",
12
12
  "import": "./dist/index.js"
13
13
  },
14
+ "./ui": {
15
+ "types": "./dist/ui/index.d.ts",
16
+ "import": "./dist/ui/index.js"
17
+ },
18
+ "./ui/model": {
19
+ "types": "./dist/ui/model.d.ts",
20
+ "import": "./dist/ui/model.js"
21
+ },
14
22
  "./fixtures/*": "./src/fixtures/*"
15
23
  },
16
24
  "files": [
@@ -19,7 +19,18 @@ CATBoolean PNXBomAnalysisCmd::ActionSelectorListPda(void* data) {
19
19
  // START KEVIN CAA WIZARD SECTION PNXBomAnalysis CMD ACTION PDA
20
20
 
21
21
  // clang-format off
22
- // Field count = 0
22
+ //.............................................................................
23
+ // @key CmdActionPda
24
+ // @usage put this code block into the function Cmd::ActionSelectorListPda()
25
+ // @brief InitializeAcquisition and HSO Append
26
+ //.............................................................................
27
+ // Field count = 1
28
+ if (fieldChange) KT_AUTO_HSO_CLEAR();
29
+ switch (field) {
30
+ case Field_PNXBomAnalysis_FirstProduct:
31
+ KT_AUTO_CMD_ACTION_PDA(FirstProduct);
32
+ break;
33
+ }
23
34
 
24
35
  // clang-format on
25
36
  // END KEVIN CAA WIZARD SECTION PNXBomAnalysis CMD ACTION PDA
@@ -35,7 +46,18 @@ CATBoolean PNXBomAnalysisCmd::ActionSelectorListFia(void*) {
35
46
  // START KEVIN CAA WIZARD SECTION PNXBomAnalysis CMD ACTION FIA
36
47
 
37
48
  // clang-format off
49
+ //.............................................................................
50
+ // @key CmdActionFia
51
+ // @usage put this code block into the function Cmd::ActionSelectorListFia()
52
+ // @brief Action object selected
53
+ //.............................................................................
54
+ // Field count = 1
38
55
  int count = 0;
56
+ switch (field) {
57
+ case Field_PNXBomAnalysis_FirstProduct:
58
+ KT_AUTO_CMD_ACTION_FIA(FirstProduct);
59
+ break;
60
+ }
39
61
 
40
62
  // clang-format on
41
63
  // END KEVIN CAA WIZARD SECTION PNXBomAnalysis CMD ACTION FIA
@@ -48,6 +70,12 @@ void PNXBomAnalysisCmd::fiaAgentClear() {
48
70
  // START KEVIN CAA WIZARD SECTION PNXBomAnalysis CMD AGENT FIA CLEAR
49
71
 
50
72
  // clang-format off
73
+ //.............................................................................
74
+ // @key CmdAgentFiaClear
75
+ // @usage put this code block into the function Cmd::fiaAgentClear()
76
+ // @brief clear select state
77
+ //.............................................................................
78
+ KT_AUTO_CMD_ACTION_FIA_CLEAR(FirstProduct);
51
79
 
52
80
  // clang-format on
53
81
  // END KEVIN CAA WIZARD SECTION PNXBomAnalysis CMD AGENT FIA CLEAR
@@ -59,7 +87,19 @@ void PNXBomAnalysisCmd::fiaAgentUpdate() {
59
87
  // START KEVIN CAA WIZARD SECTION PNXBomAnalysis CMD AGENT UPDATE STATE
60
88
 
61
89
  // clang-format off
62
- // Field count = 0
90
+ //.............................................................................
91
+ // @key CmdAgentUpdateState
92
+ // @usage put this code block into the function Cmd::fiaAgentUpdate()
93
+ // @brief Update select state
94
+ //.............................................................................
95
+ // Field count = 1
96
+ switch (field) {
97
+ case Field_PNXBomAnalysis_FirstProduct:
98
+ KT_AUTO_CMD_AGENT_UPDATE_STATE(FirstProduct);
99
+ break;
100
+ case 0:
101
+ KT_AUTO_CMD_AGENT_UPDATE_STATE_ERROR();
102
+ }
63
103
 
64
104
  // clang-format on
65
105
  // END KEVIN CAA WIZARD SECTION PNXBomAnalysis CMD AGENT UPDATE STATE
@@ -14,18 +14,34 @@ public:
14
14
  // START KEVIN CAA WIZARD SECTION PNXBomAnalysis PARAM DECLARATION
15
15
 
16
16
  // clang-format off
17
+
18
+ // @app Kt Auto Code
19
+ // @version 5.0.0, (2024)
20
+
17
21
  /**
18
- * @brief Part Count
19
- * @id 3
22
+ * @brief First Product
23
+ * @author Phoenix
24
+ * @date 2021/10/27
25
+ * @id 1
20
26
  */
21
- int PartCount;
27
+ CATISpecObject_var FirstProduct;
22
28
 
23
29
  /**
24
30
  * @brief Top Part Number
31
+ * @author Phoenix
32
+ * @date 2021/10/27
25
33
  * @id 2
26
34
  */
27
35
  CATUnicodeString FirstPartNumber;
28
36
 
37
+ /**
38
+ * @brief Part Count
39
+ * @author Phoenix
40
+ * @date 2025/10/13
41
+ * @id 3
42
+ */
43
+ int PartCount;
44
+
29
45
  // clang-format on
30
46
  // END KEVIN CAA WIZARD SECTION PNXBomAnalysis PARAM DECLARATION
31
47