@angular/core 19.1.3 → 19.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/core.mjs +285 -464
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +2 -1
- package/fesm2022/primitives/event-dispatch.mjs.map +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 +6 -21
- 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/{apply_import_manager-40cd5384.js → apply_import_manager-3ba5d1bb.js} +1 -1
- package/schematics/bundles/checker-ca858016.js +2 -2
- package/schematics/bundles/cleanup-unused-imports.js +3 -3
- package/schematics/bundles/{compiler_host-68e159d5.js → compiler_host-c26ed2d0.js} +1 -1
- package/schematics/bundles/control-flow-migration.js +2 -2
- package/schematics/bundles/explicit-standalone-flag.js +4 -4
- package/schematics/bundles/{imports-abe29092.js → imports-31a38653.js} +1 -1
- package/schematics/bundles/index-761b9f6f.js +2 -2
- package/schematics/bundles/{index-d05029f9.js → index-aa0e0065.js} +2 -2
- package/schematics/bundles/inject-migration.js +5 -5
- package/schematics/bundles/{leading_space-d190b83b.js → leading_space-6e7a8ec6.js} +1 -1
- package/schematics/bundles/{migrate_ts_type_references-8d015538.js → migrate_ts_type_references-c6d4443c.js} +4 -4
- package/schematics/bundles/{nodes-a9f0b985.js → nodes-88c2157f.js} +2 -2
- package/schematics/bundles/output-migration.js +4 -4
- package/schematics/bundles/pending-tasks.js +4 -4
- package/schematics/bundles/program-8e222816.js +10 -10
- package/schematics/bundles/{project_tsconfig_paths-e9ccccbf.js → project_tsconfig_paths-6c9cde78.js} +1 -1
- package/schematics/bundles/provide-initializer.js +4 -4
- package/schematics/bundles/route-lazy-loading.js +3 -3
- package/schematics/bundles/signal-input-migration.js +6 -6
- package/schematics/bundles/signal-queries-migration.js +6 -6
- package/schematics/bundles/signals.js +6 -6
- package/schematics/bundles/standalone-migration.js +5 -5
- package/testing/index.d.ts +1 -1
package/fesm2022/core.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.1.
|
|
2
|
+
* @license Angular v19.1.4
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1,
|
|
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, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createLinkedSignal as createLinkedSignal$1, linkedSignalSetFn as linkedSignalSetFn$1, linkedSignalUpdateFn as linkedSignalUpdateFn$1, createWatch as createWatch$1, isInNotificationPhase as isInNotificationPhase$1 } from '@angular/core/primitives/signals';
|
|
8
8
|
export { SIGNAL as ɵSIGNAL } from '@angular/core/primitives/signals';
|
|
9
9
|
import { BehaviorSubject, Subject, Subscription } from 'rxjs';
|
|
10
10
|
import { Attribute as Attribute$1, clearAppScopedEarlyEventContract, EventContract, EventContractContainer, getAppScopedQueuedEventInfos, EventDispatcher, registerDispatcher, isEarlyEventType, isCaptureEventType, EventPhase } from '@angular/core/primitives/event-dispatch';
|
|
@@ -2963,6 +2963,7 @@ function isComponentDef(def) {
|
|
|
2963
2963
|
return !!def.template;
|
|
2964
2964
|
}
|
|
2965
2965
|
function isRootView(target) {
|
|
2966
|
+
// Determines whether a given LView is marked as a root view.
|
|
2966
2967
|
return (target[FLAGS] & 512 /* LViewFlags.IsRoot */) !== 0;
|
|
2967
2968
|
}
|
|
2968
2969
|
function isProjectionTNode(tNode) {
|
|
@@ -5617,7 +5618,7 @@ function lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, notFoundVa
|
|
|
5617
5618
|
while (currentTNode !== null &&
|
|
5618
5619
|
currentLView !== null &&
|
|
5619
5620
|
currentLView[FLAGS] & 2048 /* LViewFlags.HasEmbeddedViewInjector */ &&
|
|
5620
|
-
!(currentLView
|
|
5621
|
+
!isRootView(currentLView)) {
|
|
5621
5622
|
ngDevMode && assertTNodeForLView(currentTNode, currentLView);
|
|
5622
5623
|
// Note that this lookup on the node injector is using the `Self` flag, because
|
|
5623
5624
|
// we don't want the node injector to look at any parent injectors since we
|
|
@@ -7799,8 +7800,7 @@ function getDirectivesAtNodeIndex(nodeIndex, lView) {
|
|
|
7799
7800
|
}
|
|
7800
7801
|
function getComponentAtNodeIndex(nodeIndex, lView) {
|
|
7801
7802
|
const tNode = lView[TVIEW].data[nodeIndex];
|
|
7802
|
-
|
|
7803
|
-
return componentOffset > -1 ? lView[directiveStart + componentOffset] : null;
|
|
7803
|
+
return isComponentHost(tNode) ? lView[tNode.directiveStart + tNode.componentOffset] : null;
|
|
7804
7804
|
}
|
|
7805
7805
|
/**
|
|
7806
7806
|
* Returns a map of local references (local reference name => element or directive instance) that
|
|
@@ -7829,7 +7829,7 @@ function discoverLocalRefs(lView, nodeIndex) {
|
|
|
7829
7829
|
function getRootView(componentOrLView) {
|
|
7830
7830
|
ngDevMode && assertDefined(componentOrLView, 'component');
|
|
7831
7831
|
let lView = isLView(componentOrLView) ? componentOrLView : readPatchedLView(componentOrLView);
|
|
7832
|
-
while (lView && !(lView
|
|
7832
|
+
while (lView && !isRootView(lView)) {
|
|
7833
7833
|
lView = getLViewParent(lView);
|
|
7834
7834
|
}
|
|
7835
7835
|
ngDevMode && assertLView(lView);
|
|
@@ -7947,7 +7947,7 @@ function getOwningComponent(elementOrDir) {
|
|
|
7947
7947
|
while (lView[TVIEW].type === 2 /* TViewType.Embedded */ && (parent = getLViewParent(lView))) {
|
|
7948
7948
|
lView = parent;
|
|
7949
7949
|
}
|
|
7950
|
-
return lView
|
|
7950
|
+
return isRootView(lView) ? null : lView[CONTEXT];
|
|
7951
7951
|
}
|
|
7952
7952
|
/**
|
|
7953
7953
|
* Retrieves all root components associated with a DOM element, directive or component instance.
|
|
@@ -12076,12 +12076,131 @@ function extractAttrsAndClassesFromSelector(selector) {
|
|
|
12076
12076
|
}
|
|
12077
12077
|
i++;
|
|
12078
12078
|
}
|
|
12079
|
-
|
|
12079
|
+
if (classes.length) {
|
|
12080
|
+
attrs.push(1 /* AttributeMarker.Classes */, ...classes);
|
|
12081
|
+
}
|
|
12082
|
+
return attrs;
|
|
12080
12083
|
}
|
|
12081
12084
|
|
|
12082
12085
|
/** A special value which designates that a value has not changed. */
|
|
12083
12086
|
const NO_CHANGE = typeof ngDevMode === 'undefined' || ngDevMode ? { __brand__: 'NO_CHANGE' } : {};
|
|
12084
12087
|
|
|
12088
|
+
function createTextNode(renderer, value) {
|
|
12089
|
+
ngDevMode && ngDevMode.rendererCreateTextNode++;
|
|
12090
|
+
ngDevMode && ngDevMode.rendererSetText++;
|
|
12091
|
+
return renderer.createText(value);
|
|
12092
|
+
}
|
|
12093
|
+
function updateTextNode(renderer, rNode, value) {
|
|
12094
|
+
ngDevMode && ngDevMode.rendererSetText++;
|
|
12095
|
+
renderer.setValue(rNode, value);
|
|
12096
|
+
}
|
|
12097
|
+
function createCommentNode(renderer, value) {
|
|
12098
|
+
ngDevMode && ngDevMode.rendererCreateComment++;
|
|
12099
|
+
return renderer.createComment(escapeCommentText(value));
|
|
12100
|
+
}
|
|
12101
|
+
/**
|
|
12102
|
+
* Creates a native element from a tag name, using a renderer.
|
|
12103
|
+
* @param renderer A renderer to use
|
|
12104
|
+
* @param name the tag name
|
|
12105
|
+
* @param namespace Optional namespace for element.
|
|
12106
|
+
* @returns the element created
|
|
12107
|
+
*/
|
|
12108
|
+
function createElementNode(renderer, name, namespace) {
|
|
12109
|
+
ngDevMode && ngDevMode.rendererCreateElement++;
|
|
12110
|
+
return renderer.createElement(name, namespace);
|
|
12111
|
+
}
|
|
12112
|
+
/**
|
|
12113
|
+
* Inserts a native node before another native node for a given parent.
|
|
12114
|
+
* This is a utility function that can be used when native nodes were determined.
|
|
12115
|
+
*/
|
|
12116
|
+
function nativeInsertBefore(renderer, parent, child, beforeNode, isMove) {
|
|
12117
|
+
ngDevMode && ngDevMode.rendererInsertBefore++;
|
|
12118
|
+
renderer.insertBefore(parent, child, beforeNode, isMove);
|
|
12119
|
+
}
|
|
12120
|
+
function nativeAppendChild(renderer, parent, child) {
|
|
12121
|
+
ngDevMode && ngDevMode.rendererAppendChild++;
|
|
12122
|
+
ngDevMode && assertDefined(parent, 'parent node must be defined');
|
|
12123
|
+
renderer.appendChild(parent, child);
|
|
12124
|
+
}
|
|
12125
|
+
function nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove) {
|
|
12126
|
+
if (beforeNode !== null) {
|
|
12127
|
+
nativeInsertBefore(renderer, parent, child, beforeNode, isMove);
|
|
12128
|
+
}
|
|
12129
|
+
else {
|
|
12130
|
+
nativeAppendChild(renderer, parent, child);
|
|
12131
|
+
}
|
|
12132
|
+
}
|
|
12133
|
+
/**
|
|
12134
|
+
* Removes a native node itself using a given renderer. To remove the node we are looking up its
|
|
12135
|
+
* parent from the native tree as not all platforms / browsers support the equivalent of
|
|
12136
|
+
* node.remove().
|
|
12137
|
+
*
|
|
12138
|
+
* @param renderer A renderer to be used
|
|
12139
|
+
* @param rNode The native node that should be removed
|
|
12140
|
+
* @param isHostElement A flag indicating if a node to be removed is a host of a component.
|
|
12141
|
+
*/
|
|
12142
|
+
function nativeRemoveNode(renderer, rNode, isHostElement) {
|
|
12143
|
+
ngDevMode && ngDevMode.rendererRemoveNode++;
|
|
12144
|
+
renderer.removeChild(null, rNode, isHostElement);
|
|
12145
|
+
}
|
|
12146
|
+
/**
|
|
12147
|
+
* Clears the contents of a given RElement.
|
|
12148
|
+
*
|
|
12149
|
+
* @param rElement the native RElement to be cleared
|
|
12150
|
+
*/
|
|
12151
|
+
function clearElementContents(rElement) {
|
|
12152
|
+
rElement.textContent = '';
|
|
12153
|
+
}
|
|
12154
|
+
/**
|
|
12155
|
+
* Write `cssText` to `RElement`.
|
|
12156
|
+
*
|
|
12157
|
+
* This function does direct write without any reconciliation. Used for writing initial values, so
|
|
12158
|
+
* that static styling values do not pull in the style parser.
|
|
12159
|
+
*
|
|
12160
|
+
* @param renderer Renderer to use
|
|
12161
|
+
* @param element The element which needs to be updated.
|
|
12162
|
+
* @param newValue The new class list to write.
|
|
12163
|
+
*/
|
|
12164
|
+
function writeDirectStyle(renderer, element, newValue) {
|
|
12165
|
+
ngDevMode && assertString(newValue, "'newValue' should be a string");
|
|
12166
|
+
renderer.setAttribute(element, 'style', newValue);
|
|
12167
|
+
ngDevMode && ngDevMode.rendererSetStyle++;
|
|
12168
|
+
}
|
|
12169
|
+
/**
|
|
12170
|
+
* Write `className` to `RElement`.
|
|
12171
|
+
*
|
|
12172
|
+
* This function does direct write without any reconciliation. Used for writing initial values, so
|
|
12173
|
+
* that static styling values do not pull in the style parser.
|
|
12174
|
+
*
|
|
12175
|
+
* @param renderer Renderer to use
|
|
12176
|
+
* @param element The element which needs to be updated.
|
|
12177
|
+
* @param newValue The new class list to write.
|
|
12178
|
+
*/
|
|
12179
|
+
function writeDirectClass(renderer, element, newValue) {
|
|
12180
|
+
ngDevMode && assertString(newValue, "'newValue' should be a string");
|
|
12181
|
+
if (newValue === '') {
|
|
12182
|
+
// There are tests in `google3` which expect `element.getAttribute('class')` to be `null`.
|
|
12183
|
+
renderer.removeAttribute(element, 'class');
|
|
12184
|
+
}
|
|
12185
|
+
else {
|
|
12186
|
+
renderer.setAttribute(element, 'class', newValue);
|
|
12187
|
+
}
|
|
12188
|
+
ngDevMode && ngDevMode.rendererSetClassName++;
|
|
12189
|
+
}
|
|
12190
|
+
/** Sets up the static DOM attributes on an `RNode`. */
|
|
12191
|
+
function setupStaticAttributes(renderer, element, tNode) {
|
|
12192
|
+
const { mergedAttrs, classes, styles } = tNode;
|
|
12193
|
+
if (mergedAttrs !== null) {
|
|
12194
|
+
setUpAttributes(renderer, element, mergedAttrs);
|
|
12195
|
+
}
|
|
12196
|
+
if (classes !== null) {
|
|
12197
|
+
writeDirectClass(renderer, element, classes);
|
|
12198
|
+
}
|
|
12199
|
+
if (styles !== null) {
|
|
12200
|
+
writeDirectStyle(renderer, element, styles);
|
|
12201
|
+
}
|
|
12202
|
+
}
|
|
12203
|
+
|
|
12085
12204
|
/**
|
|
12086
12205
|
* Advances to an element for later binding instructions.
|
|
12087
12206
|
*
|
|
@@ -12201,122 +12320,6 @@ function writeToDirectiveInput(def, instance, publicName, privateName, flags, va
|
|
|
12201
12320
|
}
|
|
12202
12321
|
}
|
|
12203
12322
|
|
|
12204
|
-
function createTextNode(renderer, value) {
|
|
12205
|
-
ngDevMode && ngDevMode.rendererCreateTextNode++;
|
|
12206
|
-
ngDevMode && ngDevMode.rendererSetText++;
|
|
12207
|
-
return renderer.createText(value);
|
|
12208
|
-
}
|
|
12209
|
-
function updateTextNode(renderer, rNode, value) {
|
|
12210
|
-
ngDevMode && ngDevMode.rendererSetText++;
|
|
12211
|
-
renderer.setValue(rNode, value);
|
|
12212
|
-
}
|
|
12213
|
-
function createCommentNode(renderer, value) {
|
|
12214
|
-
ngDevMode && ngDevMode.rendererCreateComment++;
|
|
12215
|
-
return renderer.createComment(escapeCommentText(value));
|
|
12216
|
-
}
|
|
12217
|
-
/**
|
|
12218
|
-
* Creates a native element from a tag name, using a renderer.
|
|
12219
|
-
* @param renderer A renderer to use
|
|
12220
|
-
* @param name the tag name
|
|
12221
|
-
* @param namespace Optional namespace for element.
|
|
12222
|
-
* @returns the element created
|
|
12223
|
-
*/
|
|
12224
|
-
function createElementNode(renderer, name, namespace) {
|
|
12225
|
-
ngDevMode && ngDevMode.rendererCreateElement++;
|
|
12226
|
-
return renderer.createElement(name, namespace);
|
|
12227
|
-
}
|
|
12228
|
-
/**
|
|
12229
|
-
* Inserts a native node before another native node for a given parent.
|
|
12230
|
-
* This is a utility function that can be used when native nodes were determined.
|
|
12231
|
-
*/
|
|
12232
|
-
function nativeInsertBefore(renderer, parent, child, beforeNode, isMove) {
|
|
12233
|
-
ngDevMode && ngDevMode.rendererInsertBefore++;
|
|
12234
|
-
renderer.insertBefore(parent, child, beforeNode, isMove);
|
|
12235
|
-
}
|
|
12236
|
-
function nativeAppendChild(renderer, parent, child) {
|
|
12237
|
-
ngDevMode && ngDevMode.rendererAppendChild++;
|
|
12238
|
-
ngDevMode && assertDefined(parent, 'parent node must be defined');
|
|
12239
|
-
renderer.appendChild(parent, child);
|
|
12240
|
-
}
|
|
12241
|
-
function nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove) {
|
|
12242
|
-
if (beforeNode !== null) {
|
|
12243
|
-
nativeInsertBefore(renderer, parent, child, beforeNode, isMove);
|
|
12244
|
-
}
|
|
12245
|
-
else {
|
|
12246
|
-
nativeAppendChild(renderer, parent, child);
|
|
12247
|
-
}
|
|
12248
|
-
}
|
|
12249
|
-
/**
|
|
12250
|
-
* Removes a native node itself using a given renderer. To remove the node we are looking up its
|
|
12251
|
-
* parent from the native tree as not all platforms / browsers support the equivalent of
|
|
12252
|
-
* node.remove().
|
|
12253
|
-
*
|
|
12254
|
-
* @param renderer A renderer to be used
|
|
12255
|
-
* @param rNode The native node that should be removed
|
|
12256
|
-
* @param isHostElement A flag indicating if a node to be removed is a host of a component.
|
|
12257
|
-
*/
|
|
12258
|
-
function nativeRemoveNode(renderer, rNode, isHostElement) {
|
|
12259
|
-
ngDevMode && ngDevMode.rendererRemoveNode++;
|
|
12260
|
-
renderer.removeChild(null, rNode, isHostElement);
|
|
12261
|
-
}
|
|
12262
|
-
/**
|
|
12263
|
-
* Clears the contents of a given RElement.
|
|
12264
|
-
*
|
|
12265
|
-
* @param rElement the native RElement to be cleared
|
|
12266
|
-
*/
|
|
12267
|
-
function clearElementContents(rElement) {
|
|
12268
|
-
rElement.textContent = '';
|
|
12269
|
-
}
|
|
12270
|
-
/**
|
|
12271
|
-
* Write `cssText` to `RElement`.
|
|
12272
|
-
*
|
|
12273
|
-
* This function does direct write without any reconciliation. Used for writing initial values, so
|
|
12274
|
-
* that static styling values do not pull in the style parser.
|
|
12275
|
-
*
|
|
12276
|
-
* @param renderer Renderer to use
|
|
12277
|
-
* @param element The element which needs to be updated.
|
|
12278
|
-
* @param newValue The new class list to write.
|
|
12279
|
-
*/
|
|
12280
|
-
function writeDirectStyle(renderer, element, newValue) {
|
|
12281
|
-
ngDevMode && assertString(newValue, "'newValue' should be a string");
|
|
12282
|
-
renderer.setAttribute(element, 'style', newValue);
|
|
12283
|
-
ngDevMode && ngDevMode.rendererSetStyle++;
|
|
12284
|
-
}
|
|
12285
|
-
/**
|
|
12286
|
-
* Write `className` to `RElement`.
|
|
12287
|
-
*
|
|
12288
|
-
* This function does direct write without any reconciliation. Used for writing initial values, so
|
|
12289
|
-
* that static styling values do not pull in the style parser.
|
|
12290
|
-
*
|
|
12291
|
-
* @param renderer Renderer to use
|
|
12292
|
-
* @param element The element which needs to be updated.
|
|
12293
|
-
* @param newValue The new class list to write.
|
|
12294
|
-
*/
|
|
12295
|
-
function writeDirectClass(renderer, element, newValue) {
|
|
12296
|
-
ngDevMode && assertString(newValue, "'newValue' should be a string");
|
|
12297
|
-
if (newValue === '') {
|
|
12298
|
-
// There are tests in `google3` which expect `element.getAttribute('class')` to be `null`.
|
|
12299
|
-
renderer.removeAttribute(element, 'class');
|
|
12300
|
-
}
|
|
12301
|
-
else {
|
|
12302
|
-
renderer.setAttribute(element, 'class', newValue);
|
|
12303
|
-
}
|
|
12304
|
-
ngDevMode && ngDevMode.rendererSetClassName++;
|
|
12305
|
-
}
|
|
12306
|
-
/** Sets up the static DOM attributes on an `RNode`. */
|
|
12307
|
-
function setupStaticAttributes(renderer, element, tNode) {
|
|
12308
|
-
const { mergedAttrs, classes, styles } = tNode;
|
|
12309
|
-
if (mergedAttrs !== null) {
|
|
12310
|
-
setUpAttributes(renderer, element, mergedAttrs);
|
|
12311
|
-
}
|
|
12312
|
-
if (classes !== null) {
|
|
12313
|
-
writeDirectClass(renderer, element, classes);
|
|
12314
|
-
}
|
|
12315
|
-
if (styles !== null) {
|
|
12316
|
-
writeDirectStyle(renderer, element, styles);
|
|
12317
|
-
}
|
|
12318
|
-
}
|
|
12319
|
-
|
|
12320
12323
|
function createLView(parentLView, tView, context, flags, host, tHostNode, environment, renderer, injector, embeddedViewInjector, hydrationInfo) {
|
|
12321
12324
|
const lView = tView.blueprint.slice();
|
|
12322
12325
|
lView[HOST] = host;
|
|
@@ -12405,10 +12408,17 @@ function executeTemplate(tView, lView, templateFn, rf, context) {
|
|
|
12405
12408
|
/**
|
|
12406
12409
|
* Creates directive instances.
|
|
12407
12410
|
*/
|
|
12408
|
-
function
|
|
12411
|
+
function createDirectivesInstancesInInstruction(tView, lView, tNode) {
|
|
12409
12412
|
if (!getBindingsEnabled())
|
|
12410
12413
|
return;
|
|
12411
|
-
|
|
12414
|
+
attachPatchData(getNativeByTNode(tNode, lView), lView);
|
|
12415
|
+
createDirectivesInstances(tView, lView, tNode);
|
|
12416
|
+
}
|
|
12417
|
+
/**
|
|
12418
|
+
* Creates directive instances.
|
|
12419
|
+
*/
|
|
12420
|
+
function createDirectivesInstances(tView, lView, tNode) {
|
|
12421
|
+
instantiateAllDirectives(tView, lView, tNode);
|
|
12412
12422
|
if ((tNode.flags & 64 /* TNodeFlags.hasHostBindings */) === 64 /* TNodeFlags.hasHostBindings */) {
|
|
12413
12423
|
invokeDirectivesHostBindings(tView, lView, tNode);
|
|
12414
12424
|
}
|
|
@@ -12792,16 +12802,9 @@ function resolveDirectives(tView, lView, tNode, localRefs) {
|
|
|
12792
12802
|
ngDevMode && assertFirstCreatePass(tView);
|
|
12793
12803
|
if (getBindingsEnabled()) {
|
|
12794
12804
|
const exportsMap = localRefs === null ? null : { '': -1 };
|
|
12795
|
-
const
|
|
12796
|
-
|
|
12797
|
-
|
|
12798
|
-
if (matchResult === null) {
|
|
12799
|
-
directiveDefs = hostDirectiveDefs = null;
|
|
12800
|
-
}
|
|
12801
|
-
else {
|
|
12802
|
-
[directiveDefs, hostDirectiveDefs] = matchResult;
|
|
12803
|
-
}
|
|
12804
|
-
if (directiveDefs !== null) {
|
|
12805
|
+
const matchedDirectiveDefs = findDirectiveDefMatches(tView, tNode);
|
|
12806
|
+
if (matchedDirectiveDefs !== null) {
|
|
12807
|
+
const [directiveDefs, hostDirectiveDefs] = resolveHostDirectives(tView, tNode, matchedDirectiveDefs);
|
|
12805
12808
|
initializeDirectives(tView, lView, tNode, directiveDefs, exportsMap, hostDirectiveDefs);
|
|
12806
12809
|
}
|
|
12807
12810
|
if (exportsMap)
|
|
@@ -12913,19 +12916,18 @@ function lastSelectedElementIdx(hostBindingOpCodes) {
|
|
|
12913
12916
|
/**
|
|
12914
12917
|
* Instantiate all the directives that were previously resolved on the current node.
|
|
12915
12918
|
*/
|
|
12916
|
-
function instantiateAllDirectives(tView, lView, tNode
|
|
12919
|
+
function instantiateAllDirectives(tView, lView, tNode) {
|
|
12917
12920
|
const start = tNode.directiveStart;
|
|
12918
12921
|
const end = tNode.directiveEnd;
|
|
12919
12922
|
// The component view needs to be created before creating the node injector
|
|
12920
12923
|
// since it is used to inject some special symbols like `ChangeDetectorRef`.
|
|
12921
12924
|
if (isComponentHost(tNode)) {
|
|
12922
12925
|
ngDevMode && assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */);
|
|
12923
|
-
|
|
12926
|
+
createComponentLView(lView, tNode, tView.data[start + tNode.componentOffset]);
|
|
12924
12927
|
}
|
|
12925
12928
|
if (!tView.firstCreatePass) {
|
|
12926
12929
|
getOrCreateNodeInjectorForNode(tNode, lView);
|
|
12927
12930
|
}
|
|
12928
|
-
attachPatchData(native, lView);
|
|
12929
12931
|
const initialInputs = tNode.initialInputs;
|
|
12930
12932
|
for (let i = start; i < end; i++) {
|
|
12931
12933
|
const def = tView.data[i];
|
|
@@ -12981,60 +12983,63 @@ function findDirectiveDefMatches(tView, tNode) {
|
|
|
12981
12983
|
ngDevMode && assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */ | 12 /* TNodeType.AnyContainer */);
|
|
12982
12984
|
const registry = tView.directiveRegistry;
|
|
12983
12985
|
let matches = null;
|
|
12984
|
-
let hostDirectiveDefs = null;
|
|
12985
12986
|
if (registry) {
|
|
12986
12987
|
for (let i = 0; i < registry.length; i++) {
|
|
12987
12988
|
const def = registry[i];
|
|
12988
12989
|
if (isNodeMatchingSelectorList(tNode, def.selectors, /* isProjectionMode */ false)) {
|
|
12989
|
-
matches
|
|
12990
|
+
matches ??= [];
|
|
12990
12991
|
if (isComponentDef(def)) {
|
|
12991
12992
|
if (ngDevMode) {
|
|
12992
12993
|
assertTNodeType(tNode, 2 /* TNodeType.Element */, `"${tNode.value}" tags cannot be used as component hosts. ` +
|
|
12993
12994
|
`Please use a different tag to activate the ${stringify(def.type)} component.`);
|
|
12994
|
-
if (
|
|
12995
|
+
if (matches.length && isComponentDef(matches[0])) {
|
|
12995
12996
|
throwMultipleComponentError(tNode, matches.find(isComponentDef).type, def.type);
|
|
12996
12997
|
}
|
|
12997
12998
|
}
|
|
12998
|
-
|
|
12999
|
-
// hooks run before any directive lifecycle hooks. This appears to be for ViewEngine
|
|
13000
|
-
// compatibility. This logic doesn't make sense with host directives, because it
|
|
13001
|
-
// would allow the host directives to undo any overrides the host may have made.
|
|
13002
|
-
// To handle this case, the host directives of components are inserted at the beginning
|
|
13003
|
-
// of the array, followed by the component. As such, the insertion order is as follows:
|
|
13004
|
-
// 1. Host directives belonging to the selector-matched component.
|
|
13005
|
-
// 2. Selector-matched component.
|
|
13006
|
-
// 3. Host directives belonging to selector-matched directives.
|
|
13007
|
-
// 4. Selector-matched directives.
|
|
13008
|
-
if (def.findHostDirectiveDefs !== null) {
|
|
13009
|
-
const hostDirectiveMatches = [];
|
|
13010
|
-
hostDirectiveDefs = hostDirectiveDefs || new Map();
|
|
13011
|
-
def.findHostDirectiveDefs(def, hostDirectiveMatches, hostDirectiveDefs);
|
|
13012
|
-
// Add all host directives declared on this component, followed by the component itself.
|
|
13013
|
-
// Host directives should execute first so the host has a chance to override changes
|
|
13014
|
-
// to the DOM made by them.
|
|
13015
|
-
matches.unshift(...hostDirectiveMatches, def);
|
|
13016
|
-
// Component is offset starting from the beginning of the host directives array.
|
|
13017
|
-
const componentOffset = hostDirectiveMatches.length;
|
|
13018
|
-
markAsComponentHost(tView, tNode, componentOffset);
|
|
13019
|
-
}
|
|
13020
|
-
else {
|
|
13021
|
-
// No host directives on this component, just add the
|
|
13022
|
-
// component def to the beginning of the matches.
|
|
13023
|
-
matches.unshift(def);
|
|
13024
|
-
markAsComponentHost(tView, tNode, 0);
|
|
13025
|
-
}
|
|
12999
|
+
matches.unshift(def);
|
|
13026
13000
|
}
|
|
13027
13001
|
else {
|
|
13028
|
-
// Append any host directives to the matches first.
|
|
13029
|
-
hostDirectiveDefs = hostDirectiveDefs || new Map();
|
|
13030
|
-
def.findHostDirectiveDefs?.(def, matches, hostDirectiveDefs);
|
|
13031
13002
|
matches.push(def);
|
|
13032
13003
|
}
|
|
13033
13004
|
}
|
|
13034
13005
|
}
|
|
13035
13006
|
}
|
|
13036
|
-
|
|
13037
|
-
|
|
13007
|
+
return matches;
|
|
13008
|
+
}
|
|
13009
|
+
function resolveHostDirectives(tView, tNode, matches) {
|
|
13010
|
+
const allDirectiveDefs = [];
|
|
13011
|
+
let hostDirectiveDefs = null;
|
|
13012
|
+
for (const def of matches) {
|
|
13013
|
+
if (def.findHostDirectiveDefs !== null) {
|
|
13014
|
+
// TODO(pk): probably could return matches instead of taking in an array to fill in?
|
|
13015
|
+
hostDirectiveDefs ??= new Map();
|
|
13016
|
+
// Components are inserted at the front of the matches array so that their lifecycle
|
|
13017
|
+
// hooks run before any directive lifecycle hooks. This appears to be for ViewEngine
|
|
13018
|
+
// compatibility. This logic doesn't make sense with host directives, because it
|
|
13019
|
+
// would allow the host directives to undo any overrides the host may have made.
|
|
13020
|
+
// To handle this case, the host directives of components are inserted at the beginning
|
|
13021
|
+
// of the array, followed by the component. As such, the insertion order is as follows:
|
|
13022
|
+
// 1. Host directives belonging to the selector-matched component.
|
|
13023
|
+
// 2. Selector-matched component.
|
|
13024
|
+
// 3. Host directives belonging to selector-matched directives.
|
|
13025
|
+
// 4. Selector-matched directives.
|
|
13026
|
+
def.findHostDirectiveDefs(def, allDirectiveDefs, hostDirectiveDefs);
|
|
13027
|
+
}
|
|
13028
|
+
if (isComponentDef(def)) {
|
|
13029
|
+
allDirectiveDefs.push(def);
|
|
13030
|
+
markAsComponentHost(tView, tNode, allDirectiveDefs.length - 1);
|
|
13031
|
+
}
|
|
13032
|
+
}
|
|
13033
|
+
if (isComponentHost(tNode)) {
|
|
13034
|
+
allDirectiveDefs.push(...matches.slice(1));
|
|
13035
|
+
}
|
|
13036
|
+
else {
|
|
13037
|
+
allDirectiveDefs.push(...matches);
|
|
13038
|
+
}
|
|
13039
|
+
if (ngDevMode) {
|
|
13040
|
+
assertNoDuplicateDirectives(allDirectiveDefs);
|
|
13041
|
+
}
|
|
13042
|
+
return [allDirectiveDefs, hostDirectiveDefs];
|
|
13038
13043
|
}
|
|
13039
13044
|
/**
|
|
13040
13045
|
* Marks a given TNode as a component's host. This consists of:
|
|
@@ -13130,7 +13135,7 @@ function getInitialLViewFlagsFromDef(def) {
|
|
|
13130
13135
|
}
|
|
13131
13136
|
return flags;
|
|
13132
13137
|
}
|
|
13133
|
-
function
|
|
13138
|
+
function createComponentLView(lView, hostTNode, def) {
|
|
13134
13139
|
const native = getNativeByTNode(hostTNode, lView);
|
|
13135
13140
|
const tView = getOrCreateComponentTView(def);
|
|
13136
13141
|
// Only component views should be added to the view tree directly. Embedded views are
|
|
@@ -13139,7 +13144,7 @@ function addComponentLogic(lView, hostTNode, def) {
|
|
|
13139
13144
|
const componentView = addToEndOfViewTree(lView, createLView(lView, tView, null, getInitialLViewFlagsFromDef(def), native, hostTNode, null, rendererFactory.createRenderer(native, def), null, null, null));
|
|
13140
13145
|
// Component view will always be created before any injected LContainers,
|
|
13141
13146
|
// so this is a regular element, wrap it with the component view
|
|
13142
|
-
lView[hostTNode.index] = componentView;
|
|
13147
|
+
return (lView[hostTNode.index] = componentView);
|
|
13143
13148
|
}
|
|
13144
13149
|
function elementAttributeInternal(tNode, lView, name, value, sanitizer, namespace) {
|
|
13145
13150
|
if (ngDevMode) {
|
|
@@ -13535,6 +13540,15 @@ function ensureIcuContainerVisitorLoaded(loader) {
|
|
|
13535
13540
|
}
|
|
13536
13541
|
}
|
|
13537
13542
|
|
|
13543
|
+
/**
|
|
13544
|
+
* Checks whether a TNode is considered detached, i.e. not present in the
|
|
13545
|
+
* translated i18n template. We should not attempt hydration for such nodes
|
|
13546
|
+
* and instead, use a regular "creation mode".
|
|
13547
|
+
*/
|
|
13548
|
+
function isDetachedByI18n(tNode) {
|
|
13549
|
+
return (tNode.flags & 32 /* TNodeFlags.isDetached */) === 32 /* TNodeFlags.isDetached */;
|
|
13550
|
+
}
|
|
13551
|
+
|
|
13538
13552
|
/**
|
|
13539
13553
|
* NOTE: for performance reasons, the possible actions are inlined within the function instead of
|
|
13540
13554
|
* being passed as an argument.
|
|
@@ -14011,10 +14025,9 @@ function getClosestRElement(tView, tNode, lView) {
|
|
|
14011
14025
|
}
|
|
14012
14026
|
else {
|
|
14013
14027
|
ngDevMode && assertTNodeType(parentTNode, 3 /* TNodeType.AnyRNode */ | 4 /* TNodeType.Container */);
|
|
14014
|
-
|
|
14015
|
-
if (componentOffset > -1) {
|
|
14028
|
+
if (isComponentHost(parentTNode)) {
|
|
14016
14029
|
ngDevMode && assertTNodeForLView(parentTNode, lView);
|
|
14017
|
-
const { encapsulation } = tView.data[parentTNode.directiveStart + componentOffset];
|
|
14030
|
+
const { encapsulation } = tView.data[parentTNode.directiveStart + parentTNode.componentOffset];
|
|
14018
14031
|
// We've got a parent which is an element in the current view. We just need to verify if the
|
|
14019
14032
|
// parent element is not a component. Component's content nodes are not inserted immediately
|
|
14020
14033
|
// because they will be projected, and so doing insert at this point would be wasteful.
|
|
@@ -14205,7 +14218,7 @@ function applyNodes(renderer, action, tNode, lView, parentRElement, beforeNode,
|
|
|
14205
14218
|
tNode.flags |= 2 /* TNodeFlags.isProjected */;
|
|
14206
14219
|
}
|
|
14207
14220
|
}
|
|
14208
|
-
if ((tNode
|
|
14221
|
+
if (!isDetachedByI18n(tNode)) {
|
|
14209
14222
|
if (tNodeType & 8 /* TNodeType.ElementContainer */) {
|
|
14210
14223
|
applyNodes(renderer, action, tNode.child, lView, parentRElement, beforeNode, false);
|
|
14211
14224
|
applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode);
|
|
@@ -17813,15 +17826,6 @@ function getNamespace(elementName) {
|
|
|
17813
17826
|
const name = elementName.toLowerCase();
|
|
17814
17827
|
return name === 'svg' ? SVG_NAMESPACE : name === 'math' ? MATH_ML_NAMESPACE : null;
|
|
17815
17828
|
}
|
|
17816
|
-
// TODO(pk): change the extractAttrsAndClassesFromSelector so it returns TAttributes already?
|
|
17817
|
-
function getRootTAttributesFromSelector(selector) {
|
|
17818
|
-
const { attrs, classes } = extractAttrsAndClassesFromSelector(selector);
|
|
17819
|
-
const tAtts = attrs;
|
|
17820
|
-
if (classes.length) {
|
|
17821
|
-
tAtts.push(1 /* AttributeMarker.Classes */, ...classes);
|
|
17822
|
-
}
|
|
17823
|
-
return tAtts;
|
|
17824
|
-
}
|
|
17825
17829
|
/**
|
|
17826
17830
|
* ComponentFactory interface implementation.
|
|
17827
17831
|
*/
|
|
@@ -17858,9 +17862,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
17858
17862
|
this.ngModule = ngModule;
|
|
17859
17863
|
this.componentType = componentDef.type;
|
|
17860
17864
|
this.selector = stringifyCSSSelectorList(componentDef.selectors);
|
|
17861
|
-
this.ngContentSelectors = componentDef.ngContentSelectors
|
|
17862
|
-
? componentDef.ngContentSelectors
|
|
17863
|
-
: [];
|
|
17865
|
+
this.ngContentSelectors = componentDef.ngContentSelectors ?? [];
|
|
17864
17866
|
this.isBoundToModule = !!ngModule;
|
|
17865
17867
|
}
|
|
17866
17868
|
create(injector, projectableNodes, rootSelectorOrNode, environmentInjector) {
|
|
@@ -17929,30 +17931,20 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
17929
17931
|
// `createRootComponentView` and `createRootComponent` both read global state. Fixing those
|
|
17930
17932
|
// issues would allow us to drop this.
|
|
17931
17933
|
enterView(rootLView);
|
|
17932
|
-
let component;
|
|
17933
17934
|
let componentView = null;
|
|
17934
17935
|
try {
|
|
17935
|
-
const rootComponentDef = this.componentDef;
|
|
17936
|
-
let rootDirectives;
|
|
17937
|
-
let hostDirectiveDefs = null;
|
|
17938
|
-
if (rootComponentDef.findHostDirectiveDefs) {
|
|
17939
|
-
rootDirectives = [];
|
|
17940
|
-
hostDirectiveDefs = new Map();
|
|
17941
|
-
rootComponentDef.findHostDirectiveDefs(rootComponentDef, rootDirectives, hostDirectiveDefs);
|
|
17942
|
-
rootDirectives.push(rootComponentDef);
|
|
17943
|
-
ngDevMode && assertNoDuplicateDirectives(rootDirectives);
|
|
17944
|
-
}
|
|
17945
|
-
else {
|
|
17946
|
-
rootDirectives = [rootComponentDef];
|
|
17947
|
-
}
|
|
17948
17936
|
// If host dom element is created (instead of being provided as part of the dynamic component creation), also apply attributes and classes extracted from component selector.
|
|
17949
17937
|
const tAttributes = rootSelectorOrNode
|
|
17950
|
-
? ['ng-version', '19.1.
|
|
17938
|
+
? ['ng-version', '19.1.4']
|
|
17951
17939
|
: // Extract attributes and classes from the first selector only to match VE behavior.
|
|
17952
|
-
|
|
17940
|
+
extractAttrsAndClassesFromSelector(this.componentDef.selectors[0]);
|
|
17953
17941
|
// TODO: this logic is shared with the element instruction first create pass
|
|
17954
17942
|
const hostTNode = getOrCreateTNode(rootTView, HEADER_OFFSET, 2 /* TNodeType.Element */, '#host', tAttributes);
|
|
17955
|
-
|
|
17943
|
+
const [directiveDefs, hostDirectiveDefs] = resolveHostDirectives(rootTView, hostTNode, [
|
|
17944
|
+
this.componentDef,
|
|
17945
|
+
]);
|
|
17946
|
+
initializeDirectives(rootTView, rootLView, hostTNode, directiveDefs, {}, hostDirectiveDefs);
|
|
17947
|
+
for (const def of directiveDefs) {
|
|
17956
17948
|
hostTNode.mergedAttrs = mergeHostAttrs(hostTNode.mergedAttrs, def.hostAttrs);
|
|
17957
17949
|
}
|
|
17958
17950
|
hostTNode.mergedAttrs = mergeHostAttrs(hostTNode.mergedAttrs, tAttributes);
|
|
@@ -17962,14 +17954,19 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
17962
17954
|
// tests so that this check can be removed.
|
|
17963
17955
|
if (hostRNode) {
|
|
17964
17956
|
setupStaticAttributes(hostRenderer, hostRNode, hostTNode);
|
|
17957
|
+
attachPatchData(hostRNode, rootLView);
|
|
17965
17958
|
}
|
|
17966
|
-
componentView = createRootComponentView(hostTNode, hostRNode, rootComponentDef, rootDirectives, rootLView, environment);
|
|
17967
17959
|
if (projectableNodes !== undefined) {
|
|
17968
17960
|
projectNodes(hostTNode, this.ngContentSelectors, projectableNodes);
|
|
17969
17961
|
}
|
|
17970
|
-
// TODO:
|
|
17971
|
-
|
|
17972
|
-
|
|
17962
|
+
// TODO(pk): this logic is similar to the instruction code where a node can have directives
|
|
17963
|
+
createDirectivesInstances(rootTView, rootLView, hostTNode);
|
|
17964
|
+
executeContentQueries(rootTView, hostTNode, rootLView);
|
|
17965
|
+
// TODO(pk): code / logic duplication with the elementEnd and similar instructions
|
|
17966
|
+
registerPostOrderHooks(rootTView, hostTNode);
|
|
17967
|
+
componentView = getComponentLViewByIndex(hostTNode.index, rootLView);
|
|
17968
|
+
// TODO(pk): why do we need this logic?
|
|
17969
|
+
rootLView[CONTEXT] = componentView[CONTEXT];
|
|
17973
17970
|
renderView(rootTView, rootLView, null);
|
|
17974
17971
|
}
|
|
17975
17972
|
catch (e) {
|
|
@@ -17984,8 +17981,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
17984
17981
|
finally {
|
|
17985
17982
|
leaveView();
|
|
17986
17983
|
}
|
|
17987
|
-
|
|
17988
|
-
return new ComponentRef(this.componentType, component, createElementRef(hostTNode, rootLView), rootLView, hostTNode);
|
|
17984
|
+
return new ComponentRef(this.componentType, rootLView);
|
|
17989
17985
|
}
|
|
17990
17986
|
finally {
|
|
17991
17987
|
setActiveConsumer$1(prevConsumer);
|
|
@@ -18001,20 +17997,20 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
18001
17997
|
*
|
|
18002
17998
|
*/
|
|
18003
17999
|
class ComponentRef extends ComponentRef$1 {
|
|
18004
|
-
location;
|
|
18005
18000
|
_rootLView;
|
|
18006
|
-
_tNode;
|
|
18007
18001
|
instance;
|
|
18008
18002
|
hostView;
|
|
18009
18003
|
changeDetectorRef;
|
|
18010
18004
|
componentType;
|
|
18005
|
+
location;
|
|
18011
18006
|
previousInputValues = null;
|
|
18012
|
-
|
|
18007
|
+
_tNode;
|
|
18008
|
+
constructor(componentType, _rootLView) {
|
|
18013
18009
|
super();
|
|
18014
|
-
this.location = location;
|
|
18015
18010
|
this._rootLView = _rootLView;
|
|
18016
|
-
this._tNode =
|
|
18017
|
-
this.
|
|
18011
|
+
this._tNode = getTNode(_rootLView[TVIEW], HEADER_OFFSET);
|
|
18012
|
+
this.location = createElementRef(this._tNode, _rootLView);
|
|
18013
|
+
this.instance = getComponentLViewByIndex(this._tNode.index, _rootLView)[CONTEXT];
|
|
18018
18014
|
this.hostView = this.changeDetectorRef = new ViewRef$1(_rootLView, undefined /* _cdRefInjectingView */, false /* notifyErrorHandler */);
|
|
18019
18015
|
this.componentType = componentType;
|
|
18020
18016
|
}
|
|
@@ -18054,70 +18050,6 @@ class ComponentRef extends ComponentRef$1 {
|
|
|
18054
18050
|
this.hostView.onDestroy(callback);
|
|
18055
18051
|
}
|
|
18056
18052
|
}
|
|
18057
|
-
/**
|
|
18058
|
-
* Creates the root component view and the root component node.
|
|
18059
|
-
*
|
|
18060
|
-
* @param hostRNode Render host element.
|
|
18061
|
-
* @param rootComponentDef ComponentDef
|
|
18062
|
-
* @param rootView The parent view where the host node is stored
|
|
18063
|
-
* @param rendererFactory Factory to be used for creating child renderers.
|
|
18064
|
-
* @param hostRenderer The current renderer
|
|
18065
|
-
* @param sanitizer The sanitizer, if provided
|
|
18066
|
-
*
|
|
18067
|
-
* @returns Component view created
|
|
18068
|
-
*/
|
|
18069
|
-
function createRootComponentView(tNode, hostRNode, rootComponentDef, rootDirectives, rootView, environment) {
|
|
18070
|
-
const tView = rootView[TVIEW];
|
|
18071
|
-
// Hydration info is on the host element and needs to be retrieved
|
|
18072
|
-
// and passed to the component LView.
|
|
18073
|
-
let hydrationInfo = null;
|
|
18074
|
-
if (hostRNode !== null) {
|
|
18075
|
-
hydrationInfo = retrieveHydrationInfo(hostRNode, rootView[INJECTOR]);
|
|
18076
|
-
}
|
|
18077
|
-
const viewRenderer = environment.rendererFactory.createRenderer(hostRNode, rootComponentDef);
|
|
18078
|
-
const componentView = createLView(rootView, getOrCreateComponentTView(rootComponentDef), null, getInitialLViewFlagsFromDef(rootComponentDef), rootView[tNode.index], tNode, environment, viewRenderer, null, null, hydrationInfo);
|
|
18079
|
-
if (tView.firstCreatePass) {
|
|
18080
|
-
markAsComponentHost(tView, tNode, rootDirectives.length - 1);
|
|
18081
|
-
}
|
|
18082
|
-
addToEndOfViewTree(rootView, componentView);
|
|
18083
|
-
// Store component view at node index, with node as the HOST
|
|
18084
|
-
return (rootView[tNode.index] = componentView);
|
|
18085
|
-
}
|
|
18086
|
-
/**
|
|
18087
|
-
* Creates a root component and sets it up with features and host bindings.Shared by
|
|
18088
|
-
* renderComponent() and ViewContainerRef.createComponent().
|
|
18089
|
-
*/
|
|
18090
|
-
function createRootComponent(componentView, rootComponentDef, rootDirectives, hostDirectiveDefs, rootLView, hostFeatures) {
|
|
18091
|
-
const rootTNode = getCurrentTNode();
|
|
18092
|
-
ngDevMode && assertDefined(rootTNode, 'tNode should have been already created');
|
|
18093
|
-
const tView = rootLView[TVIEW];
|
|
18094
|
-
const native = getNativeByTNode(rootTNode, rootLView);
|
|
18095
|
-
initializeDirectives(tView, rootLView, rootTNode, rootDirectives, null, hostDirectiveDefs);
|
|
18096
|
-
for (let i = 0; i < rootDirectives.length; i++) {
|
|
18097
|
-
const directiveIndex = rootTNode.directiveStart + i;
|
|
18098
|
-
const directiveInstance = getNodeInjectable(rootLView, tView, directiveIndex, rootTNode);
|
|
18099
|
-
attachPatchData(directiveInstance, rootLView);
|
|
18100
|
-
}
|
|
18101
|
-
invokeDirectivesHostBindings(tView, rootLView, rootTNode);
|
|
18102
|
-
if (native) {
|
|
18103
|
-
attachPatchData(native, rootLView);
|
|
18104
|
-
}
|
|
18105
|
-
// We're guaranteed for the `componentOffset` to be positive here
|
|
18106
|
-
// since a root component always matches a component def.
|
|
18107
|
-
ngDevMode &&
|
|
18108
|
-
assertGreaterThan(rootTNode.componentOffset, -1, 'componentOffset must be great than -1');
|
|
18109
|
-
const component = getNodeInjectable(rootLView, tView, rootTNode.directiveStart + rootTNode.componentOffset, rootTNode);
|
|
18110
|
-
componentView[CONTEXT] = rootLView[CONTEXT] = component;
|
|
18111
|
-
if (hostFeatures !== null) {
|
|
18112
|
-
for (const feature of hostFeatures) {
|
|
18113
|
-
feature(component, rootComponentDef);
|
|
18114
|
-
}
|
|
18115
|
-
}
|
|
18116
|
-
// We want to generate an empty QueryList for root content queries for backwards
|
|
18117
|
-
// compatibility with ViewEngine.
|
|
18118
|
-
executeContentQueries(tView, rootTNode, rootLView);
|
|
18119
|
-
return component;
|
|
18120
|
-
}
|
|
18121
18053
|
/** Projects the `projectableNodes` that were specified when creating a root component. */
|
|
18122
18054
|
function projectNodes(tNode, ngContentSelectors, projectableNodes) {
|
|
18123
18055
|
const projection = (tNode.projection = []);
|
|
@@ -18131,24 +18063,6 @@ function projectNodes(tNode, ngContentSelectors, projectableNodes) {
|
|
|
18131
18063
|
projection.push(nodesforSlot != null && nodesforSlot.length ? Array.from(nodesforSlot) : null);
|
|
18132
18064
|
}
|
|
18133
18065
|
}
|
|
18134
|
-
/**
|
|
18135
|
-
* Used to enable lifecycle hooks on the root component.
|
|
18136
|
-
*
|
|
18137
|
-
* Include this feature when calling `renderComponent` if the root component
|
|
18138
|
-
* you are rendering has lifecycle hooks defined. Otherwise, the hooks won't
|
|
18139
|
-
* be called properly.
|
|
18140
|
-
*
|
|
18141
|
-
* Example:
|
|
18142
|
-
*
|
|
18143
|
-
* ```ts
|
|
18144
|
-
* renderComponent(AppComponent, {hostFeatures: [LifecycleHooksFeature]});
|
|
18145
|
-
* ```
|
|
18146
|
-
*/
|
|
18147
|
-
function LifecycleHooksFeature() {
|
|
18148
|
-
const tNode = getCurrentTNode();
|
|
18149
|
-
ngDevMode && assertDefined(tNode, 'TNode is required');
|
|
18150
|
-
registerPostOrderHooks(getLView()[TVIEW], tNode);
|
|
18151
|
-
}
|
|
18152
18066
|
|
|
18153
18067
|
/**
|
|
18154
18068
|
* Represents a container where one or more views can be attached to a component.
|
|
@@ -20658,15 +20572,6 @@ function bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4) {
|
|
|
20658
20572
|
return bindingUpdated2(lView, bindingIndex + 2, exp3, exp4) || different;
|
|
20659
20573
|
}
|
|
20660
20574
|
|
|
20661
|
-
/**
|
|
20662
|
-
* Checks whether a TNode is considered detached, i.e. not present in the
|
|
20663
|
-
* translated i18n template. We should not attempt hydration for such nodes
|
|
20664
|
-
* and instead, use a regular "creation mode".
|
|
20665
|
-
*/
|
|
20666
|
-
function isDetachedByI18n(tNode) {
|
|
20667
|
-
return (tNode.flags & 32 /* TNodeFlags.isDetached */) === 32 /* TNodeFlags.isDetached */;
|
|
20668
|
-
}
|
|
20669
|
-
|
|
20670
20575
|
function templateFirstCreatePass(index, tView, lView, templateFn, decls, vars, tagName, attrs, localRefsIndex) {
|
|
20671
20576
|
ngDevMode && assertFirstCreatePass(tView);
|
|
20672
20577
|
ngDevMode && ngDevMode.firstCreatePass++;
|
|
@@ -20716,7 +20621,7 @@ function declareTemplate(declarationLView, declarationTView, index, templateFn,
|
|
|
20716
20621
|
// In client-only mode, this function is a noop.
|
|
20717
20622
|
populateDehydratedViewsInLContainer(lContainer, tNode, declarationLView);
|
|
20718
20623
|
if (isDirectiveHost(tNode)) {
|
|
20719
|
-
|
|
20624
|
+
createDirectivesInstancesInInstruction(declarationTView, declarationLView, tNode);
|
|
20720
20625
|
}
|
|
20721
20626
|
if (localRefsIndex != null) {
|
|
20722
20627
|
saveResolvedLocalsInData(declarationLView, tNode, localRefExtractor);
|
|
@@ -28114,7 +28019,7 @@ function ɵɵelementStart(index, name, attrsIndex, localRefsIndex) {
|
|
|
28114
28019
|
}
|
|
28115
28020
|
increaseElementDepthCount();
|
|
28116
28021
|
if (hasDirectives) {
|
|
28117
|
-
|
|
28022
|
+
createDirectivesInstancesInInstruction(tView, lView, tNode);
|
|
28118
28023
|
executeContentQueries(tView, tNode, lView);
|
|
28119
28024
|
}
|
|
28120
28025
|
if (localRefsIndex !== null) {
|
|
@@ -28285,7 +28190,7 @@ function ɵɵelementContainerStart(index, attrsIndex, localRefsIndex) {
|
|
|
28285
28190
|
}
|
|
28286
28191
|
attachPatchData(comment, lView);
|
|
28287
28192
|
if (isDirectiveHost(tNode)) {
|
|
28288
|
-
|
|
28193
|
+
createDirectivesInstancesInInstruction(tView, lView, tNode);
|
|
28289
28194
|
executeContentQueries(tView, tNode, lView);
|
|
28290
28195
|
}
|
|
28291
28196
|
if (localRefsIndex != null) {
|
|
@@ -30465,7 +30370,7 @@ function wrapListener(tNode, lView, context, listenerFn) {
|
|
|
30465
30370
|
}
|
|
30466
30371
|
// In order to be backwards compatible with View Engine, events on component host nodes
|
|
30467
30372
|
// must also mark the component view itself dirty (i.e. the view that it owns).
|
|
30468
|
-
const startView = tNode
|
|
30373
|
+
const startView = isComponentHost(tNode) ? getComponentLViewByIndex(tNode.index, lView) : lView;
|
|
30469
30374
|
markViewDirty(startView, 5 /* NotificationSource.Listener */);
|
|
30470
30375
|
let result = executeListenerWithErrorHandling(lView, context, listenerFn, e);
|
|
30471
30376
|
// A just-invoked listener function might have coalesced listeners so we need to check for
|
|
@@ -30629,8 +30534,7 @@ function ɵɵprojection(nodeIndex, selectorIndex = 0, attrs, fallbackTemplateFn,
|
|
|
30629
30534
|
if (isEmpty && fallbackIndex !== null) {
|
|
30630
30535
|
insertFallbackContent(lView, tView, fallbackIndex);
|
|
30631
30536
|
}
|
|
30632
|
-
else if (isNodeCreationMode &&
|
|
30633
|
-
(tProjectionNode.flags & 32 /* TNodeFlags.isDetached */) !== 32 /* TNodeFlags.isDetached */) {
|
|
30537
|
+
else if (isNodeCreationMode && !isDetachedByI18n(tProjectionNode)) {
|
|
30634
30538
|
// re-distribution of projectable nodes is stored on a component's view level
|
|
30635
30539
|
applyProjection(tView, lView, tProjectionNode);
|
|
30636
30540
|
}
|
|
@@ -33431,7 +33335,7 @@ function ɵɵreplaceMetadata(type, applyMetadata, namespaces, locals) {
|
|
|
33431
33335
|
for (const root of trackedViews) {
|
|
33432
33336
|
// Note: we have the additional check, because `IsRoot` can also indicate
|
|
33433
33337
|
// a component created through something like `createComponent`.
|
|
33434
|
-
if (root
|
|
33338
|
+
if (isRootView(root) && root[PARENT] === null) {
|
|
33435
33339
|
recreateMatchingLViews(newDef, oldDef, root);
|
|
33436
33340
|
}
|
|
33437
33341
|
}
|
|
@@ -33458,6 +33362,10 @@ function mergeWithExistingDefinition(currentDef, newDef) {
|
|
|
33458
33362
|
// Preserve the old `setInput` function, because it has some state.
|
|
33459
33363
|
// This is fine, because the component instance is preserved as well.
|
|
33460
33364
|
setInput: clone.setInput,
|
|
33365
|
+
// Externally this is redundant since we redeclare the definition using the original type.
|
|
33366
|
+
// Internally we may receive a definition with an alternate, but identical, type so we have
|
|
33367
|
+
// to ensure that the original one is preserved.
|
|
33368
|
+
type: clone.type,
|
|
33461
33369
|
});
|
|
33462
33370
|
ngDevMode && assertEqual(replacement, currentDef, 'Expected definition to be merged in place');
|
|
33463
33371
|
return { newDef: replacement, oldDef: clone };
|
|
@@ -34996,7 +34904,7 @@ class Version {
|
|
|
34996
34904
|
/**
|
|
34997
34905
|
* @publicApi
|
|
34998
34906
|
*/
|
|
34999
|
-
const VERSION = new Version('19.1.
|
|
34907
|
+
const VERSION = new Version('19.1.4');
|
|
35000
34908
|
|
|
35001
34909
|
/**
|
|
35002
34910
|
* Combination of NgModuleFactory and ComponentFactories.
|
|
@@ -38747,7 +38655,7 @@ function createComputed(computation) {
|
|
|
38747
38655
|
producerUpdateValueVersion(node);
|
|
38748
38656
|
// Record that someone looked at this signal.
|
|
38749
38657
|
producerAccessed(node);
|
|
38750
|
-
if (node.value === ERRORED
|
|
38658
|
+
if (node.value === ERRORED) {
|
|
38751
38659
|
throw node.error;
|
|
38752
38660
|
}
|
|
38753
38661
|
return node.value;
|
|
@@ -38759,26 +38667,26 @@ function createComputed(computation) {
|
|
|
38759
38667
|
* A dedicated symbol used before a computed value has been calculated for the first time.
|
|
38760
38668
|
* Explicitly typed as `any` so we can use it as signal's value.
|
|
38761
38669
|
*/
|
|
38762
|
-
const UNSET
|
|
38670
|
+
const UNSET = /* @__PURE__ */ Symbol('UNSET');
|
|
38763
38671
|
/**
|
|
38764
38672
|
* A dedicated symbol used in place of a computed signal value to indicate that a given computation
|
|
38765
38673
|
* is in progress. Used to detect cycles in computation chains.
|
|
38766
38674
|
* Explicitly typed as `any` so we can use it as signal's value.
|
|
38767
38675
|
*/
|
|
38768
|
-
const COMPUTING
|
|
38676
|
+
const COMPUTING = /* @__PURE__ */ Symbol('COMPUTING');
|
|
38769
38677
|
/**
|
|
38770
38678
|
* A dedicated symbol used in place of a computed signal value to indicate that a given computation
|
|
38771
38679
|
* failed. The thrown error is cached until the computation gets dirty again.
|
|
38772
38680
|
* Explicitly typed as `any` so we can use it as signal's value.
|
|
38773
38681
|
*/
|
|
38774
|
-
const ERRORED
|
|
38682
|
+
const ERRORED = /* @__PURE__ */ Symbol('ERRORED');
|
|
38775
38683
|
// Note: Using an IIFE here to ensure that the spread assignment is not considered
|
|
38776
38684
|
// a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.
|
|
38777
38685
|
// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.
|
|
38778
38686
|
const COMPUTED_NODE = /* @__PURE__ */ (() => {
|
|
38779
38687
|
return {
|
|
38780
38688
|
...REACTIVE_NODE,
|
|
38781
|
-
value: UNSET
|
|
38689
|
+
value: UNSET,
|
|
38782
38690
|
dirty: true,
|
|
38783
38691
|
error: null,
|
|
38784
38692
|
equal: defaultEquals,
|
|
@@ -38786,15 +38694,15 @@ const COMPUTED_NODE = /* @__PURE__ */ (() => {
|
|
|
38786
38694
|
producerMustRecompute(node) {
|
|
38787
38695
|
// Force a recomputation if there's no current value, or if the current value is in the
|
|
38788
38696
|
// process of being calculated (which should throw an error).
|
|
38789
|
-
return node.value === UNSET
|
|
38697
|
+
return node.value === UNSET || node.value === COMPUTING;
|
|
38790
38698
|
},
|
|
38791
38699
|
producerRecomputeValue(node) {
|
|
38792
|
-
if (node.value === COMPUTING
|
|
38700
|
+
if (node.value === COMPUTING) {
|
|
38793
38701
|
// Our computation somehow led to a cyclic read of itself.
|
|
38794
38702
|
throw new Error('Detected cycle in computations.');
|
|
38795
38703
|
}
|
|
38796
38704
|
const oldValue = node.value;
|
|
38797
|
-
node.value = COMPUTING
|
|
38705
|
+
node.value = COMPUTING;
|
|
38798
38706
|
const prevConsumer = consumerBeforeComputation(node);
|
|
38799
38707
|
let newValue;
|
|
38800
38708
|
let wasEqual = false;
|
|
@@ -38804,13 +38712,13 @@ const COMPUTED_NODE = /* @__PURE__ */ (() => {
|
|
|
38804
38712
|
// to track any reactive reads inside `equal`.
|
|
38805
38713
|
setActiveConsumer(null);
|
|
38806
38714
|
wasEqual =
|
|
38807
|
-
oldValue !== UNSET
|
|
38808
|
-
oldValue !== ERRORED
|
|
38809
|
-
newValue !== ERRORED
|
|
38715
|
+
oldValue !== UNSET &&
|
|
38716
|
+
oldValue !== ERRORED &&
|
|
38717
|
+
newValue !== ERRORED &&
|
|
38810
38718
|
node.equal(oldValue, newValue);
|
|
38811
38719
|
}
|
|
38812
38720
|
catch (err) {
|
|
38813
|
-
newValue = ERRORED
|
|
38721
|
+
newValue = ERRORED;
|
|
38814
38722
|
node.error = err;
|
|
38815
38723
|
}
|
|
38816
38724
|
finally {
|
|
@@ -38904,8 +38812,8 @@ function signalValueChanged(node) {
|
|
|
38904
38812
|
postSignalSetFn?.();
|
|
38905
38813
|
}
|
|
38906
38814
|
|
|
38907
|
-
function createLinkedSignal
|
|
38908
|
-
const node = Object.create(LINKED_SIGNAL_NODE
|
|
38815
|
+
function createLinkedSignal(sourceFn, computationFn, equalityFn) {
|
|
38816
|
+
const node = Object.create(LINKED_SIGNAL_NODE);
|
|
38909
38817
|
node.source = sourceFn;
|
|
38910
38818
|
node.computation = computationFn;
|
|
38911
38819
|
if (equalityFn != undefined) {
|
|
@@ -38916,7 +38824,7 @@ function createLinkedSignal$1(sourceFn, computationFn, equalityFn) {
|
|
|
38916
38824
|
producerUpdateValueVersion(node);
|
|
38917
38825
|
// Record that someone looked at this signal.
|
|
38918
38826
|
producerAccessed(node);
|
|
38919
|
-
if (node.value === ERRORED
|
|
38827
|
+
if (node.value === ERRORED) {
|
|
38920
38828
|
throw node.error;
|
|
38921
38829
|
}
|
|
38922
38830
|
return node.value;
|
|
@@ -38938,30 +38846,30 @@ function linkedSignalUpdateFn(node, updater) {
|
|
|
38938
38846
|
// Note: Using an IIFE here to ensure that the spread assignment is not considered
|
|
38939
38847
|
// a side-effect, ending up preserving `LINKED_SIGNAL_NODE` and `REACTIVE_NODE`.
|
|
38940
38848
|
// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.
|
|
38941
|
-
const LINKED_SIGNAL_NODE
|
|
38849
|
+
const LINKED_SIGNAL_NODE = /* @__PURE__ */ (() => {
|
|
38942
38850
|
return {
|
|
38943
38851
|
...REACTIVE_NODE,
|
|
38944
|
-
value: UNSET
|
|
38852
|
+
value: UNSET,
|
|
38945
38853
|
dirty: true,
|
|
38946
38854
|
error: null,
|
|
38947
38855
|
equal: defaultEquals,
|
|
38948
38856
|
producerMustRecompute(node) {
|
|
38949
38857
|
// Force a recomputation if there's no current value, or if the current value is in the
|
|
38950
38858
|
// process of being calculated (which should throw an error).
|
|
38951
|
-
return node.value === UNSET
|
|
38859
|
+
return node.value === UNSET || node.value === COMPUTING;
|
|
38952
38860
|
},
|
|
38953
38861
|
producerRecomputeValue(node) {
|
|
38954
|
-
if (node.value === COMPUTING
|
|
38862
|
+
if (node.value === COMPUTING) {
|
|
38955
38863
|
// Our computation somehow led to a cyclic read of itself.
|
|
38956
38864
|
throw new Error('Detected cycle in computations.');
|
|
38957
38865
|
}
|
|
38958
38866
|
const oldValue = node.value;
|
|
38959
|
-
node.value = COMPUTING
|
|
38867
|
+
node.value = COMPUTING;
|
|
38960
38868
|
const prevConsumer = consumerBeforeComputation(node);
|
|
38961
38869
|
let newValue;
|
|
38962
38870
|
try {
|
|
38963
38871
|
const newSourceValue = node.source();
|
|
38964
|
-
const prev = oldValue === UNSET
|
|
38872
|
+
const prev = oldValue === UNSET || oldValue === ERRORED
|
|
38965
38873
|
? undefined
|
|
38966
38874
|
: {
|
|
38967
38875
|
source: node.sourceValue,
|
|
@@ -38971,13 +38879,13 @@ const LINKED_SIGNAL_NODE$1 = /* @__PURE__ */ (() => {
|
|
|
38971
38879
|
node.sourceValue = newSourceValue;
|
|
38972
38880
|
}
|
|
38973
38881
|
catch (err) {
|
|
38974
|
-
newValue = ERRORED
|
|
38882
|
+
newValue = ERRORED;
|
|
38975
38883
|
node.error = err;
|
|
38976
38884
|
}
|
|
38977
38885
|
finally {
|
|
38978
38886
|
consumerAfterComputation(node, prevConsumer);
|
|
38979
38887
|
}
|
|
38980
|
-
if (oldValue !== UNSET
|
|
38888
|
+
if (oldValue !== UNSET && newValue !== ERRORED && node.equal(oldValue, newValue)) {
|
|
38981
38889
|
// No change to `valueVersion` - old and new values are
|
|
38982
38890
|
// semantically equivalent.
|
|
38983
38891
|
node.value = oldValue;
|
|
@@ -40073,12 +39981,12 @@ function printHydrationStats(injector) {
|
|
|
40073
39981
|
/**
|
|
40074
39982
|
* Returns a Promise that is resolved when an application becomes stable.
|
|
40075
39983
|
*/
|
|
40076
|
-
function whenStableWithTimeout(appRef
|
|
39984
|
+
function whenStableWithTimeout(appRef) {
|
|
40077
39985
|
const whenStablePromise = appRef.whenStable();
|
|
40078
39986
|
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
40079
39987
|
const timeoutTime = APPLICATION_IS_STABLE_TIMEOUT;
|
|
40080
|
-
const console = injector.get(Console);
|
|
40081
|
-
const ngZone = injector.get(NgZone);
|
|
39988
|
+
const console = appRef.injector.get(Console);
|
|
39989
|
+
const ngZone = appRef.injector.get(NgZone);
|
|
40082
39990
|
// The following call should not and does not prevent the app to become stable
|
|
40083
39991
|
// We cannot use RxJS timer here because the app would remain unstable.
|
|
40084
39992
|
// This also avoids an extra change detection cycle.
|
|
@@ -40176,7 +40084,6 @@ function withDomHydration() {
|
|
|
40176
40084
|
useFactory: () => {
|
|
40177
40085
|
if (inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
|
|
40178
40086
|
const appRef = inject(ApplicationRef);
|
|
40179
|
-
const injector = inject(Injector);
|
|
40180
40087
|
return () => {
|
|
40181
40088
|
// Wait until an app becomes stable and cleanup all views that
|
|
40182
40089
|
// were not claimed during the application bootstrap process.
|
|
@@ -40185,11 +40092,20 @@ function withDomHydration() {
|
|
|
40185
40092
|
//
|
|
40186
40093
|
// Note: the cleanup task *MUST* be scheduled within the Angular zone in Zone apps
|
|
40187
40094
|
// to ensure that change detection is properly run afterward.
|
|
40188
|
-
whenStableWithTimeout(appRef
|
|
40095
|
+
whenStableWithTimeout(appRef).then(() => {
|
|
40096
|
+
// Note: we have to check whether the application is destroyed before
|
|
40097
|
+
// performing other operations with the `injector`.
|
|
40098
|
+
// The application may be destroyed **before** it becomes stable, so when
|
|
40099
|
+
// the `whenStableWithTimeout` resolves, the injector might already be in
|
|
40100
|
+
// a destroyed state. Thus, calling `injector.get` would throw an error
|
|
40101
|
+
// indicating that the injector has already been destroyed.
|
|
40102
|
+
if (appRef.destroyed) {
|
|
40103
|
+
return;
|
|
40104
|
+
}
|
|
40189
40105
|
cleanupDehydratedViews(appRef);
|
|
40190
40106
|
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
40191
|
-
countBlocksSkippedByHydration(injector);
|
|
40192
|
-
printHydrationStats(injector);
|
|
40107
|
+
countBlocksSkippedByHydration(appRef.injector);
|
|
40108
|
+
printHydrationStats(appRef.injector);
|
|
40193
40109
|
}
|
|
40194
40110
|
});
|
|
40195
40111
|
};
|
|
@@ -40591,123 +40507,28 @@ function computed(computation, options) {
|
|
|
40591
40507
|
}
|
|
40592
40508
|
|
|
40593
40509
|
const identityFn = (v) => v;
|
|
40594
|
-
/**
|
|
40595
|
-
* Create a linked signal which represents state that is (re)set from a linked reactive expression.
|
|
40596
|
-
*/
|
|
40597
|
-
function createLinkedSignal(node) {
|
|
40598
|
-
const linkedSignalGetter = () => {
|
|
40599
|
-
// Check if the value needs updating before returning it.
|
|
40600
|
-
producerUpdateValueVersion$1(node);
|
|
40601
|
-
// Record that someone looked at this signal.
|
|
40602
|
-
producerAccessed$1(node);
|
|
40603
|
-
if (node.value === ERRORED) {
|
|
40604
|
-
throw node.error;
|
|
40605
|
-
}
|
|
40606
|
-
return node.value;
|
|
40607
|
-
};
|
|
40608
|
-
const getter = linkedSignalGetter;
|
|
40609
|
-
getter[SIGNAL$1] = node;
|
|
40610
|
-
if (ngDevMode) {
|
|
40611
|
-
getter.toString = () => `[LinkedSignal: ${getter()}]`;
|
|
40612
|
-
}
|
|
40613
|
-
getter.set = (newValue) => {
|
|
40614
|
-
producerUpdateValueVersion$1(node);
|
|
40615
|
-
signalSetFn$1(node, newValue);
|
|
40616
|
-
producerMarkClean$1(node);
|
|
40617
|
-
};
|
|
40618
|
-
getter.update = (updateFn) => {
|
|
40619
|
-
producerUpdateValueVersion$1(node);
|
|
40620
|
-
signalUpdateFn$1(node, updateFn);
|
|
40621
|
-
producerMarkClean$1(node);
|
|
40622
|
-
};
|
|
40623
|
-
getter.asReadonly = signalAsReadonlyFn.bind(getter);
|
|
40624
|
-
return getter;
|
|
40625
|
-
}
|
|
40626
40510
|
function linkedSignal(optionsOrComputation, options) {
|
|
40627
40511
|
performanceMarkFeature('NgSignals');
|
|
40628
|
-
|
|
40629
|
-
|
|
40630
|
-
|
|
40631
|
-
if (!isShorthand) {
|
|
40632
|
-
node.computation = optionsOrComputation.computation;
|
|
40512
|
+
if (typeof optionsOrComputation === 'function') {
|
|
40513
|
+
const getter = createLinkedSignal$1(optionsOrComputation, (identityFn), options?.equal);
|
|
40514
|
+
return upgradeLinkedSignalGetter(getter);
|
|
40633
40515
|
}
|
|
40634
|
-
|
|
40635
|
-
|
|
40636
|
-
|
|
40516
|
+
else {
|
|
40517
|
+
const getter = createLinkedSignal$1(optionsOrComputation.source, optionsOrComputation.computation, optionsOrComputation.equal);
|
|
40518
|
+
return upgradeLinkedSignalGetter(getter);
|
|
40637
40519
|
}
|
|
40638
|
-
return createLinkedSignal(node);
|
|
40639
40520
|
}
|
|
40640
|
-
|
|
40641
|
-
|
|
40642
|
-
|
|
40643
|
-
|
|
40644
|
-
const
|
|
40645
|
-
|
|
40646
|
-
|
|
40647
|
-
|
|
40648
|
-
|
|
40649
|
-
|
|
40650
|
-
|
|
40651
|
-
/**
|
|
40652
|
-
* A dedicated symbol used in place of a linked signal value to indicate that a given computation
|
|
40653
|
-
* failed. The thrown error is cached until the computation gets dirty again or the state is set.
|
|
40654
|
-
* Explicitly typed as `any` so we can use it as signal's value.
|
|
40655
|
-
*/
|
|
40656
|
-
const ERRORED = /* @__PURE__ */ Symbol('ERRORED');
|
|
40657
|
-
// Note: Using an IIFE here to ensure that the spread assignment is not considered
|
|
40658
|
-
// a side-effect, ending up preserving `LINKED_SIGNAL_NODE` and `REACTIVE_NODE`.
|
|
40659
|
-
// TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.
|
|
40660
|
-
const LINKED_SIGNAL_NODE = /* @__PURE__ */ (() => {
|
|
40661
|
-
return {
|
|
40662
|
-
...REACTIVE_NODE$1,
|
|
40663
|
-
value: UNSET,
|
|
40664
|
-
dirty: true,
|
|
40665
|
-
error: null,
|
|
40666
|
-
equal: defaultEquals$1,
|
|
40667
|
-
computation: identityFn,
|
|
40668
|
-
producerMustRecompute(node) {
|
|
40669
|
-
// Force a recomputation if there's no current value, or if the current value is in the
|
|
40670
|
-
// process of being calculated (which should throw an error).
|
|
40671
|
-
return node.value === UNSET || node.value === COMPUTING;
|
|
40672
|
-
},
|
|
40673
|
-
producerRecomputeValue(node) {
|
|
40674
|
-
if (node.value === COMPUTING) {
|
|
40675
|
-
// Our computation somehow led to a cyclic read of itself.
|
|
40676
|
-
throw new Error('Detected cycle in computations.');
|
|
40677
|
-
}
|
|
40678
|
-
const oldValue = node.value;
|
|
40679
|
-
node.value = COMPUTING;
|
|
40680
|
-
const prevConsumer = consumerBeforeComputation$1(node);
|
|
40681
|
-
let newValue;
|
|
40682
|
-
try {
|
|
40683
|
-
const newSourceValue = node.source();
|
|
40684
|
-
const prev = oldValue === UNSET || oldValue === ERRORED
|
|
40685
|
-
? undefined
|
|
40686
|
-
: {
|
|
40687
|
-
source: node.sourceValue,
|
|
40688
|
-
value: oldValue,
|
|
40689
|
-
};
|
|
40690
|
-
newValue = node.computation(newSourceValue, prev);
|
|
40691
|
-
node.sourceValue = newSourceValue;
|
|
40692
|
-
}
|
|
40693
|
-
catch (err) {
|
|
40694
|
-
newValue = ERRORED;
|
|
40695
|
-
node.error = err;
|
|
40696
|
-
}
|
|
40697
|
-
finally {
|
|
40698
|
-
consumerAfterComputation$1(node, prevConsumer);
|
|
40699
|
-
}
|
|
40700
|
-
if (oldValue !== UNSET && newValue !== ERRORED && node.equal(oldValue, newValue)) {
|
|
40701
|
-
// No change to `valueVersion` - old and new values are
|
|
40702
|
-
// semantically equivalent.
|
|
40703
|
-
node.value = oldValue;
|
|
40704
|
-
return;
|
|
40705
|
-
}
|
|
40706
|
-
node.value = newValue;
|
|
40707
|
-
node.version++;
|
|
40708
|
-
},
|
|
40709
|
-
};
|
|
40710
|
-
})();
|
|
40521
|
+
function upgradeLinkedSignalGetter(getter) {
|
|
40522
|
+
if (ngDevMode) {
|
|
40523
|
+
getter.toString = () => `[LinkedSignal: ${getter()}]`;
|
|
40524
|
+
}
|
|
40525
|
+
const node = getter[SIGNAL$1];
|
|
40526
|
+
const upgradedGetter = getter;
|
|
40527
|
+
upgradedGetter.set = (newValue) => linkedSignalSetFn$1(node, newValue);
|
|
40528
|
+
upgradedGetter.update = (updateFn) => linkedSignalUpdateFn$1(node, updateFn);
|
|
40529
|
+
upgradedGetter.asReadonly = signalAsReadonlyFn.bind(getter);
|
|
40530
|
+
return upgradedGetter;
|
|
40531
|
+
}
|
|
40711
40532
|
|
|
40712
40533
|
/**
|
|
40713
40534
|
* Execute an arbitrary function in a non-reactive (non-tracking) context. The executed function
|
|
@@ -41742,5 +41563,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
41742
41563
|
* Generated bundle index. Do not edit.
|
|
41743
41564
|
*/
|
|
41744
41565
|
|
|
41745
|
-
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 };
|
|
41566
|
+
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, 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 };
|
|
41746
41567
|
//# sourceMappingURL=core.mjs.map
|