30825 Commits

Author SHA1 Message Date
Andrew Scott a55ecb9429 build: update zone.js version to 0.14.10 instead of 0.15 (#57266)
this fixes the  version of zone.js in the package deps

PR Close #57266
2024-08-05 18:15:41 +00:00
Andrew Scott f7918f5272 feat(core): Add 'flush' parameter option to fakeAsync to flush after the test (#57239)
From the internal issue on the matter:

> When using the standard Jasmine version of it promises returned by the body function are automatically awaited. The Catalyst version of it is fake-async, so awaiting the promise does not make sense; however it would be nice if Catalyst automatically flushed the promise to replicate the experience of using standard it. This would allow users to do the following:

```
it('should fail later', async () => {
  await new Promise(r => setTimeout(r));
  fail('failure');
});
```
> In Catalyst today the above test will pass. If this proposal to automatically flush the resulting promise were implemented it would fail.

Flushing after the tests complete has been the default behavior inside
Google since 2020. Very few tests remain that use the old behavior of
only flushing microtasks. The example above would actually fail with
`fakeAsync` due to the pending timer, but the argument still remains the
same. We might as well just flush if we're going to fail the test
anyways by throwing if there's no flush at the end.

PR Close #57239
2024-08-05 17:46:04 +00:00
Jessica Janiuk 4d0842d546 release: cut the v18.2.0-next.4 release 18.2.0-next.4 2024-08-05 10:34:05 -07:00
Joey Perrott 3bdead1b2f refactor(docs-infra): migrate api-gen from dev-infra into the repo (#57241)
Move the api-gen pipeline into the shared-docs directory.

PR Close #57241
2024-08-05 17:06:29 +00:00
Jessica Janiuk de99d3eb3e release: cut the zone.js-0.14.10 release (#57264)
PR Close #57264
zone.js-0.14.10
2024-08-05 17:00:06 +00:00
Angular Robot 00a6c41129 build: update dependency madge to v8 (#57257)
See associated pull request for more information.

PR Close #57257
2024-08-05 15:58:03 +00:00
Paul Gschwendtner e2259c7b09 fix(compiler-cli): support JIT transforms before other transforms modifying classes (#57262)
Similar to a previous fix that intended to make the JIT transforms
compatible with pre-transforms like e.g. Tsickle, we need to solve
an additional issue where the class properties are synthetic and result
in an `getSourceFile() => undefined` invocation that breaks the import
insertion, causing errors like:

```
TypeError: Cannot read properties of undefined (reading 'fileName')
```

PR Close #57262
2024-08-05 14:45:19 +00:00
Angular Robot dbca467a35 build: lock file maintenance (#57256)
See associated pull request for more information.

PR Close #57256
2024-08-05 14:42:24 +00:00
Doug Parker 9aa94eb0e3 release: bump Angular DevTools to 1.0.17 (#57221)
PR Close #57221
2024-08-02 16:53:13 +00:00
Doug Parker bd953c7847 docs(devtools): remove duplicate text at end of release.md doc (#57222)
Somehow the last few lines got duplicated at the end of this doc. Definitely not needed.

PR Close #57222
2024-08-02 16:52:41 +00:00
Andrew Scott 99d679d606 feat(zone.js): Add 'flush' parameter option to fakeAsync to flush after the test (#57137)
From the internal issue on the matter:

> When using the standard Jasmine version of it promises returned by the body function are automatically awaited. The Catalyst version of it is fake-async, so awaiting the promise does not make sense; however it would be nice if Catalyst automatically flushed the promise to replicate the experience of using standard it. This would allow users to do the following:

```
it('should fail later', async () => {
  await new Promise(r => setTimeout(r));
  fail('failure');
});
```
> In Catalyst today the above test will pass. If this proposal to automatically flush the resulting promise were implemented it would fail.

Flushing after the tests complete has been the default behavior inside
Google since 2020. Very few tests remain that use the old behavior of
only flushing microtasks. The example above would actually fail with
`fakeAsync` due to the pending timer, but the argument still remains the
same. We might as well just flush if we're going to fail the test
anyways by throwing if there's no flush at the end.

PR Close #57137
2024-08-02 16:52:07 +00:00
Andrew Scott 827070e331 fix(core): Do not run image performance warning checks on server (#57234)
These checks require document so they should not be run on the server.

PR Close #57234
2024-08-02 15:53:29 +00:00
Charles Lyding 4bb9d0f923 fix(language-service): avoid generating TS suggestion diagnostics for templates (#56241)
Angular's template files are not valid TypeScript. Attempting to get suggestion
diagnostics from the underlying TypeScript language service will result in
a large amount of false positives. Only actual TypeScript files should
be analyzed by the underlying TypeScript language service for suggestions.

PR Close #56241
2024-08-02 15:51:35 +00:00
Andrew Scott 6c76c91e15 feat(router): Add defaultQueryParamsHandling to router configuration (#57198)
This commit adds an option to specify the default value for
`queryParamsHandling` in `Router.createUrlTree` when another option is
not specified (or is `null|undefined`).

resolves #12664

PR Close #57198
2024-08-02 15:11:38 +00:00
Thomas Nguyen 2a915d1912 refactor(core): Remove clickmod support from Angular. (#57201)
This was an old feature that mapped shift + click (et al) to "clickmod". This doesn't really make sense to add to Angular, so let's remove it.

PR Close #57201
2024-08-02 14:20:53 +00:00
Jessica Janiuk d73a3741a2 Revert "fix(compiler): reduce chance of conflicts between generated factory and local variables (#57181)" (#57230)
This reverts commit 67e09404db.

PR Close #57230
2024-08-01 19:33:04 +00:00
Joey Perrott f125cd82b4 fix(docs-infra): replace the uses of replaceAll with replace using regex with g flag (#57232)
Use the g flag in replace to perform a replaceAll

PR Close #57232
2024-08-01 19:17:25 +00:00
Andrew Scott f5960d0f94 refactor(docs-infra): Use new APIs in search dialog (#57215)
This updates the search dialog component to use signal APIs

PR Close #57215
2024-07-31 18:56:31 +00:00
Dylan Hunn 89f28b668c release: cut the v18.2.0-next.3 release 18.2.0-next.3 2024-07-31 10:24:55 -07:00
Dylan Hunn 414d98598f docs: release notes for the v18.1.3 release 2024-07-31 10:19:18 -07:00
Andres Olivares d26a91fddc refactor(devtools): Use Chrome DevTools Performance extension API (#55805)
This change is a proof of concept of how the new Chrome DevTools
Performance extension API (https://bit.ly/rpp-e11y) can be used to
surface Angular runtime data directly in the Chrome DevTools Performance
panel.

Specifically, it implements the following changes:

1. Use the profiling status notification API to toggle the Timing API:
The notification API is implemented under the
chrome.devtools.performance extension namespace and consits of two
events: ProfilingStarted and ProfilingStopped, dispatched when the
Performance panel has started and stopped recording, respectively. This
API is used to enable the Timings API when the recording has started in
the Performance panel and disable it when recording has stopped.

2. Use the User Timings `detail` field format specification of the
Performance extension API
(https://developer.mozilla.org/en-US/docs/Web/API/Performance_API/User_timing)
to inject data collected by the Angular Profiler into the
Performance panel timeline. Angular Profiler uses several hooks to
measure framework tasks like change detection. With this change, this
measurements are visible in the same context as the runtime data
collected by the browser in the Performance Panel timeline.

Note: to enable the user timings to be collected in the first place, one
needs to open the Angular DevTools panel so that the related artifacts
are loaded in the page. This shortcoming can be fixed in a follow up so
that the extra step isn't necessary.

PR Close #55805
2024-07-31 16:04:52 +00:00
Matthieu Riegler a49f7c951f docs(docs-infra): extract captured group from heading custom id regexp (#57206)
Backport of angular/dev-infra#2202

PR Close #57206
2024-07-31 16:03:28 +00:00
Paul Gschwendtner 6ae7d5e0bc ci: update license checking to latest version (#57205)
This may help with detecting the license of google-protobuf- which
is a transitive dependency of `@bazel/worker`

PR Close #57205
2024-07-31 16:02:11 +00:00
Paul Gschwendtner 187666480f test: update symbol golden after lock file maintenance (#57205)
Lock file maintenance updated Terser, which impacts the bundle
optimizations being tested via the symbol golden tests.

There was a small noticable change in the symbol golden where
`withDomHydration` is now preserved, and the underlying function
that was previously detected is gone. Seemingly Terser now inlines
this function and had to preserve `withDomHydration` as the entry point.

PR Close #57205
2024-07-31 16:02:11 +00:00
Paul Gschwendtner 2d314865c8 build: lock file maintenance (#57205)
See associated pull request for more information.

PR Close #57205
2024-07-31 16:02:11 +00:00
Paul Gschwendtner d35e7f2a68 build: replace deprecated inquirer with new npm package (#57205)
The new package comes with types by default, and also has a nicer
API.

The old package had broken types and couldn't be used anymore; and
it's deprecated/unmaintained. We did a similar switch in
angular/dev-infra.

PR Close #57205
2024-07-31 16:02:11 +00:00
Paul Gschwendtner e11c0c42d2 fix(compiler-cli): run JIT transforms on @NgModule classes with jit: true (#57212)
This commit is similar to 98ed5b609e, and
makes use of the preparation work implemented there.

Similar to directives and components marked via `jit: true`, we also
need to do the same for JIT marked `@NgModule` classes. This is mostly
important for downleveling of decorators to support dependency injection
of such classes.

Inside Google3, migrating from `ts_library` to `ng_module` turns of
decorator downleveling, so the `jit: true` for NgModule's is implicitly
requesting/reliant on this transform— as expected.

PR Close #57212
2024-07-31 14:14:14 +00:00
Angular Robot 3afd7f00b2 build: update scorecard action dependencies (#57150)
See associated pull request for more information.

PR Close #57150
2024-07-31 14:00:40 +00:00
Jeremy Elbourn 6f014615f8 docs: add docs authoring guide (#56505)
This new contributor guide includes information for authoring Angular
documentation.

PR Close #56505
2024-07-31 13:58:53 +00:00
Badshah d84d407358 docs: fix appRoutes constant was not passed correctly to provideRouter (#57070)
PR Close #57070
2024-07-31 13:58:21 +00:00
Enea Jahollari 147eee4253 feat(migrations): add migration to convert standalone component routes to be lazy loaded (#56428)
This schematic helps developers to convert eagerly loaded component routes to lazy loaded routes

PR Close #56428
2024-07-30 20:00:37 +00:00
Andrew Scott b558f99150 refactor(core): Update callback schedulers to cancel pending timers (#57186)
Rather than leaving the timers around as no-ops, this commit updates the
logic to also attempt to clear or cancel the timers. This is helpful for
the eventual goal of running the scheduler in the `fakeAsync` zone (if
the test is running in `fakeAsync`) rather than scheduling in the root
zone and making it impossible to flush.

PR Close #57186
2024-07-30 18:05:09 +00:00
Andrew Scott b3836c2f1c refactor(core): Private option to rethrow ApplicationRef.tick errors in tests (#57153)
This creates a private option that can be used internally while we
migrate this to the default and only behavior. ~200 tests in TGP have errors
that are being swallowed (console.log) and not causing the test to fail.
We can first explicitly opt those out, flip the default internally, then
"fix" them by adding expect...toThrow.

PR Close #57153
2024-07-30 18:04:27 +00:00
Andrew Scott 8098945d7b docs: update instructions for zoneless with NgModule bootstrap (#57060)
It no longer requires ngZone: 'noop' because NgZone can be configured in providers

PR Close #57060
2024-07-30 18:03:35 +00:00
Andrew Scott 2a4f488a6c fix(core): warnings for oversized images and lazy-lcp present with bootstrapModule (#57060)
This commit adds the `ImagePerformanceWarning` to the common bootstrap
code rather than only starting it when using `bootstrapApplication`.

PR Close #57060
2024-07-30 18:03:35 +00:00
Andrew Scott 3da0254478 refactor(core): de-duplicate bootstrap code between bootstrapApplication and bootstrapModule (#57060)
This commit de-duplicates the code for bootstrapping between
`bootstrapApplication` and `bootstrapModule`. A majority of the
bootstrap code was identical between the two, with some minor
differences that can be handled with a function overload.

PR Close #57060
2024-07-30 18:03:35 +00:00
Andrew Scott 3459289ef0 feat(core): bootstrapModule can configure NgZone in providers (#57060)
This commit allows configuring `NgZone` through the providers for
`bootstrapModule`. Prior to this change, developers had to configure
`NgZone` in the `BootstrapOptions`.

PR Close #57060
2024-07-30 18:03:35 +00:00
Bouguima, Walid 03553c485d docs: broken HammerLoader reference fix (#55836)
*Fixing broken documentation reference to HammerLoader in HammerLoaderInjectionToken page

PR Close #55836
2024-07-30 16:56:33 +00:00
David LJ a6a1b796fd docs: update app shell model link (#57162)
PR Close #57162
2024-07-30 16:55:43 +00:00
Paweł Kubiak 12eb0053d9 fix(docs-infra): skip navigation to card if user clicks on anchor (#57081)
fix(docs-infra): skip navigation to card if user clicks on anchor

If user clicks on anchor inside member card (Reference) then skip navigation to card section and allow to navigate to anchor link.

Use correct RxJs operator.
Fix DI: destroy ReferenceScrollHandler when navigate outside of reference pages.

fix: scroll to the of the card only after click on card header
fix: remove import of filter operator

PR Close #57081
2024-07-30 16:52:43 +00:00
Enea Jahollari 96ecb8218c docs: fix formatting and highlighting issues (#57144)
PR Close #57144
2024-07-30 16:52:09 +00:00
Andrew Scott 79ab8c486a docs: More updates to components scenarios guide (#57052)
PR Close #57052
2024-07-30 16:51:11 +00:00
Angular Robot 165973bfbc build: update all non-major dependencies (#57178)
See associated pull request for more information.

PR Close #57178
2024-07-30 16:44:42 +00:00
Kristiyan Kostadinov a752178f28 fix(core): hydration error in some let declaration setups (#57173)
Fixes that we were throwing an assertion error during hydration if a `@let` declaration is used before and immediately inside of a container.

Fixes #57160.

PR Close #57173
2024-07-30 16:43:46 +00:00
Sheik Althaf 49884518a0 refactor(devtools): use signal apis in injection and router tree (#57047)
Refactor the injection and router tree components to use signal apis, in future we can make the components onPush and zoneless

PR Close #57047
2024-07-30 16:42:14 +00:00
David LJ d7864e0fb8 docs: update ng generate command references (#57161)
PR Close #57161
2024-07-30 16:41:38 +00:00
Joey Perrott 2d8635d29d refactor(docs-infra): migrate @angular/docs from dev-infra into adev directory (#57132)
To increase the ease of development we are moving @angular/docs into the adev directory within this repo. While
we are doing this to improve our development experience in the short term, efforts are also in place
to maintain a division between this @angular/docs (shared) code and adev itself, so that it can be extracted
back out in the future when components is ready to leverage it as well.

PR Close #57132
2024-07-30 15:51:26 +00:00
Angular Robot dd56270bb3 build: update dependency typescript to v5.5.4 (#57090)
See associated pull request for more information.

PR Close #57090
2024-07-29 13:53:18 -07:00
Kristiyan Kostadinov b99f8f9a14 docs: add documentation for the inject migration (#57141)
Adds a reference for the `inject()` migration to ADEV.

PR Close #57141
2024-07-29 13:52:50 -07:00
David LJ f1c5f770c1 docs: fix invalid link formatting in sw config (#57170)
PR Close #57170
2024-07-29 13:52:24 -07:00