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