25294 Commits

Author SHA1 Message Date
Alex Rickabaugh fa52b6e906 feat(core): options object to supersede bit flags for inject() (#46649)
`inject()` originated as a private API and was made public to support
`InjectionToken` factories in Ivy. For code-size and performance reasons,
when we code generate `inject()` calls we use a bit field to indicate the
various injection modes (optional, skip-self, etc). However, this doesn't
make for a very nice public API.

This commit introduces an alternative object-based API for options. All 4
flags are supported as `boolean` fields on an options object, and converted
to bit flags internally. If TypeScript can prove that `optional` injection
is not requested, it can narrow the return type and remove the `null` type.

DEPRECATED:

The bit field signature of `inject()` has been deprecated, in favor of the
new options object. Correspondingly, `InjectFlags` is deprecated as well.

Fixes #46251

PR Close #46649
2022-07-01 10:21:18 -07:00
Paul Gschwendtner 915e82d854 build: simplify sass consumption of Angular CDK/Material in devtools (#46642)
Instead of listing every file manually, we can use the available rule
that extracts Sass dependency files automatically from `@npm//`.

PR Close #46642
2022-07-01 10:20:51 -07:00
Paul Gschwendtner 304b172dab test: increase payload golden for AIO and AIO-local (#46642)
The payload size has increased for AIO because we updated to the latest
Angular Framework, CLI and CDK/Material.

After size investigation, the size increase comes from the CDK update
where we now bring in the breakpoint observer class/logic into the
main bundle (it previously was part of a non-measured lazy chunk).

We now use the break point observer to detect high-contrast so it
ends up being loaded as part of the main bundle.

See:
https://github.com/angular/components/commit/bc81e7ddc56c093e83fefb4e80f8ebaa3c306a20.

PR Close #46642
2022-07-01 10:20:51 -07:00
Paul Gschwendtner 36690c69de test: update cli-hello-world-ivy-i18n integration test to use ng extract-i18n (#46642)
The integration test currently uses the old command alias that has been
removed with Angular v14.

https://github.com/angular/angular-cli/commit/b69ca3a7d22b54fc06fbc1cfb559b2fd915f5609

PR Close #46642
2022-07-01 10:20:51 -07:00
Paul Gschwendtner 8d6cb830a8 test: refactor bundle tests to not directly access CommonJS module.exports (#46642)
The test apps are bundled using their production ESM JS output using
`esbuild`. ESBuild warns about any CJS usages, like `module.exports.`

```
INFO: From Bundling Javascript packages/core/test/bundling/todo_i18n/index.ts [esbuild]:
▲ [WARNING] The CommonJS "module" variable is treated as a global variable in an ECMAScript module and may not work as expected

    bazel-out/k8-fastbuild/bin/packages/core/test/bundling/todo_i18n/index.mjs:494:0:
      494 │ module.exports = {
          ╵ ~~~~~~

  This file is considered to be an ECMAScript module because the file name ends in ".mjs".
```

Some bundling tests currently use `module.exports` to make
functions/symbols available to specs later requiring the bundle (in
order to run the bundle). Instead of using the CJS global here, the
logic can be attached consistently to `window` (there is currently a
mismatch of window vs. module.exports anyway..).

PR Close #46642
2022-07-01 10:20:51 -07:00
Paul Gschwendtner 5f942717e8 build: account for app_bundle rule location change (#46642)
The `app_bundle` rule from the shared dev-infra package is no longer in
the benchmarking folder, but instead is part of the general Bazel rules
exposed by `dev-infra`. This commit accounts for this location change.

PR Close #46642
2022-07-01 10:20:51 -07:00
Paul Gschwendtner 616c8a89b8 test: update schematics workspace test to no longer verify JSON5 features (#46642)
The Angular CLI has removed the JSON5 parsing and now always uses
`jsonc-parser`. Our test checks if JSON5 features can be parsed, but
this now breaks and the test needs to be adjusted.

We still want to keep the test to ensure we do not parse the Angular
CLI workspace file in a different way, not e.g. supporting jsonc.

PR Close #46642
2022-07-01 10:20:51 -07:00
Paul Gschwendtner 736e7871db ci: update .ng-dev pull request config to reflect recent API changes (#46642)
The `ng-dev` tool no longer supports regular expressions for the labels.
This means that we now always require the merge ready label. It can be
used together with the `merge-assistance` label (both labels have been
commonly aplied anyway for our other filters).

The pullapprove label should not indicate merge assistance/a caretaker
note because it does not require additional action by the caretaker.

PR Close #46642
2022-07-01 10:20:51 -07:00
Angular Robot da380d9c52 build: update cross-repo angular dependencies (#46642)
| datasource | package                           | from     | to              |
| ---------- | --------------------------------- | -------- | --------------- |
| npm        | @angular-devkit/architect-cli     | 0.1400.0 | 0.1401.0-next.3 |
| npm        | @angular-devkit/build-angular     | 13.3.6   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-angular     | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular-devkit/build-optimizer   | 0.1302.1 | 0.1302.0-rc.1   |
| npm        | @angular-devkit/core              | 13.3.6   | 14.1.0-next.3   |
| npm        | @angular-devkit/schematics        | 13.3.6   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/animations               | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/cdk                      | 13.3.7   | 14.1.0-next.3   |
| npm        | @angular/cdk                      | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/cdk                      | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/cli                      | 13.3.6   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/common                   | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/compiler                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/compiler-cli             | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/core                     | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/elements                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/elements                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/elements                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/elements                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/elements                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/elements                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/forms                    | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/localize                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/localize                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/localize                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/localize                 | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/material                 | 13.3.7   | 14.1.0-next.3   |
| npm        | @angular/material                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/material                 | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-browser         | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-browser-dynamic | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-server          | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-server          | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/platform-server          | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/platform-server          | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/router                   | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/service-worker           | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/service-worker           | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/service-worker           | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/service-worker           | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/service-worker           | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/service-worker           | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/upgrade                  | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/upgrade                  | 14.0.0   | 14.1.0-next.3   |
| npm        | @angular/upgrade                  | 14.0.4   | 14.1.0-next.3   |
| npm        | @angular/upgrade                  | 14.0.4   | 14.1.0-next.3   |
| npm        | @schematics/angular               | 13.3.6   | 14.1.0-next.3   |

PR Close #46642
2022-07-01 10:20:51 -07:00
Pawel Kozlowski af20112222 feat(core): support the descendants option for ContentChild queries (#46638)
This change adds the support for the descendants option for ContentChild queries.

Closes #31921

PR Close #46638
2022-07-01 10:20:26 -07:00
Andrew Scott ee2e4917e6 docs: Update runGuardsAndResolvers documentation (#46671)
fixes  #46001

PR Close #46671
2022-07-01 10:19:22 -07:00
Alex Rickabaugh a7a14df5f8 feat(core): introduce EnvironmentInjector.runInContext API (#46653)
This commit introduces a new API on `EnvironmentInjector` to run a function
in the context of the injector. This makes `inject()` available within the
body of the function to inject dependencies. We expect this functionality to
be very useful for designing ergonomic APIs both in and out of Angular, as
it should allow for a smaller and more functional API style.

Note that it's possible to implement nearly identical functionality in user
code already today:

```typescript
function runInContext<T>(injector: EnvironmentInjector, fn: () => T): T {
  const token = new InjectionToken<T>('TOKEN');
  const tmpInjector = createEnvironmentInjector([
    {provide: token, useFactory: () => fn()},
  ], injector);

  return tmpInjector.get(token);
}
```

The factory provider for `token` in this example runs in the context of the
`tmpInjector`, giving it access to `inject` that can retrieve values from
`injector` as well. This is nearly identical, although because of the child
injector `self` and `skipSelf` injection options don't function correctly.

PR Close #46653
2022-07-01 08:54:52 -07:00
Andrew Scott 6f11a58040 feat(compiler): Add extended diagnostic to warn when text attributes are intended to be bindings (#46161)
https://angular.io/guide/attribute-binding#attribute-class-and-style-bindings

Angular supports `attr.`, `style.`, and `class.` binding prefixes to
bind attributes, styles, and classes. If the key does not have the
binding syntax `[]` or the value does not have an interpolation `{{}}`,
the attribute will not be interpreted as a binding.

This diagnostic warns the user when the attributes listed above will not
be interpreted as bindings.

resolves #46137

PR Close #46161
2022-06-30 14:05:47 -07:00
Paul Gschwendtner 5dd9d4ae01 build: account for rename of angular/code-of-conduct default branch (#46640)
We just renamed the Angular code of conduct repository default branch
to `main`. This repository was not part of the large migration and is
now handled separately as a little clean-up.

PR Close #46640
2022-06-30 12:44:05 -07:00
Aristeidis Bampakos 39c02f1c9d docs(router): mark title strategy as injectable (#46639)
Add the `@Injectable` decorator in the title strategy example so that it can be injected in the providers of the routing module.
PR Close #46639
2022-06-30 12:43:32 -07:00
Alex Rickabaugh 8d2e5e6c4f refactor(core): remove experimental renderComponent function (#46605)
This commit removes the experimental `renderComponent` operation, which
implemented an alternative, lighter-weight bootstrapping option. This
experiment is being discontinued as the path towards it being a supported
production API was not clear. In particular, it lacked a clear roadmap for
supporting Angular's change detection, particularly when consuming existing
components.

PR Close #46605
2022-06-30 09:04:56 -07:00
Alex Rickabaugh 1434ba904d refactor(core): remove experimental Renderer3 abstraction (#46605)
This commit removes the `Renderer3` experiment which attempted to use the
real DOM API as Angular's renderer. As shown in the diff, having this
experiment around added real code complexity to Angular that could not be
removed by an optimizer.

Since we no longer feel this experiment is worth continuing, we're removing
the `Renderer3` concept and all supporting code.

PR Close #46605
2022-06-30 09:04:56 -07:00
Alex Rickabaugh af600cd2b7 refactor(core): disable automatic usage of Renderer3 (#46605)
Previously, when instantiating a component, Angular would look in the DI
hierarchy for `RendererFactory2`. Any DI tree which rolls up through an
application injector (that is, one created with `BrowserModule`) should be
able to provide this interface. If not found, Angular would switch to the
experimental `Renderer3` mechanism. This switch was designed this way,
because it allowed for the creation of experimental applications where
`RendererFactory2` was not included in the bundle at all.

In this commit, instead of automatically falling back on `Renderer3`-style
rendering, an error is raised instead if `RendererFactory2` is missing from
the DI hierarchy.

PR Close #46605
2022-06-30 09:04:56 -07:00
Alex Rickabaugh 31b396d49c test(core): migrate tests off of Renderer3 interfaces (#46605)
This commit migrates any remaining Angular tests which are using some form
of Renderer3 interfaces. Instead, they're switched to Renderer2.

PR Close #46605
2022-06-30 09:04:56 -07:00
Alex Rickabaugh 5111dbf973 refactor(core): rename the ProceduralRenderer3 interface to Renderer (#46605)
Due to the restrictions of circular dependency checking, we need a separate
internal interface for a renderer. We cannot use `Renderer2` as a type
internally as even importing it as a type incurs a dependency on its
implementation, which creates a major potential for circular dependencies.

Previously this role was served by the `Renderer3` type. As we prepare to
remove the `Renderer3` abstraction (the idea of using `document` as a
differently-shaped renderer), this commit renames `ProceduralRenderer3` to
the more generic term `Renderer`.

`RendererFactory3` is also renamed to the more generic `RendererFactory` for
consistency.

PR Close #46605
2022-06-30 09:04:55 -07:00
Angular Robot f05ed1203d build: update dependency husky to v8 (#46616)
| datasource | package | from  | to    |
| ---------- | ------- | ----- | ----- |
| npm        | husky   | 7.0.4 | 8.0.1 |

PR Close #46616
2022-06-30 08:56:34 -07:00
Andrew Scott e8c7dd10e9 fix(router): Ensure APP_INITIALIZER of enabledBlocking option completes (#46026)
Previously, if `initialNavigation` were set to `enabledBlocking`, the
Router's `APP_INITIALIZER` would never resolve if that initial
navigation failed. This results in the application load hanging and
never completing.

fixes #44355

PR Close #46026
2022-06-29 14:53:30 -07:00
Angular Robot 598239c35d build: update dependency rimraf to v3 (#46625)
| datasource | package | from  | to    |
| ---------- | ------- | ----- | ----- |
| npm        | rimraf  | 2.6.2 | 3.0.2 |

PR Close #46625
2022-06-29 13:55:08 -07:00
Angular Robot daa6c248bb build: update dependency source-map-explorer to v2 (#46626)
| datasource | package             | from  | to    |
| ---------- | ------------------- | ----- | ----- |
| npm        | source-map-explorer | 1.5.0 | 2.5.2 |

PR Close #46626
2022-06-29 13:51:50 -07:00
Paul Gschwendtner 7562421353 ci: do not run firefox components repo tests (#46624)
It seems like the tag for Firefox web tests has changed, and we need to adjust our filter.
PR Close #46624
2022-06-29 12:56:45 -07:00
Andrew Scott 36f46c6a9d refactor(router): Convert user-visible router errors to RuntimeError (#46562)
This commit refactors the Router errors to use the standard
`RuntimeError` used by the framework packages.

PR Close #46562
2022-06-29 12:50:23 -07:00
Dylan Hunn 97110674f3 release: cut the v14.1.0-next.3 release (#46622)
PR Close #46622
14.1.0-next.3
2022-06-29 11:24:18 -07:00
Pawel Kozlowski 08733b0566 test(core): remove enableRenderer3 and Renderer3 from tests (#46612)
Remove calls to enableRenderer3 in the functional unit tests.
This effectivelly cuts code paths going through the Renderer3
in the functional tests.

PR Close #46612
2022-06-29 11:18:22 -07:00
Dylan Hunn 66baa8ccf1 docs: release notes for the v14.0.4 release (#46621)
PR Close #46621
2022-06-29 11:17:59 -07:00
Paul Gschwendtner cb0d9a0114 ci: fix pullapprove fnmatch patterns due to recent changes (#46589)
We recently changed our pullapprove config to work with hidden
directories. As part of that, we accidentally invalidated some
other pattern parameters due to inconsistency in Pullapprove.

e.g. contains any globs uses wcmatch, while `files.exclude` and
`files.include` uses `fnmatch`. The current fnmatch patterns are
actual wcmatch glob patterns and need to be adjusted for `fnmatch`.

As part of this fix (which ensures groups are more correct again),
this commit also cleans up some unused `file.exclude` in the `fw-common`
group (likely due to a copy-paste mistake).

PR Close #46589
2022-06-29 10:33:05 -07:00
Alan Agius 926de8c0a4 refactor: remove no longer used prompts utils (#46587)
These utils are no longer used in Angular migrations.

PR Close #46587
2022-06-29 10:31:18 -07:00
renovate[bot] 9d30298250 build: update bazel setup to v5.5.1 (#46543)
PR Close #46543
2022-06-29 10:19:55 -07:00
renovate[bot] 19364cff20 build: update dependency google-closure-compiler to v20220601 (#46565)
PR Close #46565
2022-06-29 10:18:26 -07:00
Dylan Hunn 0a5c8c0bc4 fix(forms): Convert existing reactive errors to use RuntimeErrorCode. (#46560)
This allows for better tree-shakability, as well as the addition of guides in the future as needed.

PR Close #46560
2022-06-29 10:15:42 -07:00
Paul Gschwendtner d478e60c4f ci: enable renovate commit message body table to fix minimum commit message (#46611)
We recently switched Renovate from upstream branches to operate in
forks. Given that change, the `ng-dev commit-message` lint now also
applies to the auto-created PRs. The default Renovate commits do not
have any body and fail our ng-dev commit message minimum lint.

Other repositories do not have this, but framework has, so we enable
a renovate option to append the update table to the commit message body.

This is actually also a good thing as it captures what is directly
merged. The PR description is not necessarily matching.

PR Close #46611
2022-06-29 10:15:01 -07:00
renovate[bot] 2303ecfc5d build: update dependency karma-jasmine-html-reporter to v2 (#46578)
PR Close #46578
2022-06-29 10:12:25 -07:00
renovate[bot] d429eca654 build: update dependency jsdom to v20 (#46576)
PR Close #46576
2022-06-29 10:11:31 -07:00
renovate[bot] 47c65ace5e build: update eslint dependencies (#46593)
PR Close #46593
2022-06-29 10:10:50 -07:00
renovate[bot] a33d4ee41a build: update dependency http-server to v14 (#46572)
PR Close #46572
2022-06-29 10:08:53 -07:00
renovate[bot] 2758a30a34 build: update dependency @rollup/plugin-commonjs to v22 (#46556)
PR Close #46556
2022-06-29 10:08:29 -07:00
Alan Agius c677f130d3 build: remove inquirer from repo dependencies (#46583)
`inquirer` is not directly used in this repo.

PR Close #46583
2022-06-29 10:08:06 -07:00
Andrew Scott 7dea2892c0 docs: fix breaking change note in v14 (#46603)
The breaking change note for one change was truncated

PR Close #46603
2022-06-29 10:07:43 -07:00
Paul Gschwendtner c1bb8bf90d build: re-enable components-repo-unit-tests job (#46604)
Re-enables the components-repo-unit-tests job. It has previously
been disabled but never got re-enabled.

PR Close #46604
2022-06-29 10:07:19 -07:00
Paul Gschwendtner b1ac3d9968 refactor: clean-up pre-CLDR 39 safety check (#46606)
This commit cleans-up/removes a check we added before we supported CLDR
39. This check was necessary due to a incomplete/invalid list of locales
provided as part of the JSON data.

PR Close #46606
2022-06-29 10:06:39 -07:00
Andrew Kushnir 957744f215 refactor(core): remove no longer needed utils (#46571)
This commit removes a file that contained utils (including `TemplateFixture`) that are no longer used.

PR Close #46571
2022-06-29 10:01:35 -07:00
Andrew Kushnir eac7b588c1 test(core): update various tests to avoid referencing TemplateFixture (#46571)
This commit updates the remaining set of tests to avoid referencing `TemplateFixture` class.

PR Close #46571
2022-06-29 10:01:35 -07:00
Andrew Kushnir f5b3b56761 test(core): avoid TemplateFixture usages in LViewDebug spec (#46571)
This commit further reduces the use of an obsolete `TemplateFixture` class.

PR Close #46571
2022-06-29 10:01:35 -07:00
Andrew Kushnir 55db2271f0 test(core): avoid TemplateFixture usages in i18n spec (#46571)
This commit further reduces the use of an obsolete `TemplateFixture` class.

PR Close #46571
2022-06-29 10:01:35 -07:00
Andrew Kushnir d287d9cb33 test(core): move Pipe-related tests to the acceptance folder (#46571)
This commit refactors a  Pipe-related test to use TestBed and moves it to the `acceptance` folder.

PR Close #46571
2022-06-29 10:01:35 -07:00
Alan Agius 1289425cf8 test: update golden symbols (#46582)
This is causing CI to fail

PR Close #46582
2022-06-29 00:53:52 -07:00