Commit graph

256 commits

Author SHA1 Message Date
Georgi Serev
cd0e96c1d0
fix(devtools): router tree details table data
Introduce layout fixes and use dedicated buttons for the view source and navigate actions.
2025-11-05 17:07:18 +00:00
hawkgs
31d412771b refactor(devtools): update the looks of hydration overlay switch
Move the option under the directive explorer and drop the switch to match the rest of the UI.
2025-11-05 17:04:46 +00:00
SkyZeroZx
058377ed55 refactor(devtools): handle function-based redirectTo and title in router viewer
Refactors router viewer logic to properly process and display redirectTo and title when defined as functions
2025-11-04 17:54:07 +00:00
SkyZeroZx
bd27e96273 refactor(devtools): Removes redundant input undefined in angularVersion
Simplifies the initialization of the version input by removing
an unnecessary undefined
2025-10-30 19:40:07 +00:00
hawkgs
c1dee66866 fix(devtools): signal graph value preview mat-tree row indentation (#64798)
Fix the identation and arrows of signal graph value preview mat-tree.

PR Close #64798
2025-10-30 17:18:29 +00:00
SkyZeroZx
aaa3020b94 refactor(devtools): Improves error messaging for profiler file import
Formats error messages to display error name and message when importing profiler files fails
2025-10-29 12:38:20 +01:00
SkyZeroZx
bfcaf17005 refactor(devtools): Improves clipboard error feedback with snackbar and logging
Enhances user experience by displaying a snackbar notification when clipboard copy fails, and logs detailed error information via the message bus
2025-10-27 19:41:54 +01:00
Matthieu Riegler
50a55d6afb refactor(devtools): use preview value in property editor (#64552)
This way only the `preview` property handles the `Signal()` wrapper (and not individual components anymore)

PR Close #64552
2025-10-21 15:18:56 +00:00
hawkgs
9b7a79af3a refactor(devtools): update debug signal node type to match core type (#64127)
Use a union string type instead of a generic string.

PR Close #64127
2025-10-20 20:15:46 +00:00
AleksanderBodurri
9a1735aee8 fix(devtools): revert router tree dashed edges for lazy routes (#64532)
From my investigation what I know for sure:
- when the graph pans or zooms it updates the transform property on the g element, which in turn causes the browser to repaint the visible space in the g element
- stroke-dasharray is the cause of major performance issues in large graphs.

What I suspect:
- When the g element repaints, it also has to repaint all of the child svg elements. When the dashed line path svgs repaint, the stroke-dasharray calculation is not GPU accelerated, but instead occurs on the CPU, causing extreme lag whenever the svg graph is panned or zoomed.

Temporary solution: remove this dashed edge functionality. We can investigate alternatives for communicated that a path is lazy loaded.

Future long term solution: migrate to canvas based graph renderer for router tree and injector graph.

PR Close #64532
2025-10-20 15:32:49 +00:00
Matthieu Riegler
b7c47d8fad refactor(devtools): Create a separate type of signals for after effect phases. (#64315)
With this change, we ensure afterRenderEffect phases nodes appear more like "effects" than regular signal node.

PR Close #64315
2025-10-16 18:47:13 +00:00
SkyZeroZx
6af231e2d6 refactor(devtools): Replace console warnings with snackbar notifications (#64458)
Improves user experience by displaying UI notifications when attempting to view source for unsupported routes, replacing developer-only console warnings with visible snackbars

PR Close #64458
2025-10-16 14:41:34 +00:00
hawkgs
134ff540b5 fix(devtools): directive-forest minor UI fixes (#64426)
- Fix the hydration icons when the text from the nodes exceeds the component width
- Align and slightly enlarge the arrow icons

PR Close #64426
2025-10-16 14:37:12 +00:00
Matthieu Riegler
17528628fa refactor(devtools): Router viz is only from 20.3.5 onward (#64415)
This is following some updated in #64411

PR Close #64415
2025-10-15 10:39:32 -07:00
Matthieu Riegler
2f8066adbe refactor(devtools): remove "changes" entry. (#64338)
This is just the same value as total time spent. Also it is confusing to some users.

fixes #51206

PR Close #64338
2025-10-15 10:38:20 -07:00
hawkgs
356dc4c952 refactor(devtools): add clear button to the directive explorer filter (#64407)
Add a standard clear button after the matches nav buttons.

PR Close #64407
2025-10-14 09:28:39 -07:00
hawkgs
dffb16afdf refactor(devtools): use lighter property-tab bg only when there are directives (#64404)
Use the contrasting background color only when there are directives to inspect; Drop obsolete CDK drag

PR Close #64404
2025-10-14 09:26:56 -07:00
hawkgs
0b204a8321 fix(devtools): property-view-tree layout (#64343)
Fix various issues related to `property-view-tree` layout.

PR Close #64343
2025-10-13 08:26:29 -07:00
Milo
0ed13485c8 refactor(devtools): stabilize signal graph (#64263)
remove experimental signal graph toggle, enable the signal graph by default if it is available

PR Close #64263
2025-10-07 20:44:03 -04:00
AleksanderBodurri
ac0eb2318c fix(devtools): fix incorrect styling of nodes between renders (#63979)
Previously, the router tree would not properly clean up css classes placed on nodes which would lead to some nodes being incorrectly visualized after each update.

PR Close #63979
2025-10-07 20:19:22 -04:00
Matthieu Riegler
e40307803a refactor(devtools): visual separation between directives in the property tab (#64222)
also a drive by clean-up to remove some `ng-deep` stylings

PR Close #64222
2025-10-03 15:05:50 +00:00
Matthieu Riegler
a10eb38f76 feat(devtools): Add possibility to log directive instances and their prop values (#64143)
The improves debug possibilties via the Angular devtools

fixes #62235

PR Close #64143
2025-09-30 10:30:58 -04:00
hawkgs
caee728d3b fix(devtools): signal graph linkedSignal node UI (#64105)
Fix the colors of `linkedSignal`s. Use grayish colors for unknown/unhandled signals.

PR Close #64105
2025-09-26 11:55:00 -04:00
hawkgs
a45e6fd44a fix(devtools): signal graph effect node (#64076)
Add a label and some other minor UI tweaks.

PR Close #64076
2025-09-25 15:03:15 -04:00
AleksanderBodurri
521c2a7646 feat(devtools): Change lazy/eager visualization by using dashed lines and correctly positioned edge arrows (#63980)
Previously we would visualize route config "types" by colouring different nodes.

Now the we only colour nodes to represent the active route path. Lazy loaded routes are represented with dashed line edges that point in the direction of loading.

PR Close #63980
2025-09-24 14:25:28 +00:00
AleksanderBodurri
4fa3b2673e feat(devtools): display provider count on injector tree nodes (#63632)
Allows the tree visualizer to display a sublabel for each node.

Used by the injector tree to display provider count for each injector.

PR Close #63632
2025-09-18 14:56:47 +00:00
hawkgs
8b43fcec1a fix(devtools): router tree legend overflow (#63813)
Set `overflow` to `hidden` so the router tree legend doesn't overflow its parent container.

PR Close #63813
2025-09-15 19:37:19 +00:00
hawkgs
d476f881af fix(devtools): minor UI issues in transfer state tab (#63810)
Fix some Material-related table regressions and change some font sizes.

PR Close #63810
2025-09-15 15:48:26 +00:00
hawkgs
cfe0f03544 refactor(devtools): add a close button to the injector-provides pane (#63808)
Add a close button to the Injector Providers pane in the Injector Tree.

PR Close #63808
2025-09-15 15:40:00 +00:00
Shuaib Hasan Akib
7e828e3d39 docs(docs-infra): code style improvement and component update (#63557)
- Improved code style consistency in docs-infra
- Updated app.component.ts for enhancements

Co-authored-by: Matthieu Riegler <kyro38@gmail.com>

PR Close #63557
2025-09-15 15:02:24 +00:00
hawkgs
f8cea65c88 refactor(devtools): property-tab folder structure (#63759)
Re-organize components and use separate BUILD files.

PR Close #63759
2025-09-12 16:49:25 +00:00
hawkgs
464bff95ef refactor(devtools): intergrate the TreeVisualizer into the TreeVisualizerHost component (#63530)
Use the `TreeVisualizer` internally in the host component instead of managing these separately in their client components.

PR Close #63530
2025-09-12 15:08:36 +00:00
hawkgs
4a16245af0 refactor(devtools): double the Angular app detection attempts (#63271)
Increases the total attempt time from 5s to 10s.

PR Close #63271
2025-09-11 16:55:28 +00:00
hawkgs
ce4ab17858 fix(devtools): property-tab-header layout for elements (#63682)
Fix SCSS scoping issue that breaks the `property-tab-header` layout for elements.

PR Close #63682
2025-09-10 22:11:13 +00:00
hawkgs
94a0880128 fix(devtools): keep the selected node visible when the directive tree resizes (#63681)
Keep the selected node (component/element) visible when the directive tree component resizes (e.g. signal graph pane becomes visible).

Closes #63670

PR Close #63681
2025-09-10 22:07:07 +00:00
hawkgs
d05680a260 feat(devtools): add a close button to the signal details panel (#63680)
Add a close button to the signal graph details panel.

Closes #63671

PR Close #63680
2025-09-10 22:06:36 +00:00
Andrew Scott
c3576506b3 refactor(core): Update tests for zoneless by default (#63668)
This updates tests and examples only to prepare for zoneless by default.

These changes were identified and made as part of #63382. Anything that
failed gets `provideZoneChangeDetection` unless the fixes were easily
and quickly determined.

It also adds the zoneless provider to the `initTestEnvironment` calls
for tests in this repo to prevent regressions before #63382 is merged.

PR Close #63668
2025-09-09 14:41:56 -07:00
Matthieu Riegler
3dc5056242 Revert "test(devtools): create e2e test cases for injector tree feature (#62844)" (#63653)
This reverts commit 785af438bc.

PR Close #63653
2025-09-09 08:38:58 +02:00
AleksanderBodurri
785af438bc test(devtools): create e2e test cases for injector tree feature (#62844)
Tests validate the current behaviour of the injector tree feature.

- Nodes should be displaying on entering the tab
- Hide framework / Hide injectors with no providers flags should filter the tree properly
- Providers side tab should be able to be opened and filtered properly using the 2 filter input fields for token and type

PR Close #62844
2025-09-08 13:57:14 -07:00
Avcharov Hryhorii
160e065d35 feat(devtools): store last selected tab in settings (#63594)
Store last selected tab after application refresh

PR Close #63594
2025-09-08 11:18:14 -07:00
Avcharov Hryhorii
ef025880cc fix: remove refresh button from transfer state tab (#63592)
TransferState is only written into the DOM once during SSR and is not kept in sync with the runtime state on the client. Pressing the refresh button always re-reads the initial serialized script tag, which never changes after bootstrap.

PR Close #63592
2025-09-04 09:23:23 -07:00
AleksanderBodurri
d006721f30 feat(devtools): clean up router tree for stable release (#63081)
Addresses some cleanup items for the router tree:

- No longer loads router ng global APIs as a side effect of importing the router. Rather this is now a runtime step that occurs when provideRouter is called.
- No longer depends on router.navigateByUrl in Angular DevTools. There is now a dedicated global util for this
- Router instance logic no longer depends on token name
- Prevents navigating to lazy or redirect routes (these don't have an associated component)

PR Close #63081
2025-09-02 20:59:15 -07:00
hawkgs
01bbafd47e fix(devtools): runtime errors caused by tree node snapping and tab change (#63531)
Fix the runtime errors caused by the tree visualizer node auto-snapping when a tab is changed. The errors are caused since we only visually hide the tabs.

PR Close #63531
2025-09-02 16:43:32 +00:00
Hongxu Xu
1f4c5f72aa refactor(bazel): reduce build deps (#63348)
clean up deps in bazel build scripts

PR Close #63348
2025-08-28 09:16:10 -07:00
Joey Perrott
dfa2044af9 build: fix strict deps failure (#63403)
Fix the remaining strict deps failure

PR Close #63403
2025-08-26 11:46:43 -07:00
Avcharov Hryhorii
aff8bb222c refactor(devtools): provide signalGraphEnabled via settings service (#63374)
signalGraphEnabled was previously passed down the component tree.
This change refactors the logic to use the settings service instead,
which already holds the value and allows sharing it across components.

PR Close #63374
2025-08-26 09:42:12 -07:00
Avcharov Hryhorii
1cb113cdec fix(devtools): prevent profiler bars flickering after change detection (#63350)
Without trackBy cdkVirtualFor rerenders full list after in each update

PR Close #63350
2025-08-26 09:41:08 -07:00
Joey Perrott
3df1dccebe refactor: various build and import specificer fixes for strict deps (#63323)
Change direct deps in bazel targets and import specifiers within files to maintain strict deps requirements ahead of enabling strict deps tests in the repo

PR Close #63323
2025-08-22 14:45:00 -07:00
hawkgs
863401b858 refactor(devtools): add property show graph button (#62853)
Add "Show graph" button to the signal properties in the side pane only for Angular apps. This required storing the signal graph in a separate service.

PR Close #62853
2025-08-20 09:04:24 +00:00
AleksanderBodurri
5115050928 fix(devtools): DOM traversal bug (#62719)
Previously, Angular devtools would mistakenly traverse the same DOM elements multiple times while doing traversal for the component tree explorer. This error case would occur when more than 1 Angular application root component was present on the same page and in distinct DOM branches.

Some example cases that did work previously:

```html
<app-root>
...
</app-root>
```

```html
<app-root>
...
<app-root-2></app-root-2>
...
</app-root>
```

An example of where it would enter the irregular behaviour

```html
<app-root>
...
</app-root>
<app-root-2>
...
</app-root-2>
```

Now, we properly ignore duplicate DOM paths when looking for application and non-application root component to begin the Angular DevTools component discovery logic.

PR Close #62719
2025-08-18 15:43:09 +00:00