Commit graph

34096 commits

Author SHA1 Message Date
Alan Agius
a786bb6f4b build: remove redundant yarn.lock files (#63105)
These are now managed by pnpm.

PR Close #63105
2025-08-12 10:01:59 +02:00
Matthieu Riegler
9aef481172 refactor(zone.js): remove unused jasmine globalerror monkey patching. (#63077)
This is for testing purposes for now. See discussion on the related issue.

fixes #63072

PR Close #63077
2025-08-11 16:41:09 -07:00
Matthieu Riegler
f9a38a4b73 refactor(core): remove temporary resource setter function. (#63097)
Now that G3 has been fully migrated to the new throwing behavior, we don't need that setter anymore.

PR Close #63097
2025-08-11 15:43:45 -07:00
hawkgs
d47ea29b89 refactor(devtools): keep TreeVisualizer snapped node on focus (#62982)
Keep `TreeVisualizer` snapped node on focus when the container/split is being resized.

PR Close #62982
2025-08-11 12:26:31 -07:00
Matthieu Riegler
baa31fb1a1 docs: remove router testing from the testing scenarios guide (#63078)
This commit also adds the router testing guide to the testing section

PR Close #63078
2025-08-11 12:15:39 -07:00
Kristiyan Kostadinov
d17555a7c6 fix(compiler): incorrect spans for AST inside input value with leading space (#63082)
When parsing expressions inside a bound attribute, we offset all of its spans by an `absoluteOffset` in order to get the right spans in the source file. The offset was incorrect when parsing an attribute with leading spaces during the construction of the Ivy AST, because of the combination of:
1. We were setting the offset by looking at `valueSpan.start`.
2. The Ivy parser sets `leadingTriviaChars: [' ', '\n']` which means that spaces and new lines will be ignored in the `sourceSpan.start`.

These changes resolve the issue by using `valueSpan.fullStart` which includes the leading spaces.

Fixes #63069.

PR Close #63082
2025-08-11 11:57:05 -07:00
Alan Agius
06f5879e42 ci: several fixes for renovate (#63083)
This commit contains several fixes for renovate to work properly with `pnpm`

PR Close #63083
2025-08-11 11:03:28 -07:00
Joey Perrott
c4dcfdf644 build: update to the latest version of devinfra and rename npm2 workspace (#63093)
Rename the npm2 workspace to npm and use the latest version of devinfra which drops rules_nodejs

PR Close #63093
2025-08-11 10:35:32 -07:00
Kristiyan Kostadinov
57184d0895 docs: release notes for the v20.2.0-rc.0 release 2025-08-11 10:42:32 +02:00
Kristiyan Kostadinov
2e4db98877 release: bump the next branch to v20.3.0-next.0 2025-08-11 10:42:32 +02:00
Kristiyan Kostadinov
660444fbf2 fix(router): attempt to resolve component resources in JIT mode (#63062)
In #62758 we started loading the component resources during bootstrap in JIT mode to ensure that they're in place by the time we create the component. This won't work for lazy-loaded components in the router, because they don't exist at bootstrap time.

These changes add similar logic when the router loads a component.

PR Close #63062
2025-08-08 14:18:21 -07:00
SkyZeroZx
3b214d2040 feat(service-worker): Logs unhandled promise rejections in service worker (#63059)
Adds handling and logging for unhandled promise rejections to improve debugging and prevent silent failures. Updates tests and test harness to verify logging of rejection reasons

PR Close #63059
2025-08-08 11:07:19 -07:00
Shuaib Hasan Akib
efb2726ffc docs(docs-infra): add next page reference (#62566)
PR Close #62566
2025-08-08 11:06:33 -07:00
Jessica Janiuk
6a1184600c fix(core): prevents duplicate nodes when @if toggles with leave animations (#63048)
In the case that a leave animation is running and someone toggles an `@if`, a new node would be inserted. For a brief moment, there may be two of the same nodes visible at once. While this is expected with native CSS, it's not ideal. Instead, we retain a reference to the leaving element and can remove that node when the new node is entering.

fixes: #63020

PR Close #63048
2025-08-08 10:02:35 -07:00
hawkgs
c0bfe23bc9 refactor(devtools): save theme preference (#63050)
Save the theme preference in the settings store.

PR Close #63050
2025-08-08 08:58:14 -07:00
Matthieu Riegler
85d51a3215 fix(core): destroying the effect on afterRenderEffect (#63001)
Prior to this commit, the effect node wasn't destroyed.

fixes #62980

PR Close #63001
2025-08-08 08:46:46 -07:00
Kristiyan Kostadinov
a409534d6c feat(core): support as aliases on else if blocks (#63047)
Expands support for the `as` keyword to `@else if` blocks. Previously it was only allowed on `@if`.

PR Close #63047
2025-08-08 08:43:00 -07:00
Kristiyan Kostadinov
c77e51930d fix(compiler-cli): error when type checking host bindings of generic directive (#63061)
Fixes that the compiler was throwing an error if type checking of host bindings is enabled for a generic directive. The problem was that we were always using the `TcbNonGenericDirectiveTypeOp`.

Fixes #63052.

PR Close #63061
2025-08-08 08:42:23 -07:00
Andrew Scott
0a827f9284 refactor(zone.js): Add internal implementation for auto ticking fakeAsync (#62135)
Benefits of auto-ticking mock clocks have been described in other PRs,
such as https://github.com/jasmine/jasmine/pull/2042 and
https://github.com/sinonjs/fake-timers/pull/509. In short, `fakeAsync`
cannot work when some tasks are required to be truly async, such as XHRs
or observers like ResizeObserver. In addition, auto ticking mock clocks
can be applied to tests without the tests then needing to update
everything to manually flush timers.

PR Close #62135
2025-08-08 08:39:24 -07:00
Andrew Scott
124dcc0a1f release: cut the v20.2.0-next.6 release 2025-08-07 15:45:04 -07:00
Andrew Scott
812463c563 fix(compiler-cli): Ignore diagnostics on ngTemplateContextGuard lines in TCB (#63054)
Deprecated diagnostics can appear on the context guard becaues the
directive itself may be deprecated.

For example, context guards look like `if (i1.NgForOf.ngTemplateContextGuard(_t8, _t9) /*331,378*/) {...}`
and typescript will report the deprecation on the whole element, from
start to end tag, because the span for that node includes it.

fixes https://github.com/angular/vscode-ng-language-service/issues/2203

PR Close #63054
2025-08-07 15:38:38 -07:00
Andrew Scott
45b030b5ce fix(compiler-cli): prevent dom event assertion in TCB generation on older angular versions (#63053)
This fixes an issue caused by
https://github.com/angular/angular/pull/62648 for older versions of
Angular when the newest version of the language service is used. This
prevents the TCB from attempting to use the assertType when it does not
exist.

fixes #63046

PR Close #63053
2025-08-07 15:37:54 -07:00
Joey Perrott
0d12eac34c build: remove unused old toolchain dependencies (#63039)
Update to latest version of dev-infra and complete the removal of rules_nodejs from the repo

PR Close #63039
2025-08-07 09:31:45 -07:00
Doug Parker
e524b333a3 docs(devtools): update pnpm install command (#63040)
The `install` subcommand is necessary for `--frozen-lockfile` to work.

PR Close #63040
2025-08-07 09:11:22 -07:00
Cheng-Hsuan Tsai
621d077746 docs(docs-infra): fix inconsistent codeblock styles (#63041)
PR Close #63041
2025-08-07 09:09:21 -07:00
Doug Parker
3a320bdec9 release: bump Angular DevTools version to 1.0.42 (#63036)
PR Close #63036
2025-08-06 14:56:26 -07:00
Andrew Scott
90b0227407 release: cut the v20.2.0-next.5 release 2025-08-06 12:11:18 -07:00
Andrew Scott
9365a7fde3 docs: release notes for the v20.1.6 release 2025-08-06 12:05:20 -07:00
Joey Perrott
ecc86e2986 build: explicitly include types for locales in @angular/common/locales (#63030)
Include the d.ts files for each local in the @angular/common/locales files

PR Close #63030
2025-08-06 11:44:33 -07:00
Matthieu Riegler
687c374826 feat(router): add a currentNavigation signal to the Router service. (#63011)
This new signal property is convenient to derive a `isNavigating` state.

`isNavigating = computed(() => !!this.router.currentNavigation())`

DEPRECATED: The Router.getCurrentNavigation method is deprecated. Use the Router.currentNavigation signal instead.

fixes #62958

PR Close #63011
2025-08-06 09:54:53 -07:00
Ryan Bendel
d24d5742db feat(platform-browser): Add IsolatedShadowDom encapsulation method (#62723)
IsolatedShadowDom encapsulation fixes style leakage in Shadowdom encapsulation by removing sharedstyleshost from dom-renderer IsolatedShadowdom class. Updates docs.

PR Close #62723
2025-08-06 16:48:37 +02:00
Ben Hong
fd5fcf3887 docs: add dedicated router testing guide (#62445)
PR Close #62445
2025-08-06 16:47:21 +02:00
ivanwonder
b78de31c94 refactor(language-service): handle the undefined value of a symbol for a type (#63002)
using the `getSymbol` instead of the `type.symbol`, for the primitive type,
the `type.symbol` returns the `undefined` value. The return type of `getSymbol`
includes `undefined`, while `type.symbol` does not.

For example:

```ts
class BarComponent {
   /**
   * @deprecated
   */
  name = ""
}
```

The type of `name` is `string`, the `type.symbol` for the `string`
returns `undefined` here.

e3ef7ff50d/src/services/types.ts (L111)
e3ef7ff50d/src/compiler/types.ts (L6445)

PR Close #63002
2025-08-06 16:46:40 +02:00
Joey Perrott
40e5fedabf build: correct the snapshot build script now that zone.js does not create a tar file (#63021)
No longer create and copy a tar file for zone.js snapshot builds.

PR Close #63021
2025-08-06 16:45:36 +02:00
Kristiyan Kostadinov
c6b71be4e1 release: cut the v20.2.0-next.4 release 2025-08-06 16:43:20 +02:00
Kristiyan Kostadinov
eb4ae827a2 docs: release notes for the v20.1.5 release 2025-08-06 16:39:53 +02:00
hawkgs
533f8e48fd refactor(devtools): save transfer state tab state in the settings store (#62429)
Save the Transfer State tab state in the Settings store.

PR Close #62429
2025-08-06 15:12:00 +02:00
hawkgs
b66ad99020 refactor(devtools): implement a migration mechanism for the settings store (#62429)
Implement a simple mechanism that allows settings store data to be migrated, if needed.

PR Close #62429
2025-08-06 15:12:00 +02:00
hawkgs
cb8d30a293 refactor(devtools): save user settings in the settings store (#62429)
Save user settings in the `SettingsStore`.

NOTE: The theme is omitted since the change is not trivial and it will be handled in a separate PR.

PR Close #62429
2025-08-06 15:12:00 +02:00
hawkgs
1cdb54559d refactor(devtools): implement settings store (#62429)
Introduces a set of services tasked with saving user settings.

PR Close #62429
2025-08-06 15:12:00 +02:00
robertIsaac
986b0b1fc0 docs: update binding.md to use signals (#62606)
PR Close #62606
2025-08-06 15:11:14 +02:00
SkyZeroZx
5220b51e75 feat(service-worker): Adds for type in provideServiceWorker (#62831)
Enables specifying the script type ('classic' or 'module') when registering Service Workers, improving compatibility with ES module features.

PR Close #62831
2025-08-06 15:10:27 +02:00
SkyZeroZx
700225a446 refactor(service-worker): improve localhost detection in scheduleInitialization (#62861)
Replaces ad hoc localhost check with a dedicated method using a regular expression for more reliable detection

PR Close #62861
2025-08-06 15:09:56 +02:00
Amila Welihinda
ec8cd3e189 refactor(animations): optimize resolveTimeExpression (#62927)
This moves a regexp expression into a const to optimize performance.

PR Close #62927
2025-08-06 15:09:18 +02:00
Matthieu Riegler
9a76a6540d refactor(devtools): add support for afterRenderEffect on the signal graph (#63005)
Prior to this change, the `afterRenderEffect` phases were not represented in the signal graph.

PR Close #63005
2025-08-06 15:08:33 +02:00
Bjorn 'Bjeaurn
c353497a01 feat(forms): add support for pushing an array of controls to formarray (#57102)
Enables users to add an array of FormControls to a FormArray using its existing .push() method,
instead of pushing each new FormControl one by one triggering events along the way.

PR Close #57102
2025-08-06 11:20:18 +02:00
Andrew Scott
01fec33556 docs: Deprecate BootstrapOptions on bootstrapModule (#62690)
This deprecates `BootstrapOptions` since `NgZone` can now be configured
in the providers. This is a necessary step because when zoneless becomes
the default, developers will have to add ZoneJS via
`provideZoneChangeDetection` and that will override anything defined in
`BootstrapOptions`.

PR Close #62690
2025-08-06 11:19:45 +02:00
Milo
b3e490437c refactor(devtools): enable view source for template effects (#62692)
Use inspect(class instance.constructor) to jump to the source of
components when trying to inspect template effects

PR Close #62692
2025-08-06 11:19:14 +02:00
Ben Hong
03ca484515 docs: update router transition animation guide (#62858)
PR Close #62858
2025-08-06 11:18:38 +02:00
Jessica Janiuk
ebd622b344 fix(core): fixes empty animations when recalculating styles (#63007)
Any time something causes styles to recalculate,
`element.getAnimations()` will be empty. This updates `animate.enter`
and `animate.leave` to rely on `getComputedStyles` to determine the
longest animation instead.

fixes: #63006

PR Close #63007
2025-08-06 11:17:30 +02:00