@angular/core 21.2.0-next.1 → 21.2.0-next.2

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 (77) 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 +184 -537
  4. package/fesm2022/_debug_node-chunk.mjs.map +1 -1
  5. package/fesm2022/_effect-chunk.mjs +2 -11
  6. package/fesm2022/_effect-chunk.mjs.map +1 -1
  7. package/fesm2022/_effect-chunk2.mjs +2969 -0
  8. package/fesm2022/_effect-chunk2.mjs.map +1 -0
  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 +8 -4
  12. package/fesm2022/_resource-chunk.mjs.map +1 -1
  13. package/fesm2022/_untracked-chunk.mjs +72 -2946
  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 +6 -10
  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 +2 -2
  22. package/fesm2022/primitives-event-dispatch.mjs.map +1 -1
  23. package/fesm2022/primitives-signals.mjs +3 -3
  24. package/fesm2022/primitives-signals.mjs.map +1 -1
  25. package/fesm2022/rxjs-interop.mjs +4 -4
  26. package/fesm2022/rxjs-interop.mjs.map +1 -1
  27. package/fesm2022/testing.mjs +2 -2
  28. package/fesm2022/testing.mjs.map +1 -1
  29. package/package.json +2 -2
  30. package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +1 -1
  31. package/schematics/bundles/application-config-core.cjs +1 -1
  32. package/schematics/bundles/apply_import_manager-CxA_YYgB.cjs +1 -1
  33. package/schematics/bundles/bootstrap-options-migration.cjs +1 -1
  34. package/schematics/bundles/cleanup-unused-imports.cjs +1 -1
  35. package/schematics/bundles/common-to-standalone-migration.cjs +1 -1
  36. package/schematics/bundles/compiler_host-CY14HvaP.cjs +1 -1
  37. package/schematics/bundles/control-flow-migration.cjs +1 -1
  38. package/schematics/bundles/imports-CVmcbVA9.cjs +1 -1
  39. package/schematics/bundles/index-BtLcQH8g.cjs +1 -1
  40. package/schematics/bundles/inject-migration.cjs +1 -1
  41. package/schematics/bundles/leading_space-BTPRV0wu.cjs +1 -1
  42. package/schematics/bundles/migrate_ts_type_references-MWoZx-Cb.cjs +1 -1
  43. package/schematics/bundles/ng_component_template-BOuKAnQd.cjs +1 -1
  44. package/schematics/bundles/ng_decorators-DYy6II6x.cjs +1 -1
  45. package/schematics/bundles/ngclass-to-class-migration.cjs +1 -1
  46. package/schematics/bundles/ngstyle-to-style-migration.cjs +1 -1
  47. package/schematics/bundles/nodes-ZSQ7WZRB.cjs +1 -1
  48. package/schematics/bundles/output-migration.cjs +1 -1
  49. package/schematics/bundles/parse_html-C8eKA9px.cjs +1 -1
  50. package/schematics/bundles/project_paths-D2V-Uh2L.cjs +1 -1
  51. package/schematics/bundles/project_tsconfig_paths-DkkMibv-.cjs +1 -1
  52. package/schematics/bundles/property_name-BCpALNpZ.cjs +1 -1
  53. package/schematics/bundles/route-lazy-loading.cjs +1 -1
  54. package/schematics/bundles/router-current-navigation.cjs +1 -1
  55. package/schematics/bundles/router-last-successful-navigation.cjs +1 -1
  56. package/schematics/bundles/router-testing-module-migration.cjs +1 -1
  57. package/schematics/bundles/self-closing-tags-migration.cjs +1 -1
  58. package/schematics/bundles/signal-input-migration.cjs +1 -1
  59. package/schematics/bundles/signal-queries-migration.cjs +1 -1
  60. package/schematics/bundles/signals.cjs +1 -1
  61. package/schematics/bundles/standalone-migration.cjs +1 -1
  62. package/schematics/bundles/symbol-DZeHSR-V.cjs +1 -1
  63. package/types/_api-chunk.d.ts +1 -1
  64. package/types/_chrome_dev_tools_performance-chunk.d.ts +1 -1
  65. package/types/_discovery-chunk.d.ts +86 -25
  66. package/types/_effect-chunk.d.ts +1 -1
  67. package/types/_event_dispatcher-chunk.d.ts +2 -2
  68. package/types/_formatter-chunk.d.ts +1 -1
  69. package/types/_weak_ref-chunk.d.ts +1 -1
  70. package/types/core.d.ts +11 -187
  71. package/types/primitives-di.d.ts +1 -1
  72. package/types/primitives-event-dispatch.d.ts +3 -3
  73. package/types/primitives-signals.d.ts +1 -1
  74. package/types/rxjs-interop.d.ts +1 -1
  75. package/types/testing.d.ts +1 -1
  76. package/fesm2022/_linked_signal-chunk.mjs +0 -87
  77. package/fesm2022/_linked_signal-chunk.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v21.2.0-next.1
2
+ * @license Angular v21.2.0-next.2
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, 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, 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, getDirectiveDefOrThrow, getTNode, assertComponentType, debugStringifyTypeForError, 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, 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 './_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, isDirectiveHost, XSS_SECURITY_URL, RENDERER, renderStringify, getSelectedTNode, ENVIRONMENT, makeEnvironmentProviders, resetPreOrderHookFlags, PARENT, CHILD_TAIL, assertSame, assertFirstUpdatePass, getSelectedIndex, getTView, assertIndexInDeclRange, setSelectedIndex, 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, 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, debugStringifyTypeForError, assertNotDefined, nextBindingIndex, getDirectiveDefOrThrow, getTNode, assertComponentType, 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, assertTNodeCreationIndex, isSkipHydrationRootTNode, leaveSkipHydrationBlock, decreaseElementDepthCount, getNamespace, enterSkipHydrationBlock, getCurrentDirectiveDef, assertIndexInExpandoRange, getBindingIndex, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, keyValueArraySet, keyValueArrayGet, incrementBindingIndex, 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 './_effect-chunk2.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';
@@ -1444,6 +1444,7 @@ var ChangeDetectionStrategy;
1444
1444
  (function (ChangeDetectionStrategy) {
1445
1445
  ChangeDetectionStrategy[ChangeDetectionStrategy["OnPush"] = 0] = "OnPush";
1446
1446
  ChangeDetectionStrategy[ChangeDetectionStrategy["Default"] = 1] = "Default";
1447
+ ChangeDetectionStrategy[ChangeDetectionStrategy["Eager"] = 1] = "Eager";
1447
1448
  })(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));
1448
1449
 
1449
1450
  const TRACKED_LVIEWS = new Map();
@@ -4358,6 +4359,16 @@ function queueEnterAnimations(injector, enterAnimations) {
4358
4359
  addToAnimationQueue(injector, nodeAnimations.animateFns);
4359
4360
  }
4360
4361
  }
4362
+ function removeAnimationsFromQueue(injector, animationFns) {
4363
+ const animationQueue = injector.get(ANIMATION_QUEUE);
4364
+ if (Array.isArray(animationFns)) {
4365
+ for (const animateFn of animationFns) {
4366
+ animationQueue.queue.delete(animateFn);
4367
+ }
4368
+ } else {
4369
+ animationQueue.queue.delete(animationFns);
4370
+ }
4371
+ }
4361
4372
 
4362
4373
  function maybeQueueEnterAnimation(parentLView, parent, tNode, injector) {
4363
4374
  const enterAnimations = parentLView?.[ANIMATIONS]?.enter;
@@ -4493,6 +4504,9 @@ function cleanUpView(tView, lView) {
4493
4504
  }
4494
4505
  function runLeaveAnimationsWithCallback(lView, tNode, injector, callback) {
4495
4506
  const animations = lView?.[ANIMATIONS];
4507
+ if (animations?.enter?.has(tNode.index)) {
4508
+ removeAnimationsFromQueue(injector, animations.enter.get(tNode.index).animateFns);
4509
+ }
4496
4510
  if (animations == null || animations.leave == undefined || !animations.leave.has(tNode.index)) return callback(false);
4497
4511
  if (lView) allLeavingAnimations.add(lView[ID]);
4498
4512
  addToAnimationQueue(injector, () => {
@@ -6281,7 +6295,7 @@ function createTNode(tView, tParent, type, index, value, attrs) {
6281
6295
  directiveEnd: -1,
6282
6296
  directiveStylingLast: -1,
6283
6297
  componentOffset: -1,
6284
- fieldIndex: -1,
6298
+ controlDirectiveIndex: -1,
6285
6299
  customControlIndex: -1,
6286
6300
  propertyBindings: null,
6287
6301
  flags,
@@ -7288,10 +7302,10 @@ function verifyStandaloneImport(depType, importingType) {
7288
7302
  }
7289
7303
 
7290
7304
  class DepsTracker {
7291
- ownerNgModule = new Map();
7305
+ ownerNgModule = new WeakMap();
7292
7306
  ngModulesWithSomeUnresolvedDecls = new Set();
7293
- ngModulesScopeCache = new Map();
7294
- standaloneComponentsScopeCache = new Map();
7307
+ ngModulesScopeCache = new WeakMap();
7308
+ standaloneComponentsScopeCache = new WeakMap();
7295
7309
  resolveNgModulesDecls() {
7296
7310
  if (this.ngModulesWithSomeUnresolvedDecls.size === 0) {
7297
7311
  return;
@@ -7937,8 +7951,6 @@ function bindingUpdated4(lView, bindingIndex, exp1, exp2, exp3, exp4) {
7937
7951
  return bindingUpdated2(lView, bindingIndex + 2, exp3, exp4) || different;
7938
7952
  }
7939
7953
 
7940
- const ɵCONTROL = Symbol('CONTROL');
7941
-
7942
7954
  function wrapListener(tNode, lView, listenerFn) {
7943
7955
  return function wrapListenerIn_markDirtyAndPreventDefault(event) {
7944
7956
  const startView = isComponentHost(tNode) ? getComponentLViewByIndex(tNode.index, lView) : lView;
@@ -8077,15 +8089,153 @@ function isOutputSubscribable(value) {
8077
8089
  return value != null && typeof value.subscribe === 'function';
8078
8090
  }
8079
8091
 
8092
+ function ɵɵcontrolCreate() {
8093
+ controlCreateInternal();
8094
+ }
8095
+ function controlCreateInternal() {
8096
+ const lView = getLView();
8097
+ const tView = getTView();
8098
+ const tNode = getCurrentTNode();
8099
+ if (tView.firstCreatePass) {
8100
+ initializeControlFirstCreatePass(tView, tNode);
8101
+ }
8102
+ if (tNode.controlDirectiveIndex === -1) {
8103
+ return;
8104
+ }
8105
+ performanceMarkFeature('NgSignalForms');
8106
+ const instance = lView[tNode.controlDirectiveIndex];
8107
+ const controlDef = tView.data[tNode.controlDirectiveIndex].controlDef;
8108
+ controlDef.create(instance, new ControlDirectiveHostImpl(lView, tView, tNode));
8109
+ }
8110
+ function ɵɵcontrol() {
8111
+ controlUpdateInternal();
8112
+ }
8113
+ function controlUpdateInternal() {
8114
+ if (ngDevMode && isInCheckNoChangesMode()) {
8115
+ return;
8116
+ }
8117
+ const lView = getLView();
8118
+ const tView = getTView();
8119
+ const tNode = getSelectedTNode();
8120
+ if (tNode.controlDirectiveIndex === -1) {
8121
+ return;
8122
+ }
8123
+ const controlDef = tView.data[tNode.controlDirectiveIndex].controlDef;
8124
+ const instance = lView[tNode.controlDirectiveIndex];
8125
+ controlDef.update(instance, new ControlDirectiveHostImpl(lView, tView, tNode));
8126
+ }
8127
+ class ControlDirectiveHostImpl {
8128
+ lView;
8129
+ tView;
8130
+ tNode;
8131
+ hasPassThrough;
8132
+ constructor(lView, tView, tNode) {
8133
+ this.lView = lView;
8134
+ this.tView = tView;
8135
+ this.tNode = tNode;
8136
+ this.hasPassThrough = !!(tNode.flags & 4096);
8137
+ }
8138
+ get customControl() {
8139
+ return this.tNode.customControlIndex !== -1 ? this.lView[this.tNode.customControlIndex] : undefined;
8140
+ }
8141
+ get descriptor() {
8142
+ if (ngDevMode && isComponentHost(this.tNode)) {
8143
+ const componentIndex = this.tNode.directiveStart + this.tNode.componentOffset;
8144
+ const componentDef = this.tView.data[componentIndex];
8145
+ return `Component ${debugStringifyTypeForError(componentDef.type)}`;
8146
+ }
8147
+ return `<${this.tNode.value}>`;
8148
+ }
8149
+ listenToCustomControlOutput(outputName, callback) {
8150
+ if (!hasOutput(this.tView.data[this.tNode.customControlIndex], outputName)) {
8151
+ return;
8152
+ }
8153
+ listenToOutput(this.tNode, this.lView, this.tNode.customControlIndex, outputName, outputName, wrapListener(this.tNode, this.lView, callback));
8154
+ }
8155
+ listenToCustomControlModel(listener) {
8156
+ const modelName = this.tNode.flags & 1024 ? 'valueChange' : 'checkedChange';
8157
+ listenToOutput(this.tNode, this.lView, this.tNode.customControlIndex, modelName, modelName, wrapListener(this.tNode, this.lView, listener));
8158
+ }
8159
+ listenToDom(eventName, listener) {
8160
+ listenToDomEvent(this.tNode, this.tView, this.lView, undefined, this.lView[RENDERER], eventName, listener, wrapListener(this.tNode, this.lView, listener));
8161
+ }
8162
+ setInputOnDirectives(inputName, value) {
8163
+ const directiveIndices = this.tNode.inputs?.[inputName];
8164
+ if (!directiveIndices) {
8165
+ return false;
8166
+ }
8167
+ for (const index of directiveIndices) {
8168
+ const directiveDef = this.tView.data[index];
8169
+ const directive = this.lView[index];
8170
+ writeToDirectiveInput(directiveDef, directive, inputName, value);
8171
+ }
8172
+ return true;
8173
+ }
8174
+ setCustomControlModelInput(value) {
8175
+ const directive = this.lView[this.tNode.customControlIndex];
8176
+ const directiveDef = this.tView.data[this.tNode.customControlIndex];
8177
+ const modelName = this.tNode.flags & 1024 ? 'value' : 'checked';
8178
+ writeToDirectiveInput(directiveDef, directive, modelName, value);
8179
+ }
8180
+ customControlHasInput(inputName) {
8181
+ if (this.tNode.customControlIndex === -1) {
8182
+ return false;
8183
+ }
8184
+ const directiveDef = this.tView.data[this.tNode.customControlIndex];
8185
+ return directiveDef.inputs[inputName] != undefined;
8186
+ }
8187
+ }
8188
+ function initializeControlFirstCreatePass(tView, tNode, lView) {
8189
+ ngDevMode && assertFirstCreatePass(tView);
8190
+ for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {
8191
+ const directiveDef = tView.data[i];
8192
+ if (directiveDef.controlDef) {
8193
+ tNode.controlDirectiveIndex = i;
8194
+ break;
8195
+ }
8196
+ }
8197
+ if (tNode.controlDirectiveIndex === -1) {
8198
+ return;
8199
+ }
8200
+ const controlDef = tView.data[tNode.controlDirectiveIndex].controlDef;
8201
+ if (controlDef.passThroughInput) {
8202
+ if ((tNode.inputs?.[controlDef.passThroughInput]?.length ?? 0) > 1) {
8203
+ tNode.flags |= 4096;
8204
+ return;
8205
+ }
8206
+ }
8207
+ initializeCustomControlStatus(tView, tNode);
8208
+ }
8209
+ function initializeCustomControlStatus(tView, tNode) {
8210
+ for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {
8211
+ const directiveDef = tView.data[i];
8212
+ if (hasModelInput(directiveDef, 'value')) {
8213
+ tNode.flags |= 1024;
8214
+ tNode.customControlIndex = i;
8215
+ return;
8216
+ }
8217
+ if (hasModelInput(directiveDef, 'checked')) {
8218
+ tNode.flags |= 2048;
8219
+ tNode.customControlIndex = i;
8220
+ return;
8221
+ }
8222
+ }
8223
+ }
8224
+ function hasModelInput(directiveDef, name) {
8225
+ return hasInput(directiveDef, name) && hasOutput(directiveDef, name + 'Change');
8226
+ }
8227
+ function hasInput(directiveDef, name) {
8228
+ return name in directiveDef.inputs;
8229
+ }
8230
+ function hasOutput(directiveDef, name) {
8231
+ return name in directiveDef.outputs;
8232
+ }
8233
+
8080
8234
  const BINDING = /* @__PURE__ */Symbol('BINDING');
8081
8235
  const INPUT_BINDING_METADATA = {
8082
8236
  kind: 'input',
8083
8237
  requiredVars: 1
8084
8238
  };
8085
- const FIELD_BINDING_METADATA = {
8086
- kind: 'field',
8087
- requiredVars: 2
8088
- };
8089
8239
  const OUTPUT_BINDING_METADATA = {
8090
8240
  kind: 'output',
8091
8241
  requiredVars: 0
@@ -8111,21 +8261,16 @@ function inputBindingUpdate(targetDirectiveIdx, publicName, value) {
8111
8261
  }
8112
8262
  }
8113
8263
  }
8114
- function controlBinding(binding, tNode) {
8115
- const lView = getLView();
8116
- const directive = lView[tNode.directiveStart + binding.targetIdx];
8117
- return directive[ɵCONTROL];
8118
- }
8119
8264
  function inputBinding(publicName, value) {
8120
8265
  if (publicName === 'formField') {
8121
8266
  const binding = {
8122
- [BINDING]: FIELD_BINDING_METADATA,
8267
+ [BINDING]: INPUT_BINDING_METADATA,
8123
8268
  create: () => {
8124
- controlBinding(binding, getCurrentTNode())?.create();
8269
+ controlCreateInternal();
8125
8270
  },
8126
8271
  update: () => {
8127
8272
  inputBindingUpdate(binding.targetIdx, publicName, value());
8128
- controlBinding(binding, getSelectedTNode())?.update();
8273
+ controlUpdateInternal();
8129
8274
  }
8130
8275
  };
8131
8276
  return binding;
@@ -8314,7 +8459,7 @@ class ComponentFactory extends ComponentFactory$1 {
8314
8459
  }
8315
8460
  }
8316
8461
  function createRootTView(rootSelectorOrNode, componentDef, componentBindings, directives) {
8317
- const tAttributes = rootSelectorOrNode ? ['ng-version', '21.2.0-next.1'] : extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
8462
+ const tAttributes = rootSelectorOrNode ? ['ng-version', '21.2.0-next.2'] : extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
8318
8463
  let creationBindings = null;
8319
8464
  let updateBindings = null;
8320
8465
  let varsToAllocate = 0;
@@ -9458,6 +9603,7 @@ function getNgDirectiveDef(directiveDefinition) {
9458
9603
  setInput: null,
9459
9604
  resolveHostDirectives: null,
9460
9605
  hostDirectives: null,
9606
+ controlDef: null,
9461
9607
  inputs: parseAndConvertInputsForDefinition(directiveDefinition.inputs, declaredInputs),
9462
9608
  outputs: parseAndConvertOutputsForDefinition(directiveDefinition.outputs),
9463
9609
  debugInfo: null
@@ -9510,6 +9656,20 @@ function getComponentId(componentDef) {
9510
9656
  return compId;
9511
9657
  }
9512
9658
 
9659
+ function ɵɵControlFeature(passThroughInput) {
9660
+ return definition => {
9661
+ definition.controlDef = {
9662
+ create: (inst, host) => {
9663
+ inst?.ɵngControlCreate(host);
9664
+ },
9665
+ update: (inst, host) => {
9666
+ inst?.ɵngControlUpdate?.(host);
9667
+ },
9668
+ passThroughInput
9669
+ };
9670
+ };
9671
+ }
9672
+
9513
9673
  function ɵɵHostDirectivesFeature(rawHostDirectives) {
9514
9674
  const feature = definition => {
9515
9675
  const isEager = Array.isArray(rawHostDirectives);
@@ -13273,521 +13433,6 @@ function ɵɵcomponentInstance() {
13273
13433
  return instance;
13274
13434
  }
13275
13435
 
13276
- function ɵɵcontrolCreate() {
13277
- const lView = getLView();
13278
- const tView = getTView();
13279
- const tNode = getCurrentTNode();
13280
- if (tView.firstCreatePass) {
13281
- initializeControlFirstCreatePass(tView, tNode, lView);
13282
- }
13283
- const fieldDirective = getFieldDirective(tNode, lView);
13284
- if (!fieldDirective) {
13285
- return;
13286
- }
13287
- performanceMarkFeature('NgSignalForms');
13288
- if (tNode.flags & 1024) {
13289
- initializeCustomControl(lView, tNode, fieldDirective, 'value');
13290
- } else if (tNode.flags & 2048) {
13291
- initializeCustomControl(lView, tNode, fieldDirective, 'checked');
13292
- } else if (tNode.flags & 4096) {
13293
- initializeInteropControl(fieldDirective);
13294
- } else if (tNode.flags & 8192) {
13295
- initializeNativeControl(lView, tNode, fieldDirective);
13296
- }
13297
- fieldDirective.registerAsBinding(getCustomControl(tNode, lView));
13298
- }
13299
- function ɵɵcontrol(value, name, sanitizer) {
13300
- const lView = getLView();
13301
- const tNode = getSelectedTNode();
13302
- const bindingIndex = nextBindingIndex();
13303
- if (bindingUpdated(lView, bindingIndex, value)) {
13304
- const tView = getTView();
13305
- setPropertyAndInputs(tNode, lView, name, value, lView[RENDERER], sanitizer);
13306
- ngDevMode && storePropertyBindingMetadata(tView.data, tNode, name, bindingIndex);
13307
- }
13308
- updateControl(lView, tNode);
13309
- }
13310
- function ɵcontrolUpdate() {
13311
- const lView = getLView();
13312
- const tNode = getSelectedTNode();
13313
- updateControl(lView, tNode);
13314
- }
13315
- function updateControl(lView, tNode) {
13316
- const fieldDirective = getFieldDirective(tNode, lView);
13317
- if (fieldDirective) {
13318
- updateControlClasses(lView, tNode, fieldDirective);
13319
- if (tNode.flags & 1024) {
13320
- updateCustomControl(tNode, lView, fieldDirective, 'value');
13321
- } else if (tNode.flags & 2048) {
13322
- updateCustomControl(tNode, lView, fieldDirective, 'checked');
13323
- } else if (tNode.flags & 4096) {
13324
- updateInteropControl(tNode, lView, fieldDirective);
13325
- } else {
13326
- updateNativeControl(tNode, lView, fieldDirective);
13327
- }
13328
- }
13329
- nextBindingIndex();
13330
- }
13331
- function initializeControlFirstCreatePass(tView, tNode, lView) {
13332
- ngDevMode && assertFirstCreatePass(tView);
13333
- const directiveIndices = tNode.inputs?.['formField'];
13334
- if (!directiveIndices) {
13335
- return;
13336
- }
13337
- if (isComponentHost(tNode) && directiveIndices.includes(tNode.directiveStart + tNode.componentOffset)) {
13338
- return;
13339
- }
13340
- const controlIndex = directiveIndices.find(index => ɵCONTROL in lView[index]);
13341
- if (controlIndex === undefined) {
13342
- return;
13343
- }
13344
- tNode.fieldIndex = controlIndex;
13345
- const foundControl = isInteropControlFirstCreatePass(tNode, lView) || isCustomControlFirstCreatePass(tView, tNode);
13346
- if (isNativeControlFirstCreatePass(tNode) || foundControl) {
13347
- return;
13348
- }
13349
- throw new RuntimeError(318, ngDevMode && `${describeElement(tView, tNode)} is an invalid [formField] 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.`);
13350
- }
13351
- function describeElement(tView, tNode) {
13352
- if (ngDevMode && isComponentHost(tNode)) {
13353
- const componentIndex = tNode.directiveStart + tNode.componentOffset;
13354
- const componentDef = tView.data[componentIndex];
13355
- return `Component ${debugStringifyTypeForError(componentDef.type)}`;
13356
- }
13357
- return `<${tNode.value}>`;
13358
- }
13359
- function isInteropControlFirstCreatePass(tNode, lView) {
13360
- const control = lView[tNode.fieldIndex];
13361
- if (control.ɵinteropControl) {
13362
- tNode.flags |= 4096;
13363
- return true;
13364
- }
13365
- return false;
13366
- }
13367
- function isCustomControlFirstCreatePass(tView, tNode) {
13368
- for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {
13369
- const directiveDef = tView.data[i];
13370
- if (hasModelInput(directiveDef, 'value')) {
13371
- tNode.flags |= 1024;
13372
- tNode.customControlIndex = i;
13373
- return true;
13374
- }
13375
- if (hasModelInput(directiveDef, 'checked')) {
13376
- tNode.flags |= 2048;
13377
- tNode.customControlIndex = i;
13378
- return true;
13379
- }
13380
- }
13381
- return false;
13382
- }
13383
- function isNativeControlFirstCreatePass(tNode) {
13384
- if (!isNativeControl(tNode)) {
13385
- return false;
13386
- }
13387
- tNode.flags |= 8192;
13388
- if (isNumericInput(tNode)) {
13389
- tNode.flags |= 16384;
13390
- }
13391
- if (isTextControl(tNode)) {
13392
- tNode.flags |= 32768;
13393
- }
13394
- return true;
13395
- }
13396
- function getFieldDirective(tNode, lView) {
13397
- const index = tNode.fieldIndex;
13398
- return index === -1 ? undefined : lView[index];
13399
- }
13400
- function getCustomControl(tNode, lView) {
13401
- const index = tNode.customControlIndex;
13402
- return index === -1 ? undefined : lView[index];
13403
- }
13404
- function hasModelInput(directiveDef, name) {
13405
- return hasInput(directiveDef, name) && hasOutput(directiveDef, name + 'Change');
13406
- }
13407
- function hasInput(directiveDef, name) {
13408
- return name in directiveDef.inputs;
13409
- }
13410
- function hasOutput(directiveDef, name) {
13411
- return name in directiveDef.outputs;
13412
- }
13413
- function initializeCustomControl(lView, tNode, fieldDirective, modelName) {
13414
- const tView = getTView();
13415
- const directiveIndex = tNode.customControlIndex;
13416
- const outputName = modelName + 'Change';
13417
- listenToOutput(tNode, lView, directiveIndex, outputName, outputName, wrapListener(tNode, lView, value => fieldDirective.state().setControlValue(value)));
13418
- const directiveDef = tView.data[directiveIndex];
13419
- const touchedOutputName = 'touchedChange';
13420
- if (hasOutput(directiveDef, touchedOutputName)) {
13421
- listenToOutput(tNode, lView, directiveIndex, touchedOutputName, touchedOutputName, wrapListener(tNode, lView, () => fieldDirective.state().markAsTouched()));
13422
- }
13423
- }
13424
- function initializeInteropControl(fieldDirective) {
13425
- const interopControl = fieldDirective.ɵinteropControl;
13426
- interopControl.registerOnChange(value => fieldDirective.state().setControlValue(value));
13427
- interopControl.registerOnTouched(() => fieldDirective.state().markAsTouched());
13428
- }
13429
- function isNativeControl(tNode) {
13430
- if (tNode.type !== 2) {
13431
- return false;
13432
- }
13433
- const tagName = tNode.value;
13434
- return tagName === 'input' || tagName === 'textarea' || tagName === 'select';
13435
- }
13436
- function initializeNativeControl(lView, tNode, fieldDirective) {
13437
- const tView = getTView();
13438
- const renderer = lView[RENDERER];
13439
- const element = getNativeByTNode(tNode, lView);
13440
- const inputListener = () => {
13441
- const state = fieldDirective.state();
13442
- state.setControlValue(getNativeControlValue(element, state.value));
13443
- };
13444
- listenToDomEvent(tNode, tView, lView, undefined, renderer, 'input', inputListener, wrapListener(tNode, lView, inputListener));
13445
- const blurListener = () => {
13446
- fieldDirective.state().markAsTouched();
13447
- };
13448
- listenToDomEvent(tNode, tView, lView, undefined, renderer, 'blur', blurListener, wrapListener(tNode, lView, blurListener));
13449
- if (tNode.type === 2 && tNode.value === 'select' && typeof MutationObserver === 'function') {
13450
- const observer = observeSelectMutations(element, fieldDirective);
13451
- storeCleanupWithContext(tView, lView, observer, observer.disconnect);
13452
- }
13453
- }
13454
- function observeSelectMutations(select, controlDirective) {
13455
- const observer = new MutationObserver(mutations => {
13456
- if (mutations.some(m => isRelevantSelectMutation(m))) {
13457
- select.value = controlDirective.state().value();
13458
- }
13459
- });
13460
- observer.observe(select, {
13461
- attributes: true,
13462
- attributeFilter: ['value'],
13463
- characterData: true,
13464
- childList: true,
13465
- subtree: true
13466
- });
13467
- return observer;
13468
- }
13469
- function isRelevantSelectMutation(mutation) {
13470
- if (mutation.type === 'childList' || mutation.type === 'characterData') {
13471
- if (mutation.target instanceof Comment) {
13472
- return false;
13473
- }
13474
- for (const node of mutation.addedNodes) {
13475
- if (!(node instanceof Comment)) {
13476
- return true;
13477
- }
13478
- }
13479
- for (const node of mutation.removedNodes) {
13480
- if (!(node instanceof Comment)) {
13481
- return true;
13482
- }
13483
- }
13484
- return false;
13485
- }
13486
- if (mutation.type === 'attributes' && mutation.target instanceof HTMLOptionElement) {
13487
- return true;
13488
- }
13489
- return false;
13490
- }
13491
- function updateControlClasses(lView, tNode, control) {
13492
- if (control.classes) {
13493
- const bindings = getControlBindings(lView);
13494
- bindings.classes ??= {};
13495
- control.state();
13496
- const renderer = lView[RENDERER];
13497
- const element = getNativeByTNode(tNode, lView);
13498
- for (const [className, enabled] of control.classes) {
13499
- const isEnabled = enabled();
13500
- if (controlClassBindingUpdated(bindings.classes, className, isEnabled)) {
13501
- if (isEnabled) {
13502
- renderer.addClass(element, className);
13503
- } else {
13504
- renderer.removeClass(element, className);
13505
- }
13506
- }
13507
- }
13508
- }
13509
- }
13510
- function updateCustomControl(tNode, lView, fieldDirective, modelName) {
13511
- const tView = getTView();
13512
- const directiveIndex = tNode.customControlIndex;
13513
- const directive = lView[directiveIndex];
13514
- const directiveDef = tView.data[directiveIndex];
13515
- const state = fieldDirective.state();
13516
- const bindings = getControlBindings(lView);
13517
- const controlValue = state.controlValue();
13518
- if (controlBindingUpdated(bindings, CONTROL_VALUE, controlValue)) {
13519
- writeToDirectiveInput(directiveDef, directive, modelName, controlValue);
13520
- }
13521
- const isNative = (tNode.flags & 8192) !== 0;
13522
- const element = isNative ? getNativeByTNode(tNode, lView) : null;
13523
- const renderer = lView[RENDERER];
13524
- for (const key of CONTROL_BINDING_KEYS) {
13525
- const inputName = CONTROL_BINDING_NAMES[key];
13526
- const value = getValue(fieldDirective, state, key, inputName);
13527
- if (controlBindingUpdated(bindings, key, value)) {
13528
- updateDirectiveInputs(tNode, lView, inputName, value);
13529
- if (isNative && !(inputName in directiveDef.inputs)) {
13530
- updateNativeProperty(tNode, renderer, element, key, value, inputName);
13531
- }
13532
- }
13533
- }
13534
- }
13535
- function updateInteropControl(tNode, lView, fieldDirective) {
13536
- const interopControl = fieldDirective.ɵinteropControl;
13537
- const bindings = getControlBindings(lView);
13538
- const state = fieldDirective.state();
13539
- const isNative = (tNode.flags & 8192) !== 0;
13540
- const element = isNative ? getNativeByTNode(tNode, lView) : null;
13541
- const renderer = lView[RENDERER];
13542
- const value = state.value();
13543
- if (controlBindingUpdated(bindings, CONTROL_VALUE, value)) {
13544
- untracked(() => interopControl.writeValue(value));
13545
- }
13546
- for (const key of CONTROL_BINDING_KEYS) {
13547
- const inputName = CONTROL_BINDING_NAMES[key];
13548
- const value = getValue(fieldDirective, state, key, inputName);
13549
- if (controlBindingUpdated(bindings, key, value)) {
13550
- const didUpdateInput = updateDirectiveInputs(tNode, lView, inputName, value);
13551
- if (key === DISABLED) {
13552
- if (interopControl.setDisabledState) {
13553
- untracked(() => interopControl.setDisabledState(value));
13554
- }
13555
- } else if (isNative && !didUpdateInput) {
13556
- updateNativeProperty(tNode, renderer, element, key, value, inputName);
13557
- }
13558
- }
13559
- }
13560
- }
13561
- function updateNativeControl(tNode, lView, fieldDirective) {
13562
- const element = getNativeByTNode(tNode, lView);
13563
- const renderer = lView[RENDERER];
13564
- const state = fieldDirective.state();
13565
- const bindings = getControlBindings(lView);
13566
- const controlValue = state.controlValue();
13567
- if (controlBindingUpdated(bindings, CONTROL_VALUE, controlValue)) {
13568
- setNativeControlValue(element, controlValue);
13569
- }
13570
- for (const key of CONTROL_BINDING_KEYS) {
13571
- const inputName = CONTROL_BINDING_NAMES[key];
13572
- const value = getValue(fieldDirective, state, key, inputName);
13573
- if (controlBindingUpdated(bindings, key, value)) {
13574
- updateNativeProperty(tNode, renderer, element, key, value, inputName);
13575
- updateDirectiveInputs(tNode, lView, inputName, value);
13576
- }
13577
- }
13578
- }
13579
- function getValue(fieldDirective, state, fieldStateKey, inputName) {
13580
- if (inputName === 'errors') {
13581
- return fieldDirective[fieldStateKey]();
13582
- }
13583
- return state[fieldStateKey]?.();
13584
- }
13585
- function updateDirectiveInputs(tNode, lView, inputName, value) {
13586
- const directiveIndices = tNode.inputs?.[inputName];
13587
- if (directiveIndices) {
13588
- const tView = getTView();
13589
- for (const index of directiveIndices) {
13590
- const directiveDef = tView.data[index];
13591
- const directive = lView[index];
13592
- writeToDirectiveInput(directiveDef, directive, inputName, value);
13593
- }
13594
- return true;
13595
- }
13596
- return false;
13597
- }
13598
- function updateNativeProperty(tNode, renderer, element, key, value, name) {
13599
- switch (key) {
13600
- case NAME:
13601
- renderer.setAttribute(element, name, value);
13602
- break;
13603
- case DISABLED:
13604
- case READONLY:
13605
- case REQUIRED:
13606
- setBooleanAttribute(renderer, element, name, value);
13607
- break;
13608
- case MAX:
13609
- case MIN:
13610
- if (tNode.flags & 16384) {
13611
- setOptionalAttribute(renderer, element, name, value);
13612
- }
13613
- break;
13614
- case MAX_LENGTH:
13615
- case MIN_LENGTH:
13616
- if (tNode.flags & 32768) {
13617
- setOptionalAttribute(renderer, element, name, value);
13618
- }
13619
- break;
13620
- }
13621
- }
13622
- function isDateOrNull(value) {
13623
- return value === null || value instanceof Date;
13624
- }
13625
- function isNumericInput(tNode) {
13626
- if (!tNode.attrs || tNode.value !== 'input') {
13627
- return false;
13628
- }
13629
- for (let i = 0; i < tNode.attrs.length; i += 2) {
13630
- const name = tNode.attrs[i];
13631
- if (isNameOnlyAttributeMarker(name)) {
13632
- break;
13633
- }
13634
- if (name === 'type') {
13635
- const value = tNode.attrs[i + 1];
13636
- return value === 'date' || value === 'datetime-local' || value === 'month' || value === 'number' || value === 'range' || value === 'time' || value === 'week';
13637
- }
13638
- }
13639
- return false;
13640
- }
13641
- function isTextControl(tNode) {
13642
- return tNode.value !== 'select';
13643
- }
13644
- function getNativeControlValue(element, currentValue) {
13645
- switch (element.type) {
13646
- case 'checkbox':
13647
- return element.checked;
13648
- case 'number':
13649
- case 'range':
13650
- case 'datetime-local':
13651
- if (typeof currentValue() === 'number') {
13652
- return element.valueAsNumber;
13653
- }
13654
- break;
13655
- case 'date':
13656
- case 'month':
13657
- case 'time':
13658
- case 'week':
13659
- const value = currentValue();
13660
- if (isDateOrNull(value)) {
13661
- return element.valueAsDate;
13662
- } else if (typeof value === 'number') {
13663
- return element.valueAsNumber;
13664
- }
13665
- break;
13666
- }
13667
- return element.value;
13668
- }
13669
- function setNativeControlValue(element, value) {
13670
- switch (element.type) {
13671
- case 'checkbox':
13672
- element.checked = value;
13673
- return;
13674
- case 'radio':
13675
- element.checked = value === element.value;
13676
- return;
13677
- case 'number':
13678
- case 'range':
13679
- case 'datetime-local':
13680
- if (typeof value === 'number') {
13681
- setNativeNumberControlValue(element, value);
13682
- return;
13683
- }
13684
- break;
13685
- case 'date':
13686
- case 'month':
13687
- case 'time':
13688
- case 'week':
13689
- if (isDateOrNull(value)) {
13690
- element.valueAsDate = value;
13691
- return;
13692
- } else if (typeof value === 'number') {
13693
- setNativeNumberControlValue(element, value);
13694
- return;
13695
- }
13696
- }
13697
- element.value = value;
13698
- }
13699
- function setNativeNumberControlValue(element, value) {
13700
- if (isNaN(value)) {
13701
- element.value = '';
13702
- } else {
13703
- element.valueAsNumber = value;
13704
- }
13705
- }
13706
- const DISABLED = /* @__PURE__ */getClosureSafeProperty({
13707
- disabled: getClosureSafeProperty
13708
- });
13709
- const MAX = /* @__PURE__ */getClosureSafeProperty({
13710
- max: getClosureSafeProperty
13711
- });
13712
- const MAX_LENGTH = /* @__PURE__ */getClosureSafeProperty({
13713
- maxLength: getClosureSafeProperty
13714
- });
13715
- const MIN = /* @__PURE__ */getClosureSafeProperty({
13716
- min: getClosureSafeProperty
13717
- });
13718
- const MIN_LENGTH = /* @__PURE__ */getClosureSafeProperty({
13719
- minLength: getClosureSafeProperty
13720
- });
13721
- const NAME = /* @__PURE__ */getClosureSafeProperty({
13722
- name: getClosureSafeProperty
13723
- });
13724
- const READONLY = /* @__PURE__ */getClosureSafeProperty({
13725
- readonly: getClosureSafeProperty
13726
- });
13727
- const REQUIRED = /* @__PURE__ */getClosureSafeProperty({
13728
- required: getClosureSafeProperty
13729
- });
13730
- const CONTROL_VALUE = /* @__PURE__ */getClosureSafeProperty({
13731
- controlValue: getClosureSafeProperty
13732
- });
13733
- const CONTROL_BINDING_NAMES = {
13734
- disabled: 'disabled',
13735
- disabledReasons: 'disabledReasons',
13736
- dirty: 'dirty',
13737
- errors: 'errors',
13738
- hidden: 'hidden',
13739
- invalid: 'invalid',
13740
- max: 'max',
13741
- maxLength: 'maxLength',
13742
- min: 'min',
13743
- minLength: 'minLength',
13744
- name: 'name',
13745
- pattern: 'pattern',
13746
- pending: 'pending',
13747
- readonly: 'readonly',
13748
- required: 'required',
13749
- touched: 'touched'
13750
- };
13751
- const CONTROL_BINDING_KEYS = /* @__PURE__ */(() => Object.keys(CONTROL_BINDING_NAMES))();
13752
- function getControlBindings(lView) {
13753
- const bindingIndex = getBindingIndex();
13754
- let bindings = lView[bindingIndex];
13755
- if (bindings === NO_CHANGE) {
13756
- bindings = lView[bindingIndex] = {};
13757
- }
13758
- return bindings;
13759
- }
13760
- function controlBindingUpdated(bindings, key, value) {
13761
- const oldValue = bindings[key];
13762
- if (Object.is(oldValue, value)) {
13763
- return false;
13764
- }
13765
- bindings[key] = value;
13766
- return true;
13767
- }
13768
- function controlClassBindingUpdated(bindings, className, value) {
13769
- const oldValue = bindings[className];
13770
- if (Object.is(oldValue, value)) {
13771
- return false;
13772
- }
13773
- bindings[className] = value;
13774
- return true;
13775
- }
13776
- function setBooleanAttribute(renderer, element, name, value) {
13777
- if (value) {
13778
- renderer.setAttribute(element, name, '');
13779
- } else {
13780
- renderer.removeAttribute(element, name);
13781
- }
13782
- }
13783
- function setOptionalAttribute(renderer, element, name, value) {
13784
- if (value !== undefined) {
13785
- renderer.setAttribute(element, name, value.toString());
13786
- } else {
13787
- renderer.removeAttribute(element, name);
13788
- }
13789
- }
13790
-
13791
13436
  class LiveCollection {
13792
13437
  destroy(item) {}
13793
13438
  updateValue(index, value) {}
@@ -17272,6 +16917,7 @@ const angularCoreEnv = (() => ({
17272
16917
  'ɵɵresetView': __resetView,
17273
16918
  'ɵɵHostDirectivesFeature': ɵɵHostDirectivesFeature,
17274
16919
  'ɵɵNgOnChangesFeature': ɵɵNgOnChangesFeature,
16920
+ 'ɵɵControlFeature': ɵɵControlFeature,
17275
16921
  'ɵɵProvidersFeature': ɵɵProvidersFeature,
17276
16922
  'ɵɵInheritDefinitionFeature': ɵɵInheritDefinitionFeature,
17277
16923
  'ɵɵExternalStylesFeature': ɵɵExternalStylesFeature,
@@ -18017,6 +17663,7 @@ function directiveMetadata(type, metadata) {
18017
17663
  lifecycle: {
18018
17664
  usesOnChanges: reflect.hasLifecycleHook(type, 'ngOnChanges')
18019
17665
  },
17666
+ controlCreate: null,
18020
17667
  typeSourceSpan: null,
18021
17668
  usesInheritance: !extendsDirectlyFromObject(type),
18022
17669
  exportAs: extractExportAs(metadata.exportAs),
@@ -18811,5 +18458,5 @@ function getDebugNode(nativeNode) {
18811
18458
  return null;
18812
18459
  }
18813
18460
 
18814
- 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, 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, 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, ɵcontrolUpdate, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetClassDebugInfo, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, ɵɵ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 };
18461
+ 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, 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, 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, ɵ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 };
18815
18462
  //# sourceMappingURL=_debug_node-chunk.mjs.map