@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`.
@@ -1248,13 +1220,7 @@ function compare(path, params, segment) {
1248
1220
  return path == segment.path && shallowEqual(params, segment.parameters);
1249
1221
  }
1250
1222
 
1251
- /**
1252
- * @license
1253
- * Copyright Google LLC All Rights Reserved.
1254
- *
1255
- * Use of this source code is governed by an MIT-style license that can be
1256
- * found in the LICENSE file at https://angular.io/license
1257
- */
1223
+ const IMPERATIVE_NAVIGATION = 'imperative';
1258
1224
  /**
1259
1225
  * Base for events the router goes through, as opposed to events tied to a specific
1260
1226
  * route. Fired one time for any given navigation.
@@ -1759,13 +1725,6 @@ function stringifyEvent(routerEvent) {
1759
1725
  }
1760
1726
  }
1761
1727
 
1762
- /**
1763
- * @license
1764
- * Copyright Google LLC All Rights Reserved.
1765
- *
1766
- * Use of this source code is governed by an MIT-style license that can be
1767
- * found in the LICENSE file at https://angular.io/license
1768
- */
1769
1728
  const NG_DEV_MODE$9 = typeof ngDevMode === 'undefined' || ngDevMode;
1770
1729
  class LegacyCreateUrlTree {
1771
1730
  createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment) {
@@ -1773,9 +1732,9 @@ class LegacyCreateUrlTree {
1773
1732
  return createUrlTree(a, currentUrlTree, commands, queryParams, fragment);
1774
1733
  }
1775
1734
  }
1776
- LegacyCreateUrlTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: LegacyCreateUrlTree, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1777
- LegacyCreateUrlTree.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: LegacyCreateUrlTree });
1778
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: LegacyCreateUrlTree, decorators: [{
1735
+ LegacyCreateUrlTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: LegacyCreateUrlTree, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1736
+ LegacyCreateUrlTree.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: LegacyCreateUrlTree });
1737
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: LegacyCreateUrlTree, decorators: [{
1779
1738
  type: Injectable
1780
1739
  }] });
1781
1740
  class CreateUrlTreeUsingSnapshot {
@@ -1809,27 +1768,20 @@ class CreateUrlTreeUsingSnapshot {
1809
1768
  return createUrlTreeFromSegmentGroup(relativeToUrlSegmentGroup, commands, queryParams, fragment);
1810
1769
  }
1811
1770
  }
1812
- CreateUrlTreeUsingSnapshot.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeUsingSnapshot, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1813
- CreateUrlTreeUsingSnapshot.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeUsingSnapshot });
1814
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeUsingSnapshot, decorators: [{
1771
+ CreateUrlTreeUsingSnapshot.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeUsingSnapshot, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1772
+ CreateUrlTreeUsingSnapshot.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeUsingSnapshot });
1773
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeUsingSnapshot, decorators: [{
1815
1774
  type: Injectable
1816
1775
  }] });
1817
1776
  class CreateUrlTreeStrategy {
1818
1777
  }
1819
- CreateUrlTreeStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1820
- CreateUrlTreeStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeStrategy, providedIn: 'root', useClass: LegacyCreateUrlTree });
1821
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: CreateUrlTreeStrategy, decorators: [{
1778
+ CreateUrlTreeStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1779
+ CreateUrlTreeStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeStrategy, providedIn: 'root', useClass: LegacyCreateUrlTree });
1780
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: CreateUrlTreeStrategy, decorators: [{
1822
1781
  type: Injectable,
1823
1782
  args: [{ providedIn: 'root', useClass: LegacyCreateUrlTree }]
1824
1783
  }] });
1825
1784
 
1826
- /**
1827
- * @license
1828
- * Copyright Google LLC All Rights Reserved.
1829
- *
1830
- * Use of this source code is governed by an MIT-style license that can be
1831
- * found in the LICENSE file at https://angular.io/license
1832
- */
1833
1785
  class Tree {
1834
1786
  constructor(root) {
1835
1787
  this._root = root;
@@ -1917,13 +1869,6 @@ function nodeChildrenAsMap(node) {
1917
1869
  return map;
1918
1870
  }
1919
1871
 
1920
- /**
1921
- * @license
1922
- * Copyright Google LLC All Rights Reserved.
1923
- *
1924
- * Use of this source code is governed by an MIT-style license that can be
1925
- * found in the LICENSE file at https://angular.io/license
1926
- */
1927
1872
  /**
1928
1873
  * Represents the state of the router as a tree of activated routes.
1929
1874
  *
@@ -2325,13 +2270,6 @@ function equalParamsAndUrlSegments(a, b) {
2325
2270
  (!a.parent || equalParamsAndUrlSegments(a.parent, b.parent));
2326
2271
  }
2327
2272
 
2328
- /**
2329
- * @license
2330
- * Copyright Google LLC All Rights Reserved.
2331
- *
2332
- * Use of this source code is governed by an MIT-style license that can be
2333
- * found in the LICENSE file at https://angular.io/license
2334
- */
2335
2273
  function createRouterState(routeReuseStrategy, curr, prevState) {
2336
2274
  const root = createNode(routeReuseStrategy, curr._root, prevState ? prevState._root : undefined);
2337
2275
  return new RouterState(root, curr);
@@ -2374,13 +2312,6 @@ function createActivatedRoute(c) {
2374
2312
  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);
2375
2313
  }
2376
2314
 
2377
- /**
2378
- * @license
2379
- * Copyright Google LLC All Rights Reserved.
2380
- *
2381
- * Use of this source code is governed by an MIT-style license that can be
2382
- * found in the LICENSE file at https://angular.io/license
2383
- */
2384
2315
  const NAVIGATION_CANCELING_ERROR = 'ngNavigationCancelingError';
2385
2316
  function redirectingNavigationError(urlSerializer, redirect) {
2386
2317
  const { redirectTo, navigationBehaviorOptions } = isUrlTree(redirect) ? { redirectTo: redirect, navigationBehaviorOptions: undefined } : redirect;
@@ -2405,13 +2336,6 @@ function isNavigationCancelingError$1(error) {
2405
2336
  return error && error[NAVIGATION_CANCELING_ERROR];
2406
2337
  }
2407
2338
 
2408
- /**
2409
- * @license
2410
- * Copyright Google LLC All Rights Reserved.
2411
- *
2412
- * Use of this source code is governed by an MIT-style license that can be
2413
- * found in the LICENSE file at https://angular.io/license
2414
- */
2415
2339
  /**
2416
2340
  * Store contextual information about a `RouterOutlet`
2417
2341
  *
@@ -2483,20 +2407,13 @@ class ChildrenOutletContexts {
2483
2407
  return this.contexts.get(childName) || null;
2484
2408
  }
2485
2409
  }
2486
- ChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2487
- ChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
2488
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
2410
+ ChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2411
+ ChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
2412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
2489
2413
  type: Injectable,
2490
2414
  args: [{ providedIn: 'root' }]
2491
2415
  }] });
2492
2416
 
2493
- /**
2494
- * @license
2495
- * Copyright Google LLC All Rights Reserved.
2496
- *
2497
- * Use of this source code is governed by an MIT-style license that can be
2498
- * found in the LICENSE file at https://angular.io/license
2499
- */
2500
2417
  const NG_DEV_MODE$8 = typeof ngDevMode === 'undefined' || ngDevMode;
2501
2418
  /**
2502
2419
  * @description
@@ -2706,9 +2623,9 @@ class RouterOutlet {
2706
2623
  this.activateEvents.emit(this.activated.instance);
2707
2624
  }
2708
2625
  }
2709
- RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2710
- 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 });
2711
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterOutlet, decorators: [{
2626
+ RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2627
+ 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 });
2628
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterOutlet, decorators: [{
2712
2629
  type: Directive,
2713
2630
  args: [{
2714
2631
  selector: 'router-outlet',
@@ -2750,13 +2667,6 @@ function isComponentFactoryResolver(item) {
2750
2667
  return !!item.resolveComponentFactory;
2751
2668
  }
2752
2669
 
2753
- /**
2754
- * @license
2755
- * Copyright Google LLC All Rights Reserved.
2756
- *
2757
- * Use of this source code is governed by an MIT-style license that can be
2758
- * found in the LICENSE file at https://angular.io/license
2759
- */
2760
2670
  /**
2761
2671
  * This component is used internally within the router to be a placeholder when an empty
2762
2672
  * router-outlet is needed. For example, with a config such as:
@@ -2768,9 +2678,9 @@ function isComponentFactoryResolver(item) {
2768
2678
  */
2769
2679
  class ɵEmptyOutletComponent {
2770
2680
  }
2771
- ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2772
- ɵ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"] }] });
2773
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2681
+ ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2682
+ ɵ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"] }] });
2683
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2774
2684
  type: Component,
2775
2685
  args: [{
2776
2686
  template: `<router-outlet></router-outlet>`,
@@ -2779,13 +2689,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3",
2779
2689
  }]
2780
2690
  }] });
2781
2691
 
2782
- /**
2783
- * @license
2784
- * Copyright Google LLC All Rights Reserved.
2785
- *
2786
- * Use of this source code is governed by an MIT-style license that can be
2787
- * found in the LICENSE file at https://angular.io/license
2788
- */
2789
2692
  /**
2790
2693
  * Creates an `EnvironmentInjector` if the `Route` has providers and one does not already exist
2791
2694
  * and returns the injector. Otherwise, if the `Route` does not have `providers`, returns the
@@ -2971,13 +2874,6 @@ function getClosestRouteInjector(snapshot) {
2971
2874
  return null;
2972
2875
  }
2973
2876
 
2974
- /**
2975
- * @license
2976
- * Copyright Google LLC All Rights Reserved.
2977
- *
2978
- * Use of this source code is governed by an MIT-style license that can be
2979
- * found in the LICENSE file at https://angular.io/license
2980
- */
2981
2877
  const activateRoutes = (rootContexts, routeReuseStrategy, forwardEvent) => map(t => {
2982
2878
  new ActivateRoutes(routeReuseStrategy, t.targetRouterState, t.currentRouterState, forwardEvent)
2983
2879
  .activate(rootContexts);
@@ -3147,13 +3043,6 @@ class ActivateRoutes {
3147
3043
  }
3148
3044
  }
3149
3045
 
3150
- /**
3151
- * @license
3152
- * Copyright Google LLC All Rights Reserved.
3153
- *
3154
- * Use of this source code is governed by an MIT-style license that can be
3155
- * found in the LICENSE file at https://angular.io/license
3156
- */
3157
3046
  class CanActivate {
3158
3047
  constructor(path) {
3159
3048
  this.path = path;
@@ -3297,13 +3186,6 @@ function deactivateRouteAndItsChildren(route, context, checks) {
3297
3186
  }
3298
3187
  }
3299
3188
 
3300
- /**
3301
- * @license
3302
- * Copyright Google LLC All Rights Reserved.
3303
- *
3304
- * Use of this source code is governed by an MIT-style license that can be
3305
- * found in the LICENSE file at https://angular.io/license
3306
- */
3307
3189
  /**
3308
3190
  * Simple function check, but generic so type inference will flow. Example:
3309
3191
  *
@@ -3348,13 +3230,6 @@ function isEmptyError(e) {
3348
3230
  return e instanceof EmptyError || (e === null || e === void 0 ? void 0 : e.name) === 'EmptyError';
3349
3231
  }
3350
3232
 
3351
- /**
3352
- * @license
3353
- * Copyright Google LLC All Rights Reserved.
3354
- *
3355
- * Use of this source code is governed by an MIT-style license that can be
3356
- * found in the LICENSE file at https://angular.io/license
3357
- */
3358
3233
  const INITIAL_VALUE = Symbol('INITIAL_VALUE');
3359
3234
  function prioritizedGuardValue() {
3360
3235
  return switchMap(obs => {
@@ -3382,13 +3257,6 @@ function prioritizedGuardValue() {
3382
3257
  });
3383
3258
  }
3384
3259
 
3385
- /**
3386
- * @license
3387
- * Copyright Google LLC All Rights Reserved.
3388
- *
3389
- * Use of this source code is governed by an MIT-style license that can be
3390
- * found in the LICENSE file at https://angular.io/license
3391
- */
3392
3260
  function checkGuards(injector, forwardEvent) {
3393
3261
  return mergeMap(t => {
3394
3262
  const { targetSnapshot, currentSnapshot, guards: { canActivateChecks, canDeactivateChecks } } = t;
@@ -3534,13 +3402,6 @@ function runCanMatchGuards(injector, route, segments, urlSerializer) {
3534
3402
  .pipe(prioritizedGuardValue(), redirectIfUrlTree(urlSerializer));
3535
3403
  }
3536
3404
 
3537
- /**
3538
- * @license
3539
- * Copyright Google LLC All Rights Reserved.
3540
- *
3541
- * Use of this source code is governed by an MIT-style license that can be
3542
- * found in the LICENSE file at https://angular.io/license
3543
- */
3544
3405
  const noMatch$1 = {
3545
3406
  matched: false,
3546
3407
  consumedSegments: [],
@@ -3681,13 +3542,6 @@ function noLeftoversInUrl(segmentGroup, segments, outlet) {
3681
3542
  return segments.length === 0 && !segmentGroup.children[outlet];
3682
3543
  }
3683
3544
 
3684
- /**
3685
- * @license
3686
- * Copyright Google LLC All Rights Reserved.
3687
- *
3688
- * Use of this source code is governed by an MIT-style license that can be
3689
- * found in the LICENSE file at https://angular.io/license
3690
- */
3691
3545
  const NG_DEV_MODE$7 = typeof ngDevMode === 'undefined' || ngDevMode;
3692
3546
  class NoMatch$1 {
3693
3547
  constructor(segmentGroup) {
@@ -4004,25 +3858,11 @@ class ApplyRedirects {
4004
3858
  }
4005
3859
  }
4006
3860
 
4007
- /**
4008
- * @license
4009
- * Copyright Google LLC All Rights Reserved.
4010
- *
4011
- * Use of this source code is governed by an MIT-style license that can be
4012
- * found in the LICENSE file at https://angular.io/license
4013
- */
4014
3861
  function applyRedirects(environmentInjector, configLoader, urlSerializer, config) {
4015
3862
  return switchMap(t => applyRedirects$1(environmentInjector, configLoader, urlSerializer, t.extractedUrl, config)
4016
3863
  .pipe(map(urlAfterRedirects => (Object.assign(Object.assign({}, t), { urlAfterRedirects })))));
4017
3864
  }
4018
3865
 
4019
- /**
4020
- * @license
4021
- * Copyright Google LLC All Rights Reserved.
4022
- *
4023
- * Use of this source code is governed by an MIT-style license that can be
4024
- * found in the LICENSE file at https://angular.io/license
4025
- */
4026
3866
  const NG_DEV_MODE$6 = typeof ngDevMode === 'undefined' || !!ngDevMode;
4027
3867
  class NoMatch {
4028
3868
  }
@@ -4309,25 +4149,11 @@ function getResolve(route) {
4309
4149
  return route.resolve || {};
4310
4150
  }
4311
4151
 
4312
- /**
4313
- * @license
4314
- * Copyright Google LLC All Rights Reserved.
4315
- *
4316
- * Use of this source code is governed by an MIT-style license that can be
4317
- * found in the LICENSE file at https://angular.io/license
4318
- */
4319
4152
  function recognize(injector, rootComponentType, config, serializer, paramsInheritanceStrategy) {
4320
4153
  return mergeMap(t => recognize$1(injector, rootComponentType, config, t.urlAfterRedirects, serializer.serialize(t.urlAfterRedirects), serializer, paramsInheritanceStrategy)
4321
4154
  .pipe(map(targetSnapshot => (Object.assign(Object.assign({}, t), { targetSnapshot })))));
4322
4155
  }
4323
4156
 
4324
- /**
4325
- * @license
4326
- * Copyright Google LLC All Rights Reserved.
4327
- *
4328
- * Use of this source code is governed by an MIT-style license that can be
4329
- * found in the LICENSE file at https://angular.io/license
4330
- */
4331
4157
  function resolveData(paramsInheritanceStrategy, injector) {
4332
4158
  return mergeMap(t => {
4333
4159
  const { targetSnapshot, guards: { canActivateChecks } } = t;
@@ -4381,13 +4207,6 @@ function hasStaticTitle(config) {
4381
4207
  return typeof config.title === 'string' || config.title === null;
4382
4208
  }
4383
4209
 
4384
- /**
4385
- * @license
4386
- * Copyright Google LLC All Rights Reserved.
4387
- *
4388
- * Use of this source code is governed by an MIT-style license that can be
4389
- * found in the LICENSE file at https://angular.io/license
4390
- */
4391
4210
  /**
4392
4211
  * Perform a side effect through a switchMap for every emission on the source Observable,
4393
4212
  * but return an Observable that is identical to the source. It's essentially the same as
@@ -4404,26 +4223,12 @@ function switchTap(next) {
4404
4223
  });
4405
4224
  }
4406
4225
 
4407
- /**
4408
- * @license
4409
- * Copyright Google LLC All Rights Reserved.
4410
- *
4411
- * Use of this source code is governed by an MIT-style license that can be
4412
- * found in the LICENSE file at https://angular.io/license
4413
- */
4414
4226
  // This file exists to support the legacy `loadChildren: string` behavior being patched back into
4415
4227
  // Angular.
4416
4228
  function deprecatedLoadChildrenString(injector, loadChildren) {
4417
4229
  return null;
4418
4230
  }
4419
4231
 
4420
- /**
4421
- * @license
4422
- * Copyright Google LLC All Rights Reserved.
4423
- *
4424
- * Use of this source code is governed by an MIT-style license that can be
4425
- * found in the LICENSE file at https://angular.io/license
4426
- */
4427
4232
  const NG_DEV_MODE$5 = typeof ngDevMode === 'undefined' || !!ngDevMode;
4428
4233
  /**
4429
4234
  * The [DI token](guide/glossary/#di-token) for a router configuration.
@@ -4529,9 +4334,9 @@ class RouterConfigLoader {
4529
4334
  }));
4530
4335
  }
4531
4336
  }
4532
- 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 });
4533
- RouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
4534
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterConfigLoader, decorators: [{
4337
+ 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 });
4338
+ RouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
4339
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterConfigLoader, decorators: [{
4535
4340
  type: Injectable,
4536
4341
  args: [{ providedIn: 'root' }]
4537
4342
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Compiler }]; } });
@@ -4547,13 +4352,6 @@ function maybeUnwrapDefaultExport(input) {
4547
4352
  return isWrappedDefaultExport(input) ? input['default'] : input;
4548
4353
  }
4549
4354
 
4550
- /**
4551
- * @license
4552
- * Copyright Google LLC All Rights Reserved.
4553
- *
4554
- * Use of this source code is governed by an MIT-style license that can be
4555
- * found in the LICENSE file at https://angular.io/license
4556
- */
4557
4355
  const NG_DEV_MODE$4 = typeof ngDevMode === 'undefined' || !!ngDevMode;
4558
4356
  class NavigationTransitions {
4559
4357
  get hasRequestedNavigation() {
@@ -4568,6 +4366,15 @@ class NavigationTransitions {
4568
4366
  this.urlSerializer = inject(UrlSerializer);
4569
4367
  this.rootContexts = inject(ChildrenOutletContexts);
4570
4368
  this.navigationId = 0;
4369
+ /**
4370
+ * Hook that enables you to pause navigation after the preactivation phase.
4371
+ * Used by `RouterModule`.
4372
+ *
4373
+ * @internal
4374
+ */
4375
+ this.afterPreactivation = () => of(void 0);
4376
+ /** @internal */
4377
+ this.rootComponentType = null;
4571
4378
  const onLoadStart = (r) => this.events.next(new RouteConfigLoadStart(r));
4572
4379
  const onLoadEnd = (r) => this.events.next(new RouteConfigLoadEnd(r));
4573
4380
  this.configLoader.onLoadEndListener = onLoadEnd;
@@ -4595,7 +4402,7 @@ class NavigationTransitions {
4595
4402
  resolve: null,
4596
4403
  reject: null,
4597
4404
  promise: Promise.resolve(true),
4598
- source: 'imperative',
4405
+ source: IMPERATIVE_NAVIGATION,
4599
4406
  restoredState: null,
4600
4407
  currentSnapshot: router.routerState.snapshot,
4601
4408
  targetSnapshot: null,
@@ -4671,7 +4478,7 @@ class NavigationTransitions {
4671
4478
  overallTransitionState.urlAfterRedirects = t.urlAfterRedirects;
4672
4479
  }),
4673
4480
  // Recognize
4674
- recognize(this.environmentInjector, router.rootComponentType, router.config, this.urlSerializer, router.paramsInheritanceStrategy),
4481
+ recognize(this.environmentInjector, this.rootComponentType, router.config, this.urlSerializer, router.paramsInheritanceStrategy),
4675
4482
  // Update URL if in `eager` update mode
4676
4483
  tap(t => {
4677
4484
  overallTransitionState.targetSnapshot = t.targetSnapshot;
@@ -4695,7 +4502,7 @@ class NavigationTransitions {
4695
4502
  const { id, extractedUrl, source, restoredState, extras } = t;
4696
4503
  const navStart = new NavigationStart(id, this.urlSerializer.serialize(extractedUrl), source, restoredState);
4697
4504
  this.events.next(navStart);
4698
- const targetSnapshot = createEmptyState(extractedUrl, router.rootComponentType).snapshot;
4505
+ const targetSnapshot = createEmptyState(extractedUrl, this.rootComponentType).snapshot;
4699
4506
  overallTransitionState = Object.assign(Object.assign({}, t), { targetSnapshot, urlAfterRedirects: extractedUrl, extras: Object.assign(Object.assign({}, extras), { skipLocationChange: false, replaceUrl: false }) });
4700
4507
  return of(overallTransitionState);
4701
4508
  }
@@ -4782,7 +4589,7 @@ class NavigationTransitions {
4782
4589
  };
4783
4590
  return combineLatest(loadComponents(t.targetSnapshot.root))
4784
4591
  .pipe(defaultIfEmpty(), take(1));
4785
- }), switchTap(() => router.afterPreactivation()), map((t) => {
4592
+ }), switchTap(() => this.afterPreactivation()), map((t) => {
4786
4593
  const targetRouterState = createRouterState(router.routeReuseStrategy, t.targetSnapshot, t.currentRouterState);
4787
4594
  overallTransitionState = Object.assign(Object.assign({}, t), { targetRouterState });
4788
4595
  return (overallTransitionState);
@@ -4871,7 +4678,7 @@ class NavigationTransitions {
4871
4678
  replaceUrl: router.urlUpdateStrategy === 'eager' ||
4872
4679
  isBrowserTriggeredNavigation(overallTransitionState.source)
4873
4680
  };
4874
- router.scheduleNavigation(mergedTree, 'imperative', null, extras, {
4681
+ router.scheduleNavigation(mergedTree, IMPERATIVE_NAVIGATION, null, extras, {
4875
4682
  resolve: overallTransitionState.resolve,
4876
4683
  reject: overallTransitionState.reject,
4877
4684
  promise: overallTransitionState.promise
@@ -4902,23 +4709,16 @@ class NavigationTransitions {
4902
4709
  t.resolve(false);
4903
4710
  }
4904
4711
  }
4905
- NavigationTransitions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4906
- NavigationTransitions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
4907
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NavigationTransitions, decorators: [{
4712
+ NavigationTransitions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4713
+ NavigationTransitions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
4714
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NavigationTransitions, decorators: [{
4908
4715
  type: Injectable,
4909
4716
  args: [{ providedIn: 'root' }]
4910
4717
  }], ctorParameters: function () { return []; } });
4911
4718
  function isBrowserTriggeredNavigation(source) {
4912
- return source !== 'imperative';
4719
+ return source !== IMPERATIVE_NAVIGATION;
4913
4720
  }
4914
4721
 
4915
- /**
4916
- * @license
4917
- * Copyright Google LLC All Rights Reserved.
4918
- *
4919
- * Use of this source code is governed by an MIT-style license that can be
4920
- * found in the LICENSE file at https://angular.io/license
4921
- */
4922
4722
  /**
4923
4723
  * Provides a strategy for setting the page title after a router navigation.
4924
4724
  *
@@ -4964,9 +4764,9 @@ class TitleStrategy {
4964
4764
  return snapshot.data[RouteTitleKey];
4965
4765
  }
4966
4766
  }
4967
- TitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4968
- TitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
4969
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: TitleStrategy, decorators: [{
4767
+ TitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4768
+ TitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
4769
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: TitleStrategy, decorators: [{
4970
4770
  type: Injectable,
4971
4771
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
4972
4772
  }] });
@@ -4990,20 +4790,13 @@ class DefaultTitleStrategy extends TitleStrategy {
4990
4790
  }
4991
4791
  }
4992
4792
  }
4993
- 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 });
4994
- DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
4995
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4793
+ DefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
4794
+ DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
4795
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4996
4796
  type: Injectable,
4997
4797
  args: [{ providedIn: 'root' }]
4998
4798
  }], ctorParameters: function () { return [{ type: i1.Title }]; } });
4999
4799
 
5000
- /**
5001
- * @license
5002
- * Copyright Google LLC All Rights Reserved.
5003
- *
5004
- * Use of this source code is governed by an MIT-style license that can be
5005
- * found in the LICENSE file at https://angular.io/license
5006
- */
5007
4800
  /**
5008
4801
  * @description
5009
4802
  *
@@ -5013,9 +4806,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3",
5013
4806
  */
5014
4807
  class RouteReuseStrategy {
5015
4808
  }
5016
- RouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5017
- RouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
5018
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4809
+ RouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4810
+ RouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
4811
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouteReuseStrategy, decorators: [{
5019
4812
  type: Injectable,
5020
4813
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
5021
4814
  }] });
@@ -5067,20 +4860,13 @@ class BaseRouteReuseStrategy {
5067
4860
  }
5068
4861
  class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
5069
4862
  }
5070
- DefaultRouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5071
- DefaultRouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
5072
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4863
+ DefaultRouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
4864
+ DefaultRouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
4865
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
5073
4866
  type: Injectable,
5074
4867
  args: [{ providedIn: 'root' }]
5075
4868
  }] });
5076
4869
 
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
4870
  const NG_DEV_MODE$3 = typeof ngDevMode === 'undefined' || !!ngDevMode;
5085
4871
  /**
5086
4872
  * A [DI token](guide/glossary/#di-token) for the router service.
@@ -5092,13 +4878,6 @@ const ROUTER_CONFIGURATION = new InjectionToken(NG_DEV_MODE$3 ? 'router config'
5092
4878
  factory: () => ({}),
5093
4879
  });
5094
4880
 
5095
- /**
5096
- * @license
5097
- * Copyright Google LLC All Rights Reserved.
5098
- *
5099
- * Use of this source code is governed by an MIT-style license that can be
5100
- * found in the LICENSE file at https://angular.io/license
5101
- */
5102
4881
  /**
5103
4882
  * @description
5104
4883
  *
@@ -5108,9 +4887,9 @@ const ROUTER_CONFIGURATION = new InjectionToken(NG_DEV_MODE$3 ? 'router config'
5108
4887
  */
5109
4888
  class UrlHandlingStrategy {
5110
4889
  }
5111
- UrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5112
- UrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
5113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4890
+ UrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4891
+ UrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
4892
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
5114
4893
  type: Injectable,
5115
4894
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
5116
4895
  }] });
@@ -5128,20 +4907,13 @@ class DefaultUrlHandlingStrategy {
5128
4907
  return newUrlPart;
5129
4908
  }
5130
4909
  }
5131
- DefaultUrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5132
- DefaultUrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
5133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4910
+ DefaultUrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4911
+ DefaultUrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
4912
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
5134
4913
  type: Injectable,
5135
4914
  args: [{ providedIn: 'root' }]
5136
4915
  }] });
5137
4916
 
5138
- /**
5139
- * @license
5140
- * Copyright Google LLC All Rights Reserved.
5141
- *
5142
- * Use of this source code is governed by an MIT-style license that can be
5143
- * found in the LICENSE file at https://angular.io/license
5144
- */
5145
4917
  const NG_DEV_MODE$2 = typeof ngDevMode === 'undefined' || !!ngDevMode;
5146
4918
  function defaultErrorHandler(error) {
5147
4919
  throw error;
@@ -5244,13 +5016,6 @@ class Router {
5244
5016
  */
5245
5017
  this.navigated = false;
5246
5018
  this.lastSuccessfulId = -1;
5247
- /**
5248
- * Hook that enables you to pause navigation after the preactivation phase.
5249
- * Used by `RouterModule`.
5250
- *
5251
- * @internal
5252
- */
5253
- this.afterPreactivation = () => of(void 0);
5254
5019
  /**
5255
5020
  * A strategy for extracting and merging URLs.
5256
5021
  * Used for AngularJS to Angular migrations.
@@ -5344,14 +5109,12 @@ class Router {
5344
5109
  this.navigationTransitions = inject(NavigationTransitions);
5345
5110
  this.urlSerializer = inject(UrlSerializer);
5346
5111
  this.location = inject(Location);
5347
- /** @internal */
5348
- this.rootComponentType = null;
5349
5112
  this.isNgZoneEnabled = inject(NgZone) instanceof NgZone && NgZone.isInAngularZone();
5350
5113
  this.resetConfig(this.config);
5351
5114
  this.currentUrlTree = new UrlTree();
5352
5115
  this.rawUrlTree = this.currentUrlTree;
5353
5116
  this.browserUrlTree = this.currentUrlTree;
5354
- this.routerState = createEmptyState(this.currentUrlTree, this.rootComponentType);
5117
+ this.routerState = createEmptyState(this.currentUrlTree, null);
5355
5118
  this.navigationTransitions.setupNavigations(this).subscribe(t => {
5356
5119
  this.lastSuccessfulId = t.id;
5357
5120
  this.currentPageId = t.targetPageId;
@@ -5361,10 +5124,10 @@ class Router {
5361
5124
  }
5362
5125
  /** @internal */
5363
5126
  resetRootComponentType(rootComponentType) {
5364
- this.rootComponentType = rootComponentType;
5365
5127
  // TODO: vsavkin router 4.0 should make the root component set to null
5366
5128
  // this will simplify the lifecycle of the router.
5367
- this.routerState.root.component = this.rootComponentType;
5129
+ this.routerState.root.component = rootComponentType;
5130
+ this.navigationTransitions.rootComponentType = rootComponentType;
5368
5131
  }
5369
5132
  /**
5370
5133
  * Sets up the location change listener and performs the initial navigation.
@@ -5372,7 +5135,8 @@ class Router {
5372
5135
  initialNavigation() {
5373
5136
  this.setUpLocationChangeListener();
5374
5137
  if (!this.navigationTransitions.hasRequestedNavigation) {
5375
- this.navigateByUrl(this.location.path(true), { replaceUrl: true });
5138
+ const state = this.location.getState();
5139
+ this.navigateToSyncWithBrowser(this.location.path(true), IMPERATIVE_NAVIGATION, state);
5376
5140
  }
5377
5141
  }
5378
5142
  /**
@@ -5391,33 +5155,42 @@ class Router {
5391
5155
  // The `setTimeout` was added in #12160 and is likely to support Angular/AngularJS
5392
5156
  // hybrid apps.
5393
5157
  setTimeout(() => {
5394
- var _a;
5395
- const extras = { replaceUrl: true };
5396
- // TODO: restoredState should always include the entire state, regardless
5397
- // of navigationId. This requires a breaking change to update the type on
5398
- // NavigationStart’s restoredState, which currently requires navigationId
5399
- // to always be present. The Router used to only restore history state if
5400
- // a navigationId was present.
5401
- // The stored navigationId is used by the RouterScroller to retrieve the scroll
5402
- // position for the page.
5403
- const restoredState = ((_a = event.state) === null || _a === void 0 ? void 0 : _a.navigationId) ? event.state : null;
5404
- // Separate to NavigationStart.restoredState, we must also restore the state to
5405
- // history.state and generate a new navigationId, since it will be overwritten
5406
- if (event.state) {
5407
- const stateCopy = Object.assign({}, event.state);
5408
- delete stateCopy.navigationId;
5409
- delete stateCopy.ɵrouterPageId;
5410
- if (Object.keys(stateCopy).length !== 0) {
5411
- extras.state = stateCopy;
5412
- }
5413
- }
5414
- const urlTree = this.parseUrl(event['url']);
5415
- this.scheduleNavigation(urlTree, source, restoredState, extras);
5158
+ this.navigateToSyncWithBrowser(event['url'], source, event.state);
5416
5159
  }, 0);
5417
5160
  }
5418
5161
  });
5419
5162
  }
5420
5163
  }
5164
+ /**
5165
+ * Schedules a router navigation to synchronize Router state with the browser state.
5166
+ *
5167
+ * This is done as a response to a popstate event and the initial navigation. These
5168
+ * two scenarios represent times when the browser URL/state has been updated and
5169
+ * the Router needs to respond to ensure its internal state matches.
5170
+ */
5171
+ navigateToSyncWithBrowser(url, source, state) {
5172
+ const extras = { replaceUrl: true };
5173
+ // TODO: restoredState should always include the entire state, regardless
5174
+ // of navigationId. This requires a breaking change to update the type on
5175
+ // NavigationStart’s restoredState, which currently requires navigationId
5176
+ // to always be present. The Router used to only restore history state if
5177
+ // a navigationId was present.
5178
+ // The stored navigationId is used by the RouterScroller to retrieve the scroll
5179
+ // position for the page.
5180
+ const restoredState = (state === null || state === void 0 ? void 0 : state.navigationId) ? state : null;
5181
+ // Separate to NavigationStart.restoredState, we must also restore the state to
5182
+ // history.state and generate a new navigationId, since it will be overwritten
5183
+ if (state) {
5184
+ const stateCopy = Object.assign({}, state);
5185
+ delete stateCopy.navigationId;
5186
+ delete stateCopy.ɵrouterPageId;
5187
+ if (Object.keys(stateCopy).length !== 0) {
5188
+ extras.state = stateCopy;
5189
+ }
5190
+ }
5191
+ const urlTree = this.parseUrl(url);
5192
+ this.scheduleNavigation(urlTree, source, restoredState, extras);
5193
+ }
5421
5194
  /** The current URL. */
5422
5195
  get url() {
5423
5196
  return this.serializeUrl(this.currentUrlTree);
@@ -5564,7 +5337,7 @@ class Router {
5564
5337
  }
5565
5338
  const urlTree = isUrlTree(url) ? url : this.parseUrl(url);
5566
5339
  const mergedTree = this.urlHandlingStrategy.merge(urlTree, this.rawUrlTree);
5567
- return this.scheduleNavigation(mergedTree, 'imperative', null, extras);
5340
+ return this.scheduleNavigation(mergedTree, IMPERATIVE_NAVIGATION, null, extras);
5568
5341
  }
5569
5342
  /**
5570
5343
  * Navigate based on the provided array of commands and a starting point.
@@ -5663,10 +5436,6 @@ class Router {
5663
5436
  }
5664
5437
  let targetPageId;
5665
5438
  if (this.canceledNavigationResolution === 'computed') {
5666
- const isInitialPage = this.currentPageId === 0;
5667
- if (isInitialPage) {
5668
- restoredState = this.location.getState();
5669
- }
5670
5439
  // If the `ɵrouterPageId` exist in the state then `targetpageId` should have the value of
5671
5440
  // `ɵrouterPageId`. This is the case for something like a page refresh where we assign the
5672
5441
  // target id to the previously set value for that page.
@@ -5785,9 +5554,9 @@ class Router {
5785
5554
  return { navigationId };
5786
5555
  }
5787
5556
  }
5788
- Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5789
- Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: Router, providedIn: 'root' });
5790
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: Router, decorators: [{
5557
+ Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5558
+ Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: Router, providedIn: 'root' });
5559
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: Router, decorators: [{
5791
5560
  type: Injectable,
5792
5561
  args: [{ providedIn: 'root' }]
5793
5562
  }], ctorParameters: function () { return []; } });
@@ -6075,9 +5844,9 @@ class RouterLink {
6075
5844
  });
6076
5845
  }
6077
5846
  }
6078
- 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 });
6079
- 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 });
6080
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterLink, decorators: [{
5847
+ 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 });
5848
+ 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 });
5849
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterLink, decorators: [{
6081
5850
  type: Directive,
6082
5851
  args: [{
6083
5852
  selector: '[routerLink]',
@@ -6117,13 +5886,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3",
6117
5886
  ['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey']]
6118
5887
  }] } });
6119
5888
 
6120
- /**
6121
- * @license
6122
- * Copyright Google LLC All Rights Reserved.
6123
- *
6124
- * Use of this source code is governed by an MIT-style license that can be
6125
- * found in the LICENSE file at https://angular.io/license
6126
- */
6127
5889
  /**
6128
5890
  *
6129
5891
  * @description
@@ -6309,9 +6071,9 @@ class RouterLinkActive {
6309
6071
  return this.link && isActiveCheckFn(this.link) || this.links.some(isActiveCheckFn);
6310
6072
  }
6311
6073
  }
6312
- 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 });
6313
- 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 });
6314
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterLinkActive, decorators: [{
6074
+ 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 });
6075
+ 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 });
6076
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterLinkActive, decorators: [{
6315
6077
  type: Directive,
6316
6078
  args: [{
6317
6079
  selector: '[routerLinkActive]',
@@ -6341,13 +6103,6 @@ function isActiveMatchOptions(options) {
6341
6103
  return !!options.paths;
6342
6104
  }
6343
6105
 
6344
- /**
6345
- * @license
6346
- * Copyright Google LLC All Rights Reserved.
6347
- *
6348
- * Use of this source code is governed by an MIT-style license that can be
6349
- * found in the LICENSE file at https://angular.io/license
6350
- */
6351
6106
  /**
6352
6107
  * @description
6353
6108
  *
@@ -6373,9 +6128,9 @@ class PreloadAllModules {
6373
6128
  return fn().pipe(catchError(() => of(null)));
6374
6129
  }
6375
6130
  }
6376
- PreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6377
- PreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: PreloadAllModules, providedIn: 'root' });
6378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: PreloadAllModules, decorators: [{
6131
+ PreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6132
+ PreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: PreloadAllModules, providedIn: 'root' });
6133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: PreloadAllModules, decorators: [{
6379
6134
  type: Injectable,
6380
6135
  args: [{ providedIn: 'root' }]
6381
6136
  }] });
@@ -6393,9 +6148,9 @@ class NoPreloading {
6393
6148
  return of(null);
6394
6149
  }
6395
6150
  }
6396
- NoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6397
- NoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NoPreloading, providedIn: 'root' });
6398
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: NoPreloading, decorators: [{
6151
+ NoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6152
+ NoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NoPreloading, providedIn: 'root' });
6153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: NoPreloading, decorators: [{
6399
6154
  type: Injectable,
6400
6155
  args: [{ providedIn: 'root' }]
6401
6156
  }] });
@@ -6491,9 +6246,9 @@ class RouterPreloader {
6491
6246
  });
6492
6247
  }
6493
6248
  }
6494
- 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 });
6495
- RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterPreloader, providedIn: 'root' });
6496
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterPreloader, decorators: [{
6249
+ 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 });
6250
+ RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterPreloader, providedIn: 'root' });
6251
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterPreloader, decorators: [{
6497
6252
  type: Injectable,
6498
6253
  args: [{ providedIn: 'root' }]
6499
6254
  }], ctorParameters: function () { return [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }]; } });
@@ -6582,19 +6337,12 @@ class RouterScroller {
6582
6337
  (_b = this.scrollEventsSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
6583
6338
  }
6584
6339
  }
6585
- RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
6586
- RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterScroller });
6587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterScroller, decorators: [{
6340
+ RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
6341
+ RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterScroller });
6342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterScroller, decorators: [{
6588
6343
  type: Injectable
6589
6344
  }], ctorParameters: function () { return [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }]; } });
6590
6345
 
6591
- /**
6592
- * @license
6593
- * Copyright Google LLC All Rights Reserved.
6594
- *
6595
- * Use of this source code is governed by an MIT-style license that can be
6596
- * found in the LICENSE file at https://angular.io/license
6597
- */
6598
6346
  const NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || ngDevMode;
6599
6347
  /**
6600
6348
  * Sets up providers necessary to enable `Router` functionality for the application.
@@ -6830,7 +6578,7 @@ function withEnabledBlockingInitialNavigation() {
6830
6578
  // without a redirect.
6831
6579
  resolve(true);
6832
6580
  });
6833
- router.afterPreactivation = () => {
6581
+ injector.get(NavigationTransitions).afterPreactivation = () => {
6834
6582
  // Unblock APP_INITIALIZER once we get to `afterPreactivation`. At this point, we
6835
6583
  // assume activation will complete successfully (even though this is not
6836
6584
  // guaranteed).
@@ -7015,7 +6763,7 @@ function withRouterConfig(options) {
7015
6763
  * bootstrapApplication(AppComponent,
7016
6764
  * {
7017
6765
  * providers: [
7018
- * provideRouter(appRoutes, withHashLocation()
6766
+ * provideRouter(appRoutes, withHashLocation())
7019
6767
  * ]
7020
6768
  * }
7021
6769
  * );
@@ -7035,13 +6783,6 @@ function withHashLocation() {
7035
6783
  return routerFeature(5 /* RouterFeatureKind.RouterConfigurationFeature */, providers);
7036
6784
  }
7037
6785
 
7038
- /**
7039
- * @license
7040
- * Copyright Google LLC All Rights Reserved.
7041
- *
7042
- * Use of this source code is governed by an MIT-style license that can be
7043
- * found in the LICENSE file at https://angular.io/license
7044
- */
7045
6786
  const NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;
7046
6787
  /**
7047
6788
  * The directives defined in the `RouterModule`.
@@ -7155,10 +6896,10 @@ class RouterModule {
7155
6896
  };
7156
6897
  }
7157
6898
  }
7158
- 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 });
7159
- 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] });
7160
- RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterModule, imports: [ɵEmptyOutletComponent] });
7161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0-next.3", ngImport: i0, type: RouterModule, decorators: [{
6899
+ 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 });
6900
+ 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] });
6901
+ RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterModule, imports: [ɵEmptyOutletComponent] });
6902
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: RouterModule, decorators: [{
7162
6903
  type: NgModule,
7163
6904
  args: [{
7164
6905
  imports: ROUTER_DIRECTIVES,
@@ -7237,49 +6978,23 @@ function provideRouterInitializer() {
7237
6978
  }
7238
6979
 
7239
6980
  /**
7240
- * @license
7241
- * Copyright Google LLC All Rights Reserved.
7242
- *
7243
- * Use of this source code is governed by an MIT-style license that can be
7244
- * found in the LICENSE file at https://angular.io/license
6981
+ * @module
6982
+ * @description
6983
+ * Entry point for all public APIs of the router package.
7245
6984
  */
7246
6985
  /**
7247
6986
  * @publicApi
7248
6987
  */
7249
- const VERSION = new Version('15.1.0-next.3');
7250
-
7251
- /**
7252
- * @license
7253
- * Copyright Google LLC All Rights Reserved.
7254
- *
7255
- * Use of this source code is governed by an MIT-style license that can be
7256
- * found in the LICENSE file at https://angular.io/license
7257
- */
6988
+ const VERSION = new Version('15.1.0');
7258
6989
 
7259
6990
  /**
7260
- * @license
7261
- * Copyright Google LLC All Rights Reserved.
7262
- *
7263
- * Use of this source code is governed by an MIT-style license that can be
7264
- * found in the LICENSE file at https://angular.io/license
7265
- */
7266
-
7267
- /**
7268
- * @license
7269
- * Copyright Google LLC All Rights Reserved.
7270
- *
7271
- * Use of this source code is governed by an MIT-style license that can be
7272
- * found in the LICENSE file at https://angular.io/license
6991
+ * @module
6992
+ * @description
6993
+ * Entry point for all public APIs of this package.
7273
6994
  */
7274
6995
  // This file only reexports content of the `src` folder. Keep it that way.
7275
6996
 
7276
- /**
7277
- * @license
7278
- * Copyright Google LLC All Rights Reserved.
7279
- *
7280
- * Use of this source code is governed by an MIT-style license that can be
7281
- * found in the LICENSE file at https://angular.io/license
7282
- */
6997
+ // This file is not used to build this module. It is only used during editing
7283
6998
 
7284
6999
  /**
7285
7000
  * Generated bundle index. Do not edit.