@angular/core 20.3.3 → 20.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.d.d.ts +2 -2
- package/chrome_dev_tools_performance.d.d.ts +4 -2
- package/discovery.d.d.ts +11 -4
- package/effect.d.d.ts +2 -2
- package/event_dispatcher.d.d.ts +2 -2
- package/fesm2022/attribute.mjs +2 -2
- package/fesm2022/attribute.mjs.map +1 -1
- package/fesm2022/core.mjs +3 -3
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/debug_node.mjs +225 -106
- package/fesm2022/debug_node.mjs.map +1 -1
- package/fesm2022/effect.mjs +2 -2
- package/fesm2022/effect.mjs.map +1 -1
- package/fesm2022/not_found.mjs +2 -2
- package/fesm2022/not_found.mjs.map +1 -1
- package/fesm2022/primitives/di.mjs +2 -2
- package/fesm2022/primitives/di.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +2 -2
- package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +2 -2
- package/fesm2022/primitives/signals.mjs.map +1 -1
- package/fesm2022/resource.mjs +2 -2
- package/fesm2022/resource.mjs.map +1 -1
- package/fesm2022/root_effect_scheduler.mjs +8 -3
- package/fesm2022/root_effect_scheduler.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +2 -2
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/signal.mjs +2 -2
- package/fesm2022/signal.mjs.map +1 -1
- package/fesm2022/testing.mjs +2 -2
- package/fesm2022/testing.mjs.map +1 -1
- package/fesm2022/weak_ref.mjs +2 -2
- package/fesm2022/weak_ref.mjs.map +1 -1
- package/formatter.d.d.ts +2 -2
- package/index.d.ts +16 -9
- package/package.json +2 -2
- package/primitives/di/index.d.ts +2 -2
- package/primitives/event-dispatch/index.d.ts +2 -2
- package/primitives/signals/index.d.ts +2 -2
- package/rxjs-interop/index.d.ts +2 -2
- package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +5 -5
- package/schematics/bundles/{apply_import_manager-CUBvPp_2.cjs → apply_import_manager-_3Mx7H7A.cjs} +3 -3
- package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
- package/schematics/bundles/{compiler_host-DJHZ7M9N.cjs → compiler_host-DXiKJabk.cjs} +2 -2
- package/schematics/bundles/control-flow-migration.cjs +21 -20
- package/schematics/bundles/document-core.cjs +5 -5
- package/schematics/bundles/imports-CIX-JgAN.cjs +1 -1
- package/schematics/bundles/{index-BZJ8bv9v.cjs → index-BDeOF3Gn.cjs} +125 -58
- package/schematics/bundles/{index-DU_evmAi.cjs → index-C8BhVtUr.cjs} +4 -4
- package/schematics/bundles/inject-flags.cjs +5 -5
- package/schematics/bundles/inject-migration.cjs +3 -3
- package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
- package/schematics/bundles/{migrate_ts_type_references-58gA72Ti.cjs → migrate_ts_type_references-BlSjvHVC.cjs} +47 -5
- package/schematics/bundles/ng_decorators-B5HCqr20.cjs +1 -1
- package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
- package/schematics/bundles/output-migration.cjs +6 -6
- package/schematics/bundles/{project_paths-DcM18127.cjs → project_paths-C8LDPZ5A.cjs} +3 -3
- package/schematics/bundles/{project_tsconfig_paths-Dqd0J7st.cjs → project_tsconfig_paths-tTmeFlcz.cjs} +145 -3
- package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
- package/schematics/bundles/route-lazy-loading.cjs +3 -3
- package/schematics/bundles/router-current-navigation.cjs +4 -4
- package/schematics/bundles/self-closing-tags-migration.cjs +4 -4
- package/schematics/bundles/signal-input-migration.cjs +7 -7
- package/schematics/bundles/signal-queries-migration.cjs +7 -7
- package/schematics/bundles/signals.cjs +7 -7
- package/schematics/bundles/standalone-migration.cjs +50 -10
- package/schematics/bundles/symbol-VPWguRxr.cjs +1 -1
- package/schematics/bundles/test-bed-get.cjs +4 -4
- package/testing/index.d.ts +2 -2
- package/weak_ref.d.d.ts +2 -2
package/fesm2022/debug_node.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.3.
|
|
3
|
-
* (c) 2010-2025 Google LLC. https://angular.
|
|
2
|
+
* @license Angular v20.3.5
|
|
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, inject, isInSkipHydrationBlock as isInSkipHydrationBlock$1, HYDRATION, isContentQueryHost, setCurrentQueryIndex, XSS_SECURITY_URL, renderStringify, ENVIRONMENT, makeEnvironmentProviders, isDirectiveHost,
|
|
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, 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, assertLContainer, MOVED_VIEWS, isDestroyed, REACTIVE_TEMPLATE_CONSUMER, DECLARATION_LCONTAINER, QUERIES, assertNotReactive, ON_DESTROY_HOOKS, assertFunction, EFFECTS, assertProjectionSlots, NATIVE, assertParentView, CONTAINER_HEADER_OFFSET, ANIMATIONS, assertNotSame, setCurrentDirectiveIndex, setCurrentTNode, getElementDepthCount, increaseElementDepthCount, wasLastNodeCreated, isCurrentTNodeParent, setCurrentTNodeAsNotParent, assertHasParent, INTERNAL_APPLICATION_ERROR_HANDLER, stringify, getCurrentDirectiveIndex, unwrapLView, isCreationMode, enterView, leaveView, AFTER_RENDER_SEQUENCES_TO_ADD, markAncestorsForTraversal, 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, ChangeDetectionScheduler, EnvironmentInjector, SVG_NAMESPACE, MATH_ML_NAMESPACE, viewAttachedToContainer, storeCleanupWithContext, signal, createInjectorWithoutInjectorInstances, R3Injector, getNullInjector, internalImportProvidersFrom, initNgDevMode, fillProperties, getBindingsEnabled, lastNodeWasCreated, isInInjectionContext, DestroyRef, PendingTasksInternal, noop, ErrorHandler, assertNotInReactiveContext, assertInInjectionContext, ViewContext, removeLViewOnDestroy, walkUpViews, getNativeByIndex, assertElement, arrayInsert2, arraySplice, setInjectorProfiler, NullInjector, ENVIRONMENT_INITIALIZER, INJECTOR_DEF_TYPES, walkProviderTree, getInjectorDef, deepForEach, isTypeProvider, isSignal, runInInjectionContext, ZONELESS_ENABLED, EffectScheduler, PendingTasks, assertTNodeCreationIndex, isSkipHydrationRootTNode, leaveSkipHydrationBlock, decreaseElementDepthCount, getNamespace, enterSkipHydrationBlock, getCurrentDirectiveDef, assertIndexInExpandoRange, getBindingIndex, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, keyValueArraySet, keyValueArrayGet, incrementBindingIndex, isWritableSignal, 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, ZONELESS_SCHEDULER_DISABLED, SCHEDULE_IN_ROOT_ZONE, PROVIDED_ZONELESS, getNativeByTNodeOrNull } from './root_effect_scheduler.mjs';
|
|
8
8
|
import { setActiveConsumer, SIGNAL, consumerDestroy, REACTIVE_NODE, consumerPollProducersForChange, consumerBeforeComputation, getActiveConsumer, consumerAfterComputation, createComputed, setThrowInvalidWriteToSignalError } from './signal.mjs';
|
|
9
9
|
import { Subject, Subscription } from 'rxjs';
|
|
10
10
|
import { setActiveConsumer as setActiveConsumer$1 } from '@angular/core/primitives/signals';
|
|
@@ -4492,13 +4492,18 @@ function isIncrementalHydrationEnabled(injector) {
|
|
|
4492
4492
|
optional: true,
|
|
4493
4493
|
});
|
|
4494
4494
|
}
|
|
4495
|
+
let incrementalHydrationEnabledWarned = false;
|
|
4496
|
+
function resetIncrementalHydrationEnabledWarnedForTests() {
|
|
4497
|
+
incrementalHydrationEnabledWarned = false;
|
|
4498
|
+
}
|
|
4495
4499
|
/** Throws an error if the incremental hydration is not enabled */
|
|
4496
|
-
function
|
|
4497
|
-
if (!
|
|
4498
|
-
|
|
4500
|
+
function warnIncrementalHydrationNotConfigured() {
|
|
4501
|
+
if (!incrementalHydrationEnabledWarned) {
|
|
4502
|
+
incrementalHydrationEnabledWarned = true;
|
|
4503
|
+
console.warn(formatRuntimeError(508 /* RuntimeErrorCode.MISCONFIGURED_INCREMENTAL_HYDRATION */, 'Angular has detected that some `@defer` blocks use `hydrate` triggers, ' +
|
|
4499
4504
|
'but incremental hydration was not enabled. Please ensure that the `withIncrementalHydration()` ' +
|
|
4500
4505
|
'call is added as an argument for the `provideClientHydration()` function call ' +
|
|
4501
|
-
'in your application config.');
|
|
4506
|
+
'in your application config.'));
|
|
4502
4507
|
}
|
|
4503
4508
|
}
|
|
4504
4509
|
/** Throws an error if the ssrUniqueId on the LDeferBlockDetails is not present */
|
|
@@ -7213,6 +7218,8 @@ function ensureIcuContainerVisitorLoaded(loader) {
|
|
|
7213
7218
|
|
|
7214
7219
|
/** Parses a CSS time value to milliseconds. */
|
|
7215
7220
|
function parseCssTimeUnitsToMs(value) {
|
|
7221
|
+
if (!value)
|
|
7222
|
+
return 0;
|
|
7216
7223
|
// Some browsers will return it in seconds, whereas others will return milliseconds.
|
|
7217
7224
|
const multiplier = value.toLowerCase().indexOf('ms') > -1 ? 1 : 1000;
|
|
7218
7225
|
return parseFloat(value) * multiplier;
|
|
@@ -7323,11 +7330,54 @@ function determineLongestAnimationFromElementAnimations(el, animationsMap, anima
|
|
|
7323
7330
|
}
|
|
7324
7331
|
const allLeavingAnimations = new Set();
|
|
7325
7332
|
|
|
7333
|
+
/**
|
|
7334
|
+
* A [DI token](api/core/InjectionToken) that enables or disables all enter and leave animations.
|
|
7335
|
+
*/
|
|
7336
|
+
const ANIMATIONS_DISABLED = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'AnimationsDisabled' : '', {
|
|
7337
|
+
providedIn: 'root',
|
|
7338
|
+
factory: () => false,
|
|
7339
|
+
});
|
|
7340
|
+
/**
|
|
7341
|
+
* A [DI token](api/core/InjectionToken) for the queue of all animations.
|
|
7342
|
+
*/
|
|
7343
|
+
const ANIMATION_QUEUE = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'AnimationQueue' : '', {
|
|
7344
|
+
providedIn: 'root',
|
|
7345
|
+
factory: () => {
|
|
7346
|
+
return {
|
|
7347
|
+
queue: new Set(),
|
|
7348
|
+
isScheduled: false,
|
|
7349
|
+
};
|
|
7350
|
+
},
|
|
7351
|
+
});
|
|
7352
|
+
/**
|
|
7353
|
+
* A [DI token](api/core/InjectionToken) that configures the maximum animation timeout
|
|
7354
|
+
* before element removal. The default value mirrors from Chrome's cross document
|
|
7355
|
+
* navigation view transition timeout. It's intended to prevent people from accidentally
|
|
7356
|
+
* forgetting to call the removal function in their callback. Also serves as a delay
|
|
7357
|
+
* for when stylesheets are pruned.
|
|
7358
|
+
*
|
|
7359
|
+
* @publicApi 20.2
|
|
7360
|
+
*/
|
|
7361
|
+
const MAX_ANIMATION_TIMEOUT = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'MaxAnimationTimeout' : '', {
|
|
7362
|
+
providedIn: 'root',
|
|
7363
|
+
factory: () => MAX_ANIMATION_TIMEOUT_DEFAULT,
|
|
7364
|
+
});
|
|
7365
|
+
const MAX_ANIMATION_TIMEOUT_DEFAULT = 4000;
|
|
7366
|
+
|
|
7367
|
+
function maybeQueueEnterAnimation(parentLView, parent, tNode, injector) {
|
|
7368
|
+
const enterAnimations = parentLView?.[ANIMATIONS]?.enter;
|
|
7369
|
+
if (parent !== null && enterAnimations && enterAnimations.has(tNode.index)) {
|
|
7370
|
+
const animationQueue = injector.get(ANIMATION_QUEUE);
|
|
7371
|
+
for (const animateFn of enterAnimations.get(tNode.index).animateFns) {
|
|
7372
|
+
animationQueue.queue.add(animateFn);
|
|
7373
|
+
}
|
|
7374
|
+
}
|
|
7375
|
+
}
|
|
7326
7376
|
/**
|
|
7327
7377
|
* NOTE: for performance reasons, the possible actions are inlined within the function instead of
|
|
7328
7378
|
* being passed as an argument.
|
|
7329
7379
|
*/
|
|
7330
|
-
function applyToElementOrContainer(action, renderer, parent, lNodeToHandle, beforeNode, parentLView) {
|
|
7380
|
+
function applyToElementOrContainer(action, renderer, injector, parent, lNodeToHandle, tNode, beforeNode, parentLView) {
|
|
7331
7381
|
// If this slot was allocated for a text node dynamically created by i18n, the text node itself
|
|
7332
7382
|
// won't be created until i18nApply() in the update block, so this node should be skipped.
|
|
7333
7383
|
// For more info, see "ICU expressions should work inside an ngTemplateOutlet inside an ngFor"
|
|
@@ -7348,6 +7398,7 @@ function applyToElementOrContainer(action, renderer, parent, lNodeToHandle, befo
|
|
|
7348
7398
|
}
|
|
7349
7399
|
const rNode = unwrapRNode(lNodeToHandle);
|
|
7350
7400
|
if (action === 0 /* WalkTNodeTreeAction.Create */ && parent !== null) {
|
|
7401
|
+
maybeQueueEnterAnimation(parentLView, parent, tNode, injector);
|
|
7351
7402
|
if (beforeNode == null) {
|
|
7352
7403
|
nativeAppendChild(renderer, parent, rNode);
|
|
7353
7404
|
}
|
|
@@ -7356,10 +7407,11 @@ function applyToElementOrContainer(action, renderer, parent, lNodeToHandle, befo
|
|
|
7356
7407
|
}
|
|
7357
7408
|
}
|
|
7358
7409
|
else if (action === 1 /* WalkTNodeTreeAction.Insert */ && parent !== null) {
|
|
7410
|
+
maybeQueueEnterAnimation(parentLView, parent, tNode, injector);
|
|
7359
7411
|
nativeInsertBefore(renderer, parent, rNode, beforeNode || null, true);
|
|
7360
7412
|
}
|
|
7361
7413
|
else if (action === 2 /* WalkTNodeTreeAction.Detach */) {
|
|
7362
|
-
runLeaveAnimationsWithCallback(parentLView, (nodeHasLeaveAnimations) => {
|
|
7414
|
+
runLeaveAnimationsWithCallback(parentLView, tNode, injector, (nodeHasLeaveAnimations) => {
|
|
7363
7415
|
// the nodeHasLeaveAnimations indicates to the renderer that the element needs to
|
|
7364
7416
|
// be removed synchronously and sets the requireSynchronousElementRemoval flag in
|
|
7365
7417
|
// the renderer.
|
|
@@ -7367,15 +7419,26 @@ function applyToElementOrContainer(action, renderer, parent, lNodeToHandle, befo
|
|
|
7367
7419
|
});
|
|
7368
7420
|
}
|
|
7369
7421
|
else if (action === 3 /* WalkTNodeTreeAction.Destroy */) {
|
|
7370
|
-
runLeaveAnimationsWithCallback(parentLView, () => {
|
|
7422
|
+
runLeaveAnimationsWithCallback(parentLView, tNode, injector, () => {
|
|
7371
7423
|
renderer.destroyNode(rNode);
|
|
7372
7424
|
});
|
|
7373
7425
|
}
|
|
7374
7426
|
if (lContainer != null) {
|
|
7375
|
-
applyContainer(renderer, action, lContainer, parent, beforeNode);
|
|
7427
|
+
applyContainer(renderer, action, injector, lContainer, tNode, parent, beforeNode);
|
|
7376
7428
|
}
|
|
7377
7429
|
}
|
|
7378
7430
|
}
|
|
7431
|
+
function addToAnimationQueue(injector, animationFns) {
|
|
7432
|
+
const animationQueue = injector.get(ANIMATION_QUEUE);
|
|
7433
|
+
if (Array.isArray(animationFns)) {
|
|
7434
|
+
for (const animateFn of animationFns) {
|
|
7435
|
+
animationQueue.queue.add(animateFn);
|
|
7436
|
+
}
|
|
7437
|
+
}
|
|
7438
|
+
else {
|
|
7439
|
+
animationQueue.queue.add(animationFns);
|
|
7440
|
+
}
|
|
7441
|
+
}
|
|
7379
7442
|
/**
|
|
7380
7443
|
* Removes all DOM elements associated with a view.
|
|
7381
7444
|
*
|
|
@@ -7549,30 +7612,48 @@ function cleanUpView(tView, lView) {
|
|
|
7549
7612
|
setActiveConsumer(prevConsumer);
|
|
7550
7613
|
}
|
|
7551
7614
|
}
|
|
7552
|
-
function runLeaveAnimationsWithCallback(lView, callback) {
|
|
7553
|
-
|
|
7554
|
-
|
|
7555
|
-
|
|
7556
|
-
|
|
7557
|
-
|
|
7558
|
-
|
|
7615
|
+
function runLeaveAnimationsWithCallback(lView, tNode, injector, callback) {
|
|
7616
|
+
const animations = lView?.[ANIMATIONS];
|
|
7617
|
+
if (animations == null || animations.leave == undefined || !animations.leave.has(tNode.index))
|
|
7618
|
+
return callback(false);
|
|
7619
|
+
// this is solely for move operations to prevent leave animations from running
|
|
7620
|
+
// on the moved nodes, which would have deleted the node.
|
|
7621
|
+
if (animations.skipLeaveAnimations) {
|
|
7622
|
+
animations.skipLeaveAnimations = false;
|
|
7623
|
+
return callback(false);
|
|
7624
|
+
}
|
|
7625
|
+
if (lView)
|
|
7626
|
+
allLeavingAnimations.add(lView);
|
|
7627
|
+
addToAnimationQueue(injector, () => {
|
|
7628
|
+
// it's possible that in the time between when the leave animation was
|
|
7629
|
+
// and the time it was executed, the data structure changed. So we need
|
|
7630
|
+
// to be safe here.
|
|
7631
|
+
if (animations.leave && animations.leave.has(tNode.index)) {
|
|
7632
|
+
const leaveAnimationMap = animations.leave;
|
|
7633
|
+
const leaveAnimations = leaveAnimationMap.get(tNode.index);
|
|
7559
7634
|
const runningAnimations = [];
|
|
7560
|
-
|
|
7561
|
-
|
|
7562
|
-
|
|
7635
|
+
if (leaveAnimations) {
|
|
7636
|
+
for (let index = 0; index < leaveAnimations.animateFns.length; index++) {
|
|
7637
|
+
const animationFn = leaveAnimations.animateFns[index];
|
|
7638
|
+
const { promise } = animationFn();
|
|
7639
|
+
runningAnimations.push(promise);
|
|
7640
|
+
}
|
|
7563
7641
|
}
|
|
7564
|
-
|
|
7565
|
-
lView
|
|
7642
|
+
animations.running = Promise.allSettled(runningAnimations);
|
|
7643
|
+
runAfterLeaveAnimations(lView, callback);
|
|
7566
7644
|
}
|
|
7567
|
-
|
|
7568
|
-
|
|
7645
|
+
else {
|
|
7646
|
+
if (lView)
|
|
7647
|
+
allLeavingAnimations.delete(lView);
|
|
7648
|
+
callback(false);
|
|
7649
|
+
}
|
|
7650
|
+
});
|
|
7569
7651
|
}
|
|
7570
7652
|
function runAfterLeaveAnimations(lView, callback) {
|
|
7571
|
-
|
|
7572
|
-
|
|
7573
|
-
|
|
7574
|
-
|
|
7575
|
-
}
|
|
7653
|
+
const runningAnimations = lView[ANIMATIONS]?.running;
|
|
7654
|
+
if (runningAnimations) {
|
|
7655
|
+
runningAnimations.then(() => {
|
|
7656
|
+
lView[ANIMATIONS].running = undefined;
|
|
7576
7657
|
allLeavingAnimations.delete(lView);
|
|
7577
7658
|
callback(true);
|
|
7578
7659
|
});
|
|
@@ -7899,6 +7980,7 @@ function getBeforeNodeForView(viewIndexInContainer, lContainer) {
|
|
|
7899
7980
|
function applyNodes(renderer, action, tNode, lView, parentRElement, beforeNode, isProjection) {
|
|
7900
7981
|
while (tNode != null) {
|
|
7901
7982
|
ngDevMode && assertTNodeForLView(tNode, lView);
|
|
7983
|
+
const injector = lView[INJECTOR];
|
|
7902
7984
|
// Let declarations don't have corresponding DOM nodes so we skip over them.
|
|
7903
7985
|
if (tNode.type === 128 /* TNodeType.LetDeclaration */) {
|
|
7904
7986
|
tNode = tNode.next;
|
|
@@ -7917,22 +7999,22 @@ function applyNodes(renderer, action, tNode, lView, parentRElement, beforeNode,
|
|
|
7917
7999
|
if (!isDetachedByI18n(tNode)) {
|
|
7918
8000
|
if (tNodeType & 8 /* TNodeType.ElementContainer */) {
|
|
7919
8001
|
applyNodes(renderer, action, tNode.child, lView, parentRElement, beforeNode, false);
|
|
7920
|
-
applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode, lView);
|
|
8002
|
+
applyToElementOrContainer(action, renderer, injector, parentRElement, rawSlotValue, tNode, beforeNode, lView);
|
|
7921
8003
|
}
|
|
7922
8004
|
else if (tNodeType & 32 /* TNodeType.Icu */) {
|
|
7923
8005
|
const nextRNode = icuContainerIterate(tNode, lView);
|
|
7924
8006
|
let rNode;
|
|
7925
8007
|
while ((rNode = nextRNode())) {
|
|
7926
|
-
applyToElementOrContainer(action, renderer, parentRElement, rNode, beforeNode, lView);
|
|
8008
|
+
applyToElementOrContainer(action, renderer, injector, parentRElement, rNode, tNode, beforeNode, lView);
|
|
7927
8009
|
}
|
|
7928
|
-
applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode, lView);
|
|
8010
|
+
applyToElementOrContainer(action, renderer, injector, parentRElement, rawSlotValue, tNode, beforeNode, lView);
|
|
7929
8011
|
}
|
|
7930
8012
|
else if (tNodeType & 16 /* TNodeType.Projection */) {
|
|
7931
8013
|
applyProjectionRecursive(renderer, action, lView, tNode, parentRElement, beforeNode);
|
|
7932
8014
|
}
|
|
7933
8015
|
else {
|
|
7934
8016
|
ngDevMode && assertTNodeType(tNode, 3 /* TNodeType.AnyRNode */ | 4 /* TNodeType.Container */);
|
|
7935
|
-
applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode, lView);
|
|
8017
|
+
applyToElementOrContainer(action, renderer, injector, parentRElement, rawSlotValue, tNode, beforeNode, lView);
|
|
7936
8018
|
}
|
|
7937
8019
|
}
|
|
7938
8020
|
tNode = isProjection ? tNode.projectionNext : tNode.next;
|
|
@@ -7986,7 +8068,7 @@ function applyProjectionRecursive(renderer, action, lView, tProjectionNode, pare
|
|
|
7986
8068
|
// This should be refactored and cleaned up.
|
|
7987
8069
|
for (let i = 0; i < nodeToProjectOrRNodes.length; i++) {
|
|
7988
8070
|
const rNode = nodeToProjectOrRNodes[i];
|
|
7989
|
-
applyToElementOrContainer(action, renderer, parentRElement, rNode, beforeNode, lView);
|
|
8071
|
+
applyToElementOrContainer(action, renderer, lView[INJECTOR], parentRElement, rNode, tProjectionNode, beforeNode, lView);
|
|
7990
8072
|
}
|
|
7991
8073
|
}
|
|
7992
8074
|
else {
|
|
@@ -8013,7 +8095,7 @@ function applyProjectionRecursive(renderer, action, lView, tProjectionNode, pare
|
|
|
8013
8095
|
* @param parentRElement parent DOM element for insertion/removal.
|
|
8014
8096
|
* @param beforeNode Before which node the insertions should happen.
|
|
8015
8097
|
*/
|
|
8016
|
-
function applyContainer(renderer, action, lContainer, parentRElement, beforeNode) {
|
|
8098
|
+
function applyContainer(renderer, action, injector, lContainer, tNode, parentRElement, beforeNode) {
|
|
8017
8099
|
ngDevMode && assertLContainer(lContainer);
|
|
8018
8100
|
const anchor = lContainer[NATIVE]; // LContainer has its own before node.
|
|
8019
8101
|
const native = unwrapRNode(lContainer);
|
|
@@ -8028,7 +8110,7 @@ function applyContainer(renderer, action, lContainer, parentRElement, beforeNode
|
|
|
8028
8110
|
// don't see a reason why they should be different, but they are.
|
|
8029
8111
|
//
|
|
8030
8112
|
// If they are we need to process the second anchor as well.
|
|
8031
|
-
applyToElementOrContainer(action, renderer, parentRElement, anchor, beforeNode);
|
|
8113
|
+
applyToElementOrContainer(action, renderer, injector, parentRElement, anchor, tNode, beforeNode);
|
|
8032
8114
|
}
|
|
8033
8115
|
for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
|
|
8034
8116
|
const lView = lContainer[i];
|
|
@@ -9126,7 +9208,6 @@ function refreshView(tView, lView, templateFn, context) {
|
|
|
9126
9208
|
if (templateFn !== null) {
|
|
9127
9209
|
executeTemplate(tView, lView, templateFn, 2 /* RenderFlags.Update */, context);
|
|
9128
9210
|
}
|
|
9129
|
-
runEnterAnimations(lView);
|
|
9130
9211
|
const hooksInitPhaseCompleted = (flags & 3 /* LViewFlags.InitPhaseStateMask */) === 3 /* InitPhaseState.InitPhaseCompleted */;
|
|
9131
9212
|
// execute pre-order hooks (OnInit, OnChanges, DoCheck)
|
|
9132
9213
|
// PERF WARNING: do NOT extract this to a separate function without running benchmarks
|
|
@@ -9254,15 +9335,6 @@ function refreshView(tView, lView, templateFn, context) {
|
|
|
9254
9335
|
leaveView();
|
|
9255
9336
|
}
|
|
9256
9337
|
}
|
|
9257
|
-
function runEnterAnimations(lView) {
|
|
9258
|
-
const animationData = lView[ANIMATIONS];
|
|
9259
|
-
if (animationData?.enter) {
|
|
9260
|
-
for (const animateFn of animationData.enter) {
|
|
9261
|
-
animateFn();
|
|
9262
|
-
}
|
|
9263
|
-
animationData.enter = undefined;
|
|
9264
|
-
}
|
|
9265
|
-
}
|
|
9266
9338
|
/**
|
|
9267
9339
|
* Goes over embedded views (ones created through ViewContainerRef APIs) and refreshes
|
|
9268
9340
|
* them by executing an associated template function.
|
|
@@ -13691,7 +13763,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
13691
13763
|
}
|
|
13692
13764
|
function createRootTView(rootSelectorOrNode, componentDef, componentBindings, directives) {
|
|
13693
13765
|
const tAttributes = rootSelectorOrNode
|
|
13694
|
-
? ['ng-version', '20.3.
|
|
13766
|
+
? ['ng-version', '20.3.5']
|
|
13695
13767
|
: // Extract attributes and classes from the first selector only to match VE behavior.
|
|
13696
13768
|
extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
|
|
13697
13769
|
let creationBindings = null;
|
|
@@ -21282,14 +21354,15 @@ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplInd
|
|
|
21282
21354
|
const adjustedIndex = index + HEADER_OFFSET;
|
|
21283
21355
|
const tNode = declareNoDirectiveHostTemplate(lView, tView, index, null, 0, 0);
|
|
21284
21356
|
const injector = lView[INJECTOR];
|
|
21357
|
+
const incrementalHydrationEnabled = isIncrementalHydrationEnabled(injector);
|
|
21285
21358
|
if (tView.firstCreatePass) {
|
|
21286
21359
|
performanceMarkFeature('NgDefer');
|
|
21287
21360
|
if (ngDevMode) {
|
|
21288
21361
|
if (typeof ngHmrMode !== 'undefined' && ngHmrMode) {
|
|
21289
21362
|
logHmrWarning(injector);
|
|
21290
21363
|
}
|
|
21291
|
-
if (hasHydrateTriggers(flags)) {
|
|
21292
|
-
|
|
21364
|
+
if (hasHydrateTriggers(flags) && !incrementalHydrationEnabled) {
|
|
21365
|
+
warnIncrementalHydrationNotConfigured();
|
|
21293
21366
|
}
|
|
21294
21367
|
}
|
|
21295
21368
|
const tDetails = {
|
|
@@ -21337,7 +21410,7 @@ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplInd
|
|
|
21337
21410
|
];
|
|
21338
21411
|
setLDeferBlockDetails(lView, adjustedIndex, lDetails);
|
|
21339
21412
|
let registry = null;
|
|
21340
|
-
if (ssrUniqueId !== null) {
|
|
21413
|
+
if (ssrUniqueId !== null && incrementalHydrationEnabled) {
|
|
21341
21414
|
// Store this defer block in the registry, to have an access to
|
|
21342
21415
|
// internal data structures from hydration runtime code.
|
|
21343
21416
|
registry = injector.get(DEHYDRATED_BLOCK_REGISTRY);
|
|
@@ -21888,28 +21961,6 @@ function ɵɵattribute(name, value, sanitizer, namespace) {
|
|
|
21888
21961
|
return ɵɵattribute;
|
|
21889
21962
|
}
|
|
21890
21963
|
|
|
21891
|
-
/**
|
|
21892
|
-
* A [DI token](api/core/InjectionToken) that enables or disables all enter and leave animations.
|
|
21893
|
-
*/
|
|
21894
|
-
const ANIMATIONS_DISABLED = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'AnimationsDisabled' : '', {
|
|
21895
|
-
providedIn: 'root',
|
|
21896
|
-
factory: () => false,
|
|
21897
|
-
});
|
|
21898
|
-
/**
|
|
21899
|
-
* A [DI token](api/core/InjectionToken) that configures the maximum animation timeout
|
|
21900
|
-
* before element removal. The default value mirrors from Chrome's cross document
|
|
21901
|
-
* navigation view transition timeout. It's intended to prevent people from accidentally
|
|
21902
|
-
* forgetting to call the removal function in their callback. Also serves as a delay
|
|
21903
|
-
* for when stylesheets are pruned.
|
|
21904
|
-
*
|
|
21905
|
-
* @publicApi 20.2
|
|
21906
|
-
*/
|
|
21907
|
-
const MAX_ANIMATION_TIMEOUT = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'MaxAnimationTimeout' : '', {
|
|
21908
|
-
providedIn: 'root',
|
|
21909
|
-
factory: () => MAX_ANIMATION_TIMEOUT_DEFAULT,
|
|
21910
|
-
});
|
|
21911
|
-
const MAX_ANIMATION_TIMEOUT_DEFAULT = 4000;
|
|
21912
|
-
|
|
21913
21964
|
const DEFAULT_ANIMATIONS_DISABLED = false;
|
|
21914
21965
|
const areAnimationSupported = (typeof ngServerMode === 'undefined' || !ngServerMode) &&
|
|
21915
21966
|
typeof document !== 'undefined' &&
|
|
@@ -22039,14 +22090,14 @@ function trackLeavingNodes(tNode, el) {
|
|
|
22039
22090
|
*/
|
|
22040
22091
|
function getLViewEnterAnimations(lView) {
|
|
22041
22092
|
const animationData = (lView[ANIMATIONS] ??= {});
|
|
22042
|
-
return (animationData.enter ??=
|
|
22093
|
+
return (animationData.enter ??= new Map());
|
|
22043
22094
|
}
|
|
22044
22095
|
/**
|
|
22045
22096
|
* Retrieves the list of specified leave animations from the lView
|
|
22046
22097
|
*/
|
|
22047
22098
|
function getLViewLeaveAnimations(lView) {
|
|
22048
22099
|
const animationData = (lView[ANIMATIONS] ??= {});
|
|
22049
|
-
return (animationData.leave ??=
|
|
22100
|
+
return (animationData.leave ??= new Map());
|
|
22050
22101
|
}
|
|
22051
22102
|
/**
|
|
22052
22103
|
* Gets the list of classes from a passed in value
|
|
@@ -22100,13 +22151,48 @@ function elementHasClassList(element, classList) {
|
|
|
22100
22151
|
*/
|
|
22101
22152
|
function isLongestAnimation(event, nativeElement) {
|
|
22102
22153
|
const longestAnimation = longestAnimations.get(nativeElement);
|
|
22154
|
+
// If we don't have any record of a longest animation, then we shouldn't
|
|
22155
|
+
// block the animationend/transitionend event from doing its work.
|
|
22156
|
+
if (longestAnimation === undefined)
|
|
22157
|
+
return true;
|
|
22103
22158
|
return (nativeElement === event.target &&
|
|
22104
|
-
longestAnimation !== undefined &&
|
|
22105
22159
|
((longestAnimation.animationName !== undefined &&
|
|
22106
22160
|
event.animationName === longestAnimation.animationName) ||
|
|
22107
22161
|
(longestAnimation.propertyName !== undefined &&
|
|
22108
22162
|
event.propertyName === longestAnimation.propertyName)));
|
|
22109
22163
|
}
|
|
22164
|
+
/**
|
|
22165
|
+
* Stores a given animation function in the LView's animation map for later execution
|
|
22166
|
+
*
|
|
22167
|
+
* @param animations Either the enter or leave animation map from the LView
|
|
22168
|
+
* @param tNode The TNode the animation is associated with
|
|
22169
|
+
* @param fn The animation function to be called later
|
|
22170
|
+
*/
|
|
22171
|
+
function addAnimationToLView(animations, tNode, fn) {
|
|
22172
|
+
const nodeAnimations = animations.get(tNode.index) ?? { animateFns: [] };
|
|
22173
|
+
nodeAnimations.animateFns.push(fn);
|
|
22174
|
+
animations.set(tNode.index, nodeAnimations);
|
|
22175
|
+
}
|
|
22176
|
+
function cleanupAfterLeaveAnimations(resolvers, cleanupFns) {
|
|
22177
|
+
if (resolvers) {
|
|
22178
|
+
for (const fn of resolvers) {
|
|
22179
|
+
fn();
|
|
22180
|
+
}
|
|
22181
|
+
}
|
|
22182
|
+
for (const fn of cleanupFns) {
|
|
22183
|
+
fn();
|
|
22184
|
+
}
|
|
22185
|
+
}
|
|
22186
|
+
function clearLViewNodeAnimationResolvers(lView, tNode) {
|
|
22187
|
+
const nodeAnimations = getLViewLeaveAnimations(lView).get(tNode.index);
|
|
22188
|
+
if (nodeAnimations)
|
|
22189
|
+
nodeAnimations.resolvers = undefined;
|
|
22190
|
+
}
|
|
22191
|
+
function leaveAnimationFunctionCleanup(lView, tNode, nativeElement, resolvers, cleanupFns) {
|
|
22192
|
+
clearLeavingNodes(tNode, nativeElement);
|
|
22193
|
+
cleanupAfterLeaveAnimations(resolvers, cleanupFns);
|
|
22194
|
+
clearLViewNodeAnimationResolvers(lView, tNode);
|
|
22195
|
+
}
|
|
22110
22196
|
|
|
22111
22197
|
/**
|
|
22112
22198
|
* Instruction to handle the `animate.enter` behavior for class bindings.
|
|
@@ -22128,7 +22214,8 @@ function ɵɵanimateEnter(value) {
|
|
|
22128
22214
|
}
|
|
22129
22215
|
const tNode = getCurrentTNode();
|
|
22130
22216
|
cancelLeavingNodes(tNode, lView);
|
|
22131
|
-
getLViewEnterAnimations(lView)
|
|
22217
|
+
addAnimationToLView(getLViewEnterAnimations(lView), tNode, () => runEnterAnimation(lView, tNode, value));
|
|
22218
|
+
queueEnterAnimations(lView);
|
|
22132
22219
|
return ɵɵanimateEnter; // For chaining
|
|
22133
22220
|
}
|
|
22134
22221
|
function runEnterAnimation(lView, tNode, value) {
|
|
@@ -22150,7 +22237,7 @@ function runEnterAnimation(lView, tNode, value) {
|
|
|
22150
22237
|
return;
|
|
22151
22238
|
const eventName = event instanceof AnimationEvent ? 'animationend' : 'transitionend';
|
|
22152
22239
|
ngZone.runOutsideAngular(() => {
|
|
22153
|
-
|
|
22240
|
+
renderer.listen(nativeElement, eventName, handleEnterAnimationEnd);
|
|
22154
22241
|
});
|
|
22155
22242
|
};
|
|
22156
22243
|
// When the longest animation ends, we can remove all the classes
|
|
@@ -22224,7 +22311,8 @@ function ɵɵanimateEnterListener(value) {
|
|
|
22224
22311
|
}
|
|
22225
22312
|
const tNode = getCurrentTNode();
|
|
22226
22313
|
cancelLeavingNodes(tNode, lView);
|
|
22227
|
-
getLViewEnterAnimations(lView)
|
|
22314
|
+
addAnimationToLView(getLViewEnterAnimations(lView), tNode, () => runEnterAnimationFunction(lView, tNode, value));
|
|
22315
|
+
queueEnterAnimations(lView);
|
|
22228
22316
|
return ɵɵanimateEnterListener;
|
|
22229
22317
|
}
|
|
22230
22318
|
/**
|
|
@@ -22257,36 +22345,35 @@ function ɵɵanimateLeave(value) {
|
|
|
22257
22345
|
return ɵɵanimateLeave;
|
|
22258
22346
|
}
|
|
22259
22347
|
const tNode = getCurrentTNode();
|
|
22260
|
-
getLViewLeaveAnimations(lView)
|
|
22348
|
+
addAnimationToLView(getLViewLeaveAnimations(lView), tNode, () => runLeaveAnimations(lView, tNode, value));
|
|
22349
|
+
enableAnimationQueueScheduler(lView[INJECTOR]);
|
|
22261
22350
|
return ɵɵanimateLeave; // For chaining
|
|
22262
22351
|
}
|
|
22263
|
-
function runLeaveAnimations(lView, tNode, value
|
|
22352
|
+
function runLeaveAnimations(lView, tNode, value) {
|
|
22264
22353
|
const { promise, resolve } = promiseWithResolvers();
|
|
22265
22354
|
const nativeElement = getNativeByTNode(tNode, lView);
|
|
22266
22355
|
ngDevMode && assertElementNodes(nativeElement, 'animate.leave');
|
|
22267
22356
|
const renderer = lView[RENDERER];
|
|
22268
22357
|
const ngZone = lView[INJECTOR].get(NgZone);
|
|
22269
22358
|
allLeavingAnimations.add(lView);
|
|
22359
|
+
(getLViewLeaveAnimations(lView).get(tNode.index).resolvers ??= []).push(resolve);
|
|
22270
22360
|
const activeClasses = getClassListFromValue(value);
|
|
22271
22361
|
if (activeClasses && activeClasses.length > 0) {
|
|
22272
|
-
animateLeaveClassRunner(nativeElement, tNode, activeClasses, renderer,
|
|
22362
|
+
animateLeaveClassRunner(nativeElement, tNode, lView, activeClasses, renderer, ngZone);
|
|
22273
22363
|
}
|
|
22274
22364
|
else {
|
|
22275
22365
|
resolve();
|
|
22276
22366
|
}
|
|
22277
|
-
return promise;
|
|
22367
|
+
return { promise, resolve };
|
|
22278
22368
|
}
|
|
22279
22369
|
/**
|
|
22280
22370
|
* This function actually adds the classes that animate element that's leaving the DOM.
|
|
22281
22371
|
* Once it finishes, it calls the remove function that was provided by the DOM renderer.
|
|
22282
22372
|
*/
|
|
22283
|
-
function animateLeaveClassRunner(el, tNode, classList, renderer,
|
|
22284
|
-
if (animationsDisabled) {
|
|
22285
|
-
longestAnimations.delete(el);
|
|
22286
|
-
resolver();
|
|
22287
|
-
return;
|
|
22288
|
-
}
|
|
22373
|
+
function animateLeaveClassRunner(el, tNode, lView, classList, renderer, ngZone) {
|
|
22289
22374
|
cancelAnimationsIfRunning(el, renderer);
|
|
22375
|
+
const cleanupFns = [];
|
|
22376
|
+
const resolvers = getLViewLeaveAnimations(lView).get(tNode.index)?.resolvers;
|
|
22290
22377
|
const handleOutAnimationEnd = (event) => {
|
|
22291
22378
|
// this early exit case is to prevent issues with bubbling events that are from child element animations
|
|
22292
22379
|
if (event.target !== el)
|
|
@@ -22307,12 +22394,13 @@ function animateLeaveClassRunner(el, tNode, classList, renderer, animationsDisab
|
|
|
22307
22394
|
renderer.removeClass(el, item);
|
|
22308
22395
|
}
|
|
22309
22396
|
}
|
|
22397
|
+
cleanupAfterLeaveAnimations(resolvers, cleanupFns);
|
|
22398
|
+
clearLViewNodeAnimationResolvers(lView, tNode);
|
|
22310
22399
|
}
|
|
22311
|
-
resolver();
|
|
22312
22400
|
};
|
|
22313
22401
|
ngZone.runOutsideAngular(() => {
|
|
22314
|
-
renderer.listen(el, 'animationend', handleOutAnimationEnd);
|
|
22315
|
-
renderer.listen(el, 'transitionend', handleOutAnimationEnd);
|
|
22402
|
+
cleanupFns.push(renderer.listen(el, 'animationend', handleOutAnimationEnd));
|
|
22403
|
+
cleanupFns.push(renderer.listen(el, 'transitionend', handleOutAnimationEnd));
|
|
22316
22404
|
});
|
|
22317
22405
|
trackLeavingNodes(tNode, el);
|
|
22318
22406
|
for (const item of classList) {
|
|
@@ -22326,7 +22414,8 @@ function animateLeaveClassRunner(el, tNode, classList, renderer, animationsDisab
|
|
|
22326
22414
|
determineLongestAnimation(el, longestAnimations, areAnimationSupported);
|
|
22327
22415
|
if (!longestAnimations.has(el)) {
|
|
22328
22416
|
clearLeavingNodes(tNode, el);
|
|
22329
|
-
|
|
22417
|
+
cleanupAfterLeaveAnimations(resolvers, cleanupFns);
|
|
22418
|
+
clearLViewNodeAnimationResolvers(lView, tNode);
|
|
22330
22419
|
}
|
|
22331
22420
|
});
|
|
22332
22421
|
});
|
|
@@ -22354,7 +22443,8 @@ function ɵɵanimateLeaveListener(value) {
|
|
|
22354
22443
|
const lView = getLView();
|
|
22355
22444
|
const tNode = getCurrentTNode();
|
|
22356
22445
|
allLeavingAnimations.add(lView);
|
|
22357
|
-
getLViewLeaveAnimations(lView)
|
|
22446
|
+
addAnimationToLView(getLViewLeaveAnimations(lView), tNode, () => runLeaveAnimationFunction(lView, tNode, value));
|
|
22447
|
+
enableAnimationQueueScheduler(lView[INJECTOR]);
|
|
22358
22448
|
return ɵɵanimateLeaveListener; // For chaining
|
|
22359
22449
|
}
|
|
22360
22450
|
/**
|
|
@@ -22364,36 +22454,65 @@ function runLeaveAnimationFunction(lView, tNode, value) {
|
|
|
22364
22454
|
const { promise, resolve } = promiseWithResolvers();
|
|
22365
22455
|
const nativeElement = getNativeByTNode(tNode, lView);
|
|
22366
22456
|
ngDevMode && assertElementNodes(nativeElement, 'animate.leave');
|
|
22457
|
+
const cleanupFns = [];
|
|
22367
22458
|
const renderer = lView[RENDERER];
|
|
22368
22459
|
const animationsDisabled = areAnimationsDisabled(lView);
|
|
22369
22460
|
const ngZone = lView[INJECTOR].get(NgZone);
|
|
22370
22461
|
const maxAnimationTimeout = lView[INJECTOR].get(MAX_ANIMATION_TIMEOUT);
|
|
22462
|
+
(getLViewLeaveAnimations(lView).get(tNode.index).resolvers ??= []).push(resolve);
|
|
22463
|
+
const resolvers = getLViewLeaveAnimations(lView).get(tNode.index)?.resolvers;
|
|
22371
22464
|
if (animationsDisabled) {
|
|
22372
|
-
|
|
22465
|
+
leaveAnimationFunctionCleanup(lView, tNode, nativeElement, resolvers, cleanupFns);
|
|
22373
22466
|
}
|
|
22374
22467
|
else {
|
|
22375
|
-
const timeoutId = setTimeout(() =>
|
|
22376
|
-
clearLeavingNodes(tNode, nativeElement);
|
|
22377
|
-
resolve();
|
|
22378
|
-
}, maxAnimationTimeout);
|
|
22468
|
+
const timeoutId = setTimeout(() => leaveAnimationFunctionCleanup(lView, tNode, nativeElement, resolvers, cleanupFns), maxAnimationTimeout);
|
|
22379
22469
|
const event = {
|
|
22380
22470
|
target: nativeElement,
|
|
22381
22471
|
animationComplete: () => {
|
|
22382
|
-
|
|
22472
|
+
leaveAnimationFunctionCleanup(lView, tNode, nativeElement, resolvers, cleanupFns);
|
|
22383
22473
|
clearTimeout(timeoutId);
|
|
22384
|
-
resolve();
|
|
22385
22474
|
},
|
|
22386
22475
|
};
|
|
22387
22476
|
trackLeavingNodes(tNode, nativeElement);
|
|
22388
22477
|
ngZone.runOutsideAngular(() => {
|
|
22389
|
-
renderer.listen(nativeElement, 'animationend', () => {
|
|
22390
|
-
|
|
22391
|
-
|
|
22478
|
+
cleanupFns.push(renderer.listen(nativeElement, 'animationend', () => {
|
|
22479
|
+
leaveAnimationFunctionCleanup(lView, tNode, nativeElement, resolvers, cleanupFns);
|
|
22480
|
+
clearTimeout(timeoutId);
|
|
22481
|
+
}, { once: true }));
|
|
22392
22482
|
});
|
|
22393
22483
|
value.call(lView[CONTEXT], event);
|
|
22394
22484
|
}
|
|
22395
22485
|
// Ensure cleanup if the LView is destroyed before the animation runs.
|
|
22396
|
-
return promise;
|
|
22486
|
+
return { promise, resolve };
|
|
22487
|
+
}
|
|
22488
|
+
function queueEnterAnimations(lView) {
|
|
22489
|
+
enableAnimationQueueScheduler(lView[INJECTOR]);
|
|
22490
|
+
const enterAnimations = lView[ANIMATIONS]?.enter;
|
|
22491
|
+
if (enterAnimations) {
|
|
22492
|
+
const animationQueue = lView[INJECTOR].get(ANIMATION_QUEUE);
|
|
22493
|
+
for (const [_, nodeAnimations] of enterAnimations) {
|
|
22494
|
+
for (const animateFn of nodeAnimations.animateFns) {
|
|
22495
|
+
animationQueue.queue.add(animateFn);
|
|
22496
|
+
}
|
|
22497
|
+
}
|
|
22498
|
+
}
|
|
22499
|
+
}
|
|
22500
|
+
function enableAnimationQueueScheduler(injector) {
|
|
22501
|
+
const animationQueue = injector.get(ANIMATION_QUEUE);
|
|
22502
|
+
// We only need to schedule the animation queue runner once per application.
|
|
22503
|
+
if (!animationQueue.isScheduled) {
|
|
22504
|
+
afterEveryRender(() => {
|
|
22505
|
+
runQueuedAnimations(injector);
|
|
22506
|
+
}, { injector });
|
|
22507
|
+
animationQueue.isScheduled = true;
|
|
22508
|
+
}
|
|
22509
|
+
}
|
|
22510
|
+
function runQueuedAnimations(injector) {
|
|
22511
|
+
const animationQueue = injector.get(ANIMATION_QUEUE);
|
|
22512
|
+
for (let animateFn of animationQueue.queue) {
|
|
22513
|
+
animateFn();
|
|
22514
|
+
}
|
|
22515
|
+
animationQueue.queue.clear();
|
|
22397
22516
|
}
|
|
22398
22517
|
|
|
22399
22518
|
/*!
|
|
@@ -31838,5 +31957,5 @@ function getDebugNode(nativeNode) {
|
|
|
31838
31957
|
return null;
|
|
31839
31958
|
}
|
|
31840
31959
|
|
|
31841
|
-
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, EventEmitter, Framework, Host, HostBinding, HostListener, HydrationStatus, I18N_DATA, IMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS, IS_ENABLED_BLOCKING_INITIAL_NAVIGATION, IS_EVENT_REPLAY_ENABLED, IS_HYDRATION_DOM_REUSE_ENABLED, IS_I18N_HYDRATION_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED, Inject, Injectable, Input, JSACTION_BLOCK_ELEMENT_MAP, JSACTION_EVENT_CONTRACT, LContext, LOCALE_ID, LocaleDataIndex, MAX_ANIMATION_TIMEOUT, MULTIPLIER, MissingTranslationStrategy, ModuleWithComponentFactories, NGH_ATTR_NAME, NGH_DATA_KEY, NGH_DEFER_BLOCKS_KEY, NODES, NOOP_AFTER_RENDER_REF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE, NO_ERRORS_SCHEMA, NUM_ROOT_NODES, NgModule, NgModuleFactory, NgModuleFactory$1, NgModuleRef, NgModuleRef$1, NgProbeToken, NgZone, NoopNgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, PRESERVE_HOST_CONTENT, PROVIDED_NG_ZONE, Pipe, QueryList, ReflectionCapabilities, Renderer2, RendererFactory2, RendererStyleFlags2, SKIP_HYDRATION_ATTR_NAME, SSR_CONTENT_INTEGRITY_MARKER, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TEMPLATES, TEMPLATE_ID, TESTABILITY, TESTABILITY_GETTER, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TimerScheduler, TracingAction, TracingService, TransferState, Type, UseExhaustiveCheckNoChanges, ViewContainerRef, ViewEncapsulation, ViewRef, _sanitizeHtml, _sanitizeUrl, afterEveryRender, afterNextRender, allLeavingAnimations, allowSanitizationBypassAndThrow, angularCoreEnv, appendDeferBlocksToJSActionMap, asNativeElements, assertComponentDef, assertStandaloneComponentType, bypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript, bypassSanitizationTrustStyle, bypassSanitizationTrustUrl, calcPathForNode, checkNoChangesInternal, cleanupDehydratedViews, clearResolutionOfComponentResourcesQueue, collectNativeNodes, collectNativeNodesInLContainer, compileComponent, compileDirective, compileNgModule, compileNgModuleDefs, compilePipe, convertHydrateTriggersToJsAction, countBlocksSkippedByHydration, createEnvironmentInjector, createMultiResultQuerySignalFn, createNgModule, createNgModuleRef, createNgModuleRefWithProviders, createSingleResultOptionalQuerySignalFn, createSingleResultRequiredQuerySignalFn, depsTracker, devModeEqual, enableApplyRootElementTransformImpl, enableClaimDehydratedIcuCaseImpl, enableFindMatchingDehydratedViewImpl, enableLocateOrCreateContainerAnchorImpl, enableLocateOrCreateContainerRefImpl, enableLocateOrCreateElementContainerNodeImpl, enableLocateOrCreateElementNodeImpl, enableLocateOrCreateI18nNodeImpl, enableLocateOrCreateTextNodeImpl, enablePrepareI18nBlockForHydrationImpl, enableProfiling, enableRetrieveDeferBlockDataImpl, enableRetrieveHydrationInfoImpl, enableStashEventListenerImpl, findLocaleData, flushModuleScopingQueueAsMuchAsPossible, gatherDeferBlocksCommentNodes, generateStandaloneInDeclarationsError, getAsyncClassMetadataFn, getCompilerFacade, getDebugNode, getDeferBlocks$1 as getDeferBlocks, getDirectives, getDocument, getHostElement, getLContext, getLDeferBlockDetails, getLNodeForHydration, getLocaleCurrencyCode, getLocalePluralCase, getNgZone, getNgZoneOptions, getOrComputeI18nChildren, getRegisteredNgModuleType, getSanitizationBypassType, getTDeferBlockDetails, getTransferState, inferTagNameFromDefinition, inputBinding, internalProvideZoneChangeDetection, invokeListeners, isBoundToModule, isComponentDefPendingResolution, isComponentResourceResolutionQueueEmpty, isDeferBlock, isDetachedByI18n, isDisconnectedNode, isI18nHydrationEnabled, isI18nHydrationSupportEnabled, isInSkipHydrationBlock, isIncrementalHydrationEnabled, isJsObject, isLetDeclaration, isListLikeIterable, isNgModule, isPromise, isSubscribable, isTNodeShape, isViewDirty, iterateListLike, makePropDecorator, makeStateKey, markForRefresh, noSideEffects, optionsReducer, outputBinding, patchComponentDefWithScope, performanceMarkFeature, processAndInitTriggers, processBlockData, processTextNodeBeforeSerialization, profiler, provideAppInitializer, provideNgReflectAttributes, provideZoneChangeDetection, provideZonelessChangeDetection, publishDefaultGlobalUtils, publishExternalGlobalUtil, publishSignalConfiguration, readHydrationInfo, readPatchedLView, registerLocaleData, registerNgModuleType, remove, removeListeners, renderDeferBlockState, resetCompiledComponents, resetJitOptions, resolveComponentResources, restoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest, setClassMetadata, setClassMetadataAsync, setDocument, setIsI18nHydrationSupportEnabled, setJSActionAttributes, setJitOptions, setLocaleId, setStashFn, setTestabilityGetter, sharedMapFunction, sharedStashFunction, transitiveScopesFor, triggerHydrationFromBlockName, triggerResourceLoading, trySerializeI18nBlock, twoWayBinding, unregisterAllLocaleData, unsupportedProjectionOfDomNodes, unwrapSafeValue, validateMatchingNode, validateNodeExists, verifySsrContentsIntegrity, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetClassDebugInfo, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, ɵɵCopyDefinitionFeature, ɵɵExternalStylesFeature, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵanimateEnter, ɵɵanimateEnterListener, ɵɵanimateLeave, ɵɵanimateLeaveListener, ɵɵariaProperty, ɵɵattachSourceLocations, ɵɵattribute, ɵɵclassMap, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵconditionalBranchCreate, ɵɵconditionalCreate, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵ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 };
|
|
31960
|
+
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, EventEmitter, Framework, Host, HostBinding, HostListener, HydrationStatus, I18N_DATA, IMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS, IS_ENABLED_BLOCKING_INITIAL_NAVIGATION, IS_EVENT_REPLAY_ENABLED, IS_HYDRATION_DOM_REUSE_ENABLED, IS_I18N_HYDRATION_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED, Inject, Injectable, Input, JSACTION_BLOCK_ELEMENT_MAP, JSACTION_EVENT_CONTRACT, LContext, LOCALE_ID, LocaleDataIndex, MAX_ANIMATION_TIMEOUT, MULTIPLIER, MissingTranslationStrategy, ModuleWithComponentFactories, NGH_ATTR_NAME, NGH_DATA_KEY, NGH_DEFER_BLOCKS_KEY, NODES, NOOP_AFTER_RENDER_REF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE, NO_ERRORS_SCHEMA, NUM_ROOT_NODES, NgModule, NgModuleFactory, NgModuleFactory$1, NgModuleRef, NgModuleRef$1, NgProbeToken, NgZone, NoopNgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, PRESERVE_HOST_CONTENT, PROVIDED_NG_ZONE, Pipe, QueryList, ReflectionCapabilities, Renderer2, RendererFactory2, RendererStyleFlags2, SKIP_HYDRATION_ATTR_NAME, SSR_CONTENT_INTEGRITY_MARKER, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TEMPLATES, TEMPLATE_ID, TESTABILITY, TESTABILITY_GETTER, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TimerScheduler, TracingAction, TracingService, TransferState, Type, UseExhaustiveCheckNoChanges, ViewContainerRef, ViewEncapsulation, ViewRef, _sanitizeHtml, _sanitizeUrl, afterEveryRender, afterNextRender, allLeavingAnimations, allowSanitizationBypassAndThrow, angularCoreEnv, appendDeferBlocksToJSActionMap, asNativeElements, assertComponentDef, assertStandaloneComponentType, bypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript, bypassSanitizationTrustStyle, bypassSanitizationTrustUrl, calcPathForNode, checkNoChangesInternal, cleanupDehydratedViews, clearResolutionOfComponentResourcesQueue, collectNativeNodes, collectNativeNodesInLContainer, compileComponent, compileDirective, compileNgModule, compileNgModuleDefs, compilePipe, convertHydrateTriggersToJsAction, countBlocksSkippedByHydration, createEnvironmentInjector, createMultiResultQuerySignalFn, createNgModule, createNgModuleRef, createNgModuleRefWithProviders, createSingleResultOptionalQuerySignalFn, createSingleResultRequiredQuerySignalFn, depsTracker, devModeEqual, enableApplyRootElementTransformImpl, enableClaimDehydratedIcuCaseImpl, enableFindMatchingDehydratedViewImpl, enableLocateOrCreateContainerAnchorImpl, enableLocateOrCreateContainerRefImpl, enableLocateOrCreateElementContainerNodeImpl, enableLocateOrCreateElementNodeImpl, enableLocateOrCreateI18nNodeImpl, enableLocateOrCreateTextNodeImpl, enablePrepareI18nBlockForHydrationImpl, enableProfiling, enableRetrieveDeferBlockDataImpl, enableRetrieveHydrationInfoImpl, enableStashEventListenerImpl, findLocaleData, flushModuleScopingQueueAsMuchAsPossible, gatherDeferBlocksCommentNodes, generateStandaloneInDeclarationsError, getAsyncClassMetadataFn, getCompilerFacade, getDebugNode, getDeferBlocks$1 as getDeferBlocks, getDirectives, getDocument, getHostElement, getLContext, getLDeferBlockDetails, getLNodeForHydration, getLocaleCurrencyCode, getLocalePluralCase, getNgZone, getNgZoneOptions, getOrComputeI18nChildren, getRegisteredNgModuleType, getSanitizationBypassType, getTDeferBlockDetails, getTransferState, inferTagNameFromDefinition, inputBinding, internalProvideZoneChangeDetection, invokeListeners, isBoundToModule, isComponentDefPendingResolution, isComponentResourceResolutionQueueEmpty, isDeferBlock, isDetachedByI18n, isDisconnectedNode, isI18nHydrationEnabled, isI18nHydrationSupportEnabled, isInSkipHydrationBlock, isIncrementalHydrationEnabled, isJsObject, isLetDeclaration, isListLikeIterable, isNgModule, isPromise, isSubscribable, isTNodeShape, isViewDirty, iterateListLike, makePropDecorator, makeStateKey, markForRefresh, noSideEffects, optionsReducer, outputBinding, patchComponentDefWithScope, performanceMarkFeature, processAndInitTriggers, processBlockData, processTextNodeBeforeSerialization, profiler, provideAppInitializer, provideNgReflectAttributes, provideZoneChangeDetection, provideZonelessChangeDetection, 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, validateMatchingNode, validateNodeExists, verifySsrContentsIntegrity, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetClassDebugInfo, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, ɵɵCopyDefinitionFeature, ɵɵExternalStylesFeature, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵanimateEnter, ɵɵanimateEnterListener, ɵɵanimateLeave, ɵɵanimateLeaveListener, ɵɵariaProperty, ɵɵattachSourceLocations, ɵɵattribute, ɵɵclassMap, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵconditionalBranchCreate, ɵɵconditionalCreate, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵ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 };
|
|
31842
31961
|
//# sourceMappingURL=debug_node.mjs.map
|