@angular/router 17.0.0-next.6 → 17.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,11 +1,11 @@
1
1
  /**
2
- * @license Angular v17.0.0-next.6
2
+ * @license Angular v17.0.0-next.8
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
7
  import * as i0 from '@angular/core';
8
- import { ɵisPromise, ɵRuntimeError, Injectable, EventEmitter, inject, ViewContainerRef, ChangeDetectorRef, EnvironmentInjector, Directive, Input, Output, InjectionToken, reflectComponentType, Component, createEnvironmentInjector, ɵisNgModule, isStandalone, ɵisInjectable, Compiler, NgModuleFactory, NgZone, afterNextRender, ɵConsole, ɵInitialRenderPendingTasks, ɵɵsanitizeUrlOrResourceUrl, booleanAttribute, Attribute, HostBinding, HostListener, Optional, ContentChildren, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, Injector, ApplicationRef, InjectFlags, APP_INITIALIZER, NgProbeToken, SkipSelf, NgModule, Inject, Version } from '@angular/core';
8
+ import { ɵisPromise, ɵRuntimeError, Injectable, EventEmitter, inject, ViewContainerRef, ChangeDetectorRef, EnvironmentInjector, Directive, Input, Output, InjectionToken, reflectComponentType, Component, createEnvironmentInjector, ɵisNgModule, isStandalone, ɵisInjectable, Compiler, NgModuleFactory, NgZone, runInInjectionContext, afterNextRender, ɵConsole, ɵInitialRenderPendingTasks, ɵɵsanitizeUrlOrResourceUrl, booleanAttribute, Attribute, HostBinding, HostListener, Optional, ContentChildren, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, Injector, ApplicationRef, InjectFlags, APP_INITIALIZER, NgProbeToken, SkipSelf, NgModule, Inject, Version } from '@angular/core';
9
9
  import { isObservable, from, of, BehaviorSubject, combineLatest, EmptyError, concat, defer, pipe, throwError, EMPTY, ConnectableObservable, Subject, Subscription } from 'rxjs';
10
10
  import * as i3 from '@angular/common';
11
11
  import { DOCUMENT, Location, ViewportScroller, LOCATION_INITIALIZED, LocationStrategy, HashLocationStrategy, PathLocationStrategy } from '@angular/common';
@@ -425,10 +425,10 @@ function mapChildrenIntoArray(segment, fn) {
425
425
  * @publicApi
426
426
  */
427
427
  class UrlSerializer {
428
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
429
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
428
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
429
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
430
430
  }
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: UrlSerializer, decorators: [{
431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: UrlSerializer, decorators: [{
432
432
  type: Injectable,
433
433
  args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
434
434
  }] });
@@ -1785,10 +1785,10 @@ class ChildrenOutletContexts {
1785
1785
  getContext(childName) {
1786
1786
  return this.contexts.get(childName) || null;
1787
1787
  }
1788
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1789
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
1788
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1789
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
1790
1790
  }
1791
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
1791
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
1792
1792
  type: Injectable,
1793
1793
  args: [{ providedIn: 'root' }]
1794
1794
  }] });
@@ -2063,7 +2063,7 @@ function inheritedParamsDataResolve(route, paramsInheritanceStrategy = 'emptyOnl
2063
2063
  inheritingStartingFrom--;
2064
2064
  // parent is componentless => current route should inherit its params and data
2065
2065
  }
2066
- else if (!parent.component) {
2066
+ else if (!parent.component && parent.routeConfig?.loadComponent === undefined) {
2067
2067
  inheritingStartingFrom--;
2068
2068
  }
2069
2069
  else {
@@ -2495,10 +2495,10 @@ class RouterOutlet {
2495
2495
  this.inputBinder?.bindActivatedRouteToOutletComponent(this);
2496
2496
  this.activateEvents.emit(this.activated.instance);
2497
2497
  }
2498
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2499
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.6", type: RouterOutlet, isStandalone: true, selector: "router-outlet", inputs: { name: "name" }, outputs: { activateEvents: "activate", deactivateEvents: "deactivate", attachEvents: "attach", detachEvents: "detach" }, exportAs: ["outlet"], usesOnChanges: true, ngImport: i0 }); }
2498
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2499
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.8", type: RouterOutlet, isStandalone: true, selector: "router-outlet", inputs: { name: "name" }, outputs: { activateEvents: "activate", deactivateEvents: "deactivate", attachEvents: "attach", detachEvents: "detach" }, exportAs: ["outlet"], usesOnChanges: true, ngImport: i0 }); }
2500
2500
  }
2501
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterOutlet, decorators: [{
2501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterOutlet, decorators: [{
2502
2502
  type: Directive,
2503
2503
  args: [{
2504
2504
  selector: 'router-outlet',
@@ -2601,10 +2601,10 @@ class RoutedComponentInputBinder {
2601
2601
  });
2602
2602
  this.outletDataSubscriptions.set(outlet, dataSubscription);
2603
2603
  }
2604
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2605
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RoutedComponentInputBinder }); }
2604
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2605
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RoutedComponentInputBinder }); }
2606
2606
  }
2607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
2607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
2608
2608
  type: Injectable
2609
2609
  }] });
2610
2610
 
@@ -2684,10 +2684,10 @@ function isNavigationCancelingError$1(error) {
2684
2684
  * to this `EmptyOutletComponent`.
2685
2685
  */
2686
2686
  class ɵEmptyOutletComponent {
2687
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2688
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.6", type: ɵEmptyOutletComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `<router-outlet></router-outlet>`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
2687
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2688
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.8", type: ɵEmptyOutletComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `<router-outlet></router-outlet>`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
2689
2689
  }
2690
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2691
2691
  type: Component,
2692
2692
  args: [{
2693
2693
  template: `<router-outlet></router-outlet>`,
@@ -4098,10 +4098,10 @@ class TitleStrategy {
4098
4098
  getResolvedTitleForRoute(snapshot) {
4099
4099
  return snapshot.data[RouteTitleKey];
4100
4100
  }
4101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4102
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
4101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4102
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
4103
4103
  }
4104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: TitleStrategy, decorators: [{
4104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: TitleStrategy, decorators: [{
4105
4105
  type: Injectable,
4106
4106
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
4107
4107
  }] });
@@ -4124,10 +4124,10 @@ class DefaultTitleStrategy extends TitleStrategy {
4124
4124
  this.title.setTitle(title);
4125
4125
  }
4126
4126
  }
4127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
4128
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
4127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
4128
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
4129
4129
  }
4130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4131
4131
  type: Injectable,
4132
4132
  args: [{ providedIn: 'root' }]
4133
4133
  }], ctorParameters: () => [{ type: i1.Title }] });
@@ -4205,10 +4205,10 @@ class RouterConfigLoader {
4205
4205
  this.childrenLoaders.set(route, loader);
4206
4206
  return loader;
4207
4207
  }
4208
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4209
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
4208
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4209
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
4210
4210
  }
4211
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterConfigLoader, decorators: [{
4211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterConfigLoader, decorators: [{
4212
4212
  type: Injectable,
4213
4213
  args: [{ providedIn: 'root' }]
4214
4214
  }] });
@@ -4276,10 +4276,10 @@ function maybeUnwrapDefaultExport(input) {
4276
4276
  * @publicApi
4277
4277
  */
4278
4278
  class UrlHandlingStrategy {
4279
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4280
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
4279
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4280
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
4281
4281
  }
4282
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4283
4283
  type: Injectable,
4284
4284
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
4285
4285
  }] });
@@ -4296,10 +4296,10 @@ class DefaultUrlHandlingStrategy {
4296
4296
  merge(newUrlPart, wholeUrl) {
4297
4297
  return newUrlPart;
4298
4298
  }
4299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4300
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
4299
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4300
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
4301
4301
  }
4302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4302
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4303
4303
  type: Injectable,
4304
4304
  args: [{ providedIn: 'root' }]
4305
4305
  }] });
@@ -4313,7 +4313,7 @@ const VIEW_TRANSITION_OPTIONS = new InjectionToken(ngDevMode ? 'view transition
4313
4313
  *
4314
4314
  * @returns A Promise that resolves when the view transition callback begins.
4315
4315
  */
4316
- function createViewTransition(injector) {
4316
+ function createViewTransition(injector, from, to) {
4317
4317
  const transitionOptions = injector.get(VIEW_TRANSITION_OPTIONS);
4318
4318
  const document = injector.get(DOCUMENT);
4319
4319
  // Create promises outside the Angular zone to avoid causing extra change detections
@@ -4326,10 +4326,18 @@ function createViewTransition(injector) {
4326
4326
  const viewTransitionStarted = new Promise((resolve) => {
4327
4327
  resolveViewTransitionStarted = resolve;
4328
4328
  });
4329
- document.startViewTransition(() => {
4329
+ const transition = document.startViewTransition(() => {
4330
4330
  resolveViewTransitionStarted();
4331
+ // We don't actually update dom within the transition callback. The resolving of the above
4332
+ // promise unblocks the Router navigation, which synchronously activates and deactivates
4333
+ // routes (the DOM update). This view transition waits for the next change detection to
4334
+ // complete (below), which includes the update phase of the routed components.
4331
4335
  return createRenderPromise(injector);
4332
4336
  });
4337
+ const { onViewTransitionCreated } = transitionOptions;
4338
+ if (onViewTransitionCreated) {
4339
+ runInInjectionContext(injector, () => onViewTransitionCreated({ transition, from, to }));
4340
+ }
4333
4341
  return viewTransitionStarted;
4334
4342
  });
4335
4343
  }
@@ -4578,7 +4586,8 @@ class NavigationTransitions {
4578
4586
  return combineLatest(loadComponents(t.targetSnapshot.root))
4579
4587
  .pipe(defaultIfEmpty(), take(1));
4580
4588
  }), switchTap(() => this.afterPreactivation()), switchMap(() => {
4581
- const viewTransitionStarted = this.createViewTransition?.(this.environmentInjector);
4589
+ const { currentSnapshot, targetSnapshot } = overallTransitionState;
4590
+ const viewTransitionStarted = this.createViewTransition?.(this.environmentInjector, currentSnapshot.root, targetSnapshot.root);
4582
4591
  // If view transitions are enabled, block the navigation until the view
4583
4592
  // transition callback starts. Otherwise, continue immediately.
4584
4593
  return viewTransitionStarted ?
@@ -4699,10 +4708,10 @@ class NavigationTransitions {
4699
4708
  return extractedBrowserUrl.toString() !== this.currentTransition?.extractedUrl.toString() &&
4700
4709
  !this.currentTransition?.extras.skipLocationChange;
4701
4710
  }
4702
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4703
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
4711
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4712
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
4704
4713
  }
4705
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: NavigationTransitions, decorators: [{
4714
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: NavigationTransitions, decorators: [{
4706
4715
  type: Injectable,
4707
4716
  args: [{ providedIn: 'root' }]
4708
4717
  }], ctorParameters: () => [] });
@@ -4718,10 +4727,10 @@ function isBrowserTriggeredNavigation(source) {
4718
4727
  * @publicApi
4719
4728
  */
4720
4729
  class RouteReuseStrategy {
4721
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4722
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
4730
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4731
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
4723
4732
  }
4724
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4733
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4725
4734
  type: Injectable,
4726
4735
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
4727
4736
  }] });
@@ -4772,10 +4781,10 @@ class BaseRouteReuseStrategy {
4772
4781
  }
4773
4782
  }
4774
4783
  class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
4775
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4776
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
4784
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4785
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
4777
4786
  }
4778
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4787
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4779
4788
  type: Injectable,
4780
4789
  args: [{ providedIn: 'root' }]
4781
4790
  }] });
@@ -4838,6 +4847,10 @@ class StateManager {
4838
4847
  this.routerState = createEmptyState(this.currentUrlTree, null);
4839
4848
  this.stateMemento = this.createStateMemento();
4840
4849
  }
4850
+ /** Returns the current state from the browser. */
4851
+ restoredState() {
4852
+ return this.location.getState();
4853
+ }
4841
4854
  /**
4842
4855
  * The ɵrouterPageId of whatever page is currently active in the browser history. This is
4843
4856
  * important for computing the target page id for new navigations because we need to ensure each
@@ -4847,7 +4860,7 @@ class StateManager {
4847
4860
  if (this.canceledNavigationResolution !== 'computed') {
4848
4861
  return this.currentPageId;
4849
4862
  }
4850
- return this.location.getState()?.ɵrouterPageId ?? this.currentPageId;
4863
+ return this.restoredState()?.ɵrouterPageId ?? this.currentPageId;
4851
4864
  }
4852
4865
  createStateMemento() {
4853
4866
  return {
@@ -4856,6 +4869,13 @@ class StateManager {
4856
4869
  routerState: this.routerState,
4857
4870
  };
4858
4871
  }
4872
+ nonRouterCurrentEntryChange(listener) {
4873
+ return this.location.subscribe(event => {
4874
+ if (event['type'] === 'popstate') {
4875
+ listener(event['url'], event.state);
4876
+ }
4877
+ });
4878
+ }
4859
4879
  handleNavigationEvent(e, currentTransition) {
4860
4880
  if (e instanceof NavigationStart) {
4861
4881
  this.stateMemento = this.createStateMemento();
@@ -4969,10 +4989,10 @@ class StateManager {
4969
4989
  }
4970
4990
  return { navigationId };
4971
4991
  }
4972
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4973
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: StateManager, providedIn: 'root' }); }
4992
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4993
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: StateManager, providedIn: 'root' }); }
4974
4994
  }
4975
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: StateManager, decorators: [{
4995
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: StateManager, decorators: [{
4976
4996
  type: Injectable,
4977
4997
  args: [{ providedIn: 'root' }]
4978
4998
  }] });
@@ -5196,8 +5216,7 @@ class Router {
5196
5216
  initialNavigation() {
5197
5217
  this.setUpLocationChangeListener();
5198
5218
  if (!this.navigationTransitions.hasRequestedNavigation) {
5199
- const state = this.location.getState();
5200
- this.navigateToSyncWithBrowser(this.location.path(true), IMPERATIVE_NAVIGATION, state);
5219
+ this.navigateToSyncWithBrowser(this.location.path(true), IMPERATIVE_NAVIGATION, this.stateManager.restoredState());
5201
5220
  }
5202
5221
  }
5203
5222
  /**
@@ -5209,17 +5228,15 @@ class Router {
5209
5228
  // Don't need to use Zone.wrap any more, because zone.js
5210
5229
  // already patch onPopState, so location change callback will
5211
5230
  // run into ngZone
5212
- if (!this.locationSubscription) {
5213
- this.locationSubscription = this.location.subscribe(event => {
5214
- const source = event['type'] === 'popstate' ? 'popstate' : 'hashchange';
5215
- if (source === 'popstate') {
5231
+ if (!this.nonRouterCurrentEntryChangeSubscription) {
5232
+ this.nonRouterCurrentEntryChangeSubscription =
5233
+ this.stateManager.nonRouterCurrentEntryChange((url, state) => {
5216
5234
  // The `setTimeout` was added in #12160 and is likely to support Angular/AngularJS
5217
5235
  // hybrid apps.
5218
5236
  setTimeout(() => {
5219
- this.navigateToSyncWithBrowser(event['url'], source, event.state);
5237
+ this.navigateToSyncWithBrowser(url, 'popstate', state);
5220
5238
  }, 0);
5221
- }
5222
- });
5239
+ });
5223
5240
  }
5224
5241
  }
5225
5242
  /**
@@ -5298,9 +5315,9 @@ class Router {
5298
5315
  /** Disposes of the router. */
5299
5316
  dispose() {
5300
5317
  this.navigationTransitions.complete();
5301
- if (this.locationSubscription) {
5302
- this.locationSubscription.unsubscribe();
5303
- this.locationSubscription = undefined;
5318
+ if (this.nonRouterCurrentEntryChangeSubscription) {
5319
+ this.nonRouterCurrentEntryChangeSubscription.unsubscribe();
5320
+ this.nonRouterCurrentEntryChangeSubscription = undefined;
5304
5321
  }
5305
5322
  this.disposed = true;
5306
5323
  this.eventsSubscription.unsubscribe();
@@ -5548,10 +5565,10 @@ class Router {
5548
5565
  return Promise.reject(e);
5549
5566
  });
5550
5567
  }
5551
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5552
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: Router, providedIn: 'root' }); }
5568
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5569
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: Router, providedIn: 'root' }); }
5553
5570
  }
5554
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: Router, decorators: [{
5571
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: Router, decorators: [{
5555
5572
  type: Injectable,
5556
5573
  args: [{ providedIn: 'root' }]
5557
5574
  }], ctorParameters: () => [] });
@@ -5822,10 +5839,10 @@ class RouterLink {
5822
5839
  preserveFragment: this.preserveFragment,
5823
5840
  });
5824
5841
  }
5825
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterLink, deps: [{ token: Router }, { token: ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i3.LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive }); }
5826
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-next.6", type: RouterLink, isStandalone: true, selector: "[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", relativeTo: "relativeTo", preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute], skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute], replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute], routerLink: "routerLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" }, properties: { "attr.target": "this.target" } }, usesOnChanges: true, ngImport: i0 }); }
5842
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterLink, deps: [{ token: Router }, { token: ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i3.LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive }); }
5843
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-next.8", type: RouterLink, isStandalone: true, selector: "[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", relativeTo: "relativeTo", preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute], skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute], replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute], routerLink: "routerLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" }, properties: { "attr.target": "this.target" } }, usesOnChanges: true, ngImport: i0 }); }
5827
5844
  }
5828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterLink, decorators: [{
5845
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterLink, decorators: [{
5829
5846
  type: Directive,
5830
5847
  args: [{
5831
5848
  selector: '[routerLink]',
@@ -6048,10 +6065,10 @@ class RouterLinkActive {
6048
6065
  const isActiveCheckFn = this.isLinkActive(this.router);
6049
6066
  return this.link && isActiveCheckFn(this.link) || this.links.some(isActiveCheckFn);
6050
6067
  }
6051
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
6052
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.6", type: RouterLinkActive, isStandalone: true, selector: "[routerLinkActive]", inputs: { routerLinkActiveOptions: "routerLinkActiveOptions", ariaCurrentWhenActive: "ariaCurrentWhenActive", routerLinkActive: "routerLinkActive" }, outputs: { isActiveChange: "isActiveChange" }, queries: [{ propertyName: "links", predicate: RouterLink, descendants: true }], exportAs: ["routerLinkActive"], usesOnChanges: true, ngImport: i0 }); }
6068
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
6069
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.8", type: RouterLinkActive, isStandalone: true, selector: "[routerLinkActive]", inputs: { routerLinkActiveOptions: "routerLinkActiveOptions", ariaCurrentWhenActive: "ariaCurrentWhenActive", routerLinkActive: "routerLinkActive" }, outputs: { isActiveChange: "isActiveChange" }, queries: [{ propertyName: "links", predicate: RouterLink, descendants: true }], exportAs: ["routerLinkActive"], usesOnChanges: true, ngImport: i0 }); }
6053
6070
  }
6054
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterLinkActive, decorators: [{
6071
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterLinkActive, decorators: [{
6055
6072
  type: Directive,
6056
6073
  args: [{
6057
6074
  selector: '[routerLinkActive]',
@@ -6103,10 +6120,10 @@ class PreloadAllModules {
6103
6120
  preload(route, fn) {
6104
6121
  return fn().pipe(catchError(() => of(null)));
6105
6122
  }
6106
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6107
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
6123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6124
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
6108
6125
  }
6109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: PreloadAllModules, decorators: [{
6126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: PreloadAllModules, decorators: [{
6110
6127
  type: Injectable,
6111
6128
  args: [{ providedIn: 'root' }]
6112
6129
  }] });
@@ -6123,10 +6140,10 @@ class NoPreloading {
6123
6140
  preload(route, fn) {
6124
6141
  return of(null);
6125
6142
  }
6126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6127
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
6143
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6144
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
6128
6145
  }
6129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: NoPreloading, decorators: [{
6146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: NoPreloading, decorators: [{
6130
6147
  type: Injectable,
6131
6148
  args: [{ providedIn: 'root' }]
6132
6149
  }] });
@@ -6219,10 +6236,10 @@ class RouterPreloader {
6219
6236
  }
6220
6237
  });
6221
6238
  }
6222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
6223
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
6239
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
6240
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
6224
6241
  }
6225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterPreloader, decorators: [{
6242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterPreloader, decorators: [{
6226
6243
  type: Injectable,
6227
6244
  args: [{ providedIn: 'root' }]
6228
6245
  }], ctorParameters: () => [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }] });
@@ -6315,10 +6332,10 @@ class RouterScroller {
6315
6332
  this.routerEventsSubscription?.unsubscribe();
6316
6333
  this.scrollEventsSubscription?.unsubscribe();
6317
6334
  }
6318
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
6319
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterScroller }); }
6335
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
6336
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterScroller }); }
6320
6337
  }
6321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterScroller, decorators: [{
6338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterScroller, decorators: [{
6322
6339
  type: Injectable
6323
6340
  }], ctorParameters: () => [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }] });
6324
6341
 
@@ -6734,7 +6751,7 @@ function withHashLocation() {
6734
6751
  const providers = [
6735
6752
  { provide: LocationStrategy, useClass: HashLocationStrategy },
6736
6753
  ];
6737
- return routerFeature(5 /* RouterFeatureKind.RouterConfigurationFeature */, providers);
6754
+ return routerFeature(6 /* RouterFeatureKind.RouterHashLocationFeature */, providers);
6738
6755
  }
6739
6756
  /**
6740
6757
  * Subscribes to the Router's navigation events and calls the given function when a
@@ -6840,7 +6857,7 @@ function withViewTransitions(options) {
6840
6857
  { provide: CREATE_VIEW_TRANSITION, useValue: createViewTransition },
6841
6858
  {
6842
6859
  provide: VIEW_TRANSITION_OPTIONS,
6843
- useValue: { skipNextTransition: !!options?.skipInitialTransition }
6860
+ useValue: { skipNextTransition: !!options?.skipInitialTransition, ...options }
6844
6861
  },
6845
6862
  ];
6846
6863
  return routerFeature(9 /* RouterFeatureKind.ViewTransitionsFeature */, providers);
@@ -6963,11 +6980,11 @@ class RouterModule {
6963
6980
  providers: [{ provide: ROUTES, multi: true, useValue: routes }],
6964
6981
  };
6965
6982
  }
6966
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
6967
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
6968
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterModule }); }
6983
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
6984
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
6985
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterModule }); }
6969
6986
  }
6970
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.6", ngImport: i0, type: RouterModule, decorators: [{
6987
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: RouterModule, decorators: [{
6971
6988
  type: NgModule,
6972
6989
  args: [{
6973
6990
  imports: ROUTER_DIRECTIVES,
@@ -7112,7 +7129,7 @@ function mapToResolve(provider) {
7112
7129
  /**
7113
7130
  * @publicApi
7114
7131
  */
7115
- const VERSION = new Version('17.0.0-next.6');
7132
+ const VERSION = new Version('17.0.0-next.8');
7116
7133
 
7117
7134
  /**
7118
7135
  * @module