@angular/router 17.0.0-next.4 → 17.0.0-next.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,14 +1,14 @@
1
1
  /**
2
- * @license Angular v17.0.0-next.4
2
+ * @license Angular v17.0.0-next.5
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, InjectFlags, NgModuleFactory, NgZone, afterNextRender, ɵConsole, ɵInitialRenderPendingTasks, ɵɵsanitizeUrlOrResourceUrl, booleanAttribute, Attribute, HostBinding, HostListener, Optional, ContentChildren, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, Injector, ApplicationRef, 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, 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
- import { Location, ViewportScroller, LOCATION_INITIALIZED, LocationStrategy, HashLocationStrategy, PathLocationStrategy } from '@angular/common';
11
+ import { DOCUMENT, Location, ViewportScroller, LOCATION_INITIALIZED, LocationStrategy, HashLocationStrategy, PathLocationStrategy } from '@angular/common';
12
12
  import { map, switchMap, take, startWith, filter, mergeMap, first, concatMap, tap, catchError, scan, defaultIfEmpty, last as last$1, takeLast, mapTo, finalize, refCount, takeUntil, mergeAll } from 'rxjs/operators';
13
13
  import * as i1 from '@angular/platform-browser';
14
14
 
@@ -23,7 +23,7 @@ const PRIMARY_OUTLET = 'primary';
23
23
  * static string or `Route.resolve` if anything else. This allows us to reuse the existing route
24
24
  * data/resolvers to support the title feature without new instrumentation in the `Router` pipeline.
25
25
  */
26
- const RouteTitleKey = Symbol('RouteTitle');
26
+ const RouteTitleKey = /* @__PURE__ */ Symbol('RouteTitle');
27
27
  class ParamsAsMap {
28
28
  constructor(params) {
29
29
  this.params = params || {};
@@ -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.4", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
429
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
428
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
429
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
430
430
  }
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: UrlSerializer, decorators: [{
431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", 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.4", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1789
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
1788
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1789
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
1790
1790
  }
1791
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
1791
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
1792
1792
  type: Injectable,
1793
1793
  args: [{ providedIn: 'root' }]
1794
1794
  }] });
@@ -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.4", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2499
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.4", 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.5", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2499
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.5", 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.4", ngImport: i0, type: RouterOutlet, decorators: [{
2501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", 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.4", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2605
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RoutedComponentInputBinder }); }
2604
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2605
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RoutedComponentInputBinder }); }
2606
2606
  }
2607
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
2607
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", 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.4", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2688
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.4", 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.5", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2688
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.0-next.5", 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.4", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2691
2691
  type: Component,
2692
2692
  args: [{
2693
2693
  template: `<router-outlet></router-outlet>`,
@@ -3251,7 +3251,7 @@ function isEmptyError(e) {
3251
3251
  return e instanceof EmptyError || e?.name === 'EmptyError';
3252
3252
  }
3253
3253
 
3254
- const INITIAL_VALUE = Symbol('INITIAL_VALUE');
3254
+ const INITIAL_VALUE = /* @__PURE__ */ Symbol('INITIAL_VALUE');
3255
3255
  function prioritizedGuardValue() {
3256
3256
  return switchMap(obs => {
3257
3257
  return combineLatest(obs.map(o => o.pipe(take(1), startWith(INITIAL_VALUE))))
@@ -4092,10 +4092,10 @@ class TitleStrategy {
4092
4092
  getResolvedTitleForRoute(snapshot) {
4093
4093
  return snapshot.data[RouteTitleKey];
4094
4094
  }
4095
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4096
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
4095
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4096
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
4097
4097
  }
4098
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: TitleStrategy, decorators: [{
4098
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: TitleStrategy, decorators: [{
4099
4099
  type: Injectable,
4100
4100
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
4101
4101
  }] });
@@ -4118,10 +4118,10 @@ class DefaultTitleStrategy extends TitleStrategy {
4118
4118
  this.title.setTitle(title);
4119
4119
  }
4120
4120
  }
4121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
4122
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
4121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
4122
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
4123
4123
  }
4124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4125
4125
  type: Injectable,
4126
4126
  args: [{ providedIn: 'root' }]
4127
4127
  }], ctorParameters: function () { return [{ type: i1.Title }]; } });
@@ -4189,33 +4189,8 @@ class RouterConfigLoader {
4189
4189
  if (this.onLoadStartListener) {
4190
4190
  this.onLoadStartListener(route);
4191
4191
  }
4192
- const moduleFactoryOrRoutes$ = this.loadModuleFactoryOrRoutes(route.loadChildren);
4193
- const loadRunner = moduleFactoryOrRoutes$.pipe(map((factoryOrRoutes) => {
4194
- if (this.onLoadEndListener) {
4195
- this.onLoadEndListener(route);
4196
- }
4197
- // This injector comes from the `NgModuleRef` when lazy loading an `NgModule`. There is no
4198
- // injector associated with lazy loading a `Route` array.
4199
- let injector;
4200
- let rawRoutes;
4201
- let requireStandaloneComponents = false;
4202
- if (Array.isArray(factoryOrRoutes)) {
4203
- rawRoutes = factoryOrRoutes;
4204
- requireStandaloneComponents = true;
4205
- }
4206
- else {
4207
- injector = factoryOrRoutes.create(parentInjector).injector;
4208
- // When loading a module that doesn't provide `RouterModule.forChild()` preloader
4209
- // will get stuck in an infinite loop. The child module's Injector will look to
4210
- // its parent `Injector` when it doesn't find any ROUTES so it will return routes
4211
- // for it's parent module instead.
4212
- rawRoutes = injector.get(ROUTES, [], InjectFlags.Self | InjectFlags.Optional).flat();
4213
- }
4214
- const routes = rawRoutes.map(standardizeConfig);
4215
- (typeof ngDevMode === 'undefined' || ngDevMode) &&
4216
- validateConfig(routes, route.path, requireStandaloneComponents);
4217
- return { routes, injector };
4218
- }), finalize(() => {
4192
+ const moduleFactoryOrRoutes$ = loadChildren(route, this.compiler, parentInjector, this.onLoadEndListener);
4193
+ const loadRunner = moduleFactoryOrRoutes$.pipe(finalize(() => {
4219
4194
  this.childrenLoaders.delete(route);
4220
4195
  }));
4221
4196
  // Use custom ConnectableObservable as share in runners pipe increasing the bundle size too much
@@ -4224,24 +4199,57 @@ class RouterConfigLoader {
4224
4199
  this.childrenLoaders.set(route, loader);
4225
4200
  return loader;
4226
4201
  }
4227
- loadModuleFactoryOrRoutes(loadChildren) {
4228
- return wrapIntoObservable(loadChildren())
4229
- .pipe(map(maybeUnwrapDefaultExport), mergeMap((t) => {
4230
- if (t instanceof NgModuleFactory || Array.isArray(t)) {
4231
- return of(t);
4232
- }
4233
- else {
4234
- return from(this.compiler.compileModuleAsync(t));
4235
- }
4236
- }));
4237
- }
4238
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4239
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
4202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4203
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
4240
4204
  }
4241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterConfigLoader, decorators: [{
4205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterConfigLoader, decorators: [{
4242
4206
  type: Injectable,
4243
4207
  args: [{ providedIn: 'root' }]
4244
4208
  }] });
4209
+ /**
4210
+ * Executes a `route.loadChildren` callback and converts the result to an array of child routes and
4211
+ * an injector if that callback returned a module.
4212
+ *
4213
+ * This function is used for the route discovery during prerendering
4214
+ * in @angular-devkit/build-angular. If there are any updates to the contract here, it will require
4215
+ * an update to the extractor.
4216
+ */
4217
+ function loadChildren(route, compiler, parentInjector, onLoadEndListener) {
4218
+ return wrapIntoObservable(route.loadChildren())
4219
+ .pipe(map(maybeUnwrapDefaultExport), mergeMap((t) => {
4220
+ if (t instanceof NgModuleFactory || Array.isArray(t)) {
4221
+ return of(t);
4222
+ }
4223
+ else {
4224
+ return from(compiler.compileModuleAsync(t));
4225
+ }
4226
+ }), map((factoryOrRoutes) => {
4227
+ if (onLoadEndListener) {
4228
+ onLoadEndListener(route);
4229
+ }
4230
+ // This injector comes from the `NgModuleRef` when lazy loading an `NgModule`. There is
4231
+ // no injector associated with lazy loading a `Route` array.
4232
+ let injector;
4233
+ let rawRoutes;
4234
+ let requireStandaloneComponents = false;
4235
+ if (Array.isArray(factoryOrRoutes)) {
4236
+ rawRoutes = factoryOrRoutes;
4237
+ requireStandaloneComponents = true;
4238
+ }
4239
+ else {
4240
+ injector = factoryOrRoutes.create(parentInjector).injector;
4241
+ // When loading a module that doesn't provide `RouterModule.forChild()` preloader
4242
+ // will get stuck in an infinite loop. The child module's Injector will look to
4243
+ // its parent `Injector` when it doesn't find any ROUTES so it will return routes
4244
+ // for it's parent module instead.
4245
+ rawRoutes = injector.get(ROUTES, [], { optional: true, self: true }).flat();
4246
+ }
4247
+ const routes = rawRoutes.map(standardizeConfig);
4248
+ (typeof ngDevMode === 'undefined' || ngDevMode) &&
4249
+ validateConfig(routes, route.path, requireStandaloneComponents);
4250
+ return { routes, injector };
4251
+ }));
4252
+ }
4245
4253
  function isWrappedDefaultExport(value) {
4246
4254
  // We use `in` here with a string key `'default'`, because we expect `DefaultExport` objects to be
4247
4255
  // dynamically imported ES modules with a spec-mandated `default` key. Thus we don't expect that
@@ -4262,10 +4270,10 @@ function maybeUnwrapDefaultExport(input) {
4262
4270
  * @publicApi
4263
4271
  */
4264
4272
  class UrlHandlingStrategy {
4265
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4266
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
4273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4274
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
4267
4275
  }
4268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4269
4277
  type: Injectable,
4270
4278
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
4271
4279
  }] });
@@ -4282,10 +4290,10 @@ class DefaultUrlHandlingStrategy {
4282
4290
  merge(newUrlPart, wholeUrl) {
4283
4291
  return newUrlPart;
4284
4292
  }
4285
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4286
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
4293
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4294
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
4287
4295
  }
4288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4289
4297
  type: Injectable,
4290
4298
  args: [{ providedIn: 'root' }]
4291
4299
  }] });
@@ -4301,6 +4309,7 @@ const CREATE_VIEW_TRANSITION = new InjectionToken(ngDevMode ? 'view transition h
4301
4309
  function createViewTransition(injector) {
4302
4310
  // Create promises outside the Angular zone to avoid causing extra change detections
4303
4311
  return injector.get(NgZone).runOutsideAngular(() => {
4312
+ const document = injector.get(DOCUMENT);
4304
4313
  if (!document.startViewTransition) {
4305
4314
  return Promise.resolve();
4306
4315
  }
@@ -4346,6 +4355,7 @@ class NavigationTransitions {
4346
4355
  this.environmentInjector = inject(EnvironmentInjector);
4347
4356
  this.urlSerializer = inject(UrlSerializer);
4348
4357
  this.rootContexts = inject(ChildrenOutletContexts);
4358
+ this.location = inject(Location);
4349
4359
  this.inputBindingEnabled = inject(INPUT_BINDER, { optional: true }) !== null;
4350
4360
  this.titleStrategy = inject(TitleStrategy);
4351
4361
  this.options = inject(ROUTER_CONFIGURATION, { optional: true }) || {};
@@ -4379,7 +4389,6 @@ class NavigationTransitions {
4379
4389
  id: 0,
4380
4390
  currentUrlTree: initialUrlTree,
4381
4391
  currentRawUrl: initialUrlTree,
4382
- currentBrowserUrl: initialUrlTree,
4383
4392
  extractedUrl: this.urlHandlingStrategy.extract(initialUrlTree),
4384
4393
  urlAfterRedirects: this.urlHandlingStrategy.extract(initialUrlTree),
4385
4394
  rawUrl: initialUrlTree,
@@ -4420,14 +4429,8 @@ class NavigationTransitions {
4420
4429
  },
4421
4430
  };
4422
4431
  }), switchMap(t => {
4423
- const browserUrlTree = t.currentBrowserUrl.toString();
4424
4432
  const urlTransition = !router.navigated ||
4425
- t.extractedUrl.toString() !== browserUrlTree ||
4426
- // Navigations which succeed or ones which fail and are cleaned up
4427
- // correctly should result in `browserUrlTree` and `currentUrlTree`
4428
- // matching. If this is not the case, assume something went wrong and
4429
- // try processing the URL again.
4430
- browserUrlTree !== t.currentUrlTree.toString();
4433
+ this.isUpdatingInternalState() || this.isUpdatedBrowserUrl();
4431
4434
  const onSameUrlNavigation = t.extras.onSameUrlNavigation ?? router.onSameUrlNavigation;
4432
4435
  if (!urlTransition && onSameUrlNavigation !== 'reload') {
4433
4436
  const reason = (typeof ngDevMode === 'undefined' || ngDevMode) ?
@@ -4660,10 +4663,37 @@ class NavigationTransitions {
4660
4663
  this.events.next(navCancel);
4661
4664
  t.resolve(false);
4662
4665
  }
4663
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4664
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
4665
- }
4666
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: NavigationTransitions, decorators: [{
4666
+ /**
4667
+ * @returns Whether we're navigating to somewhere that is not what the Router is
4668
+ * currently set to.
4669
+ */
4670
+ isUpdatingInternalState() {
4671
+ // TODO(atscott): The serializer should likely be used instead of
4672
+ // `UrlTree.toString()`. Custom serializers are often written to handle
4673
+ // things better than the default one (objects, for example will be
4674
+ // [Object object] with the custom serializer and be "the same" when they
4675
+ // aren't).
4676
+ // (Same for isUpdatedBrowserUrl)
4677
+ return this.currentTransition?.extractedUrl.toString() !==
4678
+ this.currentTransition?.currentUrlTree.toString();
4679
+ }
4680
+ /**
4681
+ * @returns Whether we're updating the browser URL to something new (navigation is going
4682
+ * to somewhere not displayed in the URL bar and we will update the URL
4683
+ * bar if navigation succeeds).
4684
+ */
4685
+ isUpdatedBrowserUrl() {
4686
+ // The extracted URL is the part of the URL that this application cares about. `extract` may
4687
+ // return only part of the browser URL and that part may have not changed even if some other
4688
+ // portion of the URL did.
4689
+ const extractedBrowserUrl = this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(true)));
4690
+ return extractedBrowserUrl.toString() !== this.currentTransition?.extractedUrl.toString() &&
4691
+ !this.currentTransition?.extras.skipLocationChange;
4692
+ }
4693
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4694
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
4695
+ }
4696
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: NavigationTransitions, decorators: [{
4667
4697
  type: Injectable,
4668
4698
  args: [{ providedIn: 'root' }]
4669
4699
  }], ctorParameters: function () { return []; } });
@@ -4679,10 +4709,10 @@ function isBrowserTriggeredNavigation(source) {
4679
4709
  * @publicApi
4680
4710
  */
4681
4711
  class RouteReuseStrategy {
4682
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4683
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
4712
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4713
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
4684
4714
  }
4685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4686
4716
  type: Injectable,
4687
4717
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
4688
4718
  }] });
@@ -4733,10 +4763,10 @@ class BaseRouteReuseStrategy {
4733
4763
  }
4734
4764
  }
4735
4765
  class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
4736
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4737
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
4766
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4767
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
4738
4768
  }
4739
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4769
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4740
4770
  type: Injectable,
4741
4771
  args: [{ providedIn: 'root' }]
4742
4772
  }] });
@@ -4755,9 +4785,6 @@ class StateManager {
4755
4785
  * Represents the activated `UrlTree` that the `Router` is configured to handle (through
4756
4786
  * `UrlHandlingStrategy`). That is, after we find the route config tree that we're going to
4757
4787
  * activate, run guards, and are just about to activate the route, we set the currentUrlTree.
4758
- *
4759
- * This should match the `browserUrlTree` when a navigation succeeds. If the
4760
- * `UrlHandlingStrategy.shouldProcessUrl` is `false`, only the `browserUrlTree` is updated.
4761
4788
  * @internal
4762
4789
  */
4763
4790
  this.currentUrlTree = new UrlTree();
@@ -4789,23 +4816,6 @@ class StateManager {
4789
4816
  *
4790
4817
  */
4791
4818
  this.rawUrlTree = this.currentUrlTree;
4792
- /**
4793
- * Meant to represent the part of the browser url that the `Router` is set up to handle (via the
4794
- * `UrlHandlingStrategy`). This value is updated immediately after the browser url is updated (or
4795
- * the browser url update is skipped via `skipLocationChange`). With that, note that
4796
- * `browserUrlTree` _may not_ reflect the actual browser URL for two reasons:
4797
- *
4798
- * 1. `UrlHandlingStrategy` only handles part of the URL
4799
- * 2. `skipLocationChange` does not update the browser url.
4800
- *
4801
- * So to reiterate, `browserUrlTree` only represents the Router's internal understanding of the
4802
- * current route, either before guards with `urlUpdateStrategy === 'eager'` or right before
4803
- * activation with `'deferred'`.
4804
- *
4805
- * This should match the `currentUrlTree` when the navigation succeeds.
4806
- * @internal
4807
- */
4808
- this.browserUrlTree = this.currentUrlTree;
4809
4819
  /**
4810
4820
  * The id of the currently active page in the router.
4811
4821
  * Updated to the transition's target id on a successful navigation.
@@ -4833,7 +4843,6 @@ class StateManager {
4833
4843
  createStateMemento() {
4834
4844
  return {
4835
4845
  rawUrlTree: this.rawUrlTree,
4836
- browserUrlTree: this.browserUrlTree,
4837
4846
  currentUrlTree: this.currentUrlTree,
4838
4847
  routerState: this.routerState,
4839
4848
  };
@@ -4841,11 +4850,6 @@ class StateManager {
4841
4850
  handleNavigationEvent(e, currentTransition) {
4842
4851
  if (e instanceof NavigationStart) {
4843
4852
  this.stateMemento = this.createStateMemento();
4844
- // If the source of the navigation is from a browser event, the URL is
4845
- // already updated. We already need to sync the internal state.
4846
- if (isBrowserTriggeredNavigation(currentTransition.trigger)) {
4847
- this.browserUrlTree = currentTransition.extractedUrl;
4848
- }
4849
4853
  }
4850
4854
  else if (e instanceof NavigationSkipped) {
4851
4855
  this.rawUrlTree = currentTransition.initialUrl;
@@ -4856,7 +4860,6 @@ class StateManager {
4856
4860
  const rawUrl = this.urlHandlingStrategy.merge(currentTransition.finalUrl, currentTransition.initialUrl);
4857
4861
  this.setBrowserUrl(rawUrl, currentTransition);
4858
4862
  }
4859
- this.browserUrlTree = currentTransition.finalUrl;
4860
4863
  }
4861
4864
  }
4862
4865
  else if (e instanceof BeforeActivateRoutes) {
@@ -4868,7 +4871,6 @@ class StateManager {
4868
4871
  if (!currentTransition.extras.skipLocationChange) {
4869
4872
  this.setBrowserUrl(this.rawUrlTree, currentTransition);
4870
4873
  }
4871
- this.browserUrlTree = currentTransition.finalUrl;
4872
4874
  }
4873
4875
  }
4874
4876
  else if (e instanceof NavigationCancel &&
@@ -4920,9 +4922,6 @@ class StateManager {
4920
4922
  // finalUrl), but we weren't moving anywhere in history (skipLocationChange or replaceUrl).
4921
4923
  // We still need to reset the router state back to what it was when the navigation started.
4922
4924
  this.resetState(navigation);
4923
- // TODO(atscott): resetting the `browserUrlTree` should really be done in `resetState`.
4924
- // Investigate if this can be done by running TGP.
4925
- this.browserUrlTree = this.stateMemento.browserUrlTree;
4926
4925
  this.resetUrlToCurrentUrlTree();
4927
4926
  }
4928
4927
  else {
@@ -4961,10 +4960,10 @@ class StateManager {
4961
4960
  }
4962
4961
  return { navigationId };
4963
4962
  }
4964
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4965
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: StateManager, providedIn: 'root' }); }
4963
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4964
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: StateManager, providedIn: 'root' }); }
4966
4965
  }
4967
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: StateManager, decorators: [{
4966
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: StateManager, decorators: [{
4968
4967
  type: Injectable,
4969
4968
  args: [{ providedIn: 'root' }]
4970
4969
  }] });
@@ -5005,9 +5004,6 @@ function afterNextNavigation(router, action) {
5005
5004
  function defaultErrorHandler(error) {
5006
5005
  throw error;
5007
5006
  }
5008
- function defaultMalformedUriErrorHandler(error, urlSerializer, url) {
5009
- return urlSerializer.parse('/');
5010
- }
5011
5007
  /**
5012
5008
  * The equivalent `IsActiveMatchOptions` options for `Router.isActive` is called with `true`
5013
5009
  * (exact = true).
@@ -5047,9 +5043,6 @@ class Router {
5047
5043
  get rawUrlTree() {
5048
5044
  return this.stateManager.rawUrlTree;
5049
5045
  }
5050
- get browserUrlTree() {
5051
- return this.stateManager.browserUrlTree;
5052
- }
5053
5046
  /**
5054
5047
  * An event stream for routing events.
5055
5048
  */
@@ -5092,15 +5085,6 @@ class Router {
5092
5085
  * @see {@link withNavigationErrorHandler}
5093
5086
  */
5094
5087
  this.errorHandler = this.options.errorHandler || defaultErrorHandler;
5095
- /**
5096
- * A handler for errors thrown by `Router.parseUrl(url)`
5097
- * when `url` contains an invalid character.
5098
- * The most common case is a `%` sign
5099
- * that's not encoded and is not part of a percent encoded sequence.
5100
- *
5101
- * @see {@link RouterModule}
5102
- */
5103
- this.malformedUriErrorHandler = this.options.malformedUriErrorHandler || defaultMalformedUriErrorHandler;
5104
5088
  /**
5105
5089
  * True if at least one navigation event has occurred,
5106
5090
  * false otherwise.
@@ -5478,14 +5462,12 @@ class Router {
5478
5462
  }
5479
5463
  /** Parses a string into a `UrlTree` */
5480
5464
  parseUrl(url) {
5481
- let urlTree;
5482
5465
  try {
5483
- urlTree = this.urlSerializer.parse(url);
5466
+ return this.urlSerializer.parse(url);
5484
5467
  }
5485
- catch (e) {
5486
- urlTree = this.malformedUriErrorHandler(e, this.urlSerializer, url);
5468
+ catch {
5469
+ return this.urlSerializer.parse('/');
5487
5470
  }
5488
- return urlTree;
5489
5471
  }
5490
5472
  isActive(url, matchOptions) {
5491
5473
  let options;
@@ -5543,7 +5525,6 @@ class Router {
5543
5525
  restoredState,
5544
5526
  currentUrlTree: this.currentUrlTree,
5545
5527
  currentRawUrl: this.currentUrlTree,
5546
- currentBrowserUrl: this.browserUrlTree,
5547
5528
  rawUrl,
5548
5529
  extras,
5549
5530
  resolve,
@@ -5558,10 +5539,10 @@ class Router {
5558
5539
  return Promise.reject(e);
5559
5540
  });
5560
5541
  }
5561
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5562
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: Router, providedIn: 'root' }); }
5542
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5543
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: Router, providedIn: 'root' }); }
5563
5544
  }
5564
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: Router, decorators: [{
5545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: Router, decorators: [{
5565
5546
  type: Injectable,
5566
5547
  args: [{ providedIn: 'root' }]
5567
5548
  }], ctorParameters: function () { return []; } });
@@ -5832,10 +5813,10 @@ class RouterLink {
5832
5813
  preserveFragment: this.preserveFragment,
5833
5814
  });
5834
5815
  }
5835
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", 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 }); }
5836
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-next.4", 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 }); }
5816
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", 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 }); }
5817
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.0.0-next.5", 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 }); }
5837
5818
  }
5838
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterLink, decorators: [{
5819
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterLink, decorators: [{
5839
5820
  type: Directive,
5840
5821
  args: [{
5841
5822
  selector: '[routerLink]',
@@ -6058,10 +6039,10 @@ class RouterLinkActive {
6058
6039
  const isActiveCheckFn = this.isLinkActive(this.router);
6059
6040
  return this.link && isActiveCheckFn(this.link) || this.links.some(isActiveCheckFn);
6060
6041
  }
6061
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
6062
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.4", 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 }); }
6042
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
6043
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.0-next.5", 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 }); }
6063
6044
  }
6064
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterLinkActive, decorators: [{
6045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterLinkActive, decorators: [{
6065
6046
  type: Directive,
6066
6047
  args: [{
6067
6048
  selector: '[routerLinkActive]',
@@ -6113,10 +6094,10 @@ class PreloadAllModules {
6113
6094
  preload(route, fn) {
6114
6095
  return fn().pipe(catchError(() => of(null)));
6115
6096
  }
6116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6117
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
6097
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6098
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
6118
6099
  }
6119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: PreloadAllModules, decorators: [{
6100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: PreloadAllModules, decorators: [{
6120
6101
  type: Injectable,
6121
6102
  args: [{ providedIn: 'root' }]
6122
6103
  }] });
@@ -6133,10 +6114,10 @@ class NoPreloading {
6133
6114
  preload(route, fn) {
6134
6115
  return of(null);
6135
6116
  }
6136
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6137
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
6117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6118
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
6138
6119
  }
6139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: NoPreloading, decorators: [{
6120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: NoPreloading, decorators: [{
6140
6121
  type: Injectable,
6141
6122
  args: [{ providedIn: 'root' }]
6142
6123
  }] });
@@ -6229,10 +6210,10 @@ class RouterPreloader {
6229
6210
  }
6230
6211
  });
6231
6212
  }
6232
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
6233
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
6213
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
6214
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
6234
6215
  }
6235
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterPreloader, decorators: [{
6216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterPreloader, decorators: [{
6236
6217
  type: Injectable,
6237
6218
  args: [{ providedIn: 'root' }]
6238
6219
  }], ctorParameters: function () { return [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }]; } });
@@ -6325,10 +6306,10 @@ class RouterScroller {
6325
6306
  this.routerEventsSubscription?.unsubscribe();
6326
6307
  this.scrollEventsSubscription?.unsubscribe();
6327
6308
  }
6328
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
6329
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterScroller }); }
6309
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
6310
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterScroller }); }
6330
6311
  }
6331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterScroller, decorators: [{
6312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterScroller, decorators: [{
6332
6313
  type: Injectable
6333
6314
  }], ctorParameters: function () { return [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }]; } });
6334
6315
 
@@ -6967,11 +6948,11 @@ class RouterModule {
6967
6948
  providers: [{ provide: ROUTES, multi: true, useValue: routes }],
6968
6949
  };
6969
6950
  }
6970
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
6971
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
6972
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterModule }); }
6951
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
6952
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
6953
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterModule }); }
6973
6954
  }
6974
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.4", ngImport: i0, type: RouterModule, decorators: [{
6955
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.5", ngImport: i0, type: RouterModule, decorators: [{
6975
6956
  type: NgModule,
6976
6957
  args: [{
6977
6958
  imports: ROUTER_DIRECTIVES,
@@ -7116,7 +7097,7 @@ function mapToResolve(provider) {
7116
7097
  /**
7117
7098
  * @publicApi
7118
7099
  */
7119
- const VERSION = new Version('17.0.0-next.4');
7100
+ const VERSION = new Version('17.0.0-next.5');
7120
7101
 
7121
7102
  /**
7122
7103
  * @module
@@ -7131,5 +7112,5 @@ const VERSION = new Version('17.0.0-next.4');
7131
7112
  * Generated bundle index. Do not edit.
7132
7113
  */
7133
7114
 
7134
- export { ActivatedRoute, ActivatedRouteSnapshot, ActivationEnd, ActivationStart, BaseRouteReuseStrategy, ChildActivationEnd, ChildActivationStart, ChildrenOutletContexts, DefaultTitleStrategy, DefaultUrlSerializer, GuardsCheckEnd, GuardsCheckStart, NavigationCancel, NavigationEnd, NavigationError, NavigationSkipped, NavigationStart, NoPreloading, OutletContext, PRIMARY_OUTLET, PreloadAllModules, PreloadingStrategy, ROUTER_CONFIGURATION, ROUTER_INITIALIZER, ROUTES, ResolveEnd, ResolveStart, RouteConfigLoadEnd, RouteConfigLoadStart, RouteReuseStrategy, Router, RouterEvent, RouterLink, RouterLinkActive, RouterLink as RouterLinkWithHref, RouterModule, RouterOutlet, RouterPreloader, RouterState, RouterStateSnapshot, RoutesRecognized, Scroll, TitleStrategy, UrlHandlingStrategy, UrlSegment, UrlSegmentGroup, UrlSerializer, UrlTree, VERSION, convertToParamMap, createUrlTreeFromSnapshot, defaultUrlMatcher, mapToCanActivate, mapToCanActivateChild, mapToCanDeactivate, mapToCanMatch, mapToResolve, provideRouter, provideRoutes, withComponentInputBinding, withDebugTracing, withDisabledInitialNavigation, withEnabledBlockingInitialNavigation, withHashLocation, withInMemoryScrolling, withNavigationErrorHandler, withPreloading, withRouterConfig, withViewTransitions, ɵEmptyOutletComponent, ROUTER_PROVIDERS as ɵROUTER_PROVIDERS, afterNextNavigation as ɵafterNextNavigation };
7115
+ export { ActivatedRoute, ActivatedRouteSnapshot, ActivationEnd, ActivationStart, BaseRouteReuseStrategy, ChildActivationEnd, ChildActivationStart, ChildrenOutletContexts, DefaultTitleStrategy, DefaultUrlSerializer, GuardsCheckEnd, GuardsCheckStart, NavigationCancel, NavigationEnd, NavigationError, NavigationSkipped, NavigationStart, NoPreloading, OutletContext, PRIMARY_OUTLET, PreloadAllModules, PreloadingStrategy, ROUTER_CONFIGURATION, ROUTER_INITIALIZER, ROUTES, ResolveEnd, ResolveStart, RouteConfigLoadEnd, RouteConfigLoadStart, RouteReuseStrategy, Router, RouterEvent, RouterLink, RouterLinkActive, RouterLink as RouterLinkWithHref, RouterModule, RouterOutlet, RouterPreloader, RouterState, RouterStateSnapshot, RoutesRecognized, Scroll, TitleStrategy, UrlHandlingStrategy, UrlSegment, UrlSegmentGroup, UrlSerializer, UrlTree, VERSION, convertToParamMap, createUrlTreeFromSnapshot, defaultUrlMatcher, mapToCanActivate, mapToCanActivateChild, mapToCanDeactivate, mapToCanMatch, mapToResolve, provideRouter, provideRoutes, withComponentInputBinding, withDebugTracing, withDisabledInitialNavigation, withEnabledBlockingInitialNavigation, withHashLocation, withInMemoryScrolling, withNavigationErrorHandler, withPreloading, withRouterConfig, withViewTransitions, ɵEmptyOutletComponent, ROUTER_PROVIDERS as ɵROUTER_PROVIDERS, afterNextNavigation as ɵafterNextNavigation, loadChildren as ɵloadChildren };
7135
7116
  //# sourceMappingURL=router.mjs.map