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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/api.d.d.ts +1 -1
  2. package/chrome_dev_tools_performance.d.d.ts +1 -1
  3. package/discovery.d.d.ts +11 -36
  4. package/effect.d.d.ts +1 -1
  5. package/event_dispatcher.d.d.ts +1 -1
  6. package/fesm2022/attribute.mjs +1 -1
  7. package/fesm2022/attribute.mjs.map +1 -1
  8. package/fesm2022/core.mjs +14 -18
  9. package/fesm2022/core.mjs.map +1 -1
  10. package/fesm2022/debug_node.mjs +29 -669
  11. package/fesm2022/debug_node.mjs.map +1 -1
  12. package/fesm2022/effect.mjs +1 -1
  13. package/fesm2022/effect.mjs.map +1 -1
  14. package/fesm2022/not_found.mjs +1 -1
  15. package/fesm2022/not_found.mjs.map +1 -1
  16. package/fesm2022/primitives/di.mjs +1 -1
  17. package/fesm2022/primitives/di.mjs.map +1 -1
  18. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  19. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  20. package/fesm2022/primitives/signals.mjs +1 -1
  21. package/fesm2022/primitives/signals.mjs.map +1 -1
  22. package/fesm2022/resource.mjs +1 -1
  23. package/fesm2022/resource.mjs.map +1 -1
  24. package/fesm2022/root_effect_scheduler.mjs +689 -81
  25. package/fesm2022/root_effect_scheduler.mjs.map +1 -1
  26. package/fesm2022/rxjs-interop.mjs +3 -3
  27. package/fesm2022/rxjs-interop.mjs.map +1 -1
  28. package/fesm2022/signal.mjs +1 -1
  29. package/fesm2022/signal.mjs.map +1 -1
  30. package/fesm2022/testing.mjs +6 -8
  31. package/fesm2022/testing.mjs.map +1 -1
  32. package/fesm2022/weak_ref.mjs +1 -1
  33. package/fesm2022/weak_ref.mjs.map +1 -1
  34. package/graph.d.d.ts +1 -1
  35. package/index.d.ts +31 -47
  36. package/package.json +2 -2
  37. package/primitives/di/index.d.ts +1 -1
  38. package/primitives/event-dispatch/index.d.ts +1 -1
  39. package/primitives/signals/index.d.ts +1 -1
  40. package/rxjs-interop/index.d.ts +1 -1
  41. package/schematics/bundles/application-config-core.cjs +95 -0
  42. package/schematics/bundles/{apply_import_manager-yycO3l8f.cjs → apply_import_manager-B3czqUhF.cjs} +3 -3
  43. package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
  44. package/schematics/bundles/{compiler_host-DrXTGf_7.cjs → compiler_host-B9qvCnmC.cjs} +2 -2
  45. package/schematics/bundles/control-flow-migration.cjs +4 -4
  46. package/schematics/bundles/imports-26VeX8i-.cjs +1 -1
  47. package/schematics/bundles/{index-jjHOgYYs.cjs → index-B6-f9bil.cjs} +12 -12
  48. package/schematics/bundles/{index-BdH2rlWJ.cjs → index-DN8W1c8n.cjs} +4 -4
  49. package/schematics/bundles/inject-migration.cjs +142 -47
  50. package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
  51. package/schematics/bundles/{migrate_ts_type_references-BVSg43hf.cjs → migrate_ts_type_references-DawXRJzI.cjs} +5 -5
  52. package/schematics/bundles/{ng_component_template-DjLc4mdL.cjs → ng_component_template-DUAg-x1h.cjs} +2 -2
  53. package/schematics/bundles/ng_decorators-CtYwz9Lw.cjs +1 -1
  54. package/schematics/bundles/ngclass-to-class-migration.cjs +8 -8
  55. package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
  56. package/schematics/bundles/output-migration.cjs +6 -6
  57. package/schematics/bundles/{parse_html-CXR8hziE.cjs → parse_html-C8TYlOyu.cjs} +2 -2
  58. package/schematics/bundles/{project_paths-T_M15e2g.cjs → project_paths-D64fJzoa.cjs} +3 -3
  59. package/schematics/bundles/{project_tsconfig_paths-D7xzGqRi.cjs → project_tsconfig_paths-DZ17BWwk.cjs} +11 -5
  60. package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
  61. package/schematics/bundles/route-lazy-loading.cjs +3 -3
  62. package/schematics/bundles/router-current-navigation.cjs +4 -4
  63. package/schematics/bundles/router-last-successful-navigation.cjs +4 -4
  64. package/schematics/bundles/self-closing-tags-migration.cjs +6 -6
  65. package/schematics/bundles/signal-input-migration.cjs +7 -7
  66. package/schematics/bundles/signal-queries-migration.cjs +7 -7
  67. package/schematics/bundles/signals.cjs +7 -7
  68. package/schematics/bundles/standalone-migration.cjs +4 -4
  69. package/schematics/bundles/symbol-VPWguRxr.cjs +1 -1
  70. package/schematics/migrations/ngclass-to-class-migration/schema.json +1 -1
  71. package/schematics/migrations.json +5 -0
  72. package/testing/index.d.ts +1 -1
  73. package/weak_ref.d.d.ts +1 -1
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.1
2
+ * @license Angular v21.0.0-next.2
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
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, formatRuntimeError, 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, 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, getAnimationElementRemovalRegistry, assertTNodeCreationIndex, isSkipHydrationRootTNode, leaveSkipHydrationBlock, decreaseElementDepthCount, getNamespace, enterSkipHydrationBlock, getCurrentDirectiveDef, assertIndexInExpandoRange, getBindingIndex, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, keyValueArraySet, keyValueArrayGet, incrementBindingIndex, isWritableSignal, store, providerToFactory, emitProviderConfiguredEvent, isClassProvider, setAnimationElementRemovalRegistry, 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';
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, formatRuntimeError, 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, 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, NgZone, ErrorHandler, assertNotInReactiveContext, assertInInjectionContext, DestroyRef, ViewContext, removeLViewOnDestroy, walkUpViews, getNativeByIndex, assertElement, arrayInsert2, arraySplice, setInjectorProfiler, NullInjector, ENVIRONMENT_INITIALIZER, INJECTOR_DEF_TYPES, walkProviderTree, getInjectorDef, deepForEach, isTypeProvider, isSignal, isInInjectionContext, runInInjectionContext, ZONELESS_ENABLED, EffectScheduler, PendingTasksInternal, PendingTasks, getAnimationElementRemovalRegistry, assertTNodeCreationIndex, isSkipHydrationRootTNode, leaveSkipHydrationBlock, decreaseElementDepthCount, getNamespace, enterSkipHydrationBlock, getCurrentDirectiveDef, assertIndexInExpandoRange, getBindingIndex, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, keyValueArraySet, keyValueArrayGet, incrementBindingIndex, isWritableSignal, store, providerToFactory, emitProviderConfiguredEvent, isClassProvider, setAnimationElementRemovalRegistry, 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, SCHEDULE_IN_ROOT_ZONE, SCHEDULE_IN_ROOT_ZONE_DEFAULT, ZONELESS_SCHEDULER_DISABLED, angularZoneInstanceIdProperty, NoopNgZone, scheduleCallbackWithMicrotask, PROVIDED_ZONELESS, scheduleCallbackWithRafRace, 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';
@@ -8399,7 +8399,13 @@ function handleUncaughtError(lView, error) {
8399
8399
  if (!injector) {
8400
8400
  return;
8401
8401
  }
8402
- const errorHandler = injector.get(INTERNAL_APPLICATION_ERROR_HANDLER, null);
8402
+ let errorHandler;
8403
+ try {
8404
+ errorHandler = injector.get(INTERNAL_APPLICATION_ERROR_HANDLER, null);
8405
+ }
8406
+ catch {
8407
+ errorHandler = null;
8408
+ }
8403
8409
  errorHandler?.(error);
8404
8410
  }
8405
8411
  /**
@@ -13516,7 +13522,7 @@ class ComponentFactory extends ComponentFactory$1 {
13516
13522
  }
13517
13523
  function createRootTView(rootSelectorOrNode, componentDef, componentBindings, directives) {
13518
13524
  const tAttributes = rootSelectorOrNode
13519
- ? ['ng-version', '21.0.0-next.1']
13525
+ ? ['ng-version', '21.0.0-next.2']
13520
13526
  : // Extract attributes and classes from the first selector only to match VE behavior.
13521
13527
  extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
13522
13528
  let creationBindings = null;
@@ -16194,610 +16200,6 @@ var TracingAction;
16194
16200
  */
16195
16201
  const TracingService = new InjectionToken(ngDevMode ? 'TracingService' : '');
16196
16202
 
16197
- const SCHEDULE_IN_ROOT_ZONE_DEFAULT = false;
16198
-
16199
- class EventEmitter_ extends Subject {
16200
- // tslint:disable-next-line:require-internal-with-underscore
16201
- __isAsync;
16202
- destroyRef = undefined;
16203
- pendingTasks = undefined;
16204
- constructor(isAsync = false) {
16205
- super();
16206
- this.__isAsync = isAsync;
16207
- // Attempt to retrieve a `DestroyRef` and `PendingTasks` optionally.
16208
- // For backwards compatibility reasons, this cannot be required.
16209
- if (isInInjectionContext()) {
16210
- // `DestroyRef` is optional because it is not available in all contexts.
16211
- // But it is useful to properly complete the `EventEmitter` if used with `outputToObservable`
16212
- // when the component/directive is destroyed. (See `outputToObservable` for more details.)
16213
- this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;
16214
- this.pendingTasks = inject(PendingTasksInternal, { optional: true }) ?? undefined;
16215
- }
16216
- }
16217
- emit(value) {
16218
- const prevConsumer = setActiveConsumer(null);
16219
- try {
16220
- super.next(value);
16221
- }
16222
- finally {
16223
- setActiveConsumer(prevConsumer);
16224
- }
16225
- }
16226
- subscribe(observerOrNext, error, complete) {
16227
- let nextFn = observerOrNext;
16228
- let errorFn = error || (() => null);
16229
- let completeFn = complete;
16230
- if (observerOrNext && typeof observerOrNext === 'object') {
16231
- const observer = observerOrNext;
16232
- nextFn = observer.next?.bind(observer);
16233
- errorFn = observer.error?.bind(observer);
16234
- completeFn = observer.complete?.bind(observer);
16235
- }
16236
- if (this.__isAsync) {
16237
- errorFn = this.wrapInTimeout(errorFn);
16238
- if (nextFn) {
16239
- nextFn = this.wrapInTimeout(nextFn);
16240
- }
16241
- if (completeFn) {
16242
- completeFn = this.wrapInTimeout(completeFn);
16243
- }
16244
- }
16245
- const sink = super.subscribe({ next: nextFn, error: errorFn, complete: completeFn });
16246
- if (observerOrNext instanceof Subscription) {
16247
- observerOrNext.add(sink);
16248
- }
16249
- return sink;
16250
- }
16251
- wrapInTimeout(fn) {
16252
- return (value) => {
16253
- const taskId = this.pendingTasks?.add();
16254
- setTimeout(() => {
16255
- try {
16256
- fn(value);
16257
- }
16258
- finally {
16259
- if (taskId !== undefined) {
16260
- this.pendingTasks?.remove(taskId);
16261
- }
16262
- }
16263
- });
16264
- };
16265
- }
16266
- }
16267
- /**
16268
- * @publicApi
16269
- */
16270
- const EventEmitter = EventEmitter_;
16271
-
16272
- /**
16273
- * Gets a scheduling function that runs the callback after the first of setTimeout and
16274
- * requestAnimationFrame resolves.
16275
- *
16276
- * - `requestAnimationFrame` ensures that change detection runs ahead of a browser repaint.
16277
- * This ensures that the create and update passes of a change detection always happen
16278
- * in the same frame.
16279
- * - When the browser is resource-starved, `rAF` can execute _before_ a `setTimeout` because
16280
- * rendering is a very high priority process. This means that `setTimeout` cannot guarantee
16281
- * same-frame create and update pass, when `setTimeout` is used to schedule the update phase.
16282
- * - While `rAF` gives us the desirable same-frame updates, it has two limitations that
16283
- * prevent it from being used alone. First, it does not run in background tabs, which would
16284
- * prevent Angular from initializing an application when opened in a new tab (for example).
16285
- * Second, repeated calls to requestAnimationFrame will execute at the refresh rate of the
16286
- * hardware (~16ms for a 60Hz display). This would cause significant slowdown of tests that
16287
- * are written with several updates and asserts in the form of "update; await stable; assert;".
16288
- * - Both `setTimeout` and `rAF` are able to "coalesce" several events from a single user
16289
- * interaction into a single change detection. Importantly, this reduces view tree traversals when
16290
- * compared to an alternative timing mechanism like `queueMicrotask`, where change detection would
16291
- * then be interleaves between each event.
16292
- *
16293
- * By running change detection after the first of `setTimeout` and `rAF` to execute, we get the
16294
- * best of both worlds.
16295
- *
16296
- * @returns a function to cancel the scheduled callback
16297
- */
16298
- function scheduleCallbackWithRafRace(callback) {
16299
- let timeoutId;
16300
- let animationFrameId;
16301
- function cleanup() {
16302
- callback = noop;
16303
- try {
16304
- if (animationFrameId !== undefined && typeof cancelAnimationFrame === 'function') {
16305
- cancelAnimationFrame(animationFrameId);
16306
- }
16307
- if (timeoutId !== undefined) {
16308
- clearTimeout(timeoutId);
16309
- }
16310
- }
16311
- catch {
16312
- // Clearing/canceling can fail in tests due to the timing of functions being patched and unpatched
16313
- // Just ignore the errors - we protect ourselves from this issue by also making the callback a no-op.
16314
- }
16315
- }
16316
- timeoutId = setTimeout(() => {
16317
- callback();
16318
- cleanup();
16319
- });
16320
- if (typeof requestAnimationFrame === 'function') {
16321
- animationFrameId = requestAnimationFrame(() => {
16322
- callback();
16323
- cleanup();
16324
- });
16325
- }
16326
- return () => cleanup();
16327
- }
16328
- function scheduleCallbackWithMicrotask(callback) {
16329
- queueMicrotask(() => callback());
16330
- return () => {
16331
- callback = noop;
16332
- };
16333
- }
16334
-
16335
- class AsyncStackTaggingZoneSpec {
16336
- createTask;
16337
- constructor(namePrefix, consoleAsyncStackTaggingImpl = console) {
16338
- this.name = 'asyncStackTagging for ' + namePrefix;
16339
- this.createTask = consoleAsyncStackTaggingImpl?.createTask ?? (() => null);
16340
- }
16341
- // ZoneSpec implementation below.
16342
- name;
16343
- onScheduleTask(delegate, _current, target, task) {
16344
- task.consoleTask = this.createTask(`Zone - ${task.source || task.type}`);
16345
- return delegate.scheduleTask(target, task);
16346
- }
16347
- onInvokeTask(delegate, _currentZone, targetZone, task, applyThis, applyArgs) {
16348
- let ret;
16349
- if (task.consoleTask) {
16350
- ret = task.consoleTask.run(() => delegate.invokeTask(targetZone, task, applyThis, applyArgs));
16351
- }
16352
- else {
16353
- ret = delegate.invokeTask(targetZone, task, applyThis, applyArgs);
16354
- }
16355
- return ret;
16356
- }
16357
- }
16358
-
16359
- const isAngularZoneProperty = 'isAngularZone';
16360
- const angularZoneInstanceIdProperty = isAngularZoneProperty + '_ID';
16361
- let ngZoneInstanceId = 0;
16362
- /**
16363
- * An injectable service for executing work inside or outside of the Angular zone.
16364
- *
16365
- * The most common use of this service is to optimize performance when starting a work consisting of
16366
- * one or more asynchronous tasks that don't require UI updates or error handling to be handled by
16367
- * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks
16368
- * can reenter the Angular zone via {@link #run}.
16369
- *
16370
- * <!-- TODO: add/fix links to:
16371
- * - docs explaining zones and the use of zones in Angular and change-detection
16372
- * - link to runOutsideAngular/run (throughout this file!)
16373
- * -->
16374
- *
16375
- * @usageNotes
16376
- * ### Example
16377
- *
16378
- * ```ts
16379
- * import {Component, NgZone} from '@angular/core';
16380
- *
16381
- * @Component({
16382
- * selector: 'ng-zone-demo',
16383
- * template: `
16384
- * <h2>Demo: NgZone</h2>
16385
- *
16386
- * <p>Progress: {{progress}}%</p>
16387
- * @if(progress >= 100) {
16388
- * <p>Done processing {{label}} of Angular zone!</p>
16389
- * }
16390
- *
16391
- * <button (click)="processWithinAngularZone()">Process within Angular zone</button>
16392
- * <button (click)="processOutsideOfAngularZone()">Process outside of Angular zone</button>
16393
- * `,
16394
- * })
16395
- * export class NgZoneDemo {
16396
- * progress: number = 0;
16397
- * label: string;
16398
- *
16399
- * constructor(private _ngZone: NgZone) {}
16400
- *
16401
- * // Loop inside the Angular zone
16402
- * // so the UI DOES refresh after each setTimeout cycle
16403
- * processWithinAngularZone() {
16404
- * this.label = 'inside';
16405
- * this.progress = 0;
16406
- * this._increaseProgress(() => console.log('Inside Done!'));
16407
- * }
16408
- *
16409
- * // Loop outside of the Angular zone
16410
- * // so the UI DOES NOT refresh after each setTimeout cycle
16411
- * processOutsideOfAngularZone() {
16412
- * this.label = 'outside';
16413
- * this.progress = 0;
16414
- * this._ngZone.runOutsideAngular(() => {
16415
- * this._increaseProgress(() => {
16416
- * // reenter the Angular zone and display done
16417
- * this._ngZone.run(() => { console.log('Outside Done!'); });
16418
- * });
16419
- * });
16420
- * }
16421
- *
16422
- * _increaseProgress(doneCallback: () => void) {
16423
- * this.progress += 1;
16424
- * console.log(`Current progress: ${this.progress}%`);
16425
- *
16426
- * if (this.progress < 100) {
16427
- * window.setTimeout(() => this._increaseProgress(doneCallback), 10);
16428
- * } else {
16429
- * doneCallback();
16430
- * }
16431
- * }
16432
- * }
16433
- * ```
16434
- *
16435
- * @publicApi
16436
- */
16437
- class NgZone {
16438
- hasPendingMacrotasks = false;
16439
- hasPendingMicrotasks = false;
16440
- /**
16441
- * Whether there are no outstanding microtasks or macrotasks.
16442
- */
16443
- isStable = true;
16444
- /**
16445
- * Notifies when code enters Angular Zone. This gets fired first on VM Turn.
16446
- */
16447
- onUnstable = new EventEmitter(false);
16448
- /**
16449
- * Notifies when there is no more microtasks enqueued in the current VM Turn.
16450
- * This is a hint for Angular to do change detection, which may enqueue more microtasks.
16451
- * For this reason this event can fire multiple times per VM Turn.
16452
- */
16453
- onMicrotaskEmpty = new EventEmitter(false);
16454
- /**
16455
- * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which
16456
- * implies we are about to relinquish VM turn.
16457
- * This event gets called just once.
16458
- */
16459
- onStable = new EventEmitter(false);
16460
- /**
16461
- * Notifies that an error has been delivered.
16462
- */
16463
- onError = new EventEmitter(false);
16464
- constructor(options) {
16465
- const { enableLongStackTrace = false, shouldCoalesceEventChangeDetection = false, shouldCoalesceRunChangeDetection = false, scheduleInRootZone = SCHEDULE_IN_ROOT_ZONE_DEFAULT, } = options;
16466
- if (typeof Zone == 'undefined') {
16467
- throw new RuntimeError(908 /* RuntimeErrorCode.MISSING_ZONEJS */, ngDevMode && `In this configuration Angular requires Zone.js`);
16468
- }
16469
- Zone.assertZonePatched();
16470
- const self = this;
16471
- self._nesting = 0;
16472
- self._outer = self._inner = Zone.current;
16473
- // AsyncStackTaggingZoneSpec provides `linked stack traces` to show
16474
- // where the async operation is scheduled. For more details, refer
16475
- // to this article, https://developer.chrome.com/blog/devtools-better-angular-debugging/
16476
- // And we only import this AsyncStackTaggingZoneSpec in development mode,
16477
- // in the production mode, the AsyncStackTaggingZoneSpec will be tree shaken away.
16478
- if (ngDevMode) {
16479
- self._inner = self._inner.fork(new AsyncStackTaggingZoneSpec('Angular'));
16480
- }
16481
- if (Zone['TaskTrackingZoneSpec']) {
16482
- self._inner = self._inner.fork(new Zone['TaskTrackingZoneSpec']());
16483
- }
16484
- if (enableLongStackTrace && Zone['longStackTraceZoneSpec']) {
16485
- self._inner = self._inner.fork(Zone['longStackTraceZoneSpec']);
16486
- }
16487
- // if shouldCoalesceRunChangeDetection is true, all tasks including event tasks will be
16488
- // coalesced, so shouldCoalesceEventChangeDetection option is not necessary and can be skipped.
16489
- self.shouldCoalesceEventChangeDetection =
16490
- !shouldCoalesceRunChangeDetection && shouldCoalesceEventChangeDetection;
16491
- self.shouldCoalesceRunChangeDetection = shouldCoalesceRunChangeDetection;
16492
- self.callbackScheduled = false;
16493
- self.scheduleInRootZone = scheduleInRootZone;
16494
- forkInnerZoneWithAngularBehavior(self);
16495
- }
16496
- /**
16497
- This method checks whether the method call happens within an Angular Zone instance.
16498
- */
16499
- static isInAngularZone() {
16500
- // Zone needs to be checked, because this method might be called even when NoopNgZone is used.
16501
- return typeof Zone !== 'undefined' && Zone.current.get(isAngularZoneProperty) === true;
16502
- }
16503
- /**
16504
- Assures that the method is called within the Angular Zone, otherwise throws an error.
16505
- */
16506
- static assertInAngularZone() {
16507
- if (!NgZone.isInAngularZone()) {
16508
- throw new RuntimeError(909 /* RuntimeErrorCode.UNEXPECTED_ZONE_STATE */, ngDevMode && 'Expected to be in Angular Zone, but it is not!');
16509
- }
16510
- }
16511
- /**
16512
- Assures that the method is called outside of the Angular Zone, otherwise throws an error.
16513
- */
16514
- static assertNotInAngularZone() {
16515
- if (NgZone.isInAngularZone()) {
16516
- throw new RuntimeError(909 /* RuntimeErrorCode.UNEXPECTED_ZONE_STATE */, ngDevMode && 'Expected to not be in Angular Zone, but it is!');
16517
- }
16518
- }
16519
- /**
16520
- * Executes the `fn` function synchronously within the Angular zone and returns value returned by
16521
- * the function.
16522
- *
16523
- * Running functions via `run` allows you to reenter Angular zone from a task that was executed
16524
- * outside of the Angular zone (typically started via {@link #runOutsideAngular}).
16525
- *
16526
- * Any future tasks or microtasks scheduled from within this function will continue executing from
16527
- * within the Angular zone.
16528
- *
16529
- * If a synchronous error happens it will be rethrown and not reported via `onError`.
16530
- */
16531
- run(fn, applyThis, applyArgs) {
16532
- return this._inner.run(fn, applyThis, applyArgs);
16533
- }
16534
- /**
16535
- * Executes the `fn` function synchronously within the Angular zone as a task and returns value
16536
- * returned by the function.
16537
- *
16538
- * Running functions via `runTask` allows you to reenter Angular zone from a task that was executed
16539
- * outside of the Angular zone (typically started via {@link #runOutsideAngular}).
16540
- *
16541
- * Any future tasks or microtasks scheduled from within this function will continue executing from
16542
- * within the Angular zone.
16543
- *
16544
- * If a synchronous error happens it will be rethrown and not reported via `onError`.
16545
- */
16546
- runTask(fn, applyThis, applyArgs, name) {
16547
- const zone = this._inner;
16548
- const task = zone.scheduleEventTask('NgZoneEvent: ' + name, fn, EMPTY_PAYLOAD, noop, noop);
16549
- try {
16550
- return zone.runTask(task, applyThis, applyArgs);
16551
- }
16552
- finally {
16553
- zone.cancelTask(task);
16554
- }
16555
- }
16556
- /**
16557
- * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not
16558
- * rethrown.
16559
- */
16560
- runGuarded(fn, applyThis, applyArgs) {
16561
- return this._inner.runGuarded(fn, applyThis, applyArgs);
16562
- }
16563
- /**
16564
- * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by
16565
- * the function.
16566
- *
16567
- * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do
16568
- * work that
16569
- * doesn't trigger Angular change-detection or is subject to Angular's error handling.
16570
- *
16571
- * Any future tasks or microtasks scheduled from within this function will continue executing from
16572
- * outside of the Angular zone.
16573
- *
16574
- * Use {@link #run} to reenter the Angular zone and do work that updates the application model.
16575
- */
16576
- runOutsideAngular(fn) {
16577
- return this._outer.run(fn);
16578
- }
16579
- }
16580
- const EMPTY_PAYLOAD = {};
16581
- function checkStable(zone) {
16582
- // TODO: @JiaLiPassion, should check zone.isCheckStableRunning to prevent
16583
- // re-entry. The case is:
16584
- //
16585
- // @Component({...})
16586
- // export class AppComponent {
16587
- // constructor(private ngZone: NgZone) {
16588
- // this.ngZone.onStable.subscribe(() => {
16589
- // this.ngZone.run(() => console.log('stable'););
16590
- // });
16591
- // }
16592
- //
16593
- // The onStable subscriber run another function inside ngZone
16594
- // which causes `checkStable()` re-entry.
16595
- // But this fix causes some issues in g3, so this fix will be
16596
- // launched in another PR.
16597
- if (zone._nesting == 0 && !zone.hasPendingMicrotasks && !zone.isStable) {
16598
- try {
16599
- zone._nesting++;
16600
- zone.onMicrotaskEmpty.emit(null);
16601
- }
16602
- finally {
16603
- zone._nesting--;
16604
- if (!zone.hasPendingMicrotasks) {
16605
- try {
16606
- zone.runOutsideAngular(() => zone.onStable.emit(null));
16607
- }
16608
- finally {
16609
- zone.isStable = true;
16610
- }
16611
- }
16612
- }
16613
- }
16614
- }
16615
- function delayChangeDetectionForEvents(zone) {
16616
- /**
16617
- * We also need to check _nesting here
16618
- * Consider the following case with shouldCoalesceRunChangeDetection = true
16619
- *
16620
- * ngZone.run(() => {});
16621
- * ngZone.run(() => {});
16622
- *
16623
- * We want the two `ngZone.run()` only trigger one change detection
16624
- * when shouldCoalesceRunChangeDetection is true.
16625
- * And because in this case, change detection run in async way(requestAnimationFrame),
16626
- * so we also need to check the _nesting here to prevent multiple
16627
- * change detections.
16628
- */
16629
- if (zone.isCheckStableRunning || zone.callbackScheduled) {
16630
- return;
16631
- }
16632
- zone.callbackScheduled = true;
16633
- function scheduleCheckStable() {
16634
- scheduleCallbackWithRafRace(() => {
16635
- zone.callbackScheduled = false;
16636
- updateMicroTaskStatus(zone);
16637
- zone.isCheckStableRunning = true;
16638
- checkStable(zone);
16639
- zone.isCheckStableRunning = false;
16640
- });
16641
- }
16642
- if (zone.scheduleInRootZone) {
16643
- Zone.root.run(() => {
16644
- scheduleCheckStable();
16645
- });
16646
- }
16647
- else {
16648
- zone._outer.run(() => {
16649
- scheduleCheckStable();
16650
- });
16651
- }
16652
- updateMicroTaskStatus(zone);
16653
- }
16654
- function forkInnerZoneWithAngularBehavior(zone) {
16655
- const delayChangeDetectionForEventsDelegate = () => {
16656
- delayChangeDetectionForEvents(zone);
16657
- };
16658
- const instanceId = ngZoneInstanceId++;
16659
- zone._inner = zone._inner.fork({
16660
- name: 'angular',
16661
- properties: {
16662
- [isAngularZoneProperty]: true,
16663
- [angularZoneInstanceIdProperty]: instanceId,
16664
- [angularZoneInstanceIdProperty + instanceId]: true,
16665
- },
16666
- onInvokeTask: (delegate, current, target, task, applyThis, applyArgs) => {
16667
- // Prevent triggering change detection when the flag is detected.
16668
- if (shouldBeIgnoredByZone(applyArgs)) {
16669
- return delegate.invokeTask(target, task, applyThis, applyArgs);
16670
- }
16671
- try {
16672
- onEnter(zone);
16673
- return delegate.invokeTask(target, task, applyThis, applyArgs);
16674
- }
16675
- finally {
16676
- if ((zone.shouldCoalesceEventChangeDetection && task.type === 'eventTask') ||
16677
- zone.shouldCoalesceRunChangeDetection) {
16678
- delayChangeDetectionForEventsDelegate();
16679
- }
16680
- onLeave(zone);
16681
- }
16682
- },
16683
- onInvoke: (delegate, current, target, callback, applyThis, applyArgs, source) => {
16684
- try {
16685
- onEnter(zone);
16686
- return delegate.invoke(target, callback, applyThis, applyArgs, source);
16687
- }
16688
- finally {
16689
- if (zone.shouldCoalesceRunChangeDetection &&
16690
- // Do not delay change detection when the task is the scheduler's tick.
16691
- // We need to synchronously trigger the stability logic so that the
16692
- // zone-based scheduler can prevent a duplicate ApplicationRef.tick
16693
- // by first checking if the scheduler tick is running. This does seem a bit roundabout,
16694
- // but we _do_ still want to trigger all the correct events when we exit the zone.run
16695
- // (`onMicrotaskEmpty` and `onStable` _should_ emit; developers can have code which
16696
- // relies on these events happening after change detection runs).
16697
- // Note: `zone.callbackScheduled` is already in delayChangeDetectionForEventsDelegate
16698
- // but is added here as well to prevent reads of applyArgs when not necessary
16699
- !zone.callbackScheduled &&
16700
- !isSchedulerTick(applyArgs)) {
16701
- delayChangeDetectionForEventsDelegate();
16702
- }
16703
- onLeave(zone);
16704
- }
16705
- },
16706
- onHasTask: (delegate, current, target, hasTaskState) => {
16707
- delegate.hasTask(target, hasTaskState);
16708
- if (current === target) {
16709
- // We are only interested in hasTask events which originate from our zone
16710
- // (A child hasTask event is not interesting to us)
16711
- if (hasTaskState.change == 'microTask') {
16712
- zone._hasPendingMicrotasks = hasTaskState.microTask;
16713
- updateMicroTaskStatus(zone);
16714
- checkStable(zone);
16715
- }
16716
- else if (hasTaskState.change == 'macroTask') {
16717
- zone.hasPendingMacrotasks = hasTaskState.macroTask;
16718
- }
16719
- }
16720
- },
16721
- onHandleError: (delegate, current, target, error) => {
16722
- delegate.handleError(target, error);
16723
- zone.runOutsideAngular(() => zone.onError.emit(error));
16724
- return false;
16725
- },
16726
- });
16727
- }
16728
- function updateMicroTaskStatus(zone) {
16729
- if (zone._hasPendingMicrotasks ||
16730
- ((zone.shouldCoalesceEventChangeDetection || zone.shouldCoalesceRunChangeDetection) &&
16731
- zone.callbackScheduled === true)) {
16732
- zone.hasPendingMicrotasks = true;
16733
- }
16734
- else {
16735
- zone.hasPendingMicrotasks = false;
16736
- }
16737
- }
16738
- function onEnter(zone) {
16739
- zone._nesting++;
16740
- if (zone.isStable) {
16741
- zone.isStable = false;
16742
- zone.onUnstable.emit(null);
16743
- }
16744
- }
16745
- function onLeave(zone) {
16746
- zone._nesting--;
16747
- checkStable(zone);
16748
- }
16749
- /**
16750
- * Provides a noop implementation of `NgZone` which does nothing. This zone requires explicit calls
16751
- * to framework to perform rendering.
16752
- */
16753
- class NoopNgZone {
16754
- hasPendingMicrotasks = false;
16755
- hasPendingMacrotasks = false;
16756
- isStable = true;
16757
- onUnstable = new EventEmitter();
16758
- onMicrotaskEmpty = new EventEmitter();
16759
- onStable = new EventEmitter();
16760
- onError = new EventEmitter();
16761
- run(fn, applyThis, applyArgs) {
16762
- return fn.apply(applyThis, applyArgs);
16763
- }
16764
- runGuarded(fn, applyThis, applyArgs) {
16765
- return fn.apply(applyThis, applyArgs);
16766
- }
16767
- runOutsideAngular(fn) {
16768
- return fn();
16769
- }
16770
- runTask(fn, applyThis, applyArgs, name) {
16771
- return fn.apply(applyThis, applyArgs);
16772
- }
16773
- }
16774
- function shouldBeIgnoredByZone(applyArgs) {
16775
- return hasApplyArgsData(applyArgs, '__ignore_ng_zone__');
16776
- }
16777
- function isSchedulerTick(applyArgs) {
16778
- return hasApplyArgsData(applyArgs, '__scheduler_tick__');
16779
- }
16780
- function hasApplyArgsData(applyArgs, key) {
16781
- if (!Array.isArray(applyArgs)) {
16782
- return false;
16783
- }
16784
- // We should only ever get 1 arg passed through to invokeTask.
16785
- // Short circuit here incase that behavior changes.
16786
- if (applyArgs.length !== 1) {
16787
- return false;
16788
- }
16789
- return applyArgs[0]?.data?.[key] === true;
16790
- }
16791
- function getNgZone(ngZoneToUse = 'zone.js', options) {
16792
- if (ngZoneToUse === 'noop') {
16793
- return new NoopNgZone();
16794
- }
16795
- if (ngZoneToUse === 'zone.js') {
16796
- return new NgZone(options);
16797
- }
16798
- return ngZoneToUse;
16799
- }
16800
-
16801
16203
  class AfterRenderManager {
16802
16204
  impl = null;
16803
16205
  execute() {
@@ -21768,6 +21170,7 @@ class ElementRegistry {
21768
21170
  const details = this.outElements.get(el) ?? {
21769
21171
  classes: null,
21770
21172
  animateFn: () => { },
21173
+ isEventBinding: true,
21771
21174
  };
21772
21175
  details.animateFn = animateWrapperFn(el, value);
21773
21176
  this.outElements.set(el, details);
@@ -21777,6 +21180,7 @@ class ElementRegistry {
21777
21180
  const details = this.outElements.get(el) ?? {
21778
21181
  classes: new Set(),
21779
21182
  animateFn: () => { },
21183
+ isEventBinding: false,
21780
21184
  };
21781
21185
  if (typeof value === 'function') {
21782
21186
  this.trackResolver(details, value);
@@ -21812,8 +21216,11 @@ class ElementRegistry {
21812
21216
  };
21813
21217
  // this timeout is used to ensure elements actually get removed in the case
21814
21218
  // that the user forgot to call the remove callback. The timeout is cleared
21815
- // in the DOM renderer during the remove child process.
21816
- timeoutId = setTimeout(remove, maxAnimationTimeout);
21219
+ // in the DOM renderer during the remove child process. It only applies
21220
+ // to the event binding use case.
21221
+ if (details.isEventBinding) {
21222
+ timeoutId = setTimeout(remove, maxAnimationTimeout);
21223
+ }
21817
21224
  details.animateFn(remove);
21818
21225
  }
21819
21226
  }
@@ -22060,7 +21467,6 @@ function ɵɵanimateEnter(value) {
22060
21467
  // This also allows us to setup cancellation of animations in progress if the
22061
21468
  // gets removed early.
22062
21469
  const handleAnimationStart = (event) => {
22063
- setupAnimationCancel(event, renderer);
22064
21470
  const eventName = event instanceof AnimationEvent ? 'animationend' : 'transitionend';
22065
21471
  ngZone.runOutsideAngular(() => {
22066
21472
  cleanupFns.push(renderer.listen(nativeElement, eventName, handleInAnimationEnd));
@@ -22269,42 +21675,22 @@ function cancelAnimationsIfRunning(element, renderer) {
22269
21675
  if (!areAnimationSupported)
22270
21676
  return;
22271
21677
  const elementData = enterClassMap.get(element);
22272
- if (element.getAnimations().length > 0) {
22273
- for (const animation of element.getAnimations()) {
22274
- if (animation.playState === 'running') {
22275
- animation.cancel();
22276
- }
22277
- }
22278
- }
22279
- else {
22280
- if (elementData) {
22281
- for (const klass of elementData.classList) {
22282
- renderer.removeClass(element, klass);
22283
- }
21678
+ if (elementData &&
21679
+ elementData.classList.length > 0 &&
21680
+ elementHasClassList(element, elementData.classList)) {
21681
+ for (const klass of elementData.classList) {
21682
+ renderer.removeClass(element, klass);
22284
21683
  }
22285
21684
  }
22286
21685
  // We need to prevent any enter animation listeners from firing if they exist.
22287
21686
  cleanupEnterClassData(element);
22288
21687
  }
22289
- function setupAnimationCancel(event, renderer) {
22290
- if (!(event.target instanceof Element))
22291
- return;
22292
- const nativeElement = event.target;
22293
- if (areAnimationSupported) {
22294
- const elementData = enterClassMap.get(nativeElement);
22295
- const animations = nativeElement.getAnimations();
22296
- if (animations.length === 0)
22297
- return;
22298
- for (let animation of animations) {
22299
- animation.addEventListener('cancel', (event) => {
22300
- if (nativeElement === event.target && elementData?.classList) {
22301
- for (const klass of elementData.classList) {
22302
- renderer.removeClass(nativeElement, klass);
22303
- }
22304
- }
22305
- });
22306
- }
21688
+ function elementHasClassList(element, classList) {
21689
+ for (const className of classList) {
21690
+ if (element.classList.contains(className))
21691
+ return true;
22307
21692
  }
21693
+ return false;
22308
21694
  }
22309
21695
  function isLongestAnimation(event, nativeElement) {
22310
21696
  const longestAnimation = longestAnimations.get(nativeElement);
@@ -30576,7 +29962,7 @@ class NgZoneChangeDetectionScheduler {
30576
29962
  * with the bootstrapModule API.
30577
29963
  */
30578
29964
  const PROVIDED_NG_ZONE = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'provideZoneChangeDetection token' : '', { factory: () => false });
30579
- function internalProvideZoneChangeDetection({ ngZoneFactory, ignoreChangesOutsideZone, scheduleInRootZone, }) {
29965
+ function internalProvideZoneChangeDetection({ ngZoneFactory, scheduleInRootZone, }) {
30580
29966
  ngZoneFactory ??= () => new NgZone({ ...getNgZoneOptions(), scheduleInRootZone });
30581
29967
  return [
30582
29968
  { provide: NgZone, useFactory: ngZoneFactory },
@@ -30605,34 +29991,10 @@ function internalProvideZoneChangeDetection({ ngZoneFactory, ignoreChangesOutsid
30605
29991
  };
30606
29992
  },
30607
29993
  },
30608
- // Always disable scheduler whenever explicitly disabled, even if another place called
30609
- // `provideZoneChangeDetection` without the 'ignore' option.
30610
- ignoreChangesOutsideZone === true ? { provide: ZONELESS_SCHEDULER_DISABLED, useValue: true } : [],
30611
29994
  {
30612
29995
  provide: SCHEDULE_IN_ROOT_ZONE,
30613
29996
  useValue: scheduleInRootZone ?? SCHEDULE_IN_ROOT_ZONE_DEFAULT,
30614
29997
  },
30615
- {
30616
- provide: INTERNAL_APPLICATION_ERROR_HANDLER,
30617
- useFactory: () => {
30618
- const zone = inject(NgZone);
30619
- const injector = inject(EnvironmentInjector);
30620
- let userErrorHandler;
30621
- return (e) => {
30622
- zone.runOutsideAngular(() => {
30623
- if (injector.destroyed && !userErrorHandler) {
30624
- setTimeout(() => {
30625
- throw e;
30626
- });
30627
- }
30628
- else {
30629
- userErrorHandler ??= injector.get(ErrorHandler);
30630
- userErrorHandler.handleError(e);
30631
- }
30632
- });
30633
- };
30634
- },
30635
- },
30636
29998
  ];
30637
29999
  }
30638
30000
  /**
@@ -30656,7 +30018,6 @@ function internalProvideZoneChangeDetection({ ngZoneFactory, ignoreChangesOutsid
30656
30018
  * @see {@link NgZoneOptions}
30657
30019
  */
30658
30020
  function provideZoneChangeDetection(options) {
30659
- const ignoreChangesOutsideZone = options?.ignoreChangesOutsideZone;
30660
30021
  const scheduleInRootZone = options?.scheduleInRootZone;
30661
30022
  const zoneProviders = internalProvideZoneChangeDetection({
30662
30023
  ngZoneFactory: () => {
@@ -30667,7 +30028,6 @@ function provideZoneChangeDetection(options) {
30667
30028
  }
30668
30029
  return new NgZone(ngZoneOptions);
30669
30030
  },
30670
- ignoreChangesOutsideZone,
30671
30031
  scheduleInRootZone,
30672
30032
  });
30673
30033
  return makeEnvironmentProviders([
@@ -31825,5 +31185,5 @@ function getDebugNode(nativeNode) {
31825
31185
  return null;
31826
31186
  }
31827
31187
 
31828
- 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, ElementRegistry, 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, NgZone, NoopNgZone, Optional, Output, 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, 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, ɵɵAnimationsFeature, ɵɵ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 };
31188
+ 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, ElementRegistry, EnvironmentNgModuleRefAdapter, Framework, Host, HostBinding, HostListener, HydrationStatus, I18N_DATA, IMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS, IS_ENABLED_BLOCKING_INITIAL_NAVIGATION, IS_EVENT_REPLAY_ENABLED, IS_HYDRATION_DOM_REUSE_ENABLED, IS_I18N_HYDRATION_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED, Inject, Injectable, Input, JSACTION_BLOCK_ELEMENT_MAP, JSACTION_EVENT_CONTRACT, LContext, LOCALE_ID, LocaleDataIndex, MAX_ANIMATION_TIMEOUT, MULTIPLIER, MissingTranslationStrategy, ModuleWithComponentFactories, NGH_ATTR_NAME, NGH_DATA_KEY, NGH_DEFER_BLOCKS_KEY, NODES, NOOP_AFTER_RENDER_REF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE, NO_ERRORS_SCHEMA, NUM_ROOT_NODES, NgModule, NgModuleFactory, NgModuleFactory$1, NgModuleRef, NgModuleRef$1, Optional, Output, PLATFORM_ID, PLATFORM_INITIALIZER, PRESERVE_HOST_CONTENT, 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, 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, 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, ɵɵAnimationsFeature, ɵɵ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 };
31829
31189
  //# sourceMappingURL=debug_node.mjs.map