34514 Commits

Author SHA1 Message Date
kirjs c314ccba0c release: cut the v20.3.3 release 20.3.3 2025-10-02 08:05:44 -04:00
kirjs a453b1de08 Revert "fix(core): Fixes animations in conjunction with content projection (#63776)" (#64189)
This reverts commit 1cb16fddb5.

PR Close #64189
2025-10-01 22:42:41 +00:00
Angular Robot 952e3b1ead build: update cross-repo angular dependencies to v20.2.7 (#64182)
See associated pull request for more information.

PR Close #64182
2025-10-01 22:21:04 +00:00
Angular Robot 96b35727b0 build: update bazel dependencies (#64149)
See associated pull request for more information.

PR Close #64149
2025-10-01 13:40:04 -04:00
Shuaib Hasan Akib 94c9003093 refactor(common): update NgIf, ngComponentOutlet and ngTemplateOutlet examples and remove redundant standalone flag (#64155)
Removed `standalone: true` since it is now the default
and no longer necessary.

refactor(common): update ngComponentOutlet and ngTemplateOutlet examples and remove redundant standalone flag

Removed `standalone: true` since it is now the default
and no longer necessary.

PR Close #64155
2025-10-01 13:22:44 -04:00
Angular Robot cc8f5e1e00 build: update ossf/scorecard-action action to v2.4.3 (#64166)
See associated pull request for more information.

PR Close #64166
2025-10-01 10:42:04 -04:00
SkyZeroZx 1710cbd7d4 fix(migrations): handle shorthand property declarations in NgModule (#64160)
The migration now correctly detects shorthand declarations in NgModule metadata

PR Close #64160
2025-10-01 10:41:17 -04:00
Jessica Janiuk 0e928fbc4a fix(core): Fixes animations in conjunction with content projection (#63776)
Content Projected nodes are not destroyed and recreated, like every other
situation. Enter and Leave animations were ephemeral and are
expected to run once, and then be cleared. This means that for content projection
cases, the animations would only ever work the first time they were shown / hid.

In order to resolve this, we move to an animation queue that re-runs the animation
functions stored in the LView. In most cases, this animation will run once on creation.
For content projection, the enter and leave animations will fire more than once. Animations
are stored on the LView, but indexed and scheduled by whichever RNode needs to be animated.
So we only run animations for an affected RNode, rather than potentially all in the LView.

This also moves the queue to afterRender, which is safer than right after template
execution in refreshView.

fixes: #63418
fixes: #64065
fixes: #63901

PR Close #63776
2025-10-01 09:07:38 -04:00
Matthieu Riegler 24c979da1f docs: add allowed-host mention (#64145)
and other dev-server options

PR Close #64145
2025-10-01 09:03:08 -04:00
Kristiyan Kostadinov f51ab32fb3 fix(compiler): recover template literals with broken expressions (#64150)
Fixes two issues that were preventing template literals from being recovered properly if one of the interpolated expressions is broken:
1. We weren't updating the expected brace counter when an interpolation starts which in turn was throwing off the recovery logic in `skip`.
2. When producing tokens for template literals, we were treating the closing brace as an operator whereas other places treat it as a character. Even after fixing the first issue, this was preventing the recovery logic from working correctly.

Fixes #63940.

PR Close #64150
2025-09-30 16:01:50 -04:00
aparziale 77b6305a4b fix(migrations): skip migration for inputs with 'this' references (#64142)
Prevents migration of @input() properties that contain references to 'this' in their initializer functions. This ensures that functions accessing class members via 'this' remain unchanged, preventing potential build errors.

PR Close #64142
2025-09-30 15:32:45 -04:00
Shuaib Hasan Akib 479a6f269a refactor(common): update pipe examples and remove redundant standalone flag (#64135)
Updated pipe examples to explicitly import the pipe for clarity and
correctness. Also removed `standalone: true` since it is now the default
and no longer necessary.

PR Close #64135
2025-09-30 15:31:12 -04:00
hawkgs 612ce99457 refactor(compiler-cli): include linkedSignal in the signal debugName transformer (#64106)
Add support for `linkedSignal`s in the signal `debugName` transformer. Continuation of #63346

PR Close #64106
2025-09-30 14:52:16 -04:00
Matthieu Riegler 8e800837ee refactor(core): Add custom formatters for Signals (#64000)
This commit adds a devmode only formatter for Angular signals

Custom formatters must also be enabled in the browser devtools.

PR Close #64000
2025-09-30 13:49:27 -04:00
Matthieu Riegler c1a922a04e docs: add mention of host-context() being spec deprecated but still supported (#64153)
PR Close #64153
2025-09-30 13:36:52 -04:00
Matthieu Riegler 3db8ef004f docs(docs-infra): fix app-scroller offset. (#64144)
Guide heading need different scroll offsets depending on the width of the screen. (The menu position varies).

PR Close #64144
2025-09-30 11:05:27 -04:00
Matthieu Riegler ced186fafb docs(docs-infra): prevent to call section.scrollIntoView on the server side (#64038)
PR Close #64038
2025-09-30 11:00:58 -04:00
Shuaib Hasan Akib 3598855d73 docs(docs-infra): clean up code and use inferred types where possible (#64139)
PR Close #64139
2025-09-29 16:48:13 -04:00
Angular Robot 5c50e0b0ef build: update cross-repo angular dependencies (#64115)
See associated pull request for more information.

PR Close #64115
2025-09-29 13:51:47 -04:00
SkyZeroZx aa28aa274c docs: Adds guide for custom HTTP parameter encoding (#64119)
PR Close #64119
2025-09-29 13:30:57 -04:00
Matthieu Riegler 4b3f7a0e5f refactor(devtools): guard value reads in the serializer (#64096)
Some properties (like gets) might throw when we try to read them.
With this commit we fail gracefuly and show a warning message for the property that can't be read.

fixes #56755

PR Close #64096
2025-09-29 13:08:12 -04:00
Angular Robot 633db24ca2 build: update bazel dependencies (#64100)
See associated pull request for more information.

PR Close #64100
2025-09-29 11:49:19 -04:00
Angular Robot e6c0d7eba1 build: update github/codeql-action action to v3.30.5 (#64121)
See associated pull request for more information.

PR Close #64121
2025-09-29 09:53:02 -04:00
Matthieu Riegler c0bb52829a refactor(devtools): themed devtool tab icons for firefox (#64122)
With this change, Firefox get a different tab icon when the dark theme is enabled

fixes #52980

PR Close #64122
2025-09-29 09:31:04 -04:00
Alan Agius 495211084e docs: remove note about node.js 17+ (#64129)
This note is pretty old and the mentioned behaviour has been the default for a number of major version.

PR Close #64129
2025-09-29 09:25:02 -04:00
Angular Robot c6809273b0 build: update cross-repo angular dependencies (#64108)
See associated pull request for more information.

PR Close #64108
2025-09-26 17:42:20 -04:00
Jessica Janiuk d900dba595 Revert "refactor(compiler): Remove the interpolation config (#64071)" (#64110)
This reverts commit 768a09d3c3.

PR Close #64110
2025-09-26 15:16:54 -04:00
Matthieu Riegler 71cde35f5e refactor(compiler): throw on attribute bindings for ng-container (#64072)
They are never valid on ng-container.
fixes #53760

PR Close #64072
2025-09-26 13:53:01 -04:00
Matthieu Riegler 9dbcff8794 refactor(compiler): Remove the interpolation config (#64071)
After #63474, we don't need that anymore.

PR Close #64071
2025-09-26 12:36:51 -04:00
Angular Robot 8cf95ceb11 build: update cross-repo angular dependencies (#64094)
See associated pull request for more information.

PR Close #64094
2025-09-26 12:02:08 -04:00
Jens Kuehlers e02985ac5b docs: add StateOfJS survey banner (#64083)
PR Close #64083
2025-09-26 09:37:24 -04:00
Ankita Sood ba28b3764c docs: update text (#64095)
replace `above` with `below`
PR Close #64095
2025-09-26 09:34:01 -04:00
Matthieu Riegler b12e5e62f2 docs: add warning to AbstractControl.setErrors (#64063)
fixes #38191

PR Close #64063
2025-09-25 16:29:53 -04:00
Angular Robot 7d720d52ec build: update cross-repo angular dependencies (#64077)
See associated pull request for more information.

PR Close #64077
2025-09-25 15:38:02 -04:00
Jad Chahed bd2b841e39 docs: fix XLIFF 1.2 specification URL in i18n translation files guide (#64075)
PR Close #64075
2025-09-25 15:36:19 -04:00
Jessica Janiuk e5157bd933 fix(core): prevents unintended early termination of leave animations and hoisting (#64088)
The event listeners for animationstart and animationend weren't properly checking whether the animation event fired matched the node we're bound to, since animation events bubble. This resulted in child node animation events bubbling up and causing elements to get prematurely removed.

fixes: #64084

PR Close #64088
2025-09-25 15:33:31 -04:00
Angular Robot 36c4b3f2b1 build: update all github actions (#64082)
See associated pull request for more information.

PR Close #64082
2025-09-25 14:58:33 -04:00
Matthieu Riegler 542cd0019a fix(core): do not rename ARIA property bindings to attributes (#64089)
angular#62630 made it so that all ARIA
property bindings would write to their corresponding attribute instead.
The primary motivation for this change was to ensure that ARIA
attributes were always rendered correctly on the server, where the
emulated DOM may not correctly reflect ARIA properties as attributes.
Furthermore, this change added support for binding to ARIA attributes
using the property binding syntax (e.g. `[aria-label]`).

Unfortunately, angular#62630 relied on
the incorrect assumptions that an ARIA property name could be converted
to its attribute name (without hardcoding the conversion), and that the
value of an ARIA property matched its corresponding attribute. For
example, the `ariaLabelledByElements` property's value is an array of
DOM elements, while the corresponding `aria-labelledby` attribute's
value is a string containing the IDs of the DOM elements.

This partially reverts angular#62630 so
that only property bindings with ARIA attribute names (begin with
`aria-`) are converted to attribute bindings.

* `[ariaLabel]` will revert to binding to the `ariaLabel` property.
* `[aria-label]` will continue binding to the `aria-label` attribute.

Note the only difference between `[aria-label]` and `[attr.aria-label]`
is that the former will attempt to bind to inputs of the same name while
the latter will not.

PR Close #64089
2025-09-25 14:51:13 -04:00
Matthieu Riegler a74d74bfec docs: fix homepage width (#64087)
Long term, we probably need to rework how adev behave on very large screen.

PR Close #64087
2025-09-25 14:28:33 -04:00
Doug Parker 076ccbf7fe refactor(devtools): remove hard newlines from reviewer note (#64062)
These newlines aren't necessary and potentially forced undesired formatting on the reviewer.

PR Close #64062
2025-09-25 10:36:42 -04:00
Doug Parker 0270ed232e refactor(devtools): update release script to use /pull/new endpoint (#64062)
This jumps straight to the "Open a pull request" screen rather than having the user click through the compare screen to start a PR.

PR Close #64062
2025-09-25 10:36:42 -04:00
Doug Parker 46eed6a0fb refactor(devtools): update DevTools release script to resolve origin URL (#64062)
`git config` only lists the configured value, but `git remote get-url` actually resolves the URL and is more stable.

I had a local configuration which aliased `gh:` to the appropriate GitHub URL:

```
[url "git@github.com:"]
    insteadOf = "gh:"
    pushInsteadOf = "git@github.com"
```

In this scenario, `git config` returns `gh:dgp1130/angular`, but `git remote get-url` returns `git@github.com:dgp1130/angular`, which is what the subsequent regex expects.

PR Close #64062
2025-09-25 10:36:42 -04:00
Jessica Janiuk 31f2030320 release: cut the v20.3.2 release 20.3.2 2025-09-24 16:22:22 -07:00
Angular Robot c525a5a890 build: update dependency node to v22.20.0 (#64061)
See associated pull request for more information.

PR Close #64061
2025-09-24 21:23:21 +00:00
Matthieu Riegler f04a78a4fc docs(docs-infra): scroll offset for headings (#64039)
PR Close #64039
2025-09-24 20:23:41 +00:00
Matthieu Riegler ea6c51f355 docs(docs-infra): fix playground layout (#64037)
PR Close #64037
2025-09-24 20:21:06 +00:00
hawkgs ce6c7d94da docs(docs-infra): align docs-step number to the heading (#64035)
Fix misaligned number element.

PR Close #64035
2025-09-24 18:31:42 +00:00
Matthieu Riegler 1fd8d5d446 fix(forms): Emit FormResetEvent when resetting control (#64034)
Prior to this change, the event was emitted by the Form Directive. With the change, it is now emitted at the control level.

fixes #58894

PR Close #64034
2025-09-24 16:49:04 +00:00
aparziale 3ebaeccb46 fix(migrations): handle reused templates in control flow migration (#63996)
The control flow migration was incorrectly removing `ng-template` elements in scenarios where they were referenced by multiple `*ngIf` directives' `else` clauses and also used independently via `ngTemplateOutlet`.

PR Close #63996
2025-09-24 16:01:58 +00:00
Matthieu Riegler 3c14d0523c refactor(compiler-cli): Don't emit optional chain non nullable diagnostics on indexed access. (#64007)
When `noUncheckedIndexedAccess` is not enabled, indexed accesses do not include `undefined` in the type.
This makes the OptionalChainNotNullableCheck inconvenient when wanting to safe guard an indexed access (and when the typings isn't helping you).

Ideally project should enable `noUncheckedIndexedAccess` for better typesafety, but this is often inconveninent (we do not enable it by default) and often not the resort of the developer.

So more better coding convinience,  `OptionalChainNotNullableCheck` will not raise an error/warning on indexed Acessed followed by an optional chaining when `noUncheckedIndexedAccess` is not enabled.

See also #63809 which will detect more cases

PR Close #64007
2025-09-24 15:08:06 +00:00