@angular/router 21.0.0-next.7 → 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,5 +1,5 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.7
2
+ * @license Angular v21.0.0-next.8
3
3
  * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -7,8 +7,8 @@
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.7", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
436
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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.7", 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.7", 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.7", 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.7", 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 }] });
@@ -2909,10 +2925,10 @@ class RouterOutlet {
2909
2925
  this.inputBinder?.bindActivatedRouteToOutletComponent(this);
2910
2926
  this.activateEvents.emit(this.activated.instance);
2911
2927
  }
2912
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2913
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0-next.7", 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 });
2914
2930
  }
2915
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: RouterOutlet, decorators: [{
2931
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouterOutlet, decorators: [{
2916
2932
  type: Directive,
2917
2933
  args: [{
2918
2934
  selector: 'router-outlet',
@@ -2932,7 +2948,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7",
2932
2948
  }], detachEvents: [{
2933
2949
  type: Output,
2934
2950
  args: ['detach']
2935
- }] } });
2951
+ }], routerOutletData: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerOutletData", required: false }] }] } });
2936
2952
  class OutletInjector {
2937
2953
  route;
2938
2954
  childContexts;
@@ -3022,10 +3038,10 @@ class RoutedComponentInputBinder {
3022
3038
  });
3023
3039
  this.outletDataSubscriptions.set(outlet, dataSubscription);
3024
3040
  }
3025
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3026
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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 });
3027
3043
  }
3028
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
3044
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
3029
3045
  type: Injectable
3030
3046
  }] });
3031
3047
 
@@ -3039,10 +3055,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7",
3039
3055
  * to this `EmptyOutletComponent`.
3040
3056
  */
3041
3057
  class ɵEmptyOutletComponent {
3042
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3043
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.0-next.7", 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"] }] });
3044
3060
  }
3045
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
3061
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
3046
3062
  type: Component,
3047
3063
  args: [{
3048
3064
  template: `<router-outlet/>`,
@@ -3734,16 +3750,6 @@ function runCanMatchGuards(injector, route, segments, urlSerializer, abortSignal
3734
3750
  return of(canMatchObservables).pipe(prioritizedGuardValue(), redirectIfUrlTree(urlSerializer));
3735
3751
  }
3736
3752
 
3737
- /** replacement for firstValueFrom in rxjs 7. We must support rxjs v6 so we cannot use it */
3738
- function firstValueFrom(source) {
3739
- return new Promise((resolve, reject) => {
3740
- source.pipe(first()).subscribe({
3741
- next: (value) => resolve(value),
3742
- error: (err) => reject(err),
3743
- });
3744
- });
3745
- }
3746
-
3747
3753
  let NoMatch$1 = class NoMatch extends Error {
3748
3754
  segmentGroup;
3749
3755
  constructor(segmentGroup) {
@@ -4226,10 +4232,7 @@ let Recognizer$1 = class Recognizer {
4226
4232
  }
4227
4233
  const shouldLoadResult = await firstValueFrom(runCanLoadGuards(injector, route, segments, this.urlSerializer, this.abortSignal));
4228
4234
  if (shouldLoadResult) {
4229
- const cfg = await firstValueFrom(this.configLoader.loadChildren(injector, route));
4230
- if (!cfg) {
4231
- throw canLoadFails$1(route);
4232
- }
4235
+ const cfg = await this.configLoader.loadChildren(injector, route);
4233
4236
  route._loadedRoutes = cfg.routes;
4234
4237
  route._loadedInjector = cfg.injector;
4235
4238
  return cfg;
@@ -4667,7 +4670,7 @@ class Recognizer {
4667
4670
  }
4668
4671
  return runCanLoadGuards(injector, route, segments, this.urlSerializer).pipe(mergeMap((shouldLoadResult) => {
4669
4672
  if (shouldLoadResult) {
4670
- return this.configLoader.loadChildren(injector, route).pipe(tap((cfg) => {
4673
+ return from(this.configLoader.loadChildren(injector, route)).pipe(tap((cfg) => {
4671
4674
  route._loadedRoutes = cfg.routes;
4672
4675
  route._loadedInjector = cfg.injector;
4673
4676
  }));
@@ -4899,10 +4902,10 @@ class TitleStrategy {
4899
4902
  getResolvedTitleForRoute(snapshot) {
4900
4903
  return snapshot.data[RouteTitleKey];
4901
4904
  }
4902
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4903
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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) });
4904
4907
  }
4905
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: TitleStrategy, decorators: [{
4908
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: TitleStrategy, decorators: [{
4906
4909
  type: Injectable,
4907
4910
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
4908
4911
  }] });
@@ -4926,10 +4929,10 @@ class DefaultTitleStrategy extends TitleStrategy {
4926
4929
  this.title.setTitle(title);
4927
4930
  }
4928
4931
  }
4929
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
4930
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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' });
4931
4934
  }
4932
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4935
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4933
4936
  type: Injectable,
4934
4937
  args: [{ providedIn: 'root' }]
4935
4938
  }], ctorParameters: () => [{ type: i1.Title }] });
@@ -4961,28 +4964,32 @@ class RouterConfigLoader {
4961
4964
  onLoadStartListener;
4962
4965
  onLoadEndListener;
4963
4966
  compiler = inject(Compiler);
4964
- loadComponent(injector, route) {
4967
+ async loadComponent(injector, route) {
4965
4968
  if (this.componentLoaders.get(route)) {
4966
4969
  return this.componentLoaders.get(route);
4967
4970
  }
4968
4971
  else if (route._loadedComponent) {
4969
- return of(route._loadedComponent);
4972
+ return Promise.resolve(route._loadedComponent);
4970
4973
  }
4971
4974
  if (this.onLoadStartListener) {
4972
4975
  this.onLoadStartListener(route);
4973
4976
  }
4974
- const loadRunner = wrapIntoObservable(runInInjectionContext(injector, () => route.loadComponent())).pipe(map(maybeUnwrapDefaultExport), switchMap(maybeResolveResources), tap((component) => {
4975
- if (this.onLoadEndListener) {
4976
- 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;
4977
4988
  }
4978
- (typeof ngDevMode === 'undefined' || ngDevMode) &&
4979
- assertStandalone(route.path ?? '', component);
4980
- route._loadedComponent = component;
4981
- }), finalize(() => {
4982
- this.componentLoaders.delete(route);
4983
- }));
4984
- // Use custom ConnectableObservable as share in runners pipe increasing the bundle size too much
4985
- const loader = new ConnectableObservable(loadRunner, () => new Subject()).pipe(refCount());
4989
+ finally {
4990
+ this.componentLoaders.delete(route);
4991
+ }
4992
+ })();
4986
4993
  this.componentLoaders.set(route, loader);
4987
4994
  return loader;
4988
4995
  }
@@ -4991,24 +4998,29 @@ class RouterConfigLoader {
4991
4998
  return this.childrenLoaders.get(route);
4992
4999
  }
4993
5000
  else if (route._loadedRoutes) {
4994
- return of({ routes: route._loadedRoutes, injector: route._loadedInjector });
5001
+ return Promise.resolve({ routes: route._loadedRoutes, injector: route._loadedInjector });
4995
5002
  }
4996
5003
  if (this.onLoadStartListener) {
4997
5004
  this.onLoadStartListener(route);
4998
5005
  }
4999
- const moduleFactoryOrRoutes$ = loadChildren(route, this.compiler, parentInjector, this.onLoadEndListener);
5000
- const loadRunner = moduleFactoryOrRoutes$.pipe(finalize(() => {
5001
- this.childrenLoaders.delete(route);
5002
- }));
5003
- // Use custom ConnectableObservable as share in runners pipe increasing the bundle size too much
5004
- 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
+ })();
5005
5017
  this.childrenLoaders.set(route, loader);
5006
5018
  return loader;
5007
5019
  }
5008
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5009
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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' });
5010
5022
  }
5011
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: RouterConfigLoader, decorators: [{
5023
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouterConfigLoader, decorators: [{
5012
5024
  type: Injectable,
5013
5025
  args: [{ providedIn: 'root' }]
5014
5026
  }] });
@@ -5020,40 +5032,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7",
5020
5032
  * in @angular-devkit/build-angular. If there are any updates to the contract here, it will require
5021
5033
  * an update to the extractor.
5022
5034
  */
5023
- function loadChildren(route, compiler, parentInjector, onLoadEndListener) {
5024
- return wrapIntoObservable(runInInjectionContext(parentInjector, () => route.loadChildren())).pipe(map(maybeUnwrapDefaultExport), switchMap(maybeResolveResources), mergeMap((t) => {
5025
- if (t instanceof NgModuleFactory || Array.isArray(t)) {
5026
- return of(t);
5027
- }
5028
- else {
5029
- return from(compiler.compileModuleAsync(t));
5030
- }
5031
- }), map((factoryOrRoutes) => {
5032
- if (onLoadEndListener) {
5033
- onLoadEndListener(route);
5034
- }
5035
- // This injector comes from the `NgModuleRef` when lazy loading an `NgModule`. There is
5036
- // no injector associated with lazy loading a `Route` array.
5037
- let injector;
5038
- let rawRoutes;
5039
- let requireStandaloneComponents = false;
5040
- if (Array.isArray(factoryOrRoutes)) {
5041
- rawRoutes = factoryOrRoutes;
5042
- requireStandaloneComponents = true;
5043
- }
5044
- else {
5045
- injector = factoryOrRoutes.create(parentInjector).injector;
5046
- // When loading a module that doesn't provide `RouterModule.forChild()` preloader
5047
- // will get stuck in an infinite loop. The child module's Injector will look to
5048
- // its parent `Injector` when it doesn't find any ROUTES so it will return routes
5049
- // for it's parent module instead.
5050
- rawRoutes = injector.get(ROUTES, [], { optional: true, self: true }).flat();
5051
- }
5052
- const routes = rawRoutes.map(standardizeConfig);
5053
- (typeof ngDevMode === 'undefined' || ngDevMode) &&
5054
- validateConfig(routes, route.path, requireStandaloneComponents);
5055
- return { routes, injector };
5056
- }));
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 };
5057
5069
  }
5058
5070
  function isWrappedDefaultExport(value) {
5059
5071
  // We use `in` here with a string key `'default'`, because we expect `DefaultExport` objects to be
@@ -5068,7 +5080,7 @@ function maybeUnwrapDefaultExport(input) {
5068
5080
  }
5069
5081
  function maybeResolveResources(value) {
5070
5082
  // In JIT mode we usually resolve the resources of components on bootstrap, however
5071
- // 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
5072
5084
  // resources again here.
5073
5085
  if ((typeof ngJitMode === 'undefined' || ngJitMode) && typeof fetch === 'function') {
5074
5086
  return _resolveComponentResources(fetch)
@@ -5078,7 +5090,7 @@ function maybeResolveResources(value) {
5078
5090
  })
5079
5091
  .then(() => value);
5080
5092
  }
5081
- return of(value);
5093
+ return Promise.resolve(value);
5082
5094
  }
5083
5095
 
5084
5096
  /**
@@ -5089,10 +5101,10 @@ function maybeResolveResources(value) {
5089
5101
  * @publicApi
5090
5102
  */
5091
5103
  class UrlHandlingStrategy {
5092
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5093
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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) });
5094
5106
  }
5095
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
5107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
5096
5108
  type: Injectable,
5097
5109
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
5098
5110
  }] });
@@ -5109,10 +5121,10 @@ class DefaultUrlHandlingStrategy {
5109
5121
  merge(newUrlPart, wholeUrl) {
5110
5122
  return newUrlPart;
5111
5123
  }
5112
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5113
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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' });
5114
5126
  }
5115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
5127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
5116
5128
  type: Injectable,
5117
5129
  args: [{ providedIn: 'root' }]
5118
5130
  }] });
@@ -5411,7 +5423,7 @@ class NavigationTransitions {
5411
5423
  const loaders = [];
5412
5424
  if (route.routeConfig?.loadComponent) {
5413
5425
  const injector = getClosestRouteInjector(route) ?? this.environmentInjector;
5414
- loaders.push(this.configLoader.loadComponent(injector, route.routeConfig).pipe(tap((loadedComponent) => {
5426
+ loaders.push(from(this.configLoader.loadComponent(injector, route.routeConfig)).pipe(tap((loadedComponent) => {
5415
5427
  route.component = loadedComponent;
5416
5428
  }), map(() => void 0)));
5417
5429
  }
@@ -5587,10 +5599,10 @@ class NavigationTransitions {
5587
5599
  return (currentBrowserUrl.toString() !== targetBrowserUrl?.toString() &&
5588
5600
  !currentNavigation?.extras.skipLocationChange);
5589
5601
  }
5590
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5591
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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' });
5592
5604
  }
5593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: NavigationTransitions, decorators: [{
5605
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: NavigationTransitions, decorators: [{
5594
5606
  type: Injectable,
5595
5607
  args: [{ providedIn: 'root' }]
5596
5608
  }], ctorParameters: () => [] });
@@ -5606,10 +5618,10 @@ function isBrowserTriggeredNavigation(source) {
5606
5618
  * @publicApi
5607
5619
  */
5608
5620
  class RouteReuseStrategy {
5609
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5610
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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) });
5611
5623
  }
5612
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: RouteReuseStrategy, decorators: [{
5624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: RouteReuseStrategy, decorators: [{
5613
5625
  type: Injectable,
5614
5626
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
5615
5627
  }] });
@@ -5660,10 +5672,10 @@ class BaseRouteReuseStrategy {
5660
5672
  }
5661
5673
  }
5662
5674
  class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
5663
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5664
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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' });
5665
5677
  }
5666
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
5678
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
5667
5679
  type: Injectable,
5668
5680
  args: [{ providedIn: 'root' }]
5669
5681
  }] });
@@ -5762,10 +5774,10 @@ class StateManager {
5762
5774
  // when merging, such as the query params so they are not lost on a refresh.
5763
5775
  this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, finalUrl ?? this.rawUrlTree);
5764
5776
  }
5765
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5766
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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) });
5767
5779
  }
5768
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: StateManager, decorators: [{
5780
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: StateManager, decorators: [{
5769
5781
  type: Injectable,
5770
5782
  args: [{ providedIn: 'root', useFactory: () => inject(HistoryStateManager) }]
5771
5783
  }] });
@@ -5897,10 +5909,10 @@ class HistoryStateManager extends StateManager {
5897
5909
  }
5898
5910
  return { navigationId };
5899
5911
  }
5900
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5901
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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' });
5902
5914
  }
5903
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: HistoryStateManager, decorators: [{
5915
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: HistoryStateManager, decorators: [{
5904
5916
  type: Injectable,
5905
5917
  args: [{ providedIn: 'root' }]
5906
5918
  }] });
@@ -6473,10 +6485,10 @@ class Router {
6473
6485
  return Promise.reject(e);
6474
6486
  });
6475
6487
  }
6476
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6477
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.0-next.7", 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' });
6478
6490
  }
6479
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.7", ngImport: i0, type: Router, decorators: [{
6491
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0-next.8", ngImport: i0, type: Router, decorators: [{
6480
6492
  type: Injectable,
6481
6493
  args: [{ providedIn: 'root' }]
6482
6494
  }], ctorParameters: () => [] });