@angular/core 19.0.0-next.6 → 19.0.0-next.7

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 (32) hide show
  1. package/fesm2022/core.mjs +378 -130
  2. package/fesm2022/core.mjs.map +1 -1
  3. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  4. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  5. package/fesm2022/primitives/signals.mjs +1 -1
  6. package/fesm2022/primitives/signals.mjs.map +1 -1
  7. package/fesm2022/rxjs-interop.mjs +25 -4
  8. package/fesm2022/rxjs-interop.mjs.map +1 -1
  9. package/fesm2022/testing.mjs +12 -11
  10. package/fesm2022/testing.mjs.map +1 -1
  11. package/index.d.ts +166 -97
  12. package/package.json +1 -1
  13. package/primitives/event-dispatch/index.d.ts +1 -1
  14. package/primitives/signals/index.d.ts +1 -1
  15. package/rxjs-interop/index.d.ts +3 -1
  16. package/schematics/bundles/{checker-dcf9a14e.js → checker-637eee78.js} +22 -11
  17. package/schematics/bundles/{compiler_host-6026cdf8.js → compiler_host-1e62b899.js} +2 -2
  18. package/schematics/bundles/control-flow-migration.js +3 -3
  19. package/schematics/bundles/explicit-standalone-flag.js +3 -3
  20. package/schematics/bundles/imports-44987700.js +1 -1
  21. package/schematics/bundles/inject-migration.js +8 -28
  22. package/schematics/bundles/leading_space-6e7a8ec6.js +30 -0
  23. package/schematics/bundles/nodes-b12e919a.js +1 -1
  24. package/schematics/bundles/pending-tasks.js +103 -0
  25. package/schematics/bundles/{program-4dc8c0fa.js → program-893e3fe7.js} +1810 -1476
  26. package/schematics/bundles/project_tsconfig_paths-6c9cde78.js +1 -1
  27. package/schematics/bundles/route-lazy-loading.js +3 -3
  28. package/schematics/bundles/signal-input-migration.js +516 -283
  29. package/schematics/bundles/standalone-migration.js +9 -9
  30. package/schematics/migrations.json +5 -0
  31. package/schematics/ng-generate/signal-input-migration/schema.json +5 -0
  32. package/testing/index.d.ts +3 -1
package/fesm2022/core.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v19.0.0-next.6
2
+ * @license Angular v19.0.0-next.7
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';
7
+ import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1, isInNotificationPhase as isInNotificationPhase$1 } from '@angular/core/primitives/signals';
8
8
  import { BehaviorSubject, Subject, Subscription } from 'rxjs';
9
9
  import { map, first } from 'rxjs/operators';
10
10
  import { Attribute as Attribute$1, isEarlyEventType, getActionCache, EventContract, EventContractContainer, EventDispatcher, registerDispatcher, getAppScopedQueuedEventInfos, clearAppScopedEarlyEventContract, isCaptureEventType } from '@angular/core/primitives/event-dispatch';
@@ -3805,7 +3805,8 @@ const ID = 19;
3805
3805
  const EMBEDDED_VIEW_INJECTOR = 20;
3806
3806
  const ON_DESTROY_HOOKS = 21;
3807
3807
  const EFFECTS_TO_SCHEDULE = 22;
3808
- const REACTIVE_TEMPLATE_CONSUMER = 23;
3808
+ const EFFECTS = 23;
3809
+ const REACTIVE_TEMPLATE_CONSUMER = 24;
3809
3810
  /**
3810
3811
  * Size of LView's header. Necessary to adjust for it when setting slots.
3811
3812
  *
@@ -4599,7 +4600,9 @@ function isRefreshingViews() {
4599
4600
  return _isRefreshingViews;
4600
4601
  }
4601
4602
  function setIsRefreshingViews(mode) {
4603
+ const prev = _isRefreshingViews;
4602
4604
  _isRefreshingViews = mode;
4605
+ return prev;
4603
4606
  }
4604
4607
  // top level variables should not be exported for performance reasons (PERF_NOTES.md)
4605
4608
  function getBindingRoot() {
@@ -6520,7 +6523,7 @@ class Injector {
6520
6523
  * Copyright Google LLC All Rights Reserved.
6521
6524
  *
6522
6525
  * Use of this source code is governed by an MIT-style license that can be
6523
- * found in the LICENSE file at https://angular.io/license
6526
+ * found in the LICENSE file at https://angular.dev/license
6524
6527
  */
6525
6528
  /**
6526
6529
  * Creates a token that can be used to inject static attributes of the host node.
@@ -6697,7 +6700,7 @@ const SCHEDULE_IN_ROOT_ZONE = new InjectionToken(typeof ngDevMode === 'undefined
6697
6700
  /**
6698
6701
  * Internal implementation of the pending tasks service.
6699
6702
  */
6700
- class PendingTasks {
6703
+ class PendingTasksInternal {
6701
6704
  constructor() {
6702
6705
  this.taskId = 0;
6703
6706
  this.pendingTasks = new Set();
@@ -6728,13 +6731,13 @@ class PendingTasks {
6728
6731
  }
6729
6732
  /** @nocollapse */
6730
6733
  static { this.ɵprov = ɵɵdefineInjectable({
6731
- token: PendingTasks,
6734
+ token: PendingTasksInternal,
6732
6735
  providedIn: 'root',
6733
- factory: () => new PendingTasks(),
6736
+ factory: () => new PendingTasksInternal(),
6734
6737
  }); }
6735
6738
  }
6736
6739
  /**
6737
- * Experimental service that keeps track of pending tasks contributing to the stableness of Angular
6740
+ * Service that keeps track of pending tasks contributing to the stableness of Angular
6738
6741
  * application. While several existing Angular services (ex.: `HttpClient`) will internally manage
6739
6742
  * tasks influencing stability, this API gives control over stability to library and application
6740
6743
  * developers for specific cases not covered by Angular internals.
@@ -6746,22 +6749,18 @@ class PendingTasks {
6746
6749
  *
6747
6750
  * @usageNotes
6748
6751
  * ```typescript
6749
- * const pendingTasks = inject(ExperimentalPendingTasks);
6752
+ * const pendingTasks = inject(PendingTasks);
6750
6753
  * const taskCleanup = pendingTasks.add();
6751
6754
  * // do work that should block application's stability and then:
6752
6755
  * taskCleanup();
6753
6756
  * ```
6754
6757
  *
6755
- * This API is experimental. Neither the shape, nor the underlying behavior is stable and can change
6756
- * in patch versions. We will iterate on the exact API based on the feedback and our understanding
6757
- * of the problem and solution space.
6758
- *
6759
6758
  * @publicApi
6760
- * @experimental
6759
+ * @developerPreview
6761
6760
  */
6762
- class ExperimentalPendingTasks {
6761
+ class PendingTasks {
6763
6762
  constructor() {
6764
- this.internalPendingTasks = inject(PendingTasks);
6763
+ this.internalPendingTasks = inject(PendingTasksInternal);
6765
6764
  this.scheduler = inject(ChangeDetectionScheduler);
6766
6765
  }
6767
6766
  /**
@@ -6807,9 +6806,9 @@ class ExperimentalPendingTasks {
6807
6806
  }
6808
6807
  /** @nocollapse */
6809
6808
  static { this.ɵprov = ɵɵdefineInjectable({
6810
- token: ExperimentalPendingTasks,
6809
+ token: PendingTasks,
6811
6810
  providedIn: 'root',
6812
- factory: () => new ExperimentalPendingTasks(),
6811
+ factory: () => new PendingTasks(),
6813
6812
  }); }
6814
6813
  }
6815
6814
 
@@ -6823,7 +6822,7 @@ class EventEmitter_ extends Subject {
6823
6822
  // For backwards compatibility reasons, this cannot be required.
6824
6823
  if (isInInjectionContext()) {
6825
6824
  this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;
6826
- this.pendingTasks = inject(PendingTasks, { optional: true }) ?? undefined;
6825
+ this.pendingTasks = inject(PendingTasksInternal, { optional: true }) ?? undefined;
6827
6826
  }
6828
6827
  }
6829
6828
  emit(value) {
@@ -7746,7 +7745,7 @@ class QueryList {
7746
7745
  * Returns `Observable` of `QueryList` notifying the subscriber of changes.
7747
7746
  */
7748
7747
  get changes() {
7749
- return (this._changes ??= new EventEmitter());
7748
+ return (this._changes ??= new Subject());
7750
7749
  }
7751
7750
  /**
7752
7751
  * @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change
@@ -7851,7 +7850,7 @@ class QueryList {
7851
7850
  */
7852
7851
  notifyOnChanges() {
7853
7852
  if (this._changes !== undefined && (this._changesDetected || !this._emitDistinctChangesOnly))
7854
- this._changes.emit(this);
7853
+ this._changes.next(this);
7855
7854
  }
7856
7855
  /** @internal */
7857
7856
  onDirty(cb) {
@@ -11368,6 +11367,14 @@ function processCleanups(tView, lView) {
11368
11367
  destroyHooksFn();
11369
11368
  }
11370
11369
  }
11370
+ // Destroy effects registered to the view. Many of these will have been processed above.
11371
+ const effects = lView[EFFECTS];
11372
+ if (effects !== null) {
11373
+ lView[EFFECTS] = null;
11374
+ for (const effect of effects) {
11375
+ effect.destroy();
11376
+ }
11377
+ }
11371
11378
  }
11372
11379
  /** Calls onDestroy hooks for this view */
11373
11380
  function executeOnDestroys(tView, lView) {
@@ -13705,6 +13712,37 @@ function viewShouldHaveReactiveConsumer(tView) {
13705
13712
  return tView.type !== 2 /* TViewType.Embedded */;
13706
13713
  }
13707
13714
 
13715
+ function runEffectsInView(view) {
13716
+ if (view[EFFECTS] === null) {
13717
+ return;
13718
+ }
13719
+ // Since effects can make other effects dirty, we flush them in a loop until there are no more to
13720
+ // flush.
13721
+ let tryFlushEffects = true;
13722
+ while (tryFlushEffects) {
13723
+ let foundDirtyEffect = false;
13724
+ for (const effect of view[EFFECTS]) {
13725
+ if (!effect.dirty) {
13726
+ continue;
13727
+ }
13728
+ foundDirtyEffect = true;
13729
+ // `runEffectsInView` is called during change detection, and therefore runs
13730
+ // in the Angular zone if it's available.
13731
+ if (effect.zone === null || Zone.current === effect.zone) {
13732
+ effect.run();
13733
+ }
13734
+ else {
13735
+ effect.zone.run(() => effect.run());
13736
+ }
13737
+ }
13738
+ // Check if we need to continue flushing. If we didn't find any dirty effects, then there's
13739
+ // no need to loop back. Otherwise, check the view to see if it was marked for traversal
13740
+ // again. If so, there's a chance that one of the effects we ran caused another effect to
13741
+ // become dirty.
13742
+ tryFlushEffects = foundDirtyEffect && !!(view[FLAGS] & 8192 /* LViewFlags.HasChildViewsToRefresh */);
13743
+ }
13744
+ }
13745
+
13708
13746
  /**
13709
13747
  * The maximum number of times the change detection traversal will rerun before throwing an error.
13710
13748
  */
@@ -13731,9 +13769,6 @@ function detectChangesInternal(lView, notifyErrorHandler = true, mode = 0 /* Cha
13731
13769
  finally {
13732
13770
  if (!checkNoChangesMode) {
13733
13771
  rendererFactory.end?.();
13734
- // One final flush of the effects queue to catch any effects created in `ngAfterViewInit` or
13735
- // other post-order hooks.
13736
- environment.inlineEffectRunner?.flush();
13737
13772
  }
13738
13773
  }
13739
13774
  }
@@ -13797,7 +13832,6 @@ function refreshView(tView, lView, templateFn, context) {
13797
13832
  // since they were assigned. We do not want to execute lifecycle hooks in that mode.
13798
13833
  const isInCheckNoChangesPass = ngDevMode && isInCheckNoChangesMode();
13799
13834
  const isInExhaustiveCheckNoChangesPass = ngDevMode && isExhaustiveCheckNoChanges();
13800
- !isInCheckNoChangesPass && lView[ENVIRONMENT].inlineEffectRunner?.flush();
13801
13835
  // Start component reactive context
13802
13836
  // - We might already be in a reactive context if this is an embedded view of the host.
13803
13837
  // - We might be descending into a view that needs a consumer.
@@ -13858,6 +13892,7 @@ function refreshView(tView, lView, templateFn, context) {
13858
13892
  // `LView` but its declaration appears after the insertion component.
13859
13893
  markTransplantedViewsForRefresh(lView);
13860
13894
  }
13895
+ runEffectsInView(lView);
13861
13896
  detectChangesInEmbeddedViews(lView, 0 /* ChangeDetectionMode.Global */);
13862
13897
  // Content query results must be refreshed before content hooks are called.
13863
13898
  if (tView.contentQueries !== null) {
@@ -14049,6 +14084,7 @@ function detectChangesInView(lView, mode) {
14049
14084
  refreshView(tView, lView, tView.template, lView[CONTEXT]);
14050
14085
  }
14051
14086
  else if (flags & 8192 /* LViewFlags.HasChildViewsToRefresh */) {
14087
+ runEffectsInView(lView);
14052
14088
  detectChangesInEmbeddedViews(lView, 1 /* ChangeDetectionMode.Targeted */);
14053
14089
  const components = tView.components;
14054
14090
  if (components !== null) {
@@ -16754,8 +16790,6 @@ class ComponentFactory extends ComponentFactory$1 {
16754
16790
  const environment = {
16755
16791
  rendererFactory,
16756
16792
  sanitizer,
16757
- // We don't use inline effects (yet).
16758
- inlineEffectRunner: null,
16759
16793
  changeDetectionScheduler,
16760
16794
  };
16761
16795
  const hostRenderer = rendererFactory.createRenderer(null, this.componentDef);
@@ -16993,7 +17027,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
16993
17027
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
16994
17028
  if (rootSelectorOrNode) {
16995
17029
  // The placeholder will be replaced with the actual version at build time.
16996
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.0-next.6']);
17030
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.0-next.7']);
16997
17031
  }
16998
17032
  else {
16999
17033
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -18068,7 +18102,7 @@ function viewChildRequiredFn(locator, opts) {
18068
18102
  * }
18069
18103
  * ```
18070
18104
  *
18071
- * @developerPreview
18105
+ * @publicAPI
18072
18106
  * @initializerApiFunction
18073
18107
  */
18074
18108
  const viewChild = (() => {
@@ -18096,7 +18130,7 @@ const viewChild = (() => {
18096
18130
  * ```
18097
18131
  *
18098
18132
  * @initializerApiFunction
18099
- * @developerPreview
18133
+ * @publicAPI
18100
18134
  */
18101
18135
  function viewChildren(locator, opts) {
18102
18136
  ngDevMode && assertInInjectionContext(viewChildren);
@@ -18129,7 +18163,7 @@ function contentChildRequiredFn(locator, opts) {
18129
18163
  * ```
18130
18164
  *
18131
18165
  * @initializerApiFunction
18132
- * @developerPreview
18166
+ * @publicAPI
18133
18167
  */
18134
18168
  const contentChild = (() => {
18135
18169
  // Note: This may be considered a side-effect, but nothing will depend on
@@ -18156,7 +18190,7 @@ const contentChild = (() => {
18156
18190
  * ```
18157
18191
  *
18158
18192
  * @initializerApiFunction
18159
- * @developerPreview
18193
+ * @publicAPI
18160
18194
  */
18161
18195
  function contentChildren(locator, opts) {
18162
18196
  return createMultiResultQuerySignalFn();
@@ -19513,7 +19547,7 @@ var DeferBlockBehavior;
19513
19547
  * Copyright Google LLC All Rights Reserved.
19514
19548
  *
19515
19549
  * Use of this source code is governed by an MIT-style license that can be
19516
- * found in the LICENSE file at https://angular.io/license
19550
+ * found in the LICENSE file at https://angular.dev/license
19517
19551
  */
19518
19552
  /**
19519
19553
  * Registers a cleanup function associated with a prefetching trigger
@@ -19925,7 +19959,7 @@ function isTDeferBlockDetails(value) {
19925
19959
  * Copyright Google LLC All Rights Reserved.
19926
19960
  *
19927
19961
  * Use of this source code is governed by an MIT-style license that can be
19928
- * found in the LICENSE file at https://angular.io/license
19962
+ * found in the LICENSE file at https://angular.dev/license
19929
19963
  */
19930
19964
  /** Configuration object used to register passive and capturing events. */
19931
19965
  const eventListenerOptions = {
@@ -21066,7 +21100,7 @@ function triggerResourceLoading(tDetails, lView, tNode) {
21066
21100
  }
21067
21101
  }
21068
21102
  // Indicate that an application is not stable and has a pending task.
21069
- const pendingTasks = injector.get(PendingTasks);
21103
+ const pendingTasks = injector.get(PendingTasksInternal);
21070
21104
  const taskId = pendingTasks.add();
21071
21105
  // The `dependenciesFn` might be `null` when all dependencies within
21072
21106
  // a given defer block were eagerly referenced elsewhere in a file,
@@ -23655,7 +23689,7 @@ function ɵɵclassMapInterpolateV(values) {
23655
23689
  * Copyright Google LLC All Rights Reserved.
23656
23690
  *
23657
23691
  * Use of this source code is governed by an MIT-style license that can be
23658
- * found in the LICENSE file at https://angular.io/license
23692
+ * found in the LICENSE file at https://angular.dev/license
23659
23693
  */
23660
23694
  /**
23661
23695
  * Instruction that returns the component instance in which the current instruction is executing.
@@ -28525,7 +28559,7 @@ function ɵɵtextInterpolateV(values) {
28525
28559
  * Copyright Google LLC All Rights Reserved.
28526
28560
  *
28527
28561
  * Use of this source code is governed by an MIT-style license that can be
28528
- * found in the LICENSE file at https://angular.io/license
28562
+ * found in the LICENSE file at https://angular.dev/license
28529
28563
  */
28530
28564
  /**
28531
28565
  * Update a two-way bound property on a selected element.
@@ -28589,7 +28623,7 @@ function ɵɵtwoWayListener(eventName, listenerFn) {
28589
28623
  * Copyright Google LLC All Rights Reserved.
28590
28624
  *
28591
28625
  * Use of this source code is governed by an MIT-style license that can be
28592
- * found in the LICENSE file at https://angular.io/license
28626
+ * found in the LICENSE file at https://angular.dev/license
28593
28627
  */
28594
28628
  /** Object that indicates the value of a `@let` declaration that hasn't been initialized yet. */
28595
28629
  const UNINITIALIZED_LET = {};
@@ -31100,7 +31134,7 @@ class Version {
31100
31134
  /**
31101
31135
  * @publicApi
31102
31136
  */
31103
- const VERSION = new Version('19.0.0-next.6');
31137
+ const VERSION = new Version('19.0.0-next.7');
31104
31138
 
31105
31139
  /*
31106
31140
  * This file exists to support compilation of @angular/core in Ivy mode.
@@ -32478,6 +32512,79 @@ class ApplicationInitStatus {
32478
32512
  args: [{ providedIn: 'root' }]
32479
32513
  }], () => [], null); })();
32480
32514
 
32515
+ /**
32516
+ * A scheduler which manages the execution of effects.
32517
+ */
32518
+ class EffectScheduler {
32519
+ /** @nocollapse */
32520
+ static { this.ɵprov = ɵɵdefineInjectable({
32521
+ token: EffectScheduler,
32522
+ providedIn: 'root',
32523
+ factory: () => new ZoneAwareEffectScheduler(),
32524
+ }); }
32525
+ }
32526
+ /**
32527
+ * A wrapper around `ZoneAwareQueueingScheduler` that schedules flushing via the microtask queue
32528
+ * when.
32529
+ */
32530
+ class ZoneAwareEffectScheduler {
32531
+ constructor() {
32532
+ this.queuedEffectCount = 0;
32533
+ this.queues = new Map();
32534
+ this.pendingTasks = inject(PendingTasksInternal);
32535
+ this.taskId = null;
32536
+ }
32537
+ schedule(handle) {
32538
+ this.enqueue(handle);
32539
+ if (this.taskId === null) {
32540
+ this.taskId = this.pendingTasks.add();
32541
+ }
32542
+ }
32543
+ enqueue(handle) {
32544
+ const zone = handle.zone;
32545
+ if (!this.queues.has(zone)) {
32546
+ this.queues.set(zone, new Set());
32547
+ }
32548
+ const queue = this.queues.get(zone);
32549
+ if (queue.has(handle)) {
32550
+ return;
32551
+ }
32552
+ this.queuedEffectCount++;
32553
+ queue.add(handle);
32554
+ }
32555
+ /**
32556
+ * Run all scheduled effects.
32557
+ *
32558
+ * Execution order of effects within the same zone is guaranteed to be FIFO, but there is no
32559
+ * ordering guarantee between effects scheduled in different zones.
32560
+ */
32561
+ flush() {
32562
+ while (this.queuedEffectCount > 0) {
32563
+ for (const [zone, queue] of this.queues) {
32564
+ // `zone` here must be defined.
32565
+ if (zone === null) {
32566
+ this.flushQueue(queue);
32567
+ }
32568
+ else {
32569
+ zone.run(() => this.flushQueue(queue));
32570
+ }
32571
+ }
32572
+ }
32573
+ if (this.taskId !== null) {
32574
+ this.pendingTasks.remove(this.taskId);
32575
+ this.taskId = null;
32576
+ }
32577
+ }
32578
+ flushQueue(queue) {
32579
+ for (const handle of queue) {
32580
+ queue.delete(handle);
32581
+ this.queuedEffectCount--;
32582
+ // TODO: what happens if this throws an error?
32583
+ handle.run();
32584
+ }
32585
+ }
32586
+ }
32587
+
32481
32588
  /**
32482
32589
  * A DI token that provides a set of callbacks to
32483
32590
  * be called for every component that is bootstrapped.
@@ -32648,6 +32755,7 @@ class ApplicationRef {
32648
32755
  this.internalErrorHandler = inject(INTERNAL_APPLICATION_ERROR_HANDLER);
32649
32756
  this.afterRenderManager = inject(AfterRenderManager);
32650
32757
  this.zonelessEnabled = inject(ZONELESS_ENABLED);
32758
+ this.rootEffectScheduler = inject(EffectScheduler);
32651
32759
  /**
32652
32760
  * Current dirty state of the application across a number of dimensions (views, afterRender hooks,
32653
32761
  * etc).
@@ -32680,7 +32788,7 @@ class ApplicationRef {
32680
32788
  /**
32681
32789
  * Returns an Observable that indicates when the application is stable or unstable.
32682
32790
  */
32683
- this.isStable = inject(PendingTasks).hasPendingTasks.pipe(map((pending) => !pending));
32791
+ this.isStable = inject(PendingTasksInternal).hasPendingTasks.pipe(map((pending) => !pending));
32684
32792
  this._injector = inject(EnvironmentInjector);
32685
32793
  }
32686
32794
  /** @internal */
@@ -32868,6 +32976,11 @@ class ApplicationRef {
32868
32976
  // If we happened to loop, deferred dirtiness can be processed as active dirtiness again.
32869
32977
  this.dirtyFlags |= this.deferredDirtyFlags;
32870
32978
  this.deferredDirtyFlags = 0 /* ApplicationRefDirtyFlags.None */;
32979
+ // First, process any dirty root effects.
32980
+ if (this.dirtyFlags & 16 /* ApplicationRefDirtyFlags.RootEffects */) {
32981
+ this.dirtyFlags &= ~16 /* ApplicationRefDirtyFlags.RootEffects */;
32982
+ this.rootEffectScheduler.flush();
32983
+ }
32871
32984
  // First check dirty views, if there are any.
32872
32985
  if (this.dirtyFlags & 7 /* ApplicationRefDirtyFlags.ViewTreeAny */) {
32873
32986
  // Change detection on views starts in targeted mode (only check components if they're
@@ -32888,8 +33001,10 @@ class ApplicationRef {
32888
33001
  this.dirtyFlags &= ~4 /* ApplicationRefDirtyFlags.ViewTreeCheck */;
32889
33002
  // Check if any views are still dirty after checking and we need to loop back.
32890
33003
  this.syncDirtyFlagsWithViews();
32891
- if (this.dirtyFlags & 7 /* ApplicationRefDirtyFlags.ViewTreeAny */) {
32892
- // If any views are still dirty after checking, loop back before running render hooks.
33004
+ if (this.dirtyFlags &
33005
+ (7 /* ApplicationRefDirtyFlags.ViewTreeAny */ | 16 /* ApplicationRefDirtyFlags.RootEffects */)) {
33006
+ // If any views or effects are still dirty after checking, loop back before running render
33007
+ // hooks.
32893
33008
  return;
32894
33009
  }
32895
33010
  }
@@ -33349,7 +33464,7 @@ class ZoneStablePendingTask {
33349
33464
  this.subscription = new Subscription();
33350
33465
  this.initialized = false;
33351
33466
  this.zone = inject(NgZone);
33352
- this.pendingTasks = inject(PendingTasks);
33467
+ this.pendingTasks = inject(PendingTasksInternal);
33353
33468
  }
33354
33469
  initialize() {
33355
33470
  if (this.initialized) {
@@ -33411,7 +33526,7 @@ function trackMicrotaskNotificationForDebugging() {
33411
33526
  class ChangeDetectionSchedulerImpl {
33412
33527
  constructor() {
33413
33528
  this.appRef = inject(ApplicationRef);
33414
- this.taskService = inject(PendingTasks);
33529
+ this.taskService = inject(PendingTasksInternal);
33415
33530
  this.ngZone = inject(NgZone);
33416
33531
  this.zonelessEnabled = inject(ZONELESS_ENABLED);
33417
33532
  this.disableScheduling = inject(ZONELESS_SCHEDULER_DISABLED, { optional: true }) ?? false;
@@ -33494,6 +33609,10 @@ class ChangeDetectionSchedulerImpl {
33494
33609
  force = true;
33495
33610
  break;
33496
33611
  }
33612
+ case 13 /* NotificationSource.RootEffect */: {
33613
+ this.appRef.dirtyFlags |= 16 /* ApplicationRefDirtyFlags.RootEffects */;
33614
+ break;
33615
+ }
33497
33616
  case 12 /* NotificationSource.PendingTaskRemoved */: {
33498
33617
  // Removing a pending task via the public API forces a scheduled tick, ensuring that
33499
33618
  // stability is async and delayed until there was at least an opportunity to run
@@ -38246,99 +38365,54 @@ function untracked(nonReactiveReadsFn) {
38246
38365
  }
38247
38366
  }
38248
38367
 
38368
+ class ViewContext {
38369
+ constructor(view, node) {
38370
+ this.view = view;
38371
+ this.node = node;
38372
+ }
38373
+ /**
38374
+ * @internal
38375
+ * @nocollapse
38376
+ */
38377
+ static { this.__NG_ELEMENT_ID__ = injectViewContext; }
38378
+ }
38379
+ function injectViewContext() {
38380
+ return new ViewContext(getLView(), getCurrentTNode());
38381
+ }
38382
+
38249
38383
  /**
38250
- * Not public API, which guarantees `EffectScheduler` only ever comes from the application root
38251
- * injector.
38252
- */
38253
- const APP_EFFECT_SCHEDULER = new InjectionToken('', {
38254
- providedIn: 'root',
38255
- factory: () => inject(EffectScheduler),
38256
- });
38257
- /**
38258
- * A scheduler which manages the execution of effects.
38384
+ * Controls whether effects use the legacy `microtaskEffect` by default.
38259
38385
  */
38260
- class EffectScheduler {
38386
+ const USE_MICROTASK_EFFECT_BY_DEFAULT = false;
38387
+
38388
+ class MicrotaskEffectScheduler extends ZoneAwareEffectScheduler {
38389
+ schedule(effect) {
38390
+ // Check whether there are any pending effects _before_ queueing in the base class.
38391
+ const needsScheduling = this.taskId === null;
38392
+ super.schedule(effect);
38393
+ if (needsScheduling) {
38394
+ queueMicrotask(() => this.flush());
38395
+ }
38396
+ }
38261
38397
  /** @nocollapse */
38262
38398
  static { this.ɵprov = ɵɵdefineInjectable({
38263
- token: EffectScheduler,
38399
+ token: MicrotaskEffectScheduler,
38264
38400
  providedIn: 'root',
38265
- factory: () => new ZoneAwareEffectScheduler(),
38401
+ factory: () => new MicrotaskEffectScheduler(),
38266
38402
  }); }
38267
38403
  }
38268
- /**
38269
- * A wrapper around `ZoneAwareQueueingScheduler` that schedules flushing via the microtask queue
38270
- * when.
38271
- */
38272
- class ZoneAwareEffectScheduler {
38273
- constructor() {
38274
- this.queuedEffectCount = 0;
38275
- this.queues = new Map();
38276
- this.pendingTasks = inject(PendingTasks);
38277
- this.taskId = null;
38278
- }
38279
- scheduleEffect(handle) {
38280
- this.enqueue(handle);
38281
- if (this.taskId === null) {
38282
- const taskId = (this.taskId = this.pendingTasks.add());
38283
- queueMicrotask(() => {
38284
- this.flush();
38285
- this.pendingTasks.remove(taskId);
38286
- this.taskId = null;
38287
- });
38288
- }
38289
- }
38290
- enqueue(handle) {
38291
- const zone = handle.creationZone;
38292
- if (!this.queues.has(zone)) {
38293
- this.queues.set(zone, new Set());
38294
- }
38295
- const queue = this.queues.get(zone);
38296
- if (queue.has(handle)) {
38297
- return;
38298
- }
38299
- this.queuedEffectCount++;
38300
- queue.add(handle);
38301
- }
38302
- /**
38303
- * Run all scheduled effects.
38304
- *
38305
- * Execution order of effects within the same zone is guaranteed to be FIFO, but there is no
38306
- * ordering guarantee between effects scheduled in different zones.
38307
- */
38308
- flush() {
38309
- while (this.queuedEffectCount > 0) {
38310
- for (const [zone, queue] of this.queues) {
38311
- // `zone` here must be defined.
38312
- if (zone === null) {
38313
- this.flushQueue(queue);
38314
- }
38315
- else {
38316
- zone.run(() => this.flushQueue(queue));
38317
- }
38318
- }
38319
- }
38320
- }
38321
- flushQueue(queue) {
38322
- for (const handle of queue) {
38323
- queue.delete(handle);
38324
- this.queuedEffectCount--;
38325
- // TODO: what happens if this throws an error?
38326
- handle.run();
38327
- }
38328
- }
38329
- }
38330
38404
  /**
38331
38405
  * Core reactive node for an Angular effect.
38332
38406
  *
38333
38407
  * `EffectHandle` combines the reactive graph's `Watch` base node for effects with the framework's
38334
- * scheduling abstraction (`EffectScheduler`) as well as automatic cleanup via `DestroyRef` if
38335
- * available/requested.
38408
+ * scheduling abstraction (`MicrotaskEffectScheduler`) as well as automatic cleanup via `DestroyRef`
38409
+ * if available/requested.
38336
38410
  */
38337
38411
  class EffectHandle {
38338
- constructor(scheduler, effectFn, creationZone, destroyRef, injector, allowSignalWrites) {
38412
+ constructor(scheduler, effectFn, zone, destroyRef, injector, allowSignalWrites) {
38339
38413
  this.scheduler = scheduler;
38340
38414
  this.effectFn = effectFn;
38341
- this.creationZone = creationZone;
38415
+ this.zone = zone;
38342
38416
  this.injector = injector;
38343
38417
  this.watcher = createWatch$1((onCleanup) => this.runEffect(onCleanup), () => this.schedule(), allowSignalWrites);
38344
38418
  this.unregisterOnDestroy = destroyRef?.onDestroy(() => this.destroy());
@@ -38358,7 +38432,7 @@ class EffectHandle {
38358
38432
  this.watcher.run();
38359
38433
  }
38360
38434
  schedule() {
38361
- this.scheduler.scheduleEffect(this);
38435
+ this.scheduler.schedule(this);
38362
38436
  }
38363
38437
  destroy() {
38364
38438
  this.watcher.destroy();
@@ -38367,20 +38441,20 @@ class EffectHandle {
38367
38441
  // retain a reference to it. Attempting to execute it will be a no-op.
38368
38442
  }
38369
38443
  }
38444
+ // Just used for the name for the debug error below.
38445
+ function effect$1() { }
38370
38446
  /**
38371
38447
  * Create a global `Effect` for the given reactive function.
38372
- *
38373
- * @developerPreview
38374
38448
  */
38375
- function effect(effectFn, options) {
38449
+ function microtaskEffect(effectFn, options) {
38376
38450
  performanceMarkFeature('NgSignals');
38377
38451
  ngDevMode &&
38378
- assertNotInReactiveContext(effect, 'Call `effect` outside of a reactive context. For example, schedule the ' +
38452
+ assertNotInReactiveContext(effect$1, 'Call `effect` outside of a reactive context. For example, schedule the ' +
38379
38453
  'effect inside the component constructor.');
38380
- !options?.injector && assertInInjectionContext(effect);
38454
+ !options?.injector && assertInInjectionContext(effect$1);
38381
38455
  const injector = options?.injector ?? inject(Injector);
38382
38456
  const destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
38383
- const handle = new EffectHandle(injector.get(APP_EFFECT_SCHEDULER), effectFn, typeof Zone === 'undefined' ? null : Zone.current, destroyRef, injector, options?.allowSignalWrites ?? false);
38457
+ const handle = new EffectHandle(injector.get(MicrotaskEffectScheduler), effectFn, typeof Zone === 'undefined' ? null : Zone.current, destroyRef, injector, options?.allowSignalWrites ?? false);
38384
38458
  // Effects need to be marked dirty manually to trigger their initial run. The timing of this
38385
38459
  // marking matters, because the effects may read signals that track component inputs, which are
38386
38460
  // only available after those components have had their first update pass.
@@ -38403,6 +38477,180 @@ function effect(effectFn, options) {
38403
38477
  return handle;
38404
38478
  }
38405
38479
 
38480
+ let useMicrotaskEffectsByDefault = USE_MICROTASK_EFFECT_BY_DEFAULT;
38481
+ /**
38482
+ * Toggle the flag on whether to use microtask effects (for testing).
38483
+ */
38484
+ function setUseMicrotaskEffectsByDefault(value) {
38485
+ const prev = useMicrotaskEffectsByDefault;
38486
+ useMicrotaskEffectsByDefault = value;
38487
+ return prev;
38488
+ }
38489
+ class EffectRefImpl {
38490
+ constructor(node) {
38491
+ this[SIGNAL$1] = node;
38492
+ }
38493
+ destroy() {
38494
+ this[SIGNAL$1].destroy();
38495
+ }
38496
+ }
38497
+ /**
38498
+ * Registers an "effect" that will be scheduled & executed whenever the signals that it reads
38499
+ * changes.
38500
+ *
38501
+ * Angular has two different kinds of effect: component effects and root effects. Component effects
38502
+ * are created when `effect()` is called from a component, directive, or within a service of a
38503
+ * component/directive. Root effects are created when `effect()` is called from outside the
38504
+ * component tree, such as in a root service, or when the `forceRoot` option is provided.
38505
+ *
38506
+ * The two effect types differ in their timing. Component effects run as a component lifecycle
38507
+ * event during Angular's synchronization (change detection) process, and can safely read input
38508
+ * signals or create/destroy views that depend on component state. Root effects run as microtasks
38509
+ * and have no connection to the component tree or change detection.
38510
+ *
38511
+ * `effect()` must be run in injection context, unless the `injector` option is manually specified.
38512
+ *
38513
+ * @developerPreview
38514
+ */
38515
+ function effect(effectFn, options) {
38516
+ if (useMicrotaskEffectsByDefault) {
38517
+ if (ngDevMode && options?.forceRoot) {
38518
+ throw new Error(`Cannot use 'forceRoot' option with microtask effects on`);
38519
+ }
38520
+ return microtaskEffect(effectFn, options);
38521
+ }
38522
+ performanceMarkFeature('NgSignals');
38523
+ ngDevMode &&
38524
+ assertNotInReactiveContext(effect, 'Call `effect` outside of a reactive context. For example, schedule the ' +
38525
+ 'effect inside the component constructor.');
38526
+ !options?.injector && assertInInjectionContext(effect);
38527
+ if (ngDevMode && options?.allowSignalWrites !== undefined) {
38528
+ console.warn(`The 'allowSignalWrites' flag is deprecated & longer required for effect() (writes are allowed by default)`);
38529
+ }
38530
+ const injector = options?.injector ?? inject(Injector);
38531
+ let destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
38532
+ let node;
38533
+ const viewContext = injector.get(ViewContext, null, { optional: true });
38534
+ if (viewContext !== null && !options?.forceRoot) {
38535
+ // This effect was created in the context of a view, and will be associated with the view.
38536
+ node = createViewEffect(viewContext.view, effectFn);
38537
+ if (destroyRef instanceof NodeInjectorDestroyRef && destroyRef._lView === viewContext.view) {
38538
+ // The effect is being created in the same view as the `DestroyRef` references, so it will be
38539
+ // automatically destroyed without the need for an explicit `DestroyRef` registration.
38540
+ destroyRef = null;
38541
+ }
38542
+ }
38543
+ else {
38544
+ // This effect was created outside the context of a view, and will be scheduled independently.
38545
+ node = createRootEffect(effectFn, injector.get(EffectScheduler), injector.get(ChangeDetectionScheduler));
38546
+ }
38547
+ node.injector = injector;
38548
+ if (destroyRef !== null) {
38549
+ // If we need to register for cleanup, do that here.
38550
+ node.onDestroyFn = destroyRef.onDestroy(() => node.destroy());
38551
+ }
38552
+ return new EffectRefImpl(node);
38553
+ }
38554
+ /**
38555
+ * Not public API, which guarantees `EffectScheduler` only ever comes from the application root
38556
+ * injector.
38557
+ */
38558
+ const APP_EFFECT_SCHEDULER = new InjectionToken('', {
38559
+ providedIn: 'root',
38560
+ factory: () => inject(EffectScheduler),
38561
+ });
38562
+ const BASE_EFFECT_NODE =
38563
+ /* @__PURE__ */ (() => ({
38564
+ ...REACTIVE_NODE$1,
38565
+ consumerIsAlwaysLive: true,
38566
+ consumerAllowSignalWrites: true,
38567
+ dirty: true,
38568
+ hasRun: false,
38569
+ cleanupFns: undefined,
38570
+ zone: null,
38571
+ onDestroyFn: noop,
38572
+ run() {
38573
+ this.dirty = false;
38574
+ if (ngDevMode && isInNotificationPhase$1()) {
38575
+ throw new Error(`Schedulers cannot synchronously execute watches while scheduling.`);
38576
+ }
38577
+ if (this.hasRun && !consumerPollProducersForChange$1(this)) {
38578
+ return;
38579
+ }
38580
+ this.hasRun = true;
38581
+ const registerCleanupFn = (cleanupFn) => (this.cleanupFns ??= []).push(cleanupFn);
38582
+ const prevNode = consumerBeforeComputation$1(this);
38583
+ // We clear `setIsRefreshingViews` so that `markForCheck()` within the body of an effect will
38584
+ // cause CD to reach the component in question.
38585
+ const prevRefreshingViews = setIsRefreshingViews(false);
38586
+ try {
38587
+ this.maybeCleanup();
38588
+ this.fn(registerCleanupFn);
38589
+ }
38590
+ catch (err) {
38591
+ // We inject the error handler lazily, to prevent circular dependencies when an effect is
38592
+ // created inside of an ErrorHandler.
38593
+ this.injector.get(ErrorHandler, null, { optional: true })?.handleError(err);
38594
+ }
38595
+ finally {
38596
+ setIsRefreshingViews(prevRefreshingViews);
38597
+ consumerAfterComputation$1(this, prevNode);
38598
+ }
38599
+ },
38600
+ maybeCleanup() {
38601
+ while (this.cleanupFns?.length) {
38602
+ this.cleanupFns.pop()();
38603
+ }
38604
+ },
38605
+ }))();
38606
+ const ROOT_EFFECT_NODE =
38607
+ /* @__PURE__ */ (() => ({
38608
+ ...BASE_EFFECT_NODE,
38609
+ consumerMarkedDirty() {
38610
+ this.scheduler.schedule(this);
38611
+ this.notifier.notify(13 /* NotificationSource.RootEffect */);
38612
+ },
38613
+ destroy() {
38614
+ consumerDestroy$1(this);
38615
+ this.onDestroyFn();
38616
+ this.maybeCleanup();
38617
+ },
38618
+ }))();
38619
+ const VIEW_EFFECT_NODE =
38620
+ /* @__PURE__ */ (() => ({
38621
+ ...BASE_EFFECT_NODE,
38622
+ consumerMarkedDirty() {
38623
+ this.view[FLAGS] |= 8192 /* LViewFlags.HasChildViewsToRefresh */;
38624
+ markAncestorsForTraversal(this.view);
38625
+ },
38626
+ destroy() {
38627
+ consumerDestroy$1(this);
38628
+ this.onDestroyFn();
38629
+ this.maybeCleanup();
38630
+ this.view[EFFECTS]?.delete(this);
38631
+ },
38632
+ }))();
38633
+ function createViewEffect(view, fn) {
38634
+ const node = Object.create(VIEW_EFFECT_NODE);
38635
+ node.view = view;
38636
+ node.zone = typeof Zone !== 'undefined' ? Zone.current : null;
38637
+ node.fn = fn;
38638
+ view[EFFECTS] ??= new Set();
38639
+ view[EFFECTS].add(node);
38640
+ node.consumerMarkedDirty(node);
38641
+ return node;
38642
+ }
38643
+ function createRootEffect(fn, scheduler, notifier) {
38644
+ const node = Object.create(ROOT_EFFECT_NODE);
38645
+ node.fn = fn;
38646
+ node.scheduler = scheduler;
38647
+ node.notifier = notifier;
38648
+ node.zone = typeof Zone !== 'undefined' ? Zone.current : null;
38649
+ node.scheduler.schedule(node);
38650
+ node.notifier.notify(13 /* NotificationSource.RootEffect */);
38651
+ return node;
38652
+ }
38653
+
38406
38654
  const NOT_SET = Symbol('NOT_SET');
38407
38655
  const EMPTY_CLEANUP_SET = new Set();
38408
38656
  const AFTER_RENDER_PHASE_EFFECT_NODE = {
@@ -38738,5 +38986,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
38738
38986
  * Generated bundle index. Do not edit.
38739
38987
  */
38740
38988
 
38741
- 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, ExperimentalPendingTasks, 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, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as 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, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, 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, GLOBAL_EVENT_DELEGATION as ɵGLOBAL_EVENT_DELEGATION, 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, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, 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, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasks as ɵPendingTasks, 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, 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, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, 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, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, provideGlobalEventDelegation as ɵprovideGlobalEventDelegation, 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, 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, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵ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, ɵɵ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 };
38989
+ 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, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as 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, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, 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, GLOBAL_EVENT_DELEGATION as ɵGLOBAL_EVENT_DELEGATION, 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, 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, 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, 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, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, 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, provideGlobalEventDelegation as ɵprovideGlobalEventDelegation, 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, 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, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵ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, ɵɵ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 };
38742
38990
  //# sourceMappingURL=core.mjs.map