34291 Commits

Author SHA1 Message Date
Joey Perrott 3a0cfd544d build: migrate to using new jasmine_test (#62086)
Use the new jasmine_test based on rules_js instead of jasmine_node_test from rules_nodejs

PR Close #62086
2025-06-18 08:27:26 +02:00
Joey Perrott 4d9e50e208 build: update the ts_integrity expected for the typescript version in WORKSPACE (#62109)
Update the WORKSPACE to expect the correct sha.

PR Close #62109
2025-06-17 23:42:16 +00:00
marktechson 39237e85ab docs: add update AI instructions (#62089)
Adds context information for use with LLMs, IDEs and more.

PR Close #62089
2025-06-17 19:30:24 +02:00
Joey Perrott 18a7ce892c build: migrate back to using the @npm// sourced benchmark_test macro (#62101)
Use the benchmark macro from @npm// instead of @devinfra//

PR Close #62101
2025-06-17 18:51:21 +02:00
Kristiyan Kostadinov 2e0c98bd3f feat(core): support bindings in TestBed (#62040)
Adds support for passing in `Binding` objects into `TestBed.createComponent`. This makes it easier to test components by avoiding the need to create a wrapper component. Furthermore, it keeps the behavior consistent between tests and the actual app. For example, given a custom checkbox that looks like this:

```typescript
@Component({
  selector: 'my-checkbox',
  template: '...',
  host: {'[class.checked]': 'isChecked()'}
})
export class MyCheckbox {
  isChecked = input(false);
}
```

A test for the `isChecked` input would look something like this:

```typescript
it('should toggle the checked class', () => {
  @Component({
    imports: [MyCheckbox],
    template: '<my-checkbox [isChecked]="isChecked"/>',
  })
  class Wrapper {
    isChecked = false;
  }

  const fixture = TestBed.createComponent(Wrapper);
  const checkbox = fixture.nativeElement.querySelector('my-checkbox');
  fixture.detectChanges();
  expect(checkbox.classList).not.toContain('checked');

  fixture.componentInstance.isChecked = true;
  fixture.detectChanges();
  expect(checkbox.classList).toContain('checked');
});
```

Whereas with the new API, the test would look like this:

```typescript
it('should toggle the checked class', () => {
  const isChecked = signal(false);
  const fixture = TestBed.createComponent(MyCheckbox, {
    bindings: [inputBinding('isChecked', isChecked)]
  });
  const checkbox = fixture.nativeElement.querySelector('my-checkbox');
  fixture.detectChanges();
  expect(checkbox.classList).not.toContain('checked');

  isChecked.set(true);
  fixture.detectChanges();
  expect(checkbox.classList).toContain('checked');
});
```

PR Close #62040
2025-06-17 11:49:27 +02:00
Milo 89efd27884 refactor(devtools): create devtools signals view (#61919)
create a component for the devtools signal pane, including view source, view value, and flashing of node updates

PR Close #61919
2025-06-17 11:19:53 +02:00
Shuaib Hasan Akib 64409dbabc docs(router): improve discoverability of route guard section (#62060)
PR Close #62060
2025-06-17 11:19:14 +02:00
hawkgs 132fd3c301 refactor(devtools): reorganize profiler components (#62073)
Reorganize the components under `[...]/devtools-tabs/profiler`.

PR Close #62073
2025-06-17 10:52:07 +02:00
Matthieu Riegler b963a5281a docs: remove mention of ngModel in directives overview (#62088)
Fixes #62072

PR Close #62088
2025-06-17 10:50:42 +02:00
Doug Parker 95efa08c5b release: bump Angular DevTools version to 1.0.34 (#62085)
PR Close #62085
2025-06-17 10:49:55 +02:00
Andreas Gödecke cf2bc910c9 docs: fix markdown syntax (#62084)
PR Close #62084
2025-06-17 10:46:27 +02:00
Joey Perrott 1182fe7053 build: migrate to usages of @devinfra// instead of @npm//@angular/build-tooling (#62050)
Use workspace imported devinfra deps instead of npm dep

PR Close #62050
2025-06-16 10:23:30 +02:00
Matthieu Riegler 2e3925a65c refactor(localize): add tripleslash type of Application builder (#62037)
Prior to this change, the triple slash directive was only added on the angular-devkit application builder.

Fixes #61968

PR Close #62037
2025-06-15 12:39:36 +02:00
hawkgs be2747eb26 fix(devtools): errors caused by the injector tree (#62029)
Errors:
- Attempting to translate SVGs when the tab is not on focus (Regression from #61241)
- Null injector node focus error

Extra:
- Improve scoping of the injector-tree component class members

PR Close #62029
2025-06-13 12:34:06 +02:00
Jam Hsu dacb3f25ea docs: remove developer preview hint for withI18nSupport (#62039)
PR Close #62039
2025-06-13 12:32:41 +02:00
Matthieu Riegler 0e4678ffc5 docs: fix code spans in Mapping section on elements.md (#61994)
PR Close #61994
2025-06-13 12:31:27 +02:00
Joey Perrott 9c0b41796e build: migrate adev to use new jasmine_test (#62034)
Use jasmine_test instead of jasmine_node_test in adev

PR Close #62034
2025-06-13 12:30:15 +02:00
arturovt 31da435854 fix(core): inject APP_ID before injector is destroyed (#61885)
In this commit, we request `APP_ID` outside the `onDestroy` callback because the injector might already be in a destroyed state when the callback runs.

PR Close #61885
2025-06-12 15:56:51 +02:00
Angular Robot 1fcf67cb17 build: update cross-repo angular dependencies (#62006)
See associated pull request for more information.

PR Close #62006
2025-06-12 15:55:19 +02:00
Matthieu Riegler 4040a6ba5d refactor(migrations): support local string tokens for inject migration (#62013)
The `localTypeChecker` allows us to at least support locally defined strings in addition to string literals.

PR Close #62013
2025-06-12 15:53:20 +02:00
Michael Berger 28484cbe0f docs(core): correct standalone jsdocs (#62025)
PR Close #62025
2025-06-12 15:51:23 +02:00
Doug Parker 38f8705aab docs: adds --jobs 4 to Firefox release flags (#62015)
This seems to be helpful for Mozilla reviewers to reproduce the build without encountering Bazel errors like:

```
Server terminated abruptly (error code: 14, error message: 'Socket closed', log file: '/home/parallels/.cache/bazel/_bazel_parallels/ae710c6507eb251f9511ac4228641059/server/jvm.out')
```

`--local_ram_resources` is also useful, but I'm not sure what to set it to by default or how necessary it is, so let's just start with `--jobs 4` for now. The 4 is arbitrary as I don't have insight into how many jobs are actually appropriate, but we can go with this for now and tweak the number later if it still causes issues.

PR Close #62015
2025-06-12 13:48:39 +02:00
Angular Robot 5a52f47df1 build: update dependency google-closure-compiler to v20250609 (#62007)
See associated pull request for more information.

PR Close #62007
2025-06-12 13:44:48 +02:00
Suhas Talekar 0ccc0ac3b6 docs: fix typos (#62022)
Fixes typo error
PR Close #62022
2025-06-12 13:38:50 +02:00
Jessica Janiuk 8424b3bcd5 fix(core): Fixes template outlet hydration (#61989)
Projected nodes were missing ssrId information and were skipping annotating template information, which caused templates to be destroyed and recreated rather than hydrated.

fixes: #50543

PR Close #61989
2025-06-12 12:53:21 +02:00
Paul Gschwendtner 61fb6e79ff build: fix hermetic execution of packages/core/test/... (#62027)
Due to a bug that is currently in progress of being resolved in the
`rules_js` toolchain (see:
https://github.com/aspect-build/rules_js/issues/362), we were seeing
subtle differences between `main` and PRs/local builds as RBE is a
strict sandbox environment while the normal linux/darwin sandbox isn't
necessarily.

This commit fixes the issue by avoiding the interop targets that don't
bring in the actual transitive node modules.

PR Close #62027
2025-06-12 12:16:56 +02:00
Angular Robot 6f779b2782 build: update github/codeql-action action to v3.29.0 (#62023)
See associated pull request for more information.

PR Close #62023
2025-06-12 10:15:01 +02:00
hawkgs 966f96ce4e refactor(devtools): use a ResizeObserver for the responsive split (#61525)
Do not rely on `window:resize` since the split can be resized by other split panels as well.

PR Close #61525
2025-06-12 10:08:54 +02:00
hawkgs bd3dc192fd refactor(devtools): improve profiler recorder controls (#62010)
Reorganize the template and reduce the vertical space taken by the controls.

PR Close #62010
2025-06-12 10:07:21 +02:00
Matthieu Riegler 579bf948d7 docs: add guide for httpResource (#61993)
PR Close #61993
2025-06-12 10:01:37 +02:00
Paul Gschwendtner a137746110 build: migrate packages/core/test to new jasmine_test rule (#61902)
Migrates `packages/core/test` to the new `jasmine_test` rule. As part of
this, we are also removing an unnecessary/unused test fixture.

PR Close #61902
2025-06-12 10:00:09 +02:00
Paul Gschwendtner c706525a33 build: update node loader to support zone.js (#61902)
Temporarily updates the new Node loader to work with `zone.js` `.mjs`
files that are still ending up at runtime due to this package using
`ts_library`.

PR Close #61902
2025-06-12 10:00:09 +02:00
Paul Gschwendtner 08b543e2f6 build: add jasmine_test macro for replacing jasmine_node_test legacy rule (#61902)
This commit introduces the new `jasmine_test` macro that can be an
"almost" drop-in replacement for `jasmine_test`.

PR Close #61902
2025-06-12 10:00:09 +02:00
Paul Gschwendtner df0b8d45da build: add small comment for ng_package_link_interop.bzl (#61902)
This should make the intent a little more clearer if someone
just looks at this file.

PR Close #61902
2025-06-12 10:00:09 +02:00
Pawel Kozlowski 8611630eb9 release: cut the v20.1.0-next.1 release 20.1.0-next.1 2025-06-11 15:34:06 +02:00
Pawel Kozlowski 0dafb28c0c docs: release notes for the v20.0.3 release 2025-06-11 15:26:22 +02:00
hawkgs 0b1d0459a4 docs(docs-infra): retain the results in the search dialog while typing (#61935)
Due to `resource()` not retaining its value while there is a request in progress, the results list flickers. The new `searchResults` signal retains that previous value until the request is completed.

PR Close #61935
2025-06-11 13:34:45 +02:00
Angular Robot 505363779d build: update dependency google-closure-compiler to v20250608 (#61996)
See associated pull request for more information.

PR Close #61996
2025-06-11 12:18:43 +02:00
Bernie Telles 9a81a0ffc7 docs: navigate-to-routes.md to include RouterLink in imports. (#61965)
Without adding the RouterLink import to the component, users won't be able to use the routerLink directive.

PR Close #61965
2025-06-11 11:35:04 +02:00
Angular Robot 7eca66e200 build: update cross-repo angular dependencies (#61942)
See associated pull request for more information.

PR Close #61942
2025-06-11 11:33:58 +02:00
Angular Robot ce7f2e3b43 build: update all non-major dependencies (#61953)
See associated pull request for more information.

PR Close #61953
2025-06-11 10:40:16 +02:00
Andrew Kushnir 0bd7c7d469 Revert "docs(docs-infra): retain the results in the search dialog while typing (#61935)" (#61995)
This reverts commit dbdfc2a99a.

PR Close #61995
2025-06-10 18:25:53 -07:00
Angular Robot 295d44348d build: update dependency typescript to v5.8.3 (#61957)
See associated pull request for more information.

PR Close #61957
2025-06-10 17:25:37 -07:00
hawkgs dbdfc2a99a docs(docs-infra): retain the results in the search dialog while typing (#61935)
Due to `resource()` not retaining its value while there is a request in progress, the results list flickers. The new `searchResults` signal retains that previous value until the request is completed.

PR Close #61935
2025-06-10 17:24:23 -07:00
Joey Perrott 3852be6f08 ci: update to latest version of dev-infra actions (#61990)
Update to the latest sha of the dev-infra actions

PR Close #61990
2025-06-10 15:50:09 -07:00
Milo b9141da6fc refactor(devtools): use import type to improve performance (#61966)
fixes a few lint errors when including devtools in g3

PR Close #61966
2025-06-10 14:43:46 -07:00
Elab4d1 358641147e docs: fix incorrect destructuring in resource loader example in signals guide (#61988)
PR Close #61988
2025-06-10 14:42:51 -07:00
Theodore Brown 4f0221e193 fix(forms): improve select performance (#61949)
We defer the update until after rendering
is complete for two reasons: first, to avoid repeatedly calling
`writeValue` on every option element until we find the selected one
(could be the very last element). Second, to ensure that we perform the
write after the DOM elements have been created (this doesn't happen
until the end of change detection when animations are enabled).

This is needed to efficiently set the select value when adding/removing options. The
previous approach resulted in exponentially more `_compareValue` calls than the number
of option elements (issue angular#41330).

Finally, this PR fixes an issue with delayed element removal when using the animations
module (in all browsers). Previously when a selected option was removed (so no option
matched the ngModel anymore), Angular changed the select element value before actually
removing the option from the DOM. Then when the option was finally removed from the DOM,
the browser would change the select value to that of the first option, even though it
didn't match the ngModel (issue angular#18430). Note that this is still
somewhat of an application problem when using `ngModel`. The model value
still needs to be updated to a valid value when the selected value is
deleted or it will be out of sync with the DOM.

Fixes #41330, fixes #18430.

PR Close #61949
2025-06-10 13:13:13 -07:00
hawkgs 9cf12b0694 fix(devtools): add aria-labels to icon-only buttons (#61981)
Add aria-labels to the buttons that have an icon-only content.

PR Close #61981
2025-06-10 12:03:30 -07:00
Joey Perrott dfbdbbe882 refactor: use zone.js from npm instead of packages/zone.js throughout repo (#61977)
Use zone.js from npm isntead of from the repo going forward

PR Close #61977
2025-06-10 12:02:03 -07:00