@angular/router 16.0.0-next.2 → 16.0.0-next.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/esm2020/src/components/empty_outlet.mjs +3 -3
- package/esm2020/src/create_url_tree.mjs +1 -38
- package/esm2020/src/directives/router_link.mjs +3 -3
- package/esm2020/src/directives/router_link_active.mjs +3 -3
- package/esm2020/src/directives/router_outlet.mjs +10 -16
- package/esm2020/src/index.mjs +2 -1
- package/esm2020/src/models_deprecated.mjs +9 -0
- package/esm2020/src/navigation_transition.mjs +3 -3
- package/esm2020/src/operators/activate_routes.mjs +1 -5
- package/esm2020/src/page_title_strategy.mjs +6 -6
- package/esm2020/src/recognize.mjs +4 -31
- package/esm2020/src/route_reuse_strategy.mjs +6 -6
- package/esm2020/src/router.mjs +29 -8
- package/esm2020/src/router_config_loader.mjs +8 -14
- package/esm2020/src/router_module.mjs +4 -4
- package/esm2020/src/router_outlet_context.mjs +4 -9
- package/esm2020/src/router_preloader.mjs +9 -9
- package/esm2020/src/router_scroller.mjs +3 -3
- package/esm2020/src/router_state.mjs +3 -5
- package/esm2020/src/url_handling_strategy.mjs +6 -6
- package/esm2020/src/url_tree.mjs +4 -4
- package/esm2020/src/utils/config_matching.mjs +3 -15
- package/esm2020/src/version.mjs +1 -1
- package/esm2020/testing/src/router_testing_harness.mjs +6 -6
- package/esm2020/testing/src/router_testing_module.mjs +4 -4
- package/fesm2015/router.mjs +113 -265
- package/fesm2015/router.mjs.map +1 -1
- package/fesm2015/testing.mjs +11 -11
- package/fesm2015/upgrade.mjs +1 -1
- package/fesm2020/router.mjs +113 -260
- package/fesm2020/router.mjs.map +1 -1
- package/fesm2020/testing.mjs +11 -11
- package/fesm2020/upgrade.mjs +1 -1
- package/index.d.ts +6 -23
- package/package.json +4 -4
- package/testing/index.d.ts +1 -1
- package/upgrade/index.d.ts +1 -1
- package/esm2020/src/create_url_tree_strategy.mjs +0 -78
- package/esm2020/src/deprecated_load_children.mjs +0 -13
package/fesm2015/router.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v16.0.0-next.
|
|
2
|
+
* @license Angular v16.0.0-next.4
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
|
-
import { ɵisPromise, ɵRuntimeError, Injectable, EventEmitter, inject, ViewContainerRef, ChangeDetectorRef, EnvironmentInjector, Directive, Input, Output, Component, createEnvironmentInjector, ɵisNgModule, isStandalone,
|
|
8
|
+
import { ɵisPromise, ɵRuntimeError, Injectable, EventEmitter, inject, ViewContainerRef, ChangeDetectorRef, EnvironmentInjector, Directive, Input, Output, Component, createEnvironmentInjector, ɵisNgModule, isStandalone, ɵisInjectable, InjectionToken, Compiler, InjectFlags, NgModuleFactory, ɵConsole, NgZone, ɵcoerceToBoolean, ɵɵsanitizeUrlOrResourceUrl, Attribute, HostBinding, HostListener, Optional, ContentChildren, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, Injector, ApplicationRef, APP_INITIALIZER, NgProbeToken, SkipSelf, NgModule, Inject, Version } from '@angular/core';
|
|
9
9
|
import { isObservable, from, of, BehaviorSubject, EmptyError, combineLatest, concat, defer, pipe, throwError, Observable, EMPTY, ConnectableObservable, Subject } from 'rxjs';
|
|
10
10
|
import * as i3 from '@angular/common';
|
|
11
11
|
import { Location, ViewportScroller, LOCATION_INITIALIZED, LocationStrategy, HashLocationStrategy, PathLocationStrategy } from '@angular/common';
|
|
@@ -162,7 +162,7 @@ function wrapIntoObservable(value) {
|
|
|
162
162
|
return of(value);
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
-
const NG_DEV_MODE$
|
|
165
|
+
const NG_DEV_MODE$a = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
166
166
|
const pathCompareMap = {
|
|
167
167
|
'exact': equalSegmentGroups,
|
|
168
168
|
'subset': containsSegmentGroup,
|
|
@@ -287,7 +287,7 @@ class UrlTree {
|
|
|
287
287
|
this.root = root;
|
|
288
288
|
this.queryParams = queryParams;
|
|
289
289
|
this.fragment = fragment;
|
|
290
|
-
if (NG_DEV_MODE$
|
|
290
|
+
if (NG_DEV_MODE$a) {
|
|
291
291
|
if (root.segments.length > 0) {
|
|
292
292
|
throw new ɵRuntimeError(4015 /* RuntimeErrorCode.INVALID_ROOT_URL_SEGMENT */, 'The root `UrlSegmentGroup` should not contain `segments`. ' +
|
|
293
293
|
'Instead, these segments belong in the `children` so they can be associated with a named outlet.');
|
|
@@ -421,9 +421,9 @@ function mapChildrenIntoArray(segment, fn) {
|
|
|
421
421
|
*/
|
|
422
422
|
class UrlSerializer {
|
|
423
423
|
}
|
|
424
|
-
UrlSerializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
425
|
-
UrlSerializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
426
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
424
|
+
UrlSerializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
425
|
+
UrlSerializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });
|
|
426
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: UrlSerializer, decorators: [{
|
|
427
427
|
type: Injectable,
|
|
428
428
|
args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
|
|
429
429
|
}] });
|
|
@@ -635,7 +635,7 @@ class UrlParser {
|
|
|
635
635
|
parseSegment() {
|
|
636
636
|
const path = matchSegments(this.remaining);
|
|
637
637
|
if (path === '' && this.peekStartsWith(';')) {
|
|
638
|
-
throw new ɵRuntimeError(4009 /* RuntimeErrorCode.EMPTY_PATH_WITH_PARAMS */, NG_DEV_MODE$
|
|
638
|
+
throw new ɵRuntimeError(4009 /* RuntimeErrorCode.EMPTY_PATH_WITH_PARAMS */, NG_DEV_MODE$a && `Empty path url segment cannot have parameters: '${this.remaining}'.`);
|
|
639
639
|
}
|
|
640
640
|
this.capture(path);
|
|
641
641
|
return new UrlSegment(decode(path), this.parseMatrixParams());
|
|
@@ -704,7 +704,7 @@ class UrlParser {
|
|
|
704
704
|
// if is is not one of these characters, then the segment was unescaped
|
|
705
705
|
// or the group was not closed
|
|
706
706
|
if (next !== '/' && next !== ')' && next !== ';') {
|
|
707
|
-
throw new ɵRuntimeError(4010 /* RuntimeErrorCode.UNPARSABLE_URL */, NG_DEV_MODE$
|
|
707
|
+
throw new ɵRuntimeError(4010 /* RuntimeErrorCode.UNPARSABLE_URL */, NG_DEV_MODE$a && `Cannot parse url '${this.url}'`);
|
|
708
708
|
}
|
|
709
709
|
let outletName = undefined;
|
|
710
710
|
if (path.indexOf(':') > -1) {
|
|
@@ -735,7 +735,7 @@ class UrlParser {
|
|
|
735
735
|
}
|
|
736
736
|
capture(str) {
|
|
737
737
|
if (!this.consumeOptional(str)) {
|
|
738
|
-
throw new ɵRuntimeError(4011 /* RuntimeErrorCode.UNEXPECTED_VALUE_IN_URL */, NG_DEV_MODE$
|
|
738
|
+
throw new ɵRuntimeError(4011 /* RuntimeErrorCode.UNEXPECTED_VALUE_IN_URL */, NG_DEV_MODE$a && `Expected "${str}".`);
|
|
739
739
|
}
|
|
740
740
|
}
|
|
741
741
|
}
|
|
@@ -781,7 +781,7 @@ function isUrlTree(v) {
|
|
|
781
781
|
return v instanceof UrlTree;
|
|
782
782
|
}
|
|
783
783
|
|
|
784
|
-
const NG_DEV_MODE$
|
|
784
|
+
const NG_DEV_MODE$9 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
785
785
|
/**
|
|
786
786
|
* Creates a `UrlTree` relative to an `ActivatedRouteSnapshot`.
|
|
787
787
|
*
|
|
@@ -876,30 +876,6 @@ function createUrlTreeFromSegmentGroup(relativeTo, commands, queryParams, fragme
|
|
|
876
876
|
updateSegmentGroup(position.segmentGroup, position.index, nav.commands);
|
|
877
877
|
return tree(root, position.segmentGroup, newSegmentGroup, queryParams, fragment);
|
|
878
878
|
}
|
|
879
|
-
function createUrlTree(route, urlTree, commands, queryParams, fragment) {
|
|
880
|
-
var _a;
|
|
881
|
-
if (commands.length === 0) {
|
|
882
|
-
return tree(urlTree.root, urlTree.root, urlTree.root, queryParams, fragment);
|
|
883
|
-
}
|
|
884
|
-
const nav = computeNavigation(commands);
|
|
885
|
-
if (nav.toRoot()) {
|
|
886
|
-
return tree(urlTree.root, urlTree.root, new UrlSegmentGroup([], {}), queryParams, fragment);
|
|
887
|
-
}
|
|
888
|
-
function createTreeUsingPathIndex(lastPathIndex) {
|
|
889
|
-
var _a;
|
|
890
|
-
const startingPosition = findStartingPosition(nav, urlTree, (_a = route.snapshot) === null || _a === void 0 ? void 0 : _a._urlSegment, lastPathIndex);
|
|
891
|
-
const segmentGroup = startingPosition.processChildren ?
|
|
892
|
-
updateSegmentGroupChildren(startingPosition.segmentGroup, startingPosition.index, nav.commands) :
|
|
893
|
-
updateSegmentGroup(startingPosition.segmentGroup, startingPosition.index, nav.commands);
|
|
894
|
-
return tree(urlTree.root, startingPosition.segmentGroup, segmentGroup, queryParams, fragment);
|
|
895
|
-
}
|
|
896
|
-
// Note: The types should disallow `snapshot` from being `undefined` but due to test mocks, this
|
|
897
|
-
// may be the case. Since we try to access it at an earlier point before the refactor to add the
|
|
898
|
-
// warning for `relativeLinkResolution: 'legacy'`, this may cause failures in tests where it
|
|
899
|
-
// didn't before.
|
|
900
|
-
const result = createTreeUsingPathIndex((_a = route.snapshot) === null || _a === void 0 ? void 0 : _a._lastPathIndex);
|
|
901
|
-
return result;
|
|
902
|
-
}
|
|
903
879
|
function isMatrixParams(command) {
|
|
904
880
|
return typeof command === 'object' && command != null && !command.outlets && !command.segmentPath;
|
|
905
881
|
}
|
|
@@ -952,11 +928,11 @@ class Navigation {
|
|
|
952
928
|
this.numberOfDoubleDots = numberOfDoubleDots;
|
|
953
929
|
this.commands = commands;
|
|
954
930
|
if (isAbsolute && commands.length > 0 && isMatrixParams(commands[0])) {
|
|
955
|
-
throw new ɵRuntimeError(4003 /* RuntimeErrorCode.ROOT_SEGMENT_MATRIX_PARAMS */, NG_DEV_MODE$
|
|
931
|
+
throw new ɵRuntimeError(4003 /* RuntimeErrorCode.ROOT_SEGMENT_MATRIX_PARAMS */, NG_DEV_MODE$9 && 'Root segment cannot have matrix parameters');
|
|
956
932
|
}
|
|
957
933
|
const cmdWithOutlet = commands.find(isCommandWithOutlets);
|
|
958
934
|
if (cmdWithOutlet && cmdWithOutlet !== last(commands)) {
|
|
959
|
-
throw new ɵRuntimeError(4004 /* RuntimeErrorCode.MISPLACED_OUTLETS_COMMAND */, NG_DEV_MODE$
|
|
935
|
+
throw new ɵRuntimeError(4004 /* RuntimeErrorCode.MISPLACED_OUTLETS_COMMAND */, NG_DEV_MODE$9 && '{outlets:{}} has to be the last command');
|
|
960
936
|
}
|
|
961
937
|
}
|
|
962
938
|
toRoot() {
|
|
@@ -1032,21 +1008,6 @@ function findStartingPositionForTargetGroup(nav, root, target) {
|
|
|
1032
1008
|
const index = target.segments.length - 1 + modifier;
|
|
1033
1009
|
return createPositionApplyingDoubleDots(target, index, nav.numberOfDoubleDots);
|
|
1034
1010
|
}
|
|
1035
|
-
function findStartingPosition(nav, tree, segmentGroup, lastPathIndex) {
|
|
1036
|
-
if (nav.isAbsolute) {
|
|
1037
|
-
return new Position(tree.root, true, 0);
|
|
1038
|
-
}
|
|
1039
|
-
if (lastPathIndex === -1) {
|
|
1040
|
-
// Pathless ActivatedRoute has _lastPathIndex === -1 but should not process children
|
|
1041
|
-
// see issue #26224, #13011, #35687
|
|
1042
|
-
// However, if the ActivatedRoute is the root we should process children like above.
|
|
1043
|
-
const processChildren = segmentGroup === tree.root;
|
|
1044
|
-
return new Position(segmentGroup, processChildren, 0);
|
|
1045
|
-
}
|
|
1046
|
-
const modifier = isMatrixParams(nav.commands[0]) ? 0 : 1;
|
|
1047
|
-
const index = lastPathIndex + modifier;
|
|
1048
|
-
return createPositionApplyingDoubleDots(segmentGroup, index, nav.numberOfDoubleDots);
|
|
1049
|
-
}
|
|
1050
1011
|
function createPositionApplyingDoubleDots(group, index, numberOfDoubleDots) {
|
|
1051
1012
|
let g = group;
|
|
1052
1013
|
let ci = index;
|
|
@@ -1055,7 +1016,7 @@ function createPositionApplyingDoubleDots(group, index, numberOfDoubleDots) {
|
|
|
1055
1016
|
dd -= ci;
|
|
1056
1017
|
g = g.parent;
|
|
1057
1018
|
if (!g) {
|
|
1058
|
-
throw new ɵRuntimeError(4005 /* RuntimeErrorCode.INVALID_DOUBLE_DOTS */, NG_DEV_MODE$
|
|
1019
|
+
throw new ɵRuntimeError(4005 /* RuntimeErrorCode.INVALID_DOUBLE_DOTS */, NG_DEV_MODE$9 && 'Invalid number of \'../\'');
|
|
1059
1020
|
}
|
|
1060
1021
|
ci = g.segments.length;
|
|
1061
1022
|
}
|
|
@@ -1728,71 +1689,6 @@ function stringifyEvent(routerEvent) {
|
|
|
1728
1689
|
}
|
|
1729
1690
|
}
|
|
1730
1691
|
|
|
1731
|
-
const NG_DEV_MODE$9 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
1732
|
-
class LegacyCreateUrlTree {
|
|
1733
|
-
createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment) {
|
|
1734
|
-
const a = relativeTo || currentState.root;
|
|
1735
|
-
const tree = createUrlTree(a, currentUrlTree, commands, queryParams, fragment);
|
|
1736
|
-
if (NG_DEV_MODE$9) {
|
|
1737
|
-
const treeFromSnapshotStrategy = new CreateUrlTreeUsingSnapshot().createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment);
|
|
1738
|
-
if (treeFromSnapshotStrategy.toString() !== tree.toString()) {
|
|
1739
|
-
let warningString = `The navigation to ${tree.toString()} will instead go to ${treeFromSnapshotStrategy.toString()} in an upcoming version of Angular.`;
|
|
1740
|
-
if (!!relativeTo) {
|
|
1741
|
-
warningString += ' `relativeTo` might need to be removed from the `UrlCreationOptions`.';
|
|
1742
|
-
}
|
|
1743
|
-
tree._warnIfUsedForNavigation = warningString;
|
|
1744
|
-
}
|
|
1745
|
-
}
|
|
1746
|
-
return tree;
|
|
1747
|
-
}
|
|
1748
|
-
}
|
|
1749
|
-
LegacyCreateUrlTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LegacyCreateUrlTree, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1750
|
-
LegacyCreateUrlTree.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LegacyCreateUrlTree });
|
|
1751
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LegacyCreateUrlTree, decorators: [{
|
|
1752
|
-
type: Injectable
|
|
1753
|
-
}] });
|
|
1754
|
-
class CreateUrlTreeUsingSnapshot {
|
|
1755
|
-
createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment) {
|
|
1756
|
-
let relativeToUrlSegmentGroup;
|
|
1757
|
-
try {
|
|
1758
|
-
const relativeToSnapshot = relativeTo ? relativeTo.snapshot : currentState.snapshot.root;
|
|
1759
|
-
relativeToUrlSegmentGroup = createSegmentGroupFromRoute(relativeToSnapshot);
|
|
1760
|
-
}
|
|
1761
|
-
catch (e) {
|
|
1762
|
-
// This is strictly for backwards compatibility with tests that create
|
|
1763
|
-
// invalid `ActivatedRoute` mocks.
|
|
1764
|
-
// Note: the difference between having this fallback for invalid `ActivatedRoute` setups and
|
|
1765
|
-
// just throwing is ~500 test failures. Fixing all of those tests by hand is not feasible at
|
|
1766
|
-
// the moment.
|
|
1767
|
-
if (typeof commands[0] !== 'string' || !commands[0].startsWith('/')) {
|
|
1768
|
-
// Navigations that were absolute in the old way of creating UrlTrees
|
|
1769
|
-
// would still work because they wouldn't attempt to match the
|
|
1770
|
-
// segments in the `ActivatedRoute` to the `currentUrlTree` but
|
|
1771
|
-
// instead just replace the root segment with the navigation result.
|
|
1772
|
-
// Non-absolute navigations would fail to apply the commands because
|
|
1773
|
-
// the logic could not find the segment to replace (so they'd act like there were no
|
|
1774
|
-
// commands).
|
|
1775
|
-
commands = [];
|
|
1776
|
-
}
|
|
1777
|
-
relativeToUrlSegmentGroup = currentUrlTree.root;
|
|
1778
|
-
}
|
|
1779
|
-
return createUrlTreeFromSegmentGroup(relativeToUrlSegmentGroup, commands, queryParams, fragment);
|
|
1780
|
-
}
|
|
1781
|
-
}
|
|
1782
|
-
CreateUrlTreeUsingSnapshot.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeUsingSnapshot, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1783
|
-
CreateUrlTreeUsingSnapshot.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeUsingSnapshot });
|
|
1784
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeUsingSnapshot, decorators: [{
|
|
1785
|
-
type: Injectable
|
|
1786
|
-
}] });
|
|
1787
|
-
class CreateUrlTreeStrategy {
|
|
1788
|
-
}
|
|
1789
|
-
CreateUrlTreeStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1790
|
-
CreateUrlTreeStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeStrategy, providedIn: 'root', useClass: CreateUrlTreeUsingSnapshot });
|
|
1791
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeStrategy, decorators: [{
|
|
1792
|
-
type: Injectable,
|
|
1793
|
-
args: [{ providedIn: 'root', useClass: CreateUrlTreeUsingSnapshot }]
|
|
1794
|
-
}] });
|
|
1795
|
-
|
|
1796
1692
|
class Tree {
|
|
1797
1693
|
constructor(root) {
|
|
1798
1694
|
this._root = root;
|
|
@@ -1940,7 +1836,7 @@ function createEmptyStateSnapshot(urlTree, rootComponent) {
|
|
|
1940
1836
|
const emptyData = {};
|
|
1941
1837
|
const emptyQueryParams = {};
|
|
1942
1838
|
const fragment = '';
|
|
1943
|
-
const activated = new ActivatedRouteSnapshot([], emptyParams, emptyQueryParams, fragment, emptyData, PRIMARY_OUTLET, rootComponent, null,
|
|
1839
|
+
const activated = new ActivatedRouteSnapshot([], emptyParams, emptyQueryParams, fragment, emptyData, PRIMARY_OUTLET, rootComponent, null, {});
|
|
1944
1840
|
return new RouterStateSnapshot('', new TreeNode(activated, []));
|
|
1945
1841
|
}
|
|
1946
1842
|
/**
|
|
@@ -2143,7 +2039,7 @@ class ActivatedRouteSnapshot {
|
|
|
2143
2039
|
/** The outlet name of the route */
|
|
2144
2040
|
outlet,
|
|
2145
2041
|
/** The component of the route */
|
|
2146
|
-
component, routeConfig,
|
|
2042
|
+
component, routeConfig, resolve) {
|
|
2147
2043
|
this.url = url;
|
|
2148
2044
|
this.params = params;
|
|
2149
2045
|
this.queryParams = queryParams;
|
|
@@ -2152,8 +2048,6 @@ class ActivatedRouteSnapshot {
|
|
|
2152
2048
|
this.outlet = outlet;
|
|
2153
2049
|
this.component = component;
|
|
2154
2050
|
this.routeConfig = routeConfig;
|
|
2155
|
-
this._urlSegment = urlSegment;
|
|
2156
|
-
this._lastPathIndex = lastPathIndex;
|
|
2157
2051
|
this._resolve = resolve;
|
|
2158
2052
|
}
|
|
2159
2053
|
/** The root of the router state */
|
|
@@ -2356,11 +2250,6 @@ class OutletContext {
|
|
|
2356
2250
|
constructor() {
|
|
2357
2251
|
this.outlet = null;
|
|
2358
2252
|
this.route = null;
|
|
2359
|
-
/**
|
|
2360
|
-
* @deprecated Passing a resolver to retrieve a component factory is not required and is
|
|
2361
|
-
* deprecated since v14.
|
|
2362
|
-
*/
|
|
2363
|
-
this.resolver = null;
|
|
2364
2253
|
this.injector = null;
|
|
2365
2254
|
this.children = new ChildrenOutletContexts();
|
|
2366
2255
|
this.attachRef = null;
|
|
@@ -2418,9 +2307,9 @@ class ChildrenOutletContexts {
|
|
|
2418
2307
|
return this.contexts.get(childName) || null;
|
|
2419
2308
|
}
|
|
2420
2309
|
}
|
|
2421
|
-
ChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2422
|
-
ChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2423
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2310
|
+
ChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2311
|
+
ChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
|
|
2312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
|
|
2424
2313
|
type: Injectable,
|
|
2425
2314
|
args: [{ providedIn: 'root' }]
|
|
2426
2315
|
}] });
|
|
@@ -2610,7 +2499,7 @@ class RouterOutlet {
|
|
|
2610
2499
|
this.deactivateEvents.emit(c);
|
|
2611
2500
|
}
|
|
2612
2501
|
}
|
|
2613
|
-
activateWith(activatedRoute,
|
|
2502
|
+
activateWith(activatedRoute, environmentInjector) {
|
|
2614
2503
|
if (this.isActivated) {
|
|
2615
2504
|
throw new ɵRuntimeError(4013 /* RuntimeErrorCode.OUTLET_ALREADY_ACTIVATED */, NG_DEV_MODE$8 && 'Cannot activate an already activated outlet');
|
|
2616
2505
|
}
|
|
@@ -2620,23 +2509,20 @@ class RouterOutlet {
|
|
|
2620
2509
|
const component = snapshot.component;
|
|
2621
2510
|
const childContexts = this.parentContexts.getOrCreateContext(this.name).children;
|
|
2622
2511
|
const injector = new OutletInjector(activatedRoute, childContexts, location.injector);
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
const environmentInjector = resolverOrInjector !== null && resolverOrInjector !== void 0 ? resolverOrInjector : this.environmentInjector;
|
|
2629
|
-
this.activated = location.createComponent(component, { index: location.length, injector, environmentInjector });
|
|
2630
|
-
}
|
|
2512
|
+
this.activated = location.createComponent(component, {
|
|
2513
|
+
index: location.length,
|
|
2514
|
+
injector,
|
|
2515
|
+
environmentInjector: environmentInjector !== null && environmentInjector !== void 0 ? environmentInjector : this.environmentInjector
|
|
2516
|
+
});
|
|
2631
2517
|
// Calling `markForCheck` to make sure we will run the change detection when the
|
|
2632
2518
|
// `RouterOutlet` is inside a `ChangeDetectionStrategy.OnPush` component.
|
|
2633
2519
|
this.changeDetector.markForCheck();
|
|
2634
2520
|
this.activateEvents.emit(this.activated.instance);
|
|
2635
2521
|
}
|
|
2636
2522
|
}
|
|
2637
|
-
RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2638
|
-
RouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.
|
|
2639
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2523
|
+
RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2524
|
+
RouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.4", type: RouterOutlet, isStandalone: true, selector: "router-outlet", inputs: { name: "name" }, outputs: { activateEvents: "activate", deactivateEvents: "deactivate", attachEvents: "attach", detachEvents: "detach" }, exportAs: ["outlet"], usesOnChanges: true, ngImport: i0 });
|
|
2525
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterOutlet, decorators: [{
|
|
2640
2526
|
type: Directive,
|
|
2641
2527
|
args: [{
|
|
2642
2528
|
selector: 'router-outlet',
|
|
@@ -2674,9 +2560,6 @@ class OutletInjector {
|
|
|
2674
2560
|
return this.parent.get(token, notFoundValue);
|
|
2675
2561
|
}
|
|
2676
2562
|
}
|
|
2677
|
-
function isComponentFactoryResolver(item) {
|
|
2678
|
-
return !!item.resolveComponentFactory;
|
|
2679
|
-
}
|
|
2680
2563
|
|
|
2681
2564
|
/**
|
|
2682
2565
|
* This component is used internally within the router to be a placeholder when an empty
|
|
@@ -2689,9 +2572,9 @@ function isComponentFactoryResolver(item) {
|
|
|
2689
2572
|
*/
|
|
2690
2573
|
class ɵEmptyOutletComponent {
|
|
2691
2574
|
}
|
|
2692
|
-
ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2693
|
-
ɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-next.
|
|
2694
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2575
|
+
ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2576
|
+
ɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-next.4", type: ɵEmptyOutletComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `<router-outlet></router-outlet>`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
2577
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
|
|
2695
2578
|
type: Component,
|
|
2696
2579
|
args: [{
|
|
2697
2580
|
template: `<router-outlet></router-outlet>`,
|
|
@@ -2986,7 +2869,6 @@ class ActivateRoutes {
|
|
|
2986
2869
|
// Clear the information about the attached component on the context but keep the reference to
|
|
2987
2870
|
// the outlet.
|
|
2988
2871
|
context.attachRef = null;
|
|
2989
|
-
context.resolver = null;
|
|
2990
2872
|
context.route = null;
|
|
2991
2873
|
}
|
|
2992
2874
|
}
|
|
@@ -3001,7 +2883,6 @@ class ActivateRoutes {
|
|
|
3001
2883
|
}
|
|
3002
2884
|
}
|
|
3003
2885
|
activateRoutes(futureNode, currNode, parentContexts) {
|
|
3004
|
-
var _a;
|
|
3005
2886
|
const future = futureNode.value;
|
|
3006
2887
|
const curr = currNode ? currNode.value : null;
|
|
3007
2888
|
advanceActivatedRoute(future);
|
|
@@ -3037,10 +2918,8 @@ class ActivateRoutes {
|
|
|
3037
2918
|
}
|
|
3038
2919
|
else {
|
|
3039
2920
|
const injector = getClosestRouteInjector(future.snapshot);
|
|
3040
|
-
const cmpFactoryResolver = (_a = injector === null || injector === void 0 ? void 0 : injector.get(ComponentFactoryResolver)) !== null && _a !== void 0 ? _a : null;
|
|
3041
2921
|
context.attachRef = null;
|
|
3042
2922
|
context.route = future;
|
|
3043
|
-
context.resolver = cmpFactoryResolver;
|
|
3044
2923
|
context.injector = injector;
|
|
3045
2924
|
if (context.outlet) {
|
|
3046
2925
|
// Activate the outlet when it has already been instantiated
|
|
@@ -3472,21 +3351,15 @@ function match(segmentGroup, route, segments) {
|
|
|
3472
3351
|
function split(segmentGroup, consumedSegments, slicedSegments, config) {
|
|
3473
3352
|
if (slicedSegments.length > 0 &&
|
|
3474
3353
|
containsEmptyPathMatchesWithNamedOutlets(segmentGroup, slicedSegments, config)) {
|
|
3475
|
-
const s = new UrlSegmentGroup(consumedSegments, createChildrenForEmptyPaths(
|
|
3476
|
-
s._sourceSegment = segmentGroup;
|
|
3477
|
-
s._segmentIndexShift = consumedSegments.length;
|
|
3354
|
+
const s = new UrlSegmentGroup(consumedSegments, createChildrenForEmptyPaths(config, new UrlSegmentGroup(slicedSegments, segmentGroup.children)));
|
|
3478
3355
|
return { segmentGroup: s, slicedSegments: [] };
|
|
3479
3356
|
}
|
|
3480
3357
|
if (slicedSegments.length === 0 &&
|
|
3481
3358
|
containsEmptyPathMatches(segmentGroup, slicedSegments, config)) {
|
|
3482
3359
|
const s = new UrlSegmentGroup(segmentGroup.segments, addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedSegments, config, segmentGroup.children));
|
|
3483
|
-
s._sourceSegment = segmentGroup;
|
|
3484
|
-
s._segmentIndexShift = consumedSegments.length;
|
|
3485
3360
|
return { segmentGroup: s, slicedSegments };
|
|
3486
3361
|
}
|
|
3487
3362
|
const s = new UrlSegmentGroup(segmentGroup.segments, segmentGroup.children);
|
|
3488
|
-
s._sourceSegment = segmentGroup;
|
|
3489
|
-
s._segmentIndexShift = consumedSegments.length;
|
|
3490
3363
|
return { segmentGroup: s, slicedSegments };
|
|
3491
3364
|
}
|
|
3492
3365
|
function addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedSegments, routes, children) {
|
|
@@ -3494,23 +3367,17 @@ function addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedS
|
|
|
3494
3367
|
for (const r of routes) {
|
|
3495
3368
|
if (emptyPathMatch(segmentGroup, slicedSegments, r) && !children[getOutlet(r)]) {
|
|
3496
3369
|
const s = new UrlSegmentGroup([], {});
|
|
3497
|
-
s._sourceSegment = segmentGroup;
|
|
3498
|
-
s._segmentIndexShift = consumedSegments.length;
|
|
3499
3370
|
res[getOutlet(r)] = s;
|
|
3500
3371
|
}
|
|
3501
3372
|
}
|
|
3502
3373
|
return Object.assign(Object.assign({}, children), res);
|
|
3503
3374
|
}
|
|
3504
|
-
function createChildrenForEmptyPaths(
|
|
3375
|
+
function createChildrenForEmptyPaths(routes, primarySegment) {
|
|
3505
3376
|
const res = {};
|
|
3506
3377
|
res[PRIMARY_OUTLET] = primarySegment;
|
|
3507
|
-
primarySegment._sourceSegment = segmentGroup;
|
|
3508
|
-
primarySegment._segmentIndexShift = consumedSegments.length;
|
|
3509
3378
|
for (const r of routes) {
|
|
3510
3379
|
if (r.path === '' && getOutlet(r) !== PRIMARY_OUTLET) {
|
|
3511
3380
|
const s = new UrlSegmentGroup([], {});
|
|
3512
|
-
s._sourceSegment = segmentGroup;
|
|
3513
|
-
s._segmentIndexShift = consumedSegments.length;
|
|
3514
3381
|
res[getOutlet(r)] = s;
|
|
3515
3382
|
}
|
|
3516
3383
|
}
|
|
@@ -3918,7 +3785,7 @@ class Recognizer {
|
|
|
3918
3785
|
}
|
|
3919
3786
|
// Use Object.freeze to prevent readers of the Router state from modifying it outside of a
|
|
3920
3787
|
// navigation, resulting in the router being out of sync with the browser.
|
|
3921
|
-
const root = new ActivatedRouteSnapshot([], Object.freeze({}), Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, {}, PRIMARY_OUTLET, this.rootComponentType, null,
|
|
3788
|
+
const root = new ActivatedRouteSnapshot([], Object.freeze({}), Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, {}, PRIMARY_OUTLET, this.rootComponentType, null, {});
|
|
3922
3789
|
const rootNode = new TreeNode(root, children);
|
|
3923
3790
|
const routeState = new RouterStateSnapshot(this.url, rootNode);
|
|
3924
3791
|
this.inheritParamsAndData(routeState._root);
|
|
@@ -3997,8 +3864,7 @@ class Recognizer {
|
|
|
3997
3864
|
let matchResult;
|
|
3998
3865
|
if (route.path === '**') {
|
|
3999
3866
|
const params = segments.length > 0 ? last(segments).parameters : {};
|
|
4000
|
-
const
|
|
4001
|
-
const snapshot = new ActivatedRouteSnapshot(segments, params, Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, getData(route), getOutlet(route), (_b = (_a = route.component) !== null && _a !== void 0 ? _a : route._loadedComponent) !== null && _b !== void 0 ? _b : null, route, getSourceSegmentGroup(rawSegment), pathIndexShift, getResolve(route));
|
|
3867
|
+
const snapshot = new ActivatedRouteSnapshot(segments, params, Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, getData(route), getOutlet(route), (_b = (_a = route.component) !== null && _a !== void 0 ? _a : route._loadedComponent) !== null && _b !== void 0 ? _b : null, route, getResolve(route));
|
|
4002
3868
|
matchResult = of({
|
|
4003
3869
|
snapshot,
|
|
4004
3870
|
consumedSegments: [],
|
|
@@ -4013,8 +3879,7 @@ class Recognizer {
|
|
|
4013
3879
|
if (!matched) {
|
|
4014
3880
|
return null;
|
|
4015
3881
|
}
|
|
4016
|
-
const
|
|
4017
|
-
const snapshot = new ActivatedRouteSnapshot(consumedSegments, parameters, Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, getData(route), getOutlet(route), (_b = (_a = route.component) !== null && _a !== void 0 ? _a : route._loadedComponent) !== null && _b !== void 0 ? _b : null, route, getSourceSegmentGroup(rawSegment), pathIndexShift, getResolve(route));
|
|
3882
|
+
const snapshot = new ActivatedRouteSnapshot(consumedSegments, parameters, Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, getData(route), getOutlet(route), (_b = (_a = route.component) !== null && _a !== void 0 ? _a : route._loadedComponent) !== null && _b !== void 0 ? _b : null, route, getResolve(route));
|
|
4018
3883
|
return { snapshot, consumedSegments, remainingSegments };
|
|
4019
3884
|
}));
|
|
4020
3885
|
}
|
|
@@ -4131,33 +3996,6 @@ function checkOutletNameUniqueness(nodes) {
|
|
|
4131
3996
|
names[n.value.outlet] = n.value;
|
|
4132
3997
|
});
|
|
4133
3998
|
}
|
|
4134
|
-
function getSourceSegmentGroup(segmentGroup) {
|
|
4135
|
-
let s = segmentGroup;
|
|
4136
|
-
while (s._sourceSegment) {
|
|
4137
|
-
s = s._sourceSegment;
|
|
4138
|
-
}
|
|
4139
|
-
return s;
|
|
4140
|
-
}
|
|
4141
|
-
function getPathIndexShift(segmentGroup) {
|
|
4142
|
-
var _a, _b;
|
|
4143
|
-
let s = segmentGroup;
|
|
4144
|
-
let res = (_a = s._segmentIndexShift) !== null && _a !== void 0 ? _a : 0;
|
|
4145
|
-
while (s._sourceSegment) {
|
|
4146
|
-
s = s._sourceSegment;
|
|
4147
|
-
res += (_b = s._segmentIndexShift) !== null && _b !== void 0 ? _b : 0;
|
|
4148
|
-
}
|
|
4149
|
-
return res - 1;
|
|
4150
|
-
}
|
|
4151
|
-
function getCorrectedPathIndexShift(segmentGroup) {
|
|
4152
|
-
var _a, _b, _c, _d;
|
|
4153
|
-
let s = segmentGroup;
|
|
4154
|
-
let res = (_b = (_a = s._segmentIndexShiftCorrected) !== null && _a !== void 0 ? _a : s._segmentIndexShift) !== null && _b !== void 0 ? _b : 0;
|
|
4155
|
-
while (s._sourceSegment) {
|
|
4156
|
-
s = s._sourceSegment;
|
|
4157
|
-
res += (_d = (_c = s._segmentIndexShiftCorrected) !== null && _c !== void 0 ? _c : s._segmentIndexShift) !== null && _d !== void 0 ? _d : 0;
|
|
4158
|
-
}
|
|
4159
|
-
return res - 1;
|
|
4160
|
-
}
|
|
4161
3999
|
function getData(route) {
|
|
4162
4000
|
return route.data || {};
|
|
4163
4001
|
}
|
|
@@ -4239,12 +4077,6 @@ function switchTap(next) {
|
|
|
4239
4077
|
});
|
|
4240
4078
|
}
|
|
4241
4079
|
|
|
4242
|
-
// This file exists to support the legacy `loadChildren: string` behavior being patched back into
|
|
4243
|
-
// Angular.
|
|
4244
|
-
function deprecatedLoadChildrenString(injector, loadChildren) {
|
|
4245
|
-
return null;
|
|
4246
|
-
}
|
|
4247
|
-
|
|
4248
4080
|
const NG_DEV_MODE$5 = typeof ngDevMode === 'undefined' || !!ngDevMode;
|
|
4249
4081
|
/**
|
|
4250
4082
|
* The [DI token](guide/glossary/#di-token) for a router configuration.
|
|
@@ -4258,11 +4090,10 @@ const NG_DEV_MODE$5 = typeof ngDevMode === 'undefined' || !!ngDevMode;
|
|
|
4258
4090
|
*/
|
|
4259
4091
|
const ROUTES = new InjectionToken('ROUTES');
|
|
4260
4092
|
class RouterConfigLoader {
|
|
4261
|
-
constructor(
|
|
4262
|
-
this.injector = injector;
|
|
4263
|
-
this.compiler = compiler;
|
|
4093
|
+
constructor() {
|
|
4264
4094
|
this.componentLoaders = new WeakMap();
|
|
4265
4095
|
this.childrenLoaders = new WeakMap();
|
|
4096
|
+
this.compiler = inject(Compiler);
|
|
4266
4097
|
}
|
|
4267
4098
|
loadComponent(route) {
|
|
4268
4099
|
if (this.componentLoaders.get(route)) {
|
|
@@ -4335,10 +4166,6 @@ class RouterConfigLoader {
|
|
|
4335
4166
|
return loader;
|
|
4336
4167
|
}
|
|
4337
4168
|
loadModuleFactoryOrRoutes(loadChildren) {
|
|
4338
|
-
const deprecatedResult = deprecatedLoadChildrenString(this.injector, loadChildren);
|
|
4339
|
-
if (deprecatedResult) {
|
|
4340
|
-
return deprecatedResult;
|
|
4341
|
-
}
|
|
4342
4169
|
return wrapIntoObservable(loadChildren())
|
|
4343
4170
|
.pipe(map(maybeUnwrapDefaultExport), mergeMap((t) => {
|
|
4344
4171
|
if (t instanceof NgModuleFactory || Array.isArray(t)) {
|
|
@@ -4350,12 +4177,12 @@ class RouterConfigLoader {
|
|
|
4350
4177
|
}));
|
|
4351
4178
|
}
|
|
4352
4179
|
}
|
|
4353
|
-
RouterConfigLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4354
|
-
RouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4355
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4180
|
+
RouterConfigLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4181
|
+
RouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
|
|
4182
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterConfigLoader, decorators: [{
|
|
4356
4183
|
type: Injectable,
|
|
4357
4184
|
args: [{ providedIn: 'root' }]
|
|
4358
|
-
}]
|
|
4185
|
+
}] });
|
|
4359
4186
|
function isWrappedDefaultExport(value) {
|
|
4360
4187
|
// We use `in` here with a string key `'default'`, because we expect `DefaultExport` objects to be
|
|
4361
4188
|
// dynamically imported ES modules with a spec-mandated `default` key. Thus we don't expect that
|
|
@@ -4725,9 +4552,9 @@ class NavigationTransitions {
|
|
|
4725
4552
|
t.resolve(false);
|
|
4726
4553
|
}
|
|
4727
4554
|
}
|
|
4728
|
-
NavigationTransitions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4729
|
-
NavigationTransitions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4730
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4555
|
+
NavigationTransitions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4556
|
+
NavigationTransitions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
|
|
4557
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NavigationTransitions, decorators: [{
|
|
4731
4558
|
type: Injectable,
|
|
4732
4559
|
args: [{ providedIn: 'root' }]
|
|
4733
4560
|
}], ctorParameters: function () { return []; } });
|
|
@@ -4780,9 +4607,9 @@ class TitleStrategy {
|
|
|
4780
4607
|
return snapshot.data[RouteTitleKey];
|
|
4781
4608
|
}
|
|
4782
4609
|
}
|
|
4783
|
-
TitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4784
|
-
TitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4785
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4610
|
+
TitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4611
|
+
TitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
|
|
4612
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: TitleStrategy, decorators: [{
|
|
4786
4613
|
type: Injectable,
|
|
4787
4614
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
|
|
4788
4615
|
}] });
|
|
@@ -4806,9 +4633,9 @@ class DefaultTitleStrategy extends TitleStrategy {
|
|
|
4806
4633
|
}
|
|
4807
4634
|
}
|
|
4808
4635
|
}
|
|
4809
|
-
DefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4810
|
-
DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4811
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4636
|
+
DefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4637
|
+
DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
|
|
4638
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
|
|
4812
4639
|
type: Injectable,
|
|
4813
4640
|
args: [{ providedIn: 'root' }]
|
|
4814
4641
|
}], ctorParameters: function () { return [{ type: i1.Title }]; } });
|
|
@@ -4822,9 +4649,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2",
|
|
|
4822
4649
|
*/
|
|
4823
4650
|
class RouteReuseStrategy {
|
|
4824
4651
|
}
|
|
4825
|
-
RouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4826
|
-
RouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4827
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4652
|
+
RouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4653
|
+
RouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
|
|
4654
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouteReuseStrategy, decorators: [{
|
|
4828
4655
|
type: Injectable,
|
|
4829
4656
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
|
|
4830
4657
|
}] });
|
|
@@ -4876,9 +4703,9 @@ class BaseRouteReuseStrategy {
|
|
|
4876
4703
|
}
|
|
4877
4704
|
class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
|
|
4878
4705
|
}
|
|
4879
|
-
DefaultRouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4880
|
-
DefaultRouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4881
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4706
|
+
DefaultRouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
4707
|
+
DefaultRouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
|
|
4708
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
|
|
4882
4709
|
type: Injectable,
|
|
4883
4710
|
args: [{ providedIn: 'root' }]
|
|
4884
4711
|
}] });
|
|
@@ -4903,9 +4730,9 @@ const ROUTER_CONFIGURATION = new InjectionToken(NG_DEV_MODE$3 ? 'router config'
|
|
|
4903
4730
|
*/
|
|
4904
4731
|
class UrlHandlingStrategy {
|
|
4905
4732
|
}
|
|
4906
|
-
UrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4907
|
-
UrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4908
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4733
|
+
UrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4734
|
+
UrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
|
|
4735
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
|
|
4909
4736
|
type: Injectable,
|
|
4910
4737
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
|
|
4911
4738
|
}] });
|
|
@@ -4923,9 +4750,9 @@ class DefaultUrlHandlingStrategy {
|
|
|
4923
4750
|
return newUrlPart;
|
|
4924
4751
|
}
|
|
4925
4752
|
}
|
|
4926
|
-
DefaultUrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4927
|
-
DefaultUrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4928
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4753
|
+
DefaultUrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4754
|
+
DefaultUrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
|
|
4755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
|
|
4929
4756
|
type: Injectable,
|
|
4930
4757
|
args: [{ providedIn: 'root' }]
|
|
4931
4758
|
}] });
|
|
@@ -5049,8 +4876,6 @@ class Router {
|
|
|
5049
4876
|
* `{provide: RouteReuseStrategy, useClass: MyStrategy}`.
|
|
5050
4877
|
*/
|
|
5051
4878
|
this.routeReuseStrategy = inject(RouteReuseStrategy);
|
|
5052
|
-
/** Strategy used to create a UrlTree. */
|
|
5053
|
-
this.urlCreationStrategy = inject(CreateUrlTreeStrategy);
|
|
5054
4879
|
/**
|
|
5055
4880
|
* A strategy for setting the title based on the `routerState`.
|
|
5056
4881
|
*
|
|
@@ -5327,7 +5152,30 @@ class Router {
|
|
|
5327
5152
|
if (q !== null) {
|
|
5328
5153
|
q = this.removeEmptyProps(q);
|
|
5329
5154
|
}
|
|
5330
|
-
|
|
5155
|
+
let relativeToUrlSegmentGroup;
|
|
5156
|
+
try {
|
|
5157
|
+
const relativeToSnapshot = relativeTo ? relativeTo.snapshot : this.routerState.snapshot.root;
|
|
5158
|
+
relativeToUrlSegmentGroup = createSegmentGroupFromRoute(relativeToSnapshot);
|
|
5159
|
+
}
|
|
5160
|
+
catch (e) {
|
|
5161
|
+
// This is strictly for backwards compatibility with tests that create
|
|
5162
|
+
// invalid `ActivatedRoute` mocks.
|
|
5163
|
+
// Note: the difference between having this fallback for invalid `ActivatedRoute` setups and
|
|
5164
|
+
// just throwing is ~500 test failures. Fixing all of those tests by hand is not feasible at
|
|
5165
|
+
// the moment.
|
|
5166
|
+
if (typeof commands[0] !== 'string' || !commands[0].startsWith('/')) {
|
|
5167
|
+
// Navigations that were absolute in the old way of creating UrlTrees
|
|
5168
|
+
// would still work because they wouldn't attempt to match the
|
|
5169
|
+
// segments in the `ActivatedRoute` to the `currentUrlTree` but
|
|
5170
|
+
// instead just replace the root segment with the navigation result.
|
|
5171
|
+
// Non-absolute navigations would fail to apply the commands because
|
|
5172
|
+
// the logic could not find the segment to replace (so they'd act like there were no
|
|
5173
|
+
// commands).
|
|
5174
|
+
commands = [];
|
|
5175
|
+
}
|
|
5176
|
+
relativeToUrlSegmentGroup = this.currentUrlTree.root;
|
|
5177
|
+
}
|
|
5178
|
+
return createUrlTreeFromSegmentGroup(relativeToUrlSegmentGroup, commands, q, f !== null && f !== void 0 ? f : null);
|
|
5331
5179
|
}
|
|
5332
5180
|
/**
|
|
5333
5181
|
* Navigates to a view using an absolute route path.
|
|
@@ -5583,9 +5431,9 @@ class Router {
|
|
|
5583
5431
|
return { navigationId };
|
|
5584
5432
|
}
|
|
5585
5433
|
}
|
|
5586
|
-
Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5587
|
-
Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5588
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5434
|
+
Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5435
|
+
Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: Router, providedIn: 'root' });
|
|
5436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: Router, decorators: [{
|
|
5589
5437
|
type: Injectable,
|
|
5590
5438
|
args: [{ providedIn: 'root' }]
|
|
5591
5439
|
}], ctorParameters: function () { return []; } });
|
|
@@ -5874,9 +5722,9 @@ class RouterLink {
|
|
|
5874
5722
|
});
|
|
5875
5723
|
}
|
|
5876
5724
|
}
|
|
5877
|
-
RouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5878
|
-
RouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.
|
|
5879
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5725
|
+
RouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterLink, deps: [{ token: Router }, { token: ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i3.LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive });
|
|
5726
|
+
RouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.4", type: RouterLink, isStandalone: true, selector: "[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", relativeTo: "relativeTo", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", routerLink: "routerLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" }, properties: { "attr.target": "this.target" } }, usesOnChanges: true, ngImport: i0 });
|
|
5727
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterLink, decorators: [{
|
|
5880
5728
|
type: Directive,
|
|
5881
5729
|
args: [{
|
|
5882
5730
|
selector: '[routerLink]',
|
|
@@ -6101,9 +5949,9 @@ class RouterLinkActive {
|
|
|
6101
5949
|
return this.link && isActiveCheckFn(this.link) || this.links.some(isActiveCheckFn);
|
|
6102
5950
|
}
|
|
6103
5951
|
}
|
|
6104
|
-
RouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6105
|
-
RouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.
|
|
6106
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5952
|
+
RouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
5953
|
+
RouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.4", type: RouterLinkActive, isStandalone: true, selector: "[routerLinkActive]", inputs: { routerLinkActiveOptions: "routerLinkActiveOptions", ariaCurrentWhenActive: "ariaCurrentWhenActive", routerLinkActive: "routerLinkActive" }, outputs: { isActiveChange: "isActiveChange" }, queries: [{ propertyName: "links", predicate: RouterLink, descendants: true }], exportAs: ["routerLinkActive"], usesOnChanges: true, ngImport: i0 });
|
|
5954
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterLinkActive, decorators: [{
|
|
6107
5955
|
type: Directive,
|
|
6108
5956
|
args: [{
|
|
6109
5957
|
selector: '[routerLinkActive]',
|
|
@@ -6158,9 +6006,9 @@ class PreloadAllModules {
|
|
|
6158
6006
|
return fn().pipe(catchError(() => of(null)));
|
|
6159
6007
|
}
|
|
6160
6008
|
}
|
|
6161
|
-
PreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6162
|
-
PreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6163
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6009
|
+
PreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6010
|
+
PreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: PreloadAllModules, providedIn: 'root' });
|
|
6011
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: PreloadAllModules, decorators: [{
|
|
6164
6012
|
type: Injectable,
|
|
6165
6013
|
args: [{ providedIn: 'root' }]
|
|
6166
6014
|
}] });
|
|
@@ -6178,9 +6026,9 @@ class NoPreloading {
|
|
|
6178
6026
|
return of(null);
|
|
6179
6027
|
}
|
|
6180
6028
|
}
|
|
6181
|
-
NoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6182
|
-
NoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6029
|
+
NoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6030
|
+
NoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NoPreloading, providedIn: 'root' });
|
|
6031
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NoPreloading, decorators: [{
|
|
6184
6032
|
type: Injectable,
|
|
6185
6033
|
args: [{ providedIn: 'root' }]
|
|
6186
6034
|
}] });
|
|
@@ -6276,9 +6124,9 @@ class RouterPreloader {
|
|
|
6276
6124
|
});
|
|
6277
6125
|
}
|
|
6278
6126
|
}
|
|
6279
|
-
RouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6280
|
-
RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6127
|
+
RouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6128
|
+
RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterPreloader, providedIn: 'root' });
|
|
6129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterPreloader, decorators: [{
|
|
6282
6130
|
type: Injectable,
|
|
6283
6131
|
args: [{ providedIn: 'root' }]
|
|
6284
6132
|
}], ctorParameters: function () { return [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }]; } });
|
|
@@ -6373,9 +6221,9 @@ class RouterScroller {
|
|
|
6373
6221
|
(_b = this.scrollEventsSubscription) === null || _b === void 0 ? void 0 : _b.unsubscribe();
|
|
6374
6222
|
}
|
|
6375
6223
|
}
|
|
6376
|
-
RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6377
|
-
RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6378
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6224
|
+
RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
6225
|
+
RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterScroller });
|
|
6226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterScroller, decorators: [{
|
|
6379
6227
|
type: Injectable
|
|
6380
6228
|
}], ctorParameters: function () { return [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }]; } });
|
|
6381
6229
|
|
|
@@ -6984,10 +6832,10 @@ class RouterModule {
|
|
|
6984
6832
|
};
|
|
6985
6833
|
}
|
|
6986
6834
|
}
|
|
6987
|
-
RouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6988
|
-
RouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.
|
|
6989
|
-
RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6990
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6835
|
+
RouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
6836
|
+
RouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] });
|
|
6837
|
+
RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterModule, imports: [ɵEmptyOutletComponent] });
|
|
6838
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterModule, decorators: [{
|
|
6991
6839
|
type: NgModule,
|
|
6992
6840
|
args: [{
|
|
6993
6841
|
imports: ROUTER_DIRECTIVES,
|
|
@@ -7134,7 +6982,7 @@ function mapToResolve(provider) {
|
|
|
7134
6982
|
/**
|
|
7135
6983
|
* @publicApi
|
|
7136
6984
|
*/
|
|
7137
|
-
const VERSION = new Version('16.0.0-next.
|
|
6985
|
+
const VERSION = new Version('16.0.0-next.4');
|
|
7138
6986
|
|
|
7139
6987
|
/**
|
|
7140
6988
|
* @module
|