@angular/core 17.0.8 → 17.0.9

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 (50) hide show
  1. package/esm2022/src/application/application_ref.mjs +21 -5
  2. package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +56 -0
  3. package/esm2022/src/core_private_export.mjs +2 -1
  4. package/esm2022/src/core_render3_private_export.mjs +1 -2
  5. package/esm2022/src/defer/dom_triggers.mjs +1 -5
  6. package/esm2022/src/di/inject_switch.mjs +2 -3
  7. package/esm2022/src/di/r3_injector.mjs +8 -6
  8. package/esm2022/src/errors.mjs +1 -1
  9. package/esm2022/src/hydration/utils.mjs +2 -2
  10. package/esm2022/src/hydration/views.mjs +2 -2
  11. package/esm2022/src/linker/view_container_ref.mjs +2 -2
  12. package/esm2022/src/render3/after_render_hooks.mjs +15 -33
  13. package/esm2022/src/render3/collect_native_nodes.mjs +2 -3
  14. package/esm2022/src/render3/component_ref.mjs +1 -1
  15. package/esm2022/src/render3/debug/injector_profiler.mjs +1 -1
  16. package/esm2022/src/render3/errors_di.mjs +4 -3
  17. package/esm2022/src/render3/instructions/advance.mjs +2 -2
  18. package/esm2022/src/render3/instructions/change_detection.mjs +1 -6
  19. package/esm2022/src/render3/instructions/mark_view_dirty.mjs +2 -2
  20. package/esm2022/src/render3/instructions/shared.mjs +2 -2
  21. package/esm2022/src/render3/interfaces/container.mjs +1 -6
  22. package/esm2022/src/render3/node_manipulation.mjs +8 -8
  23. package/esm2022/src/render3/reactivity/effect.mjs +8 -6
  24. package/esm2022/src/render3/styling/style_binding_list.mjs +4 -4
  25. package/esm2022/src/render3/util/discovery_utils.mjs +3 -3
  26. package/esm2022/src/render3/util/global_utils.mjs +28 -28
  27. package/esm2022/src/render3/util/injector_discovery_utils.mjs +1 -1
  28. package/esm2022/src/render3/util/injector_utils.mjs +6 -5
  29. package/esm2022/src/render3/util/view_traversal_utils.mjs +3 -12
  30. package/esm2022/src/render3/util/view_utils.mjs +19 -15
  31. package/esm2022/src/version.mjs +1 -1
  32. package/esm2022/testing/src/component_fixture.mjs +62 -58
  33. package/esm2022/testing/src/logger.mjs +3 -3
  34. package/fesm2022/core.mjs +206 -177
  35. package/fesm2022/core.mjs.map +1 -1
  36. package/fesm2022/primitives/signals.mjs +1 -1
  37. package/fesm2022/rxjs-interop.mjs +1 -1
  38. package/fesm2022/testing.mjs +62 -58
  39. package/fesm2022/testing.mjs.map +1 -1
  40. package/index.d.ts +368 -25
  41. package/package.json +1 -1
  42. package/primitives/signals/index.d.ts +1 -1
  43. package/rxjs-interop/index.d.ts +1 -1
  44. package/schematics/migrations/block-template-entities/bundle.js +66 -103
  45. package/schematics/migrations/block-template-entities/bundle.js.map +4 -4
  46. package/schematics/ng-generate/control-flow-migration/bundle.js +67 -104
  47. package/schematics/ng-generate/control-flow-migration/bundle.js.map +4 -4
  48. package/schematics/ng-generate/standalone-migration/bundle.js +83 -118
  49. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  50. package/testing/index.d.ts +6 -2
package/fesm2022/core.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.0.8
2
+ * @license Angular v17.0.9
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -313,8 +313,9 @@ function throwInvalidProviderError(ngModuleType, providers, provider) {
313
313
  }
314
314
  /** Throws an error when a token is not found in DI. */
315
315
  function throwProviderNotFoundError(token, injectorName) {
316
- const injectorDetails = injectorName ? ` in ${injectorName}` : '';
317
- throw new RuntimeError(-201 /* RuntimeErrorCode.PROVIDER_NOT_FOUND */, ngDevMode && `No provider for ${stringifyForError(token)} found${injectorDetails}`);
316
+ const errorMessage = ngDevMode &&
317
+ `No provider for ${stringifyForError(token)} found${injectorName ? ` in ${injectorName}` : ''}`;
318
+ throw new RuntimeError(-201 /* RuntimeErrorCode.PROVIDER_NOT_FOUND */, errorMessage);
318
319
  }
319
320
 
320
321
  // The functions in this file verify that the assumptions we are making
@@ -585,7 +586,7 @@ function injectRootLimpMode(token, notFoundValue, flags) {
585
586
  return null;
586
587
  if (notFoundValue !== undefined)
587
588
  return notFoundValue;
588
- throwProviderNotFoundError(stringify(token), 'Injector');
589
+ throwProviderNotFoundError(token, 'Injector');
589
590
  }
590
591
  /**
591
592
  * Assert that `_injectImplementation` is not `fn`.
@@ -2247,11 +2248,6 @@ var LContainerFlags;
2247
2248
  * This flag, once set, is never unset for the `LContainer`.
2248
2249
  */
2249
2250
  LContainerFlags[LContainerFlags["HasTransplantedViews"] = 2] = "HasTransplantedViews";
2250
- /**
2251
- * Indicates that this LContainer has a view underneath it that needs to be refreshed during
2252
- * change detection.
2253
- */
2254
- LContainerFlags[LContainerFlags["HasChildViewsToRefresh"] = 4] = "HasChildViewsToRefresh";
2255
2251
  })(LContainerFlags || (LContainerFlags = {}));
2256
2252
 
2257
2253
  /**
@@ -2765,24 +2761,18 @@ function updateAncestorTraversalFlagsOnAttach(lView) {
2765
2761
  */
2766
2762
  function markAncestorsForTraversal(lView) {
2767
2763
  lView[ENVIRONMENT].changeDetectionScheduler?.notify();
2768
- let parent = lView[PARENT];
2764
+ let parent = getLViewParent(lView);
2769
2765
  while (parent !== null) {
2770
2766
  // We stop adding markers to the ancestors once we reach one that already has the marker. This
2771
2767
  // is to avoid needlessly traversing all the way to the root when the marker already exists.
2772
- if ((isLContainer(parent) && (parent[FLAGS] & LContainerFlags.HasChildViewsToRefresh) ||
2773
- (isLView(parent) && parent[FLAGS] & 8192 /* LViewFlags.HasChildViewsToRefresh */))) {
2768
+ if (parent[FLAGS] & 8192 /* LViewFlags.HasChildViewsToRefresh */) {
2774
2769
  break;
2775
2770
  }
2776
- if (isLContainer(parent)) {
2777
- parent[FLAGS] |= LContainerFlags.HasChildViewsToRefresh;
2778
- }
2779
- else {
2780
- parent[FLAGS] |= 8192 /* LViewFlags.HasChildViewsToRefresh */;
2781
- if (!viewAttachedToChangeDetector(parent)) {
2782
- break;
2783
- }
2771
+ parent[FLAGS] |= 8192 /* LViewFlags.HasChildViewsToRefresh */;
2772
+ if (!viewAttachedToChangeDetector(parent)) {
2773
+ break;
2784
2774
  }
2785
- parent = parent[PARENT];
2775
+ parent = getLViewParent(parent);
2786
2776
  }
2787
2777
  }
2788
2778
  /**
@@ -2808,6 +2798,16 @@ function removeLViewOnDestroy(lView, onDestroyCallback) {
2808
2798
  lView[ON_DESTROY_HOOKS].splice(destroyCBIdx, 1);
2809
2799
  }
2810
2800
  }
2801
+ /**
2802
+ * Gets the parent LView of the passed LView, if the PARENT is an LContainer, will get the parent of
2803
+ * that LContainer, which is an LView
2804
+ * @param lView the lView whose parent to get
2805
+ */
2806
+ function getLViewParent(lView) {
2807
+ ngDevMode && assertLView(lView);
2808
+ const parent = lView[PARENT];
2809
+ return isLContainer(parent) ? parent[PARENT] : parent;
2810
+ }
2811
2811
 
2812
2812
  const instructionState = {
2813
2813
  lFrame: createLFrame(null),
@@ -3800,11 +3800,12 @@ function hasParentInjector(parentLocation) {
3800
3800
  return parentLocation !== NO_PARENT_INJECTOR;
3801
3801
  }
3802
3802
  function getParentInjectorIndex(parentLocation) {
3803
- ngDevMode && assertNumber(parentLocation, 'Number expected');
3804
- ngDevMode && assertNotEqual(parentLocation, -1, 'Not a valid state.');
3805
- const parentInjectorIndex = parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;
3806
- ngDevMode &&
3803
+ if (ngDevMode) {
3804
+ assertNumber(parentLocation, 'Number expected');
3805
+ assertNotEqual(parentLocation, -1, 'Not a valid state.');
3806
+ const parentInjectorIndex = parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;
3807
3807
  assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, 'Parent injector must be pointing past HEADER_OFFSET.');
3808
+ }
3808
3809
  return parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;
3809
3810
  }
3810
3811
  function getParentInjectorViewOffset(parentLocation) {
@@ -6171,9 +6172,11 @@ class R3Injector extends EnvironmentInjector {
6171
6172
  multiRecord.multi.push(provider);
6172
6173
  }
6173
6174
  else {
6174
- const existing = this.records.get(token);
6175
- if (ngDevMode && existing && existing.multi !== undefined) {
6176
- throwMixedMultiProviderError();
6175
+ if (ngDevMode) {
6176
+ const existing = this.records.get(token);
6177
+ if (existing && existing.multi !== undefined) {
6178
+ throwMixedMultiProviderError();
6179
+ }
6177
6180
  }
6178
6181
  }
6179
6182
  this.records.set(token, record);
@@ -6241,8 +6244,8 @@ function getUndecoratedInjectableFactory(token) {
6241
6244
  // If the token has parameters then it has dependencies that we cannot resolve implicitly.
6242
6245
  const paramLength = token.length;
6243
6246
  if (paramLength > 0) {
6244
- const args = newArray(paramLength, '?');
6245
- throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode && `Can't resolve all parameters for ${stringify(token)}: (${args.join(', ')}).`);
6247
+ throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode &&
6248
+ `Can't resolve all parameters for ${stringify(token)}: (${newArray(paramLength, '?').join(', ')}).`);
6246
6249
  }
6247
6250
  // The constructor function appears to have no parameters.
6248
6251
  // This might be because it inherits from a super-class. In which case, use an injectable
@@ -7936,63 +7939,6 @@ function ensureIcuContainerVisitorLoaded(loader) {
7936
7939
  }
7937
7940
  }
7938
7941
 
7939
- /**
7940
- * Gets the parent LView of the passed LView, if the PARENT is an LContainer, will get the parent of
7941
- * that LContainer, which is an LView
7942
- * @param lView the lView whose parent to get
7943
- */
7944
- function getLViewParent(lView) {
7945
- ngDevMode && assertLView(lView);
7946
- const parent = lView[PARENT];
7947
- return isLContainer(parent) ? parent[PARENT] : parent;
7948
- }
7949
- /**
7950
- * Retrieve the root view from any component or `LView` by walking the parent `LView` until
7951
- * reaching the root `LView`.
7952
- *
7953
- * @param componentOrLView any component or `LView`
7954
- */
7955
- function getRootView(componentOrLView) {
7956
- ngDevMode && assertDefined(componentOrLView, 'component');
7957
- let lView = isLView(componentOrLView) ? componentOrLView : readPatchedLView(componentOrLView);
7958
- while (lView && !(lView[FLAGS] & 512 /* LViewFlags.IsRoot */)) {
7959
- lView = getLViewParent(lView);
7960
- }
7961
- ngDevMode && assertLView(lView);
7962
- return lView;
7963
- }
7964
- /**
7965
- * Returns the context information associated with the application where the target is situated. It
7966
- * does this by walking the parent views until it gets to the root view, then getting the context
7967
- * off of that.
7968
- *
7969
- * @param viewOrComponent the `LView` or component to get the root context for.
7970
- */
7971
- function getRootContext(viewOrComponent) {
7972
- const rootView = getRootView(viewOrComponent);
7973
- ngDevMode &&
7974
- assertDefined(rootView[CONTEXT], 'Root view has no context. Perhaps it is disconnected?');
7975
- return rootView[CONTEXT];
7976
- }
7977
- /**
7978
- * Gets the first `LContainer` in the LView or `null` if none exists.
7979
- */
7980
- function getFirstLContainer(lView) {
7981
- return getNearestLContainer(lView[CHILD_HEAD]);
7982
- }
7983
- /**
7984
- * Gets the next `LContainer` that is a sibling of the given container.
7985
- */
7986
- function getNextLContainer(container) {
7987
- return getNearestLContainer(container[NEXT]);
7988
- }
7989
- function getNearestLContainer(viewOrContainer) {
7990
- while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {
7991
- viewOrContainer = viewOrContainer[NEXT];
7992
- }
7993
- return viewOrContainer;
7994
- }
7995
-
7996
7942
  /**
7997
7943
  * NOTE: for performance reasons, the possible actions are inlined within the function instead of
7998
7944
  * being passed as an argument.
@@ -8075,8 +8021,7 @@ function createElementNode(renderer, name, namespace) {
8075
8021
  * @param lView The view from which elements should be added or removed
8076
8022
  */
8077
8023
  function removeViewFromDOM(tView, lView) {
8078
- const renderer = lView[RENDERER];
8079
- applyView(tView, lView, renderer, 2 /* WalkTNodeTreeAction.Detach */, null, null);
8024
+ detachViewFromDOM(tView, lView);
8080
8025
  lView[HOST] = null;
8081
8026
  lView[T_HOST] = null;
8082
8027
  }
@@ -8106,6 +8051,9 @@ function addViewToDOM(tView, parentTNode, renderer, lView, parentNativeNode, bef
8106
8051
  * @param lView the `LView` to be detached.
8107
8052
  */
8108
8053
  function detachViewFromDOM(tView, lView) {
8054
+ // The scheduler must be notified because the animation engine is what actually does the DOM
8055
+ // removal and only runs at the end of change detection.
8056
+ lView[ENVIRONMENT].changeDetectionScheduler?.notify();
8109
8057
  applyView(tView, lView, lView[RENDERER], 2 /* WalkTNodeTreeAction.Detach */, null, null);
8110
8058
  }
8111
8059
  /**
@@ -8237,8 +8185,7 @@ function detachMovedView(declarationContainer, lView) {
8237
8185
  assertDefined(declarationContainer[MOVED_VIEWS], 'A projected view should belong to a non-empty projected views collection');
8238
8186
  const movedViews = declarationContainer[MOVED_VIEWS];
8239
8187
  const declarationViewIndex = movedViews.indexOf(lView);
8240
- const insertionLContainer = lView[PARENT];
8241
- ngDevMode && assertLContainer(insertionLContainer);
8188
+ ngDevMode && assertLContainer(lView[PARENT]);
8242
8189
  movedViews.splice(declarationViewIndex, 1);
8243
8190
  }
8244
8191
  /**
@@ -10048,7 +9995,7 @@ const SSR_CONTENT_INTEGRITY_MARKER = 'nghm';
10048
9995
  * @param injector Injector that this component has access to.
10049
9996
  * @param isRootView Specifies whether we trying to read hydration info for the root view.
10050
9997
  */
10051
- let _retrieveHydrationInfoImpl = (rNode, injector, isRootView) => null;
9998
+ let _retrieveHydrationInfoImpl = () => null;
10052
9999
  function retrieveHydrationInfoImpl(rNode, injector, isRootView = false) {
10053
10000
  let nghAttrValue = rNode.getAttribute(NGH_ATTR_NAME);
10054
10001
  if (nghAttrValue == null)
@@ -11712,6 +11659,53 @@ const REACTIVE_LVIEW_CONSUMER_NODE = {
11712
11659
  },
11713
11660
  };
11714
11661
 
11662
+ /**
11663
+ * Retrieve the root view from any component or `LView` by walking the parent `LView` until
11664
+ * reaching the root `LView`.
11665
+ *
11666
+ * @param componentOrLView any component or `LView`
11667
+ */
11668
+ function getRootView(componentOrLView) {
11669
+ ngDevMode && assertDefined(componentOrLView, 'component');
11670
+ let lView = isLView(componentOrLView) ? componentOrLView : readPatchedLView(componentOrLView);
11671
+ while (lView && !(lView[FLAGS] & 512 /* LViewFlags.IsRoot */)) {
11672
+ lView = getLViewParent(lView);
11673
+ }
11674
+ ngDevMode && assertLView(lView);
11675
+ return lView;
11676
+ }
11677
+ /**
11678
+ * Returns the context information associated with the application where the target is situated. It
11679
+ * does this by walking the parent views until it gets to the root view, then getting the context
11680
+ * off of that.
11681
+ *
11682
+ * @param viewOrComponent the `LView` or component to get the root context for.
11683
+ */
11684
+ function getRootContext(viewOrComponent) {
11685
+ const rootView = getRootView(viewOrComponent);
11686
+ ngDevMode &&
11687
+ assertDefined(rootView[CONTEXT], 'Root view has no context. Perhaps it is disconnected?');
11688
+ return rootView[CONTEXT];
11689
+ }
11690
+ /**
11691
+ * Gets the first `LContainer` in the LView or `null` if none exists.
11692
+ */
11693
+ function getFirstLContainer(lView) {
11694
+ return getNearestLContainer(lView[CHILD_HEAD]);
11695
+ }
11696
+ /**
11697
+ * Gets the next `LContainer` that is a sibling of the given container.
11698
+ */
11699
+ function getNextLContainer(container) {
11700
+ return getNearestLContainer(container[NEXT]);
11701
+ }
11702
+ function getNearestLContainer(viewOrContainer) {
11703
+ while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {
11704
+ viewOrContainer = viewOrContainer[NEXT];
11705
+ }
11706
+ return viewOrContainer;
11707
+ }
11708
+
11715
11709
  const ERROR_ORIGINAL_ERROR = 'ngOriginalError';
11716
11710
  function wrappedError(message, originalError) {
11717
11711
  const msg = `${message} caused by: ${originalError instanceof Error ? originalError.message : originalError}`;
@@ -11953,7 +11947,7 @@ const NO_CHANGE = (typeof ngDevMode === 'undefined' || ngDevMode) ? { __brand__:
11953
11947
  *
11954
11948
  * @codeGenApi
11955
11949
  */
11956
- function ɵɵadvance(delta) {
11950
+ function ɵɵadvance(delta = 1) {
11957
11951
  ngDevMode && assertGreaterThan(delta, 0, 'Can only advance forward');
11958
11952
  selectIndexInternal(getTView(), getLView(), getSelectedIndex() + delta, !!ngDevMode && isInCheckNoChangesMode());
11959
11953
  }
@@ -12363,7 +12357,7 @@ function applyRootElementTransform(rootElement) {
12363
12357
  *
12364
12358
  * @param rootElement the app root HTML Element
12365
12359
  */
12366
- let _applyRootElementTransformImpl = (rootElement) => null;
12360
+ let _applyRootElementTransformImpl = () => null;
12367
12361
  /**
12368
12362
  * Processes text node markers before hydration begins. This replaces any special comment
12369
12363
  * nodes that were added prior to serialization are swapped out to restore proper text
@@ -13319,14 +13313,12 @@ const MAXIMUM_REFRESH_RERUNS = 100;
13319
13313
  function detectChangesInternal(lView, notifyErrorHandler = true) {
13320
13314
  const environment = lView[ENVIRONMENT];
13321
13315
  const rendererFactory = environment.rendererFactory;
13322
- const afterRenderEventManager = environment.afterRenderEventManager;
13323
13316
  // Check no changes mode is a dev only mode used to verify that bindings have not changed
13324
13317
  // since they were assigned. We do not want to invoke renderer factory functions in that mode
13325
13318
  // to avoid any possible side-effects.
13326
13319
  const checkNoChangesMode = !!ngDevMode && isInCheckNoChangesMode();
13327
13320
  if (!checkNoChangesMode) {
13328
13321
  rendererFactory.begin?.();
13329
- afterRenderEventManager?.begin();
13330
13322
  }
13331
13323
  try {
13332
13324
  detectChangesInViewWhileDirty(lView);
@@ -13343,8 +13335,6 @@ function detectChangesInternal(lView, notifyErrorHandler = true) {
13343
13335
  // One final flush of the effects queue to catch any effects created in `ngAfterViewInit` or
13344
13336
  // other post-order hooks.
13345
13337
  environment.inlineEffectRunner?.flush();
13346
- // Invoke all callbacks registered via `after*Render`, if needed.
13347
- afterRenderEventManager?.end();
13348
13338
  }
13349
13339
  }
13350
13340
  }
@@ -13550,7 +13540,6 @@ function viewShouldHaveReactiveConsumer(tView) {
13550
13540
  */
13551
13541
  function detectChangesInEmbeddedViews(lView, mode) {
13552
13542
  for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
13553
- lContainer[FLAGS] &= ~LContainerFlags.HasChildViewsToRefresh;
13554
13543
  for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
13555
13544
  const embeddedLView = lContainer[i];
13556
13545
  detectChangesInViewIfAttached(embeddedLView, mode);
@@ -14216,11 +14205,11 @@ class ZoneAwareMicrotaskScheduler {
14216
14205
  * available/requested.
14217
14206
  */
14218
14207
  class EffectHandle {
14219
- constructor(scheduler, effectFn, creationZone, destroyRef, errorHandler, allowSignalWrites) {
14208
+ constructor(scheduler, effectFn, creationZone, destroyRef, injector, allowSignalWrites) {
14220
14209
  this.scheduler = scheduler;
14221
14210
  this.effectFn = effectFn;
14222
14211
  this.creationZone = creationZone;
14223
- this.errorHandler = errorHandler;
14212
+ this.injector = injector;
14224
14213
  this.watcher = createWatch$1((onCleanup) => this.runEffect(onCleanup), () => this.schedule(), allowSignalWrites);
14225
14214
  this.unregisterOnDestroy = destroyRef?.onDestroy(() => this.destroy());
14226
14215
  }
@@ -14229,7 +14218,10 @@ class EffectHandle {
14229
14218
  this.effectFn(onCleanup);
14230
14219
  }
14231
14220
  catch (err) {
14232
- this.errorHandler?.handleError(err);
14221
+ // Inject the `ErrorHandler` here in order to avoid circular DI error
14222
+ // if the effect is used inside of a custom `ErrorHandler`.
14223
+ const errorHandler = this.injector.get(ErrorHandler, null, { optional: true });
14224
+ errorHandler?.handleError(err);
14233
14225
  }
14234
14226
  }
14235
14227
  run() {
@@ -14256,9 +14248,8 @@ function effect(effectFn, options) {
14256
14248
  'effect inside the component constructor.');
14257
14249
  !options?.injector && assertInInjectionContext(effect);
14258
14250
  const injector = options?.injector ?? inject(Injector);
14259
- const errorHandler = injector.get(ErrorHandler, null, { optional: true });
14260
14251
  const destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
14261
- const handle = new EffectHandle(injector.get(APP_EFFECT_SCHEDULER), effectFn, (typeof Zone === 'undefined') ? null : Zone.current, destroyRef, errorHandler, options?.allowSignalWrites ?? false);
14252
+ const handle = new EffectHandle(injector.get(APP_EFFECT_SCHEDULER), effectFn, (typeof Zone === 'undefined') ? null : Zone.current, destroyRef, injector, options?.allowSignalWrites ?? false);
14262
14253
  // Effects need to be marked dirty manually to trigger their initial run. The timing of this
14263
14254
  // marking matters, because the effects may read signals that track component inputs, which are
14264
14255
  // only available after those components have had their first update pass.
@@ -15089,13 +15080,6 @@ class AfterRenderCallbackHandlerImpl {
15089
15080
  };
15090
15081
  this.deferredCallbacks = new Set();
15091
15082
  }
15092
- validateBegin() {
15093
- if (this.executingCallbacks) {
15094
- throw new RuntimeError(102 /* RuntimeErrorCode.RECURSIVE_APPLICATION_RENDER */, ngDevMode &&
15095
- 'A new render operation began before the previous operation ended. ' +
15096
- 'Did you trigger change detection from afterRender or afterNextRender?');
15097
- }
15098
- }
15099
15083
  register(callback) {
15100
15084
  // If we're currently running callbacks, new callbacks should be deferred
15101
15085
  // until the next render operation.
@@ -15107,9 +15091,11 @@ class AfterRenderCallbackHandlerImpl {
15107
15091
  this.deferredCallbacks.delete(callback);
15108
15092
  }
15109
15093
  execute() {
15094
+ let callbacksExecuted = false;
15110
15095
  this.executingCallbacks = true;
15111
15096
  for (const bucket of Object.values(this.buckets)) {
15112
15097
  for (const callback of bucket) {
15098
+ callbacksExecuted = true;
15113
15099
  callback.invoke();
15114
15100
  }
15115
15101
  }
@@ -15118,6 +15104,7 @@ class AfterRenderCallbackHandlerImpl {
15118
15104
  this.buckets[callback.phase].add(callback);
15119
15105
  }
15120
15106
  this.deferredCallbacks.clear();
15107
+ return callbacksExecuted;
15121
15108
  }
15122
15109
  destroy() {
15123
15110
  for (const bucket of Object.values(this.buckets)) {
@@ -15132,37 +15119,25 @@ class AfterRenderCallbackHandlerImpl {
15132
15119
  */
15133
15120
  class AfterRenderEventManager {
15134
15121
  constructor() {
15135
- this.renderDepth = 0;
15136
15122
  /* @internal */
15137
15123
  this.handler = null;
15138
15124
  /* @internal */
15139
15125
  this.internalCallbacks = [];
15140
15126
  }
15141
15127
  /**
15142
- * Mark the beginning of a render operation (i.e. CD cycle).
15143
- * Throws if called while executing callbacks.
15144
- */
15145
- begin() {
15146
- this.handler?.validateBegin();
15147
- this.renderDepth++;
15148
- }
15149
- /**
15150
- * Mark the end of a render operation. Callbacks will be
15151
- * executed if there are no more pending operations.
15128
+ * Executes callbacks. Returns `true` if any callbacks executed.
15152
15129
  */
15153
- end() {
15154
- ngDevMode && assertGreaterThan(this.renderDepth, 0, 'renderDepth must be greater than 0');
15155
- this.renderDepth--;
15156
- if (this.renderDepth === 0) {
15157
- // Note: internal callbacks power `internalAfterNextRender`. Since internal callbacks
15158
- // are fairly trivial, they are kept separate so that `AfterRenderCallbackHandlerImpl`
15159
- // can still be tree-shaken unless used by the application.
15160
- for (const callback of this.internalCallbacks) {
15161
- callback();
15162
- }
15163
- this.internalCallbacks.length = 0;
15164
- this.handler?.execute();
15130
+ execute() {
15131
+ // Note: internal callbacks power `internalAfterNextRender`. Since internal callbacks
15132
+ // are fairly trivial, they are kept separate so that `AfterRenderCallbackHandlerImpl`
15133
+ // can still be tree-shaken unless used by the application.
15134
+ const callbacks = [...this.internalCallbacks];
15135
+ this.internalCallbacks.length = 0;
15136
+ for (const callback of callbacks) {
15137
+ callback();
15165
15138
  }
15139
+ const handlerCallbacksExecuted = this.handler?.execute();
15140
+ return !!handlerCallbacksExecuted || callbacks.length > 0;
15166
15141
  }
15167
15142
  ngOnDestroy() {
15168
15143
  this.handler?.destroy();
@@ -15668,7 +15643,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
15668
15643
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
15669
15644
  if (rootSelectorOrNode) {
15670
15645
  // The placeholder will be replaced with the actual version at build time.
15671
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '17.0.8']);
15646
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '17.0.9']);
15672
15647
  }
15673
15648
  else {
15674
15649
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -17020,8 +16995,8 @@ function insertTStylingBinding(tData, tNode, tStylingKeyWithStatic, index, isHos
17020
16995
  if (isKeyDuplicateOfStatic) {
17021
16996
  tData[index + 1] = setTStylingRangePrevDuplicate(tData[index + 1]);
17022
16997
  }
17023
- markDuplicates(tData, tStylingKey, index, true, isClassBinding);
17024
- markDuplicates(tData, tStylingKey, index, false, isClassBinding);
16998
+ markDuplicates(tData, tStylingKey, index, true);
16999
+ markDuplicates(tData, tStylingKey, index, false);
17025
17000
  markDuplicateOfResidualStyling(tNode, tStylingKey, tData, index, isClassBinding);
17026
17001
  tBindings = toTStylingRange(tmplHead, tmplTail);
17027
17002
  if (isClassBinding) {
@@ -17105,7 +17080,7 @@ function markDuplicateOfResidualStyling(tNode, tStylingKey, tData, index, isClas
17105
17080
  * - `true` for previous (lower priority);
17106
17081
  * - `false` for next (higher priority).
17107
17082
  */
17108
- function markDuplicates(tData, tStylingKey, index, isPrevDir, isClassBinding) {
17083
+ function markDuplicates(tData, tStylingKey, index, isPrevDir) {
17109
17084
  const tStylingAtIndex = tData[index + 1];
17110
17085
  const isMap = tStylingKey === null;
17111
17086
  let cursor = isPrevDir ? getTStylingRangePrev(tStylingAtIndex) : getTStylingRangeNext(tStylingAtIndex);
@@ -19407,7 +19382,7 @@ function locateDehydratedViewsInContainer(currentRNode, serializedViews) {
19407
19382
  * stored on a given lContainer.
19408
19383
  * Returns `null` by default, when hydration is not enabled.
19409
19384
  */
19410
- let _findMatchingDehydratedViewImpl = (lContainer, template) => null;
19385
+ let _findMatchingDehydratedViewImpl = () => null;
19411
19386
  /**
19412
19387
  * Retrieves the next dehydrated view from the LContainer and verifies that
19413
19388
  * it matches a given template id (from the TView that was used to create this
@@ -20147,7 +20122,7 @@ function insertAnchorNode(hostLView, hostTNode) {
20147
20122
  return commentNode;
20148
20123
  }
20149
20124
  let _locateOrCreateAnchorNode = createAnchorNode;
20150
- let _populateDehydratedViewsInLContainer = (lContainer, tNode, hostLView) => false; // noop by default
20125
+ let _populateDehydratedViewsInLContainer = () => false; // noop by default
20151
20126
  /**
20152
20127
  * Looks up dehydrated views that belong to a given LContainer and populates
20153
20128
  * this information into the `LContainer[DEHYDRATED_VIEWS]` slot. When running
@@ -20894,8 +20869,6 @@ function onInteraction(trigger, callback) {
20894
20869
  // are referencing it.
20895
20870
  entry = new DeferEventEntry();
20896
20871
  interactionTriggers.set(trigger, entry);
20897
- // Ensure that the handler runs in the NgZone
20898
- ngDevMode && NgZone.assertInAngularZone();
20899
20872
  for (const name of interactionEventNames) {
20900
20873
  trigger.addEventListener(name, entry.listener, eventListenerOptions);
20901
20874
  }
@@ -20923,8 +20896,6 @@ function onHover(trigger, callback) {
20923
20896
  if (!entry) {
20924
20897
  entry = new DeferEventEntry();
20925
20898
  hoverTriggers.set(trigger, entry);
20926
- // Ensure that the handler runs in the NgZone
20927
- ngDevMode && NgZone.assertInAngularZone();
20928
20899
  for (const name of hoverEventNames) {
20929
20900
  trigger.addEventListener(name, entry.listener, eventListenerOptions);
20930
20901
  }
@@ -29944,7 +29915,7 @@ class Version {
29944
29915
  /**
29945
29916
  * @publicApi
29946
29917
  */
29947
- const VERSION = new Version('17.0.8');
29918
+ const VERSION = new Version('17.0.9');
29948
29919
 
29949
29920
  /*
29950
29921
  * This file exists to support compilation of @angular/core in Ivy mode.
@@ -30942,6 +30913,28 @@ function getModuleInjectorOfNodeInjector(injector) {
30942
30913
  * tools are patched (window.ng).
30943
30914
  * */
30944
30915
  const GLOBAL_PUBLISH_EXPANDO_KEY = 'ng';
30916
+ const globalUtilsFunctions = {
30917
+ /**
30918
+ * Warning: functions that start with `ɵ` are considered *INTERNAL* and should not be relied upon
30919
+ * in application's code. The contract of those functions might be changed in any release and/or a
30920
+ * function can be removed completely.
30921
+ */
30922
+ 'ɵgetDependenciesFromInjectable': getDependenciesFromInjectable,
30923
+ 'ɵgetInjectorProviders': getInjectorProviders,
30924
+ 'ɵgetInjectorResolutionPath': getInjectorResolutionPath,
30925
+ 'ɵgetInjectorMetadata': getInjectorMetadata,
30926
+ 'ɵsetProfiler': setProfiler,
30927
+ 'getDirectiveMetadata': getDirectiveMetadata$1,
30928
+ 'getComponent': getComponent,
30929
+ 'getContext': getContext,
30930
+ 'getListeners': getListeners,
30931
+ 'getOwningComponent': getOwningComponent,
30932
+ 'getHostElement': getHostElement,
30933
+ 'getInjector': getInjector,
30934
+ 'getRootComponents': getRootComponents,
30935
+ 'getDirectives': getDirectives,
30936
+ 'applyChanges': applyChanges,
30937
+ };
30945
30938
  let _published = false;
30946
30939
  /**
30947
30940
  * Publishes a collection of default debug tools onto`window.ng`.
@@ -30953,26 +30946,9 @@ function publishDefaultGlobalUtils$1() {
30953
30946
  if (!_published) {
30954
30947
  _published = true;
30955
30948
  setupFrameworkInjectorProfiler();
30956
- publishGlobalUtil('ɵgetDependenciesFromInjectable', getDependenciesFromInjectable);
30957
- publishGlobalUtil('ɵgetInjectorProviders', getInjectorProviders);
30958
- publishGlobalUtil('ɵgetInjectorResolutionPath', getInjectorResolutionPath);
30959
- publishGlobalUtil('ɵgetInjectorMetadata', getInjectorMetadata);
30960
- /**
30961
- * Warning: this function is *INTERNAL* and should not be relied upon in application's code.
30962
- * The contract of the function might be changed in any release and/or the function can be
30963
- * removed completely.
30964
- */
30965
- publishGlobalUtil('ɵsetProfiler', setProfiler);
30966
- publishGlobalUtil('getDirectiveMetadata', getDirectiveMetadata$1);
30967
- publishGlobalUtil('getComponent', getComponent);
30968
- publishGlobalUtil('getContext', getContext);
30969
- publishGlobalUtil('getListeners', getListeners);
30970
- publishGlobalUtil('getOwningComponent', getOwningComponent);
30971
- publishGlobalUtil('getHostElement', getHostElement);
30972
- publishGlobalUtil('getInjector', getInjector);
30973
- publishGlobalUtil('getRootComponents', getRootComponents);
30974
- publishGlobalUtil('getDirectives', getDirectives);
30975
- publishGlobalUtil('applyChanges', applyChanges);
30949
+ for (const [methodName, method] of Object.entries(globalUtilsFunctions)) {
30950
+ publishGlobalUtil(methodName, method);
30951
+ }
30976
30952
  }
30977
30953
  }
30978
30954
  /**
@@ -30987,13 +30963,8 @@ function publishGlobalUtil(name, fn) {
30987
30963
  // for typings for AngularJS (via `goog.provide('ng....')`).
30988
30964
  const w = _global;
30989
30965
  ngDevMode && assertDefined(fn, 'function not defined');
30990
- if (w) {
30991
- let container = w[GLOBAL_PUBLISH_EXPANDO_KEY];
30992
- if (!container) {
30993
- container = w[GLOBAL_PUBLISH_EXPANDO_KEY] = {};
30994
- }
30995
- container[name] = fn;
30996
- }
30966
+ w[GLOBAL_PUBLISH_EXPANDO_KEY] ??= {};
30967
+ w[GLOBAL_PUBLISH_EXPANDO_KEY][name] = fn;
30997
30968
  }
30998
30969
  }
30999
30970
 
@@ -31680,6 +31651,7 @@ class ApplicationRef {
31680
31651
  /** @internal */
31681
31652
  this._views = [];
31682
31653
  this.internalErrorHandler = inject(INTERNAL_APPLICATION_ERROR_HANDLER);
31654
+ this.afterRenderEffectManager = inject(AfterRenderEventManager);
31683
31655
  /**
31684
31656
  * Get a list of component types registered to this application.
31685
31657
  * This list is populated even before the component is created.
@@ -31750,10 +31722,12 @@ class ApplicationRef {
31750
31722
  const initStatus = this._injector.get(ApplicationInitStatus);
31751
31723
  if (!initStatus.done) {
31752
31724
  const standalone = !isComponentFactory && isStandalone(componentOrFactory);
31753
- const errorMessage = 'Cannot bootstrap as there are still asynchronous initializers running.' +
31754
- (standalone ? '' :
31755
- ' Bootstrap components in the `ngDoBootstrap` method of the root module.');
31756
- throw new RuntimeError(405 /* RuntimeErrorCode.ASYNC_INITIALIZERS_STILL_RUNNING */, (typeof ngDevMode === 'undefined' || ngDevMode) && errorMessage);
31725
+ const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) &&
31726
+ 'Cannot bootstrap as there are still asynchronous initializers running.' +
31727
+ (standalone ?
31728
+ '' :
31729
+ ' Bootstrap components in the `ngDoBootstrap` method of the root module.');
31730
+ throw new RuntimeError(405 /* RuntimeErrorCode.ASYNC_INITIALIZERS_STILL_RUNNING */, errorMessage);
31757
31731
  }
31758
31732
  let componentFactory;
31759
31733
  if (isComponentFactory) {
@@ -31814,6 +31788,18 @@ class ApplicationRef {
31814
31788
  this.internalErrorHandler(e);
31815
31789
  }
31816
31790
  finally {
31791
+ // Catch any `ExpressionChanged...` errors and report them to error handler like above
31792
+ try {
31793
+ const callbacksExecuted = this.afterRenderEffectManager.execute();
31794
+ if ((typeof ngDevMode === 'undefined' || ngDevMode) && callbacksExecuted) {
31795
+ for (let view of this._views) {
31796
+ view.checkNoChanges();
31797
+ }
31798
+ }
31799
+ }
31800
+ catch (e) {
31801
+ this.internalErrorHandler(e);
31802
+ }
31817
31803
  this._runningTick = false;
31818
31804
  }
31819
31805
  }
@@ -34058,6 +34044,49 @@ function internalCreateApplication(config) {
34058
34044
  }
34059
34045
  }
34060
34046
 
34047
+ class ChangeDetectionSchedulerImpl {
34048
+ constructor() {
34049
+ this.appRef = inject(ApplicationRef);
34050
+ this.taskService = inject(PendingTasks);
34051
+ this.pendingRenderTaskId = null;
34052
+ }
34053
+ notify() {
34054
+ if (this.pendingRenderTaskId !== null)
34055
+ return;
34056
+ this.pendingRenderTaskId = this.taskService.add();
34057
+ setTimeout(() => {
34058
+ try {
34059
+ if (!this.appRef.destroyed) {
34060
+ this.appRef.tick();
34061
+ }
34062
+ }
34063
+ finally {
34064
+ // If this is the last task, the service will synchronously emit a stable notification. If
34065
+ // there is a subscriber that then acts in a way that tries to notify the scheduler again,
34066
+ // we need to be able to respond to schedule a new change detection. Therefore, we should
34067
+ // clear the task ID before removing it from the pending tasks (or the tasks service should
34068
+ // not synchronously emit stable, similar to how Zone stableness only happens if it's still
34069
+ // stable after a microtask).
34070
+ const taskId = this.pendingRenderTaskId;
34071
+ this.pendingRenderTaskId = null;
34072
+ this.taskService.remove(taskId);
34073
+ }
34074
+ });
34075
+ }
34076
+ static { this.ɵfac = function ChangeDetectionSchedulerImpl_Factory(t) { return new (t || ChangeDetectionSchedulerImpl)(); }; }
34077
+ static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ChangeDetectionSchedulerImpl, factory: ChangeDetectionSchedulerImpl.ɵfac, providedIn: 'root' }); }
34078
+ }
34079
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ChangeDetectionSchedulerImpl, [{
34080
+ type: Injectable,
34081
+ args: [{ providedIn: 'root' }]
34082
+ }], null, null); })();
34083
+ function provideZonelessChangeDetection() {
34084
+ return makeEnvironmentProviders([
34085
+ { provide: ChangeDetectionScheduler, useExisting: ChangeDetectionSchedulerImpl },
34086
+ { provide: NgZone, useClass: NoopNgZone },
34087
+ ]);
34088
+ }
34089
+
34061
34090
  /**
34062
34091
  * Retrieves all defer blocks in a given LView.
34063
34092
  *
@@ -35110,5 +35139,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
35110
35139
  * Generated bundle index. Do not edit.
35111
35140
  */
35112
35141
 
35113
- export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, numberAttribute, platformCore, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PendingTasks as ɵPendingTasks, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZoneAwareQueueingScheduler as ɵZoneAwareQueueingScheduler, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getEnsureDirtyViewsAreAlwaysReachable as ɵgetEnsureDirtyViewsAreAlwaysReachable, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, publishDefaultGlobalUtils$1 as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setEnsureDirtyViewsAreAlwaysReachable as ɵsetEnsureDirtyViewsAreAlwaysReachable, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵvalidateIframeAttribute, ɵɵviewQuery };
35142
+ export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, numberAttribute, platformCore, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, PendingTasks as ɵPendingTasks, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZoneAwareQueueingScheduler as ɵZoneAwareQueueingScheduler, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getEnsureDirtyViewsAreAlwaysReachable as ɵgetEnsureDirtyViewsAreAlwaysReachable, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, provideZonelessChangeDetection as ɵprovideZonelessChangeDetection, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setEnsureDirtyViewsAreAlwaysReachable as ɵsetEnsureDirtyViewsAreAlwaysReachable, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵvalidateIframeAttribute, ɵɵviewQuery };
35114
35143
  //# sourceMappingURL=core.mjs.map