@angular/core 19.1.0-next.0 → 19.1.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/core.mjs +295 -300
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -1
- package/fesm2022/primitives/signals.mjs +4 -1
- package/fesm2022/primitives/signals.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +8 -8
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +150 -139
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +1 -1
- package/primitives/signals/index.d.ts +10 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/bundles/{checker-3cbc9cc1.js → checker-c58f97d2.js} +49 -50
- package/schematics/bundles/{combine_units-ab03aca8.js → combine_units-8b29b7f6.js} +3 -3
- package/schematics/bundles/{compiler_host-087c5caa.js → compiler_host-f5d588fe.js} +2 -2
- package/schematics/bundles/control-flow-migration.js +3 -3
- package/schematics/bundles/explicit-standalone-flag.js +5 -5
- package/schematics/bundles/{imports-4ac08251.js → imports-31a38653.js} +2 -2
- package/schematics/bundles/inject-migration.js +64 -43
- package/schematics/bundles/{leading_space-d190b83b.js → leading_space-6e7a8ec6.js} +1 -1
- package/schematics/bundles/{migrate_ts_type_references-efb52bf2.js → migrate_ts_type_references-a8676ec1.js} +9 -9
- package/schematics/bundles/{nodes-0e7d45ca.js → nodes-88c2157f.js} +2 -2
- package/schematics/bundles/output-migration.js +5 -5
- package/schematics/bundles/pending-tasks.js +5 -5
- package/schematics/bundles/{program-ed10d149.js → program-30e02255.js} +54 -30
- package/schematics/bundles/{project_tsconfig_paths-e9ccccbf.js → project_tsconfig_paths-6c9cde78.js} +1 -1
- package/schematics/bundles/provide-initializer.js +5 -5
- package/schematics/bundles/route-lazy-loading.js +4 -4
- package/schematics/bundles/signal-input-migration.js +8 -8
- package/schematics/bundles/signal-queries-migration.js +7 -7
- package/schematics/bundles/signals.js +7 -7
- package/schematics/bundles/standalone-migration.js +8 -8
- package/testing/index.d.ts +5 -5
package/fesm2022/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.1.0-next.
|
|
2
|
+
* @license Angular v19.1.0-next.2
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -8,7 +8,7 @@ import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAcc
|
|
|
8
8
|
export { SIGNAL as ɵSIGNAL } from '@angular/core/primitives/signals';
|
|
9
9
|
import { BehaviorSubject, Subject, Subscription } from 'rxjs';
|
|
10
10
|
import { Attribute as Attribute$1, EventContract, EventContractContainer, getAppScopedQueuedEventInfos, clearAppScopedEarlyEventContract, EventDispatcher, registerDispatcher, isEarlyEventType, isCaptureEventType, EventPhase } from '@angular/core/primitives/event-dispatch';
|
|
11
|
-
import { map
|
|
11
|
+
import { map } from 'rxjs/operators';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Base URL for the error details page.
|
|
@@ -28,7 +28,7 @@ const XSS_SECURITY_URL = 'https://g.co/ng/security#xss';
|
|
|
28
28
|
* Formats and outputs the error message in a consistent way.
|
|
29
29
|
*
|
|
30
30
|
* Example:
|
|
31
|
-
* ```
|
|
31
|
+
* ```ts
|
|
32
32
|
* throw new RuntimeError(
|
|
33
33
|
* RuntimeErrorCode.INJECTOR_ALREADY_DESTROYED,
|
|
34
34
|
* ngDevMode && 'Injector has already been destroyed.');
|
|
@@ -415,7 +415,7 @@ const __forward_ref__ = getClosureSafeProperty({ __forward_ref__: getClosureSafe
|
|
|
415
415
|
* {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}
|
|
416
416
|
*
|
|
417
417
|
* ### Circular standalone reference import example
|
|
418
|
-
* ```ts
|
|
418
|
+
* ```angular-ts
|
|
419
419
|
* @Component({
|
|
420
420
|
* standalone: true,
|
|
421
421
|
* imports: [ChildComponent],
|
|
@@ -690,7 +690,7 @@ const NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafePr
|
|
|
690
690
|
* `InjectionToken` is parameterized on `T` which is the type of object which will be returned by
|
|
691
691
|
* the `Injector`. This provides an additional level of type safety.
|
|
692
692
|
*
|
|
693
|
-
* <div class="alert
|
|
693
|
+
* <div class="docs-alert docs-alert-helpful">
|
|
694
694
|
*
|
|
695
695
|
* **Important Note**: Ensure that you use the same instance of the `InjectionToken` in both the
|
|
696
696
|
* provider and the injection call. Creating a new instance of `InjectionToken` in different places,
|
|
@@ -699,8 +699,7 @@ const NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafePr
|
|
|
699
699
|
*
|
|
700
700
|
* </div>
|
|
701
701
|
*
|
|
702
|
-
*
|
|
703
|
-
* region="InjectionToken"></code-example>
|
|
702
|
+
* {@example injection-token/src/main.ts region='InjectionToken'}
|
|
704
703
|
*
|
|
705
704
|
* When creating an `InjectionToken`, you can optionally specify a factory function which returns
|
|
706
705
|
* (possibly by creating) a default value of the parameterized type `T`. This sets up the
|
|
@@ -1154,7 +1153,7 @@ Please check that 1) the type for the parameter at index ${index} is correct and
|
|
|
1154
1153
|
* In practice the `inject()` calls are allowed in a constructor, a constructor parameter and a
|
|
1155
1154
|
* field initializer:
|
|
1156
1155
|
*
|
|
1157
|
-
* ```
|
|
1156
|
+
* ```ts
|
|
1158
1157
|
* @Injectable({providedIn: 'root'})
|
|
1159
1158
|
* export class Car {
|
|
1160
1159
|
* radio: Radio|undefined;
|
|
@@ -1170,7 +1169,7 @@ Please check that 1) the type for the parameter at index ${index} is correct and
|
|
|
1170
1169
|
*
|
|
1171
1170
|
* It is also legal to call `inject` from a provider's factory:
|
|
1172
1171
|
*
|
|
1173
|
-
* ```
|
|
1172
|
+
* ```ts
|
|
1174
1173
|
* providers: [
|
|
1175
1174
|
* {provide: Car, useFactory: () => {
|
|
1176
1175
|
* // OK: a class factory
|
|
@@ -1184,7 +1183,7 @@ Please check that 1) the type for the parameter at index ${index} is correct and
|
|
|
1184
1183
|
* notably, calls to `inject()` are disallowed after a class instance was created, in methods
|
|
1185
1184
|
* (including lifecycle hooks):
|
|
1186
1185
|
*
|
|
1187
|
-
* ```
|
|
1186
|
+
* ```ts
|
|
1188
1187
|
* @Component({ ... })
|
|
1189
1188
|
* export class CarComponent {
|
|
1190
1189
|
* ngOnInit() {
|
|
@@ -1734,7 +1733,7 @@ function makeEnvironmentProviders(providers) {
|
|
|
1734
1733
|
* @usageNotes
|
|
1735
1734
|
* The following example illustrates how to configure an initialization function using
|
|
1736
1735
|
* `provideEnvironmentInitializer()`
|
|
1737
|
-
* ```
|
|
1736
|
+
* ```ts
|
|
1738
1737
|
* createEnvironmentInjector(
|
|
1739
1738
|
* [
|
|
1740
1739
|
* provideEnvironmentInitializer(() => {
|
|
@@ -1770,7 +1769,7 @@ function provideEnvironmentInitializer(initializerFn) {
|
|
|
1770
1769
|
* @usageNotes
|
|
1771
1770
|
* The results of the `importProvidersFrom` call can be used in the `bootstrapApplication` call:
|
|
1772
1771
|
*
|
|
1773
|
-
* ```
|
|
1772
|
+
* ```ts
|
|
1774
1773
|
* await bootstrapApplication(RootComponent, {
|
|
1775
1774
|
* providers: [
|
|
1776
1775
|
* importProvidersFrom(NgModuleOne, NgModuleTwo)
|
|
@@ -1781,7 +1780,7 @@ function provideEnvironmentInitializer(initializerFn) {
|
|
|
1781
1780
|
* You can also use the `importProvidersFrom` results in the `providers` field of a route, when a
|
|
1782
1781
|
* standalone component is used:
|
|
1783
1782
|
*
|
|
1784
|
-
* ```
|
|
1783
|
+
* ```ts
|
|
1785
1784
|
* export const ROUTES: Route[] = [
|
|
1786
1785
|
* {
|
|
1787
1786
|
* path: 'foo',
|
|
@@ -2622,19 +2621,19 @@ function isType(v) {
|
|
|
2622
2621
|
* it intends to capture the pattern where existing constructors have been downleveled from
|
|
2623
2622
|
* ES2015 to ES5 using TypeScript w/ downlevel iteration. e.g.
|
|
2624
2623
|
*
|
|
2625
|
-
* ```
|
|
2624
|
+
* ```ts
|
|
2626
2625
|
* function MyClass() {
|
|
2627
2626
|
* var _this = _super.apply(this, arguments) || this;
|
|
2628
2627
|
* ```
|
|
2629
2628
|
*
|
|
2630
2629
|
* downleveled to ES5 with `downlevelIteration` for TypeScript < 4.2:
|
|
2631
|
-
* ```
|
|
2630
|
+
* ```ts
|
|
2632
2631
|
* function MyClass() {
|
|
2633
2632
|
* var _this = _super.apply(this, __spread(arguments)) || this;
|
|
2634
2633
|
* ```
|
|
2635
2634
|
*
|
|
2636
2635
|
* or downleveled to ES5 with `downlevelIteration` for TypeScript >= 4.2:
|
|
2637
|
-
* ```
|
|
2636
|
+
* ```ts
|
|
2638
2637
|
* function MyClass() {
|
|
2639
2638
|
* var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;
|
|
2640
2639
|
* ```
|
|
@@ -3152,7 +3151,7 @@ function applyValueToInputField(instance, inputSignalNode, privateName, value) {
|
|
|
3152
3151
|
*
|
|
3153
3152
|
* Example usage:
|
|
3154
3153
|
*
|
|
3155
|
-
* ```
|
|
3154
|
+
* ```ts
|
|
3156
3155
|
* static ɵcmp = defineComponent({
|
|
3157
3156
|
* ...
|
|
3158
3157
|
* inputs: {name: 'publicName'},
|
|
@@ -3552,7 +3551,7 @@ function isSkipHydrationRootTNode(tNode) {
|
|
|
3552
3551
|
* Enables directive matching on elements.
|
|
3553
3552
|
*
|
|
3554
3553
|
* * Example:
|
|
3555
|
-
* ```
|
|
3554
|
+
* ```html
|
|
3556
3555
|
* <my-comp my-directive>
|
|
3557
3556
|
* Should match component / directive.
|
|
3558
3557
|
* </my-comp>
|
|
@@ -3581,7 +3580,7 @@ function enterSkipHydrationBlock(tNode) {
|
|
|
3581
3580
|
* Disables directive matching on element.
|
|
3582
3581
|
*
|
|
3583
3582
|
* * Example:
|
|
3584
|
-
* ```
|
|
3583
|
+
* ```html
|
|
3585
3584
|
* <my-comp my-directive>
|
|
3586
3585
|
* Should match component / directive.
|
|
3587
3586
|
* </my-comp>
|
|
@@ -4508,11 +4507,11 @@ function isLetDeclaration(tNode) {
|
|
|
4508
4507
|
/**
|
|
4509
4508
|
* Returns `true` if the `TNode` has a directive which has `@Input()` for `class` binding.
|
|
4510
4509
|
*
|
|
4511
|
-
* ```
|
|
4510
|
+
* ```html
|
|
4512
4511
|
* <div my-dir [class]="exp"></div>
|
|
4513
4512
|
* ```
|
|
4514
4513
|
* and
|
|
4515
|
-
* ```
|
|
4514
|
+
* ```ts
|
|
4516
4515
|
* @Directive({
|
|
4517
4516
|
* })
|
|
4518
4517
|
* class MyDirective {
|
|
@@ -4532,11 +4531,11 @@ function hasClassInput(tNode) {
|
|
|
4532
4531
|
/**
|
|
4533
4532
|
* Returns `true` if the `TNode` has a directive which has `@Input()` for `style` binding.
|
|
4534
4533
|
*
|
|
4535
|
-
* ```
|
|
4534
|
+
* ```html
|
|
4536
4535
|
* <div my-dir [style]="exp"></div>
|
|
4537
4536
|
* ```
|
|
4538
4537
|
* and
|
|
4539
|
-
* ```
|
|
4538
|
+
* ```ts
|
|
4540
4539
|
* @Directive({
|
|
4541
4540
|
* })
|
|
4542
4541
|
* class MyDirective {
|
|
@@ -4878,7 +4877,7 @@ function isRouterOutletInjector(currentInjector) {
|
|
|
4878
4877
|
*
|
|
4879
4878
|
* Example:
|
|
4880
4879
|
*
|
|
4881
|
-
* ```
|
|
4880
|
+
* ```ts
|
|
4882
4881
|
* @Injectable()
|
|
4883
4882
|
* class MyService {
|
|
4884
4883
|
* constructor(public value: String) {}
|
|
@@ -5076,19 +5075,19 @@ function diPublicInInjector(injectorIndex, tView, token) {
|
|
|
5076
5075
|
*
|
|
5077
5076
|
* # Example
|
|
5078
5077
|
* Given:
|
|
5079
|
-
* ```
|
|
5078
|
+
* ```ts
|
|
5080
5079
|
* @Component(...)
|
|
5081
5080
|
* class MyComponent {
|
|
5082
5081
|
* constructor(@Attribute('title') title: string) { ... }
|
|
5083
5082
|
* }
|
|
5084
5083
|
* ```
|
|
5085
5084
|
* When instantiated with
|
|
5086
|
-
* ```
|
|
5085
|
+
* ```html
|
|
5087
5086
|
* <my-component title="Hello"></my-component>
|
|
5088
5087
|
* ```
|
|
5089
5088
|
*
|
|
5090
5089
|
* Then factory method generated is:
|
|
5091
|
-
* ```
|
|
5090
|
+
* ```ts
|
|
5092
5091
|
* MyComponent.ɵcmp = defineComponent({
|
|
5093
5092
|
* factory: () => new MyComponent(injectAttribute('title'))
|
|
5094
5093
|
* ...
|
|
@@ -5896,7 +5895,7 @@ class Injector {
|
|
|
5896
5895
|
*
|
|
5897
5896
|
* @usageNotes
|
|
5898
5897
|
* ### Injecting an attribute that is known to exist
|
|
5899
|
-
* ```
|
|
5898
|
+
* ```ts
|
|
5900
5899
|
* @Directive()
|
|
5901
5900
|
* class MyDir {
|
|
5902
5901
|
* attr: string = inject(new HostAttributeToken('some-attr'));
|
|
@@ -5904,7 +5903,7 @@ class Injector {
|
|
|
5904
5903
|
* ```
|
|
5905
5904
|
*
|
|
5906
5905
|
* ### Optionally injecting an attribute
|
|
5907
|
-
* ```
|
|
5906
|
+
* ```ts
|
|
5908
5907
|
* @Directive()
|
|
5909
5908
|
* class MyDir {
|
|
5910
5909
|
* attr: string | null = inject(new HostAttributeToken('some-attr'), {optional: true});
|
|
@@ -5929,7 +5928,7 @@ class HostAttributeToken {
|
|
|
5929
5928
|
*
|
|
5930
5929
|
* @usageNotes
|
|
5931
5930
|
* ### Injecting a tag name that is known to exist
|
|
5932
|
-
* ```
|
|
5931
|
+
* ```ts
|
|
5933
5932
|
* @Directive()
|
|
5934
5933
|
* class MyDir {
|
|
5935
5934
|
* tagName: string = inject(HOST_TAG_NAME);
|
|
@@ -5937,7 +5936,7 @@ class HostAttributeToken {
|
|
|
5937
5936
|
* ```
|
|
5938
5937
|
*
|
|
5939
5938
|
* ### Optionally injecting a tag name
|
|
5940
|
-
* ```
|
|
5939
|
+
* ```ts
|
|
5941
5940
|
* @Directive()
|
|
5942
5941
|
* class MyDir {
|
|
5943
5942
|
* tagName: string | null = inject(HOST_TAG_NAME, {optional: true});
|
|
@@ -6106,7 +6105,7 @@ class PendingTasksInternal {
|
|
|
6106
6105
|
* - tests might want to delay assertions until the application becomes stable;
|
|
6107
6106
|
*
|
|
6108
6107
|
* @usageNotes
|
|
6109
|
-
* ```
|
|
6108
|
+
* ```ts
|
|
6110
6109
|
* const pendingTasks = inject(PendingTasks);
|
|
6111
6110
|
* const taskCleanup = pendingTasks.add();
|
|
6112
6111
|
* // do work that should block application's stability and then:
|
|
@@ -6350,7 +6349,7 @@ let ngZoneInstanceId = 0;
|
|
|
6350
6349
|
* @usageNotes
|
|
6351
6350
|
* ### Example
|
|
6352
6351
|
*
|
|
6353
|
-
* ```
|
|
6352
|
+
* ```ts
|
|
6354
6353
|
* import {Component, NgZone} from '@angular/core';
|
|
6355
6354
|
* import {NgIf} from '@angular/common';
|
|
6356
6355
|
*
|
|
@@ -6784,7 +6783,7 @@ function getNgZone(ngZoneToUse = 'zone.js', options) {
|
|
|
6784
6783
|
* @usageNotes
|
|
6785
6784
|
* ### Example
|
|
6786
6785
|
*
|
|
6787
|
-
* ```
|
|
6786
|
+
* ```ts
|
|
6788
6787
|
* class MyErrorHandler implements ErrorHandler {
|
|
6789
6788
|
* handleError(error) {
|
|
6790
6789
|
* // do something with the exception
|
|
@@ -6977,7 +6976,7 @@ function inputRequiredFunction(opts) {
|
|
|
6977
6976
|
* @usageNotes
|
|
6978
6977
|
* To use signal-based inputs, import `input` from `@angular/core`.
|
|
6979
6978
|
*
|
|
6980
|
-
* ```
|
|
6979
|
+
* ```ts
|
|
6981
6980
|
* import {input} from '@angular/core`;
|
|
6982
6981
|
* ```
|
|
6983
6982
|
*
|
|
@@ -7098,7 +7097,7 @@ function symbolIterator() {
|
|
|
7098
7097
|
*
|
|
7099
7098
|
* @usageNotes
|
|
7100
7099
|
* ### Example
|
|
7101
|
-
* ```
|
|
7100
|
+
* ```ts
|
|
7102
7101
|
* @Component({...})
|
|
7103
7102
|
* class Container {
|
|
7104
7103
|
* @ViewChildren(Item) items:QueryList<Item>;
|
|
@@ -8227,7 +8226,7 @@ function getDocument() {
|
|
|
8227
8226
|
* (for example, using `bootstrapApplication` calls). In this case, ensure that those applications
|
|
8228
8227
|
* have different `APP_ID` value setup. For example:
|
|
8229
8228
|
*
|
|
8230
|
-
* ```
|
|
8229
|
+
* ```ts
|
|
8231
8230
|
* bootstrapApplication(ComponentA, {
|
|
8232
8231
|
* providers: [
|
|
8233
8232
|
* { provide: APP_ID, useValue: 'app-a' },
|
|
@@ -8344,7 +8343,7 @@ const IMAGE_CONFIG = new InjectionToken(ngDevMode ? 'ImageConfig' : '', {
|
|
|
8344
8343
|
*
|
|
8345
8344
|
* Example:
|
|
8346
8345
|
*
|
|
8347
|
-
* ```
|
|
8346
|
+
* ```ts
|
|
8348
8347
|
* const COUNTER_KEY = makeStateKey<number>('counter');
|
|
8349
8348
|
* let value = 10;
|
|
8350
8349
|
*
|
|
@@ -8609,7 +8608,7 @@ var AfterRenderPhase;
|
|
|
8609
8608
|
* `AfterRenderPhase.EarlyRead` phase if reading can wait until after the write phase.
|
|
8610
8609
|
* **Never** write to the DOM in this phase.
|
|
8611
8610
|
*
|
|
8612
|
-
* <div class="alert
|
|
8611
|
+
* <div class="docs-alert docs-alert-important">
|
|
8613
8612
|
*
|
|
8614
8613
|
* Using this value can degrade performance.
|
|
8615
8614
|
* Instead, prefer using built-in browser functionality when possible.
|
|
@@ -8627,7 +8626,7 @@ var AfterRenderPhase;
|
|
|
8627
8626
|
* DOM, that haven't been refactored to use a different phase. **Never** use this phase if
|
|
8628
8627
|
* it is possible to divide the work among the other phases instead.
|
|
8629
8628
|
*
|
|
8630
|
-
* <div class="alert
|
|
8629
|
+
* <div class="docs-alert docs-alert-critical">
|
|
8631
8630
|
*
|
|
8632
8631
|
* Using this value can **significantly** degrade performance.
|
|
8633
8632
|
* Instead, prefer dividing work into the appropriate phase callbacks.
|
|
@@ -8780,6 +8779,7 @@ class AfterRenderSequence {
|
|
|
8780
8779
|
// associates the initial run of the hook with the context that created it.
|
|
8781
8780
|
// Follow-up runs are independent of that initial context and have different
|
|
8782
8781
|
// triggers.
|
|
8782
|
+
this.snapshot?.dispose();
|
|
8783
8783
|
this.snapshot = null;
|
|
8784
8784
|
}
|
|
8785
8785
|
destroy() {
|
|
@@ -11003,7 +11003,7 @@ const COMMENT_DELIMITER_ESCAPED = '\u200B$1\u200B';
|
|
|
11003
11003
|
*
|
|
11004
11004
|
* see: https://html.spec.whatwg.org/multipage/syntax.html#comments
|
|
11005
11005
|
*
|
|
11006
|
-
* ```
|
|
11006
|
+
* ```ts
|
|
11007
11007
|
* div.innerHTML = div.innerHTML
|
|
11008
11008
|
* ```
|
|
11009
11009
|
*
|
|
@@ -14389,7 +14389,7 @@ function renderComponent(hostLView, componentHostIdx) {
|
|
|
14389
14389
|
* will be skipped. However, consider this case of two components side-by-side:
|
|
14390
14390
|
*
|
|
14391
14391
|
* App template:
|
|
14392
|
-
* ```
|
|
14392
|
+
* ```html
|
|
14393
14393
|
* <comp></comp>
|
|
14394
14394
|
* <comp></comp>
|
|
14395
14395
|
* ```
|
|
@@ -14659,6 +14659,7 @@ function maybeReturnReactiveLViewConsumer(consumer) {
|
|
|
14659
14659
|
const REACTIVE_LVIEW_CONSUMER_NODE = {
|
|
14660
14660
|
...REACTIVE_NODE$1,
|
|
14661
14661
|
consumerIsAlwaysLive: true,
|
|
14662
|
+
kind: 'template',
|
|
14662
14663
|
consumerMarkedDirty: (node) => {
|
|
14663
14664
|
markAncestorsForTraversal(node.lView);
|
|
14664
14665
|
},
|
|
@@ -14686,6 +14687,7 @@ function getOrCreateTemporaryConsumer(lView) {
|
|
|
14686
14687
|
const TEMPORARY_CONSUMER_NODE = {
|
|
14687
14688
|
...REACTIVE_NODE$1,
|
|
14688
14689
|
consumerIsAlwaysLive: true,
|
|
14690
|
+
kind: 'template',
|
|
14689
14691
|
consumerMarkedDirty: (node) => {
|
|
14690
14692
|
let parent = getLViewParent(node.lView);
|
|
14691
14693
|
while (parent && !viewShouldHaveReactiveConsumer(parent[TVIEW])) {
|
|
@@ -15238,7 +15240,7 @@ class ViewRef$1 {
|
|
|
15238
15240
|
* @usageNotes
|
|
15239
15241
|
* ### Example
|
|
15240
15242
|
*
|
|
15241
|
-
* ```
|
|
15243
|
+
* ```ts
|
|
15242
15244
|
* @Component({
|
|
15243
15245
|
* selector: 'app-root',
|
|
15244
15246
|
* template: `Number of ticks: {{numberOfTicks}}`
|
|
@@ -15282,7 +15284,7 @@ class ViewRef$1 {
|
|
|
15282
15284
|
* we want to check and update the list every five seconds. We can do that by detaching
|
|
15283
15285
|
* the component's change detector and doing a local check every five seconds.
|
|
15284
15286
|
*
|
|
15285
|
-
* ```
|
|
15287
|
+
* ```ts
|
|
15286
15288
|
* class DataProvider {
|
|
15287
15289
|
* // in a real application the returned data will be different every time
|
|
15288
15290
|
* get data() {
|
|
@@ -15334,7 +15336,7 @@ class ViewRef$1 {
|
|
|
15334
15336
|
* its change detector from the main change detector tree when the component's live property
|
|
15335
15337
|
* is set to false.
|
|
15336
15338
|
*
|
|
15337
|
-
* ```
|
|
15339
|
+
* ```ts
|
|
15338
15340
|
* class DataProvider {
|
|
15339
15341
|
* data = 1;
|
|
15340
15342
|
*
|
|
@@ -18078,7 +18080,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
18078
18080
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
18079
18081
|
if (rootSelectorOrNode) {
|
|
18080
18082
|
// The placeholder will be replaced with the actual version at build time.
|
|
18081
|
-
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.1.0-next.
|
|
18083
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.1.0-next.2']);
|
|
18082
18084
|
}
|
|
18083
18085
|
else {
|
|
18084
18086
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -18115,7 +18117,7 @@ function projectNodes(tNode, ngContentSelectors, projectableNodes) {
|
|
|
18115
18117
|
*
|
|
18116
18118
|
* Example:
|
|
18117
18119
|
*
|
|
18118
|
-
* ```
|
|
18120
|
+
* ```ts
|
|
18119
18121
|
* renderComponent(AppComponent, {hostFeatures: [LifecycleHooksFeature]});
|
|
18120
18122
|
* ```
|
|
18121
18123
|
*/
|
|
@@ -18144,7 +18146,7 @@ function LifecycleHooksFeature() {
|
|
|
18144
18146
|
* Note: the example uses standalone components, but the function can also be used for
|
|
18145
18147
|
* non-standalone components (declared in an NgModule) as well.
|
|
18146
18148
|
*
|
|
18147
|
-
* ```
|
|
18149
|
+
* ```angular-ts
|
|
18148
18150
|
* @Component({
|
|
18149
18151
|
* standalone: true,
|
|
18150
18152
|
* selector: 'dynamic',
|
|
@@ -19144,7 +19146,7 @@ function viewChildRequiredFn(locator, opts) {
|
|
|
19144
19146
|
* Create a child query in your component by declaring a
|
|
19145
19147
|
* class field and initializing it with the `viewChild()` function.
|
|
19146
19148
|
*
|
|
19147
|
-
* ```ts
|
|
19149
|
+
* ```angular-ts
|
|
19148
19150
|
* @Component({template: '<div #el></div><my-component #cmp />'})
|
|
19149
19151
|
* export class TestComponent {
|
|
19150
19152
|
* divEl = viewChild<ElementRef>('el'); // Signal<ElementRef|undefined>
|
|
@@ -19311,7 +19313,7 @@ function modelRequiredFunction(opts) {
|
|
|
19311
19313
|
*
|
|
19312
19314
|
* To use `model()`, import the function from `@angular/core`.
|
|
19313
19315
|
*
|
|
19314
|
-
* ```
|
|
19316
|
+
* ```ts
|
|
19315
19317
|
* import {model} from '@angular/core`;
|
|
19316
19318
|
* ```
|
|
19317
19319
|
*
|
|
@@ -19432,7 +19434,7 @@ const ViewChild = makePropDecorator('ViewChild', (selector, opts) => ({
|
|
|
19432
19434
|
* Used to resolve resource URLs on `@Component` when used with JIT compilation.
|
|
19433
19435
|
*
|
|
19434
19436
|
* Example:
|
|
19435
|
-
* ```
|
|
19437
|
+
* ```ts
|
|
19436
19438
|
* @Component({
|
|
19437
19439
|
* selector: 'my-comp',
|
|
19438
19440
|
* templateUrl: 'my-comp.html', // This requires asynchronous resolution
|
|
@@ -19835,7 +19837,7 @@ class StandaloneService {
|
|
|
19835
19837
|
*
|
|
19836
19838
|
*
|
|
19837
19839
|
* # Example
|
|
19838
|
-
* ```
|
|
19840
|
+
* ```ts
|
|
19839
19841
|
* class MyComponent {
|
|
19840
19842
|
* // Generated by Angular Template Compiler
|
|
19841
19843
|
* // [Symbol] syntax will not be supported by TypeScript until v2.7
|
|
@@ -19974,7 +19976,7 @@ function ɵɵdefineDirective(directiveDefinition) {
|
|
|
19974
19976
|
* Create a pipe definition object.
|
|
19975
19977
|
*
|
|
19976
19978
|
* # Example
|
|
19977
|
-
* ```
|
|
19979
|
+
* ```ts
|
|
19978
19980
|
* class MyPipe implements PipeTransform {
|
|
19979
19981
|
* // Generated by Angular Template Compiler
|
|
19980
19982
|
* static ɵpipe = definePipe({
|
|
@@ -22499,7 +22501,7 @@ const TESTABILITY_GETTER = new InjectionToken('');
|
|
|
22499
22501
|
* providers using the `provideProtractorTestingSupport()` function and adding them into the
|
|
22500
22502
|
* `options.providers` array. Example:
|
|
22501
22503
|
*
|
|
22502
|
-
* ```
|
|
22504
|
+
* ```ts
|
|
22503
22505
|
* import {provideProtractorTestingSupport} from '@angular/platform-browser';
|
|
22504
22506
|
*
|
|
22505
22507
|
* await bootstrapApplication(RootComponent, providers: [provideProtractorTestingSupport()]);
|
|
@@ -22769,7 +22771,7 @@ function isSubscribable(obj) {
|
|
|
22769
22771
|
* The following example illustrates how to configure a multi-provider using `APP_INITIALIZER` token
|
|
22770
22772
|
* and a function returning a promise.
|
|
22771
22773
|
* ### Example with NgModule-based application
|
|
22772
|
-
* ```
|
|
22774
|
+
* ```ts
|
|
22773
22775
|
* function initializeApp(): Promise<any> {
|
|
22774
22776
|
* const http = inject(HttpClient);
|
|
22775
22777
|
* return firstValueFrom(
|
|
@@ -22793,7 +22795,7 @@ function isSubscribable(obj) {
|
|
|
22793
22795
|
* ```
|
|
22794
22796
|
*
|
|
22795
22797
|
* ### Example with standalone application
|
|
22796
|
-
* ```
|
|
22798
|
+
* ```ts
|
|
22797
22799
|
* function initializeApp() {
|
|
22798
22800
|
* const http = inject(HttpClient);
|
|
22799
22801
|
* return firstValueFrom(
|
|
@@ -22823,7 +22825,7 @@ function isSubscribable(obj) {
|
|
|
22823
22825
|
* through DI.
|
|
22824
22826
|
*
|
|
22825
22827
|
* ### Example with NgModule-based application
|
|
22826
|
-
* ```
|
|
22828
|
+
* ```ts
|
|
22827
22829
|
* function initializeApp() {
|
|
22828
22830
|
* const http = inject(HttpClient);
|
|
22829
22831
|
* return firstValueFrom(
|
|
@@ -22847,7 +22849,7 @@ function isSubscribable(obj) {
|
|
|
22847
22849
|
* ```
|
|
22848
22850
|
*
|
|
22849
22851
|
* ### Example with standalone application
|
|
22850
|
-
* ```
|
|
22852
|
+
* ```ts
|
|
22851
22853
|
* function initializeApp() {
|
|
22852
22854
|
* const http = inject(HttpClient);
|
|
22853
22855
|
* return firstValueFrom(
|
|
@@ -22892,7 +22894,7 @@ const APP_INITIALIZER = new InjectionToken(ngDevMode ? 'Application Initializer'
|
|
|
22892
22894
|
* @usageNotes
|
|
22893
22895
|
* The following example illustrates how to configure an initialization function using
|
|
22894
22896
|
* `provideAppInitializer()`
|
|
22895
|
-
* ```
|
|
22897
|
+
* ```ts
|
|
22896
22898
|
* bootstrapApplication(App, {
|
|
22897
22899
|
* providers: [
|
|
22898
22900
|
* provideAppInitializer(() => {
|
|
@@ -23133,7 +23135,7 @@ function optionsReducer(dst, objs) {
|
|
|
23133
23135
|
* (here incrementing a counter, using RxJS `interval`),
|
|
23134
23136
|
* and at the same time subscribe to `isStable`.
|
|
23135
23137
|
*
|
|
23136
|
-
* ```
|
|
23138
|
+
* ```ts
|
|
23137
23139
|
* constructor(appRef: ApplicationRef) {
|
|
23138
23140
|
* appRef.isStable.pipe(
|
|
23139
23141
|
* filter(stable => stable)
|
|
@@ -23148,7 +23150,7 @@ function optionsReducer(dst, objs) {
|
|
|
23148
23150
|
* you have to wait for the application to be stable
|
|
23149
23151
|
* before starting your polling process.
|
|
23150
23152
|
*
|
|
23151
|
-
* ```
|
|
23153
|
+
* ```ts
|
|
23152
23154
|
* constructor(appRef: ApplicationRef) {
|
|
23153
23155
|
* appRef.isStable.pipe(
|
|
23154
23156
|
* first(stable => stable),
|
|
@@ -23168,7 +23170,7 @@ function optionsReducer(dst, objs) {
|
|
|
23168
23170
|
* you update a field of your component
|
|
23169
23171
|
* and display it in its template.
|
|
23170
23172
|
*
|
|
23171
|
-
* ```
|
|
23173
|
+
* ```ts
|
|
23172
23174
|
* constructor(appRef: ApplicationRef) {
|
|
23173
23175
|
* appRef.isStable.pipe(
|
|
23174
23176
|
* first(stable => stable),
|
|
@@ -23182,7 +23184,7 @@ function optionsReducer(dst, objs) {
|
|
|
23182
23184
|
*
|
|
23183
23185
|
* You'll have to manually trigger the change detection to update the template.
|
|
23184
23186
|
*
|
|
23185
|
-
* ```
|
|
23187
|
+
* ```ts
|
|
23186
23188
|
* constructor(appRef: ApplicationRef, cd: ChangeDetectorRef) {
|
|
23187
23189
|
* appRef.isStable.pipe(
|
|
23188
23190
|
* first(stable => stable),
|
|
@@ -23196,7 +23198,7 @@ function optionsReducer(dst, objs) {
|
|
|
23196
23198
|
*
|
|
23197
23199
|
* Or make the subscription callback run inside the zone.
|
|
23198
23200
|
*
|
|
23199
|
-
* ```
|
|
23201
|
+
* ```ts
|
|
23200
23202
|
* constructor(appRef: ApplicationRef, zone: NgZone) {
|
|
23201
23203
|
* appRef.isStable.pipe(
|
|
23202
23204
|
* first(stable => stable),
|
|
@@ -23292,6 +23294,7 @@ class ApplicationRef {
|
|
|
23292
23294
|
});
|
|
23293
23295
|
}
|
|
23294
23296
|
_injector = inject(EnvironmentInjector);
|
|
23297
|
+
_rendererFactory = null;
|
|
23295
23298
|
/**
|
|
23296
23299
|
* The `EnvironmentInjector` used to create this application.
|
|
23297
23300
|
*/
|
|
@@ -23403,6 +23406,7 @@ class ApplicationRef {
|
|
|
23403
23406
|
// if one exists. Snapshots may be reference counted by the implementation so
|
|
23404
23407
|
// we want to ensure that if we request a snapshot that we use it.
|
|
23405
23408
|
snapshot.run(TracingAction.CHANGE_DETECTION, this._tick);
|
|
23409
|
+
snapshot.dispose();
|
|
23406
23410
|
return;
|
|
23407
23411
|
}
|
|
23408
23412
|
(typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
|
|
@@ -23434,16 +23438,15 @@ class ApplicationRef {
|
|
|
23434
23438
|
* pending dirtiness (potentially in a loop).
|
|
23435
23439
|
*/
|
|
23436
23440
|
synchronize() {
|
|
23437
|
-
|
|
23438
|
-
|
|
23439
|
-
rendererFactory = this._injector.get(RendererFactory2, null, { optional: true });
|
|
23441
|
+
if (this._rendererFactory === null && !this._injector.destroyed) {
|
|
23442
|
+
this._rendererFactory = this._injector.get(RendererFactory2, null, { optional: true });
|
|
23440
23443
|
}
|
|
23441
23444
|
// When beginning synchronization, all deferred dirtiness becomes active dirtiness.
|
|
23442
23445
|
this.dirtyFlags |= this.deferredDirtyFlags;
|
|
23443
23446
|
this.deferredDirtyFlags = 0 /* ApplicationRefDirtyFlags.None */;
|
|
23444
23447
|
let runs = 0;
|
|
23445
23448
|
while (this.dirtyFlags !== 0 /* ApplicationRefDirtyFlags.None */ && runs++ < MAXIMUM_REFRESH_RERUNS) {
|
|
23446
|
-
this.synchronizeOnce(
|
|
23449
|
+
this.synchronizeOnce();
|
|
23447
23450
|
}
|
|
23448
23451
|
if ((typeof ngDevMode === 'undefined' || ngDevMode) && runs >= MAXIMUM_REFRESH_RERUNS) {
|
|
23449
23452
|
throw new RuntimeError(103 /* RuntimeErrorCode.INFINITE_CHANGE_DETECTION */, ngDevMode &&
|
|
@@ -23455,7 +23458,7 @@ class ApplicationRef {
|
|
|
23455
23458
|
/**
|
|
23456
23459
|
* Perform a single synchronization pass.
|
|
23457
23460
|
*/
|
|
23458
|
-
synchronizeOnce(
|
|
23461
|
+
synchronizeOnce() {
|
|
23459
23462
|
// If we happened to loop, deferred dirtiness can be processed as active dirtiness again.
|
|
23460
23463
|
this.dirtyFlags |= this.deferredDirtyFlags;
|
|
23461
23464
|
this.deferredDirtyFlags = 0 /* ApplicationRefDirtyFlags.None */;
|
|
@@ -23494,8 +23497,8 @@ class ApplicationRef {
|
|
|
23494
23497
|
else {
|
|
23495
23498
|
// If we skipped refreshing views above, there might still be unflushed animations
|
|
23496
23499
|
// because we never called `detectChangesInternal` on the views.
|
|
23497
|
-
|
|
23498
|
-
|
|
23500
|
+
this._rendererFactory?.begin?.();
|
|
23501
|
+
this._rendererFactory?.end?.();
|
|
23499
23502
|
}
|
|
23500
23503
|
// Even if there were no dirty views, afterRender hooks might still be dirty.
|
|
23501
23504
|
if (this.dirtyFlags & 8 /* ApplicationRefDirtyFlags.AfterRender */) {
|
|
@@ -23635,30 +23638,6 @@ function remove(list, el) {
|
|
|
23635
23638
|
list.splice(index, 1);
|
|
23636
23639
|
}
|
|
23637
23640
|
}
|
|
23638
|
-
let whenStableStore;
|
|
23639
|
-
/**
|
|
23640
|
-
* Returns a Promise that resolves when the application becomes stable after this method is called
|
|
23641
|
-
* the first time.
|
|
23642
|
-
*
|
|
23643
|
-
* Note: this function is unused in the FW code, but it's still present since the CLI code relies
|
|
23644
|
-
* on it currently (see https://github.com/angular/angular-cli/blob/20411f696eb52c500e096e3dfc5e195185794edc/packages/angular/ssr/src/routes/ng-routes.ts#L435).
|
|
23645
|
-
* Remove this function once CLI code is updated to use `ApplicationRef.whenStable` instead.
|
|
23646
|
-
*/
|
|
23647
|
-
function whenStable(applicationRef) {
|
|
23648
|
-
whenStableStore ??= new WeakMap();
|
|
23649
|
-
const cachedWhenStable = whenStableStore.get(applicationRef);
|
|
23650
|
-
if (cachedWhenStable) {
|
|
23651
|
-
return cachedWhenStable;
|
|
23652
|
-
}
|
|
23653
|
-
const whenStablePromise = applicationRef.isStable
|
|
23654
|
-
.pipe(first((isStable) => isStable))
|
|
23655
|
-
.toPromise()
|
|
23656
|
-
.then(() => void 0);
|
|
23657
|
-
whenStableStore.set(applicationRef, whenStablePromise);
|
|
23658
|
-
// Be a good citizen and clean the store `onDestroy` even though we are using `WeakMap`.
|
|
23659
|
-
applicationRef.onDestroy(() => whenStableStore?.delete(applicationRef));
|
|
23660
|
-
return whenStablePromise;
|
|
23661
|
-
}
|
|
23662
23641
|
function detectChangesInViewIfRequired(lView, notifyErrorHandler, isFirstPass, zonelessEnabled) {
|
|
23663
23642
|
// When re-checking, only check views which actually need it.
|
|
23664
23643
|
if (!isFirstPass && !requiresRefreshOrTraversal(lView)) {
|
|
@@ -23680,14 +23659,9 @@ function scheduleDelayedTrigger(scheduleFn) {
|
|
|
23680
23659
|
const tNode = getCurrentTNode();
|
|
23681
23660
|
const injector = lView[INJECTOR];
|
|
23682
23661
|
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
23683
|
-
const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
|
|
23684
23662
|
renderPlaceholder(lView, tNode);
|
|
23685
|
-
|
|
23686
|
-
|
|
23687
|
-
// since we don't want to delay the server response.
|
|
23688
|
-
const cleanupFn = scheduleFn(() => triggerDeferBlock(lView, tNode), injector);
|
|
23689
|
-
storeTriggerCleanupFn(0 /* TriggerType.Regular */, lDetails, cleanupFn);
|
|
23690
|
-
}
|
|
23663
|
+
const cleanupFn = scheduleFn(() => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), injector);
|
|
23664
|
+
storeTriggerCleanupFn(0 /* TriggerType.Regular */, lDetails, cleanupFn);
|
|
23691
23665
|
}
|
|
23692
23666
|
/**
|
|
23693
23667
|
* Schedules prefetching for `on idle` and `on timer` triggers.
|
|
@@ -23695,9 +23669,8 @@ function scheduleDelayedTrigger(scheduleFn) {
|
|
|
23695
23669
|
* @param scheduleFn A function that does the scheduling.
|
|
23696
23670
|
*/
|
|
23697
23671
|
function scheduleDelayedPrefetching(scheduleFn, trigger) {
|
|
23698
|
-
if (typeof ngServerMode !== 'undefined' && ngServerMode)
|
|
23672
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode)
|
|
23699
23673
|
return;
|
|
23700
|
-
}
|
|
23701
23674
|
const lView = getLView();
|
|
23702
23675
|
const injector = lView[INJECTOR];
|
|
23703
23676
|
// Only trigger the scheduled trigger on the browser
|
|
@@ -23705,8 +23678,6 @@ function scheduleDelayedPrefetching(scheduleFn, trigger) {
|
|
|
23705
23678
|
const tNode = getCurrentTNode();
|
|
23706
23679
|
const tView = lView[TVIEW];
|
|
23707
23680
|
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
23708
|
-
const prefetchTriggers = getPrefetchTriggers(tDetails);
|
|
23709
|
-
prefetchTriggers.add(trigger);
|
|
23710
23681
|
if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
|
|
23711
23682
|
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
23712
23683
|
const prefetch = () => triggerPrefetching(tDetails, lView, tNode);
|
|
@@ -23718,9 +23689,8 @@ function scheduleDelayedPrefetching(scheduleFn, trigger) {
|
|
|
23718
23689
|
* Schedules hydration triggering of a defer block for `on idle` and `on timer` conditions.
|
|
23719
23690
|
*/
|
|
23720
23691
|
function scheduleDelayedHydrating(scheduleFn, lView, tNode) {
|
|
23721
|
-
if (typeof ngServerMode !== 'undefined' && ngServerMode)
|
|
23692
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode)
|
|
23722
23693
|
return;
|
|
23723
|
-
}
|
|
23724
23694
|
// Only trigger the scheduled trigger on the browser
|
|
23725
23695
|
// since we don't want to delay the server response.
|
|
23726
23696
|
const injector = lView[INJECTOR];
|
|
@@ -23735,12 +23705,10 @@ function scheduleDelayedHydrating(scheduleFn, lView, tNode) {
|
|
|
23735
23705
|
*
|
|
23736
23706
|
* @param tDetails Static information about this defer block.
|
|
23737
23707
|
* @param lView LView of a host view.
|
|
23708
|
+
* @param tNode TNode that represents a defer block.
|
|
23738
23709
|
*/
|
|
23739
23710
|
function triggerPrefetching(tDetails, lView, tNode) {
|
|
23740
|
-
|
|
23741
|
-
if (lView[INJECTOR] && shouldTriggerDeferBlock(lView[INJECTOR], tDeferBlockDetails)) {
|
|
23742
|
-
triggerResourceLoading(tDetails, lView, tNode);
|
|
23743
|
-
}
|
|
23711
|
+
triggerResourceLoading(tDetails, lView, tNode);
|
|
23744
23712
|
}
|
|
23745
23713
|
/**
|
|
23746
23714
|
* Trigger loading of defer block dependencies if the process hasn't started yet.
|
|
@@ -23845,20 +23813,35 @@ function triggerResourceLoading(tDetails, lView, tNode) {
|
|
|
23845
23813
|
});
|
|
23846
23814
|
return tDetails.loadingPromise;
|
|
23847
23815
|
}
|
|
23816
|
+
/**
|
|
23817
|
+
* Defines whether we should proceed with triggering a given defer block.
|
|
23818
|
+
*/
|
|
23819
|
+
function shouldTriggerDeferBlock(triggerType, lView) {
|
|
23820
|
+
// prevents triggering regular triggers when on the server.
|
|
23821
|
+
if (triggerType === 0 /* TriggerType.Regular */ && typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
23822
|
+
return false;
|
|
23823
|
+
}
|
|
23824
|
+
// prevents triggering in the case of a test run with manual defer block configuration.
|
|
23825
|
+
const injector = lView[INJECTOR];
|
|
23826
|
+
const config = injector.get(DEFER_BLOCK_CONFIG, null, { optional: true });
|
|
23827
|
+
if (config?.behavior === DeferBlockBehavior.Manual) {
|
|
23828
|
+
return false;
|
|
23829
|
+
}
|
|
23830
|
+
return true;
|
|
23831
|
+
}
|
|
23848
23832
|
/**
|
|
23849
23833
|
* Attempts to trigger loading of defer block dependencies.
|
|
23850
23834
|
* If the block is already in a loading, completed or an error state -
|
|
23851
23835
|
* no additional actions are taken.
|
|
23852
23836
|
*/
|
|
23853
|
-
function triggerDeferBlock(lView, tNode) {
|
|
23837
|
+
function triggerDeferBlock(triggerType, lView, tNode) {
|
|
23854
23838
|
const tView = lView[TVIEW];
|
|
23855
23839
|
const lContainer = lView[tNode.index];
|
|
23856
|
-
const injector = lView[INJECTOR];
|
|
23857
23840
|
ngDevMode && assertLContainer(lContainer);
|
|
23841
|
+
if (!shouldTriggerDeferBlock(triggerType, lView))
|
|
23842
|
+
return;
|
|
23858
23843
|
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
23859
23844
|
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
23860
|
-
if (!shouldTriggerDeferBlock(injector, tDetails))
|
|
23861
|
-
return;
|
|
23862
23845
|
// Defer block is triggered, cleanup all registered trigger functions.
|
|
23863
23846
|
invokeAllTriggerCleanupFns(lDetails);
|
|
23864
23847
|
switch (tDetails.loadingState) {
|
|
@@ -23927,7 +23910,7 @@ async function triggerHydrationFromBlockName(injector, blockName, replayQueuedEv
|
|
|
23927
23910
|
}
|
|
23928
23911
|
// Actually do the triggering and hydration of the queue of blocks
|
|
23929
23912
|
for (const dehydratedBlockId of hydrationQueue) {
|
|
23930
|
-
await
|
|
23913
|
+
await triggerResourceLoadingForHydration(dehydratedBlockId, dehydratedBlockRegistry);
|
|
23931
23914
|
await nextRender(injector);
|
|
23932
23915
|
// TODO(incremental-hydration): assert (in dev mode) that a defer block is present in the dehydrated registry
|
|
23933
23916
|
// at this point. If not - it means that the block has not been hydrated, for example due to different
|
|
@@ -23965,7 +23948,7 @@ function nextRender(injector) {
|
|
|
23965
23948
|
afterNextRender(() => resolve(), { injector });
|
|
23966
23949
|
return promise;
|
|
23967
23950
|
}
|
|
23968
|
-
function
|
|
23951
|
+
function triggerResourceLoadingForHydration(dehydratedBlockId, dehydratedBlockRegistry) {
|
|
23969
23952
|
let resolve;
|
|
23970
23953
|
const promise = new Promise((resolveFn) => (resolve = resolveFn));
|
|
23971
23954
|
const deferBlock = dehydratedBlockRegistry.get(dehydratedBlockId);
|
|
@@ -23976,7 +23959,7 @@ function triggerDeferBlockResourceLoading(dehydratedBlockId, dehydratedBlockRegi
|
|
|
23976
23959
|
const { tNode, lView } = deferBlock;
|
|
23977
23960
|
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
23978
23961
|
onDeferBlockCompletion(lDetails, () => resolve());
|
|
23979
|
-
triggerDeferBlock(lView, tNode);
|
|
23962
|
+
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
23980
23963
|
// TODO(incremental-hydration): handle the cleanup for cases when
|
|
23981
23964
|
// defer block is no longer present during hydration (e.g. `@if` condition
|
|
23982
23965
|
// has changed during hydration/rendering).
|
|
@@ -23994,50 +23977,47 @@ function onDeferBlockCompletion(lDetails, callback) {
|
|
|
23994
23977
|
lDetails[ON_COMPLETE_FNS].push(callback);
|
|
23995
23978
|
}
|
|
23996
23979
|
/**
|
|
23997
|
-
* Determines whether
|
|
23998
|
-
*
|
|
23999
|
-
* - on the client for blocks that were server-side rendered, to start hydration process
|
|
23980
|
+
* Determines whether specific trigger types should be attached during an instruction firing
|
|
23981
|
+
* to ensure the proper triggers for a given type are used.
|
|
24000
23982
|
*/
|
|
24001
|
-
function
|
|
24002
|
-
|
|
24003
|
-
|
|
24004
|
-
|
|
24005
|
-
|
|
24006
|
-
|
|
24007
|
-
|
|
23983
|
+
function shouldAttachTrigger(triggerType, lView, tNode) {
|
|
23984
|
+
if (triggerType === 0 /* TriggerType.Regular */) {
|
|
23985
|
+
return shouldAttachRegularTrigger(lView, tNode);
|
|
23986
|
+
}
|
|
23987
|
+
else if (triggerType === 2 /* TriggerType.Hydrate */) {
|
|
23988
|
+
return !shouldAttachRegularTrigger(lView, tNode);
|
|
23989
|
+
}
|
|
23990
|
+
// TriggerType.Prefetch is active only on the client
|
|
23991
|
+
return !(typeof ngServerMode !== 'undefined' && ngServerMode);
|
|
24008
23992
|
}
|
|
24009
|
-
// TODO(incremental-hydration): Optimize this further by moving the calculation to earlier
|
|
24010
|
-
// in the process. Consider a flag we can check similar to LView[FLAGS].
|
|
24011
23993
|
/**
|
|
24012
|
-
*
|
|
24013
|
-
*
|
|
23994
|
+
* Defines whether a regular trigger logic (e.g. "on viewport") should be attached
|
|
23995
|
+
* to a defer block. This function defines a condition, which mutually excludes
|
|
23996
|
+
* `deferOn*` and `deferHydrateOn*` triggers, to make sure only one of the trigger
|
|
23997
|
+
* types is active for a block with the current state.
|
|
24014
23998
|
*/
|
|
24015
|
-
function
|
|
23999
|
+
function shouldAttachRegularTrigger(lView, tNode) {
|
|
24000
|
+
const injector = lView[INJECTOR];
|
|
24001
|
+
const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
|
|
24002
|
+
const incrementalHydrationEnabled = isIncrementalHydrationEnabled(injector);
|
|
24003
|
+
const hasHydrateTriggers = tDetails.flags !== null &&
|
|
24004
|
+
(tDetails.flags & 1 /* TDeferDetailsFlags.HasHydrateTriggers */) ===
|
|
24005
|
+
1 /* TDeferDetailsFlags.HasHydrateTriggers */;
|
|
24006
|
+
// On the server:
|
|
24016
24007
|
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24017
|
-
|
|
24008
|
+
// Regular triggers are activated on the server when:
|
|
24009
|
+
// - Either Incremental Hydration is *not* enabled
|
|
24010
|
+
// - Or Incremental Hydration is enabled, but a given block doesn't have "hydrate" triggers
|
|
24011
|
+
return !incrementalHydrationEnabled || !hasHydrateTriggers;
|
|
24018
24012
|
}
|
|
24019
|
-
|
|
24020
|
-
const
|
|
24021
|
-
|
|
24013
|
+
// On the client:
|
|
24014
|
+
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
24015
|
+
const wasServerSideRendered = lDetails[SSR_UNIQUE_ID] !== null;
|
|
24016
|
+
if (hasHydrateTriggers && wasServerSideRendered && incrementalHydrationEnabled) {
|
|
24022
24017
|
return false;
|
|
24023
24018
|
}
|
|
24024
24019
|
return true;
|
|
24025
24020
|
}
|
|
24026
|
-
/**
|
|
24027
|
-
* Returns whether defer blocks should be triggered.
|
|
24028
|
-
*
|
|
24029
|
-
* Currently, defer blocks are not triggered on the server,
|
|
24030
|
-
* only placeholder content is rendered (if provided).
|
|
24031
|
-
*/
|
|
24032
|
-
function shouldTriggerDeferBlock(injector, tDeferBlockDetails) {
|
|
24033
|
-
const config = injector.get(DEFER_BLOCK_CONFIG, null, { optional: true });
|
|
24034
|
-
if (config?.behavior === DeferBlockBehavior.Manual) {
|
|
24035
|
-
return false;
|
|
24036
|
-
}
|
|
24037
|
-
return (typeof ngServerMode === 'undefined' ||
|
|
24038
|
-
!ngServerMode ||
|
|
24039
|
-
tDeferBlockDetails.hydrateTriggers !== null);
|
|
24040
|
-
}
|
|
24041
24021
|
/**
|
|
24042
24022
|
* Retrives a Defer Block's list of hydration triggers
|
|
24043
24023
|
*/
|
|
@@ -24045,12 +24025,6 @@ function getHydrateTriggers(tView, tNode) {
|
|
|
24045
24025
|
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
24046
24026
|
return (tDetails.hydrateTriggers ??= new Map());
|
|
24047
24027
|
}
|
|
24048
|
-
/**
|
|
24049
|
-
* Retrives a Defer Block's list of prefetch triggers
|
|
24050
|
-
*/
|
|
24051
|
-
function getPrefetchTriggers(tDetails) {
|
|
24052
|
-
return (tDetails.prefetchTriggers ??= new Set());
|
|
24053
|
-
}
|
|
24054
24028
|
/**
|
|
24055
24029
|
* Loops through all defer block summaries and ensures all the blocks triggers are
|
|
24056
24030
|
* properly initialized
|
|
@@ -24142,10 +24116,13 @@ function setImmediateTriggers(injector, elementTriggers) {
|
|
|
24142
24116
|
* placeholder block.
|
|
24143
24117
|
* @param enableTimerScheduling Function that enables timer-related scheduling if `after`
|
|
24144
24118
|
* or `minimum` parameters are setup on the `@loading` or `@placeholder` blocks.
|
|
24119
|
+
* @param flags A set of flags to define a particular behavior (e.g. to indicate that
|
|
24120
|
+
* hydrate triggers are present and regular triggers should be deactivated
|
|
24121
|
+
* in certain scenarios).
|
|
24145
24122
|
*
|
|
24146
24123
|
* @codeGenApi
|
|
24147
24124
|
*/
|
|
24148
|
-
function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplIndex, placeholderTmplIndex, errorTmplIndex, loadingConfigIndex, placeholderConfigIndex, enableTimerScheduling) {
|
|
24125
|
+
function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplIndex, placeholderTmplIndex, errorTmplIndex, loadingConfigIndex, placeholderConfigIndex, enableTimerScheduling, flags) {
|
|
24149
24126
|
const lView = getLView();
|
|
24150
24127
|
const tView = getTView();
|
|
24151
24128
|
const adjustedIndex = index + HEADER_OFFSET;
|
|
@@ -24166,6 +24143,7 @@ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplInd
|
|
|
24166
24143
|
providers: null,
|
|
24167
24144
|
hydrateTriggers: null,
|
|
24168
24145
|
prefetchTriggers: null,
|
|
24146
|
+
flags: flags ?? 0 /* TDeferDetailsFlags.Default */,
|
|
24169
24147
|
};
|
|
24170
24148
|
enableTimerScheduling?.(tView, tDetails, placeholderConfigIndex, loadingConfigIndex);
|
|
24171
24149
|
setTDeferBlockDetails(tView, adjustedIndex, tDetails);
|
|
@@ -24220,14 +24198,15 @@ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplInd
|
|
|
24220
24198
|
*/
|
|
24221
24199
|
function ɵɵdeferWhen(rawValue) {
|
|
24222
24200
|
const lView = getLView();
|
|
24201
|
+
const tNode = getSelectedTNode();
|
|
24202
|
+
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24203
|
+
return;
|
|
24223
24204
|
const bindingIndex = nextBindingIndex();
|
|
24224
24205
|
if (bindingUpdated(lView, bindingIndex, rawValue)) {
|
|
24225
24206
|
const prevConsumer = setActiveConsumer$1(null);
|
|
24226
24207
|
try {
|
|
24227
24208
|
const value = Boolean(rawValue); // handle truthy or falsy values
|
|
24228
|
-
const tNode = getSelectedTNode();
|
|
24229
24209
|
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
24230
|
-
const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
|
|
24231
24210
|
const renderedState = lDetails[DEFER_BLOCK_STATE];
|
|
24232
24211
|
if (value === false && renderedState === DeferBlockInternalState.Initial) {
|
|
24233
24212
|
// If nothing is rendered yet, render a placeholder (if defined).
|
|
@@ -24235,9 +24214,8 @@ function ɵɵdeferWhen(rawValue) {
|
|
|
24235
24214
|
}
|
|
24236
24215
|
else if (value === true &&
|
|
24237
24216
|
(renderedState === DeferBlockInternalState.Initial ||
|
|
24238
|
-
renderedState === DeferBlockState.Placeholder)
|
|
24239
|
-
|
|
24240
|
-
triggerDeferBlock(lView, tNode);
|
|
24217
|
+
renderedState === DeferBlockState.Placeholder)) {
|
|
24218
|
+
triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode);
|
|
24241
24219
|
}
|
|
24242
24220
|
}
|
|
24243
24221
|
finally {
|
|
@@ -24252,9 +24230,9 @@ function ɵɵdeferWhen(rawValue) {
|
|
|
24252
24230
|
function ɵɵdeferPrefetchWhen(rawValue) {
|
|
24253
24231
|
const lView = getLView();
|
|
24254
24232
|
const tNode = getSelectedTNode();
|
|
24233
|
+
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24234
|
+
return;
|
|
24255
24235
|
const bindingIndex = nextBindingIndex();
|
|
24256
|
-
const prefetchTriggers = getPrefetchTriggers(getTDeferBlockDetails(getTView(), tNode));
|
|
24257
|
-
prefetchTriggers.add(6 /* DeferBlockTrigger.When */);
|
|
24258
24236
|
if (bindingUpdated(lView, bindingIndex, rawValue)) {
|
|
24259
24237
|
const prevConsumer = setActiveConsumer$1(null);
|
|
24260
24238
|
try {
|
|
@@ -24279,9 +24257,8 @@ function ɵɵdeferPrefetchWhen(rawValue) {
|
|
|
24279
24257
|
function ɵɵdeferHydrateWhen(rawValue) {
|
|
24280
24258
|
const lView = getLView();
|
|
24281
24259
|
const tNode = getSelectedTNode();
|
|
24282
|
-
if (!
|
|
24260
|
+
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24283
24261
|
return;
|
|
24284
|
-
}
|
|
24285
24262
|
// TODO(incremental-hydration): audit all defer instructions to reduce unnecessary work by
|
|
24286
24263
|
// moving function calls inside their relevant control flow blocks
|
|
24287
24264
|
const bindingIndex = nextBindingIndex();
|
|
@@ -24289,12 +24266,12 @@ function ɵɵdeferHydrateWhen(rawValue) {
|
|
|
24289
24266
|
const hydrateTriggers = getHydrateTriggers(tView, tNode);
|
|
24290
24267
|
hydrateTriggers.set(6 /* DeferBlockTrigger.When */, null);
|
|
24291
24268
|
if (bindingUpdated(lView, bindingIndex, rawValue)) {
|
|
24292
|
-
const injector = lView[INJECTOR];
|
|
24293
24269
|
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24294
24270
|
// We are on the server and SSR for defer blocks is enabled.
|
|
24295
|
-
triggerDeferBlock(lView, tNode);
|
|
24271
|
+
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24296
24272
|
}
|
|
24297
24273
|
else {
|
|
24274
|
+
const injector = lView[INJECTOR];
|
|
24298
24275
|
const prevConsumer = setActiveConsumer$1(null);
|
|
24299
24276
|
try {
|
|
24300
24277
|
const value = Boolean(rawValue); // handle truthy or falsy values
|
|
@@ -24321,13 +24298,13 @@ function ɵɵdeferHydrateWhen(rawValue) {
|
|
|
24321
24298
|
function ɵɵdeferHydrateNever() {
|
|
24322
24299
|
const lView = getLView();
|
|
24323
24300
|
const tNode = getCurrentTNode();
|
|
24324
|
-
if (
|
|
24325
|
-
|
|
24326
|
-
|
|
24327
|
-
|
|
24328
|
-
|
|
24329
|
-
|
|
24330
|
-
|
|
24301
|
+
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24302
|
+
return;
|
|
24303
|
+
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
24304
|
+
hydrateTriggers.set(7 /* DeferBlockTrigger.Never */, null);
|
|
24305
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24306
|
+
// We are on the server and SSR for defer blocks is enabled.
|
|
24307
|
+
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24331
24308
|
}
|
|
24332
24309
|
}
|
|
24333
24310
|
/**
|
|
@@ -24335,6 +24312,10 @@ function ɵɵdeferHydrateNever() {
|
|
|
24335
24312
|
* @codeGenApi
|
|
24336
24313
|
*/
|
|
24337
24314
|
function ɵɵdeferOnIdle() {
|
|
24315
|
+
const lView = getLView();
|
|
24316
|
+
const tNode = getCurrentTNode();
|
|
24317
|
+
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24318
|
+
return;
|
|
24338
24319
|
scheduleDelayedTrigger(onIdle);
|
|
24339
24320
|
}
|
|
24340
24321
|
/**
|
|
@@ -24342,6 +24323,10 @@ function ɵɵdeferOnIdle() {
|
|
|
24342
24323
|
* @codeGenApi
|
|
24343
24324
|
*/
|
|
24344
24325
|
function ɵɵdeferPrefetchOnIdle() {
|
|
24326
|
+
const lView = getLView();
|
|
24327
|
+
const tNode = getCurrentTNode();
|
|
24328
|
+
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24329
|
+
return;
|
|
24345
24330
|
scheduleDelayedPrefetching(onIdle, 0 /* DeferBlockTrigger.Idle */);
|
|
24346
24331
|
}
|
|
24347
24332
|
/**
|
|
@@ -24351,16 +24336,16 @@ function ɵɵdeferPrefetchOnIdle() {
|
|
|
24351
24336
|
function ɵɵdeferHydrateOnIdle() {
|
|
24352
24337
|
const lView = getLView();
|
|
24353
24338
|
const tNode = getCurrentTNode();
|
|
24354
|
-
if (
|
|
24355
|
-
|
|
24356
|
-
|
|
24357
|
-
|
|
24358
|
-
|
|
24359
|
-
|
|
24360
|
-
|
|
24361
|
-
|
|
24362
|
-
|
|
24363
|
-
|
|
24339
|
+
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24340
|
+
return;
|
|
24341
|
+
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
24342
|
+
hydrateTriggers.set(0 /* DeferBlockTrigger.Idle */, null);
|
|
24343
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24344
|
+
// We are on the server and SSR for defer blocks is enabled.
|
|
24345
|
+
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24346
|
+
}
|
|
24347
|
+
else {
|
|
24348
|
+
scheduleDelayedHydrating(onIdle, lView, tNode);
|
|
24364
24349
|
}
|
|
24365
24350
|
}
|
|
24366
24351
|
/**
|
|
@@ -24370,19 +24355,16 @@ function ɵɵdeferHydrateOnIdle() {
|
|
|
24370
24355
|
function ɵɵdeferOnImmediate() {
|
|
24371
24356
|
const lView = getLView();
|
|
24372
24357
|
const tNode = getCurrentTNode();
|
|
24373
|
-
|
|
24374
|
-
|
|
24375
|
-
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
24376
|
-
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
24358
|
+
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24359
|
+
return;
|
|
24377
24360
|
// Render placeholder block only if loading template is not present and we're on
|
|
24378
24361
|
// the client to avoid content flickering, since it would be immediately replaced
|
|
24379
24362
|
// by the loading block.
|
|
24380
|
-
|
|
24363
|
+
const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
|
|
24364
|
+
if (tDetails.loadingTmplIndex === null) {
|
|
24381
24365
|
renderPlaceholder(lView, tNode);
|
|
24382
24366
|
}
|
|
24383
|
-
|
|
24384
|
-
triggerDeferBlock(lView, tNode);
|
|
24385
|
-
}
|
|
24367
|
+
triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode);
|
|
24386
24368
|
}
|
|
24387
24369
|
/**
|
|
24388
24370
|
* Sets up logic to handle the `prefetch on immediate` deferred trigger.
|
|
@@ -24391,10 +24373,10 @@ function ɵɵdeferOnImmediate() {
|
|
|
24391
24373
|
function ɵɵdeferPrefetchOnImmediate() {
|
|
24392
24374
|
const lView = getLView();
|
|
24393
24375
|
const tNode = getCurrentTNode();
|
|
24376
|
+
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24377
|
+
return;
|
|
24394
24378
|
const tView = lView[TVIEW];
|
|
24395
24379
|
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
24396
|
-
const prefetchTriggers = getPrefetchTriggers(tDetails);
|
|
24397
|
-
prefetchTriggers.add(1 /* DeferBlockTrigger.Immediate */);
|
|
24398
24380
|
if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
|
|
24399
24381
|
triggerResourceLoading(tDetails, lView, tNode);
|
|
24400
24382
|
}
|
|
@@ -24406,19 +24388,19 @@ function ɵɵdeferPrefetchOnImmediate() {
|
|
|
24406
24388
|
function ɵɵdeferHydrateOnImmediate() {
|
|
24407
24389
|
const lView = getLView();
|
|
24408
24390
|
const tNode = getCurrentTNode();
|
|
24409
|
-
if (
|
|
24391
|
+
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24392
|
+
return;
|
|
24393
|
+
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
24394
|
+
hydrateTriggers.set(1 /* DeferBlockTrigger.Immediate */, null);
|
|
24395
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24396
|
+
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24397
|
+
}
|
|
24398
|
+
else {
|
|
24410
24399
|
const injector = lView[INJECTOR];
|
|
24411
|
-
const
|
|
24412
|
-
|
|
24413
|
-
|
|
24414
|
-
|
|
24415
|
-
}
|
|
24416
|
-
else {
|
|
24417
|
-
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
24418
|
-
const ssrUniqueId = lDetails[SSR_UNIQUE_ID];
|
|
24419
|
-
ngDevMode && assertSsrIdDefined(ssrUniqueId);
|
|
24420
|
-
triggerHydrationFromBlockName(injector, ssrUniqueId);
|
|
24421
|
-
}
|
|
24400
|
+
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
24401
|
+
const ssrUniqueId = lDetails[SSR_UNIQUE_ID];
|
|
24402
|
+
ngDevMode && assertSsrIdDefined(ssrUniqueId);
|
|
24403
|
+
triggerHydrationFromBlockName(injector, ssrUniqueId);
|
|
24422
24404
|
}
|
|
24423
24405
|
}
|
|
24424
24406
|
/**
|
|
@@ -24427,6 +24409,10 @@ function ɵɵdeferHydrateOnImmediate() {
|
|
|
24427
24409
|
* @codeGenApi
|
|
24428
24410
|
*/
|
|
24429
24411
|
function ɵɵdeferOnTimer(delay) {
|
|
24412
|
+
const lView = getLView();
|
|
24413
|
+
const tNode = getCurrentTNode();
|
|
24414
|
+
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24415
|
+
return;
|
|
24430
24416
|
scheduleDelayedTrigger(onTimer(delay));
|
|
24431
24417
|
}
|
|
24432
24418
|
/**
|
|
@@ -24435,6 +24421,10 @@ function ɵɵdeferOnTimer(delay) {
|
|
|
24435
24421
|
* @codeGenApi
|
|
24436
24422
|
*/
|
|
24437
24423
|
function ɵɵdeferPrefetchOnTimer(delay) {
|
|
24424
|
+
const lView = getLView();
|
|
24425
|
+
const tNode = getCurrentTNode();
|
|
24426
|
+
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24427
|
+
return;
|
|
24438
24428
|
scheduleDelayedPrefetching(onTimer(delay), 5 /* DeferBlockTrigger.Timer */);
|
|
24439
24429
|
}
|
|
24440
24430
|
/**
|
|
@@ -24445,16 +24435,16 @@ function ɵɵdeferPrefetchOnTimer(delay) {
|
|
|
24445
24435
|
function ɵɵdeferHydrateOnTimer(delay) {
|
|
24446
24436
|
const lView = getLView();
|
|
24447
24437
|
const tNode = getCurrentTNode();
|
|
24448
|
-
if (
|
|
24449
|
-
|
|
24450
|
-
|
|
24451
|
-
|
|
24452
|
-
|
|
24453
|
-
|
|
24454
|
-
|
|
24455
|
-
|
|
24456
|
-
|
|
24457
|
-
|
|
24438
|
+
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24439
|
+
return;
|
|
24440
|
+
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
24441
|
+
hydrateTriggers.set(5 /* DeferBlockTrigger.Timer */, delay);
|
|
24442
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24443
|
+
// We are on the server and SSR for defer blocks is enabled.
|
|
24444
|
+
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24445
|
+
}
|
|
24446
|
+
else {
|
|
24447
|
+
scheduleDelayedHydrating(onTimer(delay), lView, tNode);
|
|
24458
24448
|
}
|
|
24459
24449
|
}
|
|
24460
24450
|
/**
|
|
@@ -24466,11 +24456,12 @@ function ɵɵdeferHydrateOnTimer(delay) {
|
|
|
24466
24456
|
function ɵɵdeferOnHover(triggerIndex, walkUpTimes) {
|
|
24467
24457
|
const lView = getLView();
|
|
24468
24458
|
const tNode = getCurrentTNode();
|
|
24469
|
-
|
|
24470
|
-
|
|
24459
|
+
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24460
|
+
return;
|
|
24471
24461
|
renderPlaceholder(lView, tNode);
|
|
24472
|
-
|
|
24473
|
-
|
|
24462
|
+
// Avoid adding event listeners when this instruction is invoked on the server.
|
|
24463
|
+
if (!(typeof ngServerMode !== 'undefined' && ngServerMode)) {
|
|
24464
|
+
registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onHover, () => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), 0 /* TriggerType.Regular */);
|
|
24474
24465
|
}
|
|
24475
24466
|
}
|
|
24476
24467
|
/**
|
|
@@ -24482,10 +24473,10 @@ function ɵɵdeferOnHover(triggerIndex, walkUpTimes) {
|
|
|
24482
24473
|
function ɵɵdeferPrefetchOnHover(triggerIndex, walkUpTimes) {
|
|
24483
24474
|
const lView = getLView();
|
|
24484
24475
|
const tNode = getCurrentTNode();
|
|
24476
|
+
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24477
|
+
return;
|
|
24485
24478
|
const tView = lView[TVIEW];
|
|
24486
24479
|
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
24487
|
-
const prefetchTriggers = getPrefetchTriggers(tDetails);
|
|
24488
|
-
prefetchTriggers.add(4 /* DeferBlockTrigger.Hover */);
|
|
24489
24480
|
if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
|
|
24490
24481
|
registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onHover, () => triggerPrefetching(tDetails, lView, tNode), 1 /* TriggerType.Prefetch */);
|
|
24491
24482
|
}
|
|
@@ -24497,13 +24488,13 @@ function ɵɵdeferPrefetchOnHover(triggerIndex, walkUpTimes) {
|
|
|
24497
24488
|
function ɵɵdeferHydrateOnHover() {
|
|
24498
24489
|
const lView = getLView();
|
|
24499
24490
|
const tNode = getCurrentTNode();
|
|
24500
|
-
if (
|
|
24501
|
-
|
|
24502
|
-
|
|
24503
|
-
|
|
24504
|
-
|
|
24505
|
-
|
|
24506
|
-
|
|
24491
|
+
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24492
|
+
return;
|
|
24493
|
+
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
24494
|
+
hydrateTriggers.set(4 /* DeferBlockTrigger.Hover */, null);
|
|
24495
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24496
|
+
// We are on the server and SSR for defer blocks is enabled.
|
|
24497
|
+
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24507
24498
|
}
|
|
24508
24499
|
// The actual triggering of hydration on hover is handled by JSAction in
|
|
24509
24500
|
// event_replay.ts.
|
|
@@ -24517,11 +24508,12 @@ function ɵɵdeferHydrateOnHover() {
|
|
|
24517
24508
|
function ɵɵdeferOnInteraction(triggerIndex, walkUpTimes) {
|
|
24518
24509
|
const lView = getLView();
|
|
24519
24510
|
const tNode = getCurrentTNode();
|
|
24520
|
-
|
|
24521
|
-
|
|
24511
|
+
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24512
|
+
return;
|
|
24522
24513
|
renderPlaceholder(lView, tNode);
|
|
24523
|
-
|
|
24524
|
-
|
|
24514
|
+
// Avoid adding event listeners when this instruction is invoked on the server.
|
|
24515
|
+
if (!(typeof ngServerMode !== 'undefined' && ngServerMode)) {
|
|
24516
|
+
registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onInteraction, () => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), 0 /* TriggerType.Regular */);
|
|
24525
24517
|
}
|
|
24526
24518
|
}
|
|
24527
24519
|
/**
|
|
@@ -24533,10 +24525,10 @@ function ɵɵdeferOnInteraction(triggerIndex, walkUpTimes) {
|
|
|
24533
24525
|
function ɵɵdeferPrefetchOnInteraction(triggerIndex, walkUpTimes) {
|
|
24534
24526
|
const lView = getLView();
|
|
24535
24527
|
const tNode = getCurrentTNode();
|
|
24528
|
+
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24529
|
+
return;
|
|
24536
24530
|
const tView = lView[TVIEW];
|
|
24537
24531
|
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
24538
|
-
const prefetchTriggers = getPrefetchTriggers(tDetails);
|
|
24539
|
-
prefetchTriggers.add(3 /* DeferBlockTrigger.Interaction */);
|
|
24540
24532
|
if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
|
|
24541
24533
|
registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onInteraction, () => triggerPrefetching(tDetails, lView, tNode), 1 /* TriggerType.Prefetch */);
|
|
24542
24534
|
}
|
|
@@ -24548,13 +24540,13 @@ function ɵɵdeferPrefetchOnInteraction(triggerIndex, walkUpTimes) {
|
|
|
24548
24540
|
function ɵɵdeferHydrateOnInteraction() {
|
|
24549
24541
|
const lView = getLView();
|
|
24550
24542
|
const tNode = getCurrentTNode();
|
|
24551
|
-
if (
|
|
24552
|
-
|
|
24553
|
-
|
|
24554
|
-
|
|
24555
|
-
|
|
24556
|
-
|
|
24557
|
-
|
|
24543
|
+
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24544
|
+
return;
|
|
24545
|
+
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
24546
|
+
hydrateTriggers.set(3 /* DeferBlockTrigger.Interaction */, null);
|
|
24547
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24548
|
+
// We are on the server and SSR for defer blocks is enabled.
|
|
24549
|
+
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24558
24550
|
}
|
|
24559
24551
|
// The actual triggering of hydration on interaction is handled by JSAction in
|
|
24560
24552
|
// event_replay.ts.
|
|
@@ -24568,11 +24560,12 @@ function ɵɵdeferHydrateOnInteraction() {
|
|
|
24568
24560
|
function ɵɵdeferOnViewport(triggerIndex, walkUpTimes) {
|
|
24569
24561
|
const lView = getLView();
|
|
24570
24562
|
const tNode = getCurrentTNode();
|
|
24571
|
-
|
|
24572
|
-
|
|
24563
|
+
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24564
|
+
return;
|
|
24573
24565
|
renderPlaceholder(lView, tNode);
|
|
24574
|
-
|
|
24575
|
-
|
|
24566
|
+
// Avoid adding event listeners when this instruction is invoked on the server.
|
|
24567
|
+
if (!(typeof ngServerMode !== 'undefined' && ngServerMode)) {
|
|
24568
|
+
registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onViewport, () => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), 0 /* TriggerType.Regular */);
|
|
24576
24569
|
}
|
|
24577
24570
|
}
|
|
24578
24571
|
/**
|
|
@@ -24584,10 +24577,10 @@ function ɵɵdeferOnViewport(triggerIndex, walkUpTimes) {
|
|
|
24584
24577
|
function ɵɵdeferPrefetchOnViewport(triggerIndex, walkUpTimes) {
|
|
24585
24578
|
const lView = getLView();
|
|
24586
24579
|
const tNode = getCurrentTNode();
|
|
24580
|
+
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24581
|
+
return;
|
|
24587
24582
|
const tView = lView[TVIEW];
|
|
24588
24583
|
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
24589
|
-
const prefetchTriggers = getPrefetchTriggers(tDetails);
|
|
24590
|
-
prefetchTriggers.add(2 /* DeferBlockTrigger.Viewport */);
|
|
24591
24584
|
if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
|
|
24592
24585
|
registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onViewport, () => triggerPrefetching(tDetails, lView, tNode), 1 /* TriggerType.Prefetch */);
|
|
24593
24586
|
}
|
|
@@ -24599,16 +24592,15 @@ function ɵɵdeferPrefetchOnViewport(triggerIndex, walkUpTimes) {
|
|
|
24599
24592
|
function ɵɵdeferHydrateOnViewport() {
|
|
24600
24593
|
const lView = getLView();
|
|
24601
24594
|
const tNode = getCurrentTNode();
|
|
24602
|
-
if (
|
|
24603
|
-
|
|
24604
|
-
|
|
24605
|
-
|
|
24606
|
-
|
|
24607
|
-
|
|
24608
|
-
|
|
24609
|
-
}
|
|
24595
|
+
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24596
|
+
return;
|
|
24597
|
+
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
24598
|
+
hydrateTriggers.set(2 /* DeferBlockTrigger.Viewport */, null);
|
|
24599
|
+
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24600
|
+
// We are on the server and SSR for defer blocks is enabled.
|
|
24601
|
+
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24610
24602
|
}
|
|
24611
|
-
// The actual triggering of hydration on viewport happens in
|
|
24603
|
+
// The actual triggering of hydration on viewport happens in triggering.ts,
|
|
24612
24604
|
// since these instructions won't exist for dehydrated content.
|
|
24613
24605
|
}
|
|
24614
24606
|
|
|
@@ -25261,7 +25253,7 @@ function getTStylingRangeTail(tStylingRange) {
|
|
|
25261
25253
|
* instructions can be traversed in priority order when computing the styles.
|
|
25262
25254
|
*
|
|
25263
25255
|
* Assume we are dealing with the following code:
|
|
25264
|
-
* ```
|
|
25256
|
+
* ```angular-ts
|
|
25265
25257
|
* @Component({
|
|
25266
25258
|
* template: `
|
|
25267
25259
|
* <my-cmp [style]=" {color: '#001'} "
|
|
@@ -25332,7 +25324,7 @@ function getTStylingRangeTail(tStylingRange) {
|
|
|
25332
25324
|
*
|
|
25333
25325
|
* NOTE: the comment binding location is for illustrative purposes only.
|
|
25334
25326
|
*
|
|
25335
|
-
* ```
|
|
25327
|
+
* ```ts
|
|
25336
25328
|
* // Template: (ExampleComponent)
|
|
25337
25329
|
* ɵɵstyleMap({color: '#001'}); // Binding index: 10
|
|
25338
25330
|
* ɵɵstyleProp('color', '#002'); // Binding index: 12
|
|
@@ -25349,7 +25341,7 @@ function getTStylingRangeTail(tStylingRange) {
|
|
|
25349
25341
|
*
|
|
25350
25342
|
* The correct priority order of concatenation is:
|
|
25351
25343
|
*
|
|
25352
|
-
* ```
|
|
25344
|
+
* ```ts
|
|
25353
25345
|
* // MyComponent
|
|
25354
25346
|
* ɵɵstyleMap({color: '#003'}); // Binding index: 20
|
|
25355
25347
|
* ɵɵstyleProp('color', '#004'); // Binding index: 22
|
|
@@ -25681,7 +25673,7 @@ function getLastParsedValue(text) {
|
|
|
25681
25673
|
* Initializes `className` string for parsing and parses the first token.
|
|
25682
25674
|
*
|
|
25683
25675
|
* This function is intended to be used in this format:
|
|
25684
|
-
* ```
|
|
25676
|
+
* ```ts
|
|
25685
25677
|
* for (let i = parseClassName(text); i >= 0; i = parseClassNameNext(text, i)) {
|
|
25686
25678
|
* const key = getLastParsedKey();
|
|
25687
25679
|
* ...
|
|
@@ -25698,7 +25690,7 @@ function parseClassName(text) {
|
|
|
25698
25690
|
* Parses next `className` token.
|
|
25699
25691
|
*
|
|
25700
25692
|
* This function is intended to be used in this format:
|
|
25701
|
-
* ```
|
|
25693
|
+
* ```ts
|
|
25702
25694
|
* for (let i = parseClassName(text); i >= 0; i = parseClassNameNext(text, i)) {
|
|
25703
25695
|
* const key = getLastParsedKey();
|
|
25704
25696
|
* ...
|
|
@@ -25721,7 +25713,7 @@ function parseClassNameNext(text, index) {
|
|
|
25721
25713
|
* Initializes `cssText` string for parsing and parses the first key/values.
|
|
25722
25714
|
*
|
|
25723
25715
|
* This function is intended to be used in this format:
|
|
25724
|
-
* ```
|
|
25716
|
+
* ```ts
|
|
25725
25717
|
* for (let i = parseStyle(text); i >= 0; i = parseStyleNext(text, i))) {
|
|
25726
25718
|
* const key = getLastParsedKey();
|
|
25727
25719
|
* const value = getLastParsedValue();
|
|
@@ -25739,7 +25731,7 @@ function parseStyle(text) {
|
|
|
25739
25731
|
* Parses the next `cssText` key/values.
|
|
25740
25732
|
*
|
|
25741
25733
|
* This function is intended to be used in this format:
|
|
25742
|
-
* ```
|
|
25734
|
+
* ```ts
|
|
25743
25735
|
* for (let i = parseStyle(text); i >= 0; i = parseStyleNext(text, i))) {
|
|
25744
25736
|
* const key = getLastParsedKey();
|
|
25745
25737
|
* const value = getLastParsedValue();
|
|
@@ -26296,7 +26288,7 @@ function getTemplateHeadTStylingKey(tData, tNode, isClassBased) {
|
|
|
26296
26288
|
* method allows us to update the first template instruction `TStylingKey` with a new value.
|
|
26297
26289
|
*
|
|
26298
26290
|
* Assume:
|
|
26299
|
-
* ```
|
|
26291
|
+
* ```angular-ts
|
|
26300
26292
|
* <div my-dir style="color: red" [style.color]="tmplExp"></div>
|
|
26301
26293
|
*
|
|
26302
26294
|
* @Directive({
|
|
@@ -26309,7 +26301,7 @@ function getTemplateHeadTStylingKey(tData, tNode, isClassBased) {
|
|
|
26309
26301
|
* ```
|
|
26310
26302
|
*
|
|
26311
26303
|
* when `[style.color]="tmplExp"` executes it creates this data structure.
|
|
26312
|
-
* ```
|
|
26304
|
+
* ```ts
|
|
26313
26305
|
* ['', 'color', 'color', 'red', 'width', '100px'],
|
|
26314
26306
|
* ```
|
|
26315
26307
|
*
|
|
@@ -26319,14 +26311,14 @@ function getTemplateHeadTStylingKey(tData, tNode, isClassBased) {
|
|
|
26319
26311
|
* `color' and 'width`)
|
|
26320
26312
|
*
|
|
26321
26313
|
* When `'[style.color]': 'dirExp',` executes we need to insert a new data into the linked list.
|
|
26322
|
-
* ```
|
|
26314
|
+
* ```ts
|
|
26323
26315
|
* ['', 'color', 'width', '100px'], // newly inserted
|
|
26324
26316
|
* ['', 'color', 'color', 'red', 'width', '100px'], // this is wrong
|
|
26325
26317
|
* ```
|
|
26326
26318
|
*
|
|
26327
26319
|
* Notice that the template statics is now wrong as it incorrectly contains `width` so we need to
|
|
26328
26320
|
* update it like so:
|
|
26329
|
-
* ```
|
|
26321
|
+
* ```ts
|
|
26330
26322
|
* ['', 'color', 'width', '100px'],
|
|
26331
26323
|
* ['', 'color', 'color', 'red'], // UPDATE
|
|
26332
26324
|
* ```
|
|
@@ -29365,7 +29357,7 @@ function removeInnerTemplateTranslation(message) {
|
|
|
29365
29357
|
* translated message can span multiple templates.
|
|
29366
29358
|
*
|
|
29367
29359
|
* Example:
|
|
29368
|
-
* ```
|
|
29360
|
+
* ```html
|
|
29369
29361
|
* <div i18n>Translate <span *ngIf>me</span>!</div>
|
|
29370
29362
|
* ```
|
|
29371
29363
|
*
|
|
@@ -33053,11 +33045,11 @@ function ɵsetClassDebugInfo(type, debugInfo) {
|
|
|
33053
33045
|
* Replaces the metadata of a component type and re-renders all live instances of the component.
|
|
33054
33046
|
* @param type Class whose metadata will be replaced.
|
|
33055
33047
|
* @param applyMetadata Callback that will apply a new set of metadata on the `type` when invoked.
|
|
33056
|
-
* @param environment
|
|
33048
|
+
* @param environment Syntehtic namespace imports that need to be passed along to the callback.
|
|
33057
33049
|
* @param locals Local symbols from the source location that have to be exposed to the callback.
|
|
33058
33050
|
* @codeGenApi
|
|
33059
33051
|
*/
|
|
33060
|
-
function ɵɵreplaceMetadata(type, applyMetadata,
|
|
33052
|
+
function ɵɵreplaceMetadata(type, applyMetadata, namespaces, locals) {
|
|
33061
33053
|
ngDevMode && assertComponentDef(type);
|
|
33062
33054
|
const oldDef = getComponentDef(type);
|
|
33063
33055
|
// The reason `applyMetadata` is a callback that is invoked (almost) immediately is because
|
|
@@ -33065,7 +33057,7 @@ function ɵɵreplaceMetadata(type, applyMetadata, environment, locals) {
|
|
|
33065
33057
|
// can be functions for embedded views, the variables for the constant pool and `setClassMetadata`
|
|
33066
33058
|
// calls. The callback allows us to keep them isolate from the rest of the app and to invoke
|
|
33067
33059
|
// them at the right time.
|
|
33068
|
-
applyMetadata.apply(null, [type,
|
|
33060
|
+
applyMetadata.apply(null, [type, namespaces, ...locals]);
|
|
33069
33061
|
// If a `tView` hasn't been created yet, it means that this component hasn't been instantianted
|
|
33070
33062
|
// before. In this case there's nothing left for us to do aside from patching it in.
|
|
33071
33063
|
if (oldDef.tView) {
|
|
@@ -34582,7 +34574,7 @@ class Version {
|
|
|
34582
34574
|
/**
|
|
34583
34575
|
* @publicApi
|
|
34584
34576
|
*/
|
|
34585
|
-
const VERSION = new Version('19.1.0-next.
|
|
34577
|
+
const VERSION = new Version('19.1.0-next.2');
|
|
34586
34578
|
|
|
34587
34579
|
/**
|
|
34588
34580
|
* Combination of NgModuleFactory and ComponentFactories.
|
|
@@ -34817,7 +34809,7 @@ function internalProvideZoneChangeDetection({ ngZoneFactory, ignoreChangesOutsid
|
|
|
34817
34809
|
* `BootstrapOptions` instead.
|
|
34818
34810
|
*
|
|
34819
34811
|
* @usageNotes
|
|
34820
|
-
* ```
|
|
34812
|
+
* ```ts
|
|
34821
34813
|
* bootstrapApplication(MyApp, {providers: [
|
|
34822
34814
|
* provideZoneChangeDetection({eventCoalescing: true}),
|
|
34823
34815
|
* ]});
|
|
@@ -35205,7 +35197,7 @@ class ChangeDetectionSchedulerImpl {
|
|
|
35205
35197
|
* - registering a render hook (templates are only refreshed if render hooks do one of the above)
|
|
35206
35198
|
*
|
|
35207
35199
|
* @usageNotes
|
|
35208
|
-
* ```
|
|
35200
|
+
* ```ts
|
|
35209
35201
|
* bootstrapApplication(MyApp, {providers: [
|
|
35210
35202
|
* provideExperimentalZonelessChangeDetection(),
|
|
35211
35203
|
* ]});
|
|
@@ -35277,7 +35269,7 @@ function getGlobalLocale() {
|
|
|
35277
35269
|
* @usageNotes
|
|
35278
35270
|
* ### Example
|
|
35279
35271
|
*
|
|
35280
|
-
* ```
|
|
35272
|
+
* ```ts
|
|
35281
35273
|
* import { LOCALE_ID } from '@angular/core';
|
|
35282
35274
|
* import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
35283
35275
|
* import { AppModule } from './app/app.module';
|
|
@@ -35300,7 +35292,7 @@ const LOCALE_ID = new InjectionToken(ngDevMode ? 'LocaleId' : '', {
|
|
|
35300
35292
|
*
|
|
35301
35293
|
* See the [i18n guide](guide/i18n/locale-id) for more information.
|
|
35302
35294
|
*
|
|
35303
|
-
* <div class="alert
|
|
35295
|
+
* <div class="docs-alert docs-alert-helpful">
|
|
35304
35296
|
*
|
|
35305
35297
|
* **Deprecation notice:**
|
|
35306
35298
|
*
|
|
@@ -35320,7 +35312,7 @@ const LOCALE_ID = new InjectionToken(ngDevMode ? 'LocaleId' : '', {
|
|
|
35320
35312
|
* @usageNotes
|
|
35321
35313
|
* ### Example
|
|
35322
35314
|
*
|
|
35323
|
-
* ```
|
|
35315
|
+
* ```ts
|
|
35324
35316
|
* import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
35325
35317
|
* import { AppModule } from './app/app.module';
|
|
35326
35318
|
*
|
|
@@ -35344,7 +35336,7 @@ const DEFAULT_CURRENCY_CODE = new InjectionToken(ngDevMode ? 'DefaultCurrencyCod
|
|
|
35344
35336
|
* @usageNotes
|
|
35345
35337
|
* ### Example
|
|
35346
35338
|
*
|
|
35347
|
-
* ```
|
|
35339
|
+
* ```ts
|
|
35348
35340
|
* import { TRANSLATIONS } from '@angular/core';
|
|
35349
35341
|
* import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
35350
35342
|
* import { AppModule } from './app/app.module';
|
|
@@ -35369,7 +35361,7 @@ const TRANSLATIONS = new InjectionToken(ngDevMode ? 'Translations' : '');
|
|
|
35369
35361
|
* @usageNotes
|
|
35370
35362
|
* ### Example
|
|
35371
35363
|
*
|
|
35372
|
-
* ```
|
|
35364
|
+
* ```ts
|
|
35373
35365
|
* import { TRANSLATIONS_FORMAT } from '@angular/core';
|
|
35374
35366
|
* import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
35375
35367
|
* import { AppModule } from './app/app.module';
|
|
@@ -35393,7 +35385,7 @@ const TRANSLATIONS_FORMAT = new InjectionToken(ngDevMode ? 'TranslationsFormat'
|
|
|
35393
35385
|
*
|
|
35394
35386
|
* @usageNotes
|
|
35395
35387
|
* ### Example
|
|
35396
|
-
* ```
|
|
35388
|
+
* ```ts
|
|
35397
35389
|
* import { MissingTranslationStrategy } from '@angular/core';
|
|
35398
35390
|
* import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
|
35399
35391
|
* import { AppModule } from './app/app.module';
|
|
@@ -35757,7 +35749,7 @@ class PlatformRef {
|
|
|
35757
35749
|
* @usageNotes
|
|
35758
35750
|
* ### Simple Example
|
|
35759
35751
|
*
|
|
35760
|
-
* ```
|
|
35752
|
+
* ```ts
|
|
35761
35753
|
* @NgModule({
|
|
35762
35754
|
* imports: [BrowserModule]
|
|
35763
35755
|
* })
|
|
@@ -36185,8 +36177,7 @@ function noModuleError(id) {
|
|
|
36185
36177
|
* (`CheckOnce`, rather than the default `CheckAlways`), then forces a second check
|
|
36186
36178
|
* after an interval.
|
|
36187
36179
|
*
|
|
36188
|
-
*
|
|
36189
|
-
* region="mark-for-check"></code-example>
|
|
36180
|
+
* {@example core/ts/change_detect/change-detection.ts region='mark-for-check'}
|
|
36190
36181
|
*
|
|
36191
36182
|
* ### Detach change detector to limit how often check occurs
|
|
36192
36183
|
*
|
|
@@ -36196,7 +36187,7 @@ function noModuleError(id) {
|
|
|
36196
36187
|
* less often than the changes actually occur. To do that, we detach
|
|
36197
36188
|
* the component's change detector and perform an explicit local check every five seconds.
|
|
36198
36189
|
*
|
|
36199
|
-
*
|
|
36190
|
+
* {@example core/ts/change_detect/change-detection.ts region='detach'}
|
|
36200
36191
|
*
|
|
36201
36192
|
*
|
|
36202
36193
|
* ### Reattaching a detached component
|
|
@@ -36206,7 +36197,7 @@ function noModuleError(id) {
|
|
|
36206
36197
|
* when the `live` property is set to false, and reattaches it when the property
|
|
36207
36198
|
* becomes true.
|
|
36208
36199
|
*
|
|
36209
|
-
*
|
|
36200
|
+
* {@example core/ts/change_detect/change-detection.ts region='reattach'}
|
|
36210
36201
|
*
|
|
36211
36202
|
* @publicApi
|
|
36212
36203
|
*/
|
|
@@ -36272,7 +36263,7 @@ class ViewRef extends ChangeDetectorRef {
|
|
|
36272
36263
|
* The following template breaks down into two separate `TemplateRef` instances,
|
|
36273
36264
|
* an outer one and an inner one.
|
|
36274
36265
|
*
|
|
36275
|
-
* ```
|
|
36266
|
+
* ```html
|
|
36276
36267
|
* Count: {{items.length}}
|
|
36277
36268
|
* <ul>
|
|
36278
36269
|
* <li *ngFor="let item of items">{{item}}</li>
|
|
@@ -36281,7 +36272,7 @@ class ViewRef extends ChangeDetectorRef {
|
|
|
36281
36272
|
*
|
|
36282
36273
|
* This is the outer `TemplateRef`:
|
|
36283
36274
|
*
|
|
36284
|
-
* ```
|
|
36275
|
+
* ```html
|
|
36285
36276
|
* Count: {{items.length}}
|
|
36286
36277
|
* <ul>
|
|
36287
36278
|
* <ng-template ngFor let-item [ngForOf]="items"></ng-template>
|
|
@@ -36290,13 +36281,13 @@ class ViewRef extends ChangeDetectorRef {
|
|
|
36290
36281
|
*
|
|
36291
36282
|
* This is the inner `TemplateRef`:
|
|
36292
36283
|
*
|
|
36293
|
-
* ```
|
|
36284
|
+
* ```html
|
|
36294
36285
|
* <li>{{item}}</li>
|
|
36295
36286
|
* ```
|
|
36296
36287
|
*
|
|
36297
36288
|
* The outer and inner `TemplateRef` instances are assembled into views as follows:
|
|
36298
36289
|
*
|
|
36299
|
-
* ```
|
|
36290
|
+
* ```html
|
|
36300
36291
|
* <!-- ViewRef: outer-0 -->
|
|
36301
36292
|
* Count: 2
|
|
36302
36293
|
* <ul>
|
|
@@ -38023,6 +38014,7 @@ const REACTIVE_NODE = {
|
|
|
38023
38014
|
liveConsumerIndexOfThis: undefined,
|
|
38024
38015
|
consumerAllowSignalWrites: false,
|
|
38025
38016
|
consumerIsAlwaysLive: false,
|
|
38017
|
+
kind: 'unknown',
|
|
38026
38018
|
producerMustRecompute: () => false,
|
|
38027
38019
|
producerRecomputeValue: () => { },
|
|
38028
38020
|
consumerMarkedDirty: () => { },
|
|
@@ -38339,6 +38331,7 @@ const COMPUTED_NODE = /* @__PURE__ */ (() => {
|
|
|
38339
38331
|
dirty: true,
|
|
38340
38332
|
error: null,
|
|
38341
38333
|
equal: defaultEquals,
|
|
38334
|
+
kind: 'computed',
|
|
38342
38335
|
producerMustRecompute(node) {
|
|
38343
38336
|
// Force a recomputation if there's no current value, or if the current value is in the
|
|
38344
38337
|
// process of being calculated (which should throw an error).
|
|
@@ -38444,6 +38437,7 @@ const SIGNAL_NODE = /* @__PURE__ */ (() => {
|
|
|
38444
38437
|
...REACTIVE_NODE,
|
|
38445
38438
|
equal: defaultEquals,
|
|
38446
38439
|
value: undefined,
|
|
38440
|
+
kind: 'signal',
|
|
38447
38441
|
};
|
|
38448
38442
|
})();
|
|
38449
38443
|
function signalValueChanged(node) {
|
|
@@ -39799,7 +39793,7 @@ function verifySsrContentsIntegrity() {
|
|
|
39799
39793
|
* Intended to be used as a transform function of an input.
|
|
39800
39794
|
*
|
|
39801
39795
|
* @usageNotes
|
|
39802
|
-
* ```
|
|
39796
|
+
* ```ts
|
|
39803
39797
|
* @Input({ transform: booleanAttribute }) status!: boolean;
|
|
39804
39798
|
* ```
|
|
39805
39799
|
* @param value Value to be transformed.
|
|
@@ -39816,7 +39810,7 @@ function booleanAttribute(value) {
|
|
|
39816
39810
|
* @param fallbackValue Value to use if the provided value can't be parsed as a number.
|
|
39817
39811
|
*
|
|
39818
39812
|
* @usageNotes
|
|
39819
|
-
* ```
|
|
39813
|
+
* ```ts
|
|
39820
39814
|
* @Input({ transform: numberAttribute }) id!: number;
|
|
39821
39815
|
* ```
|
|
39822
39816
|
*
|
|
@@ -40392,7 +40386,7 @@ function effect(effectFn, options) {
|
|
|
40392
40386
|
'effect inside the component constructor.');
|
|
40393
40387
|
!options?.injector && assertInInjectionContext(effect);
|
|
40394
40388
|
if (ngDevMode && options?.allowSignalWrites !== undefined) {
|
|
40395
|
-
console.warn(`The 'allowSignalWrites' flag is deprecated
|
|
40389
|
+
console.warn(`The 'allowSignalWrites' flag is deprecated and no longer impacts effect() (writes are always allowed)`);
|
|
40396
40390
|
}
|
|
40397
40391
|
const injector = options?.injector ?? inject(Injector);
|
|
40398
40392
|
let destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
|
|
@@ -40439,6 +40433,7 @@ const BASE_EFFECT_NODE =
|
|
|
40439
40433
|
hasRun: false,
|
|
40440
40434
|
cleanupFns: undefined,
|
|
40441
40435
|
zone: null,
|
|
40436
|
+
kind: 'effect',
|
|
40442
40437
|
onDestroyFn: noop,
|
|
40443
40438
|
run() {
|
|
40444
40439
|
this.dirty = false;
|
|
@@ -40937,7 +40932,7 @@ function wrapEqualityFn(equal) {
|
|
|
40937
40932
|
* Note: the example uses standalone components, but the function can also be used for
|
|
40938
40933
|
* non-standalone components (declared in an NgModule) as well.
|
|
40939
40934
|
*
|
|
40940
|
-
* ```
|
|
40935
|
+
* ```angular-ts
|
|
40941
40936
|
* @Component({
|
|
40942
40937
|
* standalone: true,
|
|
40943
40938
|
* template: `Hello {{ name }}!`
|
|
@@ -41002,7 +40997,7 @@ function createComponent(component, options) {
|
|
|
41002
40997
|
* The example below demonstrates how to use the function and how the fields
|
|
41003
40998
|
* of the returned object map to the component metadata.
|
|
41004
40999
|
*
|
|
41005
|
-
* ```
|
|
41000
|
+
* ```angular-ts
|
|
41006
41001
|
* @Component({
|
|
41007
41002
|
* standalone: true,
|
|
41008
41003
|
* selector: 'foo-component',
|
|
@@ -41171,5 +41166,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
41171
41166
|
* Generated bundle index. Do not edit.
|
|
41172
41167
|
*/
|
|
41173
41168
|
|
|
41174
|
-
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, PendingTasks, Pipe, PlatformRef, Query, QueryList, REQUEST, REQUEST_CONTEXT, RESPONSE_INIT, Renderer2, RendererFactory2, RendererStyleFlags2, ResourceStatus, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation, ViewRef, afterNextRender, afterRender, afterRenderEffect, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, linkedSignal, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideAppInitializer, provideEnvironmentInitializer, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, providePlatformInitializer, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, resource, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderManager as ɵAfterRenderManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, MicrotaskEffectScheduler as ɵMicrotaskEffectScheduler, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PERFORMANCE_MARK_PREFIX as ɵPERFORMANCE_MARK_PREFIX, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasksInternal as ɵPendingTasks, PendingTasksInternal as ɵPendingTasksInternal, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, TracingAction as ɵTracingAction, TracingService as ɵTracingService, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, disableProfiling as ɵdisableProfiling, enableProfiling as ɵenableProfiling, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getClosestComponentName as ɵgetClosestComponentName, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, microtaskEffect as ɵmicrotaskEffect, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, publishExternalGlobalUtil as ɵpublishExternalGlobalUtil, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, startMeasuring as ɵstartMeasuring, stopMeasuring as ɵstopMeasuring, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, withIncrementalHydration as ɵwithIncrementalHydration, ɵɵCopyDefinitionFeature, ɵɵExternalStylesFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
|
|
41169
|
+
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, PendingTasks, Pipe, PlatformRef, Query, QueryList, REQUEST, REQUEST_CONTEXT, RESPONSE_INIT, Renderer2, RendererFactory2, RendererStyleFlags2, ResourceStatus, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation, ViewRef, afterNextRender, afterRender, afterRenderEffect, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, linkedSignal, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideAppInitializer, provideEnvironmentInitializer, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, providePlatformInitializer, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, resource, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderManager as ɵAfterRenderManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, MicrotaskEffectScheduler as ɵMicrotaskEffectScheduler, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PERFORMANCE_MARK_PREFIX as ɵPERFORMANCE_MARK_PREFIX, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasksInternal as ɵPendingTasks, PendingTasksInternal as ɵPendingTasksInternal, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, TracingAction as ɵTracingAction, TracingService as ɵTracingService, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, disableProfiling as ɵdisableProfiling, enableProfiling as ɵenableProfiling, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getClosestComponentName as ɵgetClosestComponentName, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, microtaskEffect as ɵmicrotaskEffect, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, publishExternalGlobalUtil as ɵpublishExternalGlobalUtil, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, startMeasuring as ɵstartMeasuring, stopMeasuring as ɵstopMeasuring, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, withIncrementalHydration as ɵwithIncrementalHydration, ɵɵCopyDefinitionFeature, ɵɵExternalStylesFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
|
|
41175
41170
|
//# sourceMappingURL=core.mjs.map
|