@angular/router 20.0.0-next.9 → 20.0.0-rc.1

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,12 +1,12 @@
1
1
  /**
2
- * @license Angular v20.0.0-next.9
2
+ * @license Angular v20.0.0-rc.1
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
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
- import { ɵisPromise as _isPromise, ɵRuntimeError as _RuntimeError, Injectable, ɵisNgModule as _isNgModule, isStandalone, createEnvironmentInjector, InjectionToken, EventEmitter, input, inject, ViewContainerRef, ChangeDetectorRef, Output, Input, Directive, reflectComponentType, ɵisInjectable as _isInjectable, runInInjectionContext, Component, NgModuleFactory, Compiler, NgZone, afterNextRender, EnvironmentInjector, DestroyRef, ɵConsole as _Console, ɵPendingTasksInternal as _PendingTasksInternal, ɵINTERNAL_APPLICATION_ERROR_HANDLER as _INTERNAL_APPLICATION_ERROR_HANDLER } from '@angular/core';
9
+ import { ɵisPromise as _isPromise, ɵRuntimeError as _RuntimeError, Injectable, ɵisNgModule as _isNgModule, isStandalone, createEnvironmentInjector, InjectionToken, EventEmitter, input, inject, ViewContainerRef, ChangeDetectorRef, Output, Input, Directive, reflectComponentType, Component, ɵisInjectable as _isInjectable, runInInjectionContext, NgModuleFactory, Compiler, afterNextRender, EnvironmentInjector, DestroyRef, ɵConsole as _Console, ɵPendingTasksInternal as _PendingTasksInternal, ɵINTERNAL_APPLICATION_ERROR_HANDLER as _INTERNAL_APPLICATION_ERROR_HANDLER } from '@angular/core';
10
10
  import { isObservable, from, of, BehaviorSubject, combineLatest, EmptyError, concat, defer, pipe, throwError, EMPTY, ConnectableObservable, Subject, Observable, Subscription } from 'rxjs';
11
11
  import { map, switchMap, take, startWith, filter, mergeMap, first, concatMap, tap, catchError, scan, defaultIfEmpty, last as last$1, takeLast, finalize, refCount, takeUntil } from 'rxjs/operators';
12
12
  import * as i1 from '@angular/platform-browser';
@@ -432,10 +432,10 @@ function mapChildrenIntoArray(segment, fn) {
432
432
  * @publicApi
433
433
  */
434
434
  class UrlSerializer {
435
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
436
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });
435
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
436
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });
437
437
  }
438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: UrlSerializer, decorators: [{
438
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: UrlSerializer, decorators: [{
439
439
  type: Injectable,
440
440
  args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
441
441
  }] });
@@ -2074,7 +2074,7 @@ class ChildrenOutletContexts {
2074
2074
  rootInjector;
2075
2075
  // contexts for child outlets, by name.
2076
2076
  contexts = new Map();
2077
- /** @nodoc */
2077
+ /** @docs-private */
2078
2078
  constructor(rootInjector) {
2079
2079
  this.rootInjector = rootInjector;
2080
2080
  }
@@ -2119,10 +2119,10 @@ class ChildrenOutletContexts {
2119
2119
  getContext(childName) {
2120
2120
  return this.contexts.get(childName) || null;
2121
2121
  }
2122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
2123
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
2122
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
2123
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
2124
2124
  }
2125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
2125
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
2126
2126
  type: Injectable,
2127
2127
  args: [{ providedIn: 'root' }]
2128
2128
  }], ctorParameters: () => [{ type: i0.EnvironmentInjector }] });
@@ -2778,9 +2778,9 @@ class RouterOutlet {
2778
2778
  location = inject(ViewContainerRef);
2779
2779
  changeDetector = inject(ChangeDetectorRef);
2780
2780
  inputBinder = inject(INPUT_BINDER, { optional: true });
2781
- /** @nodoc */
2781
+ /** @docs-private */
2782
2782
  supportsBindingToComponentInputs = true;
2783
- /** @nodoc */
2783
+ /** @docs-private */
2784
2784
  ngOnChanges(changes) {
2785
2785
  if (changes['name']) {
2786
2786
  const { firstChange, previousValue } = changes['name'];
@@ -2798,7 +2798,7 @@ class RouterOutlet {
2798
2798
  this.initializeOutletWithName();
2799
2799
  }
2800
2800
  }
2801
- /** @nodoc */
2801
+ /** @docs-private */
2802
2802
  ngOnDestroy() {
2803
2803
  // Ensure that the registered outlet is this one before removing it on the context.
2804
2804
  if (this.isTrackedInParentContexts(this.name)) {
@@ -2809,7 +2809,7 @@ class RouterOutlet {
2809
2809
  isTrackedInParentContexts(outletName) {
2810
2810
  return this.parentContexts.getContext(outletName)?.outlet === this;
2811
2811
  }
2812
- /** @nodoc */
2812
+ /** @docs-private */
2813
2813
  ngOnInit() {
2814
2814
  this.initializeOutletWithName();
2815
2815
  }
@@ -2909,10 +2909,10 @@ class RouterOutlet {
2909
2909
  this.inputBinder?.bindActivatedRouteToOutletComponent(this);
2910
2910
  this.activateEvents.emit(this.activated.instance);
2911
2911
  }
2912
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2913
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.0-next.9", 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 });
2912
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2913
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.0-rc.1", 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
2914
  }
2915
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RouterOutlet, decorators: [{
2915
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RouterOutlet, decorators: [{
2916
2916
  type: Directive,
2917
2917
  args: [{
2918
2918
  selector: 'router-outlet',
@@ -3022,13 +3022,51 @@ class RoutedComponentInputBinder {
3022
3022
  });
3023
3023
  this.outletDataSubscriptions.set(outlet, dataSubscription);
3024
3024
  }
3025
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3026
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RoutedComponentInputBinder });
3025
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3026
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RoutedComponentInputBinder });
3027
3027
  }
3028
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
3028
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
3029
3029
  type: Injectable
3030
3030
  }] });
3031
3031
 
3032
+ /**
3033
+ * This component is used internally within the router to be a placeholder when an empty
3034
+ * router-outlet is needed. For example, with a config such as:
3035
+ *
3036
+ * `{path: 'parent', outlet: 'nav', children: [...]}`
3037
+ *
3038
+ * In order to render, there needs to be a component on this config, which will default
3039
+ * to this `EmptyOutletComponent`.
3040
+ */
3041
+ class ɵEmptyOutletComponent {
3042
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3043
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-rc.1", 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
+ }
3045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
3046
+ type: Component,
3047
+ args: [{
3048
+ template: `<router-outlet/>`,
3049
+ imports: [RouterOutlet],
3050
+ // Used to avoid component ID collisions with user code.
3051
+ exportAs: 'emptyRouterOutlet',
3052
+ }]
3053
+ }] });
3054
+ /**
3055
+ * Makes a copy of the config and adds any default required properties.
3056
+ */
3057
+ function standardizeConfig(r) {
3058
+ const children = r.children && r.children.map(standardizeConfig);
3059
+ const c = children ? { ...r, children } : { ...r };
3060
+ if (!c.component &&
3061
+ !c.loadComponent &&
3062
+ (children || c.loadChildren) &&
3063
+ c.outlet &&
3064
+ c.outlet !== PRIMARY_OUTLET) {
3065
+ c.component = ɵEmptyOutletComponent;
3066
+ }
3067
+ return c;
3068
+ }
3069
+
3032
3070
  function createRouterState(routeReuseStrategy, curr, prevState) {
3033
3071
  const root = createNode(routeReuseStrategy, curr._root, prevState ? prevState._root : undefined);
3034
3072
  return new RouterState(root, curr);
@@ -3089,7 +3127,7 @@ function createActivatedRoute(c) {
3089
3127
  * if (!authService.isLoggedIn()) {
3090
3128
  * const loginPath = router.parseUrl("/login");
3091
3129
  * return new RedirectCommand(loginPath, {
3092
- * skipLocationChange: "true",
3130
+ * skipLocationChange: true,
3093
3131
  * });
3094
3132
  * }
3095
3133
  *
@@ -4365,10 +4403,10 @@ class TitleStrategy {
4365
4403
  getResolvedTitleForRoute(snapshot) {
4366
4404
  return snapshot.data[RouteTitleKey];
4367
4405
  }
4368
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4369
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
4406
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4407
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
4370
4408
  }
4371
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: TitleStrategy, decorators: [{
4409
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: TitleStrategy, decorators: [{
4372
4410
  type: Injectable,
4373
4411
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
4374
4412
  }] });
@@ -4392,10 +4430,10 @@ class DefaultTitleStrategy extends TitleStrategy {
4392
4430
  this.title.setTitle(title);
4393
4431
  }
4394
4432
  }
4395
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
4396
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
4433
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
4434
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
4397
4435
  }
4398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4436
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4399
4437
  type: Injectable,
4400
4438
  args: [{ providedIn: 'root' }]
4401
4439
  }], ctorParameters: () => [{ type: i1.Title }] });
@@ -4410,44 +4448,6 @@ const ROUTER_CONFIGURATION = new InjectionToken(typeof ngDevMode === 'undefined'
4410
4448
  factory: () => ({}),
4411
4449
  });
4412
4450
 
4413
- /**
4414
- * This component is used internally within the router to be a placeholder when an empty
4415
- * router-outlet is needed. For example, with a config such as:
4416
- *
4417
- * `{path: 'parent', outlet: 'nav', children: [...]}`
4418
- *
4419
- * In order to render, there needs to be a component on this config, which will default
4420
- * to this `EmptyOutletComponent`.
4421
- */
4422
- class ɵEmptyOutletComponent {
4423
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4424
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.0-next.9", 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"] }] });
4425
- }
4426
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
4427
- type: Component,
4428
- args: [{
4429
- template: `<router-outlet/>`,
4430
- imports: [RouterOutlet],
4431
- // Used to avoid component ID collisions with user code.
4432
- exportAs: 'emptyRouterOutlet',
4433
- }]
4434
- }] });
4435
- /**
4436
- * Makes a copy of the config and adds any default required properties.
4437
- */
4438
- function standardizeConfig(r) {
4439
- const children = r.children && r.children.map(standardizeConfig);
4440
- const c = children ? { ...r, children } : { ...r };
4441
- if (!c.component &&
4442
- !c.loadComponent &&
4443
- (children || c.loadChildren) &&
4444
- c.outlet &&
4445
- c.outlet !== PRIMARY_OUTLET) {
4446
- c.component = ɵEmptyOutletComponent;
4447
- }
4448
- return c;
4449
- }
4450
-
4451
4451
  /**
4452
4452
  * The DI token for a router configuration.
4453
4453
  *
@@ -4509,10 +4509,10 @@ class RouterConfigLoader {
4509
4509
  this.childrenLoaders.set(route, loader);
4510
4510
  return loader;
4511
4511
  }
4512
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4513
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
4512
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4513
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
4514
4514
  }
4515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RouterConfigLoader, decorators: [{
4515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RouterConfigLoader, decorators: [{
4516
4516
  type: Injectable,
4517
4517
  args: [{ providedIn: 'root' }]
4518
4518
  }] });
@@ -4579,10 +4579,10 @@ function maybeUnwrapDefaultExport(input) {
4579
4579
  * @publicApi
4580
4580
  */
4581
4581
  class UrlHandlingStrategy {
4582
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4583
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
4582
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4583
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
4584
4584
  }
4585
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4585
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4586
4586
  type: Injectable,
4587
4587
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
4588
4588
  }] });
@@ -4599,10 +4599,10 @@ class DefaultUrlHandlingStrategy {
4599
4599
  merge(newUrlPart, wholeUrl) {
4600
4600
  return newUrlPart;
4601
4601
  }
4602
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4603
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
4602
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4603
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
4604
4604
  }
4605
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4605
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4606
4606
  type: Injectable,
4607
4607
  args: [{ providedIn: 'root' }]
4608
4608
  }] });
@@ -4618,33 +4618,30 @@ const VIEW_TRANSITION_OPTIONS = new InjectionToken(ngDevMode ? 'view transition
4618
4618
  function createViewTransition(injector, from, to) {
4619
4619
  const transitionOptions = injector.get(VIEW_TRANSITION_OPTIONS);
4620
4620
  const document = injector.get(DOCUMENT);
4621
- // Create promises outside the Angular zone to avoid causing extra change detections
4622
- return injector.get(NgZone).runOutsideAngular(() => {
4623
- if (!document.startViewTransition || transitionOptions.skipNextTransition) {
4624
- transitionOptions.skipNextTransition = false;
4625
- // The timing of `startViewTransition` is closer to a macrotask. It won't be called
4626
- // until the current event loop exits so we use a promise resolved in a timeout instead
4627
- // of Promise.resolve().
4628
- return new Promise((resolve) => setTimeout(resolve));
4629
- }
4630
- let resolveViewTransitionStarted;
4631
- const viewTransitionStarted = new Promise((resolve) => {
4632
- resolveViewTransitionStarted = resolve;
4633
- });
4634
- const transition = document.startViewTransition(() => {
4635
- resolveViewTransitionStarted();
4636
- // We don't actually update dom within the transition callback. The resolving of the above
4637
- // promise unblocks the Router navigation, which synchronously activates and deactivates
4638
- // routes (the DOM update). This view transition waits for the next change detection to
4639
- // complete (below), which includes the update phase of the routed components.
4640
- return createRenderPromise(injector);
4641
- });
4642
- const { onViewTransitionCreated } = transitionOptions;
4643
- if (onViewTransitionCreated) {
4644
- runInInjectionContext(injector, () => onViewTransitionCreated({ transition, from, to }));
4645
- }
4646
- return viewTransitionStarted;
4621
+ if (!document.startViewTransition || transitionOptions.skipNextTransition) {
4622
+ transitionOptions.skipNextTransition = false;
4623
+ // The timing of `startViewTransition` is closer to a macrotask. It won't be called
4624
+ // until the current event loop exits so we use a promise resolved in a timeout instead
4625
+ // of Promise.resolve().
4626
+ return new Promise((resolve) => setTimeout(resolve));
4627
+ }
4628
+ let resolveViewTransitionStarted;
4629
+ const viewTransitionStarted = new Promise((resolve) => {
4630
+ resolveViewTransitionStarted = resolve;
4647
4631
  });
4632
+ const transition = document.startViewTransition(() => {
4633
+ resolveViewTransitionStarted();
4634
+ // We don't actually update dom within the transition callback. The resolving of the above
4635
+ // promise unblocks the Router navigation, which synchronously activates and deactivates
4636
+ // routes (the DOM update). This view transition waits for the next change detection to
4637
+ // complete (below), which includes the update phase of the routed components.
4638
+ return createRenderPromise(injector);
4639
+ });
4640
+ const { onViewTransitionCreated } = transitionOptions;
4641
+ if (onViewTransitionCreated) {
4642
+ runInInjectionContext(injector, () => onViewTransitionCreated({ transition, from, to }));
4643
+ }
4644
+ return viewTransitionStarted;
4648
4645
  }
4649
4646
  /**
4650
4647
  * Creates a promise that resolves after next render.
@@ -5059,10 +5056,10 @@ class NavigationTransitions {
5059
5056
  return (currentBrowserUrl.toString() !== targetBrowserUrl?.toString() &&
5060
5057
  !this.currentNavigation?.extras.skipLocationChange);
5061
5058
  }
5062
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5063
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
5059
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5060
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
5064
5061
  }
5065
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: NavigationTransitions, decorators: [{
5062
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: NavigationTransitions, decorators: [{
5066
5063
  type: Injectable,
5067
5064
  args: [{ providedIn: 'root' }]
5068
5065
  }], ctorParameters: () => [] });
@@ -5078,10 +5075,10 @@ function isBrowserTriggeredNavigation(source) {
5078
5075
  * @publicApi
5079
5076
  */
5080
5077
  class RouteReuseStrategy {
5081
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5082
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
5078
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5079
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
5083
5080
  }
5084
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: RouteReuseStrategy, decorators: [{
5081
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: RouteReuseStrategy, decorators: [{
5085
5082
  type: Injectable,
5086
5083
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
5087
5084
  }] });
@@ -5132,10 +5129,10 @@ class BaseRouteReuseStrategy {
5132
5129
  }
5133
5130
  }
5134
5131
  class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
5135
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5136
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
5132
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5133
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
5137
5134
  }
5138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
5135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
5139
5136
  type: Injectable,
5140
5137
  args: [{ providedIn: 'root' }]
5141
5138
  }] });
@@ -5234,10 +5231,10 @@ class StateManager {
5234
5231
  // when merging, such as the query params so they are not lost on a refresh.
5235
5232
  this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, finalUrl ?? this.rawUrlTree);
5236
5233
  }
5237
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5238
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) });
5234
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5235
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) });
5239
5236
  }
5240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: StateManager, decorators: [{
5237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: StateManager, decorators: [{
5241
5238
  type: Injectable,
5242
5239
  args: [{ providedIn: 'root', useFactory: () => inject(HistoryStateManager) }]
5243
5240
  }] });
@@ -5369,10 +5366,10 @@ class HistoryStateManager extends StateManager {
5369
5366
  }
5370
5367
  return { navigationId };
5371
5368
  }
5372
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5373
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: HistoryStateManager, providedIn: 'root' });
5369
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5370
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: HistoryStateManager, providedIn: 'root' });
5374
5371
  }
5375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: HistoryStateManager, decorators: [{
5372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: HistoryStateManager, decorators: [{
5376
5373
  type: Injectable,
5377
5374
  args: [{ providedIn: 'root' }]
5378
5375
  }] });
@@ -5677,7 +5674,7 @@ class Router {
5677
5674
  this.config = config.map(standardizeConfig);
5678
5675
  this.navigated = false;
5679
5676
  }
5680
- /** @nodoc */
5677
+ /** @docs-private */
5681
5678
  ngOnDestroy() {
5682
5679
  this.dispose();
5683
5680
  }
@@ -5934,10 +5931,10 @@ class Router {
5934
5931
  return Promise.reject(e);
5935
5932
  });
5936
5933
  }
5937
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5938
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: Router, providedIn: 'root' });
5934
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5935
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: Router, providedIn: 'root' });
5939
5936
  }
5940
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.9", ngImport: i0, type: Router, decorators: [{
5937
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-rc.1", ngImport: i0, type: Router, decorators: [{
5941
5938
  type: Injectable,
5942
5939
  args: [{ providedIn: 'root' }]
5943
5940
  }], ctorParameters: () => [] });
@@ -5952,4 +5949,4 @@ function validateCommands(commands) {
5952
5949
  }
5953
5950
 
5954
5951
  export { ActivatedRoute, ActivatedRouteSnapshot, ActivationEnd, ActivationStart, BaseRouteReuseStrategy, CREATE_VIEW_TRANSITION, ChildActivationEnd, ChildActivationStart, ChildrenOutletContexts, DefaultTitleStrategy, DefaultUrlSerializer, EventType, GuardsCheckEnd, GuardsCheckStart, IMPERATIVE_NAVIGATION, INPUT_BINDER, NAVIGATION_ERROR_HANDLER, NavigationCancel, NavigationCancellationCode, NavigationEnd, NavigationError, NavigationSkipped, NavigationSkippedCode, NavigationStart, NavigationTransitions, OutletContext, PRIMARY_OUTLET, ROUTER_CONFIGURATION, ROUTER_OUTLET_DATA, ROUTES, RedirectCommand, ResolveEnd, ResolveStart, RouteConfigLoadEnd, RouteConfigLoadStart, RouteReuseStrategy, RoutedComponentInputBinder, Router, RouterConfigLoader, RouterEvent, RouterOutlet, RouterState, RouterStateSnapshot, RoutesRecognized, Scroll, TitleStrategy, UrlHandlingStrategy, UrlSegment, UrlSegmentGroup, UrlSerializer, UrlTree, VIEW_TRANSITION_OPTIONS, afterNextNavigation, convertToParamMap, createUrlTreeFromSnapshot, createViewTransition, defaultUrlMatcher, isUrlTree, loadChildren, stringifyEvent, ɵEmptyOutletComponent };
5955
- //# sourceMappingURL=router-BxrGTdzL.mjs.map
5952
+ //# sourceMappingURL=router-BCAMvkKO.mjs.map