@angular/router 21.0.0-next.6 → 21.0.0-next.8

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.
@@ -1,14 +1,14 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.6
3
- * (c) 2010-2025 Google LLC. https://angular.io/
2
+ * @license Angular v21.0.0-next.8
3
+ * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
7
7
  import { DOCUMENT, Location } from '@angular/common';
8
8
  import * as i0 from '@angular/core';
9
9
  import { ɵisPromise as _isPromise, ɵRuntimeError as _RuntimeError, Injectable, ɵisNgModule as _isNgModule, isStandalone, createEnvironmentInjector, InjectionToken, EventEmitter, input, inject, ViewContainerRef, ChangeDetectorRef, Directive, Input, Output, reflectComponentType, Component, ɵisInjectable as _isInjectable, runInInjectionContext, makeEnvironmentProviders, Compiler, NgModuleFactory, ɵresolveComponentResources as _resolveComponentResources, afterNextRender, signal, EnvironmentInjector, DestroyRef, untracked, ɵConsole as _Console, ɵPendingTasksInternal as _PendingTasksInternal, ɵINTERNAL_APPLICATION_ERROR_HANDLER as _INTERNAL_APPLICATION_ERROR_HANDLER } from '@angular/core';
10
- import { isObservable, from, of, BehaviorSubject, combineLatest, EmptyError, Observable, concat, defer, pipe, throwError, EMPTY, ConnectableObservable, Subject, Subscription } from 'rxjs';
11
- import { map, switchMap, take, startWith, filter, takeUntil, mergeMap, first, concatMap, tap, catchError, scan, defaultIfEmpty, last as last$1, takeLast, finalize, refCount } from 'rxjs/operators';
10
+ import { isObservable, from, of, BehaviorSubject, combineLatest, EmptyError, Observable, concat, defer, pipe, throwError, EMPTY, Subject, Subscription } from 'rxjs';
11
+ import { first, map, switchMap, take, startWith, filter, takeUntil, mergeMap, concatMap, tap, catchError, scan, defaultIfEmpty, last as last$1, takeLast, finalize } from 'rxjs/operators';
12
12
  import * as i1 from '@angular/platform-browser';
13
13
 
14
14
  /**
@@ -102,6 +102,16 @@ function defaultUrlMatcher(segments, segmentGroup, route) {
102
102
  return { consumed: segments.slice(0, parts.length), posParams };
103
103
  }
104
104
 
105
+ /** replacement for firstValueFrom in rxjs 7. We must support rxjs v6 so we cannot use it */
106
+ function firstValueFrom(source) {
107
+ return new Promise((resolve, reject) => {
108
+ source.pipe(first()).subscribe({
109
+ next: (value) => resolve(value),
110
+ error: (err) => reject(err),
111
+ });
112
+ });
113
+ }
114
+
105
115
  function shallowEqualArrays(a, b) {
106
116
  if (a.length !== b.length)
107
117
  return false;
@@ -167,6 +177,12 @@ function wrapIntoObservable(value) {
167
177
  }
168
178
  return of(value);
169
179
  }
180
+ function wrapIntoPromise(value) {
181
+ if (isObservable(value)) {
182
+ return firstValueFrom(value);
183
+ }
184
+ return Promise.resolve(value);
185
+ }
170
186
 
171
187
  const pathCompareMap = {
172
188
  'exact': equalSegmentGroups,
@@ -432,10 +448,10 @@ function mapChildrenIntoArray(segment, fn) {
432
448
  * @publicApi
433
449
  */
434
450
  class UrlSerializer {
435
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
436
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });
451
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
452
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });
437
453
  }
438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: UrlSerializer, decorators: [{
454
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: UrlSerializer, decorators: [{
439
455
  type: Injectable,
440
456
  args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
441
457
  }] });
@@ -2119,10 +2135,10 @@ class ChildrenOutletContexts {
2119
2135
  getContext(childName) {
2120
2136
  return this.contexts.get(childName) || null;
2121
2137
  }
2122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
2123
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
2138
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
2139
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
2124
2140
  }
2125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
2141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
2126
2142
  type: Injectable,
2127
2143
  args: [{ providedIn: 'root' }]
2128
2144
  }], ctorParameters: () => [{ type: i0.EnvironmentInjector }] });
@@ -2692,6 +2708,7 @@ function hasStaticTitle(config) {
2692
2708
  * ```
2693
2709
  *
2694
2710
  * @publicApi
2711
+ * @see [Page routerOutletData](guide/routing/show-routes-with-outlets#passing-contextual-data-to-routed-components)
2695
2712
  */
2696
2713
  const ROUTER_OUTLET_DATA = new InjectionToken(typeof ngDevMode !== undefined && ngDevMode ? 'RouterOutlet data' : '');
2697
2714
  /**
@@ -2908,10 +2925,10 @@ class RouterOutlet {
2908
2925
  this.inputBinder?.bindActivatedRouteToOutletComponent(this);
2909
2926
  this.activateEvents.emit(this.activated.instance);
2910
2927
  }
2911
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2912
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0-next.6", type: RouterOutlet, isStandalone: true, selector: "router-outlet", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, routerOutletData: { classPropertyName: "routerOutletData", publicName: "routerOutletData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activateEvents: "activate", deactivateEvents: "deactivate", attachEvents: "attach", detachEvents: "detach" }, exportAs: ["outlet"], usesOnChanges: true, ngImport: i0 });
2928
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2929
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0-next.8", type: RouterOutlet, isStandalone: true, selector: "router-outlet", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, routerOutletData: { classPropertyName: "routerOutletData", publicName: "routerOutletData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activateEvents: "activate", deactivateEvents: "deactivate", attachEvents: "attach", detachEvents: "detach" }, exportAs: ["outlet"], usesOnChanges: true, ngImport: i0 });
2913
2930
  }
2914
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RouterOutlet, decorators: [{
2931
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouterOutlet, decorators: [{
2915
2932
  type: Directive,
2916
2933
  args: [{
2917
2934
  selector: 'router-outlet',
@@ -2931,7 +2948,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6",
2931
2948
  }], detachEvents: [{
2932
2949
  type: Output,
2933
2950
  args: ['detach']
2934
- }] } });
2951
+ }], routerOutletData: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerOutletData", required: false }] }] } });
2935
2952
  class OutletInjector {
2936
2953
  route;
2937
2954
  childContexts;
@@ -3021,10 +3038,10 @@ class RoutedComponentInputBinder {
3021
3038
  });
3022
3039
  this.outletDataSubscriptions.set(outlet, dataSubscription);
3023
3040
  }
3024
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3025
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RoutedComponentInputBinder });
3041
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3042
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RoutedComponentInputBinder });
3026
3043
  }
3027
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
3044
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
3028
3045
  type: Injectable
3029
3046
  }] });
3030
3047
 
@@ -3038,10 +3055,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6",
3038
3055
  * to this `EmptyOutletComponent`.
3039
3056
  */
3040
3057
  class ɵEmptyOutletComponent {
3041
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3042
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.6", type: ɵEmptyOutletComponent, isStandalone: true, selector: "ng-component", exportAs: ["emptyRouterOutlet"], ngImport: i0, template: `<router-outlet/>`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
3058
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3059
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.8", type: ɵEmptyOutletComponent, isStandalone: true, selector: "ng-component", exportAs: ["emptyRouterOutlet"], ngImport: i0, template: `<router-outlet/>`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
3043
3060
  }
3044
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
3061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
3045
3062
  type: Component,
3046
3063
  args: [{
3047
3064
  template: `<router-outlet/>`,
@@ -3733,16 +3750,6 @@ function runCanMatchGuards(injector, route, segments, urlSerializer, abortSignal
3733
3750
  return of(canMatchObservables).pipe(prioritizedGuardValue(), redirectIfUrlTree(urlSerializer));
3734
3751
  }
3735
3752
 
3736
- /** replacement for firstValueFrom in rxjs 7. We must support rxjs v6 so we cannot use it */
3737
- function firstValueFrom(source) {
3738
- return new Promise((resolve, reject) => {
3739
- source.pipe(first()).subscribe({
3740
- next: (value) => resolve(value),
3741
- error: (err) => reject(err),
3742
- });
3743
- });
3744
- }
3745
-
3746
3753
  let NoMatch$1 = class NoMatch extends Error {
3747
3754
  segmentGroup;
3748
3755
  constructor(segmentGroup) {
@@ -4225,10 +4232,7 @@ let Recognizer$1 = class Recognizer {
4225
4232
  }
4226
4233
  const shouldLoadResult = await firstValueFrom(runCanLoadGuards(injector, route, segments, this.urlSerializer, this.abortSignal));
4227
4234
  if (shouldLoadResult) {
4228
- const cfg = await firstValueFrom(this.configLoader.loadChildren(injector, route));
4229
- if (!cfg) {
4230
- throw canLoadFails$1(route);
4231
- }
4235
+ const cfg = await this.configLoader.loadChildren(injector, route);
4232
4236
  route._loadedRoutes = cfg.routes;
4233
4237
  route._loadedInjector = cfg.injector;
4234
4238
  return cfg;
@@ -4666,7 +4670,7 @@ class Recognizer {
4666
4670
  }
4667
4671
  return runCanLoadGuards(injector, route, segments, this.urlSerializer).pipe(mergeMap((shouldLoadResult) => {
4668
4672
  if (shouldLoadResult) {
4669
- return this.configLoader.loadChildren(injector, route).pipe(tap((cfg) => {
4673
+ return from(this.configLoader.loadChildren(injector, route)).pipe(tap((cfg) => {
4670
4674
  route._loadedRoutes = cfg.routes;
4671
4675
  route._loadedInjector = cfg.injector;
4672
4676
  }));
@@ -4876,7 +4880,7 @@ function switchTap(next) {
4876
4880
  * incorporate titles in named outlets.
4877
4881
  *
4878
4882
  * @publicApi
4879
- * @see [Page title guide](guide/routing/common-router-tasks#setting-the-page-title)
4883
+ * @see [Page title guide](guide/routing/define-routes#using-titlestrategy-for-page-titles)
4880
4884
  */
4881
4885
  class TitleStrategy {
4882
4886
  /**
@@ -4898,10 +4902,10 @@ class TitleStrategy {
4898
4902
  getResolvedTitleForRoute(snapshot) {
4899
4903
  return snapshot.data[RouteTitleKey];
4900
4904
  }
4901
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4902
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
4905
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4906
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
4903
4907
  }
4904
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: TitleStrategy, decorators: [{
4908
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: TitleStrategy, decorators: [{
4905
4909
  type: Injectable,
4906
4910
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
4907
4911
  }] });
@@ -4925,10 +4929,10 @@ class DefaultTitleStrategy extends TitleStrategy {
4925
4929
  this.title.setTitle(title);
4926
4930
  }
4927
4931
  }
4928
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
4929
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
4932
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
4933
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
4930
4934
  }
4931
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4935
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4932
4936
  type: Injectable,
4933
4937
  args: [{ providedIn: 'root' }]
4934
4938
  }], ctorParameters: () => [{ type: i1.Title }] });
@@ -4960,28 +4964,32 @@ class RouterConfigLoader {
4960
4964
  onLoadStartListener;
4961
4965
  onLoadEndListener;
4962
4966
  compiler = inject(Compiler);
4963
- loadComponent(injector, route) {
4967
+ async loadComponent(injector, route) {
4964
4968
  if (this.componentLoaders.get(route)) {
4965
4969
  return this.componentLoaders.get(route);
4966
4970
  }
4967
4971
  else if (route._loadedComponent) {
4968
- return of(route._loadedComponent);
4972
+ return Promise.resolve(route._loadedComponent);
4969
4973
  }
4970
4974
  if (this.onLoadStartListener) {
4971
4975
  this.onLoadStartListener(route);
4972
4976
  }
4973
- const loadRunner = wrapIntoObservable(runInInjectionContext(injector, () => route.loadComponent())).pipe(map(maybeUnwrapDefaultExport), switchMap(maybeResolveResources), tap((component) => {
4974
- if (this.onLoadEndListener) {
4975
- this.onLoadEndListener(route);
4977
+ const loader = (async () => {
4978
+ try {
4979
+ const loaded = await wrapIntoPromise(runInInjectionContext(injector, () => route.loadComponent()));
4980
+ const component = await maybeResolveResources(maybeUnwrapDefaultExport(loaded));
4981
+ if (this.onLoadEndListener) {
4982
+ this.onLoadEndListener(route);
4983
+ }
4984
+ (typeof ngDevMode === 'undefined' || ngDevMode) &&
4985
+ assertStandalone(route.path ?? '', component);
4986
+ route._loadedComponent = component;
4987
+ return component;
4976
4988
  }
4977
- (typeof ngDevMode === 'undefined' || ngDevMode) &&
4978
- assertStandalone(route.path ?? '', component);
4979
- route._loadedComponent = component;
4980
- }), finalize(() => {
4981
- this.componentLoaders.delete(route);
4982
- }));
4983
- // Use custom ConnectableObservable as share in runners pipe increasing the bundle size too much
4984
- const loader = new ConnectableObservable(loadRunner, () => new Subject()).pipe(refCount());
4989
+ finally {
4990
+ this.componentLoaders.delete(route);
4991
+ }
4992
+ })();
4985
4993
  this.componentLoaders.set(route, loader);
4986
4994
  return loader;
4987
4995
  }
@@ -4990,24 +4998,29 @@ class RouterConfigLoader {
4990
4998
  return this.childrenLoaders.get(route);
4991
4999
  }
4992
5000
  else if (route._loadedRoutes) {
4993
- return of({ routes: route._loadedRoutes, injector: route._loadedInjector });
5001
+ return Promise.resolve({ routes: route._loadedRoutes, injector: route._loadedInjector });
4994
5002
  }
4995
5003
  if (this.onLoadStartListener) {
4996
5004
  this.onLoadStartListener(route);
4997
5005
  }
4998
- const moduleFactoryOrRoutes$ = loadChildren(route, this.compiler, parentInjector, this.onLoadEndListener);
4999
- const loadRunner = moduleFactoryOrRoutes$.pipe(finalize(() => {
5000
- this.childrenLoaders.delete(route);
5001
- }));
5002
- // Use custom ConnectableObservable as share in runners pipe increasing the bundle size too much
5003
- const loader = new ConnectableObservable(loadRunner, () => new Subject()).pipe(refCount());
5006
+ const loader = (async () => {
5007
+ try {
5008
+ const result = await loadChildren(route, this.compiler, parentInjector, this.onLoadEndListener);
5009
+ route._loadedRoutes = result.routes;
5010
+ route._loadedInjector = result.injector;
5011
+ return result;
5012
+ }
5013
+ finally {
5014
+ this.childrenLoaders.delete(route);
5015
+ }
5016
+ })();
5004
5017
  this.childrenLoaders.set(route, loader);
5005
5018
  return loader;
5006
5019
  }
5007
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5008
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
5020
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5021
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
5009
5022
  }
5010
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RouterConfigLoader, decorators: [{
5023
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouterConfigLoader, decorators: [{
5011
5024
  type: Injectable,
5012
5025
  args: [{ providedIn: 'root' }]
5013
5026
  }] });
@@ -5019,40 +5032,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6",
5019
5032
  * in @angular-devkit/build-angular. If there are any updates to the contract here, it will require
5020
5033
  * an update to the extractor.
5021
5034
  */
5022
- function loadChildren(route, compiler, parentInjector, onLoadEndListener) {
5023
- return wrapIntoObservable(runInInjectionContext(parentInjector, () => route.loadChildren())).pipe(map(maybeUnwrapDefaultExport), switchMap(maybeResolveResources), mergeMap((t) => {
5024
- if (t instanceof NgModuleFactory || Array.isArray(t)) {
5025
- return of(t);
5026
- }
5027
- else {
5028
- return from(compiler.compileModuleAsync(t));
5029
- }
5030
- }), map((factoryOrRoutes) => {
5031
- if (onLoadEndListener) {
5032
- onLoadEndListener(route);
5033
- }
5034
- // This injector comes from the `NgModuleRef` when lazy loading an `NgModule`. There is
5035
- // no injector associated with lazy loading a `Route` array.
5036
- let injector;
5037
- let rawRoutes;
5038
- let requireStandaloneComponents = false;
5039
- if (Array.isArray(factoryOrRoutes)) {
5040
- rawRoutes = factoryOrRoutes;
5041
- requireStandaloneComponents = true;
5042
- }
5043
- else {
5044
- injector = factoryOrRoutes.create(parentInjector).injector;
5045
- // When loading a module that doesn't provide `RouterModule.forChild()` preloader
5046
- // will get stuck in an infinite loop. The child module's Injector will look to
5047
- // its parent `Injector` when it doesn't find any ROUTES so it will return routes
5048
- // for it's parent module instead.
5049
- rawRoutes = injector.get(ROUTES, [], { optional: true, self: true }).flat();
5050
- }
5051
- const routes = rawRoutes.map(standardizeConfig);
5052
- (typeof ngDevMode === 'undefined' || ngDevMode) &&
5053
- validateConfig(routes, route.path, requireStandaloneComponents);
5054
- return { routes, injector };
5055
- }));
5035
+ async function loadChildren(route, compiler, parentInjector, onLoadEndListener) {
5036
+ const loaded = await wrapIntoPromise(runInInjectionContext(parentInjector, () => route.loadChildren()));
5037
+ const t = await maybeResolveResources(maybeUnwrapDefaultExport(loaded));
5038
+ let factoryOrRoutes;
5039
+ if (t instanceof NgModuleFactory || Array.isArray(t)) {
5040
+ factoryOrRoutes = t;
5041
+ }
5042
+ else {
5043
+ factoryOrRoutes = await compiler.compileModuleAsync(t);
5044
+ }
5045
+ if (onLoadEndListener) {
5046
+ onLoadEndListener(route);
5047
+ }
5048
+ // This injector comes from the `NgModuleRef` when lazy loading an `NgModule`. There is
5049
+ // no injector associated with lazy loading a `Route` array.
5050
+ let injector;
5051
+ let rawRoutes;
5052
+ let requireStandaloneComponents = false;
5053
+ if (Array.isArray(factoryOrRoutes)) {
5054
+ rawRoutes = factoryOrRoutes;
5055
+ requireStandaloneComponents = true;
5056
+ }
5057
+ else {
5058
+ injector = factoryOrRoutes.create(parentInjector).injector;
5059
+ // When loading a module that doesn't provide `RouterModule.forChild()` preloader
5060
+ // will get stuck in an infinite loop. The child module's Injector will look to
5061
+ // its parent `Injector` when it doesn't find any ROUTES so it will return routes
5062
+ // for it's parent module instead.
5063
+ rawRoutes = injector.get(ROUTES, [], { optional: true, self: true }).flat();
5064
+ }
5065
+ const routes = rawRoutes.map(standardizeConfig);
5066
+ (typeof ngDevMode === 'undefined' || ngDevMode) &&
5067
+ validateConfig(routes, route.path, requireStandaloneComponents);
5068
+ return { routes, injector };
5056
5069
  }
5057
5070
  function isWrappedDefaultExport(value) {
5058
5071
  // We use `in` here with a string key `'default'`, because we expect `DefaultExport` objects to be
@@ -5067,7 +5080,7 @@ function maybeUnwrapDefaultExport(input) {
5067
5080
  }
5068
5081
  function maybeResolveResources(value) {
5069
5082
  // In JIT mode we usually resolve the resources of components on bootstrap, however
5070
- // that won't have happened for lazy-loaded components. Attempt to load any pending
5083
+ // that won't have happened for lazy-loaded. Attempt to load any pending
5071
5084
  // resources again here.
5072
5085
  if ((typeof ngJitMode === 'undefined' || ngJitMode) && typeof fetch === 'function') {
5073
5086
  return _resolveComponentResources(fetch)
@@ -5077,7 +5090,7 @@ function maybeResolveResources(value) {
5077
5090
  })
5078
5091
  .then(() => value);
5079
5092
  }
5080
- return of(value);
5093
+ return Promise.resolve(value);
5081
5094
  }
5082
5095
 
5083
5096
  /**
@@ -5088,10 +5101,10 @@ function maybeResolveResources(value) {
5088
5101
  * @publicApi
5089
5102
  */
5090
5103
  class UrlHandlingStrategy {
5091
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5092
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
5104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5105
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
5093
5106
  }
5094
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
5107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
5095
5108
  type: Injectable,
5096
5109
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
5097
5110
  }] });
@@ -5108,10 +5121,10 @@ class DefaultUrlHandlingStrategy {
5108
5121
  merge(newUrlPart, wholeUrl) {
5109
5122
  return newUrlPart;
5110
5123
  }
5111
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5112
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
5124
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5125
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
5113
5126
  }
5114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
5127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
5115
5128
  type: Injectable,
5116
5129
  args: [{ providedIn: 'root' }]
5117
5130
  }] });
@@ -5169,6 +5182,7 @@ function createRenderPromise(injector) {
5169
5182
  });
5170
5183
  }
5171
5184
 
5185
+ const noop = () => { };
5172
5186
  const NAVIGATION_ERROR_HANDLER = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'navigation error handler' : '');
5173
5187
  class NavigationTransitions {
5174
5188
  // Some G3 targets expect the navigation object to be mutated (and not getting a new reference on changes).
@@ -5238,7 +5252,6 @@ class NavigationTransitions {
5238
5252
  targetRouterState: null,
5239
5253
  guards: { canActivateChecks: [], canDeactivateChecks: [] },
5240
5254
  guardsResult: null,
5241
- abortController: new AbortController(),
5242
5255
  id,
5243
5256
  });
5244
5257
  });
@@ -5249,6 +5262,7 @@ class NavigationTransitions {
5249
5262
  // Using switchMap so we cancel executing navigations when a new one comes in
5250
5263
  switchMap((overallTransitionState) => {
5251
5264
  let completedOrAborted = false;
5265
+ const abortController = new AbortController();
5252
5266
  return of(overallTransitionState).pipe(switchMap((t) => {
5253
5267
  // It is possible that `switchMap` fails to cancel previous navigations if a new one happens synchronously while the operator
5254
5268
  // is processing the `next` notification of that previous navigation. This can happen when a new navigation (say 2) cancels a
@@ -5279,7 +5293,7 @@ class NavigationTransitions {
5279
5293
  ...lastSuccessfulNavigation,
5280
5294
  previousNavigation: null,
5281
5295
  },
5282
- abort: () => t.abortController.abort(),
5296
+ abort: () => abortController.abort(),
5283
5297
  });
5284
5298
  const urlTransition = !router.navigated || this.isUpdatingInternalState() || this.isUpdatedBrowserUrl();
5285
5299
  const onSameUrlNavigation = t.extras.onSameUrlNavigation ?? router.onSameUrlNavigation;
@@ -5304,7 +5318,7 @@ class NavigationTransitions {
5304
5318
  return Promise.resolve(t);
5305
5319
  }),
5306
5320
  // Recognize
5307
- recognize(this.environmentInjector, this.configLoader, this.rootComponentType, router.config, this.urlSerializer, this.paramsInheritanceStrategy, overallTransitionState.abortController.signal),
5321
+ recognize(this.environmentInjector, this.configLoader, this.rootComponentType, router.config, this.urlSerializer, this.paramsInheritanceStrategy, abortController.signal),
5308
5322
  // Update URL if in `eager` update mode
5309
5323
  tap((t) => {
5310
5324
  overallTransitionState.targetSnapshot = t.targetSnapshot;
@@ -5409,7 +5423,7 @@ class NavigationTransitions {
5409
5423
  const loaders = [];
5410
5424
  if (route.routeConfig?.loadComponent) {
5411
5425
  const injector = getClosestRouteInjector(route) ?? this.environmentInjector;
5412
- loaders.push(this.configLoader.loadComponent(injector, route.routeConfig).pipe(tap((loadedComponent) => {
5426
+ loaders.push(from(this.configLoader.loadComponent(injector, route.routeConfig)).pipe(tap((loadedComponent) => {
5413
5427
  route.component = loadedComponent;
5414
5428
  }), map(() => void 0)));
5415
5429
  }
@@ -5441,13 +5455,17 @@ class NavigationTransitions {
5441
5455
  // Ensure that if some observable used to drive the transition doesn't
5442
5456
  // complete, the navigation still finalizes This should never happen, but
5443
5457
  // this is done as a safety measure to avoid surfacing this error (#49567).
5444
- take(1), takeUntil(abortSignalToObservable(overallTransitionState.abortController.signal).pipe(
5458
+ take(1), takeUntil(abortSignalToObservable(abortController.signal).pipe(
5445
5459
  // Ignore aborts if we are already completed, canceled, or are in the activation stage (we have targetRouterState)
5446
5460
  filter(() => !completedOrAborted && !overallTransitionState.targetRouterState), tap(() => {
5447
- this.cancelNavigationTransition(overallTransitionState, overallTransitionState.abortController.signal.reason + '', NavigationCancellationCode.Aborted);
5461
+ this.cancelNavigationTransition(overallTransitionState, abortController.signal.reason + '', NavigationCancellationCode.Aborted);
5448
5462
  }))), tap({
5449
5463
  next: (t) => {
5450
5464
  completedOrAborted = true;
5465
+ this.currentNavigation.update((nav) => {
5466
+ nav.abort = noop;
5467
+ return nav;
5468
+ });
5451
5469
  this.lastSuccessfulNavigation.set(untracked(this.currentNavigation));
5452
5470
  this.events.next(new NavigationEnd(t.id, this.urlSerializer.serialize(t.extractedUrl), this.urlSerializer.serialize(t.urlAfterRedirects)));
5453
5471
  this.titleStrategy?.updateTitle(t.targetRouterState.snapshot);
@@ -5467,7 +5485,7 @@ class NavigationTransitions {
5467
5485
  takeUntil(this.transitionAbortWithErrorSubject.pipe(tap((err) => {
5468
5486
  throw err;
5469
5487
  }))), finalize(() => {
5470
- overallTransitionState.abortController.abort();
5488
+ abortController.abort();
5471
5489
  /* When the navigation stream finishes either through error or success,
5472
5490
  * we set the `completed` or `errored` flag. However, there are some
5473
5491
  * situations where we could get here without either of those being set.
@@ -5581,10 +5599,10 @@ class NavigationTransitions {
5581
5599
  return (currentBrowserUrl.toString() !== targetBrowserUrl?.toString() &&
5582
5600
  !currentNavigation?.extras.skipLocationChange);
5583
5601
  }
5584
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5585
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
5602
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5603
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
5586
5604
  }
5587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: NavigationTransitions, decorators: [{
5605
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: NavigationTransitions, decorators: [{
5588
5606
  type: Injectable,
5589
5607
  args: [{ providedIn: 'root' }]
5590
5608
  }], ctorParameters: () => [] });
@@ -5600,10 +5618,10 @@ function isBrowserTriggeredNavigation(source) {
5600
5618
  * @publicApi
5601
5619
  */
5602
5620
  class RouteReuseStrategy {
5603
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5604
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
5621
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5622
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
5605
5623
  }
5606
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: RouteReuseStrategy, decorators: [{
5624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouteReuseStrategy, decorators: [{
5607
5625
  type: Injectable,
5608
5626
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
5609
5627
  }] });
@@ -5654,10 +5672,10 @@ class BaseRouteReuseStrategy {
5654
5672
  }
5655
5673
  }
5656
5674
  class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
5657
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5658
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
5675
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5676
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
5659
5677
  }
5660
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
5678
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
5661
5679
  type: Injectable,
5662
5680
  args: [{ providedIn: 'root' }]
5663
5681
  }] });
@@ -5756,10 +5774,10 @@ class StateManager {
5756
5774
  // when merging, such as the query params so they are not lost on a refresh.
5757
5775
  this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, finalUrl ?? this.rawUrlTree);
5758
5776
  }
5759
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5760
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) });
5777
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5778
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) });
5761
5779
  }
5762
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: StateManager, decorators: [{
5780
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: StateManager, decorators: [{
5763
5781
  type: Injectable,
5764
5782
  args: [{ providedIn: 'root', useFactory: () => inject(HistoryStateManager) }]
5765
5783
  }] });
@@ -5891,10 +5909,10 @@ class HistoryStateManager extends StateManager {
5891
5909
  }
5892
5910
  return { navigationId };
5893
5911
  }
5894
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5895
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: HistoryStateManager, providedIn: 'root' });
5912
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5913
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: HistoryStateManager, providedIn: 'root' });
5896
5914
  }
5897
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: HistoryStateManager, decorators: [{
5915
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: HistoryStateManager, decorators: [{
5898
5916
  type: Injectable,
5899
5917
  args: [{ providedIn: 'root' }]
5900
5918
  }] });
@@ -6467,10 +6485,10 @@ class Router {
6467
6485
  return Promise.reject(e);
6468
6486
  });
6469
6487
  }
6470
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6471
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: Router, providedIn: 'root' });
6488
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6489
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: Router, providedIn: 'root' });
6472
6490
  }
6473
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.6", ngImport: i0, type: Router, decorators: [{
6491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: Router, decorators: [{
6474
6492
  type: Injectable,
6475
6493
  args: [{ providedIn: 'root' }]
6476
6494
  }], ctorParameters: () => [] });