@angular/core 19.0.0-next.5 → 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 (33) hide show
  1. package/fesm2022/core.mjs +434 -136
  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 +199 -94
  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/{compiler_host-ca7ba733.js → checker-637eee78.js} +322 -426
  17. package/schematics/bundles/compiler_host-1e62b899.js +320 -0
  18. package/schematics/bundles/control-flow-migration.js +18 -17
  19. package/schematics/bundles/explicit-standalone-flag.js +25 -18
  20. package/schematics/bundles/{imports-4ac08251.js → imports-44987700.js} +1 -1
  21. package/schematics/bundles/inject-migration.js +10 -29
  22. package/schematics/bundles/leading_space-6e7a8ec6.js +30 -0
  23. package/schematics/bundles/{nodes-0e7d45ca.js → nodes-b12e919a.js} +2 -2
  24. package/schematics/bundles/pending-tasks.js +103 -0
  25. package/schematics/bundles/program-893e3fe7.js +20819 -0
  26. package/schematics/bundles/{project_tsconfig_paths-e9ccccbf.js → project_tsconfig_paths-6c9cde78.js} +1 -1
  27. package/schematics/bundles/route-lazy-loading.js +4 -3
  28. package/schematics/bundles/signal-input-migration.js +32976 -0
  29. package/schematics/bundles/standalone-migration.js +47 -20481
  30. package/schematics/collection.json +6 -0
  31. package/schematics/migrations.json +5 -0
  32. package/schematics/ng-generate/signal-input-migration/schema.json +30 -0
  33. 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.5
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() {
@@ -5338,6 +5341,9 @@ function isTNodeShape(value) {
5338
5341
  typeof value.insertBeforeIndex === 'number' ||
5339
5342
  Array.isArray(value.insertBeforeIndex)));
5340
5343
  }
5344
+ function isLetDeclaration(tNode) {
5345
+ return !!(tNode.type & 128 /* TNodeType.LetDeclaration */);
5346
+ }
5341
5347
  /**
5342
5348
  * Returns `true` if the `TNode` has a directive which has `@Input()` for `class` binding.
5343
5349
  *
@@ -6517,7 +6523,7 @@ class Injector {
6517
6523
  * Copyright Google LLC All Rights Reserved.
6518
6524
  *
6519
6525
  * Use of this source code is governed by an MIT-style license that can be
6520
- * found in the LICENSE file at https://angular.io/license
6526
+ * found in the LICENSE file at https://angular.dev/license
6521
6527
  */
6522
6528
  /**
6523
6529
  * Creates a token that can be used to inject static attributes of the host node.
@@ -6694,7 +6700,7 @@ const SCHEDULE_IN_ROOT_ZONE = new InjectionToken(typeof ngDevMode === 'undefined
6694
6700
  /**
6695
6701
  * Internal implementation of the pending tasks service.
6696
6702
  */
6697
- class PendingTasks {
6703
+ class PendingTasksInternal {
6698
6704
  constructor() {
6699
6705
  this.taskId = 0;
6700
6706
  this.pendingTasks = new Set();
@@ -6725,13 +6731,13 @@ class PendingTasks {
6725
6731
  }
6726
6732
  /** @nocollapse */
6727
6733
  static { this.ɵprov = ɵɵdefineInjectable({
6728
- token: PendingTasks,
6734
+ token: PendingTasksInternal,
6729
6735
  providedIn: 'root',
6730
- factory: () => new PendingTasks(),
6736
+ factory: () => new PendingTasksInternal(),
6731
6737
  }); }
6732
6738
  }
6733
6739
  /**
6734
- * 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
6735
6741
  * application. While several existing Angular services (ex.: `HttpClient`) will internally manage
6736
6742
  * tasks influencing stability, this API gives control over stability to library and application
6737
6743
  * developers for specific cases not covered by Angular internals.
@@ -6743,22 +6749,18 @@ class PendingTasks {
6743
6749
  *
6744
6750
  * @usageNotes
6745
6751
  * ```typescript
6746
- * const pendingTasks = inject(ExperimentalPendingTasks);
6752
+ * const pendingTasks = inject(PendingTasks);
6747
6753
  * const taskCleanup = pendingTasks.add();
6748
6754
  * // do work that should block application's stability and then:
6749
6755
  * taskCleanup();
6750
6756
  * ```
6751
6757
  *
6752
- * This API is experimental. Neither the shape, nor the underlying behavior is stable and can change
6753
- * in patch versions. We will iterate on the exact API based on the feedback and our understanding
6754
- * of the problem and solution space.
6755
- *
6756
6758
  * @publicApi
6757
- * @experimental
6759
+ * @developerPreview
6758
6760
  */
6759
- class ExperimentalPendingTasks {
6761
+ class PendingTasks {
6760
6762
  constructor() {
6761
- this.internalPendingTasks = inject(PendingTasks);
6763
+ this.internalPendingTasks = inject(PendingTasksInternal);
6762
6764
  this.scheduler = inject(ChangeDetectionScheduler);
6763
6765
  }
6764
6766
  /**
@@ -6773,11 +6775,40 @@ class ExperimentalPendingTasks {
6773
6775
  this.internalPendingTasks.remove(taskId);
6774
6776
  };
6775
6777
  }
6778
+ /**
6779
+ * Runs an asynchronous function and blocks the application's stability until the function completes.
6780
+ *
6781
+ * ```
6782
+ * pendingTasks.run(async () => {
6783
+ * const userData = await fetch('/api/user');
6784
+ * this.userData.set(userData);
6785
+ * });
6786
+ * ```
6787
+ *
6788
+ * Application stability is at least delayed until the next tick after the `run` method resolves
6789
+ * so it is safe to make additional updates to application state that would require UI synchronization:
6790
+ *
6791
+ * ```
6792
+ * const userData = await pendingTasks.run(() => fetch('/api/user'));
6793
+ * this.userData.set(userData);
6794
+ * ```
6795
+ *
6796
+ * @param fn The asynchronous function to execute
6797
+ */
6798
+ async run(fn) {
6799
+ const removeTask = this.add();
6800
+ try {
6801
+ return await fn();
6802
+ }
6803
+ finally {
6804
+ removeTask();
6805
+ }
6806
+ }
6776
6807
  /** @nocollapse */
6777
6808
  static { this.ɵprov = ɵɵdefineInjectable({
6778
- token: ExperimentalPendingTasks,
6809
+ token: PendingTasks,
6779
6810
  providedIn: 'root',
6780
- factory: () => new ExperimentalPendingTasks(),
6811
+ factory: () => new PendingTasks(),
6781
6812
  }); }
6782
6813
  }
6783
6814
 
@@ -6791,7 +6822,7 @@ class EventEmitter_ extends Subject {
6791
6822
  // For backwards compatibility reasons, this cannot be required.
6792
6823
  if (isInInjectionContext()) {
6793
6824
  this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;
6794
- this.pendingTasks = inject(PendingTasks, { optional: true }) ?? undefined;
6825
+ this.pendingTasks = inject(PendingTasksInternal, { optional: true }) ?? undefined;
6795
6826
  }
6796
6827
  }
6797
6828
  emit(value) {
@@ -7452,7 +7483,7 @@ const INTERNAL_APPLICATION_ERROR_HANDLER = new InjectionToken(typeof ngDevMode =
7452
7483
  * <my-comp (valueChange)="processNewValue($event)" />
7453
7484
  * ```
7454
7485
  *
7455
- * @developerPreview
7486
+ * @publicAPI
7456
7487
  */
7457
7488
  class OutputEmitterRef {
7458
7489
  constructor() {
@@ -7553,9 +7584,8 @@ function getOutputDestroyRef(ref) {
7553
7584
  * this.nameChange.emit(newName);
7554
7585
  * }
7555
7586
  * ```
7556
- *
7557
- * @developerPreview
7558
7587
  * @initializerApiFunction {"showTypesInSignaturePreview": true}
7588
+ * @publicAPI
7559
7589
  */
7560
7590
  function output(opts) {
7561
7591
  ngDevMode && assertInInjectionContext(output);
@@ -7615,7 +7645,7 @@ function inputRequiredFunction(opts) {
7615
7645
  * <span>{{firstName()}}</span>
7616
7646
  * ```
7617
7647
  *
7618
- * @developerPreview
7648
+ * @publicAPI
7619
7649
  * @initializerApiFunction
7620
7650
  */
7621
7651
  const input = (() => {
@@ -7715,7 +7745,7 @@ class QueryList {
7715
7745
  * Returns `Observable` of `QueryList` notifying the subscriber of changes.
7716
7746
  */
7717
7747
  get changes() {
7718
- return (this._changes ??= new EventEmitter());
7748
+ return (this._changes ??= new Subject());
7719
7749
  }
7720
7750
  /**
7721
7751
  * @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change
@@ -7820,7 +7850,7 @@ class QueryList {
7820
7850
  */
7821
7851
  notifyOnChanges() {
7822
7852
  if (this._changes !== undefined && (this._changesDetected || !this._emitDistinctChangesOnly))
7823
- this._changes.emit(this);
7853
+ this._changes.next(this);
7824
7854
  }
7825
7855
  /** @internal */
7826
7856
  onDirty(cb) {
@@ -11337,6 +11367,14 @@ function processCleanups(tView, lView) {
11337
11367
  destroyHooksFn();
11338
11368
  }
11339
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
+ }
11340
11378
  }
11341
11379
  /** Calls onDestroy hooks for this view */
11342
11380
  function executeOnDestroys(tView, lView) {
@@ -13674,6 +13712,37 @@ function viewShouldHaveReactiveConsumer(tView) {
13674
13712
  return tView.type !== 2 /* TViewType.Embedded */;
13675
13713
  }
13676
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
+
13677
13746
  /**
13678
13747
  * The maximum number of times the change detection traversal will rerun before throwing an error.
13679
13748
  */
@@ -13700,9 +13769,6 @@ function detectChangesInternal(lView, notifyErrorHandler = true, mode = 0 /* Cha
13700
13769
  finally {
13701
13770
  if (!checkNoChangesMode) {
13702
13771
  rendererFactory.end?.();
13703
- // One final flush of the effects queue to catch any effects created in `ngAfterViewInit` or
13704
- // other post-order hooks.
13705
- environment.inlineEffectRunner?.flush();
13706
13772
  }
13707
13773
  }
13708
13774
  }
@@ -13766,7 +13832,6 @@ function refreshView(tView, lView, templateFn, context) {
13766
13832
  // since they were assigned. We do not want to execute lifecycle hooks in that mode.
13767
13833
  const isInCheckNoChangesPass = ngDevMode && isInCheckNoChangesMode();
13768
13834
  const isInExhaustiveCheckNoChangesPass = ngDevMode && isExhaustiveCheckNoChanges();
13769
- !isInCheckNoChangesPass && lView[ENVIRONMENT].inlineEffectRunner?.flush();
13770
13835
  // Start component reactive context
13771
13836
  // - We might already be in a reactive context if this is an embedded view of the host.
13772
13837
  // - We might be descending into a view that needs a consumer.
@@ -13827,6 +13892,7 @@ function refreshView(tView, lView, templateFn, context) {
13827
13892
  // `LView` but its declaration appears after the insertion component.
13828
13893
  markTransplantedViewsForRefresh(lView);
13829
13894
  }
13895
+ runEffectsInView(lView);
13830
13896
  detectChangesInEmbeddedViews(lView, 0 /* ChangeDetectionMode.Global */);
13831
13897
  // Content query results must be refreshed before content hooks are called.
13832
13898
  if (tView.contentQueries !== null) {
@@ -14018,6 +14084,7 @@ function detectChangesInView(lView, mode) {
14018
14084
  refreshView(tView, lView, tView.template, lView[CONTEXT]);
14019
14085
  }
14020
14086
  else if (flags & 8192 /* LViewFlags.HasChildViewsToRefresh */) {
14087
+ runEffectsInView(lView);
14021
14088
  detectChangesInEmbeddedViews(lView, 1 /* ChangeDetectionMode.Targeted */);
14022
14089
  const components = tView.components;
14023
14090
  if (components !== null) {
@@ -16723,8 +16790,6 @@ class ComponentFactory extends ComponentFactory$1 {
16723
16790
  const environment = {
16724
16791
  rendererFactory,
16725
16792
  sanitizer,
16726
- // We don't use inline effects (yet).
16727
- inlineEffectRunner: null,
16728
16793
  changeDetectionScheduler,
16729
16794
  };
16730
16795
  const hostRenderer = rendererFactory.createRenderer(null, this.componentDef);
@@ -16962,7 +17027,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
16962
17027
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
16963
17028
  if (rootSelectorOrNode) {
16964
17029
  // The placeholder will be replaced with the actual version at build time.
16965
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.0-next.5']);
17030
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.0-next.7']);
16966
17031
  }
16967
17032
  else {
16968
17033
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -18037,7 +18102,7 @@ function viewChildRequiredFn(locator, opts) {
18037
18102
  * }
18038
18103
  * ```
18039
18104
  *
18040
- * @developerPreview
18105
+ * @publicAPI
18041
18106
  * @initializerApiFunction
18042
18107
  */
18043
18108
  const viewChild = (() => {
@@ -18065,7 +18130,7 @@ const viewChild = (() => {
18065
18130
  * ```
18066
18131
  *
18067
18132
  * @initializerApiFunction
18068
- * @developerPreview
18133
+ * @publicAPI
18069
18134
  */
18070
18135
  function viewChildren(locator, opts) {
18071
18136
  ngDevMode && assertInInjectionContext(viewChildren);
@@ -18098,7 +18163,7 @@ function contentChildRequiredFn(locator, opts) {
18098
18163
  * ```
18099
18164
  *
18100
18165
  * @initializerApiFunction
18101
- * @developerPreview
18166
+ * @publicAPI
18102
18167
  */
18103
18168
  const contentChild = (() => {
18104
18169
  // Note: This may be considered a side-effect, but nothing will depend on
@@ -18125,7 +18190,7 @@ const contentChild = (() => {
18125
18190
  * ```
18126
18191
  *
18127
18192
  * @initializerApiFunction
18128
- * @developerPreview
18193
+ * @publicAPI
18129
18194
  */
18130
18195
  function contentChildren(locator, opts) {
18131
18196
  return createMultiResultQuerySignalFn();
@@ -18226,7 +18291,7 @@ function modelRequiredFunction() {
18226
18291
  * }
18227
18292
  * ```
18228
18293
  *
18229
- * @developerPreview
18294
+ * @publicAPI
18230
18295
  * @initializerApiFunction
18231
18296
  */
18232
18297
  const model = (() => {
@@ -19482,7 +19547,7 @@ var DeferBlockBehavior;
19482
19547
  * Copyright Google LLC All Rights Reserved.
19483
19548
  *
19484
19549
  * Use of this source code is governed by an MIT-style license that can be
19485
- * found in the LICENSE file at https://angular.io/license
19550
+ * found in the LICENSE file at https://angular.dev/license
19486
19551
  */
19487
19552
  /**
19488
19553
  * Registers a cleanup function associated with a prefetching trigger
@@ -19894,7 +19959,7 @@ function isTDeferBlockDetails(value) {
19894
19959
  * Copyright Google LLC All Rights Reserved.
19895
19960
  *
19896
19961
  * Use of this source code is governed by an MIT-style license that can be
19897
- * found in the LICENSE file at https://angular.io/license
19962
+ * found in the LICENSE file at https://angular.dev/license
19898
19963
  */
19899
19964
  /** Configuration object used to register passive and capturing events. */
19900
19965
  const eventListenerOptions = {
@@ -20739,6 +20804,15 @@ function ɵɵdeferPrefetchOnViewport(triggerIndex, walkUpTimes) {
20739
20804
  registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onViewport, () => triggerPrefetching(tDetails, lView, tNode), 1 /* TriggerType.Prefetch */);
20740
20805
  }
20741
20806
  }
20807
+ // TODO: implement these instructions.
20808
+ function ɵɵdeferHydrateWhen() { }
20809
+ function ɵɵdeferHydrateNever() { }
20810
+ function ɵɵdeferHydrateOnIdle() { }
20811
+ function ɵɵdeferHydrateOnImmediate() { }
20812
+ function ɵɵdeferHydrateOnTimer() { }
20813
+ function ɵɵdeferHydrateOnHover() { }
20814
+ function ɵɵdeferHydrateOnInteraction() { }
20815
+ function ɵɵdeferHydrateOnViewport() { }
20742
20816
  /********** Helper functions **********/
20743
20817
  /**
20744
20818
  * Schedules triggering of a defer block for `on idle` and `on timer` conditions.
@@ -21026,7 +21100,7 @@ function triggerResourceLoading(tDetails, lView, tNode) {
21026
21100
  }
21027
21101
  }
21028
21102
  // Indicate that an application is not stable and has a pending task.
21029
- const pendingTasks = injector.get(PendingTasks);
21103
+ const pendingTasks = injector.get(PendingTasksInternal);
21030
21104
  const taskId = pendingTasks.add();
21031
21105
  // The `dependenciesFn` might be `null` when all dependencies within
21032
21106
  // a given defer block were eagerly referenced elsewhere in a file,
@@ -23615,7 +23689,7 @@ function ɵɵclassMapInterpolateV(values) {
23615
23689
  * Copyright Google LLC All Rights Reserved.
23616
23690
  *
23617
23691
  * Use of this source code is governed by an MIT-style license that can be
23618
- * found in the LICENSE file at https://angular.io/license
23692
+ * found in the LICENSE file at https://angular.dev/license
23619
23693
  */
23620
23694
  /**
23621
23695
  * Instruction that returns the component instance in which the current instruction is executing.
@@ -28485,7 +28559,7 @@ function ɵɵtextInterpolateV(values) {
28485
28559
  * Copyright Google LLC All Rights Reserved.
28486
28560
  *
28487
28561
  * Use of this source code is governed by an MIT-style license that can be
28488
- * found in the LICENSE file at https://angular.io/license
28562
+ * found in the LICENSE file at https://angular.dev/license
28489
28563
  */
28490
28564
  /**
28491
28565
  * Update a two-way bound property on a selected element.
@@ -28549,7 +28623,7 @@ function ɵɵtwoWayListener(eventName, listenerFn) {
28549
28623
  * Copyright Google LLC All Rights Reserved.
28550
28624
  *
28551
28625
  * Use of this source code is governed by an MIT-style license that can be
28552
- * found in the LICENSE file at https://angular.io/license
28626
+ * found in the LICENSE file at https://angular.dev/license
28553
28627
  */
28554
28628
  /** Object that indicates the value of a `@let` declaration that hasn't been initialized yet. */
28555
28629
  const UNINITIALIZED_LET = {};
@@ -29836,6 +29910,14 @@ const angularCoreEnv = (() => ({
29836
29910
  'ɵɵdeferPrefetchOnHover': ɵɵdeferPrefetchOnHover,
29837
29911
  'ɵɵdeferPrefetchOnInteraction': ɵɵdeferPrefetchOnInteraction,
29838
29912
  'ɵɵdeferPrefetchOnViewport': ɵɵdeferPrefetchOnViewport,
29913
+ 'ɵɵdeferHydrateWhen': ɵɵdeferHydrateWhen,
29914
+ 'ɵɵdeferHydrateNever': ɵɵdeferHydrateNever,
29915
+ 'ɵɵdeferHydrateOnIdle': ɵɵdeferHydrateOnIdle,
29916
+ 'ɵɵdeferHydrateOnImmediate': ɵɵdeferHydrateOnImmediate,
29917
+ 'ɵɵdeferHydrateOnTimer': ɵɵdeferHydrateOnTimer,
29918
+ 'ɵɵdeferHydrateOnHover': ɵɵdeferHydrateOnHover,
29919
+ 'ɵɵdeferHydrateOnInteraction': ɵɵdeferHydrateOnInteraction,
29920
+ 'ɵɵdeferHydrateOnViewport': ɵɵdeferHydrateOnViewport,
29839
29921
  'ɵɵdeferEnableTimerScheduling': ɵɵdeferEnableTimerScheduling,
29840
29922
  'ɵɵrepeater': ɵɵrepeater,
29841
29923
  'ɵɵrepeaterCreate': ɵɵrepeaterCreate,
@@ -31052,7 +31134,7 @@ class Version {
31052
31134
  /**
31053
31135
  * @publicApi
31054
31136
  */
31055
- const VERSION = new Version('19.0.0-next.5');
31137
+ const VERSION = new Version('19.0.0-next.7');
31056
31138
 
31057
31139
  /*
31058
31140
  * This file exists to support compilation of @angular/core in Ivy mode.
@@ -32430,6 +32512,79 @@ class ApplicationInitStatus {
32430
32512
  args: [{ providedIn: 'root' }]
32431
32513
  }], () => [], null); })();
32432
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
+
32433
32588
  /**
32434
32589
  * A DI token that provides a set of callbacks to
32435
32590
  * be called for every component that is bootstrapped.
@@ -32600,6 +32755,7 @@ class ApplicationRef {
32600
32755
  this.internalErrorHandler = inject(INTERNAL_APPLICATION_ERROR_HANDLER);
32601
32756
  this.afterRenderManager = inject(AfterRenderManager);
32602
32757
  this.zonelessEnabled = inject(ZONELESS_ENABLED);
32758
+ this.rootEffectScheduler = inject(EffectScheduler);
32603
32759
  /**
32604
32760
  * Current dirty state of the application across a number of dimensions (views, afterRender hooks,
32605
32761
  * etc).
@@ -32632,7 +32788,7 @@ class ApplicationRef {
32632
32788
  /**
32633
32789
  * Returns an Observable that indicates when the application is stable or unstable.
32634
32790
  */
32635
- this.isStable = inject(PendingTasks).hasPendingTasks.pipe(map((pending) => !pending));
32791
+ this.isStable = inject(PendingTasksInternal).hasPendingTasks.pipe(map((pending) => !pending));
32636
32792
  this._injector = inject(EnvironmentInjector);
32637
32793
  }
32638
32794
  /** @internal */
@@ -32820,6 +32976,11 @@ class ApplicationRef {
32820
32976
  // If we happened to loop, deferred dirtiness can be processed as active dirtiness again.
32821
32977
  this.dirtyFlags |= this.deferredDirtyFlags;
32822
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
+ }
32823
32984
  // First check dirty views, if there are any.
32824
32985
  if (this.dirtyFlags & 7 /* ApplicationRefDirtyFlags.ViewTreeAny */) {
32825
32986
  // Change detection on views starts in targeted mode (only check components if they're
@@ -32840,8 +33001,10 @@ class ApplicationRef {
32840
33001
  this.dirtyFlags &= ~4 /* ApplicationRefDirtyFlags.ViewTreeCheck */;
32841
33002
  // Check if any views are still dirty after checking and we need to loop back.
32842
33003
  this.syncDirtyFlagsWithViews();
32843
- if (this.dirtyFlags & 7 /* ApplicationRefDirtyFlags.ViewTreeAny */) {
32844
- // 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.
32845
33008
  return;
32846
33009
  }
32847
33010
  }
@@ -33301,7 +33464,7 @@ class ZoneStablePendingTask {
33301
33464
  this.subscription = new Subscription();
33302
33465
  this.initialized = false;
33303
33466
  this.zone = inject(NgZone);
33304
- this.pendingTasks = inject(PendingTasks);
33467
+ this.pendingTasks = inject(PendingTasksInternal);
33305
33468
  }
33306
33469
  initialize() {
33307
33470
  if (this.initialized) {
@@ -33363,7 +33526,7 @@ function trackMicrotaskNotificationForDebugging() {
33363
33526
  class ChangeDetectionSchedulerImpl {
33364
33527
  constructor() {
33365
33528
  this.appRef = inject(ApplicationRef);
33366
- this.taskService = inject(PendingTasks);
33529
+ this.taskService = inject(PendingTasksInternal);
33367
33530
  this.ngZone = inject(NgZone);
33368
33531
  this.zonelessEnabled = inject(ZONELESS_ENABLED);
33369
33532
  this.disableScheduling = inject(ZONELESS_SCHEDULER_DISABLED, { optional: true }) ?? false;
@@ -33446,6 +33609,10 @@ class ChangeDetectionSchedulerImpl {
33446
33609
  force = true;
33447
33610
  break;
33448
33611
  }
33612
+ case 13 /* NotificationSource.RootEffect */: {
33613
+ this.appRef.dirtyFlags |= 16 /* ApplicationRefDirtyFlags.RootEffects */;
33614
+ break;
33615
+ }
33449
33616
  case 12 /* NotificationSource.PendingTaskRemoved */: {
33450
33617
  // Removing a pending task via the public API forces a scheduled tick, ensuring that
33451
33618
  // stability is async and delayed until there was at least an opportunity to run
@@ -37581,8 +37748,10 @@ function serializeLView(lView, context) {
37581
37748
  ngh[CONTAINERS] ??= {};
37582
37749
  ngh[CONTAINERS][noOffsetIndex] = serializeLContainer(lView[i], context);
37583
37750
  }
37584
- else if (Array.isArray(lView[i])) {
37751
+ else if (Array.isArray(lView[i]) && !isLetDeclaration(tNode)) {
37585
37752
  // This is a component, annotate the host node with an `ngh` attribute.
37753
+ // Note: Let declarations that return an array are also storing an array in the LView,
37754
+ // we need to exclude them.
37586
37755
  const targetNode = unwrapRNode(lView[i][HOST]);
37587
37756
  if (!targetNode.hasAttribute(SKIP_HYDRATION_ATTR_NAME)) {
37588
37757
  annotateHostElementForHydration(targetNode, lView[i], context);
@@ -38196,99 +38365,54 @@ function untracked(nonReactiveReadsFn) {
38196
38365
  }
38197
38366
  }
38198
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
+
38199
38383
  /**
38200
- * Not public API, which guarantees `EffectScheduler` only ever comes from the application root
38201
- * injector.
38202
- */
38203
- const APP_EFFECT_SCHEDULER = new InjectionToken('', {
38204
- providedIn: 'root',
38205
- factory: () => inject(EffectScheduler),
38206
- });
38207
- /**
38208
- * A scheduler which manages the execution of effects.
38384
+ * Controls whether effects use the legacy `microtaskEffect` by default.
38209
38385
  */
38210
- 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
+ }
38211
38397
  /** @nocollapse */
38212
38398
  static { this.ɵprov = ɵɵdefineInjectable({
38213
- token: EffectScheduler,
38399
+ token: MicrotaskEffectScheduler,
38214
38400
  providedIn: 'root',
38215
- factory: () => new ZoneAwareEffectScheduler(),
38401
+ factory: () => new MicrotaskEffectScheduler(),
38216
38402
  }); }
38217
38403
  }
38218
- /**
38219
- * A wrapper around `ZoneAwareQueueingScheduler` that schedules flushing via the microtask queue
38220
- * when.
38221
- */
38222
- class ZoneAwareEffectScheduler {
38223
- constructor() {
38224
- this.queuedEffectCount = 0;
38225
- this.queues = new Map();
38226
- this.pendingTasks = inject(PendingTasks);
38227
- this.taskId = null;
38228
- }
38229
- scheduleEffect(handle) {
38230
- this.enqueue(handle);
38231
- if (this.taskId === null) {
38232
- const taskId = (this.taskId = this.pendingTasks.add());
38233
- queueMicrotask(() => {
38234
- this.flush();
38235
- this.pendingTasks.remove(taskId);
38236
- this.taskId = null;
38237
- });
38238
- }
38239
- }
38240
- enqueue(handle) {
38241
- const zone = handle.creationZone;
38242
- if (!this.queues.has(zone)) {
38243
- this.queues.set(zone, new Set());
38244
- }
38245
- const queue = this.queues.get(zone);
38246
- if (queue.has(handle)) {
38247
- return;
38248
- }
38249
- this.queuedEffectCount++;
38250
- queue.add(handle);
38251
- }
38252
- /**
38253
- * Run all scheduled effects.
38254
- *
38255
- * Execution order of effects within the same zone is guaranteed to be FIFO, but there is no
38256
- * ordering guarantee between effects scheduled in different zones.
38257
- */
38258
- flush() {
38259
- while (this.queuedEffectCount > 0) {
38260
- for (const [zone, queue] of this.queues) {
38261
- // `zone` here must be defined.
38262
- if (zone === null) {
38263
- this.flushQueue(queue);
38264
- }
38265
- else {
38266
- zone.run(() => this.flushQueue(queue));
38267
- }
38268
- }
38269
- }
38270
- }
38271
- flushQueue(queue) {
38272
- for (const handle of queue) {
38273
- queue.delete(handle);
38274
- this.queuedEffectCount--;
38275
- // TODO: what happens if this throws an error?
38276
- handle.run();
38277
- }
38278
- }
38279
- }
38280
38404
  /**
38281
38405
  * Core reactive node for an Angular effect.
38282
38406
  *
38283
38407
  * `EffectHandle` combines the reactive graph's `Watch` base node for effects with the framework's
38284
- * scheduling abstraction (`EffectScheduler`) as well as automatic cleanup via `DestroyRef` if
38285
- * available/requested.
38408
+ * scheduling abstraction (`MicrotaskEffectScheduler`) as well as automatic cleanup via `DestroyRef`
38409
+ * if available/requested.
38286
38410
  */
38287
38411
  class EffectHandle {
38288
- constructor(scheduler, effectFn, creationZone, destroyRef, injector, allowSignalWrites) {
38412
+ constructor(scheduler, effectFn, zone, destroyRef, injector, allowSignalWrites) {
38289
38413
  this.scheduler = scheduler;
38290
38414
  this.effectFn = effectFn;
38291
- this.creationZone = creationZone;
38415
+ this.zone = zone;
38292
38416
  this.injector = injector;
38293
38417
  this.watcher = createWatch$1((onCleanup) => this.runEffect(onCleanup), () => this.schedule(), allowSignalWrites);
38294
38418
  this.unregisterOnDestroy = destroyRef?.onDestroy(() => this.destroy());
@@ -38308,7 +38432,7 @@ class EffectHandle {
38308
38432
  this.watcher.run();
38309
38433
  }
38310
38434
  schedule() {
38311
- this.scheduler.scheduleEffect(this);
38435
+ this.scheduler.schedule(this);
38312
38436
  }
38313
38437
  destroy() {
38314
38438
  this.watcher.destroy();
@@ -38317,20 +38441,20 @@ class EffectHandle {
38317
38441
  // retain a reference to it. Attempting to execute it will be a no-op.
38318
38442
  }
38319
38443
  }
38444
+ // Just used for the name for the debug error below.
38445
+ function effect$1() { }
38320
38446
  /**
38321
38447
  * Create a global `Effect` for the given reactive function.
38322
- *
38323
- * @developerPreview
38324
38448
  */
38325
- function effect(effectFn, options) {
38449
+ function microtaskEffect(effectFn, options) {
38326
38450
  performanceMarkFeature('NgSignals');
38327
38451
  ngDevMode &&
38328
- 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 ' +
38329
38453
  'effect inside the component constructor.');
38330
- !options?.injector && assertInInjectionContext(effect);
38454
+ !options?.injector && assertInInjectionContext(effect$1);
38331
38455
  const injector = options?.injector ?? inject(Injector);
38332
38456
  const destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
38333
- 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);
38334
38458
  // Effects need to be marked dirty manually to trigger their initial run. The timing of this
38335
38459
  // marking matters, because the effects may read signals that track component inputs, which are
38336
38460
  // only available after those components have had their first update pass.
@@ -38353,6 +38477,180 @@ function effect(effectFn, options) {
38353
38477
  return handle;
38354
38478
  }
38355
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
+
38356
38654
  const NOT_SET = Symbol('NOT_SET');
38357
38655
  const EMPTY_CLEANUP_SET = new Set();
38358
38656
  const AFTER_RENDER_PHASE_EFFECT_NODE = {
@@ -38688,5 +38986,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
38688
38986
  * Generated bundle index. Do not edit.
38689
38987
  */
38690
38988
 
38691
- 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, ɵɵ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 };
38692
38990
  //# sourceMappingURL=core.mjs.map