@angular/core 19.2.0-next.0 → 19.2.0-next.1

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 (37) hide show
  1. package/fesm2022/core.mjs +300 -486
  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 -7
  7. package/fesm2022/rxjs-interop.mjs.map +1 -1
  8. package/fesm2022/testing.mjs +4 -4
  9. package/index.d.ts +26 -21
  10. package/package.json +1 -1
  11. package/primitives/event-dispatch/index.d.ts +1 -1
  12. package/primitives/signals/index.d.ts +1 -1
  13. package/rxjs-interop/index.d.ts +12 -2
  14. package/schematics/bundles/{apply_import_manager-deecd687.js → apply_import_manager-5ea49df9.js} +1 -1
  15. package/schematics/bundles/checker-78667e44.js +2 -2
  16. package/schematics/bundles/cleanup-unused-imports.js +3 -3
  17. package/schematics/bundles/{compiler_host-38c8eab2.js → compiler_host-b22de7db.js} +1 -1
  18. package/schematics/bundles/control-flow-migration.js +2 -2
  19. package/schematics/bundles/explicit-standalone-flag.js +4 -4
  20. package/schematics/bundles/{imports-abe29092.js → imports-31a38653.js} +1 -1
  21. package/schematics/bundles/{index-6713e562.js → index-3e744c38.js} +2 -2
  22. package/schematics/bundles/index-de135c2f.js +2 -2
  23. package/schematics/bundles/inject-migration.js +5 -5
  24. package/schematics/bundles/{leading_space-d190b83b.js → leading_space-6e7a8ec6.js} +1 -1
  25. package/schematics/bundles/{migrate_ts_type_references-e6411f51.js → migrate_ts_type_references-60e2a469.js} +4 -4
  26. package/schematics/bundles/{nodes-a9f0b985.js → nodes-88c2157f.js} +2 -2
  27. package/schematics/bundles/output-migration.js +4 -4
  28. package/schematics/bundles/pending-tasks.js +4 -4
  29. package/schematics/bundles/program-b0d98952.js +10 -10
  30. package/schematics/bundles/{project_tsconfig_paths-e9ccccbf.js → project_tsconfig_paths-6c9cde78.js} +1 -1
  31. package/schematics/bundles/provide-initializer.js +4 -4
  32. package/schematics/bundles/route-lazy-loading.js +3 -3
  33. package/schematics/bundles/signal-input-migration.js +6 -6
  34. package/schematics/bundles/signal-queries-migration.js +6 -6
  35. package/schematics/bundles/signals.js +6 -6
  36. package/schematics/bundles/standalone-migration.js +5 -5
  37. package/testing/index.d.ts +1 -1
package/fesm2022/core.mjs CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v19.2.0-next.0
2
+ * @license Angular v19.2.0-next.1
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.
@@ -12087,12 +12087,131 @@ function extractAttrsAndClassesFromSelector(selector) {
12087
12087
  }
12088
12088
  i++;
12089
12089
  }
12090
- return { attrs, classes };
12090
+ if (classes.length) {
12091
+ attrs.push(1 /* AttributeMarker.Classes */, ...classes);
12092
+ }
12093
+ return attrs;
12091
12094
  }
12092
12095
 
12093
12096
  /** A special value which designates that a value has not changed. */
12094
12097
  const NO_CHANGE = typeof ngDevMode === 'undefined' || ngDevMode ? { __brand__: 'NO_CHANGE' } : {};
12095
12098
 
12099
+ function createTextNode(renderer, value) {
12100
+ ngDevMode && ngDevMode.rendererCreateTextNode++;
12101
+ ngDevMode && ngDevMode.rendererSetText++;
12102
+ return renderer.createText(value);
12103
+ }
12104
+ function updateTextNode(renderer, rNode, value) {
12105
+ ngDevMode && ngDevMode.rendererSetText++;
12106
+ renderer.setValue(rNode, value);
12107
+ }
12108
+ function createCommentNode(renderer, value) {
12109
+ ngDevMode && ngDevMode.rendererCreateComment++;
12110
+ return renderer.createComment(escapeCommentText(value));
12111
+ }
12112
+ /**
12113
+ * Creates a native element from a tag name, using a renderer.
12114
+ * @param renderer A renderer to use
12115
+ * @param name the tag name
12116
+ * @param namespace Optional namespace for element.
12117
+ * @returns the element created
12118
+ */
12119
+ function createElementNode(renderer, name, namespace) {
12120
+ ngDevMode && ngDevMode.rendererCreateElement++;
12121
+ return renderer.createElement(name, namespace);
12122
+ }
12123
+ /**
12124
+ * Inserts a native node before another native node for a given parent.
12125
+ * This is a utility function that can be used when native nodes were determined.
12126
+ */
12127
+ function nativeInsertBefore(renderer, parent, child, beforeNode, isMove) {
12128
+ ngDevMode && ngDevMode.rendererInsertBefore++;
12129
+ renderer.insertBefore(parent, child, beforeNode, isMove);
12130
+ }
12131
+ function nativeAppendChild(renderer, parent, child) {
12132
+ ngDevMode && ngDevMode.rendererAppendChild++;
12133
+ ngDevMode && assertDefined(parent, 'parent node must be defined');
12134
+ renderer.appendChild(parent, child);
12135
+ }
12136
+ function nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove) {
12137
+ if (beforeNode !== null) {
12138
+ nativeInsertBefore(renderer, parent, child, beforeNode, isMove);
12139
+ }
12140
+ else {
12141
+ nativeAppendChild(renderer, parent, child);
12142
+ }
12143
+ }
12144
+ /**
12145
+ * Removes a native node itself using a given renderer. To remove the node we are looking up its
12146
+ * parent from the native tree as not all platforms / browsers support the equivalent of
12147
+ * node.remove().
12148
+ *
12149
+ * @param renderer A renderer to be used
12150
+ * @param rNode The native node that should be removed
12151
+ * @param isHostElement A flag indicating if a node to be removed is a host of a component.
12152
+ */
12153
+ function nativeRemoveNode(renderer, rNode, isHostElement) {
12154
+ ngDevMode && ngDevMode.rendererRemoveNode++;
12155
+ renderer.removeChild(null, rNode, isHostElement);
12156
+ }
12157
+ /**
12158
+ * Clears the contents of a given RElement.
12159
+ *
12160
+ * @param rElement the native RElement to be cleared
12161
+ */
12162
+ function clearElementContents(rElement) {
12163
+ rElement.textContent = '';
12164
+ }
12165
+ /**
12166
+ * Write `cssText` to `RElement`.
12167
+ *
12168
+ * This function does direct write without any reconciliation. Used for writing initial values, so
12169
+ * that static styling values do not pull in the style parser.
12170
+ *
12171
+ * @param renderer Renderer to use
12172
+ * @param element The element which needs to be updated.
12173
+ * @param newValue The new class list to write.
12174
+ */
12175
+ function writeDirectStyle(renderer, element, newValue) {
12176
+ ngDevMode && assertString(newValue, "'newValue' should be a string");
12177
+ renderer.setAttribute(element, 'style', newValue);
12178
+ ngDevMode && ngDevMode.rendererSetStyle++;
12179
+ }
12180
+ /**
12181
+ * Write `className` to `RElement`.
12182
+ *
12183
+ * This function does direct write without any reconciliation. Used for writing initial values, so
12184
+ * that static styling values do not pull in the style parser.
12185
+ *
12186
+ * @param renderer Renderer to use
12187
+ * @param element The element which needs to be updated.
12188
+ * @param newValue The new class list to write.
12189
+ */
12190
+ function writeDirectClass(renderer, element, newValue) {
12191
+ ngDevMode && assertString(newValue, "'newValue' should be a string");
12192
+ if (newValue === '') {
12193
+ // There are tests in `google3` which expect `element.getAttribute('class')` to be `null`.
12194
+ renderer.removeAttribute(element, 'class');
12195
+ }
12196
+ else {
12197
+ renderer.setAttribute(element, 'class', newValue);
12198
+ }
12199
+ ngDevMode && ngDevMode.rendererSetClassName++;
12200
+ }
12201
+ /** Sets up the static DOM attributes on an `RNode`. */
12202
+ function setupStaticAttributes(renderer, element, tNode) {
12203
+ const { mergedAttrs, classes, styles } = tNode;
12204
+ if (mergedAttrs !== null) {
12205
+ setUpAttributes(renderer, element, mergedAttrs);
12206
+ }
12207
+ if (classes !== null) {
12208
+ writeDirectClass(renderer, element, classes);
12209
+ }
12210
+ if (styles !== null) {
12211
+ writeDirectStyle(renderer, element, styles);
12212
+ }
12213
+ }
12214
+
12096
12215
  /**
12097
12216
  * Advances to an element for later binding instructions.
12098
12217
  *
@@ -12212,122 +12331,6 @@ function writeToDirectiveInput(def, instance, publicName, privateName, flags, va
12212
12331
  }
12213
12332
  }
12214
12333
 
12215
- function createTextNode(renderer, value) {
12216
- ngDevMode && ngDevMode.rendererCreateTextNode++;
12217
- ngDevMode && ngDevMode.rendererSetText++;
12218
- return renderer.createText(value);
12219
- }
12220
- function updateTextNode(renderer, rNode, value) {
12221
- ngDevMode && ngDevMode.rendererSetText++;
12222
- renderer.setValue(rNode, value);
12223
- }
12224
- function createCommentNode(renderer, value) {
12225
- ngDevMode && ngDevMode.rendererCreateComment++;
12226
- return renderer.createComment(escapeCommentText(value));
12227
- }
12228
- /**
12229
- * Creates a native element from a tag name, using a renderer.
12230
- * @param renderer A renderer to use
12231
- * @param name the tag name
12232
- * @param namespace Optional namespace for element.
12233
- * @returns the element created
12234
- */
12235
- function createElementNode(renderer, name, namespace) {
12236
- ngDevMode && ngDevMode.rendererCreateElement++;
12237
- return renderer.createElement(name, namespace);
12238
- }
12239
- /**
12240
- * Inserts a native node before another native node for a given parent.
12241
- * This is a utility function that can be used when native nodes were determined.
12242
- */
12243
- function nativeInsertBefore(renderer, parent, child, beforeNode, isMove) {
12244
- ngDevMode && ngDevMode.rendererInsertBefore++;
12245
- renderer.insertBefore(parent, child, beforeNode, isMove);
12246
- }
12247
- function nativeAppendChild(renderer, parent, child) {
12248
- ngDevMode && ngDevMode.rendererAppendChild++;
12249
- ngDevMode && assertDefined(parent, 'parent node must be defined');
12250
- renderer.appendChild(parent, child);
12251
- }
12252
- function nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove) {
12253
- if (beforeNode !== null) {
12254
- nativeInsertBefore(renderer, parent, child, beforeNode, isMove);
12255
- }
12256
- else {
12257
- nativeAppendChild(renderer, parent, child);
12258
- }
12259
- }
12260
- /**
12261
- * Removes a native node itself using a given renderer. To remove the node we are looking up its
12262
- * parent from the native tree as not all platforms / browsers support the equivalent of
12263
- * node.remove().
12264
- *
12265
- * @param renderer A renderer to be used
12266
- * @param rNode The native node that should be removed
12267
- * @param isHostElement A flag indicating if a node to be removed is a host of a component.
12268
- */
12269
- function nativeRemoveNode(renderer, rNode, isHostElement) {
12270
- ngDevMode && ngDevMode.rendererRemoveNode++;
12271
- renderer.removeChild(null, rNode, isHostElement);
12272
- }
12273
- /**
12274
- * Clears the contents of a given RElement.
12275
- *
12276
- * @param rElement the native RElement to be cleared
12277
- */
12278
- function clearElementContents(rElement) {
12279
- rElement.textContent = '';
12280
- }
12281
- /**
12282
- * Write `cssText` to `RElement`.
12283
- *
12284
- * This function does direct write without any reconciliation. Used for writing initial values, so
12285
- * that static styling values do not pull in the style parser.
12286
- *
12287
- * @param renderer Renderer to use
12288
- * @param element The element which needs to be updated.
12289
- * @param newValue The new class list to write.
12290
- */
12291
- function writeDirectStyle(renderer, element, newValue) {
12292
- ngDevMode && assertString(newValue, "'newValue' should be a string");
12293
- renderer.setAttribute(element, 'style', newValue);
12294
- ngDevMode && ngDevMode.rendererSetStyle++;
12295
- }
12296
- /**
12297
- * Write `className` to `RElement`.
12298
- *
12299
- * This function does direct write without any reconciliation. Used for writing initial values, so
12300
- * that static styling values do not pull in the style parser.
12301
- *
12302
- * @param renderer Renderer to use
12303
- * @param element The element which needs to be updated.
12304
- * @param newValue The new class list to write.
12305
- */
12306
- function writeDirectClass(renderer, element, newValue) {
12307
- ngDevMode && assertString(newValue, "'newValue' should be a string");
12308
- if (newValue === '') {
12309
- // There are tests in `google3` which expect `element.getAttribute('class')` to be `null`.
12310
- renderer.removeAttribute(element, 'class');
12311
- }
12312
- else {
12313
- renderer.setAttribute(element, 'class', newValue);
12314
- }
12315
- ngDevMode && ngDevMode.rendererSetClassName++;
12316
- }
12317
- /** Sets up the static DOM attributes on an `RNode`. */
12318
- function setupStaticAttributes(renderer, element, tNode) {
12319
- const { mergedAttrs, classes, styles } = tNode;
12320
- if (mergedAttrs !== null) {
12321
- setUpAttributes(renderer, element, mergedAttrs);
12322
- }
12323
- if (classes !== null) {
12324
- writeDirectClass(renderer, element, classes);
12325
- }
12326
- if (styles !== null) {
12327
- writeDirectStyle(renderer, element, styles);
12328
- }
12329
- }
12330
-
12331
12334
  function createLView(parentLView, tView, context, flags, host, tHostNode, environment, renderer, injector, embeddedViewInjector, hydrationInfo) {
12332
12335
  const lView = tView.blueprint.slice();
12333
12336
  lView[HOST] = host;
@@ -12416,10 +12419,17 @@ function executeTemplate(tView, lView, templateFn, rf, context) {
12416
12419
  /**
12417
12420
  * Creates directive instances.
12418
12421
  */
12419
- function createDirectivesInstances(tView, lView, tNode) {
12422
+ function createDirectivesInstancesInInstruction(tView, lView, tNode) {
12420
12423
  if (!getBindingsEnabled())
12421
12424
  return;
12422
- instantiateAllDirectives(tView, lView, tNode, getNativeByTNode(tNode, lView));
12425
+ attachPatchData(getNativeByTNode(tNode, lView), lView);
12426
+ createDirectivesInstances(tView, lView, tNode);
12427
+ }
12428
+ /**
12429
+ * Creates directive instances.
12430
+ */
12431
+ function createDirectivesInstances(tView, lView, tNode) {
12432
+ instantiateAllDirectives(tView, lView, tNode);
12423
12433
  if ((tNode.flags & 64 /* TNodeFlags.hasHostBindings */) === 64 /* TNodeFlags.hasHostBindings */) {
12424
12434
  invokeDirectivesHostBindings(tView, lView, tNode);
12425
12435
  }
@@ -12803,16 +12813,9 @@ function resolveDirectives(tView, lView, tNode, localRefs) {
12803
12813
  ngDevMode && assertFirstCreatePass(tView);
12804
12814
  if (getBindingsEnabled()) {
12805
12815
  const exportsMap = localRefs === null ? null : { '': -1 };
12806
- const matchResult = findDirectiveDefMatches(tView, tNode);
12807
- let directiveDefs;
12808
- let hostDirectiveDefs;
12809
- if (matchResult === null) {
12810
- directiveDefs = hostDirectiveDefs = null;
12811
- }
12812
- else {
12813
- [directiveDefs, hostDirectiveDefs] = matchResult;
12814
- }
12815
- if (directiveDefs !== null) {
12816
+ const matchedDirectiveDefs = findDirectiveDefMatches(tView, tNode);
12817
+ if (matchedDirectiveDefs !== null) {
12818
+ const [directiveDefs, hostDirectiveDefs] = resolveHostDirectives(tView, tNode, matchedDirectiveDefs);
12816
12819
  initializeDirectives(tView, lView, tNode, directiveDefs, exportsMap, hostDirectiveDefs);
12817
12820
  }
12818
12821
  if (exportsMap)
@@ -12924,19 +12927,18 @@ function lastSelectedElementIdx(hostBindingOpCodes) {
12924
12927
  /**
12925
12928
  * Instantiate all the directives that were previously resolved on the current node.
12926
12929
  */
12927
- function instantiateAllDirectives(tView, lView, tNode, native) {
12930
+ function instantiateAllDirectives(tView, lView, tNode) {
12928
12931
  const start = tNode.directiveStart;
12929
12932
  const end = tNode.directiveEnd;
12930
12933
  // The component view needs to be created before creating the node injector
12931
12934
  // since it is used to inject some special symbols like `ChangeDetectorRef`.
12932
12935
  if (isComponentHost(tNode)) {
12933
12936
  ngDevMode && assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */);
12934
- addComponentLogic(lView, tNode, tView.data[start + tNode.componentOffset]);
12937
+ createComponentLView(lView, tNode, tView.data[start + tNode.componentOffset]);
12935
12938
  }
12936
12939
  if (!tView.firstCreatePass) {
12937
12940
  getOrCreateNodeInjectorForNode(tNode, lView);
12938
12941
  }
12939
- attachPatchData(native, lView);
12940
12942
  const initialInputs = tNode.initialInputs;
12941
12943
  for (let i = start; i < end; i++) {
12942
12944
  const def = tView.data[i];
@@ -12992,60 +12994,63 @@ function findDirectiveDefMatches(tView, tNode) {
12992
12994
  ngDevMode && assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */ | 12 /* TNodeType.AnyContainer */);
12993
12995
  const registry = tView.directiveRegistry;
12994
12996
  let matches = null;
12995
- let hostDirectiveDefs = null;
12996
12997
  if (registry) {
12997
12998
  for (let i = 0; i < registry.length; i++) {
12998
12999
  const def = registry[i];
12999
13000
  if (isNodeMatchingSelectorList(tNode, def.selectors, /* isProjectionMode */ false)) {
13000
- matches || (matches = []);
13001
+ matches ??= [];
13001
13002
  if (isComponentDef(def)) {
13002
13003
  if (ngDevMode) {
13003
13004
  assertTNodeType(tNode, 2 /* TNodeType.Element */, `"${tNode.value}" tags cannot be used as component hosts. ` +
13004
13005
  `Please use a different tag to activate the ${stringify(def.type)} component.`);
13005
- if (isComponentHost(tNode)) {
13006
+ if (matches.length && isComponentDef(matches[0])) {
13006
13007
  throwMultipleComponentError(tNode, matches.find(isComponentDef).type, def.type);
13007
13008
  }
13008
13009
  }
13009
- // Components are inserted at the front of the matches array so that their lifecycle
13010
- // hooks run before any directive lifecycle hooks. This appears to be for ViewEngine
13011
- // compatibility. This logic doesn't make sense with host directives, because it
13012
- // would allow the host directives to undo any overrides the host may have made.
13013
- // To handle this case, the host directives of components are inserted at the beginning
13014
- // of the array, followed by the component. As such, the insertion order is as follows:
13015
- // 1. Host directives belonging to the selector-matched component.
13016
- // 2. Selector-matched component.
13017
- // 3. Host directives belonging to selector-matched directives.
13018
- // 4. Selector-matched directives.
13019
- if (def.findHostDirectiveDefs !== null) {
13020
- const hostDirectiveMatches = [];
13021
- hostDirectiveDefs = hostDirectiveDefs || new Map();
13022
- def.findHostDirectiveDefs(def, hostDirectiveMatches, hostDirectiveDefs);
13023
- // Add all host directives declared on this component, followed by the component itself.
13024
- // Host directives should execute first so the host has a chance to override changes
13025
- // to the DOM made by them.
13026
- matches.unshift(...hostDirectiveMatches, def);
13027
- // Component is offset starting from the beginning of the host directives array.
13028
- const componentOffset = hostDirectiveMatches.length;
13029
- markAsComponentHost(tView, tNode, componentOffset);
13030
- }
13031
- else {
13032
- // No host directives on this component, just add the
13033
- // component def to the beginning of the matches.
13034
- matches.unshift(def);
13035
- markAsComponentHost(tView, tNode, 0);
13036
- }
13010
+ matches.unshift(def);
13037
13011
  }
13038
13012
  else {
13039
- // Append any host directives to the matches first.
13040
- hostDirectiveDefs = hostDirectiveDefs || new Map();
13041
- def.findHostDirectiveDefs?.(def, matches, hostDirectiveDefs);
13042
13013
  matches.push(def);
13043
13014
  }
13044
13015
  }
13045
13016
  }
13046
13017
  }
13047
- ngDevMode && matches !== null && assertNoDuplicateDirectives(matches);
13048
- return matches === null ? null : [matches, hostDirectiveDefs];
13018
+ return matches;
13019
+ }
13020
+ function resolveHostDirectives(tView, tNode, matches) {
13021
+ const allDirectiveDefs = [];
13022
+ let hostDirectiveDefs = null;
13023
+ for (const def of matches) {
13024
+ if (def.findHostDirectiveDefs !== null) {
13025
+ // TODO(pk): probably could return matches instead of taking in an array to fill in?
13026
+ hostDirectiveDefs ??= new Map();
13027
+ // Components are inserted at the front of the matches array so that their lifecycle
13028
+ // hooks run before any directive lifecycle hooks. This appears to be for ViewEngine
13029
+ // compatibility. This logic doesn't make sense with host directives, because it
13030
+ // would allow the host directives to undo any overrides the host may have made.
13031
+ // To handle this case, the host directives of components are inserted at the beginning
13032
+ // of the array, followed by the component. As such, the insertion order is as follows:
13033
+ // 1. Host directives belonging to the selector-matched component.
13034
+ // 2. Selector-matched component.
13035
+ // 3. Host directives belonging to selector-matched directives.
13036
+ // 4. Selector-matched directives.
13037
+ def.findHostDirectiveDefs(def, allDirectiveDefs, hostDirectiveDefs);
13038
+ }
13039
+ if (isComponentDef(def)) {
13040
+ allDirectiveDefs.push(def);
13041
+ markAsComponentHost(tView, tNode, allDirectiveDefs.length - 1);
13042
+ }
13043
+ }
13044
+ if (isComponentHost(tNode)) {
13045
+ allDirectiveDefs.push(...matches.slice(1));
13046
+ }
13047
+ else {
13048
+ allDirectiveDefs.push(...matches);
13049
+ }
13050
+ if (ngDevMode) {
13051
+ assertNoDuplicateDirectives(allDirectiveDefs);
13052
+ }
13053
+ return [allDirectiveDefs, hostDirectiveDefs];
13049
13054
  }
13050
13055
  /**
13051
13056
  * Marks a given TNode as a component's host. This consists of:
@@ -13141,7 +13146,7 @@ function getInitialLViewFlagsFromDef(def) {
13141
13146
  }
13142
13147
  return flags;
13143
13148
  }
13144
- function addComponentLogic(lView, hostTNode, def) {
13149
+ function createComponentLView(lView, hostTNode, def) {
13145
13150
  const native = getNativeByTNode(hostTNode, lView);
13146
13151
  const tView = getOrCreateComponentTView(def);
13147
13152
  // Only component views should be added to the view tree directly. Embedded views are
@@ -13150,7 +13155,7 @@ function addComponentLogic(lView, hostTNode, def) {
13150
13155
  const componentView = addToEndOfViewTree(lView, createLView(lView, tView, null, getInitialLViewFlagsFromDef(def), native, hostTNode, null, rendererFactory.createRenderer(native, def), null, null, null));
13151
13156
  // Component view will always be created before any injected LContainers,
13152
13157
  // so this is a regular element, wrap it with the component view
13153
- lView[hostTNode.index] = componentView;
13158
+ return (lView[hostTNode.index] = componentView);
13154
13159
  }
13155
13160
  function elementAttributeInternal(tNode, lView, name, value, sanitizer, namespace) {
13156
13161
  if (ngDevMode) {
@@ -13548,6 +13553,15 @@ function ensureIcuContainerVisitorLoaded(loader) {
13548
13553
  }
13549
13554
  }
13550
13555
 
13556
+ /**
13557
+ * Checks whether a TNode is considered detached, i.e. not present in the
13558
+ * translated i18n template. We should not attempt hydration for such nodes
13559
+ * and instead, use a regular "creation mode".
13560
+ */
13561
+ function isDetachedByI18n(tNode) {
13562
+ return (tNode.flags & 32 /* TNodeFlags.isDetached */) === 32 /* TNodeFlags.isDetached */;
13563
+ }
13564
+
13551
13565
  /**
13552
13566
  * NOTE: for performance reasons, the possible actions are inlined within the function instead of
13553
13567
  * being passed as an argument.
@@ -14024,10 +14038,9 @@ function getClosestRElement(tView, tNode, lView) {
14024
14038
  }
14025
14039
  else {
14026
14040
  ngDevMode && assertTNodeType(parentTNode, 3 /* TNodeType.AnyRNode */ | 4 /* TNodeType.Container */);
14027
- const { componentOffset } = parentTNode;
14028
- if (componentOffset > -1) {
14041
+ if (isComponentHost(parentTNode)) {
14029
14042
  ngDevMode && assertTNodeForLView(parentTNode, lView);
14030
- const { encapsulation } = tView.data[parentTNode.directiveStart + componentOffset];
14043
+ const { encapsulation } = tView.data[parentTNode.directiveStart + parentTNode.componentOffset];
14031
14044
  // We've got a parent which is an element in the current view. We just need to verify if the
14032
14045
  // parent element is not a component. Component's content nodes are not inserted immediately
14033
14046
  // because they will be projected, and so doing insert at this point would be wasteful.
@@ -14218,7 +14231,7 @@ function applyNodes(renderer, action, tNode, lView, parentRElement, beforeNode,
14218
14231
  tNode.flags |= 2 /* TNodeFlags.isProjected */;
14219
14232
  }
14220
14233
  }
14221
- if ((tNode.flags & 32 /* TNodeFlags.isDetached */) !== 32 /* TNodeFlags.isDetached */) {
14234
+ if (!isDetachedByI18n(tNode)) {
14222
14235
  if (tNodeType & 8 /* TNodeType.ElementContainer */) {
14223
14236
  applyNodes(renderer, action, tNode.child, lView, parentRElement, beforeNode, false);
14224
14237
  applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode);
@@ -17828,15 +17841,6 @@ function getNamespace(elementName) {
17828
17841
  const name = elementName.toLowerCase();
17829
17842
  return name === 'svg' ? SVG_NAMESPACE : name === 'math' ? MATH_ML_NAMESPACE : null;
17830
17843
  }
17831
- // TODO(pk): change the extractAttrsAndClassesFromSelector so it returns TAttributes already?
17832
- function getRootTAttributesFromSelector(selector) {
17833
- const { attrs, classes } = extractAttrsAndClassesFromSelector(selector);
17834
- const tAtts = attrs;
17835
- if (classes.length) {
17836
- tAtts.push(1 /* AttributeMarker.Classes */, ...classes);
17837
- }
17838
- return tAtts;
17839
- }
17840
17844
  /**
17841
17845
  * ComponentFactory interface implementation.
17842
17846
  */
@@ -17873,9 +17877,7 @@ class ComponentFactory extends ComponentFactory$1 {
17873
17877
  this.ngModule = ngModule;
17874
17878
  this.componentType = componentDef.type;
17875
17879
  this.selector = stringifyCSSSelectorList(componentDef.selectors);
17876
- this.ngContentSelectors = componentDef.ngContentSelectors
17877
- ? componentDef.ngContentSelectors
17878
- : [];
17880
+ this.ngContentSelectors = componentDef.ngContentSelectors ?? [];
17879
17881
  this.isBoundToModule = !!ngModule;
17880
17882
  }
17881
17883
  create(injector, projectableNodes, rootSelectorOrNode, environmentInjector) {
@@ -17945,30 +17947,20 @@ class ComponentFactory extends ComponentFactory$1 {
17945
17947
  // `createRootComponentView` and `createRootComponent` both read global state. Fixing those
17946
17948
  // issues would allow us to drop this.
17947
17949
  enterView(rootLView);
17948
- let component;
17949
17950
  let componentView = null;
17950
17951
  try {
17951
- const rootComponentDef = this.componentDef;
17952
- let rootDirectives;
17953
- let hostDirectiveDefs = null;
17954
- if (rootComponentDef.findHostDirectiveDefs) {
17955
- rootDirectives = [];
17956
- hostDirectiveDefs = new Map();
17957
- rootComponentDef.findHostDirectiveDefs(rootComponentDef, rootDirectives, hostDirectiveDefs);
17958
- rootDirectives.push(rootComponentDef);
17959
- ngDevMode && assertNoDuplicateDirectives(rootDirectives);
17960
- }
17961
- else {
17962
- rootDirectives = [rootComponentDef];
17963
- }
17964
17952
  // 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.
17965
17953
  const tAttributes = rootSelectorOrNode
17966
- ? ['ng-version', '19.2.0-next.0']
17954
+ ? ['ng-version', '19.2.0-next.1']
17967
17955
  : // Extract attributes and classes from the first selector only to match VE behavior.
17968
- getRootTAttributesFromSelector(this.componentDef.selectors[0]);
17956
+ extractAttrsAndClassesFromSelector(this.componentDef.selectors[0]);
17969
17957
  // TODO: this logic is shared with the element instruction first create pass
17970
17958
  const hostTNode = getOrCreateTNode(rootTView, HEADER_OFFSET, 2 /* TNodeType.Element */, '#host', tAttributes);
17971
- for (const def of rootDirectives) {
17959
+ const [directiveDefs, hostDirectiveDefs] = resolveHostDirectives(rootTView, hostTNode, [
17960
+ this.componentDef,
17961
+ ]);
17962
+ initializeDirectives(rootTView, rootLView, hostTNode, directiveDefs, {}, hostDirectiveDefs);
17963
+ for (const def of directiveDefs) {
17972
17964
  hostTNode.mergedAttrs = mergeHostAttrs(hostTNode.mergedAttrs, def.hostAttrs);
17973
17965
  }
17974
17966
  hostTNode.mergedAttrs = mergeHostAttrs(hostTNode.mergedAttrs, tAttributes);
@@ -17978,14 +17970,19 @@ class ComponentFactory extends ComponentFactory$1 {
17978
17970
  // tests so that this check can be removed.
17979
17971
  if (hostRNode) {
17980
17972
  setupStaticAttributes(hostRenderer, hostRNode, hostTNode);
17973
+ attachPatchData(hostRNode, rootLView);
17981
17974
  }
17982
- componentView = createRootComponentView(hostTNode, hostRNode, rootComponentDef, rootDirectives, rootLView, environment);
17983
17975
  if (projectableNodes !== undefined) {
17984
17976
  projectNodes(hostTNode, this.ngContentSelectors, projectableNodes);
17985
17977
  }
17986
- // TODO: should LifecycleHooksFeature and other host features be generated by the compiler
17987
- // and executed here? Angular 5 reference: https://stackblitz.com/edit/lifecycle-hooks-vcref
17988
- component = createRootComponent(componentView, rootComponentDef, rootDirectives, hostDirectiveDefs, rootLView, [LifecycleHooksFeature]);
17978
+ // TODO(pk): this logic is similar to the instruction code where a node can have directives
17979
+ createDirectivesInstances(rootTView, rootLView, hostTNode);
17980
+ executeContentQueries(rootTView, hostTNode, rootLView);
17981
+ // TODO(pk): code / logic duplication with the elementEnd and similar instructions
17982
+ registerPostOrderHooks(rootTView, hostTNode);
17983
+ componentView = getComponentLViewByIndex(hostTNode.index, rootLView);
17984
+ // TODO(pk): why do we need this logic?
17985
+ rootLView[CONTEXT] = componentView[CONTEXT];
17989
17986
  renderView(rootTView, rootLView, null);
17990
17987
  }
17991
17988
  catch (e) {
@@ -18001,8 +17998,7 @@ class ComponentFactory extends ComponentFactory$1 {
18001
17998
  profiler(23 /* ProfilerEvent.DynamicComponentEnd */);
18002
17999
  leaveView();
18003
18000
  }
18004
- const hostTNode = getTNode(rootTView, HEADER_OFFSET);
18005
- return new ComponentRef(this.componentType, component, createElementRef(hostTNode, rootLView), rootLView, hostTNode);
18001
+ return new ComponentRef(this.componentType, rootLView);
18006
18002
  }
18007
18003
  finally {
18008
18004
  setActiveConsumer$1(prevConsumer);
@@ -18018,20 +18014,20 @@ class ComponentFactory extends ComponentFactory$1 {
18018
18014
  *
18019
18015
  */
18020
18016
  class ComponentRef extends ComponentRef$1 {
18021
- location;
18022
18017
  _rootLView;
18023
- _tNode;
18024
18018
  instance;
18025
18019
  hostView;
18026
18020
  changeDetectorRef;
18027
18021
  componentType;
18022
+ location;
18028
18023
  previousInputValues = null;
18029
- constructor(componentType, instance, location, _rootLView, _tNode) {
18024
+ _tNode;
18025
+ constructor(componentType, _rootLView) {
18030
18026
  super();
18031
- this.location = location;
18032
18027
  this._rootLView = _rootLView;
18033
- this._tNode = _tNode;
18034
- this.instance = instance;
18028
+ this._tNode = getTNode(_rootLView[TVIEW], HEADER_OFFSET);
18029
+ this.location = createElementRef(this._tNode, _rootLView);
18030
+ this.instance = getComponentLViewByIndex(this._tNode.index, _rootLView)[CONTEXT];
18035
18031
  this.hostView = this.changeDetectorRef = new ViewRef$1(_rootLView, undefined /* _cdRefInjectingView */, false /* notifyErrorHandler */);
18036
18032
  this.componentType = componentType;
18037
18033
  }
@@ -18071,70 +18067,6 @@ class ComponentRef extends ComponentRef$1 {
18071
18067
  this.hostView.onDestroy(callback);
18072
18068
  }
18073
18069
  }
18074
- /**
18075
- * Creates the root component view and the root component node.
18076
- *
18077
- * @param hostRNode Render host element.
18078
- * @param rootComponentDef ComponentDef
18079
- * @param rootView The parent view where the host node is stored
18080
- * @param rendererFactory Factory to be used for creating child renderers.
18081
- * @param hostRenderer The current renderer
18082
- * @param sanitizer The sanitizer, if provided
18083
- *
18084
- * @returns Component view created
18085
- */
18086
- function createRootComponentView(tNode, hostRNode, rootComponentDef, rootDirectives, rootView, environment) {
18087
- const tView = rootView[TVIEW];
18088
- // Hydration info is on the host element and needs to be retrieved
18089
- // and passed to the component LView.
18090
- let hydrationInfo = null;
18091
- if (hostRNode !== null) {
18092
- hydrationInfo = retrieveHydrationInfo(hostRNode, rootView[INJECTOR]);
18093
- }
18094
- const viewRenderer = environment.rendererFactory.createRenderer(hostRNode, rootComponentDef);
18095
- const componentView = createLView(rootView, getOrCreateComponentTView(rootComponentDef), null, getInitialLViewFlagsFromDef(rootComponentDef), rootView[tNode.index], tNode, environment, viewRenderer, null, null, hydrationInfo);
18096
- if (tView.firstCreatePass) {
18097
- markAsComponentHost(tView, tNode, rootDirectives.length - 1);
18098
- }
18099
- addToEndOfViewTree(rootView, componentView);
18100
- // Store component view at node index, with node as the HOST
18101
- return (rootView[tNode.index] = componentView);
18102
- }
18103
- /**
18104
- * Creates a root component and sets it up with features and host bindings.Shared by
18105
- * renderComponent() and ViewContainerRef.createComponent().
18106
- */
18107
- function createRootComponent(componentView, rootComponentDef, rootDirectives, hostDirectiveDefs, rootLView, hostFeatures) {
18108
- const rootTNode = getCurrentTNode();
18109
- ngDevMode && assertDefined(rootTNode, 'tNode should have been already created');
18110
- const tView = rootLView[TVIEW];
18111
- const native = getNativeByTNode(rootTNode, rootLView);
18112
- initializeDirectives(tView, rootLView, rootTNode, rootDirectives, null, hostDirectiveDefs);
18113
- for (let i = 0; i < rootDirectives.length; i++) {
18114
- const directiveIndex = rootTNode.directiveStart + i;
18115
- const directiveInstance = getNodeInjectable(rootLView, tView, directiveIndex, rootTNode);
18116
- attachPatchData(directiveInstance, rootLView);
18117
- }
18118
- invokeDirectivesHostBindings(tView, rootLView, rootTNode);
18119
- if (native) {
18120
- attachPatchData(native, rootLView);
18121
- }
18122
- // We're guaranteed for the `componentOffset` to be positive here
18123
- // since a root component always matches a component def.
18124
- ngDevMode &&
18125
- assertGreaterThan(rootTNode.componentOffset, -1, 'componentOffset must be great than -1');
18126
- const component = getNodeInjectable(rootLView, tView, rootTNode.directiveStart + rootTNode.componentOffset, rootTNode);
18127
- componentView[CONTEXT] = rootLView[CONTEXT] = component;
18128
- if (hostFeatures !== null) {
18129
- for (const feature of hostFeatures) {
18130
- feature(component, rootComponentDef);
18131
- }
18132
- }
18133
- // We want to generate an empty QueryList for root content queries for backwards
18134
- // compatibility with ViewEngine.
18135
- executeContentQueries(tView, rootTNode, rootLView);
18136
- return component;
18137
- }
18138
18070
  /** Projects the `projectableNodes` that were specified when creating a root component. */
18139
18071
  function projectNodes(tNode, ngContentSelectors, projectableNodes) {
18140
18072
  const projection = (tNode.projection = []);
@@ -18148,24 +18080,6 @@ function projectNodes(tNode, ngContentSelectors, projectableNodes) {
18148
18080
  projection.push(nodesforSlot != null && nodesforSlot.length ? Array.from(nodesforSlot) : null);
18149
18081
  }
18150
18082
  }
18151
- /**
18152
- * Used to enable lifecycle hooks on the root component.
18153
- *
18154
- * Include this feature when calling `renderComponent` if the root component
18155
- * you are rendering has lifecycle hooks defined. Otherwise, the hooks won't
18156
- * be called properly.
18157
- *
18158
- * Example:
18159
- *
18160
- * ```ts
18161
- * renderComponent(AppComponent, {hostFeatures: [LifecycleHooksFeature]});
18162
- * ```
18163
- */
18164
- function LifecycleHooksFeature() {
18165
- const tNode = getCurrentTNode();
18166
- ngDevMode && assertDefined(tNode, 'TNode is required');
18167
- registerPostOrderHooks(getLView()[TVIEW], tNode);
18168
- }
18169
18083
 
18170
18084
  /**
18171
18085
  * Represents a container where one or more views can be attached to a component.
@@ -20675,15 +20589,6 @@ function bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4) {
20675
20589
  return bindingUpdated2(lView, bindingIndex + 2, exp3, exp4) || different;
20676
20590
  }
20677
20591
 
20678
- /**
20679
- * Checks whether a TNode is considered detached, i.e. not present in the
20680
- * translated i18n template. We should not attempt hydration for such nodes
20681
- * and instead, use a regular "creation mode".
20682
- */
20683
- function isDetachedByI18n(tNode) {
20684
- return (tNode.flags & 32 /* TNodeFlags.isDetached */) === 32 /* TNodeFlags.isDetached */;
20685
- }
20686
-
20687
20592
  function templateFirstCreatePass(index, tView, lView, templateFn, decls, vars, tagName, attrs, localRefsIndex) {
20688
20593
  ngDevMode && assertFirstCreatePass(tView);
20689
20594
  ngDevMode && ngDevMode.firstCreatePass++;
@@ -20733,7 +20638,7 @@ function declareTemplate(declarationLView, declarationTView, index, templateFn,
20733
20638
  // In client-only mode, this function is a noop.
20734
20639
  populateDehydratedViewsInLContainer(lContainer, tNode, declarationLView);
20735
20640
  if (isDirectiveHost(tNode)) {
20736
- createDirectivesInstances(declarationTView, declarationLView, tNode);
20641
+ createDirectivesInstancesInInstruction(declarationTView, declarationLView, tNode);
20737
20642
  }
20738
20643
  if (localRefsIndex != null) {
20739
20644
  saveResolvedLocalsInData(declarationLView, tNode, localRefExtractor);
@@ -28139,7 +28044,7 @@ function ɵɵelementStart(index, name, attrsIndex, localRefsIndex) {
28139
28044
  }
28140
28045
  increaseElementDepthCount();
28141
28046
  if (hasDirectives) {
28142
- createDirectivesInstances(tView, lView, tNode);
28047
+ createDirectivesInstancesInInstruction(tView, lView, tNode);
28143
28048
  executeContentQueries(tView, tNode, lView);
28144
28049
  }
28145
28050
  if (localRefsIndex !== null) {
@@ -28310,7 +28215,7 @@ function ɵɵelementContainerStart(index, attrsIndex, localRefsIndex) {
28310
28215
  }
28311
28216
  attachPatchData(comment, lView);
28312
28217
  if (isDirectiveHost(tNode)) {
28313
- createDirectivesInstances(tView, lView, tNode);
28218
+ createDirectivesInstancesInInstruction(tView, lView, tNode);
28314
28219
  executeContentQueries(tView, tNode, lView);
28315
28220
  }
28316
28221
  if (localRefsIndex != null) {
@@ -30490,7 +30395,7 @@ function wrapListener(tNode, lView, context, listenerFn) {
30490
30395
  }
30491
30396
  // In order to be backwards compatible with View Engine, events on component host nodes
30492
30397
  // must also mark the component view itself dirty (i.e. the view that it owns).
30493
- const startView = tNode.componentOffset > -1 ? getComponentLViewByIndex(tNode.index, lView) : lView;
30398
+ const startView = isComponentHost(tNode) ? getComponentLViewByIndex(tNode.index, lView) : lView;
30494
30399
  markViewDirty(startView, 5 /* NotificationSource.Listener */);
30495
30400
  let result = executeListenerWithErrorHandling(lView, context, listenerFn, e);
30496
30401
  // A just-invoked listener function might have coalesced listeners so we need to check for
@@ -30654,8 +30559,7 @@ function ɵɵprojection(nodeIndex, selectorIndex = 0, attrs, fallbackTemplateFn,
30654
30559
  if (isEmpty && fallbackIndex !== null) {
30655
30560
  insertFallbackContent(lView, tView, fallbackIndex);
30656
30561
  }
30657
- else if (isNodeCreationMode &&
30658
- (tProjectionNode.flags & 32 /* TNodeFlags.isDetached */) !== 32 /* TNodeFlags.isDetached */) {
30562
+ else if (isNodeCreationMode && !isDetachedByI18n(tProjectionNode)) {
30659
30563
  // re-distribution of projectable nodes is stored on a component's view level
30660
30564
  applyProjection(tView, lView, tProjectionNode);
30661
30565
  }
@@ -33456,7 +33360,7 @@ function ɵɵreplaceMetadata(type, applyMetadata, namespaces, locals) {
33456
33360
  for (const root of trackedViews) {
33457
33361
  // Note: we have the additional check, because `IsRoot` can also indicate
33458
33362
  // a component created through something like `createComponent`.
33459
- if (root[FLAGS] & 512 /* LViewFlags.IsRoot */ && root[PARENT] === null) {
33363
+ if (isRootView(root) && root[PARENT] === null) {
33460
33364
  recreateMatchingLViews(newDef, oldDef, root);
33461
33365
  }
33462
33366
  }
@@ -33483,6 +33387,10 @@ function mergeWithExistingDefinition(currentDef, newDef) {
33483
33387
  // Preserve the old `setInput` function, because it has some state.
33484
33388
  // This is fine, because the component instance is preserved as well.
33485
33389
  setInput: clone.setInput,
33390
+ // Externally this is redundant since we redeclare the definition using the original type.
33391
+ // Internally we may receive a definition with an alternate, but identical, type so we have
33392
+ // to ensure that the original one is preserved.
33393
+ type: clone.type,
33486
33394
  });
33487
33395
  ngDevMode && assertEqual(replacement, currentDef, 'Expected definition to be merged in place');
33488
33396
  return { newDef: replacement, oldDef: clone };
@@ -35021,7 +34929,7 @@ class Version {
35021
34929
  /**
35022
34930
  * @publicApi
35023
34931
  */
35024
- const VERSION = new Version('19.2.0-next.0');
34932
+ const VERSION = new Version('19.2.0-next.1');
35025
34933
 
35026
34934
  /**
35027
34935
  * Combination of NgModuleFactory and ComponentFactories.
@@ -38772,7 +38680,7 @@ function createComputed(computation) {
38772
38680
  producerUpdateValueVersion(node);
38773
38681
  // Record that someone looked at this signal.
38774
38682
  producerAccessed(node);
38775
- if (node.value === ERRORED$1) {
38683
+ if (node.value === ERRORED) {
38776
38684
  throw node.error;
38777
38685
  }
38778
38686
  return node.value;
@@ -38784,26 +38692,26 @@ function createComputed(computation) {
38784
38692
  * A dedicated symbol used before a computed value has been calculated for the first time.
38785
38693
  * Explicitly typed as `any` so we can use it as signal's value.
38786
38694
  */
38787
- const UNSET$1 = /* @__PURE__ */ Symbol('UNSET');
38695
+ const UNSET = /* @__PURE__ */ Symbol('UNSET');
38788
38696
  /**
38789
38697
  * A dedicated symbol used in place of a computed signal value to indicate that a given computation
38790
38698
  * is in progress. Used to detect cycles in computation chains.
38791
38699
  * Explicitly typed as `any` so we can use it as signal's value.
38792
38700
  */
38793
- const COMPUTING$1 = /* @__PURE__ */ Symbol('COMPUTING');
38701
+ const COMPUTING = /* @__PURE__ */ Symbol('COMPUTING');
38794
38702
  /**
38795
38703
  * A dedicated symbol used in place of a computed signal value to indicate that a given computation
38796
38704
  * failed. The thrown error is cached until the computation gets dirty again.
38797
38705
  * Explicitly typed as `any` so we can use it as signal's value.
38798
38706
  */
38799
- const ERRORED$1 = /* @__PURE__ */ Symbol('ERRORED');
38707
+ const ERRORED = /* @__PURE__ */ Symbol('ERRORED');
38800
38708
  // Note: Using an IIFE here to ensure that the spread assignment is not considered
38801
38709
  // a side-effect, ending up preserving `COMPUTED_NODE` and `REACTIVE_NODE`.
38802
38710
  // TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.
38803
38711
  const COMPUTED_NODE = /* @__PURE__ */ (() => {
38804
38712
  return {
38805
38713
  ...REACTIVE_NODE,
38806
- value: UNSET$1,
38714
+ value: UNSET,
38807
38715
  dirty: true,
38808
38716
  error: null,
38809
38717
  equal: defaultEquals,
@@ -38811,15 +38719,15 @@ const COMPUTED_NODE = /* @__PURE__ */ (() => {
38811
38719
  producerMustRecompute(node) {
38812
38720
  // Force a recomputation if there's no current value, or if the current value is in the
38813
38721
  // process of being calculated (which should throw an error).
38814
- return node.value === UNSET$1 || node.value === COMPUTING$1;
38722
+ return node.value === UNSET || node.value === COMPUTING;
38815
38723
  },
38816
38724
  producerRecomputeValue(node) {
38817
- if (node.value === COMPUTING$1) {
38725
+ if (node.value === COMPUTING) {
38818
38726
  // Our computation somehow led to a cyclic read of itself.
38819
38727
  throw new Error('Detected cycle in computations.');
38820
38728
  }
38821
38729
  const oldValue = node.value;
38822
- node.value = COMPUTING$1;
38730
+ node.value = COMPUTING;
38823
38731
  const prevConsumer = consumerBeforeComputation(node);
38824
38732
  let newValue;
38825
38733
  let wasEqual = false;
@@ -38829,13 +38737,13 @@ const COMPUTED_NODE = /* @__PURE__ */ (() => {
38829
38737
  // to track any reactive reads inside `equal`.
38830
38738
  setActiveConsumer(null);
38831
38739
  wasEqual =
38832
- oldValue !== UNSET$1 &&
38833
- oldValue !== ERRORED$1 &&
38834
- newValue !== ERRORED$1 &&
38740
+ oldValue !== UNSET &&
38741
+ oldValue !== ERRORED &&
38742
+ newValue !== ERRORED &&
38835
38743
  node.equal(oldValue, newValue);
38836
38744
  }
38837
38745
  catch (err) {
38838
- newValue = ERRORED$1;
38746
+ newValue = ERRORED;
38839
38747
  node.error = err;
38840
38748
  }
38841
38749
  finally {
@@ -38929,8 +38837,8 @@ function signalValueChanged(node) {
38929
38837
  postSignalSetFn?.();
38930
38838
  }
38931
38839
 
38932
- function createLinkedSignal$1(sourceFn, computationFn, equalityFn) {
38933
- const node = Object.create(LINKED_SIGNAL_NODE$1);
38840
+ function createLinkedSignal(sourceFn, computationFn, equalityFn) {
38841
+ const node = Object.create(LINKED_SIGNAL_NODE);
38934
38842
  node.source = sourceFn;
38935
38843
  node.computation = computationFn;
38936
38844
  if (equalityFn != undefined) {
@@ -38941,7 +38849,7 @@ function createLinkedSignal$1(sourceFn, computationFn, equalityFn) {
38941
38849
  producerUpdateValueVersion(node);
38942
38850
  // Record that someone looked at this signal.
38943
38851
  producerAccessed(node);
38944
- if (node.value === ERRORED$1) {
38852
+ if (node.value === ERRORED) {
38945
38853
  throw node.error;
38946
38854
  }
38947
38855
  return node.value;
@@ -38963,30 +38871,30 @@ function linkedSignalUpdateFn(node, updater) {
38963
38871
  // Note: Using an IIFE here to ensure that the spread assignment is not considered
38964
38872
  // a side-effect, ending up preserving `LINKED_SIGNAL_NODE` and `REACTIVE_NODE`.
38965
38873
  // TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.
38966
- const LINKED_SIGNAL_NODE$1 = /* @__PURE__ */ (() => {
38874
+ const LINKED_SIGNAL_NODE = /* @__PURE__ */ (() => {
38967
38875
  return {
38968
38876
  ...REACTIVE_NODE,
38969
- value: UNSET$1,
38877
+ value: UNSET,
38970
38878
  dirty: true,
38971
38879
  error: null,
38972
38880
  equal: defaultEquals,
38973
38881
  producerMustRecompute(node) {
38974
38882
  // Force a recomputation if there's no current value, or if the current value is in the
38975
38883
  // process of being calculated (which should throw an error).
38976
- return node.value === UNSET$1 || node.value === COMPUTING$1;
38884
+ return node.value === UNSET || node.value === COMPUTING;
38977
38885
  },
38978
38886
  producerRecomputeValue(node) {
38979
- if (node.value === COMPUTING$1) {
38887
+ if (node.value === COMPUTING) {
38980
38888
  // Our computation somehow led to a cyclic read of itself.
38981
38889
  throw new Error('Detected cycle in computations.');
38982
38890
  }
38983
38891
  const oldValue = node.value;
38984
- node.value = COMPUTING$1;
38892
+ node.value = COMPUTING;
38985
38893
  const prevConsumer = consumerBeforeComputation(node);
38986
38894
  let newValue;
38987
38895
  try {
38988
38896
  const newSourceValue = node.source();
38989
- const prev = oldValue === UNSET$1 || oldValue === ERRORED$1
38897
+ const prev = oldValue === UNSET || oldValue === ERRORED
38990
38898
  ? undefined
38991
38899
  : {
38992
38900
  source: node.sourceValue,
@@ -38996,13 +38904,13 @@ const LINKED_SIGNAL_NODE$1 = /* @__PURE__ */ (() => {
38996
38904
  node.sourceValue = newSourceValue;
38997
38905
  }
38998
38906
  catch (err) {
38999
- newValue = ERRORED$1;
38907
+ newValue = ERRORED;
39000
38908
  node.error = err;
39001
38909
  }
39002
38910
  finally {
39003
38911
  consumerAfterComputation(node, prevConsumer);
39004
38912
  }
39005
- if (oldValue !== UNSET$1 && newValue !== ERRORED$1 && node.equal(oldValue, newValue)) {
38913
+ if (oldValue !== UNSET && newValue !== ERRORED && node.equal(oldValue, newValue)) {
39006
38914
  // No change to `valueVersion` - old and new values are
39007
38915
  // semantically equivalent.
39008
38916
  node.value = oldValue;
@@ -40102,12 +40010,12 @@ function printHydrationStats(injector) {
40102
40010
  /**
40103
40011
  * Returns a Promise that is resolved when an application becomes stable.
40104
40012
  */
40105
- function whenStableWithTimeout(appRef, injector) {
40013
+ function whenStableWithTimeout(appRef) {
40106
40014
  const whenStablePromise = appRef.whenStable();
40107
40015
  if (typeof ngDevMode !== 'undefined' && ngDevMode) {
40108
40016
  const timeoutTime = APPLICATION_IS_STABLE_TIMEOUT;
40109
- const console = injector.get(Console);
40110
- const ngZone = injector.get(NgZone);
40017
+ const console = appRef.injector.get(Console);
40018
+ const ngZone = appRef.injector.get(NgZone);
40111
40019
  // The following call should not and does not prevent the app to become stable
40112
40020
  // We cannot use RxJS timer here because the app would remain unstable.
40113
40021
  // This also avoids an extra change detection cycle.
@@ -40205,7 +40113,6 @@ function withDomHydration() {
40205
40113
  useFactory: () => {
40206
40114
  if (inject(IS_HYDRATION_DOM_REUSE_ENABLED)) {
40207
40115
  const appRef = inject(ApplicationRef);
40208
- const injector = inject(Injector);
40209
40116
  return () => {
40210
40117
  // Wait until an app becomes stable and cleanup all views that
40211
40118
  // were not claimed during the application bootstrap process.
@@ -40214,11 +40121,20 @@ function withDomHydration() {
40214
40121
  //
40215
40122
  // Note: the cleanup task *MUST* be scheduled within the Angular zone in Zone apps
40216
40123
  // to ensure that change detection is properly run afterward.
40217
- whenStableWithTimeout(appRef, injector).then(() => {
40124
+ whenStableWithTimeout(appRef).then(() => {
40125
+ // Note: we have to check whether the application is destroyed before
40126
+ // performing other operations with the `injector`.
40127
+ // The application may be destroyed **before** it becomes stable, so when
40128
+ // the `whenStableWithTimeout` resolves, the injector might already be in
40129
+ // a destroyed state. Thus, calling `injector.get` would throw an error
40130
+ // indicating that the injector has already been destroyed.
40131
+ if (appRef.destroyed) {
40132
+ return;
40133
+ }
40218
40134
  cleanupDehydratedViews(appRef);
40219
40135
  if (typeof ngDevMode !== 'undefined' && ngDevMode) {
40220
- countBlocksSkippedByHydration(injector);
40221
- printHydrationStats(injector);
40136
+ countBlocksSkippedByHydration(appRef.injector);
40137
+ printHydrationStats(appRef.injector);
40222
40138
  }
40223
40139
  });
40224
40140
  };
@@ -40620,123 +40536,28 @@ function computed(computation, options) {
40620
40536
  }
40621
40537
 
40622
40538
  const identityFn = (v) => v;
40623
- /**
40624
- * Create a linked signal which represents state that is (re)set from a linked reactive expression.
40625
- */
40626
- function createLinkedSignal(node) {
40627
- const linkedSignalGetter = () => {
40628
- // Check if the value needs updating before returning it.
40629
- producerUpdateValueVersion$1(node);
40630
- // Record that someone looked at this signal.
40631
- producerAccessed$1(node);
40632
- if (node.value === ERRORED) {
40633
- throw node.error;
40634
- }
40635
- return node.value;
40636
- };
40637
- const getter = linkedSignalGetter;
40638
- getter[SIGNAL$1] = node;
40639
- if (ngDevMode) {
40640
- getter.toString = () => `[LinkedSignal: ${getter()}]`;
40641
- }
40642
- getter.set = (newValue) => {
40643
- producerUpdateValueVersion$1(node);
40644
- signalSetFn$1(node, newValue);
40645
- producerMarkClean$1(node);
40646
- };
40647
- getter.update = (updateFn) => {
40648
- producerUpdateValueVersion$1(node);
40649
- signalUpdateFn$1(node, updateFn);
40650
- producerMarkClean$1(node);
40651
- };
40652
- getter.asReadonly = signalAsReadonlyFn.bind(getter);
40653
- return getter;
40654
- }
40655
40539
  function linkedSignal(optionsOrComputation, options) {
40656
40540
  performanceMarkFeature('NgSignals');
40657
- const isShorthand = typeof optionsOrComputation === 'function';
40658
- const node = Object.create(LINKED_SIGNAL_NODE);
40659
- node.source = isShorthand ? optionsOrComputation : optionsOrComputation.source;
40660
- if (!isShorthand) {
40661
- node.computation = optionsOrComputation.computation;
40541
+ if (typeof optionsOrComputation === 'function') {
40542
+ const getter = createLinkedSignal$1(optionsOrComputation, (identityFn), options?.equal);
40543
+ return upgradeLinkedSignalGetter(getter);
40662
40544
  }
40663
- const equal = isShorthand ? options?.equal : optionsOrComputation.equal;
40664
- if (equal) {
40665
- node.equal = equal;
40545
+ else {
40546
+ const getter = createLinkedSignal$1(optionsOrComputation.source, optionsOrComputation.computation, optionsOrComputation.equal);
40547
+ return upgradeLinkedSignalGetter(getter);
40666
40548
  }
40667
- return createLinkedSignal(node);
40668
40549
  }
40669
- /**
40670
- * A dedicated symbol used before a state value has been set / calculated for the first time.
40671
- * Explicitly typed as `any` so we can use it as signal's value.
40672
- */
40673
- const UNSET = /* @__PURE__ */ Symbol('UNSET');
40674
- /**
40675
- * A dedicated symbol used in place of a linked signal value to indicate that a given computation
40676
- * is in progress. Used to detect cycles in computation chains.
40677
- * Explicitly typed as `any` so we can use it as signal's value.
40678
- */
40679
- const COMPUTING = /* @__PURE__ */ Symbol('COMPUTING');
40680
- /**
40681
- * A dedicated symbol used in place of a linked signal value to indicate that a given computation
40682
- * failed. The thrown error is cached until the computation gets dirty again or the state is set.
40683
- * Explicitly typed as `any` so we can use it as signal's value.
40684
- */
40685
- const ERRORED = /* @__PURE__ */ Symbol('ERRORED');
40686
- // Note: Using an IIFE here to ensure that the spread assignment is not considered
40687
- // a side-effect, ending up preserving `LINKED_SIGNAL_NODE` and `REACTIVE_NODE`.
40688
- // TODO: remove when https://github.com/evanw/esbuild/issues/3392 is resolved.
40689
- const LINKED_SIGNAL_NODE = /* @__PURE__ */ (() => {
40690
- return {
40691
- ...REACTIVE_NODE$1,
40692
- value: UNSET,
40693
- dirty: true,
40694
- error: null,
40695
- equal: defaultEquals$1,
40696
- computation: identityFn,
40697
- producerMustRecompute(node) {
40698
- // Force a recomputation if there's no current value, or if the current value is in the
40699
- // process of being calculated (which should throw an error).
40700
- return node.value === UNSET || node.value === COMPUTING;
40701
- },
40702
- producerRecomputeValue(node) {
40703
- if (node.value === COMPUTING) {
40704
- // Our computation somehow led to a cyclic read of itself.
40705
- throw new Error('Detected cycle in computations.');
40706
- }
40707
- const oldValue = node.value;
40708
- node.value = COMPUTING;
40709
- const prevConsumer = consumerBeforeComputation$1(node);
40710
- let newValue;
40711
- try {
40712
- const newSourceValue = node.source();
40713
- const prev = oldValue === UNSET || oldValue === ERRORED
40714
- ? undefined
40715
- : {
40716
- source: node.sourceValue,
40717
- value: oldValue,
40718
- };
40719
- newValue = node.computation(newSourceValue, prev);
40720
- node.sourceValue = newSourceValue;
40721
- }
40722
- catch (err) {
40723
- newValue = ERRORED;
40724
- node.error = err;
40725
- }
40726
- finally {
40727
- consumerAfterComputation$1(node, prevConsumer);
40728
- }
40729
- if (oldValue !== UNSET && newValue !== ERRORED && node.equal(oldValue, newValue)) {
40730
- // No change to `valueVersion` - old and new values are
40731
- // semantically equivalent.
40732
- node.value = oldValue;
40733
- return;
40734
- }
40735
- node.value = newValue;
40736
- node.version++;
40737
- },
40738
- };
40739
- })();
40550
+ function upgradeLinkedSignalGetter(getter) {
40551
+ if (ngDevMode) {
40552
+ getter.toString = () => `[LinkedSignal: ${getter()}]`;
40553
+ }
40554
+ const node = getter[SIGNAL$1];
40555
+ const upgradedGetter = getter;
40556
+ upgradedGetter.set = (newValue) => linkedSignalSetFn$1(node, newValue);
40557
+ upgradedGetter.update = (updateFn) => linkedSignalUpdateFn$1(node, updateFn);
40558
+ upgradedGetter.asReadonly = signalAsReadonlyFn.bind(getter);
40559
+ return upgradedGetter;
40560
+ }
40740
40561
 
40741
40562
  /**
40742
40563
  * Execute an arbitrary function in a non-reactive (non-tracking) context. The executed function
@@ -41281,20 +41102,10 @@ var ResourceStatus;
41281
41102
  ResourceStatus[ResourceStatus["Local"] = 5] = "Local";
41282
41103
  })(ResourceStatus || (ResourceStatus = {}));
41283
41104
 
41284
- /**
41285
- * Constructs a `Resource` that projects a reactive request to an asynchronous operation defined by
41286
- * a loader function, which exposes the result of the loading operation via signals.
41287
- *
41288
- * Note that `resource` is intended for _read_ operations, not operations which perform mutations.
41289
- * `resource` will cancel in-progress loads via the `AbortSignal` when destroyed or when a new
41290
- * request object becomes available, which could prematurely abort mutations.
41291
- *
41292
- * @experimental
41293
- */
41294
41105
  function resource(options) {
41295
41106
  options?.injector || assertInInjectionContext(resource);
41296
41107
  const request = (options.request ?? (() => null));
41297
- return new ResourceImpl(request, getLoader(options), undefined, options.equal ? wrapEqualityFn(options.equal) : undefined, options.injector ?? inject(Injector));
41108
+ return new ResourceImpl(request, getLoader(options), options.defaultValue, options.equal ? wrapEqualityFn(options.equal) : undefined, options.injector ?? inject(Injector));
41298
41109
  }
41299
41110
  /**
41300
41111
  * Base class which implements `.value` as a `WritableSignal` by delegating `.set` and `.update`.
@@ -41406,7 +41217,8 @@ class ResourceImpl extends BaseWritableResource {
41406
41217
  return;
41407
41218
  }
41408
41219
  const current = untracked(this.value);
41409
- if (this.equal ? this.equal(current, value) : current === value) {
41220
+ if (untracked(this.status) === ResourceStatus.Local &&
41221
+ (this.equal ? this.equal(current, value) : current === value)) {
41410
41222
  return;
41411
41223
  }
41412
41224
  // Enter Local state with the user-defined value.
@@ -41445,7 +41257,7 @@ class ResourceImpl extends BaseWritableResource {
41445
41257
  async loadEffect() {
41446
41258
  // Capture the previous status before any state transitions. Note that this is `untracked` since
41447
41259
  // we do not want the effect to depend on the state of the resource, only on the request.
41448
- const { status: previousStatus } = untracked(this.state);
41260
+ const { status: currentStatus, previousStatus } = untracked(this.state);
41449
41261
  const { request, reload: reloadCounter } = this.extendedRequest();
41450
41262
  // Subscribe side-effectfully to `reloadCounter`, although we don't actually care about its
41451
41263
  // value. This is used to rerun the effect when `reload()` is triggered.
@@ -41454,8 +41266,8 @@ class ResourceImpl extends BaseWritableResource {
41454
41266
  // Nothing to load (and we should already be in a non-loading state).
41455
41267
  return;
41456
41268
  }
41457
- else if (previousStatus !== ResourceStatus.Loading &&
41458
- previousStatus !== ResourceStatus.Reloading) {
41269
+ else if (currentStatus !== ResourceStatus.Loading &&
41270
+ currentStatus !== ResourceStatus.Reloading) {
41459
41271
  // We might've transitioned into a loading state, but has since been overwritten (likely via
41460
41272
  // `.set`).
41461
41273
  // In this case, the resource has nothing to do.
@@ -41479,13 +41291,15 @@ class ResourceImpl extends BaseWritableResource {
41479
41291
  // The actual loading is run through `untracked` - only the request side of `resource` is
41480
41292
  // reactive. This avoids any confusion with signals tracking or not tracking depending on
41481
41293
  // which side of the `await` they are.
41482
- const stream = await untracked(() => this.loaderFn({
41483
- request: request,
41484
- abortSignal,
41485
- previous: {
41486
- status: previousStatus,
41487
- },
41488
- }));
41294
+ const stream = await untracked(() => {
41295
+ return this.loaderFn({
41296
+ request: request,
41297
+ abortSignal,
41298
+ previous: {
41299
+ status: previousStatus,
41300
+ },
41301
+ });
41302
+ });
41489
41303
  if (abortSignal.aborted) {
41490
41304
  return;
41491
41305
  }
@@ -41801,5 +41615,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
41801
41615
  * Generated bundle index. Do not edit.
41802
41616
  */
41803
41617
 
41804
- 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 };
41618
+ 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 };
41805
41619
  //# sourceMappingURL=core.mjs.map