@angular/router 9.1.0 → 9.1.4
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.
- package/bundles/router-testing.umd.js +24 -5
- package/bundles/router-testing.umd.js.map +1 -1
- package/bundles/router-testing.umd.min.js +4 -4
- package/bundles/router-testing.umd.min.js.map +1 -1
- package/bundles/router-upgrade.umd.js +4 -2
- package/bundles/router-upgrade.umd.js.map +1 -1
- package/bundles/router-upgrade.umd.min.js +1 -1
- package/bundles/router-upgrade.umd.min.js.map +1 -1
- package/bundles/router.umd.js +282 -138
- package/bundles/router.umd.js.map +1 -1
- package/bundles/router.umd.min.js +26 -26
- package/bundles/router.umd.min.js.map +1 -1
- package/esm2015/index.js +1 -1
- package/esm2015/public_api.js +1 -1
- package/esm2015/src/apply_redirects.js +6 -4
- package/esm2015/src/config.js +1 -1
- package/esm2015/src/create_url_tree.js +1 -1
- package/esm2015/src/directives/router_link.js +9 -4
- package/esm2015/src/directives/router_link_active.js +7 -3
- package/esm2015/src/directives/router_outlet.js +7 -3
- package/esm2015/src/events.js +13 -5
- package/esm2015/src/index.js +3 -3
- package/esm2015/src/interfaces.js +1 -1
- package/esm2015/src/operators/activate_routes.js +1 -1
- package/esm2015/src/operators/check_guards.js +8 -5
- package/esm2015/src/operators/prioritized_guard_value.js +7 -7
- package/esm2015/src/operators/recognize.js +1 -1
- package/esm2015/src/operators/resolve_data.js +4 -2
- package/esm2015/src/operators/switch_tap.js +1 -1
- package/esm2015/src/recognize.js +7 -5
- package/esm2015/src/route_reuse_strategy.js +10 -4
- package/esm2015/src/router.js +86 -55
- package/esm2015/src/router_config_loader.js +1 -1
- package/esm2015/src/router_module.js +4 -6
- package/esm2015/src/router_outlet_context.js +7 -3
- package/esm2015/src/router_preloader.js +13 -9
- package/esm2015/src/router_scroller.js +1 -1
- package/esm2015/src/router_state.js +42 -16
- package/esm2015/src/shared.js +10 -4
- package/esm2015/src/url_handling_strategy.js +10 -4
- package/esm2015/src/url_tree.js +21 -9
- package/esm2015/src/utils/collection.js +1 -1
- package/esm2015/src/utils/preactivation.js +1 -1
- package/esm2015/src/utils/tree.js +17 -9
- package/esm2015/src/version.js +1 -1
- package/esm2015/testing/src/router_testing_module.js +5 -3
- package/esm2015/upgrade/src/upgrade.js +4 -2
- package/esm5/src/apply_redirects.js +3 -3
- package/esm5/src/config.js +1 -1
- package/esm5/src/create_url_tree.js +1 -1
- package/esm5/src/directives/router_link.js +9 -4
- package/esm5/src/directives/router_link_active.js +7 -3
- package/esm5/src/directives/router_outlet.js +7 -3
- package/esm5/src/events.js +13 -5
- package/esm5/src/index.js +3 -3
- package/esm5/src/interfaces.js +1 -1
- package/esm5/src/operators/activate_routes.js +1 -1
- package/esm5/src/operators/check_guards.js +22 -19
- package/esm5/src/operators/prioritized_guard_value.js +7 -7
- package/esm5/src/operators/recognize.js +1 -1
- package/esm5/src/operators/resolve_data.js +1 -1
- package/esm5/src/operators/switch_tap.js +1 -1
- package/esm5/src/recognize.js +7 -5
- package/esm5/src/route_reuse_strategy.js +10 -4
- package/esm5/src/router.js +87 -54
- package/esm5/src/router_config_loader.js +1 -1
- package/esm5/src/router_module.js +5 -7
- package/esm5/src/router_outlet_context.js +7 -3
- package/esm5/src/router_preloader.js +13 -9
- package/esm5/src/router_scroller.js +1 -1
- package/esm5/src/router_state.js +46 -18
- package/esm5/src/shared.js +7 -3
- package/esm5/src/url_handling_strategy.js +10 -4
- package/esm5/src/url_tree.js +21 -9
- package/esm5/src/utils/collection.js +1 -1
- package/esm5/src/utils/preactivation.js +1 -1
- package/esm5/src/utils/tree.js +10 -4
- package/esm5/src/version.js +1 -1
- package/esm5/testing/src/router_testing_module.js +5 -3
- package/esm5/upgrade/src/upgrade.js +4 -2
- package/fesm2015/router.js +252 -121
- package/fesm2015/router.js.map +1 -1
- package/fesm2015/testing.js +4 -2
- package/fesm2015/testing.js.map +1 -1
- package/fesm2015/upgrade.js +4 -2
- package/fesm2015/upgrade.js.map +1 -1
- package/fesm5/router.js +262 -135
- package/fesm5/router.js.map +1 -1
- package/fesm5/testing.js +4 -2
- package/fesm5/testing.js.map +1 -1
- package/fesm5/upgrade.js +4 -2
- package/fesm5/upgrade.js.map +1 -1
- package/package.json +4 -4
- package/router.d.ts +25 -22
- package/router.metadata.json +1 -1
- package/testing/testing.d.ts +1 -1
- package/testing/testing.metadata.json +1 -1
- package/testing.d.ts +1 -1
- package/upgrade/upgrade.d.ts +1 -1
- package/upgrade.d.ts +1 -1
package/fesm5/router.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v9.1.
|
|
2
|
+
* @license Angular v9.1.4
|
|
3
3
|
* (c) 2010-2020 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -73,7 +73,9 @@ var NavigationStart = /** @class */ (function (_super) {
|
|
|
73
73
|
return _this;
|
|
74
74
|
}
|
|
75
75
|
/** @docsNotRequired */
|
|
76
|
-
NavigationStart.prototype.toString = function () {
|
|
76
|
+
NavigationStart.prototype.toString = function () {
|
|
77
|
+
return "NavigationStart(id: " + this.id + ", url: '" + this.url + "')";
|
|
78
|
+
};
|
|
77
79
|
return NavigationStart;
|
|
78
80
|
}(RouterEvent));
|
|
79
81
|
/**
|
|
@@ -122,7 +124,9 @@ var NavigationCancel = /** @class */ (function (_super) {
|
|
|
122
124
|
return _this;
|
|
123
125
|
}
|
|
124
126
|
/** @docsNotRequired */
|
|
125
|
-
NavigationCancel.prototype.toString = function () {
|
|
127
|
+
NavigationCancel.prototype.toString = function () {
|
|
128
|
+
return "NavigationCancel(id: " + this.id + ", url: '" + this.url + "')";
|
|
129
|
+
};
|
|
126
130
|
return NavigationCancel;
|
|
127
131
|
}(RouterEvent));
|
|
128
132
|
/**
|
|
@@ -298,7 +302,9 @@ var RouteConfigLoadStart = /** @class */ (function () {
|
|
|
298
302
|
route) {
|
|
299
303
|
this.route = route;
|
|
300
304
|
}
|
|
301
|
-
RouteConfigLoadStart.prototype.toString = function () {
|
|
305
|
+
RouteConfigLoadStart.prototype.toString = function () {
|
|
306
|
+
return "RouteConfigLoadStart(path: " + this.route.path + ")";
|
|
307
|
+
};
|
|
302
308
|
return RouteConfigLoadStart;
|
|
303
309
|
}());
|
|
304
310
|
/**
|
|
@@ -312,7 +318,9 @@ var RouteConfigLoadEnd = /** @class */ (function () {
|
|
|
312
318
|
route) {
|
|
313
319
|
this.route = route;
|
|
314
320
|
}
|
|
315
|
-
RouteConfigLoadEnd.prototype.toString = function () {
|
|
321
|
+
RouteConfigLoadEnd.prototype.toString = function () {
|
|
322
|
+
return "RouteConfigLoadEnd(path: " + this.route.path + ")";
|
|
323
|
+
};
|
|
316
324
|
return RouteConfigLoadEnd;
|
|
317
325
|
}());
|
|
318
326
|
/**
|
|
@@ -460,7 +468,9 @@ var ParamsAsMap = /** @class */ (function () {
|
|
|
460
468
|
function ParamsAsMap(params) {
|
|
461
469
|
this.params = params || {};
|
|
462
470
|
}
|
|
463
|
-
ParamsAsMap.prototype.has = function (name) {
|
|
471
|
+
ParamsAsMap.prototype.has = function (name) {
|
|
472
|
+
return this.params.hasOwnProperty(name);
|
|
473
|
+
};
|
|
464
474
|
ParamsAsMap.prototype.get = function (name) {
|
|
465
475
|
if (this.has(name)) {
|
|
466
476
|
var v = this.params[name];
|
|
@@ -476,7 +486,9 @@ var ParamsAsMap = /** @class */ (function () {
|
|
|
476
486
|
return [];
|
|
477
487
|
};
|
|
478
488
|
Object.defineProperty(ParamsAsMap.prototype, "keys", {
|
|
479
|
-
get: function () {
|
|
489
|
+
get: function () {
|
|
490
|
+
return Object.keys(this.params);
|
|
491
|
+
},
|
|
480
492
|
enumerable: true,
|
|
481
493
|
configurable: true
|
|
482
494
|
});
|
|
@@ -863,7 +875,9 @@ var UrlTree = /** @class */ (function () {
|
|
|
863
875
|
configurable: true
|
|
864
876
|
});
|
|
865
877
|
/** @docsNotRequired */
|
|
866
|
-
UrlTree.prototype.toString = function () {
|
|
878
|
+
UrlTree.prototype.toString = function () {
|
|
879
|
+
return DEFAULT_SERIALIZER.serialize(this);
|
|
880
|
+
};
|
|
867
881
|
return UrlTree;
|
|
868
882
|
}());
|
|
869
883
|
/**
|
|
@@ -889,15 +903,21 @@ var UrlSegmentGroup = /** @class */ (function () {
|
|
|
889
903
|
forEach(children, function (v, k) { return v.parent = _this; });
|
|
890
904
|
}
|
|
891
905
|
/** Whether the segment has child segments */
|
|
892
|
-
UrlSegmentGroup.prototype.hasChildren = function () {
|
|
906
|
+
UrlSegmentGroup.prototype.hasChildren = function () {
|
|
907
|
+
return this.numberOfChildren > 0;
|
|
908
|
+
};
|
|
893
909
|
Object.defineProperty(UrlSegmentGroup.prototype, "numberOfChildren", {
|
|
894
910
|
/** Number of child segments */
|
|
895
|
-
get: function () {
|
|
911
|
+
get: function () {
|
|
912
|
+
return Object.keys(this.children).length;
|
|
913
|
+
},
|
|
896
914
|
enumerable: true,
|
|
897
915
|
configurable: true
|
|
898
916
|
});
|
|
899
917
|
/** @docsNotRequired */
|
|
900
|
-
UrlSegmentGroup.prototype.toString = function () {
|
|
918
|
+
UrlSegmentGroup.prototype.toString = function () {
|
|
919
|
+
return serializePaths(this);
|
|
920
|
+
};
|
|
901
921
|
return UrlSegmentGroup;
|
|
902
922
|
}());
|
|
903
923
|
/**
|
|
@@ -946,7 +966,9 @@ var UrlSegment = /** @class */ (function () {
|
|
|
946
966
|
configurable: true
|
|
947
967
|
});
|
|
948
968
|
/** @docsNotRequired */
|
|
949
|
-
UrlSegment.prototype.toString = function () {
|
|
969
|
+
UrlSegment.prototype.toString = function () {
|
|
970
|
+
return serializePath(this);
|
|
971
|
+
};
|
|
950
972
|
return UrlSegment;
|
|
951
973
|
}());
|
|
952
974
|
function equalSegments(as, bs) {
|
|
@@ -1117,7 +1139,7 @@ function serializeQueryParams(params) {
|
|
|
1117
1139
|
value.map(function (v) { return encodeUriQuery(name) + "=" + encodeUriQuery(v); }).join('&') :
|
|
1118
1140
|
encodeUriQuery(name) + "=" + encodeUriQuery(value);
|
|
1119
1141
|
});
|
|
1120
|
-
return strParams.length ? "?" + strParams.join(
|
|
1142
|
+
return strParams.length ? "?" + strParams.join('&') : '';
|
|
1121
1143
|
}
|
|
1122
1144
|
var SEGMENT_RE = /^[^\/()?;=#]+/;
|
|
1123
1145
|
function matchSegments(str) {
|
|
@@ -1280,7 +1302,9 @@ var UrlParser = /** @class */ (function () {
|
|
|
1280
1302
|
}
|
|
1281
1303
|
return segments;
|
|
1282
1304
|
};
|
|
1283
|
-
UrlParser.prototype.peekStartsWith = function (str) {
|
|
1305
|
+
UrlParser.prototype.peekStartsWith = function (str) {
|
|
1306
|
+
return this.remaining.startsWith(str);
|
|
1307
|
+
};
|
|
1284
1308
|
// Consumes the prefix when it is present and returns whether it has been consumed
|
|
1285
1309
|
UrlParser.prototype.consumeOptional = function (str) {
|
|
1286
1310
|
if (this.peekStartsWith(str)) {
|
|
@@ -1309,7 +1333,9 @@ var Tree = /** @class */ (function () {
|
|
|
1309
1333
|
this._root = root;
|
|
1310
1334
|
}
|
|
1311
1335
|
Object.defineProperty(Tree.prototype, "root", {
|
|
1312
|
-
get: function () {
|
|
1336
|
+
get: function () {
|
|
1337
|
+
return this._root.value;
|
|
1338
|
+
},
|
|
1313
1339
|
enumerable: true,
|
|
1314
1340
|
configurable: true
|
|
1315
1341
|
});
|
|
@@ -1347,7 +1373,9 @@ var Tree = /** @class */ (function () {
|
|
|
1347
1373
|
/**
|
|
1348
1374
|
* @internal
|
|
1349
1375
|
*/
|
|
1350
|
-
Tree.prototype.pathFromRoot = function (t) {
|
|
1376
|
+
Tree.prototype.pathFromRoot = function (t) {
|
|
1377
|
+
return findPath(t, this._root).map(function (s) { return s.value; });
|
|
1378
|
+
};
|
|
1351
1379
|
return Tree;
|
|
1352
1380
|
}());
|
|
1353
1381
|
// DFS for the node matching the value
|
|
@@ -1401,7 +1429,9 @@ var TreeNode = /** @class */ (function () {
|
|
|
1401
1429
|
this.value = value;
|
|
1402
1430
|
this.children = children;
|
|
1403
1431
|
}
|
|
1404
|
-
TreeNode.prototype.toString = function () {
|
|
1432
|
+
TreeNode.prototype.toString = function () {
|
|
1433
|
+
return "TreeNode(" + this.value + ")";
|
|
1434
|
+
};
|
|
1405
1435
|
return TreeNode;
|
|
1406
1436
|
}());
|
|
1407
1437
|
// Return the list of T indexed by outlet name
|
|
@@ -1460,7 +1490,9 @@ var RouterState = /** @class */ (function (_super) {
|
|
|
1460
1490
|
setRouterState(_this, root);
|
|
1461
1491
|
return _this;
|
|
1462
1492
|
}
|
|
1463
|
-
RouterState.prototype.toString = function () {
|
|
1493
|
+
RouterState.prototype.toString = function () {
|
|
1494
|
+
return this.snapshot.toString();
|
|
1495
|
+
};
|
|
1464
1496
|
return RouterState;
|
|
1465
1497
|
}(Tree));
|
|
1466
1498
|
function createEmptyState(urlTree, rootComponent) {
|
|
@@ -1521,44 +1553,58 @@ var ActivatedRoute = /** @class */ (function () {
|
|
|
1521
1553
|
}
|
|
1522
1554
|
Object.defineProperty(ActivatedRoute.prototype, "routeConfig", {
|
|
1523
1555
|
/** The configuration used to match this route. */
|
|
1524
|
-
get: function () {
|
|
1556
|
+
get: function () {
|
|
1557
|
+
return this._futureSnapshot.routeConfig;
|
|
1558
|
+
},
|
|
1525
1559
|
enumerable: true,
|
|
1526
1560
|
configurable: true
|
|
1527
1561
|
});
|
|
1528
1562
|
Object.defineProperty(ActivatedRoute.prototype, "root", {
|
|
1529
1563
|
/** The root of the router state. */
|
|
1530
|
-
get: function () {
|
|
1564
|
+
get: function () {
|
|
1565
|
+
return this._routerState.root;
|
|
1566
|
+
},
|
|
1531
1567
|
enumerable: true,
|
|
1532
1568
|
configurable: true
|
|
1533
1569
|
});
|
|
1534
1570
|
Object.defineProperty(ActivatedRoute.prototype, "parent", {
|
|
1535
1571
|
/** The parent of this route in the router state tree. */
|
|
1536
|
-
get: function () {
|
|
1572
|
+
get: function () {
|
|
1573
|
+
return this._routerState.parent(this);
|
|
1574
|
+
},
|
|
1537
1575
|
enumerable: true,
|
|
1538
1576
|
configurable: true
|
|
1539
1577
|
});
|
|
1540
1578
|
Object.defineProperty(ActivatedRoute.prototype, "firstChild", {
|
|
1541
1579
|
/** The first child of this route in the router state tree. */
|
|
1542
|
-
get: function () {
|
|
1580
|
+
get: function () {
|
|
1581
|
+
return this._routerState.firstChild(this);
|
|
1582
|
+
},
|
|
1543
1583
|
enumerable: true,
|
|
1544
1584
|
configurable: true
|
|
1545
1585
|
});
|
|
1546
1586
|
Object.defineProperty(ActivatedRoute.prototype, "children", {
|
|
1547
1587
|
/** The children of this route in the router state tree. */
|
|
1548
|
-
get: function () {
|
|
1588
|
+
get: function () {
|
|
1589
|
+
return this._routerState.children(this);
|
|
1590
|
+
},
|
|
1549
1591
|
enumerable: true,
|
|
1550
1592
|
configurable: true
|
|
1551
1593
|
});
|
|
1552
1594
|
Object.defineProperty(ActivatedRoute.prototype, "pathFromRoot", {
|
|
1553
1595
|
/** The path from the root of the router state tree to this route. */
|
|
1554
|
-
get: function () {
|
|
1596
|
+
get: function () {
|
|
1597
|
+
return this._routerState.pathFromRoot(this);
|
|
1598
|
+
},
|
|
1555
1599
|
enumerable: true,
|
|
1556
1600
|
configurable: true
|
|
1557
1601
|
});
|
|
1558
1602
|
Object.defineProperty(ActivatedRoute.prototype, "paramMap", {
|
|
1559
|
-
/**
|
|
1603
|
+
/**
|
|
1604
|
+
* An Observable that contains a map of the required and optional parameters
|
|
1560
1605
|
* specific to the route.
|
|
1561
|
-
* The map supports retrieving single and multiple values from the same parameter.
|
|
1606
|
+
* The map supports retrieving single and multiple values from the same parameter.
|
|
1607
|
+
*/
|
|
1562
1608
|
get: function () {
|
|
1563
1609
|
if (!this._paramMap) {
|
|
1564
1610
|
this._paramMap = this.params.pipe(map(function (p) { return convertToParamMap(p); }));
|
|
@@ -1677,31 +1723,41 @@ var ActivatedRouteSnapshot = /** @class */ (function () {
|
|
|
1677
1723
|
}
|
|
1678
1724
|
Object.defineProperty(ActivatedRouteSnapshot.prototype, "root", {
|
|
1679
1725
|
/** The root of the router state */
|
|
1680
|
-
get: function () {
|
|
1726
|
+
get: function () {
|
|
1727
|
+
return this._routerState.root;
|
|
1728
|
+
},
|
|
1681
1729
|
enumerable: true,
|
|
1682
1730
|
configurable: true
|
|
1683
1731
|
});
|
|
1684
1732
|
Object.defineProperty(ActivatedRouteSnapshot.prototype, "parent", {
|
|
1685
1733
|
/** The parent of this route in the router state tree */
|
|
1686
|
-
get: function () {
|
|
1734
|
+
get: function () {
|
|
1735
|
+
return this._routerState.parent(this);
|
|
1736
|
+
},
|
|
1687
1737
|
enumerable: true,
|
|
1688
1738
|
configurable: true
|
|
1689
1739
|
});
|
|
1690
1740
|
Object.defineProperty(ActivatedRouteSnapshot.prototype, "firstChild", {
|
|
1691
1741
|
/** The first child of this route in the router state tree */
|
|
1692
|
-
get: function () {
|
|
1742
|
+
get: function () {
|
|
1743
|
+
return this._routerState.firstChild(this);
|
|
1744
|
+
},
|
|
1693
1745
|
enumerable: true,
|
|
1694
1746
|
configurable: true
|
|
1695
1747
|
});
|
|
1696
1748
|
Object.defineProperty(ActivatedRouteSnapshot.prototype, "children", {
|
|
1697
1749
|
/** The children of this route in the router state tree */
|
|
1698
|
-
get: function () {
|
|
1750
|
+
get: function () {
|
|
1751
|
+
return this._routerState.children(this);
|
|
1752
|
+
},
|
|
1699
1753
|
enumerable: true,
|
|
1700
1754
|
configurable: true
|
|
1701
1755
|
});
|
|
1702
1756
|
Object.defineProperty(ActivatedRouteSnapshot.prototype, "pathFromRoot", {
|
|
1703
1757
|
/** The path from the root of the router state tree to this route */
|
|
1704
|
-
get: function () {
|
|
1758
|
+
get: function () {
|
|
1759
|
+
return this._routerState.pathFromRoot(this);
|
|
1760
|
+
},
|
|
1705
1761
|
enumerable: true,
|
|
1706
1762
|
configurable: true
|
|
1707
1763
|
});
|
|
@@ -1770,7 +1826,9 @@ var RouterStateSnapshot = /** @class */ (function (_super) {
|
|
|
1770
1826
|
setRouterState(_this, root);
|
|
1771
1827
|
return _this;
|
|
1772
1828
|
}
|
|
1773
|
-
RouterStateSnapshot.prototype.toString = function () {
|
|
1829
|
+
RouterStateSnapshot.prototype.toString = function () {
|
|
1830
|
+
return serializeNode(this._root);
|
|
1831
|
+
};
|
|
1774
1832
|
return RouterStateSnapshot;
|
|
1775
1833
|
}(Tree));
|
|
1776
1834
|
function setRouterState(state, node) {
|
|
@@ -3004,13 +3062,13 @@ function prioritizedGuardValue() {
|
|
|
3004
3062
|
// Toggle pending flag if any values haven't been set yet
|
|
3005
3063
|
if (val === INITIAL_VALUE)
|
|
3006
3064
|
isPending = true;
|
|
3007
|
-
// Any other return values are only valid if we haven't yet hit a pending
|
|
3008
|
-
// This guarantees that in the case of a guard at the bottom of the
|
|
3009
|
-
// returns a redirect, we will wait for the higher priority
|
|
3010
|
-
// finish before performing the redirect.
|
|
3065
|
+
// Any other return values are only valid if we haven't yet hit a pending
|
|
3066
|
+
// call. This guarantees that in the case of a guard at the bottom of the
|
|
3067
|
+
// tree that returns a redirect, we will wait for the higher priority
|
|
3068
|
+
// guard at the top to finish before performing the redirect.
|
|
3011
3069
|
if (!isPending) {
|
|
3012
|
-
// Early return when we hit a `false` value as that should always
|
|
3013
|
-
// navigation
|
|
3070
|
+
// Early return when we hit a `false` value as that should always
|
|
3071
|
+
// cancel navigation
|
|
3014
3072
|
if (val === false)
|
|
3015
3073
|
return val;
|
|
3016
3074
|
if (i === list.length - 1 || isUrlTree(val)) {
|
|
@@ -3050,7 +3108,9 @@ function checkGuards(moduleInjector, forwardEvent) {
|
|
|
3050
3108
|
function runCanDeactivateChecks(checks, futureRSS, currRSS, moduleInjector) {
|
|
3051
3109
|
return from(checks).pipe(mergeMap(function (check) {
|
|
3052
3110
|
return runCanDeactivate(check.component, check.route, currRSS, futureRSS, moduleInjector);
|
|
3053
|
-
}), first(function (result) {
|
|
3111
|
+
}), first(function (result) {
|
|
3112
|
+
return result !== true;
|
|
3113
|
+
}, true));
|
|
3054
3114
|
}
|
|
3055
3115
|
function runCanActivateChecks(futureSnapshot, checks, moduleInjector, forwardEvent) {
|
|
3056
3116
|
return from(checks).pipe(concatMap(function (check) {
|
|
@@ -3063,16 +3123,18 @@ function runCanActivateChecks(futureSnapshot, checks, moduleInjector, forwardEve
|
|
|
3063
3123
|
.pipe(concatAll(), first(function (result) {
|
|
3064
3124
|
return result !== true;
|
|
3065
3125
|
}, true));
|
|
3066
|
-
}), first(function (result) {
|
|
3126
|
+
}), first(function (result) {
|
|
3127
|
+
return result !== true;
|
|
3128
|
+
}, true));
|
|
3067
3129
|
}
|
|
3068
3130
|
/**
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3131
|
+
* This should fire off `ActivationStart` events for each route being activated at this
|
|
3132
|
+
* level.
|
|
3133
|
+
* In other words, if you're activating `a` and `b` below, `path` will contain the
|
|
3134
|
+
* `ActivatedRouteSnapshot`s for both and we will fire `ActivationStart` for both. Always
|
|
3135
|
+
* return
|
|
3136
|
+
* `true` so checks continue to run.
|
|
3137
|
+
*/
|
|
3076
3138
|
function fireActivationStart(snapshot, forwardEvent) {
|
|
3077
3139
|
if (snapshot !== null && forwardEvent) {
|
|
3078
3140
|
forwardEvent(new ActivationStart(snapshot));
|
|
@@ -3080,13 +3142,13 @@ function fireActivationStart(snapshot, forwardEvent) {
|
|
|
3080
3142
|
return of(true);
|
|
3081
3143
|
}
|
|
3082
3144
|
/**
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3145
|
+
* This should fire off `ChildActivationStart` events for each route being activated at this
|
|
3146
|
+
* level.
|
|
3147
|
+
* In other words, if you're activating `a` and `b` below, `path` will contain the
|
|
3148
|
+
* `ActivatedRouteSnapshot`s for both and we will fire `ChildActivationStart` for both. Always
|
|
3149
|
+
* return
|
|
3150
|
+
* `true` so checks continue to run.
|
|
3151
|
+
*/
|
|
3090
3152
|
function fireChildActivationStart(snapshot, forwardEvent) {
|
|
3091
3153
|
if (snapshot !== null && forwardEvent) {
|
|
3092
3154
|
forwardEvent(new ChildActivationStart(snapshot));
|
|
@@ -3150,8 +3212,7 @@ function runCanDeactivate(component, currARS, currRSS, futureRSS, moduleInjector
|
|
|
3150
3212
|
var guard = getToken(c, currARS, moduleInjector);
|
|
3151
3213
|
var observable;
|
|
3152
3214
|
if (isCanDeactivate(guard)) {
|
|
3153
|
-
observable =
|
|
3154
|
-
wrapIntoObservable(guard.canDeactivate(component, currARS, currRSS, futureRSS));
|
|
3215
|
+
observable = wrapIntoObservable(guard.canDeactivate(component, currARS, currRSS, futureRSS));
|
|
3155
3216
|
}
|
|
3156
3217
|
else if (isFunction(guard)) {
|
|
3157
3218
|
observable = wrapIntoObservable(guard(component, currARS, currRSS, futureRSS));
|
|
@@ -3317,7 +3378,9 @@ function match$1(segmentGroup, route, segments) {
|
|
|
3317
3378
|
if (!res)
|
|
3318
3379
|
throw new NoMatch$1();
|
|
3319
3380
|
var posParams = {};
|
|
3320
|
-
forEach(res.posParams, function (v, k) {
|
|
3381
|
+
forEach(res.posParams, function (v, k) {
|
|
3382
|
+
posParams[k] = v.path;
|
|
3383
|
+
});
|
|
3321
3384
|
var parameters = res.consumed.length > 0 ? __assign(__assign({}, posParams), res.consumed[res.consumed.length - 1].parameters) :
|
|
3322
3385
|
posParams;
|
|
3323
3386
|
return { consumedSegments: res.consumed, lastChild: res.consumed.length, parameters: parameters };
|
|
@@ -3567,10 +3630,16 @@ var RouteReuseStrategy = /** @class */ (function () {
|
|
|
3567
3630
|
var DefaultRouteReuseStrategy = /** @class */ (function () {
|
|
3568
3631
|
function DefaultRouteReuseStrategy() {
|
|
3569
3632
|
}
|
|
3570
|
-
DefaultRouteReuseStrategy.prototype.shouldDetach = function (route) {
|
|
3633
|
+
DefaultRouteReuseStrategy.prototype.shouldDetach = function (route) {
|
|
3634
|
+
return false;
|
|
3635
|
+
};
|
|
3571
3636
|
DefaultRouteReuseStrategy.prototype.store = function (route, detachedTree) { };
|
|
3572
|
-
DefaultRouteReuseStrategy.prototype.shouldAttach = function (route) {
|
|
3573
|
-
|
|
3637
|
+
DefaultRouteReuseStrategy.prototype.shouldAttach = function (route) {
|
|
3638
|
+
return false;
|
|
3639
|
+
};
|
|
3640
|
+
DefaultRouteReuseStrategy.prototype.retrieve = function (route) {
|
|
3641
|
+
return null;
|
|
3642
|
+
};
|
|
3574
3643
|
DefaultRouteReuseStrategy.prototype.shouldReuseRoute = function (future, curr) {
|
|
3575
3644
|
return future.routeConfig === curr.routeConfig;
|
|
3576
3645
|
};
|
|
@@ -3655,9 +3724,15 @@ var UrlHandlingStrategy = /** @class */ (function () {
|
|
|
3655
3724
|
var DefaultUrlHandlingStrategy = /** @class */ (function () {
|
|
3656
3725
|
function DefaultUrlHandlingStrategy() {
|
|
3657
3726
|
}
|
|
3658
|
-
DefaultUrlHandlingStrategy.prototype.shouldProcessUrl = function (url) {
|
|
3659
|
-
|
|
3660
|
-
|
|
3727
|
+
DefaultUrlHandlingStrategy.prototype.shouldProcessUrl = function (url) {
|
|
3728
|
+
return true;
|
|
3729
|
+
};
|
|
3730
|
+
DefaultUrlHandlingStrategy.prototype.extract = function (url) {
|
|
3731
|
+
return url;
|
|
3732
|
+
};
|
|
3733
|
+
DefaultUrlHandlingStrategy.prototype.merge = function (newUrlPart, wholeUrl) {
|
|
3734
|
+
return newUrlPart;
|
|
3735
|
+
};
|
|
3661
3736
|
return DefaultUrlHandlingStrategy;
|
|
3662
3737
|
}());
|
|
3663
3738
|
|
|
@@ -3736,10 +3811,7 @@ var Router = /** @class */ (function () {
|
|
|
3736
3811
|
*
|
|
3737
3812
|
* @internal
|
|
3738
3813
|
*/
|
|
3739
|
-
this.hooks = {
|
|
3740
|
-
beforePreactivation: defaultRouterHook,
|
|
3741
|
-
afterPreactivation: defaultRouterHook
|
|
3742
|
-
};
|
|
3814
|
+
this.hooks = { beforePreactivation: defaultRouterHook, afterPreactivation: defaultRouterHook };
|
|
3743
3815
|
/**
|
|
3744
3816
|
* A strategy for extracting and merging URLs.
|
|
3745
3817
|
* Used for AngularJS to Angular migrations.
|
|
@@ -3818,7 +3890,9 @@ var Router = /** @class */ (function () {
|
|
|
3818
3890
|
var eventsSubject = this.events;
|
|
3819
3891
|
return transitions.pipe(filter(function (t) { return t.id !== 0; }),
|
|
3820
3892
|
// Extract URL
|
|
3821
|
-
map(function (t) {
|
|
3893
|
+
map(function (t) {
|
|
3894
|
+
return (__assign(__assign({}, t), { extractedUrl: _this.urlHandlingStrategy.extract(t.rawUrl) }));
|
|
3895
|
+
}),
|
|
3822
3896
|
// Using switchMap so we cancel executing navigations when a new one comes in
|
|
3823
3897
|
switchMap(function (t) {
|
|
3824
3898
|
var completed = false;
|
|
@@ -3836,7 +3910,8 @@ var Router = /** @class */ (function () {
|
|
|
3836
3910
|
null
|
|
3837
3911
|
};
|
|
3838
3912
|
}), switchMap(function (t) {
|
|
3839
|
-
var urlTransition = !_this.navigated ||
|
|
3913
|
+
var urlTransition = !_this.navigated ||
|
|
3914
|
+
t.extractedUrl.toString() !== _this.browserUrlTree.toString();
|
|
3840
3915
|
var processCurrentUrl = (_this.onSameUrlNavigation === 'reload' ? true : urlTransition) &&
|
|
3841
3916
|
_this.urlHandlingStrategy.shouldProcessUrl(t.rawUrl);
|
|
3842
3917
|
if (processCurrentUrl) {
|
|
@@ -3850,8 +3925,8 @@ var Router = /** @class */ (function () {
|
|
|
3850
3925
|
}
|
|
3851
3926
|
return [t];
|
|
3852
3927
|
}),
|
|
3853
|
-
// This delay is required to match old behavior that forced navigation
|
|
3854
|
-
// always be async
|
|
3928
|
+
// This delay is required to match old behavior that forced navigation
|
|
3929
|
+
// to always be async
|
|
3855
3930
|
switchMap(function (t) { return Promise.resolve(t); }),
|
|
3856
3931
|
// ApplyRedirects
|
|
3857
3932
|
applyRedirects$1(_this.ngModule.injector, _this.configLoader, _this.urlSerializer, _this.config),
|
|
@@ -3879,9 +3954,9 @@ var Router = /** @class */ (function () {
|
|
|
3879
3954
|
else {
|
|
3880
3955
|
var processPreviousUrl = urlTransition && _this.rawUrlTree &&
|
|
3881
3956
|
_this.urlHandlingStrategy.shouldProcessUrl(_this.rawUrlTree);
|
|
3882
|
-
/* When the current URL shouldn't be processed, but the previous one was,
|
|
3883
|
-
* handle this "error condition" by navigating to the previously
|
|
3884
|
-
* but leaving the URL intact.*/
|
|
3957
|
+
/* When the current URL shouldn't be processed, but the previous one was,
|
|
3958
|
+
* we handle this "error condition" by navigating to the previously
|
|
3959
|
+
* successful URL, but leaving the URL intact.*/
|
|
3885
3960
|
if (processPreviousUrl) {
|
|
3886
3961
|
var id = t.id, extractedUrl = t.extractedUrl, source = t.source, restoredState = t.restoredState, extras = t.extras;
|
|
3887
3962
|
var navStart = new NavigationStart(id, _this.serializeUrl(extractedUrl), source, restoredState);
|
|
@@ -3890,9 +3965,10 @@ var Router = /** @class */ (function () {
|
|
|
3890
3965
|
return of(__assign(__assign({}, t), { targetSnapshot: targetSnapshot, urlAfterRedirects: extractedUrl, extras: __assign(__assign({}, extras), { skipLocationChange: false, replaceUrl: false }) }));
|
|
3891
3966
|
}
|
|
3892
3967
|
else {
|
|
3893
|
-
/* When neither the current or previous URL can be processed, do nothing
|
|
3894
|
-
* than update router's internal reference to the current "settled"
|
|
3895
|
-
* way the next navigation will be coming from the current URL
|
|
3968
|
+
/* When neither the current or previous URL can be processed, do nothing
|
|
3969
|
+
* other than update router's internal reference to the current "settled"
|
|
3970
|
+
* URL. This way the next navigation will be coming from the current URL
|
|
3971
|
+
* in the browser.
|
|
3896
3972
|
*/
|
|
3897
3973
|
_this.rawUrlTree = t.rawUrl;
|
|
3898
3974
|
_this.browserUrlTree = t.urlAfterRedirects;
|
|
@@ -3963,14 +4039,15 @@ var Router = /** @class */ (function () {
|
|
|
3963
4039
|
var targetRouterState = createRouterState(_this.routeReuseStrategy, t.targetSnapshot, t.currentRouterState);
|
|
3964
4040
|
return (__assign(__assign({}, t), { targetRouterState: targetRouterState }));
|
|
3965
4041
|
}),
|
|
3966
|
-
/* Once here, we are about to activate syncronously. The assumption is this
|
|
3967
|
-
succeed, and user code may read from the Router service. Therefore
|
|
3968
|
-
activation, we need to update router properties storing the current
|
|
3969
|
-
RouterState, as well as updated the browser URL. All this should
|
|
3970
|
-
activating. */
|
|
4042
|
+
/* Once here, we are about to activate syncronously. The assumption is this
|
|
4043
|
+
will succeed, and user code may read from the Router service. Therefore
|
|
4044
|
+
before activation, we need to update router properties storing the current
|
|
4045
|
+
URL and the RouterState, as well as updated the browser URL. All this should
|
|
4046
|
+
happen *before* activating. */
|
|
3971
4047
|
tap(function (t) {
|
|
3972
4048
|
_this.currentUrlTree = t.urlAfterRedirects;
|
|
3973
|
-
_this.rawUrlTree =
|
|
4049
|
+
_this.rawUrlTree =
|
|
4050
|
+
_this.urlHandlingStrategy.merge(_this.currentUrlTree, t.rawUrl);
|
|
3974
4051
|
_this.routerState = t.targetRouterState;
|
|
3975
4052
|
if (_this.urlUpdateStrategy === 'deferred') {
|
|
3976
4053
|
if (!t.extras.skipLocationChange) {
|
|
@@ -3978,40 +4055,50 @@ var Router = /** @class */ (function () {
|
|
|
3978
4055
|
}
|
|
3979
4056
|
_this.browserUrlTree = t.urlAfterRedirects;
|
|
3980
4057
|
}
|
|
3981
|
-
}), activateRoutes(_this.rootContexts, _this.routeReuseStrategy, function (evt) { return _this.triggerEvent(evt); }), tap({
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
4058
|
+
}), activateRoutes(_this.rootContexts, _this.routeReuseStrategy, function (evt) { return _this.triggerEvent(evt); }), tap({
|
|
4059
|
+
next: function () {
|
|
4060
|
+
completed = true;
|
|
4061
|
+
},
|
|
4062
|
+
complete: function () {
|
|
4063
|
+
completed = true;
|
|
4064
|
+
}
|
|
4065
|
+
}), finalize(function () {
|
|
4066
|
+
/* When the navigation stream finishes either through error or success, we
|
|
4067
|
+
* set the `completed` or `errored` flag. However, there are some situations
|
|
4068
|
+
* where we could get here without either of those being set. For instance, a
|
|
4069
|
+
* redirect during NavigationStart. Therefore, this is a catch-all to make
|
|
4070
|
+
* sure the NavigationCancel
|
|
4071
|
+
* event is fired when a navigation gets cancelled but not caught by other
|
|
4072
|
+
* means. */
|
|
3987
4073
|
if (!completed && !errored) {
|
|
3988
|
-
// Must reset to current URL tree here to ensure history.state is set. On a
|
|
3989
|
-
// page load, if a new navigation comes in before a successful
|
|
3990
|
-
// completes, there will be nothing in
|
|
3991
|
-
//
|
|
3992
|
-
//
|
|
3993
|
-
// to the Angualr
|
|
4074
|
+
// Must reset to current URL tree here to ensure history.state is set. On a
|
|
4075
|
+
// fresh page load, if a new navigation comes in before a successful
|
|
4076
|
+
// navigation completes, there will be nothing in
|
|
4077
|
+
// history.state.navigationId. This can cause sync problems with AngularJS
|
|
4078
|
+
// sync code which looks for a value here in order to determine whether or
|
|
4079
|
+
// not to handle a given popstate event or to leave it to the Angualr
|
|
4080
|
+
// router.
|
|
3994
4081
|
_this.resetUrlToCurrentUrlTree();
|
|
3995
4082
|
var navCancel = new NavigationCancel(t.id, _this.serializeUrl(t.extractedUrl), "Navigation ID " + t.id + " is not equal to the current navigation id " + _this.navigationId);
|
|
3996
4083
|
eventsSubject.next(navCancel);
|
|
3997
4084
|
t.resolve(false);
|
|
3998
4085
|
}
|
|
3999
4086
|
// currentNavigation should always be reset to null here. If navigation was
|
|
4000
|
-
// successful, lastSuccessfulTransition will have already been set. Therefore
|
|
4001
|
-
// can safely set currentNavigation to null here.
|
|
4087
|
+
// successful, lastSuccessfulTransition will have already been set. Therefore
|
|
4088
|
+
// we can safely set currentNavigation to null here.
|
|
4002
4089
|
_this.currentNavigation = null;
|
|
4003
4090
|
}), catchError(function (e) {
|
|
4004
4091
|
errored = true;
|
|
4005
|
-
/* This error type is issued during Redirect, and is handled as a
|
|
4006
|
-
* rather than an error. */
|
|
4092
|
+
/* This error type is issued during Redirect, and is handled as a
|
|
4093
|
+
* cancellation rather than an error. */
|
|
4007
4094
|
if (isNavigationCancelingError(e)) {
|
|
4008
4095
|
var redirecting = isUrlTree(e.url);
|
|
4009
4096
|
if (!redirecting) {
|
|
4010
4097
|
// Set property only if we're not redirecting. If we landed on a page and
|
|
4011
|
-
// redirect to `/` route, the new navigation is going to see the `/`
|
|
4012
|
-
// a change from the default currentUrlTree and won't navigate.
|
|
4013
|
-
// only applicable with initial navigation, so setting
|
|
4014
|
-
// not redirecting resolves this scenario.
|
|
4098
|
+
// redirect to `/` route, the new navigation is going to see the `/`
|
|
4099
|
+
// isn't a change from the default currentUrlTree and won't navigate.
|
|
4100
|
+
// This is only applicable with initial navigation, so setting
|
|
4101
|
+
// `navigated` only when not redirecting resolves this scenario.
|
|
4015
4102
|
_this.navigated = true;
|
|
4016
4103
|
_this.resetStateAndUrl(t.currentRouterState, t.currentUrlTree, t.rawUrl);
|
|
4017
4104
|
}
|
|
@@ -4036,8 +4123,8 @@ var Router = /** @class */ (function () {
|
|
|
4036
4123
|
return _this.scheduleNavigation(mergedTree, 'imperative', null, extras, { resolve: t.resolve, reject: t.reject, promise: t.promise });
|
|
4037
4124
|
}, 0);
|
|
4038
4125
|
}
|
|
4039
|
-
/* All other errors should reset to the router's internal URL reference to
|
|
4040
|
-
* pre-error state. */
|
|
4126
|
+
/* All other errors should reset to the router's internal URL reference to
|
|
4127
|
+
* the pre-error state. */
|
|
4041
4128
|
}
|
|
4042
4129
|
else {
|
|
4043
4130
|
_this.resetStateAndUrl(t.currentRouterState, t.currentUrlTree, t.rawUrl);
|
|
@@ -4100,20 +4187,28 @@ var Router = /** @class */ (function () {
|
|
|
4100
4187
|
// Navigations coming from Angular router have a navigationId state property. When this
|
|
4101
4188
|
// exists, restore the state.
|
|
4102
4189
|
var state = change.state && change.state.navigationId ? change.state : null;
|
|
4103
|
-
setTimeout(function () {
|
|
4190
|
+
setTimeout(function () {
|
|
4191
|
+
_this.scheduleNavigation(rawUrlTree, source, state, { replaceUrl: true });
|
|
4192
|
+
}, 0);
|
|
4104
4193
|
});
|
|
4105
4194
|
}
|
|
4106
4195
|
};
|
|
4107
4196
|
Object.defineProperty(Router.prototype, "url", {
|
|
4108
4197
|
/** The current URL. */
|
|
4109
|
-
get: function () {
|
|
4198
|
+
get: function () {
|
|
4199
|
+
return this.serializeUrl(this.currentUrlTree);
|
|
4200
|
+
},
|
|
4110
4201
|
enumerable: true,
|
|
4111
4202
|
configurable: true
|
|
4112
4203
|
});
|
|
4113
4204
|
/** The current Navigation object if one exists */
|
|
4114
|
-
Router.prototype.getCurrentNavigation = function () {
|
|
4205
|
+
Router.prototype.getCurrentNavigation = function () {
|
|
4206
|
+
return this.currentNavigation;
|
|
4207
|
+
};
|
|
4115
4208
|
/** @internal */
|
|
4116
|
-
Router.prototype.triggerEvent = function (event) {
|
|
4209
|
+
Router.prototype.triggerEvent = function (event) {
|
|
4210
|
+
this.events.next(event);
|
|
4211
|
+
};
|
|
4117
4212
|
/**
|
|
4118
4213
|
* Resets the configuration used for navigation and generating links.
|
|
4119
4214
|
*
|
|
@@ -4137,7 +4232,9 @@ var Router = /** @class */ (function () {
|
|
|
4137
4232
|
this.lastSuccessfulId = -1;
|
|
4138
4233
|
};
|
|
4139
4234
|
/** @docsNotRequired */
|
|
4140
|
-
Router.prototype.ngOnDestroy = function () {
|
|
4235
|
+
Router.prototype.ngOnDestroy = function () {
|
|
4236
|
+
this.dispose();
|
|
4237
|
+
};
|
|
4141
4238
|
/** Disposes of the router. */
|
|
4142
4239
|
Router.prototype.dispose = function () {
|
|
4143
4240
|
if (this.locationSubscription) {
|
|
@@ -4282,7 +4379,9 @@ var Router = /** @class */ (function () {
|
|
|
4282
4379
|
return this.navigateByUrl(this.createUrlTree(commands, extras), extras);
|
|
4283
4380
|
};
|
|
4284
4381
|
/** Serializes a `UrlTree` into a string */
|
|
4285
|
-
Router.prototype.serializeUrl = function (url) {
|
|
4382
|
+
Router.prototype.serializeUrl = function (url) {
|
|
4383
|
+
return this.urlSerializer.serialize(url);
|
|
4384
|
+
};
|
|
4286
4385
|
/** Parses a string into a `UrlTree` */
|
|
4287
4386
|
Router.prototype.parseUrl = function (url) {
|
|
4288
4387
|
var urlTree;
|
|
@@ -4321,7 +4420,9 @@ var Router = /** @class */ (function () {
|
|
|
4321
4420
|
_this.lastSuccessfulNavigation = _this.currentNavigation;
|
|
4322
4421
|
_this.currentNavigation = null;
|
|
4323
4422
|
t.resolve(true);
|
|
4324
|
-
}, function (e) {
|
|
4423
|
+
}, function (e) {
|
|
4424
|
+
_this.console.warn("Unhandled Navigation Error: ");
|
|
4425
|
+
});
|
|
4325
4426
|
};
|
|
4326
4427
|
Router.prototype.scheduleNavigation = function (rawUrl, source, restoredState, extras, priorPromise) {
|
|
4327
4428
|
var lastNavigation = this.getTransition();
|
|
@@ -4366,13 +4467,20 @@ var Router = /** @class */ (function () {
|
|
|
4366
4467
|
source: source,
|
|
4367
4468
|
restoredState: restoredState,
|
|
4368
4469
|
currentUrlTree: this.currentUrlTree,
|
|
4369
|
-
currentRawUrl: this.rawUrlTree,
|
|
4470
|
+
currentRawUrl: this.rawUrlTree,
|
|
4471
|
+
rawUrl: rawUrl,
|
|
4472
|
+
extras: extras,
|
|
4473
|
+
resolve: resolve,
|
|
4474
|
+
reject: reject,
|
|
4475
|
+
promise: promise,
|
|
4370
4476
|
currentSnapshot: this.routerState.snapshot,
|
|
4371
4477
|
currentRouterState: this.routerState
|
|
4372
4478
|
});
|
|
4373
4479
|
// Make sure that the error is propagated even though `processNavigations` catch
|
|
4374
4480
|
// handler does not rethrow
|
|
4375
|
-
return promise.catch(function (e) {
|
|
4481
|
+
return promise.catch(function (e) {
|
|
4482
|
+
return Promise.reject(e);
|
|
4483
|
+
});
|
|
4376
4484
|
};
|
|
4377
4485
|
Router.prototype.setBrowserUrl = function (url, replaceUrl, id, state) {
|
|
4378
4486
|
var path = this.urlSerializer.serialize(url);
|
|
@@ -4544,6 +4652,7 @@ var RouterLink = /** @class */ (function () {
|
|
|
4544
4652
|
var extras = {
|
|
4545
4653
|
skipLocationChange: attrBoolValue(this.skipLocationChange),
|
|
4546
4654
|
replaceUrl: attrBoolValue(this.replaceUrl),
|
|
4655
|
+
state: this.state,
|
|
4547
4656
|
};
|
|
4548
4657
|
this.router.navigateByUrl(this.urlTree, extras);
|
|
4549
4658
|
return true;
|
|
@@ -4659,8 +4768,12 @@ var RouterLinkWithHref = /** @class */ (function () {
|
|
|
4659
4768
|
enumerable: true,
|
|
4660
4769
|
configurable: true
|
|
4661
4770
|
});
|
|
4662
|
-
RouterLinkWithHref.prototype.ngOnChanges = function (changes) {
|
|
4663
|
-
|
|
4771
|
+
RouterLinkWithHref.prototype.ngOnChanges = function (changes) {
|
|
4772
|
+
this.updateTargetUrlAndHref();
|
|
4773
|
+
};
|
|
4774
|
+
RouterLinkWithHref.prototype.ngOnDestroy = function () {
|
|
4775
|
+
this.subscription.unsubscribe();
|
|
4776
|
+
};
|
|
4664
4777
|
RouterLinkWithHref.prototype.onClick = function (button, ctrlKey, metaKey, shiftKey) {
|
|
4665
4778
|
if (button !== 0 || ctrlKey || metaKey || shiftKey) {
|
|
4666
4779
|
return true;
|
|
@@ -4851,8 +4964,12 @@ var RouterLinkActive = /** @class */ (function () {
|
|
|
4851
4964
|
enumerable: true,
|
|
4852
4965
|
configurable: true
|
|
4853
4966
|
});
|
|
4854
|
-
RouterLinkActive.prototype.ngOnChanges = function (changes) {
|
|
4855
|
-
|
|
4967
|
+
RouterLinkActive.prototype.ngOnChanges = function (changes) {
|
|
4968
|
+
this.update();
|
|
4969
|
+
};
|
|
4970
|
+
RouterLinkActive.prototype.ngOnDestroy = function () {
|
|
4971
|
+
this.subscription.unsubscribe();
|
|
4972
|
+
};
|
|
4856
4973
|
RouterLinkActive.prototype.update = function () {
|
|
4857
4974
|
var _this = this;
|
|
4858
4975
|
if (!this.links || !this.linksWithHrefs || !this.router.navigated)
|
|
@@ -4973,7 +5090,9 @@ var ChildrenOutletContexts = /** @class */ (function () {
|
|
|
4973
5090
|
this.contexts = new Map();
|
|
4974
5091
|
return contexts;
|
|
4975
5092
|
};
|
|
4976
|
-
ChildrenOutletContexts.prototype.onOutletReAttached = function (contexts) {
|
|
5093
|
+
ChildrenOutletContexts.prototype.onOutletReAttached = function (contexts) {
|
|
5094
|
+
this.contexts = contexts;
|
|
5095
|
+
};
|
|
4977
5096
|
ChildrenOutletContexts.prototype.getOrCreateContext = function (childName) {
|
|
4978
5097
|
var context = this.getContext(childName);
|
|
4979
5098
|
if (!context) {
|
|
@@ -4982,7 +5101,9 @@ var ChildrenOutletContexts = /** @class */ (function () {
|
|
|
4982
5101
|
}
|
|
4983
5102
|
return context;
|
|
4984
5103
|
};
|
|
4985
|
-
ChildrenOutletContexts.prototype.getContext = function (childName) {
|
|
5104
|
+
ChildrenOutletContexts.prototype.getContext = function (childName) {
|
|
5105
|
+
return this.contexts.get(childName) || null;
|
|
5106
|
+
};
|
|
4986
5107
|
return ChildrenOutletContexts;
|
|
4987
5108
|
}());
|
|
4988
5109
|
|
|
@@ -5032,7 +5153,9 @@ var RouterOutlet = /** @class */ (function () {
|
|
|
5032
5153
|
this.name = name || PRIMARY_OUTLET;
|
|
5033
5154
|
parentContexts.onChildOutletCreated(this.name, this);
|
|
5034
5155
|
}
|
|
5035
|
-
RouterOutlet.prototype.ngOnDestroy = function () {
|
|
5156
|
+
RouterOutlet.prototype.ngOnDestroy = function () {
|
|
5157
|
+
this.parentContexts.onChildOutletDestroyed(this.name);
|
|
5158
|
+
};
|
|
5036
5159
|
RouterOutlet.prototype.ngOnInit = function () {
|
|
5037
5160
|
if (!this.activated) {
|
|
5038
5161
|
// If the outlet was not instantiated at the time the route got activated we need to populate
|
|
@@ -5051,7 +5174,9 @@ var RouterOutlet = /** @class */ (function () {
|
|
|
5051
5174
|
}
|
|
5052
5175
|
};
|
|
5053
5176
|
Object.defineProperty(RouterOutlet.prototype, "isActivated", {
|
|
5054
|
-
get: function () {
|
|
5177
|
+
get: function () {
|
|
5178
|
+
return !!this.activated;
|
|
5179
|
+
},
|
|
5055
5180
|
enumerable: true,
|
|
5056
5181
|
configurable: true
|
|
5057
5182
|
});
|
|
@@ -5164,12 +5289,12 @@ var OutletInjector = /** @class */ (function () {
|
|
|
5164
5289
|
}());
|
|
5165
5290
|
|
|
5166
5291
|
/**
|
|
5167
|
-
*@license
|
|
5168
|
-
*Copyright Google Inc. All Rights Reserved.
|
|
5169
|
-
*
|
|
5170
|
-
*Use of this source code is governed by an MIT-style license that can be
|
|
5171
|
-
*found in the LICENSE file at https://angular.io/license
|
|
5172
|
-
*/
|
|
5292
|
+
*@license
|
|
5293
|
+
*Copyright Google Inc. All Rights Reserved.
|
|
5294
|
+
*
|
|
5295
|
+
*Use of this source code is governed by an MIT-style license that can be
|
|
5296
|
+
*found in the LICENSE file at https://angular.io/license
|
|
5297
|
+
*/
|
|
5173
5298
|
/**
|
|
5174
5299
|
* @description
|
|
5175
5300
|
*
|
|
@@ -5213,7 +5338,9 @@ var PreloadAllModules = /** @class */ (function () {
|
|
|
5213
5338
|
var NoPreloading = /** @class */ (function () {
|
|
5214
5339
|
function NoPreloading() {
|
|
5215
5340
|
}
|
|
5216
|
-
NoPreloading.prototype.preload = function (route, fn) {
|
|
5341
|
+
NoPreloading.prototype.preload = function (route, fn) {
|
|
5342
|
+
return of(null);
|
|
5343
|
+
};
|
|
5217
5344
|
return NoPreloading;
|
|
5218
5345
|
}());
|
|
5219
5346
|
/**
|
|
@@ -5251,7 +5378,9 @@ var RouterPreloader = /** @class */ (function () {
|
|
|
5251
5378
|
// TODO(jasonaden): This class relies on code external to the class to call setUpPreloading. If
|
|
5252
5379
|
// this hasn't been done, ngOnDestroy will fail as this.subscription will be undefined. This
|
|
5253
5380
|
// should be refactored.
|
|
5254
|
-
RouterPreloader.prototype.ngOnDestroy = function () {
|
|
5381
|
+
RouterPreloader.prototype.ngOnDestroy = function () {
|
|
5382
|
+
this.subscription.unsubscribe();
|
|
5383
|
+
};
|
|
5255
5384
|
RouterPreloader.prototype.processRoutes = function (ngModule, routes) {
|
|
5256
5385
|
var e_1, _a;
|
|
5257
5386
|
var res = [];
|
|
@@ -5494,7 +5623,7 @@ var RouterModule = /** @class */ (function () {
|
|
|
5494
5623
|
* @param routes An array of `Route` objects that define the navigation paths for the application.
|
|
5495
5624
|
* @param config An `ExtraOptions` configuration object that controls how navigation is performed.
|
|
5496
5625
|
* @return The new router module.
|
|
5497
|
-
|
|
5626
|
+
*/
|
|
5498
5627
|
RouterModule.forRoot = function (routes, config) {
|
|
5499
5628
|
return {
|
|
5500
5629
|
ngModule: RouterModule_1,
|
|
@@ -5510,9 +5639,7 @@ var RouterModule = /** @class */ (function () {
|
|
|
5510
5639
|
{
|
|
5511
5640
|
provide: LocationStrategy,
|
|
5512
5641
|
useFactory: provideLocationStrategy,
|
|
5513
|
-
deps: [
|
|
5514
|
-
PlatformLocation, [new Inject(APP_BASE_HREF), new Optional()], ROUTER_CONFIGURATION
|
|
5515
|
-
]
|
|
5642
|
+
deps: [PlatformLocation, [new Inject(APP_BASE_HREF), new Optional()], ROUTER_CONFIGURATION]
|
|
5516
5643
|
},
|
|
5517
5644
|
{
|
|
5518
5645
|
provide: RouterScroller,
|
|
@@ -5751,7 +5878,7 @@ function provideRouterInitializer() {
|
|
|
5751
5878
|
/**
|
|
5752
5879
|
* @publicApi
|
|
5753
5880
|
*/
|
|
5754
|
-
var VERSION = new Version('9.1.
|
|
5881
|
+
var VERSION = new Version('9.1.4');
|
|
5755
5882
|
|
|
5756
5883
|
/**
|
|
5757
5884
|
* @license
|