@angular/router 19.0.0-next.9 → 19.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license Angular v19.0.0-next.9
2
+ * @license Angular v19.0.0-rc.1
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
7
  import * as i0 from '@angular/core';
8
- import { ɵisPromise, ɵRuntimeError, Injectable, createEnvironmentInjector, ɵisNgModule, isStandalone, InjectionToken, EventEmitter, input, inject, ViewContainerRef, ChangeDetectorRef, Directive, Input, Output, reflectComponentType, ɵisInjectable, runInInjectionContext, Component, Compiler, NgModuleFactory, NgZone, afterNextRender, EnvironmentInjector, ɵConsole, ɵPendingTasks, ɵɵsanitizeUrlOrResourceUrl, booleanAttribute, Attribute, HostBinding, HostListener, Optional, ContentChildren, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, Injector, ApplicationRef, InjectFlags, APP_INITIALIZER, SkipSelf, NgModule, Inject, Version } from '@angular/core';
8
+ import { ɵisPromise, ɵRuntimeError, Injectable, createEnvironmentInjector, ɵisNgModule, isStandalone, InjectionToken, EventEmitter, input, inject, ViewContainerRef, ChangeDetectorRef, Directive, Input, Output, reflectComponentType, ɵisInjectable, runInInjectionContext, Component, Compiler, NgModuleFactory, NgZone, afterNextRender, EnvironmentInjector, ɵConsole, ɵPendingTasks, ɵɵsanitizeUrlOrResourceUrl, booleanAttribute, Attribute, HostBinding, HostListener, Optional, ContentChildren, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, Injector, ApplicationRef, InjectFlags, APP_INITIALIZER, SkipSelf, NgModule, Inject, Version, ɵpublishExternalGlobalUtil } from '@angular/core';
9
9
  import { isObservable, from, of, BehaviorSubject, combineLatest, EmptyError, concat, defer, pipe, throwError, EMPTY, ConnectableObservable, Subject, Subscription } from 'rxjs';
10
10
  import * as i3 from '@angular/common';
11
11
  import { DOCUMENT, Location, ViewportScroller, LOCATION_INITIALIZED, LocationStrategy, HashLocationStrategy, PathLocationStrategy } from '@angular/common';
@@ -25,6 +25,7 @@ const PRIMARY_OUTLET = 'primary';
25
25
  */
26
26
  const RouteTitleKey = /* @__PURE__ */ Symbol('RouteTitle');
27
27
  class ParamsAsMap {
28
+ params;
28
29
  constructor(params) {
29
30
  this.params = params || {};
30
31
  }
@@ -282,6 +283,11 @@ function matrixParamsMatch(containerPaths, containeePaths, options) {
282
283
  * @publicApi
283
284
  */
284
285
  class UrlTree {
286
+ root;
287
+ queryParams;
288
+ fragment;
289
+ /** @internal */
290
+ _queryParamMap;
285
291
  constructor(
286
292
  /** The root segment group of the URL tree */
287
293
  root = new UrlSegmentGroup([], {}),
@@ -318,6 +324,10 @@ class UrlTree {
318
324
  * @publicApi
319
325
  */
320
326
  class UrlSegmentGroup {
327
+ segments;
328
+ children;
329
+ /** The parent node in the url tree */
330
+ parent = null;
321
331
  constructor(
322
332
  /** The URL segments of this group. See `UrlSegment` for more information */
323
333
  segments,
@@ -325,8 +335,6 @@ class UrlSegmentGroup {
325
335
  children) {
326
336
  this.segments = segments;
327
337
  this.children = children;
328
- /** The parent node in the url tree */
329
- this.parent = null;
330
338
  Object.values(children).forEach((v) => (v.parent = this));
331
339
  }
332
340
  /** Whether the segment has child segments */
@@ -369,6 +377,10 @@ class UrlSegmentGroup {
369
377
  * @publicApi
370
378
  */
371
379
  class UrlSegment {
380
+ path;
381
+ parameters;
382
+ /** @internal */
383
+ _parameterMap;
372
384
  constructor(
373
385
  /** The path part of a URL segment */
374
386
  path,
@@ -421,10 +433,10 @@ function mapChildrenIntoArray(segment, fn) {
421
433
  * @publicApi
422
434
  */
423
435
  class UrlSerializer {
424
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
425
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
436
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
437
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });
426
438
  }
427
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: UrlSerializer, decorators: [{
439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: UrlSerializer, decorators: [{
428
440
  type: Injectable,
429
441
  args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
430
442
  }] });
@@ -584,6 +596,8 @@ function matchUrlQueryParamValue(str) {
584
596
  return match ? match[0] : '';
585
597
  }
586
598
  class UrlParser {
599
+ url;
600
+ remaining;
587
601
  constructor(url) {
588
602
  this.url = url;
589
603
  this.remaining = url;
@@ -941,6 +955,9 @@ function replaceSegment(current, oldSegment, newSegment) {
941
955
  return new UrlSegmentGroup(current.segments, children);
942
956
  }
943
957
  class Navigation {
958
+ isAbsolute;
959
+ numberOfDoubleDots;
960
+ commands;
944
961
  constructor(isAbsolute, numberOfDoubleDots, commands) {
945
962
  this.isAbsolute = isAbsolute;
946
963
  this.numberOfDoubleDots = numberOfDoubleDots;
@@ -1006,6 +1023,9 @@ function computeNavigation(commands) {
1006
1023
  return new Navigation(isAbsolute, numberOfDoubleDots, res);
1007
1024
  }
1008
1025
  class Position {
1026
+ segmentGroup;
1027
+ processChildren;
1028
+ index;
1009
1029
  constructor(segmentGroup, processChildren, index) {
1010
1030
  this.segmentGroup = segmentGroup;
1011
1031
  this.processChildren = processChildren;
@@ -1260,6 +1280,8 @@ var EventType;
1260
1280
  * @publicApi
1261
1281
  */
1262
1282
  class RouterEvent {
1283
+ id;
1284
+ url;
1263
1285
  constructor(
1264
1286
  /** A unique ID that the router assigns to every router navigation. */
1265
1287
  id,
@@ -1275,6 +1297,34 @@ class RouterEvent {
1275
1297
  * @publicApi
1276
1298
  */
1277
1299
  class NavigationStart extends RouterEvent {
1300
+ type = EventType.NavigationStart;
1301
+ /**
1302
+ * Identifies the call or event that triggered the navigation.
1303
+ * An `imperative` trigger is a call to `router.navigateByUrl()` or `router.navigate()`.
1304
+ *
1305
+ * @see {@link NavigationEnd}
1306
+ * @see {@link NavigationCancel}
1307
+ * @see {@link NavigationError}
1308
+ */
1309
+ navigationTrigger;
1310
+ /**
1311
+ * The navigation state that was previously supplied to the `pushState` call,
1312
+ * when the navigation is triggered by a `popstate` event. Otherwise null.
1313
+ *
1314
+ * The state object is defined by `NavigationExtras`, and contains any
1315
+ * developer-defined state value, as well as a unique ID that
1316
+ * the router assigns to every router transition/navigation.
1317
+ *
1318
+ * From the perspective of the router, the router never "goes back".
1319
+ * When the user clicks on the back button in the browser,
1320
+ * a new navigation ID is created.
1321
+ *
1322
+ * Use the ID in this previous-state object to differentiate between a newly created
1323
+ * state and one returned to by a `popstate` event, so that you can restore some
1324
+ * remembered state, such as scroll position.
1325
+ *
1326
+ */
1327
+ restoredState;
1278
1328
  constructor(
1279
1329
  /** @docsNotRequired */
1280
1330
  id,
@@ -1285,7 +1335,6 @@ class NavigationStart extends RouterEvent {
1285
1335
  /** @docsNotRequired */
1286
1336
  restoredState = null) {
1287
1337
  super(id, url);
1288
- this.type = EventType.NavigationStart;
1289
1338
  this.navigationTrigger = navigationTrigger;
1290
1339
  this.restoredState = restoredState;
1291
1340
  }
@@ -1304,6 +1353,8 @@ class NavigationStart extends RouterEvent {
1304
1353
  * @publicApi
1305
1354
  */
1306
1355
  class NavigationEnd extends RouterEvent {
1356
+ urlAfterRedirects;
1357
+ type = EventType.NavigationEnd;
1307
1358
  constructor(
1308
1359
  /** @docsNotRequired */
1309
1360
  id,
@@ -1313,7 +1364,6 @@ class NavigationEnd extends RouterEvent {
1313
1364
  urlAfterRedirects) {
1314
1365
  super(id, url);
1315
1366
  this.urlAfterRedirects = urlAfterRedirects;
1316
- this.type = EventType.NavigationEnd;
1317
1367
  }
1318
1368
  /** @docsNotRequired */
1319
1369
  toString() {
@@ -1377,6 +1427,9 @@ var NavigationSkippedCode;
1377
1427
  * @publicApi
1378
1428
  */
1379
1429
  class NavigationCancel extends RouterEvent {
1430
+ reason;
1431
+ code;
1432
+ type = EventType.NavigationCancel;
1380
1433
  constructor(
1381
1434
  /** @docsNotRequired */
1382
1435
  id,
@@ -1396,7 +1449,6 @@ class NavigationCancel extends RouterEvent {
1396
1449
  super(id, url);
1397
1450
  this.reason = reason;
1398
1451
  this.code = code;
1399
- this.type = EventType.NavigationCancel;
1400
1452
  }
1401
1453
  /** @docsNotRequired */
1402
1454
  toString() {
@@ -1412,6 +1464,9 @@ class NavigationCancel extends RouterEvent {
1412
1464
  * @publicApi
1413
1465
  */
1414
1466
  class NavigationSkipped extends RouterEvent {
1467
+ reason;
1468
+ code;
1469
+ type = EventType.NavigationSkipped;
1415
1470
  constructor(
1416
1471
  /** @docsNotRequired */
1417
1472
  id,
@@ -1431,7 +1486,6 @@ class NavigationSkipped extends RouterEvent {
1431
1486
  super(id, url);
1432
1487
  this.reason = reason;
1433
1488
  this.code = code;
1434
- this.type = EventType.NavigationSkipped;
1435
1489
  }
1436
1490
  }
1437
1491
  /**
@@ -1444,6 +1498,9 @@ class NavigationSkipped extends RouterEvent {
1444
1498
  * @publicApi
1445
1499
  */
1446
1500
  class NavigationError extends RouterEvent {
1501
+ error;
1502
+ target;
1503
+ type = EventType.NavigationError;
1447
1504
  constructor(
1448
1505
  /** @docsNotRequired */
1449
1506
  id,
@@ -1461,7 +1518,6 @@ class NavigationError extends RouterEvent {
1461
1518
  super(id, url);
1462
1519
  this.error = error;
1463
1520
  this.target = target;
1464
- this.type = EventType.NavigationError;
1465
1521
  }
1466
1522
  /** @docsNotRequired */
1467
1523
  toString() {
@@ -1474,6 +1530,9 @@ class NavigationError extends RouterEvent {
1474
1530
  * @publicApi
1475
1531
  */
1476
1532
  class RoutesRecognized extends RouterEvent {
1533
+ urlAfterRedirects;
1534
+ state;
1535
+ type = EventType.RoutesRecognized;
1477
1536
  constructor(
1478
1537
  /** @docsNotRequired */
1479
1538
  id,
@@ -1486,7 +1545,6 @@ class RoutesRecognized extends RouterEvent {
1486
1545
  super(id, url);
1487
1546
  this.urlAfterRedirects = urlAfterRedirects;
1488
1547
  this.state = state;
1489
- this.type = EventType.RoutesRecognized;
1490
1548
  }
1491
1549
  /** @docsNotRequired */
1492
1550
  toString() {
@@ -1501,6 +1559,9 @@ class RoutesRecognized extends RouterEvent {
1501
1559
  * @publicApi
1502
1560
  */
1503
1561
  class GuardsCheckStart extends RouterEvent {
1562
+ urlAfterRedirects;
1563
+ state;
1564
+ type = EventType.GuardsCheckStart;
1504
1565
  constructor(
1505
1566
  /** @docsNotRequired */
1506
1567
  id,
@@ -1513,7 +1574,6 @@ class GuardsCheckStart extends RouterEvent {
1513
1574
  super(id, url);
1514
1575
  this.urlAfterRedirects = urlAfterRedirects;
1515
1576
  this.state = state;
1516
- this.type = EventType.GuardsCheckStart;
1517
1577
  }
1518
1578
  toString() {
1519
1579
  return `GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;
@@ -1527,6 +1587,10 @@ class GuardsCheckStart extends RouterEvent {
1527
1587
  * @publicApi
1528
1588
  */
1529
1589
  class GuardsCheckEnd extends RouterEvent {
1590
+ urlAfterRedirects;
1591
+ state;
1592
+ shouldActivate;
1593
+ type = EventType.GuardsCheckEnd;
1530
1594
  constructor(
1531
1595
  /** @docsNotRequired */
1532
1596
  id,
@@ -1542,7 +1606,6 @@ class GuardsCheckEnd extends RouterEvent {
1542
1606
  this.urlAfterRedirects = urlAfterRedirects;
1543
1607
  this.state = state;
1544
1608
  this.shouldActivate = shouldActivate;
1545
- this.type = EventType.GuardsCheckEnd;
1546
1609
  }
1547
1610
  toString() {
1548
1611
  return `GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`;
@@ -1559,6 +1622,9 @@ class GuardsCheckEnd extends RouterEvent {
1559
1622
  * @publicApi
1560
1623
  */
1561
1624
  class ResolveStart extends RouterEvent {
1625
+ urlAfterRedirects;
1626
+ state;
1627
+ type = EventType.ResolveStart;
1562
1628
  constructor(
1563
1629
  /** @docsNotRequired */
1564
1630
  id,
@@ -1571,7 +1637,6 @@ class ResolveStart extends RouterEvent {
1571
1637
  super(id, url);
1572
1638
  this.urlAfterRedirects = urlAfterRedirects;
1573
1639
  this.state = state;
1574
- this.type = EventType.ResolveStart;
1575
1640
  }
1576
1641
  toString() {
1577
1642
  return `ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;
@@ -1584,6 +1649,9 @@ class ResolveStart extends RouterEvent {
1584
1649
  * @publicApi
1585
1650
  */
1586
1651
  class ResolveEnd extends RouterEvent {
1652
+ urlAfterRedirects;
1653
+ state;
1654
+ type = EventType.ResolveEnd;
1587
1655
  constructor(
1588
1656
  /** @docsNotRequired */
1589
1657
  id,
@@ -1596,7 +1664,6 @@ class ResolveEnd extends RouterEvent {
1596
1664
  super(id, url);
1597
1665
  this.urlAfterRedirects = urlAfterRedirects;
1598
1666
  this.state = state;
1599
- this.type = EventType.ResolveEnd;
1600
1667
  }
1601
1668
  toString() {
1602
1669
  return `ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;
@@ -1610,11 +1677,12 @@ class ResolveEnd extends RouterEvent {
1610
1677
  * @publicApi
1611
1678
  */
1612
1679
  class RouteConfigLoadStart {
1680
+ route;
1681
+ type = EventType.RouteConfigLoadStart;
1613
1682
  constructor(
1614
1683
  /** @docsNotRequired */
1615
1684
  route) {
1616
1685
  this.route = route;
1617
- this.type = EventType.RouteConfigLoadStart;
1618
1686
  }
1619
1687
  toString() {
1620
1688
  return `RouteConfigLoadStart(path: ${this.route.path})`;
@@ -1628,11 +1696,12 @@ class RouteConfigLoadStart {
1628
1696
  * @publicApi
1629
1697
  */
1630
1698
  class RouteConfigLoadEnd {
1699
+ route;
1700
+ type = EventType.RouteConfigLoadEnd;
1631
1701
  constructor(
1632
1702
  /** @docsNotRequired */
1633
1703
  route) {
1634
1704
  this.route = route;
1635
- this.type = EventType.RouteConfigLoadEnd;
1636
1705
  }
1637
1706
  toString() {
1638
1707
  return `RouteConfigLoadEnd(path: ${this.route.path})`;
@@ -1647,11 +1716,12 @@ class RouteConfigLoadEnd {
1647
1716
  * @publicApi
1648
1717
  */
1649
1718
  class ChildActivationStart {
1719
+ snapshot;
1720
+ type = EventType.ChildActivationStart;
1650
1721
  constructor(
1651
1722
  /** @docsNotRequired */
1652
1723
  snapshot) {
1653
1724
  this.snapshot = snapshot;
1654
- this.type = EventType.ChildActivationStart;
1655
1725
  }
1656
1726
  toString() {
1657
1727
  const path = (this.snapshot.routeConfig && this.snapshot.routeConfig.path) || '';
@@ -1666,11 +1736,12 @@ class ChildActivationStart {
1666
1736
  * @publicApi
1667
1737
  */
1668
1738
  class ChildActivationEnd {
1739
+ snapshot;
1740
+ type = EventType.ChildActivationEnd;
1669
1741
  constructor(
1670
1742
  /** @docsNotRequired */
1671
1743
  snapshot) {
1672
1744
  this.snapshot = snapshot;
1673
- this.type = EventType.ChildActivationEnd;
1674
1745
  }
1675
1746
  toString() {
1676
1747
  const path = (this.snapshot.routeConfig && this.snapshot.routeConfig.path) || '';
@@ -1686,11 +1757,12 @@ class ChildActivationEnd {
1686
1757
  * @publicApi
1687
1758
  */
1688
1759
  class ActivationStart {
1760
+ snapshot;
1761
+ type = EventType.ActivationStart;
1689
1762
  constructor(
1690
1763
  /** @docsNotRequired */
1691
1764
  snapshot) {
1692
1765
  this.snapshot = snapshot;
1693
- this.type = EventType.ActivationStart;
1694
1766
  }
1695
1767
  toString() {
1696
1768
  const path = (this.snapshot.routeConfig && this.snapshot.routeConfig.path) || '';
@@ -1706,11 +1778,12 @@ class ActivationStart {
1706
1778
  * @publicApi
1707
1779
  */
1708
1780
  class ActivationEnd {
1781
+ snapshot;
1782
+ type = EventType.ActivationEnd;
1709
1783
  constructor(
1710
1784
  /** @docsNotRequired */
1711
1785
  snapshot) {
1712
1786
  this.snapshot = snapshot;
1713
- this.type = EventType.ActivationEnd;
1714
1787
  }
1715
1788
  toString() {
1716
1789
  const path = (this.snapshot.routeConfig && this.snapshot.routeConfig.path) || '';
@@ -1723,6 +1796,10 @@ class ActivationEnd {
1723
1796
  * @publicApi
1724
1797
  */
1725
1798
  class Scroll {
1799
+ routerEvent;
1800
+ position;
1801
+ anchor;
1802
+ type = EventType.Scroll;
1726
1803
  constructor(
1727
1804
  /** @docsNotRequired */
1728
1805
  routerEvent,
@@ -1733,7 +1810,6 @@ class Scroll {
1733
1810
  this.routerEvent = routerEvent;
1734
1811
  this.position = position;
1735
1812
  this.anchor = anchor;
1736
- this.type = EventType.Scroll;
1737
1813
  }
1738
1814
  toString() {
1739
1815
  const pos = this.position ? `${this.position[0]}, ${this.position[1]}` : null;
@@ -1743,6 +1819,8 @@ class Scroll {
1743
1819
  class BeforeActivateRoutes {
1744
1820
  }
1745
1821
  class RedirectRequest {
1822
+ url;
1823
+ navigationBehaviorOptions;
1746
1824
  constructor(url, navigationBehaviorOptions) {
1747
1825
  this.url = url;
1748
1826
  this.navigationBehaviorOptions = navigationBehaviorOptions;
@@ -1804,7 +1882,7 @@ function getOrCreateRouteInjectorIfNeeded(route, currentInjector) {
1804
1882
  }
1805
1883
  return route._injector ?? currentInjector;
1806
1884
  }
1807
- function getLoadedRoutes(route) {
1885
+ function getLoadedRoutes$1(route) {
1808
1886
  return route._loadedRoutes;
1809
1887
  }
1810
1888
  function getLoadedInjector(route) {
@@ -1978,17 +2056,17 @@ function getClosestRouteInjector(snapshot) {
1978
2056
  * @publicApi
1979
2057
  */
1980
2058
  class OutletContext {
2059
+ rootInjector;
2060
+ outlet = null;
2061
+ route = null;
2062
+ children;
2063
+ attachRef = null;
1981
2064
  get injector() {
1982
2065
  return getClosestRouteInjector(this.route?.snapshot) ?? this.rootInjector;
1983
2066
  }
1984
- // TODO(atscott): Only here to avoid a "breaking" change in a patch/minor. Remove in v19.
1985
- set injector(_) { }
1986
2067
  constructor(rootInjector) {
1987
2068
  this.rootInjector = rootInjector;
1988
- this.outlet = null;
1989
- this.route = null;
1990
2069
  this.children = new ChildrenOutletContexts(this.rootInjector);
1991
- this.attachRef = null;
1992
2070
  }
1993
2071
  }
1994
2072
  /**
@@ -1997,11 +2075,12 @@ class OutletContext {
1997
2075
  * @publicApi
1998
2076
  */
1999
2077
  class ChildrenOutletContexts {
2078
+ rootInjector;
2079
+ // contexts for child outlets, by name.
2080
+ contexts = new Map();
2000
2081
  /** @nodoc */
2001
2082
  constructor(rootInjector) {
2002
2083
  this.rootInjector = rootInjector;
2003
- // contexts for child outlets, by name.
2004
- this.contexts = new Map();
2005
2084
  }
2006
2085
  /** Called when a `RouterOutlet` directive is instantiated */
2007
2086
  onChildOutletCreated(childName, outlet) {
@@ -2044,15 +2123,17 @@ class ChildrenOutletContexts {
2044
2123
  getContext(childName) {
2045
2124
  return this.contexts.get(childName) || null;
2046
2125
  }
2047
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
2048
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
2126
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
2127
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
2049
2128
  }
2050
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
2129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
2051
2130
  type: Injectable,
2052
2131
  args: [{ providedIn: 'root' }]
2053
2132
  }], ctorParameters: () => [{ type: i0.EnvironmentInjector }] });
2054
2133
 
2055
2134
  class Tree {
2135
+ /** @internal */
2136
+ _root;
2056
2137
  constructor(root) {
2057
2138
  this._root = root;
2058
2139
  }
@@ -2122,6 +2203,8 @@ function findPath(value, node) {
2122
2203
  return [];
2123
2204
  }
2124
2205
  class TreeNode {
2206
+ value;
2207
+ children;
2125
2208
  constructor(value, children) {
2126
2209
  this.value = value;
2127
2210
  this.children = children;
@@ -2171,6 +2254,7 @@ function nodeChildrenAsMap(node) {
2171
2254
  * @publicApi
2172
2255
  */
2173
2256
  class RouterState extends Tree {
2257
+ snapshot;
2174
2258
  /** @internal */
2175
2259
  constructor(root,
2176
2260
  /** The current snapshot of the router state */
@@ -2222,6 +2306,35 @@ function createEmptyStateSnapshot(rootComponent) {
2222
2306
  * @publicApi
2223
2307
  */
2224
2308
  class ActivatedRoute {
2309
+ urlSubject;
2310
+ paramsSubject;
2311
+ queryParamsSubject;
2312
+ fragmentSubject;
2313
+ dataSubject;
2314
+ outlet;
2315
+ component;
2316
+ /** The current snapshot of this route */
2317
+ snapshot;
2318
+ /** @internal */
2319
+ _futureSnapshot;
2320
+ /** @internal */
2321
+ _routerState;
2322
+ /** @internal */
2323
+ _paramMap;
2324
+ /** @internal */
2325
+ _queryParamMap;
2326
+ /** An Observable of the resolved route title */
2327
+ title;
2328
+ /** An observable of the URL segments matched by this route. */
2329
+ url;
2330
+ /** An observable of the matrix parameters scoped to this route. */
2331
+ params;
2332
+ /** An observable of the query parameters shared by all the routes. */
2333
+ queryParams;
2334
+ /** An observable of the URL fragment shared by all the routes. */
2335
+ fragment;
2336
+ /** An observable of the static and resolved data of this route. */
2337
+ data;
2225
2338
  /** @internal */
2226
2339
  constructor(
2227
2340
  /** @internal */
@@ -2370,6 +2483,25 @@ function getInherited(route, parent, paramsInheritanceStrategy = 'emptyOnly') {
2370
2483
  * @publicApi
2371
2484
  */
2372
2485
  class ActivatedRouteSnapshot {
2486
+ url;
2487
+ params;
2488
+ queryParams;
2489
+ fragment;
2490
+ data;
2491
+ outlet;
2492
+ component;
2493
+ /** The configuration used to match this route **/
2494
+ routeConfig;
2495
+ /** @internal */
2496
+ _resolve;
2497
+ /** @internal */
2498
+ _resolvedData;
2499
+ /** @internal */
2500
+ _routerState;
2501
+ /** @internal */
2502
+ _paramMap;
2503
+ /** @internal */
2504
+ _queryParamMap;
2373
2505
  /** The resolved route title */
2374
2506
  get title() {
2375
2507
  // Note: This _must_ be a getter because the data is mutated in the resolvers. Title will not be
@@ -2482,6 +2614,7 @@ class ActivatedRouteSnapshot {
2482
2614
  * @publicApi
2483
2615
  */
2484
2616
  class RouterStateSnapshot extends Tree {
2617
+ url;
2485
2618
  /** @internal */
2486
2619
  constructor(
2487
2620
  /** The url from which this snapshot was created */
@@ -2616,43 +2749,41 @@ const ROUTER_OUTLET_DATA = new InjectionToken(ngDevMode ? 'RouterOutlet data' :
2616
2749
  * @publicApi
2617
2750
  */
2618
2751
  class RouterOutlet {
2619
- constructor() {
2620
- this.activated = null;
2621
- this._activatedRoute = null;
2622
- /**
2623
- * The name of the outlet
2624
- *
2625
- */
2626
- this.name = PRIMARY_OUTLET;
2627
- this.activateEvents = new EventEmitter();
2628
- this.deactivateEvents = new EventEmitter();
2629
- /**
2630
- * Emits an attached component instance when the `RouteReuseStrategy` instructs to re-attach a
2631
- * previously detached subtree.
2632
- **/
2633
- this.attachEvents = new EventEmitter();
2634
- /**
2635
- * Emits a detached component instance when the `RouteReuseStrategy` instructs to detach the
2636
- * subtree.
2637
- */
2638
- this.detachEvents = new EventEmitter();
2639
- /**
2640
- * Data that will be provided to the child injector through the `ROUTER_OUTLET_DATA` token.
2641
- *
2642
- * When unset, the value of the token is `undefined` by default.
2643
- */
2644
- this.routerOutletData = input(undefined);
2645
- this.parentContexts = inject(ChildrenOutletContexts);
2646
- this.location = inject(ViewContainerRef);
2647
- this.changeDetector = inject(ChangeDetectorRef);
2648
- this.inputBinder = inject(INPUT_BINDER, { optional: true });
2649
- /** @nodoc */
2650
- this.supportsBindingToComponentInputs = true;
2651
- }
2752
+ activated = null;
2652
2753
  /** @internal */
2653
2754
  get activatedComponentRef() {
2654
2755
  return this.activated;
2655
2756
  }
2757
+ _activatedRoute = null;
2758
+ /**
2759
+ * The name of the outlet
2760
+ *
2761
+ */
2762
+ name = PRIMARY_OUTLET;
2763
+ activateEvents = new EventEmitter();
2764
+ deactivateEvents = new EventEmitter();
2765
+ /**
2766
+ * Emits an attached component instance when the `RouteReuseStrategy` instructs to re-attach a
2767
+ * previously detached subtree.
2768
+ **/
2769
+ attachEvents = new EventEmitter();
2770
+ /**
2771
+ * Emits a detached component instance when the `RouteReuseStrategy` instructs to detach the
2772
+ * subtree.
2773
+ */
2774
+ detachEvents = new EventEmitter();
2775
+ /**
2776
+ * Data that will be provided to the child injector through the `ROUTER_OUTLET_DATA` token.
2777
+ *
2778
+ * When unset, the value of the token is `undefined` by default.
2779
+ */
2780
+ routerOutletData = input(undefined);
2781
+ parentContexts = inject(ChildrenOutletContexts);
2782
+ location = inject(ViewContainerRef);
2783
+ changeDetector = inject(ChangeDetectorRef);
2784
+ inputBinder = inject(INPUT_BINDER, { optional: true });
2785
+ /** @nodoc */
2786
+ supportsBindingToComponentInputs = true;
2656
2787
  /** @nodoc */
2657
2788
  ngOnChanges(changes) {
2658
2789
  if (changes['name']) {
@@ -2782,10 +2913,10 @@ class RouterOutlet {
2782
2913
  this.inputBinder?.bindActivatedRouteToOutletComponent(this);
2783
2914
  this.activateEvents.emit(this.activated.instance);
2784
2915
  }
2785
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2786
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0-next.9", type: RouterOutlet, isStandalone: true, selector: "router-outlet", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, routerOutletData: { classPropertyName: "routerOutletData", publicName: "routerOutletData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activateEvents: "activate", deactivateEvents: "deactivate", attachEvents: "attach", detachEvents: "detach" }, exportAs: ["outlet"], usesOnChanges: true, ngImport: i0 }); }
2916
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2917
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.0.0-rc.1", type: RouterOutlet, isStandalone: true, selector: "router-outlet", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, routerOutletData: { classPropertyName: "routerOutletData", publicName: "routerOutletData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activateEvents: "activate", deactivateEvents: "deactivate", attachEvents: "attach", detachEvents: "detach" }, exportAs: ["outlet"], usesOnChanges: true, ngImport: i0 });
2787
2918
  }
2788
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterOutlet, decorators: [{
2919
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterOutlet, decorators: [{
2789
2920
  type: Directive,
2790
2921
  args: [{
2791
2922
  selector: 'router-outlet',
@@ -2808,6 +2939,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9",
2808
2939
  args: ['detach']
2809
2940
  }] } });
2810
2941
  class OutletInjector {
2942
+ route;
2943
+ childContexts;
2944
+ parent;
2945
+ outletData;
2811
2946
  /**
2812
2947
  * This injector has a special handing for the `ActivatedRoute` and
2813
2948
  * `ChildrenOutletContexts` tokens: it returns corresponding values for those
@@ -2861,9 +2996,7 @@ const INPUT_BINDER = new InjectionToken('');
2861
2996
  * the subscriptions are cleaned up.
2862
2997
  */
2863
2998
  class RoutedComponentInputBinder {
2864
- constructor() {
2865
- this.outletDataSubscriptions = new Map();
2866
- }
2999
+ outletDataSubscriptions = new Map();
2867
3000
  bindActivatedRouteToOutletComponent(outlet) {
2868
3001
  this.unsubscribeFromRouteData(outlet);
2869
3002
  this.subscribeToRouteData(outlet);
@@ -2912,10 +3045,10 @@ class RoutedComponentInputBinder {
2912
3045
  });
2913
3046
  this.outletDataSubscriptions.set(outlet, dataSubscription);
2914
3047
  }
2915
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2916
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RoutedComponentInputBinder }); }
3048
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3049
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RoutedComponentInputBinder });
2917
3050
  }
2918
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
3051
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
2919
3052
  type: Injectable
2920
3053
  }] });
2921
3054
 
@@ -2993,6 +3126,8 @@ function createActivatedRoute(c) {
2993
3126
  * @publicApi
2994
3127
  */
2995
3128
  class RedirectCommand {
3129
+ redirectTo;
3130
+ navigationBehaviorOptions;
2996
3131
  constructor(redirectTo, navigationBehaviorOptions) {
2997
3132
  this.redirectTo = redirectTo;
2998
3133
  this.navigationBehaviorOptions = navigationBehaviorOptions;
@@ -3029,6 +3164,11 @@ const activateRoutes = (rootContexts, routeReuseStrategy, forwardEvent, inputBin
3029
3164
  return t;
3030
3165
  });
3031
3166
  class ActivateRoutes {
3167
+ routeReuseStrategy;
3168
+ futureState;
3169
+ currState;
3170
+ forwardEvent;
3171
+ inputBindingEnabled;
3032
3172
  constructor(routeReuseStrategy, futureState, currState, forwardEvent, inputBindingEnabled) {
3033
3173
  this.routeReuseStrategy = routeReuseStrategy;
3034
3174
  this.futureState = futureState;
@@ -3203,12 +3343,16 @@ class ActivateRoutes {
3203
3343
  }
3204
3344
 
3205
3345
  class CanActivate {
3346
+ path;
3347
+ route;
3206
3348
  constructor(path) {
3207
3349
  this.path = path;
3208
3350
  this.route = this.path[this.path.length - 1];
3209
3351
  }
3210
3352
  }
3211
3353
  class CanDeactivate {
3354
+ component;
3355
+ route;
3212
3356
  constructor(component, route) {
3213
3357
  this.component = component;
3214
3358
  this.route = route;
@@ -3552,11 +3696,13 @@ function runCanMatchGuards(injector, route, segments, urlSerializer) {
3552
3696
  }
3553
3697
 
3554
3698
  class NoMatch {
3699
+ segmentGroup;
3555
3700
  constructor(segmentGroup) {
3556
3701
  this.segmentGroup = segmentGroup || null;
3557
3702
  }
3558
3703
  }
3559
3704
  class AbsoluteRedirect extends Error {
3705
+ urlTree;
3560
3706
  constructor(urlTree) {
3561
3707
  super();
3562
3708
  this.urlTree = urlTree;
@@ -3577,6 +3723,8 @@ function canLoadFails(route) {
3577
3723
  `Cannot load children because the guard of the route "path: '${route.path}'" returned false`, NavigationCancellationCode.GuardRejected));
3578
3724
  }
3579
3725
  class ApplyRedirects {
3726
+ urlSerializer;
3727
+ urlTree;
3580
3728
  constructor(urlSerializer, urlTree) {
3581
3729
  this.urlSerializer = urlSerializer;
3582
3730
  this.urlTree = urlTree;
@@ -3787,6 +3935,16 @@ function recognize$1(injector, configLoader, rootComponentType, config, urlTree,
3787
3935
  }
3788
3936
  const MAX_ALLOWED_REDIRECTS = 31;
3789
3937
  class Recognizer {
3938
+ injector;
3939
+ configLoader;
3940
+ rootComponentType;
3941
+ config;
3942
+ urlTree;
3943
+ paramsInheritanceStrategy;
3944
+ urlSerializer;
3945
+ applyRedirects;
3946
+ absoluteRedirectCount = 0;
3947
+ allowRedirects = true;
3790
3948
  constructor(injector, configLoader, rootComponentType, config, urlTree, paramsInheritanceStrategy, urlSerializer) {
3791
3949
  this.injector = injector;
3792
3950
  this.configLoader = configLoader;
@@ -3796,8 +3954,6 @@ class Recognizer {
3796
3954
  this.paramsInheritanceStrategy = paramsInheritanceStrategy;
3797
3955
  this.urlSerializer = urlSerializer;
3798
3956
  this.applyRedirects = new ApplyRedirects(this.urlSerializer, this.urlTree);
3799
- this.absoluteRedirectCount = 0;
3800
- this.allowRedirects = true;
3801
3957
  }
3802
3958
  noMatchError(e) {
3803
3959
  return new ɵRuntimeError(4002 /* RuntimeErrorCode.NO_MATCH */, typeof ngDevMode === 'undefined' || ngDevMode
@@ -4228,10 +4384,10 @@ class TitleStrategy {
4228
4384
  getResolvedTitleForRoute(snapshot) {
4229
4385
  return snapshot.data[RouteTitleKey];
4230
4386
  }
4231
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4232
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
4387
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4388
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
4233
4389
  }
4234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: TitleStrategy, decorators: [{
4390
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: TitleStrategy, decorators: [{
4235
4391
  type: Injectable,
4236
4392
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
4237
4393
  }] });
@@ -4239,6 +4395,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9",
4239
4395
  * The default `TitleStrategy` used by the router that updates the title using the `Title` service.
4240
4396
  */
4241
4397
  class DefaultTitleStrategy extends TitleStrategy {
4398
+ title;
4242
4399
  constructor(title) {
4243
4400
  super();
4244
4401
  this.title = title;
@@ -4254,10 +4411,10 @@ class DefaultTitleStrategy extends TitleStrategy {
4254
4411
  this.title.setTitle(title);
4255
4412
  }
4256
4413
  }
4257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
4258
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
4414
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
4415
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
4259
4416
  }
4260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4417
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4261
4418
  type: Injectable,
4262
4419
  args: [{ providedIn: 'root' }]
4263
4420
  }], ctorParameters: () => [{ type: i1.Title }] });
@@ -4282,10 +4439,10 @@ const ROUTER_CONFIGURATION = new InjectionToken(typeof ngDevMode === 'undefined'
4282
4439
  * to this `EmptyOutletComponent`.
4283
4440
  */
4284
4441
  class ɵEmptyOutletComponent {
4285
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4286
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0-next.9", 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", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
4442
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4443
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0-rc.1", 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", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
4287
4444
  }
4288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
4445
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
4289
4446
  type: Component,
4290
4447
  args: [{
4291
4448
  template: `<router-outlet></router-outlet>`,
@@ -4321,11 +4478,11 @@ function standardizeConfig(r) {
4321
4478
  */
4322
4479
  const ROUTES = new InjectionToken(ngDevMode ? 'ROUTES' : '');
4323
4480
  class RouterConfigLoader {
4324
- constructor() {
4325
- this.componentLoaders = new WeakMap();
4326
- this.childrenLoaders = new WeakMap();
4327
- this.compiler = inject(Compiler);
4328
- }
4481
+ componentLoaders = new WeakMap();
4482
+ childrenLoaders = new WeakMap();
4483
+ onLoadStartListener;
4484
+ onLoadEndListener;
4485
+ compiler = inject(Compiler);
4329
4486
  loadComponent(route) {
4330
4487
  if (this.componentLoaders.get(route)) {
4331
4488
  return this.componentLoaders.get(route);
@@ -4370,10 +4527,10 @@ class RouterConfigLoader {
4370
4527
  this.childrenLoaders.set(route, loader);
4371
4528
  return loader;
4372
4529
  }
4373
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4374
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
4530
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4531
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
4375
4532
  }
4376
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterConfigLoader, decorators: [{
4533
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterConfigLoader, decorators: [{
4377
4534
  type: Injectable,
4378
4535
  args: [{ providedIn: 'root' }]
4379
4536
  }] });
@@ -4440,10 +4597,10 @@ function maybeUnwrapDefaultExport(input) {
4440
4597
  * @publicApi
4441
4598
  */
4442
4599
  class UrlHandlingStrategy {
4443
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4444
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
4600
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4601
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
4445
4602
  }
4446
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4603
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4447
4604
  type: Injectable,
4448
4605
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
4449
4606
  }] });
@@ -4460,10 +4617,10 @@ class DefaultUrlHandlingStrategy {
4460
4617
  merge(newUrlPart, wholeUrl) {
4461
4618
  return newUrlPart;
4462
4619
  }
4463
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4464
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
4620
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4621
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
4465
4622
  }
4466
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4623
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4467
4624
  type: Injectable,
4468
4625
  args: [{ providedIn: 'root' }]
4469
4626
  }] });
@@ -4522,45 +4679,46 @@ function createRenderPromise(injector) {
4522
4679
 
4523
4680
  const NAVIGATION_ERROR_HANDLER = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'navigation error handler' : '');
4524
4681
  class NavigationTransitions {
4682
+ currentNavigation = null;
4683
+ currentTransition = null;
4684
+ lastSuccessfulNavigation = null;
4685
+ /**
4686
+ * These events are used to communicate back to the Router about the state of the transition. The
4687
+ * Router wants to respond to these events in various ways. Because the `NavigationTransition`
4688
+ * class is not public, this event subject is not publicly exposed.
4689
+ */
4690
+ events = new Subject();
4691
+ /**
4692
+ * Used to abort the current transition with an error.
4693
+ */
4694
+ transitionAbortSubject = new Subject();
4695
+ configLoader = inject(RouterConfigLoader);
4696
+ environmentInjector = inject(EnvironmentInjector);
4697
+ urlSerializer = inject(UrlSerializer);
4698
+ rootContexts = inject(ChildrenOutletContexts);
4699
+ location = inject(Location);
4700
+ inputBindingEnabled = inject(INPUT_BINDER, { optional: true }) !== null;
4701
+ titleStrategy = inject(TitleStrategy);
4702
+ options = inject(ROUTER_CONFIGURATION, { optional: true }) || {};
4703
+ paramsInheritanceStrategy = this.options.paramsInheritanceStrategy || 'emptyOnly';
4704
+ urlHandlingStrategy = inject(UrlHandlingStrategy);
4705
+ createViewTransition = inject(CREATE_VIEW_TRANSITION, { optional: true });
4706
+ navigationErrorHandler = inject(NAVIGATION_ERROR_HANDLER, { optional: true });
4707
+ navigationId = 0;
4525
4708
  get hasRequestedNavigation() {
4526
4709
  return this.navigationId !== 0;
4527
4710
  }
4711
+ transitions;
4712
+ /**
4713
+ * Hook that enables you to pause navigation after the preactivation phase.
4714
+ * Used by `RouterModule`.
4715
+ *
4716
+ * @internal
4717
+ */
4718
+ afterPreactivation = () => of(void 0);
4719
+ /** @internal */
4720
+ rootComponentType = null;
4528
4721
  constructor() {
4529
- this.currentNavigation = null;
4530
- this.currentTransition = null;
4531
- this.lastSuccessfulNavigation = null;
4532
- /**
4533
- * These events are used to communicate back to the Router about the state of the transition. The
4534
- * Router wants to respond to these events in various ways. Because the `NavigationTransition`
4535
- * class is not public, this event subject is not publicly exposed.
4536
- */
4537
- this.events = new Subject();
4538
- /**
4539
- * Used to abort the current transition with an error.
4540
- */
4541
- this.transitionAbortSubject = new Subject();
4542
- this.configLoader = inject(RouterConfigLoader);
4543
- this.environmentInjector = inject(EnvironmentInjector);
4544
- this.urlSerializer = inject(UrlSerializer);
4545
- this.rootContexts = inject(ChildrenOutletContexts);
4546
- this.location = inject(Location);
4547
- this.inputBindingEnabled = inject(INPUT_BINDER, { optional: true }) !== null;
4548
- this.titleStrategy = inject(TitleStrategy);
4549
- this.options = inject(ROUTER_CONFIGURATION, { optional: true }) || {};
4550
- this.paramsInheritanceStrategy = this.options.paramsInheritanceStrategy || 'emptyOnly';
4551
- this.urlHandlingStrategy = inject(UrlHandlingStrategy);
4552
- this.createViewTransition = inject(CREATE_VIEW_TRANSITION, { optional: true });
4553
- this.navigationErrorHandler = inject(NAVIGATION_ERROR_HANDLER, { optional: true });
4554
- this.navigationId = 0;
4555
- /**
4556
- * Hook that enables you to pause navigation after the preactivation phase.
4557
- * Used by `RouterModule`.
4558
- *
4559
- * @internal
4560
- */
4561
- this.afterPreactivation = () => of(void 0);
4562
- /** @internal */
4563
- this.rootComponentType = null;
4564
4722
  const onLoadStart = (r) => this.events.next(new RouteConfigLoadStart(r));
4565
4723
  const onLoadEnd = (r) => this.events.next(new RouteConfigLoadEnd(r));
4566
4724
  this.configLoader.onLoadEndListener = onLoadEnd;
@@ -4915,10 +5073,10 @@ class NavigationTransitions {
4915
5073
  return (currentBrowserUrl.toString() !== targetBrowserUrl?.toString() &&
4916
5074
  !this.currentNavigation?.extras.skipLocationChange);
4917
5075
  }
4918
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4919
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
5076
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5077
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
4920
5078
  }
4921
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: NavigationTransitions, decorators: [{
5079
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: NavigationTransitions, decorators: [{
4922
5080
  type: Injectable,
4923
5081
  args: [{ providedIn: 'root' }]
4924
5082
  }], ctorParameters: () => [] });
@@ -4934,10 +5092,10 @@ function isBrowserTriggeredNavigation(source) {
4934
5092
  * @publicApi
4935
5093
  */
4936
5094
  class RouteReuseStrategy {
4937
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4938
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
5095
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5096
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
4939
5097
  }
4940
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouteReuseStrategy, decorators: [{
5098
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4941
5099
  type: Injectable,
4942
5100
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
4943
5101
  }] });
@@ -4988,52 +5146,47 @@ class BaseRouteReuseStrategy {
4988
5146
  }
4989
5147
  }
4990
5148
  class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
4991
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4992
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
5149
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5150
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
4993
5151
  }
4994
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
5152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4995
5153
  type: Injectable,
4996
5154
  args: [{ providedIn: 'root' }]
4997
5155
  }] });
4998
5156
 
4999
5157
  class StateManager {
5000
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5001
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) }); }
5158
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5159
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) });
5002
5160
  }
5003
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: StateManager, decorators: [{
5161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: StateManager, decorators: [{
5004
5162
  type: Injectable,
5005
5163
  args: [{ providedIn: 'root', useFactory: () => inject(HistoryStateManager) }]
5006
5164
  }] });
5007
5165
  class HistoryStateManager extends StateManager {
5008
- constructor() {
5009
- super(...arguments);
5010
- this.location = inject(Location);
5011
- this.urlSerializer = inject(UrlSerializer);
5012
- this.options = inject(ROUTER_CONFIGURATION, { optional: true }) || {};
5013
- this.canceledNavigationResolution = this.options.canceledNavigationResolution || 'replace';
5014
- this.urlHandlingStrategy = inject(UrlHandlingStrategy);
5015
- this.urlUpdateStrategy = this.options.urlUpdateStrategy || 'deferred';
5016
- this.currentUrlTree = new UrlTree();
5017
- this.rawUrlTree = this.currentUrlTree;
5018
- /**
5019
- * The id of the currently active page in the router.
5020
- * Updated to the transition's target id on a successful navigation.
5021
- *
5022
- * This is used to track what page the router last activated. When an attempted navigation fails,
5023
- * the router can then use this to compute how to restore the state back to the previously active
5024
- * page.
5025
- */
5026
- this.currentPageId = 0;
5027
- this.lastSuccessfulId = -1;
5028
- this.routerState = createEmptyState(null);
5029
- this.stateMemento = this.createStateMemento();
5030
- }
5166
+ location = inject(Location);
5167
+ urlSerializer = inject(UrlSerializer);
5168
+ options = inject(ROUTER_CONFIGURATION, { optional: true }) || {};
5169
+ canceledNavigationResolution = this.options.canceledNavigationResolution || 'replace';
5170
+ urlHandlingStrategy = inject(UrlHandlingStrategy);
5171
+ urlUpdateStrategy = this.options.urlUpdateStrategy || 'deferred';
5172
+ currentUrlTree = new UrlTree();
5031
5173
  getCurrentUrlTree() {
5032
5174
  return this.currentUrlTree;
5033
5175
  }
5176
+ rawUrlTree = this.currentUrlTree;
5034
5177
  getRawUrlTree() {
5035
5178
  return this.rawUrlTree;
5036
5179
  }
5180
+ /**
5181
+ * The id of the currently active page in the router.
5182
+ * Updated to the transition's target id on a successful navigation.
5183
+ *
5184
+ * This is used to track what page the router last activated. When an attempted navigation fails,
5185
+ * the router can then use this to compute how to restore the state back to the previously active
5186
+ * page.
5187
+ */
5188
+ currentPageId = 0;
5189
+ lastSuccessfulId = -1;
5037
5190
  restoredState() {
5038
5191
  return this.location.getState();
5039
5192
  }
@@ -5048,9 +5201,11 @@ class HistoryStateManager extends StateManager {
5048
5201
  }
5049
5202
  return this.restoredState()?.ɵrouterPageId ?? this.currentPageId;
5050
5203
  }
5204
+ routerState = createEmptyState(null);
5051
5205
  getRouterState() {
5052
5206
  return this.routerState;
5053
5207
  }
5208
+ stateMemento = this.createStateMemento();
5054
5209
  createStateMemento() {
5055
5210
  return {
5056
5211
  rawUrlTree: this.rawUrlTree,
@@ -5173,10 +5328,10 @@ class HistoryStateManager extends StateManager {
5173
5328
  }
5174
5329
  return { navigationId };
5175
5330
  }
5176
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
5177
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: HistoryStateManager, providedIn: 'root' }); }
5331
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
5332
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: HistoryStateManager, providedIn: 'root' });
5178
5333
  }
5179
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: HistoryStateManager, decorators: [{
5334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: HistoryStateManager, decorators: [{
5180
5335
  type: Injectable,
5181
5336
  args: [{ providedIn: 'root' }]
5182
5337
  }] });
@@ -5260,6 +5415,23 @@ class Router {
5260
5415
  get rawUrlTree() {
5261
5416
  return this.stateManager.getRawUrlTree();
5262
5417
  }
5418
+ disposed = false;
5419
+ nonRouterCurrentEntryChangeSubscription;
5420
+ console = inject(ɵConsole);
5421
+ stateManager = inject(StateManager);
5422
+ options = inject(ROUTER_CONFIGURATION, { optional: true }) || {};
5423
+ pendingTasks = inject(ɵPendingTasks);
5424
+ urlUpdateStrategy = this.options.urlUpdateStrategy || 'deferred';
5425
+ navigationTransitions = inject(NavigationTransitions);
5426
+ urlSerializer = inject(UrlSerializer);
5427
+ location = inject(Location);
5428
+ urlHandlingStrategy = inject(UrlHandlingStrategy);
5429
+ /**
5430
+ * The private `Subject` type for the public events exposed in the getter. This is used internally
5431
+ * to push events to. The separate field allows us to expose separate types in the public API
5432
+ * (i.e., an Observable rather than the Subject).
5433
+ */
5434
+ _events = new Subject();
5263
5435
  /**
5264
5436
  * An event stream for routing events.
5265
5437
  */
@@ -5276,54 +5448,37 @@ class Router {
5276
5448
  get routerState() {
5277
5449
  return this.stateManager.getRouterState();
5278
5450
  }
5451
+ /**
5452
+ * True if at least one navigation event has occurred,
5453
+ * false otherwise.
5454
+ */
5455
+ navigated = false;
5456
+ /**
5457
+ * A strategy for re-using routes.
5458
+ *
5459
+ * @deprecated Configure using `providers` instead:
5460
+ * `{provide: RouteReuseStrategy, useClass: MyStrategy}`.
5461
+ */
5462
+ routeReuseStrategy = inject(RouteReuseStrategy);
5463
+ /**
5464
+ * How to handle a navigation request to the current URL.
5465
+ *
5466
+ *
5467
+ * @deprecated Configure this through `provideRouter` or `RouterModule.forRoot` instead.
5468
+ * @see {@link withRouterConfig}
5469
+ * @see {@link provideRouter}
5470
+ * @see {@link RouterModule}
5471
+ */
5472
+ onSameUrlNavigation = this.options.onSameUrlNavigation || 'ignore';
5473
+ config = inject(ROUTES, { optional: true })?.flat() ?? [];
5474
+ /**
5475
+ * Indicates whether the application has opted in to binding Router data to component inputs.
5476
+ *
5477
+ * This option is enabled by the `withComponentInputBinding` feature of `provideRouter` or
5478
+ * `bindToComponentInputs` in the `ExtraOptions` of `RouterModule.forRoot`.
5479
+ */
5480
+ componentInputBindingEnabled = !!inject(INPUT_BINDER, { optional: true });
5279
5481
  constructor() {
5280
- this.disposed = false;
5281
- this.console = inject(ɵConsole);
5282
- this.stateManager = inject(StateManager);
5283
- this.options = inject(ROUTER_CONFIGURATION, { optional: true }) || {};
5284
- this.pendingTasks = inject(ɵPendingTasks);
5285
- this.urlUpdateStrategy = this.options.urlUpdateStrategy || 'deferred';
5286
- this.navigationTransitions = inject(NavigationTransitions);
5287
- this.urlSerializer = inject(UrlSerializer);
5288
- this.location = inject(Location);
5289
- this.urlHandlingStrategy = inject(UrlHandlingStrategy);
5290
- /**
5291
- * The private `Subject` type for the public events exposed in the getter. This is used internally
5292
- * to push events to. The separate field allows us to expose separate types in the public API
5293
- * (i.e., an Observable rather than the Subject).
5294
- */
5295
- this._events = new Subject();
5296
- /**
5297
- * True if at least one navigation event has occurred,
5298
- * false otherwise.
5299
- */
5300
- this.navigated = false;
5301
- /**
5302
- * A strategy for re-using routes.
5303
- *
5304
- * @deprecated Configure using `providers` instead:
5305
- * `{provide: RouteReuseStrategy, useClass: MyStrategy}`.
5306
- */
5307
- this.routeReuseStrategy = inject(RouteReuseStrategy);
5308
- /**
5309
- * How to handle a navigation request to the current URL.
5310
- *
5311
- *
5312
- * @deprecated Configure this through `provideRouter` or `RouterModule.forRoot` instead.
5313
- * @see {@link withRouterConfig}
5314
- * @see {@link provideRouter}
5315
- * @see {@link RouterModule}
5316
- */
5317
- this.onSameUrlNavigation = this.options.onSameUrlNavigation || 'ignore';
5318
- this.config = inject(ROUTES, { optional: true })?.flat() ?? [];
5319
- /**
5320
- * Indicates whether the application has opted in to binding Router data to component inputs.
5321
- *
5322
- * This option is enabled by the `withComponentInputBinding` feature of `provideRouter` or
5323
- * `bindToComponentInputs` in the `ExtraOptions` of `RouterModule.forRoot`.
5324
- */
5325
- this.componentInputBindingEnabled = !!inject(INPUT_BINDER, { optional: true });
5326
- this.eventsSubscription = new Subscription();
5327
5482
  this.resetConfig(this.config);
5328
5483
  this.navigationTransitions
5329
5484
  .setupNavigations(this, this.currentUrlTree, this.routerState)
@@ -5334,6 +5489,7 @@ class Router {
5334
5489
  });
5335
5490
  this.subscribeToNavigationEvents();
5336
5491
  }
5492
+ eventsSubscription = new Subscription();
5337
5493
  subscribeToNavigationEvents() {
5338
5494
  const subscription = this.navigationTransitions.events.subscribe((e) => {
5339
5495
  try {
@@ -5743,10 +5899,10 @@ class Router {
5743
5899
  return Promise.reject(e);
5744
5900
  });
5745
5901
  }
5746
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5747
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: Router, providedIn: 'root' }); }
5902
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5903
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: Router, providedIn: 'root' });
5748
5904
  }
5749
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: Router, decorators: [{
5905
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: Router, decorators: [{
5750
5906
  type: Injectable,
5751
5907
  args: [{ providedIn: 'root' }]
5752
5908
  }], ctorParameters: () => [] });
@@ -5864,6 +6020,72 @@ function isPublicRouterEvent(e) {
5864
6020
  * @publicApi
5865
6021
  */
5866
6022
  class RouterLink {
6023
+ router;
6024
+ route;
6025
+ tabIndexAttribute;
6026
+ renderer;
6027
+ el;
6028
+ locationStrategy;
6029
+ /**
6030
+ * Represents an `href` attribute value applied to a host element,
6031
+ * when a host element is `<a>`. For other tags, the value is `null`.
6032
+ */
6033
+ href = null;
6034
+ /**
6035
+ * Represents the `target` attribute on a host element.
6036
+ * This is only used when the host element is an `<a>` tag.
6037
+ */
6038
+ target;
6039
+ /**
6040
+ * Passed to {@link Router#createUrlTree} as part of the
6041
+ * `UrlCreationOptions`.
6042
+ * @see {@link UrlCreationOptions#queryParams}
6043
+ * @see {@link Router#createUrlTree}
6044
+ */
6045
+ queryParams;
6046
+ /**
6047
+ * Passed to {@link Router#createUrlTree} as part of the
6048
+ * `UrlCreationOptions`.
6049
+ * @see {@link UrlCreationOptions#fragment}
6050
+ * @see {@link Router#createUrlTree}
6051
+ */
6052
+ fragment;
6053
+ /**
6054
+ * Passed to {@link Router#createUrlTree} as part of the
6055
+ * `UrlCreationOptions`.
6056
+ * @see {@link UrlCreationOptions#queryParamsHandling}
6057
+ * @see {@link Router#createUrlTree}
6058
+ */
6059
+ queryParamsHandling;
6060
+ /**
6061
+ * Passed to {@link Router#navigateByUrl} as part of the
6062
+ * `NavigationBehaviorOptions`.
6063
+ * @see {@link NavigationBehaviorOptions#state}
6064
+ * @see {@link Router#navigateByUrl}
6065
+ */
6066
+ state;
6067
+ /**
6068
+ * Passed to {@link Router#navigateByUrl} as part of the
6069
+ * `NavigationBehaviorOptions`.
6070
+ * @see {@link NavigationBehaviorOptions#info}
6071
+ * @see {@link Router#navigateByUrl}
6072
+ */
6073
+ info;
6074
+ /**
6075
+ * Passed to {@link Router#createUrlTree} as part of the
6076
+ * `UrlCreationOptions`.
6077
+ * Specify a value here when you do not want to use the default value
6078
+ * for `routerLink`, which is the current activated route.
6079
+ * Note that a value of `undefined` here will use the `routerLink` default.
6080
+ * @see {@link UrlCreationOptions#relativeTo}
6081
+ * @see {@link Router#createUrlTree}
6082
+ */
6083
+ relativeTo;
6084
+ /** Whether a host element is an `<a>` tag. */
6085
+ isAnchorElement;
6086
+ subscription;
6087
+ /** @internal */
6088
+ onChanges = new Subject();
5867
6089
  constructor(router, route, tabIndexAttribute, renderer, el, locationStrategy) {
5868
6090
  this.router = router;
5869
6091
  this.route = route;
@@ -5871,35 +6093,6 @@ class RouterLink {
5871
6093
  this.renderer = renderer;
5872
6094
  this.el = el;
5873
6095
  this.locationStrategy = locationStrategy;
5874
- /**
5875
- * Represents an `href` attribute value applied to a host element,
5876
- * when a host element is `<a>`. For other tags, the value is `null`.
5877
- */
5878
- this.href = null;
5879
- /** @internal */
5880
- this.onChanges = new Subject();
5881
- /**
5882
- * Passed to {@link Router#createUrlTree} as part of the
5883
- * `UrlCreationOptions`.
5884
- * @see {@link UrlCreationOptions#preserveFragment}
5885
- * @see {@link Router#createUrlTree}
5886
- */
5887
- this.preserveFragment = false;
5888
- /**
5889
- * Passed to {@link Router#navigateByUrl} as part of the
5890
- * `NavigationBehaviorOptions`.
5891
- * @see {@link NavigationBehaviorOptions#skipLocationChange}
5892
- * @see {@link Router#navigateByUrl}
5893
- */
5894
- this.skipLocationChange = false;
5895
- /**
5896
- * Passed to {@link Router#navigateByUrl} as part of the
5897
- * `NavigationBehaviorOptions`.
5898
- * @see {@link NavigationBehaviorOptions#replaceUrl}
5899
- * @see {@link Router#navigateByUrl}
5900
- */
5901
- this.replaceUrl = false;
5902
- this.routerLinkInput = null;
5903
6096
  const tagName = el.nativeElement.tagName?.toLowerCase();
5904
6097
  this.isAnchorElement = tagName === 'a' || tagName === 'area';
5905
6098
  if (this.isAnchorElement) {
@@ -5913,6 +6106,27 @@ class RouterLink {
5913
6106
  this.setTabIndexIfNotOnNativeEl('0');
5914
6107
  }
5915
6108
  }
6109
+ /**
6110
+ * Passed to {@link Router#createUrlTree} as part of the
6111
+ * `UrlCreationOptions`.
6112
+ * @see {@link UrlCreationOptions#preserveFragment}
6113
+ * @see {@link Router#createUrlTree}
6114
+ */
6115
+ preserveFragment = false;
6116
+ /**
6117
+ * Passed to {@link Router#navigateByUrl} as part of the
6118
+ * `NavigationBehaviorOptions`.
6119
+ * @see {@link NavigationBehaviorOptions#skipLocationChange}
6120
+ * @see {@link Router#navigateByUrl}
6121
+ */
6122
+ skipLocationChange = false;
6123
+ /**
6124
+ * Passed to {@link Router#navigateByUrl} as part of the
6125
+ * `NavigationBehaviorOptions`.
6126
+ * @see {@link NavigationBehaviorOptions#replaceUrl}
6127
+ * @see {@link Router#navigateByUrl}
6128
+ */
6129
+ replaceUrl = false;
5916
6130
  /**
5917
6131
  * Modifies the tab index if there was not a tabindex attribute on the element during
5918
6132
  * instantiation.
@@ -5942,6 +6156,7 @@ class RouterLink {
5942
6156
  // to the RouterLinks it's tracking.
5943
6157
  this.onChanges.next(this);
5944
6158
  }
6159
+ routerLinkInput = null;
5945
6160
  /**
5946
6161
  * Commands to pass to {@link Router#createUrlTree} or a `UrlTree`.
5947
6162
  * - **array**: commands to pass to {@link Router#createUrlTree}.
@@ -6046,10 +6261,10 @@ class RouterLink {
6046
6261
  preserveFragment: this.preserveFragment,
6047
6262
  });
6048
6263
  }
6049
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", 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 }); }
6050
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.0-next.9", type: RouterLink, isStandalone: true, selector: "[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", info: "info", relativeTo: "relativeTo", preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute], skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute], replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute], routerLink: "routerLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" }, properties: { "attr.target": "this.target" } }, usesOnChanges: true, ngImport: i0 }); }
6264
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", 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 });
6265
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "19.0.0-rc.1", type: RouterLink, isStandalone: true, selector: "[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", info: "info", relativeTo: "relativeTo", preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute], skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute], replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute], routerLink: "routerLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" }, properties: { "attr.target": "this.target" } }, usesOnChanges: true, ngImport: i0 });
6051
6266
  }
6052
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterLink, decorators: [{
6267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterLink, decorators: [{
6053
6268
  type: Directive,
6054
6269
  args: [{
6055
6270
  selector: '[routerLink]',
@@ -6167,42 +6382,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9",
6167
6382
  * @publicApi
6168
6383
  */
6169
6384
  class RouterLinkActive {
6385
+ router;
6386
+ element;
6387
+ renderer;
6388
+ cdr;
6389
+ link;
6390
+ links;
6391
+ classes = [];
6392
+ routerEventsSubscription;
6393
+ linkInputChangesSubscription;
6394
+ _isActive = false;
6170
6395
  get isActive() {
6171
6396
  return this._isActive;
6172
6397
  }
6398
+ /**
6399
+ * Options to configure how to determine if the router link is active.
6400
+ *
6401
+ * These options are passed to the `Router.isActive()` function.
6402
+ *
6403
+ * @see {@link Router#isActive}
6404
+ */
6405
+ routerLinkActiveOptions = { exact: false };
6406
+ /**
6407
+ * Aria-current attribute to apply when the router link is active.
6408
+ *
6409
+ * Possible values: `'page'` | `'step'` | `'location'` | `'date'` | `'time'` | `true` | `false`.
6410
+ *
6411
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current}
6412
+ */
6413
+ ariaCurrentWhenActive;
6414
+ /**
6415
+ *
6416
+ * You can use the output `isActiveChange` to get notified each time the link becomes
6417
+ * active or inactive.
6418
+ *
6419
+ * Emits:
6420
+ * true -> Route is active
6421
+ * false -> Route is inactive
6422
+ *
6423
+ * ```
6424
+ * <a
6425
+ * routerLink="/user/bob"
6426
+ * routerLinkActive="active-link"
6427
+ * (isActiveChange)="this.onRouterLinkActive($event)">Bob</a>
6428
+ * ```
6429
+ */
6430
+ isActiveChange = new EventEmitter();
6173
6431
  constructor(router, element, renderer, cdr, link) {
6174
6432
  this.router = router;
6175
6433
  this.element = element;
6176
6434
  this.renderer = renderer;
6177
6435
  this.cdr = cdr;
6178
6436
  this.link = link;
6179
- this.classes = [];
6180
- this._isActive = false;
6181
- /**
6182
- * Options to configure how to determine if the router link is active.
6183
- *
6184
- * These options are passed to the `Router.isActive()` function.
6185
- *
6186
- * @see {@link Router#isActive}
6187
- */
6188
- this.routerLinkActiveOptions = { exact: false };
6189
- /**
6190
- *
6191
- * You can use the output `isActiveChange` to get notified each time the link becomes
6192
- * active or inactive.
6193
- *
6194
- * Emits:
6195
- * true -> Route is active
6196
- * false -> Route is inactive
6197
- *
6198
- * ```
6199
- * <a
6200
- * routerLink="/user/bob"
6201
- * routerLinkActive="active-link"
6202
- * (isActiveChange)="this.onRouterLinkActive($event)">Bob</a>
6203
- * ```
6204
- */
6205
- this.isActiveChange = new EventEmitter();
6206
6437
  this.routerEventsSubscription = router.events.subscribe((s) => {
6207
6438
  if (s instanceof NavigationEnd) {
6208
6439
  this.update();
@@ -6287,10 +6518,10 @@ class RouterLinkActive {
6287
6518
  const isActiveCheckFn = this.isLinkActive(this.router);
6288
6519
  return (this.link && isActiveCheckFn(this.link)) || this.links.some(isActiveCheckFn);
6289
6520
  }
6290
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
6291
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-next.9", 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 }); }
6521
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
6522
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.0-rc.1", 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 });
6292
6523
  }
6293
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterLinkActive, decorators: [{
6524
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterLinkActive, decorators: [{
6294
6525
  type: Directive,
6295
6526
  args: [{
6296
6527
  selector: '[routerLinkActive]',
@@ -6342,10 +6573,10 @@ class PreloadAllModules {
6342
6573
  preload(route, fn) {
6343
6574
  return fn().pipe(catchError(() => of(null)));
6344
6575
  }
6345
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6346
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
6576
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6577
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: PreloadAllModules, providedIn: 'root' });
6347
6578
  }
6348
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: PreloadAllModules, decorators: [{
6579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: PreloadAllModules, decorators: [{
6349
6580
  type: Injectable,
6350
6581
  args: [{ providedIn: 'root' }]
6351
6582
  }] });
@@ -6362,10 +6593,10 @@ class NoPreloading {
6362
6593
  preload(route, fn) {
6363
6594
  return of(null);
6364
6595
  }
6365
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6366
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
6596
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6597
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: NoPreloading, providedIn: 'root' });
6367
6598
  }
6368
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: NoPreloading, decorators: [{
6599
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: NoPreloading, decorators: [{
6369
6600
  type: Injectable,
6370
6601
  args: [{ providedIn: 'root' }]
6371
6602
  }] });
@@ -6382,6 +6613,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9",
6382
6613
  * @publicApi
6383
6614
  */
6384
6615
  class RouterPreloader {
6616
+ router;
6617
+ injector;
6618
+ preloadingStrategy;
6619
+ loader;
6620
+ subscription;
6385
6621
  constructor(router, compiler, injector, preloadingStrategy, loader) {
6386
6622
  this.router = router;
6387
6623
  this.injector = injector;
@@ -6456,16 +6692,27 @@ class RouterPreloader {
6456
6692
  }
6457
6693
  });
6458
6694
  }
6459
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
6460
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
6695
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable });
6696
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterPreloader, providedIn: 'root' });
6461
6697
  }
6462
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterPreloader, decorators: [{
6698
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterPreloader, decorators: [{
6463
6699
  type: Injectable,
6464
6700
  args: [{ providedIn: 'root' }]
6465
6701
  }], ctorParameters: () => [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }] });
6466
6702
 
6467
6703
  const ROUTER_SCROLLER = new InjectionToken('');
6468
6704
  class RouterScroller {
6705
+ urlSerializer;
6706
+ transitions;
6707
+ viewportScroller;
6708
+ zone;
6709
+ options;
6710
+ routerEventsSubscription;
6711
+ scrollEventsSubscription;
6712
+ lastId = 0;
6713
+ lastSource = 'imperative';
6714
+ restoredId = 0;
6715
+ store = {};
6469
6716
  /** @nodoc */
6470
6717
  constructor(urlSerializer, transitions, viewportScroller, zone, options = {}) {
6471
6718
  this.urlSerializer = urlSerializer;
@@ -6473,10 +6720,6 @@ class RouterScroller {
6473
6720
  this.viewportScroller = viewportScroller;
6474
6721
  this.zone = zone;
6475
6722
  this.options = options;
6476
- this.lastId = 0;
6477
- this.lastSource = 'imperative';
6478
- this.restoredId = 0;
6479
- this.store = {};
6480
6723
  // Default both options to 'disabled'
6481
6724
  options.scrollPositionRestoration ||= 'disabled';
6482
6725
  options.anchorScrolling ||= 'disabled';
@@ -6552,10 +6795,10 @@ class RouterScroller {
6552
6795
  this.routerEventsSubscription?.unsubscribe();
6553
6796
  this.scrollEventsSubscription?.unsubscribe();
6554
6797
  }
6555
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
6556
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterScroller }); }
6798
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
6799
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterScroller });
6557
6800
  }
6558
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterScroller, decorators: [{
6801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterScroller, decorators: [{
6559
6802
  type: Injectable
6560
6803
  }], ctorParameters: () => [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }] });
6561
6804
 
@@ -7227,11 +7470,11 @@ class RouterModule {
7227
7470
  providers: [{ provide: ROUTES, multi: true, useValue: routes }],
7228
7471
  };
7229
7472
  }
7230
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
7231
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
7232
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterModule }); }
7473
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
7474
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] });
7475
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterModule });
7233
7476
  }
7234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.9", ngImport: i0, type: RouterModule, decorators: [{
7477
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-rc.1", ngImport: i0, type: RouterModule, decorators: [{
7235
7478
  type: NgModule,
7236
7479
  args: [{
7237
7480
  imports: ROUTER_DIRECTIVES,
@@ -7376,7 +7619,12 @@ function mapToResolve(provider) {
7376
7619
  /**
7377
7620
  * @publicApi
7378
7621
  */
7379
- const VERSION = new Version('19.0.0-next.9');
7622
+ const VERSION = new Version('19.0.0-rc.1');
7623
+
7624
+ function getLoadedRoutes(route) {
7625
+ return route._loadedRoutes;
7626
+ }
7627
+ ɵpublishExternalGlobalUtil('ɵgetLoadedRoutes', getLoadedRoutes);
7380
7628
 
7381
7629
  /**
7382
7630
  * @module