@angular/core 19.1.0-next.2 → 19.1.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/core.mjs +511 -109
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +6 -6
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +232 -27
- 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 +1 -1
- package/schematics/bundles/{checker-c58f97d2.js → checker-884633eb.js} +158 -31
- package/schematics/bundles/{combine_units-8b29b7f6.js → combine_units-4a95b1b9.js} +3 -3
- package/schematics/bundles/{compiler_host-f5d588fe.js → compiler_host-22f6513d.js} +2 -2
- package/schematics/bundles/control-flow-migration.js +3 -3
- package/schematics/bundles/explicit-standalone-flag.js +5 -5
- package/schematics/bundles/{imports-31a38653.js → imports-abe29092.js} +1 -1
- package/schematics/bundles/inject-migration.js +6 -6
- package/schematics/bundles/{leading_space-6e7a8ec6.js → leading_space-d190b83b.js} +1 -1
- package/schematics/bundles/{migrate_ts_type_references-a8676ec1.js → migrate_ts_type_references-4b11f3f2.js} +5 -5
- package/schematics/bundles/{nodes-88c2157f.js → nodes-a9f0b985.js} +2 -2
- package/schematics/bundles/output-migration.js +5 -5
- package/schematics/bundles/pending-tasks.js +5 -5
- package/schematics/bundles/{program-30e02255.js → program-094352ba.js} +30 -23
- package/schematics/bundles/{project_tsconfig_paths-6c9cde78.js → project_tsconfig_paths-e9ccccbf.js} +1 -1
- package/schematics/bundles/provide-initializer.js +5 -5
- package/schematics/bundles/route-lazy-loading.js +4 -4
- package/schematics/bundles/signal-input-migration.js +7 -7
- package/schematics/bundles/signal-queries-migration.js +7 -7
- package/schematics/bundles/signals.js +7 -7
- package/schematics/bundles/standalone-migration.js +8 -8
- package/testing/index.d.ts +1 -1
package/fesm2022/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.1.0-next.
|
|
2
|
+
* @license Angular v19.1.0-next.4
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -273,6 +273,7 @@ function ngDevModeResetPerfCounters() {
|
|
|
273
273
|
dehydratedViewsRemoved: 0,
|
|
274
274
|
dehydratedViewsCleanupRuns: 0,
|
|
275
275
|
componentsSkippedHydration: 0,
|
|
276
|
+
deferBlocksWithIncrementalHydration: 0,
|
|
276
277
|
};
|
|
277
278
|
// Make sure to refer to ngDevMode as ['ngDevMode'] for closure.
|
|
278
279
|
const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;
|
|
@@ -867,6 +868,14 @@ function emitInjectEvent(token, value, flags) {
|
|
|
867
868
|
service: { token, value, flags },
|
|
868
869
|
});
|
|
869
870
|
}
|
|
871
|
+
function emitEffectCreatedEvent(effect) {
|
|
872
|
+
!ngDevMode && throwError('Injector profiler should never be called in production mode');
|
|
873
|
+
injectorProfiler({
|
|
874
|
+
type: 3 /* InjectorProfilerEventType.EffectCreated */,
|
|
875
|
+
context: getInjectorProfilerContext(),
|
|
876
|
+
effect,
|
|
877
|
+
});
|
|
878
|
+
}
|
|
870
879
|
function runInInjectorProfilerContext(injector, token, callback) {
|
|
871
880
|
!ngDevMode &&
|
|
872
881
|
throwError('runInInjectorProfilerContext should never be called in production mode');
|
|
@@ -6508,7 +6517,7 @@ class NgZone {
|
|
|
6508
6517
|
* Executes the `fn` function synchronously within the Angular zone as a task and returns value
|
|
6509
6518
|
* returned by the function.
|
|
6510
6519
|
*
|
|
6511
|
-
* Running functions via `
|
|
6520
|
+
* Running functions via `runTask` allows you to reenter Angular zone from a task that was executed
|
|
6512
6521
|
* outside of the Angular zone (typically started via {@link #runOutsideAngular}).
|
|
6513
6522
|
*
|
|
6514
6523
|
* Any future tasks or microtasks scheduled from within this function will continue executing from
|
|
@@ -8740,7 +8749,7 @@ class AfterRenderImpl {
|
|
|
8740
8749
|
}
|
|
8741
8750
|
maybeTrace(fn, snapshot) {
|
|
8742
8751
|
// Only trace the execution if the snapshot is defined.
|
|
8743
|
-
return snapshot
|
|
8752
|
+
return snapshot ? snapshot.run(TracingAction.AFTER_NEXT_RENDER, fn) : fn();
|
|
8744
8753
|
}
|
|
8745
8754
|
/** @nocollapse */
|
|
8746
8755
|
static ɵprov = /** @pureOrBreakMyCode */ /* @__PURE__ */ ɵɵdefineInjectable({
|
|
@@ -9095,6 +9104,18 @@ function isDeferBlock(tView, tNode) {
|
|
|
9095
9104
|
}
|
|
9096
9105
|
return !!tDetails && isTDeferBlockDetails(tDetails);
|
|
9097
9106
|
}
|
|
9107
|
+
/**
|
|
9108
|
+
* Tracks debugging information about a trigger.
|
|
9109
|
+
* @param tView TView in which the trigger is declared.
|
|
9110
|
+
* @param tNode TNode on which the trigger is declared.
|
|
9111
|
+
* @param textRepresentation Text representation of the trigger to be used for debugging purposes.
|
|
9112
|
+
*/
|
|
9113
|
+
function trackTriggerForDebugging(tView, tNode, textRepresentation) {
|
|
9114
|
+
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
9115
|
+
tDetails.debug ??= {};
|
|
9116
|
+
tDetails.debug.triggers ??= new Set();
|
|
9117
|
+
tDetails.debug.triggers.add(textRepresentation);
|
|
9118
|
+
}
|
|
9098
9119
|
|
|
9099
9120
|
/*!
|
|
9100
9121
|
* @license
|
|
@@ -9549,7 +9570,6 @@ function retrieveHydrationInfoImpl(rNode, injector, isRootView = false) {
|
|
|
9549
9570
|
const rootNgh = rootViewNgh ? `|${rootViewNgh}` : '';
|
|
9550
9571
|
const remainingNgh = isRootView ? componentViewNgh : rootNgh;
|
|
9551
9572
|
let data = {};
|
|
9552
|
-
let nghDeferData;
|
|
9553
9573
|
// An element might have an empty `ngh` attribute value (e.g. `<comp ngh="" />`),
|
|
9554
9574
|
// which means that no special annotations are required. Do not attempt to read
|
|
9555
9575
|
// from the TransferState in this case.
|
|
@@ -9557,7 +9577,6 @@ function retrieveHydrationInfoImpl(rNode, injector, isRootView = false) {
|
|
|
9557
9577
|
const transferState = injector.get(TransferState, null, { optional: true });
|
|
9558
9578
|
if (transferState !== null) {
|
|
9559
9579
|
const nghData = transferState.get(NGH_DATA_KEY, []);
|
|
9560
|
-
nghDeferData = transferState.get(NGH_DEFER_BLOCKS_KEY, {});
|
|
9561
9580
|
// The nghAttrValue is always a number referencing an index
|
|
9562
9581
|
// in the hydration TransferState data.
|
|
9563
9582
|
data = nghData[Number(nghAttrValue)];
|
|
@@ -9717,6 +9736,13 @@ function markRNodeAsSkippedByHydration(node) {
|
|
|
9717
9736
|
patchHydrationInfo(node, { status: HydrationStatus.Skipped });
|
|
9718
9737
|
ngDevMode.componentsSkippedHydration++;
|
|
9719
9738
|
}
|
|
9739
|
+
function countBlocksSkippedByHydration(injector) {
|
|
9740
|
+
const transferState = injector.get(TransferState);
|
|
9741
|
+
const nghDeferData = transferState.get(NGH_DEFER_BLOCKS_KEY, {});
|
|
9742
|
+
if (ngDevMode) {
|
|
9743
|
+
ngDevMode.deferBlocksWithIncrementalHydration = Object.keys(nghDeferData).length;
|
|
9744
|
+
}
|
|
9745
|
+
}
|
|
9720
9746
|
function markRNodeAsHavingHydrationMismatch(node, expectedNodeDetails = null, actualNodeDetails = null) {
|
|
9721
9747
|
if (!ngDevMode) {
|
|
9722
9748
|
throw new Error('Calling `markRNodeAsMismatchedByHydration` in prod mode ' +
|
|
@@ -16625,11 +16651,15 @@ function gatherDeferBlocksCommentNodes(doc, node) {
|
|
|
16625
16651
|
let currentNode;
|
|
16626
16652
|
const nodesByBlockId = new Map();
|
|
16627
16653
|
while ((currentNode = commentNodesIterator.nextNode())) {
|
|
16628
|
-
|
|
16629
|
-
const
|
|
16630
|
-
const
|
|
16631
|
-
if (
|
|
16632
|
-
|
|
16654
|
+
const nghPattern = 'ngh=';
|
|
16655
|
+
const content = currentNode?.textContent;
|
|
16656
|
+
const nghIdx = content?.indexOf(nghPattern) ?? -1;
|
|
16657
|
+
if (nghIdx > -1) {
|
|
16658
|
+
const nghValue = content.substring(nghIdx + nghPattern.length).trim();
|
|
16659
|
+
// Make sure the value has an expected format.
|
|
16660
|
+
ngDevMode &&
|
|
16661
|
+
assertEqual(nghValue.startsWith('d'), true, 'Invalid defer block id found in a comment node.');
|
|
16662
|
+
nodesByBlockId.set(nghValue, currentNode);
|
|
16633
16663
|
}
|
|
16634
16664
|
}
|
|
16635
16665
|
return nodesByBlockId;
|
|
@@ -18080,7 +18110,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
18080
18110
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
18081
18111
|
if (rootSelectorOrNode) {
|
|
18082
18112
|
// The placeholder will be replaced with the actual version at build time.
|
|
18083
|
-
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.1.0-next.
|
|
18113
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.1.0-next.4']);
|
|
18084
18114
|
}
|
|
18085
18115
|
else {
|
|
18086
18116
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -21277,15 +21307,8 @@ function renderDeferBlockState(newState, tNode, lContainer, skipTimerScheduling
|
|
|
21277
21307
|
}
|
|
21278
21308
|
}
|
|
21279
21309
|
function findMatchingDehydratedViewForDeferBlock(lContainer, lDetails) {
|
|
21280
|
-
// TODO(incremental-hydration): extract into a separate util function and use in relevant places.
|
|
21281
|
-
const views = lContainer[DEHYDRATED_VIEWS];
|
|
21282
|
-
if (views === null || views.length === 0) {
|
|
21283
|
-
return null;
|
|
21284
|
-
}
|
|
21285
21310
|
// Find matching view based on serialized defer block state.
|
|
21286
|
-
|
|
21287
|
-
// dehydrated views to see if there is anything missing in this function.
|
|
21288
|
-
return (views.find((view) => view.data[DEFER_BLOCK_STATE$1] === lDetails[DEFER_BLOCK_STATE]) ?? null);
|
|
21311
|
+
return (lContainer[DEHYDRATED_VIEWS]?.find((view) => view.data[DEFER_BLOCK_STATE$1] === lDetails[DEFER_BLOCK_STATE]) ?? null);
|
|
21289
21312
|
}
|
|
21290
21313
|
/**
|
|
21291
21314
|
* Applies changes to the DOM to reflect a given state.
|
|
@@ -21317,30 +21340,22 @@ function applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView)
|
|
|
21317
21340
|
}
|
|
21318
21341
|
}
|
|
21319
21342
|
const dehydratedView = findMatchingDehydratedViewForDeferBlock(lContainer, lDetails);
|
|
21320
|
-
//
|
|
21321
|
-
//
|
|
21322
|
-
|
|
21323
|
-
|
|
21324
|
-
|
|
21325
|
-
|
|
21326
|
-
|
|
21327
|
-
|
|
21328
|
-
|
|
21329
|
-
lContainer[DEHYDRATED_VIEWS] = null;
|
|
21330
|
-
const embeddedLView = createAndRenderEmbeddedLView(hostLView, activeBlockTNode, null, {
|
|
21331
|
-
injector,
|
|
21332
|
-
dehydratedView,
|
|
21333
|
-
});
|
|
21334
|
-
addLViewToLContainer(lContainer, embeddedLView, viewIndex, shouldAddViewToDom(activeBlockTNode, dehydratedView));
|
|
21335
|
-
markViewDirty(embeddedLView, 2 /* NotificationSource.DeferBlockStateUpdate */);
|
|
21336
|
-
}
|
|
21343
|
+
// Erase dehydrated view info, so that it's not removed later
|
|
21344
|
+
// by post-hydration cleanup process.
|
|
21345
|
+
lContainer[DEHYDRATED_VIEWS] = null;
|
|
21346
|
+
const embeddedLView = createAndRenderEmbeddedLView(hostLView, activeBlockTNode, null, {
|
|
21347
|
+
injector,
|
|
21348
|
+
dehydratedView,
|
|
21349
|
+
});
|
|
21350
|
+
addLViewToLContainer(lContainer, embeddedLView, viewIndex, shouldAddViewToDom(activeBlockTNode, dehydratedView));
|
|
21351
|
+
markViewDirty(embeddedLView, 2 /* NotificationSource.DeferBlockStateUpdate */);
|
|
21337
21352
|
// TODO(incremental-hydration):
|
|
21338
21353
|
// - what if we had some views in `lContainer[DEHYDRATED_VIEWS]`, but
|
|
21339
21354
|
// we didn't find a view that matches the expected state?
|
|
21340
21355
|
// - for example, handle a situation when a block was in the "completed" state
|
|
21341
21356
|
// on the server, but the loading failing on the client. How do we reconcile and cleanup?
|
|
21342
|
-
|
|
21343
|
-
|
|
21357
|
+
if ((newState === DeferBlockState.Complete || newState === DeferBlockState.Error) &&
|
|
21358
|
+
Array.isArray(lDetails[ON_COMPLETE_FNS])) {
|
|
21344
21359
|
for (const callback of lDetails[ON_COMPLETE_FNS]) {
|
|
21345
21360
|
callback();
|
|
21346
21361
|
}
|
|
@@ -21623,6 +21638,7 @@ class Console {
|
|
|
21623
21638
|
class DIDebugData {
|
|
21624
21639
|
resolverToTokenToDependencies = new WeakMap();
|
|
21625
21640
|
resolverToProviders = new WeakMap();
|
|
21641
|
+
resolverToEffects = new WeakMap();
|
|
21626
21642
|
standaloneInjectorToComponent = new WeakMap();
|
|
21627
21643
|
reset() {
|
|
21628
21644
|
this.resolverToTokenToDependencies = new WeakMap();
|
|
@@ -21661,6 +21677,20 @@ function handleInjectorProfilerEvent(injectorProfilerEvent) {
|
|
|
21661
21677
|
else if (type === 2 /* InjectorProfilerEventType.ProviderConfigured */) {
|
|
21662
21678
|
handleProviderConfiguredEvent(context, injectorProfilerEvent.providerRecord);
|
|
21663
21679
|
}
|
|
21680
|
+
else if (type === 3 /* InjectorProfilerEventType.EffectCreated */) {
|
|
21681
|
+
handleEffectCreatedEvent(context, injectorProfilerEvent.effect);
|
|
21682
|
+
}
|
|
21683
|
+
}
|
|
21684
|
+
function handleEffectCreatedEvent(context, effect) {
|
|
21685
|
+
const diResolver = getDIResolver(context.injector);
|
|
21686
|
+
if (diResolver === null) {
|
|
21687
|
+
throwError('An EffectCreated event must be run within an injection context.');
|
|
21688
|
+
}
|
|
21689
|
+
const { resolverToEffects } = frameworkDIDebugData;
|
|
21690
|
+
if (!resolverToEffects.has(diResolver)) {
|
|
21691
|
+
resolverToEffects.set(diResolver, []);
|
|
21692
|
+
}
|
|
21693
|
+
resolverToEffects.get(diResolver).push(effect);
|
|
21664
21694
|
}
|
|
21665
21695
|
/**
|
|
21666
21696
|
*
|
|
@@ -21846,6 +21876,162 @@ function detectChanges(component) {
|
|
|
21846
21876
|
detectChangesInternal(view);
|
|
21847
21877
|
}
|
|
21848
21878
|
|
|
21879
|
+
/**
|
|
21880
|
+
* Retrieves all defer blocks in a given LView.
|
|
21881
|
+
*
|
|
21882
|
+
* @param lView lView with defer blocks
|
|
21883
|
+
* @param deferBlocks defer block aggregator array
|
|
21884
|
+
*/
|
|
21885
|
+
function getDeferBlocks$1(lView, deferBlocks) {
|
|
21886
|
+
const tView = lView[TVIEW];
|
|
21887
|
+
for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {
|
|
21888
|
+
if (isLContainer(lView[i])) {
|
|
21889
|
+
const lContainer = lView[i];
|
|
21890
|
+
// An LContainer may represent an instance of a defer block, in which case
|
|
21891
|
+
// we store it as a result. Otherwise, keep iterating over LContainer views and
|
|
21892
|
+
// look for defer blocks.
|
|
21893
|
+
const isLast = i === tView.bindingStartIndex - 1;
|
|
21894
|
+
if (!isLast) {
|
|
21895
|
+
const tNode = tView.data[i];
|
|
21896
|
+
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
21897
|
+
if (isTDeferBlockDetails(tDetails)) {
|
|
21898
|
+
deferBlocks.push({ lContainer, lView, tNode, tDetails });
|
|
21899
|
+
// This LContainer represents a defer block, so we exit
|
|
21900
|
+
// this iteration and don't inspect views in this LContainer.
|
|
21901
|
+
continue;
|
|
21902
|
+
}
|
|
21903
|
+
}
|
|
21904
|
+
for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
|
|
21905
|
+
getDeferBlocks$1(lContainer[i], deferBlocks);
|
|
21906
|
+
}
|
|
21907
|
+
}
|
|
21908
|
+
else if (isLView(lView[i])) {
|
|
21909
|
+
// This is a component, enter the `getDeferBlocks` recursively.
|
|
21910
|
+
getDeferBlocks$1(lView[i], deferBlocks);
|
|
21911
|
+
}
|
|
21912
|
+
}
|
|
21913
|
+
}
|
|
21914
|
+
|
|
21915
|
+
/*!
|
|
21916
|
+
* @license
|
|
21917
|
+
* Copyright Google LLC All Rights Reserved.
|
|
21918
|
+
*
|
|
21919
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
21920
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
21921
|
+
*/
|
|
21922
|
+
/**
|
|
21923
|
+
* Gets all of the `@defer` blocks that are present inside the specified DOM node.
|
|
21924
|
+
* @param node Node in which to look for `@defer` blocks.
|
|
21925
|
+
*
|
|
21926
|
+
* @publicApi
|
|
21927
|
+
*/
|
|
21928
|
+
function getDeferBlocks(node) {
|
|
21929
|
+
const results = [];
|
|
21930
|
+
const lView = getLContext(node)?.lView;
|
|
21931
|
+
if (lView) {
|
|
21932
|
+
findDeferBlocks(node, lView, results);
|
|
21933
|
+
}
|
|
21934
|
+
return results;
|
|
21935
|
+
}
|
|
21936
|
+
/**
|
|
21937
|
+
* Finds all the `@defer` blocks inside a specific node and view.
|
|
21938
|
+
* @param node Node in which to search for blocks.
|
|
21939
|
+
* @param lView View within the node in which to search for blocks.
|
|
21940
|
+
* @param results Array to which to add blocks once they're found.
|
|
21941
|
+
*/
|
|
21942
|
+
function findDeferBlocks(node, lView, results) {
|
|
21943
|
+
const registry = lView[INJECTOR].get(DEHYDRATED_BLOCK_REGISTRY, null, { optional: true });
|
|
21944
|
+
const blocks = [];
|
|
21945
|
+
getDeferBlocks$1(lView, blocks);
|
|
21946
|
+
for (const details of blocks) {
|
|
21947
|
+
const native = getNativeByTNode(details.tNode, details.lView);
|
|
21948
|
+
const lDetails = getLDeferBlockDetails(details.lView, details.tNode);
|
|
21949
|
+
// The LView from `getLContext` might be the view the element is placed in.
|
|
21950
|
+
// Filter out defer blocks that aren't inside the specified root node.
|
|
21951
|
+
if (!node.contains(native)) {
|
|
21952
|
+
continue;
|
|
21953
|
+
}
|
|
21954
|
+
const tDetails = details.tDetails;
|
|
21955
|
+
const renderedLView = getRendererLView(details);
|
|
21956
|
+
const rootNodes = [];
|
|
21957
|
+
if (renderedLView !== null) {
|
|
21958
|
+
collectNativeNodes(renderedLView[TVIEW], renderedLView, renderedLView[TVIEW].firstChild, rootNodes);
|
|
21959
|
+
}
|
|
21960
|
+
const data = {
|
|
21961
|
+
state: stringifyState(lDetails[DEFER_BLOCK_STATE]),
|
|
21962
|
+
incrementalHydrationState: inferHydrationState(tDetails, lDetails, registry),
|
|
21963
|
+
hasErrorBlock: tDetails.errorTmplIndex !== null,
|
|
21964
|
+
loadingBlock: {
|
|
21965
|
+
exists: tDetails.loadingTmplIndex !== null,
|
|
21966
|
+
minimumTime: tDetails.loadingBlockConfig?.[MINIMUM_SLOT] ?? null,
|
|
21967
|
+
afterTime: tDetails.loadingBlockConfig?.[LOADING_AFTER_SLOT] ?? null,
|
|
21968
|
+
},
|
|
21969
|
+
placeholderBlock: {
|
|
21970
|
+
exists: tDetails.placeholderTmplIndex !== null,
|
|
21971
|
+
minimumTime: tDetails.placeholderBlockConfig?.[MINIMUM_SLOT] ?? null,
|
|
21972
|
+
},
|
|
21973
|
+
triggers: tDetails.debug?.triggers ? Array.from(tDetails.debug.triggers).sort() : [],
|
|
21974
|
+
rootNodes,
|
|
21975
|
+
};
|
|
21976
|
+
results.push(data);
|
|
21977
|
+
// `getDeferBlocks` does not resolve nested defer blocks so we have to recurse manually.
|
|
21978
|
+
if (renderedLView !== null) {
|
|
21979
|
+
findDeferBlocks(node, renderedLView, results);
|
|
21980
|
+
}
|
|
21981
|
+
}
|
|
21982
|
+
}
|
|
21983
|
+
/**
|
|
21984
|
+
* Turns the `DeferBlockState` into a string which is more readable than the enum form.
|
|
21985
|
+
*
|
|
21986
|
+
* @param lDetails Information about the
|
|
21987
|
+
* @returns
|
|
21988
|
+
*/
|
|
21989
|
+
function stringifyState(state) {
|
|
21990
|
+
switch (state) {
|
|
21991
|
+
case DeferBlockState.Complete:
|
|
21992
|
+
return 'complete';
|
|
21993
|
+
case DeferBlockState.Loading:
|
|
21994
|
+
return 'loading';
|
|
21995
|
+
case DeferBlockState.Placeholder:
|
|
21996
|
+
return 'placeholder';
|
|
21997
|
+
case DeferBlockState.Error:
|
|
21998
|
+
return 'error';
|
|
21999
|
+
case DeferBlockInternalState.Initial:
|
|
22000
|
+
return 'initial';
|
|
22001
|
+
default:
|
|
22002
|
+
throw new Error(`Unrecognized state ${state}`);
|
|
22003
|
+
}
|
|
22004
|
+
}
|
|
22005
|
+
/**
|
|
22006
|
+
* Infers the hydration state of a specific defer block.
|
|
22007
|
+
* @param tDetails Static defer block information.
|
|
22008
|
+
* @param lDetails Instance defer block information.
|
|
22009
|
+
* @param registry Registry coordinating the hydration of defer blocks.
|
|
22010
|
+
*/
|
|
22011
|
+
function inferHydrationState(tDetails, lDetails, registry) {
|
|
22012
|
+
if (registry === null ||
|
|
22013
|
+
lDetails[SSR_UNIQUE_ID] === null ||
|
|
22014
|
+
tDetails.hydrateTriggers === null ||
|
|
22015
|
+
tDetails.hydrateTriggers.has(7 /* DeferBlockTrigger.Never */)) {
|
|
22016
|
+
return 'not-configured';
|
|
22017
|
+
}
|
|
22018
|
+
return registry.has(lDetails[SSR_UNIQUE_ID]) ? 'dehydrated' : 'hydrated';
|
|
22019
|
+
}
|
|
22020
|
+
/**
|
|
22021
|
+
* Gets the current LView that is rendered out in a defer block.
|
|
22022
|
+
* @param details Instance information about the block.
|
|
22023
|
+
*/
|
|
22024
|
+
function getRendererLView(details) {
|
|
22025
|
+
// Defer block containers can only ever contain one view.
|
|
22026
|
+
// If they're empty, it means that nothing is rendered.
|
|
22027
|
+
if (details.lContainer.length <= CONTAINER_HEADER_OFFSET) {
|
|
22028
|
+
return null;
|
|
22029
|
+
}
|
|
22030
|
+
const lView = details.lContainer[CONTAINER_HEADER_OFFSET];
|
|
22031
|
+
ngDevMode && assertLView(lView);
|
|
22032
|
+
return lView;
|
|
22033
|
+
}
|
|
22034
|
+
|
|
21849
22035
|
/**
|
|
21850
22036
|
* Discovers the dependencies of an injectable instance. Provides DI information about each
|
|
21851
22037
|
* dependency that the injectable was instantiated with, including where they were provided from.
|
|
@@ -22391,6 +22577,118 @@ function getModuleInjectorOfNodeInjector(injector) {
|
|
|
22391
22577
|
return moduleInjector;
|
|
22392
22578
|
}
|
|
22393
22579
|
|
|
22580
|
+
function isComputedNode(node) {
|
|
22581
|
+
return node.kind === 'computed';
|
|
22582
|
+
}
|
|
22583
|
+
function isTemplateEffectNode(node) {
|
|
22584
|
+
return node.kind === 'template';
|
|
22585
|
+
}
|
|
22586
|
+
function isEffectNode(node) {
|
|
22587
|
+
return node.kind === 'effect';
|
|
22588
|
+
}
|
|
22589
|
+
function isSignalNode(node) {
|
|
22590
|
+
return node.kind === 'signal';
|
|
22591
|
+
}
|
|
22592
|
+
/**
|
|
22593
|
+
*
|
|
22594
|
+
* @param injector
|
|
22595
|
+
* @returns Template consumer of given NodeInjector
|
|
22596
|
+
*/
|
|
22597
|
+
function getTemplateConsumer(injector) {
|
|
22598
|
+
const tNode = getNodeInjectorTNode(injector);
|
|
22599
|
+
assertTNode(tNode);
|
|
22600
|
+
const lView = getNodeInjectorLView(injector);
|
|
22601
|
+
assertLView(lView);
|
|
22602
|
+
const templateLView = lView[tNode.index];
|
|
22603
|
+
assertLView(templateLView);
|
|
22604
|
+
return templateLView[REACTIVE_TEMPLATE_CONSUMER];
|
|
22605
|
+
}
|
|
22606
|
+
function getNodesAndEdgesFromSignalMap(signalMap) {
|
|
22607
|
+
const nodes = Array.from(signalMap.keys());
|
|
22608
|
+
const debugSignalGraphNodes = [];
|
|
22609
|
+
const edges = [];
|
|
22610
|
+
for (const [consumer, producers] of signalMap.entries()) {
|
|
22611
|
+
const consumerIndex = nodes.indexOf(consumer);
|
|
22612
|
+
// collect node
|
|
22613
|
+
if (isComputedNode(consumer) || isSignalNode(consumer)) {
|
|
22614
|
+
debugSignalGraphNodes.push({
|
|
22615
|
+
label: consumer.debugName,
|
|
22616
|
+
value: consumer.value,
|
|
22617
|
+
kind: consumer.kind,
|
|
22618
|
+
});
|
|
22619
|
+
}
|
|
22620
|
+
else if (isTemplateEffectNode(consumer)) {
|
|
22621
|
+
debugSignalGraphNodes.push({
|
|
22622
|
+
label: consumer.debugName ?? consumer.lView?.[HOST]?.tagName?.toLowerCase?.(),
|
|
22623
|
+
kind: consumer.kind,
|
|
22624
|
+
});
|
|
22625
|
+
}
|
|
22626
|
+
else if (isEffectNode(consumer)) {
|
|
22627
|
+
debugSignalGraphNodes.push({
|
|
22628
|
+
label: consumer.debugName,
|
|
22629
|
+
kind: consumer.kind,
|
|
22630
|
+
});
|
|
22631
|
+
}
|
|
22632
|
+
else {
|
|
22633
|
+
debugSignalGraphNodes.push({
|
|
22634
|
+
label: consumer.debugName,
|
|
22635
|
+
kind: consumer.kind,
|
|
22636
|
+
});
|
|
22637
|
+
}
|
|
22638
|
+
// collect edges for node
|
|
22639
|
+
for (const producer of producers) {
|
|
22640
|
+
edges.push({ consumer: consumerIndex, producer: nodes.indexOf(producer) });
|
|
22641
|
+
}
|
|
22642
|
+
}
|
|
22643
|
+
return { nodes: debugSignalGraphNodes, edges };
|
|
22644
|
+
}
|
|
22645
|
+
function extractEffectsFromInjector(injector) {
|
|
22646
|
+
let diResolver = injector;
|
|
22647
|
+
if (injector instanceof NodeInjector) {
|
|
22648
|
+
const lView = getNodeInjectorLView(injector);
|
|
22649
|
+
diResolver = lView;
|
|
22650
|
+
}
|
|
22651
|
+
const resolverToEffects = getFrameworkDIDebugData().resolverToEffects;
|
|
22652
|
+
const effects = resolverToEffects.get(diResolver) ?? [];
|
|
22653
|
+
return effects.map((effect) => effect[SIGNAL$1]);
|
|
22654
|
+
}
|
|
22655
|
+
function extractSignalNodesAndEdgesFromRoots(nodes, signalDependenciesMap = new Map()) {
|
|
22656
|
+
for (const node of nodes) {
|
|
22657
|
+
if (signalDependenciesMap.has(node)) {
|
|
22658
|
+
continue;
|
|
22659
|
+
}
|
|
22660
|
+
const producerNodes = (node.producerNode ?? []);
|
|
22661
|
+
signalDependenciesMap.set(node, producerNodes);
|
|
22662
|
+
extractSignalNodesAndEdgesFromRoots(producerNodes, signalDependenciesMap);
|
|
22663
|
+
}
|
|
22664
|
+
return signalDependenciesMap;
|
|
22665
|
+
}
|
|
22666
|
+
/**
|
|
22667
|
+
* Returns a debug representation of the signal graph for the given injector.
|
|
22668
|
+
*
|
|
22669
|
+
* Currently only supports element injectors. Starts by discovering the consumer nodes
|
|
22670
|
+
* and then traverses their producer nodes to build the signal graph.
|
|
22671
|
+
*
|
|
22672
|
+
* @param injector The injector to get the signal graph for.
|
|
22673
|
+
* @returns A debug representation of the signal graph.
|
|
22674
|
+
* @throws If the injector is an environment injector.
|
|
22675
|
+
*/
|
|
22676
|
+
function getSignalGraph(injector) {
|
|
22677
|
+
let templateConsumer = null;
|
|
22678
|
+
if (!(injector instanceof NodeInjector) && !(injector instanceof R3Injector)) {
|
|
22679
|
+
return throwError('getSignalGraph must be called with a NodeInjector or R3Injector');
|
|
22680
|
+
}
|
|
22681
|
+
if (injector instanceof NodeInjector) {
|
|
22682
|
+
templateConsumer = getTemplateConsumer(injector);
|
|
22683
|
+
}
|
|
22684
|
+
const nonTemplateEffectNodes = extractEffectsFromInjector(injector);
|
|
22685
|
+
const signalNodes = templateConsumer
|
|
22686
|
+
? [templateConsumer, ...nonTemplateEffectNodes]
|
|
22687
|
+
: nonTemplateEffectNodes;
|
|
22688
|
+
const signalDependenciesMap = extractSignalNodesAndEdgesFromRoots(signalNodes);
|
|
22689
|
+
return getNodesAndEdgesFromSignalMap(signalDependenciesMap);
|
|
22690
|
+
}
|
|
22691
|
+
|
|
22394
22692
|
/**
|
|
22395
22693
|
* This file introduces series of globally accessible debug tools
|
|
22396
22694
|
* to allow for the Angular debugging story to function.
|
|
@@ -22417,6 +22715,8 @@ const globalUtilsFunctions = {
|
|
|
22417
22715
|
'ɵgetInjectorResolutionPath': getInjectorResolutionPath,
|
|
22418
22716
|
'ɵgetInjectorMetadata': getInjectorMetadata,
|
|
22419
22717
|
'ɵsetProfiler': setProfiler,
|
|
22718
|
+
'ɵgetSignalGraph': getSignalGraph,
|
|
22719
|
+
'ɵgetDeferBlocks': getDeferBlocks,
|
|
22420
22720
|
'getDirectiveMetadata': getDirectiveMetadata$1,
|
|
22421
22721
|
'getComponent': getComponent,
|
|
22422
22722
|
'getContext': getContext,
|
|
@@ -23657,9 +23957,14 @@ function detectChangesInViewIfRequired(lView, notifyErrorHandler, isFirstPass, z
|
|
|
23657
23957
|
function scheduleDelayedTrigger(scheduleFn) {
|
|
23658
23958
|
const lView = getLView();
|
|
23659
23959
|
const tNode = getCurrentTNode();
|
|
23960
|
+
renderPlaceholder(lView, tNode);
|
|
23961
|
+
// Exit early to avoid invoking `scheduleFn`, which would
|
|
23962
|
+
// add `setTimeout` call and potentially delay serialization
|
|
23963
|
+
// on the server unnecessarily.
|
|
23964
|
+
if (!shouldTriggerDeferBlock(0 /* TriggerType.Regular */, lView))
|
|
23965
|
+
return;
|
|
23660
23966
|
const injector = lView[INJECTOR];
|
|
23661
23967
|
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
23662
|
-
renderPlaceholder(lView, tNode);
|
|
23663
23968
|
const cleanupFn = scheduleFn(() => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), injector);
|
|
23664
23969
|
storeTriggerCleanupFn(0 /* TriggerType.Regular */, lDetails, cleanupFn);
|
|
23665
23970
|
}
|
|
@@ -23941,30 +24246,25 @@ function populateHydratingStateForQueue(registry, queue) {
|
|
|
23941
24246
|
}
|
|
23942
24247
|
// Waits for the next render cycle to complete
|
|
23943
24248
|
function nextRender(injector) {
|
|
23944
|
-
|
|
23945
|
-
const promise = new Promise((resolveFn) => {
|
|
23946
|
-
resolve = resolveFn;
|
|
23947
|
-
});
|
|
23948
|
-
afterNextRender(() => resolve(), { injector });
|
|
23949
|
-
return promise;
|
|
24249
|
+
return new Promise((resolveFn) => afterNextRender(resolveFn, { injector }));
|
|
23950
24250
|
}
|
|
23951
|
-
function triggerResourceLoadingForHydration(dehydratedBlockId, dehydratedBlockRegistry) {
|
|
23952
|
-
let resolve;
|
|
23953
|
-
const promise = new Promise((resolveFn) => (resolve = resolveFn));
|
|
24251
|
+
async function triggerResourceLoadingForHydration(dehydratedBlockId, dehydratedBlockRegistry) {
|
|
23954
24252
|
const deferBlock = dehydratedBlockRegistry.get(dehydratedBlockId);
|
|
23955
24253
|
// Since we trigger hydration for nested defer blocks in a sequence (parent -> child),
|
|
23956
24254
|
// there is a chance that a defer block may not be present at hydration time. For example,
|
|
23957
24255
|
// when a nested block was in an `@if` condition, which has changed.
|
|
23958
|
-
if (deferBlock
|
|
23959
|
-
const { tNode, lView } = deferBlock;
|
|
23960
|
-
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
23961
|
-
onDeferBlockCompletion(lDetails, () => resolve());
|
|
23962
|
-
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24256
|
+
if (deferBlock === null) {
|
|
23963
24257
|
// TODO(incremental-hydration): handle the cleanup for cases when
|
|
23964
24258
|
// defer block is no longer present during hydration (e.g. `@if` condition
|
|
23965
24259
|
// has changed during hydration/rendering).
|
|
24260
|
+
return;
|
|
23966
24261
|
}
|
|
23967
|
-
|
|
24262
|
+
const { tNode, lView } = deferBlock;
|
|
24263
|
+
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
24264
|
+
return new Promise((resolve) => {
|
|
24265
|
+
onDeferBlockCompletion(lDetails, resolve);
|
|
24266
|
+
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24267
|
+
});
|
|
23968
24268
|
}
|
|
23969
24269
|
/**
|
|
23970
24270
|
* Registers cleanup functions for a defer block when the block has finished
|
|
@@ -24142,7 +24442,7 @@ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplInd
|
|
|
24142
24442
|
loadingPromise: null,
|
|
24143
24443
|
providers: null,
|
|
24144
24444
|
hydrateTriggers: null,
|
|
24145
|
-
|
|
24445
|
+
debug: null,
|
|
24146
24446
|
flags: flags ?? 0 /* TDeferDetailsFlags.Default */,
|
|
24147
24447
|
};
|
|
24148
24448
|
enableTimerScheduling?.(tView, tDetails, placeholderConfigIndex, loadingConfigIndex);
|
|
@@ -24199,6 +24499,9 @@ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplInd
|
|
|
24199
24499
|
function ɵɵdeferWhen(rawValue) {
|
|
24200
24500
|
const lView = getLView();
|
|
24201
24501
|
const tNode = getSelectedTNode();
|
|
24502
|
+
if (ngDevMode) {
|
|
24503
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'when <expression>');
|
|
24504
|
+
}
|
|
24202
24505
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24203
24506
|
return;
|
|
24204
24507
|
const bindingIndex = nextBindingIndex();
|
|
@@ -24230,6 +24533,9 @@ function ɵɵdeferWhen(rawValue) {
|
|
|
24230
24533
|
function ɵɵdeferPrefetchWhen(rawValue) {
|
|
24231
24534
|
const lView = getLView();
|
|
24232
24535
|
const tNode = getSelectedTNode();
|
|
24536
|
+
if (ngDevMode) {
|
|
24537
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'prefetch when <expression>');
|
|
24538
|
+
}
|
|
24233
24539
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24234
24540
|
return;
|
|
24235
24541
|
const bindingIndex = nextBindingIndex();
|
|
@@ -24257,6 +24563,9 @@ function ɵɵdeferPrefetchWhen(rawValue) {
|
|
|
24257
24563
|
function ɵɵdeferHydrateWhen(rawValue) {
|
|
24258
24564
|
const lView = getLView();
|
|
24259
24565
|
const tNode = getSelectedTNode();
|
|
24566
|
+
if (ngDevMode) {
|
|
24567
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate when <expression>');
|
|
24568
|
+
}
|
|
24260
24569
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24261
24570
|
return;
|
|
24262
24571
|
// TODO(incremental-hydration): audit all defer instructions to reduce unnecessary work by
|
|
@@ -24298,6 +24607,9 @@ function ɵɵdeferHydrateWhen(rawValue) {
|
|
|
24298
24607
|
function ɵɵdeferHydrateNever() {
|
|
24299
24608
|
const lView = getLView();
|
|
24300
24609
|
const tNode = getCurrentTNode();
|
|
24610
|
+
if (ngDevMode) {
|
|
24611
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate never');
|
|
24612
|
+
}
|
|
24301
24613
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24302
24614
|
return;
|
|
24303
24615
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -24314,6 +24626,9 @@ function ɵɵdeferHydrateNever() {
|
|
|
24314
24626
|
function ɵɵdeferOnIdle() {
|
|
24315
24627
|
const lView = getLView();
|
|
24316
24628
|
const tNode = getCurrentTNode();
|
|
24629
|
+
if (ngDevMode) {
|
|
24630
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'on idle');
|
|
24631
|
+
}
|
|
24317
24632
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24318
24633
|
return;
|
|
24319
24634
|
scheduleDelayedTrigger(onIdle);
|
|
@@ -24325,6 +24640,9 @@ function ɵɵdeferOnIdle() {
|
|
|
24325
24640
|
function ɵɵdeferPrefetchOnIdle() {
|
|
24326
24641
|
const lView = getLView();
|
|
24327
24642
|
const tNode = getCurrentTNode();
|
|
24643
|
+
if (ngDevMode) {
|
|
24644
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'prefetch on idle');
|
|
24645
|
+
}
|
|
24328
24646
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24329
24647
|
return;
|
|
24330
24648
|
scheduleDelayedPrefetching(onIdle, 0 /* DeferBlockTrigger.Idle */);
|
|
@@ -24336,6 +24654,9 @@ function ɵɵdeferPrefetchOnIdle() {
|
|
|
24336
24654
|
function ɵɵdeferHydrateOnIdle() {
|
|
24337
24655
|
const lView = getLView();
|
|
24338
24656
|
const tNode = getCurrentTNode();
|
|
24657
|
+
if (ngDevMode) {
|
|
24658
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on idle');
|
|
24659
|
+
}
|
|
24339
24660
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24340
24661
|
return;
|
|
24341
24662
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -24355,6 +24676,9 @@ function ɵɵdeferHydrateOnIdle() {
|
|
|
24355
24676
|
function ɵɵdeferOnImmediate() {
|
|
24356
24677
|
const lView = getLView();
|
|
24357
24678
|
const tNode = getCurrentTNode();
|
|
24679
|
+
if (ngDevMode) {
|
|
24680
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'on immediate');
|
|
24681
|
+
}
|
|
24358
24682
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24359
24683
|
return;
|
|
24360
24684
|
// Render placeholder block only if loading template is not present and we're on
|
|
@@ -24373,6 +24697,9 @@ function ɵɵdeferOnImmediate() {
|
|
|
24373
24697
|
function ɵɵdeferPrefetchOnImmediate() {
|
|
24374
24698
|
const lView = getLView();
|
|
24375
24699
|
const tNode = getCurrentTNode();
|
|
24700
|
+
if (ngDevMode) {
|
|
24701
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'prefetch on immediate');
|
|
24702
|
+
}
|
|
24376
24703
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24377
24704
|
return;
|
|
24378
24705
|
const tView = lView[TVIEW];
|
|
@@ -24388,6 +24715,9 @@ function ɵɵdeferPrefetchOnImmediate() {
|
|
|
24388
24715
|
function ɵɵdeferHydrateOnImmediate() {
|
|
24389
24716
|
const lView = getLView();
|
|
24390
24717
|
const tNode = getCurrentTNode();
|
|
24718
|
+
if (ngDevMode) {
|
|
24719
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on immediate');
|
|
24720
|
+
}
|
|
24391
24721
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24392
24722
|
return;
|
|
24393
24723
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -24411,6 +24741,9 @@ function ɵɵdeferHydrateOnImmediate() {
|
|
|
24411
24741
|
function ɵɵdeferOnTimer(delay) {
|
|
24412
24742
|
const lView = getLView();
|
|
24413
24743
|
const tNode = getCurrentTNode();
|
|
24744
|
+
if (ngDevMode) {
|
|
24745
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `on timer(${delay}ms)`);
|
|
24746
|
+
}
|
|
24414
24747
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24415
24748
|
return;
|
|
24416
24749
|
scheduleDelayedTrigger(onTimer(delay));
|
|
@@ -24423,6 +24756,9 @@ function ɵɵdeferOnTimer(delay) {
|
|
|
24423
24756
|
function ɵɵdeferPrefetchOnTimer(delay) {
|
|
24424
24757
|
const lView = getLView();
|
|
24425
24758
|
const tNode = getCurrentTNode();
|
|
24759
|
+
if (ngDevMode) {
|
|
24760
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `prefetch on timer(${delay}ms)`);
|
|
24761
|
+
}
|
|
24426
24762
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24427
24763
|
return;
|
|
24428
24764
|
scheduleDelayedPrefetching(onTimer(delay), 5 /* DeferBlockTrigger.Timer */);
|
|
@@ -24435,10 +24771,13 @@ function ɵɵdeferPrefetchOnTimer(delay) {
|
|
|
24435
24771
|
function ɵɵdeferHydrateOnTimer(delay) {
|
|
24436
24772
|
const lView = getLView();
|
|
24437
24773
|
const tNode = getCurrentTNode();
|
|
24774
|
+
if (ngDevMode) {
|
|
24775
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `hydrate on timer(${delay}ms)`);
|
|
24776
|
+
}
|
|
24438
24777
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24439
24778
|
return;
|
|
24440
24779
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
24441
|
-
hydrateTriggers.set(5 /* DeferBlockTrigger.Timer */, delay);
|
|
24780
|
+
hydrateTriggers.set(5 /* DeferBlockTrigger.Timer */, { delay });
|
|
24442
24781
|
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24443
24782
|
// We are on the server and SSR for defer blocks is enabled.
|
|
24444
24783
|
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
@@ -24456,6 +24795,9 @@ function ɵɵdeferHydrateOnTimer(delay) {
|
|
|
24456
24795
|
function ɵɵdeferOnHover(triggerIndex, walkUpTimes) {
|
|
24457
24796
|
const lView = getLView();
|
|
24458
24797
|
const tNode = getCurrentTNode();
|
|
24798
|
+
if (ngDevMode) {
|
|
24799
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `on hover${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24800
|
+
}
|
|
24459
24801
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24460
24802
|
return;
|
|
24461
24803
|
renderPlaceholder(lView, tNode);
|
|
@@ -24473,6 +24815,9 @@ function ɵɵdeferOnHover(triggerIndex, walkUpTimes) {
|
|
|
24473
24815
|
function ɵɵdeferPrefetchOnHover(triggerIndex, walkUpTimes) {
|
|
24474
24816
|
const lView = getLView();
|
|
24475
24817
|
const tNode = getCurrentTNode();
|
|
24818
|
+
if (ngDevMode) {
|
|
24819
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `prefetch on hover${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24820
|
+
}
|
|
24476
24821
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24477
24822
|
return;
|
|
24478
24823
|
const tView = lView[TVIEW];
|
|
@@ -24488,6 +24833,9 @@ function ɵɵdeferPrefetchOnHover(triggerIndex, walkUpTimes) {
|
|
|
24488
24833
|
function ɵɵdeferHydrateOnHover() {
|
|
24489
24834
|
const lView = getLView();
|
|
24490
24835
|
const tNode = getCurrentTNode();
|
|
24836
|
+
if (ngDevMode) {
|
|
24837
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on hover');
|
|
24838
|
+
}
|
|
24491
24839
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24492
24840
|
return;
|
|
24493
24841
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -24508,6 +24856,9 @@ function ɵɵdeferHydrateOnHover() {
|
|
|
24508
24856
|
function ɵɵdeferOnInteraction(triggerIndex, walkUpTimes) {
|
|
24509
24857
|
const lView = getLView();
|
|
24510
24858
|
const tNode = getCurrentTNode();
|
|
24859
|
+
if (ngDevMode) {
|
|
24860
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `on interaction${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24861
|
+
}
|
|
24511
24862
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24512
24863
|
return;
|
|
24513
24864
|
renderPlaceholder(lView, tNode);
|
|
@@ -24525,6 +24876,9 @@ function ɵɵdeferOnInteraction(triggerIndex, walkUpTimes) {
|
|
|
24525
24876
|
function ɵɵdeferPrefetchOnInteraction(triggerIndex, walkUpTimes) {
|
|
24526
24877
|
const lView = getLView();
|
|
24527
24878
|
const tNode = getCurrentTNode();
|
|
24879
|
+
if (ngDevMode) {
|
|
24880
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `prefetch on interaction${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24881
|
+
}
|
|
24528
24882
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24529
24883
|
return;
|
|
24530
24884
|
const tView = lView[TVIEW];
|
|
@@ -24540,6 +24894,9 @@ function ɵɵdeferPrefetchOnInteraction(triggerIndex, walkUpTimes) {
|
|
|
24540
24894
|
function ɵɵdeferHydrateOnInteraction() {
|
|
24541
24895
|
const lView = getLView();
|
|
24542
24896
|
const tNode = getCurrentTNode();
|
|
24897
|
+
if (ngDevMode) {
|
|
24898
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on interaction');
|
|
24899
|
+
}
|
|
24543
24900
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24544
24901
|
return;
|
|
24545
24902
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -24560,6 +24917,9 @@ function ɵɵdeferHydrateOnInteraction() {
|
|
|
24560
24917
|
function ɵɵdeferOnViewport(triggerIndex, walkUpTimes) {
|
|
24561
24918
|
const lView = getLView();
|
|
24562
24919
|
const tNode = getCurrentTNode();
|
|
24920
|
+
if (ngDevMode) {
|
|
24921
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `on viewport${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24922
|
+
}
|
|
24563
24923
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24564
24924
|
return;
|
|
24565
24925
|
renderPlaceholder(lView, tNode);
|
|
@@ -24577,6 +24937,9 @@ function ɵɵdeferOnViewport(triggerIndex, walkUpTimes) {
|
|
|
24577
24937
|
function ɵɵdeferPrefetchOnViewport(triggerIndex, walkUpTimes) {
|
|
24578
24938
|
const lView = getLView();
|
|
24579
24939
|
const tNode = getCurrentTNode();
|
|
24940
|
+
if (ngDevMode) {
|
|
24941
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `prefetch on viewport${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24942
|
+
}
|
|
24580
24943
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24581
24944
|
return;
|
|
24582
24945
|
const tView = lView[TVIEW];
|
|
@@ -24592,6 +24955,9 @@ function ɵɵdeferPrefetchOnViewport(triggerIndex, walkUpTimes) {
|
|
|
24592
24955
|
function ɵɵdeferHydrateOnViewport() {
|
|
24593
24956
|
const lView = getLView();
|
|
24594
24957
|
const tNode = getCurrentTNode();
|
|
24958
|
+
if (ngDevMode) {
|
|
24959
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on viewport');
|
|
24960
|
+
}
|
|
24595
24961
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24596
24962
|
return;
|
|
24597
24963
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -32044,6 +32410,41 @@ function ɵɵreadContextLet(index) {
|
|
|
32044
32410
|
return value;
|
|
32045
32411
|
}
|
|
32046
32412
|
|
|
32413
|
+
/*!
|
|
32414
|
+
* @license
|
|
32415
|
+
* Copyright Google LLC All Rights Reserved.
|
|
32416
|
+
*
|
|
32417
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
32418
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
32419
|
+
*/
|
|
32420
|
+
/**
|
|
32421
|
+
* Sets the location within the source template at which
|
|
32422
|
+
* each element in the current view was defined.
|
|
32423
|
+
*
|
|
32424
|
+
* @param index Index at which the DOM node was created.
|
|
32425
|
+
* @param templatePath Path to the template at which the node was defined.
|
|
32426
|
+
* @param locations Element locations to which to attach the source location.
|
|
32427
|
+
*
|
|
32428
|
+
* @codeGenApi
|
|
32429
|
+
*/
|
|
32430
|
+
function ɵɵattachSourceLocations(templatePath, locations) {
|
|
32431
|
+
const tView = getTView();
|
|
32432
|
+
const lView = getLView();
|
|
32433
|
+
const renderer = lView[RENDERER];
|
|
32434
|
+
const attributeName = 'data-ng-source-location';
|
|
32435
|
+
for (const [index, offset, line, column] of locations) {
|
|
32436
|
+
const tNode = getTNode(tView, index + HEADER_OFFSET);
|
|
32437
|
+
// The compiler shouldn't generate the instruction for non-element nodes, but assert just in case.
|
|
32438
|
+
ngDevMode && assertTNodeType(tNode, 2 /* TNodeType.Element */);
|
|
32439
|
+
const node = getNativeByIndex(index + HEADER_OFFSET, lView);
|
|
32440
|
+
// Set the attribute directly in the DOM so it doesn't participate in directive matching.
|
|
32441
|
+
if (!node.hasAttribute(attributeName)) {
|
|
32442
|
+
const attributeValue = `${templatePath}@o:${offset},l:${line},c:${column}`;
|
|
32443
|
+
renderer.setAttribute(node, attributeName, attributeValue);
|
|
32444
|
+
}
|
|
32445
|
+
}
|
|
32446
|
+
}
|
|
32447
|
+
|
|
32047
32448
|
/*
|
|
32048
32449
|
* This file re-exports all symbols contained in this directory.
|
|
32049
32450
|
*
|
|
@@ -33385,6 +33786,7 @@ const angularCoreEnv = (() => ({
|
|
|
33385
33786
|
'ɵɵdeclareLet': ɵɵdeclareLet,
|
|
33386
33787
|
'ɵɵstoreLet': ɵɵstoreLet,
|
|
33387
33788
|
'ɵɵreadContextLet': ɵɵreadContextLet,
|
|
33789
|
+
'ɵɵattachSourceLocations': ɵɵattachSourceLocations,
|
|
33388
33790
|
'ɵɵsanitizeHtml': ɵɵsanitizeHtml,
|
|
33389
33791
|
'ɵɵsanitizeStyle': ɵɵsanitizeStyle,
|
|
33390
33792
|
'ɵɵsanitizeResourceUrl': ɵɵsanitizeResourceUrl,
|
|
@@ -34574,7 +34976,7 @@ class Version {
|
|
|
34574
34976
|
/**
|
|
34575
34977
|
* @publicApi
|
|
34576
34978
|
*/
|
|
34577
|
-
const VERSION = new Version('19.1.0-next.
|
|
34979
|
+
const VERSION = new Version('19.1.0-next.4');
|
|
34578
34980
|
|
|
34579
34981
|
/**
|
|
34580
34982
|
* Combination of NgModuleFactory and ComponentFactories.
|
|
@@ -35595,6 +35997,27 @@ function logOversizedImageWarning(src) {
|
|
|
35595
35997
|
*/
|
|
35596
35998
|
const PLATFORM_DESTROY_LISTENERS = new InjectionToken(ngDevMode ? 'PlatformDestroyListeners' : '');
|
|
35597
35999
|
|
|
36000
|
+
/**
|
|
36001
|
+
* InjectionToken to control root component bootstrap behavior.
|
|
36002
|
+
*
|
|
36003
|
+
* This token is primarily used in Angular's server-side rendering (SSR) scenarios,
|
|
36004
|
+
* particularly by the `@angular/ssr` package, to manage whether the root component
|
|
36005
|
+
* should be bootstrapped during the application initialization process.
|
|
36006
|
+
*
|
|
36007
|
+
* ## Purpose:
|
|
36008
|
+
* During SSR route extraction, setting this token to `false` prevents Angular from
|
|
36009
|
+
* bootstrapping the root component. This avoids unnecessary component rendering,
|
|
36010
|
+
* enabling route extraction without requiring additional APIs or triggering
|
|
36011
|
+
* component logic.
|
|
36012
|
+
*
|
|
36013
|
+
* ## Behavior:
|
|
36014
|
+
* - **`false`**: Prevents the root component from being bootstrapped.
|
|
36015
|
+
* - **`true`** (default): Proceeds with the normal root component bootstrap process.
|
|
36016
|
+
*
|
|
36017
|
+
* This mechanism ensures SSR can efficiently separate route extraction logic
|
|
36018
|
+
* from component rendering.
|
|
36019
|
+
*/
|
|
36020
|
+
const ENABLE_ROOT_COMPONENT_BOOTSTRAP = new InjectionToken(ngDevMode ? 'ENABLE_ROOT_COMPONENT_BOOTSTRAP' : '');
|
|
35598
36021
|
function isApplicationBootstrapConfig(config) {
|
|
35599
36022
|
return !config.moduleRef;
|
|
35600
36023
|
}
|
|
@@ -35659,6 +36082,14 @@ function bootstrap(config) {
|
|
|
35659
36082
|
// If the `LOCALE_ID` provider is defined at bootstrap then we set the value for ivy
|
|
35660
36083
|
const localeId = envInjector.get(LOCALE_ID, DEFAULT_LOCALE_ID);
|
|
35661
36084
|
setLocaleId(localeId || DEFAULT_LOCALE_ID);
|
|
36085
|
+
const enableRootComponentBoostrap = envInjector.get(ENABLE_ROOT_COMPONENT_BOOTSTRAP, true);
|
|
36086
|
+
if (!enableRootComponentBoostrap) {
|
|
36087
|
+
if (isApplicationBootstrapConfig(config)) {
|
|
36088
|
+
return envInjector.get(ApplicationRef);
|
|
36089
|
+
}
|
|
36090
|
+
config.allPlatformModules.push(config.moduleRef);
|
|
36091
|
+
return config.moduleRef;
|
|
36092
|
+
}
|
|
35662
36093
|
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
35663
36094
|
const imagePerformanceService = envInjector.get(ImagePerformanceWarning);
|
|
35664
36095
|
imagePerformanceService.start();
|
|
@@ -38569,42 +39000,6 @@ function internalCreateApplication(config) {
|
|
|
38569
39000
|
}
|
|
38570
39001
|
}
|
|
38571
39002
|
|
|
38572
|
-
/**
|
|
38573
|
-
* Retrieves all defer blocks in a given LView.
|
|
38574
|
-
*
|
|
38575
|
-
* @param lView lView with defer blocks
|
|
38576
|
-
* @param deferBlocks defer block aggregator array
|
|
38577
|
-
*/
|
|
38578
|
-
function getDeferBlocks(lView, deferBlocks) {
|
|
38579
|
-
const tView = lView[TVIEW];
|
|
38580
|
-
for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {
|
|
38581
|
-
if (isLContainer(lView[i])) {
|
|
38582
|
-
const lContainer = lView[i];
|
|
38583
|
-
// An LContainer may represent an instance of a defer block, in which case
|
|
38584
|
-
// we store it as a result. Otherwise, keep iterating over LContainer views and
|
|
38585
|
-
// look for defer blocks.
|
|
38586
|
-
const isLast = i === tView.bindingStartIndex - 1;
|
|
38587
|
-
if (!isLast) {
|
|
38588
|
-
const tNode = tView.data[i];
|
|
38589
|
-
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
38590
|
-
if (isTDeferBlockDetails(tDetails)) {
|
|
38591
|
-
deferBlocks.push({ lContainer, lView, tNode, tDetails });
|
|
38592
|
-
// This LContainer represents a defer block, so we exit
|
|
38593
|
-
// this iteration and don't inspect views in this LContainer.
|
|
38594
|
-
continue;
|
|
38595
|
-
}
|
|
38596
|
-
}
|
|
38597
|
-
for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
|
|
38598
|
-
getDeferBlocks(lContainer[i], deferBlocks);
|
|
38599
|
-
}
|
|
38600
|
-
}
|
|
38601
|
-
else if (isLView(lView[i])) {
|
|
38602
|
-
// This is a component, enter the `getDeferBlocks` recursively.
|
|
38603
|
-
getDeferBlocks(lView[i], deferBlocks);
|
|
38604
|
-
}
|
|
38605
|
-
}
|
|
38606
|
-
}
|
|
38607
|
-
|
|
38608
39003
|
/** Apps in which we've enabled event replay.
|
|
38609
39004
|
* This is to prevent initializing event replay more than once per app.
|
|
38610
39005
|
*/
|
|
@@ -38972,7 +39367,6 @@ function annotateForHydration(appRef, doc) {
|
|
|
38972
39367
|
transferState.set(NGH_DATA_KEY, serializedViews);
|
|
38973
39368
|
if (deferBlocks.size > 0) {
|
|
38974
39369
|
const blocks = {};
|
|
38975
|
-
// TODO(incremental-hydration): we should probably have an object here instead of a Map?
|
|
38976
39370
|
for (const [id, info] of deferBlocks.entries()) {
|
|
38977
39371
|
blocks[id] = info;
|
|
38978
39372
|
}
|
|
@@ -39041,10 +39435,10 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
|
|
|
39041
39435
|
// If this is a defer block, serialize extra info.
|
|
39042
39436
|
if (isDeferBlock(lView[TVIEW], tNode)) {
|
|
39043
39437
|
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
39044
|
-
|
|
39438
|
+
const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
|
|
39439
|
+
if (context.isIncrementalHydrationEnabled && tDetails.hydrateTriggers !== null) {
|
|
39045
39440
|
const deferBlockId = `d${context.deferBlocks.size}`;
|
|
39046
|
-
|
|
39047
|
-
if (tDetails.hydrateTriggers?.has(7 /* DeferBlockTrigger.Never */)) {
|
|
39441
|
+
if (tDetails.hydrateTriggers.has(7 /* DeferBlockTrigger.Never */)) {
|
|
39048
39442
|
isHydrateNeverBlock = true;
|
|
39049
39443
|
}
|
|
39050
39444
|
let rootNodes = [];
|
|
@@ -39054,8 +39448,11 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
|
|
|
39054
39448
|
[DEFER_PARENT_BLOCK_ID]: parentDeferBlockId,
|
|
39055
39449
|
[NUM_ROOT_NODES]: rootNodes.length,
|
|
39056
39450
|
[DEFER_BLOCK_STATE$1]: lDetails[DEFER_BLOCK_STATE],
|
|
39057
|
-
[DEFER_HYDRATE_TRIGGERS]: serializeHydrateTriggers(tDetails.hydrateTriggers),
|
|
39058
39451
|
};
|
|
39452
|
+
const serializedTriggers = serializeHydrateTriggers(tDetails.hydrateTriggers);
|
|
39453
|
+
if (serializedTriggers.length > 0) {
|
|
39454
|
+
deferBlockInfo[DEFER_HYDRATE_TRIGGERS] = serializedTriggers;
|
|
39455
|
+
}
|
|
39059
39456
|
context.deferBlocks.set(deferBlockId, deferBlockInfo);
|
|
39060
39457
|
const node = unwrapRNode(lContainer);
|
|
39061
39458
|
if (node !== undefined) {
|
|
@@ -39086,11 +39483,7 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
|
|
|
39086
39483
|
serializedView[DEFER_BLOCK_STATE$1] = lDetails[DEFER_BLOCK_STATE];
|
|
39087
39484
|
}
|
|
39088
39485
|
if (!isHydrateNeverBlock) {
|
|
39089
|
-
|
|
39090
|
-
serializedView = {
|
|
39091
|
-
...serializedView,
|
|
39092
|
-
...serializeLView(lContainer[i], parentDeferBlockId, context),
|
|
39093
|
-
};
|
|
39486
|
+
Object.assign(serializedView, serializeLView(lContainer[i], parentDeferBlockId, context));
|
|
39094
39487
|
}
|
|
39095
39488
|
}
|
|
39096
39489
|
// Check if the previous view has the same shape (for example, it was
|
|
@@ -39111,9 +39504,6 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
|
|
|
39111
39504
|
return views;
|
|
39112
39505
|
}
|
|
39113
39506
|
function serializeHydrateTriggers(triggerMap) {
|
|
39114
|
-
if (triggerMap === null) {
|
|
39115
|
-
return null;
|
|
39116
|
-
}
|
|
39117
39507
|
const serializableDeferBlockTrigger = new Set([
|
|
39118
39508
|
0 /* DeferBlockTrigger.Idle */,
|
|
39119
39509
|
1 /* DeferBlockTrigger.Immediate */,
|
|
@@ -39127,7 +39517,7 @@ function serializeHydrateTriggers(triggerMap) {
|
|
|
39127
39517
|
triggers.push(trigger);
|
|
39128
39518
|
}
|
|
39129
39519
|
else {
|
|
39130
|
-
triggers.push({ trigger, details });
|
|
39520
|
+
triggers.push({ trigger, delay: details.delay });
|
|
39131
39521
|
}
|
|
39132
39522
|
}
|
|
39133
39523
|
}
|
|
@@ -39545,6 +39935,9 @@ function printHydrationStats(injector) {
|
|
|
39545
39935
|
const message = `Angular hydrated ${ngDevMode.hydratedComponents} component(s) ` +
|
|
39546
39936
|
`and ${ngDevMode.hydratedNodes} node(s), ` +
|
|
39547
39937
|
`${ngDevMode.componentsSkippedHydration} component(s) were skipped. ` +
|
|
39938
|
+
(isIncrementalHydrationEnabled(injector)
|
|
39939
|
+
? `${ngDevMode.deferBlocksWithIncrementalHydration} defer block(s) were configured to use incremental hydration. `
|
|
39940
|
+
: '') +
|
|
39548
39941
|
`Learn more at https://angular.dev/guide/hydration.`;
|
|
39549
39942
|
// tslint:disable-next-line:no-console
|
|
39550
39943
|
console.log(message);
|
|
@@ -39668,6 +40061,7 @@ function withDomHydration() {
|
|
|
39668
40061
|
whenStableWithTimeout(appRef, injector).then(() => {
|
|
39669
40062
|
cleanupDehydratedViews(appRef);
|
|
39670
40063
|
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
40064
|
+
countBlocksSkippedByHydration(injector);
|
|
39671
40065
|
printHydrationStats(injector);
|
|
39672
40066
|
}
|
|
39673
40067
|
});
|
|
@@ -40411,10 +40805,18 @@ function effect(effectFn, options) {
|
|
|
40411
40805
|
// If we need to register for cleanup, do that here.
|
|
40412
40806
|
node.onDestroyFn = destroyRef.onDestroy(() => node.destroy());
|
|
40413
40807
|
}
|
|
40808
|
+
const effectRef = new EffectRefImpl(node);
|
|
40414
40809
|
if (ngDevMode) {
|
|
40415
40810
|
node.debugName = options?.debugName ?? '';
|
|
40811
|
+
const prevInjectorProfilerContext = setInjectorProfilerContext({ injector, token: null });
|
|
40812
|
+
try {
|
|
40813
|
+
emitEffectCreatedEvent(effectRef);
|
|
40814
|
+
}
|
|
40815
|
+
finally {
|
|
40816
|
+
setInjectorProfilerContext(prevInjectorProfilerContext);
|
|
40817
|
+
}
|
|
40416
40818
|
}
|
|
40417
|
-
return
|
|
40819
|
+
return effectRef;
|
|
40418
40820
|
}
|
|
40419
40821
|
/**
|
|
40420
40822
|
* Not public API, which guarantees `EffectScheduler` only ever comes from the application root
|
|
@@ -41166,5 +41568,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
41166
41568
|
* Generated bundle index. Do not edit.
|
|
41167
41569
|
*/
|
|
41168
41570
|
|
|
41169
|
-
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, REQUEST, REQUEST_CONTEXT, RESPONSE_INIT, Renderer2, RendererFactory2, RendererStyleFlags2, ResourceStatus, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, 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, linkedSignal, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideAppInitializer, provideEnvironmentInitializer, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, providePlatformInitializer, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, resource, 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, IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_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, PERFORMANCE_MARK_PREFIX as ɵPERFORMANCE_MARK_PREFIX, 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, TracingAction as ɵTracingAction, TracingService as ɵTracingService, 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, disableProfiling as ɵdisableProfiling, enableProfiling as ɵenableProfiling, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getClosestComponentName as ɵgetClosestComponentName, 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, publishExternalGlobalUtil as ɵpublishExternalGlobalUtil, 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, startMeasuring as ɵstartMeasuring, stopMeasuring as ɵstopMeasuring, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, withIncrementalHydration as ɵwithIncrementalHydration, ɵɵCopyDefinitionFeature, ɵɵExternalStylesFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵ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 };
|
|
41571
|
+
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, REQUEST, REQUEST_CONTEXT, RESPONSE_INIT, Renderer2, RendererFactory2, RendererStyleFlags2, ResourceStatus, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, 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, linkedSignal, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideAppInitializer, provideEnvironmentInitializer, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, providePlatformInitializer, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, resource, 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, ENABLE_ROOT_COMPONENT_BOOTSTRAP as ɵENABLE_ROOT_COMPONENT_BOOTSTRAP, 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, IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_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, PERFORMANCE_MARK_PREFIX as ɵPERFORMANCE_MARK_PREFIX, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, 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, TracingAction as ɵTracingAction, TracingService as ɵTracingService, 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, disableProfiling as ɵdisableProfiling, enableProfiling as ɵenableProfiling, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getClosestComponentName as ɵgetClosestComponentName, getDebugNode as ɵgetDebugNode, getDeferBlocks$1 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, publishExternalGlobalUtil as ɵpublishExternalGlobalUtil, 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, startMeasuring as ɵstartMeasuring, stopMeasuring as ɵstopMeasuring, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, withIncrementalHydration as ɵwithIncrementalHydration, ɵɵCopyDefinitionFeature, ɵɵExternalStylesFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵattachSourceLocations, ɵɵ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 };
|
|
41170
41572
|
//# sourceMappingURL=core.mjs.map
|