@angular/core 19.1.0-next.3 → 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 +329 -107
- 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 +4 -4
- package/index.d.ts +153 -7
- 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-228cb8a8.js → checker-884633eb.js} +45 -21
- package/schematics/bundles/{combine_units-5d6a7099.js → combine_units-4a95b1b9.js} +3 -3
- package/schematics/bundles/{compiler_host-fc806dbe.js → compiler_host-22f6513d.js} +2 -2
- package/schematics/bundles/control-flow-migration.js +3 -3
- package/schematics/bundles/explicit-standalone-flag.js +3 -3
- package/schematics/bundles/imports-abe29092.js +1 -1
- package/schematics/bundles/inject-migration.js +3 -3
- package/schematics/bundles/leading_space-d190b83b.js +1 -1
- package/schematics/bundles/{migrate_ts_type_references-d02c6750.js → migrate_ts_type_references-4b11f3f2.js} +4 -4
- package/schematics/bundles/nodes-a9f0b985.js +1 -1
- package/schematics/bundles/output-migration.js +4 -4
- package/schematics/bundles/pending-tasks.js +3 -3
- package/schematics/bundles/{program-1591ec8f.js → program-094352ba.js} +11 -11
- package/schematics/bundles/project_tsconfig_paths-e9ccccbf.js +1 -1
- package/schematics/bundles/provide-initializer.js +3 -3
- package/schematics/bundles/route-lazy-loading.js +3 -3
- package/schematics/bundles/signal-input-migration.js +5 -5
- package/schematics/bundles/signal-queries-migration.js +5 -5
- package/schematics/bundles/signals.js +5 -5
- package/schematics/bundles/standalone-migration.js +5 -5
- 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;
|
|
@@ -6516,7 +6517,7 @@ class NgZone {
|
|
|
6516
6517
|
* Executes the `fn` function synchronously within the Angular zone as a task and returns value
|
|
6517
6518
|
* returned by the function.
|
|
6518
6519
|
*
|
|
6519
|
-
* Running functions via `
|
|
6520
|
+
* Running functions via `runTask` allows you to reenter Angular zone from a task that was executed
|
|
6520
6521
|
* outside of the Angular zone (typically started via {@link #runOutsideAngular}).
|
|
6521
6522
|
*
|
|
6522
6523
|
* Any future tasks or microtasks scheduled from within this function will continue executing from
|
|
@@ -9103,6 +9104,18 @@ function isDeferBlock(tView, tNode) {
|
|
|
9103
9104
|
}
|
|
9104
9105
|
return !!tDetails && isTDeferBlockDetails(tDetails);
|
|
9105
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
|
+
}
|
|
9106
9119
|
|
|
9107
9120
|
/*!
|
|
9108
9121
|
* @license
|
|
@@ -9557,7 +9570,6 @@ function retrieveHydrationInfoImpl(rNode, injector, isRootView = false) {
|
|
|
9557
9570
|
const rootNgh = rootViewNgh ? `|${rootViewNgh}` : '';
|
|
9558
9571
|
const remainingNgh = isRootView ? componentViewNgh : rootNgh;
|
|
9559
9572
|
let data = {};
|
|
9560
|
-
let nghDeferData;
|
|
9561
9573
|
// An element might have an empty `ngh` attribute value (e.g. `<comp ngh="" />`),
|
|
9562
9574
|
// which means that no special annotations are required. Do not attempt to read
|
|
9563
9575
|
// from the TransferState in this case.
|
|
@@ -9565,7 +9577,6 @@ function retrieveHydrationInfoImpl(rNode, injector, isRootView = false) {
|
|
|
9565
9577
|
const transferState = injector.get(TransferState, null, { optional: true });
|
|
9566
9578
|
if (transferState !== null) {
|
|
9567
9579
|
const nghData = transferState.get(NGH_DATA_KEY, []);
|
|
9568
|
-
nghDeferData = transferState.get(NGH_DEFER_BLOCKS_KEY, {});
|
|
9569
9580
|
// The nghAttrValue is always a number referencing an index
|
|
9570
9581
|
// in the hydration TransferState data.
|
|
9571
9582
|
data = nghData[Number(nghAttrValue)];
|
|
@@ -9725,6 +9736,13 @@ function markRNodeAsSkippedByHydration(node) {
|
|
|
9725
9736
|
patchHydrationInfo(node, { status: HydrationStatus.Skipped });
|
|
9726
9737
|
ngDevMode.componentsSkippedHydration++;
|
|
9727
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
|
+
}
|
|
9728
9746
|
function markRNodeAsHavingHydrationMismatch(node, expectedNodeDetails = null, actualNodeDetails = null) {
|
|
9729
9747
|
if (!ngDevMode) {
|
|
9730
9748
|
throw new Error('Calling `markRNodeAsMismatchedByHydration` in prod mode ' +
|
|
@@ -16633,11 +16651,15 @@ function gatherDeferBlocksCommentNodes(doc, node) {
|
|
|
16633
16651
|
let currentNode;
|
|
16634
16652
|
const nodesByBlockId = new Map();
|
|
16635
16653
|
while ((currentNode = commentNodesIterator.nextNode())) {
|
|
16636
|
-
|
|
16637
|
-
const
|
|
16638
|
-
const
|
|
16639
|
-
if (
|
|
16640
|
-
|
|
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);
|
|
16641
16663
|
}
|
|
16642
16664
|
}
|
|
16643
16665
|
return nodesByBlockId;
|
|
@@ -18088,7 +18110,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
18088
18110
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
18089
18111
|
if (rootSelectorOrNode) {
|
|
18090
18112
|
// The placeholder will be replaced with the actual version at build time.
|
|
18091
|
-
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.1.0-next.
|
|
18113
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.1.0-next.4']);
|
|
18092
18114
|
}
|
|
18093
18115
|
else {
|
|
18094
18116
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -21285,15 +21307,8 @@ function renderDeferBlockState(newState, tNode, lContainer, skipTimerScheduling
|
|
|
21285
21307
|
}
|
|
21286
21308
|
}
|
|
21287
21309
|
function findMatchingDehydratedViewForDeferBlock(lContainer, lDetails) {
|
|
21288
|
-
// TODO(incremental-hydration): extract into a separate util function and use in relevant places.
|
|
21289
|
-
const views = lContainer[DEHYDRATED_VIEWS];
|
|
21290
|
-
if (views === null || views.length === 0) {
|
|
21291
|
-
return null;
|
|
21292
|
-
}
|
|
21293
21310
|
// Find matching view based on serialized defer block state.
|
|
21294
|
-
|
|
21295
|
-
// dehydrated views to see if there is anything missing in this function.
|
|
21296
|
-
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);
|
|
21297
21312
|
}
|
|
21298
21313
|
/**
|
|
21299
21314
|
* Applies changes to the DOM to reflect a given state.
|
|
@@ -21325,30 +21340,22 @@ function applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView)
|
|
|
21325
21340
|
}
|
|
21326
21341
|
}
|
|
21327
21342
|
const dehydratedView = findMatchingDehydratedViewForDeferBlock(lContainer, lDetails);
|
|
21328
|
-
//
|
|
21329
|
-
//
|
|
21330
|
-
|
|
21331
|
-
|
|
21332
|
-
|
|
21333
|
-
|
|
21334
|
-
|
|
21335
|
-
|
|
21336
|
-
|
|
21337
|
-
lContainer[DEHYDRATED_VIEWS] = null;
|
|
21338
|
-
const embeddedLView = createAndRenderEmbeddedLView(hostLView, activeBlockTNode, null, {
|
|
21339
|
-
injector,
|
|
21340
|
-
dehydratedView,
|
|
21341
|
-
});
|
|
21342
|
-
addLViewToLContainer(lContainer, embeddedLView, viewIndex, shouldAddViewToDom(activeBlockTNode, dehydratedView));
|
|
21343
|
-
markViewDirty(embeddedLView, 2 /* NotificationSource.DeferBlockStateUpdate */);
|
|
21344
|
-
}
|
|
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 */);
|
|
21345
21352
|
// TODO(incremental-hydration):
|
|
21346
21353
|
// - what if we had some views in `lContainer[DEHYDRATED_VIEWS]`, but
|
|
21347
21354
|
// we didn't find a view that matches the expected state?
|
|
21348
21355
|
// - for example, handle a situation when a block was in the "completed" state
|
|
21349
21356
|
// on the server, but the loading failing on the client. How do we reconcile and cleanup?
|
|
21350
|
-
|
|
21351
|
-
|
|
21357
|
+
if ((newState === DeferBlockState.Complete || newState === DeferBlockState.Error) &&
|
|
21358
|
+
Array.isArray(lDetails[ON_COMPLETE_FNS])) {
|
|
21352
21359
|
for (const callback of lDetails[ON_COMPLETE_FNS]) {
|
|
21353
21360
|
callback();
|
|
21354
21361
|
}
|
|
@@ -21869,6 +21876,162 @@ function detectChanges(component) {
|
|
|
21869
21876
|
detectChangesInternal(view);
|
|
21870
21877
|
}
|
|
21871
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
|
+
|
|
21872
22035
|
/**
|
|
21873
22036
|
* Discovers the dependencies of an injectable instance. Provides DI information about each
|
|
21874
22037
|
* dependency that the injectable was instantiated with, including where they were provided from.
|
|
@@ -22553,6 +22716,7 @@ const globalUtilsFunctions = {
|
|
|
22553
22716
|
'ɵgetInjectorMetadata': getInjectorMetadata,
|
|
22554
22717
|
'ɵsetProfiler': setProfiler,
|
|
22555
22718
|
'ɵgetSignalGraph': getSignalGraph,
|
|
22719
|
+
'ɵgetDeferBlocks': getDeferBlocks,
|
|
22556
22720
|
'getDirectiveMetadata': getDirectiveMetadata$1,
|
|
22557
22721
|
'getComponent': getComponent,
|
|
22558
22722
|
'getContext': getContext,
|
|
@@ -23793,9 +23957,14 @@ function detectChangesInViewIfRequired(lView, notifyErrorHandler, isFirstPass, z
|
|
|
23793
23957
|
function scheduleDelayedTrigger(scheduleFn) {
|
|
23794
23958
|
const lView = getLView();
|
|
23795
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;
|
|
23796
23966
|
const injector = lView[INJECTOR];
|
|
23797
23967
|
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
23798
|
-
renderPlaceholder(lView, tNode);
|
|
23799
23968
|
const cleanupFn = scheduleFn(() => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), injector);
|
|
23800
23969
|
storeTriggerCleanupFn(0 /* TriggerType.Regular */, lDetails, cleanupFn);
|
|
23801
23970
|
}
|
|
@@ -24077,30 +24246,25 @@ function populateHydratingStateForQueue(registry, queue) {
|
|
|
24077
24246
|
}
|
|
24078
24247
|
// Waits for the next render cycle to complete
|
|
24079
24248
|
function nextRender(injector) {
|
|
24080
|
-
|
|
24081
|
-
const promise = new Promise((resolveFn) => {
|
|
24082
|
-
resolve = resolveFn;
|
|
24083
|
-
});
|
|
24084
|
-
afterNextRender(() => resolve(), { injector });
|
|
24085
|
-
return promise;
|
|
24249
|
+
return new Promise((resolveFn) => afterNextRender(resolveFn, { injector }));
|
|
24086
24250
|
}
|
|
24087
|
-
function triggerResourceLoadingForHydration(dehydratedBlockId, dehydratedBlockRegistry) {
|
|
24088
|
-
let resolve;
|
|
24089
|
-
const promise = new Promise((resolveFn) => (resolve = resolveFn));
|
|
24251
|
+
async function triggerResourceLoadingForHydration(dehydratedBlockId, dehydratedBlockRegistry) {
|
|
24090
24252
|
const deferBlock = dehydratedBlockRegistry.get(dehydratedBlockId);
|
|
24091
24253
|
// Since we trigger hydration for nested defer blocks in a sequence (parent -> child),
|
|
24092
24254
|
// there is a chance that a defer block may not be present at hydration time. For example,
|
|
24093
24255
|
// when a nested block was in an `@if` condition, which has changed.
|
|
24094
|
-
if (deferBlock
|
|
24095
|
-
const { tNode, lView } = deferBlock;
|
|
24096
|
-
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
24097
|
-
onDeferBlockCompletion(lDetails, () => resolve());
|
|
24098
|
-
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
24256
|
+
if (deferBlock === null) {
|
|
24099
24257
|
// TODO(incremental-hydration): handle the cleanup for cases when
|
|
24100
24258
|
// defer block is no longer present during hydration (e.g. `@if` condition
|
|
24101
24259
|
// has changed during hydration/rendering).
|
|
24260
|
+
return;
|
|
24102
24261
|
}
|
|
24103
|
-
|
|
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
|
+
});
|
|
24104
24268
|
}
|
|
24105
24269
|
/**
|
|
24106
24270
|
* Registers cleanup functions for a defer block when the block has finished
|
|
@@ -24278,7 +24442,7 @@ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplInd
|
|
|
24278
24442
|
loadingPromise: null,
|
|
24279
24443
|
providers: null,
|
|
24280
24444
|
hydrateTriggers: null,
|
|
24281
|
-
|
|
24445
|
+
debug: null,
|
|
24282
24446
|
flags: flags ?? 0 /* TDeferDetailsFlags.Default */,
|
|
24283
24447
|
};
|
|
24284
24448
|
enableTimerScheduling?.(tView, tDetails, placeholderConfigIndex, loadingConfigIndex);
|
|
@@ -24335,6 +24499,9 @@ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplInd
|
|
|
24335
24499
|
function ɵɵdeferWhen(rawValue) {
|
|
24336
24500
|
const lView = getLView();
|
|
24337
24501
|
const tNode = getSelectedTNode();
|
|
24502
|
+
if (ngDevMode) {
|
|
24503
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'when <expression>');
|
|
24504
|
+
}
|
|
24338
24505
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24339
24506
|
return;
|
|
24340
24507
|
const bindingIndex = nextBindingIndex();
|
|
@@ -24366,6 +24533,9 @@ function ɵɵdeferWhen(rawValue) {
|
|
|
24366
24533
|
function ɵɵdeferPrefetchWhen(rawValue) {
|
|
24367
24534
|
const lView = getLView();
|
|
24368
24535
|
const tNode = getSelectedTNode();
|
|
24536
|
+
if (ngDevMode) {
|
|
24537
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'prefetch when <expression>');
|
|
24538
|
+
}
|
|
24369
24539
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24370
24540
|
return;
|
|
24371
24541
|
const bindingIndex = nextBindingIndex();
|
|
@@ -24393,6 +24563,9 @@ function ɵɵdeferPrefetchWhen(rawValue) {
|
|
|
24393
24563
|
function ɵɵdeferHydrateWhen(rawValue) {
|
|
24394
24564
|
const lView = getLView();
|
|
24395
24565
|
const tNode = getSelectedTNode();
|
|
24566
|
+
if (ngDevMode) {
|
|
24567
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate when <expression>');
|
|
24568
|
+
}
|
|
24396
24569
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24397
24570
|
return;
|
|
24398
24571
|
// TODO(incremental-hydration): audit all defer instructions to reduce unnecessary work by
|
|
@@ -24434,6 +24607,9 @@ function ɵɵdeferHydrateWhen(rawValue) {
|
|
|
24434
24607
|
function ɵɵdeferHydrateNever() {
|
|
24435
24608
|
const lView = getLView();
|
|
24436
24609
|
const tNode = getCurrentTNode();
|
|
24610
|
+
if (ngDevMode) {
|
|
24611
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate never');
|
|
24612
|
+
}
|
|
24437
24613
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24438
24614
|
return;
|
|
24439
24615
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -24450,6 +24626,9 @@ function ɵɵdeferHydrateNever() {
|
|
|
24450
24626
|
function ɵɵdeferOnIdle() {
|
|
24451
24627
|
const lView = getLView();
|
|
24452
24628
|
const tNode = getCurrentTNode();
|
|
24629
|
+
if (ngDevMode) {
|
|
24630
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'on idle');
|
|
24631
|
+
}
|
|
24453
24632
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24454
24633
|
return;
|
|
24455
24634
|
scheduleDelayedTrigger(onIdle);
|
|
@@ -24461,6 +24640,9 @@ function ɵɵdeferOnIdle() {
|
|
|
24461
24640
|
function ɵɵdeferPrefetchOnIdle() {
|
|
24462
24641
|
const lView = getLView();
|
|
24463
24642
|
const tNode = getCurrentTNode();
|
|
24643
|
+
if (ngDevMode) {
|
|
24644
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'prefetch on idle');
|
|
24645
|
+
}
|
|
24464
24646
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24465
24647
|
return;
|
|
24466
24648
|
scheduleDelayedPrefetching(onIdle, 0 /* DeferBlockTrigger.Idle */);
|
|
@@ -24472,6 +24654,9 @@ function ɵɵdeferPrefetchOnIdle() {
|
|
|
24472
24654
|
function ɵɵdeferHydrateOnIdle() {
|
|
24473
24655
|
const lView = getLView();
|
|
24474
24656
|
const tNode = getCurrentTNode();
|
|
24657
|
+
if (ngDevMode) {
|
|
24658
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on idle');
|
|
24659
|
+
}
|
|
24475
24660
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24476
24661
|
return;
|
|
24477
24662
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -24491,6 +24676,9 @@ function ɵɵdeferHydrateOnIdle() {
|
|
|
24491
24676
|
function ɵɵdeferOnImmediate() {
|
|
24492
24677
|
const lView = getLView();
|
|
24493
24678
|
const tNode = getCurrentTNode();
|
|
24679
|
+
if (ngDevMode) {
|
|
24680
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'on immediate');
|
|
24681
|
+
}
|
|
24494
24682
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24495
24683
|
return;
|
|
24496
24684
|
// Render placeholder block only if loading template is not present and we're on
|
|
@@ -24509,6 +24697,9 @@ function ɵɵdeferOnImmediate() {
|
|
|
24509
24697
|
function ɵɵdeferPrefetchOnImmediate() {
|
|
24510
24698
|
const lView = getLView();
|
|
24511
24699
|
const tNode = getCurrentTNode();
|
|
24700
|
+
if (ngDevMode) {
|
|
24701
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'prefetch on immediate');
|
|
24702
|
+
}
|
|
24512
24703
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24513
24704
|
return;
|
|
24514
24705
|
const tView = lView[TVIEW];
|
|
@@ -24524,6 +24715,9 @@ function ɵɵdeferPrefetchOnImmediate() {
|
|
|
24524
24715
|
function ɵɵdeferHydrateOnImmediate() {
|
|
24525
24716
|
const lView = getLView();
|
|
24526
24717
|
const tNode = getCurrentTNode();
|
|
24718
|
+
if (ngDevMode) {
|
|
24719
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on immediate');
|
|
24720
|
+
}
|
|
24527
24721
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24528
24722
|
return;
|
|
24529
24723
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -24547,6 +24741,9 @@ function ɵɵdeferHydrateOnImmediate() {
|
|
|
24547
24741
|
function ɵɵdeferOnTimer(delay) {
|
|
24548
24742
|
const lView = getLView();
|
|
24549
24743
|
const tNode = getCurrentTNode();
|
|
24744
|
+
if (ngDevMode) {
|
|
24745
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `on timer(${delay}ms)`);
|
|
24746
|
+
}
|
|
24550
24747
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24551
24748
|
return;
|
|
24552
24749
|
scheduleDelayedTrigger(onTimer(delay));
|
|
@@ -24559,6 +24756,9 @@ function ɵɵdeferOnTimer(delay) {
|
|
|
24559
24756
|
function ɵɵdeferPrefetchOnTimer(delay) {
|
|
24560
24757
|
const lView = getLView();
|
|
24561
24758
|
const tNode = getCurrentTNode();
|
|
24759
|
+
if (ngDevMode) {
|
|
24760
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `prefetch on timer(${delay}ms)`);
|
|
24761
|
+
}
|
|
24562
24762
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24563
24763
|
return;
|
|
24564
24764
|
scheduleDelayedPrefetching(onTimer(delay), 5 /* DeferBlockTrigger.Timer */);
|
|
@@ -24571,10 +24771,13 @@ function ɵɵdeferPrefetchOnTimer(delay) {
|
|
|
24571
24771
|
function ɵɵdeferHydrateOnTimer(delay) {
|
|
24572
24772
|
const lView = getLView();
|
|
24573
24773
|
const tNode = getCurrentTNode();
|
|
24774
|
+
if (ngDevMode) {
|
|
24775
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `hydrate on timer(${delay}ms)`);
|
|
24776
|
+
}
|
|
24574
24777
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24575
24778
|
return;
|
|
24576
24779
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
24577
|
-
hydrateTriggers.set(5 /* DeferBlockTrigger.Timer */, delay);
|
|
24780
|
+
hydrateTriggers.set(5 /* DeferBlockTrigger.Timer */, { delay });
|
|
24578
24781
|
if (typeof ngServerMode !== 'undefined' && ngServerMode) {
|
|
24579
24782
|
// We are on the server and SSR for defer blocks is enabled.
|
|
24580
24783
|
triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
|
|
@@ -24592,6 +24795,9 @@ function ɵɵdeferHydrateOnTimer(delay) {
|
|
|
24592
24795
|
function ɵɵdeferOnHover(triggerIndex, walkUpTimes) {
|
|
24593
24796
|
const lView = getLView();
|
|
24594
24797
|
const tNode = getCurrentTNode();
|
|
24798
|
+
if (ngDevMode) {
|
|
24799
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `on hover${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24800
|
+
}
|
|
24595
24801
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24596
24802
|
return;
|
|
24597
24803
|
renderPlaceholder(lView, tNode);
|
|
@@ -24609,6 +24815,9 @@ function ɵɵdeferOnHover(triggerIndex, walkUpTimes) {
|
|
|
24609
24815
|
function ɵɵdeferPrefetchOnHover(triggerIndex, walkUpTimes) {
|
|
24610
24816
|
const lView = getLView();
|
|
24611
24817
|
const tNode = getCurrentTNode();
|
|
24818
|
+
if (ngDevMode) {
|
|
24819
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `prefetch on hover${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24820
|
+
}
|
|
24612
24821
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24613
24822
|
return;
|
|
24614
24823
|
const tView = lView[TVIEW];
|
|
@@ -24624,6 +24833,9 @@ function ɵɵdeferPrefetchOnHover(triggerIndex, walkUpTimes) {
|
|
|
24624
24833
|
function ɵɵdeferHydrateOnHover() {
|
|
24625
24834
|
const lView = getLView();
|
|
24626
24835
|
const tNode = getCurrentTNode();
|
|
24836
|
+
if (ngDevMode) {
|
|
24837
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on hover');
|
|
24838
|
+
}
|
|
24627
24839
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24628
24840
|
return;
|
|
24629
24841
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -24644,6 +24856,9 @@ function ɵɵdeferHydrateOnHover() {
|
|
|
24644
24856
|
function ɵɵdeferOnInteraction(triggerIndex, walkUpTimes) {
|
|
24645
24857
|
const lView = getLView();
|
|
24646
24858
|
const tNode = getCurrentTNode();
|
|
24859
|
+
if (ngDevMode) {
|
|
24860
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `on interaction${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24861
|
+
}
|
|
24647
24862
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24648
24863
|
return;
|
|
24649
24864
|
renderPlaceholder(lView, tNode);
|
|
@@ -24661,6 +24876,9 @@ function ɵɵdeferOnInteraction(triggerIndex, walkUpTimes) {
|
|
|
24661
24876
|
function ɵɵdeferPrefetchOnInteraction(triggerIndex, walkUpTimes) {
|
|
24662
24877
|
const lView = getLView();
|
|
24663
24878
|
const tNode = getCurrentTNode();
|
|
24879
|
+
if (ngDevMode) {
|
|
24880
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `prefetch on interaction${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24881
|
+
}
|
|
24664
24882
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24665
24883
|
return;
|
|
24666
24884
|
const tView = lView[TVIEW];
|
|
@@ -24676,6 +24894,9 @@ function ɵɵdeferPrefetchOnInteraction(triggerIndex, walkUpTimes) {
|
|
|
24676
24894
|
function ɵɵdeferHydrateOnInteraction() {
|
|
24677
24895
|
const lView = getLView();
|
|
24678
24896
|
const tNode = getCurrentTNode();
|
|
24897
|
+
if (ngDevMode) {
|
|
24898
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on interaction');
|
|
24899
|
+
}
|
|
24679
24900
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24680
24901
|
return;
|
|
24681
24902
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -24696,6 +24917,9 @@ function ɵɵdeferHydrateOnInteraction() {
|
|
|
24696
24917
|
function ɵɵdeferOnViewport(triggerIndex, walkUpTimes) {
|
|
24697
24918
|
const lView = getLView();
|
|
24698
24919
|
const tNode = getCurrentTNode();
|
|
24920
|
+
if (ngDevMode) {
|
|
24921
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `on viewport${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24922
|
+
}
|
|
24699
24923
|
if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
|
|
24700
24924
|
return;
|
|
24701
24925
|
renderPlaceholder(lView, tNode);
|
|
@@ -24713,6 +24937,9 @@ function ɵɵdeferOnViewport(triggerIndex, walkUpTimes) {
|
|
|
24713
24937
|
function ɵɵdeferPrefetchOnViewport(triggerIndex, walkUpTimes) {
|
|
24714
24938
|
const lView = getLView();
|
|
24715
24939
|
const tNode = getCurrentTNode();
|
|
24940
|
+
if (ngDevMode) {
|
|
24941
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, `prefetch on viewport${walkUpTimes === -1 ? '' : '(<target>)'}`);
|
|
24942
|
+
}
|
|
24716
24943
|
if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
|
|
24717
24944
|
return;
|
|
24718
24945
|
const tView = lView[TVIEW];
|
|
@@ -24728,6 +24955,9 @@ function ɵɵdeferPrefetchOnViewport(triggerIndex, walkUpTimes) {
|
|
|
24728
24955
|
function ɵɵdeferHydrateOnViewport() {
|
|
24729
24956
|
const lView = getLView();
|
|
24730
24957
|
const tNode = getCurrentTNode();
|
|
24958
|
+
if (ngDevMode) {
|
|
24959
|
+
trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on viewport');
|
|
24960
|
+
}
|
|
24731
24961
|
if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
|
|
24732
24962
|
return;
|
|
24733
24963
|
const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
|
|
@@ -34746,7 +34976,7 @@ class Version {
|
|
|
34746
34976
|
/**
|
|
34747
34977
|
* @publicApi
|
|
34748
34978
|
*/
|
|
34749
|
-
const VERSION = new Version('19.1.0-next.
|
|
34979
|
+
const VERSION = new Version('19.1.0-next.4');
|
|
34750
34980
|
|
|
34751
34981
|
/**
|
|
34752
34982
|
* Combination of NgModuleFactory and ComponentFactories.
|
|
@@ -35767,6 +35997,27 @@ function logOversizedImageWarning(src) {
|
|
|
35767
35997
|
*/
|
|
35768
35998
|
const PLATFORM_DESTROY_LISTENERS = new InjectionToken(ngDevMode ? 'PlatformDestroyListeners' : '');
|
|
35769
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' : '');
|
|
35770
36021
|
function isApplicationBootstrapConfig(config) {
|
|
35771
36022
|
return !config.moduleRef;
|
|
35772
36023
|
}
|
|
@@ -35831,6 +36082,14 @@ function bootstrap(config) {
|
|
|
35831
36082
|
// If the `LOCALE_ID` provider is defined at bootstrap then we set the value for ivy
|
|
35832
36083
|
const localeId = envInjector.get(LOCALE_ID, DEFAULT_LOCALE_ID);
|
|
35833
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
|
+
}
|
|
35834
36093
|
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
35835
36094
|
const imagePerformanceService = envInjector.get(ImagePerformanceWarning);
|
|
35836
36095
|
imagePerformanceService.start();
|
|
@@ -38741,42 +39000,6 @@ function internalCreateApplication(config) {
|
|
|
38741
39000
|
}
|
|
38742
39001
|
}
|
|
38743
39002
|
|
|
38744
|
-
/**
|
|
38745
|
-
* Retrieves all defer blocks in a given LView.
|
|
38746
|
-
*
|
|
38747
|
-
* @param lView lView with defer blocks
|
|
38748
|
-
* @param deferBlocks defer block aggregator array
|
|
38749
|
-
*/
|
|
38750
|
-
function getDeferBlocks(lView, deferBlocks) {
|
|
38751
|
-
const tView = lView[TVIEW];
|
|
38752
|
-
for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {
|
|
38753
|
-
if (isLContainer(lView[i])) {
|
|
38754
|
-
const lContainer = lView[i];
|
|
38755
|
-
// An LContainer may represent an instance of a defer block, in which case
|
|
38756
|
-
// we store it as a result. Otherwise, keep iterating over LContainer views and
|
|
38757
|
-
// look for defer blocks.
|
|
38758
|
-
const isLast = i === tView.bindingStartIndex - 1;
|
|
38759
|
-
if (!isLast) {
|
|
38760
|
-
const tNode = tView.data[i];
|
|
38761
|
-
const tDetails = getTDeferBlockDetails(tView, tNode);
|
|
38762
|
-
if (isTDeferBlockDetails(tDetails)) {
|
|
38763
|
-
deferBlocks.push({ lContainer, lView, tNode, tDetails });
|
|
38764
|
-
// This LContainer represents a defer block, so we exit
|
|
38765
|
-
// this iteration and don't inspect views in this LContainer.
|
|
38766
|
-
continue;
|
|
38767
|
-
}
|
|
38768
|
-
}
|
|
38769
|
-
for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
|
|
38770
|
-
getDeferBlocks(lContainer[i], deferBlocks);
|
|
38771
|
-
}
|
|
38772
|
-
}
|
|
38773
|
-
else if (isLView(lView[i])) {
|
|
38774
|
-
// This is a component, enter the `getDeferBlocks` recursively.
|
|
38775
|
-
getDeferBlocks(lView[i], deferBlocks);
|
|
38776
|
-
}
|
|
38777
|
-
}
|
|
38778
|
-
}
|
|
38779
|
-
|
|
38780
39003
|
/** Apps in which we've enabled event replay.
|
|
38781
39004
|
* This is to prevent initializing event replay more than once per app.
|
|
38782
39005
|
*/
|
|
@@ -39144,7 +39367,6 @@ function annotateForHydration(appRef, doc) {
|
|
|
39144
39367
|
transferState.set(NGH_DATA_KEY, serializedViews);
|
|
39145
39368
|
if (deferBlocks.size > 0) {
|
|
39146
39369
|
const blocks = {};
|
|
39147
|
-
// TODO(incremental-hydration): we should probably have an object here instead of a Map?
|
|
39148
39370
|
for (const [id, info] of deferBlocks.entries()) {
|
|
39149
39371
|
blocks[id] = info;
|
|
39150
39372
|
}
|
|
@@ -39213,10 +39435,10 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
|
|
|
39213
39435
|
// If this is a defer block, serialize extra info.
|
|
39214
39436
|
if (isDeferBlock(lView[TVIEW], tNode)) {
|
|
39215
39437
|
const lDetails = getLDeferBlockDetails(lView, tNode);
|
|
39216
|
-
|
|
39438
|
+
const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
|
|
39439
|
+
if (context.isIncrementalHydrationEnabled && tDetails.hydrateTriggers !== null) {
|
|
39217
39440
|
const deferBlockId = `d${context.deferBlocks.size}`;
|
|
39218
|
-
|
|
39219
|
-
if (tDetails.hydrateTriggers?.has(7 /* DeferBlockTrigger.Never */)) {
|
|
39441
|
+
if (tDetails.hydrateTriggers.has(7 /* DeferBlockTrigger.Never */)) {
|
|
39220
39442
|
isHydrateNeverBlock = true;
|
|
39221
39443
|
}
|
|
39222
39444
|
let rootNodes = [];
|
|
@@ -39226,8 +39448,11 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
|
|
|
39226
39448
|
[DEFER_PARENT_BLOCK_ID]: parentDeferBlockId,
|
|
39227
39449
|
[NUM_ROOT_NODES]: rootNodes.length,
|
|
39228
39450
|
[DEFER_BLOCK_STATE$1]: lDetails[DEFER_BLOCK_STATE],
|
|
39229
|
-
[DEFER_HYDRATE_TRIGGERS]: serializeHydrateTriggers(tDetails.hydrateTriggers),
|
|
39230
39451
|
};
|
|
39452
|
+
const serializedTriggers = serializeHydrateTriggers(tDetails.hydrateTriggers);
|
|
39453
|
+
if (serializedTriggers.length > 0) {
|
|
39454
|
+
deferBlockInfo[DEFER_HYDRATE_TRIGGERS] = serializedTriggers;
|
|
39455
|
+
}
|
|
39231
39456
|
context.deferBlocks.set(deferBlockId, deferBlockInfo);
|
|
39232
39457
|
const node = unwrapRNode(lContainer);
|
|
39233
39458
|
if (node !== undefined) {
|
|
@@ -39258,11 +39483,7 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
|
|
|
39258
39483
|
serializedView[DEFER_BLOCK_STATE$1] = lDetails[DEFER_BLOCK_STATE];
|
|
39259
39484
|
}
|
|
39260
39485
|
if (!isHydrateNeverBlock) {
|
|
39261
|
-
|
|
39262
|
-
serializedView = {
|
|
39263
|
-
...serializedView,
|
|
39264
|
-
...serializeLView(lContainer[i], parentDeferBlockId, context),
|
|
39265
|
-
};
|
|
39486
|
+
Object.assign(serializedView, serializeLView(lContainer[i], parentDeferBlockId, context));
|
|
39266
39487
|
}
|
|
39267
39488
|
}
|
|
39268
39489
|
// Check if the previous view has the same shape (for example, it was
|
|
@@ -39283,9 +39504,6 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
|
|
|
39283
39504
|
return views;
|
|
39284
39505
|
}
|
|
39285
39506
|
function serializeHydrateTriggers(triggerMap) {
|
|
39286
|
-
if (triggerMap === null) {
|
|
39287
|
-
return null;
|
|
39288
|
-
}
|
|
39289
39507
|
const serializableDeferBlockTrigger = new Set([
|
|
39290
39508
|
0 /* DeferBlockTrigger.Idle */,
|
|
39291
39509
|
1 /* DeferBlockTrigger.Immediate */,
|
|
@@ -39299,7 +39517,7 @@ function serializeHydrateTriggers(triggerMap) {
|
|
|
39299
39517
|
triggers.push(trigger);
|
|
39300
39518
|
}
|
|
39301
39519
|
else {
|
|
39302
|
-
triggers.push({ trigger, details });
|
|
39520
|
+
triggers.push({ trigger, delay: details.delay });
|
|
39303
39521
|
}
|
|
39304
39522
|
}
|
|
39305
39523
|
}
|
|
@@ -39717,6 +39935,9 @@ function printHydrationStats(injector) {
|
|
|
39717
39935
|
const message = `Angular hydrated ${ngDevMode.hydratedComponents} component(s) ` +
|
|
39718
39936
|
`and ${ngDevMode.hydratedNodes} node(s), ` +
|
|
39719
39937
|
`${ngDevMode.componentsSkippedHydration} component(s) were skipped. ` +
|
|
39938
|
+
(isIncrementalHydrationEnabled(injector)
|
|
39939
|
+
? `${ngDevMode.deferBlocksWithIncrementalHydration} defer block(s) were configured to use incremental hydration. `
|
|
39940
|
+
: '') +
|
|
39720
39941
|
`Learn more at https://angular.dev/guide/hydration.`;
|
|
39721
39942
|
// tslint:disable-next-line:no-console
|
|
39722
39943
|
console.log(message);
|
|
@@ -39840,6 +40061,7 @@ function withDomHydration() {
|
|
|
39840
40061
|
whenStableWithTimeout(appRef, injector).then(() => {
|
|
39841
40062
|
cleanupDehydratedViews(appRef);
|
|
39842
40063
|
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
40064
|
+
countBlocksSkippedByHydration(injector);
|
|
39843
40065
|
printHydrationStats(injector);
|
|
39844
40066
|
}
|
|
39845
40067
|
});
|
|
@@ -41346,5 +41568,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
41346
41568
|
* Generated bundle index. Do not edit.
|
|
41347
41569
|
*/
|
|
41348
41570
|
|
|
41349
|
-
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 ɵ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, ɵɵ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 };
|
|
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 };
|
|
41350
41572
|
//# sourceMappingURL=core.mjs.map
|