24660 Commits

Author SHA1 Message Date
wellWINeo ef12d56cf1 docs: fix duplicate in CHANGELOG (#46267)
PR Close #46267
2022-06-06 10:18:33 -07:00
dario-piotrowicz d17c7ddbb8 docs: change wrong alters to callouts (#46262)
change the alerts present in the docs to callouts so
that their header can be properly rendered
(since alters don't support have headers)

PR Close #46262
2022-06-06 10:17:53 -07:00
dario-piotrowicz 8c32114df3 refactor(core): fix eaither typo in transitiveScopesFor comment (#46261)
fix the 'eaither' typo (instead of 'either') in the tsdoc comment
for the transitiveScopesFor function

PR Close #46261
2022-06-06 10:17:01 -07:00
Kristiyan Kostadinov b00d237c0e fix(bazel): update API extractor version (#46259)
`@angular/bazel` currently uses an older version of `@microsoft/api-extractor` which is causing downstream issues in Components. These changes bump up to a version that has a fix.

Context: https://github.com/angular/components/pull/25027

PR Close #46259
2022-06-06 10:16:05 -07:00
Fabrizio Fallico e7ff714189 docs: fix missing closing div in http page (#46258)
PR Close #46258
2022-06-06 10:15:37 -07:00
Jelle Bruisten d023270472 docs: fix typo in the CHANGELOG (#46255)
Fixes a type made in the CHANGELOG.md under the 14.0.0 at router release notes
PR Close #46255
2022-06-06 10:14:46 -07:00
Dylan Hunn dde0b7f4b3 fix(forms): allow FormBuilder.group(...) to accept optional fields. (#46253)
Consider the case in which `FormBuilder` is used to construct a group with an optional field:

```
const controls = { name: fb.control('') };
const foo: FormGroup<{
  name: FormControl<string | null>;
  address?: FormControl<string | null>;
}> = fb.group<{
  name: FormControl<string | null>;
  address?: FormControl<string | null>;
}>(controls);
```

Today, with fully strict TypeScript settings, the above will not compile:

```
Types of property 'controls' are incompatible.
Type '{ name: FormControl<string | null>; address?: FormControl<FormGroup<SubFormControls> | null | undefined> | undefined; }' is not assignable to type '{ name: FormControl<string | null>; address?: FormGroup<SubFormControls> | undefined; }'.
```

Notice that the `fb.group(...)` is calculating the following type for address: `address?: FormControl<FormGroup<string|null>`. This is clearly wrong -- an extraneous `FormControl` has been added!

This is coming from the calculation of the result type of `fb.group(...)`. In the type definition, if we cannot detect the outer control type, [we assume it's just an unwrapped value, and automatically wrap it in `FormControl`](https://github.com/angular/angular/blob/14.0.0/packages/forms/src/form_builder.ts#L66).

Because the optional `{address?: FormControl<string|null>}` implicitly makes the RHS have type `FormControl<string|null>|undefined`, [the relevant condition is not satisfied](https://github.com/angular/angular/blob/14.0.0/packages/forms/src/form_builder.ts#L55). In particular, the condition expects just `FormGroup<T>`, not `FormGroup<T>|undefined`. So we assume `T` is a value type, and it gets wrapped with `FormControl`.

The solution is to add the cases where `undefined` is included in the union type when detecting which control `T` is (if any).

PR Close #46253
2022-06-06 10:14:20 -07:00
dario-piotrowicz 765090adf6 refactor(core): add helpful info in the pipe not found error message (#46247)
Add info to the pipe not found error message so to give some help to the developer for
resolving the problem more efficiently

(Note: this change also distinguishes the case in which the hosting component is standalone)

PR Close #46247
2022-06-06 10:13:28 -07:00
dario-piotrowicz 66040711ee refactor(core): split RuntimeError unit test up (#46239)
split the single RuntimeError utils test testing about the correct
formatting of errors in multiple separate unit tests (for better
granularity and clearness)

PR Close #46239
2022-06-06 10:12:06 -07:00
dario-piotrowicz 9df8ceafd8 refactor(core): improve the runtime errors formatting (#46239)
the formatted error messages always include a period separator between the
provided error message and the find-more suffix, this is not always
desirable as it may add periods when they shoud not be, so improve the
formatting by checking and applying the period only if the provided message
doesn't end with a character which already represents a separator

additionally also improve the formatting by trimming the provided error
message

note that such trimming needs to be performed before the separator check
so that for example an error message like `"some error! "` doesn't produce
`"some error! ."` but it successfully produces "some error!"

PR Close #46239
2022-06-06 10:12:06 -07:00
Dylan Hunn 90fa5fee7a docs(forms): Amend the FormGroupDirective docs to indicate it also works with FormRecord. (#46235)
It is currently unclear which directive to use for FormRecord. This commit amends the docs to explicitly state that the group directives can and should be used with records.

PR Close #46235
2022-06-06 10:11:16 -07:00
dario-piotrowicz 03f840535b refactor(core): improve code around element validation (#46175)
improve code regarding element validation by creating a new file
exporting validation functions and not exporting utils previously
globally available

PR Close #46175
2022-06-06 10:10:41 -07:00
Renovate Bot dee2ba900e build: lock file maintenance (#46104)
PR Close #46104
2022-06-03 10:23:36 -07:00
Krzysztof Platis 0cc2b89efa docs: fix release notes for v14.0.0 - remove notice "fixes 45350" from breaking changes (#46238)
PR Close #46238
2022-06-03 10:09:54 -07:00
dario-piotrowicz 7206e3f4f9 docs: update outdated link title for structural directives guide (#46228)
amend the aio glossary using as the structural-directives guide link's title the
outdated heading of that guide (changed in PR #44895)

PR Close #46228
2022-06-03 10:08:16 -07:00
dario-piotrowicz f708c87c7d docs: replace wrong NgFor with NgForOf (#46228)
amend the aio structural-directives guide incorrectly mentioning
`NgFor` instead of `NgForOf` as a structural directive

PR Close #46228
2022-06-03 10:08:15 -07:00
Andrew Scott 9cff09ea1f test(router): illustrate canceling of intermediate results in canLoad (#46231)
This adds a test to illustrate the "canceling" behavior we get from the
`Observable` chain in the Router. A new navigation cancels ongoing ones,
and that means also preventing intermediate results in user guards from
executing. This test is important when thinking about future refactors
which might attempt to change the details of how the `applyRedirects`
operator executes.

PR Close #46231
2022-06-03 10:06:54 -07:00
Kristiyan Kostadinov f30179d973 refactor(core): don't use patched data in LifecycleHooksFeature (#46237)
We don't need to read patched data off the component instance since we already know what the `LView` is.

PR Close #46237
2022-06-03 10:06:20 -07:00
San Leen b52b40ee2c docs: update navigation update-to-latest for v14 (#46246)
This commit adds content related to Angular v14 to the title and  tooltip of `navigation.json -> guide/update-to-latest-version` .
PR Close #46246
2022-06-03 09:52:15 -07:00
Alex Rickabaugh ed570453da build(docs-infra): update to 14.0.0 (#46227)
This commit updates AIO to use the published 14.0.0 packages, as the final
step after the release.

PR Close #46227
2022-06-02 14:45:33 -07:00
George Kalpakas 36983a469a build(docs-infra): upgrade cli command docs sources to 847de3e7b (#46209)
Updating [angular#14.0.x](https://github.com/angular/angular/tree/14.0.x) from
[cli-builds#14.0.x](https://github.com/angular/cli-builds/tree/14.0.x).

##
Relevant changes in
[commit range](https://github.com/angular/cli-builds/compare/ecde3a2ae...847de3e7b):

**Modified**
- help/completion.json

PR Close #46209
2022-06-02 13:44:42 -07:00
Paul Gschwendtner 9a0a7bac21 perf(bazel): reduce input files for ng_package rollup and type bundle actions (#46187)
We currently use all the ESM2020 and type sources as inputs for rollup
and type bundle actions, respectively. This is a source of slowness in
Bazel sandboxed builds because many unused files will be linked/made
available for many concurrently-running actions.

We should limit the inputs only to what is assumed to be used. We cannot
know exactly and need to include transitive types from `node_modules`,
but that is an inevitable construct with the current Bazel rules.

Note that the external node modules could still bring in a lot of files,
like in Material where the `.d.ts` files for all locales are brought
into the sandbox (from `@angular/common`). We likely would need to
remove these files in a postinstall for now, to speed up actions,
similar to how we did it for RxJS in all repositories. These are known
to be not used in the components repo.

PR Close #46187
2022-06-02 13:43:22 -07:00
JoostK 67aca23bd4 refactor(common): remove unused method in internal SubscriptionStrategy interface (#46128)
The `onDestroy` method was not being called so this commit removes it entirely.

PR Close #46128
2022-06-02 13:42:38 -07:00
JoostK f35f01984a refactor(common): clear ChangeDetectorRef when AsyncPipe is destroyed (#46128)
To mitigate the effect of Observables with memory leak, this change clears
the `ChangeDetectorRef` when the `AsyncPipe` is destroyed. This avoids any
leak within the `Observable` to retain the view data. A test has been added
to verify that this change works correctly with promises that resolve _after_
the pipe has been destroyed.

Note: this is not marked as fix as `AsyncPipe` itself is _not_ leaking any
memory.

Closes #17624

PR Close #46128
2022-06-02 13:42:38 -07:00
JoostK d627b8f10b refactor(common): improve type of AsyncPipe._strategy field (#46128)
The field's type does not account for the `null` value that is assigned
in the field's initializer. This commit includes `null` in the type for
better type-safety. Exising reads are updated with a non-null assertion
operation in places where initialization is known to have occurred.

PR Close #46128
2022-06-02 13:42:38 -07:00
Kristiyan Kostadinov b497aa0cf7 refactor(core): minor ComponentDef improvements (#46093)
Makes the following improvements in the runtime:
* Uses the unique ID of the component definition to keep track of its injector in the `StandaloneFeature`, instead of the definition itself. This reduces the amount of memory we can leak, if something doesn't get cleaned up.
* Changes the naming and description of the `ComponentDef.id` to reflect what it is used for.

PR Close #46093
2022-06-02 13:41:28 -07:00
Kristiyan Kostadinov 19b4cc969d refactor(core): remove unused error handler logic (#46216)
There's some old logic in the error handler that tries to read an `ngErrorHandler` property off of the errors that are being logged. As far as I can tell, this is a ViewEngine leftover and it isn't actually being used anywhere.

PR Close #46216
2022-06-02 13:40:17 -07:00
Kristiyan Kostadinov 420fb46ad6 refactor(core): clean up closure deoptimization (#46149)
In #45445 function inlining had to be disabled on one of our instructions, because Closure wasn't optimizing it correctly, causing an error at runtime. The error has been resolved so we can remove the deoptimization hint.

PR Close #46149
2022-06-02 13:39:51 -07:00
Alex Rickabaugh 127e794885 fix(docs-infra): correct developer preview link (#46225)
The developer preview link was previously prefixed with the Github URL for
Angular's repo. However, it's meant to go to a guide page on AIO itself.
This commit removes the link prefix.

PR Close #46225
2022-06-02 12:35:14 -07:00
mgechev de49652fd7 docs: add blog post to the v14 release in changelog (#46226)
PR Close #46226
2022-06-02 12:33:28 -07:00
Alex Rickabaugh 6280a98ff1 release: cut the v14.0.0 release (#46223)
PR Close #46223
14.0.0
2022-06-02 09:53:02 -07:00
Alex Rickabaugh bf6b44be35 docs(core): mark the standalone APIs as Developer Preview (#46050)
This commit adds the new `@developerPreview` tag to all of the standalone
component related APIs. With this, AIO will show an API status label which
links to the documentation on Developer Preview.

PR Close #46050
2022-06-01 16:01:59 -07:00
Alex Rickabaugh c2c520341f feat(docs-infra): add @developerPreview tag for APIs in developer preview (#46050)
This commit adds a tag processor for `@developerPreview`. Adding this tag to
an exported symbol or to a decorator parameter causes an API status tag to
be shown for the API which links to the Developer Preview documentation.

PR Close #46050
2022-06-01 16:01:59 -07:00
Alex Rickabaugh e813f3c7e9 docs: replace Angular Labs with Developer Preview docs (#46050)
This commit updates the releasing/versioning doc on angular.io to cover the
new "Developer Preview" concept. This replaces the old section on the no-
longer-relevant "Angular Labs".

PR Close #46050
2022-06-01 16:01:59 -07:00
Andrew Kushnir 536939e138 docs(core): improve standalone-related docs and add more usage examples (#46202)
This commit updates the `bootstrapApplication` and the `importProvidersFrom` function docs with additional content that includes usage examples.

PR Close #46202
2022-06-01 11:08:04 -07:00
Andrew Scott 083a9c4dc4 docs(router): Adjust example for scrollPositionRestoration (#46201)
This makes a small update to the example so that it shows a use-case
that's not already covered by the 'enabled' option. The existing example
would get identical behavior to `scrollPositionRestoration: 'enabled'`
with `anchorScrolling: 'enabled'`.

The updated example shows a use-case for when custom scrolling _would_
be needed. For example, when data is fetched because it is not available
immediately or through a resolver. This is one of the cases described in #24547

This update is sufficient to address all of the documentation problems
noted in the aforementioned issue. Another fix should be made to address
the problem that scroll restoration needs to be delayed until after CD
has run so the update block of the activated component's template is
run.

PR Close #46201
2022-06-01 11:06:53 -07:00
George Looshch d982fa7da2 docs: replace double dashes with m-dashes, fix typos (#46174)
Fixes #46173

PR Close #46174
2022-06-01 11:02:43 -07:00
Andrew Scott 763c5f8991 release: cut the v14.0.0-rc.3 release (#46205) 14.0.0-rc.3 2022-05-31 16:46:22 -07:00
Alex Rickabaugh 0111f6c75e docs: update release and update guides for v14 (#46200)
This commit adds content related to Angular v14 to the `releases.md` and
`update-to-latest-version.md` guides on AIO.

PR Close #46200
2022-05-31 15:17:22 -07:00
Andrew Kushnir c90193475f docs: add the Standalone guide link to API docs of component/directive/pipe decorators (#46184)
This commit adds the Standalone guide link to the `@Component`, `@Directive` and `@Pipe` decorator properties related to standalone functionality to improve discoverability of the guide as well as providing extra context in API docs.

PR Close #46184
2022-05-31 13:56:58 -07:00
Andrew Kushnir 51baa0b448 docs(core): improve inject function docs (#46168)
This commit updates the `inject` function docs by:
- rephrasing a description to include more usage cases
- adding usage examples
- making a function itself a public API (vs its alias const that was used previously)

PR Close #46168
2022-05-31 13:55:15 -07:00
Andrew Kushnir 19db22e911 test: drop no longer needed postinstall step from integration test apps (#46182)
This commit removed no longer needed postinstall step (to run ngcc) from integration test apps, to avoid extra processing.

PR Close #46182
2022-05-31 12:06:17 -07:00
Billy Lando fa358feef0 docs: replace broken <br/> from service worker (#46193)
PR Close #46193
2022-05-31 12:02:37 -07:00
Paul Gschwendtner 1dd58b5e2a ci: github robot should consider closure-locale.ts file as g3-synced file (#46177)
A recent PR to the Angular common closure-locale file generation
highlighted that the GitHub robot does currently not consider the
`closure-locale.ts` file as relevant for g3. The file is synced into
g3 and the robot should reflect that.

Note: The exclude/include patterns currently will include some of the
legacy/backwards-compatibility locale files, but these will never change
and can be removed in v15. For now it is acceptable to not overly
complicate the exclude/include lists for few files that never change.

PR Close #46177
2022-05-31 12:00:16 -07:00
Rune Andersen Hartvig 0a68506d77 docs: fix template example (#46170)
Fix a typo that prevents an example to show.
PR Close #46170
2022-05-31 11:59:49 -07:00
Matt Shaffer b8c15eb257 docs: rename stage to staging (#46164)
PR Close #46164
2022-05-31 11:59:20 -07:00
Matt Shaffer 416d535d1e docs: update example file name (#46164)
PR Close #46164
2022-05-31 11:59:20 -07:00
Andrew Kushnir ba9f30c9a6 fix(core): include component name into unknown element/property error message (#46160)
This commit adds the component name into unknown element/property error message, so that it's easier to find a location of a template where the problem happened.

Closes #46080.

PR Close #46160
2022-05-27 11:45:49 -07:00
Pawel Kozlowski 5dee53b352 docs: create a dedicated page for the NG0203 error (#46166)
Adds a dedicated error page for NG0203 (injection context).

PR Close #46166
2022-05-27 10:15:56 -07:00
Pawel Kozlowski 35653ce337 fix(core): add more details to the MISSING_INJECTION_CONTEXT error (#46166)
The MISSING_INJECTION_CONTEXT runtime error can be thrown when the
inject function is used outside of the class creation context.
Before this change we've only used a vague terms of the
'injection context'. This commit extends the error message to
indicate that we really talk about the class construction context.

PR Close #46166
2022-05-27 10:15:56 -07:00