@angular/core 19.0.1 → 19.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/fesm2022/core.mjs +201 -210
  2. package/fesm2022/core.mjs.map +1 -1
  3. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  4. package/fesm2022/primitives/signals.mjs +1 -1
  5. package/fesm2022/rxjs-interop.mjs +1 -1
  6. package/fesm2022/testing.mjs +4 -4
  7. package/index.d.ts +56 -38
  8. package/package.json +1 -1
  9. package/primitives/event-dispatch/index.d.ts +1 -1
  10. package/primitives/signals/index.d.ts +1 -1
  11. package/rxjs-interop/index.d.ts +1 -1
  12. package/schematics/bundles/{checker-3cbc9cc1.js → checker-a00b735e.js} +22 -23
  13. package/schematics/bundles/{combine_units-c36a3065.js → combine_units-60865867.js} +3 -3
  14. package/schematics/bundles/{compiler_host-087c5caa.js → compiler_host-3e96c3f7.js} +2 -2
  15. package/schematics/bundles/control-flow-migration.js +3 -3
  16. package/schematics/bundles/explicit-standalone-flag.js +5 -5
  17. package/schematics/bundles/{imports-4ac08251.js → imports-44987700.js} +1 -1
  18. package/schematics/bundles/inject-migration.js +60 -39
  19. package/schematics/bundles/{leading_space-d190b83b.js → leading_space-6e7a8ec6.js} +1 -1
  20. package/schematics/bundles/{migrate_ts_type_references-bb0c286a.js → migrate_ts_type_references-676612f5.js} +5 -5
  21. package/schematics/bundles/{nodes-0e7d45ca.js → nodes-b12e919a.js} +2 -2
  22. package/schematics/bundles/output-migration.js +5 -5
  23. package/schematics/bundles/pending-tasks.js +5 -5
  24. package/schematics/bundles/{program-561595c4.js → program-a6be5d4a.js} +53 -29
  25. package/schematics/bundles/{project_tsconfig_paths-e9ccccbf.js → project_tsconfig_paths-6c9cde78.js} +1 -1
  26. package/schematics/bundles/provide-initializer.js +5 -5
  27. package/schematics/bundles/route-lazy-loading.js +4 -4
  28. package/schematics/bundles/signal-input-migration.js +7 -7
  29. package/schematics/bundles/signal-queries-migration.js +7 -7
  30. package/schematics/bundles/signals.js +7 -7
  31. package/schematics/bundles/standalone-migration.js +8 -8
  32. package/testing/index.d.ts +1 -1
package/fesm2022/core.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.1
2
+ * @license Angular v19.0.2
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -8,7 +8,7 @@ import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAcc
8
8
  export { SIGNAL as ɵSIGNAL } from '@angular/core/primitives/signals';
9
9
  import { BehaviorSubject, Subject, Subscription } from 'rxjs';
10
10
  import { Attribute as Attribute$1, EventContract, EventContractContainer, getAppScopedQueuedEventInfos, clearAppScopedEarlyEventContract, EventDispatcher, registerDispatcher, isEarlyEventType, isCaptureEventType, EventPhase } from '@angular/core/primitives/event-dispatch';
11
- import { map, first } from 'rxjs/operators';
11
+ import { map } from 'rxjs/operators';
12
12
 
13
13
  /**
14
14
  * Base URL for the error details page.
@@ -690,7 +690,7 @@ const NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafePr
690
690
  * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by
691
691
  * the `Injector`. This provides an additional level of type safety.
692
692
  *
693
- * <div class="alert is-helpful">
693
+ * <div class="docs-alert docs-alert-helpful">
694
694
  *
695
695
  * **Important Note**: Ensure that you use the same instance of the `InjectionToken` in both the
696
696
  * provider and the injection call. Creating a new instance of `InjectionToken` in different places,
@@ -8609,7 +8609,7 @@ var AfterRenderPhase;
8609
8609
  * `AfterRenderPhase.EarlyRead` phase if reading can wait until after the write phase.
8610
8610
  * **Never** write to the DOM in this phase.
8611
8611
  *
8612
- * <div class="alert is-important">
8612
+ * <div class="docs-alert docs-alert-important">
8613
8613
  *
8614
8614
  * Using this value can degrade performance.
8615
8615
  * Instead, prefer using built-in browser functionality when possible.
@@ -8627,7 +8627,7 @@ var AfterRenderPhase;
8627
8627
  * DOM, that haven't been refactored to use a different phase. **Never** use this phase if
8628
8628
  * it is possible to divide the work among the other phases instead.
8629
8629
  *
8630
- * <div class="alert is-critical">
8630
+ * <div class="docs-alert docs-alert-critical">
8631
8631
  *
8632
8632
  * Using this value can **significantly** degrade performance.
8633
8633
  * Instead, prefer dividing work into the appropriate phase callbacks.
@@ -8780,6 +8780,7 @@ class AfterRenderSequence {
8780
8780
  // associates the initial run of the hook with the context that created it.
8781
8781
  // Follow-up runs are independent of that initial context and have different
8782
8782
  // triggers.
8783
+ this.snapshot?.dispose();
8783
8784
  this.snapshot = null;
8784
8785
  }
8785
8786
  destroy() {
@@ -18078,7 +18079,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
18078
18079
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
18079
18080
  if (rootSelectorOrNode) {
18080
18081
  // The placeholder will be replaced with the actual version at build time.
18081
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.1']);
18082
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.2']);
18082
18083
  }
18083
18084
  else {
18084
18085
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -23292,6 +23293,7 @@ class ApplicationRef {
23292
23293
  });
23293
23294
  }
23294
23295
  _injector = inject(EnvironmentInjector);
23296
+ _rendererFactory = null;
23295
23297
  /**
23296
23298
  * The `EnvironmentInjector` used to create this application.
23297
23299
  */
@@ -23403,6 +23405,7 @@ class ApplicationRef {
23403
23405
  // if one exists. Snapshots may be reference counted by the implementation so
23404
23406
  // we want to ensure that if we request a snapshot that we use it.
23405
23407
  snapshot.run(TracingAction.CHANGE_DETECTION, this._tick);
23408
+ snapshot.dispose();
23406
23409
  return;
23407
23410
  }
23408
23411
  (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
@@ -23434,16 +23437,15 @@ class ApplicationRef {
23434
23437
  * pending dirtiness (potentially in a loop).
23435
23438
  */
23436
23439
  synchronize() {
23437
- let rendererFactory = null;
23438
- if (!this._injector.destroyed) {
23439
- rendererFactory = this._injector.get(RendererFactory2, null, { optional: true });
23440
+ if (this._rendererFactory === null && !this._injector.destroyed) {
23441
+ this._rendererFactory = this._injector.get(RendererFactory2, null, { optional: true });
23440
23442
  }
23441
23443
  // When beginning synchronization, all deferred dirtiness becomes active dirtiness.
23442
23444
  this.dirtyFlags |= this.deferredDirtyFlags;
23443
23445
  this.deferredDirtyFlags = 0 /* ApplicationRefDirtyFlags.None */;
23444
23446
  let runs = 0;
23445
23447
  while (this.dirtyFlags !== 0 /* ApplicationRefDirtyFlags.None */ && runs++ < MAXIMUM_REFRESH_RERUNS) {
23446
- this.synchronizeOnce(rendererFactory);
23448
+ this.synchronizeOnce();
23447
23449
  }
23448
23450
  if ((typeof ngDevMode === 'undefined' || ngDevMode) && runs >= MAXIMUM_REFRESH_RERUNS) {
23449
23451
  throw new RuntimeError(103 /* RuntimeErrorCode.INFINITE_CHANGE_DETECTION */, ngDevMode &&
@@ -23455,7 +23457,7 @@ class ApplicationRef {
23455
23457
  /**
23456
23458
  * Perform a single synchronization pass.
23457
23459
  */
23458
- synchronizeOnce(rendererFactory) {
23460
+ synchronizeOnce() {
23459
23461
  // If we happened to loop, deferred dirtiness can be processed as active dirtiness again.
23460
23462
  this.dirtyFlags |= this.deferredDirtyFlags;
23461
23463
  this.deferredDirtyFlags = 0 /* ApplicationRefDirtyFlags.None */;
@@ -23494,8 +23496,8 @@ class ApplicationRef {
23494
23496
  else {
23495
23497
  // If we skipped refreshing views above, there might still be unflushed animations
23496
23498
  // because we never called `detectChangesInternal` on the views.
23497
- rendererFactory?.begin?.();
23498
- rendererFactory?.end?.();
23499
+ this._rendererFactory?.begin?.();
23500
+ this._rendererFactory?.end?.();
23499
23501
  }
23500
23502
  // Even if there were no dirty views, afterRender hooks might still be dirty.
23501
23503
  if (this.dirtyFlags & 8 /* ApplicationRefDirtyFlags.AfterRender */) {
@@ -23635,30 +23637,6 @@ function remove(list, el) {
23635
23637
  list.splice(index, 1);
23636
23638
  }
23637
23639
  }
23638
- let whenStableStore;
23639
- /**
23640
- * Returns a Promise that resolves when the application becomes stable after this method is called
23641
- * the first time.
23642
- *
23643
- * Note: this function is unused in the FW code, but it's still present since the CLI code relies
23644
- * on it currently (see https://github.com/angular/angular-cli/blob/20411f696eb52c500e096e3dfc5e195185794edc/packages/angular/ssr/src/routes/ng-routes.ts#L435).
23645
- * Remove this function once CLI code is updated to use `ApplicationRef.whenStable` instead.
23646
- */
23647
- function whenStable(applicationRef) {
23648
- whenStableStore ??= new WeakMap();
23649
- const cachedWhenStable = whenStableStore.get(applicationRef);
23650
- if (cachedWhenStable) {
23651
- return cachedWhenStable;
23652
- }
23653
- const whenStablePromise = applicationRef.isStable
23654
- .pipe(first((isStable) => isStable))
23655
- .toPromise()
23656
- .then(() => void 0);
23657
- whenStableStore.set(applicationRef, whenStablePromise);
23658
- // Be a good citizen and clean the store `onDestroy` even though we are using `WeakMap`.
23659
- applicationRef.onDestroy(() => whenStableStore?.delete(applicationRef));
23660
- return whenStablePromise;
23661
- }
23662
23640
  function detectChangesInViewIfRequired(lView, notifyErrorHandler, isFirstPass, zonelessEnabled) {
23663
23641
  // When re-checking, only check views which actually need it.
23664
23642
  if (!isFirstPass && !requiresRefreshOrTraversal(lView)) {
@@ -23680,14 +23658,9 @@ function scheduleDelayedTrigger(scheduleFn) {
23680
23658
  const tNode = getCurrentTNode();
23681
23659
  const injector = lView[INJECTOR];
23682
23660
  const lDetails = getLDeferBlockDetails(lView, tNode);
23683
- const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
23684
23661
  renderPlaceholder(lView, tNode);
23685
- if (shouldTriggerWhenOnClient(lView[INJECTOR], lDetails, tDetails)) {
23686
- // Only trigger the scheduled trigger on the browser
23687
- // since we don't want to delay the server response.
23688
- const cleanupFn = scheduleFn(() => triggerDeferBlock(lView, tNode), injector);
23689
- storeTriggerCleanupFn(0 /* TriggerType.Regular */, lDetails, cleanupFn);
23690
- }
23662
+ const cleanupFn = scheduleFn(() => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), injector);
23663
+ storeTriggerCleanupFn(0 /* TriggerType.Regular */, lDetails, cleanupFn);
23691
23664
  }
23692
23665
  /**
23693
23666
  * Schedules prefetching for `on idle` and `on timer` triggers.
@@ -23695,9 +23668,8 @@ function scheduleDelayedTrigger(scheduleFn) {
23695
23668
  * @param scheduleFn A function that does the scheduling.
23696
23669
  */
23697
23670
  function scheduleDelayedPrefetching(scheduleFn, trigger) {
23698
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
23671
+ if (typeof ngServerMode !== 'undefined' && ngServerMode)
23699
23672
  return;
23700
- }
23701
23673
  const lView = getLView();
23702
23674
  const injector = lView[INJECTOR];
23703
23675
  // Only trigger the scheduled trigger on the browser
@@ -23705,8 +23677,6 @@ function scheduleDelayedPrefetching(scheduleFn, trigger) {
23705
23677
  const tNode = getCurrentTNode();
23706
23678
  const tView = lView[TVIEW];
23707
23679
  const tDetails = getTDeferBlockDetails(tView, tNode);
23708
- const prefetchTriggers = getPrefetchTriggers(tDetails);
23709
- prefetchTriggers.add(trigger);
23710
23680
  if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
23711
23681
  const lDetails = getLDeferBlockDetails(lView, tNode);
23712
23682
  const prefetch = () => triggerPrefetching(tDetails, lView, tNode);
@@ -23718,9 +23688,8 @@ function scheduleDelayedPrefetching(scheduleFn, trigger) {
23718
23688
  * Schedules hydration triggering of a defer block for `on idle` and `on timer` conditions.
23719
23689
  */
23720
23690
  function scheduleDelayedHydrating(scheduleFn, lView, tNode) {
23721
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
23691
+ if (typeof ngServerMode !== 'undefined' && ngServerMode)
23722
23692
  return;
23723
- }
23724
23693
  // Only trigger the scheduled trigger on the browser
23725
23694
  // since we don't want to delay the server response.
23726
23695
  const injector = lView[INJECTOR];
@@ -23735,12 +23704,10 @@ function scheduleDelayedHydrating(scheduleFn, lView, tNode) {
23735
23704
  *
23736
23705
  * @param tDetails Static information about this defer block.
23737
23706
  * @param lView LView of a host view.
23707
+ * @param tNode TNode that represents a defer block.
23738
23708
  */
23739
23709
  function triggerPrefetching(tDetails, lView, tNode) {
23740
- const tDeferBlockDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
23741
- if (lView[INJECTOR] && shouldTriggerDeferBlock(lView[INJECTOR], tDeferBlockDetails)) {
23742
- triggerResourceLoading(tDetails, lView, tNode);
23743
- }
23710
+ triggerResourceLoading(tDetails, lView, tNode);
23744
23711
  }
23745
23712
  /**
23746
23713
  * Trigger loading of defer block dependencies if the process hasn't started yet.
@@ -23845,20 +23812,35 @@ function triggerResourceLoading(tDetails, lView, tNode) {
23845
23812
  });
23846
23813
  return tDetails.loadingPromise;
23847
23814
  }
23815
+ /**
23816
+ * Defines whether we should proceed with triggering a given defer block.
23817
+ */
23818
+ function shouldTriggerDeferBlock(triggerType, lView) {
23819
+ // prevents triggering regular triggers when on the server.
23820
+ if (triggerType === 0 /* TriggerType.Regular */ && typeof ngServerMode !== 'undefined' && ngServerMode) {
23821
+ return false;
23822
+ }
23823
+ // prevents triggering in the case of a test run with manual defer block configuration.
23824
+ const injector = lView[INJECTOR];
23825
+ const config = injector.get(DEFER_BLOCK_CONFIG, null, { optional: true });
23826
+ if (config?.behavior === DeferBlockBehavior.Manual) {
23827
+ return false;
23828
+ }
23829
+ return true;
23830
+ }
23848
23831
  /**
23849
23832
  * Attempts to trigger loading of defer block dependencies.
23850
23833
  * If the block is already in a loading, completed or an error state -
23851
23834
  * no additional actions are taken.
23852
23835
  */
23853
- function triggerDeferBlock(lView, tNode) {
23836
+ function triggerDeferBlock(triggerType, lView, tNode) {
23854
23837
  const tView = lView[TVIEW];
23855
23838
  const lContainer = lView[tNode.index];
23856
- const injector = lView[INJECTOR];
23857
23839
  ngDevMode && assertLContainer(lContainer);
23840
+ if (!shouldTriggerDeferBlock(triggerType, lView))
23841
+ return;
23858
23842
  const lDetails = getLDeferBlockDetails(lView, tNode);
23859
23843
  const tDetails = getTDeferBlockDetails(tView, tNode);
23860
- if (!shouldTriggerDeferBlock(injector, tDetails))
23861
- return;
23862
23844
  // Defer block is triggered, cleanup all registered trigger functions.
23863
23845
  invokeAllTriggerCleanupFns(lDetails);
23864
23846
  switch (tDetails.loadingState) {
@@ -23927,7 +23909,7 @@ async function triggerHydrationFromBlockName(injector, blockName, replayQueuedEv
23927
23909
  }
23928
23910
  // Actually do the triggering and hydration of the queue of blocks
23929
23911
  for (const dehydratedBlockId of hydrationQueue) {
23930
- await triggerDeferBlockResourceLoading(dehydratedBlockId, dehydratedBlockRegistry);
23912
+ await triggerResourceLoadingForHydration(dehydratedBlockId, dehydratedBlockRegistry);
23931
23913
  await nextRender(injector);
23932
23914
  // TODO(incremental-hydration): assert (in dev mode) that a defer block is present in the dehydrated registry
23933
23915
  // at this point. If not - it means that the block has not been hydrated, for example due to different
@@ -23965,7 +23947,7 @@ function nextRender(injector) {
23965
23947
  afterNextRender(() => resolve(), { injector });
23966
23948
  return promise;
23967
23949
  }
23968
- function triggerDeferBlockResourceLoading(dehydratedBlockId, dehydratedBlockRegistry) {
23950
+ function triggerResourceLoadingForHydration(dehydratedBlockId, dehydratedBlockRegistry) {
23969
23951
  let resolve;
23970
23952
  const promise = new Promise((resolveFn) => (resolve = resolveFn));
23971
23953
  const deferBlock = dehydratedBlockRegistry.get(dehydratedBlockId);
@@ -23976,7 +23958,7 @@ function triggerDeferBlockResourceLoading(dehydratedBlockId, dehydratedBlockRegi
23976
23958
  const { tNode, lView } = deferBlock;
23977
23959
  const lDetails = getLDeferBlockDetails(lView, tNode);
23978
23960
  onDeferBlockCompletion(lDetails, () => resolve());
23979
- triggerDeferBlock(lView, tNode);
23961
+ triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
23980
23962
  // TODO(incremental-hydration): handle the cleanup for cases when
23981
23963
  // defer block is no longer present during hydration (e.g. `@if` condition
23982
23964
  // has changed during hydration/rendering).
@@ -23994,50 +23976,47 @@ function onDeferBlockCompletion(lDetails, callback) {
23994
23976
  lDetails[ON_COMPLETE_FNS].push(callback);
23995
23977
  }
23996
23978
  /**
23997
- * Determines whether "hydrate" triggers should be activated. Triggers are activated in the following cases:
23998
- * - on the server, when incremental hydration is enabled, to trigger the block and render the main content
23999
- * - on the client for blocks that were server-side rendered, to start hydration process
23979
+ * Determines whether specific trigger types should be attached during an instruction firing
23980
+ * to ensure the proper triggers for a given type are used.
24000
23981
  */
24001
- function shouldActivateHydrateTrigger(lView, tNode) {
24002
- const lDetails = getLDeferBlockDetails(lView, tNode);
24003
- const injector = lView[INJECTOR];
24004
- // TODO(incremental-hydration): ideally, this check should only happen once and then stored on
24005
- // LDeferBlockDetails as a flag. This would make subsequent lookups very cheap.
24006
- return (isIncrementalHydrationEnabled(injector) &&
24007
- ((typeof ngServerMode !== 'undefined' && ngServerMode) || lDetails[SSR_UNIQUE_ID] !== null));
23982
+ function shouldAttachTrigger(triggerType, lView, tNode) {
23983
+ if (triggerType === 0 /* TriggerType.Regular */) {
23984
+ return shouldAttachRegularTrigger(lView, tNode);
23985
+ }
23986
+ else if (triggerType === 2 /* TriggerType.Hydrate */) {
23987
+ return !shouldAttachRegularTrigger(lView, tNode);
23988
+ }
23989
+ // TriggerType.Prefetch is active only on the client
23990
+ return !(typeof ngServerMode !== 'undefined' && ngServerMode);
24008
23991
  }
24009
- // TODO(incremental-hydration): Optimize this further by moving the calculation to earlier
24010
- // in the process. Consider a flag we can check similar to LView[FLAGS].
24011
23992
  /**
24012
- * Determines whether regular defer block triggers should be invoked based on client state
24013
- * and whether incremental hydration is enabled. Hydrate triggers are invoked elsewhere.
23993
+ * Defines whether a regular trigger logic (e.g. "on viewport") should be attached
23994
+ * to a defer block. This function defines a condition, which mutually excludes
23995
+ * `deferOn*` and `deferHydrateOn*` triggers, to make sure only one of the trigger
23996
+ * types is active for a block with the current state.
24014
23997
  */
24015
- function shouldTriggerWhenOnClient(injector, lDetails, tDetails) {
23998
+ function shouldAttachRegularTrigger(lView, tNode) {
23999
+ const injector = lView[INJECTOR];
24000
+ const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
24001
+ const incrementalHydrationEnabled = isIncrementalHydrationEnabled(injector);
24002
+ const hasHydrateTriggers = tDetails.flags !== null &&
24003
+ (tDetails.flags & 1 /* TDeferDetailsFlags.HasHydrateTriggers */) ===
24004
+ 1 /* TDeferDetailsFlags.HasHydrateTriggers */;
24005
+ // On the server:
24016
24006
  if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24017
- return false;
24007
+ // Regular triggers are activated on the server when:
24008
+ // - Either Incremental Hydration is *not* enabled
24009
+ // - Or Incremental Hydration is enabled, but a given block doesn't have "hydrate" triggers
24010
+ return !incrementalHydrationEnabled || !hasHydrateTriggers;
24018
24011
  }
24019
- const isServerRendered = lDetails[SSR_BLOCK_STATE] && lDetails[SSR_BLOCK_STATE] === DeferBlockState.Complete;
24020
- const hasHydrateTriggers = tDetails.hydrateTriggers && tDetails.hydrateTriggers.size > 0;
24021
- if (hasHydrateTriggers && isServerRendered && isIncrementalHydrationEnabled(injector)) {
24012
+ // On the client:
24013
+ const lDetails = getLDeferBlockDetails(lView, tNode);
24014
+ const wasServerSideRendered = lDetails[SSR_UNIQUE_ID] !== null;
24015
+ if (hasHydrateTriggers && wasServerSideRendered && incrementalHydrationEnabled) {
24022
24016
  return false;
24023
24017
  }
24024
24018
  return true;
24025
24019
  }
24026
- /**
24027
- * Returns whether defer blocks should be triggered.
24028
- *
24029
- * Currently, defer blocks are not triggered on the server,
24030
- * only placeholder content is rendered (if provided).
24031
- */
24032
- function shouldTriggerDeferBlock(injector, tDeferBlockDetails) {
24033
- const config = injector.get(DEFER_BLOCK_CONFIG, null, { optional: true });
24034
- if (config?.behavior === DeferBlockBehavior.Manual) {
24035
- return false;
24036
- }
24037
- return (typeof ngServerMode === 'undefined' ||
24038
- !ngServerMode ||
24039
- tDeferBlockDetails.hydrateTriggers !== null);
24040
- }
24041
24020
  /**
24042
24021
  * Retrives a Defer Block's list of hydration triggers
24043
24022
  */
@@ -24045,12 +24024,6 @@ function getHydrateTriggers(tView, tNode) {
24045
24024
  const tDetails = getTDeferBlockDetails(tView, tNode);
24046
24025
  return (tDetails.hydrateTriggers ??= new Map());
24047
24026
  }
24048
- /**
24049
- * Retrives a Defer Block's list of prefetch triggers
24050
- */
24051
- function getPrefetchTriggers(tDetails) {
24052
- return (tDetails.prefetchTriggers ??= new Set());
24053
- }
24054
24027
  /**
24055
24028
  * Loops through all defer block summaries and ensures all the blocks triggers are
24056
24029
  * properly initialized
@@ -24142,10 +24115,13 @@ function setImmediateTriggers(injector, elementTriggers) {
24142
24115
  * placeholder block.
24143
24116
  * @param enableTimerScheduling Function that enables timer-related scheduling if `after`
24144
24117
  * or `minimum` parameters are setup on the `@loading` or `@placeholder` blocks.
24118
+ * @param flags A set of flags to define a particular behavior (e.g. to indicate that
24119
+ * hydrate triggers are present and regular triggers should be deactivated
24120
+ * in certain scenarios).
24145
24121
  *
24146
24122
  * @codeGenApi
24147
24123
  */
24148
- function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplIndex, placeholderTmplIndex, errorTmplIndex, loadingConfigIndex, placeholderConfigIndex, enableTimerScheduling) {
24124
+ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplIndex, placeholderTmplIndex, errorTmplIndex, loadingConfigIndex, placeholderConfigIndex, enableTimerScheduling, flags) {
24149
24125
  const lView = getLView();
24150
24126
  const tView = getTView();
24151
24127
  const adjustedIndex = index + HEADER_OFFSET;
@@ -24166,6 +24142,7 @@ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplInd
24166
24142
  providers: null,
24167
24143
  hydrateTriggers: null,
24168
24144
  prefetchTriggers: null,
24145
+ flags: flags ?? 0 /* TDeferDetailsFlags.Default */,
24169
24146
  };
24170
24147
  enableTimerScheduling?.(tView, tDetails, placeholderConfigIndex, loadingConfigIndex);
24171
24148
  setTDeferBlockDetails(tView, adjustedIndex, tDetails);
@@ -24220,14 +24197,15 @@ function ɵɵdefer(index, primaryTmplIndex, dependencyResolverFn, loadingTmplInd
24220
24197
  */
24221
24198
  function ɵɵdeferWhen(rawValue) {
24222
24199
  const lView = getLView();
24200
+ const tNode = getSelectedTNode();
24201
+ if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
24202
+ return;
24223
24203
  const bindingIndex = nextBindingIndex();
24224
24204
  if (bindingUpdated(lView, bindingIndex, rawValue)) {
24225
24205
  const prevConsumer = setActiveConsumer$1(null);
24226
24206
  try {
24227
24207
  const value = Boolean(rawValue); // handle truthy or falsy values
24228
- const tNode = getSelectedTNode();
24229
24208
  const lDetails = getLDeferBlockDetails(lView, tNode);
24230
- const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
24231
24209
  const renderedState = lDetails[DEFER_BLOCK_STATE];
24232
24210
  if (value === false && renderedState === DeferBlockInternalState.Initial) {
24233
24211
  // If nothing is rendered yet, render a placeholder (if defined).
@@ -24235,9 +24213,8 @@ function ɵɵdeferWhen(rawValue) {
24235
24213
  }
24236
24214
  else if (value === true &&
24237
24215
  (renderedState === DeferBlockInternalState.Initial ||
24238
- renderedState === DeferBlockState.Placeholder) &&
24239
- shouldTriggerWhenOnClient(lView[INJECTOR], lDetails, tDetails)) {
24240
- triggerDeferBlock(lView, tNode);
24216
+ renderedState === DeferBlockState.Placeholder)) {
24217
+ triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode);
24241
24218
  }
24242
24219
  }
24243
24220
  finally {
@@ -24252,9 +24229,9 @@ function ɵɵdeferWhen(rawValue) {
24252
24229
  function ɵɵdeferPrefetchWhen(rawValue) {
24253
24230
  const lView = getLView();
24254
24231
  const tNode = getSelectedTNode();
24232
+ if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
24233
+ return;
24255
24234
  const bindingIndex = nextBindingIndex();
24256
- const prefetchTriggers = getPrefetchTriggers(getTDeferBlockDetails(getTView(), tNode));
24257
- prefetchTriggers.add(6 /* DeferBlockTrigger.When */);
24258
24235
  if (bindingUpdated(lView, bindingIndex, rawValue)) {
24259
24236
  const prevConsumer = setActiveConsumer$1(null);
24260
24237
  try {
@@ -24279,9 +24256,8 @@ function ɵɵdeferPrefetchWhen(rawValue) {
24279
24256
  function ɵɵdeferHydrateWhen(rawValue) {
24280
24257
  const lView = getLView();
24281
24258
  const tNode = getSelectedTNode();
24282
- if (!shouldActivateHydrateTrigger(lView, tNode)) {
24259
+ if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
24283
24260
  return;
24284
- }
24285
24261
  // TODO(incremental-hydration): audit all defer instructions to reduce unnecessary work by
24286
24262
  // moving function calls inside their relevant control flow blocks
24287
24263
  const bindingIndex = nextBindingIndex();
@@ -24289,12 +24265,12 @@ function ɵɵdeferHydrateWhen(rawValue) {
24289
24265
  const hydrateTriggers = getHydrateTriggers(tView, tNode);
24290
24266
  hydrateTriggers.set(6 /* DeferBlockTrigger.When */, null);
24291
24267
  if (bindingUpdated(lView, bindingIndex, rawValue)) {
24292
- const injector = lView[INJECTOR];
24293
24268
  if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24294
24269
  // We are on the server and SSR for defer blocks is enabled.
24295
- triggerDeferBlock(lView, tNode);
24270
+ triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
24296
24271
  }
24297
24272
  else {
24273
+ const injector = lView[INJECTOR];
24298
24274
  const prevConsumer = setActiveConsumer$1(null);
24299
24275
  try {
24300
24276
  const value = Boolean(rawValue); // handle truthy or falsy values
@@ -24321,13 +24297,13 @@ function ɵɵdeferHydrateWhen(rawValue) {
24321
24297
  function ɵɵdeferHydrateNever() {
24322
24298
  const lView = getLView();
24323
24299
  const tNode = getCurrentTNode();
24324
- if (shouldActivateHydrateTrigger(lView, tNode)) {
24325
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24326
- hydrateTriggers.set(7 /* DeferBlockTrigger.Never */, null);
24327
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24328
- // We are on the server and SSR for defer blocks is enabled.
24329
- triggerDeferBlock(lView, tNode);
24330
- }
24300
+ if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
24301
+ return;
24302
+ const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24303
+ hydrateTriggers.set(7 /* DeferBlockTrigger.Never */, null);
24304
+ if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24305
+ // We are on the server and SSR for defer blocks is enabled.
24306
+ triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
24331
24307
  }
24332
24308
  }
24333
24309
  /**
@@ -24335,6 +24311,10 @@ function ɵɵdeferHydrateNever() {
24335
24311
  * @codeGenApi
24336
24312
  */
24337
24313
  function ɵɵdeferOnIdle() {
24314
+ const lView = getLView();
24315
+ const tNode = getCurrentTNode();
24316
+ if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
24317
+ return;
24338
24318
  scheduleDelayedTrigger(onIdle);
24339
24319
  }
24340
24320
  /**
@@ -24342,6 +24322,10 @@ function ɵɵdeferOnIdle() {
24342
24322
  * @codeGenApi
24343
24323
  */
24344
24324
  function ɵɵdeferPrefetchOnIdle() {
24325
+ const lView = getLView();
24326
+ const tNode = getCurrentTNode();
24327
+ if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
24328
+ return;
24345
24329
  scheduleDelayedPrefetching(onIdle, 0 /* DeferBlockTrigger.Idle */);
24346
24330
  }
24347
24331
  /**
@@ -24351,16 +24335,16 @@ function ɵɵdeferPrefetchOnIdle() {
24351
24335
  function ɵɵdeferHydrateOnIdle() {
24352
24336
  const lView = getLView();
24353
24337
  const tNode = getCurrentTNode();
24354
- if (shouldActivateHydrateTrigger(lView, tNode)) {
24355
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24356
- hydrateTriggers.set(0 /* DeferBlockTrigger.Idle */, null);
24357
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24358
- // We are on the server and SSR for defer blocks is enabled.
24359
- triggerDeferBlock(lView, tNode);
24360
- }
24361
- else {
24362
- scheduleDelayedHydrating(onIdle, lView, tNode);
24363
- }
24338
+ if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
24339
+ return;
24340
+ const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24341
+ hydrateTriggers.set(0 /* DeferBlockTrigger.Idle */, null);
24342
+ if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24343
+ // We are on the server and SSR for defer blocks is enabled.
24344
+ triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
24345
+ }
24346
+ else {
24347
+ scheduleDelayedHydrating(onIdle, lView, tNode);
24364
24348
  }
24365
24349
  }
24366
24350
  /**
@@ -24370,19 +24354,16 @@ function ɵɵdeferHydrateOnIdle() {
24370
24354
  function ɵɵdeferOnImmediate() {
24371
24355
  const lView = getLView();
24372
24356
  const tNode = getCurrentTNode();
24373
- const tView = lView[TVIEW];
24374
- const injector = lView[INJECTOR];
24375
- const tDetails = getTDeferBlockDetails(tView, tNode);
24376
- const lDetails = getLDeferBlockDetails(lView, tNode);
24357
+ if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
24358
+ return;
24377
24359
  // Render placeholder block only if loading template is not present and we're on
24378
24360
  // the client to avoid content flickering, since it would be immediately replaced
24379
24361
  // by the loading block.
24380
- if (!shouldTriggerDeferBlock(injector, tDetails) || tDetails.loadingTmplIndex === null) {
24362
+ const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
24363
+ if (tDetails.loadingTmplIndex === null) {
24381
24364
  renderPlaceholder(lView, tNode);
24382
24365
  }
24383
- if (shouldTriggerWhenOnClient(injector, lDetails, tDetails)) {
24384
- triggerDeferBlock(lView, tNode);
24385
- }
24366
+ triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode);
24386
24367
  }
24387
24368
  /**
24388
24369
  * Sets up logic to handle the `prefetch on immediate` deferred trigger.
@@ -24391,10 +24372,10 @@ function ɵɵdeferOnImmediate() {
24391
24372
  function ɵɵdeferPrefetchOnImmediate() {
24392
24373
  const lView = getLView();
24393
24374
  const tNode = getCurrentTNode();
24375
+ if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
24376
+ return;
24394
24377
  const tView = lView[TVIEW];
24395
24378
  const tDetails = getTDeferBlockDetails(tView, tNode);
24396
- const prefetchTriggers = getPrefetchTriggers(tDetails);
24397
- prefetchTriggers.add(1 /* DeferBlockTrigger.Immediate */);
24398
24379
  if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
24399
24380
  triggerResourceLoading(tDetails, lView, tNode);
24400
24381
  }
@@ -24406,19 +24387,19 @@ function ɵɵdeferPrefetchOnImmediate() {
24406
24387
  function ɵɵdeferHydrateOnImmediate() {
24407
24388
  const lView = getLView();
24408
24389
  const tNode = getCurrentTNode();
24409
- if (shouldActivateHydrateTrigger(lView, tNode)) {
24390
+ if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
24391
+ return;
24392
+ const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24393
+ hydrateTriggers.set(1 /* DeferBlockTrigger.Immediate */, null);
24394
+ if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24395
+ triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
24396
+ }
24397
+ else {
24410
24398
  const injector = lView[INJECTOR];
24411
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24412
- hydrateTriggers.set(1 /* DeferBlockTrigger.Immediate */, null);
24413
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24414
- triggerDeferBlock(lView, tNode);
24415
- }
24416
- else {
24417
- const lDetails = getLDeferBlockDetails(lView, tNode);
24418
- const ssrUniqueId = lDetails[SSR_UNIQUE_ID];
24419
- ngDevMode && assertSsrIdDefined(ssrUniqueId);
24420
- triggerHydrationFromBlockName(injector, ssrUniqueId);
24421
- }
24399
+ const lDetails = getLDeferBlockDetails(lView, tNode);
24400
+ const ssrUniqueId = lDetails[SSR_UNIQUE_ID];
24401
+ ngDevMode && assertSsrIdDefined(ssrUniqueId);
24402
+ triggerHydrationFromBlockName(injector, ssrUniqueId);
24422
24403
  }
24423
24404
  }
24424
24405
  /**
@@ -24427,6 +24408,10 @@ function ɵɵdeferHydrateOnImmediate() {
24427
24408
  * @codeGenApi
24428
24409
  */
24429
24410
  function ɵɵdeferOnTimer(delay) {
24411
+ const lView = getLView();
24412
+ const tNode = getCurrentTNode();
24413
+ if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
24414
+ return;
24430
24415
  scheduleDelayedTrigger(onTimer(delay));
24431
24416
  }
24432
24417
  /**
@@ -24435,6 +24420,10 @@ function ɵɵdeferOnTimer(delay) {
24435
24420
  * @codeGenApi
24436
24421
  */
24437
24422
  function ɵɵdeferPrefetchOnTimer(delay) {
24423
+ const lView = getLView();
24424
+ const tNode = getCurrentTNode();
24425
+ if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
24426
+ return;
24438
24427
  scheduleDelayedPrefetching(onTimer(delay), 5 /* DeferBlockTrigger.Timer */);
24439
24428
  }
24440
24429
  /**
@@ -24445,16 +24434,16 @@ function ɵɵdeferPrefetchOnTimer(delay) {
24445
24434
  function ɵɵdeferHydrateOnTimer(delay) {
24446
24435
  const lView = getLView();
24447
24436
  const tNode = getCurrentTNode();
24448
- if (shouldActivateHydrateTrigger(lView, tNode)) {
24449
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24450
- hydrateTriggers.set(5 /* DeferBlockTrigger.Timer */, delay);
24451
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24452
- // We are on the server and SSR for defer blocks is enabled.
24453
- triggerDeferBlock(lView, tNode);
24454
- }
24455
- else {
24456
- scheduleDelayedHydrating(onTimer(delay), lView, tNode);
24457
- }
24437
+ if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
24438
+ return;
24439
+ const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24440
+ hydrateTriggers.set(5 /* DeferBlockTrigger.Timer */, delay);
24441
+ if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24442
+ // We are on the server and SSR for defer blocks is enabled.
24443
+ triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
24444
+ }
24445
+ else {
24446
+ scheduleDelayedHydrating(onTimer(delay), lView, tNode);
24458
24447
  }
24459
24448
  }
24460
24449
  /**
@@ -24466,11 +24455,12 @@ function ɵɵdeferHydrateOnTimer(delay) {
24466
24455
  function ɵɵdeferOnHover(triggerIndex, walkUpTimes) {
24467
24456
  const lView = getLView();
24468
24457
  const tNode = getCurrentTNode();
24469
- const lDetails = getLDeferBlockDetails(lView, tNode);
24470
- const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
24458
+ if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
24459
+ return;
24471
24460
  renderPlaceholder(lView, tNode);
24472
- if (shouldTriggerWhenOnClient(lView[INJECTOR], lDetails, tDetails)) {
24473
- registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onHover, () => triggerDeferBlock(lView, tNode), 0 /* TriggerType.Regular */);
24461
+ // Avoid adding event listeners when this instruction is invoked on the server.
24462
+ if (!(typeof ngServerMode !== 'undefined' && ngServerMode)) {
24463
+ registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onHover, () => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), 0 /* TriggerType.Regular */);
24474
24464
  }
24475
24465
  }
24476
24466
  /**
@@ -24482,10 +24472,10 @@ function ɵɵdeferOnHover(triggerIndex, walkUpTimes) {
24482
24472
  function ɵɵdeferPrefetchOnHover(triggerIndex, walkUpTimes) {
24483
24473
  const lView = getLView();
24484
24474
  const tNode = getCurrentTNode();
24475
+ if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
24476
+ return;
24485
24477
  const tView = lView[TVIEW];
24486
24478
  const tDetails = getTDeferBlockDetails(tView, tNode);
24487
- const prefetchTriggers = getPrefetchTriggers(tDetails);
24488
- prefetchTriggers.add(4 /* DeferBlockTrigger.Hover */);
24489
24479
  if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
24490
24480
  registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onHover, () => triggerPrefetching(tDetails, lView, tNode), 1 /* TriggerType.Prefetch */);
24491
24481
  }
@@ -24497,13 +24487,13 @@ function ɵɵdeferPrefetchOnHover(triggerIndex, walkUpTimes) {
24497
24487
  function ɵɵdeferHydrateOnHover() {
24498
24488
  const lView = getLView();
24499
24489
  const tNode = getCurrentTNode();
24500
- if (shouldActivateHydrateTrigger(lView, tNode)) {
24501
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24502
- hydrateTriggers.set(4 /* DeferBlockTrigger.Hover */, null);
24503
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24504
- // We are on the server and SSR for defer blocks is enabled.
24505
- triggerDeferBlock(lView, tNode);
24506
- }
24490
+ if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
24491
+ return;
24492
+ const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24493
+ hydrateTriggers.set(4 /* DeferBlockTrigger.Hover */, null);
24494
+ if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24495
+ // We are on the server and SSR for defer blocks is enabled.
24496
+ triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
24507
24497
  }
24508
24498
  // The actual triggering of hydration on hover is handled by JSAction in
24509
24499
  // event_replay.ts.
@@ -24517,11 +24507,12 @@ function ɵɵdeferHydrateOnHover() {
24517
24507
  function ɵɵdeferOnInteraction(triggerIndex, walkUpTimes) {
24518
24508
  const lView = getLView();
24519
24509
  const tNode = getCurrentTNode();
24520
- const lDetails = getLDeferBlockDetails(lView, tNode);
24521
- const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
24510
+ if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
24511
+ return;
24522
24512
  renderPlaceholder(lView, tNode);
24523
- if (shouldTriggerWhenOnClient(lView[INJECTOR], lDetails, tDetails)) {
24524
- registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onInteraction, () => triggerDeferBlock(lView, tNode), 0 /* TriggerType.Regular */);
24513
+ // Avoid adding event listeners when this instruction is invoked on the server.
24514
+ if (!(typeof ngServerMode !== 'undefined' && ngServerMode)) {
24515
+ registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onInteraction, () => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), 0 /* TriggerType.Regular */);
24525
24516
  }
24526
24517
  }
24527
24518
  /**
@@ -24533,10 +24524,10 @@ function ɵɵdeferOnInteraction(triggerIndex, walkUpTimes) {
24533
24524
  function ɵɵdeferPrefetchOnInteraction(triggerIndex, walkUpTimes) {
24534
24525
  const lView = getLView();
24535
24526
  const tNode = getCurrentTNode();
24527
+ if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
24528
+ return;
24536
24529
  const tView = lView[TVIEW];
24537
24530
  const tDetails = getTDeferBlockDetails(tView, tNode);
24538
- const prefetchTriggers = getPrefetchTriggers(tDetails);
24539
- prefetchTriggers.add(3 /* DeferBlockTrigger.Interaction */);
24540
24531
  if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
24541
24532
  registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onInteraction, () => triggerPrefetching(tDetails, lView, tNode), 1 /* TriggerType.Prefetch */);
24542
24533
  }
@@ -24548,13 +24539,13 @@ function ɵɵdeferPrefetchOnInteraction(triggerIndex, walkUpTimes) {
24548
24539
  function ɵɵdeferHydrateOnInteraction() {
24549
24540
  const lView = getLView();
24550
24541
  const tNode = getCurrentTNode();
24551
- if (shouldActivateHydrateTrigger(lView, tNode)) {
24552
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24553
- hydrateTriggers.set(3 /* DeferBlockTrigger.Interaction */, null);
24554
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24555
- // We are on the server and SSR for defer blocks is enabled.
24556
- triggerDeferBlock(lView, tNode);
24557
- }
24542
+ if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
24543
+ return;
24544
+ const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24545
+ hydrateTriggers.set(3 /* DeferBlockTrigger.Interaction */, null);
24546
+ if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24547
+ // We are on the server and SSR for defer blocks is enabled.
24548
+ triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
24558
24549
  }
24559
24550
  // The actual triggering of hydration on interaction is handled by JSAction in
24560
24551
  // event_replay.ts.
@@ -24568,11 +24559,12 @@ function ɵɵdeferHydrateOnInteraction() {
24568
24559
  function ɵɵdeferOnViewport(triggerIndex, walkUpTimes) {
24569
24560
  const lView = getLView();
24570
24561
  const tNode = getCurrentTNode();
24571
- const lDetails = getLDeferBlockDetails(lView, tNode);
24572
- const tDetails = getTDeferBlockDetails(lView[TVIEW], tNode);
24562
+ if (!shouldAttachTrigger(0 /* TriggerType.Regular */, lView, tNode))
24563
+ return;
24573
24564
  renderPlaceholder(lView, tNode);
24574
- if (shouldTriggerWhenOnClient(lView[INJECTOR], lDetails, tDetails)) {
24575
- registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onViewport, () => triggerDeferBlock(lView, tNode), 0 /* TriggerType.Regular */);
24565
+ // Avoid adding event listeners when this instruction is invoked on the server.
24566
+ if (!(typeof ngServerMode !== 'undefined' && ngServerMode)) {
24567
+ registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onViewport, () => triggerDeferBlock(0 /* TriggerType.Regular */, lView, tNode), 0 /* TriggerType.Regular */);
24576
24568
  }
24577
24569
  }
24578
24570
  /**
@@ -24584,10 +24576,10 @@ function ɵɵdeferOnViewport(triggerIndex, walkUpTimes) {
24584
24576
  function ɵɵdeferPrefetchOnViewport(triggerIndex, walkUpTimes) {
24585
24577
  const lView = getLView();
24586
24578
  const tNode = getCurrentTNode();
24579
+ if (!shouldAttachTrigger(1 /* TriggerType.Prefetch */, lView, tNode))
24580
+ return;
24587
24581
  const tView = lView[TVIEW];
24588
24582
  const tDetails = getTDeferBlockDetails(tView, tNode);
24589
- const prefetchTriggers = getPrefetchTriggers(tDetails);
24590
- prefetchTriggers.add(2 /* DeferBlockTrigger.Viewport */);
24591
24583
  if (tDetails.loadingState === DeferDependenciesLoadingState.NOT_STARTED) {
24592
24584
  registerDomTrigger(lView, tNode, triggerIndex, walkUpTimes, onViewport, () => triggerPrefetching(tDetails, lView, tNode), 1 /* TriggerType.Prefetch */);
24593
24585
  }
@@ -24599,16 +24591,15 @@ function ɵɵdeferPrefetchOnViewport(triggerIndex, walkUpTimes) {
24599
24591
  function ɵɵdeferHydrateOnViewport() {
24600
24592
  const lView = getLView();
24601
24593
  const tNode = getCurrentTNode();
24602
- if (shouldActivateHydrateTrigger(lView, tNode)) {
24603
- const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24604
- hydrateTriggers.set(2 /* DeferBlockTrigger.Viewport */, null);
24605
- const injector = lView[INJECTOR];
24606
- if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24607
- // We are on the server and SSR for defer blocks is enabled.
24608
- triggerDeferBlock(lView, tNode);
24609
- }
24594
+ if (!shouldAttachTrigger(2 /* TriggerType.Hydrate */, lView, tNode))
24595
+ return;
24596
+ const hydrateTriggers = getHydrateTriggers(getTView(), tNode);
24597
+ hydrateTriggers.set(2 /* DeferBlockTrigger.Viewport */, null);
24598
+ if (typeof ngServerMode !== 'undefined' && ngServerMode) {
24599
+ // We are on the server and SSR for defer blocks is enabled.
24600
+ triggerDeferBlock(2 /* TriggerType.Hydrate */, lView, tNode);
24610
24601
  }
24611
- // The actual triggering of hydration on viewport happens in incremental.ts,
24602
+ // The actual triggering of hydration on viewport happens in triggering.ts,
24612
24603
  // since these instructions won't exist for dehydrated content.
24613
24604
  }
24614
24605
 
@@ -33053,11 +33044,11 @@ function ɵsetClassDebugInfo(type, debugInfo) {
33053
33044
  * Replaces the metadata of a component type and re-renders all live instances of the component.
33054
33045
  * @param type Class whose metadata will be replaced.
33055
33046
  * @param applyMetadata Callback that will apply a new set of metadata on the `type` when invoked.
33056
- * @param environment Core runtime environment to use when applying the HMR update.
33047
+ * @param environment Syntehtic namespace imports that need to be passed along to the callback.
33057
33048
  * @param locals Local symbols from the source location that have to be exposed to the callback.
33058
33049
  * @codeGenApi
33059
33050
  */
33060
- function ɵɵreplaceMetadata(type, applyMetadata, environment, locals) {
33051
+ function ɵɵreplaceMetadata(type, applyMetadata, namespaces, locals) {
33061
33052
  ngDevMode && assertComponentDef(type);
33062
33053
  const oldDef = getComponentDef(type);
33063
33054
  // The reason `applyMetadata` is a callback that is invoked (almost) immediately is because
@@ -33065,7 +33056,7 @@ function ɵɵreplaceMetadata(type, applyMetadata, environment, locals) {
33065
33056
  // can be functions for embedded views, the variables for the constant pool and `setClassMetadata`
33066
33057
  // calls. The callback allows us to keep them isolate from the rest of the app and to invoke
33067
33058
  // them at the right time.
33068
- applyMetadata.apply(null, [type, environment, ...locals]);
33059
+ applyMetadata.apply(null, [type, namespaces, ...locals]);
33069
33060
  // If a `tView` hasn't been created yet, it means that this component hasn't been instantianted
33070
33061
  // before. In this case there's nothing left for us to do aside from patching it in.
33071
33062
  if (oldDef.tView) {
@@ -34582,7 +34573,7 @@ class Version {
34582
34573
  /**
34583
34574
  * @publicApi
34584
34575
  */
34585
- const VERSION = new Version('19.0.1');
34576
+ const VERSION = new Version('19.0.2');
34586
34577
 
34587
34578
  /**
34588
34579
  * Combination of NgModuleFactory and ComponentFactories.
@@ -35300,7 +35291,7 @@ const LOCALE_ID = new InjectionToken(ngDevMode ? 'LocaleId' : '', {
35300
35291
  *
35301
35292
  * See the [i18n guide](guide/i18n/locale-id) for more information.
35302
35293
  *
35303
- * <div class="alert is-helpful">
35294
+ * <div class="docs-alert docs-alert-helpful">
35304
35295
  *
35305
35296
  * **Deprecation notice:**
35306
35297
  *
@@ -40392,7 +40383,7 @@ function effect(effectFn, options) {
40392
40383
  'effect inside the component constructor.');
40393
40384
  !options?.injector && assertInInjectionContext(effect);
40394
40385
  if (ngDevMode && options?.allowSignalWrites !== undefined) {
40395
- console.warn(`The 'allowSignalWrites' flag is deprecated & longer required for effect() (writes are allowed by default)`);
40386
+ console.warn(`The 'allowSignalWrites' flag is deprecated and no longer impacts effect() (writes are always allowed)`);
40396
40387
  }
40397
40388
  const injector = options?.injector ?? inject(Injector);
40398
40389
  let destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
@@ -41171,5 +41162,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
41171
41162
  * Generated bundle index. Do not edit.
41172
41163
  */
41173
41164
 
41174
- 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 ɵPendingTasks, 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, whenStable as ɵwhenStable, 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 };
41165
+ 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 ɵPendingTasks, 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 };
41175
41166
  //# sourceMappingURL=core.mjs.map