@angular/core 19.0.4 → 19.0.6

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 (34) hide show
  1. package/LICENSE +1 -1
  2. package/fesm2022/core.mjs +122 -93
  3. package/fesm2022/core.mjs.map +1 -1
  4. package/fesm2022/primitives/event-dispatch.mjs +1 -24
  5. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  6. package/fesm2022/primitives/signals.mjs +1 -1
  7. package/fesm2022/rxjs-interop.mjs +1 -1
  8. package/fesm2022/testing.mjs +4 -4
  9. package/index.d.ts +28 -4
  10. package/package.json +1 -1
  11. package/primitives/event-dispatch/index.d.ts +1 -1
  12. package/primitives/signals/index.d.ts +1 -1
  13. package/rxjs-interop/index.d.ts +1 -1
  14. package/schematics/bundles/{checker-c58f97d2.js → checker-99fcd356.js} +67 -27
  15. package/schematics/bundles/{combine_units-7f681271.js → combine_units-755cada7.js} +3 -3
  16. package/schematics/bundles/{compiler_host-f5d588fe.js → compiler_host-6ebdb0ca.js} +2 -2
  17. package/schematics/bundles/control-flow-migration.js +3 -3
  18. package/schematics/bundles/explicit-standalone-flag.js +5 -5
  19. package/schematics/bundles/{imports-31a38653.js → imports-abe29092.js} +1 -1
  20. package/schematics/bundles/inject-migration.js +6 -6
  21. package/schematics/bundles/{leading_space-6e7a8ec6.js → leading_space-d190b83b.js} +1 -1
  22. package/schematics/bundles/{migrate_ts_type_references-4ddf2b3b.js → migrate_ts_type_references-c61efd47.js} +5 -5
  23. package/schematics/bundles/{nodes-88c2157f.js → nodes-a9f0b985.js} +2 -2
  24. package/schematics/bundles/output-migration.js +5 -5
  25. package/schematics/bundles/pending-tasks.js +5 -5
  26. package/schematics/bundles/{program-4ee751e4.js → program-2d2a3ded.js} +70 -29
  27. package/schematics/bundles/{project_tsconfig_paths-6c9cde78.js → project_tsconfig_paths-e9ccccbf.js} +1 -1
  28. package/schematics/bundles/provide-initializer.js +5 -5
  29. package/schematics/bundles/route-lazy-loading.js +4 -4
  30. package/schematics/bundles/signal-input-migration.js +7 -7
  31. package/schematics/bundles/signal-queries-migration.js +7 -7
  32. package/schematics/bundles/signals.js +7 -7
  33. package/schematics/bundles/standalone-migration.js +8 -8
  34. package/testing/index.d.ts +1 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License
2
2
 
3
- Copyright (c) 2010-2024 Google LLC. https://angular.dev/license
3
+ Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/fesm2022/core.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.4
2
+ * @license Angular v19.0.6
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -273,6 +273,7 @@ function ngDevModeResetPerfCounters() {
273
273
  dehydratedViewsRemoved: 0,
274
274
  dehydratedViewsCleanupRuns: 0,
275
275
  componentsSkippedHydration: 0,
276
+ deferBlocksWithIncrementalHydration: 0,
276
277
  };
277
278
  // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.
278
279
  const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;
@@ -1706,8 +1707,7 @@ function getPipeDef$1(type) {
1706
1707
  */
1707
1708
  function isStandalone(type) {
1708
1709
  const def = getComponentDef(type) || getDirectiveDef(type) || getPipeDef$1(type);
1709
- // TODO: standalone as default value (invert the condition)
1710
- return def !== null ? def.standalone : false;
1710
+ return def !== null && def.standalone;
1711
1711
  }
1712
1712
 
1713
1713
  /**
@@ -6172,7 +6172,8 @@ class PendingTasks {
6172
6172
  }
6173
6173
 
6174
6174
  class EventEmitter_ extends Subject {
6175
- __isAsync; // tslint:disable-line
6175
+ // tslint:disable-next-line:require-internal-with-underscore
6176
+ __isAsync;
6176
6177
  destroyRef = undefined;
6177
6178
  pendingTasks = undefined;
6178
6179
  constructor(isAsync = false) {
@@ -6508,7 +6509,7 @@ class NgZone {
6508
6509
  * Executes the `fn` function synchronously within the Angular zone as a task and returns value
6509
6510
  * returned by the function.
6510
6511
  *
6511
- * Running functions via `run` allows you to reenter Angular zone from a task that was executed
6512
+ * Running functions via `runTask` allows you to reenter Angular zone from a task that was executed
6512
6513
  * outside of the Angular zone (typically started via {@link #runOutsideAngular}).
6513
6514
  *
6514
6515
  * Any future tasks or microtasks scheduled from within this function will continue executing from
@@ -9549,7 +9550,6 @@ function retrieveHydrationInfoImpl(rNode, injector, isRootView = false) {
9549
9550
  const rootNgh = rootViewNgh ? `|${rootViewNgh}` : '';
9550
9551
  const remainingNgh = isRootView ? componentViewNgh : rootNgh;
9551
9552
  let data = {};
9552
- let nghDeferData;
9553
9553
  // An element might have an empty `ngh` attribute value (e.g. `<comp ngh="" />`),
9554
9554
  // which means that no special annotations are required. Do not attempt to read
9555
9555
  // from the TransferState in this case.
@@ -9557,7 +9557,6 @@ function retrieveHydrationInfoImpl(rNode, injector, isRootView = false) {
9557
9557
  const transferState = injector.get(TransferState, null, { optional: true });
9558
9558
  if (transferState !== null) {
9559
9559
  const nghData = transferState.get(NGH_DATA_KEY, []);
9560
- nghDeferData = transferState.get(NGH_DEFER_BLOCKS_KEY, {});
9561
9560
  // The nghAttrValue is always a number referencing an index
9562
9561
  // in the hydration TransferState data.
9563
9562
  data = nghData[Number(nghAttrValue)];
@@ -9717,6 +9716,13 @@ function markRNodeAsSkippedByHydration(node) {
9717
9716
  patchHydrationInfo(node, { status: HydrationStatus.Skipped });
9718
9717
  ngDevMode.componentsSkippedHydration++;
9719
9718
  }
9719
+ function countBlocksSkippedByHydration(injector) {
9720
+ const transferState = injector.get(TransferState);
9721
+ const nghDeferData = transferState.get(NGH_DEFER_BLOCKS_KEY, {});
9722
+ if (ngDevMode) {
9723
+ ngDevMode.deferBlocksWithIncrementalHydration = Object.keys(nghDeferData).length;
9724
+ }
9725
+ }
9720
9726
  function markRNodeAsHavingHydrationMismatch(node, expectedNodeDetails = null, actualNodeDetails = null) {
9721
9727
  if (!ngDevMode) {
9722
9728
  throw new Error('Calling `markRNodeAsMismatchedByHydration` in prod mode ' +
@@ -16623,11 +16629,15 @@ function gatherDeferBlocksCommentNodes(doc, node) {
16623
16629
  let currentNode;
16624
16630
  const nodesByBlockId = new Map();
16625
16631
  while ((currentNode = commentNodesIterator.nextNode())) {
16626
- // TODO(incremental-hydration: convert this to use string parsing rather than regex
16627
- const regex = new RegExp(/^\s*ngh=(d[0-9]+)/g);
16628
- const result = regex.exec(currentNode?.textContent ?? '');
16629
- if (result && result?.length > 0) {
16630
- nodesByBlockId.set(result[1], currentNode);
16632
+ const nghPattern = 'ngh=';
16633
+ const content = currentNode?.textContent;
16634
+ const nghIdx = content?.indexOf(nghPattern) ?? -1;
16635
+ if (nghIdx > -1) {
16636
+ const nghValue = content.substring(nghIdx + nghPattern.length).trim();
16637
+ // Make sure the value has an expected format.
16638
+ ngDevMode &&
16639
+ assertEqual(nghValue.startsWith('d'), true, 'Invalid defer block id found in a comment node.');
16640
+ nodesByBlockId.set(nghValue, currentNode);
16631
16641
  }
16632
16642
  }
16633
16643
  return nodesByBlockId;
@@ -18078,7 +18088,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
18078
18088
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
18079
18089
  if (rootSelectorOrNode) {
18080
18090
  // The placeholder will be replaced with the actual version at build time.
18081
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.4']);
18091
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.6']);
18082
18092
  }
18083
18093
  else {
18084
18094
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -19677,7 +19687,6 @@ class NgModuleRef extends NgModuleRef$1 {
19677
19687
  _parent;
19678
19688
  // tslint:disable-next-line:require-internal-with-underscore
19679
19689
  _bootstrapComponents = [];
19680
- // tslint:disable-next-line:require-internal-with-underscore
19681
19690
  _r3Injector;
19682
19691
  instance;
19683
19692
  destroyCbs = [];
@@ -21165,7 +21174,8 @@ class CachedInjectorService {
21165
21174
  *
21166
21175
  * This token is only injected in devMode
21167
21176
  */
21168
- const DEFER_BLOCK_DEPENDENCY_INTERCEPTOR = new InjectionToken('DEFER_BLOCK_DEPENDENCY_INTERCEPTOR');
21177
+ const DEFER_BLOCK_DEPENDENCY_INTERCEPTOR =
21178
+ /* @__PURE__ */ new InjectionToken('DEFER_BLOCK_DEPENDENCY_INTERCEPTOR');
21169
21179
  /**
21170
21180
  * **INTERNAL**, token used for configuring defer block behavior.
21171
21181
  */
@@ -21275,15 +21285,8 @@ function renderDeferBlockState(newState, tNode, lContainer, skipTimerScheduling
21275
21285
  }
21276
21286
  }
21277
21287
  function findMatchingDehydratedViewForDeferBlock(lContainer, lDetails) {
21278
- // TODO(incremental-hydration): extract into a separate util function and use in relevant places.
21279
- const views = lContainer[DEHYDRATED_VIEWS];
21280
- if (views === null || views.length === 0) {
21281
- return null;
21282
- }
21283
21288
  // Find matching view based on serialized defer block state.
21284
- // TODO(incremental-hydration): reconcile this logic with the regular logic that looks up
21285
- // dehydrated views to see if there is anything missing in this function.
21286
- return (views.find((view) => view.data[DEFER_BLOCK_STATE$1] === lDetails[DEFER_BLOCK_STATE]) ?? null);
21289
+ return (lContainer[DEHYDRATED_VIEWS]?.find((view) => view.data[DEFER_BLOCK_STATE$1] === lDetails[DEFER_BLOCK_STATE]) ?? null);
21287
21290
  }
21288
21291
  /**
21289
21292
  * Applies changes to the DOM to reflect a given state.
@@ -21315,30 +21318,22 @@ function applyDeferBlockState(newState, lDetails, lContainer, tNode, hostLView)
21315
21318
  }
21316
21319
  }
21317
21320
  const dehydratedView = findMatchingDehydratedViewForDeferBlock(lContainer, lDetails);
21318
- // Render either when we don't have dehydrated views at all (e.g. client rendering)
21319
- // or when dehydrated view is found (in which case we hydrate).
21320
- // Otherwise, do nothing, since we'd end up erasing SSR'ed content.
21321
- // TODO(incremental-hydration): Use the util function for checking dehydrated views mentioned above
21322
- const isClientOnly = lContainer[DEHYDRATED_VIEWS] === null || lContainer[DEHYDRATED_VIEWS].length === 0;
21323
- if (isClientOnly || dehydratedView) {
21324
- // Erase dehydrated view info, so that it's not removed later
21325
- // by post-hydration cleanup process.
21326
- // TODO(incremental-hydration): we need a better mechanism here.
21327
- lContainer[DEHYDRATED_VIEWS] = null;
21328
- const embeddedLView = createAndRenderEmbeddedLView(hostLView, activeBlockTNode, null, {
21329
- injector,
21330
- dehydratedView,
21331
- });
21332
- addLViewToLContainer(lContainer, embeddedLView, viewIndex, shouldAddViewToDom(activeBlockTNode, dehydratedView));
21333
- markViewDirty(embeddedLView, 2 /* NotificationSource.DeferBlockStateUpdate */);
21334
- }
21321
+ // Erase dehydrated view info, so that it's not removed later
21322
+ // by post-hydration cleanup process.
21323
+ lContainer[DEHYDRATED_VIEWS] = null;
21324
+ const embeddedLView = createAndRenderEmbeddedLView(hostLView, activeBlockTNode, null, {
21325
+ injector,
21326
+ dehydratedView,
21327
+ });
21328
+ addLViewToLContainer(lContainer, embeddedLView, viewIndex, shouldAddViewToDom(activeBlockTNode, dehydratedView));
21329
+ markViewDirty(embeddedLView, 2 /* NotificationSource.DeferBlockStateUpdate */);
21335
21330
  // TODO(incremental-hydration):
21336
21331
  // - what if we had some views in `lContainer[DEHYDRATED_VIEWS]`, but
21337
21332
  // we didn't find a view that matches the expected state?
21338
21333
  // - for example, handle a situation when a block was in the "completed" state
21339
21334
  // on the server, but the loading failing on the client. How do we reconcile and cleanup?
21340
- // TODO(incremental-hydration): should we also invoke if newState === DeferBlockState.Error?
21341
- if (newState === DeferBlockState.Complete && Array.isArray(lDetails[ON_COMPLETE_FNS])) {
21335
+ if ((newState === DeferBlockState.Complete || newState === DeferBlockState.Error) &&
21336
+ Array.isArray(lDetails[ON_COMPLETE_FNS])) {
21342
21337
  for (const callback of lDetails[ON_COMPLETE_FNS]) {
21343
21338
  callback();
21344
21339
  }
@@ -21572,7 +21567,6 @@ class Console {
21572
21567
  }
21573
21568
  // Note: for reporting errors use `DOM.logError()` as it is platform specific
21574
21569
  warn(message) {
21575
- // tslint:disable-next-line:no-console
21576
21570
  console.warn(message);
21577
21571
  }
21578
21572
  static ɵfac = function Console_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Console)(); };
@@ -23009,6 +23003,15 @@ class ZoneAwareEffectScheduler {
23009
23003
  schedule(handle) {
23010
23004
  this.enqueue(handle);
23011
23005
  }
23006
+ remove(handle) {
23007
+ const zone = handle.zone;
23008
+ const queue = this.queues.get(zone);
23009
+ if (!queue.has(handle)) {
23010
+ return;
23011
+ }
23012
+ queue.delete(handle);
23013
+ this.queuedEffectCount--;
23014
+ }
23012
23015
  enqueue(handle) {
23013
23016
  const zone = handle.zone;
23014
23017
  if (!this.queues.has(zone)) {
@@ -23337,7 +23340,7 @@ class ApplicationRef {
23337
23340
  * {@example core/ts/platform/platform.ts region='domNode'}
23338
23341
  */
23339
23342
  bootstrap(componentOrFactory, rootSelectorOrNode) {
23340
- (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
23343
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
23341
23344
  const isComponentFactory = componentOrFactory instanceof ComponentFactory$1;
23342
23345
  const initStatus = this._injector.get(ApplicationInitStatus);
23343
23346
  if (!initStatus.done) {
@@ -23407,7 +23410,7 @@ class ApplicationRef {
23407
23410
  snapshot.dispose();
23408
23411
  return;
23409
23412
  }
23410
- (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
23413
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
23411
23414
  if (this._runningTick) {
23412
23415
  throw new RuntimeError(101 /* RuntimeErrorCode.RECURSIVE_APPLICATION_REF_TICK */, ngDevMode && 'ApplicationRef.tick is called recursively');
23413
23416
  }
@@ -23538,7 +23541,7 @@ class ApplicationRef {
23538
23541
  * This will throw if the view is already attached to a ViewContainer.
23539
23542
  */
23540
23543
  attachView(viewRef) {
23541
- (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
23544
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
23542
23545
  const view = viewRef;
23543
23546
  this._views.push(view);
23544
23547
  view.attachToAppRef(this);
@@ -23547,7 +23550,7 @@ class ApplicationRef {
23547
23550
  * Detaches a view from dirty checking again.
23548
23551
  */
23549
23552
  detachView(viewRef) {
23550
- (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
23553
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
23551
23554
  const view = viewRef;
23552
23555
  remove(this._views, view);
23553
23556
  view.detachFromAppRef();
@@ -23591,7 +23594,7 @@ class ApplicationRef {
23591
23594
  * @returns A function which unregisters a listener.
23592
23595
  */
23593
23596
  onDestroy(callback) {
23594
- (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
23597
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
23595
23598
  this._destroyListeners.push(callback);
23596
23599
  return () => remove(this._destroyListeners, callback);
23597
23600
  }
@@ -23618,11 +23621,6 @@ class ApplicationRef {
23618
23621
  get viewCount() {
23619
23622
  return this._views.length;
23620
23623
  }
23621
- warnIfDestroyed() {
23622
- if ((typeof ngDevMode === 'undefined' || ngDevMode) && this._destroyed) {
23623
- console.warn(formatRuntimeError(406 /* RuntimeErrorCode.APPLICATION_REF_ALREADY_DESTROYED */, 'This instance of the `ApplicationRef` has already been destroyed.'));
23624
- }
23625
- }
23626
23624
  static ɵfac = function ApplicationRef_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ApplicationRef)(); };
23627
23625
  static ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationRef, factory: ApplicationRef.ɵfac, providedIn: 'root' });
23628
23626
  }
@@ -23630,6 +23628,11 @@ class ApplicationRef {
23630
23628
  type: Injectable,
23631
23629
  args: [{ providedIn: 'root' }]
23632
23630
  }], () => [], null); })();
23631
+ function warnIfDestroyed(destroyed) {
23632
+ if (destroyed) {
23633
+ console.warn(formatRuntimeError(406 /* RuntimeErrorCode.APPLICATION_REF_ALREADY_DESTROYED */, 'This instance of the `ApplicationRef` has already been destroyed.'));
23634
+ }
23635
+ }
23633
23636
  function remove(list, el) {
23634
23637
  const index = list.indexOf(el);
23635
23638
  if (index > -1) {
@@ -23655,9 +23658,14 @@ function detectChangesInViewIfRequired(lView, notifyErrorHandler, isFirstPass, z
23655
23658
  function scheduleDelayedTrigger(scheduleFn) {
23656
23659
  const lView = getLView();
23657
23660
  const tNode = getCurrentTNode();
23661
+ renderPlaceholder(lView, tNode);
23662
+ // Exit early to avoid invoking `scheduleFn`, which would
23663
+ // add `setTimeout` call and potentially delay serialization
23664
+ // on the server unnecessarily.
23665
+ if (!shouldTriggerDeferBlock(0 /* TriggerType.Regular */, lView))
23666
+ return;
23658
23667
  const injector = lView[INJECTOR];
23659
23668
  const lDetails = getLDeferBlockDetails(lView, tNode);
23660
- renderPlaceholder(lView, tNode);
23661
23669
  const cleanupFn = scheduleFn(() => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), injector);
23662
23670
  storeTriggerCleanupFn(0 /* TriggerType.Regular */, lDetails, cleanupFn);
23663
23671
  }
@@ -23785,7 +23793,7 @@ function triggerResourceLoading(tDetails, lView, tNode) {
23785
23793
  tDetails.loadingState = DeferDependenciesLoadingState.FAILED;
23786
23794
  if (tDetails.errorTmplIndex === null) {
23787
23795
  const templateLocation = ngDevMode ? getTemplateLocationDetails(lView) : '';
23788
- const error = new RuntimeError(750 /* RuntimeErrorCode.DEFER_LOADING_FAILED */, ngDevMode &&
23796
+ const error = new RuntimeError(-750 /* RuntimeErrorCode.DEFER_LOADING_FAILED */, ngDevMode &&
23789
23797
  'Loading dependencies for `@defer` block failed, ' +
23790
23798
  `but no \`@error\` block was configured${templateLocation}. ` +
23791
23799
  'Consider using the `@error` block to render an error state.');
@@ -23939,30 +23947,25 @@ function populateHydratingStateForQueue(registry, queue) {
23939
23947
  }
23940
23948
  // Waits for the next render cycle to complete
23941
23949
  function nextRender(injector) {
23942
- let resolve;
23943
- const promise = new Promise((resolveFn) => {
23944
- resolve = resolveFn;
23945
- });
23946
- afterNextRender(() => resolve(), { injector });
23947
- return promise;
23950
+ return new Promise((resolveFn) => afterNextRender(resolveFn, { injector }));
23948
23951
  }
23949
- function triggerResourceLoadingForHydration(dehydratedBlockId, dehydratedBlockRegistry) {
23950
- let resolve;
23951
- const promise = new Promise((resolveFn) => (resolve = resolveFn));
23952
+ async function triggerResourceLoadingForHydration(dehydratedBlockId, dehydratedBlockRegistry) {
23952
23953
  const deferBlock = dehydratedBlockRegistry.get(dehydratedBlockId);
23953
23954
  // Since we trigger hydration for nested defer blocks in a sequence (parent -> child),
23954
23955
  // there is a chance that a defer block may not be present at hydration time. For example,
23955
23956
  // when a nested block was in an `@if` condition, which has changed.
23956
- if (deferBlock !== null) {
23957
- const { tNode, lView } = deferBlock;
23958
- const lDetails = getLDeferBlockDetails(lView, tNode);
23959
- onDeferBlockCompletion(lDetails, () => resolve());
23960
- triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
23957
+ if (deferBlock === null) {
23961
23958
  // TODO(incremental-hydration): handle the cleanup for cases when
23962
23959
  // defer block is no longer present during hydration (e.g. `@if` condition
23963
23960
  // has changed during hydration/rendering).
23961
+ return;
23964
23962
  }
23965
- return promise;
23963
+ const { tNode, lView } = deferBlock;
23964
+ const lDetails = getLDeferBlockDetails(lView, tNode);
23965
+ return new Promise((resolve) => {
23966
+ onDeferBlockCompletion(lDetails, resolve);
23967
+ triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
23968
+ });
23966
23969
  }
23967
23970
  /**
23968
23971
  * Registers cleanup functions for a defer block when the block has finished
@@ -24436,7 +24439,7 @@ function ɵɵdeferHydrateOnTimer(delay) {
24436
24439
  if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
24437
24440
  return;
24438
24441
  const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24439
- hydrateTriggers.set(5 /* DeferBlockTrigger.Timer */, delay);
24442
+ hydrateTriggers.set(5 /* DeferBlockTrigger.Timer */, { delay });
24440
24443
  if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24441
24444
  // We are on the server and SSR for defer blocks is enabled.
24442
24445
  triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
@@ -27309,7 +27312,6 @@ function reconcile(liveCollection, newCollection, trackByFn) {
27309
27312
  'Duplicated keys were: \n' +
27310
27313
  duplicatedKeysMsg.join(', \n') +
27311
27314
  '.');
27312
- // tslint:disable-next-line:no-console
27313
27315
  console.warn(message);
27314
27316
  }
27315
27317
  }
@@ -28137,10 +28139,8 @@ if (typeof ngI18nClosureMode === 'undefined') {
28137
28139
  // Make sure to refer to ngI18nClosureMode as ['ngI18nClosureMode'] for closure.
28138
28140
  // NOTE: we need to have it in IIFE so that the tree-shaker is happy.
28139
28141
  (function () {
28140
- // tslint:disable-next-line:no-toplevel-property-access
28141
28142
  _global['ngI18nClosureMode'] =
28142
28143
  // TODO(FW-1250): validate that this actually, you know, works.
28143
- // tslint:disable-next-line:no-toplevel-property-access
28144
28144
  typeof goog !== 'undefined' && typeof goog.getMsg === 'function';
28145
28145
  })();
28146
28146
  }
@@ -33106,8 +33106,9 @@ function recreateMatchingLViews(def, rootLView) {
33106
33106
  */
33107
33107
  function clearRendererCache(factory, def) {
33108
33108
  // Cast to read a private field.
33109
- // NOTE: This must be kept synchronized with the renderer factory implementation in platform-browser.
33110
- factory.rendererByCompId?.delete(def.id);
33109
+ // NOTE: This must be kept synchronized with the renderer factory implementation in
33110
+ // platform-browser and platform-browser/animations.
33111
+ factory.componentReplaced?.(def.id);
33111
33112
  }
33112
33113
  /**
33113
33114
  * Recreates an LView in-place from a new component definition.
@@ -34572,7 +34573,7 @@ class Version {
34572
34573
  /**
34573
34574
  * @publicApi
34574
34575
  */
34575
- const VERSION = new Version('19.0.4');
34576
+ const VERSION = new Version('19.0.6');
34576
34577
 
34577
34578
  /**
34578
34579
  * Combination of NgModuleFactory and ComponentFactories.
@@ -35593,6 +35594,27 @@ function logOversizedImageWarning(src) {
35593
35594
  */
35594
35595
  const PLATFORM_DESTROY_LISTENERS = new InjectionToken(ngDevMode ? 'PlatformDestroyListeners' : '');
35595
35596
 
35597
+ /**
35598
+ * InjectionToken to control root component bootstrap behavior.
35599
+ *
35600
+ * This token is primarily used in Angular's server-side rendering (SSR) scenarios,
35601
+ * particularly by the `@angular/ssr` package, to manage whether the root component
35602
+ * should be bootstrapped during the application initialization process.
35603
+ *
35604
+ * ## Purpose:
35605
+ * During SSR route extraction, setting this token to `false` prevents Angular from
35606
+ * bootstrapping the root component. This avoids unnecessary component rendering,
35607
+ * enabling route extraction without requiring additional APIs or triggering
35608
+ * component logic.
35609
+ *
35610
+ * ## Behavior:
35611
+ * - **`false`**: Prevents the root component from being bootstrapped.
35612
+ * - **`true`** (default): Proceeds with the normal root component bootstrap process.
35613
+ *
35614
+ * This mechanism ensures SSR can efficiently separate route extraction logic
35615
+ * from component rendering.
35616
+ */
35617
+ const ENABLE_ROOT_COMPONENT_BOOTSTRAP = new InjectionToken(ngDevMode ? 'ENABLE_ROOT_COMPONENT_BOOTSTRAP' : '');
35596
35618
  function isApplicationBootstrapConfig(config) {
35597
35619
  return !config.moduleRef;
35598
35620
  }
@@ -35657,6 +35679,14 @@ function bootstrap(config) {
35657
35679
  // If the `LOCALE_ID` provider is defined at bootstrap then we set the value for ivy
35658
35680
  const localeId = envInjector.get(LOCALE_ID, DEFAULT_LOCALE_ID);
35659
35681
  setLocaleId(localeId || DEFAULT_LOCALE_ID);
35682
+ const enableRootComponentBoostrap = envInjector.get(ENABLE_ROOT_COMPONENT_BOOTSTRAP, true);
35683
+ if (!enableRootComponentBoostrap) {
35684
+ if (isApplicationBootstrapConfig(config)) {
35685
+ return envInjector.get(ApplicationRef);
35686
+ }
35687
+ config.allPlatformModules.push(config.moduleRef);
35688
+ return config.moduleRef;
35689
+ }
35660
35690
  if (typeof ngDevMode === 'undefined' || ngDevMode) {
35661
35691
  const imagePerformanceService = envInjector.get(ImagePerformanceWarning);
35662
35692
  imagePerformanceService.start();
@@ -38967,7 +38997,6 @@ function annotateForHydration(appRef, doc) {
38967
38997
  transferState.set(NGH_DATA_KEY, serializedViews);
38968
38998
  if (deferBlocks.size > 0) {
38969
38999
  const blocks = {};
38970
- // TODO(incremental-hydration): we should probably have an object here instead of a Map?
38971
39000
  for (const [id, info] of deferBlocks.entries()) {
38972
39001
  blocks[id] = info;
38973
39002
  }
@@ -39036,10 +39065,10 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
39036
39065
  // If this is a defer block, serialize extra info.
39037
39066
  if (isDeferBlock(lView[TVIEW], tNode)) {
39038
39067
  const lDetails = getLDeferBlockDetails(lView, tNode);
39039
- if (context.isIncrementalHydrationEnabled) {
39068
+ const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
39069
+ if (context.isIncrementalHydrationEnabled && tDetails.hydrateTriggers !== null) {
39040
39070
  const deferBlockId = `d${context.deferBlocks.size}`;
39041
- const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
39042
- if (tDetails.hydrateTriggers?.has(7 /* DeferBlockTrigger.Never */)) {
39071
+ if (tDetails.hydrateTriggers.has(7 /* DeferBlockTrigger.Never */)) {
39043
39072
  isHydrateNeverBlock = true;
39044
39073
  }
39045
39074
  let rootNodes = [];
@@ -39049,8 +39078,11 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
39049
39078
  [DEFER_PARENT_BLOCK_ID]: parentDeferBlockId,
39050
39079
  [NUM_ROOT_NODES]: rootNodes.length,
39051
39080
  [DEFER_BLOCK_STATE$1]: lDetails[DEFER_BLOCK_STATE],
39052
- [DEFER_HYDRATE_TRIGGERS]: serializeHydrateTriggers(tDetails.hydrateTriggers),
39053
39081
  };
39082
+ const serializedTriggers = serializeHydrateTriggers(tDetails.hydrateTriggers);
39083
+ if (serializedTriggers.length > 0) {
39084
+ deferBlockInfo[DEFER_HYDRATE_TRIGGERS] = serializedTriggers;
39085
+ }
39054
39086
  context.deferBlocks.set(deferBlockId, deferBlockInfo);
39055
39087
  const node = unwrapRNode(lContainer);
39056
39088
  if (node !== undefined) {
@@ -39081,11 +39113,7 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
39081
39113
  serializedView[DEFER_BLOCK_STATE$1] = lDetails[DEFER_BLOCK_STATE];
39082
39114
  }
39083
39115
  if (!isHydrateNeverBlock) {
39084
- // TODO(incremental-hydration): avoid copying of an object here
39085
- serializedView = {
39086
- ...serializedView,
39087
- ...serializeLView(lContainer[i], parentDeferBlockId, context),
39088
- };
39116
+ Object.assign(serializedView, serializeLView(lContainer[i], parentDeferBlockId, context));
39089
39117
  }
39090
39118
  }
39091
39119
  // Check if the previous view has the same shape (for example, it was
@@ -39106,9 +39134,6 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
39106
39134
  return views;
39107
39135
  }
39108
39136
  function serializeHydrateTriggers(triggerMap) {
39109
- if (triggerMap === null) {
39110
- return null;
39111
- }
39112
39137
  const serializableDeferBlockTrigger = new Set([
39113
39138
  0 /* DeferBlockTrigger.Idle */,
39114
39139
  1 /* DeferBlockTrigger.Immediate */,
@@ -39122,7 +39147,7 @@ function serializeHydrateTriggers(triggerMap) {
39122
39147
  triggers.push(trigger);
39123
39148
  }
39124
39149
  else {
39125
- triggers.push({ trigger, details });
39150
+ triggers.push({ trigger, delay: details.delay });
39126
39151
  }
39127
39152
  }
39128
39153
  }
@@ -39540,6 +39565,9 @@ function printHydrationStats(injector) {
39540
39565
  const message = `Angular hydrated ${ngDevMode.hydratedComponents} component(s) ` +
39541
39566
  `and ${ngDevMode.hydratedNodes} node(s), ` +
39542
39567
  `${ngDevMode.componentsSkippedHydration} component(s) were skipped. ` +
39568
+ (isIncrementalHydrationEnabled(injector)
39569
+ ? `${ngDevMode.deferBlocksWithIncrementalHydration} defer block(s) were configured to use incremental hydration. `
39570
+ : '') +
39543
39571
  `Learn more at https://angular.dev/guide/hydration.`;
39544
39572
  // tslint:disable-next-line:no-console
39545
39573
  console.log(message);
@@ -39629,7 +39657,6 @@ function withDomHydration() {
39629
39657
  'thus hydration was not enabled. ' +
39630
39658
  'Make sure the `provideClientHydration()` is included into the list ' +
39631
39659
  'of providers in the server part of the application configuration.');
39632
- // tslint:disable-next-line:no-console
39633
39660
  console.warn(message);
39634
39661
  }
39635
39662
  },
@@ -39663,6 +39690,7 @@ function withDomHydration() {
39663
39690
  whenStableWithTimeout(appRef, injector).then(() => {
39664
39691
  cleanupDehydratedViews(appRef);
39665
39692
  if (typeof ngDevMode !== 'undefined' && ngDevMode) {
39693
+ countBlocksSkippedByHydration(injector);
39666
39694
  printHydrationStats(injector);
39667
39695
  }
39668
39696
  });
@@ -40480,6 +40508,7 @@ const ROOT_EFFECT_NODE =
40480
40508
  consumerDestroy$1(this);
40481
40509
  this.onDestroyFn();
40482
40510
  this.maybeCleanup();
40511
+ this.scheduler.remove(this);
40483
40512
  },
40484
40513
  }))();
40485
40514
  const VIEW_EFFECT_NODE =
@@ -41160,5 +41189,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
41160
41189
  * Generated bundle index. Do not edit.
41161
41190
  */
41162
41191
 
41163
- 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_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as 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, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, PendingTasks, Pipe, PlatformRef, Query, QueryList, REQUEST, REQUEST_CONTEXT, RESPONSE_INIT, Renderer2, RendererFactory2, RendererStyleFlags2, ResourceStatus, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation, ViewRef, afterNextRender, afterRender, afterRenderEffect, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, linkedSignal, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideAppInitializer, provideEnvironmentInitializer, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, providePlatformInitializer, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, resource, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderManager as ɵAfterRenderManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, 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, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, MicrotaskEffectScheduler as ɵMicrotaskEffectScheduler, 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, PERFORMANCE_MARK_PREFIX as ɵPERFORMANCE_MARK_PREFIX, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasksInternal as ɵPendingTasksInternal, 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, TracingAction as ɵTracingAction, TracingService as ɵTracingService, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _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, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, disableProfiling as ɵdisableProfiling, enableProfiling as ɵenableProfiling, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getClosestComponentName as ɵgetClosestComponentName, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, microtaskEffect as ɵmicrotaskEffect, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, publishExternalGlobalUtil as ɵpublishExternalGlobalUtil, readHydrationInfo as ɵreadHydrationInfo, 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, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, startMeasuring as ɵstartMeasuring, stopMeasuring as ɵstopMeasuring, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, withIncrementalHydration as ɵwithIncrementalHydration, ɵɵCopyDefinitionFeature, ɵɵExternalStylesFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵ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, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵ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, ɵɵngDeclareClassMetadataAsync, ɵɵ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, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵ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, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
41192
+ 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_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as 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, OutputEmitterRef, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, PendingTasks, Pipe, PlatformRef, Query, QueryList, REQUEST, REQUEST_CONTEXT, RESPONSE_INIT, Renderer2, RendererFactory2, RendererStyleFlags2, ResourceStatus, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation, ViewRef, afterNextRender, afterRender, afterRenderEffect, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, linkedSignal, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideAppInitializer, provideEnvironmentInitializer, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, providePlatformInitializer, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, resource, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderManager as ɵAfterRenderManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, 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, ENABLE_ROOT_COMPONENT_BOOTSTRAP as ɵENABLE_ROOT_COMPONENT_BOOTSTRAP, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, IS_INCREMENTAL_HYDRATION_ENABLED as ɵIS_INCREMENTAL_HYDRATION_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, MicrotaskEffectScheduler as ɵMicrotaskEffectScheduler, 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, PERFORMANCE_MARK_PREFIX as ɵPERFORMANCE_MARK_PREFIX, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, PendingTasksInternal as ɵPendingTasksInternal, 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, TracingAction as ɵTracingAction, TracingService as ɵTracingService, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _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, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, devModeEqual as ɵdevModeEqual, disableProfiling as ɵdisableProfiling, enableProfiling as ɵenableProfiling, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getClosestComponentName as ɵgetClosestComponentName, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, microtaskEffect as ɵmicrotaskEffect, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, publishExternalGlobalUtil as ɵpublishExternalGlobalUtil, readHydrationInfo as ɵreadHydrationInfo, 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, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, startMeasuring as ɵstartMeasuring, stopMeasuring as ɵstopMeasuring, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, ɵunwrapWritableSignal, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, withIncrementalHydration as ɵwithIncrementalHydration, ɵɵCopyDefinitionFeature, ɵɵExternalStylesFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵ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, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferHydrateNever, ɵɵdeferHydrateOnHover, ɵɵdeferHydrateOnIdle, ɵɵdeferHydrateOnImmediate, ɵɵdeferHydrateOnInteraction, ɵɵdeferHydrateOnTimer, ɵɵdeferHydrateOnViewport, ɵɵdeferHydrateWhen, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵ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, ɵɵngDeclareClassMetadataAsync, ɵɵ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, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵreplaceMetadata, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵ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, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
41164
41193
  //# sourceMappingURL=core.mjs.map