@angular/core 21.2.1 → 22.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/fesm2022/_attribute-chunk.mjs +1 -1
  2. package/fesm2022/_debug_node-chunk.mjs +523 -471
  3. package/fesm2022/_debug_node-chunk.mjs.map +1 -1
  4. package/fesm2022/_effect-chunk.mjs +1 -1
  5. package/fesm2022/_not_found-chunk.mjs +1 -1
  6. package/fesm2022/{_effect-chunk2.mjs → _pending_tasks-chunk.mjs} +31 -31
  7. package/fesm2022/_pending_tasks-chunk.mjs.map +1 -0
  8. package/fesm2022/_resource-chunk.mjs +91 -32
  9. package/fesm2022/_resource-chunk.mjs.map +1 -1
  10. package/fesm2022/_untracked-chunk.mjs +1 -1
  11. package/fesm2022/_weak_ref-chunk.mjs +1 -1
  12. package/fesm2022/core.mjs +5 -5
  13. package/fesm2022/primitives-di.mjs +1 -1
  14. package/fesm2022/primitives-event-dispatch.mjs +1 -1
  15. package/fesm2022/primitives-signals.mjs +1 -1
  16. package/fesm2022/rxjs-interop.mjs +2 -2
  17. package/fesm2022/testing.mjs +14 -2
  18. package/fesm2022/testing.mjs.map +1 -1
  19. package/package.json +3 -3
  20. package/schematics/bundles/apply_import_manager-CxA_YYgB.cjs +1 -1
  21. package/schematics/bundles/change-detection-eager.cjs +152 -0
  22. package/schematics/bundles/cleanup-unused-imports.cjs +1 -1
  23. package/schematics/bundles/common-to-standalone-migration.cjs +4 -4
  24. package/schematics/bundles/compiler_host-CY14HvaP.cjs +1 -1
  25. package/schematics/bundles/control-flow-migration.cjs +1 -1
  26. package/schematics/bundles/http-xhr-backend.cjs +118 -0
  27. package/schematics/bundles/{imports-CVmcbVA9.cjs → imports-CKV-ITqD.cjs} +4 -3
  28. package/schematics/bundles/index-BtLcQH8g.cjs +1 -1
  29. package/schematics/bundles/inject-migration.cjs +3 -3
  30. package/schematics/bundles/leading_space-BTPRV0wu.cjs +1 -1
  31. package/schematics/bundles/migrate_ts_type_references-MWoZx-Cb.cjs +1 -1
  32. package/schematics/bundles/{ng_component_template-BOuKAnQd.cjs → ng_component_template-DPAF1aEA.cjs} +2 -2
  33. package/schematics/bundles/{ng_decorators-DYy6II6x.cjs → ng_decorators-IVztR9rk.cjs} +2 -2
  34. package/schematics/bundles/ngclass-to-class-migration.cjs +4 -4
  35. package/schematics/bundles/ngstyle-to-style-migration.cjs +4 -4
  36. package/schematics/bundles/nodes-ZSQ7WZRB.cjs +1 -1
  37. package/schematics/bundles/output-migration.cjs +1 -1
  38. package/schematics/bundles/parse_html-C8eKA9px.cjs +1 -1
  39. package/schematics/bundles/project_paths-D2V-Uh2L.cjs +1 -1
  40. package/schematics/bundles/project_tsconfig_paths-DkkMibv-.cjs +1 -1
  41. package/schematics/bundles/property_name-BCpALNpZ.cjs +1 -1
  42. package/schematics/bundles/route-lazy-loading.cjs +4 -16
  43. package/schematics/bundles/router-testing-module-migration.cjs +1 -1
  44. package/schematics/bundles/self-closing-tags-migration.cjs +4 -4
  45. package/schematics/bundles/signal-input-migration.cjs +1 -1
  46. package/schematics/bundles/signal-queries-migration.cjs +1 -1
  47. package/schematics/bundles/signals.cjs +1 -1
  48. package/schematics/bundles/standalone-migration.cjs +20 -6
  49. package/schematics/collection.json +5 -5
  50. package/schematics/migrations.json +9 -30
  51. package/types/_api-chunk.d.ts +31 -4
  52. package/types/_chrome_dev_tools_performance-chunk.d.ts +1 -1
  53. package/types/_discovery-chunk.d.ts +2 -2
  54. package/types/_effect-chunk.d.ts +1 -1
  55. package/types/_event_dispatcher-chunk.d.ts +1 -1
  56. package/types/_formatter-chunk.d.ts +1 -1
  57. package/types/_weak_ref-chunk.d.ts +1 -1
  58. package/types/core.d.ts +42 -12
  59. package/types/primitives-di.d.ts +1 -1
  60. package/types/primitives-event-dispatch.d.ts +1 -1
  61. package/types/primitives-signals.d.ts +1 -1
  62. package/types/rxjs-interop.d.ts +1 -1
  63. package/types/testing.d.ts +6 -1
  64. package/fesm2022/_effect-chunk2.mjs.map +0 -1
  65. package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +0 -117
  66. package/schematics/bundles/application-config-core.cjs +0 -84
  67. package/schematics/bundles/bootstrap-options-migration.cjs +0 -644
  68. package/schematics/bundles/router-current-navigation.cjs +0 -103
  69. package/schematics/bundles/router-last-successful-navigation.cjs +0 -103
  70. package/schematics/bundles/symbol-DZeHSR-V.cjs +0 -26
  71. /package/schematics/{migrations → ng-generate}/common-to-standalone-migration/schema.json +0 -0
  72. /package/schematics/{migrations → ng-generate}/control-flow-migration/schema.json +0 -0
  73. /package/schematics/{migrations → ng-generate}/ngclass-to-class-migration/schema.json +0 -0
  74. /package/schematics/{migrations → ng-generate}/ngstyle-to-style-migration/schema.json +0 -0
  75. /package/schematics/{migrations → ng-generate}/router-testing-module-migration/schema.json +0 -0
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @license Angular v21.2.1
2
+ * @license Angular v22.0.0-next.1
3
3
  * (c) 2010-2026 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
7
- import { attachInjectFlag, _global, ɵɵdefineInjectable as __defineInjectable, ɵɵdefineInjector as __defineInjector, ɵɵinject as __inject, ɵɵinvalidFactoryDep as __invalidFactoryDep, resolveForwardRef, newArray, EMPTY_OBJ, assertString, assertNotEqual, FLAGS, assertEqual, isInCheckNoChangesMode, PREORDER_HOOK_FLAGS, assertFirstCreatePass, assertDefined, throwError, assertNumber, assertGreaterThan, HEADER_OFFSET, DECLARATION_VIEW, NG_FACTORY_DEF, isForwardRef, getFactoryDef, assertIndexInRange, assertTNodeForLView, enterDI, runInInjectorProfilerContext, getCurrentTNode, getLView, emitInjectorToCreateInstanceEvent, emitInstanceCreatedByInjectorEvent, throwProviderNotFoundError, leaveDI, assertNodeInjector, stringifyForError, cyclicDependencyErrorWithDetails, cyclicDependencyError, setInjectorProfilerContext, setInjectImplementation, assertDirectiveDef, NG_ELEMENT_ID, convertToBitFlags, isRootView, T_HOST, TVIEW, injectRootLimpMode, isComponentDef, EMBEDDED_VIEW_INJECTOR, INJECTOR$1 as INJECTOR, DECLARATION_COMPONENT_VIEW, isComponentHost, RuntimeError, NG_PROV_DEF, getClosureSafeProperty, getNativeByTNode, flatten, arrayEquals, ID, isLView, assertDomNode, unwrapRNode, getComponentLViewByIndex, CONTEXT, EMPTY_ARRAY, assertLView, HOST, CHILD_HEAD, NEXT, isLContainer, getLViewParent, Injector, CLEANUP, getComponentDef, getDirectiveDef, InjectionToken, inject, DOCUMENT as DOCUMENT$1, ENVIRONMENT_INITIALIZER, formatRuntimeError, isInSkipHydrationBlock as isInSkipHydrationBlock$1, HYDRATION, isContentQueryHost, setCurrentQueryIndex, isDirectiveHost, XSS_SECURITY_URL, RENDERER, renderStringify, getSelectedTNode, ENVIRONMENT, makeEnvironmentProviders, resetPreOrderHookFlags, PARENT, CHILD_TAIL, assertSame, assertFirstUpdatePass, getSelectedIndex, getTView, assertIndexInDeclRange, setSelectedIndex, stringify, ANIMATIONS, NgZone, ChangeDetectionScheduler, ErrorHandler, AFTER_RENDER_SEQUENCES_TO_ADD, markAncestorsForTraversal, assertNotInReactiveContext, assertInInjectionContext, DestroyRef, ViewContext, EnvironmentInjector, INJECTOR as INJECTOR$1, CONTAINER_HEADER_OFFSET, assertLContainer, MOVED_VIEWS, isDestroyed, REACTIVE_TEMPLATE_CONSUMER, DECLARATION_LCONTAINER, QUERIES, assertNotReactive, ON_DESTROY_HOOKS, assertFunction, EFFECTS, assertProjectionSlots, NATIVE, assertParentView, assertNotSame, setCurrentDirectiveIndex, setCurrentTNode, getElementDepthCount, increaseElementDepthCount, wasLastNodeCreated, isCurrentTNodeParent, setCurrentTNodeAsNotParent, assertHasParent, INTERNAL_APPLICATION_ERROR_HANDLER, getCurrentDirectiveIndex, unwrapLView, isCreationMode, enterView, leaveView, markViewForRefresh, setIsRefreshingViews, isExhaustiveCheckNoChanges, requiresRefreshOrTraversal, setIsInCheckNoChangesMode, CheckNoChangesMode, setBindingIndex, EFFECTS_TO_SCHEDULE, viewAttachedToChangeDetector, setBindingRootForHostBindings, isRefreshingViews, removeFromArray, addToArray, updateAncestorTraversalFlagsOnAttach, storeLViewOnDestroy, VIEW_REFS, assertGreaterThanOrEqual, isInI18nBlock, assertTNodeForTView, getCurrentParentTNode, getCurrentTNodePlaceholderOk, assertTNode, assertTIcu, assertNumberInRange, DEHYDRATED_VIEWS, getNgModuleDef, getPipeDef as getPipeDef$1, getNgModuleDefOrThrow, isStandalone, concatStringsWithSpace, assertInjectImplementationNotEqual, emitInjectEvent, getConstant, assertLessThan, getOrCreateTViewCleanup, getOrCreateLViewCleanup, debugStringifyTypeForError, assertNotDefined, nextBindingIndex, getDirectiveDefOrThrow, getTNode, assertComponentType, SVG_NAMESPACE, MATH_ML_NAMESPACE, viewAttachedToContainer, storeCleanupWithContext, signal, createInjectorWithoutInjectorInstances, R3Injector, getNullInjector, internalImportProvidersFrom, initNgDevMode, fillProperties, getBindingsEnabled, lastNodeWasCreated, removeLViewOnDestroy, walkUpViews, getNativeByIndex, assertElement, arrayInsert2, arraySplice, setInjectorProfiler, EffectRefImpl, NullInjector, INJECTOR_DEF_TYPES, walkProviderTree, getInjectorDef, deepForEach, isTypeProvider, isInInjectionContext, runInInjectionContext, ZONELESS_ENABLED, EffectScheduler, PendingTasksInternal, PendingTasks, assertTNodeCreationIndex, isSkipHydrationRootTNode, leaveSkipHydrationBlock, decreaseElementDepthCount, getNamespace, enterSkipHydrationBlock, getCurrentDirectiveDef, assertIndexInExpandoRange, getBindingIndex, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, keyValueArraySet, keyValueArrayGet, incrementBindingIndex, store, getBindingRoot, providerToFactory, emitProviderConfiguredEvent, isClassProvider, NG_COMP_DEF, ɵɵresetView as __resetView, ɵɵnamespaceHTML as __namespaceHTML, ɵɵnamespaceMathML as __namespaceMathML, ɵɵnamespaceSVG as __namespaceSVG, ɵɵenableBindings as __enableBindings, ɵɵdisableBindings as __disableBindings, ɵɵrestoreView as __restoreView, forwardRef, NG_MOD_DEF, NG_INJ_DEF, NG_DIR_DEF, NG_PIPE_DEF, angularZoneInstanceIdProperty, SCHEDULE_IN_ROOT_ZONE, PROVIDED_ZONELESS, NoopNgZone, scheduleCallbackWithMicrotask, scheduleCallbackWithRafRace, getNativeByTNodeOrNull } from './_effect-chunk2.mjs';
7
+ import { attachInjectFlag, _global, ɵɵdefineInjectable as __defineInjectable, ɵɵdefineInjector as __defineInjector, ɵɵinject as __inject, ɵɵinvalidFactoryDep as __invalidFactoryDep, resolveForwardRef, newArray, EMPTY_OBJ, assertString, assertNotEqual, FLAGS, assertEqual, isInCheckNoChangesMode, PREORDER_HOOK_FLAGS, assertFirstCreatePass, assertDefined, throwError, assertNumber, assertGreaterThan, HEADER_OFFSET, DECLARATION_VIEW, NG_FACTORY_DEF, isForwardRef, getFactoryDef, assertIndexInRange, assertTNodeForLView, enterDI, runInInjectorProfilerContext, getCurrentTNode, getLView, emitInjectorToCreateInstanceEvent, emitInstanceCreatedByInjectorEvent, throwProviderNotFoundError, leaveDI, assertNodeInjector, stringifyForError, cyclicDependencyErrorWithDetails, cyclicDependencyError, setInjectorProfilerContext, setInjectImplementation, assertDirectiveDef, NG_ELEMENT_ID, convertToBitFlags, isRootView, T_HOST, TVIEW, injectRootLimpMode, isComponentDef, EMBEDDED_VIEW_INJECTOR, INJECTOR$1 as INJECTOR, DECLARATION_COMPONENT_VIEW, isComponentHost, RuntimeError, NG_PROV_DEF, getClosureSafeProperty, getNativeByTNode, flatten, arrayEquals, ID, isLView, assertDomNode, unwrapRNode, getComponentLViewByIndex, CONTEXT, EMPTY_ARRAY, assertLView, HOST, CHILD_HEAD, NEXT, isLContainer, getLViewParent, Injector, CLEANUP, getComponentDef, getDirectiveDef, InjectionToken, inject, DOCUMENT as DOCUMENT$1, ENVIRONMENT_INITIALIZER, formatRuntimeError, isInSkipHydrationBlock as isInSkipHydrationBlock$1, HYDRATION, isContentQueryHost, setCurrentQueryIndex, isDirectiveHost, XSS_SECURITY_URL, RENDERER, renderStringify, getSelectedTNode, ENVIRONMENT, makeEnvironmentProviders, resetPreOrderHookFlags, PARENT, CHILD_TAIL, assertSame, assertFirstUpdatePass, getSelectedIndex, getTView, assertIndexInDeclRange, setSelectedIndex, stringify, ANIMATIONS, NgZone, ChangeDetectionScheduler, ErrorHandler, AFTER_RENDER_SEQUENCES_TO_ADD, markAncestorsForTraversal, assertNotInReactiveContext, assertInInjectionContext, DestroyRef, ViewContext, EnvironmentInjector, INJECTOR as INJECTOR$1, CONTAINER_HEADER_OFFSET, assertLContainer, MOVED_VIEWS, isDestroyed, REACTIVE_TEMPLATE_CONSUMER, DECLARATION_LCONTAINER, QUERIES, assertNotReactive, ON_DESTROY_HOOKS, assertFunction, EFFECTS, assertProjectionSlots, NATIVE, assertParentView, assertNotSame, setCurrentDirectiveIndex, setCurrentTNode, getElementDepthCount, increaseElementDepthCount, wasLastNodeCreated, isCurrentTNodeParent, setCurrentTNodeAsNotParent, assertHasParent, INTERNAL_APPLICATION_ERROR_HANDLER, getCurrentDirectiveIndex, unwrapLView, isCreationMode, enterView, leaveView, markViewForRefresh, setIsRefreshingViews, isExhaustiveCheckNoChanges, requiresRefreshOrTraversal, setIsInCheckNoChangesMode, CheckNoChangesMode, setBindingIndex, EFFECTS_TO_SCHEDULE, viewAttachedToChangeDetector, setBindingRootForHostBindings, isRefreshingViews, removeFromArray, addToArray, updateAncestorTraversalFlagsOnAttach, storeLViewOnDestroy, VIEW_REFS, assertGreaterThanOrEqual, isInI18nBlock, assertTNodeForTView, getCurrentParentTNode, getCurrentTNodePlaceholderOk, assertTNode, assertTIcu, assertNumberInRange, DEHYDRATED_VIEWS, getNgModuleDef, getPipeDef as getPipeDef$1, getNgModuleDefOrThrow, isStandalone, concatStringsWithSpace, assertInjectImplementationNotEqual, emitInjectEvent, getConstant, assertLessThan, getOrCreateTViewCleanup, getOrCreateLViewCleanup, debugStringifyTypeForError, assertNotDefined, nextBindingIndex, getDirectiveDefOrThrow, getTNode, assertComponentType, SVG_NAMESPACE, MATH_ML_NAMESPACE, viewAttachedToContainer, storeCleanupWithContext, signal, createInjectorWithoutInjectorInstances, R3Injector, getNullInjector, internalImportProvidersFrom, initNgDevMode, fillProperties, getBindingsEnabled, lastNodeWasCreated, removeLViewOnDestroy, walkUpViews, getNativeByIndex, assertElement, setInjectorProfiler, EffectRefImpl, NullInjector, INJECTOR_DEF_TYPES, walkProviderTree, getInjectorDef, deepForEach, isTypeProvider, isInInjectionContext, runInInjectionContext, ZONELESS_ENABLED, EffectScheduler, PendingTasksInternal, arrayInsert2, arraySplice, PendingTasks, assertTNodeCreationIndex, isSkipHydrationRootTNode, leaveSkipHydrationBlock, decreaseElementDepthCount, getNamespace, enterSkipHydrationBlock, getCurrentDirectiveDef, assertIndexInExpandoRange, getBindingIndex, assertOneOf, setInI18nBlock, nextContextImpl, getCurrentQueryIndex, getContextLView, load, keyValueArrayIndexOf, keyValueArraySet, keyValueArrayGet, incrementBindingIndex, store, getBindingRoot, providerToFactory, emitProviderConfiguredEvent, isClassProvider, NG_COMP_DEF, ɵɵresetView as __resetView, ɵɵnamespaceHTML as __namespaceHTML, ɵɵnamespaceMathML as __namespaceMathML, ɵɵnamespaceSVG as __namespaceSVG, ɵɵenableBindings as __enableBindings, ɵɵdisableBindings as __disableBindings, ɵɵrestoreView as __restoreView, forwardRef, NG_MOD_DEF, NG_INJ_DEF, NG_DIR_DEF, NG_PIPE_DEF, angularZoneInstanceIdProperty, SCHEDULE_IN_ROOT_ZONE, PROVIDED_ZONELESS, NoopNgZone, scheduleCallbackWithMicrotask, scheduleCallbackWithRafRace, getNativeByTNodeOrNull } from './_pending_tasks-chunk.mjs';
8
8
  import { setActiveConsumer, SIGNAL, consumerDestroy, REACTIVE_NODE, consumerPollProducersForChange, consumerBeforeComputation, getActiveConsumer, consumerAfterComputation, createComputed, setThrowInvalidWriteToSignalError } from './_effect-chunk.mjs';
9
9
  import { Subject, Subscription } from 'rxjs';
10
10
  import { setActiveConsumer as setActiveConsumer$1 } from '@angular/core/primitives/signals';
@@ -8733,7 +8733,7 @@ class ComponentFactory extends ComponentFactory$1 {
8733
8733
  }
8734
8734
  }
8735
8735
  function createRootTView(rootSelectorOrNode, componentDef, componentBindings, directives) {
8736
- const tAttributes = rootSelectorOrNode ? ['ng-version', '21.2.1'] : extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
8736
+ const tAttributes = rootSelectorOrNode ? ['ng-version', '22.0.0-next.1'] : extractAttrsAndClassesFromSelector(componentDef.selectors[0]);
8737
8737
  let creationBindings = null;
8738
8738
  let updateBindings = null;
8739
8739
  let varsToAllocate = 0;
@@ -10532,402 +10532,26 @@ function registerDomTrigger(initialLView, tNode, triggerIndex, walkUpTimes, regi
10532
10532
  });
10533
10533
  }
10534
10534
 
10535
- function onIdle(callback, injector) {
10536
- const scheduler = injector.get(IdleScheduler);
10537
- const cleanupFn = () => scheduler.remove(callback);
10538
- scheduler.add(callback);
10539
- return cleanupFn;
10540
- }
10541
- const _requestIdleCallback = () => typeof requestIdleCallback !== 'undefined' ? requestIdleCallback : setTimeout;
10542
- const _cancelIdleCallback = () => typeof requestIdleCallback !== 'undefined' ? cancelIdleCallback : clearTimeout;
10543
- class IdleScheduler {
10544
- executingCallbacks = false;
10545
- idleId = null;
10546
- current = new Set();
10547
- deferred = new Set();
10548
- ngZone = inject(NgZone);
10549
- requestIdleCallbackFn = _requestIdleCallback().bind(globalThis);
10550
- cancelIdleCallbackFn = _cancelIdleCallback().bind(globalThis);
10551
- add(callback) {
10552
- const target = this.executingCallbacks ? this.deferred : this.current;
10553
- target.add(callback);
10554
- if (this.idleId === null) {
10555
- this.scheduleIdleCallback();
10556
- }
10557
- }
10558
- remove(callback) {
10559
- const {
10560
- current,
10561
- deferred
10562
- } = this;
10563
- current.delete(callback);
10564
- deferred.delete(callback);
10565
- if (current.size === 0 && deferred.size === 0) {
10566
- this.cancelIdleCallback();
10567
- }
10568
- }
10569
- scheduleIdleCallback() {
10570
- const callback = () => {
10571
- this.cancelIdleCallback();
10572
- this.executingCallbacks = true;
10573
- for (const callback of this.current) {
10574
- callback();
10575
- }
10576
- this.current.clear();
10577
- this.executingCallbacks = false;
10578
- if (this.deferred.size > 0) {
10579
- for (const callback of this.deferred) {
10580
- this.current.add(callback);
10581
- }
10582
- this.deferred.clear();
10583
- this.scheduleIdleCallback();
10584
- }
10585
- };
10586
- this.idleId = this.requestIdleCallbackFn(() => this.ngZone.run(callback));
10587
- }
10588
- cancelIdleCallback() {
10589
- if (this.idleId !== null) {
10590
- this.cancelIdleCallbackFn(this.idleId);
10591
- this.idleId = null;
10592
- }
10593
- }
10594
- ngOnDestroy() {
10595
- this.cancelIdleCallback();
10596
- this.current.clear();
10597
- this.deferred.clear();
10598
- }
10599
- static ɵprov =
10600
- /* @__PURE__ */
10601
- __defineInjectable({
10602
- token: IdleScheduler,
10603
- providedIn: 'root',
10604
- factory: () => new IdleScheduler()
10605
- });
10606
- }
10607
-
10608
- function onTimer(delay) {
10609
- return (callback, injector) => scheduleTimerTrigger(delay, callback, injector);
10610
- }
10611
- function scheduleTimerTrigger(delay, callback, injector) {
10612
- const scheduler = injector.get(TimerScheduler);
10613
- const ngZone = injector.get(NgZone);
10614
- const cleanupFn = () => scheduler.remove(callback);
10615
- scheduler.add(delay, callback, ngZone);
10616
- return cleanupFn;
10617
- }
10618
- class TimerScheduler {
10619
- executingCallbacks = false;
10620
- timeoutId = null;
10621
- invokeTimerAt = null;
10622
- current = [];
10623
- deferred = [];
10624
- add(delay, callback, ngZone) {
10625
- const target = this.executingCallbacks ? this.deferred : this.current;
10626
- this.addToQueue(target, Date.now() + delay, callback);
10627
- this.scheduleTimer(ngZone);
10628
- }
10629
- remove(callback) {
10630
- const {
10631
- current,
10632
- deferred
10633
- } = this;
10634
- const callbackIndex = this.removeFromQueue(current, callback);
10635
- if (callbackIndex === -1) {
10636
- this.removeFromQueue(deferred, callback);
10637
- }
10638
- if (current.length === 0 && deferred.length === 0) {
10639
- this.clearTimeout();
10640
- }
10641
- }
10642
- addToQueue(target, invokeAt, callback) {
10643
- let insertAtIndex = target.length;
10644
- for (let i = 0; i < target.length; i += 2) {
10645
- const invokeQueuedCallbackAt = target[i];
10646
- if (invokeQueuedCallbackAt > invokeAt) {
10647
- insertAtIndex = i;
10648
- break;
10649
- }
10650
- }
10651
- arrayInsert2(target, insertAtIndex, invokeAt, callback);
10652
- }
10653
- removeFromQueue(target, callback) {
10654
- let index = -1;
10655
- for (let i = 0; i < target.length; i += 2) {
10656
- const queuedCallback = target[i + 1];
10657
- if (queuedCallback === callback) {
10658
- index = i;
10659
- break;
10660
- }
10661
- }
10662
- if (index > -1) {
10663
- arraySplice(target, index, 2);
10664
- }
10665
- return index;
10666
- }
10667
- scheduleTimer(ngZone) {
10668
- const callback = () => {
10669
- this.clearTimeout();
10670
- this.executingCallbacks = true;
10671
- const current = [...this.current];
10672
- const now = Date.now();
10673
- for (let i = 0; i < current.length; i += 2) {
10674
- const invokeAt = current[i];
10675
- const callback = current[i + 1];
10676
- if (invokeAt <= now) {
10677
- callback();
10678
- } else {
10679
- break;
10680
- }
10681
- }
10682
- let lastCallbackIndex = -1;
10683
- for (let i = 0; i < this.current.length; i += 2) {
10684
- const invokeAt = this.current[i];
10685
- if (invokeAt <= now) {
10686
- lastCallbackIndex = i + 1;
10687
- } else {
10688
- break;
10689
- }
10690
- }
10691
- if (lastCallbackIndex >= 0) {
10692
- arraySplice(this.current, 0, lastCallbackIndex + 1);
10693
- }
10694
- this.executingCallbacks = false;
10695
- if (this.deferred.length > 0) {
10696
- for (let i = 0; i < this.deferred.length; i += 2) {
10697
- const invokeAt = this.deferred[i];
10698
- const callback = this.deferred[i + 1];
10699
- this.addToQueue(this.current, invokeAt, callback);
10700
- }
10701
- this.deferred.length = 0;
10702
- }
10703
- this.scheduleTimer(ngZone);
10704
- };
10705
- const FRAME_DURATION_MS = 16;
10706
- if (this.current.length > 0) {
10707
- const now = Date.now();
10708
- const invokeAt = this.current[0];
10709
- if (this.timeoutId === null || this.invokeTimerAt && this.invokeTimerAt - invokeAt > FRAME_DURATION_MS) {
10710
- this.clearTimeout();
10711
- const timeout = Math.max(invokeAt - now, FRAME_DURATION_MS);
10712
- this.invokeTimerAt = invokeAt;
10713
- this.timeoutId = ngZone.runOutsideAngular(() => {
10714
- return setTimeout(() => ngZone.run(callback), timeout);
10715
- });
10716
- }
10717
- }
10718
- }
10719
- clearTimeout() {
10720
- if (this.timeoutId !== null) {
10721
- clearTimeout(this.timeoutId);
10722
- this.timeoutId = null;
10723
- }
10724
- }
10725
- ngOnDestroy() {
10726
- this.clearTimeout();
10727
- this.current.length = 0;
10728
- this.deferred.length = 0;
10729
- }
10730
- static ɵprov =
10731
- /* @__PURE__ */
10732
- __defineInjectable({
10733
- token: TimerScheduler,
10734
- providedIn: 'root',
10735
- factory: () => new TimerScheduler()
10736
- });
10737
- }
10738
-
10739
- class CachedInjectorService {
10740
- cachedInjectors = new Map();
10741
- getOrCreateInjector(key, parentInjector, providers, debugName) {
10742
- if (!this.cachedInjectors.has(key)) {
10743
- const injector = providers.length > 0 ? createEnvironmentInjector(providers, parentInjector, debugName) : null;
10744
- this.cachedInjectors.set(key, injector);
10745
- }
10746
- return this.cachedInjectors.get(key);
10747
- }
10748
- ngOnDestroy() {
10749
- try {
10750
- for (const injector of this.cachedInjectors.values()) {
10751
- if (injector !== null) {
10752
- injector.destroy();
10753
- }
10754
- }
10755
- } finally {
10756
- this.cachedInjectors.clear();
10757
- }
10758
- }
10759
- static ɵprov =
10760
- /* @__PURE__ */
10761
- __defineInjectable({
10762
- token: CachedInjectorService,
10763
- providedIn: 'environment',
10764
- factory: () => new CachedInjectorService()
10765
- });
10766
- }
10767
-
10768
- const DEFER_BLOCK_DEPENDENCY_INTERCEPTOR = /* @__PURE__ */new InjectionToken('DEFER_BLOCK_DEPENDENCY_INTERCEPTOR');
10769
- const DEFER_BLOCK_CONFIG = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'DEFER_BLOCK_CONFIG' : '');
10770
- function getOrCreateEnvironmentInjector(parentInjector, tDetails, providers) {
10771
- return parentInjector.get(CachedInjectorService).getOrCreateInjector(tDetails, parentInjector, providers, ngDevMode ? 'DeferBlock Injector' : '');
10772
- }
10773
- function createDeferBlockInjector(parentInjector, tDetails, providers) {
10774
- if (parentInjector instanceof ChainedInjector) {
10775
- const origInjector = parentInjector.injector;
10776
- const parentEnvInjector = parentInjector.parentInjector;
10777
- const envInjector = getOrCreateEnvironmentInjector(parentEnvInjector, tDetails, providers);
10778
- return new ChainedInjector(origInjector, envInjector);
10779
- }
10780
- const parentEnvInjector = parentInjector.get(EnvironmentInjector);
10781
- if (parentEnvInjector !== parentInjector) {
10782
- const envInjector = getOrCreateEnvironmentInjector(parentEnvInjector, tDetails, providers);
10783
- return new ChainedInjector(parentInjector, envInjector);
10784
- }
10785
- return getOrCreateEnvironmentInjector(parentInjector, tDetails, providers);
10786
- }
10787
- function renderDeferBlockState(newState, tNode, lContainer, skipTimerScheduling = false) {
10788
- const hostLView = lContainer[PARENT];
10789
- const hostTView = hostLView[TVIEW];
10790
- if (isDestroyed(hostLView)) return;
10791
- ngDevMode && assertTNodeForLView(tNode, hostLView);
10792
- const lDetails = getLDeferBlockDetails(hostLView, tNode);
10793
- ngDevMode && assertDefined(lDetails, 'Expected a defer block state defined');
10794
- const currentState = lDetails[DEFER_BLOCK_STATE];
10795
- const ssrState = lDetails[SSR_BLOCK_STATE];
10796
- if (ssrState !== null && newState < ssrState) {
10797
- return;
10798
- }
10799
- if (isValidStateChange(currentState, newState) && isValidStateChange(lDetails[NEXT_DEFER_BLOCK_STATE] ?? -1, newState)) {
10800
- const tDetails = getTDeferBlockDetails(hostTView, tNode);
10801
- const needsScheduling = !skipTimerScheduling && (typeof ngServerMode === 'undefined' || !ngServerMode) && (getLoadingBlockAfter(tDetails) !== null || getMinimumDurationForState(tDetails, DeferBlockState.Loading) !== null || getMinimumDurationForState(tDetails, DeferBlockState.Placeholder));
10802
- if (ngDevMode && needsScheduling) {
10803
- assertDefined(applyDeferBlockStateWithSchedulingImpl, 'Expected scheduling function to be defined');
10804
- }
10805
- const applyStateFn = needsScheduling ? applyDeferBlockStateWithSchedulingImpl : applyDeferBlockState;
10806
- try {
10807
- applyStateFn(newState, lDetails, lContainer, tNode, hostLView);
10808
- } catch (error) {
10809
- handleUncaughtError(hostLView, error);
10810
- }
10811
- }
10812
- }
10813
- function findMatchingDehydratedViewForDeferBlock(lContainer, lDetails) {
10814
- const dehydratedViewIx = lContainer[DEHYDRATED_VIEWS]?.findIndex(view => view.data[DEFER_BLOCK_STATE$1] === lDetails[DEFER_BLOCK_STATE]) ?? -1;
10815
- const dehydratedView = dehydratedViewIx > -1 ? lContainer[DEHYDRATED_VIEWS][dehydratedViewIx] : null;
10816
- return {
10817
- dehydratedView,
10818
- dehydratedViewIx
10819
- };
10820
- }
10821
- function applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView) {
10822
- profiler(ProfilerEvent.DeferBlockStateStart);
10823
- const stateTmplIndex = getTemplateIndexForState(newState, hostLView, tNode);
10824
- if (stateTmplIndex !== null) {
10825
- lDetails[DEFER_BLOCK_STATE] = newState;
10826
- const hostTView = hostLView[TVIEW];
10827
- const adjustedIndex = stateTmplIndex + HEADER_OFFSET;
10828
- const activeBlockTNode = getTNode(hostTView, adjustedIndex);
10829
- const viewIndex = 0;
10830
- removeLViewFromLContainer(lContainer, viewIndex);
10831
- let injector;
10832
- if (newState === DeferBlockState.Complete) {
10833
- const tDetails = getTDeferBlockDetails(hostTView, tNode);
10834
- const providers = tDetails.providers;
10835
- if (providers && providers.length > 0) {
10836
- injector = createDeferBlockInjector(hostLView[INJECTOR], tDetails, providers);
10837
- }
10838
- }
10839
- const {
10840
- dehydratedView,
10841
- dehydratedViewIx
10842
- } = findMatchingDehydratedViewForDeferBlock(lContainer, lDetails);
10843
- const embeddedLView = createAndRenderEmbeddedLView(hostLView, activeBlockTNode, null, {
10844
- injector,
10845
- dehydratedView
10846
- });
10847
- addLViewToLContainer(lContainer, embeddedLView, viewIndex, shouldAddViewToDom(activeBlockTNode, dehydratedView));
10848
- markViewDirty(embeddedLView, 2);
10849
- if (dehydratedViewIx > -1) {
10850
- lContainer[DEHYDRATED_VIEWS]?.splice(dehydratedViewIx, 1);
10851
- }
10852
- if ((newState === DeferBlockState.Complete || newState === DeferBlockState.Error) && Array.isArray(lDetails[ON_COMPLETE_FNS])) {
10853
- for (const callback of lDetails[ON_COMPLETE_FNS]) {
10854
- callback();
10855
- }
10856
- lDetails[ON_COMPLETE_FNS] = null;
10857
- }
10858
- }
10859
- profiler(ProfilerEvent.DeferBlockStateEnd);
10860
- }
10861
- function applyDeferBlockStateWithScheduling(newState, lDetails, lContainer, tNode, hostLView) {
10862
- const now = Date.now();
10863
- const hostTView = hostLView[TVIEW];
10864
- const tDetails = getTDeferBlockDetails(hostTView, tNode);
10865
- if (lDetails[STATE_IS_FROZEN_UNTIL] === null || lDetails[STATE_IS_FROZEN_UNTIL] <= now) {
10866
- lDetails[STATE_IS_FROZEN_UNTIL] = null;
10867
- const loadingAfter = getLoadingBlockAfter(tDetails);
10868
- const inLoadingAfterPhase = lDetails[LOADING_AFTER_CLEANUP_FN] !== null;
10869
- if (newState === DeferBlockState.Loading && loadingAfter !== null && !inLoadingAfterPhase) {
10870
- lDetails[NEXT_DEFER_BLOCK_STATE] = newState;
10871
- const cleanupFn = scheduleDeferBlockUpdate(loadingAfter, lDetails, tNode, lContainer, hostLView);
10872
- lDetails[LOADING_AFTER_CLEANUP_FN] = cleanupFn;
10873
- } else {
10874
- if (newState > DeferBlockState.Loading && inLoadingAfterPhase) {
10875
- lDetails[LOADING_AFTER_CLEANUP_FN]();
10876
- lDetails[LOADING_AFTER_CLEANUP_FN] = null;
10877
- lDetails[NEXT_DEFER_BLOCK_STATE] = null;
10878
- }
10879
- applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView);
10880
- const duration = getMinimumDurationForState(tDetails, newState);
10881
- if (duration !== null) {
10882
- lDetails[STATE_IS_FROZEN_UNTIL] = now + duration;
10883
- scheduleDeferBlockUpdate(duration, lDetails, tNode, lContainer, hostLView);
10884
- }
10885
- }
10886
- } else {
10887
- lDetails[NEXT_DEFER_BLOCK_STATE] = newState;
10888
- }
10889
- }
10890
- function scheduleDeferBlockUpdate(timeout, lDetails, tNode, lContainer, hostLView) {
10891
- const callback = () => {
10892
- const nextState = lDetails[NEXT_DEFER_BLOCK_STATE];
10893
- lDetails[STATE_IS_FROZEN_UNTIL] = null;
10894
- lDetails[NEXT_DEFER_BLOCK_STATE] = null;
10895
- if (nextState !== null) {
10896
- renderDeferBlockState(nextState, tNode, lContainer);
10897
- }
10898
- };
10899
- return scheduleTimerTrigger(timeout, callback, hostLView[INJECTOR]);
10900
- }
10901
- function isValidStateChange(currentState, newState) {
10902
- return currentState < newState;
10903
- }
10904
- function renderPlaceholder(lView, tNode) {
10905
- const lContainer = lView[tNode.index];
10906
- ngDevMode && assertLContainer(lContainer);
10907
- renderDeferBlockState(DeferBlockState.Placeholder, tNode, lContainer);
10908
- }
10909
- function renderDeferStateAfterResourceLoading(tDetails, tNode, lContainer) {
10910
- ngDevMode && assertDefined(tDetails.loadingPromise, 'Expected loading Promise to exist on this defer block');
10911
- tDetails.loadingPromise.then(() => {
10912
- if (tDetails.loadingState === DeferDependenciesLoadingState.COMPLETE) {
10913
- ngDevMode && assertDeferredDependenciesLoaded(tDetails);
10914
- renderDeferBlockState(DeferBlockState.Complete, tNode, lContainer);
10915
- } else if (tDetails.loadingState === DeferDependenciesLoadingState.FAILED) {
10916
- renderDeferBlockState(DeferBlockState.Error, tNode, lContainer);
10917
- }
10918
- });
10535
+ const _requestIdleCallback = () => (typeof requestIdleCallback !== 'undefined' ? requestIdleCallback : cb => setTimeout(cb)).bind(globalThis);
10536
+ const _cancelIdleCallback = () => (typeof requestIdleCallback !== 'undefined' ? cancelIdleCallback : clearTimeout).bind(globalThis);
10537
+ const IDLE_SERVICE = new InjectionToken(ngDevMode ? 'IDLE_SERVICE' : '', {
10538
+ providedIn: 'root',
10539
+ factory: () => new RequestIdleCallbackService()
10540
+ });
10541
+ function provideIdleServiceWith(useExisting) {
10542
+ return makeEnvironmentProviders([{
10543
+ provide: IDLE_SERVICE,
10544
+ useExisting
10545
+ }]);
10919
10546
  }
10920
- let applyDeferBlockStateWithSchedulingImpl = null;
10921
- function ɵɵdeferEnableTimerScheduling(tView, tDetails, placeholderConfigIndex, loadingConfigIndex) {
10922
- const tViewConsts = tView.consts;
10923
- if (placeholderConfigIndex != null) {
10924
- tDetails.placeholderBlockConfig = getConstant(tViewConsts, placeholderConfigIndex);
10925
- }
10926
- if (loadingConfigIndex != null) {
10927
- tDetails.loadingBlockConfig = getConstant(tViewConsts, loadingConfigIndex);
10547
+ class RequestIdleCallbackService {
10548
+ requestIdleCallback = _requestIdleCallback();
10549
+ cancelIdleCallback = _cancelIdleCallback();
10550
+ requestOnIdle(callback, options) {
10551
+ return this.requestIdleCallback(callback, options);
10928
10552
  }
10929
- if (applyDeferBlockStateWithSchedulingImpl === null) {
10930
- applyDeferBlockStateWithSchedulingImpl = applyDeferBlockStateWithScheduling;
10553
+ cancelOnIdle(id) {
10554
+ return this.cancelIdleCallback(id);
10931
10555
  }
10932
10556
  }
10933
10557
 
@@ -12426,86 +12050,505 @@ class ApplicationRef {
12426
12050
  this.dirtyFlags &= ~7;
12427
12051
  }
12428
12052
  }
12429
- attachView(viewRef) {
12430
- (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
12431
- const view = viewRef;
12432
- this._views.push(view);
12433
- view.attachToAppRef(this);
12434
- }
12435
- detachView(viewRef) {
12436
- (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
12437
- const view = viewRef;
12438
- remove(this._views, view);
12439
- view.detachFromAppRef();
12053
+ attachView(viewRef) {
12054
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
12055
+ const view = viewRef;
12056
+ this._views.push(view);
12057
+ view.attachToAppRef(this);
12058
+ }
12059
+ detachView(viewRef) {
12060
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
12061
+ const view = viewRef;
12062
+ remove(this._views, view);
12063
+ view.detachFromAppRef();
12064
+ }
12065
+ _loadComponent(componentRef) {
12066
+ this.attachView(componentRef.hostView);
12067
+ try {
12068
+ this.tick();
12069
+ } catch (e) {
12070
+ this.internalErrorHandler(e);
12071
+ }
12072
+ this.components.push(componentRef);
12073
+ const listeners = this._injector.get(APP_BOOTSTRAP_LISTENER, []);
12074
+ if (ngDevMode && !Array.isArray(listeners)) {
12075
+ throw new RuntimeError(-209, 'Unexpected type of the `APP_BOOTSTRAP_LISTENER` token value ' + `(expected an array, but got ${typeof listeners}). ` + 'Please check that the `APP_BOOTSTRAP_LISTENER` token is configured as a ' + '`multi: true` provider.');
12076
+ }
12077
+ listeners.forEach(listener => listener(componentRef));
12078
+ }
12079
+ ngOnDestroy() {
12080
+ if (this._destroyed) return;
12081
+ try {
12082
+ this._destroyListeners.forEach(listener => listener());
12083
+ this._views.slice().forEach(view => view.destroy());
12084
+ } finally {
12085
+ this._destroyed = true;
12086
+ this._views = [];
12087
+ this._destroyListeners = [];
12088
+ }
12089
+ }
12090
+ onDestroy(callback) {
12091
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
12092
+ this._destroyListeners.push(callback);
12093
+ return () => remove(this._destroyListeners, callback);
12094
+ }
12095
+ destroy() {
12096
+ if (this._destroyed) {
12097
+ throw new RuntimeError(406, ngDevMode && 'This instance of the `ApplicationRef` has already been destroyed.');
12098
+ }
12099
+ const injector = this._injector;
12100
+ if (injector.destroy && !injector.destroyed) {
12101
+ injector.destroy();
12102
+ }
12103
+ }
12104
+ get viewCount() {
12105
+ return this._views.length;
12106
+ }
12107
+ static ɵfac = function ApplicationRef_Factory(__ngFactoryType__) {
12108
+ return new (__ngFactoryType__ || ApplicationRef)();
12109
+ };
12110
+ static ɵprov = /*@__PURE__*/__defineInjectable({
12111
+ token: ApplicationRef,
12112
+ factory: ApplicationRef.ɵfac,
12113
+ providedIn: 'root'
12114
+ });
12115
+ }
12116
+ (() => {
12117
+ (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationRef, [{
12118
+ type: Injectable,
12119
+ args: [{
12120
+ providedIn: 'root'
12121
+ }]
12122
+ }], () => [], null);
12123
+ })();
12124
+ function warnIfDestroyed(destroyed) {
12125
+ if (destroyed) {
12126
+ console.warn(formatRuntimeError(406, 'This instance of the `ApplicationRef` has already been destroyed.'));
12127
+ }
12128
+ }
12129
+ function remove(list, el) {
12130
+ const index = list.indexOf(el);
12131
+ if (index > -1) {
12132
+ list.splice(index, 1);
12133
+ }
12134
+ }
12135
+
12136
+ function onIdle(callback, injector, options) {
12137
+ const scheduler = injector.get(IdleScheduler);
12138
+ const cleanupFn = () => scheduler.remove(callback);
12139
+ scheduler.add(callback, options);
12140
+ return cleanupFn;
12141
+ }
12142
+ function onIdleWrapper(options) {
12143
+ return (callback, injector) => onIdle(callback, injector, options);
12144
+ }
12145
+ class IdleScheduler {
12146
+ buckets = new Map();
12147
+ callbackBucket = new Map();
12148
+ applicationRef = inject(ApplicationRef);
12149
+ ngZone = inject(NgZone);
12150
+ idleService = inject(IDLE_SERVICE);
12151
+ add(callback, options) {
12152
+ const key = getIdleRequestKey(options);
12153
+ this.callbackBucket.set(callback, key);
12154
+ let bucket = this.buckets.get(key);
12155
+ if (bucket == null) {
12156
+ bucket = {
12157
+ idleId: null,
12158
+ queue: new Set()
12159
+ };
12160
+ this.buckets.set(key, bucket);
12161
+ }
12162
+ bucket.queue.add(callback);
12163
+ this.scheduleBucket(bucket, options);
12164
+ }
12165
+ remove(callback) {
12166
+ const key = this.callbackBucket.get(callback);
12167
+ if (key === undefined) return;
12168
+ this.callbackBucket.delete(callback);
12169
+ const bucket = this.buckets.get(key);
12170
+ if (!bucket) return;
12171
+ bucket.queue.delete(callback);
12172
+ if (bucket.queue.size === 0) {
12173
+ this.cancelBucket(bucket);
12174
+ this.buckets.delete(key);
12175
+ }
12176
+ }
12177
+ scheduleBucket(bucket, options) {
12178
+ if (bucket.idleId !== null) {
12179
+ return;
12180
+ }
12181
+ const key = getIdleRequestKey(options);
12182
+ const callback = deadline => {
12183
+ this.cancelBucket(bucket);
12184
+ for (const cb of bucket.queue) {
12185
+ cb();
12186
+ this.applicationRef._tick();
12187
+ bucket.queue.delete(cb);
12188
+ this.callbackBucket.delete(cb);
12189
+ if (deadline && deadline.timeRemaining() === 0 && !deadline.didTimeout) {
12190
+ break;
12191
+ }
12192
+ }
12193
+ if (bucket.queue.size > 0) {
12194
+ this.scheduleBucket(bucket, options);
12195
+ } else {
12196
+ this.buckets.delete(key);
12197
+ }
12198
+ };
12199
+ bucket.idleId = this.idleService.requestOnIdle(deadline => this.ngZone.run(() => callback(deadline)), options);
12200
+ }
12201
+ cancelBucket(bucket) {
12202
+ if (bucket.idleId !== null) {
12203
+ this.idleService.cancelOnIdle(bucket.idleId);
12204
+ bucket.idleId = null;
12205
+ }
12206
+ }
12207
+ ngOnDestroy() {
12208
+ for (const bucket of this.buckets.values()) {
12209
+ this.cancelBucket(bucket);
12210
+ }
12211
+ this.buckets.clear();
12212
+ this.callbackBucket.clear();
12213
+ }
12214
+ static ɵprov =
12215
+ /* @__PURE__ */
12216
+ __defineInjectable({
12217
+ token: IdleScheduler,
12218
+ providedIn: 'root',
12219
+ factory: () => new IdleScheduler()
12220
+ });
12221
+ }
12222
+ function getIdleRequestKey(options) {
12223
+ if (!options || options.timeout == null) {
12224
+ return '';
12225
+ }
12226
+ return `${options.timeout}`;
12227
+ }
12228
+
12229
+ function onTimer(delay) {
12230
+ return (callback, injector) => scheduleTimerTrigger(delay, callback, injector);
12231
+ }
12232
+ function scheduleTimerTrigger(delay, callback, injector) {
12233
+ const scheduler = injector.get(TimerScheduler);
12234
+ const ngZone = injector.get(NgZone);
12235
+ const cleanupFn = () => scheduler.remove(callback);
12236
+ scheduler.add(delay, callback, ngZone);
12237
+ return cleanupFn;
12238
+ }
12239
+ class TimerScheduler {
12240
+ executingCallbacks = false;
12241
+ timeoutId = null;
12242
+ invokeTimerAt = null;
12243
+ current = [];
12244
+ deferred = [];
12245
+ add(delay, callback, ngZone) {
12246
+ const target = this.executingCallbacks ? this.deferred : this.current;
12247
+ this.addToQueue(target, Date.now() + delay, callback);
12248
+ this.scheduleTimer(ngZone);
12249
+ }
12250
+ remove(callback) {
12251
+ const {
12252
+ current,
12253
+ deferred
12254
+ } = this;
12255
+ const callbackIndex = this.removeFromQueue(current, callback);
12256
+ if (callbackIndex === -1) {
12257
+ this.removeFromQueue(deferred, callback);
12258
+ }
12259
+ if (current.length === 0 && deferred.length === 0) {
12260
+ this.clearTimeout();
12261
+ }
12262
+ }
12263
+ addToQueue(target, invokeAt, callback) {
12264
+ let insertAtIndex = target.length;
12265
+ for (let i = 0; i < target.length; i += 2) {
12266
+ const invokeQueuedCallbackAt = target[i];
12267
+ if (invokeQueuedCallbackAt > invokeAt) {
12268
+ insertAtIndex = i;
12269
+ break;
12270
+ }
12271
+ }
12272
+ arrayInsert2(target, insertAtIndex, invokeAt, callback);
12273
+ }
12274
+ removeFromQueue(target, callback) {
12275
+ let index = -1;
12276
+ for (let i = 0; i < target.length; i += 2) {
12277
+ const queuedCallback = target[i + 1];
12278
+ if (queuedCallback === callback) {
12279
+ index = i;
12280
+ break;
12281
+ }
12282
+ }
12283
+ if (index > -1) {
12284
+ arraySplice(target, index, 2);
12285
+ }
12286
+ return index;
12287
+ }
12288
+ scheduleTimer(ngZone) {
12289
+ const callback = () => {
12290
+ this.clearTimeout();
12291
+ this.executingCallbacks = true;
12292
+ const current = [...this.current];
12293
+ const now = Date.now();
12294
+ for (let i = 0; i < current.length; i += 2) {
12295
+ const invokeAt = current[i];
12296
+ const callback = current[i + 1];
12297
+ if (invokeAt <= now) {
12298
+ callback();
12299
+ } else {
12300
+ break;
12301
+ }
12302
+ }
12303
+ let lastCallbackIndex = -1;
12304
+ for (let i = 0; i < this.current.length; i += 2) {
12305
+ const invokeAt = this.current[i];
12306
+ if (invokeAt <= now) {
12307
+ lastCallbackIndex = i + 1;
12308
+ } else {
12309
+ break;
12310
+ }
12311
+ }
12312
+ if (lastCallbackIndex >= 0) {
12313
+ arraySplice(this.current, 0, lastCallbackIndex + 1);
12314
+ }
12315
+ this.executingCallbacks = false;
12316
+ if (this.deferred.length > 0) {
12317
+ for (let i = 0; i < this.deferred.length; i += 2) {
12318
+ const invokeAt = this.deferred[i];
12319
+ const callback = this.deferred[i + 1];
12320
+ this.addToQueue(this.current, invokeAt, callback);
12321
+ }
12322
+ this.deferred.length = 0;
12323
+ }
12324
+ this.scheduleTimer(ngZone);
12325
+ };
12326
+ const FRAME_DURATION_MS = 16;
12327
+ if (this.current.length > 0) {
12328
+ const now = Date.now();
12329
+ const invokeAt = this.current[0];
12330
+ if (this.timeoutId === null || this.invokeTimerAt && this.invokeTimerAt - invokeAt > FRAME_DURATION_MS) {
12331
+ this.clearTimeout();
12332
+ const timeout = Math.max(invokeAt - now, FRAME_DURATION_MS);
12333
+ this.invokeTimerAt = invokeAt;
12334
+ this.timeoutId = ngZone.runOutsideAngular(() => {
12335
+ return setTimeout(() => ngZone.run(callback), timeout);
12336
+ });
12337
+ }
12338
+ }
12339
+ }
12340
+ clearTimeout() {
12341
+ if (this.timeoutId !== null) {
12342
+ clearTimeout(this.timeoutId);
12343
+ this.timeoutId = null;
12344
+ }
12345
+ }
12346
+ ngOnDestroy() {
12347
+ this.clearTimeout();
12348
+ this.current.length = 0;
12349
+ this.deferred.length = 0;
12440
12350
  }
12441
- _loadComponent(componentRef) {
12442
- this.attachView(componentRef.hostView);
12443
- try {
12444
- this.tick();
12445
- } catch (e) {
12446
- this.internalErrorHandler(e);
12447
- }
12448
- this.components.push(componentRef);
12449
- const listeners = this._injector.get(APP_BOOTSTRAP_LISTENER, []);
12450
- if (ngDevMode && !Array.isArray(listeners)) {
12451
- throw new RuntimeError(-209, 'Unexpected type of the `APP_BOOTSTRAP_LISTENER` token value ' + `(expected an array, but got ${typeof listeners}). ` + 'Please check that the `APP_BOOTSTRAP_LISTENER` token is configured as a ' + '`multi: true` provider.');
12351
+ static ɵprov =
12352
+ /* @__PURE__ */
12353
+ __defineInjectable({
12354
+ token: TimerScheduler,
12355
+ providedIn: 'root',
12356
+ factory: () => new TimerScheduler()
12357
+ });
12358
+ }
12359
+
12360
+ class CachedInjectorService {
12361
+ cachedInjectors = new Map();
12362
+ getOrCreateInjector(key, parentInjector, providers, debugName) {
12363
+ if (!this.cachedInjectors.has(key)) {
12364
+ const injector = providers.length > 0 ? createEnvironmentInjector(providers, parentInjector, debugName) : null;
12365
+ this.cachedInjectors.set(key, injector);
12452
12366
  }
12453
- listeners.forEach(listener => listener(componentRef));
12367
+ return this.cachedInjectors.get(key);
12454
12368
  }
12455
12369
  ngOnDestroy() {
12456
- if (this._destroyed) return;
12457
12370
  try {
12458
- this._destroyListeners.forEach(listener => listener());
12459
- this._views.slice().forEach(view => view.destroy());
12371
+ for (const injector of this.cachedInjectors.values()) {
12372
+ if (injector !== null) {
12373
+ injector.destroy();
12374
+ }
12375
+ }
12460
12376
  } finally {
12461
- this._destroyed = true;
12462
- this._views = [];
12463
- this._destroyListeners = [];
12377
+ this.cachedInjectors.clear();
12464
12378
  }
12465
12379
  }
12466
- onDestroy(callback) {
12467
- (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
12468
- this._destroyListeners.push(callback);
12469
- return () => remove(this._destroyListeners, callback);
12380
+ static ɵprov =
12381
+ /* @__PURE__ */
12382
+ __defineInjectable({
12383
+ token: CachedInjectorService,
12384
+ providedIn: 'environment',
12385
+ factory: () => new CachedInjectorService()
12386
+ });
12387
+ }
12388
+
12389
+ const DEFER_BLOCK_DEPENDENCY_INTERCEPTOR = /* @__PURE__ */new InjectionToken('DEFER_BLOCK_DEPENDENCY_INTERCEPTOR');
12390
+ const DEFER_BLOCK_CONFIG = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'DEFER_BLOCK_CONFIG' : '');
12391
+ function getOrCreateEnvironmentInjector(parentInjector, tDetails, providers) {
12392
+ return parentInjector.get(CachedInjectorService).getOrCreateInjector(tDetails, parentInjector, providers, ngDevMode ? 'DeferBlock Injector' : '');
12393
+ }
12394
+ function createDeferBlockInjector(parentInjector, tDetails, providers) {
12395
+ if (parentInjector instanceof ChainedInjector) {
12396
+ const origInjector = parentInjector.injector;
12397
+ const parentEnvInjector = parentInjector.parentInjector;
12398
+ const envInjector = getOrCreateEnvironmentInjector(parentEnvInjector, tDetails, providers);
12399
+ return new ChainedInjector(origInjector, envInjector);
12470
12400
  }
12471
- destroy() {
12472
- if (this._destroyed) {
12473
- throw new RuntimeError(406, ngDevMode && 'This instance of the `ApplicationRef` has already been destroyed.');
12401
+ const parentEnvInjector = parentInjector.get(EnvironmentInjector);
12402
+ if (parentEnvInjector !== parentInjector) {
12403
+ const envInjector = getOrCreateEnvironmentInjector(parentEnvInjector, tDetails, providers);
12404
+ return new ChainedInjector(parentInjector, envInjector);
12405
+ }
12406
+ return getOrCreateEnvironmentInjector(parentInjector, tDetails, providers);
12407
+ }
12408
+ function renderDeferBlockState(newState, tNode, lContainer, skipTimerScheduling = false) {
12409
+ const hostLView = lContainer[PARENT];
12410
+ const hostTView = hostLView[TVIEW];
12411
+ if (isDestroyed(hostLView)) return;
12412
+ ngDevMode && assertTNodeForLView(tNode, hostLView);
12413
+ const lDetails = getLDeferBlockDetails(hostLView, tNode);
12414
+ ngDevMode && assertDefined(lDetails, 'Expected a defer block state defined');
12415
+ const currentState = lDetails[DEFER_BLOCK_STATE];
12416
+ const ssrState = lDetails[SSR_BLOCK_STATE];
12417
+ if (ssrState !== null && newState < ssrState) {
12418
+ return;
12419
+ }
12420
+ if (isValidStateChange(currentState, newState) && isValidStateChange(lDetails[NEXT_DEFER_BLOCK_STATE] ?? -1, newState)) {
12421
+ const tDetails = getTDeferBlockDetails(hostTView, tNode);
12422
+ const needsScheduling = !skipTimerScheduling && (typeof ngServerMode === 'undefined' || !ngServerMode) && (getLoadingBlockAfter(tDetails) !== null || getMinimumDurationForState(tDetails, DeferBlockState.Loading) !== null || getMinimumDurationForState(tDetails, DeferBlockState.Placeholder));
12423
+ if (ngDevMode && needsScheduling) {
12424
+ assertDefined(applyDeferBlockStateWithSchedulingImpl, 'Expected scheduling function to be defined');
12474
12425
  }
12475
- const injector = this._injector;
12476
- if (injector.destroy && !injector.destroyed) {
12477
- injector.destroy();
12426
+ const applyStateFn = needsScheduling ? applyDeferBlockStateWithSchedulingImpl : applyDeferBlockState;
12427
+ try {
12428
+ applyStateFn(newState, lDetails, lContainer, tNode, hostLView);
12429
+ } catch (error) {
12430
+ handleUncaughtError(hostLView, error);
12478
12431
  }
12479
12432
  }
12480
- get viewCount() {
12481
- return this._views.length;
12433
+ }
12434
+ function findMatchingDehydratedViewForDeferBlock(lContainer, lDetails) {
12435
+ const dehydratedViewIx = lContainer[DEHYDRATED_VIEWS]?.findIndex(view => view.data[DEFER_BLOCK_STATE$1] === lDetails[DEFER_BLOCK_STATE]) ?? -1;
12436
+ const dehydratedView = dehydratedViewIx > -1 ? lContainer[DEHYDRATED_VIEWS][dehydratedViewIx] : null;
12437
+ return {
12438
+ dehydratedView,
12439
+ dehydratedViewIx
12440
+ };
12441
+ }
12442
+ function applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView) {
12443
+ profiler(ProfilerEvent.DeferBlockStateStart);
12444
+ const stateTmplIndex = getTemplateIndexForState(newState, hostLView, tNode);
12445
+ if (stateTmplIndex !== null) {
12446
+ lDetails[DEFER_BLOCK_STATE] = newState;
12447
+ const hostTView = hostLView[TVIEW];
12448
+ const adjustedIndex = stateTmplIndex + HEADER_OFFSET;
12449
+ const activeBlockTNode = getTNode(hostTView, adjustedIndex);
12450
+ const viewIndex = 0;
12451
+ removeLViewFromLContainer(lContainer, viewIndex);
12452
+ let injector;
12453
+ if (newState === DeferBlockState.Complete) {
12454
+ const tDetails = getTDeferBlockDetails(hostTView, tNode);
12455
+ const providers = tDetails.providers;
12456
+ if (providers && providers.length > 0) {
12457
+ injector = createDeferBlockInjector(hostLView[INJECTOR], tDetails, providers);
12458
+ }
12459
+ }
12460
+ const {
12461
+ dehydratedView,
12462
+ dehydratedViewIx
12463
+ } = findMatchingDehydratedViewForDeferBlock(lContainer, lDetails);
12464
+ const embeddedLView = createAndRenderEmbeddedLView(hostLView, activeBlockTNode, null, {
12465
+ injector,
12466
+ dehydratedView
12467
+ });
12468
+ addLViewToLContainer(lContainer, embeddedLView, viewIndex, shouldAddViewToDom(activeBlockTNode, dehydratedView));
12469
+ markViewForRefresh(embeddedLView);
12470
+ if (dehydratedViewIx > -1) {
12471
+ lContainer[DEHYDRATED_VIEWS]?.splice(dehydratedViewIx, 1);
12472
+ }
12473
+ if ((newState === DeferBlockState.Complete || newState === DeferBlockState.Error) && Array.isArray(lDetails[ON_COMPLETE_FNS])) {
12474
+ for (const callback of lDetails[ON_COMPLETE_FNS]) {
12475
+ callback();
12476
+ }
12477
+ lDetails[ON_COMPLETE_FNS] = null;
12478
+ }
12482
12479
  }
12483
- static ɵfac = function ApplicationRef_Factory(__ngFactoryType__) {
12484
- return new (__ngFactoryType__ || ApplicationRef)();
12480
+ profiler(ProfilerEvent.DeferBlockStateEnd);
12481
+ }
12482
+ function applyDeferBlockStateWithScheduling(newState, lDetails, lContainer, tNode, hostLView) {
12483
+ const now = Date.now();
12484
+ const hostTView = hostLView[TVIEW];
12485
+ const tDetails = getTDeferBlockDetails(hostTView, tNode);
12486
+ if (lDetails[STATE_IS_FROZEN_UNTIL] === null || lDetails[STATE_IS_FROZEN_UNTIL] <= now) {
12487
+ lDetails[STATE_IS_FROZEN_UNTIL] = null;
12488
+ const loadingAfter = getLoadingBlockAfter(tDetails);
12489
+ const inLoadingAfterPhase = lDetails[LOADING_AFTER_CLEANUP_FN] !== null;
12490
+ if (newState === DeferBlockState.Loading && loadingAfter !== null && !inLoadingAfterPhase) {
12491
+ lDetails[NEXT_DEFER_BLOCK_STATE] = newState;
12492
+ const cleanupFn = scheduleDeferBlockUpdate(loadingAfter, lDetails, tNode, lContainer, hostLView);
12493
+ lDetails[LOADING_AFTER_CLEANUP_FN] = cleanupFn;
12494
+ } else {
12495
+ if (newState > DeferBlockState.Loading && inLoadingAfterPhase) {
12496
+ lDetails[LOADING_AFTER_CLEANUP_FN]();
12497
+ lDetails[LOADING_AFTER_CLEANUP_FN] = null;
12498
+ lDetails[NEXT_DEFER_BLOCK_STATE] = null;
12499
+ }
12500
+ applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView);
12501
+ const duration = getMinimumDurationForState(tDetails, newState);
12502
+ if (duration !== null) {
12503
+ lDetails[STATE_IS_FROZEN_UNTIL] = now + duration;
12504
+ scheduleDeferBlockUpdate(duration, lDetails, tNode, lContainer, hostLView);
12505
+ }
12506
+ }
12507
+ } else {
12508
+ lDetails[NEXT_DEFER_BLOCK_STATE] = newState;
12509
+ }
12510
+ }
12511
+ function scheduleDeferBlockUpdate(timeout, lDetails, tNode, lContainer, hostLView) {
12512
+ const callback = () => {
12513
+ const nextState = lDetails[NEXT_DEFER_BLOCK_STATE];
12514
+ lDetails[STATE_IS_FROZEN_UNTIL] = null;
12515
+ lDetails[NEXT_DEFER_BLOCK_STATE] = null;
12516
+ if (nextState !== null) {
12517
+ renderDeferBlockState(nextState, tNode, lContainer);
12518
+ }
12485
12519
  };
12486
- static ɵprov = /*@__PURE__*/__defineInjectable({
12487
- token: ApplicationRef,
12488
- factory: ApplicationRef.ɵfac,
12489
- providedIn: 'root'
12520
+ return scheduleTimerTrigger(timeout, callback, hostLView[INJECTOR]);
12521
+ }
12522
+ function isValidStateChange(currentState, newState) {
12523
+ return currentState < newState;
12524
+ }
12525
+ function renderPlaceholder(lView, tNode) {
12526
+ const lContainer = lView[tNode.index];
12527
+ ngDevMode && assertLContainer(lContainer);
12528
+ renderDeferBlockState(DeferBlockState.Placeholder, tNode, lContainer);
12529
+ }
12530
+ function renderDeferStateAfterResourceLoading(tDetails, tNode, lContainer) {
12531
+ ngDevMode && assertDefined(tDetails.loadingPromise, 'Expected loading Promise to exist on this defer block');
12532
+ tDetails.loadingPromise.then(() => {
12533
+ if (tDetails.loadingState === DeferDependenciesLoadingState.COMPLETE) {
12534
+ ngDevMode && assertDeferredDependenciesLoaded(tDetails);
12535
+ renderDeferBlockState(DeferBlockState.Complete, tNode, lContainer);
12536
+ } else if (tDetails.loadingState === DeferDependenciesLoadingState.FAILED) {
12537
+ renderDeferBlockState(DeferBlockState.Error, tNode, lContainer);
12538
+ }
12490
12539
  });
12491
12540
  }
12492
- (() => {
12493
- (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationRef, [{
12494
- type: Injectable,
12495
- args: [{
12496
- providedIn: 'root'
12497
- }]
12498
- }], () => [], null);
12499
- })();
12500
- function warnIfDestroyed(destroyed) {
12501
- if (destroyed) {
12502
- console.warn(formatRuntimeError(406, 'This instance of the `ApplicationRef` has already been destroyed.'));
12541
+ let applyDeferBlockStateWithSchedulingImpl = null;
12542
+ function ɵɵdeferEnableTimerScheduling(tView, tDetails, placeholderConfigIndex, loadingConfigIndex) {
12543
+ const tViewConsts = tView.consts;
12544
+ if (placeholderConfigIndex != null) {
12545
+ tDetails.placeholderBlockConfig = getConstant(tViewConsts, placeholderConfigIndex);
12503
12546
  }
12504
- }
12505
- function remove(list, el) {
12506
- const index = list.indexOf(el);
12507
- if (index > -1) {
12508
- list.splice(index, 1);
12547
+ if (loadingConfigIndex != null) {
12548
+ tDetails.loadingBlockConfig = getConstant(tViewConsts, loadingConfigIndex);
12549
+ }
12550
+ if (applyDeferBlockStateWithSchedulingImpl === null) {
12551
+ applyDeferBlockStateWithSchedulingImpl = applyDeferBlockStateWithScheduling;
12509
12552
  }
12510
12553
  }
12511
12554
 
@@ -13047,29 +13090,36 @@ function ɵɵdeferHydrateNever() {
13047
13090
  triggerDeferBlock(2, lView, tNode);
13048
13091
  }
13049
13092
  }
13050
- function ɵɵdeferOnIdle() {
13093
+ function ɵɵdeferOnIdle(timeout) {
13051
13094
  const lView = getLView();
13052
13095
  const tNode = getCurrentTNode();
13053
13096
  if (ngDevMode) {
13054
- trackTriggerForDebugging(lView[TVIEW], tNode, 'on idle');
13097
+ const expression = timeout ? `on idle(${timeout})` : 'on idle';
13098
+ trackTriggerForDebugging(lView[TVIEW], tNode, expression);
13055
13099
  }
13056
13100
  if (!shouldAttachTrigger(0, lView, tNode)) return;
13057
- scheduleDelayedTrigger(onIdle);
13101
+ scheduleDelayedTrigger(onIdleWrapper({
13102
+ timeout
13103
+ }));
13058
13104
  }
13059
- function ɵɵdeferPrefetchOnIdle() {
13105
+ function ɵɵdeferPrefetchOnIdle(timeout) {
13060
13106
  const lView = getLView();
13061
13107
  const tNode = getCurrentTNode();
13062
13108
  if (ngDevMode) {
13063
- trackTriggerForDebugging(lView[TVIEW], tNode, 'prefetch on idle');
13109
+ const expression = timeout ? `prefetch on idle(${timeout})` : 'prefetch on idle';
13110
+ trackTriggerForDebugging(lView[TVIEW], tNode, expression);
13064
13111
  }
13065
13112
  if (!shouldAttachTrigger(1, lView, tNode)) return;
13066
- scheduleDelayedPrefetching(onIdle);
13113
+ scheduleDelayedPrefetching(onIdleWrapper({
13114
+ timeout
13115
+ }));
13067
13116
  }
13068
- function ɵɵdeferHydrateOnIdle() {
13117
+ function ɵɵdeferHydrateOnIdle(timeout) {
13069
13118
  const lView = getLView();
13070
13119
  const tNode = getCurrentTNode();
13071
13120
  if (ngDevMode) {
13072
- trackTriggerForDebugging(lView[TVIEW], tNode, 'hydrate on idle');
13121
+ const expression = timeout ? `hydrate on idle(${timeout})` : 'hydrate on idle';
13122
+ trackTriggerForDebugging(lView[TVIEW], tNode, expression);
13073
13123
  }
13074
13124
  if (!shouldAttachTrigger(2, lView, tNode)) return;
13075
13125
  const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
@@ -13077,7 +13127,9 @@ function ɵɵdeferHydrateOnIdle() {
13077
13127
  if (typeof ngServerMode !== 'undefined' && ngServerMode) {
13078
13128
  triggerDeferBlock(2, lView, tNode);
13079
13129
  } else {
13080
- scheduleDelayedHydrating(onIdle, lView, tNode);
13130
+ scheduleDelayedHydrating(onIdleWrapper({
13131
+ timeout
13132
+ }), lView, tNode);
13081
13133
  }
13082
13134
  }
13083
13135
  function ɵɵdeferOnImmediate() {
@@ -18113,12 +18165,12 @@ class ChangeDetectionSchedulerImpl {
18113
18165
  }
18114
18166
  switch (source) {
18115
18167
  case 0:
18168
+ case 2:
18116
18169
  {
18117
18170
  this.appRef.dirtyFlags |= 2;
18118
18171
  break;
18119
18172
  }
18120
18173
  case 3:
18121
- case 2:
18122
18174
  case 4:
18123
18175
  case 5:
18124
18176
  case 1:
@@ -18606,5 +18658,5 @@ function getDebugNode(nativeNode) {
18606
18658
  return null;
18607
18659
  }
18608
18660
 
18609
- export { AFTER_RENDER_PHASES, ANIMATIONS_DISABLED, ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AcxChangeDetectionStrategy, AcxViewEncapsulation, AfterRenderImpl, AfterRenderManager, AfterRenderSequence, ApplicationInitStatus, ApplicationRef, Attribute, COMPILER_OPTIONS, CONTAINERS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionSchedulerImpl, ChangeDetectionStrategy, Compiler, CompilerFactory, Component, ComponentFactory, ComponentFactory$1, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ComponentRef as ComponentRef$1, Console, DEFAULT_CURRENCY_CODE, DEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DEFER_BLOCK_ID, DEFER_BLOCK_SSR_ID_ATTRIBUTE, DEFER_BLOCK_STATE$1 as DEFER_BLOCK_STATE, DEFER_BLOCK_STATE as DEFER_BLOCK_STATE$1, DEFER_HYDRATE_TRIGGERS, DEFER_PARENT_BLOCK_ID, DEHYDRATED_BLOCK_REGISTRY, DISCONNECTED_NODES, DebugElement, DebugEventListener, DebugNode, DeferBlockBehavior, DeferBlockState, DehydratedBlockRegistry, Directive, ELEMENT_CONTAINERS, EVENT_REPLAY_ENABLED_DEFAULT, EVENT_REPLAY_QUEUE, ElementRef, EnvironmentNgModuleRefAdapter, Host, HostBinding, HostListener, HydrationStatus, I18N_DATA, IMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS, IS_ENABLED_BLOCKING_INITIAL_NAVIGATION, IS_EVENT_REPLAY_ENABLED, IS_HYDRATION_DOM_REUSE_ENABLED, IS_I18N_HYDRATION_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED, Inject, Injectable, Input, JSACTION_BLOCK_ELEMENT_MAP, JSACTION_EVENT_CONTRACT, LContext, LOCALE_ID, LocaleDataIndex, MAX_ANIMATION_TIMEOUT, MULTIPLIER, MissingTranslationStrategy, ModuleWithComponentFactories, NGH_ATTR_NAME, NGH_DATA_KEY, NGH_DEFER_BLOCKS_KEY, NODES, NOOP_AFTER_RENDER_REF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE, NO_ERRORS_SCHEMA, NUM_ROOT_NODES, NgModule, NgModuleFactory, NgModuleFactory$1, NgModuleRef, NgModuleRef$1, Optional, Output, PLATFORM_ID, PLATFORM_INITIALIZER, PRESERVE_HOST_CONTENT, Pipe, ProfilerEvent, QueryList, ReflectionCapabilities, Renderer2, RendererFactory2, RendererStyleFlags2, SKIP_HYDRATION_ATTR_NAME, SSR_CONTENT_INTEGRITY_MARKER, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TEMPLATES, TEMPLATE_ID, TESTABILITY, TESTABILITY_GETTER, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TimerScheduler, TracingAction, TracingService, TransferState, Type, UseExhaustiveCheckNoChanges, ViewContainerRef, ViewEncapsulation, ViewRef, _sanitizeHtml, _sanitizeUrl, afterEveryRender, afterNextRender, allLeavingAnimations, allowSanitizationBypassAndThrow, angularCoreEnv, appendDeferBlocksToJSActionMap, asNativeElements, assertComponentDef, assertStandaloneComponentType, bypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript, bypassSanitizationTrustStyle, bypassSanitizationTrustUrl, calcPathForNode, checkNoChangesInternal, cleanupDehydratedViews, clearResolutionOfComponentResourcesQueue, collectNativeNodes, collectNativeNodesInLContainer, compileComponent, compileDirective, compileNgModule, compileNgModuleDefs, compilePipe, convertHydrateTriggersToJsAction, countBlocksSkippedByHydration, createEnvironmentInjector, createMultiResultQuerySignalFn, createNgModule, createNgModuleRef, createNgModuleRefWithProviders, createSingleResultOptionalQuerySignalFn, createSingleResultRequiredQuerySignalFn, depsTracker, devModeEqual, enableApplyRootElementTransformImpl, enableClaimDehydratedIcuCaseImpl, enableFindMatchingDehydratedViewImpl, enableLocateOrCreateContainerAnchorImpl, enableLocateOrCreateContainerRefImpl, enableLocateOrCreateElementContainerNodeImpl, enableLocateOrCreateElementNodeImpl, enableLocateOrCreateI18nNodeImpl, enableLocateOrCreateTextNodeImpl, enablePrepareI18nBlockForHydrationImpl, enableProfiling, enableRetrieveDeferBlockDataImpl, enableRetrieveHydrationInfoImpl, enableStashEventListenerImpl, findLocaleData, flushModuleScopingQueueAsMuchAsPossible, gatherDeferBlocksCommentNodes, generateStandaloneInDeclarationsError, getAsyncClassMetadataFn, getCompilerFacade, getDebugNode, getDeferBlocks$1 as getDeferBlocks, getDirectives, getDocument, getHostElement, getLContext, getLDeferBlockDetails, getLNodeForHydration, getLocaleCurrencyCode, getLocalePluralCase, getOrComputeI18nChildren, getRegisteredNgModuleType, getSanitizationBypassType, getTDeferBlockDetails, getTransferState, inferTagNameFromDefinition, inputBinding, invokeListeners, isBoundToModule, isComponentDefPendingResolution, isComponentResourceResolutionQueueEmpty, isDeferBlock, isDetachedByI18n, isDisconnectedNode, isI18nHydrationEnabled, isI18nHydrationSupportEnabled, isInSkipHydrationBlock, isIncrementalHydrationEnabled, isJsObject, isLetDeclaration, isListLikeIterable, isNgModule, isPromise, isSignal, isSubscribable, isTNodeShape, isViewDirty, isWritableSignal, iterateListLike, makePropDecorator, makeStateKey, markForRefresh, noSideEffects, optionsReducer, outputBinding, patchComponentDefWithScope, performanceMarkFeature, processAndInitTriggers, processBlockData, processTextNodeBeforeSerialization, profiler, promiseWithResolvers, provideAppInitializer, provideNgReflectAttributes, provideZonelessChangeDetection, provideZonelessChangeDetectionInternal, publishDefaultGlobalUtils, publishExternalGlobalUtil, publishSignalConfiguration, readHydrationInfo, readPatchedLView, registerLocaleData, registerNgModuleType, remove, removeListeners, renderDeferBlockState, resetCompiledComponents, resetIncrementalHydrationEnabledWarnedForTests, resetJitOptions, resolveComponentResources, restoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest, setClassMetadata, setClassMetadataAsync, setDocument, setIsI18nHydrationSupportEnabled, setJSActionAttributes, setJitOptions, setLocaleId, setStashFn, setTestabilityGetter, sharedMapFunction, sharedStashFunction, transitiveScopesFor, triggerHydrationFromBlockName, triggerResourceLoading, trySerializeI18nBlock, twoWayBinding, unregisterAllLocaleData, unsupportedProjectionOfDomNodes, unwrapSafeValue, validAppIdInitializer, validateMatchingNode, validateNodeExists, verifySsrContentsIntegrity, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetClassDebugInfo, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, ɵɵControlFeature, ɵɵExternalStylesFeature, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵanimateEnter, ɵɵanimateEnterListener, ɵɵanimateLeave, ɵɵanimateLeaveListener, ɵɵariaProperty, ɵɵarrowFunction, ɵɵattachSourceLocations, ɵɵattribute, ɵɵclassMap, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵconditionalBranchCreate, ɵɵconditionalCreate, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵcontrol, ɵɵcontrolCreate, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdomElement, ɵɵdomElementContainer, ɵɵdomElementContainerEnd, ɵɵdomElementContainerStart, ɵɵdomElementEnd, ɵɵdomElementStart, ɵɵdomListener, ɵɵdomProperty, ɵɵdomTemplate, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵgetReplaceMetadataURL, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinjectAttribute, ɵɵinterpolate, ɵɵinterpolate1, ɵɵinterpolate2, ɵɵinterpolate3, ɵɵinterpolate4, ɵɵinterpolate5, ɵɵinterpolate6, ɵɵinterpolate7, ɵɵinterpolate8, ɵɵinterpolateV, ɵɵinvalidFactory, ɵɵlistener, ɵɵloadQuery, ɵɵnextContext, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleProp, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
18661
+ export { AFTER_RENDER_PHASES, ANIMATIONS_DISABLED, ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AcxChangeDetectionStrategy, AcxViewEncapsulation, AfterRenderImpl, AfterRenderManager, AfterRenderSequence, ApplicationInitStatus, ApplicationRef, Attribute, COMPILER_OPTIONS, CONTAINERS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionSchedulerImpl, ChangeDetectionStrategy, Compiler, CompilerFactory, Component, ComponentFactory, ComponentFactory$1, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ComponentRef as ComponentRef$1, Console, DEFAULT_CURRENCY_CODE, DEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DEFER_BLOCK_ID, DEFER_BLOCK_SSR_ID_ATTRIBUTE, DEFER_BLOCK_STATE$1 as DEFER_BLOCK_STATE, DEFER_BLOCK_STATE as DEFER_BLOCK_STATE$1, DEFER_HYDRATE_TRIGGERS, DEFER_PARENT_BLOCK_ID, DEHYDRATED_BLOCK_REGISTRY, DISCONNECTED_NODES, DebugElement, DebugEventListener, DebugNode, DeferBlockBehavior, DeferBlockState, DehydratedBlockRegistry, Directive, ELEMENT_CONTAINERS, EVENT_REPLAY_ENABLED_DEFAULT, EVENT_REPLAY_QUEUE, ElementRef, EnvironmentNgModuleRefAdapter, Host, HostBinding, HostListener, HydrationStatus, I18N_DATA, IMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS, IS_ENABLED_BLOCKING_INITIAL_NAVIGATION, IS_EVENT_REPLAY_ENABLED, IS_HYDRATION_DOM_REUSE_ENABLED, IS_I18N_HYDRATION_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED, Inject, Injectable, Input, JSACTION_BLOCK_ELEMENT_MAP, JSACTION_EVENT_CONTRACT, LContext, LOCALE_ID, LocaleDataIndex, MAX_ANIMATION_TIMEOUT, MULTIPLIER, MissingTranslationStrategy, ModuleWithComponentFactories, NGH_ATTR_NAME, NGH_DATA_KEY, NGH_DEFER_BLOCKS_KEY, NODES, NOOP_AFTER_RENDER_REF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE, NO_ERRORS_SCHEMA, NUM_ROOT_NODES, NgModule, NgModuleFactory, NgModuleFactory$1, NgModuleRef, NgModuleRef$1, Optional, Output, PLATFORM_ID, PLATFORM_INITIALIZER, PRESERVE_HOST_CONTENT, Pipe, ProfilerEvent, QueryList, ReflectionCapabilities, Renderer2, RendererFactory2, RendererStyleFlags2, SKIP_HYDRATION_ATTR_NAME, SSR_CONTENT_INTEGRITY_MARKER, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TEMPLATES, TEMPLATE_ID, TESTABILITY, TESTABILITY_GETTER, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TimerScheduler, TracingAction, TracingService, TransferState, Type, UseExhaustiveCheckNoChanges, ViewContainerRef, ViewEncapsulation, ViewRef, _sanitizeHtml, _sanitizeUrl, afterEveryRender, afterNextRender, allLeavingAnimations, allowSanitizationBypassAndThrow, angularCoreEnv, appendDeferBlocksToJSActionMap, asNativeElements, assertComponentDef, assertStandaloneComponentType, bypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript, bypassSanitizationTrustStyle, bypassSanitizationTrustUrl, calcPathForNode, checkNoChangesInternal, cleanupDehydratedViews, clearResolutionOfComponentResourcesQueue, collectNativeNodes, collectNativeNodesInLContainer, compileComponent, compileDirective, compileNgModule, compileNgModuleDefs, compilePipe, convertHydrateTriggersToJsAction, countBlocksSkippedByHydration, createEnvironmentInjector, createMultiResultQuerySignalFn, createNgModule, createNgModuleRef, createNgModuleRefWithProviders, createSingleResultOptionalQuerySignalFn, createSingleResultRequiredQuerySignalFn, depsTracker, devModeEqual, enableApplyRootElementTransformImpl, enableClaimDehydratedIcuCaseImpl, enableFindMatchingDehydratedViewImpl, enableLocateOrCreateContainerAnchorImpl, enableLocateOrCreateContainerRefImpl, enableLocateOrCreateElementContainerNodeImpl, enableLocateOrCreateElementNodeImpl, enableLocateOrCreateI18nNodeImpl, enableLocateOrCreateTextNodeImpl, enablePrepareI18nBlockForHydrationImpl, enableProfiling, enableRetrieveDeferBlockDataImpl, enableRetrieveHydrationInfoImpl, enableStashEventListenerImpl, findLocaleData, flushModuleScopingQueueAsMuchAsPossible, gatherDeferBlocksCommentNodes, generateStandaloneInDeclarationsError, getAsyncClassMetadataFn, getCompilerFacade, getDebugNode, getDeferBlocks$1 as getDeferBlocks, getDirectives, getDocument, getHostElement, getLContext, getLDeferBlockDetails, getLNodeForHydration, getLocaleCurrencyCode, getLocalePluralCase, getOrComputeI18nChildren, getRegisteredNgModuleType, getSanitizationBypassType, getTDeferBlockDetails, getTransferState, inferTagNameFromDefinition, inputBinding, invokeListeners, isBoundToModule, isComponentDefPendingResolution, isComponentResourceResolutionQueueEmpty, isDeferBlock, isDetachedByI18n, isDisconnectedNode, isI18nHydrationEnabled, isI18nHydrationSupportEnabled, isInSkipHydrationBlock, isIncrementalHydrationEnabled, isJsObject, isLetDeclaration, isListLikeIterable, isNgModule, isPromise, isSignal, isSubscribable, isTNodeShape, isViewDirty, isWritableSignal, iterateListLike, makePropDecorator, makeStateKey, markForRefresh, noSideEffects, optionsReducer, outputBinding, patchComponentDefWithScope, performanceMarkFeature, processAndInitTriggers, processBlockData, processTextNodeBeforeSerialization, profiler, promiseWithResolvers, provideAppInitializer, provideIdleServiceWith, provideNgReflectAttributes, provideZonelessChangeDetection, provideZonelessChangeDetectionInternal, publishDefaultGlobalUtils, publishExternalGlobalUtil, publishSignalConfiguration, readHydrationInfo, readPatchedLView, registerLocaleData, registerNgModuleType, remove, removeListeners, renderDeferBlockState, resetCompiledComponents, resetIncrementalHydrationEnabledWarnedForTests, resetJitOptions, resolveComponentResources, restoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest, setClassMetadata, setClassMetadataAsync, setDocument, setIsI18nHydrationSupportEnabled, setJSActionAttributes, setJitOptions, setLocaleId, setStashFn, setTestabilityGetter, sharedMapFunction, sharedStashFunction, transitiveScopesFor, triggerHydrationFromBlockName, triggerResourceLoading, trySerializeI18nBlock, twoWayBinding, unregisterAllLocaleData, unsupportedProjectionOfDomNodes, unwrapSafeValue, validAppIdInitializer, validateMatchingNode, validateNodeExists, verifySsrContentsIntegrity, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, ɵsetClassDebugInfo, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, ɵɵControlFeature, ɵɵExternalStylesFeature, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵanimateEnter, ɵɵanimateEnterListener, ɵɵanimateLeave, ɵɵanimateLeaveListener, ɵɵariaProperty, ɵɵarrowFunction, ɵɵattachSourceLocations, ɵɵattribute, ɵɵclassMap, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵconditionalBranchCreate, ɵɵconditionalCreate, ɵɵcontentQuery, ɵɵcontentQuerySignal, ɵɵcontrol, ɵɵcontrolCreate, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdomElement, ɵɵdomElementContainer, ɵɵdomElementContainerEnd, ɵɵdomElementContainerStart, ɵɵdomElementEnd, ɵɵdomElementStart, ɵɵdomListener, ɵɵdomProperty, ɵɵdomTemplate, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵgetReplaceMetadataURL, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinjectAttribute, ɵɵinterpolate, ɵɵinterpolate1, ɵɵinterpolate2, ɵɵinterpolate3, ɵɵinterpolate4, ɵɵinterpolate5, ɵɵinterpolate6, ɵɵinterpolate7, ɵɵinterpolate8, ɵɵinterpolateV, ɵɵinvalidFactory, ɵɵlistener, ɵɵloadQuery, ɵɵnextContext, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵstyleMap, ɵɵstyleProp, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
18610
18662
  //# sourceMappingURL=_debug_node-chunk.mjs.map