@angular/core 18.1.1 → 18.1.3

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 (54) hide show
  1. package/esm2022/primitives/event-dispatch/index.mjs +2 -1
  2. package/esm2022/primitives/event-dispatch/src/bootstrap_app_scoped.mjs +18 -3
  3. package/esm2022/primitives/event-dispatch/src/bootstrap_global.mjs +18 -7
  4. package/esm2022/primitives/event-dispatch/src/earlyeventcontract.mjs +25 -1
  5. package/esm2022/primitives/event-dispatch/src/event_type.mjs +2 -2
  6. package/esm2022/primitives/event-dispatch/src/eventcontract.mjs +40 -35
  7. package/esm2022/rxjs-interop/src/to_signal.mjs +6 -5
  8. package/esm2022/src/application/application_init.mjs +2 -2
  9. package/esm2022/src/application/application_module.mjs +2 -2
  10. package/esm2022/src/application/application_ref.mjs +2 -2
  11. package/esm2022/src/change_detection/scheduling/ng_zone_scheduling.mjs +3 -10
  12. package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +2 -2
  13. package/esm2022/src/console.mjs +2 -2
  14. package/esm2022/src/core_private_export.mjs +2 -1
  15. package/esm2022/src/error_handler.mjs +4 -2
  16. package/esm2022/src/event_delegation_utils.mjs +8 -8
  17. package/esm2022/src/event_dispatch/event_delegation.mjs +2 -4
  18. package/esm2022/src/hydration/event_replay.mjs +6 -6
  19. package/esm2022/src/image_performance_warning.mjs +2 -2
  20. package/esm2022/src/linker/compiler.mjs +2 -2
  21. package/esm2022/src/platform/platform_ref.mjs +2 -2
  22. package/esm2022/src/render3/after_render_hooks.mjs +2 -2
  23. package/esm2022/src/render3/component_ref.mjs +1 -1
  24. package/esm2022/src/render3/node_manipulation.mjs +9 -2
  25. package/esm2022/src/testability/testability.mjs +3 -3
  26. package/esm2022/src/util/callback_scheduler.mjs +26 -23
  27. package/esm2022/src/version.mjs +1 -1
  28. package/esm2022/testing/src/application_error_handler.mjs +43 -0
  29. package/esm2022/testing/src/component_fixture.mjs +13 -2
  30. package/esm2022/testing/src/logger.mjs +3 -3
  31. package/esm2022/testing/src/test_bed_common.mjs +1 -1
  32. package/esm2022/testing/src/test_bed_compiler.mjs +24 -2
  33. package/event-dispatch-contract.min.js +1 -1
  34. package/fesm2022/core.mjs +735 -731
  35. package/fesm2022/core.mjs.map +1 -1
  36. package/fesm2022/primitives/event-dispatch.mjs +144 -35
  37. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  38. package/fesm2022/primitives/signals.mjs +1 -1
  39. package/fesm2022/rxjs-interop.mjs +6 -5
  40. package/fesm2022/rxjs-interop.mjs.map +1 -1
  41. package/fesm2022/testing.mjs +69 -3
  42. package/fesm2022/testing.mjs.map +1 -1
  43. package/index.d.ts +10 -2
  44. package/package.json +1 -1
  45. package/primitives/event-dispatch/index.d.ts +28 -13
  46. package/primitives/signals/index.d.ts +1 -1
  47. package/rxjs-interop/index.d.ts +1 -1
  48. package/schematics/migrations/invalid-two-way-bindings/bundle.js +11 -7
  49. package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +2 -2
  50. package/schematics/ng-generate/control-flow-migration/bundle.js +11 -7
  51. package/schematics/ng-generate/control-flow-migration/bundle.js.map +2 -2
  52. package/schematics/ng-generate/standalone-migration/bundle.js +114 -78
  53. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  54. package/testing/index.d.ts +2 -1
package/fesm2022/core.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v18.1.1
2
+ * @license Angular v18.1.3
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -7,7 +7,7 @@
7
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';
8
8
  import { BehaviorSubject, Subject, Subscription } from 'rxjs';
9
9
  import { map, first } from 'rxjs/operators';
10
- import { Attribute as Attribute$1, isEarlyEventType, getActionCache, EventContract, EventContractContainer, EventDispatcher, registerDispatcher, isCaptureEventType } from '@angular/core/primitives/event-dispatch';
10
+ import { Attribute as Attribute$1, isEarlyEventType, getActionCache, EventContract, EventContractContainer, EventDispatcher, registerDispatcher, getAppScopedQueuedEventInfos, clearAppScopedEarlyEventContract, isCaptureEventType } from '@angular/core/primitives/event-dispatch';
11
11
 
12
12
  /**
13
13
  * Base URL for the error details page.
@@ -6639,6 +6639,702 @@ function getOriginalError(error) {
6639
6639
  return error[ERROR_ORIGINAL_ERROR];
6640
6640
  }
6641
6641
 
6642
+ /**
6643
+ * `DestroyRef` lets you set callbacks to run for any cleanup or destruction behavior.
6644
+ * The scope of this destruction depends on where `DestroyRef` is injected. If `DestroyRef`
6645
+ * is injected in a component or directive, the callbacks run when that component or
6646
+ * directive is destroyed. Otherwise the callbacks run when a corresponding injector is destroyed.
6647
+ *
6648
+ * @publicApi
6649
+ */
6650
+ class DestroyRef {
6651
+ /**
6652
+ * @internal
6653
+ * @nocollapse
6654
+ */
6655
+ static { this.__NG_ELEMENT_ID__ = injectDestroyRef; }
6656
+ /**
6657
+ * @internal
6658
+ * @nocollapse
6659
+ */
6660
+ static { this.__NG_ENV_ID__ = (injector) => injector; }
6661
+ }
6662
+ class NodeInjectorDestroyRef extends DestroyRef {
6663
+ constructor(_lView) {
6664
+ super();
6665
+ this._lView = _lView;
6666
+ }
6667
+ onDestroy(callback) {
6668
+ storeLViewOnDestroy(this._lView, callback);
6669
+ return () => removeLViewOnDestroy(this._lView, callback);
6670
+ }
6671
+ }
6672
+ function injectDestroyRef() {
6673
+ return new NodeInjectorDestroyRef(getLView());
6674
+ }
6675
+
6676
+ /**
6677
+ * Internal implementation of the pending tasks service.
6678
+ */
6679
+ class PendingTasks {
6680
+ constructor() {
6681
+ this.taskId = 0;
6682
+ this.pendingTasks = new Set();
6683
+ this.hasPendingTasks = new BehaviorSubject(false);
6684
+ }
6685
+ get _hasPendingTasks() {
6686
+ return this.hasPendingTasks.value;
6687
+ }
6688
+ add() {
6689
+ if (!this._hasPendingTasks) {
6690
+ this.hasPendingTasks.next(true);
6691
+ }
6692
+ const taskId = this.taskId++;
6693
+ this.pendingTasks.add(taskId);
6694
+ return taskId;
6695
+ }
6696
+ remove(taskId) {
6697
+ this.pendingTasks.delete(taskId);
6698
+ if (this.pendingTasks.size === 0 && this._hasPendingTasks) {
6699
+ this.hasPendingTasks.next(false);
6700
+ }
6701
+ }
6702
+ ngOnDestroy() {
6703
+ this.pendingTasks.clear();
6704
+ if (this._hasPendingTasks) {
6705
+ this.hasPendingTasks.next(false);
6706
+ }
6707
+ }
6708
+ /** @nocollapse */
6709
+ static { this.ɵprov = ɵɵdefineInjectable({
6710
+ token: PendingTasks,
6711
+ providedIn: 'root',
6712
+ factory: () => new PendingTasks(),
6713
+ }); }
6714
+ }
6715
+ /**
6716
+ * Experimental service that keeps track of pending tasks contributing to the stableness of Angular
6717
+ * application. While several existing Angular services (ex.: `HttpClient`) will internally manage
6718
+ * tasks influencing stability, this API gives control over stability to library and application
6719
+ * developers for specific cases not covered by Angular internals.
6720
+ *
6721
+ * The concept of stability comes into play in several important scenarios:
6722
+ * - SSR process needs to wait for the application stability before serializing and sending rendered
6723
+ * HTML;
6724
+ * - tests might want to delay assertions until the application becomes stable;
6725
+ *
6726
+ * @usageNotes
6727
+ * ```typescript
6728
+ * const pendingTasks = inject(ExperimentalPendingTasks);
6729
+ * const taskCleanup = pendingTasks.add();
6730
+ * // do work that should block application's stability and then:
6731
+ * taskCleanup();
6732
+ * ```
6733
+ *
6734
+ * This API is experimental. Neither the shape, nor the underlying behavior is stable and can change
6735
+ * in patch versions. We will iterate on the exact API based on the feedback and our understanding
6736
+ * of the problem and solution space.
6737
+ *
6738
+ * @publicApi
6739
+ * @experimental
6740
+ */
6741
+ class ExperimentalPendingTasks {
6742
+ constructor() {
6743
+ this.internalPendingTasks = inject(PendingTasks);
6744
+ }
6745
+ /**
6746
+ * Adds a new task that should block application's stability.
6747
+ * @returns A cleanup function that removes a task when called.
6748
+ */
6749
+ add() {
6750
+ const taskId = this.internalPendingTasks.add();
6751
+ return () => this.internalPendingTasks.remove(taskId);
6752
+ }
6753
+ /** @nocollapse */
6754
+ static { this.ɵprov = ɵɵdefineInjectable({
6755
+ token: ExperimentalPendingTasks,
6756
+ providedIn: 'root',
6757
+ factory: () => new ExperimentalPendingTasks(),
6758
+ }); }
6759
+ }
6760
+
6761
+ class EventEmitter_ extends Subject {
6762
+ constructor(isAsync = false) {
6763
+ super();
6764
+ this.destroyRef = undefined;
6765
+ this.pendingTasks = undefined;
6766
+ this.__isAsync = isAsync;
6767
+ // Attempt to retrieve a `DestroyRef` and `PendingTasks` optionally.
6768
+ // For backwards compatibility reasons, this cannot be required.
6769
+ if (isInInjectionContext()) {
6770
+ this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;
6771
+ this.pendingTasks = inject(PendingTasks, { optional: true }) ?? undefined;
6772
+ }
6773
+ }
6774
+ emit(value) {
6775
+ const prevConsumer = setActiveConsumer$1(null);
6776
+ try {
6777
+ super.next(value);
6778
+ }
6779
+ finally {
6780
+ setActiveConsumer$1(prevConsumer);
6781
+ }
6782
+ }
6783
+ subscribe(observerOrNext, error, complete) {
6784
+ let nextFn = observerOrNext;
6785
+ let errorFn = error || (() => null);
6786
+ let completeFn = complete;
6787
+ if (observerOrNext && typeof observerOrNext === 'object') {
6788
+ const observer = observerOrNext;
6789
+ nextFn = observer.next?.bind(observer);
6790
+ errorFn = observer.error?.bind(observer);
6791
+ completeFn = observer.complete?.bind(observer);
6792
+ }
6793
+ if (this.__isAsync) {
6794
+ errorFn = this.wrapInTimeout(errorFn);
6795
+ if (nextFn) {
6796
+ nextFn = this.wrapInTimeout(nextFn);
6797
+ }
6798
+ if (completeFn) {
6799
+ completeFn = this.wrapInTimeout(completeFn);
6800
+ }
6801
+ }
6802
+ const sink = super.subscribe({ next: nextFn, error: errorFn, complete: completeFn });
6803
+ if (observerOrNext instanceof Subscription) {
6804
+ observerOrNext.add(sink);
6805
+ }
6806
+ return sink;
6807
+ }
6808
+ wrapInTimeout(fn) {
6809
+ return (value) => {
6810
+ const taskId = this.pendingTasks?.add();
6811
+ setTimeout(() => {
6812
+ fn(value);
6813
+ if (taskId !== undefined) {
6814
+ this.pendingTasks?.remove(taskId);
6815
+ }
6816
+ });
6817
+ };
6818
+ }
6819
+ }
6820
+ /**
6821
+ * @publicApi
6822
+ */
6823
+ const EventEmitter = EventEmitter_;
6824
+
6825
+ function noop(...args) {
6826
+ // Do nothing.
6827
+ }
6828
+
6829
+ /**
6830
+ * Gets a scheduling function that runs the callback after the first of setTimeout and
6831
+ * requestAnimationFrame resolves.
6832
+ *
6833
+ * - `requestAnimationFrame` ensures that change detection runs ahead of a browser repaint.
6834
+ * This ensures that the create and update passes of a change detection always happen
6835
+ * in the same frame.
6836
+ * - When the browser is resource-starved, `rAF` can execute _before_ a `setTimeout` because
6837
+ * rendering is a very high priority process. This means that `setTimeout` cannot guarantee
6838
+ * same-frame create and update pass, when `setTimeout` is used to schedule the update phase.
6839
+ * - While `rAF` gives us the desirable same-frame updates, it has two limitations that
6840
+ * prevent it from being used alone. First, it does not run in background tabs, which would
6841
+ * prevent Angular from initializing an application when opened in a new tab (for example).
6842
+ * Second, repeated calls to requestAnimationFrame will execute at the refresh rate of the
6843
+ * hardware (~16ms for a 60Hz display). This would cause significant slowdown of tests that
6844
+ * are written with several updates and asserts in the form of "update; await stable; assert;".
6845
+ * - Both `setTimeout` and `rAF` are able to "coalesce" several events from a single user
6846
+ * interaction into a single change detection. Importantly, this reduces view tree traversals when
6847
+ * compared to an alternative timing mechanism like `queueMicrotask`, where change detection would
6848
+ * then be interleaves between each event.
6849
+ *
6850
+ * By running change detection after the first of `setTimeout` and `rAF` to execute, we get the
6851
+ * best of both worlds.
6852
+ *
6853
+ * @returns a function to cancel the scheduled callback
6854
+ */
6855
+ function scheduleCallbackWithRafRace(callback) {
6856
+ let timeoutId;
6857
+ let animationFrameId;
6858
+ function cleanup() {
6859
+ callback = noop;
6860
+ try {
6861
+ if (animationFrameId !== undefined && typeof cancelAnimationFrame === 'function') {
6862
+ cancelAnimationFrame(animationFrameId);
6863
+ }
6864
+ if (timeoutId !== undefined) {
6865
+ clearTimeout(timeoutId);
6866
+ }
6867
+ }
6868
+ catch {
6869
+ // Clearing/canceling can fail in tests due to the timing of functions being patched and unpatched
6870
+ // Just ignore the errors - we protect ourselves from this issue by also making the callback a no-op.
6871
+ }
6872
+ }
6873
+ timeoutId = setTimeout(() => {
6874
+ callback();
6875
+ cleanup();
6876
+ });
6877
+ if (typeof requestAnimationFrame === 'function') {
6878
+ animationFrameId = requestAnimationFrame(() => {
6879
+ callback();
6880
+ cleanup();
6881
+ });
6882
+ }
6883
+ return () => cleanup();
6884
+ }
6885
+ function scheduleCallbackWithMicrotask(callback) {
6886
+ queueMicrotask(() => callback());
6887
+ return () => {
6888
+ callback = noop;
6889
+ };
6890
+ }
6891
+
6892
+ class AsyncStackTaggingZoneSpec {
6893
+ constructor(namePrefix, consoleAsyncStackTaggingImpl = console) {
6894
+ this.name = 'asyncStackTagging for ' + namePrefix;
6895
+ this.createTask = consoleAsyncStackTaggingImpl?.createTask ?? (() => null);
6896
+ }
6897
+ onScheduleTask(delegate, _current, target, task) {
6898
+ task.consoleTask = this.createTask(`Zone - ${task.source || task.type}`);
6899
+ return delegate.scheduleTask(target, task);
6900
+ }
6901
+ onInvokeTask(delegate, _currentZone, targetZone, task, applyThis, applyArgs) {
6902
+ let ret;
6903
+ if (task.consoleTask) {
6904
+ ret = task.consoleTask.run(() => delegate.invokeTask(targetZone, task, applyThis, applyArgs));
6905
+ }
6906
+ else {
6907
+ ret = delegate.invokeTask(targetZone, task, applyThis, applyArgs);
6908
+ }
6909
+ return ret;
6910
+ }
6911
+ }
6912
+
6913
+ /**
6914
+ * An injectable service for executing work inside or outside of the Angular zone.
6915
+ *
6916
+ * The most common use of this service is to optimize performance when starting a work consisting of
6917
+ * one or more asynchronous tasks that don't require UI updates or error handling to be handled by
6918
+ * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks
6919
+ * can reenter the Angular zone via {@link #run}.
6920
+ *
6921
+ * <!-- TODO: add/fix links to:
6922
+ * - docs explaining zones and the use of zones in Angular and change-detection
6923
+ * - link to runOutsideAngular/run (throughout this file!)
6924
+ * -->
6925
+ *
6926
+ * @usageNotes
6927
+ * ### Example
6928
+ *
6929
+ * ```
6930
+ * import {Component, NgZone} from '@angular/core';
6931
+ * import {NgIf} from '@angular/common';
6932
+ *
6933
+ * @Component({
6934
+ * selector: 'ng-zone-demo',
6935
+ * template: `
6936
+ * <h2>Demo: NgZone</h2>
6937
+ *
6938
+ * <p>Progress: {{progress}}%</p>
6939
+ * <p *ngIf="progress >= 100">Done processing {{label}} of Angular zone!</p>
6940
+ *
6941
+ * <button (click)="processWithinAngularZone()">Process within Angular zone</button>
6942
+ * <button (click)="processOutsideOfAngularZone()">Process outside of Angular zone</button>
6943
+ * `,
6944
+ * })
6945
+ * export class NgZoneDemo {
6946
+ * progress: number = 0;
6947
+ * label: string;
6948
+ *
6949
+ * constructor(private _ngZone: NgZone) {}
6950
+ *
6951
+ * // Loop inside the Angular zone
6952
+ * // so the UI DOES refresh after each setTimeout cycle
6953
+ * processWithinAngularZone() {
6954
+ * this.label = 'inside';
6955
+ * this.progress = 0;
6956
+ * this._increaseProgress(() => console.log('Inside Done!'));
6957
+ * }
6958
+ *
6959
+ * // Loop outside of the Angular zone
6960
+ * // so the UI DOES NOT refresh after each setTimeout cycle
6961
+ * processOutsideOfAngularZone() {
6962
+ * this.label = 'outside';
6963
+ * this.progress = 0;
6964
+ * this._ngZone.runOutsideAngular(() => {
6965
+ * this._increaseProgress(() => {
6966
+ * // reenter the Angular zone and display done
6967
+ * this._ngZone.run(() => { console.log('Outside Done!'); });
6968
+ * });
6969
+ * });
6970
+ * }
6971
+ *
6972
+ * _increaseProgress(doneCallback: () => void) {
6973
+ * this.progress += 1;
6974
+ * console.log(`Current progress: ${this.progress}%`);
6975
+ *
6976
+ * if (this.progress < 100) {
6977
+ * window.setTimeout(() => this._increaseProgress(doneCallback), 10);
6978
+ * } else {
6979
+ * doneCallback();
6980
+ * }
6981
+ * }
6982
+ * }
6983
+ * ```
6984
+ *
6985
+ * @publicApi
6986
+ */
6987
+ class NgZone {
6988
+ constructor({ enableLongStackTrace = false, shouldCoalesceEventChangeDetection = false, shouldCoalesceRunChangeDetection = false, }) {
6989
+ this.hasPendingMacrotasks = false;
6990
+ this.hasPendingMicrotasks = false;
6991
+ /**
6992
+ * Whether there are no outstanding microtasks or macrotasks.
6993
+ */
6994
+ this.isStable = true;
6995
+ /**
6996
+ * Notifies when code enters Angular Zone. This gets fired first on VM Turn.
6997
+ */
6998
+ this.onUnstable = new EventEmitter(false);
6999
+ /**
7000
+ * Notifies when there is no more microtasks enqueued in the current VM Turn.
7001
+ * This is a hint for Angular to do change detection, which may enqueue more microtasks.
7002
+ * For this reason this event can fire multiple times per VM Turn.
7003
+ */
7004
+ this.onMicrotaskEmpty = new EventEmitter(false);
7005
+ /**
7006
+ * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which
7007
+ * implies we are about to relinquish VM turn.
7008
+ * This event gets called just once.
7009
+ */
7010
+ this.onStable = new EventEmitter(false);
7011
+ /**
7012
+ * Notifies that an error has been delivered.
7013
+ */
7014
+ this.onError = new EventEmitter(false);
7015
+ if (typeof Zone == 'undefined') {
7016
+ throw new RuntimeError(908 /* RuntimeErrorCode.MISSING_ZONEJS */, ngDevMode && `In this configuration Angular requires Zone.js`);
7017
+ }
7018
+ Zone.assertZonePatched();
7019
+ const self = this;
7020
+ self._nesting = 0;
7021
+ self._outer = self._inner = Zone.current;
7022
+ // AsyncStackTaggingZoneSpec provides `linked stack traces` to show
7023
+ // where the async operation is scheduled. For more details, refer
7024
+ // to this article, https://developer.chrome.com/blog/devtools-better-angular-debugging/
7025
+ // And we only import this AsyncStackTaggingZoneSpec in development mode,
7026
+ // in the production mode, the AsyncStackTaggingZoneSpec will be tree shaken away.
7027
+ if (ngDevMode) {
7028
+ self._inner = self._inner.fork(new AsyncStackTaggingZoneSpec('Angular'));
7029
+ }
7030
+ if (Zone['TaskTrackingZoneSpec']) {
7031
+ self._inner = self._inner.fork(new Zone['TaskTrackingZoneSpec']());
7032
+ }
7033
+ if (enableLongStackTrace && Zone['longStackTraceZoneSpec']) {
7034
+ self._inner = self._inner.fork(Zone['longStackTraceZoneSpec']);
7035
+ }
7036
+ // if shouldCoalesceRunChangeDetection is true, all tasks including event tasks will be
7037
+ // coalesced, so shouldCoalesceEventChangeDetection option is not necessary and can be skipped.
7038
+ self.shouldCoalesceEventChangeDetection =
7039
+ !shouldCoalesceRunChangeDetection && shouldCoalesceEventChangeDetection;
7040
+ self.shouldCoalesceRunChangeDetection = shouldCoalesceRunChangeDetection;
7041
+ self.callbackScheduled = false;
7042
+ forkInnerZoneWithAngularBehavior(self);
7043
+ }
7044
+ /**
7045
+ This method checks whether the method call happens within an Angular Zone instance.
7046
+ */
7047
+ static isInAngularZone() {
7048
+ // Zone needs to be checked, because this method might be called even when NoopNgZone is used.
7049
+ return typeof Zone !== 'undefined' && Zone.current.get('isAngularZone') === true;
7050
+ }
7051
+ /**
7052
+ Assures that the method is called within the Angular Zone, otherwise throws an error.
7053
+ */
7054
+ static assertInAngularZone() {
7055
+ if (!NgZone.isInAngularZone()) {
7056
+ throw new RuntimeError(909 /* RuntimeErrorCode.UNEXPECTED_ZONE_STATE */, ngDevMode && 'Expected to be in Angular Zone, but it is not!');
7057
+ }
7058
+ }
7059
+ /**
7060
+ Assures that the method is called outside of the Angular Zone, otherwise throws an error.
7061
+ */
7062
+ static assertNotInAngularZone() {
7063
+ if (NgZone.isInAngularZone()) {
7064
+ throw new RuntimeError(909 /* RuntimeErrorCode.UNEXPECTED_ZONE_STATE */, ngDevMode && 'Expected to not be in Angular Zone, but it is!');
7065
+ }
7066
+ }
7067
+ /**
7068
+ * Executes the `fn` function synchronously within the Angular zone and returns value returned by
7069
+ * the function.
7070
+ *
7071
+ * Running functions via `run` allows you to reenter Angular zone from a task that was executed
7072
+ * outside of the Angular zone (typically started via {@link #runOutsideAngular}).
7073
+ *
7074
+ * Any future tasks or microtasks scheduled from within this function will continue executing from
7075
+ * within the Angular zone.
7076
+ *
7077
+ * If a synchronous error happens it will be rethrown and not reported via `onError`.
7078
+ */
7079
+ run(fn, applyThis, applyArgs) {
7080
+ return this._inner.run(fn, applyThis, applyArgs);
7081
+ }
7082
+ /**
7083
+ * Executes the `fn` function synchronously within the Angular zone as a task and returns value
7084
+ * returned by the function.
7085
+ *
7086
+ * Running functions via `run` allows you to reenter Angular zone from a task that was executed
7087
+ * outside of the Angular zone (typically started via {@link #runOutsideAngular}).
7088
+ *
7089
+ * Any future tasks or microtasks scheduled from within this function will continue executing from
7090
+ * within the Angular zone.
7091
+ *
7092
+ * If a synchronous error happens it will be rethrown and not reported via `onError`.
7093
+ */
7094
+ runTask(fn, applyThis, applyArgs, name) {
7095
+ const zone = this._inner;
7096
+ const task = zone.scheduleEventTask('NgZoneEvent: ' + name, fn, EMPTY_PAYLOAD, noop, noop);
7097
+ try {
7098
+ return zone.runTask(task, applyThis, applyArgs);
7099
+ }
7100
+ finally {
7101
+ zone.cancelTask(task);
7102
+ }
7103
+ }
7104
+ /**
7105
+ * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not
7106
+ * rethrown.
7107
+ */
7108
+ runGuarded(fn, applyThis, applyArgs) {
7109
+ return this._inner.runGuarded(fn, applyThis, applyArgs);
7110
+ }
7111
+ /**
7112
+ * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by
7113
+ * the function.
7114
+ *
7115
+ * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do
7116
+ * work that
7117
+ * doesn't trigger Angular change-detection or is subject to Angular's error handling.
7118
+ *
7119
+ * Any future tasks or microtasks scheduled from within this function will continue executing from
7120
+ * outside of the Angular zone.
7121
+ *
7122
+ * Use {@link #run} to reenter the Angular zone and do work that updates the application model.
7123
+ */
7124
+ runOutsideAngular(fn) {
7125
+ return this._outer.run(fn);
7126
+ }
7127
+ }
7128
+ const EMPTY_PAYLOAD = {};
7129
+ function checkStable(zone) {
7130
+ // TODO: @JiaLiPassion, should check zone.isCheckStableRunning to prevent
7131
+ // re-entry. The case is:
7132
+ //
7133
+ // @Component({...})
7134
+ // export class AppComponent {
7135
+ // constructor(private ngZone: NgZone) {
7136
+ // this.ngZone.onStable.subscribe(() => {
7137
+ // this.ngZone.run(() => console.log('stable'););
7138
+ // });
7139
+ // }
7140
+ //
7141
+ // The onStable subscriber run another function inside ngZone
7142
+ // which causes `checkStable()` re-entry.
7143
+ // But this fix causes some issues in g3, so this fix will be
7144
+ // launched in another PR.
7145
+ if (zone._nesting == 0 && !zone.hasPendingMicrotasks && !zone.isStable) {
7146
+ try {
7147
+ zone._nesting++;
7148
+ zone.onMicrotaskEmpty.emit(null);
7149
+ }
7150
+ finally {
7151
+ zone._nesting--;
7152
+ if (!zone.hasPendingMicrotasks) {
7153
+ try {
7154
+ zone.runOutsideAngular(() => zone.onStable.emit(null));
7155
+ }
7156
+ finally {
7157
+ zone.isStable = true;
7158
+ }
7159
+ }
7160
+ }
7161
+ }
7162
+ }
7163
+ function delayChangeDetectionForEvents(zone) {
7164
+ /**
7165
+ * We also need to check _nesting here
7166
+ * Consider the following case with shouldCoalesceRunChangeDetection = true
7167
+ *
7168
+ * ngZone.run(() => {});
7169
+ * ngZone.run(() => {});
7170
+ *
7171
+ * We want the two `ngZone.run()` only trigger one change detection
7172
+ * when shouldCoalesceRunChangeDetection is true.
7173
+ * And because in this case, change detection run in async way(requestAnimationFrame),
7174
+ * so we also need to check the _nesting here to prevent multiple
7175
+ * change detections.
7176
+ */
7177
+ if (zone.isCheckStableRunning || zone.callbackScheduled) {
7178
+ return;
7179
+ }
7180
+ zone.callbackScheduled = true;
7181
+ Zone.root.run(() => {
7182
+ scheduleCallbackWithRafRace(() => {
7183
+ zone.callbackScheduled = false;
7184
+ updateMicroTaskStatus(zone);
7185
+ zone.isCheckStableRunning = true;
7186
+ checkStable(zone);
7187
+ zone.isCheckStableRunning = false;
7188
+ });
7189
+ });
7190
+ updateMicroTaskStatus(zone);
7191
+ }
7192
+ function forkInnerZoneWithAngularBehavior(zone) {
7193
+ const delayChangeDetectionForEventsDelegate = () => {
7194
+ delayChangeDetectionForEvents(zone);
7195
+ };
7196
+ zone._inner = zone._inner.fork({
7197
+ name: 'angular',
7198
+ properties: { 'isAngularZone': true },
7199
+ onInvokeTask: (delegate, current, target, task, applyThis, applyArgs) => {
7200
+ // Prevent triggering change detection when the flag is detected.
7201
+ if (shouldBeIgnoredByZone(applyArgs)) {
7202
+ return delegate.invokeTask(target, task, applyThis, applyArgs);
7203
+ }
7204
+ try {
7205
+ onEnter(zone);
7206
+ return delegate.invokeTask(target, task, applyThis, applyArgs);
7207
+ }
7208
+ finally {
7209
+ if ((zone.shouldCoalesceEventChangeDetection && task.type === 'eventTask') ||
7210
+ zone.shouldCoalesceRunChangeDetection) {
7211
+ delayChangeDetectionForEventsDelegate();
7212
+ }
7213
+ onLeave(zone);
7214
+ }
7215
+ },
7216
+ onInvoke: (delegate, current, target, callback, applyThis, applyArgs, source) => {
7217
+ try {
7218
+ onEnter(zone);
7219
+ return delegate.invoke(target, callback, applyThis, applyArgs, source);
7220
+ }
7221
+ finally {
7222
+ if (zone.shouldCoalesceRunChangeDetection &&
7223
+ // Do not delay change detection when the task is the scheduler's tick.
7224
+ // We need to synchronously trigger the stability logic so that the
7225
+ // zone-based scheduler can prevent a duplicate ApplicationRef.tick
7226
+ // by first checking if the scheduler tick is running. This does seem a bit roundabout,
7227
+ // but we _do_ still want to trigger all the correct events when we exit the zone.run
7228
+ // (`onMicrotaskEmpty` and `onStable` _should_ emit; developers can have code which
7229
+ // relies on these events happening after change detection runs).
7230
+ // Note: `zone.callbackScheduled` is already in delayChangeDetectionForEventsDelegate
7231
+ // but is added here as well to prevent reads of applyArgs when not necessary
7232
+ !zone.callbackScheduled &&
7233
+ !isSchedulerTick(applyArgs)) {
7234
+ delayChangeDetectionForEventsDelegate();
7235
+ }
7236
+ onLeave(zone);
7237
+ }
7238
+ },
7239
+ onHasTask: (delegate, current, target, hasTaskState) => {
7240
+ delegate.hasTask(target, hasTaskState);
7241
+ if (current === target) {
7242
+ // We are only interested in hasTask events which originate from our zone
7243
+ // (A child hasTask event is not interesting to us)
7244
+ if (hasTaskState.change == 'microTask') {
7245
+ zone._hasPendingMicrotasks = hasTaskState.microTask;
7246
+ updateMicroTaskStatus(zone);
7247
+ checkStable(zone);
7248
+ }
7249
+ else if (hasTaskState.change == 'macroTask') {
7250
+ zone.hasPendingMacrotasks = hasTaskState.macroTask;
7251
+ }
7252
+ }
7253
+ },
7254
+ onHandleError: (delegate, current, target, error) => {
7255
+ delegate.handleError(target, error);
7256
+ zone.runOutsideAngular(() => zone.onError.emit(error));
7257
+ return false;
7258
+ },
7259
+ });
7260
+ }
7261
+ function updateMicroTaskStatus(zone) {
7262
+ if (zone._hasPendingMicrotasks ||
7263
+ ((zone.shouldCoalesceEventChangeDetection || zone.shouldCoalesceRunChangeDetection) &&
7264
+ zone.callbackScheduled === true)) {
7265
+ zone.hasPendingMicrotasks = true;
7266
+ }
7267
+ else {
7268
+ zone.hasPendingMicrotasks = false;
7269
+ }
7270
+ }
7271
+ function onEnter(zone) {
7272
+ zone._nesting++;
7273
+ if (zone.isStable) {
7274
+ zone.isStable = false;
7275
+ zone.onUnstable.emit(null);
7276
+ }
7277
+ }
7278
+ function onLeave(zone) {
7279
+ zone._nesting--;
7280
+ checkStable(zone);
7281
+ }
7282
+ /**
7283
+ * Provides a noop implementation of `NgZone` which does nothing. This zone requires explicit calls
7284
+ * to framework to perform rendering.
7285
+ */
7286
+ class NoopNgZone {
7287
+ constructor() {
7288
+ this.hasPendingMicrotasks = false;
7289
+ this.hasPendingMacrotasks = false;
7290
+ this.isStable = true;
7291
+ this.onUnstable = new EventEmitter();
7292
+ this.onMicrotaskEmpty = new EventEmitter();
7293
+ this.onStable = new EventEmitter();
7294
+ this.onError = new EventEmitter();
7295
+ }
7296
+ run(fn, applyThis, applyArgs) {
7297
+ return fn.apply(applyThis, applyArgs);
7298
+ }
7299
+ runGuarded(fn, applyThis, applyArgs) {
7300
+ return fn.apply(applyThis, applyArgs);
7301
+ }
7302
+ runOutsideAngular(fn) {
7303
+ return fn();
7304
+ }
7305
+ runTask(fn, applyThis, applyArgs, name) {
7306
+ return fn.apply(applyThis, applyArgs);
7307
+ }
7308
+ }
7309
+ function shouldBeIgnoredByZone(applyArgs) {
7310
+ return hasApplyArgsData(applyArgs, '__ignore_ng_zone__');
7311
+ }
7312
+ function isSchedulerTick(applyArgs) {
7313
+ return hasApplyArgsData(applyArgs, '__scheduler_tick__');
7314
+ }
7315
+ function hasApplyArgsData(applyArgs, key) {
7316
+ if (!Array.isArray(applyArgs)) {
7317
+ return false;
7318
+ }
7319
+ // We should only ever get 1 arg passed through to invokeTask.
7320
+ // Short circuit here incase that behavior changes.
7321
+ if (applyArgs.length !== 1) {
7322
+ return false;
7323
+ }
7324
+ return applyArgs[0]?.data?.[key] === true;
7325
+ }
7326
+ function getNgZone(ngZoneToUse = 'zone.js', options) {
7327
+ if (ngZoneToUse === 'noop') {
7328
+ return new NoopNgZone();
7329
+ }
7330
+ if (ngZoneToUse === 'zone.js') {
7331
+ return new NgZone(options);
7332
+ }
7333
+ return ngZoneToUse;
7334
+ }
7335
+
7336
+ // Public API for Zone
7337
+
6642
7338
  /**
6643
7339
  * Provides a hook for centralized exception handling.
6644
7340
  *
@@ -6696,45 +7392,12 @@ class ErrorHandler {
6696
7392
  const INTERNAL_APPLICATION_ERROR_HANDLER = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'internal error handler' : '', {
6697
7393
  providedIn: 'root',
6698
7394
  factory: () => {
7395
+ const zone = inject(NgZone);
6699
7396
  const userErrorHandler = inject(ErrorHandler);
6700
- return userErrorHandler.handleError.bind(undefined);
7397
+ return (e) => zone.runOutsideAngular(() => userErrorHandler.handleError(e));
6701
7398
  },
6702
7399
  });
6703
7400
 
6704
- /**
6705
- * `DestroyRef` lets you set callbacks to run for any cleanup or destruction behavior.
6706
- * The scope of this destruction depends on where `DestroyRef` is injected. If `DestroyRef`
6707
- * is injected in a component or directive, the callbacks run when that component or
6708
- * directive is destroyed. Otherwise the callbacks run when a corresponding injector is destroyed.
6709
- *
6710
- * @publicApi
6711
- */
6712
- class DestroyRef {
6713
- /**
6714
- * @internal
6715
- * @nocollapse
6716
- */
6717
- static { this.__NG_ELEMENT_ID__ = injectDestroyRef; }
6718
- /**
6719
- * @internal
6720
- * @nocollapse
6721
- */
6722
- static { this.__NG_ENV_ID__ = (injector) => injector; }
6723
- }
6724
- class NodeInjectorDestroyRef extends DestroyRef {
6725
- constructor(_lView) {
6726
- super();
6727
- this._lView = _lView;
6728
- }
6729
- onDestroy(callback) {
6730
- storeLViewOnDestroy(this._lView, callback);
6731
- return () => removeLViewOnDestroy(this._lView, callback);
6732
- }
6733
- }
6734
- function injectDestroyRef() {
6735
- return new NodeInjectorDestroyRef(getLView());
6736
- }
6737
-
6738
7401
  /**
6739
7402
  * An `OutputEmitterRef` is created by the `output()` function and can be
6740
7403
  * used to emit values to consumers of your directive or component.
@@ -6973,155 +7636,6 @@ function unwrapElementRef(value) {
6973
7636
  return value instanceof ElementRef ? value.nativeElement : value;
6974
7637
  }
6975
7638
 
6976
- /**
6977
- * Internal implementation of the pending tasks service.
6978
- */
6979
- class PendingTasks {
6980
- constructor() {
6981
- this.taskId = 0;
6982
- this.pendingTasks = new Set();
6983
- this.hasPendingTasks = new BehaviorSubject(false);
6984
- }
6985
- get _hasPendingTasks() {
6986
- return this.hasPendingTasks.value;
6987
- }
6988
- add() {
6989
- if (!this._hasPendingTasks) {
6990
- this.hasPendingTasks.next(true);
6991
- }
6992
- const taskId = this.taskId++;
6993
- this.pendingTasks.add(taskId);
6994
- return taskId;
6995
- }
6996
- remove(taskId) {
6997
- this.pendingTasks.delete(taskId);
6998
- if (this.pendingTasks.size === 0 && this._hasPendingTasks) {
6999
- this.hasPendingTasks.next(false);
7000
- }
7001
- }
7002
- ngOnDestroy() {
7003
- this.pendingTasks.clear();
7004
- if (this._hasPendingTasks) {
7005
- this.hasPendingTasks.next(false);
7006
- }
7007
- }
7008
- /** @nocollapse */
7009
- static { this.ɵprov = ɵɵdefineInjectable({
7010
- token: PendingTasks,
7011
- providedIn: 'root',
7012
- factory: () => new PendingTasks(),
7013
- }); }
7014
- }
7015
- /**
7016
- * Experimental service that keeps track of pending tasks contributing to the stableness of Angular
7017
- * application. While several existing Angular services (ex.: `HttpClient`) will internally manage
7018
- * tasks influencing stability, this API gives control over stability to library and application
7019
- * developers for specific cases not covered by Angular internals.
7020
- *
7021
- * The concept of stability comes into play in several important scenarios:
7022
- * - SSR process needs to wait for the application stability before serializing and sending rendered
7023
- * HTML;
7024
- * - tests might want to delay assertions until the application becomes stable;
7025
- *
7026
- * @usageNotes
7027
- * ```typescript
7028
- * const pendingTasks = inject(ExperimentalPendingTasks);
7029
- * const taskCleanup = pendingTasks.add();
7030
- * // do work that should block application's stability and then:
7031
- * taskCleanup();
7032
- * ```
7033
- *
7034
- * This API is experimental. Neither the shape, nor the underlying behavior is stable and can change
7035
- * in patch versions. We will iterate on the exact API based on the feedback and our understanding
7036
- * of the problem and solution space.
7037
- *
7038
- * @publicApi
7039
- * @experimental
7040
- */
7041
- class ExperimentalPendingTasks {
7042
- constructor() {
7043
- this.internalPendingTasks = inject(PendingTasks);
7044
- }
7045
- /**
7046
- * Adds a new task that should block application's stability.
7047
- * @returns A cleanup function that removes a task when called.
7048
- */
7049
- add() {
7050
- const taskId = this.internalPendingTasks.add();
7051
- return () => this.internalPendingTasks.remove(taskId);
7052
- }
7053
- /** @nocollapse */
7054
- static { this.ɵprov = ɵɵdefineInjectable({
7055
- token: ExperimentalPendingTasks,
7056
- providedIn: 'root',
7057
- factory: () => new ExperimentalPendingTasks(),
7058
- }); }
7059
- }
7060
-
7061
- class EventEmitter_ extends Subject {
7062
- constructor(isAsync = false) {
7063
- super();
7064
- this.destroyRef = undefined;
7065
- this.pendingTasks = undefined;
7066
- this.__isAsync = isAsync;
7067
- // Attempt to retrieve a `DestroyRef` and `PendingTasks` optionally.
7068
- // For backwards compatibility reasons, this cannot be required.
7069
- if (isInInjectionContext()) {
7070
- this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;
7071
- this.pendingTasks = inject(PendingTasks, { optional: true }) ?? undefined;
7072
- }
7073
- }
7074
- emit(value) {
7075
- const prevConsumer = setActiveConsumer$1(null);
7076
- try {
7077
- super.next(value);
7078
- }
7079
- finally {
7080
- setActiveConsumer$1(prevConsumer);
7081
- }
7082
- }
7083
- subscribe(observerOrNext, error, complete) {
7084
- let nextFn = observerOrNext;
7085
- let errorFn = error || (() => null);
7086
- let completeFn = complete;
7087
- if (observerOrNext && typeof observerOrNext === 'object') {
7088
- const observer = observerOrNext;
7089
- nextFn = observer.next?.bind(observer);
7090
- errorFn = observer.error?.bind(observer);
7091
- completeFn = observer.complete?.bind(observer);
7092
- }
7093
- if (this.__isAsync) {
7094
- errorFn = this.wrapInTimeout(errorFn);
7095
- if (nextFn) {
7096
- nextFn = this.wrapInTimeout(nextFn);
7097
- }
7098
- if (completeFn) {
7099
- completeFn = this.wrapInTimeout(completeFn);
7100
- }
7101
- }
7102
- const sink = super.subscribe({ next: nextFn, error: errorFn, complete: completeFn });
7103
- if (observerOrNext instanceof Subscription) {
7104
- observerOrNext.add(sink);
7105
- }
7106
- return sink;
7107
- }
7108
- wrapInTimeout(fn) {
7109
- return (value) => {
7110
- const taskId = this.pendingTasks?.add();
7111
- setTimeout(() => {
7112
- fn(value);
7113
- if (taskId !== undefined) {
7114
- this.pendingTasks?.remove(taskId);
7115
- }
7116
- });
7117
- };
7118
- }
7119
- }
7120
- /**
7121
- * @publicApi
7122
- */
7123
- const EventEmitter = EventEmitter_;
7124
-
7125
7639
  function symbolIterator() {
7126
7640
  // @ts-expect-error accessing a private member
7127
7641
  return this._results[Symbol.iterator]();
@@ -10999,7 +11513,11 @@ function appendChild(tView, lView, childRNode, childTNode) {
10999
11513
  function getFirstNativeNode(lView, tNode) {
11000
11514
  if (tNode !== null) {
11001
11515
  ngDevMode &&
11002
- assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */ | 12 /* TNodeType.AnyContainer */ | 32 /* TNodeType.Icu */ | 16 /* TNodeType.Projection */);
11516
+ assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */ |
11517
+ 12 /* TNodeType.AnyContainer */ |
11518
+ 32 /* TNodeType.Icu */ |
11519
+ 16 /* TNodeType.Projection */ |
11520
+ 128 /* TNodeType.LetDeclaration */);
11003
11521
  const tNodeType = tNode.type;
11004
11522
  if (tNodeType & 3 /* TNodeType.AnyRNode */) {
11005
11523
  return getNativeByTNode(tNode, lView);
@@ -11022,6 +11540,9 @@ function getFirstNativeNode(lView, tNode) {
11022
11540
  }
11023
11541
  }
11024
11542
  }
11543
+ else if (tNodeType & 128 /* TNodeType.LetDeclaration */) {
11544
+ return getFirstNativeNode(lView, tNode.next);
11545
+ }
11025
11546
  else if (tNodeType & 32 /* TNodeType.Icu */) {
11026
11547
  let nextRNode = icuContainerIterate(tNode, lView);
11027
11548
  let rNode = nextRNode();
@@ -15726,514 +16247,6 @@ function performanceMarkFeature(feature) {
15726
16247
  performance?.mark?.('mark_feature_usage', { detail: { feature } });
15727
16248
  }
15728
16249
 
15729
- /**
15730
- * Gets a scheduling function that runs the callback after the first of setTimeout and
15731
- * requestAnimationFrame resolves.
15732
- *
15733
- * - `requestAnimationFrame` ensures that change detection runs ahead of a browser repaint.
15734
- * This ensures that the create and update passes of a change detection always happen
15735
- * in the same frame.
15736
- * - When the browser is resource-starved, `rAF` can execute _before_ a `setTimeout` because
15737
- * rendering is a very high priority process. This means that `setTimeout` cannot guarantee
15738
- * same-frame create and update pass, when `setTimeout` is used to schedule the update phase.
15739
- * - While `rAF` gives us the desirable same-frame updates, it has two limitations that
15740
- * prevent it from being used alone. First, it does not run in background tabs, which would
15741
- * prevent Angular from initializing an application when opened in a new tab (for example).
15742
- * Second, repeated calls to requestAnimationFrame will execute at the refresh rate of the
15743
- * hardware (~16ms for a 60Hz display). This would cause significant slowdown of tests that
15744
- * are written with several updates and asserts in the form of "update; await stable; assert;".
15745
- * - Both `setTimeout` and `rAF` are able to "coalesce" several events from a single user
15746
- * interaction into a single change detection. Importantly, this reduces view tree traversals when
15747
- * compared to an alternative timing mechanism like `queueMicrotask`, where change detection would
15748
- * then be interleaves between each event.
15749
- *
15750
- * By running change detection after the first of `setTimeout` and `rAF` to execute, we get the
15751
- * best of both worlds.
15752
- *
15753
- * @returns a function to cancel the scheduled callback
15754
- */
15755
- function scheduleCallbackWithRafRace(callback) {
15756
- let executeCallback = true;
15757
- setTimeout(() => {
15758
- if (!executeCallback) {
15759
- return;
15760
- }
15761
- executeCallback = false;
15762
- callback();
15763
- });
15764
- if (typeof _global['requestAnimationFrame'] === 'function') {
15765
- _global['requestAnimationFrame'](() => {
15766
- if (!executeCallback) {
15767
- return;
15768
- }
15769
- executeCallback = false;
15770
- callback();
15771
- });
15772
- }
15773
- return () => {
15774
- executeCallback = false;
15775
- };
15776
- }
15777
- function scheduleCallbackWithMicrotask(callback) {
15778
- let executeCallback = true;
15779
- queueMicrotask(() => {
15780
- if (executeCallback) {
15781
- callback();
15782
- }
15783
- });
15784
- return () => {
15785
- executeCallback = false;
15786
- };
15787
- }
15788
-
15789
- function noop(...args) {
15790
- // Do nothing.
15791
- }
15792
-
15793
- class AsyncStackTaggingZoneSpec {
15794
- constructor(namePrefix, consoleAsyncStackTaggingImpl = console) {
15795
- this.name = 'asyncStackTagging for ' + namePrefix;
15796
- this.createTask = consoleAsyncStackTaggingImpl?.createTask ?? (() => null);
15797
- }
15798
- onScheduleTask(delegate, _current, target, task) {
15799
- task.consoleTask = this.createTask(`Zone - ${task.source || task.type}`);
15800
- return delegate.scheduleTask(target, task);
15801
- }
15802
- onInvokeTask(delegate, _currentZone, targetZone, task, applyThis, applyArgs) {
15803
- let ret;
15804
- if (task.consoleTask) {
15805
- ret = task.consoleTask.run(() => delegate.invokeTask(targetZone, task, applyThis, applyArgs));
15806
- }
15807
- else {
15808
- ret = delegate.invokeTask(targetZone, task, applyThis, applyArgs);
15809
- }
15810
- return ret;
15811
- }
15812
- }
15813
-
15814
- /**
15815
- * An injectable service for executing work inside or outside of the Angular zone.
15816
- *
15817
- * The most common use of this service is to optimize performance when starting a work consisting of
15818
- * one or more asynchronous tasks that don't require UI updates or error handling to be handled by
15819
- * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks
15820
- * can reenter the Angular zone via {@link #run}.
15821
- *
15822
- * <!-- TODO: add/fix links to:
15823
- * - docs explaining zones and the use of zones in Angular and change-detection
15824
- * - link to runOutsideAngular/run (throughout this file!)
15825
- * -->
15826
- *
15827
- * @usageNotes
15828
- * ### Example
15829
- *
15830
- * ```
15831
- * import {Component, NgZone} from '@angular/core';
15832
- * import {NgIf} from '@angular/common';
15833
- *
15834
- * @Component({
15835
- * selector: 'ng-zone-demo',
15836
- * template: `
15837
- * <h2>Demo: NgZone</h2>
15838
- *
15839
- * <p>Progress: {{progress}}%</p>
15840
- * <p *ngIf="progress >= 100">Done processing {{label}} of Angular zone!</p>
15841
- *
15842
- * <button (click)="processWithinAngularZone()">Process within Angular zone</button>
15843
- * <button (click)="processOutsideOfAngularZone()">Process outside of Angular zone</button>
15844
- * `,
15845
- * })
15846
- * export class NgZoneDemo {
15847
- * progress: number = 0;
15848
- * label: string;
15849
- *
15850
- * constructor(private _ngZone: NgZone) {}
15851
- *
15852
- * // Loop inside the Angular zone
15853
- * // so the UI DOES refresh after each setTimeout cycle
15854
- * processWithinAngularZone() {
15855
- * this.label = 'inside';
15856
- * this.progress = 0;
15857
- * this._increaseProgress(() => console.log('Inside Done!'));
15858
- * }
15859
- *
15860
- * // Loop outside of the Angular zone
15861
- * // so the UI DOES NOT refresh after each setTimeout cycle
15862
- * processOutsideOfAngularZone() {
15863
- * this.label = 'outside';
15864
- * this.progress = 0;
15865
- * this._ngZone.runOutsideAngular(() => {
15866
- * this._increaseProgress(() => {
15867
- * // reenter the Angular zone and display done
15868
- * this._ngZone.run(() => { console.log('Outside Done!'); });
15869
- * });
15870
- * });
15871
- * }
15872
- *
15873
- * _increaseProgress(doneCallback: () => void) {
15874
- * this.progress += 1;
15875
- * console.log(`Current progress: ${this.progress}%`);
15876
- *
15877
- * if (this.progress < 100) {
15878
- * window.setTimeout(() => this._increaseProgress(doneCallback), 10);
15879
- * } else {
15880
- * doneCallback();
15881
- * }
15882
- * }
15883
- * }
15884
- * ```
15885
- *
15886
- * @publicApi
15887
- */
15888
- class NgZone {
15889
- constructor({ enableLongStackTrace = false, shouldCoalesceEventChangeDetection = false, shouldCoalesceRunChangeDetection = false, }) {
15890
- this.hasPendingMacrotasks = false;
15891
- this.hasPendingMicrotasks = false;
15892
- /**
15893
- * Whether there are no outstanding microtasks or macrotasks.
15894
- */
15895
- this.isStable = true;
15896
- /**
15897
- * Notifies when code enters Angular Zone. This gets fired first on VM Turn.
15898
- */
15899
- this.onUnstable = new EventEmitter(false);
15900
- /**
15901
- * Notifies when there is no more microtasks enqueued in the current VM Turn.
15902
- * This is a hint for Angular to do change detection, which may enqueue more microtasks.
15903
- * For this reason this event can fire multiple times per VM Turn.
15904
- */
15905
- this.onMicrotaskEmpty = new EventEmitter(false);
15906
- /**
15907
- * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which
15908
- * implies we are about to relinquish VM turn.
15909
- * This event gets called just once.
15910
- */
15911
- this.onStable = new EventEmitter(false);
15912
- /**
15913
- * Notifies that an error has been delivered.
15914
- */
15915
- this.onError = new EventEmitter(false);
15916
- if (typeof Zone == 'undefined') {
15917
- throw new RuntimeError(908 /* RuntimeErrorCode.MISSING_ZONEJS */, ngDevMode && `In this configuration Angular requires Zone.js`);
15918
- }
15919
- Zone.assertZonePatched();
15920
- const self = this;
15921
- self._nesting = 0;
15922
- self._outer = self._inner = Zone.current;
15923
- // AsyncStackTaggingZoneSpec provides `linked stack traces` to show
15924
- // where the async operation is scheduled. For more details, refer
15925
- // to this article, https://developer.chrome.com/blog/devtools-better-angular-debugging/
15926
- // And we only import this AsyncStackTaggingZoneSpec in development mode,
15927
- // in the production mode, the AsyncStackTaggingZoneSpec will be tree shaken away.
15928
- if (ngDevMode) {
15929
- self._inner = self._inner.fork(new AsyncStackTaggingZoneSpec('Angular'));
15930
- }
15931
- if (Zone['TaskTrackingZoneSpec']) {
15932
- self._inner = self._inner.fork(new Zone['TaskTrackingZoneSpec']());
15933
- }
15934
- if (enableLongStackTrace && Zone['longStackTraceZoneSpec']) {
15935
- self._inner = self._inner.fork(Zone['longStackTraceZoneSpec']);
15936
- }
15937
- // if shouldCoalesceRunChangeDetection is true, all tasks including event tasks will be
15938
- // coalesced, so shouldCoalesceEventChangeDetection option is not necessary and can be skipped.
15939
- self.shouldCoalesceEventChangeDetection =
15940
- !shouldCoalesceRunChangeDetection && shouldCoalesceEventChangeDetection;
15941
- self.shouldCoalesceRunChangeDetection = shouldCoalesceRunChangeDetection;
15942
- self.callbackScheduled = false;
15943
- forkInnerZoneWithAngularBehavior(self);
15944
- }
15945
- /**
15946
- This method checks whether the method call happens within an Angular Zone instance.
15947
- */
15948
- static isInAngularZone() {
15949
- // Zone needs to be checked, because this method might be called even when NoopNgZone is used.
15950
- return typeof Zone !== 'undefined' && Zone.current.get('isAngularZone') === true;
15951
- }
15952
- /**
15953
- Assures that the method is called within the Angular Zone, otherwise throws an error.
15954
- */
15955
- static assertInAngularZone() {
15956
- if (!NgZone.isInAngularZone()) {
15957
- throw new RuntimeError(909 /* RuntimeErrorCode.UNEXPECTED_ZONE_STATE */, ngDevMode && 'Expected to be in Angular Zone, but it is not!');
15958
- }
15959
- }
15960
- /**
15961
- Assures that the method is called outside of the Angular Zone, otherwise throws an error.
15962
- */
15963
- static assertNotInAngularZone() {
15964
- if (NgZone.isInAngularZone()) {
15965
- throw new RuntimeError(909 /* RuntimeErrorCode.UNEXPECTED_ZONE_STATE */, ngDevMode && 'Expected to not be in Angular Zone, but it is!');
15966
- }
15967
- }
15968
- /**
15969
- * Executes the `fn` function synchronously within the Angular zone and returns value returned by
15970
- * the function.
15971
- *
15972
- * Running functions via `run` allows you to reenter Angular zone from a task that was executed
15973
- * outside of the Angular zone (typically started via {@link #runOutsideAngular}).
15974
- *
15975
- * Any future tasks or microtasks scheduled from within this function will continue executing from
15976
- * within the Angular zone.
15977
- *
15978
- * If a synchronous error happens it will be rethrown and not reported via `onError`.
15979
- */
15980
- run(fn, applyThis, applyArgs) {
15981
- return this._inner.run(fn, applyThis, applyArgs);
15982
- }
15983
- /**
15984
- * Executes the `fn` function synchronously within the Angular zone as a task and returns value
15985
- * returned by the function.
15986
- *
15987
- * Running functions via `run` allows you to reenter Angular zone from a task that was executed
15988
- * outside of the Angular zone (typically started via {@link #runOutsideAngular}).
15989
- *
15990
- * Any future tasks or microtasks scheduled from within this function will continue executing from
15991
- * within the Angular zone.
15992
- *
15993
- * If a synchronous error happens it will be rethrown and not reported via `onError`.
15994
- */
15995
- runTask(fn, applyThis, applyArgs, name) {
15996
- const zone = this._inner;
15997
- const task = zone.scheduleEventTask('NgZoneEvent: ' + name, fn, EMPTY_PAYLOAD, noop, noop);
15998
- try {
15999
- return zone.runTask(task, applyThis, applyArgs);
16000
- }
16001
- finally {
16002
- zone.cancelTask(task);
16003
- }
16004
- }
16005
- /**
16006
- * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not
16007
- * rethrown.
16008
- */
16009
- runGuarded(fn, applyThis, applyArgs) {
16010
- return this._inner.runGuarded(fn, applyThis, applyArgs);
16011
- }
16012
- /**
16013
- * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by
16014
- * the function.
16015
- *
16016
- * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do
16017
- * work that
16018
- * doesn't trigger Angular change-detection or is subject to Angular's error handling.
16019
- *
16020
- * Any future tasks or microtasks scheduled from within this function will continue executing from
16021
- * outside of the Angular zone.
16022
- *
16023
- * Use {@link #run} to reenter the Angular zone and do work that updates the application model.
16024
- */
16025
- runOutsideAngular(fn) {
16026
- return this._outer.run(fn);
16027
- }
16028
- }
16029
- const EMPTY_PAYLOAD = {};
16030
- function checkStable(zone) {
16031
- // TODO: @JiaLiPassion, should check zone.isCheckStableRunning to prevent
16032
- // re-entry. The case is:
16033
- //
16034
- // @Component({...})
16035
- // export class AppComponent {
16036
- // constructor(private ngZone: NgZone) {
16037
- // this.ngZone.onStable.subscribe(() => {
16038
- // this.ngZone.run(() => console.log('stable'););
16039
- // });
16040
- // }
16041
- //
16042
- // The onStable subscriber run another function inside ngZone
16043
- // which causes `checkStable()` re-entry.
16044
- // But this fix causes some issues in g3, so this fix will be
16045
- // launched in another PR.
16046
- if (zone._nesting == 0 && !zone.hasPendingMicrotasks && !zone.isStable) {
16047
- try {
16048
- zone._nesting++;
16049
- zone.onMicrotaskEmpty.emit(null);
16050
- }
16051
- finally {
16052
- zone._nesting--;
16053
- if (!zone.hasPendingMicrotasks) {
16054
- try {
16055
- zone.runOutsideAngular(() => zone.onStable.emit(null));
16056
- }
16057
- finally {
16058
- zone.isStable = true;
16059
- }
16060
- }
16061
- }
16062
- }
16063
- }
16064
- function delayChangeDetectionForEvents(zone) {
16065
- /**
16066
- * We also need to check _nesting here
16067
- * Consider the following case with shouldCoalesceRunChangeDetection = true
16068
- *
16069
- * ngZone.run(() => {});
16070
- * ngZone.run(() => {});
16071
- *
16072
- * We want the two `ngZone.run()` only trigger one change detection
16073
- * when shouldCoalesceRunChangeDetection is true.
16074
- * And because in this case, change detection run in async way(requestAnimationFrame),
16075
- * so we also need to check the _nesting here to prevent multiple
16076
- * change detections.
16077
- */
16078
- if (zone.isCheckStableRunning || zone.callbackScheduled) {
16079
- return;
16080
- }
16081
- zone.callbackScheduled = true;
16082
- Zone.root.run(() => {
16083
- scheduleCallbackWithRafRace(() => {
16084
- zone.callbackScheduled = false;
16085
- updateMicroTaskStatus(zone);
16086
- zone.isCheckStableRunning = true;
16087
- checkStable(zone);
16088
- zone.isCheckStableRunning = false;
16089
- });
16090
- });
16091
- updateMicroTaskStatus(zone);
16092
- }
16093
- function forkInnerZoneWithAngularBehavior(zone) {
16094
- const delayChangeDetectionForEventsDelegate = () => {
16095
- delayChangeDetectionForEvents(zone);
16096
- };
16097
- zone._inner = zone._inner.fork({
16098
- name: 'angular',
16099
- properties: { 'isAngularZone': true },
16100
- onInvokeTask: (delegate, current, target, task, applyThis, applyArgs) => {
16101
- // Prevent triggering change detection when the flag is detected.
16102
- if (shouldBeIgnoredByZone(applyArgs)) {
16103
- return delegate.invokeTask(target, task, applyThis, applyArgs);
16104
- }
16105
- try {
16106
- onEnter(zone);
16107
- return delegate.invokeTask(target, task, applyThis, applyArgs);
16108
- }
16109
- finally {
16110
- if ((zone.shouldCoalesceEventChangeDetection && task.type === 'eventTask') ||
16111
- zone.shouldCoalesceRunChangeDetection) {
16112
- delayChangeDetectionForEventsDelegate();
16113
- }
16114
- onLeave(zone);
16115
- }
16116
- },
16117
- onInvoke: (delegate, current, target, callback, applyThis, applyArgs, source) => {
16118
- try {
16119
- onEnter(zone);
16120
- return delegate.invoke(target, callback, applyThis, applyArgs, source);
16121
- }
16122
- finally {
16123
- if (zone.shouldCoalesceRunChangeDetection &&
16124
- // Do not delay change detection when the task is the scheduler's tick.
16125
- // We need to synchronously trigger the stability logic so that the
16126
- // zone-based scheduler can prevent a duplicate ApplicationRef.tick
16127
- // by first checking if the scheduler tick is running. This does seem a bit roundabout,
16128
- // but we _do_ still want to trigger all the correct events when we exit the zone.run
16129
- // (`onMicrotaskEmpty` and `onStable` _should_ emit; developers can have code which
16130
- // relies on these events happening after change detection runs).
16131
- // Note: `zone.callbackScheduled` is already in delayChangeDetectionForEventsDelegate
16132
- // but is added here as well to prevent reads of applyArgs when not necessary
16133
- !zone.callbackScheduled &&
16134
- !isSchedulerTick(applyArgs)) {
16135
- delayChangeDetectionForEventsDelegate();
16136
- }
16137
- onLeave(zone);
16138
- }
16139
- },
16140
- onHasTask: (delegate, current, target, hasTaskState) => {
16141
- delegate.hasTask(target, hasTaskState);
16142
- if (current === target) {
16143
- // We are only interested in hasTask events which originate from our zone
16144
- // (A child hasTask event is not interesting to us)
16145
- if (hasTaskState.change == 'microTask') {
16146
- zone._hasPendingMicrotasks = hasTaskState.microTask;
16147
- updateMicroTaskStatus(zone);
16148
- checkStable(zone);
16149
- }
16150
- else if (hasTaskState.change == 'macroTask') {
16151
- zone.hasPendingMacrotasks = hasTaskState.macroTask;
16152
- }
16153
- }
16154
- },
16155
- onHandleError: (delegate, current, target, error) => {
16156
- delegate.handleError(target, error);
16157
- zone.runOutsideAngular(() => zone.onError.emit(error));
16158
- return false;
16159
- },
16160
- });
16161
- }
16162
- function updateMicroTaskStatus(zone) {
16163
- if (zone._hasPendingMicrotasks ||
16164
- ((zone.shouldCoalesceEventChangeDetection || zone.shouldCoalesceRunChangeDetection) &&
16165
- zone.callbackScheduled === true)) {
16166
- zone.hasPendingMicrotasks = true;
16167
- }
16168
- else {
16169
- zone.hasPendingMicrotasks = false;
16170
- }
16171
- }
16172
- function onEnter(zone) {
16173
- zone._nesting++;
16174
- if (zone.isStable) {
16175
- zone.isStable = false;
16176
- zone.onUnstable.emit(null);
16177
- }
16178
- }
16179
- function onLeave(zone) {
16180
- zone._nesting--;
16181
- checkStable(zone);
16182
- }
16183
- /**
16184
- * Provides a noop implementation of `NgZone` which does nothing. This zone requires explicit calls
16185
- * to framework to perform rendering.
16186
- */
16187
- class NoopNgZone {
16188
- constructor() {
16189
- this.hasPendingMicrotasks = false;
16190
- this.hasPendingMacrotasks = false;
16191
- this.isStable = true;
16192
- this.onUnstable = new EventEmitter();
16193
- this.onMicrotaskEmpty = new EventEmitter();
16194
- this.onStable = new EventEmitter();
16195
- this.onError = new EventEmitter();
16196
- }
16197
- run(fn, applyThis, applyArgs) {
16198
- return fn.apply(applyThis, applyArgs);
16199
- }
16200
- runGuarded(fn, applyThis, applyArgs) {
16201
- return fn.apply(applyThis, applyArgs);
16202
- }
16203
- runOutsideAngular(fn) {
16204
- return fn();
16205
- }
16206
- runTask(fn, applyThis, applyArgs, name) {
16207
- return fn.apply(applyThis, applyArgs);
16208
- }
16209
- }
16210
- function shouldBeIgnoredByZone(applyArgs) {
16211
- return hasApplyArgsData(applyArgs, '__ignore_ng_zone__');
16212
- }
16213
- function isSchedulerTick(applyArgs) {
16214
- return hasApplyArgsData(applyArgs, '__scheduler_tick__');
16215
- }
16216
- function hasApplyArgsData(applyArgs, key) {
16217
- if (!Array.isArray(applyArgs)) {
16218
- return false;
16219
- }
16220
- // We should only ever get 1 arg passed through to invokeTask.
16221
- // Short circuit here incase that behavior changes.
16222
- if (applyArgs.length !== 1) {
16223
- return false;
16224
- }
16225
- return applyArgs[0]?.data?.[key] === true;
16226
- }
16227
- function getNgZone(ngZoneToUse = 'zone.js', options) {
16228
- if (ngZoneToUse === 'noop') {
16229
- return new NoopNgZone();
16230
- }
16231
- if (ngZoneToUse === 'zone.js') {
16232
- return new NgZone(options);
16233
- }
16234
- return ngZoneToUse;
16235
- }
16236
-
16237
16250
  /**
16238
16251
  * The phase to run an `afterRender` or `afterNextRender` callback in.
16239
16252
  *
@@ -16392,7 +16405,7 @@ function afterRenderImpl(callbackOrSpec, injector, once, phase) {
16392
16405
  if (callbacksLeftToRun < 1) {
16393
16406
  destroy();
16394
16407
  }
16395
- phaseCallback(...args);
16408
+ return phaseCallback(...args);
16396
16409
  }
16397
16410
  : phaseCallback;
16398
16411
  const instance = runInInjectionContext(injector, () => new AfterRenderCallback(phase, pipelinedArgs, callback));
@@ -17205,7 +17218,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
17205
17218
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
17206
17219
  if (rootSelectorOrNode) {
17207
17220
  // The placeholder will be replaced with the actual version at build time.
17208
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.1']);
17221
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.3']);
17209
17222
  }
17210
17223
  else {
17211
17224
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -19736,8 +19749,6 @@ function invokeAllTriggerCleanupFns(lDetails) {
19736
19749
  invokeTriggerCleanupFns(0 /* TriggerType.Regular */, lDetails);
19737
19750
  }
19738
19751
 
19739
- // Public API for Zone
19740
-
19741
19752
  /**
19742
19753
  * Calculates a data slot index for defer block info (either static or
19743
19754
  * instance-specific), given an index of a defer instruction.
@@ -31003,7 +31014,7 @@ class Version {
31003
31014
  /**
31004
31015
  * @publicApi
31005
31016
  */
31006
- const VERSION = new Version('18.1.1');
31017
+ const VERSION = new Version('18.1.3');
31007
31018
 
31008
31019
  /*
31009
31020
  * This file exists to support compilation of @angular/core in Ivy mode.
@@ -31035,7 +31046,7 @@ class Console {
31035
31046
  // tslint:disable-next-line:no-console
31036
31047
  console.warn(message);
31037
31048
  }
31038
- static { this.ɵfac = function Console_Factory(t) { return new (t || Console)(); }; }
31049
+ static { this.ɵfac = function Console_Factory(ɵt) { return new (ɵt || Console)(); }; }
31039
31050
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Console, factory: Console.ɵfac, providedIn: 'platform' }); }
31040
31051
  }
31041
31052
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Console, [{
@@ -32099,7 +32110,7 @@ class Testability {
32099
32110
  // TODO(juliemr): implement.
32100
32111
  return [];
32101
32112
  }
32102
- static { this.ɵfac = function Testability_Factory(t) { return new (t || Testability)(ɵɵinject(NgZone), ɵɵinject(TestabilityRegistry), ɵɵinject(TESTABILITY_GETTER)); }; }
32113
+ static { this.ɵfac = function Testability_Factory(ɵt) { return new (ɵt || Testability)(ɵɵinject(NgZone), ɵɵinject(TestabilityRegistry), ɵɵinject(TESTABILITY_GETTER)); }; }
32103
32114
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Testability, factory: Testability.ɵfac }); }
32104
32115
  }
32105
32116
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Testability, [{
@@ -32166,7 +32177,7 @@ class TestabilityRegistry {
32166
32177
  findTestabilityInTree(elem, findInAncestors = true) {
32167
32178
  return _testabilityGetter?.findTestabilityInTree(this, elem, findInAncestors) ?? null;
32168
32179
  }
32169
- static { this.ɵfac = function TestabilityRegistry_Factory(t) { return new (t || TestabilityRegistry)(); }; }
32180
+ static { this.ɵfac = function TestabilityRegistry_Factory(ɵt) { return new (ɵt || TestabilityRegistry)(); }; }
32170
32181
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: TestabilityRegistry, factory: TestabilityRegistry.ɵfac, providedIn: 'platform' }); }
32171
32182
  }
32172
32183
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(TestabilityRegistry, [{
@@ -32373,7 +32384,7 @@ class ApplicationInitStatus {
32373
32384
  }
32374
32385
  this.initialized = true;
32375
32386
  }
32376
- static { this.ɵfac = function ApplicationInitStatus_Factory(t) { return new (t || ApplicationInitStatus)(); }; }
32387
+ static { this.ɵfac = function ApplicationInitStatus_Factory(ɵt) { return new (ɵt || ApplicationInitStatus)(); }; }
32377
32388
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationInitStatus, factory: ApplicationInitStatus.ɵfac, providedIn: 'root' }); }
32378
32389
  }
32379
32390
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationInitStatus, [{
@@ -32843,7 +32854,7 @@ class ApplicationRef {
32843
32854
  console.warn(formatRuntimeError(406 /* RuntimeErrorCode.APPLICATION_REF_ALREADY_DESTROYED */, 'This instance of the `ApplicationRef` has already been destroyed.'));
32844
32855
  }
32845
32856
  }
32846
- static { this.ɵfac = function ApplicationRef_Factory(t) { return new (t || ApplicationRef)(); }; }
32857
+ static { this.ɵfac = function ApplicationRef_Factory(ɵt) { return new (ɵt || ApplicationRef)(); }; }
32847
32858
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationRef, factory: ApplicationRef.ɵfac, providedIn: 'root' }); }
32848
32859
  }
32849
32860
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationRef, [{
@@ -32964,7 +32975,7 @@ class Compiler {
32964
32975
  getModuleId(moduleType) {
32965
32976
  return undefined;
32966
32977
  }
32967
- static { this.ɵfac = function Compiler_Factory(t) { return new (t || Compiler)(); }; }
32978
+ static { this.ɵfac = function Compiler_Factory(ɵt) { return new (ɵt || Compiler)(); }; }
32968
32979
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Compiler, factory: Compiler.ɵfac, providedIn: 'root' }); }
32969
32980
  }
32970
32981
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Compiler, [{
@@ -33061,7 +33072,7 @@ class NgZoneChangeDetectionScheduler {
33061
33072
  ngOnDestroy() {
33062
33073
  this._onMicrotaskEmptySubscription?.unsubscribe();
33063
33074
  }
33064
- static { this.ɵfac = function NgZoneChangeDetectionScheduler_Factory(t) { return new (t || NgZoneChangeDetectionScheduler)(); }; }
33075
+ static { this.ɵfac = function NgZoneChangeDetectionScheduler_Factory(ɵt) { return new (ɵt || NgZoneChangeDetectionScheduler)(); }; }
33065
33076
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: NgZoneChangeDetectionScheduler, factory: NgZoneChangeDetectionScheduler.ɵfac, providedIn: 'root' }); }
33066
33077
  }
33067
33078
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NgZoneChangeDetectionScheduler, [{
@@ -33102,17 +33113,11 @@ function internalProvideZoneChangeDetection({ ngZoneFactory, ignoreChangesOutsid
33102
33113
  };
33103
33114
  },
33104
33115
  },
33105
- { provide: INTERNAL_APPLICATION_ERROR_HANDLER, useFactory: ngZoneApplicationErrorHandlerFactory },
33106
33116
  // Always disable scheduler whenever explicitly disabled, even if another place called
33107
33117
  // `provideZoneChangeDetection` without the 'ignore' option.
33108
33118
  ignoreChangesOutsideZone === true ? { provide: ZONELESS_SCHEDULER_DISABLED, useValue: true } : [],
33109
33119
  ];
33110
33120
  }
33111
- function ngZoneApplicationErrorHandlerFactory() {
33112
- const zone = inject(NgZone);
33113
- const userErrorHandler = inject(ErrorHandler);
33114
- return (e) => zone.runOutsideAngular(() => userErrorHandler.handleError(e));
33115
- }
33116
33121
  /**
33117
33122
  * Provides `NgZone`-based change detection for the application bootstrapped using
33118
33123
  * `bootstrapApplication`.
@@ -33200,7 +33205,7 @@ class ZoneStablePendingTask {
33200
33205
  ngOnDestroy() {
33201
33206
  this.subscription.unsubscribe();
33202
33207
  }
33203
- static { this.ɵfac = function ZoneStablePendingTask_Factory(t) { return new (t || ZoneStablePendingTask)(); }; }
33208
+ static { this.ɵfac = function ZoneStablePendingTask_Factory(ɵt) { return new (ɵt || ZoneStablePendingTask)(); }; }
33204
33209
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ZoneStablePendingTask, factory: ZoneStablePendingTask.ɵfac, providedIn: 'root' }); }
33205
33210
  }
33206
33211
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ZoneStablePendingTask, [{
@@ -33404,7 +33409,7 @@ class ChangeDetectionSchedulerImpl {
33404
33409
  this.taskService.remove(taskId);
33405
33410
  }
33406
33411
  }
33407
- static { this.ɵfac = function ChangeDetectionSchedulerImpl_Factory(t) { return new (t || ChangeDetectionSchedulerImpl)(); }; }
33412
+ static { this.ɵfac = function ChangeDetectionSchedulerImpl_Factory(ɵt) { return new (ɵt || ChangeDetectionSchedulerImpl)(); }; }
33408
33413
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ChangeDetectionSchedulerImpl, factory: ChangeDetectionSchedulerImpl.ɵfac, providedIn: 'root' }); }
33409
33414
  }
33410
33415
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ChangeDetectionSchedulerImpl, [{
@@ -33803,7 +33808,7 @@ class PlatformRef {
33803
33808
  get destroyed() {
33804
33809
  return this._destroyed;
33805
33810
  }
33806
- static { this.ɵfac = function PlatformRef_Factory(t) { return new (t || PlatformRef)(ɵɵinject(Injector)); }; }
33811
+ static { this.ɵfac = function PlatformRef_Factory(ɵt) { return new (ɵt || PlatformRef)(ɵɵinject(Injector)); }; }
33807
33812
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: PlatformRef, factory: PlatformRef.ɵfac, providedIn: 'platform' }); }
33808
33813
  }
33809
33814
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(PlatformRef, [{
@@ -35925,7 +35930,7 @@ const platformCore = createPlatformFactory(null, 'core', []);
35925
35930
  class ApplicationModule {
35926
35931
  // Inject ApplicationRef to make it eager...
35927
35932
  constructor(appRef) { }
35928
- static { this.ɵfac = function ApplicationModule_Factory(t) { return new (t || ApplicationModule)(ɵɵinject(ApplicationRef)); }; }
35933
+ static { this.ɵfac = function ApplicationModule_Factory(ɵt) { return new (ɵt || ApplicationModule)(ɵɵinject(ApplicationRef)); }; }
35929
35934
  static { this.ɵmod = /*@__PURE__*/ ɵɵdefineNgModule({ type: ApplicationModule }); }
35930
35935
  static { this.ɵinj = /*@__PURE__*/ ɵɵdefineInjector({}); }
35931
35936
  }
@@ -36625,7 +36630,7 @@ class ImagePerformanceWarning {
36625
36630
  const oversizedHeight = intrinsicHeight - recommendedHeight >= OVERSIZED_IMAGE_TOLERANCE;
36626
36631
  return oversizedWidth || oversizedHeight;
36627
36632
  }
36628
- static { this.ɵfac = function ImagePerformanceWarning_Factory(t) { return new (t || ImagePerformanceWarning)(); }; }
36633
+ static { this.ɵfac = function ImagePerformanceWarning_Factory(ɵt) { return new (ɵt || ImagePerformanceWarning)(); }; }
36629
36634
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ImagePerformanceWarning, factory: ImagePerformanceWarning.ɵfac, providedIn: 'root' }); }
36630
36635
  }
36631
36636
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ImagePerformanceWarning, [{
@@ -36822,15 +36827,16 @@ class GlobalEventDelegation {
36822
36827
  supports(eventType) {
36823
36828
  return isEarlyEventType(eventType);
36824
36829
  }
36825
- addEventListener(element, eventType, handler) {
36826
- this.eventContractDetails.instance.addEvent(eventType);
36827
- getActionCache(element)[eventType] = '';
36828
- return () => this.removeEventListener(element, eventType, handler);
36830
+ addEventListener(element, eventName, handler) {
36831
+ this.eventContractDetails.instance.addEvent(eventName);
36832
+ sharedStashFunction(element, eventName, handler);
36833
+ getActionCache(element)[eventName] = '';
36834
+ return () => this.removeEventListener(element, eventName, handler);
36829
36835
  }
36830
36836
  removeEventListener(element, eventType, callback) {
36831
36837
  getActionCache(element)[eventType] = undefined;
36832
36838
  }
36833
- static { this.ɵfac = function GlobalEventDelegation_Factory(t) { return new (t || GlobalEventDelegation)(); }; }
36839
+ static { this.ɵfac = function GlobalEventDelegation_Factory(ɵt) { return new (ɵt || GlobalEventDelegation)(); }; }
36834
36840
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac }); }
36835
36841
  }
36836
36842
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(GlobalEventDelegation, [{
@@ -36840,8 +36846,7 @@ const initGlobalEventDelegation = (eventContractDetails, injector) => {
36840
36846
  if (injector.get(IS_EVENT_REPLAY_ENABLED, EVENT_REPLAY_ENABLED_DEFAULT)) {
36841
36847
  return;
36842
36848
  }
36843
- const eventContract = (eventContractDetails.instance = new EventContract(new EventContractContainer(document.body),
36844
- /* useActionResolver= */ false));
36849
+ const eventContract = (eventContractDetails.instance = new EventContract(new EventContractContainer(document.body)));
36845
36850
  const dispatcher = new EventDispatcher(invokeRegisteredListeners);
36846
36851
  registerDispatcher(eventContract, dispatcher);
36847
36852
  };
@@ -36929,16 +36934,16 @@ const initEventReplay = (eventDelegation, injector) => {
36929
36934
  const appId = injector.get(APP_ID);
36930
36935
  // This is set in packages/platform-server/src/utils.ts
36931
36936
  const earlyJsactionData = window._ejsas[appId];
36932
- const eventContract = (eventDelegation.instance = new EventContract(new EventContractContainer(earlyJsactionData.c),
36933
- /* useActionResolver= */ false));
36937
+ const eventContract = (eventDelegation.instance = new EventContract(new EventContractContainer(earlyJsactionData.c)));
36934
36938
  for (const et of earlyJsactionData.et) {
36935
36939
  eventContract.addEvent(et);
36936
36940
  }
36937
36941
  for (const et of earlyJsactionData.etc) {
36938
36942
  eventContract.addEvent(et);
36939
36943
  }
36940
- eventContract.replayEarlyEvents(earlyJsactionData);
36941
- window._ejsas[appId] = undefined;
36944
+ const eventInfos = getAppScopedQueuedEventInfos(appId);
36945
+ eventContract.replayEarlyEventInfos(eventInfos);
36946
+ clearAppScopedEarlyEventContract(appId);
36942
36947
  const dispatcher = new EventDispatcher(invokeRegisteredListeners);
36943
36948
  registerDispatcher(eventContract, dispatcher);
36944
36949
  };
@@ -37776,7 +37781,6 @@ function provideGlobalEventDelegation() {
37776
37781
  const injector = inject(Injector);
37777
37782
  const eventContractDetails = injector.get(JSACTION_EVENT_CONTRACT);
37778
37783
  initGlobalEventDelegation(eventContractDetails, injector);
37779
- setStashFn(sharedStashFunction);
37780
37784
  },
37781
37785
  multi: true,
37782
37786
  },
@@ -38352,5 +38356,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
38352
38356
  * Generated bundle index. Do not edit.
38353
38357
  */
38354
38358
 
38355
- 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, 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, AfterRenderEventManager as ɵAfterRenderEventManager, 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, 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, internalAfterNextRender as ɵinternalAfterNextRender, 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, queueStateUpdate as ɵqueueStateUpdate, 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 };
38359
+ 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, 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, AfterRenderEventManager as ɵAfterRenderEventManager, 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, internalAfterNextRender as ɵinternalAfterNextRender, 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, queueStateUpdate as ɵqueueStateUpdate, 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 };
38356
38360
  //# sourceMappingURL=core.mjs.map