@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.
Files changed (36) hide show
  1. package/fesm2022/core.mjs +285 -464
  2. package/fesm2022/core.mjs.map +1 -1
  3. package/fesm2022/primitives/event-dispatch.mjs +2 -1
  4. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  5. package/fesm2022/primitives/signals.mjs +1 -1
  6. package/fesm2022/rxjs-interop.mjs +1 -1
  7. package/fesm2022/testing.mjs +4 -4
  8. package/index.d.ts +6 -21
  9. package/package.json +1 -1
  10. package/primitives/event-dispatch/index.d.ts +1 -1
  11. package/primitives/signals/index.d.ts +1 -1
  12. package/rxjs-interop/index.d.ts +1 -1
  13. package/schematics/bundles/{apply_import_manager-40cd5384.js → apply_import_manager-3ba5d1bb.js} +1 -1
  14. package/schematics/bundles/checker-ca858016.js +2 -2
  15. package/schematics/bundles/cleanup-unused-imports.js +3 -3
  16. package/schematics/bundles/{compiler_host-68e159d5.js → compiler_host-c26ed2d0.js} +1 -1
  17. package/schematics/bundles/control-flow-migration.js +2 -2
  18. package/schematics/bundles/explicit-standalone-flag.js +4 -4
  19. package/schematics/bundles/{imports-abe29092.js → imports-31a38653.js} +1 -1
  20. package/schematics/bundles/index-761b9f6f.js +2 -2
  21. package/schematics/bundles/{index-d05029f9.js → index-aa0e0065.js} +2 -2
  22. package/schematics/bundles/inject-migration.js +5 -5
  23. package/schematics/bundles/{leading_space-d190b83b.js → leading_space-6e7a8ec6.js} +1 -1
  24. package/schematics/bundles/{migrate_ts_type_references-8d015538.js → migrate_ts_type_references-c6d4443c.js} +4 -4
  25. package/schematics/bundles/{nodes-a9f0b985.js → nodes-88c2157f.js} +2 -2
  26. package/schematics/bundles/output-migration.js +4 -4
  27. package/schematics/bundles/pending-tasks.js +4 -4
  28. package/schematics/bundles/program-8e222816.js +10 -10
  29. package/schematics/bundles/{project_tsconfig_paths-e9ccccbf.js → project_tsconfig_paths-6c9cde78.js} +1 -1
  30. package/schematics/bundles/provide-initializer.js +4 -4
  31. package/schematics/bundles/route-lazy-loading.js +3 -3
  32. package/schematics/bundles/signal-input-migration.js +6 -6
  33. package/schematics/bundles/signal-queries-migration.js +6 -6
  34. package/schematics/bundles/signals.js +6 -6
  35. package/schematics/bundles/standalone-migration.js +5 -5
  36. package/testing/index.d.ts +1 -1
package/fesm2022/core.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v19.1.3
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, producerUpdateValueVersion as producerUpdateValueVersion$1, producerMarkClean as producerMarkClean$1, defaultEquals as defaultEquals$1, createWatch as createWatch$1, isInNotificationPhase as isInNotificationPhase$1 } from '@angular/core/primitives/signals';
7
+ import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, 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[FLAGS] & 512 /* LViewFlags.IsRoot */)) {
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
- const { directiveStart, componentOffset } = tNode;
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[FLAGS] & 512 /* LViewFlags.IsRoot */)) {
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[FLAGS] & 512 /* LViewFlags.IsRoot */ ? null : lView[CONTEXT];
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
- return { attrs, classes };
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 createDirectivesInstances(tView, lView, tNode) {
12411
+ function createDirectivesInstancesInInstruction(tView, lView, tNode) {
12409
12412
  if (!getBindingsEnabled())
12410
12413
  return;
12411
- instantiateAllDirectives(tView, lView, tNode, getNativeByTNode(tNode, lView));
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 matchResult = findDirectiveDefMatches(tView, tNode);
12796
- let directiveDefs;
12797
- let hostDirectiveDefs;
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, native) {
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
- addComponentLogic(lView, tNode, tView.data[start + tNode.componentOffset]);
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 || (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 (isComponentHost(tNode)) {
12995
+ if (matches.length && isComponentDef(matches[0])) {
12995
12996
  throwMultipleComponentError(tNode, matches.find(isComponentDef).type, def.type);
12996
12997
  }
12997
12998
  }
12998
- // Components are inserted at the front of the matches array so that their lifecycle
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
- ngDevMode && matches !== null && assertNoDuplicateDirectives(matches);
13037
- return matches === null ? null : [matches, hostDirectiveDefs];
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 addComponentLogic(lView, hostTNode, def) {
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
- const { componentOffset } = parentTNode;
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.flags & 32 /* TNodeFlags.isDetached */) !== 32 /* TNodeFlags.isDetached */) {
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.3']
17938
+ ? ['ng-version', '19.1.4']
17951
17939
  : // Extract attributes and classes from the first selector only to match VE behavior.
17952
- getRootTAttributesFromSelector(this.componentDef.selectors[0]);
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
- for (const def of rootDirectives) {
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: should LifecycleHooksFeature and other host features be generated by the compiler
17971
- // and executed here? Angular 5 reference: https://stackblitz.com/edit/lifecycle-hooks-vcref
17972
- component = createRootComponent(componentView, rootComponentDef, rootDirectives, hostDirectiveDefs, rootLView, [LifecycleHooksFeature]);
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
- const hostTNode = getTNode(rootTView, HEADER_OFFSET);
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
- constructor(componentType, instance, location, _rootLView, _tNode) {
18007
+ _tNode;
18008
+ constructor(componentType, _rootLView) {
18013
18009
  super();
18014
- this.location = location;
18015
18010
  this._rootLView = _rootLView;
18016
- this._tNode = _tNode;
18017
- this.instance = instance;
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
- createDirectivesInstances(declarationTView, declarationLView, tNode);
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
- createDirectivesInstances(tView, lView, tNode);
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
- createDirectivesInstances(tView, lView, tNode);
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.componentOffset > -1 ? getComponentLViewByIndex(tNode.index, lView) : lView;
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[FLAGS] & 512 /* LViewFlags.IsRoot */ && root[PARENT] === null) {
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.3');
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$1) {
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$1 = /* @__PURE__ */ Symbol('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$1 = /* @__PURE__ */ Symbol('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$1 = /* @__PURE__ */ Symbol('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$1,
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$1 || node.value === COMPUTING$1;
38697
+ return node.value === UNSET || node.value === COMPUTING;
38790
38698
  },
38791
38699
  producerRecomputeValue(node) {
38792
- if (node.value === COMPUTING$1) {
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$1;
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$1 &&
38808
- oldValue !== ERRORED$1 &&
38809
- newValue !== ERRORED$1 &&
38715
+ oldValue !== UNSET &&
38716
+ oldValue !== ERRORED &&
38717
+ newValue !== ERRORED &&
38810
38718
  node.equal(oldValue, newValue);
38811
38719
  }
38812
38720
  catch (err) {
38813
- newValue = ERRORED$1;
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$1(sourceFn, computationFn, equalityFn) {
38908
- const node = Object.create(LINKED_SIGNAL_NODE$1);
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$1) {
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$1 = /* @__PURE__ */ (() => {
38849
+ const LINKED_SIGNAL_NODE = /* @__PURE__ */ (() => {
38942
38850
  return {
38943
38851
  ...REACTIVE_NODE,
38944
- value: UNSET$1,
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$1 || node.value === COMPUTING$1;
38859
+ return node.value === UNSET || node.value === COMPUTING;
38952
38860
  },
38953
38861
  producerRecomputeValue(node) {
38954
- if (node.value === COMPUTING$1) {
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$1;
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$1 || oldValue === ERRORED$1
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$1;
38882
+ newValue = ERRORED;
38975
38883
  node.error = err;
38976
38884
  }
38977
38885
  finally {
38978
38886
  consumerAfterComputation(node, prevConsumer);
38979
38887
  }
38980
- if (oldValue !== UNSET$1 && newValue !== ERRORED$1 && node.equal(oldValue, newValue)) {
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, injector) {
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, injector).then(() => {
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
- const isShorthand = typeof optionsOrComputation === 'function';
40629
- const node = Object.create(LINKED_SIGNAL_NODE);
40630
- node.source = isShorthand ? optionsOrComputation : optionsOrComputation.source;
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
- const equal = isShorthand ? options?.equal : optionsOrComputation.equal;
40635
- if (equal) {
40636
- node.equal = equal;
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
- * A dedicated symbol used before a state value has been set / calculated for the first time.
40642
- * Explicitly typed as `any` so we can use it as signal's value.
40643
- */
40644
- const UNSET = /* @__PURE__ */ Symbol('UNSET');
40645
- /**
40646
- * A dedicated symbol used in place of a linked signal value to indicate that a given computation
40647
- * is in progress. Used to detect cycles in computation chains.
40648
- * Explicitly typed as `any` so we can use it as signal's value.
40649
- */
40650
- const COMPUTING = /* @__PURE__ */ Symbol('COMPUTING');
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