@angular/core 22.0.0-next.3 → 22.0.0-next.5

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 (70) hide show
  1. package/fesm2022/_attribute-chunk.mjs +1 -1
  2. package/fesm2022/_debug_node-chunk.mjs +467 -161
  3. package/fesm2022/_debug_node-chunk.mjs.map +1 -1
  4. package/fesm2022/_effect-chunk.mjs +1 -1
  5. package/fesm2022/_effect-chunk.mjs.map +1 -1
  6. package/fesm2022/_not_found-chunk.mjs +1 -1
  7. package/fesm2022/_not_found-chunk.mjs.map +1 -1
  8. package/fesm2022/_pending_tasks-chunk.mjs +2 -2
  9. package/fesm2022/_pending_tasks-chunk.mjs.map +1 -1
  10. package/fesm2022/_resource-chunk.mjs +2 -2
  11. package/fesm2022/_resource-chunk.mjs.map +1 -1
  12. package/fesm2022/_untracked-chunk.mjs +9 -5
  13. package/fesm2022/_untracked-chunk.mjs.map +1 -1
  14. package/fesm2022/_weak_ref-chunk.mjs +1 -1
  15. package/fesm2022/_weak_ref-chunk.mjs.map +1 -1
  16. package/fesm2022/core.mjs +47 -25
  17. package/fesm2022/core.mjs.map +1 -1
  18. package/fesm2022/primitives-di.mjs +1 -1
  19. package/fesm2022/primitives-di.mjs.map +1 -1
  20. package/fesm2022/primitives-event-dispatch.mjs +2 -20
  21. package/fesm2022/primitives-event-dispatch.mjs.map +1 -1
  22. package/fesm2022/primitives-signals.mjs +2 -2
  23. package/fesm2022/primitives-signals.mjs.map +1 -1
  24. package/fesm2022/rxjs-interop.mjs +2 -2
  25. package/fesm2022/rxjs-interop.mjs.map +1 -1
  26. package/fesm2022/testing.mjs +10 -13
  27. package/fesm2022/testing.mjs.map +1 -1
  28. package/package.json +2 -2
  29. package/schematics/bundles/apply_import_manager-CxA_YYgB.cjs +1 -1
  30. package/schematics/bundles/change-detection-eager.cjs +1 -1
  31. package/schematics/bundles/cleanup-unused-imports.cjs +1 -1
  32. package/schematics/bundles/common-to-standalone-migration.cjs +1 -1
  33. package/schematics/bundles/compiler_host-CY14HvaP.cjs +1 -1
  34. package/schematics/bundles/control-flow-migration.cjs +1 -1
  35. package/schematics/bundles/http-xhr-backend.cjs +1 -1
  36. package/schematics/bundles/imports-CKV-ITqD.cjs +1 -1
  37. package/schematics/bundles/index-BtLcQH8g.cjs +1 -1
  38. package/schematics/bundles/inject-migration.cjs +26 -18
  39. package/schematics/bundles/leading_space-BTPRV0wu.cjs +1 -1
  40. package/schematics/bundles/{migrate_ts_type_references-MWoZx-Cb.cjs → migrate_ts_type_references-Dp33iyGx.cjs} +24 -22
  41. package/schematics/bundles/ng_component_template-DPAF1aEA.cjs +1 -1
  42. package/schematics/bundles/ng_decorators-IVztR9rk.cjs +1 -1
  43. package/schematics/bundles/ngclass-to-class-migration.cjs +1 -1
  44. package/schematics/bundles/ngstyle-to-style-migration.cjs +14 -6
  45. package/schematics/bundles/nodes-ZSQ7WZRB.cjs +1 -1
  46. package/schematics/bundles/output-migration.cjs +1 -1
  47. package/schematics/bundles/parse_html-C8eKA9px.cjs +1 -1
  48. package/schematics/bundles/project_paths-D2V-Uh2L.cjs +1 -1
  49. package/schematics/bundles/project_tsconfig_paths-DkkMibv-.cjs +1 -1
  50. package/schematics/bundles/property_name-BCpALNpZ.cjs +1 -1
  51. package/schematics/bundles/route-lazy-loading.cjs +1 -1
  52. package/schematics/bundles/router-testing-module-migration.cjs +1 -1
  53. package/schematics/bundles/self-closing-tags-migration.cjs +1 -1
  54. package/schematics/bundles/signal-input-migration.cjs +2 -2
  55. package/schematics/bundles/signal-queries-migration.cjs +2 -2
  56. package/schematics/bundles/signals.cjs +2 -2
  57. package/schematics/bundles/standalone-migration.cjs +1 -1
  58. package/types/_api-chunk.d.ts +8 -3
  59. package/types/_chrome_dev_tools_performance-chunk.d.ts +1 -1
  60. package/types/_debug_node-chunk.d.ts +19 -36
  61. package/types/_effect-chunk.d.ts +1 -1
  62. package/types/_event_dispatcher-chunk.d.ts +1 -1
  63. package/types/_formatter-chunk.d.ts +1 -1
  64. package/types/_weak_ref-chunk.d.ts +1 -1
  65. package/types/core.d.ts +63 -51
  66. package/types/primitives-di.d.ts +1 -1
  67. package/types/primitives-event-dispatch.d.ts +1 -1
  68. package/types/primitives-signals.d.ts +1 -1
  69. package/types/rxjs-interop.d.ts +1 -1
  70. package/types/testing.d.ts +3 -3
@@ -1,13 +1,13 @@
1
1
  /**
2
- * @license Angular v22.0.0-next.3
2
+ * @license Angular v22.0.0-next.5
3
3
  * (c) 2010-2026 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, inject, DOCUMENT as DOCUMENT$1, ENVIRONMENT_INITIALIZER, formatRuntimeError, isInSkipHydrationBlock as isInSkipHydrationBlock$1, HYDRATION, isContentQueryHost, setCurrentQueryIndex, isDirectiveHost, XSS_SECURITY_URL, RENDERER, renderStringify, getSelectedTNode, ENVIRONMENT, makeEnvironmentProviders, resetPreOrderHookFlags, PARENT, CHILD_TAIL, assertSame, assertFirstUpdatePass, getSelectedIndex, getTView, assertIndexInDeclRange, setSelectedIndex, stringify, ANIMATIONS, NgZone, ChangeDetectionScheduler, ErrorHandler, AFTER_RENDER_SEQUENCES_TO_ADD, markAncestorsForTraversal, assertNotInReactiveContext, assertInInjectionContext, DestroyRef, ViewContext, EnvironmentInjector, assertLContainer, MOVED_VIEWS, isDestroyed, REACTIVE_TEMPLATE_CONSUMER, DECLARATION_LCONTAINER, QUERIES, assertNotReactive, ON_DESTROY_HOOKS, assertFunction, EFFECTS, assertProjectionSlots, NATIVE, assertParentView, CONTAINER_HEADER_OFFSET, assertNotSame, setCurrentDirectiveIndex, setCurrentTNode, getElementDepthCount, increaseElementDepthCount, wasLastNodeCreated, isCurrentTNodeParent, setCurrentTNodeAsNotParent, assertHasParent, INTERNAL_APPLICATION_ERROR_HANDLER, 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, debugStringifyTypeForError, assertNotDefined, nextBindingIndex, getTNode, getDirectiveDefOrThrow, assertComponentType, SVG_NAMESPACE, MATH_ML_NAMESPACE, viewAttachedToContainer, storeCleanupWithContext, signal, createInjectorWithoutInjectorInstances, R3Injector, getNullInjector, internalImportProvidersFrom, initNgDevMode, runInInjectionContext, fillProperties, getBindingsEnabled, lastNodeWasCreated, removeLViewOnDestroy, walkUpViews, getNativeByIndex, assertElement, setInjectorProfiler, EffectRefImpl, NullInjector, INJECTOR_DEF_TYPES, walkProviderTree, getInjectorDef, deepForEach, isTypeProvider, isInInjectionContext, ZONELESS_ENABLED, EffectScheduler, PendingTasksInternal, arrayInsert2, arraySplice, PendingTasks, assertTNodeCreationIndex, decreaseElementDepthCount, isSkipHydrationRootTNode, leaveSkipHydrationBlock, getNamespace, enterSkipHydrationBlock, getCurrentDirectiveDef, assertIndexInExpandoRange, getBindingIndex, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, incrementBindingIndex, keyValueArraySet, keyValueArrayGet, store, getBindingRoot, providerToFactory, emitProviderConfiguredEvent, isClassProvider, 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, PROVIDED_ZONELESS, NoopNgZone, scheduleCallbackWithMicrotask, scheduleCallbackWithRafRace, getNativeByTNodeOrNull } from './_pending_tasks-chunk.mjs';
7
+ import { attachInjectFlag, _global, resolveForwardRef, ɵɵinvalidFactoryDep as __invalidFactoryDep, ɵɵinject as __inject, ɵɵdefineInjector as __defineInjector, ɵɵdefineInjectable as __defineInjectable, newArray, assertString, EMPTY_OBJ, assertFirstCreatePass, assertDefined, assertNotEqual, FLAGS, assertEqual, isInCheckNoChangesMode, PREORDER_HOOK_FLAGS, throwError, assertNumber, assertGreaterThan, HEADER_OFFSET, DECLARATION_VIEW, NG_FACTORY_DEF, isForwardRef, getFactoryDef, convertToBitFlags, isRootView, assertTNodeForLView, enterDI, runInInjectorProfilerContext, getCurrentTNode, getLView, emitInjectorToCreateInstanceEvent, emitInstanceCreatedByInjectorEvent, throwProviderNotFoundError, leaveDI, assertNodeInjector, setInjectImplementation, injectRootLimpMode, stringifyForError, cyclicDependencyErrorWithDetails, cyclicDependencyError, setInjectorProfilerContext, assertDirectiveDef, EMBEDDED_VIEW_INJECTOR, T_HOST, NG_ELEMENT_ID, assertIndexInRange, INJECTOR$1 as INJECTOR, TVIEW, isComponentDef, isComponentHost, DECLARATION_COMPONENT_VIEW, RuntimeError, NG_PROV_DEF, getClosureSafeProperty, getNativeByTNode, flatten, arrayEquals, ID, isLView, assertDomNode, EMPTY_ARRAY, getComponentLViewByIndex, CONTEXT, unwrapRNode, assertLView, HOST, getLViewParent, CHILD_HEAD, NEXT, isLContainer, Injector, CLEANUP, getComponentDef, getDirectiveDef, InjectionToken, inject, ENVIRONMENT_INITIALIZER, DOCUMENT as DOCUMENT$1, formatRuntimeError, isInSkipHydrationBlock as isInSkipHydrationBlock$1, HYDRATION, isContentQueryHost, setCurrentQueryIndex, isDirectiveHost, XSS_SECURITY_URL, RENDERER, renderStringify, getSelectedTNode, ENVIRONMENT, makeEnvironmentProviders, resetPreOrderHookFlags, PARENT, CHILD_TAIL, assertSame, assertFirstUpdatePass, getSelectedIndex, getTView, assertIndexInDeclRange, setSelectedIndex, stringify, ANIMATIONS, AFTER_RENDER_SEQUENCES_TO_ADD, markAncestorsForTraversal, NgZone, ChangeDetectionScheduler, ErrorHandler, assertNotInReactiveContext, assertInInjectionContext, DestroyRef, ViewContext, EnvironmentInjector, INJECTOR as INJECTOR$1, CONTAINER_HEADER_OFFSET, isDestroyed, assertLContainer, MOVED_VIEWS, assertProjectionSlots, NATIVE, REACTIVE_TEMPLATE_CONSUMER, DECLARATION_LCONTAINER, QUERIES, assertParentView, assertNotReactive, ON_DESTROY_HOOKS, assertFunction, EFFECTS, INTERNAL_APPLICATION_ERROR_HANDLER, assertNotSame, isCurrentTNodeParent, setCurrentTNodeAsNotParent, assertHasParent, setCurrentTNode, getElementDepthCount, increaseElementDepthCount, wasLastNodeCreated, setCurrentDirectiveIndex, getCurrentDirectiveIndex, unwrapLView, enterView, leaveView, isCreationMode, markViewForRefresh, setIsInCheckNoChangesMode, setIsRefreshingViews, isExhaustiveCheckNoChanges, requiresRefreshOrTraversal, setBindingIndex, EFFECTS_TO_SCHEDULE, setBindingRootForHostBindings, viewAttachedToChangeDetector, CheckNoChangesMode, 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, debugStringifyTypeForError, assertNotDefined, nextBindingIndex, getTNode, getDirectiveDefOrThrow, assertComponentType, SVG_NAMESPACE, MATH_ML_NAMESPACE, viewAttachedToContainer, storeCleanupWithContext, signal, createInjectorWithoutInjectorInstances, R3Injector, getNullInjector, internalImportProvidersFrom, initNgDevMode, runInInjectionContext, fillProperties, getBindingsEnabled, lastNodeWasCreated, removeLViewOnDestroy, walkUpViews, getNativeByIndex, assertElement, setInjectorProfiler, EffectRefImpl, NullInjector, INJECTOR_DEF_TYPES, walkProviderTree, getInjectorDef, deepForEach, isTypeProvider, isInInjectionContext, ZONELESS_ENABLED, EffectScheduler, PendingTasksInternal, arrayInsert2, arraySplice, PendingTasks, decreaseElementDepthCount, assertTNodeCreationIndex, getNamespace, enterSkipHydrationBlock, isSkipHydrationRootTNode, leaveSkipHydrationBlock, getCurrentDirectiveDef, assertIndexInExpandoRange, getBindingIndex, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, incrementBindingIndex, keyValueArrayGet, keyValueArraySet, store, getBindingRoot, providerToFactory, emitProviderConfiguredEvent, isClassProvider, NG_COMP_DEF, forwardRef, ɵɵrestoreView as __restoreView, ɵɵdisableBindings as __disableBindings, ɵɵenableBindings as __enableBindings, ɵɵnamespaceSVG as __namespaceSVG, ɵɵnamespaceMathML as __namespaceMathML, ɵɵnamespaceHTML as __namespaceHTML, ɵɵresetView as __resetView, NG_MOD_DEF, NG_INJ_DEF, NG_DIR_DEF, NG_PIPE_DEF, PROVIDED_ZONELESS, NoopNgZone, angularZoneInstanceIdProperty, scheduleCallbackWithMicrotask, scheduleCallbackWithRafRace, SCHEDULE_IN_ROOT_ZONE, getNativeByTNodeOrNull } from './_pending_tasks-chunk.mjs';
8
+ import { setActiveConsumer as setActiveConsumer$1 } from '@angular/core/primitives/signals';
8
9
  import { setActiveConsumer, SIGNAL, consumerDestroy, REACTIVE_NODE, consumerPollProducersForChange, consumerBeforeComputation, getActiveConsumer, consumerAfterComputation, createComputed, setThrowInvalidWriteToSignalError } from './_effect-chunk.mjs';
9
10
  import { Subject, Subscription } from 'rxjs';
10
- import { setActiveConsumer as setActiveConsumer$1 } from '@angular/core/primitives/signals';
11
11
  import { map } from 'rxjs/operators';
12
12
  import { Attribute as Attribute$1 } from './_attribute-chunk.mjs';
13
13
 
@@ -1141,7 +1141,7 @@ function lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, notFoundVa
1141
1141
  if (!parentTNode) {
1142
1142
  const embeddedViewInjector = currentLView[EMBEDDED_VIEW_INJECTOR];
1143
1143
  if (embeddedViewInjector) {
1144
- const embeddedViewInjectorValue = embeddedViewInjector.get(token, NOT_FOUND, flags & ~4);
1144
+ const embeddedViewInjectorValue = embeddedViewInjector.get(token, NOT_FOUND, flags & -5);
1145
1145
  if (embeddedViewInjectorValue !== NOT_FOUND) {
1146
1146
  return embeddedViewInjectorValue;
1147
1147
  }
@@ -4245,6 +4245,10 @@ function determineLongestAnimationFromElementAnimations(el, animationsMap, anima
4245
4245
  }
4246
4246
  const animDuration = typeof timing?.duration === 'number' ? timing.duration : 0;
4247
4247
  let duration = (timing?.delay ?? 0) + animDuration;
4248
+ const playbackRate = animation.playbackRate;
4249
+ if (playbackRate !== undefined && playbackRate !== 0 && playbackRate !== 1) {
4250
+ duration /= Math.abs(playbackRate);
4251
+ }
4248
4252
  let propertyName;
4249
4253
  let animationName;
4250
4254
  if (animation.animationName) {
@@ -4479,11 +4483,14 @@ const NOOP_AFTER_RENDER_REF = {
4479
4483
 
4480
4484
  const ANIMATION_QUEUE = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'AnimationQueue' : '', {
4481
4485
  factory: () => {
4486
+ const injector = inject(EnvironmentInjector);
4487
+ const queue = new Set();
4488
+ injector.onDestroy(() => queue.clear());
4482
4489
  return {
4483
- queue: new Set(),
4490
+ queue,
4484
4491
  isScheduled: false,
4485
4492
  scheduler: null,
4486
- injector: inject(EnvironmentInjector)
4493
+ injector
4487
4494
  };
4488
4495
  }
4489
4496
  });
@@ -4500,6 +4507,16 @@ function addToAnimationQueue(injector, animationFns, animationData) {
4500
4507
  }
4501
4508
  animationQueue.scheduler && animationQueue.scheduler(injector);
4502
4509
  }
4510
+ function removeAnimationsFromQueue(injector, animationFns) {
4511
+ const animationQueue = injector.get(ANIMATION_QUEUE);
4512
+ if (Array.isArray(animationFns)) {
4513
+ for (const animateFn of animationFns) {
4514
+ animationQueue.queue.delete(animateFn);
4515
+ }
4516
+ } else {
4517
+ animationQueue.queue.delete(animationFns);
4518
+ }
4519
+ }
4503
4520
  function removeFromAnimationQueue(injector, animationData) {
4504
4521
  const animationQueue = injector.get(ANIMATION_QUEUE);
4505
4522
  if (animationData.detachedLeaveAnimationFns) {
@@ -4541,6 +4558,137 @@ function maybeQueueEnterAnimation(parentLView, parent, tNode, injector) {
4541
4558
  queueEnterAnimations(injector, enterAnimations);
4542
4559
  }
4543
4560
  }
4561
+ function runLeaveAnimationsWithCallback(lView, tNode, injector, callback) {
4562
+ try {
4563
+ injector.get(INJECTOR$1);
4564
+ } catch {
4565
+ return callback(false);
4566
+ }
4567
+ const animations = lView?.[ANIMATIONS];
4568
+ if (animations?.enter?.has(tNode.index)) {
4569
+ removeAnimationsFromQueue(injector, animations.enter.get(tNode.index).animateFns);
4570
+ }
4571
+ const nodesWithExitAnimations = aggregateDescendantAnimations(lView, tNode, animations);
4572
+ if (nodesWithExitAnimations.size === 0) {
4573
+ let hasNestedAnimations = false;
4574
+ if (lView) {
4575
+ const nestedPromises = [];
4576
+ collectNestedViewAnimations(lView, tNode, nestedPromises);
4577
+ hasNestedAnimations = nestedPromises.length > 0;
4578
+ }
4579
+ if (!hasNestedAnimations) {
4580
+ return callback(false);
4581
+ }
4582
+ }
4583
+ if (lView) allLeavingAnimations.add(lView[ID]);
4584
+ addToAnimationQueue(injector, () => executeLeaveAnimations(lView, tNode, animations || undefined, nodesWithExitAnimations, callback), animations || undefined);
4585
+ }
4586
+ function aggregateDescendantAnimations(lView, tNode, animations) {
4587
+ const nodesWithExitAnimations = new Map();
4588
+ const leaveAnimations = animations?.leave;
4589
+ if (leaveAnimations && leaveAnimations.has(tNode.index)) {
4590
+ nodesWithExitAnimations.set(tNode.index, leaveAnimations.get(tNode.index));
4591
+ }
4592
+ if (lView && leaveAnimations) {
4593
+ for (const [index, animationData] of leaveAnimations) {
4594
+ if (nodesWithExitAnimations.has(index)) continue;
4595
+ const nestedTNode = lView[TVIEW].data[index];
4596
+ let parent = nestedTNode.parent;
4597
+ while (parent) {
4598
+ if (parent === tNode) {
4599
+ nodesWithExitAnimations.set(index, animationData);
4600
+ break;
4601
+ }
4602
+ parent = parent.parent;
4603
+ }
4604
+ }
4605
+ }
4606
+ return nodesWithExitAnimations;
4607
+ }
4608
+ function executeLeaveAnimations(lView, tNode, animations, nodesWithExitAnimations, callback) {
4609
+ const runningAnimations = [];
4610
+ if (animations && animations.leave) {
4611
+ for (const [index] of nodesWithExitAnimations) {
4612
+ if (!animations.leave.has(index)) continue;
4613
+ const currentAnimationData = animations.leave.get(index);
4614
+ for (const animationFn of currentAnimationData.animateFns) {
4615
+ const {
4616
+ promise
4617
+ } = animationFn();
4618
+ runningAnimations.push(promise);
4619
+ }
4620
+ animations.detachedLeaveAnimationFns = undefined;
4621
+ }
4622
+ }
4623
+ if (lView) {
4624
+ collectNestedViewAnimations(lView, tNode, runningAnimations);
4625
+ }
4626
+ if (runningAnimations.length > 0) {
4627
+ const currentAnimations = animations || lView?.[ANIMATIONS];
4628
+ if (currentAnimations) {
4629
+ const prevRunning = currentAnimations.running;
4630
+ if (prevRunning) {
4631
+ runningAnimations.push(prevRunning);
4632
+ }
4633
+ currentAnimations.running = Promise.allSettled(runningAnimations);
4634
+ runAfterLeaveAnimations(lView, currentAnimations.running, callback);
4635
+ } else {
4636
+ Promise.allSettled(runningAnimations).then(() => {
4637
+ if (lView) allLeavingAnimations.delete(lView[ID]);
4638
+ callback(true);
4639
+ });
4640
+ }
4641
+ } else {
4642
+ if (lView) allLeavingAnimations.delete(lView[ID]);
4643
+ callback(false);
4644
+ }
4645
+ }
4646
+ function collectNestedViewAnimations(lView, tNode, collectedPromises) {
4647
+ if (tNode.type & 12) {
4648
+ const lContainer = lView[tNode.index];
4649
+ if (isLContainer(lContainer)) {
4650
+ for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
4651
+ const subView = lContainer[i];
4652
+ if (subView[TVIEW].type === 2) {
4653
+ collectAllViewLeaveAnimations(subView, collectedPromises);
4654
+ }
4655
+ }
4656
+ }
4657
+ }
4658
+ let child = tNode.child;
4659
+ while (child) {
4660
+ collectNestedViewAnimations(lView, child, collectedPromises);
4661
+ child = child.next;
4662
+ }
4663
+ }
4664
+ function collectAllViewLeaveAnimations(view, collectedPromises) {
4665
+ const animations = view[ANIMATIONS];
4666
+ if (animations && animations.leave) {
4667
+ for (const animationData of animations.leave.values()) {
4668
+ for (const animationFn of animationData.animateFns) {
4669
+ const {
4670
+ promise
4671
+ } = animationFn();
4672
+ collectedPromises.push(promise);
4673
+ }
4674
+ }
4675
+ }
4676
+ let child = view[TVIEW].firstChild;
4677
+ while (child) {
4678
+ collectNestedViewAnimations(view, child, collectedPromises);
4679
+ child = child.next;
4680
+ }
4681
+ }
4682
+ function runAfterLeaveAnimations(lView, runningAnimations, callback) {
4683
+ runningAnimations.then(() => {
4684
+ if (lView[ANIMATIONS]?.running === runningAnimations) {
4685
+ lView[ANIMATIONS].running = undefined;
4686
+ allLeavingAnimations.delete(lView[ID]);
4687
+ }
4688
+ callback(true);
4689
+ });
4690
+ }
4691
+
4544
4692
  function applyToElementOrContainer(action, renderer, injector, parent, lNodeToHandle, tNode, beforeNode, parentLView) {
4545
4693
  if (lNodeToHandle != null) {
4546
4694
  let lContainer;
@@ -4568,6 +4716,7 @@ function applyToElementOrContainer(action, renderer, injector, parent, lNodeToHa
4568
4716
  if (parentLView?.[ANIMATIONS]?.leave?.has(tNode.index)) {
4569
4717
  trackLeavingNodes(tNode, rNode);
4570
4718
  }
4719
+ reusedNodes.delete(rNode);
4571
4720
  runLeaveAnimationsWithCallback(parentLView, tNode, injector, nodeHasLeaveAnimations => {
4572
4721
  if (reusedNodes.has(rNode)) {
4573
4722
  reusedNodes.delete(rNode);
@@ -4576,6 +4725,7 @@ function applyToElementOrContainer(action, renderer, injector, parent, lNodeToHa
4576
4725
  nativeRemoveNode(renderer, rNode, isComponent, nodeHasLeaveAnimations);
4577
4726
  });
4578
4727
  } else if (action === 3) {
4728
+ reusedNodes.delete(rNode);
4579
4729
  runLeaveAnimationsWithCallback(parentLView, tNode, injector, () => {
4580
4730
  renderer.destroyNode(rNode);
4581
4731
  });
@@ -4675,45 +4825,6 @@ function cleanUpView(tView, lView) {
4675
4825
  setActiveConsumer(prevConsumer);
4676
4826
  }
4677
4827
  }
4678
- function runLeaveAnimationsWithCallback(lView, tNode, injector, callback) {
4679
- const animations = lView?.[ANIMATIONS];
4680
- if (animations == null || animations.leave == undefined || !animations.leave.has(tNode.index)) return callback(false);
4681
- if (lView) allLeavingAnimations.add(lView[ID]);
4682
- addToAnimationQueue(injector, () => {
4683
- if (animations.leave && animations.leave.has(tNode.index)) {
4684
- const leaveAnimationMap = animations.leave;
4685
- const leaveAnimations = leaveAnimationMap.get(tNode.index);
4686
- const runningAnimations = [];
4687
- if (leaveAnimations) {
4688
- for (let index = 0; index < leaveAnimations.animateFns.length; index++) {
4689
- const animationFn = leaveAnimations.animateFns[index];
4690
- const {
4691
- promise
4692
- } = animationFn();
4693
- runningAnimations.push(promise);
4694
- }
4695
- animations.detachedLeaveAnimationFns = undefined;
4696
- }
4697
- animations.running = Promise.allSettled(runningAnimations);
4698
- runAfterLeaveAnimations(lView, callback);
4699
- } else {
4700
- if (lView) allLeavingAnimations.delete(lView[ID]);
4701
- callback(false);
4702
- }
4703
- }, animations);
4704
- }
4705
- function runAfterLeaveAnimations(lView, callback) {
4706
- const runningAnimations = lView[ANIMATIONS]?.running;
4707
- if (runningAnimations) {
4708
- runningAnimations.then(() => {
4709
- lView[ANIMATIONS].running = undefined;
4710
- allLeavingAnimations.delete(lView[ID]);
4711
- callback(true);
4712
- });
4713
- return;
4714
- }
4715
- callback(false);
4716
- }
4717
4828
  function processCleanups(tView, lView) {
4718
4829
  ngDevMode && assertNotReactive(processCleanups.name);
4719
4830
  const tCleanup = tView.cleanup;
@@ -5438,7 +5549,7 @@ function renderView(tView, lView, context) {
5438
5549
  }
5439
5550
  throw error;
5440
5551
  } finally {
5441
- lView[FLAGS] &= ~4;
5552
+ lView[FLAGS] &= -5;
5442
5553
  leaveView();
5443
5554
  }
5444
5555
  }
@@ -5824,7 +5935,7 @@ function detectChangesInView(lView, mode) {
5824
5935
  if (consumer) {
5825
5936
  consumer.dirty = false;
5826
5937
  }
5827
- lView[FLAGS] &= ~(8192 | 1024);
5938
+ lView[FLAGS] &= -9217;
5828
5939
  if (shouldRefreshView) {
5829
5940
  refreshView(tView, lView, tView.template, lView[CONTEXT]);
5830
5941
  } else if (flags & 8192) {
@@ -5950,7 +6061,7 @@ function detachView(lContainer, removeIndex) {
5950
6061
  }
5951
6062
  viewToDetach[PARENT] = null;
5952
6063
  viewToDetach[NEXT] = null;
5953
- viewToDetach[FLAGS] &= ~128;
6064
+ viewToDetach[FLAGS] &= -129;
5954
6065
  }
5955
6066
  return viewToDetach;
5956
6067
  }
@@ -6057,7 +6168,7 @@ class ViewRef {
6057
6168
  markViewDirty(this._cdRefInjectingView || this._lView, 4);
6058
6169
  }
6059
6170
  detach() {
6060
- this._lView[FLAGS] &= ~128;
6171
+ this._lView[FLAGS] &= -129;
6061
6172
  }
6062
6173
  reattach() {
6063
6174
  updateAncestorTraversalFlagsOnAttach(this._lView);
@@ -8308,6 +8419,9 @@ class ControlDirectiveHostImpl {
8308
8419
  get customControl() {
8309
8420
  return this.tNode.customControlIndex !== -1 ? this.lView[this.tNode.customControlIndex] : undefined;
8310
8421
  }
8422
+ get nativeElement() {
8423
+ return getNativeByTNode(this.tNode, this.lView);
8424
+ }
8311
8425
  get descriptor() {
8312
8426
  if (ngDevMode && isComponentHost(this.tNode)) {
8313
8427
  const componentIndex = this.tNode.directiveStart + this.tNode.componentOffset;
@@ -8317,14 +8431,13 @@ class ControlDirectiveHostImpl {
8317
8431
  return `<${this.tNode.value}>`;
8318
8432
  }
8319
8433
  listenToCustomControlOutput(outputName, callback) {
8320
- if (!hasOutput(this.tView.data[this.tNode.customControlIndex], outputName)) {
8321
- return;
8322
- }
8323
- listenToOutput(this.tNode, this.lView, this.tNode.customControlIndex, outputName, outputName, wrapListener(this.tNode, this.lView, callback));
8434
+ const directiveDef = this.tView.data[this.tNode.customControlIndex];
8435
+ listenToDirectiveOutput(this.tNode, this.lView, directiveDef, outputName, wrapListener(this.tNode, this.lView, callback));
8324
8436
  }
8325
8437
  listenToCustomControlModel(listener) {
8326
8438
  const modelName = this.tNode.flags & 1024 ? 'valueChange' : 'checkedChange';
8327
- listenToOutput(this.tNode, this.lView, this.tNode.customControlIndex, modelName, modelName, wrapListener(this.tNode, this.lView, listener));
8439
+ const directiveDef = this.tView.data[this.tNode.customControlIndex];
8440
+ listenToDirectiveOutput(this.tNode, this.lView, directiveDef, modelName, wrapListener(this.tNode, this.lView, listener));
8328
8441
  }
8329
8442
  listenToDom(eventName, listener) {
8330
8443
  listenToDomEvent(this.tNode, this.tView, this.lView, undefined, this.lView[RENDERER], eventName, listener, wrapListener(this.tNode, this.lView, listener));
@@ -8335,37 +8448,90 @@ class ControlDirectiveHostImpl {
8335
8448
  if (!directiveIndices && !hostDirectiveInputs) {
8336
8449
  return false;
8337
8450
  }
8451
+ let wasSet = false;
8338
8452
  if (directiveIndices) {
8339
8453
  for (const index of directiveIndices) {
8454
+ if (index === this.tNode.controlDirectiveIndex) {
8455
+ continue;
8456
+ }
8340
8457
  const directiveDef = this.tView.data[index];
8341
8458
  const directive = this.lView[index];
8342
8459
  writeToDirectiveInput(directiveDef, directive, inputName, value);
8460
+ wasSet = true;
8343
8461
  }
8344
8462
  }
8345
8463
  if (hostDirectiveInputs) {
8346
8464
  for (let i = 0; i < hostDirectiveInputs.length; i += 2) {
8347
8465
  const index = hostDirectiveInputs[i];
8466
+ if (index === this.tNode.controlDirectiveIndex) {
8467
+ continue;
8468
+ }
8348
8469
  const internalName = hostDirectiveInputs[i + 1];
8349
8470
  const directiveDef = this.tView.data[index];
8350
8471
  const directive = this.lView[index];
8351
8472
  writeToDirectiveInput(directiveDef, directive, internalName, value);
8473
+ wasSet = true;
8352
8474
  }
8353
8475
  }
8354
- return true;
8476
+ return wasSet;
8355
8477
  }
8356
8478
  setCustomControlModelInput(value) {
8357
- const directive = this.lView[this.tNode.customControlIndex];
8358
8479
  const directiveDef = this.tView.data[this.tNode.customControlIndex];
8359
8480
  const modelName = this.tNode.flags & 1024 ? 'value' : 'checked';
8360
- writeToDirectiveInput(directiveDef, directive, modelName, value);
8481
+ setDirectiveInput(this.tNode, this.tView, this.lView, directiveDef, modelName, value);
8361
8482
  }
8362
8483
  customControlHasInput(inputName) {
8363
8484
  if (this.tNode.customControlIndex === -1) {
8364
8485
  return false;
8365
8486
  }
8366
8487
  const directiveDef = this.tView.data[this.tNode.customControlIndex];
8367
- return directiveDef.inputs[inputName] != undefined;
8488
+ const presence = directiveDef.signalFormsInputPresence ??= this._buildCustomControlInputCache(directiveDef);
8489
+ return presence[inputName] === true;
8490
+ }
8491
+ _buildCustomControlInputCache(directiveDef) {
8492
+ const cache = {};
8493
+ for (const key in directiveDef.inputs) {
8494
+ cache[key] = true;
8495
+ }
8496
+ if (directiveDef.hostDirectives !== null) {
8497
+ const queue = [...directiveDef.hostDirectives];
8498
+ while (queue.length > 0) {
8499
+ const hostDir = queue.shift();
8500
+ if (typeof hostDir !== 'function') {
8501
+ for (const key in hostDir.inputs) {
8502
+ cache[hostDir.inputs[key]] = true;
8503
+ }
8504
+ const hostDirectives = getHostDirectives(hostDir.directive);
8505
+ if (hostDirectives !== null) {
8506
+ queue.push(...hostDirectives);
8507
+ }
8508
+ continue;
8509
+ }
8510
+ for (const config of hostDir()) {
8511
+ if (typeof config === 'function') {
8512
+ continue;
8513
+ }
8514
+ if (config.inputs) {
8515
+ for (let i = 0; i < config.inputs.length; i += 2) {
8516
+ const exposedName = config.inputs[i + 1] || config.inputs[i];
8517
+ cache[exposedName] = true;
8518
+ }
8519
+ }
8520
+ const hostDirectives = getHostDirectives(config.directive);
8521
+ if (hostDirectives !== null) {
8522
+ queue.push(...hostDirectives);
8523
+ }
8524
+ }
8525
+ }
8526
+ }
8527
+ return cache;
8528
+ }
8529
+ }
8530
+ function getHostDirectives(directiveType) {
8531
+ if (typeof directiveType === 'function' && 'ɵdir' in directiveType) {
8532
+ return directiveType.ɵdir.hostDirectives ?? null;
8368
8533
  }
8534
+ return null;
8369
8535
  }
8370
8536
  function initializeControlFirstCreatePass(tView, tNode, lView) {
8371
8537
  ngDevMode && assertFirstCreatePass(tView);
@@ -8391,6 +8557,9 @@ function initializeControlFirstCreatePass(tView, tNode, lView) {
8391
8557
  function initializeCustomControlStatus(tView, tNode) {
8392
8558
  for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {
8393
8559
  const directiveDef = tView.data[i];
8560
+ if (tNode.directiveToIndex && !tNode.directiveToIndex.has(directiveDef.type)) {
8561
+ continue;
8562
+ }
8394
8563
  if (hasModelInput(directiveDef, 'value')) {
8395
8564
  tNode.flags |= 1024;
8396
8565
  tNode.customControlIndex = i;
@@ -8402,6 +8571,42 @@ function initializeCustomControlStatus(tView, tNode) {
8402
8571
  return;
8403
8572
  }
8404
8573
  }
8574
+ if (tNode.hostDirectiveInputs !== null && tNode.hostDirectiveOutputs !== null && tNode.directiveToIndex !== null) {
8575
+ const checkModel = (modelName, flag) => {
8576
+ const inputs = tNode.hostDirectiveInputs[modelName];
8577
+ const outputs = tNode.hostDirectiveOutputs[modelName + 'Change'];
8578
+ if (!inputs || !outputs) {
8579
+ return false;
8580
+ }
8581
+ for (let i = 0; i < inputs.length; i += 2) {
8582
+ const inputIndex = inputs[i];
8583
+ for (let j = 0; j < outputs.length; j += 2) {
8584
+ const outputIndex = outputs[j];
8585
+ if (inputIndex !== outputIndex) {
8586
+ continue;
8587
+ }
8588
+ for (const data of tNode.directiveToIndex.values()) {
8589
+ if (!Array.isArray(data)) {
8590
+ continue;
8591
+ }
8592
+ const [hostIndex, start, end] = data;
8593
+ if (inputIndex >= start && inputIndex <= end) {
8594
+ tNode.flags |= flag;
8595
+ tNode.customControlIndex = hostIndex;
8596
+ return true;
8597
+ }
8598
+ }
8599
+ }
8600
+ }
8601
+ return false;
8602
+ };
8603
+ if (checkModel('value', 1024)) {
8604
+ return;
8605
+ }
8606
+ if (checkModel('checked', 2048)) {
8607
+ return;
8608
+ }
8609
+ }
8405
8610
  }
8406
8611
  function hasModelInput(directiveDef, name) {
8407
8612
  return hasInput(directiveDef, name) && hasOutput(directiveDef, name + 'Change');
@@ -8685,7 +8890,7 @@ class ComponentFactory extends ComponentFactory$1 {
8685
8890
  }
8686
8891
  }
8687
8892
  function createRootTView(rootSelectorOrNode, componentDef, componentBindings, directives) {
8688
- const tAttributes = rootSelectorOrNode ? ['ng-version', '22.0.0-next.3'] : extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
8893
+ const tAttributes = rootSelectorOrNode ? ['ng-version', '22.0.0-next.5'] : extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
8689
8894
  let creationBindings = null;
8690
8895
  let updateBindings = null;
8691
8896
  let varsToAllocate = 0;
@@ -9609,7 +9814,7 @@ function ɵɵdefineComponent(componentDefinition) {
9609
9814
  template: componentDefinition.template,
9610
9815
  consts: componentDefinition.consts || null,
9611
9816
  ngContentSelectors: componentDefinition.ngContentSelectors,
9612
- onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush,
9817
+ onPush: componentDefinition.changeDetection !== ChangeDetectionStrategy.Eager,
9613
9818
  directiveDefs: null,
9614
9819
  pipeDefs: null,
9615
9820
  dependencies: baseDef.standalone && componentDefinition.dependencies || null,
@@ -9732,6 +9937,7 @@ function getNgDirectiveDef(directiveDefinition) {
9732
9937
  resolveHostDirectives: null,
9733
9938
  hostDirectives: null,
9734
9939
  controlDef: null,
9940
+ signalFormsInputPresence: null,
9735
9941
  inputs: parseAndConvertInputsForDefinition(directiveDefinition.inputs, declaredInputs),
9736
9942
  outputs: parseAndConvertOutputsForDefinition(directiveDefinition.outputs),
9737
9943
  debugInfo: null
@@ -10853,101 +11059,154 @@ function detectChanges(component) {
10853
11059
  detectChangesInternal(view);
10854
11060
  }
10855
11061
 
10856
- function getDeferBlocks$1(lView, deferBlocks) {
10857
- const tView = lView[TVIEW];
10858
- for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {
10859
- if (isLContainer(lView[i])) {
10860
- const lContainer = lView[i];
10861
- const isLast = i === tView.bindingStartIndex - 1;
10862
- if (!isLast) {
10863
- const tNode = tView.data[i];
10864
- const tDetails = getTDeferBlockDetails(tView, tNode);
10865
- if (isTDeferBlockDetails(tDetails)) {
10866
- deferBlocks.push({
10867
- lContainer,
10868
- lView,
10869
- tNode,
10870
- tDetails
10871
- });
10872
- continue;
10873
- }
10874
- }
10875
- if (isLView(lContainer[HOST])) {
10876
- getDeferBlocks$1(lContainer[HOST], deferBlocks);
11062
+ var ControlFlowBlockType;
11063
+ (function (ControlFlowBlockType) {
11064
+ ControlFlowBlockType[ControlFlowBlockType["Defer"] = 0] = "Defer";
11065
+ ControlFlowBlockType[ControlFlowBlockType["For"] = 1] = "For";
11066
+ })(ControlFlowBlockType || (ControlFlowBlockType = {}));
11067
+
11068
+ function getControlFlowBlocks(node) {
11069
+ const lView = getLContext(node)?.lView;
11070
+ if (lView) {
11071
+ return findControlFlowBlocks(node, lView);
11072
+ }
11073
+ return [];
11074
+ }
11075
+ const deferBlockFinder = ({
11076
+ node,
11077
+ lView,
11078
+ tView,
11079
+ slotIdx
11080
+ }) => {
11081
+ const slot = lView[slotIdx];
11082
+ if (!isLContainer(slot)) {
11083
+ return null;
11084
+ }
11085
+ const lContainer = slot;
11086
+ const isLast = slotIdx === tView.bindingStartIndex - 1;
11087
+ if (!isLast) {
11088
+ const tNode = tView.data[slotIdx];
11089
+ const tDetails = getTDeferBlockDetails(tView, tNode);
11090
+ if (isTDeferBlockDetails(tDetails)) {
11091
+ const native = getNativeByTNode(tNode, lView);
11092
+ const lDetails = getLDeferBlockDetails(lView, tNode);
11093
+ if (!node.contains(native)) {
11094
+ return null;
10877
11095
  }
10878
- for (let j = CONTAINER_HEADER_OFFSET; j < lContainer.length; j++) {
10879
- getDeferBlocks$1(lContainer[j], deferBlocks);
11096
+ const viewInjector = lView[INJECTOR];
11097
+ const registry = viewInjector.get(DEHYDRATED_BLOCK_REGISTRY, null, {
11098
+ optional: true
11099
+ });
11100
+ const renderedLView = getRendererLView(lContainer);
11101
+ const rootNodes = [];
11102
+ const hydrationState = inferHydrationState(tDetails, lDetails, registry);
11103
+ if (renderedLView !== null) {
11104
+ collectNativeNodes(renderedLView[TVIEW], renderedLView, renderedLView[TVIEW].firstChild, rootNodes);
11105
+ } else if (hydrationState === 'dehydrated') {
11106
+ const transferState = viewInjector.get(TransferState);
11107
+ const deferBlockParents = transferState.get(NGH_DEFER_BLOCKS_KEY, {});
11108
+ const deferId = lDetails[SSR_UNIQUE_ID];
11109
+ const deferData = deferBlockParents[deferId];
11110
+ const numberOfRootNodes = deferData[NUM_ROOT_NODES];
11111
+ let collectedNodeCount = 0;
11112
+ const deferBlockCommentNode = lContainer[NATIVE];
11113
+ let currentNode = deferBlockCommentNode.previousSibling;
11114
+ while (collectedNodeCount < numberOfRootNodes && currentNode) {
11115
+ rootNodes.unshift(currentNode);
11116
+ currentNode = currentNode.previousSibling;
11117
+ collectedNodeCount++;
11118
+ }
10880
11119
  }
10881
- } else if (isLView(lView[i])) {
10882
- getDeferBlocks$1(lView[i], deferBlocks);
11120
+ return {
11121
+ type: ControlFlowBlockType.Defer,
11122
+ state: stringifyState(lDetails[DEFER_BLOCK_STATE]),
11123
+ incrementalHydrationState: hydrationState,
11124
+ hasErrorBlock: tDetails.errorTmplIndex !== null,
11125
+ loadingBlock: {
11126
+ exists: tDetails.loadingTmplIndex !== null,
11127
+ minimumTime: tDetails.loadingBlockConfig?.[MINIMUM_SLOT] ?? null,
11128
+ afterTime: tDetails.loadingBlockConfig?.[LOADING_AFTER_SLOT] ?? null
11129
+ },
11130
+ placeholderBlock: {
11131
+ exists: tDetails.placeholderTmplIndex !== null,
11132
+ minimumTime: tDetails.placeholderBlockConfig?.[MINIMUM_SLOT] ?? null
11133
+ },
11134
+ triggers: tDetails.debug?.triggers ? Array.from(tDetails.debug.triggers).sort() : [],
11135
+ hostNode: lContainer[HOST],
11136
+ rootNodes
11137
+ };
10883
11138
  }
10884
11139
  }
10885
- }
10886
-
10887
- function getDeferBlocks(node) {
10888
- const results = [];
10889
- const lView = getLContext(node)?.lView;
10890
- if (lView) {
10891
- findDeferBlocks(node, lView, results);
11140
+ return null;
11141
+ };
11142
+ const forLoopFinder = ({
11143
+ lView,
11144
+ slotIdx
11145
+ }) => {
11146
+ const slot = lView[slotIdx];
11147
+ if (!isRepeaterMetadata(slot)) {
11148
+ return null;
10892
11149
  }
10893
- return results;
10894
- }
10895
- function findDeferBlocks(node, lView, results) {
10896
- const viewInjector = lView[INJECTOR];
10897
- const registry = viewInjector.get(DEHYDRATED_BLOCK_REGISTRY, null, {
10898
- optional: true
10899
- });
10900
- const blocks = [];
10901
- getDeferBlocks$1(lView, blocks);
10902
- const transferState = viewInjector.get(TransferState);
10903
- const deferBlockParents = transferState.get(NGH_DEFER_BLOCKS_KEY, {});
10904
- for (const details of blocks) {
10905
- const native = getNativeByTNode(details.tNode, details.lView);
10906
- const lDetails = getLDeferBlockDetails(details.lView, details.tNode);
10907
- if (!node.contains(native)) {
10908
- continue;
11150
+ const metadata = slot;
11151
+ const liveCollection = metadata.liveCollection;
11152
+ const items = [];
11153
+ if (liveCollection) {
11154
+ for (let j = 0; j < liveCollection.length; j++) {
11155
+ items.push(liveCollection.at(j));
10909
11156
  }
10910
- const tDetails = details.tDetails;
10911
- const renderedLView = getRendererLView(details);
10912
- const rootNodes = [];
10913
- const hydrationState = inferHydrationState(tDetails, lDetails, registry);
10914
- if (renderedLView !== null) {
10915
- collectNativeNodes(renderedLView[TVIEW], renderedLView, renderedLView[TVIEW].firstChild, rootNodes);
10916
- } else if (hydrationState === 'dehydrated') {
10917
- const deferId = lDetails[SSR_UNIQUE_ID];
10918
- const deferData = deferBlockParents[deferId];
10919
- const numberOfRootNodes = deferData[NUM_ROOT_NODES];
10920
- let collectedNodeCount = 0;
10921
- const deferBlockCommentNode = details.lContainer[NATIVE];
10922
- let currentNode = deferBlockCommentNode.previousSibling;
10923
- while (collectedNodeCount < numberOfRootNodes && currentNode) {
10924
- rootNodes.unshift(currentNode);
10925
- currentNode = currentNode.previousSibling;
10926
- collectedNodeCount++;
11157
+ }
11158
+ const containerIndex = slotIdx + 1;
11159
+ const lContainer = lView[containerIndex];
11160
+ const rootNodes = [];
11161
+ if (isLContainer(lContainer)) {
11162
+ for (let viewIdx = CONTAINER_HEADER_OFFSET; viewIdx < lContainer.length; viewIdx++) {
11163
+ const viewAtIdx = lContainer[viewIdx];
11164
+ if (isLView(viewAtIdx)) {
11165
+ const viewTView = viewAtIdx[TVIEW];
11166
+ const viewNodes = collectNativeNodes(viewTView, viewAtIdx, viewTView.firstChild, []);
11167
+ rootNodes.push(...viewNodes);
10927
11168
  }
10928
11169
  }
10929
- const data = {
10930
- state: stringifyState(lDetails[DEFER_BLOCK_STATE]),
10931
- incrementalHydrationState: hydrationState,
10932
- hasErrorBlock: tDetails.errorTmplIndex !== null,
10933
- loadingBlock: {
10934
- exists: tDetails.loadingTmplIndex !== null,
10935
- minimumTime: tDetails.loadingBlockConfig?.[MINIMUM_SLOT] ?? null,
10936
- afterTime: tDetails.loadingBlockConfig?.[LOADING_AFTER_SLOT] ?? null
10937
- },
10938
- placeholderBlock: {
10939
- exists: tDetails.placeholderTmplIndex !== null,
10940
- minimumTime: tDetails.placeholderBlockConfig?.[MINIMUM_SLOT] ?? null
10941
- },
10942
- triggers: tDetails.debug?.triggers ? Array.from(tDetails.debug.triggers).sort() : [],
10943
- hostNode: details.lContainer[HOST],
10944
- rootNodes
10945
- };
10946
- results.push(data);
10947
- if (renderedLView !== null) {
10948
- findDeferBlocks(node, renderedLView, results);
11170
+ }
11171
+ return {
11172
+ type: ControlFlowBlockType.For,
11173
+ items,
11174
+ hasEmptyBlock: metadata.hasEmptyBlock,
11175
+ rootNodes,
11176
+ hostNode: lContainer[HOST],
11177
+ trackExpression: getTrackExpression(metadata)
11178
+ };
11179
+ };
11180
+ const CONTROL_FLOW_BLOCK_FINDERS = [deferBlockFinder, forLoopFinder];
11181
+ function findControlFlowBlocks(node, lView, results = []) {
11182
+ const tView = lView[TVIEW];
11183
+ for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {
11184
+ const slot = lView[i];
11185
+ for (const finder of CONTROL_FLOW_BLOCK_FINDERS) {
11186
+ const block = finder({
11187
+ node,
11188
+ lView,
11189
+ tView,
11190
+ slotIdx: i
11191
+ });
11192
+ if (block) {
11193
+ results.push(block);
11194
+ break;
11195
+ }
11196
+ }
11197
+ if (isLContainer(slot)) {
11198
+ const lContainer = slot;
11199
+ if (isLView(lContainer[HOST])) {
11200
+ findControlFlowBlocks(node, lContainer[HOST], results);
11201
+ }
11202
+ for (let j = CONTAINER_HEADER_OFFSET; j < lContainer.length; j++) {
11203
+ findControlFlowBlocks(node, lContainer[j], results);
11204
+ }
11205
+ } else if (isLView(slot)) {
11206
+ findControlFlowBlocks(node, slot, results);
10949
11207
  }
10950
11208
  }
11209
+ return results;
10951
11210
  }
10952
11211
  function stringifyState(state) {
10953
11212
  switch (state) {
@@ -10971,14 +11230,27 @@ function inferHydrationState(tDetails, lDetails, registry) {
10971
11230
  }
10972
11231
  return registry.has(lDetails[SSR_UNIQUE_ID]) ? 'dehydrated' : 'hydrated';
10973
11232
  }
10974
- function getRendererLView(details) {
10975
- if (details.lContainer.length <= CONTAINER_HEADER_OFFSET) {
11233
+ function getRendererLView(lContainer) {
11234
+ if (lContainer.length <= CONTAINER_HEADER_OFFSET) {
10976
11235
  return null;
10977
11236
  }
10978
- const lView = details.lContainer[CONTAINER_HEADER_OFFSET];
11237
+ const lView = lContainer[CONTAINER_HEADER_OFFSET];
10979
11238
  ngDevMode && assertLView(lView);
10980
11239
  return lView;
10981
11240
  }
11241
+ function isRepeaterMetadata(value) {
11242
+ return value !== null && typeof value === 'object' && 'hasEmptyBlock' in value && 'trackByFn' in value && typeof value.trackByFn === 'function';
11243
+ }
11244
+ function getTrackExpression(metadata) {
11245
+ const trackByFn = metadata.trackByFn;
11246
+ if (trackByFn.name === 'ɵɵrepeaterTrackByIndex') {
11247
+ return '$index';
11248
+ }
11249
+ if (trackByFn.name === 'ɵɵrepeaterTrackByIdentity') {
11250
+ return 'item';
11251
+ }
11252
+ return 'function';
11253
+ }
10982
11254
 
10983
11255
  function getDependenciesFromInjectable(injector, token) {
10984
11256
  const instance = injector.get(token, null, {
@@ -11551,7 +11823,7 @@ const globalUtilsFunctions = {
11551
11823
  'ɵgetInjectorMetadata': getInjectorMetadata,
11552
11824
  'ɵsetProfiler': setProfiler,
11553
11825
  'ɵgetSignalGraph': getSignalGraph,
11554
- 'ɵgetDeferBlocks': getDeferBlocks,
11826
+ 'ɵgetControlFlowBlocks': getControlFlowBlocks,
11555
11827
  'ɵgetTransferState': getTransferState,
11556
11828
  'getDirectiveMetadata': getDirectiveMetadata$1,
11557
11829
  'getComponent': getComponent,
@@ -11955,13 +12227,13 @@ class ApplicationRef {
11955
12227
  }
11956
12228
  synchronizeOnce() {
11957
12229
  if (this.dirtyFlags & 16) {
11958
- this.dirtyFlags &= ~16;
12230
+ this.dirtyFlags &= -17;
11959
12231
  this.rootEffectScheduler.flush();
11960
12232
  }
11961
12233
  let ranDetectChanges = false;
11962
12234
  if (this.dirtyFlags & 7) {
11963
12235
  const useGlobalCheck = Boolean(this.dirtyFlags & 1);
11964
- this.dirtyFlags &= ~7;
12236
+ this.dirtyFlags &= -8;
11965
12237
  this.dirtyFlags |= 8;
11966
12238
  for (let {
11967
12239
  _lView
@@ -11973,7 +12245,7 @@ class ApplicationRef {
11973
12245
  detectChangesInternal(_lView, mode);
11974
12246
  ranDetectChanges = true;
11975
12247
  }
11976
- this.dirtyFlags &= ~4;
12248
+ this.dirtyFlags &= -5;
11977
12249
  this.syncDirtyFlagsWithViews();
11978
12250
  if (this.dirtyFlags & (7 | 16)) {
11979
12251
  return;
@@ -11984,7 +12256,7 @@ class ApplicationRef {
11984
12256
  this._rendererFactory?.end?.();
11985
12257
  }
11986
12258
  if (this.dirtyFlags & 8) {
11987
- this.dirtyFlags &= ~8;
12259
+ this.dirtyFlags &= -9;
11988
12260
  this.afterRenderManager.execute();
11989
12261
  }
11990
12262
  this.syncDirtyFlagsWithViews();
@@ -11996,7 +12268,7 @@ class ApplicationRef {
11996
12268
  this.dirtyFlags |= 2;
11997
12269
  return;
11998
12270
  } else {
11999
- this.dirtyFlags &= ~7;
12271
+ this.dirtyFlags &= -8;
12000
12272
  }
12001
12273
  }
12002
12274
  attachView(viewRef) {
@@ -15651,7 +15923,7 @@ function getTStylingRangePrevDuplicate(tStylingRange) {
15651
15923
  function setTStylingRangePrev(tStylingRange, previous) {
15652
15924
  ngDevMode && assertNumber(tStylingRange, 'expected number');
15653
15925
  ngDevMode && assertNumberInRange(previous, 0, 32767);
15654
- return tStylingRange & ~4294836224 | previous << 17;
15926
+ return tStylingRange & 131071 | previous << 17;
15655
15927
  }
15656
15928
  function setTStylingRangePrevDuplicate(tStylingRange) {
15657
15929
  ngDevMode && assertNumber(tStylingRange, 'expected number');
@@ -15664,7 +15936,7 @@ function getTStylingRangeNext(tStylingRange) {
15664
15936
  function setTStylingRangeNext(tStylingRange, next) {
15665
15937
  ngDevMode && assertNumber(tStylingRange, 'expected number');
15666
15938
  ngDevMode && assertNumberInRange(next, 0, 32767);
15667
- return tStylingRange & ~131068 | next << 2;
15939
+ return tStylingRange & -131069 | next << 2;
15668
15940
  }
15669
15941
  function getTStylingRangeNextDuplicate(tStylingRange) {
15670
15942
  ngDevMode && assertNumber(tStylingRange, 'expected number');
@@ -16993,6 +17265,7 @@ function recreateLView(importMeta, id, newDef, oldDef, lView) {
16993
17265
  const newLView = createLView(parentLView, newTView, instance, getInitialLViewFlagsFromDef(newDef), host, tNode, null, null, null, null, null);
16994
17266
  replaceLViewInTree(parentLView, lView, newLView, tNode.index);
16995
17267
  destroyLView(lView[TVIEW], lView);
17268
+ cleanupLView(lView);
16996
17269
  const rendererFactory = lView[ENVIRONMENT].rendererFactory;
16997
17270
  clearRendererCache(rendererFactory, oldDef);
16998
17271
  newLView[RENDERER] = rendererFactory.createRenderer(host, newDef);
@@ -17046,7 +17319,7 @@ function resetProjectionState(tNode) {
17046
17319
  for (const current of tNode.projection) {
17047
17320
  if (isTNodeShape(current)) {
17048
17321
  current.projectionNext = null;
17049
- current.flags &= ~2;
17322
+ current.flags &= -3;
17050
17323
  }
17051
17324
  }
17052
17325
  tNode.projection = null;
@@ -17396,12 +17669,12 @@ function verifySemanticsOfNgModuleDef(moduleType, allowDuplicateDeclarationsInRo
17396
17669
  verifySemanticsOfNgModuleImport(modOrStandaloneCmpt, moduleType);
17397
17670
  verifySemanticsOfNgModuleDef(modOrStandaloneCmpt, false, moduleType);
17398
17671
  });
17399
- const exports = maybeUnwrapFn(ngModuleDef.exports);
17672
+ const exports$1 = maybeUnwrapFn(ngModuleDef.exports);
17400
17673
  declarations.forEach(verifyDeclarationsHaveDefinitions);
17401
17674
  declarations.forEach(verifyDirectivesHaveSelector);
17402
17675
  declarations.forEach(declarationType => verifyNotStandalone(declarationType, moduleType));
17403
17676
  const combinedDeclarations = [...declarations.map(resolveForwardRef), ...flatten(imports.map(computeCombinedExports)).map(resolveForwardRef)];
17404
- exports.forEach(verifyExportsAreDeclaredOrReExported);
17677
+ exports$1.forEach(verifyExportsAreDeclaredOrReExported);
17405
17678
  declarations.forEach(decl => verifyDeclarationIsUnique(decl, allowDuplicateDeclarationsInRoot));
17406
17679
  const ngModule = getAnnotation(moduleType, 'NgModule');
17407
17680
  if (ngModule) {
@@ -17821,7 +18094,9 @@ function directiveMetadata(type, metadata) {
17821
18094
  lifecycle: {
17822
18095
  usesOnChanges: reflect.hasLifecycleHook(type, 'ngOnChanges')
17823
18096
  },
17824
- controlCreate: null,
18097
+ controlCreate: reflect.hasLifecycleHook(type, 'ɵngControlCreate') ? {
18098
+ passThroughInput: null
18099
+ } : null,
17825
18100
  typeSourceSpan: null,
17826
18101
  usesInheritance: !extendsDirectlyFromObject(type),
17827
18102
  exportAs: extractExportAs(metadata.exportAs),
@@ -18300,6 +18575,37 @@ var MissingTranslationStrategy;
18300
18575
  MissingTranslationStrategy[MissingTranslationStrategy["Ignore"] = 2] = "Ignore";
18301
18576
  })(MissingTranslationStrategy || (MissingTranslationStrategy = {}));
18302
18577
 
18578
+ function getDeferBlocks(lView, deferBlocks) {
18579
+ const tView = lView[TVIEW];
18580
+ for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {
18581
+ if (isLContainer(lView[i])) {
18582
+ const lContainer = lView[i];
18583
+ const isLast = i === tView.bindingStartIndex - 1;
18584
+ if (!isLast) {
18585
+ const tNode = tView.data[i];
18586
+ const tDetails = getTDeferBlockDetails(tView, tNode);
18587
+ if (isTDeferBlockDetails(tDetails)) {
18588
+ deferBlocks.push({
18589
+ lContainer,
18590
+ lView,
18591
+ tNode,
18592
+ tDetails
18593
+ });
18594
+ continue;
18595
+ }
18596
+ }
18597
+ if (isLView(lContainer[HOST])) {
18598
+ getDeferBlocks(lContainer[HOST], deferBlocks);
18599
+ }
18600
+ for (let j = CONTAINER_HEADER_OFFSET; j < lContainer.length; j++) {
18601
+ getDeferBlocks(lContainer[j], deferBlocks);
18602
+ }
18603
+ } else if (isLView(lView[i])) {
18604
+ getDeferBlocks(lView[i], deferBlocks);
18605
+ }
18606
+ }
18607
+ }
18608
+
18303
18609
  class DebugEventListener {
18304
18610
  name;
18305
18611
  callback;
@@ -18616,5 +18922,5 @@ function getDebugNode(nativeNode) {
18616
18922
  return null;
18617
18923
  }
18618
18924
 
18619
- 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, 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, EVENT_REPLAY_QUEUE, 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, createNgModuleRefWithProviders, createSingleResultOptionalQuerySignalFn, createSingleResultRequiredQuerySignalFn, depsTracker, devModeEqual, enableApplyRootElementTransformImpl, enableClaimDehydratedIcuCaseImpl, enableFindMatchingDehydratedViewImpl, enableLocateOrCreateContainerAnchorImpl, enableLocateOrCreateContainerRefImpl, enableLocateOrCreateElementContainerNodeImpl, enableLocateOrCreateElementNodeImpl, enableLocateOrCreateI18nNodeImpl, enableLocateOrCreateTextNodeImpl, enablePrepareI18nBlockForHydrationImpl, enableProfiling, enableRetrieveDeferBlockDataImpl, enableRetrieveHydrationInfoImpl, enableStashEventListenerImpl, findLocaleData, flushModuleScopingQueueAsMuchAsPossible, gatherDeferBlocksCommentNodes, generateStandaloneInDeclarationsError, getAsyncClassMetadataFn, getClosestComponentName, 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, provideIdleServiceWith, provideNgReflectAttributes, provideZonelessChangeDetection, provideZonelessChangeDetectionInternal, publishDefaultGlobalUtils, publishExternalGlobalUtil, publishSignalConfiguration, readHydrationInfo, 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, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetClassDebugInfo, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, ɵɵControlFeature, ɵɵExternalStylesFeature, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵanimateEnter, ɵɵanimateEnterListener, ɵɵanimateLeave, ɵɵanimateLeaveListener, ɵɵariaProperty, ɵɵarrowFunction, ɵɵ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, ɵɵvalidateAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
18925
+ 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, ControlFlowBlockType, 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, EVENT_REPLAY_QUEUE, 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, createNgModuleRefWithProviders, createSingleResultOptionalQuerySignalFn, createSingleResultRequiredQuerySignalFn, depsTracker, devModeEqual, enableApplyRootElementTransformImpl, enableClaimDehydratedIcuCaseImpl, enableFindMatchingDehydratedViewImpl, enableLocateOrCreateContainerAnchorImpl, enableLocateOrCreateContainerRefImpl, enableLocateOrCreateElementContainerNodeImpl, enableLocateOrCreateElementNodeImpl, enableLocateOrCreateI18nNodeImpl, enableLocateOrCreateTextNodeImpl, enablePrepareI18nBlockForHydrationImpl, enableProfiling, enableRetrieveDeferBlockDataImpl, enableRetrieveHydrationInfoImpl, enableStashEventListenerImpl, findLocaleData, flushModuleScopingQueueAsMuchAsPossible, gatherDeferBlocksCommentNodes, generateStandaloneInDeclarationsError, getAsyncClassMetadataFn, getClosestComponentName, getCompilerFacade, getDebugNode, 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, provideIdleServiceWith, provideNgReflectAttributes, provideZonelessChangeDetection, provideZonelessChangeDetectionInternal, publishDefaultGlobalUtils, publishExternalGlobalUtil, publishSignalConfiguration, readHydrationInfo, 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, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetClassDebugInfo, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, ɵɵControlFeature, ɵɵExternalStylesFeature, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵanimateEnter, ɵɵanimateEnterListener, ɵɵanimateLeave, ɵɵanimateLeaveListener, ɵɵariaProperty, ɵɵarrowFunction, ɵɵ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, ɵɵvalidateAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
18620
18926
  //# sourceMappingURL=_debug_node-chunk.mjs.map