@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.
- package/README.md +3 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/pnwCodeIgnore.d.ts +26 -0
- package/dist/pnwCodeIgnore.d.ts.map +1 -0
- package/dist/pnwCodeIgnore.js +115 -0
- package/dist/pnwCodeIgnore.js.map +1 -0
- package/dist/pnwCodeRenamePlan.d.ts.map +1 -1
- package/dist/pnwCodeRenamePlan.js +9 -16
- package/dist/pnwCodeRenamePlan.js.map +1 -1
- package/dist/pnwCodeReplacementRules.d.ts +40 -0
- package/dist/pnwCodeReplacementRules.d.ts.map +1 -0
- package/dist/pnwCodeReplacementRules.js +87 -0
- package/dist/pnwCodeReplacementRules.js.map +1 -0
- package/dist/ui/PnwCodeRenameResultsPanel.d.ts +40 -0
- package/dist/ui/PnwCodeRenameResultsPanel.d.ts.map +1 -0
- package/dist/ui/PnwCodeRenameResultsPanel.js +120 -0
- package/dist/ui/PnwCodeRenameResultsPanel.js.map +1 -0
- package/dist/ui/PnwCodeRenameResultsState.d.ts +59 -0
- package/dist/ui/PnwCodeRenameResultsState.d.ts.map +1 -0
- package/dist/ui/PnwCodeRenameResultsState.js +87 -0
- package/dist/ui/PnwCodeRenameResultsState.js.map +1 -0
- package/dist/ui/PnwCodeReorderMembersPanel.d.ts +38 -0
- package/dist/ui/PnwCodeReorderMembersPanel.d.ts.map +1 -0
- package/dist/ui/PnwCodeReorderMembersPanel.js +216 -0
- package/dist/ui/PnwCodeReorderMembersPanel.js.map +1 -0
- package/dist/ui/PnwCodeReorderMembersPanelState.d.ts +57 -0
- package/dist/ui/PnwCodeReorderMembersPanelState.d.ts.map +1 -0
- package/dist/ui/PnwCodeReorderMembersPanelState.js +71 -0
- package/dist/ui/PnwCodeReorderMembersPanelState.js.map +1 -0
- package/dist/ui/PnwCodeUuidResultsPanel.d.ts +63 -0
- package/dist/ui/PnwCodeUuidResultsPanel.d.ts.map +1 -0
- package/dist/ui/PnwCodeUuidResultsPanel.js +193 -0
- package/dist/ui/PnwCodeUuidResultsPanel.js.map +1 -0
- package/dist/ui/PnwCodeUuidResultsState.d.ts +47 -0
- package/dist/ui/PnwCodeUuidResultsState.d.ts.map +1 -0
- package/dist/ui/PnwCodeUuidResultsState.js +84 -0
- package/dist/ui/PnwCodeUuidResultsState.js.map +1 -0
- package/dist/ui/index.d.ts +5 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +6 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/model.d.ts +4 -0
- package/dist/ui/model.d.ts.map +1 -0
- package/dist/ui/model.js +5 -0
- package/dist/ui/model.js.map +1 -0
- package/package.json +9 -1
- package/src/fixtures/pnx_bom_analysis_cmd_min.cpp +42 -2
- package/src/fixtures/pnx_bom_analysis_param_min.h +19 -3
- 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":"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"}
|
|
@@ -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"}
|
package/dist/ui/index.js
ADDED
|
@@ -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 @@
|
|
|
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"}
|
package/dist/ui/model.js
ADDED
|
@@ -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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
19
|
-
* @
|
|
22
|
+
* @brief First Product
|
|
23
|
+
* @author Phoenix
|
|
24
|
+
* @date 2021/10/27
|
|
25
|
+
* @id 1
|
|
20
26
|
*/
|
|
21
|
-
|
|
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
|
|