This commit updates the logic of the `NgComponentOutlet` class to allow passing an `NgModule` as an input instead of passing an `NgModule` factory.
DEPRECATED:
The `ngModuleFactory` input of the `NgComponentOutlet` directive is deprecated in favor of a newly added `ngModule` input. The `ngModule` input accepts references to the NgModule class directly, without the need to resolve module factory first.
PR Close#44815
Fixes#44589
In the navigation pane, the title and tooltip for the page,
Preparing component for translation, are incorrect. This PR
fixes this issue.
PR Close#44710
Update aio/content/guide/service-worker-devops.md
ngsw.json is the manifest file which is generated at build time ( based on ngsw-config.json ). This explains this a bit clearer.
At first, I thought that it was a wrongly named filename. Not is it explicitly described.
Co-Authored-By: George Kalpakas <kalpakas.g@gmail.com>
PR Close#44823
This commit provides a service, `PageTitleStrategy` for setting
the document page title after a successful router navigation.
Users can provide custom strategies by extending `TitleStrategy` and
adding a provider which overrides it.
The strategy takes advantage of the pre-existing `data` and `resolve` concepts
in the Router implementation:
We can copy the `Route.title` into `data`/`resolve` in a
non-breaking way by using a `symbol` as the key. This ensures that we
do not have any collisions with pre-existing property names. By using
`data` and `resolve`, we do not have to add anything more to
the router navigation pipeline to support this feature.
resolves#7630
PR Close#43307
* Update the UniqueAlterEgoValidator code example
* Add async-validator docregion to hero-form-reactive.component.2.ts
* Fix typo under Implementing a custom async validator
* Add h3 sections for adding async validators to reactive & template-driven forms
PR Close#44764
When setting up an async validator in a template-driven form, it's necessary to register the directive with NG_ASYNC_VALIDATORS instead of NG_VALIDATORS. This was not mentioned in the docs.
PR Close#44764
Add a new option for configuring data-groups, `cacheOpaqueResponses`,
that determines whether opaque responses are cached or not. This allows
greater flexibility in configuring the behavior of data-groups, while
still keeping the current defaults as fallbacks.
Fixes#44246
PR Close#44723
Update the "Service worker configuration" guide to mention the different
caching behaviors used for opaque responses based on the data-group's
configured strategy.
Related to #44246.
PR Close#44723
This includes the initial documentation for extended diagnostics with a page for each of the two initial checks. They follow the same general formula, and hopefully in the future they can be properly generated from metadata rather than copy-pasted as they are currently.
PR Close#44704
DEPRECATED:
Since Ivy, the CompilerOptions.useJit and CompilerOptions.missingTranslation config options are unused, passing them has no effect.
PR Close#44749
DEPRECATED:
The `CachedResourceLoader` and `RESOURCE_CACHE_PROVIDER` symbols were previously necessary in some cases to test AOT-compiled components with View Engine, but they are no longer needed since Ivy.
PR Close#44749
DEPRECATED:
The `ComponentFactory` and `ComponentFactoryResolver` classes are deprecated. Since Ivy, there is no need to resolve Component factories. Please use other APIs where you Component classes can be used directly (without resolving their factories).
PR Close#44749
update deprecated form of the tap operator. Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments
DEPRECATED: tap operator subscribe signature is deprecated
Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-argumentsCloses#44708
PR Close#44738
The jasmine used in the docs is
```typescript
expect(<variableName>).<matcher>(predicate, failOutput)
```
The new version should be
```typescript
expect(<variableName>).withContext(failOutput).<matcher>(predicate)
```
So, this commit mainly focuses on changing the former to latter with
format below
```typescript
expect(<variableName>)
.withContext(failOutput)
.<matcher>(predicate)
```
And for RxJs, see https://rxjs.dev/deprecations/subscribe-arguments.
> For example someone could name functions poorly and confuse the next
reader: `source$.subscribe(doSomething, doSomethingElse, lol)` with that
signature, you have to know unapparent details about subscribe, where
using a partial observer solves that neatly: `source$.subscribe({ next:
doSomething, error: doSomethingElse, complete: lol }`).
This commit also does this conversion.
Last, remove the unused imported `async` from file
`twain.component.marbles.spec.ts`.
PR Close#44674
Improve docs "Understanding Angular-Directives-Attribute Directives"
In `highlight.directive.1.ts`, add the `private` keyword for `el` property
to make it correct and consistent with subsequent examples.
For section "Setting the value with user input", add a step to tell the
reader change the method `onMouseEnter`, thus more readable.
For section "Binding to a second property", delete the aliase for the
`Input` property, and changes the name back to `appHighlight` in the code
to make it consistent with the whole tutorial.
PR Close#44628
the filter animation example in the complex-animation-sequences guide
talks about entering and leaving elements, but the presented html
snipped exluded the *ngFor which actually adds and removes the elements,
so add the *ngFor section to make the example complete and
understandable
PR Close#44544
the keyword 'state' is included in the `ignoredWords` set that prevents
certain words to be autolinked, this causes the animations' state
function not to be automatically linked, so manually link those
references to the state api docs
PR Close#44376
ngOnChange respond when Angular sets or resets data-bound @input properties and description of the ngOnChanges should be `When an [input](#input) binding value changes` instead of `When an [input](#input)/[output](#output) binding value changes`
resolves angular#44559
PR Close#44582