@angular/router 17.1.0-next.4 → 17.1.0-rc.0

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.
Files changed (34) hide show
  1. package/esm2022/src/components/empty_outlet.mjs +3 -3
  2. package/esm2022/src/create_url_tree.mjs +3 -3
  3. package/esm2022/src/directives/router_link.mjs +7 -4
  4. package/esm2022/src/directives/router_link_active.mjs +3 -3
  5. package/esm2022/src/directives/router_outlet.mjs +6 -6
  6. package/esm2022/src/navigation_transition.mjs +6 -6
  7. package/esm2022/src/operators/activate_routes.mjs +5 -5
  8. package/esm2022/src/page_title_strategy.mjs +6 -6
  9. package/esm2022/src/provide_router.mjs +1 -1
  10. package/esm2022/src/route_reuse_strategy.mjs +6 -6
  11. package/esm2022/src/router.mjs +7 -8
  12. package/esm2022/src/router_config.mjs +1 -1
  13. package/esm2022/src/router_config_loader.mjs +4 -4
  14. package/esm2022/src/router_module.mjs +4 -4
  15. package/esm2022/src/router_outlet_context.mjs +3 -3
  16. package/esm2022/src/router_preloader.mjs +9 -9
  17. package/esm2022/src/router_scroller.mjs +3 -3
  18. package/esm2022/src/router_state.mjs +6 -6
  19. package/esm2022/src/statemanager/state_manager.mjs +8 -8
  20. package/esm2022/src/url_handling_strategy.mjs +6 -6
  21. package/esm2022/src/url_tree.mjs +10 -12
  22. package/esm2022/src/utils/collection.mjs +1 -7
  23. package/esm2022/src/utils/config_matching.mjs +4 -5
  24. package/esm2022/src/version.mjs +1 -1
  25. package/esm2022/testing/src/router_testing_harness.mjs +6 -6
  26. package/esm2022/testing/src/router_testing_module.mjs +4 -4
  27. package/fesm2022/router.mjs +102 -108
  28. package/fesm2022/router.mjs.map +1 -1
  29. package/fesm2022/testing.mjs +11 -11
  30. package/fesm2022/upgrade.mjs +1 -1
  31. package/index.d.ts +9 -2
  32. package/package.json +4 -4
  33. package/testing/index.d.ts +1 -1
  34. package/upgrade/index.d.ts +1 -1
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @license Angular v17.1.0-next.4
2
+ * @license Angular v17.1.0-rc.0
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, runInInjectionContext, Compiler, NgModuleFactory, NgZone, afterNextRender, ɵConsole, ɵInitialRenderPendingTasks, ɵɵsanitizeUrlOrResourceUrl, booleanAttribute, Attribute, HostBinding, HostListener, Optional, ContentChildren, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, Injector, ApplicationRef, InjectFlags, APP_INITIALIZER, 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, runInInjectionContext, Compiler, NgModuleFactory, NgZone, afterNextRender, ɵConsole, ɵPendingTasks, ɵɵsanitizeUrlOrResourceUrl, booleanAttribute, Attribute, HostBinding, HostListener, Optional, ContentChildren, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, Injector, ApplicationRef, InjectFlags, APP_INITIALIZER, 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';
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';
12
+ import { map, switchMap, take, startWith, filter, mergeMap, first, concatMap, tap, catchError, scan, defaultIfEmpty, last, takeLast, mapTo, finalize, refCount, takeUntil, mergeAll } from 'rxjs/operators';
13
13
  import * as i1 from '@angular/platform-browser';
14
14
 
15
15
  /**
@@ -149,12 +149,6 @@ function equalArraysOrString(a, b) {
149
149
  return a === b;
150
150
  }
151
151
  }
152
- /**
153
- * Return the last element of an array.
154
- */
155
- function last(a) {
156
- return a.length > 0 ? a[a.length - 1] : null;
157
- }
158
152
  function wrapIntoObservable(value) {
159
153
  if (isObservable(value)) {
160
154
  return value;
@@ -425,10 +419,10 @@ function mapChildrenIntoArray(segment, fn) {
425
419
  * @publicApi
426
420
  */
427
421
  class UrlSerializer {
428
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
429
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
422
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
423
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
430
424
  }
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: UrlSerializer, decorators: [{
425
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: UrlSerializer, decorators: [{
432
426
  type: Injectable,
433
427
  args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
434
428
  }] });
@@ -551,19 +545,18 @@ function serializePath(path) {
551
545
  return `${encodeUriSegment(path.path)}${serializeMatrixParams(path.parameters)}`;
552
546
  }
553
547
  function serializeMatrixParams(params) {
554
- return Object.keys(params)
555
- .map(key => `;${encodeUriSegment(key)}=${encodeUriSegment(params[key])}`)
548
+ return Object.entries(params)
549
+ .map(([key, value]) => `;${encodeUriSegment(key)}=${encodeUriSegment(value)}`)
556
550
  .join('');
557
551
  }
558
552
  function serializeQueryParams(params) {
559
- const strParams = Object.keys(params)
560
- .map((name) => {
561
- const value = params[name];
553
+ const strParams = Object.entries(params)
554
+ .map(([name, value]) => {
562
555
  return Array.isArray(value) ?
563
556
  value.map(v => `${encodeUriQuery(name)}=${encodeUriQuery(v)}`).join('&') :
564
557
  `${encodeUriQuery(name)}=${encodeUriQuery(value)}`;
565
558
  })
566
- .filter(s => !!s);
559
+ .filter(s => s);
567
560
  return strParams.length ? `?${strParams.join('&')}` : '';
568
561
  }
569
562
  const SEGMENT_RE = /^[^\/()?;#]+/;
@@ -767,8 +760,7 @@ function createRoot(rootCandidate) {
767
760
  */
768
761
  function squashSegmentGroup(segmentGroup) {
769
762
  const newChildren = {};
770
- for (const childOutlet of Object.keys(segmentGroup.children)) {
771
- const child = segmentGroup.children[childOutlet];
763
+ for (const [childOutlet, child] of Object.entries(segmentGroup.children)) {
772
764
  const childCandidate = squashSegmentGroup(child);
773
765
  // moves named children in an empty path primary child into this group
774
766
  if (childOutlet === PRIMARY_OUTLET && childCandidate.segments.length === 0 &&
@@ -953,7 +945,7 @@ class Navigation {
953
945
  'Root segment cannot have matrix parameters');
954
946
  }
955
947
  const cmdWithOutlet = commands.find(isCommandWithOutlets);
956
- if (cmdWithOutlet && cmdWithOutlet !== last(commands)) {
948
+ if (cmdWithOutlet && cmdWithOutlet !== commands.at(-1)) {
957
949
  throw new ɵRuntimeError(4004 /* RuntimeErrorCode.MISPLACED_OUTLETS_COMMAND */, (typeof ngDevMode === 'undefined' || ngDevMode) &&
958
950
  '{outlets:{}} has to be the last command');
959
951
  }
@@ -1855,10 +1847,10 @@ class ChildrenOutletContexts {
1855
1847
  getContext(childName) {
1856
1848
  return this.contexts.get(childName) || null;
1857
1849
  }
1858
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1859
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
1850
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1851
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
1860
1852
  }
1861
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
1853
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
1862
1854
  type: Injectable,
1863
1855
  args: [{ providedIn: 'root' }]
1864
1856
  }] });
@@ -1994,8 +1986,8 @@ class RouterState extends Tree {
1994
1986
  return this.snapshot.toString();
1995
1987
  }
1996
1988
  }
1997
- function createEmptyState(urlTree, rootComponent) {
1998
- const snapshot = createEmptyStateSnapshot(urlTree, rootComponent);
1989
+ function createEmptyState(rootComponent) {
1990
+ const snapshot = createEmptyStateSnapshot(rootComponent);
1999
1991
  const emptyUrl = new BehaviorSubject([new UrlSegment('', {})]);
2000
1992
  const emptyParams = new BehaviorSubject({});
2001
1993
  const emptyData = new BehaviorSubject({});
@@ -2005,7 +1997,7 @@ function createEmptyState(urlTree, rootComponent) {
2005
1997
  activated.snapshot = snapshot.root;
2006
1998
  return new RouterState(new TreeNode(activated, []), snapshot);
2007
1999
  }
2008
- function createEmptyStateSnapshot(urlTree, rootComponent) {
2000
+ function createEmptyStateSnapshot(rootComponent) {
2009
2001
  const emptyParams = {};
2010
2002
  const emptyData = {};
2011
2003
  const emptyQueryParams = {};
@@ -2152,8 +2144,8 @@ function getInherited(route, parent, paramsInheritanceStrategy = 'emptyOnly') {
2152
2144
  }
2153
2145
  else {
2154
2146
  inherited = {
2155
- params: route.params,
2156
- data: route.data,
2147
+ params: { ...route.params },
2148
+ data: { ...route.data },
2157
2149
  resolve: { ...route.data, ...(route._resolvedData ?? {}) }
2158
2150
  };
2159
2151
  }
@@ -2578,10 +2570,10 @@ class RouterOutlet {
2578
2570
  this.inputBinder?.bindActivatedRouteToOutletComponent(this);
2579
2571
  this.activateEvents.emit(this.activated.instance);
2580
2572
  }
2581
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2582
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.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 }); }
2573
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2574
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0-rc.0", 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 }); }
2583
2575
  }
2584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterOutlet, decorators: [{
2576
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterOutlet, decorators: [{
2585
2577
  type: Directive,
2586
2578
  args: [{
2587
2579
  selector: 'router-outlet',
@@ -2684,10 +2676,10 @@ class RoutedComponentInputBinder {
2684
2676
  });
2685
2677
  this.outletDataSubscriptions.set(outlet, dataSubscription);
2686
2678
  }
2687
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2688
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RoutedComponentInputBinder }); }
2679
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2680
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RoutedComponentInputBinder }); }
2689
2681
  }
2690
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
2682
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
2691
2683
  type: Injectable
2692
2684
  }] });
2693
2685
 
@@ -2767,10 +2759,10 @@ function isNavigationCancelingError$1(error) {
2767
2759
  * to this `EmptyOutletComponent`.
2768
2760
  */
2769
2761
  class ɵEmptyOutletComponent {
2770
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2771
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.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"] }] }); }
2762
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2763
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0-rc.0", 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"] }] }); }
2772
2764
  }
2773
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2765
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2774
2766
  type: Component,
2775
2767
  args: [{
2776
2768
  template: `<router-outlet></router-outlet>`,
@@ -3039,8 +3031,8 @@ class ActivateRoutes {
3039
3031
  const context = parentContexts.getContext(route.value.outlet);
3040
3032
  const contexts = context && route.value.component ? context.children : parentContexts;
3041
3033
  const children = nodeChildrenAsMap(route);
3042
- for (const childOutlet of Object.keys(children)) {
3043
- this.deactivateRouteAndItsChildren(children[childOutlet], contexts);
3034
+ for (const treeNode of Object.values(children)) {
3035
+ this.deactivateRouteAndItsChildren(treeNode, contexts);
3044
3036
  }
3045
3037
  if (context && context.outlet) {
3046
3038
  const componentRef = context.outlet.detach();
@@ -3054,8 +3046,8 @@ class ActivateRoutes {
3054
3046
  // children that need deactivating.
3055
3047
  const contexts = context && route.value.component ? context.children : parentContexts;
3056
3048
  const children = nodeChildrenAsMap(route);
3057
- for (const childOutlet of Object.keys(children)) {
3058
- this.deactivateRouteAndItsChildren(children[childOutlet], contexts);
3049
+ for (const treeNode of Object.values(children)) {
3050
+ this.deactivateRouteAndItsChildren(treeNode, contexts);
3059
3051
  }
3060
3052
  if (context) {
3061
3053
  if (context.outlet) {
@@ -3661,7 +3653,7 @@ function match(segmentGroup, route, segments) {
3661
3653
  function createWildcardMatchResult(segments) {
3662
3654
  return {
3663
3655
  matched: true,
3664
- parameters: segments.length > 0 ? last(segments).parameters : {},
3656
+ parameters: segments.at(-1)?.parameters ?? {},
3665
3657
  consumedSegments: segments,
3666
3658
  remainingSegments: [],
3667
3659
  positionalParamSegments: {},
@@ -3675,13 +3667,13 @@ function split(segmentGroup, consumedSegments, slicedSegments, config) {
3675
3667
  }
3676
3668
  if (slicedSegments.length === 0 &&
3677
3669
  containsEmptyPathMatches(segmentGroup, slicedSegments, config)) {
3678
- const s = new UrlSegmentGroup(segmentGroup.segments, addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedSegments, config, segmentGroup.children));
3670
+ const s = new UrlSegmentGroup(segmentGroup.segments, addEmptyPathsToChildrenIfNeeded(segmentGroup, slicedSegments, config, segmentGroup.children));
3679
3671
  return { segmentGroup: s, slicedSegments };
3680
3672
  }
3681
3673
  const s = new UrlSegmentGroup(segmentGroup.segments, segmentGroup.children);
3682
3674
  return { segmentGroup: s, slicedSegments };
3683
3675
  }
3684
- function addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedSegments, routes, children) {
3676
+ function addEmptyPathsToChildrenIfNeeded(segmentGroup, slicedSegments, routes, children) {
3685
3677
  const res = {};
3686
3678
  for (const r of routes) {
3687
3679
  if (emptyPathMatch(segmentGroup, slicedSegments, r) && !children[getOutlet(r)]) {
@@ -3847,7 +3839,7 @@ class Recognizer {
3847
3839
  }), scan((children, outletChildren) => {
3848
3840
  children.push(...outletChildren);
3849
3841
  return children;
3850
- }), defaultIfEmpty(null), last$1(), mergeMap(children => {
3842
+ }), defaultIfEmpty(null), last(), mergeMap(children => {
3851
3843
  if (children === null)
3852
3844
  return noMatch$1(segmentGroup);
3853
3845
  // Because we may have matched two outlets to the same empty path segment, we can have
@@ -4196,10 +4188,10 @@ class TitleStrategy {
4196
4188
  getResolvedTitleForRoute(snapshot) {
4197
4189
  return snapshot.data[RouteTitleKey];
4198
4190
  }
4199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4200
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
4191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4192
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
4201
4193
  }
4202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: TitleStrategy, decorators: [{
4194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: TitleStrategy, decorators: [{
4203
4195
  type: Injectable,
4204
4196
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
4205
4197
  }] });
@@ -4222,10 +4214,10 @@ class DefaultTitleStrategy extends TitleStrategy {
4222
4214
  this.title.setTitle(title);
4223
4215
  }
4224
4216
  }
4225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
4226
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
4217
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
4218
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
4227
4219
  }
4228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4220
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4229
4221
  type: Injectable,
4230
4222
  args: [{ providedIn: 'root' }]
4231
4223
  }], ctorParameters: () => [{ type: i1.Title }] });
@@ -4303,10 +4295,10 @@ class RouterConfigLoader {
4303
4295
  this.childrenLoaders.set(route, loader);
4304
4296
  return loader;
4305
4297
  }
4306
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4307
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
4298
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4299
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
4308
4300
  }
4309
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterConfigLoader, decorators: [{
4301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterConfigLoader, decorators: [{
4310
4302
  type: Injectable,
4311
4303
  args: [{ providedIn: 'root' }]
4312
4304
  }] });
@@ -4374,10 +4366,10 @@ function maybeUnwrapDefaultExport(input) {
4374
4366
  * @publicApi
4375
4367
  */
4376
4368
  class UrlHandlingStrategy {
4377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4378
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
4369
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4370
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
4379
4371
  }
4380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4372
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4381
4373
  type: Injectable,
4382
4374
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
4383
4375
  }] });
@@ -4394,10 +4386,10 @@ class DefaultUrlHandlingStrategy {
4394
4386
  merge(newUrlPart, wholeUrl) {
4395
4387
  return newUrlPart;
4396
4388
  }
4397
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4398
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
4389
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4390
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
4399
4391
  }
4400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4392
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4401
4393
  type: Injectable,
4402
4394
  args: [{ providedIn: 'root' }]
4403
4395
  }] });
@@ -4591,7 +4583,7 @@ class NavigationTransitions {
4591
4583
  const { id, extractedUrl, source, restoredState, extras } = t;
4592
4584
  const navStart = new NavigationStart(id, this.urlSerializer.serialize(extractedUrl), source, restoredState);
4593
4585
  this.events.next(navStart);
4594
- const targetSnapshot = createEmptyState(extractedUrl, this.rootComponentType).snapshot;
4586
+ const targetSnapshot = createEmptyState(this.rootComponentType).snapshot;
4595
4587
  this.currentTransition = overallTransitionState = {
4596
4588
  ...t,
4597
4589
  targetSnapshot,
@@ -4682,7 +4674,7 @@ class NavigationTransitions {
4682
4674
  return loaders;
4683
4675
  };
4684
4676
  return combineLatest(loadComponents(t.targetSnapshot.root))
4685
- .pipe(defaultIfEmpty(), take(1));
4677
+ .pipe(defaultIfEmpty(null), take(1));
4686
4678
  }), switchTap(() => this.afterPreactivation()), switchMap(() => {
4687
4679
  const { currentSnapshot, targetSnapshot } = overallTransitionState;
4688
4680
  const viewTransitionStarted = this.createViewTransition?.(this.environmentInjector, currentSnapshot.root, targetSnapshot.root);
@@ -4820,10 +4812,10 @@ class NavigationTransitions {
4820
4812
  return extractedBrowserUrl.toString() !== this.currentTransition?.extractedUrl.toString() &&
4821
4813
  !this.currentTransition?.extras.skipLocationChange;
4822
4814
  }
4823
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4824
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
4815
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4816
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
4825
4817
  }
4826
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: NavigationTransitions, decorators: [{
4818
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: NavigationTransitions, decorators: [{
4827
4819
  type: Injectable,
4828
4820
  args: [{ providedIn: 'root' }]
4829
4821
  }], ctorParameters: () => [] });
@@ -4839,10 +4831,10 @@ function isBrowserTriggeredNavigation(source) {
4839
4831
  * @publicApi
4840
4832
  */
4841
4833
  class RouteReuseStrategy {
4842
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4843
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
4834
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4835
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
4844
4836
  }
4845
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4846
4838
  type: Injectable,
4847
4839
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
4848
4840
  }] });
@@ -4893,19 +4885,19 @@ class BaseRouteReuseStrategy {
4893
4885
  }
4894
4886
  }
4895
4887
  class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
4896
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4897
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
4888
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4889
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
4898
4890
  }
4899
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4891
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4900
4892
  type: Injectable,
4901
4893
  args: [{ providedIn: 'root' }]
4902
4894
  }] });
4903
4895
 
4904
4896
  class StateManager {
4905
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4906
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) }); }
4897
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4898
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) }); }
4907
4899
  }
4908
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: StateManager, decorators: [{
4900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: StateManager, decorators: [{
4909
4901
  type: Injectable,
4910
4902
  args: [{ providedIn: 'root', useFactory: () => inject(HistoryStateManager) }]
4911
4903
  }] });
@@ -4930,7 +4922,7 @@ class HistoryStateManager extends StateManager {
4930
4922
  */
4931
4923
  this.currentPageId = 0;
4932
4924
  this.lastSuccessfulId = -1;
4933
- this.routerState = createEmptyState(this.currentUrlTree, null);
4925
+ this.routerState = createEmptyState(null);
4934
4926
  this.stateMemento = this.createStateMemento();
4935
4927
  }
4936
4928
  getCurrentUrlTree() {
@@ -5082,10 +5074,10 @@ class HistoryStateManager extends StateManager {
5082
5074
  }
5083
5075
  return { navigationId };
5084
5076
  }
5085
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
5086
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: HistoryStateManager, providedIn: 'root' }); }
5077
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
5078
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: HistoryStateManager, providedIn: 'root' }); }
5087
5079
  }
5088
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: HistoryStateManager, decorators: [{
5080
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: HistoryStateManager, decorators: [{
5089
5081
  type: Injectable,
5090
5082
  args: [{ providedIn: 'root' }]
5091
5083
  }] });
@@ -5187,7 +5179,7 @@ class Router {
5187
5179
  this.console = inject(ɵConsole);
5188
5180
  this.stateManager = inject(StateManager);
5189
5181
  this.options = inject(ROUTER_CONFIGURATION, { optional: true }) || {};
5190
- this.pendingTasks = inject(ɵInitialRenderPendingTasks);
5182
+ this.pendingTasks = inject(ɵPendingTasks);
5191
5183
  this.urlUpdateStrategy = this.options.urlUpdateStrategy || 'deferred';
5192
5184
  this.navigationTransitions = inject(NavigationTransitions);
5193
5185
  this.urlSerializer = inject(UrlSerializer);
@@ -5608,8 +5600,7 @@ class Router {
5608
5600
  return containsTree(this.currentUrlTree, urlTree, options);
5609
5601
  }
5610
5602
  removeEmptyProps(params) {
5611
- return Object.keys(params).reduce((result, key) => {
5612
- const value = params[key];
5603
+ return Object.entries(params).reduce((result, [key, value]) => {
5613
5604
  if (value !== null && value !== undefined) {
5614
5605
  result[key] = value;
5615
5606
  }
@@ -5660,10 +5651,10 @@ class Router {
5660
5651
  return Promise.reject(e);
5661
5652
  });
5662
5653
  }
5663
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5664
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: Router, providedIn: 'root' }); }
5654
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5655
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: Router, providedIn: 'root' }); }
5665
5656
  }
5666
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: Router, decorators: [{
5657
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: Router, decorators: [{
5667
5658
  type: Injectable,
5668
5659
  args: [{ providedIn: 'root' }]
5669
5660
  }], ctorParameters: () => [] });
@@ -5880,6 +5871,7 @@ class RouterLink {
5880
5871
  skipLocationChange: this.skipLocationChange,
5881
5872
  replaceUrl: this.replaceUrl,
5882
5873
  state: this.state,
5874
+ info: this.info,
5883
5875
  };
5884
5876
  this.router.navigateByUrl(this.urlTree, extras);
5885
5877
  // Return `false` for `<a>` elements to prevent default action
@@ -5934,10 +5926,10 @@ class RouterLink {
5934
5926
  preserveFragment: this.preserveFragment,
5935
5927
  });
5936
5928
  }
5937
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.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 }); }
5938
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.1.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 }); }
5929
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", 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 }); }
5930
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.1.0-rc.0", type: RouterLink, isStandalone: true, selector: "[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", info: "info", 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 }); }
5939
5931
  }
5940
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterLink, decorators: [{
5932
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterLink, decorators: [{
5941
5933
  type: Directive,
5942
5934
  args: [{
5943
5935
  selector: '[routerLink]',
@@ -5959,6 +5951,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4",
5959
5951
  type: Input
5960
5952
  }], state: [{
5961
5953
  type: Input
5954
+ }], info: [{
5955
+ type: Input
5962
5956
  }], relativeTo: [{
5963
5957
  type: Input
5964
5958
  }], preserveFragment: [{
@@ -6160,10 +6154,10 @@ class RouterLinkActive {
6160
6154
  const isActiveCheckFn = this.isLinkActive(this.router);
6161
6155
  return this.link && isActiveCheckFn(this.link) || this.links.some(isActiveCheckFn);
6162
6156
  }
6163
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.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 }); }
6164
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.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 }); }
6157
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
6158
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0-rc.0", 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 }); }
6165
6159
  }
6166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterLinkActive, decorators: [{
6160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterLinkActive, decorators: [{
6167
6161
  type: Directive,
6168
6162
  args: [{
6169
6163
  selector: '[routerLinkActive]',
@@ -6215,10 +6209,10 @@ class PreloadAllModules {
6215
6209
  preload(route, fn) {
6216
6210
  return fn().pipe(catchError(() => of(null)));
6217
6211
  }
6218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6219
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
6212
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6213
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
6220
6214
  }
6221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: PreloadAllModules, decorators: [{
6215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: PreloadAllModules, decorators: [{
6222
6216
  type: Injectable,
6223
6217
  args: [{ providedIn: 'root' }]
6224
6218
  }] });
@@ -6235,10 +6229,10 @@ class NoPreloading {
6235
6229
  preload(route, fn) {
6236
6230
  return of(null);
6237
6231
  }
6238
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6239
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
6232
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6233
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
6240
6234
  }
6241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: NoPreloading, decorators: [{
6235
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: NoPreloading, decorators: [{
6242
6236
  type: Injectable,
6243
6237
  args: [{ providedIn: 'root' }]
6244
6238
  }] });
@@ -6331,10 +6325,10 @@ class RouterPreloader {
6331
6325
  }
6332
6326
  });
6333
6327
  }
6334
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
6335
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
6328
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
6329
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
6336
6330
  }
6337
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterPreloader, decorators: [{
6331
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterPreloader, decorators: [{
6338
6332
  type: Injectable,
6339
6333
  args: [{ providedIn: 'root' }]
6340
6334
  }], ctorParameters: () => [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }] });
@@ -6427,10 +6421,10 @@ class RouterScroller {
6427
6421
  this.routerEventsSubscription?.unsubscribe();
6428
6422
  this.scrollEventsSubscription?.unsubscribe();
6429
6423
  }
6430
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
6431
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterScroller }); }
6424
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
6425
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterScroller }); }
6432
6426
  }
6433
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterScroller, decorators: [{
6427
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterScroller, decorators: [{
6434
6428
  type: Injectable
6435
6429
  }], ctorParameters: () => [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }] });
6436
6430
 
@@ -7071,11 +7065,11 @@ class RouterModule {
7071
7065
  providers: [{ provide: ROUTES, multi: true, useValue: routes }],
7072
7066
  };
7073
7067
  }
7074
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
7075
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
7076
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterModule }); }
7068
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
7069
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
7070
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterModule }); }
7077
7071
  }
7078
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-next.4", ngImport: i0, type: RouterModule, decorators: [{
7072
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0-rc.0", ngImport: i0, type: RouterModule, decorators: [{
7079
7073
  type: NgModule,
7080
7074
  args: [{
7081
7075
  imports: ROUTER_DIRECTIVES,
@@ -7220,7 +7214,7 @@ function mapToResolve(provider) {
7220
7214
  /**
7221
7215
  * @publicApi
7222
7216
  */
7223
- const VERSION = new Version('17.1.0-next.4');
7217
+ const VERSION = new Version('17.1.0-rc.0');
7224
7218
 
7225
7219
  /**
7226
7220
  * @module