Skip to content

Commit 9273f1c

Browse files
authored
feat(devtools): add resource visualization to the signal graph
Convert the signal graph to a Devtools-FE-specific signal graph that supports clusters; Add support for `resource` clusters; Introduce some improvements to the signal graph viz
1 parent 910768f commit 9273f1c

37 files changed

Lines changed: 2203 additions & 604 deletions

devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ ng_project(
3030
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/directive-forest/index-forest",
3131
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-resolver",
3232
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab",
33-
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/signal-graph:signal-graph-manager",
33+
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/signal-graph",
3434
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/signals-view:signals-tab",
3535
"//devtools/projects/ng-devtools/src/lib/shared/object-tree-explorer:types",
3636
"//devtools/projects/ng-devtools/src/lib/shared/split",
@@ -54,7 +54,7 @@ ts_test_library(
5454
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/directive-forest/index-forest",
5555
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-resolver",
5656
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab",
57-
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/signal-graph:signal-graph-manager",
57+
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/signal-graph",
5858
"//devtools/projects/ng-devtools/src/lib/shared/object-tree-explorer:types",
5959
"//devtools/projects/protocol",
6060
],

devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/directive-explorer.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import {
2323
import {
2424
ComponentExplorerView,
2525
ComponentExplorerViewQuery,
26-
DebugSignalGraphNode,
2726
DevToolsNode,
2827
DirectivePosition,
2928
ElementPosition,
@@ -56,6 +55,7 @@ import {SplitAreaDirective} from '../../shared/split/splitArea.directive';
5655
import {SplitComponent} from '../../shared/split/split.component';
5756
import {Direction} from '../../shared/split/interface';
5857
import {SignalGraphManager} from './signal-graph/signal-graph-manager';
58+
import {DevtoolsSignalGraphNode} from './signal-graph';
5959

6060
const FOREST_VER_SPLIT_SIZE = 30;
6161
const SIGNAL_GRAPH_VER_SPLIT_SIZE = 70;
@@ -388,7 +388,7 @@ export class DirectiveExplorerComponent {
388388
}
389389
}
390390

391-
showSignalGraph(node: DebugSignalGraphNode | null) {
391+
showSignalGraph(node: DevtoolsSignalGraphNode | null) {
392392
if (node) {
393393
this.preselectedSignalNodeId.set(node.id);
394394
}

devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ ng_project(
2222
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/defer-view",
2323
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/property-tab-header",
2424
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/property-view",
25+
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/signal-graph",
2526
"//devtools/projects/ng-devtools/src/lib/shared/object-tree-explorer:types",
2627
"//devtools/projects/protocol",
2728
],

devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/property-tab.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@
77
*/
88

99
import {ChangeDetectionStrategy, Component, computed, input, output} from '@angular/core';
10-
import {DebugSignalGraphNode, DirectivePosition} from '../../../../../../protocol';
10+
import {DirectivePosition} from '../../../../../../protocol';
1111

1212
import {IndexedNode} from '../directive-forest/index-forest';
1313
import {PropertyTabHeaderComponent} from './property-tab-header/property-tab-header.component';
1414
import {DeferViewComponent} from './defer-view/defer-view.component';
1515
import {PropertyViewComponent} from './property-view/property-view.component';
1616
import {FlatNode} from '../../../shared/object-tree-explorer/object-tree-types';
17+
import {DevtoolsSignalGraphNode} from '../signal-graph';
1718

1819
@Component({
1920
selector: 'ng-property-tab',
@@ -27,7 +28,7 @@ export class PropertyTabComponent {
2728

2829
readonly viewSource = output<string>();
2930
readonly inspect = output<{node: FlatNode; directivePosition: DirectivePosition}>();
30-
readonly showSignalGraph = output<DebugSignalGraphNode | null>();
31+
readonly showSignalGraph = output<DevtoolsSignalGraphNode | null>();
3132

3233
readonly currentDirectives = computed(() => {
3334
const selected = this.currentSelectedElement();

devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/property-view/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ ng_project(
2121
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-resolver",
2222
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/property-view/property-view-body",
2323
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/property-view/property-view-header",
24+
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/signal-graph",
2425
"//devtools/projects/ng-devtools/src/lib/shared/object-tree-explorer:types",
2526
"//devtools/projects/protocol",
2627
],

devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/property-view/property-view-body/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ ng_project(
2626
"//devtools/projects/ng-devtools/src/lib/application-providers:supported_apis",
2727
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-resolver",
2828
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/property-view/property-view-body/dependency-viewer",
29-
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/signal-graph:signal-graph-manager",
29+
"//devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/signal-graph",
3030
"//devtools/projects/ng-devtools/src/lib/shared/docs-ref-button",
3131
"//devtools/projects/ng-devtools/src/lib/shared/object-tree-explorer",
3232
"//devtools/projects/ng-devtools/src/lib/shared/object-tree-explorer:types",

devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/property-view/property-view-body/property-view-body.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import {SUPPORTED_APIS} from '../../../../../application-providers/supported_api
3333

3434
import {SignalGraphManager} from '../../../signal-graph/signal-graph-manager';
3535
import {FlatNode} from '../../../../../shared/object-tree-explorer/object-tree-types';
36+
import {DevtoolsSignalGraphNode} from '../../../signal-graph';
3637

3738
@Component({
3839
selector: 'ng-property-view-body',
@@ -63,7 +64,7 @@ export class PropertyViewBodyComponent {
6364
readonly directiveStateControls = input.required<DirectiveTreeData>();
6465

6566
readonly inspect = output<{node: FlatNode; directivePosition: DirectivePosition}>();
66-
readonly showSignalGraph = output<DebugSignalGraphNode>();
67+
readonly showSignalGraph = output<DevtoolsSignalGraphNode>();
6768

6869
protected readonly dependencies = computed(() => {
6970
const metadata = this.controller().directiveMetadata;
@@ -120,7 +121,7 @@ export class PropertyViewBodyComponent {
120121
});
121122
}
122123

123-
getSignalNode(node: FlatNode): DebugSignalGraphNode | null {
124+
getSignalNode(node: FlatNode): DevtoolsSignalGraphNode | null {
124125
if (node.prop.descriptor.containerType?.includes('Signal')) {
125126
return this.signalGraph.graph()?.nodes.find((sn) => sn.label === node.prop.name) ?? null;
126127
}

devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/property-tab/property-view/property-view.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
*/
88

99
import {ChangeDetectionStrategy, Component, computed, inject, input, output} from '@angular/core';
10-
import {DebugSignalGraphNode, DirectivePosition} from '../../../../../../../protocol';
10+
import {DirectivePosition} from '../../../../../../../protocol';
1111

1212
import {ElementPropertyResolver} from '../../property-resolver/element-property-resolver';
1313
import {PropertyViewBodyComponent} from './property-view-body/property-view-body.component';
1414
import {PropertyViewHeaderComponent} from './property-view-header/property-view-header.component';
1515
import {FlatNode} from '../../../../shared/object-tree-explorer/object-tree-types';
16+
import {DevtoolsSignalGraphNode} from '../../signal-graph';
1617

1718
@Component({
1819
selector: 'ng-property-view',
@@ -26,7 +27,7 @@ export class PropertyViewComponent {
2627

2728
readonly inspect = output<{node: FlatNode; directivePosition: DirectivePosition}>();
2829
readonly viewSource = output<void>();
29-
readonly showSignalGraph = output<DebugSignalGraphNode>();
30+
readonly showSignalGraph = output<DevtoolsSignalGraphNode>();
3031

3132
handleLogInstance(): void {
3233
const controller = this.controller();

devtools/projects/ng-devtools/src/lib/devtools-tabs/directive-explorer/signal-graph/BUILD.bazel

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,13 @@ load("//devtools/tools:defaults.bzl", "ng_project", "ts_test_library", "zoneless
33
package(default_visibility = ["//devtools:__subpackages__"])
44

55
ng_project(
6-
name = "signal-graph-manager",
7-
srcs = ["signal-graph-manager.ts"],
6+
name = "signal-graph",
7+
srcs = glob(
8+
["*.ts"],
9+
exclude = [
10+
"*.spec.ts",
11+
],
12+
),
813
deps = [
914
"//:node_modules/@angular/core",
1015
"//devtools/projects/protocol",
@@ -15,7 +20,7 @@ ts_test_library(
1520
name = "test_lib",
1621
srcs = glob(["*.spec.ts"]),
1722
deps = [
18-
":signal-graph-manager",
23+
":signal-graph",
1924
"//:node_modules/@angular/core",
2025
"//devtools/projects/protocol",
2126
],

0 commit comments

Comments
 (0)