33459 Commits

Author SHA1 Message Date
Andrew Scott c801c74c09 refactor(core): Remove zoneless change detection re-export (#61029)
removes the experimental re-export from zoneless provider

PR Close #61029
2025-04-29 10:31:18 -07:00
Alan Agius c037c58995 refactor(core): expose getCleanupHook via private exports (#61017)
Expose `getCleanupHook` as a private export to address integration issues with Vitest. In Vitest, `globalThis.beforeEach` and `globalThis.afterEach` are not available by default. Additionally, these hooks are patched during module evaluation, complicating seamless integration with Vitest.

See: https://github.com/angular/angular-cli/pull/30188

PR Close #61017
2025-04-29 10:30:17 -07:00
Angular Robot 09cc3949d1 build: update cross-repo angular dependencies (#61021)
See associated pull request for more information.

PR Close #61021
2025-04-29 10:08:21 -07:00
Niclas Gleesborg 888f9c2375 docs: Changed word optimally to optionally (#61041)
PR Close #61041
2025-04-29 09:52:41 -07:00
Angular Robot 6b7e368602 build: update github/codeql-action action to v3.28.16 (#61035)
See associated pull request for more information.

PR Close #61035
2025-04-29 09:51:08 -07:00
Angular Robot 8eaf405457 build: update all non-major dependencies (#61034)
See associated pull request for more information.

PR Close #61034
2025-04-29 09:50:20 -07:00
Kevin Brey c889382a20 feat(compiler-cli): detect missing structural directive imports (#59443)
Adds a new diagnostic that ensures that a standalone component using custom structural directives in a template has the necessary imports for those directives.

Fixes #37322

PR Close #59443
2025-04-29 09:43:12 -07:00
Taygan Caldwell 42cad2849d refactor(core): Add createSignalTuple (#60903)
Add createSignalTuple function to match Wiz array destructuring signal return. This will be the implementation for createSignal once createSignal usages in google3 are migrated to createSignalTuple.

PR Close #60903
2025-04-29 08:46:39 -07:00
Andrew Scott 2445946943 refactor(core): Update FakeNavigation to extract some Angular quirks (#60961)
This change updates the implementation of `FakeNavigation` to extract
some changes that were made due to quirks in Angular testing.

PR Close #60961
2025-04-28 14:36:24 -07:00
Pawel Kozlowski d8fbb909ce feat(core): rename afterRender to afterEveryRender and stabilize (#60999)
This change renames the afterRender to afterEveryRender and marks the
renamed API as stable.

BREAKING CHANGE: afterRender was renamed to afterEveryRender.

PR Close #60999
2025-04-28 12:33:55 -07:00
Andrew Scott 7680a27f30 refactor(core): Ignore errors related to updating exhaustive check value (#61027)
this can happen if the injector is already destroyed, which can happen in tests that fail to clean up correctly

PR Close #61027
2025-04-28 10:16:01 -07:00
Matthieu Riegler bf6dbaab25 docs(docs-infra): prevent from resetting the search on navigation (#60927)
By keeping the search well allow developers to navigate through multiple results without having to re-type the search

PR Close #60927
2025-04-28 10:14:56 -07:00
hawkgs d8204bf584 docs(docs-infra): fix function api ref header width (#61022)
Fix the width of the function API reference header when the viewport width is for-desktop-down.

PR Close #61022
2025-04-28 10:01:40 -07:00
nevepura b2867ede8b Update dependency-injection.md (#61019)
Fixed list of ways to do dependency injection.
PR Close #61019
2025-04-28 08:30:52 -07:00
Kristiyan Kostadinov 46eba63fb3 fix(docs-infra): use proper API for style overrides (#61008)
Setting CSS variables directly is fragile and isn't the officially supported way of override Material styles. Instead the `tabs-overrides` mixin should be used which has validation for the token names.

For future reference, these are the docs for the styling API: https://material.angular.io/components/tabs/styling

PR Close #61008
2025-04-28 08:19:17 -07:00
Angular Robot 11e31012cb build: lock file maintenance (#61015)
See associated pull request for more information.

PR Close #61015
2025-04-28 08:11:58 -07:00
vladboisa 4941ce99df docs: fix non-working link (#61011)
Swap non-working @link to just usual `` link to work

PR Close #61011
2025-04-28 08:07:06 -07:00
hawkgs 05a03d3f97 docs(docs-infra): fix mat-tab colors (#61000)
Fix the text color of Material tabs.

PR Close #61000
2025-04-25 08:50:55 -07:00
Angular Robot 03360cf944 build: update cross-repo angular dependencies (#60998)
See associated pull request for more information.

PR Close #60998
2025-04-25 08:45:54 -07:00
arturovt 77174680b2 refactor(core): tree-shake NOT_SET and EMPTY_CLEANUP_SET (#60979)
Adds `__PURE__` annotations to `NOT_SET` and `EMPTY_CLEANUP_SET` to enable tree-shaking, even if they are not referenced. These variables are not dropped when Angular is imported from a module that has `sideEffects` set to `true`.

PR Close #60979
2025-04-25 08:42:12 -07:00
Pawel Kozlowski d5fd7349fb feat(core): introduce TestBed.tick() (#60993)
This commit introduces the `TestBed.tick()` method that,
similarly to the `ApplicationRef.tick()`, synchronizes state
with the DOM. It can be used in unit tests to mimic framework's
logic executed in production applications. The `TestBed.tick()`
should be used instead of the removed `TestBed.flushEffects()`.

BREAKING CHANGE: the `TestBed.flushEffects()` was removed - use
the `TestBed.tick()` instead.

PR Close #60993
2025-04-25 12:53:23 +02:00
SkyZeroZx ccc5cc068f feat(http): add keepalive support for fetch requests (#60621)
This commit adds support for the Fetch API's keepalive option when using HttpClient with the withFetch provider.

The change includes:
- Added keepalive to HttpRequestInit interface
- Modified FetchBackend to pass the option
- Added some unit test

PR Close #60621
2025-04-24 15:08:52 -07:00
Andrew Scott e711f99d81 feat(core): move provideExperimentalCheckNoChangesForDebug to provideCheckNoChangesConfig (#60906)
This commit makes several changes changes to the
`provideExperimentalCheckNoChangesForDebug` API:

* Rename it
* Promote to dev preview
* Apply the exhaustive behavior to _all_ checkNoChanges runs
* Remove `useNgZoneOnStable` option. This wasn't found to be generally
  more useful than `interval`

fixes #45612

BREAKING CHANGE: `provideExperimentalCheckNoChangesForDebug` has several
breaking changes:
* It is renamed to `provideCheckNoChangesConfig`
* The behavior applies to _all_ checkNoChanges runs
* The `useNgZoneOnStable` option is removed. This wasn't found to be generally
  more useful than `interval`

PR Close #60906
2025-04-24 13:04:27 -07:00
Kristiyan Kostadinov 148f4670fe refactor(compiler-cli): generate type checking code for selectorless (#60977)
Adds the logic that will generate type checking code in the TCB for the selectorless AST nodes.

Note that we're still missing the logic that determines which symbols are available in the template and exposes them to the template binder. That will come in a future change.

PR Close #60977
2025-04-24 13:02:39 -07:00
Kristiyan Kostadinov 4b0f733cb4 refactor(compiler): add more information to template binder (#60977)
Updates the template binder to include information about directives owned by a specific component/directive node and the names of template symbols that don't exist. These will be used when generating the type check block.

PR Close #60977
2025-04-24 13:02:39 -07:00
Kristiyan Kostadinov 26cba0804f refactor(compiler-cli): pass in tag name to schema checker (#60977)
Updates the `DomSchemaChecker` to require the tag name as a string, rather than the entire DOM node. This makes selectorless a bit easier to intergrate.

PR Close #60977
2025-04-24 13:02:39 -07:00
Kristiyan Kostadinov e89ebf3dc7 refactor(compiler-cli): add infrastructure for new diagnostics (#60977)
We need a couple of custom diagnostics for selectorless. These changes add the infrastructure so they can be reported.

PR Close #60977
2025-04-24 13:02:39 -07:00
Kristiyan Kostadinov bc9a067ef4 refactor(compiler-cli): add flag to enable selectorless (#60977)
Adds a private flag that we can use to enable selectorless as it's being developed.

PR Close #60977
2025-04-24 13:02:39 -07:00
Andrew Kushnir c2987d8402 refactor(core): stop producing ng-reflect attributes by default (#60973)
BREAKING CHANGE:

This commit deprecates `ng-reflect-*` attributes and updates the runtime to stop producing them by default. Please refactor application and test code to avoid relying on `ng-reflect-*` attributes.

To enable a more seamless upgrade to v20, we've added the `provideNgReflectAttributes()` function (can be imported from the `@angular/core` package), which enables the mode in which Angular would be producing those attribites (in dev mode only). You can add the `provideNgReflectAttributes()` function to the list of providers within the bootstrap call.

PR Close #60973
2025-04-24 10:07:35 -07:00
Matthieu Riegler e6c14f9443 docs: remove old pipes docs. (#60996)
They were replaced by pipes entry in the template guides.

PR Close #60996
2025-04-24 09:42:49 -07:00
hawkgs a1deb87a8e refactor(devtools): improve directive explorer filtering (#60672)
- Highlight only the matched part of the text
- Select the first match by default
- Show the matches count along with the currently selected one
- Minor UI fixes and performance optimizations

PR Close #60672
2025-04-24 09:39:22 -07:00
hawkgs 6845d2a92b refactor(devtools): fix resolution path viz padding (#60971)
Adjusts the right padding appropriately.

PR Close #60971
2025-04-24 09:36:51 -07:00
Matthieu Riegler 06ada469b0 docs(docs-infra): fix github links for for previews (#60994)
PR Close #60994
2025-04-24 09:30:25 -07:00
Doug Parker c6b41e15fd release: bump Angular DevTools version to 1.0.30 (#60992)
PR Close #60992
2025-04-23 14:36:26 -07:00
Doug Parker 6ce7c4cb4b fix(devtools): call ng.getDirectiveMetadata with the component instance (#60991)
`ng.getDirectiveMetadata` receives the component instance, not the raw DOM element.

This assumes that `ng.getComponent` is implemented in all environments and that the root element itself is a component.

PR Close #60991
2025-04-23 14:34:33 -07:00
Alex Rickabaugh 4bcf1831d9 refactor(core): rename loader parameter to stream for rxResource (#60919)
As decided in the Resource RFC, this commit renames `loader` in `rxResource`
to `stream`. Some logic is left in to support gradual rollout of this change
in g3.

PR Close #60919
2025-04-23 19:34:50 +00:00
Alex Rickabaugh d0c9a6401a refactor(core): rename resource's request to params (#60919)
As decided in the resource RFC, this commit renames the `request` option of
a resource to `params`, including the subsequent argument passed to the
loader. It also corrects the type in the process to properly allow narrowing
of the `undefined` value.

Fixes #58871

PR Close #60919
2025-04-23 19:34:50 +00:00
Alex Rickabaugh d8ca560a15 refactor(core): convert ResourceStatus to a string type (#60919)
An outcome of the Resource RFC was that we should use string constants for
communicating the resource status instead of an enum. This commit converts
`ResourceStatus` accordingly.

PR Close #60919
2025-04-23 19:34:50 +00:00
Alex Rickabaugh b1bfb214ef refactor(common): delete unused code for HttpResource (#60919)
Remove the code related to exposing the response of an HTTP request as a
`Resource` itself, as the final API will not go in this direction.

PR Close #60919
2025-04-23 19:34:50 +00:00
Andrew Kushnir 57794f0256 Revert "refactor(router): produce error message when canMatch is used with redirectTo (#60958)" (#60989)
This reverts commit 907f9bd3b8.

PR Close #60989
2025-04-23 17:48:27 +00:00
Angular Robot 3331b10e19 build: update cross-repo angular dependencies (#60978)
See associated pull request for more information.

PR Close #60978
2025-04-23 17:37:09 +02:00
Jens Kuehlers 9a077078c5 docs: remove gitter reference (#60970)
PR Close #60970
2025-04-23 17:25:15 +02:00
Jens Kuehlers 0f11900666 docs: remove reference to gitter (#60970)
PR Close #60970
2025-04-23 17:25:15 +02:00
hawkgs 3e293535e3 docs(docs-infra): use a custom scrollbar for the examples using HighlightTypeScript (#60981)
The examples used to render the native scrollbar.

PR Close #60981
2025-04-23 17:24:29 +02:00
Pawel Kozlowski fd8f5c69f1 release: cut the v20.0.0-next.8 release 20.0.0-next.8 2025-04-23 17:18:06 +02:00
Pawel Kozlowski 573f0905c5 docs: release notes for the v19.2.8 release 2025-04-23 17:13:35 +02:00
arturovt a93b6e8931 refactor(router): remove Compiler injectee from RouterPreloader (#60945)
This commit removes the `Compiler` injectee from the `RouterPreloader` constructor. It's unused but was still being referenced in the factory definition: `static ɵfac = ɵɵngDeclareFactory(...)`.

PR Close #60945
2025-04-23 15:18:22 +02:00
arturovt 0ac949c266 fix(core): do not run change detection on global error events (#60944)
This commit wraps the `error` and `unhandledrejection` event listeners so they are installed outside of the Angular zone, because otherwise they trigger change detection whenever the event callbacks are invoked.

PR Close #60944
2025-04-23 15:17:28 +02:00
Angular Robot e3d45a4a90 build: update cross-repo angular dependencies (#60972)
See associated pull request for more information.

PR Close #60972
2025-04-23 15:15:46 +02:00
MeddahAbdellah 62de7d930a feat(router): add asynchronous redirects (#60863)
Adds support for asynchronous redirects in the router, allowing redirect logic to be resolved dynamically (e.g., via API or async function). This enhances routing flexibility and supports more complex navigation scenarios.

BREAKING CHANGE: The `RedirectFn` can now return `Observable` or
`Promise`. Any code that directly calls functions returning this type
may need to be adjusted to account for this.

PR Close #60863
2025-04-23 13:38:49 +02:00