@angular/core 18.1.0-next.3 → 18.1.0-rc.0
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/esm2022/primitives/event-dispatch/index.mjs +3 -2
- package/esm2022/primitives/event-dispatch/src/action_resolver.mjs +3 -3
- package/esm2022/primitives/event-dispatch/src/attribute.mjs +16 -52
- package/esm2022/primitives/event-dispatch/src/cache.mjs +17 -6
- package/esm2022/primitives/event-dispatch/src/char.mjs +1 -16
- package/esm2022/primitives/event-dispatch/src/event.mjs +2 -3
- package/esm2022/primitives/event-dispatch/src/eventcontract.mjs +6 -67
- package/esm2022/primitives/event-dispatch/src/property.mjs +17 -22
- package/esm2022/primitives/signals/index.mjs +3 -3
- package/esm2022/primitives/signals/src/signal.mjs +4 -1
- package/esm2022/src/change_detection/change_detector_ref.mjs +3 -2
- package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +2 -2
- package/esm2022/src/core_private_export.mjs +3 -1
- package/esm2022/src/defer/instructions.mjs +2 -2
- package/esm2022/src/di/host_tag_name_token.mjs +4 -1
- package/esm2022/src/errors.mjs +1 -1
- package/esm2022/src/event_delegation_utils.mjs +40 -22
- package/esm2022/src/event_dispatch/event_delegation.mjs +38 -0
- package/esm2022/src/hydration/annotate.mjs +29 -18
- package/esm2022/src/hydration/error_handling.mjs +3 -1
- package/esm2022/src/hydration/event_replay.mjs +6 -5
- package/esm2022/src/hydration/i18n.mjs +102 -18
- package/esm2022/src/hydration/node_lookup_utils.mjs +12 -6
- package/esm2022/src/render3/collect_native_nodes.mjs +6 -1
- package/esm2022/src/render3/component_ref.mjs +1 -1
- package/esm2022/src/render3/instructions/i18n_icu_container_visitor.mjs +61 -51
- package/esm2022/src/render3/instructions/let_declaration.mjs +30 -7
- package/esm2022/src/render3/instructions/projection.mjs +14 -11
- package/esm2022/src/render3/instructions/shared.mjs +1 -1
- package/esm2022/src/render3/interfaces/node.mjs +2 -1
- package/esm2022/src/render3/node_assert.mjs +9 -8
- package/esm2022/src/render3/node_manipulation.mjs +10 -3
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/logger.mjs +3 -3
- package/fesm2022/core.mjs +358 -164
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +54 -243
- package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +5 -2
- package/fesm2022/primitives/signals.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/index.d.ts +39 -4
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +22 -102
- package/primitives/signals/index.d.ts +10 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/migrations/invalid-two-way-bindings/bundle.js +31 -11
- package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +3 -3
- package/schematics/ng-generate/control-flow-migration/bundle.js +31 -11
- package/schematics/ng-generate/control-flow-migration/bundle.js.map +3 -3
- package/schematics/ng-generate/standalone-migration/bundle.js +126 -47
- package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
- package/testing/index.d.ts +1 -1
- package/esm2022/primitives/event-dispatch/src/dom.mjs +0 -48
package/fesm2022/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v18.1.0-
|
|
2
|
+
* @license Angular v18.1.0-rc.0
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';
|
|
8
8
|
import { BehaviorSubject, Subject, Subscription } from 'rxjs';
|
|
9
9
|
import { map, first } from 'rxjs/operators';
|
|
10
|
-
import
|
|
11
|
-
import { EventContract, EventContractContainer, EventDispatcher, registerDispatcher, isSupportedEvent, isCaptureEvent } from '@angular/core/primitives/event-dispatch';
|
|
10
|
+
import { Attribute as Attribute$1, isSupportedEvent, registerEventType, unregisterEventType, EventContract, EventContractContainer, EventDispatcher, registerDispatcher, isCaptureEvent } from '@angular/core/primitives/event-dispatch';
|
|
12
11
|
|
|
13
12
|
/**
|
|
14
13
|
* Base URL for the error details page.
|
|
@@ -5317,6 +5316,7 @@ function toTNodeTypeAsString(tNodeType) {
|
|
|
5317
5316
|
tNodeType & 16 /* TNodeType.Projection */ && (text += '|Projection');
|
|
5318
5317
|
tNodeType & 32 /* TNodeType.Icu */ && (text += '|IcuContainer');
|
|
5319
5318
|
tNodeType & 64 /* TNodeType.Placeholder */ && (text += '|Placeholder');
|
|
5319
|
+
tNodeType & 128 /* TNodeType.LetDeclaration */ && (text += '|LetDeclaration');
|
|
5320
5320
|
return text.length > 0 ? text.substring(1) : text;
|
|
5321
5321
|
}
|
|
5322
5322
|
/**
|
|
@@ -5392,13 +5392,14 @@ function assertTNodeType(tNode, expectedTypes, message) {
|
|
|
5392
5392
|
}
|
|
5393
5393
|
}
|
|
5394
5394
|
function assertPureTNodeType(type) {
|
|
5395
|
-
if (!(type === 2 /* TNodeType.Element */ ||
|
|
5396
|
-
type === 1 /* TNodeType.Text */ ||
|
|
5397
|
-
type === 4 /* TNodeType.Container */ ||
|
|
5398
|
-
type === 8 /* TNodeType.ElementContainer */ ||
|
|
5399
|
-
type === 32 /* TNodeType.Icu */ ||
|
|
5400
|
-
type === 16 /* TNodeType.Projection */ ||
|
|
5401
|
-
type === 64 /* TNodeType.Placeholder */
|
|
5395
|
+
if (!(type === 2 /* TNodeType.Element */ ||
|
|
5396
|
+
type === 1 /* TNodeType.Text */ ||
|
|
5397
|
+
type === 4 /* TNodeType.Container */ ||
|
|
5398
|
+
type === 8 /* TNodeType.ElementContainer */ ||
|
|
5399
|
+
type === 32 /* TNodeType.Icu */ ||
|
|
5400
|
+
type === 16 /* TNodeType.Projection */ ||
|
|
5401
|
+
type === 64 /* TNodeType.Placeholder */ ||
|
|
5402
|
+
type === 128 /* TNodeType.LetDeclaration */)) {
|
|
5402
5403
|
throwError(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`);
|
|
5403
5404
|
}
|
|
5404
5405
|
}
|
|
@@ -6596,6 +6597,9 @@ function getDevModeNodeName(tNode) {
|
|
|
6596
6597
|
else if (tNode.type & 4 /* TNodeType.Container */) {
|
|
6597
6598
|
return 'an <ng-template>';
|
|
6598
6599
|
}
|
|
6600
|
+
else if (tNode.type & 128 /* TNodeType.LetDeclaration */) {
|
|
6601
|
+
return 'an @let declaration';
|
|
6602
|
+
}
|
|
6599
6603
|
else {
|
|
6600
6604
|
return 'a node';
|
|
6601
6605
|
}
|
|
@@ -10840,8 +10844,10 @@ function getParentRElement(tView, tNode, lView) {
|
|
|
10840
10844
|
function getClosestRElement(tView, tNode, lView) {
|
|
10841
10845
|
let parentTNode = tNode;
|
|
10842
10846
|
// Skip over element and ICU containers as those are represented by a comment node and
|
|
10843
|
-
// can't be used as a render parent.
|
|
10844
|
-
|
|
10847
|
+
// can't be used as a render parent. Also skip let declarations since they don't have a
|
|
10848
|
+
// corresponding DOM node at all.
|
|
10849
|
+
while (parentTNode !== null &&
|
|
10850
|
+
parentTNode.type & (8 /* TNodeType.ElementContainer */ | 32 /* TNodeType.Icu */ | 128 /* TNodeType.LetDeclaration */)) {
|
|
10845
10851
|
tNode = parentTNode;
|
|
10846
10852
|
parentTNode = tNode.parent;
|
|
10847
10853
|
}
|
|
@@ -11091,6 +11097,11 @@ function clearElementContents(rElement) {
|
|
|
11091
11097
|
function applyNodes(renderer, action, tNode, lView, parentRElement, beforeNode, isProjection) {
|
|
11092
11098
|
while (tNode != null) {
|
|
11093
11099
|
ngDevMode && assertTNodeForLView(tNode, lView);
|
|
11100
|
+
// Let declarations don't have corresponding DOM nodes so we skip over them.
|
|
11101
|
+
if (tNode.type === 128 /* TNodeType.LetDeclaration */) {
|
|
11102
|
+
tNode = tNode.next;
|
|
11103
|
+
continue;
|
|
11104
|
+
}
|
|
11094
11105
|
ngDevMode &&
|
|
11095
11106
|
assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */ | 12 /* TNodeType.AnyContainer */ | 16 /* TNodeType.Projection */ | 32 /* TNodeType.Icu */);
|
|
11096
11107
|
const rawSlotValue = lView[tNode.index];
|
|
@@ -12941,6 +12952,11 @@ function removeLViewFromLContainer(lContainer, index) {
|
|
|
12941
12952
|
|
|
12942
12953
|
function collectNativeNodes(tView, lView, tNode, result, isProjection = false) {
|
|
12943
12954
|
while (tNode !== null) {
|
|
12955
|
+
// Let declarations don't have corresponding DOM nodes so we skip over them.
|
|
12956
|
+
if (tNode.type === 128 /* TNodeType.LetDeclaration */) {
|
|
12957
|
+
tNode = isProjection ? tNode.projectionNext : tNode.next;
|
|
12958
|
+
continue;
|
|
12959
|
+
}
|
|
12944
12960
|
ngDevMode &&
|
|
12945
12961
|
assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */ | 12 /* TNodeType.AnyContainer */ | 16 /* TNodeType.Projection */ | 32 /* TNodeType.Icu */);
|
|
12946
12962
|
const lNode = lView[tNode.index];
|
|
@@ -13882,6 +13898,8 @@ function getFriendlyStringFromTNodeType(tNodeType) {
|
|
|
13882
13898
|
return 'projection';
|
|
13883
13899
|
case 1 /* TNodeType.Text */:
|
|
13884
13900
|
return 'text';
|
|
13901
|
+
case 128 /* TNodeType.LetDeclaration */:
|
|
13902
|
+
return '@let';
|
|
13885
13903
|
default:
|
|
13886
13904
|
// This should not happen as we cover all possible TNode types above.
|
|
13887
13905
|
return '<unknown>';
|
|
@@ -14476,6 +14494,89 @@ function isRootTemplateMessage(subTemplateIndex) {
|
|
|
14476
14494
|
return subTemplateIndex === -1;
|
|
14477
14495
|
}
|
|
14478
14496
|
|
|
14497
|
+
function enterIcu(state, tIcu, lView) {
|
|
14498
|
+
state.index = 0;
|
|
14499
|
+
const currentCase = getCurrentICUCaseIndex(tIcu, lView);
|
|
14500
|
+
if (currentCase !== null) {
|
|
14501
|
+
ngDevMode && assertNumberInRange(currentCase, 0, tIcu.cases.length - 1);
|
|
14502
|
+
state.removes = tIcu.remove[currentCase];
|
|
14503
|
+
}
|
|
14504
|
+
else {
|
|
14505
|
+
state.removes = EMPTY_ARRAY;
|
|
14506
|
+
}
|
|
14507
|
+
}
|
|
14508
|
+
function icuContainerIteratorNext(state) {
|
|
14509
|
+
if (state.index < state.removes.length) {
|
|
14510
|
+
const removeOpCode = state.removes[state.index++];
|
|
14511
|
+
ngDevMode && assertNumber(removeOpCode, 'Expecting OpCode number');
|
|
14512
|
+
if (removeOpCode > 0) {
|
|
14513
|
+
const rNode = state.lView[removeOpCode];
|
|
14514
|
+
ngDevMode && assertDomNode(rNode);
|
|
14515
|
+
return rNode;
|
|
14516
|
+
}
|
|
14517
|
+
else {
|
|
14518
|
+
state.stack.push(state.index, state.removes);
|
|
14519
|
+
// ICUs are represented by negative indices
|
|
14520
|
+
const tIcuIndex = ~removeOpCode;
|
|
14521
|
+
const tIcu = state.lView[TVIEW].data[tIcuIndex];
|
|
14522
|
+
ngDevMode && assertTIcu(tIcu);
|
|
14523
|
+
enterIcu(state, tIcu, state.lView);
|
|
14524
|
+
return icuContainerIteratorNext(state);
|
|
14525
|
+
}
|
|
14526
|
+
}
|
|
14527
|
+
else {
|
|
14528
|
+
if (state.stack.length === 0) {
|
|
14529
|
+
return null;
|
|
14530
|
+
}
|
|
14531
|
+
else {
|
|
14532
|
+
state.removes = state.stack.pop();
|
|
14533
|
+
state.index = state.stack.pop();
|
|
14534
|
+
return icuContainerIteratorNext(state);
|
|
14535
|
+
}
|
|
14536
|
+
}
|
|
14537
|
+
}
|
|
14538
|
+
function loadIcuContainerVisitor() {
|
|
14539
|
+
const _state = {
|
|
14540
|
+
stack: [],
|
|
14541
|
+
index: -1,
|
|
14542
|
+
};
|
|
14543
|
+
/**
|
|
14544
|
+
* Retrieves a set of root nodes from `TIcu.remove`. Used by `TNodeType.ICUContainer`
|
|
14545
|
+
* to determine which root belong to the ICU.
|
|
14546
|
+
*
|
|
14547
|
+
* Example of usage.
|
|
14548
|
+
* ```
|
|
14549
|
+
* const nextRNode = icuContainerIteratorStart(tIcuContainerNode, lView);
|
|
14550
|
+
* let rNode: RNode|null;
|
|
14551
|
+
* while(rNode = nextRNode()) {
|
|
14552
|
+
* console.log(rNode);
|
|
14553
|
+
* }
|
|
14554
|
+
* ```
|
|
14555
|
+
*
|
|
14556
|
+
* @param tIcuContainerNode Current `TIcuContainerNode`
|
|
14557
|
+
* @param lView `LView` where the `RNode`s should be looked up.
|
|
14558
|
+
*/
|
|
14559
|
+
function icuContainerIteratorStart(tIcuContainerNode, lView) {
|
|
14560
|
+
_state.lView = lView;
|
|
14561
|
+
while (_state.stack.length)
|
|
14562
|
+
_state.stack.pop();
|
|
14563
|
+
ngDevMode && assertTNodeForLView(tIcuContainerNode, lView);
|
|
14564
|
+
enterIcu(_state, tIcuContainerNode.value, lView);
|
|
14565
|
+
return icuContainerIteratorNext.bind(null, _state);
|
|
14566
|
+
}
|
|
14567
|
+
return icuContainerIteratorStart;
|
|
14568
|
+
}
|
|
14569
|
+
function createIcuIterator(tIcu, lView) {
|
|
14570
|
+
const state = {
|
|
14571
|
+
stack: [],
|
|
14572
|
+
index: -1,
|
|
14573
|
+
lView,
|
|
14574
|
+
};
|
|
14575
|
+
ngDevMode && assertTIcu(tIcu);
|
|
14576
|
+
enterIcu(state, tIcu, lView);
|
|
14577
|
+
return icuContainerIteratorNext.bind(null, state);
|
|
14578
|
+
}
|
|
14579
|
+
|
|
14479
14580
|
/**
|
|
14480
14581
|
* Regexp that extracts a reference node information from the compressed node location.
|
|
14481
14582
|
* The reference node is represented as either:
|
|
@@ -14547,15 +14648,21 @@ function getNoOffsetIndex(tNode) {
|
|
|
14547
14648
|
}
|
|
14548
14649
|
/**
|
|
14549
14650
|
* Check whether a given node exists, but is disconnected from the DOM.
|
|
14651
|
+
*/
|
|
14652
|
+
function isDisconnectedNode(tNode, lView) {
|
|
14653
|
+
return (!(tNode.type & (16 /* TNodeType.Projection */ | 128 /* TNodeType.LetDeclaration */)) &&
|
|
14654
|
+
!!lView[tNode.index] &&
|
|
14655
|
+
isDisconnectedRNode(unwrapRNode(lView[tNode.index])));
|
|
14656
|
+
}
|
|
14657
|
+
/**
|
|
14658
|
+
* Check whether the given node exists, but is disconnected from the DOM.
|
|
14550
14659
|
*
|
|
14551
14660
|
* Note: we leverage the fact that we have this information available in the DOM emulation
|
|
14552
14661
|
* layer (in Domino) for now. Longer-term solution should not rely on the DOM emulation and
|
|
14553
14662
|
* only use internal data structures and state to compute this information.
|
|
14554
14663
|
*/
|
|
14555
|
-
function
|
|
14556
|
-
return
|
|
14557
|
-
!!lView[tNode.index] &&
|
|
14558
|
-
!unwrapRNode(lView[tNode.index])?.isConnected);
|
|
14664
|
+
function isDisconnectedRNode(rNode) {
|
|
14665
|
+
return !!rNode && !rNode.isConnected;
|
|
14559
14666
|
}
|
|
14560
14667
|
/**
|
|
14561
14668
|
* Locate a node in an i18n tree that corresponds to a given instruction index.
|
|
@@ -14819,7 +14926,7 @@ function calcPathForNode(tNode, lView, excludedParentNodes) {
|
|
|
14819
14926
|
referenceNodeName = renderStringify(parentIndex - HEADER_OFFSET);
|
|
14820
14927
|
}
|
|
14821
14928
|
let rNode = unwrapRNode(lView[tNode.index]);
|
|
14822
|
-
if (tNode.type & 12 /* TNodeType.AnyContainer */) {
|
|
14929
|
+
if (tNode.type & (12 /* TNodeType.AnyContainer */ | 32 /* TNodeType.Icu */)) {
|
|
14823
14930
|
// For <ng-container> nodes, instead of serializing a reference
|
|
14824
14931
|
// to the anchor comment node, serialize a location of the first
|
|
14825
14932
|
// DOM element. Paired with the container size (serialized as a part
|
|
@@ -14951,30 +15058,104 @@ function trySerializeI18nBlock(lView, index, context) {
|
|
|
14951
15058
|
if (!tI18n || !tI18n.ast) {
|
|
14952
15059
|
return null;
|
|
14953
15060
|
}
|
|
14954
|
-
const
|
|
14955
|
-
|
|
14956
|
-
|
|
15061
|
+
const serializedI18nBlock = {
|
|
15062
|
+
caseQueue: [],
|
|
15063
|
+
disconnectedNodes: new Set(),
|
|
15064
|
+
disjointNodes: new Set(),
|
|
15065
|
+
};
|
|
15066
|
+
serializeI18nBlock(lView, serializedI18nBlock, context, tI18n.ast);
|
|
15067
|
+
return serializedI18nBlock.caseQueue.length === 0 &&
|
|
15068
|
+
serializedI18nBlock.disconnectedNodes.size === 0 &&
|
|
15069
|
+
serializedI18nBlock.disjointNodes.size === 0
|
|
15070
|
+
? null
|
|
15071
|
+
: serializedI18nBlock;
|
|
15072
|
+
}
|
|
15073
|
+
function serializeI18nBlock(lView, serializedI18nBlock, context, nodes) {
|
|
15074
|
+
let prevRNode = null;
|
|
15075
|
+
for (const node of nodes) {
|
|
15076
|
+
const nextRNode = serializeI18nNode(lView, serializedI18nBlock, context, node);
|
|
15077
|
+
if (nextRNode) {
|
|
15078
|
+
if (isDisjointNode(prevRNode, nextRNode)) {
|
|
15079
|
+
serializedI18nBlock.disjointNodes.add(node.index - HEADER_OFFSET);
|
|
15080
|
+
}
|
|
15081
|
+
prevRNode = nextRNode;
|
|
15082
|
+
}
|
|
15083
|
+
}
|
|
15084
|
+
return prevRNode;
|
|
14957
15085
|
}
|
|
14958
|
-
|
|
15086
|
+
/**
|
|
15087
|
+
* Helper to determine whether the given nodes are "disjoint".
|
|
15088
|
+
*
|
|
15089
|
+
* The i18n hydration process walks through the DOM and i18n nodes
|
|
15090
|
+
* at the same time. It expects the sibling DOM node of the previous
|
|
15091
|
+
* i18n node to be the first node of the next i18n node.
|
|
15092
|
+
*
|
|
15093
|
+
* In cases of content projection, this won't always be the case. So
|
|
15094
|
+
* when we detect that, we mark the node as "disjoint", ensuring that
|
|
15095
|
+
* we will serialize the path to the node. This way, when we hydrate the
|
|
15096
|
+
* i18n node, we will be able to find the correct place to start.
|
|
15097
|
+
*/
|
|
15098
|
+
function isDisjointNode(prevNode, nextNode) {
|
|
15099
|
+
return prevNode && prevNode.nextSibling !== nextNode;
|
|
15100
|
+
}
|
|
15101
|
+
/**
|
|
15102
|
+
* Process the given i18n node for serialization.
|
|
15103
|
+
* Returns the first RNode for the i18n node to begin hydration.
|
|
15104
|
+
*/
|
|
15105
|
+
function serializeI18nNode(lView, serializedI18nBlock, context, node) {
|
|
15106
|
+
const maybeRNode = unwrapRNode(lView[node.index]);
|
|
15107
|
+
if (!maybeRNode || isDisconnectedRNode(maybeRNode)) {
|
|
15108
|
+
serializedI18nBlock.disconnectedNodes.add(node.index - HEADER_OFFSET);
|
|
15109
|
+
return null;
|
|
15110
|
+
}
|
|
15111
|
+
const rNode = maybeRNode;
|
|
14959
15112
|
switch (node.kind) {
|
|
14960
|
-
case 0 /* I18nNodeKind.TEXT */:
|
|
14961
|
-
const rNode = unwrapRNode(lView[node.index]);
|
|
15113
|
+
case 0 /* I18nNodeKind.TEXT */: {
|
|
14962
15114
|
processTextNodeBeforeSerialization(context, rNode);
|
|
14963
15115
|
break;
|
|
15116
|
+
}
|
|
14964
15117
|
case 1 /* I18nNodeKind.ELEMENT */:
|
|
14965
|
-
case 2 /* I18nNodeKind.PLACEHOLDER */:
|
|
14966
|
-
|
|
15118
|
+
case 2 /* I18nNodeKind.PLACEHOLDER */: {
|
|
15119
|
+
serializeI18nBlock(lView, serializedI18nBlock, context, node.children);
|
|
14967
15120
|
break;
|
|
14968
|
-
|
|
15121
|
+
}
|
|
15122
|
+
case 3 /* I18nNodeKind.ICU */: {
|
|
14969
15123
|
const currentCase = lView[node.currentCaseLViewIndex];
|
|
14970
15124
|
if (currentCase != null) {
|
|
14971
15125
|
// i18n uses a negative value to signal a change to a new case, so we
|
|
14972
15126
|
// need to invert it to get the proper value.
|
|
14973
15127
|
const caseIdx = currentCase < 0 ? ~currentCase : currentCase;
|
|
14974
|
-
caseQueue.push(caseIdx);
|
|
14975
|
-
|
|
15128
|
+
serializedI18nBlock.caseQueue.push(caseIdx);
|
|
15129
|
+
serializeI18nBlock(lView, serializedI18nBlock, context, node.cases[caseIdx]);
|
|
14976
15130
|
}
|
|
14977
15131
|
break;
|
|
15132
|
+
}
|
|
15133
|
+
}
|
|
15134
|
+
return getFirstNativeNodeForI18nNode(lView, node);
|
|
15135
|
+
}
|
|
15136
|
+
/**
|
|
15137
|
+
* Helper function to get the first native node to begin hydrating
|
|
15138
|
+
* the given i18n node.
|
|
15139
|
+
*/
|
|
15140
|
+
function getFirstNativeNodeForI18nNode(lView, node) {
|
|
15141
|
+
const tView = lView[TVIEW];
|
|
15142
|
+
const maybeTNode = tView.data[node.index];
|
|
15143
|
+
if (isTNodeShape(maybeTNode)) {
|
|
15144
|
+
// If the node is backed by an actual TNode, we can simply delegate.
|
|
15145
|
+
return getFirstNativeNode(lView, maybeTNode);
|
|
15146
|
+
}
|
|
15147
|
+
else if (node.kind === 3 /* I18nNodeKind.ICU */) {
|
|
15148
|
+
// A nested ICU container won't have an actual TNode. In that case, we can use
|
|
15149
|
+
// an iterator to find the first child.
|
|
15150
|
+
const icuIterator = createIcuIterator(maybeTNode, lView);
|
|
15151
|
+
let rNode = icuIterator();
|
|
15152
|
+
// If the ICU container has no nodes, then we use the ICU anchor as the node.
|
|
15153
|
+
return rNode ?? unwrapRNode(lView[node.index]);
|
|
15154
|
+
}
|
|
15155
|
+
else {
|
|
15156
|
+
// Otherwise, the node is a text or trivial element in an ICU container,
|
|
15157
|
+
// and we can just use the RNode directly.
|
|
15158
|
+
return unwrapRNode(lView[node.index]) ?? null;
|
|
14978
15159
|
}
|
|
14979
15160
|
}
|
|
14980
15161
|
function setCurrentNode(state, node) {
|
|
@@ -15067,16 +15248,24 @@ function prepareI18nBlockForHydrationImpl(lView, index, parentTNode, subTemplate
|
|
|
15067
15248
|
}
|
|
15068
15249
|
function collectI18nNodesFromDom(context, state, nodeOrNodes) {
|
|
15069
15250
|
if (Array.isArray(nodeOrNodes)) {
|
|
15251
|
+
let nextState = state;
|
|
15070
15252
|
for (const node of nodeOrNodes) {
|
|
15071
|
-
//
|
|
15072
|
-
//
|
|
15073
|
-
//
|
|
15253
|
+
// Whenever a node doesn't directly follow the previous RNode, it
|
|
15254
|
+
// is given a path. We need to resume collecting nodes from that location
|
|
15255
|
+
// until and unless we find another disjoint node.
|
|
15074
15256
|
const targetNode = tryLocateRNodeByPath(context.hydrationInfo, context.lView, node.index - HEADER_OFFSET);
|
|
15075
|
-
|
|
15257
|
+
if (targetNode) {
|
|
15258
|
+
nextState = forkHydrationState(state, targetNode);
|
|
15259
|
+
}
|
|
15076
15260
|
collectI18nNodesFromDom(context, nextState, node);
|
|
15077
15261
|
}
|
|
15078
15262
|
}
|
|
15079
15263
|
else {
|
|
15264
|
+
if (context.disconnectedNodes.has(nodeOrNodes.index - HEADER_OFFSET)) {
|
|
15265
|
+
// i18n nodes can be considered disconnected if e.g. they were projected.
|
|
15266
|
+
// In that case, we have to make sure to skip over them.
|
|
15267
|
+
return;
|
|
15268
|
+
}
|
|
15080
15269
|
switch (nodeOrNodes.kind) {
|
|
15081
15270
|
case 0 /* I18nNodeKind.TEXT */: {
|
|
15082
15271
|
// Claim a text node for hydration
|
|
@@ -17011,7 +17200,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
17011
17200
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
17012
17201
|
if (rootSelectorOrNode) {
|
|
17013
17202
|
// The placeholder will be replaced with the actual version at build time.
|
|
17014
|
-
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.0-
|
|
17203
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.0-rc.0']);
|
|
17015
17204
|
}
|
|
17016
17205
|
else {
|
|
17017
17206
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -20813,7 +21002,7 @@ function triggerResourceLoading(tDetails, lView, tNode) {
|
|
|
20813
21002
|
if (failed) {
|
|
20814
21003
|
tDetails.loadingState = DeferDependenciesLoadingState.FAILED;
|
|
20815
21004
|
if (tDetails.errorTmplIndex === null) {
|
|
20816
|
-
const templateLocation = getTemplateLocationDetails(lView);
|
|
21005
|
+
const templateLocation = ngDevMode ? getTemplateLocationDetails(lView) : '';
|
|
20817
21006
|
const error = new RuntimeError(750 /* RuntimeErrorCode.DEFER_LOADING_FAILED */, ngDevMode &&
|
|
20818
21007
|
'Loading dependencies for `@defer` block failed, ' +
|
|
20819
21008
|
`but no \`@error\` block was configured${templateLocation}. ` +
|
|
@@ -25096,79 +25285,6 @@ function getCaseIndex(icuExpression, bindingValue) {
|
|
|
25096
25285
|
return index === -1 ? null : index;
|
|
25097
25286
|
}
|
|
25098
25287
|
|
|
25099
|
-
function loadIcuContainerVisitor() {
|
|
25100
|
-
const _stack = [];
|
|
25101
|
-
let _index = -1;
|
|
25102
|
-
let _lView;
|
|
25103
|
-
let _removes;
|
|
25104
|
-
/**
|
|
25105
|
-
* Retrieves a set of root nodes from `TIcu.remove`. Used by `TNodeType.ICUContainer`
|
|
25106
|
-
* to determine which root belong to the ICU.
|
|
25107
|
-
*
|
|
25108
|
-
* Example of usage.
|
|
25109
|
-
* ```
|
|
25110
|
-
* const nextRNode = icuContainerIteratorStart(tIcuContainerNode, lView);
|
|
25111
|
-
* let rNode: RNode|null;
|
|
25112
|
-
* while(rNode = nextRNode()) {
|
|
25113
|
-
* console.log(rNode);
|
|
25114
|
-
* }
|
|
25115
|
-
* ```
|
|
25116
|
-
*
|
|
25117
|
-
* @param tIcuContainerNode Current `TIcuContainerNode`
|
|
25118
|
-
* @param lView `LView` where the `RNode`s should be looked up.
|
|
25119
|
-
*/
|
|
25120
|
-
function icuContainerIteratorStart(tIcuContainerNode, lView) {
|
|
25121
|
-
_lView = lView;
|
|
25122
|
-
while (_stack.length)
|
|
25123
|
-
_stack.pop();
|
|
25124
|
-
ngDevMode && assertTNodeForLView(tIcuContainerNode, lView);
|
|
25125
|
-
enterIcu(tIcuContainerNode.value, lView);
|
|
25126
|
-
return icuContainerIteratorNext;
|
|
25127
|
-
}
|
|
25128
|
-
function enterIcu(tIcu, lView) {
|
|
25129
|
-
_index = 0;
|
|
25130
|
-
const currentCase = getCurrentICUCaseIndex(tIcu, lView);
|
|
25131
|
-
if (currentCase !== null) {
|
|
25132
|
-
ngDevMode && assertNumberInRange(currentCase, 0, tIcu.cases.length - 1);
|
|
25133
|
-
_removes = tIcu.remove[currentCase];
|
|
25134
|
-
}
|
|
25135
|
-
else {
|
|
25136
|
-
_removes = EMPTY_ARRAY;
|
|
25137
|
-
}
|
|
25138
|
-
}
|
|
25139
|
-
function icuContainerIteratorNext() {
|
|
25140
|
-
if (_index < _removes.length) {
|
|
25141
|
-
const removeOpCode = _removes[_index++];
|
|
25142
|
-
ngDevMode && assertNumber(removeOpCode, 'Expecting OpCode number');
|
|
25143
|
-
if (removeOpCode > 0) {
|
|
25144
|
-
const rNode = _lView[removeOpCode];
|
|
25145
|
-
ngDevMode && assertDomNode(rNode);
|
|
25146
|
-
return rNode;
|
|
25147
|
-
}
|
|
25148
|
-
else {
|
|
25149
|
-
_stack.push(_index, _removes);
|
|
25150
|
-
// ICUs are represented by negative indices
|
|
25151
|
-
const tIcuIndex = ~removeOpCode;
|
|
25152
|
-
const tIcu = _lView[TVIEW].data[tIcuIndex];
|
|
25153
|
-
ngDevMode && assertTIcu(tIcu);
|
|
25154
|
-
enterIcu(tIcu, _lView);
|
|
25155
|
-
return icuContainerIteratorNext();
|
|
25156
|
-
}
|
|
25157
|
-
}
|
|
25158
|
-
else {
|
|
25159
|
-
if (_stack.length === 0) {
|
|
25160
|
-
return null;
|
|
25161
|
-
}
|
|
25162
|
-
else {
|
|
25163
|
-
_removes = _stack.pop();
|
|
25164
|
-
_index = _stack.pop();
|
|
25165
|
-
return icuContainerIteratorNext();
|
|
25166
|
-
}
|
|
25167
|
-
}
|
|
25168
|
-
}
|
|
25169
|
-
return icuContainerIteratorStart;
|
|
25170
|
-
}
|
|
25171
|
-
|
|
25172
25288
|
/**
|
|
25173
25289
|
* Converts `I18nCreateOpCodes` array into a human readable format.
|
|
25174
25290
|
*
|
|
@@ -26621,17 +26737,20 @@ function ɵɵprojectionDef(projectionSlots) {
|
|
|
26621
26737
|
const tails = projectionHeads.slice();
|
|
26622
26738
|
let componentChild = componentNode.child;
|
|
26623
26739
|
while (componentChild !== null) {
|
|
26624
|
-
|
|
26625
|
-
|
|
26626
|
-
|
|
26627
|
-
|
|
26628
|
-
|
|
26629
|
-
|
|
26630
|
-
|
|
26631
|
-
|
|
26632
|
-
|
|
26740
|
+
// Do not project let declarations so they don't occupy a slot.
|
|
26741
|
+
if (componentChild.type !== 128 /* TNodeType.LetDeclaration */) {
|
|
26742
|
+
const slotIndex = projectionSlots
|
|
26743
|
+
? matchingProjectionSlotIndex(componentChild, projectionSlots)
|
|
26744
|
+
: 0;
|
|
26745
|
+
if (slotIndex !== null) {
|
|
26746
|
+
if (tails[slotIndex]) {
|
|
26747
|
+
tails[slotIndex].projectionNext = componentChild;
|
|
26748
|
+
}
|
|
26749
|
+
else {
|
|
26750
|
+
projectionHeads[slotIndex] = componentChild;
|
|
26751
|
+
}
|
|
26752
|
+
tails[slotIndex] = componentChild;
|
|
26633
26753
|
}
|
|
26634
|
-
tails[slotIndex] = componentChild;
|
|
26635
26754
|
}
|
|
26636
26755
|
componentChild = componentChild.next;
|
|
26637
26756
|
}
|
|
@@ -28360,36 +28479,52 @@ function ɵɵtwoWayListener(eventName, listenerFn) {
|
|
|
28360
28479
|
* Use of this source code is governed by an MIT-style license that can be
|
|
28361
28480
|
* found in the LICENSE file at https://angular.io/license
|
|
28362
28481
|
*/
|
|
28482
|
+
/** Object that indicates the value of a `@let` declaration that hasn't been initialized yet. */
|
|
28483
|
+
const UNINITIALIZED_LET = {};
|
|
28363
28484
|
/**
|
|
28364
|
-
* Declares an `@let` at a specific data slot.
|
|
28485
|
+
* Declares an `@let` at a specific data slot. Returns itself to allow chaining.
|
|
28365
28486
|
*
|
|
28366
28487
|
* @param index Index at which to declare the `@let`.
|
|
28367
28488
|
*
|
|
28368
28489
|
* @codeGenApi
|
|
28369
28490
|
*/
|
|
28370
28491
|
function ɵɵdeclareLet(index) {
|
|
28371
|
-
|
|
28492
|
+
const tView = getTView();
|
|
28493
|
+
const lView = getLView();
|
|
28494
|
+
const adjustedIndex = index + HEADER_OFFSET;
|
|
28495
|
+
const tNode = getOrCreateTNode(tView, adjustedIndex, 128 /* TNodeType.LetDeclaration */, null, null);
|
|
28496
|
+
setCurrentTNode(tNode, false);
|
|
28497
|
+
store(tView, lView, adjustedIndex, UNINITIALIZED_LET);
|
|
28372
28498
|
return ɵɵdeclareLet;
|
|
28373
28499
|
}
|
|
28374
28500
|
/**
|
|
28375
28501
|
* Instruction that stores the value of a `@let` declaration on the current view.
|
|
28502
|
+
* Returns the value to allow usage inside variable initializers.
|
|
28376
28503
|
*
|
|
28377
28504
|
* @codeGenApi
|
|
28378
28505
|
*/
|
|
28379
28506
|
function ɵɵstoreLet(value) {
|
|
28380
|
-
|
|
28507
|
+
performanceMarkFeature('NgLet');
|
|
28508
|
+
const tView = getTView();
|
|
28509
|
+
const lView = getLView();
|
|
28510
|
+
const index = getSelectedIndex();
|
|
28511
|
+
store(tView, lView, index, value);
|
|
28381
28512
|
return value;
|
|
28382
28513
|
}
|
|
28383
28514
|
/**
|
|
28384
|
-
* Retrieves the value of a `@let` declaration defined
|
|
28515
|
+
* Retrieves the value of a `@let` declaration defined in a parent view.
|
|
28385
28516
|
*
|
|
28386
28517
|
* @param index Index of the declaration within the view.
|
|
28387
28518
|
*
|
|
28388
28519
|
* @codeGenApi
|
|
28389
28520
|
*/
|
|
28390
28521
|
function ɵɵreadContextLet(index) {
|
|
28391
|
-
|
|
28392
|
-
|
|
28522
|
+
const contextLView = getContextLView();
|
|
28523
|
+
const value = load(contextLView, HEADER_OFFSET + index);
|
|
28524
|
+
if (value === UNINITIALIZED_LET) {
|
|
28525
|
+
throw new RuntimeError(314 /* RuntimeErrorCode.UNINITIALIZED_LET_ACCESS */, ngDevMode && 'Attempting to access a @let declaration whose value is not available yet');
|
|
28526
|
+
}
|
|
28527
|
+
return value;
|
|
28393
28528
|
}
|
|
28394
28529
|
|
|
28395
28530
|
/*
|
|
@@ -30845,7 +30980,7 @@ class Version {
|
|
|
30845
30980
|
/**
|
|
30846
30981
|
* @publicApi
|
|
30847
30982
|
*/
|
|
30848
|
-
const VERSION = new Version('18.1.0-
|
|
30983
|
+
const VERSION = new Version('18.1.0-rc.0');
|
|
30849
30984
|
|
|
30850
30985
|
/*
|
|
30851
30986
|
* This file exists to support compilation of @angular/core in Ivy mode.
|
|
@@ -33289,7 +33424,7 @@ class ChangeDetectionSchedulerImpl {
|
|
|
33289
33424
|
*
|
|
33290
33425
|
* @publicApi
|
|
33291
33426
|
* @experimental
|
|
33292
|
-
* @see
|
|
33427
|
+
* @see [bootstrapApplication](/api/platform-browser/bootstrapApplication)
|
|
33293
33428
|
*/
|
|
33294
33429
|
function provideExperimentalZonelessChangeDetection() {
|
|
33295
33430
|
performanceMarkFeature('NgZoneless');
|
|
@@ -34045,7 +34180,8 @@ function createViewRef(tNode, lView, isPipe) {
|
|
|
34045
34180
|
const componentView = getComponentLViewByIndex(tNode.index, lView); // look down
|
|
34046
34181
|
return new ViewRef$1(componentView, componentView);
|
|
34047
34182
|
}
|
|
34048
|
-
else if (tNode.type &
|
|
34183
|
+
else if (tNode.type &
|
|
34184
|
+
(3 /* TNodeType.AnyRNode */ | 12 /* TNodeType.AnyContainer */ | 32 /* TNodeType.Icu */ | 128 /* TNodeType.LetDeclaration */)) {
|
|
34049
34185
|
// The LView represents the location where the injection is requested from.
|
|
34050
34186
|
// We need to locate the containing LView (in case where the `lView` is an embedded view)
|
|
34051
34187
|
const hostComponentView = lView[DECLARATION_COMPONENT_VIEW]; // look up
|
|
@@ -36231,6 +36367,9 @@ function signalUpdateFn(node, updater) {
|
|
|
36231
36367
|
}
|
|
36232
36368
|
signalSetFn(node, updater(node.value));
|
|
36233
36369
|
}
|
|
36370
|
+
function runPostSignalSetFn() {
|
|
36371
|
+
postSignalSetFn?.();
|
|
36372
|
+
}
|
|
36234
36373
|
// Note: Using an IIFE here to ensure that the spread assignment is not considered
|
|
36235
36374
|
// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.
|
|
36236
36375
|
// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.
|
|
@@ -36619,14 +36758,13 @@ function invokeRegisteredListeners(event) {
|
|
|
36619
36758
|
handler(event);
|
|
36620
36759
|
}
|
|
36621
36760
|
}
|
|
36622
|
-
function
|
|
36761
|
+
function setJSActionAttributes(nativeElement, eventTypes) {
|
|
36623
36762
|
if (!eventTypes.length) {
|
|
36624
36763
|
return;
|
|
36625
36764
|
}
|
|
36626
36765
|
const parts = eventTypes.reduce((prev, curr) => prev + curr + ':;', '');
|
|
36627
|
-
const existingAttr = nativeElement.getAttribute(
|
|
36628
|
-
|
|
36629
|
-
nativeElement.setAttribute(Attributes.JSACTION, `${existingAttr ?? ''}${parts}`);
|
|
36766
|
+
const existingAttr = nativeElement.getAttribute(Attribute$1.JSACTION);
|
|
36767
|
+
nativeElement.setAttribute(Attribute$1.JSACTION, `${existingAttr ?? ''}${parts}`);
|
|
36630
36768
|
}
|
|
36631
36769
|
const sharedStashFunction = (rEl, eventType, listenerFn) => {
|
|
36632
36770
|
const el = rEl;
|
|
@@ -36637,32 +36775,51 @@ const sharedStashFunction = (rEl, eventType, listenerFn) => {
|
|
|
36637
36775
|
el.__jsaction_fns = eventListenerMap;
|
|
36638
36776
|
};
|
|
36639
36777
|
const removeListeners = (el) => {
|
|
36640
|
-
el.removeAttribute(
|
|
36778
|
+
el.removeAttribute(Attribute$1.JSACTION);
|
|
36641
36779
|
el.__jsaction_fns = undefined;
|
|
36642
36780
|
};
|
|
36781
|
+
const JSACTION_EVENT_CONTRACT = new InjectionToken(ngDevMode ? 'EVENT_CONTRACT_DETAILS' : '', {
|
|
36782
|
+
providedIn: 'root',
|
|
36783
|
+
factory: () => ({}),
|
|
36784
|
+
});
|
|
36785
|
+
const GLOBAL_EVENT_DELEGATION = new InjectionToken(ngDevMode ? 'GLOBAL_EVENT_DELEGATION' : '');
|
|
36786
|
+
/**
|
|
36787
|
+
* This class is the delegate for `EventDelegationPlugin`. It represents the
|
|
36788
|
+
* noop version of this class, with the enabled version set when
|
|
36789
|
+
* `provideGlobalEventDelegation` is called.
|
|
36790
|
+
*/
|
|
36643
36791
|
class GlobalEventDelegation {
|
|
36644
|
-
|
|
36645
|
-
|
|
36646
|
-
|
|
36647
|
-
|
|
36648
|
-
|
|
36649
|
-
|
|
36650
|
-
|
|
36792
|
+
constructor() {
|
|
36793
|
+
this.eventContractDetails = inject(JSACTION_EVENT_CONTRACT);
|
|
36794
|
+
}
|
|
36795
|
+
ngOnDestroy() {
|
|
36796
|
+
this.eventContractDetails.instance?.cleanUp();
|
|
36797
|
+
}
|
|
36798
|
+
supports(eventName) {
|
|
36799
|
+
return isSupportedEvent(eventName);
|
|
36800
|
+
}
|
|
36801
|
+
addEventListener(element, eventName, handler) {
|
|
36802
|
+
this.eventContractDetails.instance.addEvent(eventName);
|
|
36803
|
+
registerEventType(element, eventName, '');
|
|
36804
|
+
return () => this.removeEventListener(element, eventName, handler);
|
|
36805
|
+
}
|
|
36806
|
+
removeEventListener(element, eventName, callback) {
|
|
36807
|
+
unregisterEventType(element, eventName);
|
|
36651
36808
|
}
|
|
36652
36809
|
static { this.ɵfac = function GlobalEventDelegation_Factory(t) { return new (t || GlobalEventDelegation)(); }; }
|
|
36653
|
-
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac
|
|
36810
|
+
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: GlobalEventDelegation, factory: GlobalEventDelegation.ɵfac }); }
|
|
36654
36811
|
}
|
|
36655
36812
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(GlobalEventDelegation, [{
|
|
36656
|
-
type: Injectable
|
|
36657
|
-
args: [{ providedIn: 'root' }]
|
|
36813
|
+
type: Injectable
|
|
36658
36814
|
}], null, null); })();
|
|
36659
|
-
const initGlobalEventDelegation = (
|
|
36815
|
+
const initGlobalEventDelegation = (eventContractDetails, injector) => {
|
|
36660
36816
|
if (injector.get(IS_EVENT_REPLAY_ENABLED, EVENT_REPLAY_ENABLED_DEFAULT)) {
|
|
36661
36817
|
return;
|
|
36662
36818
|
}
|
|
36663
|
-
|
|
36819
|
+
const eventContract = (eventContractDetails.instance = new EventContract(new EventContractContainer(document.body),
|
|
36820
|
+
/* useActionResolver= */ false));
|
|
36664
36821
|
const dispatcher = new EventDispatcher(invokeRegisteredListeners);
|
|
36665
|
-
registerDispatcher(
|
|
36822
|
+
registerDispatcher(eventContract, dispatcher);
|
|
36666
36823
|
};
|
|
36667
36824
|
|
|
36668
36825
|
const CONTRACT_PROPERTY = 'ngContracts';
|
|
@@ -36730,8 +36887,8 @@ function withEventReplay() {
|
|
|
36730
36887
|
// of the application is completed. This timing is similar to the unclaimed
|
|
36731
36888
|
// dehydrated views cleanup timing.
|
|
36732
36889
|
whenStable(appRef).then(() => {
|
|
36733
|
-
const
|
|
36734
|
-
initEventReplay(
|
|
36890
|
+
const eventContractDetails = injector.get(JSACTION_EVENT_CONTRACT);
|
|
36891
|
+
initEventReplay(eventContractDetails, injector);
|
|
36735
36892
|
jsactionSet.forEach(removeListeners);
|
|
36736
36893
|
// After hydration, we shouldn't need to do anymore work related to
|
|
36737
36894
|
// event replay anymore.
|
|
@@ -36754,7 +36911,8 @@ const initEventReplay = (eventDelegation, injector) => {
|
|
|
36754
36911
|
// This is set in packages/platform-server/src/utils.ts
|
|
36755
36912
|
const container = globalThis[CONTRACT_PROPERTY]?.[appId];
|
|
36756
36913
|
const earlyJsactionData = getJsactionData(container);
|
|
36757
|
-
const eventContract = (eventDelegation.
|
|
36914
|
+
const eventContract = (eventDelegation.instance = new EventContract(new EventContractContainer(earlyJsactionData.c),
|
|
36915
|
+
/* useActionResolver= */ false));
|
|
36758
36916
|
for (const et of earlyJsactionData.et) {
|
|
36759
36917
|
eventContract.addEvent(et);
|
|
36760
36918
|
}
|
|
@@ -37053,15 +37211,18 @@ function serializeLContainer(lContainer, context) {
|
|
|
37053
37211
|
function appendSerializedNodePath(ngh, tNode, lView, excludedParentNodes) {
|
|
37054
37212
|
const noOffsetIndex = tNode.index - HEADER_OFFSET;
|
|
37055
37213
|
ngh[NODES] ??= {};
|
|
37056
|
-
|
|
37214
|
+
// Ensure we don't calculate the path multiple times.
|
|
37215
|
+
ngh[NODES][noOffsetIndex] ??= calcPathForNode(tNode, lView, excludedParentNodes);
|
|
37057
37216
|
}
|
|
37058
37217
|
/**
|
|
37059
37218
|
* Helper function to append information about a disconnected node.
|
|
37060
37219
|
* This info is needed at runtime to avoid DOM lookups for this element
|
|
37061
37220
|
* and instead, the element would be created from scratch.
|
|
37062
37221
|
*/
|
|
37063
|
-
function appendDisconnectedNodeIndex(ngh,
|
|
37064
|
-
const noOffsetIndex =
|
|
37222
|
+
function appendDisconnectedNodeIndex(ngh, tNodeOrNoOffsetIndex) {
|
|
37223
|
+
const noOffsetIndex = typeof tNodeOrNoOffsetIndex === 'number'
|
|
37224
|
+
? tNodeOrNoOffsetIndex
|
|
37225
|
+
: tNodeOrNoOffsetIndex.index - HEADER_OFFSET;
|
|
37065
37226
|
ngh[DISCONNECTED_NODES] ??= [];
|
|
37066
37227
|
if (!ngh[DISCONNECTED_NODES].includes(noOffsetIndex)) {
|
|
37067
37228
|
ngh[DISCONNECTED_NODES].push(noOffsetIndex);
|
|
@@ -37092,7 +37253,15 @@ function serializeLView(lView, context) {
|
|
|
37092
37253
|
const i18nData = trySerializeI18nBlock(lView, i, context);
|
|
37093
37254
|
if (i18nData) {
|
|
37094
37255
|
ngh[I18N_DATA] ??= {};
|
|
37095
|
-
ngh[I18N_DATA][noOffsetIndex] = i18nData;
|
|
37256
|
+
ngh[I18N_DATA][noOffsetIndex] = i18nData.caseQueue;
|
|
37257
|
+
for (const nodeNoOffsetIndex of i18nData.disconnectedNodes) {
|
|
37258
|
+
appendDisconnectedNodeIndex(ngh, nodeNoOffsetIndex);
|
|
37259
|
+
}
|
|
37260
|
+
for (const nodeNoOffsetIndex of i18nData.disjointNodes) {
|
|
37261
|
+
const tNode = tView.data[nodeNoOffsetIndex + HEADER_OFFSET];
|
|
37262
|
+
ngDevMode && assertTNode(tNode);
|
|
37263
|
+
appendSerializedNodePath(ngh, tNode, lView, i18nChildren);
|
|
37264
|
+
}
|
|
37096
37265
|
continue;
|
|
37097
37266
|
}
|
|
37098
37267
|
// Skip processing of a given slot in the following cases:
|
|
@@ -37126,7 +37295,7 @@ function serializeLView(lView, context) {
|
|
|
37126
37295
|
if (nativeElementsToEventTypes && tNode.type & 2 /* TNodeType.Element */) {
|
|
37127
37296
|
const nativeElement = unwrapRNode(lView[i]);
|
|
37128
37297
|
if (nativeElementsToEventTypes.has(nativeElement)) {
|
|
37129
|
-
|
|
37298
|
+
setJSActionAttributes(nativeElement, nativeElementsToEventTypes.get(nativeElement));
|
|
37130
37299
|
}
|
|
37131
37300
|
}
|
|
37132
37301
|
if (Array.isArray(tNode.projection)) {
|
|
@@ -37205,13 +37374,14 @@ function serializeLView(lView, context) {
|
|
|
37205
37374
|
ngh[ELEMENT_CONTAINERS] ??= {};
|
|
37206
37375
|
ngh[ELEMENT_CONTAINERS][noOffsetIndex] = calcNumRootNodes(tView, lView, tNode.child);
|
|
37207
37376
|
}
|
|
37208
|
-
else if (tNode.type & 16 /* TNodeType.Projection */) {
|
|
37209
|
-
// Current TNode represents an `<ng-content>` slot
|
|
37210
|
-
// DOM elements associated with it, so the **next sibling**
|
|
37211
|
-
// not be able to find an anchor. In this case, use full path instead.
|
|
37377
|
+
else if (tNode.type & (16 /* TNodeType.Projection */ | 128 /* TNodeType.LetDeclaration */)) {
|
|
37378
|
+
// Current TNode represents an `<ng-content>` slot or `@let` declaration,
|
|
37379
|
+
// thus it has no DOM elements associated with it, so the **next sibling**
|
|
37380
|
+
// node would not be able to find an anchor. In this case, use full path instead.
|
|
37212
37381
|
let nextTNode = tNode.next;
|
|
37213
|
-
// Skip over all `<ng-content>` slots in a row.
|
|
37214
|
-
while (nextTNode !== null &&
|
|
37382
|
+
// Skip over all `<ng-content>` slots and `@let` declarations in a row.
|
|
37383
|
+
while (nextTNode !== null &&
|
|
37384
|
+
nextTNode.type & (16 /* TNodeType.Projection */ | 128 /* TNodeType.LetDeclaration */)) {
|
|
37215
37385
|
nextTNode = nextTNode.next;
|
|
37216
37386
|
}
|
|
37217
37387
|
if (nextTNode && !isInSkipHydrationBlock(nextTNode)) {
|
|
@@ -37219,11 +37389,9 @@ function serializeLView(lView, context) {
|
|
|
37219
37389
|
appendSerializedNodePath(ngh, nextTNode, lView, i18nChildren);
|
|
37220
37390
|
}
|
|
37221
37391
|
}
|
|
37222
|
-
else {
|
|
37223
|
-
|
|
37224
|
-
|
|
37225
|
-
processTextNodeBeforeSerialization(context, rNode);
|
|
37226
|
-
}
|
|
37392
|
+
else if (tNode.type & 1 /* TNodeType.Text */) {
|
|
37393
|
+
const rNode = unwrapRNode(lView[i]);
|
|
37394
|
+
processTextNodeBeforeSerialization(context, rNode);
|
|
37227
37395
|
}
|
|
37228
37396
|
}
|
|
37229
37397
|
}
|
|
@@ -37574,6 +37742,32 @@ function verifySsrContentsIntegrity() {
|
|
|
37574
37742
|
}
|
|
37575
37743
|
}
|
|
37576
37744
|
|
|
37745
|
+
/**
|
|
37746
|
+
* Returns a set of providers required to setup support for event delegation.
|
|
37747
|
+
*/
|
|
37748
|
+
function provideGlobalEventDelegation() {
|
|
37749
|
+
return [
|
|
37750
|
+
{
|
|
37751
|
+
provide: IS_GLOBAL_EVENT_DELEGATION_ENABLED,
|
|
37752
|
+
useValue: true,
|
|
37753
|
+
},
|
|
37754
|
+
{
|
|
37755
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
37756
|
+
useValue: () => {
|
|
37757
|
+
const injector = inject(Injector);
|
|
37758
|
+
const eventContractDetails = injector.get(JSACTION_EVENT_CONTRACT);
|
|
37759
|
+
initGlobalEventDelegation(eventContractDetails, injector);
|
|
37760
|
+
setStashFn(sharedStashFunction);
|
|
37761
|
+
},
|
|
37762
|
+
multi: true,
|
|
37763
|
+
},
|
|
37764
|
+
{
|
|
37765
|
+
provide: GLOBAL_EVENT_DELEGATION,
|
|
37766
|
+
useClass: GlobalEventDelegation,
|
|
37767
|
+
},
|
|
37768
|
+
];
|
|
37769
|
+
}
|
|
37770
|
+
|
|
37577
37771
|
/**
|
|
37578
37772
|
* Queue a state update to be performed asynchronously.
|
|
37579
37773
|
*
|
|
@@ -38139,5 +38333,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
38139
38333
|
* Generated bundle index. Do not edit.
|
|
38140
38334
|
*/
|
|
38141
38335
|
|
|
38142
|
-
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, ExperimentalPendingTasks, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasks as ɵPendingTasks, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, queueStateUpdate as ɵqueueStateUpdate, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
|
|
38336
|
+
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, ExperimentalPendingTasks, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, GLOBAL_EVENT_DELEGATION as ɵGLOBAL_EVENT_DELEGATION, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasks as ɵPendingTasks, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, provideGlobalEventDelegation as ɵprovideGlobalEventDelegation, queueStateUpdate as ɵqueueStateUpdate, readHydrationInfo as ɵreadHydrationInfo, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareClassMetadataAsync, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
|
|
38143
38337
|
//# sourceMappingURL=core.mjs.map
|