@angular/core 21.0.0 → 21.1.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/fesm2022/_attribute-chunk.mjs +1 -1
  2. package/fesm2022/_attribute-chunk.mjs.map +1 -1
  3. package/fesm2022/_debug_node-chunk.mjs +254 -170
  4. package/fesm2022/_debug_node-chunk.mjs.map +1 -1
  5. package/fesm2022/_effect-chunk.mjs +1 -1
  6. package/fesm2022/_effect-chunk.mjs.map +1 -1
  7. package/fesm2022/_linked_signal-chunk.mjs +1 -1
  8. package/fesm2022/_linked_signal-chunk.mjs.map +1 -1
  9. package/fesm2022/_not_found-chunk.mjs +1 -1
  10. package/fesm2022/_not_found-chunk.mjs.map +1 -1
  11. package/fesm2022/_resource-chunk.mjs +33 -19
  12. package/fesm2022/_resource-chunk.mjs.map +1 -1
  13. package/fesm2022/_untracked-chunk.mjs +14 -6
  14. package/fesm2022/_untracked-chunk.mjs.map +1 -1
  15. package/fesm2022/_weak_ref-chunk.mjs +1 -1
  16. package/fesm2022/_weak_ref-chunk.mjs.map +1 -1
  17. package/fesm2022/core.mjs +27 -16
  18. package/fesm2022/core.mjs.map +1 -1
  19. package/fesm2022/primitives-di.mjs +1 -1
  20. package/fesm2022/primitives-di.mjs.map +1 -1
  21. package/fesm2022/primitives-event-dispatch.mjs +1 -1
  22. package/fesm2022/primitives-event-dispatch.mjs.map +1 -1
  23. package/fesm2022/primitives-signals.mjs +1 -1
  24. package/fesm2022/primitives-signals.mjs.map +1 -1
  25. package/fesm2022/rxjs-interop.mjs +12 -4
  26. package/fesm2022/rxjs-interop.mjs.map +1 -1
  27. package/fesm2022/testing.mjs +1 -1
  28. package/fesm2022/testing.mjs.map +1 -1
  29. package/package.json +3 -3
  30. package/resources/best-practices.md +0 -1
  31. package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +1 -1
  32. package/schematics/bundles/application-config-core.cjs +1 -1
  33. package/schematics/bundles/apply_import_manager-1Zs_gpB6.cjs +1 -1
  34. package/schematics/bundles/bootstrap-options-migration.cjs +2 -1
  35. package/schematics/bundles/cleanup-unused-imports.cjs +1 -1
  36. package/schematics/bundles/common-to-standalone-migration.cjs +5 -3
  37. package/schematics/bundles/compiler_host-DBwYMlTo.cjs +1 -1
  38. package/schematics/bundles/control-flow-migration.cjs +1 -1
  39. package/schematics/bundles/imports-DP72APSx.cjs +1 -1
  40. package/schematics/bundles/index-B7I9sIUx.cjs +1 -1
  41. package/schematics/bundles/inject-migration.cjs +1 -1
  42. package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
  43. package/schematics/bundles/migrate_ts_type_references-UGIUl7En.cjs +1 -1
  44. package/schematics/bundles/ng_component_template-Dsuq1Lw7.cjs +1 -1
  45. package/schematics/bundles/ng_decorators-DSFlWYQY.cjs +1 -1
  46. package/schematics/bundles/ngclass-to-class-migration.cjs +1 -1
  47. package/schematics/bundles/ngstyle-to-style-migration.cjs +1 -1
  48. package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
  49. package/schematics/bundles/output-migration.cjs +1 -1
  50. package/schematics/bundles/parse_html-8VLCL37B.cjs +1 -1
  51. package/schematics/bundles/project_paths-DvD50ouC.cjs +1 -1
  52. package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.cjs +1 -1
  53. package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
  54. package/schematics/bundles/route-lazy-loading.cjs +1 -1
  55. package/schematics/bundles/router-current-navigation.cjs +1 -1
  56. package/schematics/bundles/router-last-successful-navigation.cjs +1 -1
  57. package/schematics/bundles/router-testing-module-migration.cjs +1 -1
  58. package/schematics/bundles/self-closing-tags-migration.cjs +1 -1
  59. package/schematics/bundles/signal-input-migration.cjs +1 -1
  60. package/schematics/bundles/signal-queries-migration.cjs +1 -1
  61. package/schematics/bundles/signals.cjs +1 -1
  62. package/schematics/bundles/standalone-migration.cjs +4 -4
  63. package/schematics/bundles/symbol-BObKoqes.cjs +1 -1
  64. package/types/_api-chunk.d.ts +7 -2
  65. package/types/_chrome_dev_tools_performance-chunk.d.ts +9 -1
  66. package/types/_discovery-chunk.d.ts +28 -21
  67. package/types/_effect-chunk.d.ts +1 -1
  68. package/types/_event_dispatcher-chunk.d.ts +1 -1
  69. package/types/_formatter-chunk.d.ts +1 -1
  70. package/types/_weak_ref-chunk.d.ts +1 -1
  71. package/types/core.d.ts +160 -139
  72. package/types/primitives-di.d.ts +1 -1
  73. package/types/primitives-event-dispatch.d.ts +1 -1
  74. package/types/primitives-signals.d.ts +1 -1
  75. package/types/rxjs-interop.d.ts +5 -1
  76. package/types/testing.d.ts +13 -1
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v21.0.0
2
+ * @license Angular v21.1.0-next.0
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { attachInjectFlag, _global, ɵɵdefineInjectable as __defineInjectable, ɵɵdefineInjector as __defineInjector, ɵɵinject as __inject, ɵɵinvalidFactoryDep as __invalidFactoryDep, resolveForwardRef, newArray, EMPTY_OBJ, assertString, assertNotEqual, FLAGS, assertEqual, isInCheckNoChangesMode, PREORDER_HOOK_FLAGS, assertFirstCreatePass, assertDefined, throwError, assertNumber, assertGreaterThan, HEADER_OFFSET, DECLARATION_VIEW, NG_FACTORY_DEF, isForwardRef, getFactoryDef, assertIndexInRange, assertTNodeForLView, enterDI, runInInjectorProfilerContext, getCurrentTNode, getLView, emitInjectorToCreateInstanceEvent, emitInstanceCreatedByInjectorEvent, throwProviderNotFoundError, leaveDI, assertNodeInjector, stringifyForError, cyclicDependencyErrorWithDetails, cyclicDependencyError, setInjectorProfilerContext, setInjectImplementation, assertDirectiveDef, NG_ELEMENT_ID, convertToBitFlags, isRootView, T_HOST, TVIEW, injectRootLimpMode, isComponentDef, EMBEDDED_VIEW_INJECTOR, INJECTOR$1 as INJECTOR, DECLARATION_COMPONENT_VIEW, isComponentHost, RuntimeError, NG_PROV_DEF, getClosureSafeProperty, getNativeByTNode, flatten, arrayEquals, ID, isLView, assertDomNode, unwrapRNode, getComponentLViewByIndex, CONTEXT, EMPTY_ARRAY, assertLView, HOST, CHILD_HEAD, NEXT, isLContainer, getLViewParent, Injector, CLEANUP, getComponentDef, getDirectiveDef, InjectionToken, ENVIRONMENT_INITIALIZER, inject, formatRuntimeError, isInSkipHydrationBlock as isInSkipHydrationBlock$1, HYDRATION, isContentQueryHost, setCurrentQueryIndex, XSS_SECURITY_URL, renderStringify, ENVIRONMENT, makeEnvironmentProviders, isDirectiveHost, resetPreOrderHookFlags, PARENT, RENDERER, CHILD_TAIL, assertSame, assertFirstUpdatePass, getSelectedIndex, getTView, assertIndexInDeclRange, setSelectedIndex, NgZone, ChangeDetectionScheduler, ErrorHandler, AFTER_RENDER_SEQUENCES_TO_ADD, markAncestorsForTraversal, assertNotInReactiveContext, assertInInjectionContext, DestroyRef, ViewContext, assertLContainer, MOVED_VIEWS, isDestroyed, REACTIVE_TEMPLATE_CONSUMER, DECLARATION_LCONTAINER, QUERIES, assertNotReactive, ON_DESTROY_HOOKS, assertFunction, EFFECTS, assertProjectionSlots, NATIVE, ANIMATIONS, assertParentView, CONTAINER_HEADER_OFFSET, assertNotSame, setCurrentDirectiveIndex, setCurrentTNode, getElementDepthCount, increaseElementDepthCount, wasLastNodeCreated, isCurrentTNodeParent, setCurrentTNodeAsNotParent, assertHasParent, INTERNAL_APPLICATION_ERROR_HANDLER, stringify, getCurrentDirectiveIndex, unwrapLView, isCreationMode, enterView, leaveView, markViewForRefresh, setIsRefreshingViews, isExhaustiveCheckNoChanges, requiresRefreshOrTraversal, setIsInCheckNoChangesMode, CheckNoChangesMode, setBindingIndex, EFFECTS_TO_SCHEDULE, viewAttachedToChangeDetector, setBindingRootForHostBindings, isRefreshingViews, removeFromArray, addToArray, updateAncestorTraversalFlagsOnAttach, storeLViewOnDestroy, VIEW_REFS, assertGreaterThanOrEqual, isInI18nBlock, assertTNodeForTView, getCurrentParentTNode, getCurrentTNodePlaceholderOk, assertTNode, assertTIcu, assertNumberInRange, DEHYDRATED_VIEWS, getNgModuleDef, getPipeDef as getPipeDef$1, getNgModuleDefOrThrow, isStandalone, concatStringsWithSpace, assertInjectImplementationNotEqual, emitInjectEvent, getConstant, assertLessThan, getOrCreateTViewCleanup, getOrCreateLViewCleanup, assertNotDefined, nextBindingIndex, getSelectedTNode, getDirectiveDefOrThrow, getTNode, assertComponentType, debugStringifyTypeForError, EnvironmentInjector, SVG_NAMESPACE, MATH_ML_NAMESPACE, viewAttachedToContainer, storeCleanupWithContext, signal, createInjectorWithoutInjectorInstances, R3Injector, getNullInjector, internalImportProvidersFrom, initNgDevMode, fillProperties, getBindingsEnabled, lastNodeWasCreated, removeLViewOnDestroy, walkUpViews, getNativeByIndex, assertElement, arrayInsert2, arraySplice, setInjectorProfiler, NullInjector, INJECTOR_DEF_TYPES, walkProviderTree, getInjectorDef, deepForEach, EffectRefImpl, isTypeProvider, isInInjectionContext, runInInjectionContext, ZONELESS_ENABLED, EffectScheduler, PendingTasksInternal, PendingTasks, untracked, getBindingIndex, assertTNodeCreationIndex, isSkipHydrationRootTNode, leaveSkipHydrationBlock, decreaseElementDepthCount, getNamespace, enterSkipHydrationBlock, getCurrentDirectiveDef, assertIndexInExpandoRange, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, keyValueArraySet, keyValueArrayGet, incrementBindingIndex, store, providerToFactory, emitProviderConfiguredEvent, isClassProvider, getBindingRoot, NG_COMP_DEF, ɵɵresetView as __resetView, ɵɵnamespaceHTML as __namespaceHTML, ɵɵnamespaceMathML as __namespaceMathML, ɵɵnamespaceSVG as __namespaceSVG, ɵɵenableBindings as __enableBindings, ɵɵdisableBindings as __disableBindings, ɵɵrestoreView as __restoreView, forwardRef, NG_MOD_DEF, NG_INJ_DEF, NG_DIR_DEF, NG_PIPE_DEF, angularZoneInstanceIdProperty, SCHEDULE_IN_ROOT_ZONE, scheduleCallbackWithMicrotask, PROVIDED_ZONELESS, NoopNgZone, scheduleCallbackWithRafRace, getNativeByTNodeOrNull } from './_untracked-chunk.mjs';
7
+ import { attachInjectFlag, _global, ɵɵdefineInjectable as __defineInjectable, ɵɵdefineInjector as __defineInjector, ɵɵinject as __inject, ɵɵinvalidFactoryDep as __invalidFactoryDep, resolveForwardRef, newArray, EMPTY_OBJ, assertString, assertNotEqual, FLAGS, assertEqual, isInCheckNoChangesMode, PREORDER_HOOK_FLAGS, assertFirstCreatePass, assertDefined, throwError, assertNumber, assertGreaterThan, HEADER_OFFSET, DECLARATION_VIEW, NG_FACTORY_DEF, isForwardRef, getFactoryDef, assertIndexInRange, assertTNodeForLView, enterDI, runInInjectorProfilerContext, getCurrentTNode, getLView, emitInjectorToCreateInstanceEvent, emitInstanceCreatedByInjectorEvent, throwProviderNotFoundError, leaveDI, assertNodeInjector, stringifyForError, cyclicDependencyErrorWithDetails, cyclicDependencyError, setInjectorProfilerContext, setInjectImplementation, assertDirectiveDef, NG_ELEMENT_ID, convertToBitFlags, isRootView, T_HOST, TVIEW, injectRootLimpMode, isComponentDef, EMBEDDED_VIEW_INJECTOR, INJECTOR$1 as INJECTOR, DECLARATION_COMPONENT_VIEW, isComponentHost, RuntimeError, NG_PROV_DEF, getClosureSafeProperty, getNativeByTNode, flatten, arrayEquals, ID, isLView, assertDomNode, unwrapRNode, getComponentLViewByIndex, CONTEXT, EMPTY_ARRAY, assertLView, HOST, CHILD_HEAD, NEXT, isLContainer, getLViewParent, Injector, CLEANUP, getComponentDef, getDirectiveDef, InjectionToken, inject, DOCUMENT as DOCUMENT$1, ENVIRONMENT_INITIALIZER, formatRuntimeError, isInSkipHydrationBlock as isInSkipHydrationBlock$1, HYDRATION, isContentQueryHost, setCurrentQueryIndex, XSS_SECURITY_URL, renderStringify, ENVIRONMENT, makeEnvironmentProviders, isDirectiveHost, resetPreOrderHookFlags, PARENT, RENDERER, CHILD_TAIL, assertSame, assertFirstUpdatePass, getSelectedIndex, getTView, assertIndexInDeclRange, setSelectedIndex, NgZone, ChangeDetectionScheduler, ErrorHandler, AFTER_RENDER_SEQUENCES_TO_ADD, markAncestorsForTraversal, assertNotInReactiveContext, assertInInjectionContext, DestroyRef, ViewContext, assertLContainer, MOVED_VIEWS, isDestroyed, REACTIVE_TEMPLATE_CONSUMER, DECLARATION_LCONTAINER, QUERIES, assertNotReactive, ON_DESTROY_HOOKS, assertFunction, EFFECTS, assertProjectionSlots, NATIVE, ANIMATIONS, assertParentView, CONTAINER_HEADER_OFFSET, assertNotSame, setCurrentDirectiveIndex, setCurrentTNode, getElementDepthCount, increaseElementDepthCount, wasLastNodeCreated, isCurrentTNodeParent, setCurrentTNodeAsNotParent, assertHasParent, INTERNAL_APPLICATION_ERROR_HANDLER, stringify, getCurrentDirectiveIndex, unwrapLView, isCreationMode, enterView, leaveView, markViewForRefresh, setIsRefreshingViews, isExhaustiveCheckNoChanges, requiresRefreshOrTraversal, setIsInCheckNoChangesMode, CheckNoChangesMode, setBindingIndex, EFFECTS_TO_SCHEDULE, viewAttachedToChangeDetector, setBindingRootForHostBindings, isRefreshingViews, removeFromArray, addToArray, updateAncestorTraversalFlagsOnAttach, storeLViewOnDestroy, VIEW_REFS, assertGreaterThanOrEqual, isInI18nBlock, assertTNodeForTView, getCurrentParentTNode, getCurrentTNodePlaceholderOk, assertTNode, assertTIcu, assertNumberInRange, DEHYDRATED_VIEWS, getNgModuleDef, getPipeDef as getPipeDef$1, getNgModuleDefOrThrow, isStandalone, concatStringsWithSpace, assertInjectImplementationNotEqual, emitInjectEvent, getConstant, assertLessThan, getOrCreateTViewCleanup, getOrCreateLViewCleanup, assertNotDefined, nextBindingIndex, getSelectedTNode, getDirectiveDefOrThrow, getTNode, assertComponentType, debugStringifyTypeForError, EnvironmentInjector, SVG_NAMESPACE, MATH_ML_NAMESPACE, viewAttachedToContainer, storeCleanupWithContext, signal, createInjectorWithoutInjectorInstances, R3Injector, getNullInjector, internalImportProvidersFrom, initNgDevMode, fillProperties, getBindingsEnabled, lastNodeWasCreated, removeLViewOnDestroy, walkUpViews, getNativeByIndex, assertElement, arrayInsert2, arraySplice, setInjectorProfiler, EffectRefImpl, NullInjector, INJECTOR_DEF_TYPES, walkProviderTree, getInjectorDef, deepForEach, isTypeProvider, isInInjectionContext, runInInjectionContext, ZONELESS_ENABLED, EffectScheduler, PendingTasksInternal, PendingTasks, untracked, getBindingIndex, assertTNodeCreationIndex, isSkipHydrationRootTNode, leaveSkipHydrationBlock, decreaseElementDepthCount, getNamespace, enterSkipHydrationBlock, getCurrentDirectiveDef, assertIndexInExpandoRange, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, keyValueArraySet, keyValueArrayGet, incrementBindingIndex, store, providerToFactory, emitProviderConfiguredEvent, isClassProvider, getBindingRoot, NG_COMP_DEF, ɵɵresetView as __resetView, ɵɵnamespaceHTML as __namespaceHTML, ɵɵnamespaceMathML as __namespaceMathML, ɵɵnamespaceSVG as __namespaceSVG, ɵɵenableBindings as __enableBindings, ɵɵdisableBindings as __disableBindings, ɵɵrestoreView as __restoreView, forwardRef, NG_MOD_DEF, NG_INJ_DEF, NG_DIR_DEF, NG_PIPE_DEF, angularZoneInstanceIdProperty, SCHEDULE_IN_ROOT_ZONE, scheduleCallbackWithMicrotask, PROVIDED_ZONELESS, NoopNgZone, scheduleCallbackWithRafRace, getNativeByTNodeOrNull } from './_untracked-chunk.mjs';
8
8
  import { setActiveConsumer, SIGNAL, consumerDestroy, REACTIVE_NODE, consumerPollProducersForChange, consumerBeforeComputation, getActiveConsumer, consumerAfterComputation, createComputed, setThrowInvalidWriteToSignalError } from './_effect-chunk.mjs';
9
9
  import { Subject, Subscription } from 'rxjs';
10
10
  import { setActiveConsumer as setActiveConsumer$1 } from '@angular/core/primitives/signals';
@@ -422,6 +422,36 @@ const profiler = function (event, instance = null, eventFn) {
422
422
  }
423
423
  };
424
424
 
425
+ var ProfilerEvent;
426
+ (function (ProfilerEvent) {
427
+ ProfilerEvent[ProfilerEvent["TemplateCreateStart"] = 0] = "TemplateCreateStart";
428
+ ProfilerEvent[ProfilerEvent["TemplateCreateEnd"] = 1] = "TemplateCreateEnd";
429
+ ProfilerEvent[ProfilerEvent["TemplateUpdateStart"] = 2] = "TemplateUpdateStart";
430
+ ProfilerEvent[ProfilerEvent["TemplateUpdateEnd"] = 3] = "TemplateUpdateEnd";
431
+ ProfilerEvent[ProfilerEvent["LifecycleHookStart"] = 4] = "LifecycleHookStart";
432
+ ProfilerEvent[ProfilerEvent["LifecycleHookEnd"] = 5] = "LifecycleHookEnd";
433
+ ProfilerEvent[ProfilerEvent["OutputStart"] = 6] = "OutputStart";
434
+ ProfilerEvent[ProfilerEvent["OutputEnd"] = 7] = "OutputEnd";
435
+ ProfilerEvent[ProfilerEvent["BootstrapApplicationStart"] = 8] = "BootstrapApplicationStart";
436
+ ProfilerEvent[ProfilerEvent["BootstrapApplicationEnd"] = 9] = "BootstrapApplicationEnd";
437
+ ProfilerEvent[ProfilerEvent["BootstrapComponentStart"] = 10] = "BootstrapComponentStart";
438
+ ProfilerEvent[ProfilerEvent["BootstrapComponentEnd"] = 11] = "BootstrapComponentEnd";
439
+ ProfilerEvent[ProfilerEvent["ChangeDetectionStart"] = 12] = "ChangeDetectionStart";
440
+ ProfilerEvent[ProfilerEvent["ChangeDetectionEnd"] = 13] = "ChangeDetectionEnd";
441
+ ProfilerEvent[ProfilerEvent["ChangeDetectionSyncStart"] = 14] = "ChangeDetectionSyncStart";
442
+ ProfilerEvent[ProfilerEvent["ChangeDetectionSyncEnd"] = 15] = "ChangeDetectionSyncEnd";
443
+ ProfilerEvent[ProfilerEvent["AfterRenderHooksStart"] = 16] = "AfterRenderHooksStart";
444
+ ProfilerEvent[ProfilerEvent["AfterRenderHooksEnd"] = 17] = "AfterRenderHooksEnd";
445
+ ProfilerEvent[ProfilerEvent["ComponentStart"] = 18] = "ComponentStart";
446
+ ProfilerEvent[ProfilerEvent["ComponentEnd"] = 19] = "ComponentEnd";
447
+ ProfilerEvent[ProfilerEvent["DeferBlockStateStart"] = 20] = "DeferBlockStateStart";
448
+ ProfilerEvent[ProfilerEvent["DeferBlockStateEnd"] = 21] = "DeferBlockStateEnd";
449
+ ProfilerEvent[ProfilerEvent["DynamicComponentStart"] = 22] = "DynamicComponentStart";
450
+ ProfilerEvent[ProfilerEvent["DynamicComponentEnd"] = 23] = "DynamicComponentEnd";
451
+ ProfilerEvent[ProfilerEvent["HostBindingsUpdateStart"] = 24] = "HostBindingsUpdateStart";
452
+ ProfilerEvent[ProfilerEvent["HostBindingsUpdateEnd"] = 25] = "HostBindingsUpdateEnd";
453
+ })(ProfilerEvent || (ProfilerEvent = {}));
454
+
425
455
  function registerPreOrderHooks(directiveIndex, directiveDef, tView) {
426
456
  ngDevMode && assertFirstCreatePass(tView);
427
457
  const {
@@ -519,13 +549,13 @@ function callHooks(currentView, arr, initPhase, currentNodeIndex) {
519
549
  }
520
550
  }
521
551
  function callHookInternal(directive, hook) {
522
- profiler(4, directive, hook);
552
+ profiler(ProfilerEvent.LifecycleHookStart, directive, hook);
523
553
  const prevConsumer = setActiveConsumer(null);
524
554
  try {
525
555
  hook.call(directive);
526
556
  } finally {
527
557
  setActiveConsumer(prevConsumer);
528
- profiler(5, directive, hook);
558
+ profiler(ProfilerEvent.LifecycleHookEnd, directive, hook);
529
559
  }
530
560
  }
531
561
  function callHook(currentView, initPhase, arr, i) {
@@ -1757,12 +1787,6 @@ function getDirectives(node) {
1757
1787
  }
1758
1788
  return context.directives === null ? [] : [...context.directives];
1759
1789
  }
1760
- var Framework;
1761
- (function (Framework) {
1762
- Framework["Angular"] = "angular";
1763
- Framework["ACX"] = "acx";
1764
- Framework["Wiz"] = "wiz";
1765
- })(Framework || (Framework = {}));
1766
1790
  var AcxChangeDetectionStrategy;
1767
1791
  (function (AcxChangeDetectionStrategy) {
1768
1792
  AcxChangeDetectionStrategy[AcxChangeDetectionStrategy["Default"] = 0] = "Default";
@@ -1911,7 +1935,7 @@ const PLATFORM_ID = new InjectionToken(typeof ngDevMode !== undefined && ngDevMo
1911
1935
  const ANIMATION_MODULE_TYPE = new InjectionToken(typeof ngDevMode !== undefined && ngDevMode ? 'AnimationModuleType' : '');
1912
1936
  const CSP_NONCE = new InjectionToken(typeof ngDevMode !== undefined && ngDevMode ? 'CSP nonce' : '', {
1913
1937
  factory: () => {
1914
- return getDocument().body?.querySelector('[ngCspNonce]')?.getAttribute('ngCspNonce') || null;
1938
+ return inject(DOCUMENT$1).body?.querySelector('[ngCspNonce]')?.getAttribute('ngCspNonce') || null;
1915
1939
  }
1916
1940
  });
1917
1941
  const IMAGE_CONFIG_DEFAULTS = {
@@ -1927,20 +1951,19 @@ const IMAGE_CONFIG = new InjectionToken(typeof ngDevMode !== undefined && ngDevM
1927
1951
  function makeStateKey(key) {
1928
1952
  return key;
1929
1953
  }
1930
- function initTransferState() {
1931
- const transferState = new TransferState();
1932
- if (typeof ngServerMode === 'undefined' || !ngServerMode) {
1933
- transferState.store = retrieveTransferredState(getDocument(), inject(APP_ID));
1934
- }
1935
- return transferState;
1936
- }
1937
1954
  class TransferState {
1938
1955
  static ɵprov =
1939
1956
  /* @__PURE__ */
1940
1957
  __defineInjectable({
1941
1958
  token: TransferState,
1942
1959
  providedIn: 'root',
1943
- factory: initTransferState
1960
+ factory: () => {
1961
+ const transferState = new TransferState();
1962
+ if (typeof ngServerMode === 'undefined' || !ngServerMode) {
1963
+ transferState.store = retrieveTransferredState(inject(DOCUMENT$1), inject(APP_ID));
1964
+ }
1965
+ return transferState;
1966
+ }
1944
1967
  });
1945
1968
  store = {};
1946
1969
  onSerializeCallbacks = {};
@@ -4082,7 +4105,7 @@ class AfterRenderImpl {
4082
4105
  execute() {
4083
4106
  const hasSequencesToExecute = this.sequences.size > 0;
4084
4107
  if (hasSequencesToExecute) {
4085
- profiler(16);
4108
+ profiler(ProfilerEvent.AfterRenderHooksStart);
4086
4109
  }
4087
4110
  this.executing = true;
4088
4111
  for (const phase of AFTER_RENDER_PHASES) {
@@ -4118,7 +4141,7 @@ class AfterRenderImpl {
4118
4141
  }
4119
4142
  this.deferredRegistrations.clear();
4120
4143
  if (hasSequencesToExecute) {
4121
- profiler(17);
4144
+ profiler(ProfilerEvent.AfterRenderHooksEnd);
4122
4145
  }
4123
4146
  }
4124
4147
  register(sequence) {
@@ -4522,19 +4545,19 @@ function executeOnDestroys(tView, lView) {
4522
4545
  for (let j = 0; j < toCall.length; j += 2) {
4523
4546
  const callContext = context[toCall[j]];
4524
4547
  const hook = toCall[j + 1];
4525
- profiler(4, callContext, hook);
4548
+ profiler(ProfilerEvent.LifecycleHookStart, callContext, hook);
4526
4549
  try {
4527
4550
  hook.call(callContext);
4528
4551
  } finally {
4529
- profiler(5, callContext, hook);
4552
+ profiler(ProfilerEvent.LifecycleHookEnd, callContext, hook);
4530
4553
  }
4531
4554
  }
4532
4555
  } else {
4533
- profiler(4, context, toCall);
4556
+ profiler(ProfilerEvent.LifecycleHookStart, context, toCall);
4534
4557
  try {
4535
4558
  toCall.call(context);
4536
4559
  } finally {
4537
- profiler(5, context, toCall);
4560
+ profiler(ProfilerEvent.LifecycleHookEnd, context, toCall);
4538
4561
  }
4539
4562
  }
4540
4563
  }
@@ -4769,12 +4792,12 @@ function executeTemplate(tView, lView, templateFn, rf, context) {
4769
4792
  if (isUpdatePhase && lView.length > HEADER_OFFSET) {
4770
4793
  selectIndexInternal(tView, lView, HEADER_OFFSET, !!ngDevMode && isInCheckNoChangesMode());
4771
4794
  }
4772
- const preHookType = isUpdatePhase ? 2 : 0;
4795
+ const preHookType = isUpdatePhase ? ProfilerEvent.TemplateUpdateStart : ProfilerEvent.TemplateCreateStart;
4773
4796
  profiler(preHookType, context, templateFn);
4774
4797
  templateFn(rf, context);
4775
4798
  } finally {
4776
4799
  setSelectedIndex(prevSelectedIndex);
4777
- const postHookType = isUpdatePhase ? 3 : 1;
4800
+ const postHookType = isUpdatePhase ? ProfilerEvent.TemplateUpdateEnd : ProfilerEvent.TemplateCreateEnd;
4778
4801
  profiler(postHookType, context, templateFn);
4779
4802
  }
4780
4803
  }
@@ -5147,9 +5170,12 @@ function renderComponent(hostLView, componentHostIdx) {
5147
5170
  if (hostRNode !== null && componentView[HYDRATION] === null) {
5148
5171
  componentView[HYDRATION] = retrieveHydrationInfo(hostRNode, componentView[INJECTOR]);
5149
5172
  }
5150
- profiler(18);
5151
- renderView(componentTView, componentView, componentView[CONTEXT]);
5152
- profiler(19, componentView[CONTEXT]);
5173
+ profiler(ProfilerEvent.ComponentStart);
5174
+ try {
5175
+ renderView(componentTView, componentView, componentView[CONTEXT]);
5176
+ } finally {
5177
+ profiler(ProfilerEvent.ComponentEnd, componentView[CONTEXT]);
5178
+ }
5153
5179
  }
5154
5180
  function syncViewWithBlueprint(tView, lView) {
5155
5181
  for (let i = lView.length; i < tView.blueprint.length; i++) {
@@ -5549,10 +5575,13 @@ function markTransplantedViewsForRefresh(lView) {
5549
5575
  }
5550
5576
  function detectChangesInComponent(hostLView, componentHostIdx, mode) {
5551
5577
  ngDevMode && assertEqual(isCreationMode(hostLView), false, 'Should be run in update mode');
5552
- profiler(18);
5578
+ profiler(ProfilerEvent.ComponentStart);
5553
5579
  const componentView = getComponentLViewByIndex(componentHostIdx, hostLView);
5554
- detectChangesInViewIfAttached(componentView, mode);
5555
- profiler(19, componentView[CONTEXT]);
5580
+ try {
5581
+ detectChangesInViewIfAttached(componentView, mode);
5582
+ } finally {
5583
+ profiler(ProfilerEvent.ComponentEnd, componentView[CONTEXT]);
5584
+ }
5556
5585
  }
5557
5586
  function detectChangesInViewIfAttached(lView, mode) {
5558
5587
  if (!viewAttachedToChangeDetector(lView)) {
@@ -5614,9 +5643,12 @@ function processHostBindingOpCodes(tView, lView) {
5614
5643
  const hostBindingFn = hostBindingOpCodes[++i];
5615
5644
  setBindingRootForHostBindings(bindingRootIndx, directiveIdx);
5616
5645
  const context = lView[directiveIdx];
5617
- profiler(24, context);
5618
- hostBindingFn(2, context);
5619
- profiler(25, context);
5646
+ profiler(ProfilerEvent.HostBindingsUpdateStart, context);
5647
+ try {
5648
+ hostBindingFn(2, context);
5649
+ } finally {
5650
+ profiler(ProfilerEvent.HostBindingsUpdateEnd, context);
5651
+ }
5620
5652
  }
5621
5653
  }
5622
5654
  } finally {
@@ -6211,6 +6243,8 @@ function createTNode(tView, tParent, type, index, value, attrs) {
6211
6243
  directiveEnd: -1,
6212
6244
  directiveStylingLast: -1,
6213
6245
  componentOffset: -1,
6246
+ fieldIndex: -1,
6247
+ customControlIndex: -1,
6214
6248
  propertyBindings: null,
6215
6249
  flags,
6216
6250
  providerIndexes: 0,
@@ -7877,13 +7911,13 @@ function wrapListener(tNode, lView, listenerFn) {
7877
7911
  function executeListenerWithErrorHandling(lView, context, listenerFn, e) {
7878
7912
  const prevConsumer = setActiveConsumer$1(null);
7879
7913
  try {
7880
- profiler(6, context, listenerFn);
7914
+ profiler(ProfilerEvent.OutputStart, context, listenerFn);
7881
7915
  return listenerFn(e) !== false;
7882
7916
  } catch (error) {
7883
7917
  handleUncaughtError(lView, error);
7884
7918
  return false;
7885
7919
  } finally {
7886
- profiler(7, context, listenerFn);
7920
+ profiler(ProfilerEvent.OutputEnd, context, listenerFn);
7887
7921
  setActiveConsumer$1(prevConsumer);
7888
7922
  }
7889
7923
  }
@@ -8168,7 +8202,7 @@ class ComponentFactory extends ComponentFactory$1 {
8168
8202
  this.isBoundToModule = !!ngModule;
8169
8203
  }
8170
8204
  create(injector, projectableNodes, rootSelectorOrNode, environmentInjector, directives, componentBindings) {
8171
- profiler(22);
8205
+ profiler(ProfilerEvent.DynamicComponentStart);
8172
8206
  const prevConsumer = setActiveConsumer(null);
8173
8207
  try {
8174
8208
  const cmpDef = this.componentDef;
@@ -8203,7 +8237,7 @@ class ComponentFactory extends ComponentFactory$1 {
8203
8237
  unregisterLView(rootLView);
8204
8238
  throw e;
8205
8239
  } finally {
8206
- profiler(23);
8240
+ profiler(ProfilerEvent.DynamicComponentEnd);
8207
8241
  leaveView();
8208
8242
  }
8209
8243
  return new ComponentRef(this.componentType, rootLView, !!hasInputBindings);
@@ -8213,7 +8247,7 @@ class ComponentFactory extends ComponentFactory$1 {
8213
8247
  }
8214
8248
  }
8215
8249
  function createRootTView(rootSelectorOrNode, componentDef, componentBindings, directives) {
8216
- const tAttributes = rootSelectorOrNode ? ['ng-version', '21.0.0'] : extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
8250
+ const tAttributes = rootSelectorOrNode ? ['ng-version', '21.1.0-next.0'] : extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
8217
8251
  let creationBindings = null;
8218
8252
  let updateBindings = null;
8219
8253
  let varsToAllocate = 0;
@@ -10298,7 +10332,7 @@ function findMatchingDehydratedViewForDeferBlock(lContainer, lDetails) {
10298
10332
  };
10299
10333
  }
10300
10334
  function applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView) {
10301
- profiler(20);
10335
+ profiler(ProfilerEvent.DeferBlockStateStart);
10302
10336
  const stateTmplIndex = getTemplateIndexForState(newState, hostLView, tNode);
10303
10337
  if (stateTmplIndex !== null) {
10304
10338
  lDetails[DEFER_BLOCK_STATE] = newState;
@@ -10335,7 +10369,7 @@ function applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView)
10335
10369
  lDetails[ON_COMPLETE_FNS] = null;
10336
10370
  }
10337
10371
  }
10338
- profiler(21);
10372
+ profiler(ProfilerEvent.DeferBlockStateEnd);
10339
10373
  }
10340
10374
  function applyDeferBlockStateWithScheduling(newState, lDetails, lContainer, tNode, hostLView) {
10341
10375
  const now = Date.now();
@@ -10519,10 +10553,20 @@ function handleEffectCreatedEvent(context, effect) {
10519
10553
  const {
10520
10554
  resolverToEffects
10521
10555
  } = frameworkDIDebugData;
10522
- if (!resolverToEffects.has(diResolver)) {
10523
- resolverToEffects.set(diResolver, []);
10524
- }
10525
- resolverToEffects.get(diResolver).push(effect);
10556
+ const cleanupContainer = effect instanceof EffectRefImpl ? effect[SIGNAL] : effect.sequence;
10557
+ let trackedEffects = resolverToEffects.get(diResolver);
10558
+ if (!trackedEffects) {
10559
+ trackedEffects = [];
10560
+ resolverToEffects.set(diResolver, trackedEffects);
10561
+ }
10562
+ trackedEffects.push(effect);
10563
+ cleanupContainer.onDestroyFns ??= [];
10564
+ cleanupContainer.onDestroyFns.push(() => {
10565
+ const index = trackedEffects.indexOf(effect);
10566
+ if (index > -1) {
10567
+ trackedEffects.splice(index, 1);
10568
+ }
10569
+ });
10526
10570
  }
10527
10571
  function handleInjectEvent(context, data) {
10528
10572
  const diResolver = getDIResolver(context.injector);
@@ -11208,9 +11252,11 @@ function measureStart(startEvent) {
11208
11252
  console.timeStamp('Event_' + startEvent + '_' + counter++);
11209
11253
  }
11210
11254
  function measureEnd(startEvent, entryName, color) {
11211
- const top = eventsStack.pop();
11212
- assertDefined(top, 'Profiling error: could not find start event entry ' + startEvent);
11213
- assertEqual(top[0], startEvent, `Profiling error: expected to see ${startEvent} event but got ${top[0]}`);
11255
+ let top;
11256
+ do {
11257
+ top = eventsStack.pop();
11258
+ assertDefined(top, 'Profiling error: could not find start event entry ' + startEvent);
11259
+ } while (top[0] !== startEvent);
11214
11260
  console.timeStamp(entryName, 'Event_' + top[0] + '_' + top[1], undefined, '\u{1F170}\uFE0F Angular', undefined, color);
11215
11261
  }
11216
11262
  const chromeDevToolsInjectorProfiler = event => {
@@ -11224,89 +11270,89 @@ const chromeDevToolsInjectorProfiler = event => {
11224
11270
  };
11225
11271
  const devToolsProfiler = (event, instance, eventFn) => {
11226
11272
  switch (event) {
11227
- case 8:
11228
- case 10:
11229
- case 12:
11230
- case 14:
11231
- case 16:
11232
- case 18:
11233
- case 20:
11234
- case 22:
11235
- case 0:
11236
- case 4:
11237
- case 2:
11238
- case 24:
11239
- case 6:
11273
+ case ProfilerEvent.BootstrapApplicationStart:
11274
+ case ProfilerEvent.BootstrapComponentStart:
11275
+ case ProfilerEvent.ChangeDetectionStart:
11276
+ case ProfilerEvent.ChangeDetectionSyncStart:
11277
+ case ProfilerEvent.AfterRenderHooksStart:
11278
+ case ProfilerEvent.ComponentStart:
11279
+ case ProfilerEvent.DeferBlockStateStart:
11280
+ case ProfilerEvent.DynamicComponentStart:
11281
+ case ProfilerEvent.TemplateCreateStart:
11282
+ case ProfilerEvent.LifecycleHookStart:
11283
+ case ProfilerEvent.TemplateUpdateStart:
11284
+ case ProfilerEvent.HostBindingsUpdateStart:
11285
+ case ProfilerEvent.OutputStart:
11240
11286
  {
11241
11287
  measureStart(event);
11242
11288
  break;
11243
11289
  }
11244
- case 9:
11290
+ case ProfilerEvent.BootstrapApplicationEnd:
11245
11291
  {
11246
- measureEnd(8, 'Bootstrap application', 'primary-dark');
11292
+ measureEnd(ProfilerEvent.BootstrapApplicationStart, 'Bootstrap application', 'primary-dark');
11247
11293
  break;
11248
11294
  }
11249
- case 11:
11295
+ case ProfilerEvent.BootstrapComponentEnd:
11250
11296
  {
11251
- measureEnd(10, 'Bootstrap component', 'primary-dark');
11297
+ measureEnd(ProfilerEvent.BootstrapComponentStart, 'Bootstrap component', 'primary-dark');
11252
11298
  break;
11253
11299
  }
11254
- case 13:
11300
+ case ProfilerEvent.ChangeDetectionEnd:
11255
11301
  {
11256
11302
  changeDetectionSyncRuns = 0;
11257
- measureEnd(12, 'Change detection ' + changeDetectionRuns++, 'primary-dark');
11303
+ measureEnd(ProfilerEvent.ChangeDetectionStart, 'Change detection ' + changeDetectionRuns++, 'primary-dark');
11258
11304
  break;
11259
11305
  }
11260
- case 15:
11306
+ case ProfilerEvent.ChangeDetectionSyncEnd:
11261
11307
  {
11262
- measureEnd(14, 'Synchronization ' + changeDetectionSyncRuns++, 'primary');
11308
+ measureEnd(ProfilerEvent.ChangeDetectionSyncStart, 'Synchronization ' + changeDetectionSyncRuns++, 'primary');
11263
11309
  break;
11264
11310
  }
11265
- case 17:
11311
+ case ProfilerEvent.AfterRenderHooksEnd:
11266
11312
  {
11267
- measureEnd(16, 'After render hooks', 'primary');
11313
+ measureEnd(ProfilerEvent.AfterRenderHooksStart, 'After render hooks', 'primary');
11268
11314
  break;
11269
11315
  }
11270
- case 19:
11316
+ case ProfilerEvent.ComponentEnd:
11271
11317
  {
11272
11318
  const typeName = getComponentMeasureName(instance);
11273
- measureEnd(18, typeName, 'primary-light');
11319
+ measureEnd(ProfilerEvent.ComponentStart, typeName, 'primary-light');
11274
11320
  break;
11275
11321
  }
11276
- case 21:
11322
+ case ProfilerEvent.DeferBlockStateEnd:
11277
11323
  {
11278
- measureEnd(20, 'Defer block', 'primary-dark');
11324
+ measureEnd(ProfilerEvent.DeferBlockStateStart, 'Defer block', 'primary-dark');
11279
11325
  break;
11280
11326
  }
11281
- case 23:
11327
+ case ProfilerEvent.DynamicComponentEnd:
11282
11328
  {
11283
- measureEnd(22, 'Dynamic component creation', 'primary-dark');
11329
+ measureEnd(ProfilerEvent.DynamicComponentStart, 'Dynamic component creation', 'primary-dark');
11284
11330
  break;
11285
11331
  }
11286
- case 3:
11332
+ case ProfilerEvent.TemplateUpdateEnd:
11287
11333
  {
11288
- measureEnd(2, stringifyForError(eventFn) + ' (update)', 'secondary-dark');
11334
+ measureEnd(ProfilerEvent.TemplateUpdateStart, stringifyForError(eventFn) + ' (update)', 'secondary-dark');
11289
11335
  break;
11290
11336
  }
11291
- case 1:
11337
+ case ProfilerEvent.TemplateCreateEnd:
11292
11338
  {
11293
- measureEnd(0, stringifyForError(eventFn) + ' (create)', 'secondary');
11339
+ measureEnd(ProfilerEvent.TemplateCreateStart, stringifyForError(eventFn) + ' (create)', 'secondary');
11294
11340
  break;
11295
11341
  }
11296
- case 25:
11342
+ case ProfilerEvent.HostBindingsUpdateEnd:
11297
11343
  {
11298
- measureEnd(24, 'HostBindings', 'secondary-dark');
11344
+ measureEnd(ProfilerEvent.HostBindingsUpdateStart, 'HostBindings', 'secondary-dark');
11299
11345
  break;
11300
11346
  }
11301
- case 5:
11347
+ case ProfilerEvent.LifecycleHookEnd:
11302
11348
  {
11303
11349
  const typeName = getComponentMeasureName(instance);
11304
- measureEnd(4, `${typeName}:${stringifyForError(eventFn)}`, 'tertiary');
11350
+ measureEnd(ProfilerEvent.LifecycleHookStart, `${typeName}:${stringifyForError(eventFn)}`, 'tertiary');
11305
11351
  break;
11306
11352
  }
11307
- case 7:
11353
+ case ProfilerEvent.OutputEnd:
11308
11354
  {
11309
- measureEnd(6, stringifyForError(eventFn), 'tertiary-light');
11355
+ measureEnd(ProfilerEvent.OutputStart, stringifyForError(eventFn), 'tertiary-light');
11310
11356
  break;
11311
11357
  }
11312
11358
  default:
@@ -11340,7 +11386,7 @@ function enableProfiling() {
11340
11386
  }
11341
11387
 
11342
11388
  function getTransferState(injector) {
11343
- const doc = getDocument();
11389
+ const doc = injector.get(DOCUMENT$1);
11344
11390
  const appId = injector.get(APP_ID);
11345
11391
  const transferState = retrieveTransferredState(doc, appId);
11346
11392
  const filteredEntries = {};
@@ -11749,7 +11795,7 @@ class ApplicationRef {
11749
11795
  bootstrapImpl(componentOrFactory, rootSelectorOrNode, injector = Injector.NULL) {
11750
11796
  const ngZone = this._injector.get(NgZone);
11751
11797
  return ngZone.run(() => {
11752
- profiler(10);
11798
+ profiler(ProfilerEvent.BootstrapComponentStart);
11753
11799
  (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
11754
11800
  const isComponentFactory = componentOrFactory instanceof ComponentFactory$1;
11755
11801
  const initStatus = this._injector.get(ApplicationInitStatus);
@@ -11785,7 +11831,7 @@ class ApplicationRef {
11785
11831
  const _console = this._injector.get(Console);
11786
11832
  _console.log(`Angular is running in development mode.`);
11787
11833
  }
11788
- profiler(11, compRef);
11834
+ profiler(ProfilerEvent.BootstrapComponentEnd, compRef);
11789
11835
  return compRef;
11790
11836
  });
11791
11837
  }
@@ -11796,7 +11842,7 @@ class ApplicationRef {
11796
11842
  this._tick();
11797
11843
  }
11798
11844
  _tick() {
11799
- profiler(12);
11845
+ profiler(ProfilerEvent.ChangeDetectionStart);
11800
11846
  if (this.tracingSnapshot !== null) {
11801
11847
  this.tracingSnapshot.run(TracingAction.CHANGE_DETECTION, this.tickImpl);
11802
11848
  } else {
@@ -11806,6 +11852,7 @@ class ApplicationRef {
11806
11852
  tickImpl = () => {
11807
11853
  (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
11808
11854
  if (this._runningTick) {
11855
+ profiler(ProfilerEvent.ChangeDetectionEnd);
11809
11856
  throw new RuntimeError(101, ngDevMode && 'ApplicationRef.tick is called recursively');
11810
11857
  }
11811
11858
  const prevConsumer = setActiveConsumer(null);
@@ -11823,7 +11870,7 @@ class ApplicationRef {
11823
11870
  this.tracingSnapshot = null;
11824
11871
  setActiveConsumer(prevConsumer);
11825
11872
  this.afterTick.next();
11826
- profiler(13);
11873
+ profiler(ProfilerEvent.ChangeDetectionEnd);
11827
11874
  }
11828
11875
  };
11829
11876
  synchronize() {
@@ -11834,9 +11881,12 @@ class ApplicationRef {
11834
11881
  }
11835
11882
  let runs = 0;
11836
11883
  while (this.dirtyFlags !== 0 && runs++ < MAXIMUM_REFRESH_RERUNS) {
11837
- profiler(14);
11838
- this.synchronizeOnce();
11839
- profiler(15);
11884
+ profiler(ProfilerEvent.ChangeDetectionSyncStart);
11885
+ try {
11886
+ this.synchronizeOnce();
11887
+ } finally {
11888
+ profiler(ProfilerEvent.ChangeDetectionSyncEnd);
11889
+ }
11840
11890
  }
11841
11891
  if ((typeof ngDevMode === 'undefined' || ngDevMode) && runs >= MAXIMUM_REFRESH_RERUNS) {
11842
11892
  throw new RuntimeError(103, ngDevMode && 'Infinite change detection while refreshing application views. ' + 'Ensure views are not calling `markForCheck` on every template execution or ' + 'that afterRender hooks always mark views for check.');
@@ -13175,15 +13225,19 @@ function ɵɵcontrolCreate() {
13175
13225
  const lView = getLView();
13176
13226
  const tView = getTView();
13177
13227
  const tNode = getCurrentTNode();
13178
- const control = tView.firstCreatePass ? getControlDirectiveFirstCreatePass(tView, tNode, lView) : getControlDirective(tNode, lView);
13228
+ if (tView.firstCreatePass) {
13229
+ initializeControlFirstCreatePass(tView, tNode, lView);
13230
+ }
13231
+ const control = getControlDirective(tNode, lView);
13179
13232
  if (!control) {
13180
13233
  return;
13181
13234
  }
13182
- if (tNode.flags & 2048) {
13235
+ performanceMarkFeature('NgSignalForms');
13236
+ if (tNode.flags & 1024) {
13183
13237
  listenToCustomControl(lView, tNode, control, 'value');
13184
- } else if (tNode.flags & 4096) {
13238
+ } else if (tNode.flags & 2048) {
13185
13239
  listenToCustomControl(lView, tNode, control, 'checked');
13186
- } else if (tNode.flags & 8192) {
13240
+ } else if (tNode.flags & 4096) {
13187
13241
  listenToInteropControl(control);
13188
13242
  } else {
13189
13243
  listenToNativeControl(lView, tNode, control);
@@ -13201,11 +13255,12 @@ function ɵɵcontrol(value, sanitizer) {
13201
13255
  }
13202
13256
  const control = getControlDirective(tNode, lView);
13203
13257
  if (control) {
13204
- if (tNode.flags & 2048) {
13258
+ updateControlClasses(lView, tNode, control);
13259
+ if (tNode.flags & 1024) {
13205
13260
  updateCustomControl(tNode, lView, control, 'value');
13206
- } else if (tNode.flags & 4096) {
13261
+ } else if (tNode.flags & 2048) {
13207
13262
  updateCustomControl(tNode, lView, control, 'checked');
13208
- } else if (tNode.flags & 8192) {
13263
+ } else if (tNode.flags & 4096) {
13209
13264
  updateInteropControl(lView, control);
13210
13265
  } else {
13211
13266
  updateNativeControl(tNode, lView, control);
@@ -13213,82 +13268,84 @@ function ɵɵcontrol(value, sanitizer) {
13213
13268
  }
13214
13269
  nextBindingIndex();
13215
13270
  }
13216
- const HAS_CONTROL_MASK = /* @__PURE__ */(() => 16384 | 2048 | 4096)();
13217
- function getControlDirectiveFirstCreatePass(tView, tNode, lView) {
13271
+ function initializeControlFirstCreatePass(tView, tNode, lView) {
13272
+ ngDevMode && assertFirstCreatePass(tView);
13218
13273
  const directiveIndices = tNode.inputs?.['field'];
13219
13274
  if (!directiveIndices) {
13220
13275
  return;
13221
13276
  }
13222
- let componentIndex;
13223
- if (isComponentHost(tNode)) {
13224
- componentIndex = tNode.directiveStart + tNode.componentOffset;
13225
- if (directiveIndices.includes(componentIndex)) {
13226
- return;
13227
- }
13277
+ if (isComponentHost(tNode) && directiveIndices.includes(tNode.directiveStart + tNode.componentOffset)) {
13278
+ return;
13228
13279
  }
13229
- const control = findControlDirective(lView, directiveIndices);
13230
- if (!control) {
13280
+ const controlIndex = directiveIndices.find(index => ɵCONTROL in lView[index]);
13281
+ if (controlIndex === undefined) {
13231
13282
  return;
13232
13283
  }
13233
- tNode.flags |= 1024;
13234
- if (isComponentHost(tNode)) {
13235
- const componentDef = tView.data[componentIndex];
13236
- if (hasModelInput(componentDef, 'value')) {
13284
+ tNode.fieldIndex = controlIndex;
13285
+ const isCustomControl = isCustomControlFirstCreatePass(tView, tNode);
13286
+ if (!isCustomControl && lView[controlIndex].ɵinteropControl) {
13287
+ tNode.flags |= 4096;
13288
+ return;
13289
+ }
13290
+ const isNativeControl = isNativeControlFirstCreatePass(tView, tNode);
13291
+ if (isNativeControl || isCustomControl) {
13292
+ return;
13293
+ }
13294
+ const tagName = tNode.value;
13295
+ throw new RuntimeError(318, `'<${tagName}>' is an invalid [field] directive host. The host must be a native form control ` + `(such as <input>', '<select>', or '<textarea>') or a custom form control with a 'value' or ` + `'checked' model.`);
13296
+ }
13297
+ function isCustomControlFirstCreatePass(tView, tNode) {
13298
+ for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {
13299
+ const directiveDef = tView.data[i];
13300
+ if (hasModelInput(directiveDef, 'value')) {
13301
+ tNode.flags |= 1024;
13302
+ tNode.customControlIndex = i;
13303
+ return true;
13304
+ }
13305
+ if (hasModelInput(directiveDef, 'checked')) {
13237
13306
  tNode.flags |= 2048;
13238
- } else if (hasModelInput(componentDef, 'checked')) {
13239
- tNode.flags |= 4096;
13307
+ tNode.customControlIndex = i;
13308
+ return true;
13240
13309
  }
13241
13310
  }
13242
- if (!(tNode.flags & HAS_CONTROL_MASK) && control.ɵinteropControl) {
13243
- tNode.flags |= 8192;
13244
- return control;
13311
+ return false;
13312
+ }
13313
+ function isNativeControlFirstCreatePass(tView, tNode) {
13314
+ if (!isNativeControl(tNode)) {
13315
+ return false;
13245
13316
  }
13246
- if (isNativeControl(tNode)) {
13317
+ tNode.flags |= 8192;
13318
+ if (isNumericInput(tNode)) {
13247
13319
  tNode.flags |= 16384;
13248
- if (isNumericInput(tNode)) {
13249
- tNode.flags |= 32768;
13250
- }
13251
- if (isTextControl(tNode)) {
13252
- tNode.flags |= 65536;
13253
- }
13254
13320
  }
13255
- if (tNode.flags & HAS_CONTROL_MASK) {
13256
- return control;
13321
+ if (isTextControl(tNode)) {
13322
+ tNode.flags |= 32768;
13257
13323
  }
13258
- const tagName = tNode.value;
13259
- throw new RuntimeError(318, `'<${tagName}>' is an invalid [field] directive host. The host must be a native form control ` + `(such as <input>', '<select>', or '<textarea>') or a custom form control component with a ` + `'value' or 'checked' model.`);
13324
+ return true;
13260
13325
  }
13261
13326
  function getControlDirective(tNode, lView) {
13262
- return tNode.flags & 1024 ? findControlDirective(lView, tNode.inputs['field']) : undefined;
13263
- }
13264
- function findControlDirective(lView, directiveIndices) {
13265
- for (let index of directiveIndices) {
13266
- const directive = lView[index];
13267
- if (ɵCONTROL in directive) {
13268
- return directive;
13269
- }
13270
- }
13271
- return;
13327
+ const index = tNode.fieldIndex;
13328
+ return index === -1 ? null : lView[index];
13272
13329
  }
13273
- function hasModelInput(componentDef, name) {
13274
- return hasSignalInput(componentDef, name) && hasOutput(componentDef, name + 'Change');
13330
+ function hasModelInput(directiveDef, name) {
13331
+ return hasSignalInput(directiveDef, name) && hasOutput(directiveDef, name + 'Change');
13275
13332
  }
13276
- function hasSignalInput(componentDef, name) {
13277
- const input = componentDef.inputs[name];
13333
+ function hasSignalInput(directiveDef, name) {
13334
+ const input = directiveDef.inputs[name];
13278
13335
  return input && (input[1] & InputFlags.SignalBased) !== 0;
13279
13336
  }
13280
- function hasOutput(componentDef, name) {
13281
- return name in componentDef.outputs;
13337
+ function hasOutput(directiveDef, name) {
13338
+ return name in directiveDef.outputs;
13282
13339
  }
13283
13340
  function listenToCustomControl(lView, tNode, control, modelName) {
13284
- const componentIndex = tNode.directiveStart + tNode.componentOffset;
13285
- const outputName = modelName + 'Change';
13286
- listenToOutput(tNode, lView, componentIndex, outputName, outputName, wrapListener(tNode, lView, value => control.state().setControlValue(value)));
13287
13341
  const tView = getTView();
13288
- const componentDef = tView.data[componentIndex];
13342
+ const directiveIndex = tNode.customControlIndex;
13343
+ const outputName = modelName + 'Change';
13344
+ listenToOutput(tNode, lView, directiveIndex, outputName, outputName, wrapListener(tNode, lView, value => control.state().setControlValue(value)));
13345
+ const directiveDef = tView.data[directiveIndex];
13289
13346
  const touchedOutputName = 'touchedChange';
13290
- if (hasOutput(componentDef, touchedOutputName)) {
13291
- listenToOutput(tNode, lView, componentIndex, touchedOutputName, touchedOutputName, wrapListener(tNode, lView, () => control.state().markAsTouched()));
13347
+ if (hasOutput(directiveDef, touchedOutputName)) {
13348
+ listenToOutput(tNode, lView, directiveIndex, touchedOutputName, touchedOutputName, wrapListener(tNode, lView, () => control.state().markAsTouched()));
13292
13349
  }
13293
13350
  }
13294
13351
  function listenToInteropControl(control) {
@@ -13317,7 +13374,7 @@ function listenToNativeControl(lView, tNode, control) {
13317
13374
  };
13318
13375
  listenToDomEvent(tNode, tView, lView, undefined, renderer, 'blur', blurListener, wrapListener(tNode, lView, blurListener));
13319
13376
  if (tNode.type === 2 && tNode.value === 'select' && typeof MutationObserver === 'function') {
13320
- const observer = observeSelectMutations(element, getControlDirective(tNode, lView));
13377
+ const observer = observeSelectMutations(element, control);
13321
13378
  storeCleanupWithContext(tView, lView, observer, observer.disconnect);
13322
13379
  }
13323
13380
  }
@@ -13358,27 +13415,46 @@ function isRelevantSelectMutation(mutation) {
13358
13415
  }
13359
13416
  return false;
13360
13417
  }
13418
+ function updateControlClasses(lView, tNode, control) {
13419
+ if (control.classes) {
13420
+ const bindings = getControlBindings(lView);
13421
+ bindings.classes ??= {};
13422
+ control.state();
13423
+ const renderer = lView[RENDERER];
13424
+ const element = getNativeByTNode(tNode, lView);
13425
+ for (const [className, enabled] of control.classes) {
13426
+ const isEnabled = enabled();
13427
+ if (controlClassBindingUpdated(bindings.classes, className, isEnabled)) {
13428
+ if (isEnabled) {
13429
+ renderer.addClass(element, className);
13430
+ } else {
13431
+ renderer.removeClass(element, className);
13432
+ }
13433
+ }
13434
+ }
13435
+ }
13436
+ }
13361
13437
  function updateCustomControl(tNode, lView, control, modelName) {
13362
13438
  const tView = getTView();
13363
- const componentIndex = tNode.directiveStart + tNode.componentOffset;
13364
- const component = lView[componentIndex];
13365
- const componentDef = tView.data[componentIndex];
13439
+ const directiveIndex = tNode.customControlIndex;
13440
+ const directive = lView[directiveIndex];
13441
+ const directiveDef = tView.data[directiveIndex];
13366
13442
  const state = control.state();
13367
13443
  const bindings = getControlBindings(lView);
13368
- maybeUpdateInput(componentDef, component, bindings, state, CONTROL_VALUE, modelName);
13444
+ maybeUpdateInput(directiveDef, directive, bindings, state, CONTROL_VALUE, modelName);
13369
13445
  for (const key of CONTROL_BINDING_KEYS) {
13370
13446
  const inputName = CONTROL_BINDING_NAMES[key];
13371
- maybeUpdateInput(componentDef, component, bindings, state, key, inputName);
13447
+ maybeUpdateInput(directiveDef, directive, bindings, state, key, inputName);
13372
13448
  }
13373
- if (tNode.flags & 16384) {
13449
+ if (tNode.flags & 8192) {
13374
13450
  updateNativeControl(tNode, lView, control);
13375
13451
  }
13376
13452
  }
13377
- function maybeUpdateInput(componentDef, component, bindings, state, key, inputName) {
13378
- if (inputName in componentDef.inputs) {
13453
+ function maybeUpdateInput(directiveDef, directive, bindings, state, key, inputName) {
13454
+ if (inputName in directiveDef.inputs) {
13379
13455
  const value = state[key]?.();
13380
13456
  if (controlBindingUpdated(bindings, key, value)) {
13381
- writeToDirectiveInput(componentDef, component, inputName, value);
13457
+ writeToDirectiveInput(directiveDef, directive, inputName, value);
13382
13458
  }
13383
13459
  }
13384
13460
  }
@@ -13413,11 +13489,11 @@ function updateNativeControl(tNode, lView, control) {
13413
13489
  updateBooleanAttribute(renderer, element, bindings, state, DISABLED);
13414
13490
  updateBooleanAttribute(renderer, element, bindings, state, READONLY);
13415
13491
  updateBooleanAttribute(renderer, element, bindings, state, REQUIRED);
13416
- if (tNode.flags & 32768) {
13492
+ if (tNode.flags & 16384) {
13417
13493
  updateOptionalAttribute(renderer, element, bindings, state, MAX);
13418
13494
  updateOptionalAttribute(renderer, element, bindings, state, MIN);
13419
13495
  }
13420
- if (tNode.flags & 65536) {
13496
+ if (tNode.flags & 32768) {
13421
13497
  updateOptionalAttribute(renderer, element, bindings, state, MAX_LENGTH);
13422
13498
  updateOptionalAttribute(renderer, element, bindings, state, MIN_LENGTH);
13423
13499
  }
@@ -13579,6 +13655,14 @@ function controlBindingUpdated(bindings, key, value) {
13579
13655
  bindings[key] = value;
13580
13656
  return true;
13581
13657
  }
13658
+ function controlClassBindingUpdated(bindings, className, value) {
13659
+ const oldValue = bindings[className];
13660
+ if (Object.is(oldValue, value)) {
13661
+ return false;
13662
+ }
13663
+ bindings[className] = value;
13664
+ return true;
13665
+ }
13582
13666
  function setBooleanAttribute(renderer, element, name, value) {
13583
13667
  if (value) {
13584
13668
  renderer.setAttribute(element, name, '');
@@ -16407,6 +16491,7 @@ function ɵɵtwoWayListener(eventName, listenerFn) {
16407
16491
 
16408
16492
  const UNINITIALIZED_LET = {};
16409
16493
  function ɵɵdeclareLet(index) {
16494
+ performanceMarkFeature('NgLet');
16410
16495
  const tView = getTView();
16411
16496
  const lView = getLView();
16412
16497
  const adjustedIndex = index + HEADER_OFFSET;
@@ -16416,7 +16501,6 @@ function ɵɵdeclareLet(index) {
16416
16501
  return ɵɵdeclareLet;
16417
16502
  }
16418
16503
  function ɵɵstoreLet(value) {
16419
- performanceMarkFeature('NgLet');
16420
16504
  const tView = getTView();
16421
16505
  const lView = getLView();
16422
16506
  const index = getSelectedIndex();
@@ -18591,5 +18675,5 @@ function getDebugNode(nativeNode) {
18591
18675
  return null;
18592
18676
  }
18593
18677
 
18594
- export { AFTER_RENDER_PHASES, ANIMATIONS_DISABLED, ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AcxChangeDetectionStrategy, AcxViewEncapsulation, AfterRenderImpl, AfterRenderManager, AfterRenderSequence, ApplicationInitStatus, ApplicationRef, Attribute, COMPILER_OPTIONS, CONTAINERS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionSchedulerImpl, ChangeDetectionStrategy, Compiler, CompilerFactory, Component, ComponentFactory, ComponentFactory$1, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ComponentRef as ComponentRef$1, Console, DEFAULT_CURRENCY_CODE, DEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DEFER_BLOCK_ID, DEFER_BLOCK_SSR_ID_ATTRIBUTE, DEFER_BLOCK_STATE$1 as DEFER_BLOCK_STATE, DEFER_BLOCK_STATE as DEFER_BLOCK_STATE$1, DEFER_HYDRATE_TRIGGERS, DEFER_PARENT_BLOCK_ID, DEHYDRATED_BLOCK_REGISTRY, DISCONNECTED_NODES, DebugElement, DebugEventListener, DebugNode, DeferBlockBehavior, DeferBlockState, DehydratedBlockRegistry, Directive, ELEMENT_CONTAINERS, EVENT_REPLAY_ENABLED_DEFAULT, ElementRef, EnvironmentNgModuleRefAdapter, Framework, Host, HostBinding, HostListener, HydrationStatus, I18N_DATA, IMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS, IS_ENABLED_BLOCKING_INITIAL_NAVIGATION, IS_EVENT_REPLAY_ENABLED, IS_HYDRATION_DOM_REUSE_ENABLED, IS_I18N_HYDRATION_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED, Inject, Injectable, Input, JSACTION_BLOCK_ELEMENT_MAP, JSACTION_EVENT_CONTRACT, LContext, LOCALE_ID, LocaleDataIndex, MAX_ANIMATION_TIMEOUT, MULTIPLIER, MissingTranslationStrategy, ModuleWithComponentFactories, NGH_ATTR_NAME, NGH_DATA_KEY, NGH_DEFER_BLOCKS_KEY, NODES, NOOP_AFTER_RENDER_REF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE, NO_ERRORS_SCHEMA, NUM_ROOT_NODES, NgModule, NgModuleFactory, NgModuleFactory$1, NgModuleRef, NgModuleRef$1, Optional, Output, PLATFORM_ID, PLATFORM_INITIALIZER, PRESERVE_HOST_CONTENT, Pipe, QueryList, ReflectionCapabilities, Renderer2, RendererFactory2, RendererStyleFlags2, SKIP_HYDRATION_ATTR_NAME, SSR_CONTENT_INTEGRITY_MARKER, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TEMPLATES, TEMPLATE_ID, TESTABILITY, TESTABILITY_GETTER, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TimerScheduler, TracingAction, TracingService, TransferState, Type, UseExhaustiveCheckNoChanges, ViewContainerRef, ViewEncapsulation, ViewRef, _sanitizeHtml, _sanitizeUrl, afterEveryRender, afterNextRender, allLeavingAnimations, allowSanitizationBypassAndThrow, angularCoreEnv, appendDeferBlocksToJSActionMap, asNativeElements, assertComponentDef, assertStandaloneComponentType, bypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript, bypassSanitizationTrustStyle, bypassSanitizationTrustUrl, calcPathForNode, checkNoChangesInternal, cleanupDehydratedViews, clearResolutionOfComponentResourcesQueue, collectNativeNodes, collectNativeNodesInLContainer, compileComponent, compileDirective, compileNgModule, compileNgModuleDefs, compilePipe, convertHydrateTriggersToJsAction, countBlocksSkippedByHydration, createEnvironmentInjector, createMultiResultQuerySignalFn, createNgModule, createNgModuleRef, createNgModuleRefWithProviders, createSingleResultOptionalQuerySignalFn, createSingleResultRequiredQuerySignalFn, depsTracker, devModeEqual, enableApplyRootElementTransformImpl, enableClaimDehydratedIcuCaseImpl, enableFindMatchingDehydratedViewImpl, enableLocateOrCreateContainerAnchorImpl, enableLocateOrCreateContainerRefImpl, enableLocateOrCreateElementContainerNodeImpl, enableLocateOrCreateElementNodeImpl, enableLocateOrCreateI18nNodeImpl, enableLocateOrCreateTextNodeImpl, enablePrepareI18nBlockForHydrationImpl, enableProfiling, enableRetrieveDeferBlockDataImpl, enableRetrieveHydrationInfoImpl, enableStashEventListenerImpl, findLocaleData, flushModuleScopingQueueAsMuchAsPossible, gatherDeferBlocksCommentNodes, generateStandaloneInDeclarationsError, getAsyncClassMetadataFn, getCompilerFacade, getDebugNode, getDeferBlocks$1 as getDeferBlocks, getDirectives, getDocument, getHostElement, getLContext, getLDeferBlockDetails, getLNodeForHydration, getLocaleCurrencyCode, getLocalePluralCase, getOrComputeI18nChildren, getRegisteredNgModuleType, getSanitizationBypassType, getTDeferBlockDetails, getTransferState, inferTagNameFromDefinition, inputBinding, invokeListeners, isBoundToModule, isComponentDefPendingResolution, isComponentResourceResolutionQueueEmpty, isDeferBlock, isDetachedByI18n, isDisconnectedNode, isI18nHydrationEnabled, isI18nHydrationSupportEnabled, isInSkipHydrationBlock, isIncrementalHydrationEnabled, isJsObject, isLetDeclaration, isListLikeIterable, isNgModule, isPromise, isSignal, isSubscribable, isTNodeShape, isViewDirty, isWritableSignal, iterateListLike, makePropDecorator, makeStateKey, markForRefresh, noSideEffects, optionsReducer, outputBinding, patchComponentDefWithScope, performanceMarkFeature, processAndInitTriggers, processBlockData, processTextNodeBeforeSerialization, profiler, provideAppInitializer, provideNgReflectAttributes, provideZonelessChangeDetection, provideZonelessChangeDetectionInternal, publishDefaultGlobalUtils, publishExternalGlobalUtil, publishSignalConfiguration, readHydrationInfo, readPatchedLView, registerLocaleData, registerNgModuleType, remove, removeListeners, renderDeferBlockState, resetCompiledComponents, resetIncrementalHydrationEnabledWarnedForTests, resetJitOptions, resolveComponentResources, restoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest, setClassMetadata, setClassMetadataAsync, setDocument, setIsI18nHydrationSupportEnabled, setJSActionAttributes, setJitOptions, setLocaleId, setStashFn, setTestabilityGetter, sharedMapFunction, sharedStashFunction, transitiveScopesFor, triggerHydrationFromBlockName, triggerResourceLoading, trySerializeI18nBlock, twoWayBinding, unregisterAllLocaleData, unsupportedProjectionOfDomNodes, unwrapSafeValue, validAppIdInitializer, validateMatchingNode, validateNodeExists, verifySsrContentsIntegrity, ɵCONTROL, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetClassDebugInfo, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, ɵɵExternalStylesFeature, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵanimateEnter, ɵɵanimateEnterListener, ɵɵanimateLeave, ɵɵanimateLeaveListener, ɵɵariaProperty, ɵɵattachSourceLocations, ɵɵattribute, ɵɵclassMap, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵconditionalBranchCreate, ɵɵconditionalCreate, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵcontrol, ɵɵcontrolCreate, ɵɵ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, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdomElement, ɵɵdomElementContainer, ɵɵdomElementContainerEnd, ɵɵdomElementContainerStart, ɵɵdomElementEnd, ɵɵdomElementStart, ɵɵdomListener, ɵɵdomProperty, ɵɵdomTemplate, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵgetReplaceMetadataURL, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinjectAttribute, ɵɵinterpolate, ɵɵinterpolate1, ɵɵinterpolate2, ɵɵinterpolate3, ɵɵinterpolate4, ɵɵinterpolate5, ɵɵinterpolate6, ɵɵinterpolate7, ɵɵinterpolate8, ɵɵinterpolateV, ɵɵinvalidFactory, ɵɵlistener, ɵɵloadQuery, ɵɵnextContext, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleProp, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
18678
+ export { AFTER_RENDER_PHASES, ANIMATIONS_DISABLED, ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AcxChangeDetectionStrategy, AcxViewEncapsulation, AfterRenderImpl, AfterRenderManager, AfterRenderSequence, ApplicationInitStatus, ApplicationRef, Attribute, COMPILER_OPTIONS, CONTAINERS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionSchedulerImpl, ChangeDetectionStrategy, Compiler, CompilerFactory, Component, ComponentFactory, ComponentFactory$1, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ComponentRef as ComponentRef$1, Console, DEFAULT_CURRENCY_CODE, DEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DEFER_BLOCK_ID, DEFER_BLOCK_SSR_ID_ATTRIBUTE, DEFER_BLOCK_STATE$1 as DEFER_BLOCK_STATE, DEFER_BLOCK_STATE as DEFER_BLOCK_STATE$1, DEFER_HYDRATE_TRIGGERS, DEFER_PARENT_BLOCK_ID, DEHYDRATED_BLOCK_REGISTRY, DISCONNECTED_NODES, DebugElement, DebugEventListener, DebugNode, DeferBlockBehavior, DeferBlockState, DehydratedBlockRegistry, Directive, ELEMENT_CONTAINERS, EVENT_REPLAY_ENABLED_DEFAULT, ElementRef, EnvironmentNgModuleRefAdapter, Host, HostBinding, HostListener, HydrationStatus, I18N_DATA, IMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS, IS_ENABLED_BLOCKING_INITIAL_NAVIGATION, IS_EVENT_REPLAY_ENABLED, IS_HYDRATION_DOM_REUSE_ENABLED, IS_I18N_HYDRATION_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED, Inject, Injectable, Input, JSACTION_BLOCK_ELEMENT_MAP, JSACTION_EVENT_CONTRACT, LContext, LOCALE_ID, LocaleDataIndex, MAX_ANIMATION_TIMEOUT, MULTIPLIER, MissingTranslationStrategy, ModuleWithComponentFactories, NGH_ATTR_NAME, NGH_DATA_KEY, NGH_DEFER_BLOCKS_KEY, NODES, NOOP_AFTER_RENDER_REF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE, NO_ERRORS_SCHEMA, NUM_ROOT_NODES, NgModule, NgModuleFactory, NgModuleFactory$1, NgModuleRef, NgModuleRef$1, Optional, Output, PLATFORM_ID, PLATFORM_INITIALIZER, PRESERVE_HOST_CONTENT, Pipe, ProfilerEvent, QueryList, ReflectionCapabilities, Renderer2, RendererFactory2, RendererStyleFlags2, SKIP_HYDRATION_ATTR_NAME, SSR_CONTENT_INTEGRITY_MARKER, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TEMPLATES, TEMPLATE_ID, TESTABILITY, TESTABILITY_GETTER, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TimerScheduler, TracingAction, TracingService, TransferState, Type, UseExhaustiveCheckNoChanges, ViewContainerRef, ViewEncapsulation, ViewRef, _sanitizeHtml, _sanitizeUrl, afterEveryRender, afterNextRender, allLeavingAnimations, allowSanitizationBypassAndThrow, angularCoreEnv, appendDeferBlocksToJSActionMap, asNativeElements, assertComponentDef, assertStandaloneComponentType, bypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript, bypassSanitizationTrustStyle, bypassSanitizationTrustUrl, calcPathForNode, checkNoChangesInternal, cleanupDehydratedViews, clearResolutionOfComponentResourcesQueue, collectNativeNodes, collectNativeNodesInLContainer, compileComponent, compileDirective, compileNgModule, compileNgModuleDefs, compilePipe, convertHydrateTriggersToJsAction, countBlocksSkippedByHydration, createEnvironmentInjector, createMultiResultQuerySignalFn, createNgModule, createNgModuleRef, createNgModuleRefWithProviders, createSingleResultOptionalQuerySignalFn, createSingleResultRequiredQuerySignalFn, depsTracker, devModeEqual, enableApplyRootElementTransformImpl, enableClaimDehydratedIcuCaseImpl, enableFindMatchingDehydratedViewImpl, enableLocateOrCreateContainerAnchorImpl, enableLocateOrCreateContainerRefImpl, enableLocateOrCreateElementContainerNodeImpl, enableLocateOrCreateElementNodeImpl, enableLocateOrCreateI18nNodeImpl, enableLocateOrCreateTextNodeImpl, enablePrepareI18nBlockForHydrationImpl, enableProfiling, enableRetrieveDeferBlockDataImpl, enableRetrieveHydrationInfoImpl, enableStashEventListenerImpl, findLocaleData, flushModuleScopingQueueAsMuchAsPossible, gatherDeferBlocksCommentNodes, generateStandaloneInDeclarationsError, getAsyncClassMetadataFn, getCompilerFacade, getDebugNode, getDeferBlocks$1 as getDeferBlocks, getDirectives, getDocument, getHostElement, getLContext, getLDeferBlockDetails, getLNodeForHydration, getLocaleCurrencyCode, getLocalePluralCase, getOrComputeI18nChildren, getRegisteredNgModuleType, getSanitizationBypassType, getTDeferBlockDetails, getTransferState, inferTagNameFromDefinition, inputBinding, invokeListeners, isBoundToModule, isComponentDefPendingResolution, isComponentResourceResolutionQueueEmpty, isDeferBlock, isDetachedByI18n, isDisconnectedNode, isI18nHydrationEnabled, isI18nHydrationSupportEnabled, isInSkipHydrationBlock, isIncrementalHydrationEnabled, isJsObject, isLetDeclaration, isListLikeIterable, isNgModule, isPromise, isSignal, isSubscribable, isTNodeShape, isViewDirty, isWritableSignal, iterateListLike, makePropDecorator, makeStateKey, markForRefresh, noSideEffects, optionsReducer, outputBinding, patchComponentDefWithScope, performanceMarkFeature, processAndInitTriggers, processBlockData, processTextNodeBeforeSerialization, profiler, promiseWithResolvers, provideAppInitializer, provideNgReflectAttributes, provideZonelessChangeDetection, provideZonelessChangeDetectionInternal, publishDefaultGlobalUtils, publishExternalGlobalUtil, publishSignalConfiguration, readHydrationInfo, readPatchedLView, registerLocaleData, registerNgModuleType, remove, removeListeners, renderDeferBlockState, resetCompiledComponents, resetIncrementalHydrationEnabledWarnedForTests, resetJitOptions, resolveComponentResources, restoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest, setClassMetadata, setClassMetadataAsync, setDocument, setIsI18nHydrationSupportEnabled, setJSActionAttributes, setJitOptions, setLocaleId, setStashFn, setTestabilityGetter, sharedMapFunction, sharedStashFunction, transitiveScopesFor, triggerHydrationFromBlockName, triggerResourceLoading, trySerializeI18nBlock, twoWayBinding, unregisterAllLocaleData, unsupportedProjectionOfDomNodes, unwrapSafeValue, validAppIdInitializer, validateMatchingNode, validateNodeExists, verifySsrContentsIntegrity, ɵCONTROL, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetClassDebugInfo, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, ɵɵExternalStylesFeature, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵanimateEnter, ɵɵanimateEnterListener, ɵɵanimateLeave, ɵɵanimateLeaveListener, ɵɵariaProperty, ɵɵattachSourceLocations, ɵɵattribute, ɵɵclassMap, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵconditionalBranchCreate, ɵɵconditionalCreate, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵcontrol, ɵɵcontrolCreate, ɵɵ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, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdomElement, ɵɵdomElementContainer, ɵɵdomElementContainerEnd, ɵɵdomElementContainerStart, ɵɵdomElementEnd, ɵɵdomElementStart, ɵɵdomListener, ɵɵdomProperty, ɵɵdomTemplate, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵgetReplaceMetadataURL, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinjectAttribute, ɵɵinterpolate, ɵɵinterpolate1, ɵɵinterpolate2, ɵɵinterpolate3, ɵɵinterpolate4, ɵɵinterpolate5, ɵɵinterpolate6, ɵɵinterpolate7, ɵɵinterpolate8, ɵɵinterpolateV, ɵɵinvalidFactory, ɵɵlistener, ɵɵloadQuery, ɵɵnextContext, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleProp, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
18595
18679
  //# sourceMappingURL=_debug_node-chunk.mjs.map