34472 Commits

Author SHA1 Message Date
Andrew Scott ce5a94319c refactor(router): Avoid unnecessary href updates on navigations for routerlink (#60875)
The `RouterLink` href does not depend on the state of the router unless
it uses the `fragment` or `queryParams`. This doesn't bother
unsubscribing from the events if the inputs change in a way to no longer
depend on those values since inputs changing is quite rare (and even
more rare for query params handling or preserveFragment to change).

PR Close #60875
2025-05-07 11:31:08 -07:00
Andrew Scott c53310ee81 refactor(router): Update RouterLink href to use host binding and signals (#60875)
This commit updates the method of setting the href attribute on
`RouterLink` to use built in host binding rather than custom attribute
setting and sanitization. The advantage here would be automatic handling
of the sanitization and avoiding of writing the same value to the DOM
that we had before.

This change does mean that we _always_ write to the href attribute where
before we only wrote to it when the elemnt was known to support `href`.
That said, the implementation attempts to retain behavior that is as
close as possible: the original value of `href` is used and never updated.

PR Close #60875
2025-05-07 11:31:08 -07:00
Paul Gschwendtner a1bf58e32e build: migrate symbol-extractor to ts_project (#61156)
Migrates the symbol-extractor code to `ts_project`.

PR Close #61156
2025-05-07 11:28:59 -07:00
Paul Gschwendtner 032b802f54 build: remove irrelevant madge circular deps tests (#61156)
We don't need this tooling anymore because we are already validating
that there are no circular dependencies via the `ng-dev` tooling that
checks `.ts` files directly.

Also these tests never actually failed to my knowledge.

PR Close #61156
2025-05-07 11:28:59 -07:00
Angular Robot 516fdcc492 docs: update Angular CDK apis [main] (#61188)
Updated Angular CDK api files.

PR Close #61188
2025-05-07 11:24:59 -07:00
Jan Martin 66b4c89b6f docs: document preventDefault() behavior for event listeners (#61184)
The `false` behavior has existed for a long time but hasn't really
been documented. It's also not _quite_ what the browser would do.

Finally, the page explicitly discourages the implicit `false` way
of preventing default. Biggest motivation (beyond code clarity) are
potential footguns like `(click)="myProp=x()"` which happens to prevent
default behavior iff `x()` happens to return `false`.

Fixes https://github.com/angular/angular.io/issues/2568

PR Close #61184
2025-05-07 11:21:44 -07:00
Matthieu Riegler fb62506894 docs: update versions support for v20 (#61180)
PR Close #61180
2025-05-07 11:20:46 -07:00
Tom Adler 893308ab17 docs: fix case of variable name (#61177)
PR Close #61177
2025-05-07 11:19:55 -07:00
cexbrayat f06edf5fad docs: update references of afterEveryRender (#61159)
Since `afterRender` has been renamed `afterEveryRender`, some docs needed to be updated.

PR Close #61159
2025-05-07 11:17:56 -07:00
Andrew Scott 55a0621cbd test(router): Reduce timeout times (#61155)
Router tests use real async so unnecessarily long timeouts are an issue

PR Close #61155
2025-05-07 11:16:26 -07:00
Matthieu Riegler 4a14c292ee docs(docs-infra): Version info are pulled from an json file. (#60870)
It should pull the file from the main adev site and fallback to local data is anything goes wrong

PR Close #60870
2025-05-07 11:13:56 -07:00
Andrew Kushnir 340728c933 docs: release notes for the v20.0.0-rc.0 release 2025-05-07 10:54:15 -07:00
Andrew Kushnir a1fdb44db2 docs: release notes for the v19.2.10 release 2025-05-07 09:24:51 -07:00
Alan Agius 7955627630 ci: enable Renovate on main and 20.0.x branches (#61160)
Dependency updates can no longer be cherry-picked due to hash changes in Aspect lock files. This commit enables Renovate to run directly on the `main` and `20.0.x` branches.

PR Close #61160
2025-05-07 10:44:10 +02:00
Vlad Boisa 5105fd6f05 docs: fix non-working link (#61131)
Swap non-working @link to just usual `` link to work


Same like #61011
PR Close #61131
2025-05-06 14:11:25 -07:00
Miles Malerba 47e44c8af0 docs: update rendering to use generated repo link (#61130)
PR Close #61130
2025-05-06 14:07:32 -07:00
Miles Malerba 72284bcda5 docs: update API generation to include repo name (#61130)
PR Close #61130
2025-05-06 14:07:31 -07:00
Matthieu Riegler eda8909772 fix(devtools): support defer blocks in IdentityTracker (#61139)
This reverts the fix of #61080 which wasn't adequate.

PR Close #61139
2025-05-06 13:44:37 -07:00
Alan Agius d5c6f2c4de refactor: add Node.js 24 as supported version (#61142)
Node.js 24 has been released https://nodejs.org/en/about/previous-releases

Closes: #61140

PR Close #61142
2025-05-06 13:38:25 -07:00
Joey Perrott be17ed3309 build: update tslint configuration (#61146)
Update the configuration for tslint

PR Close #61146
2025-05-06 13:35:24 -07:00
Joey Perrott 0b92c51a75 ci: migrate node target version for deploy script to node20 (#61102)
Migrate the generated script to target node20 which is already the environment we run the action in.

PR Close #61102
2025-05-06 13:33:28 -07:00
Joey Perrott 8756c8aa07 build: migrate documentation site deploy script to use ts_project (#61102)
Migrate to the new toolchain

PR Close #61102
2025-05-06 13:33:28 -07:00
Andrew Kushnir c39e79943a Revert "docs(docs-infra): fix first-app intro example (#61042)" (#61145)
This reverts commit ab91a355f8.

Revert reason: the change causes CI to fail (the `lint` CI job).

PR Close #61145
2025-05-06 11:06:22 -07:00
Tom Adler c3ff01be4b docs: fix whitespace after a link (#61136)
PR Close #61136
2025-05-06 10:25:48 -07:00
Kristiyan Kostadinov 583b9a7be5 fix(core): missing useExisting providers throwing for optional calls (#61137)
Fixes that the runtime was throwing a DI error when attempting to inject a missing `useExisting` provider, despite the call being optional.

The problem was that when the provider has `useExisting`, we do a second `inject` call under the hood which didn't include the inject flags from the original call.

Fixes #61121.

PR Close #61137
2025-05-06 09:12:38 -07:00
Alan Agius 140538743f ci: add interop pnpm and aspect files to fileFilters (#61138)
This change will force these files to be committed.

PR Close #61138
2025-05-06 09:11:07 -07:00
Angular Robot d225c72618 build: update github/codeql-action action to v3.28.17 (#61134)
See associated pull request for more information.

PR Close #61134
2025-05-06 09:09:56 -07:00
Jan Martin 06d6da345f fix(platform-server): less aggressive ngServerMode cleanup (#61106)
Other code may depend on `ngServerMode` and it might have been set
globally / via a bundler. Forcing it to `undefined` in those situations
can lead to hard debug issues where the only symptom is that "suddenly"
browser-specific code paths run on the server and (obviously) break.

PR Close #61106
2025-05-06 09:08:47 -07:00
Matthieu Riegler ab91a355f8 docs(docs-infra): fix first-app intro example (#61042)
fixes #60844

PR Close #61042
2025-05-06 09:07:26 -07:00
Alan Agius a2b61634ec docs: update ssr docs to include prerendering wildcards (#61116)
This feature was introduced in version 20.

PR Close #61116
2025-05-05 17:02:29 -07:00
Angular Robot 235f7c9668 build: update rules_angular digest to 42d4791 (#61126)
See associated pull request for more information.

PR Close #61126
2025-05-05 15:36:37 -07:00
Kristiyan Kostadinov 2c17145520 refactor(compiler): element references not resolved when selectorless matcher is passed in (#61100)
Fixes that the template binder didn't resolve references to DOM nodes (e.g. `<div #ref></div>` if the matcher being passed in isn't a `SelectorMatcher`.

PR Close #61100
2025-05-05 14:38:13 -07:00
Kristiyan Kostadinov 7d2a6b3864 refactor(compiler-cli): defer selectorless dependencies (#61100)
Fixes that selectorless dependencies weren't being deferred correctly.

PR Close #61100
2025-05-05 14:38:12 -07:00
Kristiyan Kostadinov 707a70ea0b refactor(compiler-cli): properly emit references to selectorless pipes (#61100)
Fixes that we weren't emitting references to selectorless pipes, because we were checking the name of the pipe, rather than the local name of the symbol.

PR Close #61100
2025-05-05 14:38:12 -07:00
Kristiyan Kostadinov 4a1f5db517 refactor(compiler-cli): assert that selectorless references are standalone (#61100)
Adds some logic to assert that the directives referenced in a selectorless way are all standalone.

PR Close #61100
2025-05-05 14:38:12 -07:00
Kristiyan Kostadinov d5a68d8a22 refactor(compiler-cli): wire up selectorless behavior (#61100)
These changes connect the dependency analysis data from the previous commits with the template type checker which allows us to fully type check a selectorless component.

Also includes tests for all of the new selectorless behaviors that have been introduced so far.

PR Close #61100
2025-05-05 14:38:12 -07:00
Kristiyan Kostadinov e15dc2c3b5 refactor(compiler-cli): add scope for selectorless components (#61100)
Adds the new `SelectorlessComponentScopeReader` that will be used for selectorless components.

PR Close #61100
2025-05-05 14:38:12 -07:00
Kristiyan Kostadinov 7118dac442 refactor(compiler-cli): add selectorless-related analysis to components (#61100)
Adds the logic to determine whether a component is selectorless and to track which symbols are used in the template.

PR Close #61100
2025-05-05 14:38:12 -07:00
Angular Robot 310e5ffe24 build: update rules_angular digest to 3ba9d67 (#61124)
See associated pull request for more information.

PR Close #61124
2025-05-05 09:24:33 -07:00
Andrew Scott e7f5aa2b52 refactor(core): Remove use of private export PendingTasksInternal where possible (#61049)
This commit removes the use of the privately exported
PendingTasksInternal everywhere except for Router. A follow-up change
will be done to remove that one as well and delete the private export.

PR Close #61049
2025-05-05 08:56:20 -07:00
Andrew Scott 0c925af2dd test(router): This commit removes ZoneJS from the router tests (#61078)
There is nothing in the Router that requires ZoneJS and we do not need
`fakeAsync` as a mock clock. We can instead use any mock clock implementation
to speed up test execution.

This removes ZoneJS completely from the bundle of the Router tests.
ZoneJS causes the stacks to be unreadable when combined with the massive
rxjs stack in the router transition.

PR Close #61078
2025-05-05 08:55:01 -07:00
Klaas Cuvelier d8532bc87d docs(router): update typing for skipLocationChange in RedirectCommand example (#61119)
The example for the RedirectCommand used a string for skipLocationChange, changed this to a boolean

PR Close #61119
2025-05-05 08:47:52 -07:00
oliv37 b579c71633 docs(docs-infra): update use production configuration (#61112)
PR Close #61112
2025-05-05 08:45:01 -07:00
Miles Malerba e0248aae6a docs: hide entries that are marked @docs-private (#61104)
PR Close #61104
2025-05-05 08:43:30 -07:00
Joey Perrott 1e79d47064 build: enable rules_js interop mode in ng-dev release (#61087)
This will result in the release tool automatically updating the Aspect
lock files when necessary.

PR Close #61087
2025-05-02 09:12:23 -07:00
Joey Perrott 669b02cd54 build: update renovate config for rules_js hybrid mode (#61087)
This will automatically result in Renovate updating the Aspect lock
files.

PR Close #61087
2025-05-02 09:12:23 -07:00
Joey Perrott 72b7de0d73 build: set up ts_project interop for rules_js migration (#61087)
The `ts_project` interop rule that we've built was also used in the
Angular CLI migration, and it allows us to mix `ts_project` and
`ts_library` targets; enabling an incremental migration. Additionally
set up the `ng_project` to replace `ng_module`.

PR Close #61087
2025-05-02 09:12:23 -07:00
Joey Perrott 1c7f669f33 build: setup rules_ts for compiling TypeScript sources (#61087)
This commit sets up `rules_ts`, providing the `ts_library` equivalent
for the `rules_js` migration.

PR Close #61087
2025-05-02 09:12:23 -07:00
Joey Perrott 059a2cb38e build: setup rules_js and link dependencies (#61087)
Sets up `rules_js` and links dependencies into the bazel-bin.

PR Close #61087
2025-05-02 09:12:23 -07:00
Joey Perrott cfa0591c8b build: update to bazel 6 (#61087)
This is necessary for an incremental migration to `rules_js` which
requires Bazel v6. Bazel v6 removed the managed directories feature,
which means we no longer can rely on symlinked node modules as the Bazel
repository; but rather need to duplicate dependencies. This is
okay/acceptable to enable the incremental migration.

PR Close #61087
2025-05-02 09:12:23 -07:00