@angular/router 15.1.0-next.3 → 15.1.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 (39) hide show
  1. package/esm2020/src/components/empty_outlet.mjs +3 -3
  2. package/esm2020/src/create_url_tree_strategy.mjs +9 -9
  3. package/esm2020/src/directives/router_link.mjs +3 -3
  4. package/esm2020/src/directives/router_link_active.mjs +3 -3
  5. package/esm2020/src/directives/router_outlet.mjs +3 -3
  6. package/esm2020/src/events.mjs +2 -1
  7. package/esm2020/src/navigation_transition.mjs +20 -11
  8. package/esm2020/src/page_title_strategy.mjs +6 -6
  9. package/esm2020/src/provide_router.mjs +3 -3
  10. package/esm2020/src/route_reuse_strategy.mjs +6 -6
  11. package/esm2020/src/router.mjs +42 -44
  12. package/esm2020/src/router_config_loader.mjs +3 -3
  13. package/esm2020/src/router_module.mjs +4 -4
  14. package/esm2020/src/router_outlet_context.mjs +3 -3
  15. package/esm2020/src/router_preloader.mjs +9 -9
  16. package/esm2020/src/router_scroller.mjs +3 -3
  17. package/esm2020/src/url_handling_strategy.mjs +6 -6
  18. package/esm2020/src/url_tree.mjs +3 -3
  19. package/esm2020/src/version.mjs +1 -1
  20. package/esm2020/testing/src/router_testing_module.mjs +5 -8
  21. package/esm2020/testing/src/testing.mjs +1 -2
  22. package/fesm2015/router.mjs +134 -419
  23. package/fesm2015/router.mjs.map +1 -1
  24. package/fesm2015/testing.mjs +12 -51
  25. package/fesm2015/testing.mjs.map +1 -1
  26. package/fesm2015/upgrade.mjs +5 -20
  27. package/fesm2015/upgrade.mjs.map +1 -1
  28. package/fesm2020/router.mjs +134 -432
  29. package/fesm2020/router.mjs.map +1 -1
  30. package/fesm2020/testing.mjs +12 -51
  31. package/fesm2020/testing.mjs.map +1 -1
  32. package/fesm2020/upgrade.mjs +5 -20
  33. package/fesm2020/upgrade.mjs.map +1 -1
  34. package/index.d.ts +10 -2
  35. package/package.json +4 -4
  36. package/testing/index.d.ts +1 -1
  37. package/upgrade/index.d.ts +1 -1
  38. package/esm2020/testing/src/extra_router_testing_providers.mjs +0 -10
  39. package/esm2020/testing/src/spy_ng_module_factory_loader.mjs +0 -10
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v15.1.0-next.3
2
+ * @license Angular v15.1.0
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -12,13 +12,6 @@ import { Location, ViewportScroller, LOCATION_INITIALIZED, LocationStrategy, Has
12
12
  import { map, switchMap, take, startWith, filter, mergeMap, first, concatMap, tap, catchError, scan, last as last$1, takeWhile, defaultIfEmpty, takeLast, mapTo, finalize, refCount, mergeAll } from 'rxjs/operators';
13
13
  import * as i1 from '@angular/platform-browser';
14
14
 
15
- /**
16
- * @license
17
- * Copyright Google LLC All Rights Reserved.
18
- *
19
- * Use of this source code is governed by an MIT-style license that can be
20
- * found in the LICENSE file at https://angular.io/license
21
- */
22
15
  /**
23
16
  * The primary routing outlet.
24
17
  *
@@ -109,13 +102,6 @@ function defaultUrlMatcher(segments, segmentGroup, route) {
109
102
  return { consumed: segments.slice(0, parts.length), posParams };
110
103
  }
111
104
 
112
- /**
113
- * @license
114
- * Copyright Google LLC All Rights Reserved.
115
- *
116
- * Use of this source code is governed by an MIT-style license that can be
117
- * found in the LICENSE file at https://angular.io/license
118
- */
119
105
  function shallowEqualArrays(a, b) {
120
106
  if (a.length !== b.length)
121
107
  return false;
@@ -195,13 +181,6 @@ function wrapIntoObservable(value) {
195
181
  return of(value);
196
182
  }
197
183
 
198
- /**
199
- * @license
200
- * Copyright Google LLC All Rights Reserved.
201
- *
202
- * Use of this source code is governed by an MIT-style license that can be
203
- * found in the LICENSE file at https://angular.io/license
204
- */
205
184
  const NG_DEV_MODE$b = typeof ngDevMode === 'undefined' || ngDevMode;
206
185
  const pathCompareMap = {
207
186
  'exact': equalSegmentGroups,
@@ -461,9 +440,9 @@ function mapChildrenIntoArray(segment, fn) {
461
440
  */
462
441
  class UrlSerializer {
463
442
  }
464
- UrlSerializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
465
- UrlSerializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });
466
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: UrlSerializer, decorators: [{
443
+ UrlSerializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
444
+ UrlSerializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });
445
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: UrlSerializer, decorators: [{
467
446
  type: Injectable,
468
447
  args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
469
448
  }] });
@@ -821,13 +800,6 @@ function isUrlTree(v) {
821
800
  return v instanceof UrlTree;
822
801
  }
823
802
 
824
- /**
825
- * @license
826
- * Copyright Google LLC All Rights Reserved.
827
- *
828
- * Use of this source code is governed by an MIT-style license that can be
829
- * found in the LICENSE file at https://angular.io/license
830
- */
831
803
  const NG_DEV_MODE$a = typeof ngDevMode === 'undefined' || ngDevMode;
832
804
  /**
833
805
  * Creates a `UrlTree` relative to an `ActivatedRouteSnapshot`.
@@ -1246,13 +1218,7 @@ function compare(path, params, segment) {
1246
1218
  return path == segment.path && shallowEqual(params, segment.parameters);
1247
1219
  }
1248
1220
 
1249
- /**
1250
- * @license
1251
- * Copyright Google LLC All Rights Reserved.
1252
- *
1253
- * Use of this source code is governed by an MIT-style license that can be
1254
- * found in the LICENSE file at https://angular.io/license
1255
- */
1221
+ const IMPERATIVE_NAVIGATION = 'imperative';
1256
1222
  /**
1257
1223
  * Base for events the router goes through, as opposed to events tied to a specific
1258
1224
  * route. Fired one time for any given navigation.
@@ -1756,13 +1722,6 @@ function stringifyEvent(routerEvent) {
1756
1722
  }
1757
1723
  }
1758
1724
 
1759
- /**
1760
- * @license
1761
- * Copyright Google LLC All Rights Reserved.
1762
- *
1763
- * Use of this source code is governed by an MIT-style license that can be
1764
- * found in the LICENSE file at https://angular.io/license
1765
- */
1766
1725
  const NG_DEV_MODE$9 = typeof ngDevMode === 'undefined' || ngDevMode;
1767
1726
  class LegacyCreateUrlTree {
1768
1727
  createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment) {
@@ -1770,9 +1729,9 @@ class LegacyCreateUrlTree {
1770
1729
  return createUrlTree(a, currentUrlTree, commands, queryParams, fragment);
1771
1730
  }
1772
1731
  }
1773
- LegacyCreateUrlTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: LegacyCreateUrlTree, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1774
- LegacyCreateUrlTree.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: LegacyCreateUrlTree });
1775
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: LegacyCreateUrlTree, decorators: [{
1732
+ LegacyCreateUrlTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: LegacyCreateUrlTree, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1733
+ LegacyCreateUrlTree.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: LegacyCreateUrlTree });
1734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: LegacyCreateUrlTree, decorators: [{
1776
1735
  type: Injectable
1777
1736
  }] });
1778
1737
  class CreateUrlTreeUsingSnapshot {
@@ -1806,27 +1765,20 @@ class CreateUrlTreeUsingSnapshot {
1806
1765
  return createUrlTreeFromSegmentGroup(relativeToUrlSegmentGroup, commands, queryParams, fragment);
1807
1766
  }
1808
1767
  }
1809
- CreateUrlTreeUsingSnapshot.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeUsingSnapshot, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1810
- CreateUrlTreeUsingSnapshot.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeUsingSnapshot });
1811
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeUsingSnapshot, decorators: [{
1768
+ CreateUrlTreeUsingSnapshot.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeUsingSnapshot, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1769
+ CreateUrlTreeUsingSnapshot.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeUsingSnapshot });
1770
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeUsingSnapshot, decorators: [{
1812
1771
  type: Injectable
1813
1772
  }] });
1814
1773
  class CreateUrlTreeStrategy {
1815
1774
  }
1816
- CreateUrlTreeStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1817
- CreateUrlTreeStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeStrategy, providedIn: 'root', useClass: LegacyCreateUrlTree });
1818
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeStrategy, decorators: [{
1775
+ CreateUrlTreeStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1776
+ CreateUrlTreeStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeStrategy, providedIn: 'root', useClass: LegacyCreateUrlTree });
1777
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeStrategy, decorators: [{
1819
1778
  type: Injectable,
1820
1779
  args: [{ providedIn: 'root', useClass: LegacyCreateUrlTree }]
1821
1780
  }] });
1822
1781
 
1823
- /**
1824
- * @license
1825
- * Copyright Google LLC All Rights Reserved.
1826
- *
1827
- * Use of this source code is governed by an MIT-style license that can be
1828
- * found in the LICENSE file at https://angular.io/license
1829
- */
1830
1782
  class Tree {
1831
1783
  constructor(root) {
1832
1784
  this._root = root;
@@ -1914,13 +1866,6 @@ function nodeChildrenAsMap(node) {
1914
1866
  return map;
1915
1867
  }
1916
1868
 
1917
- /**
1918
- * @license
1919
- * Copyright Google LLC All Rights Reserved.
1920
- *
1921
- * Use of this source code is governed by an MIT-style license that can be
1922
- * found in the LICENSE file at https://angular.io/license
1923
- */
1924
1869
  /**
1925
1870
  * Represents the state of the router as a tree of activated routes.
1926
1871
  *
@@ -2319,13 +2264,6 @@ function equalParamsAndUrlSegments(a, b) {
2319
2264
  (!a.parent || equalParamsAndUrlSegments(a.parent, b.parent));
2320
2265
  }
2321
2266
 
2322
- /**
2323
- * @license
2324
- * Copyright Google LLC All Rights Reserved.
2325
- *
2326
- * Use of this source code is governed by an MIT-style license that can be
2327
- * found in the LICENSE file at https://angular.io/license
2328
- */
2329
2267
  function createRouterState(routeReuseStrategy, curr, prevState) {
2330
2268
  const root = createNode(routeReuseStrategy, curr._root, prevState ? prevState._root : undefined);
2331
2269
  return new RouterState(root, curr);
@@ -2368,13 +2306,6 @@ function createActivatedRoute(c) {
2368
2306
  return new ActivatedRoute(new BehaviorSubject(c.url), new BehaviorSubject(c.params), new BehaviorSubject(c.queryParams), new BehaviorSubject(c.fragment), new BehaviorSubject(c.data), c.outlet, c.component, c);
2369
2307
  }
2370
2308
 
2371
- /**
2372
- * @license
2373
- * Copyright Google LLC All Rights Reserved.
2374
- *
2375
- * Use of this source code is governed by an MIT-style license that can be
2376
- * found in the LICENSE file at https://angular.io/license
2377
- */
2378
2309
  const NAVIGATION_CANCELING_ERROR = 'ngNavigationCancelingError';
2379
2310
  function redirectingNavigationError(urlSerializer, redirect) {
2380
2311
  const { redirectTo, navigationBehaviorOptions } = isUrlTree(redirect) ? { redirectTo: redirect, navigationBehaviorOptions: undefined } : redirect;
@@ -2399,13 +2330,6 @@ function isNavigationCancelingError$1(error) {
2399
2330
  return error && error[NAVIGATION_CANCELING_ERROR];
2400
2331
  }
2401
2332
 
2402
- /**
2403
- * @license
2404
- * Copyright Google LLC All Rights Reserved.
2405
- *
2406
- * Use of this source code is governed by an MIT-style license that can be
2407
- * found in the LICENSE file at https://angular.io/license
2408
- */
2409
2333
  /**
2410
2334
  * Store contextual information about a `RouterOutlet`
2411
2335
  *
@@ -2477,20 +2401,13 @@ class ChildrenOutletContexts {
2477
2401
  return this.contexts.get(childName) || null;
2478
2402
  }
2479
2403
  }
2480
- ChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2481
- ChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
2482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
2404
+ ChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2405
+ ChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
2406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
2483
2407
  type: Injectable,
2484
2408
  args: [{ providedIn: 'root' }]
2485
2409
  }] });
2486
2410
 
2487
- /**
2488
- * @license
2489
- * Copyright Google LLC All Rights Reserved.
2490
- *
2491
- * Use of this source code is governed by an MIT-style license that can be
2492
- * found in the LICENSE file at https://angular.io/license
2493
- */
2494
2411
  const NG_DEV_MODE$8 = typeof ngDevMode === 'undefined' || ngDevMode;
2495
2412
  /**
2496
2413
  * @description
@@ -2699,9 +2616,9 @@ class RouterOutlet {
2699
2616
  this.activateEvents.emit(this.activated.instance);
2700
2617
  }
2701
2618
  }
2702
- RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2703
- RouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-next.3", 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 });
2704
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterOutlet, decorators: [{
2619
+ RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2620
+ RouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.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 });
2621
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterOutlet, decorators: [{
2705
2622
  type: Directive,
2706
2623
  args: [{
2707
2624
  selector: 'router-outlet',
@@ -2743,13 +2660,6 @@ function isComponentFactoryResolver(item) {
2743
2660
  return !!item.resolveComponentFactory;
2744
2661
  }
2745
2662
 
2746
- /**
2747
- * @license
2748
- * Copyright Google LLC All Rights Reserved.
2749
- *
2750
- * Use of this source code is governed by an MIT-style license that can be
2751
- * found in the LICENSE file at https://angular.io/license
2752
- */
2753
2663
  /**
2754
2664
  * This component is used internally within the router to be a placeholder when an empty
2755
2665
  * router-outlet is needed. For example, with a config such as:
@@ -2761,9 +2671,9 @@ function isComponentFactoryResolver(item) {
2761
2671
  */
2762
2672
  class ɵEmptyOutletComponent {
2763
2673
  }
2764
- ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2765
- ɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0-next.3", 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"] }] });
2766
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2674
+ ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2675
+ ɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.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"] }] });
2676
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2767
2677
  type: Component,
2768
2678
  args: [{
2769
2679
  template: `<router-outlet></router-outlet>`,
@@ -2772,13 +2682,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3",
2772
2682
  }]
2773
2683
  }] });
2774
2684
 
2775
- /**
2776
- * @license
2777
- * Copyright Google LLC All Rights Reserved.
2778
- *
2779
- * Use of this source code is governed by an MIT-style license that can be
2780
- * found in the LICENSE file at https://angular.io/license
2781
- */
2782
2685
  /**
2783
2686
  * Creates an `EnvironmentInjector` if the `Route` has providers and one does not already exist
2784
2687
  * and returns the injector. Otherwise, if the `Route` does not have `providers`, returns the
@@ -2962,13 +2865,6 @@ function getClosestRouteInjector(snapshot) {
2962
2865
  return null;
2963
2866
  }
2964
2867
 
2965
- /**
2966
- * @license
2967
- * Copyright Google LLC All Rights Reserved.
2968
- *
2969
- * Use of this source code is governed by an MIT-style license that can be
2970
- * found in the LICENSE file at https://angular.io/license
2971
- */
2972
2868
  const activateRoutes = (rootContexts, routeReuseStrategy, forwardEvent) => map(t => {
2973
2869
  new ActivateRoutes(routeReuseStrategy, t.targetRouterState, t.currentRouterState, forwardEvent)
2974
2870
  .activate(rootContexts);
@@ -3137,13 +3033,6 @@ class ActivateRoutes {
3137
3033
  }
3138
3034
  }
3139
3035
 
3140
- /**
3141
- * @license
3142
- * Copyright Google LLC All Rights Reserved.
3143
- *
3144
- * Use of this source code is governed by an MIT-style license that can be
3145
- * found in the LICENSE file at https://angular.io/license
3146
- */
3147
3036
  class CanActivate {
3148
3037
  constructor(path) {
3149
3038
  this.path = path;
@@ -3287,13 +3176,6 @@ function deactivateRouteAndItsChildren(route, context, checks) {
3287
3176
  }
3288
3177
  }
3289
3178
 
3290
- /**
3291
- * @license
3292
- * Copyright Google LLC All Rights Reserved.
3293
- *
3294
- * Use of this source code is governed by an MIT-style license that can be
3295
- * found in the LICENSE file at https://angular.io/license
3296
- */
3297
3179
  /**
3298
3180
  * Simple function check, but generic so type inference will flow. Example:
3299
3181
  *
@@ -3338,13 +3220,6 @@ function isEmptyError(e) {
3338
3220
  return e instanceof EmptyError || e?.name === 'EmptyError';
3339
3221
  }
3340
3222
 
3341
- /**
3342
- * @license
3343
- * Copyright Google LLC All Rights Reserved.
3344
- *
3345
- * Use of this source code is governed by an MIT-style license that can be
3346
- * found in the LICENSE file at https://angular.io/license
3347
- */
3348
3223
  const INITIAL_VALUE = Symbol('INITIAL_VALUE');
3349
3224
  function prioritizedGuardValue() {
3350
3225
  return switchMap(obs => {
@@ -3372,13 +3247,6 @@ function prioritizedGuardValue() {
3372
3247
  });
3373
3248
  }
3374
3249
 
3375
- /**
3376
- * @license
3377
- * Copyright Google LLC All Rights Reserved.
3378
- *
3379
- * Use of this source code is governed by an MIT-style license that can be
3380
- * found in the LICENSE file at https://angular.io/license
3381
- */
3382
3250
  function checkGuards(injector, forwardEvent) {
3383
3251
  return mergeMap(t => {
3384
3252
  const { targetSnapshot, currentSnapshot, guards: { canActivateChecks, canDeactivateChecks } } = t;
@@ -3521,13 +3389,6 @@ function runCanMatchGuards(injector, route, segments, urlSerializer) {
3521
3389
  .pipe(prioritizedGuardValue(), redirectIfUrlTree(urlSerializer));
3522
3390
  }
3523
3391
 
3524
- /**
3525
- * @license
3526
- * Copyright Google LLC All Rights Reserved.
3527
- *
3528
- * Use of this source code is governed by an MIT-style license that can be
3529
- * found in the LICENSE file at https://angular.io/license
3530
- */
3531
3392
  const noMatch$1 = {
3532
3393
  matched: false,
3533
3394
  consumedSegments: [],
@@ -3668,13 +3529,6 @@ function noLeftoversInUrl(segmentGroup, segments, outlet) {
3668
3529
  return segments.length === 0 && !segmentGroup.children[outlet];
3669
3530
  }
3670
3531
 
3671
- /**
3672
- * @license
3673
- * Copyright Google LLC All Rights Reserved.
3674
- *
3675
- * Use of this source code is governed by an MIT-style license that can be
3676
- * found in the LICENSE file at https://angular.io/license
3677
- */
3678
3532
  const NG_DEV_MODE$7 = typeof ngDevMode === 'undefined' || ngDevMode;
3679
3533
  class NoMatch$1 {
3680
3534
  constructor(segmentGroup) {
@@ -3989,25 +3843,11 @@ class ApplyRedirects {
3989
3843
  }
3990
3844
  }
3991
3845
 
3992
- /**
3993
- * @license
3994
- * Copyright Google LLC All Rights Reserved.
3995
- *
3996
- * Use of this source code is governed by an MIT-style license that can be
3997
- * found in the LICENSE file at https://angular.io/license
3998
- */
3999
3846
  function applyRedirects(environmentInjector, configLoader, urlSerializer, config) {
4000
3847
  return switchMap(t => applyRedirects$1(environmentInjector, configLoader, urlSerializer, t.extractedUrl, config)
4001
3848
  .pipe(map(urlAfterRedirects => ({ ...t, urlAfterRedirects }))));
4002
3849
  }
4003
3850
 
4004
- /**
4005
- * @license
4006
- * Copyright Google LLC All Rights Reserved.
4007
- *
4008
- * Use of this source code is governed by an MIT-style license that can be
4009
- * found in the LICENSE file at https://angular.io/license
4010
- */
4011
3851
  const NG_DEV_MODE$6 = typeof ngDevMode === 'undefined' || !!ngDevMode;
4012
3852
  class NoMatch {
4013
3853
  }
@@ -4288,25 +4128,11 @@ function getResolve(route) {
4288
4128
  return route.resolve || {};
4289
4129
  }
4290
4130
 
4291
- /**
4292
- * @license
4293
- * Copyright Google LLC All Rights Reserved.
4294
- *
4295
- * Use of this source code is governed by an MIT-style license that can be
4296
- * found in the LICENSE file at https://angular.io/license
4297
- */
4298
4131
  function recognize(injector, rootComponentType, config, serializer, paramsInheritanceStrategy) {
4299
4132
  return mergeMap(t => recognize$1(injector, rootComponentType, config, t.urlAfterRedirects, serializer.serialize(t.urlAfterRedirects), serializer, paramsInheritanceStrategy)
4300
4133
  .pipe(map(targetSnapshot => ({ ...t, targetSnapshot }))));
4301
4134
  }
4302
4135
 
4303
- /**
4304
- * @license
4305
- * Copyright Google LLC All Rights Reserved.
4306
- *
4307
- * Use of this source code is governed by an MIT-style license that can be
4308
- * found in the LICENSE file at https://angular.io/license
4309
- */
4310
4136
  function resolveData(paramsInheritanceStrategy, injector) {
4311
4137
  return mergeMap(t => {
4312
4138
  const { targetSnapshot, guards: { canActivateChecks } } = t;
@@ -4359,13 +4185,6 @@ function hasStaticTitle(config) {
4359
4185
  return typeof config.title === 'string' || config.title === null;
4360
4186
  }
4361
4187
 
4362
- /**
4363
- * @license
4364
- * Copyright Google LLC All Rights Reserved.
4365
- *
4366
- * Use of this source code is governed by an MIT-style license that can be
4367
- * found in the LICENSE file at https://angular.io/license
4368
- */
4369
4188
  /**
4370
4189
  * Perform a side effect through a switchMap for every emission on the source Observable,
4371
4190
  * but return an Observable that is identical to the source. It's essentially the same as
@@ -4382,26 +4201,12 @@ function switchTap(next) {
4382
4201
  });
4383
4202
  }
4384
4203
 
4385
- /**
4386
- * @license
4387
- * Copyright Google LLC All Rights Reserved.
4388
- *
4389
- * Use of this source code is governed by an MIT-style license that can be
4390
- * found in the LICENSE file at https://angular.io/license
4391
- */
4392
4204
  // This file exists to support the legacy `loadChildren: string` behavior being patched back into
4393
4205
  // Angular.
4394
4206
  function deprecatedLoadChildrenString(injector, loadChildren) {
4395
4207
  return null;
4396
4208
  }
4397
4209
 
4398
- /**
4399
- * @license
4400
- * Copyright Google LLC All Rights Reserved.
4401
- *
4402
- * Use of this source code is governed by an MIT-style license that can be
4403
- * found in the LICENSE file at https://angular.io/license
4404
- */
4405
4210
  const NG_DEV_MODE$5 = typeof ngDevMode === 'undefined' || !!ngDevMode;
4406
4211
  /**
4407
4212
  * The [DI token](guide/glossary/#di-token) for a router configuration.
@@ -4506,9 +4311,9 @@ class RouterConfigLoader {
4506
4311
  }));
4507
4312
  }
4508
4313
  }
4509
- RouterConfigLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterConfigLoader, deps: [{ token: i0.Injector }, { token: i0.Compiler }], target: i0.ɵɵFactoryTarget.Injectable });
4510
- RouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
4511
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterConfigLoader, decorators: [{
4314
+ RouterConfigLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterConfigLoader, deps: [{ token: i0.Injector }, { token: i0.Compiler }], target: i0.ɵɵFactoryTarget.Injectable });
4315
+ RouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
4316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterConfigLoader, decorators: [{
4512
4317
  type: Injectable,
4513
4318
  args: [{ providedIn: 'root' }]
4514
4319
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Compiler }]; } });
@@ -4524,13 +4329,6 @@ function maybeUnwrapDefaultExport(input) {
4524
4329
  return isWrappedDefaultExport(input) ? input['default'] : input;
4525
4330
  }
4526
4331
 
4527
- /**
4528
- * @license
4529
- * Copyright Google LLC All Rights Reserved.
4530
- *
4531
- * Use of this source code is governed by an MIT-style license that can be
4532
- * found in the LICENSE file at https://angular.io/license
4533
- */
4534
4332
  const NG_DEV_MODE$4 = typeof ngDevMode === 'undefined' || !!ngDevMode;
4535
4333
  class NavigationTransitions {
4536
4334
  get hasRequestedNavigation() {
@@ -4545,6 +4343,15 @@ class NavigationTransitions {
4545
4343
  this.urlSerializer = inject(UrlSerializer);
4546
4344
  this.rootContexts = inject(ChildrenOutletContexts);
4547
4345
  this.navigationId = 0;
4346
+ /**
4347
+ * Hook that enables you to pause navigation after the preactivation phase.
4348
+ * Used by `RouterModule`.
4349
+ *
4350
+ * @internal
4351
+ */
4352
+ this.afterPreactivation = () => of(void 0);
4353
+ /** @internal */
4354
+ this.rootComponentType = null;
4548
4355
  const onLoadStart = (r) => this.events.next(new RouteConfigLoadStart(r));
4549
4356
  const onLoadEnd = (r) => this.events.next(new RouteConfigLoadEnd(r));
4550
4357
  this.configLoader.onLoadEndListener = onLoadEnd;
@@ -4570,7 +4377,7 @@ class NavigationTransitions {
4570
4377
  resolve: null,
4571
4378
  reject: null,
4572
4379
  promise: Promise.resolve(true),
4573
- source: 'imperative',
4380
+ source: IMPERATIVE_NAVIGATION,
4574
4381
  restoredState: null,
4575
4382
  currentSnapshot: router.routerState.snapshot,
4576
4383
  targetSnapshot: null,
@@ -4650,7 +4457,7 @@ class NavigationTransitions {
4650
4457
  overallTransitionState.urlAfterRedirects = t.urlAfterRedirects;
4651
4458
  }),
4652
4459
  // Recognize
4653
- recognize(this.environmentInjector, router.rootComponentType, router.config, this.urlSerializer, router.paramsInheritanceStrategy),
4460
+ recognize(this.environmentInjector, this.rootComponentType, router.config, this.urlSerializer, router.paramsInheritanceStrategy),
4654
4461
  // Update URL if in `eager` update mode
4655
4462
  tap(t => {
4656
4463
  overallTransitionState.targetSnapshot = t.targetSnapshot;
@@ -4674,7 +4481,7 @@ class NavigationTransitions {
4674
4481
  const { id, extractedUrl, source, restoredState, extras } = t;
4675
4482
  const navStart = new NavigationStart(id, this.urlSerializer.serialize(extractedUrl), source, restoredState);
4676
4483
  this.events.next(navStart);
4677
- const targetSnapshot = createEmptyState(extractedUrl, router.rootComponentType).snapshot;
4484
+ const targetSnapshot = createEmptyState(extractedUrl, this.rootComponentType).snapshot;
4678
4485
  overallTransitionState = {
4679
4486
  ...t,
4680
4487
  targetSnapshot,
@@ -4768,7 +4575,7 @@ class NavigationTransitions {
4768
4575
  };
4769
4576
  return combineLatest(loadComponents(t.targetSnapshot.root))
4770
4577
  .pipe(defaultIfEmpty(), take(1));
4771
- }), switchTap(() => router.afterPreactivation()), map((t) => {
4578
+ }), switchTap(() => this.afterPreactivation()), map((t) => {
4772
4579
  const targetRouterState = createRouterState(router.routeReuseStrategy, t.targetSnapshot, t.currentRouterState);
4773
4580
  overallTransitionState = { ...t, targetRouterState };
4774
4581
  return (overallTransitionState);
@@ -4854,7 +4661,7 @@ class NavigationTransitions {
4854
4661
  replaceUrl: router.urlUpdateStrategy === 'eager' ||
4855
4662
  isBrowserTriggeredNavigation(overallTransitionState.source)
4856
4663
  };
4857
- router.scheduleNavigation(mergedTree, 'imperative', null, extras, {
4664
+ router.scheduleNavigation(mergedTree, IMPERATIVE_NAVIGATION, null, extras, {
4858
4665
  resolve: overallTransitionState.resolve,
4859
4666
  reject: overallTransitionState.reject,
4860
4667
  promise: overallTransitionState.promise
@@ -4885,23 +4692,16 @@ class NavigationTransitions {
4885
4692
  t.resolve(false);
4886
4693
  }
4887
4694
  }
4888
- NavigationTransitions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4889
- NavigationTransitions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
4890
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NavigationTransitions, decorators: [{
4695
+ NavigationTransitions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4696
+ NavigationTransitions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
4697
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NavigationTransitions, decorators: [{
4891
4698
  type: Injectable,
4892
4699
  args: [{ providedIn: 'root' }]
4893
4700
  }], ctorParameters: function () { return []; } });
4894
4701
  function isBrowserTriggeredNavigation(source) {
4895
- return source !== 'imperative';
4702
+ return source !== IMPERATIVE_NAVIGATION;
4896
4703
  }
4897
4704
 
4898
- /**
4899
- * @license
4900
- * Copyright Google LLC All Rights Reserved.
4901
- *
4902
- * Use of this source code is governed by an MIT-style license that can be
4903
- * found in the LICENSE file at https://angular.io/license
4904
- */
4905
4705
  /**
4906
4706
  * Provides a strategy for setting the page title after a router navigation.
4907
4707
  *
@@ -4946,9 +4746,9 @@ class TitleStrategy {
4946
4746
  return snapshot.data[RouteTitleKey];
4947
4747
  }
4948
4748
  }
4949
- TitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4950
- TitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
4951
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: TitleStrategy, decorators: [{
4749
+ TitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4750
+ TitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
4751
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: TitleStrategy, decorators: [{
4952
4752
  type: Injectable,
4953
4753
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
4954
4754
  }] });
@@ -4972,20 +4772,13 @@ class DefaultTitleStrategy extends TitleStrategy {
4972
4772
  }
4973
4773
  }
4974
4774
  }
4975
- DefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
4976
- DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
4977
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4775
+ DefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
4776
+ DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
4777
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4978
4778
  type: Injectable,
4979
4779
  args: [{ providedIn: 'root' }]
4980
4780
  }], ctorParameters: function () { return [{ type: i1.Title }]; } });
4981
4781
 
4982
- /**
4983
- * @license
4984
- * Copyright Google LLC All Rights Reserved.
4985
- *
4986
- * Use of this source code is governed by an MIT-style license that can be
4987
- * found in the LICENSE file at https://angular.io/license
4988
- */
4989
4782
  /**
4990
4783
  * @description
4991
4784
  *
@@ -4995,9 +4788,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3",
4995
4788
  */
4996
4789
  class RouteReuseStrategy {
4997
4790
  }
4998
- RouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4999
- RouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
5000
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4791
+ RouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4792
+ RouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
4793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouteReuseStrategy, decorators: [{
5001
4794
  type: Injectable,
5002
4795
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
5003
4796
  }] });
@@ -5049,20 +4842,13 @@ class BaseRouteReuseStrategy {
5049
4842
  }
5050
4843
  class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
5051
4844
  }
5052
- DefaultRouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5053
- DefaultRouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
5054
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4845
+ DefaultRouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
4846
+ DefaultRouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
4847
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
5055
4848
  type: Injectable,
5056
4849
  args: [{ providedIn: 'root' }]
5057
4850
  }] });
5058
4851
 
5059
- /**
5060
- * @license
5061
- * Copyright Google LLC All Rights Reserved.
5062
- *
5063
- * Use of this source code is governed by an MIT-style license that can be
5064
- * found in the LICENSE file at https://angular.io/license
5065
- */
5066
4852
  const NG_DEV_MODE$3 = typeof ngDevMode === 'undefined' || !!ngDevMode;
5067
4853
  /**
5068
4854
  * A [DI token](guide/glossary/#di-token) for the router service.
@@ -5074,13 +4860,6 @@ const ROUTER_CONFIGURATION = new InjectionToken(NG_DEV_MODE$3 ? 'router config'
5074
4860
  factory: () => ({}),
5075
4861
  });
5076
4862
 
5077
- /**
5078
- * @license
5079
- * Copyright Google LLC All Rights Reserved.
5080
- *
5081
- * Use of this source code is governed by an MIT-style license that can be
5082
- * found in the LICENSE file at https://angular.io/license
5083
- */
5084
4863
  /**
5085
4864
  * @description
5086
4865
  *
@@ -5090,9 +4869,9 @@ const ROUTER_CONFIGURATION = new InjectionToken(NG_DEV_MODE$3 ? 'router config'
5090
4869
  */
5091
4870
  class UrlHandlingStrategy {
5092
4871
  }
5093
- UrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5094
- UrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
5095
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4872
+ UrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4873
+ UrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
4874
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
5096
4875
  type: Injectable,
5097
4876
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
5098
4877
  }] });
@@ -5110,20 +4889,13 @@ class DefaultUrlHandlingStrategy {
5110
4889
  return newUrlPart;
5111
4890
  }
5112
4891
  }
5113
- DefaultUrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5114
- DefaultUrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
5115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4892
+ DefaultUrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4893
+ DefaultUrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
4894
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
5116
4895
  type: Injectable,
5117
4896
  args: [{ providedIn: 'root' }]
5118
4897
  }] });
5119
4898
 
5120
- /**
5121
- * @license
5122
- * Copyright Google LLC All Rights Reserved.
5123
- *
5124
- * Use of this source code is governed by an MIT-style license that can be
5125
- * found in the LICENSE file at https://angular.io/license
5126
- */
5127
4899
  const NG_DEV_MODE$2 = typeof ngDevMode === 'undefined' || !!ngDevMode;
5128
4900
  function defaultErrorHandler(error) {
5129
4901
  throw error;
@@ -5224,13 +4996,6 @@ class Router {
5224
4996
  */
5225
4997
  this.navigated = false;
5226
4998
  this.lastSuccessfulId = -1;
5227
- /**
5228
- * Hook that enables you to pause navigation after the preactivation phase.
5229
- * Used by `RouterModule`.
5230
- *
5231
- * @internal
5232
- */
5233
- this.afterPreactivation = () => of(void 0);
5234
4999
  /**
5235
5000
  * A strategy for extracting and merging URLs.
5236
5001
  * Used for AngularJS to Angular migrations.
@@ -5324,14 +5089,12 @@ class Router {
5324
5089
  this.navigationTransitions = inject(NavigationTransitions);
5325
5090
  this.urlSerializer = inject(UrlSerializer);
5326
5091
  this.location = inject(Location);
5327
- /** @internal */
5328
- this.rootComponentType = null;
5329
5092
  this.isNgZoneEnabled = inject(NgZone) instanceof NgZone && NgZone.isInAngularZone();
5330
5093
  this.resetConfig(this.config);
5331
5094
  this.currentUrlTree = new UrlTree();
5332
5095
  this.rawUrlTree = this.currentUrlTree;
5333
5096
  this.browserUrlTree = this.currentUrlTree;
5334
- this.routerState = createEmptyState(this.currentUrlTree, this.rootComponentType);
5097
+ this.routerState = createEmptyState(this.currentUrlTree, null);
5335
5098
  this.navigationTransitions.setupNavigations(this).subscribe(t => {
5336
5099
  this.lastSuccessfulId = t.id;
5337
5100
  this.currentPageId = t.targetPageId;
@@ -5341,10 +5104,10 @@ class Router {
5341
5104
  }
5342
5105
  /** @internal */
5343
5106
  resetRootComponentType(rootComponentType) {
5344
- this.rootComponentType = rootComponentType;
5345
5107
  // TODO: vsavkin router 4.0 should make the root component set to null
5346
5108
  // this will simplify the lifecycle of the router.
5347
- this.routerState.root.component = this.rootComponentType;
5109
+ this.routerState.root.component = rootComponentType;
5110
+ this.navigationTransitions.rootComponentType = rootComponentType;
5348
5111
  }
5349
5112
  /**
5350
5113
  * Sets up the location change listener and performs the initial navigation.
@@ -5352,7 +5115,8 @@ class Router {
5352
5115
  initialNavigation() {
5353
5116
  this.setUpLocationChangeListener();
5354
5117
  if (!this.navigationTransitions.hasRequestedNavigation) {
5355
- this.navigateByUrl(this.location.path(true), { replaceUrl: true });
5118
+ const state = this.location.getState();
5119
+ this.navigateToSyncWithBrowser(this.location.path(true), IMPERATIVE_NAVIGATION, state);
5356
5120
  }
5357
5121
  }
5358
5122
  /**
@@ -5371,32 +5135,42 @@ class Router {
5371
5135
  // The `setTimeout` was added in #12160 and is likely to support Angular/AngularJS
5372
5136
  // hybrid apps.
5373
5137
  setTimeout(() => {
5374
- const extras = { replaceUrl: true };
5375
- // TODO: restoredState should always include the entire state, regardless
5376
- // of navigationId. This requires a breaking change to update the type on
5377
- // NavigationStart’s restoredState, which currently requires navigationId
5378
- // to always be present. The Router used to only restore history state if
5379
- // a navigationId was present.
5380
- // The stored navigationId is used by the RouterScroller to retrieve the scroll
5381
- // position for the page.
5382
- const restoredState = event.state?.navigationId ? event.state : null;
5383
- // Separate to NavigationStart.restoredState, we must also restore the state to
5384
- // history.state and generate a new navigationId, since it will be overwritten
5385
- if (event.state) {
5386
- const stateCopy = { ...event.state };
5387
- delete stateCopy.navigationId;
5388
- delete stateCopy.ɵrouterPageId;
5389
- if (Object.keys(stateCopy).length !== 0) {
5390
- extras.state = stateCopy;
5391
- }
5392
- }
5393
- const urlTree = this.parseUrl(event['url']);
5394
- this.scheduleNavigation(urlTree, source, restoredState, extras);
5138
+ this.navigateToSyncWithBrowser(event['url'], source, event.state);
5395
5139
  }, 0);
5396
5140
  }
5397
5141
  });
5398
5142
  }
5399
5143
  }
5144
+ /**
5145
+ * Schedules a router navigation to synchronize Router state with the browser state.
5146
+ *
5147
+ * This is done as a response to a popstate event and the initial navigation. These
5148
+ * two scenarios represent times when the browser URL/state has been updated and
5149
+ * the Router needs to respond to ensure its internal state matches.
5150
+ */
5151
+ navigateToSyncWithBrowser(url, source, state) {
5152
+ const extras = { replaceUrl: true };
5153
+ // TODO: restoredState should always include the entire state, regardless
5154
+ // of navigationId. This requires a breaking change to update the type on
5155
+ // NavigationStart’s restoredState, which currently requires navigationId
5156
+ // to always be present. The Router used to only restore history state if
5157
+ // a navigationId was present.
5158
+ // The stored navigationId is used by the RouterScroller to retrieve the scroll
5159
+ // position for the page.
5160
+ const restoredState = state?.navigationId ? state : null;
5161
+ // Separate to NavigationStart.restoredState, we must also restore the state to
5162
+ // history.state and generate a new navigationId, since it will be overwritten
5163
+ if (state) {
5164
+ const stateCopy = { ...state };
5165
+ delete stateCopy.navigationId;
5166
+ delete stateCopy.ɵrouterPageId;
5167
+ if (Object.keys(stateCopy).length !== 0) {
5168
+ extras.state = stateCopy;
5169
+ }
5170
+ }
5171
+ const urlTree = this.parseUrl(url);
5172
+ this.scheduleNavigation(urlTree, source, restoredState, extras);
5173
+ }
5400
5174
  /** The current URL. */
5401
5175
  get url() {
5402
5176
  return this.serializeUrl(this.currentUrlTree);
@@ -5543,7 +5317,7 @@ class Router {
5543
5317
  }
5544
5318
  const urlTree = isUrlTree(url) ? url : this.parseUrl(url);
5545
5319
  const mergedTree = this.urlHandlingStrategy.merge(urlTree, this.rawUrlTree);
5546
- return this.scheduleNavigation(mergedTree, 'imperative', null, extras);
5320
+ return this.scheduleNavigation(mergedTree, IMPERATIVE_NAVIGATION, null, extras);
5547
5321
  }
5548
5322
  /**
5549
5323
  * Navigate based on the provided array of commands and a starting point.
@@ -5641,10 +5415,6 @@ class Router {
5641
5415
  }
5642
5416
  let targetPageId;
5643
5417
  if (this.canceledNavigationResolution === 'computed') {
5644
- const isInitialPage = this.currentPageId === 0;
5645
- if (isInitialPage) {
5646
- restoredState = this.location.getState();
5647
- }
5648
5418
  // If the `ɵrouterPageId` exist in the state then `targetpageId` should have the value of
5649
5419
  // `ɵrouterPageId`. This is the case for something like a page refresh where we assign the
5650
5420
  // target id to the previously set value for that page.
@@ -5765,9 +5535,9 @@ class Router {
5765
5535
  return { navigationId };
5766
5536
  }
5767
5537
  }
5768
- Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5769
- Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: Router, providedIn: 'root' });
5770
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: Router, decorators: [{
5538
+ Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5539
+ Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: Router, providedIn: 'root' });
5540
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: Router, decorators: [{
5771
5541
  type: Injectable,
5772
5542
  args: [{ providedIn: 'root' }]
5773
5543
  }], ctorParameters: function () { return []; } });
@@ -5780,13 +5550,6 @@ function validateCommands(commands) {
5780
5550
  }
5781
5551
  }
5782
5552
 
5783
- /**
5784
- * @license
5785
- * Copyright Google LLC All Rights Reserved.
5786
- *
5787
- * Use of this source code is governed by an MIT-style license that can be
5788
- * found in the LICENSE file at https://angular.io/license
5789
- */
5790
5553
  /**
5791
5554
  * @description
5792
5555
  *
@@ -6060,9 +5823,9 @@ class RouterLink {
6060
5823
  });
6061
5824
  }
6062
5825
  }
6063
- RouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", 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 });
6064
- RouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-next.3", type: RouterLink, isStandalone: true, selector: "[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", relativeTo: "relativeTo", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", 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 });
6065
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterLink, decorators: [{
5826
+ RouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.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 });
5827
+ RouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0", type: RouterLink, isStandalone: true, selector: "[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", relativeTo: "relativeTo", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", 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 });
5828
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterLink, decorators: [{
6066
5829
  type: Directive,
6067
5830
  args: [{
6068
5831
  selector: '[routerLink]',
@@ -6100,13 +5863,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3",
6100
5863
  ['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey']]
6101
5864
  }] } });
6102
5865
 
6103
- /**
6104
- * @license
6105
- * Copyright Google LLC All Rights Reserved.
6106
- *
6107
- * Use of this source code is governed by an MIT-style license that can be
6108
- * found in the LICENSE file at https://angular.io/license
6109
- */
6110
5866
  /**
6111
5867
  *
6112
5868
  * @description
@@ -6290,9 +6046,9 @@ class RouterLinkActive {
6290
6046
  return this.link && isActiveCheckFn(this.link) || this.links.some(isActiveCheckFn);
6291
6047
  }
6292
6048
  }
6293
- RouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
6294
- RouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.0-next.3", 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 });
6295
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterLinkActive, decorators: [{
6049
+ RouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.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 });
6050
+ RouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.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 });
6051
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterLinkActive, decorators: [{
6296
6052
  type: Directive,
6297
6053
  args: [{
6298
6054
  selector: '[routerLinkActive]',
@@ -6320,13 +6076,6 @@ function isActiveMatchOptions(options) {
6320
6076
  return !!options.paths;
6321
6077
  }
6322
6078
 
6323
- /**
6324
- * @license
6325
- * Copyright Google LLC All Rights Reserved.
6326
- *
6327
- * Use of this source code is governed by an MIT-style license that can be
6328
- * found in the LICENSE file at https://angular.io/license
6329
- */
6330
6079
  /**
6331
6080
  * @description
6332
6081
  *
@@ -6352,9 +6101,9 @@ class PreloadAllModules {
6352
6101
  return fn().pipe(catchError(() => of(null)));
6353
6102
  }
6354
6103
  }
6355
- PreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6356
- PreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: PreloadAllModules, providedIn: 'root' });
6357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: PreloadAllModules, decorators: [{
6104
+ PreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6105
+ PreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: PreloadAllModules, providedIn: 'root' });
6106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: PreloadAllModules, decorators: [{
6358
6107
  type: Injectable,
6359
6108
  args: [{ providedIn: 'root' }]
6360
6109
  }] });
@@ -6372,9 +6121,9 @@ class NoPreloading {
6372
6121
  return of(null);
6373
6122
  }
6374
6123
  }
6375
- NoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6376
- NoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NoPreloading, providedIn: 'root' });
6377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NoPreloading, decorators: [{
6124
+ NoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6125
+ NoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NoPreloading, providedIn: 'root' });
6126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NoPreloading, decorators: [{
6378
6127
  type: Injectable,
6379
6128
  args: [{ providedIn: 'root' }]
6380
6129
  }] });
@@ -6468,20 +6217,13 @@ class RouterPreloader {
6468
6217
  });
6469
6218
  }
6470
6219
  }
6471
- RouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable });
6472
- RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterPreloader, providedIn: 'root' });
6473
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterPreloader, decorators: [{
6220
+ RouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable });
6221
+ RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterPreloader, providedIn: 'root' });
6222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterPreloader, decorators: [{
6474
6223
  type: Injectable,
6475
6224
  args: [{ providedIn: 'root' }]
6476
6225
  }], ctorParameters: function () { return [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }]; } });
6477
6226
 
6478
- /**
6479
- * @license
6480
- * Copyright Google LLC All Rights Reserved.
6481
- *
6482
- * Use of this source code is governed by an MIT-style license that can be
6483
- * found in the LICENSE file at https://angular.io/license
6484
- */
6485
6227
  const ROUTER_SCROLLER = new InjectionToken('');
6486
6228
  class RouterScroller {
6487
6229
  /** @nodoc */
@@ -6565,19 +6307,12 @@ class RouterScroller {
6565
6307
  this.scrollEventsSubscription?.unsubscribe();
6566
6308
  }
6567
6309
  }
6568
- RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
6569
- RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterScroller });
6570
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterScroller, decorators: [{
6310
+ RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
6311
+ RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterScroller });
6312
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterScroller, decorators: [{
6571
6313
  type: Injectable
6572
6314
  }], ctorParameters: function () { return [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }]; } });
6573
6315
 
6574
- /**
6575
- * @license
6576
- * Copyright Google LLC All Rights Reserved.
6577
- *
6578
- * Use of this source code is governed by an MIT-style license that can be
6579
- * found in the LICENSE file at https://angular.io/license
6580
- */
6581
6316
  const NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || ngDevMode;
6582
6317
  /**
6583
6318
  * Sets up providers necessary to enable `Router` functionality for the application.
@@ -6812,7 +6547,7 @@ function withEnabledBlockingInitialNavigation() {
6812
6547
  // without a redirect.
6813
6548
  resolve(true);
6814
6549
  });
6815
- router.afterPreactivation = () => {
6550
+ injector.get(NavigationTransitions).afterPreactivation = () => {
6816
6551
  // Unblock APP_INITIALIZER once we get to `afterPreactivation`. At this point, we
6817
6552
  // assume activation will complete successfully (even though this is not
6818
6553
  // guaranteed).
@@ -6996,7 +6731,7 @@ function withRouterConfig(options) {
6996
6731
  * bootstrapApplication(AppComponent,
6997
6732
  * {
6998
6733
  * providers: [
6999
- * provideRouter(appRoutes, withHashLocation()
6734
+ * provideRouter(appRoutes, withHashLocation())
7000
6735
  * ]
7001
6736
  * }
7002
6737
  * );
@@ -7016,13 +6751,6 @@ function withHashLocation() {
7016
6751
  return routerFeature(5 /* RouterFeatureKind.RouterConfigurationFeature */, providers);
7017
6752
  }
7018
6753
 
7019
- /**
7020
- * @license
7021
- * Copyright Google LLC All Rights Reserved.
7022
- *
7023
- * Use of this source code is governed by an MIT-style license that can be
7024
- * found in the LICENSE file at https://angular.io/license
7025
- */
7026
6754
  const NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;
7027
6755
  /**
7028
6756
  * The directives defined in the `RouterModule`.
@@ -7136,10 +6864,10 @@ class RouterModule {
7136
6864
  };
7137
6865
  }
7138
6866
  }
7139
- RouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
7140
- RouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] });
7141
- RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterModule, imports: [ɵEmptyOutletComponent] });
7142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterModule, decorators: [{
6867
+ RouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
6868
+ RouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.0", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] });
6869
+ RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterModule, imports: [ɵEmptyOutletComponent] });
6870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterModule, decorators: [{
7143
6871
  type: NgModule,
7144
6872
  args: [{
7145
6873
  imports: ROUTER_DIRECTIVES,
@@ -7216,49 +6944,23 @@ function provideRouterInitializer() {
7216
6944
  }
7217
6945
 
7218
6946
  /**
7219
- * @license
7220
- * Copyright Google LLC All Rights Reserved.
7221
- *
7222
- * Use of this source code is governed by an MIT-style license that can be
7223
- * found in the LICENSE file at https://angular.io/license
6947
+ * @module
6948
+ * @description
6949
+ * Entry point for all public APIs of the router package.
7224
6950
  */
7225
6951
  /**
7226
6952
  * @publicApi
7227
6953
  */
7228
- const VERSION = new Version('15.1.0-next.3');
7229
-
7230
- /**
7231
- * @license
7232
- * Copyright Google LLC All Rights Reserved.
7233
- *
7234
- * Use of this source code is governed by an MIT-style license that can be
7235
- * found in the LICENSE file at https://angular.io/license
7236
- */
7237
-
7238
- /**
7239
- * @license
7240
- * Copyright Google LLC All Rights Reserved.
7241
- *
7242
- * Use of this source code is governed by an MIT-style license that can be
7243
- * found in the LICENSE file at https://angular.io/license
7244
- */
6954
+ const VERSION = new Version('15.1.0');
7245
6955
 
7246
6956
  /**
7247
- * @license
7248
- * Copyright Google LLC All Rights Reserved.
7249
- *
7250
- * Use of this source code is governed by an MIT-style license that can be
7251
- * found in the LICENSE file at https://angular.io/license
6957
+ * @module
6958
+ * @description
6959
+ * Entry point for all public APIs of this package.
7252
6960
  */
7253
6961
  // This file only reexports content of the `src` folder. Keep it that way.
7254
6962
 
7255
- /**
7256
- * @license
7257
- * Copyright Google LLC All Rights Reserved.
7258
- *
7259
- * Use of this source code is governed by an MIT-style license that can be
7260
- * found in the LICENSE file at https://angular.io/license
7261
- */
6963
+ // This file is not used to build this module. It is only used during editing
7262
6964
 
7263
6965
  /**
7264
6966
  * Generated bundle index. Do not edit.