@angular/core 18.1.2 → 18.1.4

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 (50) hide show
  1. package/esm2022/primitives/event-dispatch/src/action_resolver.mjs +6 -3
  2. package/esm2022/primitives/event-dispatch/src/event_dispatcher.mjs +4 -3
  3. package/esm2022/src/application/application_init.mjs +2 -2
  4. package/esm2022/src/application/application_module.mjs +2 -2
  5. package/esm2022/src/application/application_ref.mjs +2 -2
  6. package/esm2022/src/change_detection/scheduling/ng_zone_scheduling.mjs +3 -10
  7. package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +2 -2
  8. package/esm2022/src/console.mjs +2 -2
  9. package/esm2022/src/core_private_export.mjs +2 -1
  10. package/esm2022/src/error_handler.mjs +4 -2
  11. package/esm2022/src/event_delegation_utils.mjs +3 -3
  12. package/esm2022/src/image_performance_warning.mjs +2 -2
  13. package/esm2022/src/linker/compiler.mjs +2 -2
  14. package/esm2022/src/platform/platform_ref.mjs +2 -2
  15. package/esm2022/src/render3/component_ref.mjs +1 -1
  16. package/esm2022/src/render3/interfaces/renderer.mjs +1 -1
  17. package/esm2022/src/render3/interfaces/renderer_dom.mjs +1 -1
  18. package/esm2022/src/render3/node_manipulation.mjs +10 -14
  19. package/esm2022/src/sanitization/html_sanitizer.mjs +2 -2
  20. package/esm2022/src/sanitization/inert_body.mjs +2 -2
  21. package/esm2022/src/testability/testability.mjs +3 -3
  22. package/esm2022/src/util/callback_scheduler.mjs +26 -23
  23. package/esm2022/src/version.mjs +1 -1
  24. package/esm2022/testing/src/application_error_handler.mjs +43 -0
  25. package/esm2022/testing/src/component_fixture.mjs +13 -2
  26. package/esm2022/testing/src/logger.mjs +3 -3
  27. package/esm2022/testing/src/test_bed_common.mjs +1 -1
  28. package/esm2022/testing/src/test_bed_compiler.mjs +24 -2
  29. package/fesm2022/core.mjs +727 -733
  30. package/fesm2022/core.mjs.map +1 -1
  31. package/fesm2022/primitives/event-dispatch.mjs +9 -5
  32. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  33. package/fesm2022/primitives/signals.mjs +1 -1
  34. package/fesm2022/rxjs-interop.mjs +1 -1
  35. package/fesm2022/testing.mjs +69 -3
  36. package/fesm2022/testing.mjs.map +1 -1
  37. package/index.d.ts +11 -7
  38. package/package.json +1 -1
  39. package/primitives/event-dispatch/index.d.ts +3 -2
  40. package/primitives/signals/index.d.ts +1 -1
  41. package/rxjs-interop/index.d.ts +1 -1
  42. package/schematics/migrations/after-render-phase/bundle.js +12 -12
  43. package/schematics/migrations/http-providers/bundle.js +15 -15
  44. package/schematics/migrations/invalid-two-way-bindings/bundle.js +166 -165
  45. package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +2 -2
  46. package/schematics/ng-generate/control-flow-migration/bundle.js +174 -173
  47. package/schematics/ng-generate/control-flow-migration/bundle.js.map +2 -2
  48. package/schematics/ng-generate/standalone-migration/bundle.js +547 -514
  49. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  50. package/testing/index.d.ts +2 -1
package/fesm2022/core.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v18.1.2
2
+ * @license Angular v18.1.4
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -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]();
@@ -9219,7 +9733,7 @@ class DOMParserHelper {
9219
9733
  // the `inertDocumentHelper` instead.
9220
9734
  return this.inertDocumentHelper.getInertBodyElement(html);
9221
9735
  }
9222
- body.removeChild(body.firstChild);
9736
+ body.firstChild?.remove();
9223
9737
  return body;
9224
9738
  }
9225
9739
  catch {
@@ -9562,7 +10076,7 @@ function _sanitizeHtml(defaultDoc, unsafeHtmlInput) {
9562
10076
  if (inertBodyElement) {
9563
10077
  const parent = getTemplateContent(inertBodyElement) || inertBodyElement;
9564
10078
  while (parent.firstChild) {
9565
- parent.removeChild(parent.firstChild);
10079
+ parent.firstChild.remove();
9566
10080
  }
9567
10081
  }
9568
10082
  }
@@ -10899,14 +11413,6 @@ function nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove)
10899
11413
  nativeAppendChild(renderer, parent, child);
10900
11414
  }
10901
11415
  }
10902
- /** Removes a node from the DOM given its native parent. */
10903
- function nativeRemoveChild(renderer, parent, child, isHostElement) {
10904
- renderer.removeChild(parent, child, isHostElement);
10905
- }
10906
- /** Checks if an element is a `<template>` node. */
10907
- function isTemplateNode(node) {
10908
- return node.tagName === 'TEMPLATE' && node.content !== undefined;
10909
- }
10910
11416
  /**
10911
11417
  * Returns a native parent of a given native node.
10912
11418
  */
@@ -10999,7 +11505,11 @@ function appendChild(tView, lView, childRNode, childTNode) {
10999
11505
  function getFirstNativeNode(lView, tNode) {
11000
11506
  if (tNode !== null) {
11001
11507
  ngDevMode &&
11002
- assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */ | 12 /* TNodeType.AnyContainer */ | 32 /* TNodeType.Icu */ | 16 /* TNodeType.Projection */);
11508
+ assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */ |
11509
+ 12 /* TNodeType.AnyContainer */ |
11510
+ 32 /* TNodeType.Icu */ |
11511
+ 16 /* TNodeType.Projection */ |
11512
+ 128 /* TNodeType.LetDeclaration */);
11003
11513
  const tNodeType = tNode.type;
11004
11514
  if (tNodeType & 3 /* TNodeType.AnyRNode */) {
11005
11515
  return getNativeByTNode(tNode, lView);
@@ -11022,6 +11532,9 @@ function getFirstNativeNode(lView, tNode) {
11022
11532
  }
11023
11533
  }
11024
11534
  }
11535
+ else if (tNodeType & 128 /* TNodeType.LetDeclaration */) {
11536
+ return getFirstNativeNode(lView, tNode.next);
11537
+ }
11025
11538
  else if (tNodeType & 32 /* TNodeType.Icu */) {
11026
11539
  let nextRNode = icuContainerIterate(tNode, lView);
11027
11540
  let rNode = nextRNode();
@@ -11077,10 +11590,7 @@ function getBeforeNodeForView(viewIndexInContainer, lContainer) {
11077
11590
  */
11078
11591
  function nativeRemoveNode(renderer, rNode, isHostElement) {
11079
11592
  ngDevMode && ngDevMode.rendererRemoveNode++;
11080
- const nativeParent = nativeParentNode(renderer, rNode);
11081
- if (nativeParent) {
11082
- nativeRemoveChild(renderer, nativeParent, rNode, isHostElement);
11083
- }
11593
+ renderer.removeChild(null, rNode, isHostElement);
11084
11594
  }
11085
11595
  /**
11086
11596
  * Clears the contents of a given RElement.
@@ -15726,514 +16236,6 @@ function performanceMarkFeature(feature) {
15726
16236
  performance?.mark?.('mark_feature_usage', { detail: { feature } });
15727
16237
  }
15728
16238
 
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
16239
  /**
16238
16240
  * The phase to run an `afterRender` or `afterNextRender` callback in.
16239
16241
  *
@@ -17205,7 +17207,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
17205
17207
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
17206
17208
  if (rootSelectorOrNode) {
17207
17209
  // The placeholder will be replaced with the actual version at build time.
17208
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.2']);
17210
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.4']);
17209
17211
  }
17210
17212
  else {
17211
17213
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -19736,8 +19738,6 @@ function invokeAllTriggerCleanupFns(lDetails) {
19736
19738
  invokeTriggerCleanupFns(0 /* TriggerType.Regular */, lDetails);
19737
19739
  }
19738
19740
 
19739
- // Public API for Zone
19740
-
19741
19741
  /**
19742
19742
  * Calculates a data slot index for defer block info (either static or
19743
19743
  * instance-specific), given an index of a defer instruction.
@@ -31003,7 +31003,7 @@ class Version {
31003
31003
  /**
31004
31004
  * @publicApi
31005
31005
  */
31006
- const VERSION = new Version('18.1.2');
31006
+ const VERSION = new Version('18.1.4');
31007
31007
 
31008
31008
  /*
31009
31009
  * This file exists to support compilation of @angular/core in Ivy mode.
@@ -31035,7 +31035,7 @@ class Console {
31035
31035
  // tslint:disable-next-line:no-console
31036
31036
  console.warn(message);
31037
31037
  }
31038
- static { this.ɵfac = function Console_Factory(t) { return new (t || Console)(); }; }
31038
+ static { this.ɵfac = function Console_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Console)(); }; }
31039
31039
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Console, factory: Console.ɵfac, providedIn: 'platform' }); }
31040
31040
  }
31041
31041
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Console, [{
@@ -32099,7 +32099,7 @@ class Testability {
32099
32099
  // TODO(juliemr): implement.
32100
32100
  return [];
32101
32101
  }
32102
- static { this.ɵfac = function Testability_Factory(t) { return new (t || Testability)(ɵɵinject(NgZone), ɵɵinject(TestabilityRegistry), ɵɵinject(TESTABILITY_GETTER)); }; }
32102
+ static { this.ɵfac = function Testability_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Testability)(ɵɵinject(NgZone), ɵɵinject(TestabilityRegistry), ɵɵinject(TESTABILITY_GETTER)); }; }
32103
32103
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Testability, factory: Testability.ɵfac }); }
32104
32104
  }
32105
32105
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Testability, [{
@@ -32166,7 +32166,7 @@ class TestabilityRegistry {
32166
32166
  findTestabilityInTree(elem, findInAncestors = true) {
32167
32167
  return _testabilityGetter?.findTestabilityInTree(this, elem, findInAncestors) ?? null;
32168
32168
  }
32169
- static { this.ɵfac = function TestabilityRegistry_Factory(t) { return new (t || TestabilityRegistry)(); }; }
32169
+ static { this.ɵfac = function TestabilityRegistry_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TestabilityRegistry)(); }; }
32170
32170
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: TestabilityRegistry, factory: TestabilityRegistry.ɵfac, providedIn: 'platform' }); }
32171
32171
  }
32172
32172
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(TestabilityRegistry, [{
@@ -32373,7 +32373,7 @@ class ApplicationInitStatus {
32373
32373
  }
32374
32374
  this.initialized = true;
32375
32375
  }
32376
- static { this.ɵfac = function ApplicationInitStatus_Factory(t) { return new (t || ApplicationInitStatus)(); }; }
32376
+ static { this.ɵfac = function ApplicationInitStatus_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ApplicationInitStatus)(); }; }
32377
32377
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationInitStatus, factory: ApplicationInitStatus.ɵfac, providedIn: 'root' }); }
32378
32378
  }
32379
32379
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationInitStatus, [{
@@ -32843,7 +32843,7 @@ class ApplicationRef {
32843
32843
  console.warn(formatRuntimeError(406 /* RuntimeErrorCode.APPLICATION_REF_ALREADY_DESTROYED */, 'This instance of the `ApplicationRef` has already been destroyed.'));
32844
32844
  }
32845
32845
  }
32846
- static { this.ɵfac = function ApplicationRef_Factory(t) { return new (t || ApplicationRef)(); }; }
32846
+ static { this.ɵfac = function ApplicationRef_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ApplicationRef)(); }; }
32847
32847
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationRef, factory: ApplicationRef.ɵfac, providedIn: 'root' }); }
32848
32848
  }
32849
32849
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationRef, [{
@@ -32964,7 +32964,7 @@ class Compiler {
32964
32964
  getModuleId(moduleType) {
32965
32965
  return undefined;
32966
32966
  }
32967
- static { this.ɵfac = function Compiler_Factory(t) { return new (t || Compiler)(); }; }
32967
+ static { this.ɵfac = function Compiler_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Compiler)(); }; }
32968
32968
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Compiler, factory: Compiler.ɵfac, providedIn: 'root' }); }
32969
32969
  }
32970
32970
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Compiler, [{
@@ -33061,7 +33061,7 @@ class NgZoneChangeDetectionScheduler {
33061
33061
  ngOnDestroy() {
33062
33062
  this._onMicrotaskEmptySubscription?.unsubscribe();
33063
33063
  }
33064
- static { this.ɵfac = function NgZoneChangeDetectionScheduler_Factory(t) { return new (t || NgZoneChangeDetectionScheduler)(); }; }
33064
+ static { this.ɵfac = function NgZoneChangeDetectionScheduler_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NgZoneChangeDetectionScheduler)(); }; }
33065
33065
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: NgZoneChangeDetectionScheduler, factory: NgZoneChangeDetectionScheduler.ɵfac, providedIn: 'root' }); }
33066
33066
  }
33067
33067
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NgZoneChangeDetectionScheduler, [{
@@ -33102,17 +33102,11 @@ function internalProvideZoneChangeDetection({ ngZoneFactory, ignoreChangesOutsid
33102
33102
  };
33103
33103
  },
33104
33104
  },
33105
- { provide: INTERNAL_APPLICATION_ERROR_HANDLER, useFactory: ngZoneApplicationErrorHandlerFactory },
33106
33105
  // Always disable scheduler whenever explicitly disabled, even if another place called
33107
33106
  // `provideZoneChangeDetection` without the 'ignore' option.
33108
33107
  ignoreChangesOutsideZone === true ? { provide: ZONELESS_SCHEDULER_DISABLED, useValue: true } : [],
33109
33108
  ];
33110
33109
  }
33111
- function ngZoneApplicationErrorHandlerFactory() {
33112
- const zone = inject(NgZone);
33113
- const userErrorHandler = inject(ErrorHandler);
33114
- return (e) => zone.runOutsideAngular(() => userErrorHandler.handleError(e));
33115
- }
33116
33110
  /**
33117
33111
  * Provides `NgZone`-based change detection for the application bootstrapped using
33118
33112
  * `bootstrapApplication`.
@@ -33200,7 +33194,7 @@ class ZoneStablePendingTask {
33200
33194
  ngOnDestroy() {
33201
33195
  this.subscription.unsubscribe();
33202
33196
  }
33203
- static { this.ɵfac = function ZoneStablePendingTask_Factory(t) { return new (t || ZoneStablePendingTask)(); }; }
33197
+ static { this.ɵfac = function ZoneStablePendingTask_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ZoneStablePendingTask)(); }; }
33204
33198
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ZoneStablePendingTask, factory: ZoneStablePendingTask.ɵfac, providedIn: 'root' }); }
33205
33199
  }
33206
33200
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ZoneStablePendingTask, [{
@@ -33404,7 +33398,7 @@ class ChangeDetectionSchedulerImpl {
33404
33398
  this.taskService.remove(taskId);
33405
33399
  }
33406
33400
  }
33407
- static { this.ɵfac = function ChangeDetectionSchedulerImpl_Factory(t) { return new (t || ChangeDetectionSchedulerImpl)(); }; }
33401
+ static { this.ɵfac = function ChangeDetectionSchedulerImpl_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ChangeDetectionSchedulerImpl)(); }; }
33408
33402
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ChangeDetectionSchedulerImpl, factory: ChangeDetectionSchedulerImpl.ɵfac, providedIn: 'root' }); }
33409
33403
  }
33410
33404
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ChangeDetectionSchedulerImpl, [{
@@ -33803,7 +33797,7 @@ class PlatformRef {
33803
33797
  get destroyed() {
33804
33798
  return this._destroyed;
33805
33799
  }
33806
- static { this.ɵfac = function PlatformRef_Factory(t) { return new (t || PlatformRef)(ɵɵinject(Injector)); }; }
33800
+ static { this.ɵfac = function PlatformRef_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PlatformRef)(ɵɵinject(Injector)); }; }
33807
33801
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: PlatformRef, factory: PlatformRef.ɵfac, providedIn: 'platform' }); }
33808
33802
  }
33809
33803
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(PlatformRef, [{
@@ -35925,7 +35919,7 @@ const platformCore = createPlatformFactory(null, 'core', []);
35925
35919
  class ApplicationModule {
35926
35920
  // Inject ApplicationRef to make it eager...
35927
35921
  constructor(appRef) { }
35928
- static { this.ɵfac = function ApplicationModule_Factory(t) { return new (t || ApplicationModule)(ɵɵinject(ApplicationRef)); }; }
35922
+ static { this.ɵfac = function ApplicationModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ApplicationModule)(ɵɵinject(ApplicationRef)); }; }
35929
35923
  static { this.ɵmod = /*@__PURE__*/ ɵɵdefineNgModule({ type: ApplicationModule }); }
35930
35924
  static { this.ɵinj = /*@__PURE__*/ ɵɵdefineInjector({}); }
35931
35925
  }
@@ -36625,7 +36619,7 @@ class ImagePerformanceWarning {
36625
36619
  const oversizedHeight = intrinsicHeight - recommendedHeight >= OVERSIZED_IMAGE_TOLERANCE;
36626
36620
  return oversizedWidth || oversizedHeight;
36627
36621
  }
36628
- static { this.ɵfac = function ImagePerformanceWarning_Factory(t) { return new (t || ImagePerformanceWarning)(); }; }
36622
+ static { this.ɵfac = function ImagePerformanceWarning_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ImagePerformanceWarning)(); }; }
36629
36623
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ImagePerformanceWarning, factory: ImagePerformanceWarning.ɵfac, providedIn: 'root' }); }
36630
36624
  }
36631
36625
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ImagePerformanceWarning, [{
@@ -36831,7 +36825,7 @@ class GlobalEventDelegation {
36831
36825
  removeEventListener(element, eventType, callback) {
36832
36826
  getActionCache(element)[eventType] = undefined;
36833
36827
  }
36834
- static { this.ɵfac = function GlobalEventDelegation_Factory(t) { return new (t || GlobalEventDelegation)(); }; }
36828
+ static { this.ɵfac = function GlobalEventDelegation_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GlobalEventDelegation)(); }; }
36835
36829
  static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac }); }
36836
36830
  }
36837
36831
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(GlobalEventDelegation, [{
@@ -36842,7 +36836,7 @@ const initGlobalEventDelegation = (eventContractDetails, injector) => {
36842
36836
  return;
36843
36837
  }
36844
36838
  const eventContract = (eventContractDetails.instance = new EventContract(new EventContractContainer(document.body)));
36845
- const dispatcher = new EventDispatcher(invokeRegisteredListeners);
36839
+ const dispatcher = new EventDispatcher(invokeRegisteredListeners, /** clickModSupport */ false);
36846
36840
  registerDispatcher(eventContract, dispatcher);
36847
36841
  };
36848
36842
 
@@ -38351,5 +38345,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
38351
38345
  * Generated bundle index. Do not edit.
38352
38346
  */
38353
38347
 
38354
- 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 };
38348
+ 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 };
38355
38349
  //# sourceMappingURL=core.mjs.map