@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.
Files changed (34) hide show
  1. package/fesm2022/core.mjs +295 -300
  2. package/fesm2022/core.mjs.map +1 -1
  3. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  4. package/fesm2022/primitives/signals.mjs +4 -1
  5. package/fesm2022/primitives/signals.mjs.map +1 -1
  6. package/fesm2022/rxjs-interop.mjs +1 -1
  7. package/fesm2022/testing.mjs +8 -8
  8. package/fesm2022/testing.mjs.map +1 -1
  9. package/index.d.ts +150 -139
  10. package/package.json +1 -1
  11. package/primitives/event-dispatch/index.d.ts +1 -1
  12. package/primitives/signals/index.d.ts +10 -1
  13. package/rxjs-interop/index.d.ts +1 -1
  14. package/schematics/bundles/{checker-3cbc9cc1.js → checker-c58f97d2.js} +49 -50
  15. package/schematics/bundles/{combine_units-ab03aca8.js → combine_units-8b29b7f6.js} +3 -3
  16. package/schematics/bundles/{compiler_host-087c5caa.js → compiler_host-f5d588fe.js} +2 -2
  17. package/schematics/bundles/control-flow-migration.js +3 -3
  18. package/schematics/bundles/explicit-standalone-flag.js +5 -5
  19. package/schematics/bundles/{imports-4ac08251.js → imports-31a38653.js} +2 -2
  20. package/schematics/bundles/inject-migration.js +64 -43
  21. package/schematics/bundles/{leading_space-d190b83b.js → leading_space-6e7a8ec6.js} +1 -1
  22. package/schematics/bundles/{migrate_ts_type_references-efb52bf2.js → migrate_ts_type_references-a8676ec1.js} +9 -9
  23. package/schematics/bundles/{nodes-0e7d45ca.js → nodes-88c2157f.js} +2 -2
  24. package/schematics/bundles/output-migration.js +5 -5
  25. package/schematics/bundles/pending-tasks.js +5 -5
  26. package/schematics/bundles/{program-ed10d149.js → program-30e02255.js} +54 -30
  27. package/schematics/bundles/{project_tsconfig_paths-e9ccccbf.js → project_tsconfig_paths-6c9cde78.js} +1 -1
  28. package/schematics/bundles/provide-initializer.js +5 -5
  29. package/schematics/bundles/route-lazy-loading.js +4 -4
  30. package/schematics/bundles/signal-input-migration.js +8 -8
  31. package/schematics/bundles/signal-queries-migration.js +7 -7
  32. package/schematics/bundles/signals.js +7 -7
  33. package/schematics/bundles/standalone-migration.js +8 -8
  34. 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.0
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, first } from 'rxjs/operators';
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 is-helpful">
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
- * <code-example format="typescript" language="typescript" path="injection-token/src/main.ts"
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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 is-important">
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 is-critical">
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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.0']);
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
- * ```typescript
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
- * ```typescript
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
- let rendererFactory = null;
23438
- if (!this._injector.destroyed) {
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(rendererFactory);
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(rendererFactory) {
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
- rendererFactory?.begin?.();
23498
- rendererFactory?.end?.();
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
- if (shouldTriggerWhenOnClient(lView[INJECTOR], lDetails, tDetails)) {
23686
- // Only trigger the scheduled trigger on the browser
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
- const tDeferBlockDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
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 triggerDeferBlockResourceLoading(dehydratedBlockId, dehydratedBlockRegistry);
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 triggerDeferBlockResourceLoading(dehydratedBlockId, dehydratedBlockRegistry) {
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 "hydrate" triggers should be activated. Triggers are activated in the following cases:
23998
- * - on the server, when incremental hydration is enabled, to trigger the block and render the main content
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 shouldActivateHydrateTrigger(lView, tNode) {
24002
- const lDetails = getLDeferBlockDetails(lView, tNode);
24003
- const injector = lView[INJECTOR];
24004
- // TODO(incremental-hydration): ideally, this check should only happen once and then stored on
24005
- // LDeferBlockDetails as a flag. This would make subsequent lookups very cheap.
24006
- return (isIncrementalHydrationEnabled(injector) &&
24007
- ((typeof ngServerMode !== 'undefined' && ngServerMode) || lDetails[SSR_UNIQUE_ID] !== null));
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
- * Determines whether regular defer block triggers should be invoked based on client state
24013
- * and whether incremental hydration is enabled. Hydrate triggers are invoked elsewhere.
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 shouldTriggerWhenOnClient(injector, lDetails, tDetails) {
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
- return false;
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
- const isServerRendered = lDetails[SSR_BLOCK_STATE] && lDetails[SSR_BLOCK_STATE] === DeferBlockState.Complete;
24020
- const hasHydrateTriggers = tDetails.hydrateTriggers && tDetails.hydrateTriggers.size > 0;
24021
- if (hasHydrateTriggers && isServerRendered && isIncrementalHydrationEnabled(injector)) {
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
- shouldTriggerWhenOnClient(lView[INJECTOR], lDetails, tDetails)) {
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 (!shouldActivateHydrateTrigger(lView, tNode)) {
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 (shouldActivateHydrateTrigger(lView, tNode)) {
24325
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24326
- hydrateTriggers.set(7 /* DeferBlockTrigger.Never */, null);
24327
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24328
- // We are on the server and SSR for defer blocks is enabled.
24329
- triggerDeferBlock(lView, tNode);
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 (shouldActivateHydrateTrigger(lView, tNode)) {
24355
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24356
- hydrateTriggers.set(0 /* DeferBlockTrigger.Idle */, null);
24357
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24358
- // We are on the server and SSR for defer blocks is enabled.
24359
- triggerDeferBlock(lView, tNode);
24360
- }
24361
- else {
24362
- scheduleDelayedHydrating(onIdle, lView, tNode);
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
- const tView = lView[TVIEW];
24374
- const injector = lView[INJECTOR];
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
- if (!shouldTriggerDeferBlock(injector, tDetails) || tDetails.loadingTmplIndex === null) {
24363
+ const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
24364
+ if (tDetails.loadingTmplIndex === null) {
24381
24365
  renderPlaceholder(lView, tNode);
24382
24366
  }
24383
- if (shouldTriggerWhenOnClient(injector, lDetails, tDetails)) {
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 (shouldActivateHydrateTrigger(lView, tNode)) {
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 hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24412
- hydrateTriggers.set(1 /* DeferBlockTrigger.Immediate */, null);
24413
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24414
- triggerDeferBlock(lView, tNode);
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 (shouldActivateHydrateTrigger(lView, tNode)) {
24449
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24450
- hydrateTriggers.set(5 /* DeferBlockTrigger.Timer */, delay);
24451
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24452
- // We are on the server and SSR for defer blocks is enabled.
24453
- triggerDeferBlock(lView, tNode);
24454
- }
24455
- else {
24456
- scheduleDelayedHydrating(onTimer(delay), lView, tNode);
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
- const lDetails = getLDeferBlockDetails(lView, tNode);
24470
- const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
24459
+ if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
24460
+ return;
24471
24461
  renderPlaceholder(lView, tNode);
24472
- if (shouldTriggerWhenOnClient(lView[INJECTOR], lDetails, tDetails)) {
24473
- registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onHover, () => triggerDeferBlock(lView, tNode), 0 /* TriggerType.Regular */);
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 (shouldActivateHydrateTrigger(lView, tNode)) {
24501
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24502
- hydrateTriggers.set(4 /* DeferBlockTrigger.Hover */, null);
24503
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24504
- // We are on the server and SSR for defer blocks is enabled.
24505
- triggerDeferBlock(lView, tNode);
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
- const lDetails = getLDeferBlockDetails(lView, tNode);
24521
- const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
24511
+ if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
24512
+ return;
24522
24513
  renderPlaceholder(lView, tNode);
24523
- if (shouldTriggerWhenOnClient(lView[INJECTOR], lDetails, tDetails)) {
24524
- registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onInteraction, () => triggerDeferBlock(lView, tNode), 0 /* TriggerType.Regular */);
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 (shouldActivateHydrateTrigger(lView, tNode)) {
24552
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24553
- hydrateTriggers.set(3 /* DeferBlockTrigger.Interaction */, null);
24554
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24555
- // We are on the server and SSR for defer blocks is enabled.
24556
- triggerDeferBlock(lView, tNode);
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
- const lDetails = getLDeferBlockDetails(lView, tNode);
24572
- const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
24563
+ if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
24564
+ return;
24573
24565
  renderPlaceholder(lView, tNode);
24574
- if (shouldTriggerWhenOnClient(lView[INJECTOR], lDetails, tDetails)) {
24575
- registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onViewport, () => triggerDeferBlock(lView, tNode), 0 /* TriggerType.Regular */);
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 (shouldActivateHydrateTrigger(lView, tNode)) {
24603
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24604
- hydrateTriggers.set(2 /* DeferBlockTrigger.Viewport */, null);
24605
- const injector = lView[INJECTOR];
24606
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24607
- // We are on the server and SSR for defer blocks is enabled.
24608
- triggerDeferBlock(lView, tNode);
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 incremental.ts,
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 Core runtime environment to use when applying the HMR update.
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, environment, locals) {
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, environment, ...locals]);
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.0');
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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 is-helpful">
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * ```typescript
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
- * <code-example path="core/ts/change_detect/change-detection.ts"
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
- * <code-example path="core/ts/change_detect/change-detection.ts" region="detach"></code-example>
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
- * <code-example path="core/ts/change_detect/change-detection.ts" region="reattach"></code-example>
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
- * ```typescript
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
- * ```typescript
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 & longer required for effect() (writes are allowed by default)`);
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
- * ```typescript
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
- * ```typescript
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