@principal-ai/principal-view-react 0.16.35 → 0.16.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/graphify/consolidated.d.ts +17 -3
- package/dist/graphify/consolidated.d.ts.map +1 -1
- package/dist/graphify/index.d.ts +2 -0
- package/dist/graphify/index.d.ts.map +1 -1
- package/dist/graphify/index.js +1 -1
- package/dist/graphify/index.js.map +1 -1
- package/dist/graphify/resolve.d.ts +48 -0
- package/dist/graphify/resolve.d.ts.map +1 -0
- package/dist/graphify/resolve.js +83 -0
- package/dist/graphify/resolve.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/subsystem/ComponentDetail.d.ts +16 -7
- package/dist/subsystem/ComponentDetail.d.ts.map +1 -1
- package/dist/subsystem/ComponentDetail.js +124 -82
- package/dist/subsystem/ComponentDetail.js.map +1 -1
- package/dist/subsystem/SubsystemComponentGraph.d.ts.map +1 -1
- package/dist/subsystem/SubsystemComponentGraph.js +47 -10
- package/dist/subsystem/SubsystemComponentGraph.js.map +1 -1
- package/dist/subsystem/model.d.ts +14 -0
- package/dist/subsystem/model.d.ts.map +1 -1
- package/dist/subsystem/model.js +26 -1
- package/dist/subsystem/model.js.map +1 -1
- package/dist/subsystem/paths.d.ts +38 -0
- package/dist/subsystem/paths.d.ts.map +1 -0
- package/dist/subsystem/paths.js +52 -0
- package/dist/subsystem/paths.js.map +1 -0
- package/package.json +1 -1
- package/src/graphify/consolidated.ts +17 -3
- package/src/graphify/index.ts +9 -0
- package/src/graphify/resolve.test.ts +89 -0
- package/src/graphify/resolve.ts +115 -0
- package/src/index.ts +19 -0
- package/src/stories/SubsystemComponentGraph.stories.tsx +331 -11
- package/src/subsystem/ComponentDetail.tsx +355 -156
- package/src/subsystem/SubsystemComponentGraph.tsx +76 -15
- package/src/subsystem/model.test.ts +11 -0
- package/src/subsystem/model.ts +25 -1
- package/src/subsystem/paths.test.ts +62 -0
- package/src/subsystem/paths.ts +69 -0
|
@@ -43,10 +43,12 @@ export interface GraphifyMethodInfo {
|
|
|
43
43
|
nodeId: string;
|
|
44
44
|
/** Display name from the label (`.get()` → `get`). */
|
|
45
45
|
name: string;
|
|
46
|
-
/**
|
|
47
|
-
parameters?:
|
|
46
|
+
/** Typed parameters from `references` edges with context `parameter_type`. */
|
|
47
|
+
parameters?: GraphifyParamInfo[];
|
|
48
48
|
/** Return type from a `references` edge with context `return_type`. */
|
|
49
49
|
returnType?: string;
|
|
50
|
+
/** Backing edge target for `returnType`, when the graph had one. */
|
|
51
|
+
returnTypeRef?: GraphifyReferenceInfo;
|
|
50
52
|
}
|
|
51
53
|
/** A property/field on a class- or type-like node. */
|
|
52
54
|
export interface GraphifyPropertyInfo {
|
|
@@ -54,15 +56,25 @@ export interface GraphifyPropertyInfo {
|
|
|
54
56
|
name: string;
|
|
55
57
|
/** Field type from a `references` edge with context `field`. */
|
|
56
58
|
type?: string;
|
|
59
|
+
/** Backing edge target for `type`, when the graph had one. */
|
|
60
|
+
typeRef?: GraphifyReferenceInfo;
|
|
57
61
|
/** The field's own node id when it exists (e.g. C++ `defines` nodes). */
|
|
58
62
|
nodeId?: string;
|
|
59
63
|
}
|
|
60
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* A single typed parameter of a function (`references` context `parameter_type`).
|
|
66
|
+
*
|
|
67
|
+
* `ref.nodeId` is the resolvable half: it targets the type's definition node
|
|
68
|
+
* when graphify resolved the reference, or a sourceless stub node when the
|
|
69
|
+
* name was ambiguous / external (see `resolveGraphifyTypeRef`).
|
|
70
|
+
*/
|
|
61
71
|
export interface GraphifyParamInfo {
|
|
62
72
|
/** Parameter name — not captured by graphify; left undefined. */
|
|
63
73
|
name?: string;
|
|
64
74
|
/** Parameter type. */
|
|
65
75
|
type: string;
|
|
76
|
+
/** Backing `references[parameter_type|generic_arg]` edge target. */
|
|
77
|
+
ref?: GraphifyReferenceInfo;
|
|
66
78
|
}
|
|
67
79
|
/** One call relationship, in either direction. */
|
|
68
80
|
export interface GraphifyCallInfo {
|
|
@@ -118,6 +130,8 @@ export interface GraphifyFunctionDetail {
|
|
|
118
130
|
parameters: GraphifyParamInfo[];
|
|
119
131
|
/** Return type from `references` context `return_type`. */
|
|
120
132
|
returnType?: string;
|
|
133
|
+
/** Backing edge target for `returnType`, when the graph had one. */
|
|
134
|
+
returnTypeRef?: GraphifyReferenceInfo;
|
|
121
135
|
/** Incoming `calls` edges. */
|
|
122
136
|
callers: GraphifyCallInfo[];
|
|
123
137
|
/** Outgoing `calls` edges. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidated.d.ts","sourceRoot":"","sources":["../../src/graphify/consolidated.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,6DAA6D;AAC7D,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,UAAU,EAAE,wBAAwB,CAAC;IACrC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,SAAS,EAAE,gBAAgB,CAAC;IAC5B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,
|
|
1
|
+
{"version":3,"file":"consolidated.d.ts","sourceRoot":"","sources":["../../src/graphify/consolidated.ts"],"names":[],"mappings":"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"}
|
package/dist/graphify/index.d.ts
CHANGED
|
@@ -6,4 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export type { JsonValue, GraphifyFileType, GraphifyConfidence, GraphifyNodeType, GraphifyRelation, GraphifyNode, GraphifyEdge, GraphifyHyperedge, GraphifyGraphMetadata, GraphifyGraph, } from './types';
|
|
8
8
|
export type { GraphifyAnchorResolution, SubsystemGraphifyAnchor, GraphifyMethodInfo, GraphifyPropertyInfo, GraphifyParamInfo, GraphifyCallInfo, GraphifyReferenceInfo, GraphifyImportInfo, GraphifyClassDetail, GraphifyFunctionDetail, GraphifyTypeDetail, GraphifyModuleDetail, GraphifyExternalDetail, GraphifyComponentDetail, GraphifyEdgeRef, } from './consolidated';
|
|
9
|
+
export type { GraphifyTypeRefStatus, GraphifyTypeRefResolution, } from './resolve';
|
|
10
|
+
export { normalizeGraphifyLabel, createGraphifyTypeResolver, resolveGraphifyTypeRef, } from './resolve';
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graphify/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graphify/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,WAAW,CAAC"}
|
package/dist/graphify/index.js
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* Type-compatible view of graphify's graph.json data model for consuming
|
|
5
5
|
* graphify output (nodes, links, hyperedges) inside this library.
|
|
6
6
|
*/
|
|
7
|
-
export {};
|
|
7
|
+
export { normalizeGraphifyLabel, createGraphifyTypeResolver, resolveGraphifyTypeRef, } from './resolve';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graphify/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graphify/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmCH,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve graphify type-name references to their defining nodes.
|
|
3
|
+
*
|
|
4
|
+
* A `references` edge (`parameter_type`, `return_type`, `field`,
|
|
5
|
+
* `generic_arg`) targets either the type's real definition node or a
|
|
6
|
+
* *sourceless stub* graphify left behind when the name could not be uniquely
|
|
7
|
+
* resolved at extraction time (mirrors `_rewire_unique_stub_nodes` there:
|
|
8
|
+
* ambiguous same-label definitions and never-defined names stay stubs).
|
|
9
|
+
*
|
|
10
|
+
* This module applies the same conservative matching from the consumer side so
|
|
11
|
+
* UI click targets can distinguish "jump to definition" from "N candidates"
|
|
12
|
+
* from "not in this corpus".
|
|
13
|
+
*/
|
|
14
|
+
import type { GraphifyNode } from './types';
|
|
15
|
+
import type { GraphifyReferenceInfo } from './consolidated';
|
|
16
|
+
/** Outcome of resolving one type reference. */
|
|
17
|
+
export type GraphifyTypeRefStatus =
|
|
18
|
+
/** Target node is a real definition — jump to its `source_file`. */
|
|
19
|
+
'resolved'
|
|
20
|
+
/** Target was a stub and multiple same-label definitions exist. */
|
|
21
|
+
| 'ambiguous'
|
|
22
|
+
/** Target was a stub and nothing in the corpus defines the name. */
|
|
23
|
+
| 'unresolved'
|
|
24
|
+
/** No nodeId on the ref, or the id is not in the graph. */
|
|
25
|
+
| 'missing';
|
|
26
|
+
export interface GraphifyTypeRefResolution {
|
|
27
|
+
status: GraphifyTypeRefStatus;
|
|
28
|
+
/** The definition node when resolved; the stub itself otherwise. */
|
|
29
|
+
node: GraphifyNode | null;
|
|
30
|
+
/** Same-label definitions when the target was an unresolved stub. */
|
|
31
|
+
candidates: GraphifyNode[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Mirror graphify's `normalise_callable_label`: trim, strip surrounding
|
|
35
|
+
* parens/leading dots, lowercase. `SessionReader()` and `sessionreader`
|
|
36
|
+
* collapse to the same key.
|
|
37
|
+
*/
|
|
38
|
+
export declare function normalizeGraphifyLabel(label: string): string;
|
|
39
|
+
/** Prebuilt lookup state — build once per graph, resolve many refs. */
|
|
40
|
+
export interface GraphifyTypeResolver {
|
|
41
|
+
resolve(nodeId: string | undefined, fallbackLabel?: string): GraphifyTypeRefResolution;
|
|
42
|
+
}
|
|
43
|
+
export declare function createGraphifyTypeResolver(nodes: readonly GraphifyNode[]): GraphifyTypeResolver;
|
|
44
|
+
/** One-shot convenience over {@link createGraphifyTypeResolver}. */
|
|
45
|
+
export declare function resolveGraphifyTypeRef(nodes: readonly GraphifyNode[], ref: Pick<GraphifyReferenceInfo, 'nodeId'> | {
|
|
46
|
+
nodeId?: string;
|
|
47
|
+
} | undefined, fallbackLabel?: string): GraphifyTypeRefResolution;
|
|
48
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/graphify/resolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB;AAC/B,oEAAoE;AAClE,UAAU;AACZ,mEAAmE;GACjE,WAAW;AACb,oEAAoE;GAClE,YAAY;AACd,2DAA2D;GACzD,SAAS,CAAC;AAEd,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,oEAAoE;IACpE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,qEAAqE;IACrE,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM5D;AAaD,uEAAuE;AACvE,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC;CACxF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,oBAAoB,CAwC/F;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,GAAG,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EAC5E,aAAa,CAAC,EAAE,MAAM,GACrB,yBAAyB,CAE3B"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve graphify type-name references to their defining nodes.
|
|
3
|
+
*
|
|
4
|
+
* A `references` edge (`parameter_type`, `return_type`, `field`,
|
|
5
|
+
* `generic_arg`) targets either the type's real definition node or a
|
|
6
|
+
* *sourceless stub* graphify left behind when the name could not be uniquely
|
|
7
|
+
* resolved at extraction time (mirrors `_rewire_unique_stub_nodes` there:
|
|
8
|
+
* ambiguous same-label definitions and never-defined names stay stubs).
|
|
9
|
+
*
|
|
10
|
+
* This module applies the same conservative matching from the consumer side so
|
|
11
|
+
* UI click targets can distinguish "jump to definition" from "N candidates"
|
|
12
|
+
* from "not in this corpus".
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Mirror graphify's `normalise_callable_label`: trim, strip surrounding
|
|
16
|
+
* parens/leading dots, lowercase. `SessionReader()` and `sessionreader`
|
|
17
|
+
* collapse to the same key.
|
|
18
|
+
*/
|
|
19
|
+
export function normalizeGraphifyLabel(label) {
|
|
20
|
+
return label
|
|
21
|
+
.trim()
|
|
22
|
+
.replace(/^[()]+|[()]+$/g, '')
|
|
23
|
+
.replace(/^\.+/, '')
|
|
24
|
+
.toLowerCase();
|
|
25
|
+
}
|
|
26
|
+
const FILE_SUFFIX_RE = /\.(py|js|jsx|ts|tsx|mjs|cjs|java|go|rs|rb|php|cs|cpp|cc|c|h|hpp|pas|pp|dpr|swift|kt|scala|dart|lua|pl|pm|ex|exs|zig|vue|svelte)$/i;
|
|
27
|
+
function isDefinition(node) {
|
|
28
|
+
if (node.file_type !== 'code')
|
|
29
|
+
return false;
|
|
30
|
+
const file = typeof node.source_file === 'string' ? node.source_file : '';
|
|
31
|
+
if (!file)
|
|
32
|
+
return false;
|
|
33
|
+
const label = typeof node.label === 'string' ? node.label.trim() : '';
|
|
34
|
+
return !!label && !FILE_SUFFIX_RE.test(label);
|
|
35
|
+
}
|
|
36
|
+
export function createGraphifyTypeResolver(nodes) {
|
|
37
|
+
const byId = new Map();
|
|
38
|
+
const defsByExactLabel = new Map();
|
|
39
|
+
const defsByFoldedLabel = new Map();
|
|
40
|
+
for (const node of nodes) {
|
|
41
|
+
byId.set(String(node.id), node);
|
|
42
|
+
if (!isDefinition(node))
|
|
43
|
+
continue;
|
|
44
|
+
const label = String(node.label).trim();
|
|
45
|
+
(defsByExactLabel.get(label) ?? defsByExactLabel.set(label, []).get(label)).push(node);
|
|
46
|
+
const folded = normalizeGraphifyLabel(label);
|
|
47
|
+
if (!folded)
|
|
48
|
+
continue;
|
|
49
|
+
(defsByFoldedLabel.get(folded) ?? defsByFoldedLabel.set(folded, []).get(folded)).push(node);
|
|
50
|
+
}
|
|
51
|
+
function resolve(nodeId, fallbackLabel) {
|
|
52
|
+
if (!nodeId)
|
|
53
|
+
return { status: 'missing', node: null, candidates: [] };
|
|
54
|
+
const target = byId.get(nodeId);
|
|
55
|
+
if (!target)
|
|
56
|
+
return { status: 'missing', node: null, candidates: [] };
|
|
57
|
+
// Real definition (graphify rewired the reference onto it, or it lived in
|
|
58
|
+
// the referencing file all along).
|
|
59
|
+
if (isDefinition(target))
|
|
60
|
+
return { status: 'resolved', node: target, candidates: [] };
|
|
61
|
+
// Sourceless stub — try the rewire tiers: exact label, then folded.
|
|
62
|
+
const label = typeof target.label === 'string' && target.label.trim() ? target.label.trim() : (fallbackLabel ?? '');
|
|
63
|
+
let candidates = defsByExactLabel.get(label) ?? [];
|
|
64
|
+
if (candidates.length !== 1) {
|
|
65
|
+
const folded = normalizeGraphifyLabel(label);
|
|
66
|
+
candidates = folded ? (defsByFoldedLabel.get(folded) ?? []) : [];
|
|
67
|
+
}
|
|
68
|
+
if (candidates.length === 1) {
|
|
69
|
+
// Unique match — same fold `_rewire_unique_stub_nodes` performs at
|
|
70
|
+
// extraction time; graphs built before that pass land here instead.
|
|
71
|
+
return { status: 'resolved', node: candidates[0], candidates };
|
|
72
|
+
}
|
|
73
|
+
if (candidates.length > 1)
|
|
74
|
+
return { status: 'ambiguous', node: target, candidates };
|
|
75
|
+
return { status: 'unresolved', node: target, candidates: [] };
|
|
76
|
+
}
|
|
77
|
+
return { resolve };
|
|
78
|
+
}
|
|
79
|
+
/** One-shot convenience over {@link createGraphifyTypeResolver}. */
|
|
80
|
+
export function resolveGraphifyTypeRef(nodes, ref, fallbackLabel) {
|
|
81
|
+
return createGraphifyTypeResolver(nodes).resolve(ref?.nodeId, fallbackLabel);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/graphify/resolve.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -49,8 +49,13 @@ export { SessionEventFeed, SessionEventFeedGrouped, } from './components/session
|
|
|
49
49
|
export type { SessionEventFeedProps, SessionEventFeedGroupedProps, SessionEventFeedRow, } from './components/session-events';
|
|
50
50
|
export type { JsonValue, GraphifyFileType, GraphifyConfidence, GraphifyNodeType, GraphifyRelation, GraphifyNode, GraphifyEdge, GraphifyHyperedge, GraphifyGraphMetadata, GraphifyGraph, } from './graphify';
|
|
51
51
|
export type { GraphifyAnchorResolution, SubsystemGraphifyAnchor, GraphifyMethodInfo, GraphifyPropertyInfo, GraphifyParamInfo, GraphifyCallInfo, GraphifyReferenceInfo, GraphifyImportInfo, GraphifyClassDetail, GraphifyFunctionDetail, GraphifyTypeDetail, GraphifyModuleDetail, GraphifyExternalDetail, GraphifyComponentDetail, GraphifyEdgeRef, } from './graphify';
|
|
52
|
+
export type { GraphifyTypeRefStatus, GraphifyTypeRefResolution, } from './graphify';
|
|
53
|
+
export { normalizeGraphifyLabel, createGraphifyTypeResolver, resolveGraphifyTypeRef, } from './graphify';
|
|
52
54
|
export { SubsystemComponentGraph } from './subsystem/SubsystemComponentGraph';
|
|
53
55
|
export type { SubsystemComponentGraphProps } from './subsystem/SubsystemComponentGraph';
|
|
56
|
+
export { MECHANISM_COLOR, KIND_COLOR, MECHANISM_STYLE } from './subsystem/model';
|
|
57
|
+
export { purlRepoKey, purlOwnerName, buildTreePathMapping, } from './subsystem/paths';
|
|
58
|
+
export type { TreeEntry, TreePathMapping, } from './subsystem/paths';
|
|
54
59
|
export { SubsystemFileTree } from './subsystem/SubsystemFileTree';
|
|
55
60
|
export type { SubsystemFileTreeProps } from './subsystem/SubsystemFileTree';
|
|
56
61
|
export { GraphLayoutCover } from './subsystem/GraphLayoutCover';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -35,8 +35,11 @@ export { DashboardRenderer, MetricPanel, MetricCard, LineChart, BarChart, Source
|
|
|
35
35
|
export { PipelineView, useStateView } from './components/state-view';
|
|
36
36
|
// Session event diagnostic feed (raw → repo-normalized → accumulated)
|
|
37
37
|
export { SessionEventFeed, SessionEventFeedGrouped, } from './components/session-events';
|
|
38
|
+
export { normalizeGraphifyLabel, createGraphifyTypeResolver, resolveGraphifyTypeRef, } from './graphify';
|
|
38
39
|
// Subsystem component graph
|
|
39
40
|
export { SubsystemComponentGraph } from './subsystem/SubsystemComponentGraph';
|
|
41
|
+
export { MECHANISM_COLOR, KIND_COLOR, MECHANISM_STYLE } from './subsystem/model';
|
|
42
|
+
export { purlRepoKey, purlOwnerName, buildTreePathMapping, } from './subsystem/paths';
|
|
40
43
|
export { SubsystemFileTree } from './subsystem/SubsystemFileTree';
|
|
41
44
|
export { GraphLayoutCover } from './subsystem/GraphLayoutCover';
|
|
42
45
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAS9D,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGvG,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,6EAA6E;AAC7E,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAsChC,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAmCrE,sEAAsE;AACtE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsBH,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAQ3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAS9D,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,6BAA6B;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,8BAA8B;AAC9B,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,GACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGvG,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,6EAA6E;AAC7E,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAsChC,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAmCrE,sEAAsE;AACtE,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAyCrC,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,4BAA4B;AAC5B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EACL,WAAW,EACX,aAAa,EACb,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ComponentDetail — selection detail panel for a subsystem component
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* ComponentDetail — selection detail panel for a subsystem component, rendered
|
|
3
|
+
* as it would appear in code: a file-path comment + doc comment, then the kind's
|
|
4
|
+
* declaration (`class X extends Y { ... }`, `function f(): T`, ...) with its
|
|
5
|
+
* members as signatures. Graphify relationship drill-downs appear as trailing
|
|
6
|
+
* comments. File content lives in the bottom FileDrawer, not here.
|
|
5
7
|
*/
|
|
6
8
|
import { type SubsystemComponent } from './model';
|
|
7
|
-
/**
|
|
8
|
-
*
|
|
9
|
-
export
|
|
9
|
+
/** Panel props. The two callbacks are wired by the graph; standalone usage
|
|
10
|
+
* without them renders the same panel with nothing clickable. */
|
|
11
|
+
export interface ComponentDetailProps {
|
|
10
12
|
component: SubsystemComponent;
|
|
11
|
-
|
|
13
|
+
/** File-path click → open that file in the bottom drawer. */
|
|
14
|
+
onOpenFile?: (file: string) => void;
|
|
15
|
+
/** Related-name click (types, callers/callees, implementors, …) → select
|
|
16
|
+
* that component if one matches; unmatched refs no-op. */
|
|
17
|
+
onRelatedSelect?: (ref: string) => void;
|
|
18
|
+
}
|
|
19
|
+
/** Detail panel for the selected component — its declaration, code-style. */
|
|
20
|
+
export declare function ComponentDetail({ component, onOpenFile, onRelatedSelect }: ComponentDetailProps): import("react/jsx-runtime").JSX.Element;
|
|
12
21
|
//# sourceMappingURL=ComponentDetail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentDetail.d.ts","sourceRoot":"","sources":["../../src/subsystem/ComponentDetail.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ComponentDetail.d.ts","sourceRoot":"","sources":["../../src/subsystem/ComponentDetail.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,SAAS,CAAC;AA+BjB;kEACkE;AAClE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;+DAC2D;IAC3D,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,oBAAoB,2CAuU/F"}
|
|
@@ -1,95 +1,137 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* ComponentDetail — selection detail panel for a subsystem component, rendered
|
|
4
|
+
* as it would appear in code: a file-path comment + doc comment, then the kind's
|
|
5
|
+
* declaration (`class X extends Y { ... }`, `function f(): T`, ...) with its
|
|
6
|
+
* members as signatures. Graphify relationship drill-downs appear as trailing
|
|
7
|
+
* comments. File content lives in the bottom FileDrawer, not here.
|
|
8
|
+
*/
|
|
9
|
+
import { Fragment } from 'react';
|
|
2
10
|
import { useTheme } from '@principal-ade/industry-theme';
|
|
3
|
-
import { KIND_COLOR, deriveNameFromSymbol, } from './model';
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
|
|
11
|
+
import { KIND_COLOR, deriveNameFromSymbol, formatPurl, } from './model';
|
|
12
|
+
/** Shared affordance for clickable text pieces. */
|
|
13
|
+
const clickableStyle = {
|
|
14
|
+
cursor: 'pointer',
|
|
15
|
+
textDecorationLine: 'underline',
|
|
16
|
+
textDecorationStyle: 'dotted',
|
|
17
|
+
textUnderlineOffset: 2,
|
|
18
|
+
};
|
|
19
|
+
/** Clickable detail-panel piece — dotted underline signals interactivity. */
|
|
20
|
+
function DetailLink({ children, onClick }) {
|
|
21
|
+
if (!onClick)
|
|
22
|
+
return _jsx(_Fragment, { children: children });
|
|
23
|
+
return (_jsx("span", { onClick: (e) => {
|
|
24
|
+
e.stopPropagation();
|
|
25
|
+
onClick();
|
|
26
|
+
}, style: {
|
|
27
|
+
cursor: 'pointer',
|
|
28
|
+
textDecorationLine: 'underline',
|
|
29
|
+
textDecorationStyle: 'dotted',
|
|
30
|
+
textUnderlineOffset: 2,
|
|
31
|
+
}, children: children }));
|
|
32
|
+
}
|
|
33
|
+
/** Detail panel for the selected component — its declaration, code-style. */
|
|
34
|
+
export function ComponentDetail({ component, onOpenFile, onRelatedSelect }) {
|
|
7
35
|
const { theme } = useTheme();
|
|
8
36
|
const muted = theme.colors.textMuted ?? theme.colors.textSecondary;
|
|
9
37
|
const color = KIND_COLOR[component.kind] ?? '#888';
|
|
10
38
|
const displayName = deriveNameFromSymbol(component.symbol, component.kind, component.name, component.file);
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
39
|
+
// Token styles — keyword / name / member / type / string / punctuation.
|
|
40
|
+
const kw = (text) => _jsx("span", { style: { color: theme.colors.secondary }, children: text });
|
|
41
|
+
const nm = (text) => _jsx("span", { style: { color }, children: text });
|
|
42
|
+
const mb = (text) => _jsx("span", { style: { color: theme.colors.info }, children: text });
|
|
43
|
+
// Type tokens are links into the graph (other components often own them).
|
|
44
|
+
const ty = (text) => (_jsx(DetailLink, { onClick: onRelatedSelect ? () => onRelatedSelect(text) : undefined, children: _jsx("span", { style: { color: theme.colors.accent }, children: text }) }));
|
|
45
|
+
const str = (text) => _jsx("span", { style: { color: theme.colors.success }, children: text });
|
|
46
|
+
const pn = (text) => _jsx("span", { style: { color: muted }, children: text });
|
|
47
|
+
const line = (children, key, indent) => (_jsx("div", { style: indent ? { paddingLeft: 16 } : undefined, children: children }, key));
|
|
48
|
+
const commentStyle = { color: muted, fontStyle: 'italic' };
|
|
49
|
+
const commentLine = (text, key, indent, onClick) => line(_jsx(DetailLink, { onClick: onClick, children: _jsx("span", { style: { ...commentStyle, ...(onClick ? clickableStyle : undefined) }, children: text }) }), key, indent);
|
|
50
|
+
// Trailing relationship comments whose names are individually clickable.
|
|
51
|
+
const commentListLine = (prefix, names, key) => line(_jsxs(_Fragment, { children: [_jsx("span", { style: commentStyle, children: prefix }), list(names.map((n, i) => (_jsx(Fragment, { children: _jsx(DetailLink, { onClick: onRelatedSelect ? () => onRelatedSelect(n) : undefined, children: _jsx("span", { style: { ...commentStyle, ...(onRelatedSelect ? clickableStyle : undefined) }, children: n }) }) }, i))))] }), key);
|
|
52
|
+
// Comma-join rendered tokens without raw-array key churn.
|
|
53
|
+
const list = (items) => items.map((item, i) => (_jsxs(Fragment, { children: [i > 0 ? ', ' : null, item] }, i)));
|
|
54
|
+
const lines = [];
|
|
55
|
+
if (component.purl)
|
|
56
|
+
lines.push(commentLine(`// ${formatPurl(component.purl)}`, 'purl'));
|
|
14
57
|
if (component.file)
|
|
15
|
-
|
|
58
|
+
lines.push(commentLine(`// ${component.file}`, 'file', false, onOpenFile ? () => onOpenFile(component.file) : undefined));
|
|
16
59
|
if (component.purpose)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
60
|
+
lines.push(commentLine(`/** ${component.purpose} */`, 'purpose'));
|
|
61
|
+
const detail = component.detail;
|
|
62
|
+
switch (detail?.kind ?? component.kind) {
|
|
63
|
+
case 'class': {
|
|
64
|
+
const members = [];
|
|
65
|
+
if (detail?.kind === 'class') {
|
|
66
|
+
detail.methods.forEach((m, i) => members.push(line(_jsxs(_Fragment, { children: [mb(m.name), pn('('), (m.parameters ?? []).length > 0 &&
|
|
67
|
+
list((m.parameters ?? []).map((p, j) => (_jsxs(Fragment, { children: [p.name ? (_jsxs(_Fragment, { children: [mb(p.name), pn(': ')] })) : null, ty(p.type)] }, j)))), pn(')'), m.returnType ? (_jsxs(_Fragment, { children: [pn(': '), ty(m.returnType)] })) : null] }), `m${i}`, true)));
|
|
68
|
+
detail.properties.forEach((prop, i) => members.push(line(_jsxs(_Fragment, { children: [mb(prop.name), prop.type ? (_jsxs(_Fragment, { children: [pn(': '), ty(prop.type)] })) : null] }), `p${i}`, true)));
|
|
69
|
+
}
|
|
70
|
+
const cls = detail?.kind === 'class' ? detail : undefined;
|
|
71
|
+
const hasBody = members.length > 0;
|
|
72
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('class'), ' ', nm(displayName), cls && cls.extends.length > 0 && (_jsxs(_Fragment, { children: [' ', kw('extends'), ' ', list(cls.extends.map((e, i) => _jsx(Fragment, { children: ty(e) }, i)))] })), cls && cls.implements.length > 0 && (_jsxs(_Fragment, { children: [' ', kw('implements'), ' ', list(cls.implements.map((e, i) => _jsx(Fragment, { children: ty(e) }, i)))] })), hasBody ? pn(' {') : null] }), 'decl'));
|
|
73
|
+
lines.push(...members);
|
|
74
|
+
if (hasBody)
|
|
75
|
+
lines.push(line(pn('}'), 'end'));
|
|
76
|
+
if (cls && cls.instantiations.length > 0)
|
|
77
|
+
lines.push(commentListLine('// constructed by: ', cls.instantiations.map((c) => c.name), 'insts'));
|
|
78
|
+
if (cls && cls.references.length > 0)
|
|
79
|
+
lines.push(commentListLine('// referenced by: ', cls.references.map((r) => r.name), 'refs'));
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case 'function': {
|
|
83
|
+
const fn = detail?.kind === 'function' ? detail : undefined;
|
|
84
|
+
const params = fn?.parameters ?? [];
|
|
85
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('function'), ' ', nm(displayName), pn('('), params.length > 0 &&
|
|
86
|
+
list(params.map((param, i) => (_jsxs(Fragment, { children: [param.name ? (_jsxs(_Fragment, { children: [mb(param.name), pn(': ')] })) : null, ty(param.type)] }, i)))), pn(')'), fn?.returnType ? (_jsxs(_Fragment, { children: [pn(': '), ty(fn.returnType)] })) : null, pn(';')] }), 'decl'));
|
|
87
|
+
if (fn && fn.callers.length > 0)
|
|
88
|
+
lines.push(commentListLine('// called by: ', fn.callers.map((c) => c.name), 'callers'));
|
|
89
|
+
if (fn && fn.callees.length > 0)
|
|
90
|
+
lines.push(commentListLine('// calls: ', fn.callees.map((c) => c.name), 'callees'));
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
case 'type': {
|
|
94
|
+
const tpe = detail?.kind === 'type' ? detail : undefined;
|
|
95
|
+
const hasBody = (tpe?.properties.length ?? 0) > 0;
|
|
96
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('interface'), ' ', nm(displayName), hasBody ? pn(' {') : null] }), 'decl'));
|
|
97
|
+
if (tpe) {
|
|
98
|
+
tpe.properties.forEach((prop, i) => lines.push(line(_jsxs(_Fragment, { children: [mb(prop.name), prop.type ? (_jsxs(_Fragment, { children: [pn(': '), ty(prop.type)] })) : null, pn(';')] }), `p${i}`, true)));
|
|
99
|
+
}
|
|
100
|
+
if (hasBody)
|
|
101
|
+
lines.push(line(pn('}'), 'end'));
|
|
102
|
+
if (tpe && tpe.implementors.length > 0)
|
|
103
|
+
lines.push(commentListLine('// implemented by: ', tpe.implementors, 'impl'));
|
|
104
|
+
if (tpe && tpe.usedBy.length > 0)
|
|
105
|
+
lines.push(commentListLine('// used by: ', tpe.usedBy.map((u) => u.name), 'usedBy'));
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
case 'module': {
|
|
109
|
+
const mod = detail?.kind === 'module' ? detail : undefined;
|
|
110
|
+
if (mod) {
|
|
111
|
+
mod.imports.forEach((imp, i) => lines.push(line(_jsxs(_Fragment, { children: [kw('import'), ' ', pn("'"), str(imp.name), pn("';")] }), `imp${i}`)));
|
|
112
|
+
if (mod.exports.length > 0)
|
|
113
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('export'), ' ', pn('{ '), list(mod.exports.map((e, i) => _jsx(Fragment, { children: mb(e) }, i))), pn(' }'), pn(';')] }), 'exports'));
|
|
114
|
+
if (mod.symbols.length > 0)
|
|
115
|
+
lines.push(commentLine(`// defines: ${mod.symbols.join(', ')}`, 'symbols'));
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('module'), ' ', nm(displayName)] }), 'decl'));
|
|
119
|
+
}
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
case 'external': {
|
|
123
|
+
lines.push(line(_jsxs(_Fragment, { children: [kw('external'), ' ', detail?.kind === 'external' ? (_jsxs(_Fragment, { children: [pn("'"), str(detail.label), pn("'")] })) : (nm(displayName))] }), 'decl'));
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
return (_jsx("div", { style: {
|
|
20
128
|
borderTop: `1px solid ${theme.colors.border}`,
|
|
21
|
-
background: theme.colors.
|
|
129
|
+
background: theme.colors.backgroundSecondary,
|
|
22
130
|
padding: '10px 12px',
|
|
23
|
-
fontFamily: theme.fonts.body,
|
|
24
|
-
}, children: [_jsxs("div", { style: {
|
|
25
|
-
display: 'flex',
|
|
26
|
-
alignItems: 'center',
|
|
27
|
-
gap: 8,
|
|
28
|
-
fontSize: theme.fontSizes[1],
|
|
29
|
-
fontWeight: 600,
|
|
30
|
-
marginBottom: 6,
|
|
31
|
-
}, children: [_jsx("span", { style: { color }, children: displayName }), _jsx("span", { style: {
|
|
32
|
-
fontSize: theme.fontSizes[0] * 0.8,
|
|
33
|
-
fontFamily: theme.fonts.monospace,
|
|
34
|
-
textTransform: 'uppercase',
|
|
35
|
-
color,
|
|
36
|
-
}, children: component.kind })] }), rows.map(([k, v]) => (_jsxs("div", { style: { display: 'flex', gap: 8, fontSize: theme.fontSizes[0], lineHeight: 1.5 }, children: [_jsx("span", { style: {
|
|
37
|
-
width: 64,
|
|
38
|
-
flexShrink: 0,
|
|
39
|
-
color: muted,
|
|
40
|
-
fontFamily: theme.fonts.monospace,
|
|
41
|
-
textTransform: 'uppercase',
|
|
42
|
-
fontSize: theme.fontSizes[0] * 0.8,
|
|
43
|
-
}, children: k }), _jsx("span", { style: { color: theme.colors.text, fontFamily: theme.fonts.monospace }, children: v })] }, k))), component.detail && _jsx(GraphifyDetailSections, { detail: component.detail })] }));
|
|
44
|
-
}
|
|
45
|
-
/** Renders the graphify drill-down payload for a component. */
|
|
46
|
-
function GraphifyDetailSections({ detail }) {
|
|
47
|
-
const { theme } = useTheme();
|
|
48
|
-
const muted = theme.colors.textMuted ?? theme.colors.textSecondary;
|
|
49
|
-
const label = (k) => (_jsx("span", { style: {
|
|
50
|
-
width: 64,
|
|
51
|
-
flexShrink: 0,
|
|
52
|
-
color: muted,
|
|
53
|
-
fontFamily: theme.fonts.monospace,
|
|
54
|
-
textTransform: 'uppercase',
|
|
55
|
-
fontSize: theme.fontSizes[0] * 0.8,
|
|
56
|
-
}, children: k }));
|
|
57
|
-
const chip = (name, meta, key) => (_jsxs("span", { style: {
|
|
58
131
|
fontFamily: theme.fonts.monospace,
|
|
59
132
|
fontSize: theme.fontSizes[0],
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
padding: '1px 6px',
|
|
64
|
-
marginRight: 6,
|
|
65
|
-
marginBottom: 4,
|
|
66
|
-
display: 'inline-block',
|
|
67
|
-
}, children: [name, meta ? _jsxs("span", { style: { color: muted }, children: [" ", meta] }) : ''] }, key));
|
|
68
|
-
const row = (k, children) => (_jsxs("div", { style: { display: 'flex', gap: 8, fontSize: theme.fontSizes[0], lineHeight: 1.5, marginBottom: 4 }, children: [label(k), _jsx("div", { style: { minWidth: 0 }, children: children })] }));
|
|
69
|
-
switch (detail.kind) {
|
|
70
|
-
case 'class':
|
|
71
|
-
return (_jsxs(_Fragment, { children: [detail.methods.length > 0 &&
|
|
72
|
-
row('methods', detail.methods.map((m, i) => chip(m.name, m.returnType, i))), detail.properties.length > 0 &&
|
|
73
|
-
row('props', detail.properties.map((p, i) => chip(p.name, p.type, i))), detail.extends.length > 0 && row('extends', detail.extends.map((e, i) => chip(e, undefined, i))), detail.implements.length > 0 && row('impl', detail.implements.map((e, i) => chip(e, undefined, i))), detail.instantiations.length > 0 &&
|
|
74
|
-
row('insts', detail.instantiations.map((i, idx) => chip(i.name, undefined, idx))), detail.references.length > 0 &&
|
|
75
|
-
row('refs', detail.references.map((r, idx) => chip(r.name, undefined, idx)))] }));
|
|
76
|
-
case 'function':
|
|
77
|
-
return (_jsxs(_Fragment, { children: [detail.parameters.length > 0 &&
|
|
78
|
-
row('params', detail.parameters.map((p, i) => chip(p.type, undefined, i))), detail.returnType && row('return', _jsx("span", { children: detail.returnType })), detail.callers.length > 0 &&
|
|
79
|
-
row('callers', detail.callers.map((c, i) => chip(c.name, undefined, i))), detail.callees.length > 0 &&
|
|
80
|
-
row('callees', detail.callees.map((c, i) => chip(c.name, undefined, i)))] }));
|
|
81
|
-
case 'type':
|
|
82
|
-
return (_jsxs(_Fragment, { children: [detail.properties.length > 0 &&
|
|
83
|
-
row('props', detail.properties.map((p, i) => chip(p.name, p.type, i))), detail.usedBy.length > 0 &&
|
|
84
|
-
row('used by', detail.usedBy.map((u, i) => chip(u.name, undefined, i))), detail.implementors.length > 0 &&
|
|
85
|
-
row('impl', detail.implementors.map((e, i) => chip(e, undefined, i)))] }));
|
|
86
|
-
case 'module':
|
|
87
|
-
return (_jsxs(_Fragment, { children: [detail.exports.length > 0 &&
|
|
88
|
-
row('exports', detail.exports.map((e, i) => chip(e, undefined, i))), detail.imports.length > 0 &&
|
|
89
|
-
row('imports', detail.imports.map((i, idx) => chip(i.name, undefined, idx))), detail.symbols.length > 0 &&
|
|
90
|
-
row('symbols', detail.symbols.map((s, i) => chip(s, undefined, i)))] }));
|
|
91
|
-
case 'external':
|
|
92
|
-
return row('source', _jsx("span", { children: detail.label }));
|
|
93
|
-
}
|
|
133
|
+
lineHeight: 1.7,
|
|
134
|
+
wordBreak: 'break-word',
|
|
135
|
+
}, children: lines }));
|
|
94
136
|
}
|
|
95
137
|
//# sourceMappingURL=ComponentDetail.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentDetail.js","sourceRoot":"","sources":["../../src/subsystem/ComponentDetail.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComponentDetail.js","sourceRoot":"","sources":["../../src/subsystem/ComponentDetail.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,UAAU,GAEX,MAAM,SAAS,CAAC;AAEjB,mDAAmD;AACnD,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,SAAS;IACjB,kBAAkB,EAAE,WAAW;IAC/B,mBAAmB,EAAE,QAAQ;IAC7B,mBAAmB,EAAE,CAAC;CACd,CAAC;AAEX,6EAA6E;AAC7E,SAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAiD;IACtF,IAAI,CAAC,OAAO;QAAE,OAAO,4BAAG,QAAQ,GAAI,CAAC;IACrC,OAAO,CACL,eACE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC,EACD,KAAK,EAAE;YACL,MAAM,EAAE,SAAS;YACjB,kBAAkB,EAAE,WAAW;YAC/B,mBAAmB,EAAE,QAAQ;YAC7B,mBAAmB,EAAE,CAAC;SACvB,YAEA,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC;AAaD,6EAA6E;AAC7E,MAAM,UAAU,eAAe,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAwB;IAC9F,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;IACnE,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IACnD,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IAE3G,wEAAwE;IACxE,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,YAAG,IAAI,GAAQ,CAAC;IAC3F,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,YAAG,IAAI,GAAQ,CAAC;IACnE,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,YAAG,IAAI,GAAQ,CAAC;IACtF,0EAA0E;IAC1E,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAC3B,KAAC,UAAU,IAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,YAC5E,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,YAAG,IAAI,GAAQ,GAC/C,CACd,CAAC;IACF,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,YAAG,IAAI,GAAQ,CAAC;IAC1F,MAAM,EAAE,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAG,IAAI,GAAQ,CAAC;IAE1E,MAAM,IAAI,GAAG,CAAC,QAAmB,EAAE,GAAY,EAAE,MAAgB,EAAE,EAAE,CAAC,CACpE,cAAe,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,YAC3D,QAAQ,IADD,GAAG,CAEP,CACP,CAAC;IACF,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAW,CAAC;IACpE,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,GAAY,EAAE,MAAgB,EAAE,OAAoB,EAAE,EAAE,CACzF,IAAI,CACF,KAAC,UAAU,IAAC,OAAO,EAAE,OAAO,YAC1B,eAAM,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,YAAG,IAAI,GAAQ,GAC/E,EACb,GAAG,EACH,MAAM,CACP,CAAC;IACJ,yEAAyE;IACzE,MAAM,eAAe,GAAG,CAAC,MAAc,EAAE,KAAe,EAAE,GAAY,EAAE,EAAE,CACxE,IAAI,CACF,8BACE,eAAM,KAAK,EAAE,YAAY,YAAG,MAAM,GAAQ,EACzC,IAAI,CACH,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAClB,KAAC,QAAQ,cACP,KAAC,UAAU,IAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,YACzE,eAAM,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,YAAG,CAAC,GAAQ,GACpF,IAHA,CAAC,CAIL,CACZ,CAAC,CACH,IACA,EACH,GAAG,CACJ,CAAC;IACJ,0DAA0D;IAC1D,MAAM,IAAI,GAAG,CAAC,KAAkB,EAAE,EAAE,CAClC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACrB,MAAC,QAAQ,eACN,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACnB,IAAI,KAFQ,CAAC,CAGL,CACZ,CAAC,CAAC;IAEL,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,IAAI,SAAS,CAAC,IAAI;QAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,IAAI,SAAS,CAAC,IAAI;QAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5H,IAAI,SAAS,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,SAAS,CAAC,OAAO,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,QAAQ,MAAM,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE;QACtC,KAAK,OAAO,CAAC,CAAC;YACZ,MAAM,OAAO,GAAgB,EAAE,CAAC;YAChC,IAAI,MAAM,EAAE,IAAI,KAAK,OAAO,EAAE;gBAC5B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC9B,OAAO,CAAC,IAAI,CACV,IAAI,CACF,8BACG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACV,EAAE,CAAC,GAAG,CAAC,EACP,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;4BAC9B,IAAI,CACF,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACjC,MAAC,QAAQ,eACN,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACR,8BACG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACV,EAAE,CAAC,IAAI,CAAC,IACR,CACJ,CAAC,CAAC,CAAC,IAAI,EACP,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAPE,CAAC,CAQL,CACZ,CAAC,CACH,EACF,EAAE,CAAC,GAAG,CAAC,EACP,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CACd,8BACG,EAAE,CAAC,IAAI,CAAC,EACR,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAChB,CACJ,CAAC,CAAC,CAAC,IAAI,IACP,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CACL,CACF,CACF,CAAC;gBACF,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACpC,OAAO,CAAC,IAAI,CACV,IAAI,CACF,8BACG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EACb,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,8BACG,EAAE,CAAC,IAAI,CAAC,EACR,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IACb,CACJ,CAAC,CAAC,CAAC,IAAI,IACP,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CACL,CACF,CACF,CAAC;aACH;YACD,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,KAAK,CAAC,IAAI,CACR,IAAI,CACF,8BACG,EAAE,CAAC,OAAO,CAAC,EACX,GAAG,EACH,EAAE,CAAC,WAAW,CAAC,EACf,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAChC,8BACG,GAAG,EACH,EAAE,CAAC,SAAS,CAAC,EACb,GAAG,EACH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAC,QAAQ,cAAU,EAAE,CAAC,CAAC,CAAC,IAAT,CAAC,CAAoB,CAAC,CAAC,IACrE,CACJ,EACA,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CACnC,8BACG,GAAG,EACH,EAAE,CAAC,YAAY,CAAC,EAChB,GAAG,EACH,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAC,QAAQ,cAAU,EAAE,CAAC,CAAC,CAAC,IAAT,CAAC,CAAoB,CAAC,CAAC,IACxE,CACJ,EACA,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IACzB,EACH,MAAM,CACP,CACF,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;YACvB,IAAI,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9C,IAAI,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACrG,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/F,MAAM;SACP;QACD,KAAK,UAAU,CAAC,CAAC;YACf,MAAM,EAAE,GAAG,MAAM,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D,MAAM,MAAM,GAAG,EAAE,EAAE,UAAU,IAAI,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CACR,IAAI,CACF,8BACG,EAAE,CAAC,UAAU,CAAC,EACd,GAAG,EACH,EAAE,CAAC,WAAW,CAAC,EACf,EAAE,CAAC,GAAG,CAAC,EACP,MAAM,CAAC,MAAM,GAAG,CAAC;wBAChB,IAAI,CACF,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACvB,MAAC,QAAQ,eACN,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACZ,8BACG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EACd,EAAE,CAAC,IAAI,CAAC,IACR,CACJ,CAAC,CAAC,CAAC,IAAI,EACP,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAPF,CAAC,CAQL,CACZ,CAAC,CACH,EACF,EAAE,CAAC,GAAG,CAAC,EACP,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAChB,8BACG,EAAE,CAAC,IAAI,CAAC,EACR,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IACjB,CACJ,CAAC,CAAC,CAAC,IAAI,EACP,EAAE,CAAC,GAAG,CAAC,IACP,EACH,MAAM,CACP,CACF,CAAC;YACF,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YAC1F,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;YACtF,MAAM;SACP;QACD,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CACR,IAAI,CACF,8BACG,EAAE,CAAC,WAAW,CAAC,EACf,GAAG,EACH,EAAE,CAAC,WAAW,CAAC,EACf,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IACzB,EACH,MAAM,CACP,CACF,CAAC;YACF,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CACjC,KAAK,CAAC,IAAI,CACR,IAAI,CACF,8BACG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EACb,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CACX,8BACG,EAAE,CAAC,IAAI,CAAC,EACR,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IACb,CACJ,CAAC,CAAC,CAAC,IAAI,EACP,EAAE,CAAC,GAAG,CAAC,IACP,EACH,IAAI,CAAC,EAAE,EACP,IAAI,CACL,CACF,CACF,CAAC;aACH;YACD,IAAI,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9C,IAAI,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;YAC/E,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;YACvF,MAAM;SACP;QACD,KAAK,QAAQ,CAAC,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,IAAI,GAAG,EAAE;gBACP,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAC7B,KAAK,CAAC,IAAI,CACR,IAAI,CACF,8BACG,EAAE,CAAC,QAAQ,CAAC,EACZ,GAAG,EACH,EAAE,CAAC,GAAG,CAAC,EACP,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EACb,EAAE,CAAC,IAAI,CAAC,IACR,EACH,MAAM,CAAC,EAAE,CACV,CACF,CACF,CAAC;gBACF,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBACxB,KAAK,CAAC,IAAI,CACR,IAAI,CACF,8BACG,EAAE,CAAC,QAAQ,CAAC,EACZ,GAAG,EACH,EAAE,CAAC,IAAI,CAAC,EACR,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAC,QAAQ,cAAU,EAAE,CAAC,CAAC,CAAC,IAAT,CAAC,CAAoB,CAAC,CAAC,EACrE,EAAE,CAAC,IAAI,CAAC,EACR,EAAE,CAAC,GAAG,CAAC,IACP,EACH,SAAS,CACV,CACF,CAAC;gBACJ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBACxB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;aAC/E;iBAAM;gBACL,KAAK,CAAC,IAAI,CACR,IAAI,CACF,8BACG,EAAE,CAAC,QAAQ,CAAC,EACZ,GAAG,EACH,EAAE,CAAC,WAAW,CAAC,IACf,EACH,MAAM,CACP,CACF,CAAC;aACH;YACD,MAAM;SACP;QACD,KAAK,UAAU,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CACR,IAAI,CACF,8BACG,EAAE,CAAC,UAAU,CAAC,EACd,GAAG,EACH,MAAM,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAC7B,8BACG,EAAE,CAAC,GAAG,CAAC,EACP,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EACjB,EAAE,CAAC,GAAG,CAAC,IACP,CACJ,CAAC,CAAC,CAAC,CACF,EAAE,CAAC,WAAW,CAAC,CAChB,IACA,EACH,MAAM,CACP,CACF,CAAC;YACF,MAAM;SACP;KACF;IAED,OAAO,CACL,cACE,KAAK,EAAE;YACL,SAAS,EAAE,aAAa,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;YAC7C,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,mBAAmB;YAC5C,OAAO,EAAE,WAAW;YACpB,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;YACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5B,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,YAAY;SACxB,YAEA,KAAK,GACF,CACP,CAAC;AACJ,CAAC"}
|