@angular/core 19.0.0-next.6 → 19.0.0-next.8
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.
- package/LICENSE +21 -0
- package/fesm2022/core.mjs +648 -273
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -1
- package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/primitives/signals.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +25 -4
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/testing.mjs +12 -11
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +232 -148
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +1 -1
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +3 -1
- package/schematics/bundles/{checker-dcf9a14e.js → checker-e68dd7ce.js} +34 -13
- package/schematics/bundles/{compiler_host-6026cdf8.js → compiler_host-9a4d0c2b.js} +2 -2
- package/schematics/bundles/control-flow-migration.js +3 -3
- package/schematics/bundles/explicit-standalone-flag.js +5 -5
- package/schematics/bundles/group_replacements-472b2387.js +31445 -0
- package/schematics/bundles/{imports-44987700.js → imports-4ac08251.js} +1 -1
- package/schematics/bundles/inject-migration.js +28 -32
- package/schematics/bundles/leading_space-d190b83b.js +30 -0
- package/schematics/bundles/{nodes-b12e919a.js → nodes-0e7d45ca.js} +2 -2
- package/schematics/bundles/pending-tasks.js +103 -0
- package/schematics/bundles/{program-4dc8c0fa.js → program-105283c5.js} +1865 -1489
- package/schematics/bundles/{project_tsconfig_paths-6c9cde78.js → project_tsconfig_paths-e9ccccbf.js} +1 -1
- package/schematics/bundles/route-lazy-loading.js +4 -4
- package/schematics/bundles/signal-input-migration.js +706 -31790
- package/schematics/bundles/signal-queries-migration.js +905 -0
- package/schematics/bundles/standalone-migration.js +12 -12
- package/schematics/collection.json +6 -0
- package/schematics/migrations.json +5 -0
- package/schematics/ng-generate/signal-input-migration/schema.json +5 -0
- package/schematics/ng-generate/signal-queries-migration/schema.json +19 -0
- package/testing/index.d.ts +3 -1
package/fesm2022/core.mjs
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.0.0-next.
|
|
2
|
+
* @license Angular v19.0.0-next.8
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';
|
|
7
|
+
import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1, isInNotificationPhase as isInNotificationPhase$1 } from '@angular/core/primitives/signals';
|
|
8
|
+
export { SIGNAL as ɵSIGNAL } from '@angular/core/primitives/signals';
|
|
8
9
|
import { BehaviorSubject, Subject, Subscription } from 'rxjs';
|
|
9
10
|
import { map, first } from 'rxjs/operators';
|
|
10
|
-
import { Attribute as Attribute$1,
|
|
11
|
+
import { Attribute as Attribute$1, EventContract, EventContractContainer, getAppScopedQueuedEventInfos, clearAppScopedEarlyEventContract, EventDispatcher, registerDispatcher, isEarlyEventType, isCaptureEventType } from '@angular/core/primitives/event-dispatch';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* Base URL for the error details page.
|
|
@@ -2409,6 +2410,7 @@ function ɵɵdefineComponent(componentDefinition) {
|
|
|
2409
2410
|
pipeDefs: null, // assigned in noSideEffects
|
|
2410
2411
|
dependencies: (baseDef.standalone && componentDefinition.dependencies) || null,
|
|
2411
2412
|
getStandaloneInjector: null,
|
|
2413
|
+
getExternalStyles: null,
|
|
2412
2414
|
signals: componentDefinition.signals ?? false,
|
|
2413
2415
|
data: componentDefinition.data || {},
|
|
2414
2416
|
encapsulation: componentDefinition.encapsulation || ViewEncapsulation$1.Emulated,
|
|
@@ -3805,7 +3807,8 @@ const ID = 19;
|
|
|
3805
3807
|
const EMBEDDED_VIEW_INJECTOR = 20;
|
|
3806
3808
|
const ON_DESTROY_HOOKS = 21;
|
|
3807
3809
|
const EFFECTS_TO_SCHEDULE = 22;
|
|
3808
|
-
const
|
|
3810
|
+
const EFFECTS = 23;
|
|
3811
|
+
const REACTIVE_TEMPLATE_CONSUMER = 24;
|
|
3809
3812
|
/**
|
|
3810
3813
|
* Size of LView's header. Necessary to adjust for it when setting slots.
|
|
3811
3814
|
*
|
|
@@ -4599,7 +4602,9 @@ function isRefreshingViews() {
|
|
|
4599
4602
|
return _isRefreshingViews;
|
|
4600
4603
|
}
|
|
4601
4604
|
function setIsRefreshingViews(mode) {
|
|
4605
|
+
const prev = _isRefreshingViews;
|
|
4602
4606
|
_isRefreshingViews = mode;
|
|
4607
|
+
return prev;
|
|
4603
4608
|
}
|
|
4604
4609
|
// top level variables should not be exported for performance reasons (PERF_NOTES.md)
|
|
4605
4610
|
function getBindingRoot() {
|
|
@@ -6520,7 +6525,7 @@ class Injector {
|
|
|
6520
6525
|
* Copyright Google LLC All Rights Reserved.
|
|
6521
6526
|
*
|
|
6522
6527
|
* Use of this source code is governed by an MIT-style license that can be
|
|
6523
|
-
* found in the LICENSE file at https://angular.
|
|
6528
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
6524
6529
|
*/
|
|
6525
6530
|
/**
|
|
6526
6531
|
* Creates a token that can be used to inject static attributes of the host node.
|
|
@@ -6697,7 +6702,7 @@ const SCHEDULE_IN_ROOT_ZONE = new InjectionToken(typeof ngDevMode === 'undefined
|
|
|
6697
6702
|
/**
|
|
6698
6703
|
* Internal implementation of the pending tasks service.
|
|
6699
6704
|
*/
|
|
6700
|
-
class
|
|
6705
|
+
class PendingTasksInternal {
|
|
6701
6706
|
constructor() {
|
|
6702
6707
|
this.taskId = 0;
|
|
6703
6708
|
this.pendingTasks = new Set();
|
|
@@ -6728,13 +6733,13 @@ class PendingTasks {
|
|
|
6728
6733
|
}
|
|
6729
6734
|
/** @nocollapse */
|
|
6730
6735
|
static { this.ɵprov = ɵɵdefineInjectable({
|
|
6731
|
-
token:
|
|
6736
|
+
token: PendingTasksInternal,
|
|
6732
6737
|
providedIn: 'root',
|
|
6733
|
-
factory: () => new
|
|
6738
|
+
factory: () => new PendingTasksInternal(),
|
|
6734
6739
|
}); }
|
|
6735
6740
|
}
|
|
6736
6741
|
/**
|
|
6737
|
-
*
|
|
6742
|
+
* Service that keeps track of pending tasks contributing to the stableness of Angular
|
|
6738
6743
|
* application. While several existing Angular services (ex.: `HttpClient`) will internally manage
|
|
6739
6744
|
* tasks influencing stability, this API gives control over stability to library and application
|
|
6740
6745
|
* developers for specific cases not covered by Angular internals.
|
|
@@ -6746,22 +6751,18 @@ class PendingTasks {
|
|
|
6746
6751
|
*
|
|
6747
6752
|
* @usageNotes
|
|
6748
6753
|
* ```typescript
|
|
6749
|
-
* const pendingTasks = inject(
|
|
6754
|
+
* const pendingTasks = inject(PendingTasks);
|
|
6750
6755
|
* const taskCleanup = pendingTasks.add();
|
|
6751
6756
|
* // do work that should block application's stability and then:
|
|
6752
6757
|
* taskCleanup();
|
|
6753
6758
|
* ```
|
|
6754
6759
|
*
|
|
6755
|
-
* This API is experimental. Neither the shape, nor the underlying behavior is stable and can change
|
|
6756
|
-
* in patch versions. We will iterate on the exact API based on the feedback and our understanding
|
|
6757
|
-
* of the problem and solution space.
|
|
6758
|
-
*
|
|
6759
6760
|
* @publicApi
|
|
6760
|
-
* @
|
|
6761
|
+
* @developerPreview
|
|
6761
6762
|
*/
|
|
6762
|
-
class
|
|
6763
|
+
class PendingTasks {
|
|
6763
6764
|
constructor() {
|
|
6764
|
-
this.internalPendingTasks = inject(
|
|
6765
|
+
this.internalPendingTasks = inject(PendingTasksInternal);
|
|
6765
6766
|
this.scheduler = inject(ChangeDetectionScheduler);
|
|
6766
6767
|
}
|
|
6767
6768
|
/**
|
|
@@ -6807,9 +6808,9 @@ class ExperimentalPendingTasks {
|
|
|
6807
6808
|
}
|
|
6808
6809
|
/** @nocollapse */
|
|
6809
6810
|
static { this.ɵprov = ɵɵdefineInjectable({
|
|
6810
|
-
token:
|
|
6811
|
+
token: PendingTasks,
|
|
6811
6812
|
providedIn: 'root',
|
|
6812
|
-
factory: () => new
|
|
6813
|
+
factory: () => new PendingTasks(),
|
|
6813
6814
|
}); }
|
|
6814
6815
|
}
|
|
6815
6816
|
|
|
@@ -6823,7 +6824,7 @@ class EventEmitter_ extends Subject {
|
|
|
6823
6824
|
// For backwards compatibility reasons, this cannot be required.
|
|
6824
6825
|
if (isInInjectionContext()) {
|
|
6825
6826
|
this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;
|
|
6826
|
-
this.pendingTasks = inject(
|
|
6827
|
+
this.pendingTasks = inject(PendingTasksInternal, { optional: true }) ?? undefined;
|
|
6827
6828
|
}
|
|
6828
6829
|
}
|
|
6829
6830
|
emit(value) {
|
|
@@ -7746,7 +7747,7 @@ class QueryList {
|
|
|
7746
7747
|
* Returns `Observable` of `QueryList` notifying the subscriber of changes.
|
|
7747
7748
|
*/
|
|
7748
7749
|
get changes() {
|
|
7749
|
-
return (this._changes ??= new
|
|
7750
|
+
return (this._changes ??= new Subject());
|
|
7750
7751
|
}
|
|
7751
7752
|
/**
|
|
7752
7753
|
* @param emitDistinctChangesOnly Whether `QueryList.changes` should fire only when actual change
|
|
@@ -7851,7 +7852,7 @@ class QueryList {
|
|
|
7851
7852
|
*/
|
|
7852
7853
|
notifyOnChanges() {
|
|
7853
7854
|
if (this._changes !== undefined && (this._changesDetected || !this._emitDistinctChangesOnly))
|
|
7854
|
-
this._changes.
|
|
7855
|
+
this._changes.next(this);
|
|
7855
7856
|
}
|
|
7856
7857
|
/** @internal */
|
|
7857
7858
|
onDirty(cb) {
|
|
@@ -7963,6 +7964,10 @@ function unregisterLView(lView) {
|
|
|
7963
7964
|
ngDevMode && assertNumber(lView[ID], 'Cannot stop tracking an LView that does not have an ID');
|
|
7964
7965
|
TRACKED_LVIEWS.delete(lView[ID]);
|
|
7965
7966
|
}
|
|
7967
|
+
/** Gets the currently-tracked views. */
|
|
7968
|
+
function getTrackedLViews() {
|
|
7969
|
+
return TRACKED_LVIEWS;
|
|
7970
|
+
}
|
|
7966
7971
|
|
|
7967
7972
|
/**
|
|
7968
7973
|
* The internal view context which is specific to a given DOM element, directive or
|
|
@@ -9470,10 +9475,6 @@ const IS_I18N_HYDRATION_ENABLED = new InjectionToken(typeof ngDevMode === 'undef
|
|
|
9470
9475
|
*/
|
|
9471
9476
|
const IS_EVENT_REPLAY_ENABLED = new InjectionToken(typeof ngDevMode === 'undefined' || !!ngDevMode ? 'IS_EVENT_REPLAY_ENABLED' : '');
|
|
9472
9477
|
const EVENT_REPLAY_ENABLED_DEFAULT = false;
|
|
9473
|
-
/**
|
|
9474
|
-
* Internal token that indicates whether global event delegation support is enabled.
|
|
9475
|
-
*/
|
|
9476
|
-
const IS_GLOBAL_EVENT_DELEGATION_ENABLED = new InjectionToken(typeof ngDevMode === 'undefined' || !!ngDevMode ? 'IS_GLOBAL_EVENT_DELEGATION_ENABLED' : '');
|
|
9477
9478
|
|
|
9478
9479
|
/**
|
|
9479
9480
|
* @fileoverview
|
|
@@ -11368,6 +11369,14 @@ function processCleanups(tView, lView) {
|
|
|
11368
11369
|
destroyHooksFn();
|
|
11369
11370
|
}
|
|
11370
11371
|
}
|
|
11372
|
+
// Destroy effects registered to the view. Many of these will have been processed above.
|
|
11373
|
+
const effects = lView[EFFECTS];
|
|
11374
|
+
if (effects !== null) {
|
|
11375
|
+
lView[EFFECTS] = null;
|
|
11376
|
+
for (const effect of effects) {
|
|
11377
|
+
effect.destroy();
|
|
11378
|
+
}
|
|
11379
|
+
}
|
|
11371
11380
|
}
|
|
11372
11381
|
/** Calls onDestroy hooks for this view */
|
|
11373
11382
|
function executeOnDestroys(tView, lView) {
|
|
@@ -13043,20 +13052,27 @@ function configureViewWithDirective(tView, tNode, lView, directiveIndex, def) {
|
|
|
13043
13052
|
lView[directiveIndex] = nodeInjectorFactory;
|
|
13044
13053
|
registerHostBindingOpCodes(tView, tNode, directiveIndex, allocExpando(tView, lView, def.hostVars, NO_CHANGE), def);
|
|
13045
13054
|
}
|
|
13055
|
+
/**
|
|
13056
|
+
* Gets the initial set of LView flags based on the component definition that the LView represents.
|
|
13057
|
+
* @param def Component definition from which to determine the flags.
|
|
13058
|
+
*/
|
|
13059
|
+
function getInitialLViewFlagsFromDef(def) {
|
|
13060
|
+
let flags = 16 /* LViewFlags.CheckAlways */;
|
|
13061
|
+
if (def.signals) {
|
|
13062
|
+
flags = 4096 /* LViewFlags.SignalView */;
|
|
13063
|
+
}
|
|
13064
|
+
else if (def.onPush) {
|
|
13065
|
+
flags = 64 /* LViewFlags.Dirty */;
|
|
13066
|
+
}
|
|
13067
|
+
return flags;
|
|
13068
|
+
}
|
|
13046
13069
|
function addComponentLogic(lView, hostTNode, def) {
|
|
13047
13070
|
const native = getNativeByTNode(hostTNode, lView);
|
|
13048
13071
|
const tView = getOrCreateComponentTView(def);
|
|
13049
13072
|
// Only component views should be added to the view tree directly. Embedded views are
|
|
13050
13073
|
// accessed through their containers because they may be removed / re-added later.
|
|
13051
13074
|
const rendererFactory = lView[ENVIRONMENT].rendererFactory;
|
|
13052
|
-
|
|
13053
|
-
if (def.signals) {
|
|
13054
|
-
lViewFlags = 4096 /* LViewFlags.SignalView */;
|
|
13055
|
-
}
|
|
13056
|
-
else if (def.onPush) {
|
|
13057
|
-
lViewFlags = 64 /* LViewFlags.Dirty */;
|
|
13058
|
-
}
|
|
13059
|
-
const componentView = addToViewTree(lView, createLView(lView, tView, null, lViewFlags, native, hostTNode, null, rendererFactory.createRenderer(native, def), null, null, null));
|
|
13075
|
+
const componentView = addToEndOfViewTree(lView, createLView(lView, tView, null, getInitialLViewFlagsFromDef(def), native, hostTNode, null, rendererFactory.createRenderer(native, def), null, null, null));
|
|
13060
13076
|
// Component view will always be created before any injected LContainers,
|
|
13061
13077
|
// so this is a regular element, wrap it with the component view
|
|
13062
13078
|
lView[hostTNode.index] = componentView;
|
|
@@ -13225,7 +13241,7 @@ function refreshContentQueries(tView, lView) {
|
|
|
13225
13241
|
* @param lViewOrLContainer The LView or LContainer to add to the view tree
|
|
13226
13242
|
* @returns The state passed in
|
|
13227
13243
|
*/
|
|
13228
|
-
function
|
|
13244
|
+
function addToEndOfViewTree(lView, lViewOrLContainer) {
|
|
13229
13245
|
// TODO(benlesh/misko): This implementation is incorrect, because it always adds the LContainer
|
|
13230
13246
|
// to the end of the queue, which means if the developer retrieves the LContainers from RNodes out
|
|
13231
13247
|
// of order, the change detection will run out of order, as the act of retrieving the the
|
|
@@ -13705,6 +13721,37 @@ function viewShouldHaveReactiveConsumer(tView) {
|
|
|
13705
13721
|
return tView.type !== 2 /* TViewType.Embedded */;
|
|
13706
13722
|
}
|
|
13707
13723
|
|
|
13724
|
+
function runEffectsInView(view) {
|
|
13725
|
+
if (view[EFFECTS] === null) {
|
|
13726
|
+
return;
|
|
13727
|
+
}
|
|
13728
|
+
// Since effects can make other effects dirty, we flush them in a loop until there are no more to
|
|
13729
|
+
// flush.
|
|
13730
|
+
let tryFlushEffects = true;
|
|
13731
|
+
while (tryFlushEffects) {
|
|
13732
|
+
let foundDirtyEffect = false;
|
|
13733
|
+
for (const effect of view[EFFECTS]) {
|
|
13734
|
+
if (!effect.dirty) {
|
|
13735
|
+
continue;
|
|
13736
|
+
}
|
|
13737
|
+
foundDirtyEffect = true;
|
|
13738
|
+
// `runEffectsInView` is called during change detection, and therefore runs
|
|
13739
|
+
// in the Angular zone if it's available.
|
|
13740
|
+
if (effect.zone === null || Zone.current === effect.zone) {
|
|
13741
|
+
effect.run();
|
|
13742
|
+
}
|
|
13743
|
+
else {
|
|
13744
|
+
effect.zone.run(() => effect.run());
|
|
13745
|
+
}
|
|
13746
|
+
}
|
|
13747
|
+
// Check if we need to continue flushing. If we didn't find any dirty effects, then there's
|
|
13748
|
+
// no need to loop back. Otherwise, check the view to see if it was marked for traversal
|
|
13749
|
+
// again. If so, there's a chance that one of the effects we ran caused another effect to
|
|
13750
|
+
// become dirty.
|
|
13751
|
+
tryFlushEffects = foundDirtyEffect && !!(view[FLAGS] & 8192 /* LViewFlags.HasChildViewsToRefresh */);
|
|
13752
|
+
}
|
|
13753
|
+
}
|
|
13754
|
+
|
|
13708
13755
|
/**
|
|
13709
13756
|
* The maximum number of times the change detection traversal will rerun before throwing an error.
|
|
13710
13757
|
*/
|
|
@@ -13731,9 +13778,6 @@ function detectChangesInternal(lView, notifyErrorHandler = true, mode = 0 /* Cha
|
|
|
13731
13778
|
finally {
|
|
13732
13779
|
if (!checkNoChangesMode) {
|
|
13733
13780
|
rendererFactory.end?.();
|
|
13734
|
-
// One final flush of the effects queue to catch any effects created in `ngAfterViewInit` or
|
|
13735
|
-
// other post-order hooks.
|
|
13736
|
-
environment.inlineEffectRunner?.flush();
|
|
13737
13781
|
}
|
|
13738
13782
|
}
|
|
13739
13783
|
}
|
|
@@ -13797,7 +13841,6 @@ function refreshView(tView, lView, templateFn, context) {
|
|
|
13797
13841
|
// since they were assigned. We do not want to execute lifecycle hooks in that mode.
|
|
13798
13842
|
const isInCheckNoChangesPass = ngDevMode && isInCheckNoChangesMode();
|
|
13799
13843
|
const isInExhaustiveCheckNoChangesPass = ngDevMode && isExhaustiveCheckNoChanges();
|
|
13800
|
-
!isInCheckNoChangesPass && lView[ENVIRONMENT].inlineEffectRunner?.flush();
|
|
13801
13844
|
// Start component reactive context
|
|
13802
13845
|
// - We might already be in a reactive context if this is an embedded view of the host.
|
|
13803
13846
|
// - We might be descending into a view that needs a consumer.
|
|
@@ -13858,6 +13901,7 @@ function refreshView(tView, lView, templateFn, context) {
|
|
|
13858
13901
|
// `LView` but its declaration appears after the insertion component.
|
|
13859
13902
|
markTransplantedViewsForRefresh(lView);
|
|
13860
13903
|
}
|
|
13904
|
+
runEffectsInView(lView);
|
|
13861
13905
|
detectChangesInEmbeddedViews(lView, 0 /* ChangeDetectionMode.Global */);
|
|
13862
13906
|
// Content query results must be refreshed before content hooks are called.
|
|
13863
13907
|
if (tView.contentQueries !== null) {
|
|
@@ -14049,6 +14093,7 @@ function detectChangesInView(lView, mode) {
|
|
|
14049
14093
|
refreshView(tView, lView, tView.template, lView[CONTEXT]);
|
|
14050
14094
|
}
|
|
14051
14095
|
else if (flags & 8192 /* LViewFlags.HasChildViewsToRefresh */) {
|
|
14096
|
+
runEffectsInView(lView);
|
|
14052
14097
|
detectChangesInEmbeddedViews(lView, 1 /* ChangeDetectionMode.Targeted */);
|
|
14053
14098
|
const components = tView.components;
|
|
14054
14099
|
if (components !== null) {
|
|
@@ -16754,8 +16799,6 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
16754
16799
|
const environment = {
|
|
16755
16800
|
rendererFactory,
|
|
16756
16801
|
sanitizer,
|
|
16757
|
-
// We don't use inline effects (yet).
|
|
16758
|
-
inlineEffectRunner: null,
|
|
16759
16802
|
changeDetectionScheduler,
|
|
16760
16803
|
};
|
|
16761
16804
|
const hostRenderer = rendererFactory.createRenderer(null, this.componentDef);
|
|
@@ -16927,18 +16970,11 @@ function createRootComponentView(tNode, hostRNode, rootComponentDef, rootDirecti
|
|
|
16927
16970
|
hydrationInfo = retrieveHydrationInfo(hostRNode, rootView[INJECTOR]);
|
|
16928
16971
|
}
|
|
16929
16972
|
const viewRenderer = environment.rendererFactory.createRenderer(hostRNode, rootComponentDef);
|
|
16930
|
-
|
|
16931
|
-
if (rootComponentDef.signals) {
|
|
16932
|
-
lViewFlags = 4096 /* LViewFlags.SignalView */;
|
|
16933
|
-
}
|
|
16934
|
-
else if (rootComponentDef.onPush) {
|
|
16935
|
-
lViewFlags = 64 /* LViewFlags.Dirty */;
|
|
16936
|
-
}
|
|
16937
|
-
const componentView = createLView(rootView, getOrCreateComponentTView(rootComponentDef), null, lViewFlags, rootView[tNode.index], tNode, environment, viewRenderer, null, null, hydrationInfo);
|
|
16973
|
+
const componentView = createLView(rootView, getOrCreateComponentTView(rootComponentDef), null, getInitialLViewFlagsFromDef(rootComponentDef), rootView[tNode.index], tNode, environment, viewRenderer, null, null, hydrationInfo);
|
|
16938
16974
|
if (tView.firstCreatePass) {
|
|
16939
16975
|
markAsComponentHost(tView, tNode, rootDirectives.length - 1);
|
|
16940
16976
|
}
|
|
16941
|
-
|
|
16977
|
+
addToEndOfViewTree(rootView, componentView);
|
|
16942
16978
|
// Store component view at node index, with node as the HOST
|
|
16943
16979
|
return (rootView[tNode.index] = componentView);
|
|
16944
16980
|
}
|
|
@@ -16993,7 +17029,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
16993
17029
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
16994
17030
|
if (rootSelectorOrNode) {
|
|
16995
17031
|
// The placeholder will be replaced with the actual version at build time.
|
|
16996
|
-
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.0-next.
|
|
17032
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.0-next.8']);
|
|
16997
17033
|
}
|
|
16998
17034
|
else {
|
|
16999
17035
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -17342,7 +17378,7 @@ function createContainerRef(hostTNode, hostLView) {
|
|
|
17342
17378
|
// `_locateOrCreateAnchorNode`).
|
|
17343
17379
|
lContainer = createLContainer(slotValue, hostLView, null, hostTNode);
|
|
17344
17380
|
hostLView[hostTNode.index] = lContainer;
|
|
17345
|
-
|
|
17381
|
+
addToEndOfViewTree(hostLView, lContainer);
|
|
17346
17382
|
}
|
|
17347
17383
|
_locateOrCreateAnchorNode(lContainer, hostLView, hostTNode, slotValue);
|
|
17348
17384
|
return new R3ViewContainerRef(lContainer, hostTNode, hostLView);
|
|
@@ -18068,7 +18104,7 @@ function viewChildRequiredFn(locator, opts) {
|
|
|
18068
18104
|
* }
|
|
18069
18105
|
* ```
|
|
18070
18106
|
*
|
|
18071
|
-
* @
|
|
18107
|
+
* @publicAPI
|
|
18072
18108
|
* @initializerApiFunction
|
|
18073
18109
|
*/
|
|
18074
18110
|
const viewChild = (() => {
|
|
@@ -18096,7 +18132,7 @@ const viewChild = (() => {
|
|
|
18096
18132
|
* ```
|
|
18097
18133
|
*
|
|
18098
18134
|
* @initializerApiFunction
|
|
18099
|
-
* @
|
|
18135
|
+
* @publicAPI
|
|
18100
18136
|
*/
|
|
18101
18137
|
function viewChildren(locator, opts) {
|
|
18102
18138
|
ngDevMode && assertInInjectionContext(viewChildren);
|
|
@@ -18129,7 +18165,7 @@ function contentChildRequiredFn(locator, opts) {
|
|
|
18129
18165
|
* ```
|
|
18130
18166
|
*
|
|
18131
18167
|
* @initializerApiFunction
|
|
18132
|
-
* @
|
|
18168
|
+
* @publicAPI
|
|
18133
18169
|
*/
|
|
18134
18170
|
const contentChild = (() => {
|
|
18135
18171
|
// Note: This may be considered a side-effect, but nothing will depend on
|
|
@@ -18156,7 +18192,7 @@ const contentChild = (() => {
|
|
|
18156
18192
|
* ```
|
|
18157
18193
|
*
|
|
18158
18194
|
* @initializerApiFunction
|
|
18159
|
-
* @
|
|
18195
|
+
* @publicAPI
|
|
18160
18196
|
*/
|
|
18161
18197
|
function contentChildren(locator, opts) {
|
|
18162
18198
|
return createMultiResultQuerySignalFn();
|
|
@@ -19338,7 +19374,7 @@ function declareTemplate(declarationLView, declarationTView, index, templateFn,
|
|
|
19338
19374
|
attachPatchData(comment, declarationLView);
|
|
19339
19375
|
const lContainer = createLContainer(comment, declarationLView, comment, tNode);
|
|
19340
19376
|
declarationLView[adjustedIndex] = lContainer;
|
|
19341
|
-
|
|
19377
|
+
addToEndOfViewTree(declarationLView, lContainer);
|
|
19342
19378
|
// If hydration is enabled, looks up dehydrated views in the DOM
|
|
19343
19379
|
// using hydration annotation info and stores those views on LContainer.
|
|
19344
19380
|
// In client-only mode, this function is a noop.
|
|
@@ -19513,7 +19549,7 @@ var DeferBlockBehavior;
|
|
|
19513
19549
|
* Copyright Google LLC All Rights Reserved.
|
|
19514
19550
|
*
|
|
19515
19551
|
* Use of this source code is governed by an MIT-style license that can be
|
|
19516
|
-
* found in the LICENSE file at https://angular.
|
|
19552
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
19517
19553
|
*/
|
|
19518
19554
|
/**
|
|
19519
19555
|
* Registers a cleanup function associated with a prefetching trigger
|
|
@@ -19743,7 +19779,7 @@ class AfterRenderSequence {
|
|
|
19743
19779
|
* one.
|
|
19744
19780
|
*/
|
|
19745
19781
|
this.pipelinedValue = undefined;
|
|
19746
|
-
this.unregisterOnDestroy = destroyRef
|
|
19782
|
+
this.unregisterOnDestroy = destroyRef?.onDestroy(() => this.destroy());
|
|
19747
19783
|
}
|
|
19748
19784
|
afterRun() {
|
|
19749
19785
|
this.erroredOrDestroyed = false;
|
|
@@ -19751,7 +19787,7 @@ class AfterRenderSequence {
|
|
|
19751
19787
|
}
|
|
19752
19788
|
destroy() {
|
|
19753
19789
|
this.impl.unregister(this);
|
|
19754
|
-
this.unregisterOnDestroy();
|
|
19790
|
+
this.unregisterOnDestroy?.();
|
|
19755
19791
|
}
|
|
19756
19792
|
}
|
|
19757
19793
|
|
|
@@ -19800,7 +19836,8 @@ function afterRenderImpl(callbackOrSpec, injector, options, once) {
|
|
|
19800
19836
|
// tree-shaken if `afterRender` and `afterNextRender` aren't used.
|
|
19801
19837
|
manager.impl ??= injector.get(AfterRenderImpl);
|
|
19802
19838
|
const hooks = options?.phase ?? AfterRenderPhase.MixedReadWrite;
|
|
19803
|
-
const
|
|
19839
|
+
const destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
|
|
19840
|
+
const sequence = new AfterRenderSequence(manager.impl, getHooks(callbackOrSpec, hooks), once, destroyRef);
|
|
19804
19841
|
manager.impl.register(sequence);
|
|
19805
19842
|
return sequence;
|
|
19806
19843
|
}
|
|
@@ -19925,7 +19962,7 @@ function isTDeferBlockDetails(value) {
|
|
|
19925
19962
|
* Copyright Google LLC All Rights Reserved.
|
|
19926
19963
|
*
|
|
19927
19964
|
* Use of this source code is governed by an MIT-style license that can be
|
|
19928
|
-
* found in the LICENSE file at https://angular.
|
|
19965
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
19929
19966
|
*/
|
|
19930
19967
|
/** Configuration object used to register passive and capturing events. */
|
|
19931
19968
|
const eventListenerOptions = {
|
|
@@ -21066,7 +21103,7 @@ function triggerResourceLoading(tDetails, lView, tNode) {
|
|
|
21066
21103
|
}
|
|
21067
21104
|
}
|
|
21068
21105
|
// Indicate that an application is not stable and has a pending task.
|
|
21069
|
-
const pendingTasks = injector.get(
|
|
21106
|
+
const pendingTasks = injector.get(PendingTasksInternal);
|
|
21070
21107
|
const taskId = pendingTasks.add();
|
|
21071
21108
|
// The `dependenciesFn` might be `null` when all dependencies within
|
|
21072
21109
|
// a given defer block were eagerly referenced elsewhere in a file,
|
|
@@ -23655,7 +23692,7 @@ function ɵɵclassMapInterpolateV(values) {
|
|
|
23655
23692
|
* Copyright Google LLC All Rights Reserved.
|
|
23656
23693
|
*
|
|
23657
23694
|
* Use of this source code is governed by an MIT-style license that can be
|
|
23658
|
-
* found in the LICENSE file at https://angular.
|
|
23695
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
23659
23696
|
*/
|
|
23660
23697
|
/**
|
|
23661
23698
|
* Instruction that returns the component instance in which the current instruction is executing.
|
|
@@ -28525,7 +28562,7 @@ function ɵɵtextInterpolateV(values) {
|
|
|
28525
28562
|
* Copyright Google LLC All Rights Reserved.
|
|
28526
28563
|
*
|
|
28527
28564
|
* Use of this source code is governed by an MIT-style license that can be
|
|
28528
|
-
* found in the LICENSE file at https://angular.
|
|
28565
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
28529
28566
|
*/
|
|
28530
28567
|
/**
|
|
28531
28568
|
* Update a two-way bound property on a selected element.
|
|
@@ -28589,7 +28626,7 @@ function ɵɵtwoWayListener(eventName, listenerFn) {
|
|
|
28589
28626
|
* Copyright Google LLC All Rights Reserved.
|
|
28590
28627
|
*
|
|
28591
28628
|
* Use of this source code is governed by an MIT-style license that can be
|
|
28592
|
-
* found in the LICENSE file at https://angular.
|
|
28629
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
28593
28630
|
*/
|
|
28594
28631
|
/** Object that indicates the value of a `@let` declaration that hasn't been initialized yet. */
|
|
28595
28632
|
const UNINITIALIZED_LET = {};
|
|
@@ -29004,6 +29041,29 @@ function ɵɵStandaloneFeature(definition) {
|
|
|
29004
29041
|
};
|
|
29005
29042
|
}
|
|
29006
29043
|
|
|
29044
|
+
/**
|
|
29045
|
+
* A feature that adds support for external runtime styles for a component.
|
|
29046
|
+
* An external runtime style is a URL to a CSS stylesheet that contains the styles
|
|
29047
|
+
* for a given component. For browsers, this URL will be used in an appended `link` element
|
|
29048
|
+
* when the component is rendered. This feature is typically used for Hot Module Replacement
|
|
29049
|
+
* (HMR) of component stylesheets by leveraging preexisting global stylesheet HMR available
|
|
29050
|
+
* in most development servers.
|
|
29051
|
+
*
|
|
29052
|
+
* @codeGenApi
|
|
29053
|
+
*/
|
|
29054
|
+
function ɵɵExternalStylesFeature(styleUrls) {
|
|
29055
|
+
return (definition) => {
|
|
29056
|
+
if (styleUrls.length < 1) {
|
|
29057
|
+
return;
|
|
29058
|
+
}
|
|
29059
|
+
definition.getExternalStyles = (encapsulationId) => {
|
|
29060
|
+
// Add encapsulation ID search parameter `component` to support external style encapsulation
|
|
29061
|
+
const urls = styleUrls.map((value) => value + '?ngcomp' + (encapsulationId ? '=' + encodeURIComponent(encapsulationId) : ''));
|
|
29062
|
+
return urls;
|
|
29063
|
+
};
|
|
29064
|
+
};
|
|
29065
|
+
}
|
|
29066
|
+
|
|
29007
29067
|
/**
|
|
29008
29068
|
* Generated next to NgModules to monkey-patch directive and pipe references onto a component's
|
|
29009
29069
|
* definition, when generating a direct reference in the component file would otherwise create an
|
|
@@ -29735,6 +29795,155 @@ function ɵsetClassDebugInfo(type, debugInfo) {
|
|
|
29735
29795
|
}
|
|
29736
29796
|
}
|
|
29737
29797
|
|
|
29798
|
+
/*!
|
|
29799
|
+
* @license
|
|
29800
|
+
* Copyright Google LLC All Rights Reserved.
|
|
29801
|
+
*
|
|
29802
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
29803
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
29804
|
+
*/
|
|
29805
|
+
/**
|
|
29806
|
+
* Replaces the metadata of a component type and re-renders all live instances of the component.
|
|
29807
|
+
* @param type Class whose metadata will be replaced.
|
|
29808
|
+
* @param applyMetadata Callback that will apply a new set of metadata on the `type` when invoked.
|
|
29809
|
+
* @codeGenApi
|
|
29810
|
+
*/
|
|
29811
|
+
function ɵɵreplaceMetadata(type, applyMetadata) {
|
|
29812
|
+
ngDevMode && assertComponentDef(type);
|
|
29813
|
+
const oldDef = getComponentDef(type);
|
|
29814
|
+
// The reason `applyMetadata` is a callback that is invoked (almost) immediately is because
|
|
29815
|
+
// the compiler usually produces more code than just the component definition, e.g. there
|
|
29816
|
+
// can be functions for embedded views, the variables for the constant pool and `setClassMetadata`
|
|
29817
|
+
// calls. The callback allows us to keep them isolate from the rest of the app and to invoke
|
|
29818
|
+
// them at the right time.
|
|
29819
|
+
applyMetadata();
|
|
29820
|
+
// If a `tView` hasn't been created yet, it means that this component hasn't been instantianted
|
|
29821
|
+
// before. In this case there's nothing left for us to do aside from patching it in.
|
|
29822
|
+
if (oldDef.tView) {
|
|
29823
|
+
const trackedViews = getTrackedLViews().values();
|
|
29824
|
+
for (const root of trackedViews) {
|
|
29825
|
+
// Note: we have the additional check, because `IsRoot` can also indicate
|
|
29826
|
+
// a component created through something like `createComponent`.
|
|
29827
|
+
if (root[FLAGS] & 512 /* LViewFlags.IsRoot */ && root[PARENT] === null) {
|
|
29828
|
+
recreateMatchingLViews(oldDef, root);
|
|
29829
|
+
}
|
|
29830
|
+
}
|
|
29831
|
+
}
|
|
29832
|
+
}
|
|
29833
|
+
/**
|
|
29834
|
+
* Finds all LViews matching a specific component definition and recreates them.
|
|
29835
|
+
* @param def Component definition to search for.
|
|
29836
|
+
* @param rootLView View from which to start the search.
|
|
29837
|
+
*/
|
|
29838
|
+
function recreateMatchingLViews(def, rootLView) {
|
|
29839
|
+
ngDevMode &&
|
|
29840
|
+
assertDefined(def.tView, 'Expected a component definition that has been instantiated at least once');
|
|
29841
|
+
const tView = rootLView[TVIEW];
|
|
29842
|
+
// Use `tView` to match the LView since `instanceof` can
|
|
29843
|
+
// produce false positives when using inheritance.
|
|
29844
|
+
if (tView === def.tView) {
|
|
29845
|
+
ngDevMode && assertComponentDef(def.type);
|
|
29846
|
+
recreateLView(getComponentDef(def.type), rootLView);
|
|
29847
|
+
return;
|
|
29848
|
+
}
|
|
29849
|
+
for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {
|
|
29850
|
+
const current = rootLView[i];
|
|
29851
|
+
if (isLContainer(current)) {
|
|
29852
|
+
for (let i = CONTAINER_HEADER_OFFSET; i < current.length; i++) {
|
|
29853
|
+
recreateMatchingLViews(def, current[i]);
|
|
29854
|
+
}
|
|
29855
|
+
}
|
|
29856
|
+
else if (isLView(current)) {
|
|
29857
|
+
recreateMatchingLViews(def, current);
|
|
29858
|
+
}
|
|
29859
|
+
}
|
|
29860
|
+
}
|
|
29861
|
+
/**
|
|
29862
|
+
* Recreates an LView in-place from a new component definition.
|
|
29863
|
+
* @param def Definition from which to recreate the view.
|
|
29864
|
+
* @param lView View to be recreated.
|
|
29865
|
+
*/
|
|
29866
|
+
function recreateLView(def, lView) {
|
|
29867
|
+
const instance = lView[CONTEXT];
|
|
29868
|
+
const host = lView[HOST];
|
|
29869
|
+
// In theory the parent can also be an LContainer, but it appears like that's
|
|
29870
|
+
// only the case for embedded views which we won't be replacing here.
|
|
29871
|
+
const parentLView = lView[PARENT];
|
|
29872
|
+
ngDevMode && assertLView(parentLView);
|
|
29873
|
+
const tNode = lView[T_HOST];
|
|
29874
|
+
ngDevMode && assertTNodeType(tNode, 2 /* TNodeType.Element */);
|
|
29875
|
+
// Recreate the TView since the template might've changed.
|
|
29876
|
+
const newTView = getOrCreateComponentTView(def);
|
|
29877
|
+
// Create a new LView from the new TView, but reusing the existing TNode and DOM node.
|
|
29878
|
+
const newLView = createLView(parentLView, newTView, instance, getInitialLViewFlagsFromDef(def), host, tNode, null, lView[ENVIRONMENT].rendererFactory.createRenderer(host, def), null, null, null);
|
|
29879
|
+
// Detach the LView from its current place in the tree so we don't
|
|
29880
|
+
// start traversing any siblings and modifying their structure.
|
|
29881
|
+
replaceLViewInTree(parentLView, lView, newLView, tNode.index);
|
|
29882
|
+
// Destroy the detached LView.
|
|
29883
|
+
destroyLView(lView[TVIEW], lView);
|
|
29884
|
+
// Remove the nodes associated with the destroyed LView. This removes the
|
|
29885
|
+
// descendants, but not the host which we want to stay in place.
|
|
29886
|
+
removeViewFromDOM(lView[TVIEW], lView);
|
|
29887
|
+
// Reset the content projection state of the TNode before the first render.
|
|
29888
|
+
// Note that this has to happen after the LView has been destroyed or we
|
|
29889
|
+
// risk some projected nodes not being removed correctly.
|
|
29890
|
+
resetProjectionState(tNode);
|
|
29891
|
+
// Creation pass for the new view.
|
|
29892
|
+
renderView(newTView, newLView, instance);
|
|
29893
|
+
// Update pass for the new view.
|
|
29894
|
+
refreshView(newTView, newLView, newTView.template, instance);
|
|
29895
|
+
}
|
|
29896
|
+
/**
|
|
29897
|
+
* Replaces one LView in the tree with another one.
|
|
29898
|
+
* @param parentLView Parent of the LView being replaced.
|
|
29899
|
+
* @param oldLView LView being replaced.
|
|
29900
|
+
* @param newLView Replacement LView to be inserted.
|
|
29901
|
+
* @param index Index at which the LView should be inserted.
|
|
29902
|
+
*/
|
|
29903
|
+
function replaceLViewInTree(parentLView, oldLView, newLView, index) {
|
|
29904
|
+
// Update the sibling whose `NEXT` pointer refers to the old view.
|
|
29905
|
+
for (let i = HEADER_OFFSET; i < parentLView[TVIEW].bindingStartIndex; i++) {
|
|
29906
|
+
const current = parentLView[i];
|
|
29907
|
+
if ((isLView(current) || isLContainer(current)) && current[NEXT] === oldLView) {
|
|
29908
|
+
current[NEXT] = newLView;
|
|
29909
|
+
break;
|
|
29910
|
+
}
|
|
29911
|
+
}
|
|
29912
|
+
// Set the new view as the head, if the old view was first.
|
|
29913
|
+
if (parentLView[CHILD_HEAD] === oldLView) {
|
|
29914
|
+
parentLView[CHILD_HEAD] = newLView;
|
|
29915
|
+
}
|
|
29916
|
+
// Set the new view as the tail, if the old view was last.
|
|
29917
|
+
if (parentLView[CHILD_TAIL] === oldLView) {
|
|
29918
|
+
parentLView[CHILD_TAIL] = newLView;
|
|
29919
|
+
}
|
|
29920
|
+
// Update the `NEXT` pointer to the same as the old view.
|
|
29921
|
+
newLView[NEXT] = oldLView[NEXT];
|
|
29922
|
+
// Clear out the `NEXT` of the old view.
|
|
29923
|
+
oldLView[NEXT] = null;
|
|
29924
|
+
// Insert the new LView at the correct index.
|
|
29925
|
+
parentLView[index] = newLView;
|
|
29926
|
+
}
|
|
29927
|
+
/**
|
|
29928
|
+
* Child nodes mutate the `projection` state of their parent node as they're being projected.
|
|
29929
|
+
* This function resets the `project` back to its initial state.
|
|
29930
|
+
* @param tNode
|
|
29931
|
+
*/
|
|
29932
|
+
function resetProjectionState(tNode) {
|
|
29933
|
+
// The `projection` is mutated by child nodes as they're being projected. We need to
|
|
29934
|
+
// reset it to the initial state so projection works after the template is swapped out.
|
|
29935
|
+
if (tNode.projection !== null) {
|
|
29936
|
+
for (const current of tNode.projection) {
|
|
29937
|
+
if (isTNodeShape(current)) {
|
|
29938
|
+
// Reset `projectionNext` since it can affect the traversal order during projection.
|
|
29939
|
+
current.projectionNext = null;
|
|
29940
|
+
current.flags &= ~2 /* TNodeFlags.isProjected */;
|
|
29941
|
+
}
|
|
29942
|
+
}
|
|
29943
|
+
tNode.projection = null;
|
|
29944
|
+
}
|
|
29945
|
+
}
|
|
29946
|
+
|
|
29738
29947
|
/**
|
|
29739
29948
|
* A mapping of the @angular/core API surface used in generated expressions to the actual symbols.
|
|
29740
29949
|
*
|
|
@@ -29772,6 +29981,7 @@ const angularCoreEnv = (() => ({
|
|
|
29772
29981
|
'ɵɵInheritDefinitionFeature': ɵɵInheritDefinitionFeature,
|
|
29773
29982
|
'ɵɵInputTransformsFeature': ɵɵInputTransformsFeature,
|
|
29774
29983
|
'ɵɵStandaloneFeature': ɵɵStandaloneFeature,
|
|
29984
|
+
'ɵɵExternalStylesFeature': ɵɵExternalStylesFeature,
|
|
29775
29985
|
'ɵɵnextContext': ɵɵnextContext,
|
|
29776
29986
|
'ɵɵnamespaceHTML': ɵɵnamespaceHTML,
|
|
29777
29987
|
'ɵɵnamespaceMathML': ɵɵnamespaceMathML,
|
|
@@ -29933,6 +30143,7 @@ const angularCoreEnv = (() => ({
|
|
|
29933
30143
|
'ɵɵtwoWayProperty': ɵɵtwoWayProperty,
|
|
29934
30144
|
'ɵɵtwoWayBindingSet': ɵɵtwoWayBindingSet,
|
|
29935
30145
|
'ɵɵtwoWayListener': ɵɵtwoWayListener,
|
|
30146
|
+
'ɵɵreplaceMetadata': ɵɵreplaceMetadata,
|
|
29936
30147
|
}))();
|
|
29937
30148
|
|
|
29938
30149
|
let jitOptions = null;
|
|
@@ -30649,6 +30860,9 @@ function compileComponent(type, metadata) {
|
|
|
30649
30860
|
}
|
|
30650
30861
|
return ngComponentDef;
|
|
30651
30862
|
},
|
|
30863
|
+
set: (def) => {
|
|
30864
|
+
ngComponentDef = def;
|
|
30865
|
+
},
|
|
30652
30866
|
// Make the property configurable in dev mode to allow overriding in tests
|
|
30653
30867
|
configurable: !!ngDevMode,
|
|
30654
30868
|
});
|
|
@@ -31100,7 +31314,7 @@ class Version {
|
|
|
31100
31314
|
/**
|
|
31101
31315
|
* @publicApi
|
|
31102
31316
|
*/
|
|
31103
|
-
const VERSION = new Version('19.0.0-next.
|
|
31317
|
+
const VERSION = new Version('19.0.0-next.8');
|
|
31104
31318
|
|
|
31105
31319
|
/*
|
|
31106
31320
|
* This file exists to support compilation of @angular/core in Ivy mode.
|
|
@@ -32478,6 +32692,79 @@ class ApplicationInitStatus {
|
|
|
32478
32692
|
args: [{ providedIn: 'root' }]
|
|
32479
32693
|
}], () => [], null); })();
|
|
32480
32694
|
|
|
32695
|
+
/**
|
|
32696
|
+
* A scheduler which manages the execution of effects.
|
|
32697
|
+
*/
|
|
32698
|
+
class EffectScheduler {
|
|
32699
|
+
/** @nocollapse */
|
|
32700
|
+
static { this.ɵprov = ɵɵdefineInjectable({
|
|
32701
|
+
token: EffectScheduler,
|
|
32702
|
+
providedIn: 'root',
|
|
32703
|
+
factory: () => new ZoneAwareEffectScheduler(),
|
|
32704
|
+
}); }
|
|
32705
|
+
}
|
|
32706
|
+
/**
|
|
32707
|
+
* A wrapper around `ZoneAwareQueueingScheduler` that schedules flushing via the microtask queue
|
|
32708
|
+
* when.
|
|
32709
|
+
*/
|
|
32710
|
+
class ZoneAwareEffectScheduler {
|
|
32711
|
+
constructor() {
|
|
32712
|
+
this.queuedEffectCount = 0;
|
|
32713
|
+
this.queues = new Map();
|
|
32714
|
+
this.pendingTasks = inject(PendingTasksInternal);
|
|
32715
|
+
this.taskId = null;
|
|
32716
|
+
}
|
|
32717
|
+
schedule(handle) {
|
|
32718
|
+
this.enqueue(handle);
|
|
32719
|
+
if (this.taskId === null) {
|
|
32720
|
+
this.taskId = this.pendingTasks.add();
|
|
32721
|
+
}
|
|
32722
|
+
}
|
|
32723
|
+
enqueue(handle) {
|
|
32724
|
+
const zone = handle.zone;
|
|
32725
|
+
if (!this.queues.has(zone)) {
|
|
32726
|
+
this.queues.set(zone, new Set());
|
|
32727
|
+
}
|
|
32728
|
+
const queue = this.queues.get(zone);
|
|
32729
|
+
if (queue.has(handle)) {
|
|
32730
|
+
return;
|
|
32731
|
+
}
|
|
32732
|
+
this.queuedEffectCount++;
|
|
32733
|
+
queue.add(handle);
|
|
32734
|
+
}
|
|
32735
|
+
/**
|
|
32736
|
+
* Run all scheduled effects.
|
|
32737
|
+
*
|
|
32738
|
+
* Execution order of effects within the same zone is guaranteed to be FIFO, but there is no
|
|
32739
|
+
* ordering guarantee between effects scheduled in different zones.
|
|
32740
|
+
*/
|
|
32741
|
+
flush() {
|
|
32742
|
+
while (this.queuedEffectCount > 0) {
|
|
32743
|
+
for (const [zone, queue] of this.queues) {
|
|
32744
|
+
// `zone` here must be defined.
|
|
32745
|
+
if (zone === null) {
|
|
32746
|
+
this.flushQueue(queue);
|
|
32747
|
+
}
|
|
32748
|
+
else {
|
|
32749
|
+
zone.run(() => this.flushQueue(queue));
|
|
32750
|
+
}
|
|
32751
|
+
}
|
|
32752
|
+
}
|
|
32753
|
+
if (this.taskId !== null) {
|
|
32754
|
+
this.pendingTasks.remove(this.taskId);
|
|
32755
|
+
this.taskId = null;
|
|
32756
|
+
}
|
|
32757
|
+
}
|
|
32758
|
+
flushQueue(queue) {
|
|
32759
|
+
for (const handle of queue) {
|
|
32760
|
+
queue.delete(handle);
|
|
32761
|
+
this.queuedEffectCount--;
|
|
32762
|
+
// TODO: what happens if this throws an error?
|
|
32763
|
+
handle.run();
|
|
32764
|
+
}
|
|
32765
|
+
}
|
|
32766
|
+
}
|
|
32767
|
+
|
|
32481
32768
|
/**
|
|
32482
32769
|
* A DI token that provides a set of callbacks to
|
|
32483
32770
|
* be called for every component that is bootstrapped.
|
|
@@ -32648,6 +32935,7 @@ class ApplicationRef {
|
|
|
32648
32935
|
this.internalErrorHandler = inject(INTERNAL_APPLICATION_ERROR_HANDLER);
|
|
32649
32936
|
this.afterRenderManager = inject(AfterRenderManager);
|
|
32650
32937
|
this.zonelessEnabled = inject(ZONELESS_ENABLED);
|
|
32938
|
+
this.rootEffectScheduler = inject(EffectScheduler);
|
|
32651
32939
|
/**
|
|
32652
32940
|
* Current dirty state of the application across a number of dimensions (views, afterRender hooks,
|
|
32653
32941
|
* etc).
|
|
@@ -32680,7 +32968,7 @@ class ApplicationRef {
|
|
|
32680
32968
|
/**
|
|
32681
32969
|
* Returns an Observable that indicates when the application is stable or unstable.
|
|
32682
32970
|
*/
|
|
32683
|
-
this.isStable = inject(
|
|
32971
|
+
this.isStable = inject(PendingTasksInternal).hasPendingTasks.pipe(map((pending) => !pending));
|
|
32684
32972
|
this._injector = inject(EnvironmentInjector);
|
|
32685
32973
|
}
|
|
32686
32974
|
/** @internal */
|
|
@@ -32868,6 +33156,11 @@ class ApplicationRef {
|
|
|
32868
33156
|
// If we happened to loop, deferred dirtiness can be processed as active dirtiness again.
|
|
32869
33157
|
this.dirtyFlags |= this.deferredDirtyFlags;
|
|
32870
33158
|
this.deferredDirtyFlags = 0 /* ApplicationRefDirtyFlags.None */;
|
|
33159
|
+
// First, process any dirty root effects.
|
|
33160
|
+
if (this.dirtyFlags & 16 /* ApplicationRefDirtyFlags.RootEffects */) {
|
|
33161
|
+
this.dirtyFlags &= ~16 /* ApplicationRefDirtyFlags.RootEffects */;
|
|
33162
|
+
this.rootEffectScheduler.flush();
|
|
33163
|
+
}
|
|
32871
33164
|
// First check dirty views, if there are any.
|
|
32872
33165
|
if (this.dirtyFlags & 7 /* ApplicationRefDirtyFlags.ViewTreeAny */) {
|
|
32873
33166
|
// Change detection on views starts in targeted mode (only check components if they're
|
|
@@ -32888,8 +33181,10 @@ class ApplicationRef {
|
|
|
32888
33181
|
this.dirtyFlags &= ~4 /* ApplicationRefDirtyFlags.ViewTreeCheck */;
|
|
32889
33182
|
// Check if any views are still dirty after checking and we need to loop back.
|
|
32890
33183
|
this.syncDirtyFlagsWithViews();
|
|
32891
|
-
if (this.dirtyFlags &
|
|
32892
|
-
|
|
33184
|
+
if (this.dirtyFlags &
|
|
33185
|
+
(7 /* ApplicationRefDirtyFlags.ViewTreeAny */ | 16 /* ApplicationRefDirtyFlags.RootEffects */)) {
|
|
33186
|
+
// If any views or effects are still dirty after checking, loop back before running render
|
|
33187
|
+
// hooks.
|
|
32893
33188
|
return;
|
|
32894
33189
|
}
|
|
32895
33190
|
}
|
|
@@ -33349,7 +33644,7 @@ class ZoneStablePendingTask {
|
|
|
33349
33644
|
this.subscription = new Subscription();
|
|
33350
33645
|
this.initialized = false;
|
|
33351
33646
|
this.zone = inject(NgZone);
|
|
33352
|
-
this.pendingTasks = inject(
|
|
33647
|
+
this.pendingTasks = inject(PendingTasksInternal);
|
|
33353
33648
|
}
|
|
33354
33649
|
initialize() {
|
|
33355
33650
|
if (this.initialized) {
|
|
@@ -33411,7 +33706,7 @@ function trackMicrotaskNotificationForDebugging() {
|
|
|
33411
33706
|
class ChangeDetectionSchedulerImpl {
|
|
33412
33707
|
constructor() {
|
|
33413
33708
|
this.appRef = inject(ApplicationRef);
|
|
33414
|
-
this.taskService = inject(
|
|
33709
|
+
this.taskService = inject(PendingTasksInternal);
|
|
33415
33710
|
this.ngZone = inject(NgZone);
|
|
33416
33711
|
this.zonelessEnabled = inject(ZONELESS_ENABLED);
|
|
33417
33712
|
this.disableScheduling = inject(ZONELESS_SCHEDULER_DISABLED, { optional: true }) ?? false;
|
|
@@ -33494,6 +33789,10 @@ class ChangeDetectionSchedulerImpl {
|
|
|
33494
33789
|
force = true;
|
|
33495
33790
|
break;
|
|
33496
33791
|
}
|
|
33792
|
+
case 13 /* NotificationSource.RootEffect */: {
|
|
33793
|
+
this.appRef.dirtyFlags |= 16 /* ApplicationRefDirtyFlags.RootEffects */;
|
|
33794
|
+
break;
|
|
33795
|
+
}
|
|
33497
33796
|
case 12 /* NotificationSource.PendingTaskRemoved */: {
|
|
33498
33797
|
// Removing a pending task via the public API forces a scheduled tick, ensuring that
|
|
33499
33798
|
// stability is async and delayed until there was at least an opportunity to run
|
|
@@ -33962,12 +34261,10 @@ class ImagePerformanceWarning {
|
|
|
33962
34261
|
let lcpElementFound, lcpElementLoadedCorrectly = false;
|
|
33963
34262
|
images.forEach((image) => {
|
|
33964
34263
|
if (!this.options?.disableImageSizeWarning) {
|
|
33965
|
-
|
|
33966
|
-
|
|
33967
|
-
|
|
33968
|
-
|
|
33969
|
-
logOversizedImageWarning(image.src);
|
|
33970
|
-
}
|
|
34264
|
+
// Image elements using the NgOptimizedImage directive are excluded,
|
|
34265
|
+
// as that directive has its own version of this check.
|
|
34266
|
+
if (!image.getAttribute('ng-img') && this.isOversized(image)) {
|
|
34267
|
+
logOversizedImageWarning(image.src);
|
|
33971
34268
|
}
|
|
33972
34269
|
}
|
|
33973
34270
|
if (!this.options?.disableImageLazyLoadWarning && this.lcpImageUrl) {
|
|
@@ -33994,6 +34291,24 @@ class ImagePerformanceWarning {
|
|
|
33994
34291
|
if (!this.window) {
|
|
33995
34292
|
return false;
|
|
33996
34293
|
}
|
|
34294
|
+
// The `isOversized` check may not be applicable or may require adjustments
|
|
34295
|
+
// for several types of image formats or scenarios. Currently, we specify only
|
|
34296
|
+
// `svg`, but this may also include `gif` since their quality isn’t tied to
|
|
34297
|
+
// dimensions in the same way as raster images.
|
|
34298
|
+
const nonOversizedImageExtentions = [
|
|
34299
|
+
// SVG images are vector-based, which means they can scale
|
|
34300
|
+
// to any size without losing quality.
|
|
34301
|
+
'.svg',
|
|
34302
|
+
];
|
|
34303
|
+
// Convert it to lowercase because this may have uppercase
|
|
34304
|
+
// extensions, such as `IMAGE.SVG`.
|
|
34305
|
+
// We fallback to an empty string because `src` may be `undefined`
|
|
34306
|
+
// if it is explicitly set to `null` by some third-party code
|
|
34307
|
+
// (e.g., `image.src = null`).
|
|
34308
|
+
const imageSource = (image.src || '').toLowerCase();
|
|
34309
|
+
if (nonOversizedImageExtentions.some((extension) => imageSource.endsWith(extension))) {
|
|
34310
|
+
return false;
|
|
34311
|
+
}
|
|
33997
34312
|
const computedStyle = this.window.getComputedStyle(image);
|
|
33998
34313
|
let renderedWidth = parseFloat(computedStyle.getPropertyValue('width'));
|
|
33999
34314
|
let renderedHeight = parseFloat(computedStyle.getPropertyValue('height'));
|
|
@@ -34005,6 +34320,8 @@ class ImagePerformanceWarning {
|
|
|
34005
34320
|
return false;
|
|
34006
34321
|
}
|
|
34007
34322
|
if (boxSizing === 'border-box') {
|
|
34323
|
+
// If the image `box-sizing` is set to `border-box`, we adjust the rendered
|
|
34324
|
+
// dimensions by subtracting padding values.
|
|
34008
34325
|
const paddingTop = computedStyle.getPropertyValue('padding-top');
|
|
34009
34326
|
const paddingRight = computedStyle.getPropertyValue('padding-right');
|
|
34010
34327
|
const paddingBottom = computedStyle.getPropertyValue('padding-bottom');
|
|
@@ -37012,7 +37329,6 @@ function getDeferBlocks(lView, deferBlocks) {
|
|
|
37012
37329
|
}
|
|
37013
37330
|
}
|
|
37014
37331
|
|
|
37015
|
-
// tslint:disable:no-duplicate-imports
|
|
37016
37332
|
function invokeRegisteredListeners(event) {
|
|
37017
37333
|
const handlerFns = event.currentTarget?.__jsaction_fns?.get(event.type);
|
|
37018
37334
|
if (!handlerFns) {
|
|
@@ -37046,71 +37362,16 @@ const JSACTION_EVENT_CONTRACT = new InjectionToken(ngDevMode ? 'EVENT_CONTRACT_D
|
|
|
37046
37362
|
providedIn: 'root',
|
|
37047
37363
|
factory: () => ({}),
|
|
37048
37364
|
});
|
|
37049
|
-
const GLOBAL_EVENT_DELEGATION = new InjectionToken(ngDevMode ? 'GLOBAL_EVENT_DELEGATION' : '');
|
|
37050
|
-
/**
|
|
37051
|
-
* This class is the delegate for `EventDelegationPlugin`. It represents the
|
|
37052
|
-
* noop version of this class, with the enabled version set when
|
|
37053
|
-
* `provideGlobalEventDelegation` is called.
|
|
37054
|
-
*/
|
|
37055
|
-
class GlobalEventDelegation {
|
|
37056
|
-
constructor() {
|
|
37057
|
-
this.eventContractDetails = inject(JSACTION_EVENT_CONTRACT);
|
|
37058
|
-
}
|
|
37059
|
-
ngOnDestroy() {
|
|
37060
|
-
this.eventContractDetails.instance?.cleanUp();
|
|
37061
|
-
}
|
|
37062
|
-
supports(eventType) {
|
|
37063
|
-
return isEarlyEventType(eventType);
|
|
37064
|
-
}
|
|
37065
|
-
addEventListener(element, eventType, handler) {
|
|
37066
|
-
// Note: contrary to the type, Window and Document can be passed in
|
|
37067
|
-
// as well.
|
|
37068
|
-
if (element.nodeType === Node.ELEMENT_NODE) {
|
|
37069
|
-
this.eventContractDetails.instance.addEvent(eventType);
|
|
37070
|
-
getActionCache(element)[eventType] = '';
|
|
37071
|
-
sharedStashFunction(element, eventType, handler);
|
|
37072
|
-
}
|
|
37073
|
-
else {
|
|
37074
|
-
element.addEventListener(eventType, handler);
|
|
37075
|
-
}
|
|
37076
|
-
return () => this.removeEventListener(element, eventType, handler);
|
|
37077
|
-
}
|
|
37078
|
-
removeEventListener(element, eventType, callback) {
|
|
37079
|
-
if (element.nodeType === Node.ELEMENT_NODE) {
|
|
37080
|
-
getActionCache(element)[eventType] = undefined;
|
|
37081
|
-
}
|
|
37082
|
-
else {
|
|
37083
|
-
element.removeEventListener(eventType, callback);
|
|
37084
|
-
}
|
|
37085
|
-
}
|
|
37086
|
-
static { this.ɵfac = function GlobalEventDelegation_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || GlobalEventDelegation)(); }; }
|
|
37087
|
-
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac }); }
|
|
37088
|
-
}
|
|
37089
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(GlobalEventDelegation, [{
|
|
37090
|
-
type: Injectable
|
|
37091
|
-
}], null, null); })();
|
|
37092
|
-
const initGlobalEventDelegation = (eventContractDetails, injector) => {
|
|
37093
|
-
if (injector.get(IS_EVENT_REPLAY_ENABLED, EVENT_REPLAY_ENABLED_DEFAULT)) {
|
|
37094
|
-
return;
|
|
37095
|
-
}
|
|
37096
|
-
const eventContract = (eventContractDetails.instance = new EventContract(new EventContractContainer(document.body)));
|
|
37097
|
-
const dispatcher = new EventDispatcher(invokeRegisteredListeners, /** clickModSupport */ false);
|
|
37098
|
-
registerDispatcher(eventContract, dispatcher);
|
|
37099
|
-
};
|
|
37100
37365
|
|
|
37101
37366
|
/**
|
|
37102
37367
|
* A set of DOM elements with `jsaction` attributes.
|
|
37103
37368
|
*/
|
|
37104
37369
|
const jsactionSet = new Set();
|
|
37105
|
-
function isGlobalEventDelegationEnabled(injector) {
|
|
37106
|
-
return injector.get(IS_GLOBAL_EVENT_DELEGATION_ENABLED, false);
|
|
37107
|
-
}
|
|
37108
37370
|
/**
|
|
37109
37371
|
* Determines whether Event Replay feature should be activated on the client.
|
|
37110
37372
|
*/
|
|
37111
37373
|
function shouldEnableEventReplay(injector) {
|
|
37112
|
-
return
|
|
37113
|
-
!isGlobalEventDelegationEnabled(injector));
|
|
37374
|
+
return injector.get(IS_EVENT_REPLAY_ENABLED, EVENT_REPLAY_ENABLED_DEFAULT);
|
|
37114
37375
|
}
|
|
37115
37376
|
/**
|
|
37116
37377
|
* Returns a set of providers required to setup support for event replay.
|
|
@@ -37865,6 +38126,19 @@ function whenStableWithTimeout(appRef, injector) {
|
|
|
37865
38126
|
}
|
|
37866
38127
|
return whenStablePromise;
|
|
37867
38128
|
}
|
|
38129
|
+
/**
|
|
38130
|
+
* Defines a name of an attribute that is added to the <body> tag
|
|
38131
|
+
* in the `index.html` file in case a given route was configured
|
|
38132
|
+
* with `RenderMode.Client`. 'cm' is an abbreviation for "Client Mode".
|
|
38133
|
+
*/
|
|
38134
|
+
const CLIENT_RENDER_MODE_FLAG = 'ngcm';
|
|
38135
|
+
/**
|
|
38136
|
+
* Checks whether the `RenderMode.Client` was defined for the current route.
|
|
38137
|
+
*/
|
|
38138
|
+
function isClientRenderModeEnabled() {
|
|
38139
|
+
const doc = getDocument();
|
|
38140
|
+
return isPlatformBrowser() && doc.body.hasAttribute(CLIENT_RENDER_MODE_FLAG);
|
|
38141
|
+
}
|
|
37868
38142
|
/**
|
|
37869
38143
|
* Returns a set of providers required to setup hydration support
|
|
37870
38144
|
* for an application that is server side rendered. This function is
|
|
@@ -37886,16 +38160,6 @@ function withDomHydration() {
|
|
|
37886
38160
|
// hydration annotations. Otherwise, keep hydration disabled.
|
|
37887
38161
|
const transferState = inject(TransferState, { optional: true });
|
|
37888
38162
|
isEnabled = !!transferState?.get(NGH_DATA_KEY, null);
|
|
37889
|
-
if (!isEnabled && typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
37890
|
-
const console = inject(Console);
|
|
37891
|
-
const message = formatRuntimeError(-505 /* RuntimeErrorCode.MISSING_HYDRATION_ANNOTATIONS */, 'Angular hydration was requested on the client, but there was no ' +
|
|
37892
|
-
'serialized information present in the server response, ' +
|
|
37893
|
-
'thus hydration was not enabled. ' +
|
|
37894
|
-
'Make sure the `provideClientHydration()` is included into the list ' +
|
|
37895
|
-
'of providers in the server part of the application configuration.');
|
|
37896
|
-
// tslint:disable-next-line:no-console
|
|
37897
|
-
console.warn(message);
|
|
37898
|
-
}
|
|
37899
38163
|
}
|
|
37900
38164
|
if (isEnabled) {
|
|
37901
38165
|
performanceMarkFeature('NgHydration');
|
|
@@ -37909,15 +38173,27 @@ function withDomHydration() {
|
|
|
37909
38173
|
// i18n support is enabled by calling withI18nSupport(), but there's
|
|
37910
38174
|
// no way to turn it off (e.g. for tests), so we turn it off by default.
|
|
37911
38175
|
setIsI18nHydrationSupportEnabled(false);
|
|
37912
|
-
|
|
37913
|
-
|
|
37914
|
-
|
|
37915
|
-
|
|
37916
|
-
|
|
37917
|
-
|
|
38176
|
+
if (!isPlatformBrowser()) {
|
|
38177
|
+
// Since this function is used across both server and client,
|
|
38178
|
+
// make sure that the runtime code is only added when invoked
|
|
38179
|
+
// on the client (see the `enableHydrationRuntimeSupport` function
|
|
38180
|
+
// call below).
|
|
38181
|
+
return;
|
|
38182
|
+
}
|
|
38183
|
+
if (inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
37918
38184
|
verifySsrContentsIntegrity();
|
|
37919
38185
|
enableHydrationRuntimeSupport();
|
|
37920
38186
|
}
|
|
38187
|
+
else if (typeof ngDevMode !== 'undefined' && ngDevMode && !isClientRenderModeEnabled()) {
|
|
38188
|
+
const console = inject(Console);
|
|
38189
|
+
const message = formatRuntimeError(-505 /* RuntimeErrorCode.MISSING_HYDRATION_ANNOTATIONS */, 'Angular hydration was requested on the client, but there was no ' +
|
|
38190
|
+
'serialized information present in the server response, ' +
|
|
38191
|
+
'thus hydration was not enabled. ' +
|
|
38192
|
+
'Make sure the `provideClientHydration()` is included into the list ' +
|
|
38193
|
+
'of providers in the server part of the application configuration.');
|
|
38194
|
+
// tslint:disable-next-line:no-console
|
|
38195
|
+
console.warn(message);
|
|
38196
|
+
}
|
|
37921
38197
|
},
|
|
37922
38198
|
multi: true,
|
|
37923
38199
|
},
|
|
@@ -37967,14 +38243,16 @@ function withI18nSupport() {
|
|
|
37967
38243
|
return [
|
|
37968
38244
|
{
|
|
37969
38245
|
provide: IS_I18N_HYDRATION_ENABLED,
|
|
37970
|
-
|
|
38246
|
+
useFactory: () => inject(IS_HYDRATION_DOM_REUSE_ENABLED),
|
|
37971
38247
|
},
|
|
37972
38248
|
{
|
|
37973
38249
|
provide: ENVIRONMENT_INITIALIZER,
|
|
37974
38250
|
useValue: () => {
|
|
37975
|
-
|
|
37976
|
-
|
|
37977
|
-
|
|
38251
|
+
if (inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
38252
|
+
enableI18nHydrationRuntimeSupport();
|
|
38253
|
+
setIsI18nHydrationSupportEnabled(true);
|
|
38254
|
+
performanceMarkFeature('NgI18nHydration');
|
|
38255
|
+
}
|
|
37978
38256
|
},
|
|
37979
38257
|
multi: true,
|
|
37980
38258
|
},
|
|
@@ -38020,38 +38298,6 @@ function verifySsrContentsIntegrity() {
|
|
|
38020
38298
|
}
|
|
38021
38299
|
}
|
|
38022
38300
|
|
|
38023
|
-
/**
|
|
38024
|
-
* Returns a set of providers required to setup support for event delegation.
|
|
38025
|
-
* @param multiContract - Experimental support to provide one event contract
|
|
38026
|
-
* when there are multiple binaries on the page.
|
|
38027
|
-
*/
|
|
38028
|
-
function provideGlobalEventDelegation(multiContract = false) {
|
|
38029
|
-
return [
|
|
38030
|
-
{
|
|
38031
|
-
provide: IS_GLOBAL_EVENT_DELEGATION_ENABLED,
|
|
38032
|
-
useValue: true,
|
|
38033
|
-
},
|
|
38034
|
-
{
|
|
38035
|
-
provide: ENVIRONMENT_INITIALIZER,
|
|
38036
|
-
useValue: () => {
|
|
38037
|
-
const injector = inject(Injector);
|
|
38038
|
-
const eventContractDetails = injector.get(JSACTION_EVENT_CONTRACT);
|
|
38039
|
-
if (multiContract && window.__jsaction_contract) {
|
|
38040
|
-
eventContractDetails.instance = window.__jsaction_contract;
|
|
38041
|
-
return;
|
|
38042
|
-
}
|
|
38043
|
-
initGlobalEventDelegation(eventContractDetails, injector);
|
|
38044
|
-
window.__jsaction_contract = eventContractDetails.instance;
|
|
38045
|
-
},
|
|
38046
|
-
multi: true,
|
|
38047
|
-
},
|
|
38048
|
-
{
|
|
38049
|
-
provide: GLOBAL_EVENT_DELEGATION,
|
|
38050
|
-
useClass: GlobalEventDelegation,
|
|
38051
|
-
},
|
|
38052
|
-
];
|
|
38053
|
-
}
|
|
38054
|
-
|
|
38055
38301
|
/**
|
|
38056
38302
|
* Transforms a value (typically a string) to a boolean.
|
|
38057
38303
|
* Intended to be used as a transform function of an input.
|
|
@@ -38246,99 +38492,54 @@ function untracked(nonReactiveReadsFn) {
|
|
|
38246
38492
|
}
|
|
38247
38493
|
}
|
|
38248
38494
|
|
|
38495
|
+
class ViewContext {
|
|
38496
|
+
constructor(view, node) {
|
|
38497
|
+
this.view = view;
|
|
38498
|
+
this.node = node;
|
|
38499
|
+
}
|
|
38500
|
+
/**
|
|
38501
|
+
* @internal
|
|
38502
|
+
* @nocollapse
|
|
38503
|
+
*/
|
|
38504
|
+
static { this.__NG_ELEMENT_ID__ = injectViewContext; }
|
|
38505
|
+
}
|
|
38506
|
+
function injectViewContext() {
|
|
38507
|
+
return new ViewContext(getLView(), getCurrentTNode());
|
|
38508
|
+
}
|
|
38509
|
+
|
|
38249
38510
|
/**
|
|
38250
|
-
*
|
|
38251
|
-
* injector.
|
|
38252
|
-
*/
|
|
38253
|
-
const APP_EFFECT_SCHEDULER = new InjectionToken('', {
|
|
38254
|
-
providedIn: 'root',
|
|
38255
|
-
factory: () => inject(EffectScheduler),
|
|
38256
|
-
});
|
|
38257
|
-
/**
|
|
38258
|
-
* A scheduler which manages the execution of effects.
|
|
38511
|
+
* Controls whether effects use the legacy `microtaskEffect` by default.
|
|
38259
38512
|
*/
|
|
38260
|
-
|
|
38513
|
+
const USE_MICROTASK_EFFECT_BY_DEFAULT = false;
|
|
38514
|
+
|
|
38515
|
+
class MicrotaskEffectScheduler extends ZoneAwareEffectScheduler {
|
|
38516
|
+
schedule(effect) {
|
|
38517
|
+
// Check whether there are any pending effects _before_ queueing in the base class.
|
|
38518
|
+
const needsScheduling = this.taskId === null;
|
|
38519
|
+
super.schedule(effect);
|
|
38520
|
+
if (needsScheduling) {
|
|
38521
|
+
queueMicrotask(() => this.flush());
|
|
38522
|
+
}
|
|
38523
|
+
}
|
|
38261
38524
|
/** @nocollapse */
|
|
38262
38525
|
static { this.ɵprov = ɵɵdefineInjectable({
|
|
38263
|
-
token:
|
|
38526
|
+
token: MicrotaskEffectScheduler,
|
|
38264
38527
|
providedIn: 'root',
|
|
38265
|
-
factory: () => new
|
|
38528
|
+
factory: () => new MicrotaskEffectScheduler(),
|
|
38266
38529
|
}); }
|
|
38267
38530
|
}
|
|
38268
|
-
/**
|
|
38269
|
-
* A wrapper around `ZoneAwareQueueingScheduler` that schedules flushing via the microtask queue
|
|
38270
|
-
* when.
|
|
38271
|
-
*/
|
|
38272
|
-
class ZoneAwareEffectScheduler {
|
|
38273
|
-
constructor() {
|
|
38274
|
-
this.queuedEffectCount = 0;
|
|
38275
|
-
this.queues = new Map();
|
|
38276
|
-
this.pendingTasks = inject(PendingTasks);
|
|
38277
|
-
this.taskId = null;
|
|
38278
|
-
}
|
|
38279
|
-
scheduleEffect(handle) {
|
|
38280
|
-
this.enqueue(handle);
|
|
38281
|
-
if (this.taskId === null) {
|
|
38282
|
-
const taskId = (this.taskId = this.pendingTasks.add());
|
|
38283
|
-
queueMicrotask(() => {
|
|
38284
|
-
this.flush();
|
|
38285
|
-
this.pendingTasks.remove(taskId);
|
|
38286
|
-
this.taskId = null;
|
|
38287
|
-
});
|
|
38288
|
-
}
|
|
38289
|
-
}
|
|
38290
|
-
enqueue(handle) {
|
|
38291
|
-
const zone = handle.creationZone;
|
|
38292
|
-
if (!this.queues.has(zone)) {
|
|
38293
|
-
this.queues.set(zone, new Set());
|
|
38294
|
-
}
|
|
38295
|
-
const queue = this.queues.get(zone);
|
|
38296
|
-
if (queue.has(handle)) {
|
|
38297
|
-
return;
|
|
38298
|
-
}
|
|
38299
|
-
this.queuedEffectCount++;
|
|
38300
|
-
queue.add(handle);
|
|
38301
|
-
}
|
|
38302
|
-
/**
|
|
38303
|
-
* Run all scheduled effects.
|
|
38304
|
-
*
|
|
38305
|
-
* Execution order of effects within the same zone is guaranteed to be FIFO, but there is no
|
|
38306
|
-
* ordering guarantee between effects scheduled in different zones.
|
|
38307
|
-
*/
|
|
38308
|
-
flush() {
|
|
38309
|
-
while (this.queuedEffectCount > 0) {
|
|
38310
|
-
for (const [zone, queue] of this.queues) {
|
|
38311
|
-
// `zone` here must be defined.
|
|
38312
|
-
if (zone === null) {
|
|
38313
|
-
this.flushQueue(queue);
|
|
38314
|
-
}
|
|
38315
|
-
else {
|
|
38316
|
-
zone.run(() => this.flushQueue(queue));
|
|
38317
|
-
}
|
|
38318
|
-
}
|
|
38319
|
-
}
|
|
38320
|
-
}
|
|
38321
|
-
flushQueue(queue) {
|
|
38322
|
-
for (const handle of queue) {
|
|
38323
|
-
queue.delete(handle);
|
|
38324
|
-
this.queuedEffectCount--;
|
|
38325
|
-
// TODO: what happens if this throws an error?
|
|
38326
|
-
handle.run();
|
|
38327
|
-
}
|
|
38328
|
-
}
|
|
38329
|
-
}
|
|
38330
38531
|
/**
|
|
38331
38532
|
* Core reactive node for an Angular effect.
|
|
38332
38533
|
*
|
|
38333
38534
|
* `EffectHandle` combines the reactive graph's `Watch` base node for effects with the framework's
|
|
38334
|
-
* scheduling abstraction (`
|
|
38335
|
-
* available/requested.
|
|
38535
|
+
* scheduling abstraction (`MicrotaskEffectScheduler`) as well as automatic cleanup via `DestroyRef`
|
|
38536
|
+
* if available/requested.
|
|
38336
38537
|
*/
|
|
38337
38538
|
class EffectHandle {
|
|
38338
|
-
constructor(scheduler, effectFn,
|
|
38539
|
+
constructor(scheduler, effectFn, zone, destroyRef, injector, allowSignalWrites) {
|
|
38339
38540
|
this.scheduler = scheduler;
|
|
38340
38541
|
this.effectFn = effectFn;
|
|
38341
|
-
this.
|
|
38542
|
+
this.zone = zone;
|
|
38342
38543
|
this.injector = injector;
|
|
38343
38544
|
this.watcher = createWatch$1((onCleanup) => this.runEffect(onCleanup), () => this.schedule(), allowSignalWrites);
|
|
38344
38545
|
this.unregisterOnDestroy = destroyRef?.onDestroy(() => this.destroy());
|
|
@@ -38358,7 +38559,7 @@ class EffectHandle {
|
|
|
38358
38559
|
this.watcher.run();
|
|
38359
38560
|
}
|
|
38360
38561
|
schedule() {
|
|
38361
|
-
this.scheduler.
|
|
38562
|
+
this.scheduler.schedule(this);
|
|
38362
38563
|
}
|
|
38363
38564
|
destroy() {
|
|
38364
38565
|
this.watcher.destroy();
|
|
@@ -38367,20 +38568,20 @@ class EffectHandle {
|
|
|
38367
38568
|
// retain a reference to it. Attempting to execute it will be a no-op.
|
|
38368
38569
|
}
|
|
38369
38570
|
}
|
|
38571
|
+
// Just used for the name for the debug error below.
|
|
38572
|
+
function effect$1() { }
|
|
38370
38573
|
/**
|
|
38371
38574
|
* Create a global `Effect` for the given reactive function.
|
|
38372
|
-
*
|
|
38373
|
-
* @developerPreview
|
|
38374
38575
|
*/
|
|
38375
|
-
function
|
|
38576
|
+
function microtaskEffect(effectFn, options) {
|
|
38376
38577
|
performanceMarkFeature('NgSignals');
|
|
38377
38578
|
ngDevMode &&
|
|
38378
|
-
assertNotInReactiveContext(effect, 'Call `effect` outside of a reactive context. For example, schedule the ' +
|
|
38579
|
+
assertNotInReactiveContext(effect$1, 'Call `effect` outside of a reactive context. For example, schedule the ' +
|
|
38379
38580
|
'effect inside the component constructor.');
|
|
38380
|
-
!options?.injector && assertInInjectionContext(effect);
|
|
38581
|
+
!options?.injector && assertInInjectionContext(effect$1);
|
|
38381
38582
|
const injector = options?.injector ?? inject(Injector);
|
|
38382
38583
|
const destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
|
|
38383
|
-
const handle = new EffectHandle(injector.get(
|
|
38584
|
+
const handle = new EffectHandle(injector.get(MicrotaskEffectScheduler), effectFn, typeof Zone === 'undefined' ? null : Zone.current, destroyRef, injector, options?.allowSignalWrites ?? false);
|
|
38384
38585
|
// Effects need to be marked dirty manually to trigger their initial run. The timing of this
|
|
38385
38586
|
// marking matters, because the effects may read signals that track component inputs, which are
|
|
38386
38587
|
// only available after those components have had their first update pass.
|
|
@@ -38403,6 +38604,180 @@ function effect(effectFn, options) {
|
|
|
38403
38604
|
return handle;
|
|
38404
38605
|
}
|
|
38405
38606
|
|
|
38607
|
+
let useMicrotaskEffectsByDefault = USE_MICROTASK_EFFECT_BY_DEFAULT;
|
|
38608
|
+
/**
|
|
38609
|
+
* Toggle the flag on whether to use microtask effects (for testing).
|
|
38610
|
+
*/
|
|
38611
|
+
function setUseMicrotaskEffectsByDefault(value) {
|
|
38612
|
+
const prev = useMicrotaskEffectsByDefault;
|
|
38613
|
+
useMicrotaskEffectsByDefault = value;
|
|
38614
|
+
return prev;
|
|
38615
|
+
}
|
|
38616
|
+
class EffectRefImpl {
|
|
38617
|
+
constructor(node) {
|
|
38618
|
+
this[SIGNAL$1] = node;
|
|
38619
|
+
}
|
|
38620
|
+
destroy() {
|
|
38621
|
+
this[SIGNAL$1].destroy();
|
|
38622
|
+
}
|
|
38623
|
+
}
|
|
38624
|
+
/**
|
|
38625
|
+
* Registers an "effect" that will be scheduled & executed whenever the signals that it reads
|
|
38626
|
+
* changes.
|
|
38627
|
+
*
|
|
38628
|
+
* Angular has two different kinds of effect: component effects and root effects. Component effects
|
|
38629
|
+
* are created when `effect()` is called from a component, directive, or within a service of a
|
|
38630
|
+
* component/directive. Root effects are created when `effect()` is called from outside the
|
|
38631
|
+
* component tree, such as in a root service, or when the `forceRoot` option is provided.
|
|
38632
|
+
*
|
|
38633
|
+
* The two effect types differ in their timing. Component effects run as a component lifecycle
|
|
38634
|
+
* event during Angular's synchronization (change detection) process, and can safely read input
|
|
38635
|
+
* signals or create/destroy views that depend on component state. Root effects run as microtasks
|
|
38636
|
+
* and have no connection to the component tree or change detection.
|
|
38637
|
+
*
|
|
38638
|
+
* `effect()` must be run in injection context, unless the `injector` option is manually specified.
|
|
38639
|
+
*
|
|
38640
|
+
* @developerPreview
|
|
38641
|
+
*/
|
|
38642
|
+
function effect(effectFn, options) {
|
|
38643
|
+
if (useMicrotaskEffectsByDefault) {
|
|
38644
|
+
if (ngDevMode && options?.forceRoot) {
|
|
38645
|
+
throw new Error(`Cannot use 'forceRoot' option with microtask effects on`);
|
|
38646
|
+
}
|
|
38647
|
+
return microtaskEffect(effectFn, options);
|
|
38648
|
+
}
|
|
38649
|
+
performanceMarkFeature('NgSignals');
|
|
38650
|
+
ngDevMode &&
|
|
38651
|
+
assertNotInReactiveContext(effect, 'Call `effect` outside of a reactive context. For example, schedule the ' +
|
|
38652
|
+
'effect inside the component constructor.');
|
|
38653
|
+
!options?.injector && assertInInjectionContext(effect);
|
|
38654
|
+
if (ngDevMode && options?.allowSignalWrites !== undefined) {
|
|
38655
|
+
console.warn(`The 'allowSignalWrites' flag is deprecated & longer required for effect() (writes are allowed by default)`);
|
|
38656
|
+
}
|
|
38657
|
+
const injector = options?.injector ?? inject(Injector);
|
|
38658
|
+
let destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
|
|
38659
|
+
let node;
|
|
38660
|
+
const viewContext = injector.get(ViewContext, null, { optional: true });
|
|
38661
|
+
if (viewContext !== null && !options?.forceRoot) {
|
|
38662
|
+
// This effect was created in the context of a view, and will be associated with the view.
|
|
38663
|
+
node = createViewEffect(viewContext.view, effectFn);
|
|
38664
|
+
if (destroyRef instanceof NodeInjectorDestroyRef && destroyRef._lView === viewContext.view) {
|
|
38665
|
+
// The effect is being created in the same view as the `DestroyRef` references, so it will be
|
|
38666
|
+
// automatically destroyed without the need for an explicit `DestroyRef` registration.
|
|
38667
|
+
destroyRef = null;
|
|
38668
|
+
}
|
|
38669
|
+
}
|
|
38670
|
+
else {
|
|
38671
|
+
// This effect was created outside the context of a view, and will be scheduled independently.
|
|
38672
|
+
node = createRootEffect(effectFn, injector.get(EffectScheduler), injector.get(ChangeDetectionScheduler));
|
|
38673
|
+
}
|
|
38674
|
+
node.injector = injector;
|
|
38675
|
+
if (destroyRef !== null) {
|
|
38676
|
+
// If we need to register for cleanup, do that here.
|
|
38677
|
+
node.onDestroyFn = destroyRef.onDestroy(() => node.destroy());
|
|
38678
|
+
}
|
|
38679
|
+
return new EffectRefImpl(node);
|
|
38680
|
+
}
|
|
38681
|
+
/**
|
|
38682
|
+
* Not public API, which guarantees `EffectScheduler` only ever comes from the application root
|
|
38683
|
+
* injector.
|
|
38684
|
+
*/
|
|
38685
|
+
const APP_EFFECT_SCHEDULER = new InjectionToken('', {
|
|
38686
|
+
providedIn: 'root',
|
|
38687
|
+
factory: () => inject(EffectScheduler),
|
|
38688
|
+
});
|
|
38689
|
+
const BASE_EFFECT_NODE =
|
|
38690
|
+
/* @__PURE__ */ (() => ({
|
|
38691
|
+
...REACTIVE_NODE$1,
|
|
38692
|
+
consumerIsAlwaysLive: true,
|
|
38693
|
+
consumerAllowSignalWrites: true,
|
|
38694
|
+
dirty: true,
|
|
38695
|
+
hasRun: false,
|
|
38696
|
+
cleanupFns: undefined,
|
|
38697
|
+
zone: null,
|
|
38698
|
+
onDestroyFn: noop,
|
|
38699
|
+
run() {
|
|
38700
|
+
this.dirty = false;
|
|
38701
|
+
if (ngDevMode && isInNotificationPhase$1()) {
|
|
38702
|
+
throw new Error(`Schedulers cannot synchronously execute watches while scheduling.`);
|
|
38703
|
+
}
|
|
38704
|
+
if (this.hasRun && !consumerPollProducersForChange$1(this)) {
|
|
38705
|
+
return;
|
|
38706
|
+
}
|
|
38707
|
+
this.hasRun = true;
|
|
38708
|
+
const registerCleanupFn = (cleanupFn) => (this.cleanupFns ??= []).push(cleanupFn);
|
|
38709
|
+
const prevNode = consumerBeforeComputation$1(this);
|
|
38710
|
+
// We clear `setIsRefreshingViews` so that `markForCheck()` within the body of an effect will
|
|
38711
|
+
// cause CD to reach the component in question.
|
|
38712
|
+
const prevRefreshingViews = setIsRefreshingViews(false);
|
|
38713
|
+
try {
|
|
38714
|
+
this.maybeCleanup();
|
|
38715
|
+
this.fn(registerCleanupFn);
|
|
38716
|
+
}
|
|
38717
|
+
catch (err) {
|
|
38718
|
+
// We inject the error handler lazily, to prevent circular dependencies when an effect is
|
|
38719
|
+
// created inside of an ErrorHandler.
|
|
38720
|
+
this.injector.get(ErrorHandler, null, { optional: true })?.handleError(err);
|
|
38721
|
+
}
|
|
38722
|
+
finally {
|
|
38723
|
+
setIsRefreshingViews(prevRefreshingViews);
|
|
38724
|
+
consumerAfterComputation$1(this, prevNode);
|
|
38725
|
+
}
|
|
38726
|
+
},
|
|
38727
|
+
maybeCleanup() {
|
|
38728
|
+
while (this.cleanupFns?.length) {
|
|
38729
|
+
this.cleanupFns.pop()();
|
|
38730
|
+
}
|
|
38731
|
+
},
|
|
38732
|
+
}))();
|
|
38733
|
+
const ROOT_EFFECT_NODE =
|
|
38734
|
+
/* @__PURE__ */ (() => ({
|
|
38735
|
+
...BASE_EFFECT_NODE,
|
|
38736
|
+
consumerMarkedDirty() {
|
|
38737
|
+
this.scheduler.schedule(this);
|
|
38738
|
+
this.notifier.notify(13 /* NotificationSource.RootEffect */);
|
|
38739
|
+
},
|
|
38740
|
+
destroy() {
|
|
38741
|
+
consumerDestroy$1(this);
|
|
38742
|
+
this.onDestroyFn();
|
|
38743
|
+
this.maybeCleanup();
|
|
38744
|
+
},
|
|
38745
|
+
}))();
|
|
38746
|
+
const VIEW_EFFECT_NODE =
|
|
38747
|
+
/* @__PURE__ */ (() => ({
|
|
38748
|
+
...BASE_EFFECT_NODE,
|
|
38749
|
+
consumerMarkedDirty() {
|
|
38750
|
+
this.view[FLAGS] |= 8192 /* LViewFlags.HasChildViewsToRefresh */;
|
|
38751
|
+
markAncestorsForTraversal(this.view);
|
|
38752
|
+
},
|
|
38753
|
+
destroy() {
|
|
38754
|
+
consumerDestroy$1(this);
|
|
38755
|
+
this.onDestroyFn();
|
|
38756
|
+
this.maybeCleanup();
|
|
38757
|
+
this.view[EFFECTS]?.delete(this);
|
|
38758
|
+
},
|
|
38759
|
+
}))();
|
|
38760
|
+
function createViewEffect(view, fn) {
|
|
38761
|
+
const node = Object.create(VIEW_EFFECT_NODE);
|
|
38762
|
+
node.view = view;
|
|
38763
|
+
node.zone = typeof Zone !== 'undefined' ? Zone.current : null;
|
|
38764
|
+
node.fn = fn;
|
|
38765
|
+
view[EFFECTS] ??= new Set();
|
|
38766
|
+
view[EFFECTS].add(node);
|
|
38767
|
+
node.consumerMarkedDirty(node);
|
|
38768
|
+
return node;
|
|
38769
|
+
}
|
|
38770
|
+
function createRootEffect(fn, scheduler, notifier) {
|
|
38771
|
+
const node = Object.create(ROOT_EFFECT_NODE);
|
|
38772
|
+
node.fn = fn;
|
|
38773
|
+
node.scheduler = scheduler;
|
|
38774
|
+
node.notifier = notifier;
|
|
38775
|
+
node.zone = typeof Zone !== 'undefined' ? Zone.current : null;
|
|
38776
|
+
node.scheduler.schedule(node);
|
|
38777
|
+
node.notifier.notify(13 /* NotificationSource.RootEffect */);
|
|
38778
|
+
return node;
|
|
38779
|
+
}
|
|
38780
|
+
|
|
38406
38781
|
const NOT_SET = Symbol('NOT_SET');
|
|
38407
38782
|
const EMPTY_CLEANUP_SET = new Set();
|
|
38408
38783
|
const AFTER_RENDER_PHASE_EFFECT_NODE = {
|
|
@@ -38738,5 +39113,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
38738
39113
|
* Generated bundle index. Do not edit.
|
|
38739
39114
|
*/
|
|
38740
39115
|
|
|
38741
|
-
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, ExperimentalPendingTasks, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, afterRenderEffect, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderManager as ɵAfterRenderManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, GLOBAL_EVENT_DELEGATION as ɵGLOBAL_EVENT_DELEGATION, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasks as ɵPendingTasks, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, provideGlobalEventDelegation as ɵprovideGlobalEventDelegation, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
|
|
39116
|
+
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, PendingTasks, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, afterRenderEffect, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderManager as ɵAfterRenderManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, MicrotaskEffectScheduler as ɵMicrotaskEffectScheduler, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasksInternal as ɵPendingTasks, PendingTasksInternal as ɵPendingTasksInternal, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, microtaskEffect as ɵmicrotaskEffect, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, 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, ɵɵExternalStylesFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
|
|
38742
39117
|
//# sourceMappingURL=core.mjs.map
|