@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/fesm2020/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,28 +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
|
-
if (commands.length === 0) {
|
|
881
|
-
return tree(urlTree.root, urlTree.root, urlTree.root, queryParams, fragment);
|
|
882
|
-
}
|
|
883
|
-
const nav = computeNavigation(commands);
|
|
884
|
-
if (nav.toRoot()) {
|
|
885
|
-
return tree(urlTree.root, urlTree.root, new UrlSegmentGroup([], {}), queryParams, fragment);
|
|
886
|
-
}
|
|
887
|
-
function createTreeUsingPathIndex(lastPathIndex) {
|
|
888
|
-
const startingPosition = findStartingPosition(nav, urlTree, route.snapshot?._urlSegment, lastPathIndex);
|
|
889
|
-
const segmentGroup = startingPosition.processChildren ?
|
|
890
|
-
updateSegmentGroupChildren(startingPosition.segmentGroup, startingPosition.index, nav.commands) :
|
|
891
|
-
updateSegmentGroup(startingPosition.segmentGroup, startingPosition.index, nav.commands);
|
|
892
|
-
return tree(urlTree.root, startingPosition.segmentGroup, segmentGroup, queryParams, fragment);
|
|
893
|
-
}
|
|
894
|
-
// Note: The types should disallow `snapshot` from being `undefined` but due to test mocks, this
|
|
895
|
-
// may be the case. Since we try to access it at an earlier point before the refactor to add the
|
|
896
|
-
// warning for `relativeLinkResolution: 'legacy'`, this may cause failures in tests where it
|
|
897
|
-
// didn't before.
|
|
898
|
-
const result = createTreeUsingPathIndex(route.snapshot?._lastPathIndex);
|
|
899
|
-
return result;
|
|
900
|
-
}
|
|
901
879
|
function isMatrixParams(command) {
|
|
902
880
|
return typeof command === 'object' && command != null && !command.outlets && !command.segmentPath;
|
|
903
881
|
}
|
|
@@ -950,11 +928,11 @@ class Navigation {
|
|
|
950
928
|
this.numberOfDoubleDots = numberOfDoubleDots;
|
|
951
929
|
this.commands = commands;
|
|
952
930
|
if (isAbsolute && commands.length > 0 && isMatrixParams(commands[0])) {
|
|
953
|
-
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');
|
|
954
932
|
}
|
|
955
933
|
const cmdWithOutlet = commands.find(isCommandWithOutlets);
|
|
956
934
|
if (cmdWithOutlet && cmdWithOutlet !== last(commands)) {
|
|
957
|
-
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');
|
|
958
936
|
}
|
|
959
937
|
}
|
|
960
938
|
toRoot() {
|
|
@@ -1030,21 +1008,6 @@ function findStartingPositionForTargetGroup(nav, root, target) {
|
|
|
1030
1008
|
const index = target.segments.length - 1 + modifier;
|
|
1031
1009
|
return createPositionApplyingDoubleDots(target, index, nav.numberOfDoubleDots);
|
|
1032
1010
|
}
|
|
1033
|
-
function findStartingPosition(nav, tree, segmentGroup, lastPathIndex) {
|
|
1034
|
-
if (nav.isAbsolute) {
|
|
1035
|
-
return new Position(tree.root, true, 0);
|
|
1036
|
-
}
|
|
1037
|
-
if (lastPathIndex === -1) {
|
|
1038
|
-
// Pathless ActivatedRoute has _lastPathIndex === -1 but should not process children
|
|
1039
|
-
// see issue #26224, #13011, #35687
|
|
1040
|
-
// However, if the ActivatedRoute is the root we should process children like above.
|
|
1041
|
-
const processChildren = segmentGroup === tree.root;
|
|
1042
|
-
return new Position(segmentGroup, processChildren, 0);
|
|
1043
|
-
}
|
|
1044
|
-
const modifier = isMatrixParams(nav.commands[0]) ? 0 : 1;
|
|
1045
|
-
const index = lastPathIndex + modifier;
|
|
1046
|
-
return createPositionApplyingDoubleDots(segmentGroup, index, nav.numberOfDoubleDots);
|
|
1047
|
-
}
|
|
1048
1011
|
function createPositionApplyingDoubleDots(group, index, numberOfDoubleDots) {
|
|
1049
1012
|
let g = group;
|
|
1050
1013
|
let ci = index;
|
|
@@ -1053,7 +1016,7 @@ function createPositionApplyingDoubleDots(group, index, numberOfDoubleDots) {
|
|
|
1053
1016
|
dd -= ci;
|
|
1054
1017
|
g = g.parent;
|
|
1055
1018
|
if (!g) {
|
|
1056
|
-
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 \'../\'');
|
|
1057
1020
|
}
|
|
1058
1021
|
ci = g.segments.length;
|
|
1059
1022
|
}
|
|
@@ -1725,71 +1688,6 @@ function stringifyEvent(routerEvent) {
|
|
|
1725
1688
|
}
|
|
1726
1689
|
}
|
|
1727
1690
|
|
|
1728
|
-
const NG_DEV_MODE$9 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
1729
|
-
class LegacyCreateUrlTree {
|
|
1730
|
-
createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment) {
|
|
1731
|
-
const a = relativeTo || currentState.root;
|
|
1732
|
-
const tree = createUrlTree(a, currentUrlTree, commands, queryParams, fragment);
|
|
1733
|
-
if (NG_DEV_MODE$9) {
|
|
1734
|
-
const treeFromSnapshotStrategy = new CreateUrlTreeUsingSnapshot().createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment);
|
|
1735
|
-
if (treeFromSnapshotStrategy.toString() !== tree.toString()) {
|
|
1736
|
-
let warningString = `The navigation to ${tree.toString()} will instead go to ${treeFromSnapshotStrategy.toString()} in an upcoming version of Angular.`;
|
|
1737
|
-
if (!!relativeTo) {
|
|
1738
|
-
warningString += ' `relativeTo` might need to be removed from the `UrlCreationOptions`.';
|
|
1739
|
-
}
|
|
1740
|
-
tree._warnIfUsedForNavigation = warningString;
|
|
1741
|
-
}
|
|
1742
|
-
}
|
|
1743
|
-
return tree;
|
|
1744
|
-
}
|
|
1745
|
-
}
|
|
1746
|
-
LegacyCreateUrlTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LegacyCreateUrlTree, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1747
|
-
LegacyCreateUrlTree.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LegacyCreateUrlTree });
|
|
1748
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: LegacyCreateUrlTree, decorators: [{
|
|
1749
|
-
type: Injectable
|
|
1750
|
-
}] });
|
|
1751
|
-
class CreateUrlTreeUsingSnapshot {
|
|
1752
|
-
createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment) {
|
|
1753
|
-
let relativeToUrlSegmentGroup;
|
|
1754
|
-
try {
|
|
1755
|
-
const relativeToSnapshot = relativeTo ? relativeTo.snapshot : currentState.snapshot.root;
|
|
1756
|
-
relativeToUrlSegmentGroup = createSegmentGroupFromRoute(relativeToSnapshot);
|
|
1757
|
-
}
|
|
1758
|
-
catch (e) {
|
|
1759
|
-
// This is strictly for backwards compatibility with tests that create
|
|
1760
|
-
// invalid `ActivatedRoute` mocks.
|
|
1761
|
-
// Note: the difference between having this fallback for invalid `ActivatedRoute` setups and
|
|
1762
|
-
// just throwing is ~500 test failures. Fixing all of those tests by hand is not feasible at
|
|
1763
|
-
// the moment.
|
|
1764
|
-
if (typeof commands[0] !== 'string' || !commands[0].startsWith('/')) {
|
|
1765
|
-
// Navigations that were absolute in the old way of creating UrlTrees
|
|
1766
|
-
// would still work because they wouldn't attempt to match the
|
|
1767
|
-
// segments in the `ActivatedRoute` to the `currentUrlTree` but
|
|
1768
|
-
// instead just replace the root segment with the navigation result.
|
|
1769
|
-
// Non-absolute navigations would fail to apply the commands because
|
|
1770
|
-
// the logic could not find the segment to replace (so they'd act like there were no
|
|
1771
|
-
// commands).
|
|
1772
|
-
commands = [];
|
|
1773
|
-
}
|
|
1774
|
-
relativeToUrlSegmentGroup = currentUrlTree.root;
|
|
1775
|
-
}
|
|
1776
|
-
return createUrlTreeFromSegmentGroup(relativeToUrlSegmentGroup, commands, queryParams, fragment);
|
|
1777
|
-
}
|
|
1778
|
-
}
|
|
1779
|
-
CreateUrlTreeUsingSnapshot.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeUsingSnapshot, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1780
|
-
CreateUrlTreeUsingSnapshot.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeUsingSnapshot });
|
|
1781
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeUsingSnapshot, decorators: [{
|
|
1782
|
-
type: Injectable
|
|
1783
|
-
}] });
|
|
1784
|
-
class CreateUrlTreeStrategy {
|
|
1785
|
-
}
|
|
1786
|
-
CreateUrlTreeStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1787
|
-
CreateUrlTreeStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeStrategy, providedIn: 'root', useClass: CreateUrlTreeUsingSnapshot });
|
|
1788
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2", ngImport: i0, type: CreateUrlTreeStrategy, decorators: [{
|
|
1789
|
-
type: Injectable,
|
|
1790
|
-
args: [{ providedIn: 'root', useClass: CreateUrlTreeUsingSnapshot }]
|
|
1791
|
-
}] });
|
|
1792
|
-
|
|
1793
1691
|
class Tree {
|
|
1794
1692
|
constructor(root) {
|
|
1795
1693
|
this._root = root;
|
|
@@ -1937,7 +1835,7 @@ function createEmptyStateSnapshot(urlTree, rootComponent) {
|
|
|
1937
1835
|
const emptyData = {};
|
|
1938
1836
|
const emptyQueryParams = {};
|
|
1939
1837
|
const fragment = '';
|
|
1940
|
-
const activated = new ActivatedRouteSnapshot([], emptyParams, emptyQueryParams, fragment, emptyData, PRIMARY_OUTLET, rootComponent, null,
|
|
1838
|
+
const activated = new ActivatedRouteSnapshot([], emptyParams, emptyQueryParams, fragment, emptyData, PRIMARY_OUTLET, rootComponent, null, {});
|
|
1941
1839
|
return new RouterStateSnapshot('', new TreeNode(activated, []));
|
|
1942
1840
|
}
|
|
1943
1841
|
/**
|
|
@@ -2137,7 +2035,7 @@ class ActivatedRouteSnapshot {
|
|
|
2137
2035
|
/** The outlet name of the route */
|
|
2138
2036
|
outlet,
|
|
2139
2037
|
/** The component of the route */
|
|
2140
|
-
component, routeConfig,
|
|
2038
|
+
component, routeConfig, resolve) {
|
|
2141
2039
|
this.url = url;
|
|
2142
2040
|
this.params = params;
|
|
2143
2041
|
this.queryParams = queryParams;
|
|
@@ -2146,8 +2044,6 @@ class ActivatedRouteSnapshot {
|
|
|
2146
2044
|
this.outlet = outlet;
|
|
2147
2045
|
this.component = component;
|
|
2148
2046
|
this.routeConfig = routeConfig;
|
|
2149
|
-
this._urlSegment = urlSegment;
|
|
2150
|
-
this._lastPathIndex = lastPathIndex;
|
|
2151
2047
|
this._resolve = resolve;
|
|
2152
2048
|
}
|
|
2153
2049
|
/** The root of the router state */
|
|
@@ -2350,11 +2246,6 @@ class OutletContext {
|
|
|
2350
2246
|
constructor() {
|
|
2351
2247
|
this.outlet = null;
|
|
2352
2248
|
this.route = null;
|
|
2353
|
-
/**
|
|
2354
|
-
* @deprecated Passing a resolver to retrieve a component factory is not required and is
|
|
2355
|
-
* deprecated since v14.
|
|
2356
|
-
*/
|
|
2357
|
-
this.resolver = null;
|
|
2358
2249
|
this.injector = null;
|
|
2359
2250
|
this.children = new ChildrenOutletContexts();
|
|
2360
2251
|
this.attachRef = null;
|
|
@@ -2412,9 +2303,9 @@ class ChildrenOutletContexts {
|
|
|
2412
2303
|
return this.contexts.get(childName) || null;
|
|
2413
2304
|
}
|
|
2414
2305
|
}
|
|
2415
|
-
ChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2416
|
-
ChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2417
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2306
|
+
ChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2307
|
+
ChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
|
|
2308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
|
|
2418
2309
|
type: Injectable,
|
|
2419
2310
|
args: [{ providedIn: 'root' }]
|
|
2420
2311
|
}] });
|
|
@@ -2603,7 +2494,7 @@ class RouterOutlet {
|
|
|
2603
2494
|
this.deactivateEvents.emit(c);
|
|
2604
2495
|
}
|
|
2605
2496
|
}
|
|
2606
|
-
activateWith(activatedRoute,
|
|
2497
|
+
activateWith(activatedRoute, environmentInjector) {
|
|
2607
2498
|
if (this.isActivated) {
|
|
2608
2499
|
throw new ɵRuntimeError(4013 /* RuntimeErrorCode.OUTLET_ALREADY_ACTIVATED */, NG_DEV_MODE$8 && 'Cannot activate an already activated outlet');
|
|
2609
2500
|
}
|
|
@@ -2613,23 +2504,20 @@ class RouterOutlet {
|
|
|
2613
2504
|
const component = snapshot.component;
|
|
2614
2505
|
const childContexts = this.parentContexts.getOrCreateContext(this.name).children;
|
|
2615
2506
|
const injector = new OutletInjector(activatedRoute, childContexts, location.injector);
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
const environmentInjector = resolverOrInjector ?? this.environmentInjector;
|
|
2622
|
-
this.activated = location.createComponent(component, { index: location.length, injector, environmentInjector });
|
|
2623
|
-
}
|
|
2507
|
+
this.activated = location.createComponent(component, {
|
|
2508
|
+
index: location.length,
|
|
2509
|
+
injector,
|
|
2510
|
+
environmentInjector: environmentInjector ?? this.environmentInjector
|
|
2511
|
+
});
|
|
2624
2512
|
// Calling `markForCheck` to make sure we will run the change detection when the
|
|
2625
2513
|
// `RouterOutlet` is inside a `ChangeDetectionStrategy.OnPush` component.
|
|
2626
2514
|
this.changeDetector.markForCheck();
|
|
2627
2515
|
this.activateEvents.emit(this.activated.instance);
|
|
2628
2516
|
}
|
|
2629
2517
|
}
|
|
2630
|
-
RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2631
|
-
RouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.
|
|
2632
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2518
|
+
RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2519
|
+
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 });
|
|
2520
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterOutlet, decorators: [{
|
|
2633
2521
|
type: Directive,
|
|
2634
2522
|
args: [{
|
|
2635
2523
|
selector: 'router-outlet',
|
|
@@ -2667,9 +2555,6 @@ class OutletInjector {
|
|
|
2667
2555
|
return this.parent.get(token, notFoundValue);
|
|
2668
2556
|
}
|
|
2669
2557
|
}
|
|
2670
|
-
function isComponentFactoryResolver(item) {
|
|
2671
|
-
return !!item.resolveComponentFactory;
|
|
2672
|
-
}
|
|
2673
2558
|
|
|
2674
2559
|
/**
|
|
2675
2560
|
* This component is used internally within the router to be a placeholder when an empty
|
|
@@ -2682,9 +2567,9 @@ function isComponentFactoryResolver(item) {
|
|
|
2682
2567
|
*/
|
|
2683
2568
|
class ɵEmptyOutletComponent {
|
|
2684
2569
|
}
|
|
2685
|
-
ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2686
|
-
ɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0-next.
|
|
2687
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
2570
|
+
ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2571
|
+
ɵ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"] }] });
|
|
2572
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
|
|
2688
2573
|
type: Component,
|
|
2689
2574
|
args: [{
|
|
2690
2575
|
template: `<router-outlet></router-outlet>`,
|
|
@@ -2977,7 +2862,6 @@ class ActivateRoutes {
|
|
|
2977
2862
|
// Clear the information about the attached component on the context but keep the reference to
|
|
2978
2863
|
// the outlet.
|
|
2979
2864
|
context.attachRef = null;
|
|
2980
|
-
context.resolver = null;
|
|
2981
2865
|
context.route = null;
|
|
2982
2866
|
}
|
|
2983
2867
|
}
|
|
@@ -3027,10 +2911,8 @@ class ActivateRoutes {
|
|
|
3027
2911
|
}
|
|
3028
2912
|
else {
|
|
3029
2913
|
const injector = getClosestRouteInjector(future.snapshot);
|
|
3030
|
-
const cmpFactoryResolver = injector?.get(ComponentFactoryResolver) ?? null;
|
|
3031
2914
|
context.attachRef = null;
|
|
3032
2915
|
context.route = future;
|
|
3033
|
-
context.resolver = cmpFactoryResolver;
|
|
3034
2916
|
context.injector = injector;
|
|
3035
2917
|
if (context.outlet) {
|
|
3036
2918
|
// Activate the outlet when it has already been instantiated
|
|
@@ -3459,21 +3341,15 @@ function match(segmentGroup, route, segments) {
|
|
|
3459
3341
|
function split(segmentGroup, consumedSegments, slicedSegments, config) {
|
|
3460
3342
|
if (slicedSegments.length > 0 &&
|
|
3461
3343
|
containsEmptyPathMatchesWithNamedOutlets(segmentGroup, slicedSegments, config)) {
|
|
3462
|
-
const s = new UrlSegmentGroup(consumedSegments, createChildrenForEmptyPaths(
|
|
3463
|
-
s._sourceSegment = segmentGroup;
|
|
3464
|
-
s._segmentIndexShift = consumedSegments.length;
|
|
3344
|
+
const s = new UrlSegmentGroup(consumedSegments, createChildrenForEmptyPaths(config, new UrlSegmentGroup(slicedSegments, segmentGroup.children)));
|
|
3465
3345
|
return { segmentGroup: s, slicedSegments: [] };
|
|
3466
3346
|
}
|
|
3467
3347
|
if (slicedSegments.length === 0 &&
|
|
3468
3348
|
containsEmptyPathMatches(segmentGroup, slicedSegments, config)) {
|
|
3469
3349
|
const s = new UrlSegmentGroup(segmentGroup.segments, addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedSegments, config, segmentGroup.children));
|
|
3470
|
-
s._sourceSegment = segmentGroup;
|
|
3471
|
-
s._segmentIndexShift = consumedSegments.length;
|
|
3472
3350
|
return { segmentGroup: s, slicedSegments };
|
|
3473
3351
|
}
|
|
3474
3352
|
const s = new UrlSegmentGroup(segmentGroup.segments, segmentGroup.children);
|
|
3475
|
-
s._sourceSegment = segmentGroup;
|
|
3476
|
-
s._segmentIndexShift = consumedSegments.length;
|
|
3477
3353
|
return { segmentGroup: s, slicedSegments };
|
|
3478
3354
|
}
|
|
3479
3355
|
function addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedSegments, routes, children) {
|
|
@@ -3481,23 +3357,17 @@ function addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedS
|
|
|
3481
3357
|
for (const r of routes) {
|
|
3482
3358
|
if (emptyPathMatch(segmentGroup, slicedSegments, r) && !children[getOutlet(r)]) {
|
|
3483
3359
|
const s = new UrlSegmentGroup([], {});
|
|
3484
|
-
s._sourceSegment = segmentGroup;
|
|
3485
|
-
s._segmentIndexShift = consumedSegments.length;
|
|
3486
3360
|
res[getOutlet(r)] = s;
|
|
3487
3361
|
}
|
|
3488
3362
|
}
|
|
3489
3363
|
return { ...children, ...res };
|
|
3490
3364
|
}
|
|
3491
|
-
function createChildrenForEmptyPaths(
|
|
3365
|
+
function createChildrenForEmptyPaths(routes, primarySegment) {
|
|
3492
3366
|
const res = {};
|
|
3493
3367
|
res[PRIMARY_OUTLET] = primarySegment;
|
|
3494
|
-
primarySegment._sourceSegment = segmentGroup;
|
|
3495
|
-
primarySegment._segmentIndexShift = consumedSegments.length;
|
|
3496
3368
|
for (const r of routes) {
|
|
3497
3369
|
if (r.path === '' && getOutlet(r) !== PRIMARY_OUTLET) {
|
|
3498
3370
|
const s = new UrlSegmentGroup([], {});
|
|
3499
|
-
s._sourceSegment = segmentGroup;
|
|
3500
|
-
s._segmentIndexShift = consumedSegments.length;
|
|
3501
3371
|
res[getOutlet(r)] = s;
|
|
3502
3372
|
}
|
|
3503
3373
|
}
|
|
@@ -3903,7 +3773,7 @@ class Recognizer {
|
|
|
3903
3773
|
}
|
|
3904
3774
|
// Use Object.freeze to prevent readers of the Router state from modifying it outside of a
|
|
3905
3775
|
// navigation, resulting in the router being out of sync with the browser.
|
|
3906
|
-
const root = new ActivatedRouteSnapshot([], Object.freeze({}), Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, {}, PRIMARY_OUTLET, this.rootComponentType, null,
|
|
3776
|
+
const root = new ActivatedRouteSnapshot([], Object.freeze({}), Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, {}, PRIMARY_OUTLET, this.rootComponentType, null, {});
|
|
3907
3777
|
const rootNode = new TreeNode(root, children);
|
|
3908
3778
|
const routeState = new RouterStateSnapshot(this.url, rootNode);
|
|
3909
3779
|
this.inheritParamsAndData(routeState._root);
|
|
@@ -3980,8 +3850,7 @@ class Recognizer {
|
|
|
3980
3850
|
let matchResult;
|
|
3981
3851
|
if (route.path === '**') {
|
|
3982
3852
|
const params = segments.length > 0 ? last(segments).parameters : {};
|
|
3983
|
-
const
|
|
3984
|
-
const snapshot = new ActivatedRouteSnapshot(segments, params, Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, getData(route), getOutlet(route), route.component ?? route._loadedComponent ?? null, route, getSourceSegmentGroup(rawSegment), pathIndexShift, getResolve(route));
|
|
3853
|
+
const snapshot = new ActivatedRouteSnapshot(segments, params, Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, getData(route), getOutlet(route), route.component ?? route._loadedComponent ?? null, route, getResolve(route));
|
|
3985
3854
|
matchResult = of({
|
|
3986
3855
|
snapshot,
|
|
3987
3856
|
consumedSegments: [],
|
|
@@ -3995,8 +3864,7 @@ class Recognizer {
|
|
|
3995
3864
|
if (!matched) {
|
|
3996
3865
|
return null;
|
|
3997
3866
|
}
|
|
3998
|
-
const
|
|
3999
|
-
const snapshot = new ActivatedRouteSnapshot(consumedSegments, parameters, Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, getData(route), getOutlet(route), route.component ?? route._loadedComponent ?? null, route, getSourceSegmentGroup(rawSegment), pathIndexShift, getResolve(route));
|
|
3867
|
+
const snapshot = new ActivatedRouteSnapshot(consumedSegments, parameters, Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, getData(route), getOutlet(route), route.component ?? route._loadedComponent ?? null, route, getResolve(route));
|
|
4000
3868
|
return { snapshot, consumedSegments, remainingSegments };
|
|
4001
3869
|
}));
|
|
4002
3870
|
}
|
|
@@ -4112,31 +3980,6 @@ function checkOutletNameUniqueness(nodes) {
|
|
|
4112
3980
|
names[n.value.outlet] = n.value;
|
|
4113
3981
|
});
|
|
4114
3982
|
}
|
|
4115
|
-
function getSourceSegmentGroup(segmentGroup) {
|
|
4116
|
-
let s = segmentGroup;
|
|
4117
|
-
while (s._sourceSegment) {
|
|
4118
|
-
s = s._sourceSegment;
|
|
4119
|
-
}
|
|
4120
|
-
return s;
|
|
4121
|
-
}
|
|
4122
|
-
function getPathIndexShift(segmentGroup) {
|
|
4123
|
-
let s = segmentGroup;
|
|
4124
|
-
let res = s._segmentIndexShift ?? 0;
|
|
4125
|
-
while (s._sourceSegment) {
|
|
4126
|
-
s = s._sourceSegment;
|
|
4127
|
-
res += s._segmentIndexShift ?? 0;
|
|
4128
|
-
}
|
|
4129
|
-
return res - 1;
|
|
4130
|
-
}
|
|
4131
|
-
function getCorrectedPathIndexShift(segmentGroup) {
|
|
4132
|
-
let s = segmentGroup;
|
|
4133
|
-
let res = s._segmentIndexShiftCorrected ?? s._segmentIndexShift ?? 0;
|
|
4134
|
-
while (s._sourceSegment) {
|
|
4135
|
-
s = s._sourceSegment;
|
|
4136
|
-
res += s._segmentIndexShiftCorrected ?? s._segmentIndexShift ?? 0;
|
|
4137
|
-
}
|
|
4138
|
-
return res - 1;
|
|
4139
|
-
}
|
|
4140
3983
|
function getData(route) {
|
|
4141
3984
|
return route.data || {};
|
|
4142
3985
|
}
|
|
@@ -4217,12 +4060,6 @@ function switchTap(next) {
|
|
|
4217
4060
|
});
|
|
4218
4061
|
}
|
|
4219
4062
|
|
|
4220
|
-
// This file exists to support the legacy `loadChildren: string` behavior being patched back into
|
|
4221
|
-
// Angular.
|
|
4222
|
-
function deprecatedLoadChildrenString(injector, loadChildren) {
|
|
4223
|
-
return null;
|
|
4224
|
-
}
|
|
4225
|
-
|
|
4226
4063
|
const NG_DEV_MODE$5 = typeof ngDevMode === 'undefined' || !!ngDevMode;
|
|
4227
4064
|
/**
|
|
4228
4065
|
* The [DI token](guide/glossary/#di-token) for a router configuration.
|
|
@@ -4236,11 +4073,10 @@ const NG_DEV_MODE$5 = typeof ngDevMode === 'undefined' || !!ngDevMode;
|
|
|
4236
4073
|
*/
|
|
4237
4074
|
const ROUTES = new InjectionToken('ROUTES');
|
|
4238
4075
|
class RouterConfigLoader {
|
|
4239
|
-
constructor(
|
|
4240
|
-
this.injector = injector;
|
|
4241
|
-
this.compiler = compiler;
|
|
4076
|
+
constructor() {
|
|
4242
4077
|
this.componentLoaders = new WeakMap();
|
|
4243
4078
|
this.childrenLoaders = new WeakMap();
|
|
4079
|
+
this.compiler = inject(Compiler);
|
|
4244
4080
|
}
|
|
4245
4081
|
loadComponent(route) {
|
|
4246
4082
|
if (this.componentLoaders.get(route)) {
|
|
@@ -4312,10 +4148,6 @@ class RouterConfigLoader {
|
|
|
4312
4148
|
return loader;
|
|
4313
4149
|
}
|
|
4314
4150
|
loadModuleFactoryOrRoutes(loadChildren) {
|
|
4315
|
-
const deprecatedResult = deprecatedLoadChildrenString(this.injector, loadChildren);
|
|
4316
|
-
if (deprecatedResult) {
|
|
4317
|
-
return deprecatedResult;
|
|
4318
|
-
}
|
|
4319
4151
|
return wrapIntoObservable(loadChildren())
|
|
4320
4152
|
.pipe(map(maybeUnwrapDefaultExport), mergeMap((t) => {
|
|
4321
4153
|
if (t instanceof NgModuleFactory || Array.isArray(t)) {
|
|
@@ -4327,12 +4159,12 @@ class RouterConfigLoader {
|
|
|
4327
4159
|
}));
|
|
4328
4160
|
}
|
|
4329
4161
|
}
|
|
4330
|
-
RouterConfigLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4331
|
-
RouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4332
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4162
|
+
RouterConfigLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4163
|
+
RouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
|
|
4164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterConfigLoader, decorators: [{
|
|
4333
4165
|
type: Injectable,
|
|
4334
4166
|
args: [{ providedIn: 'root' }]
|
|
4335
|
-
}]
|
|
4167
|
+
}] });
|
|
4336
4168
|
function isWrappedDefaultExport(value) {
|
|
4337
4169
|
// We use `in` here with a string key `'default'`, because we expect `DefaultExport` objects to be
|
|
4338
4170
|
// dynamically imported ES modules with a spec-mandated `default` key. Thus we don't expect that
|
|
@@ -4708,9 +4540,9 @@ class NavigationTransitions {
|
|
|
4708
4540
|
t.resolve(false);
|
|
4709
4541
|
}
|
|
4710
4542
|
}
|
|
4711
|
-
NavigationTransitions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4712
|
-
NavigationTransitions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4713
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4543
|
+
NavigationTransitions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4544
|
+
NavigationTransitions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
|
|
4545
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NavigationTransitions, decorators: [{
|
|
4714
4546
|
type: Injectable,
|
|
4715
4547
|
args: [{ providedIn: 'root' }]
|
|
4716
4548
|
}], ctorParameters: function () { return []; } });
|
|
@@ -4762,9 +4594,9 @@ class TitleStrategy {
|
|
|
4762
4594
|
return snapshot.data[RouteTitleKey];
|
|
4763
4595
|
}
|
|
4764
4596
|
}
|
|
4765
|
-
TitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4766
|
-
TitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4767
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4597
|
+
TitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4598
|
+
TitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
|
|
4599
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: TitleStrategy, decorators: [{
|
|
4768
4600
|
type: Injectable,
|
|
4769
4601
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
|
|
4770
4602
|
}] });
|
|
@@ -4788,9 +4620,9 @@ class DefaultTitleStrategy extends TitleStrategy {
|
|
|
4788
4620
|
}
|
|
4789
4621
|
}
|
|
4790
4622
|
}
|
|
4791
|
-
DefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4792
|
-
DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4793
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4623
|
+
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 });
|
|
4624
|
+
DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
|
|
4625
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
|
|
4794
4626
|
type: Injectable,
|
|
4795
4627
|
args: [{ providedIn: 'root' }]
|
|
4796
4628
|
}], ctorParameters: function () { return [{ type: i1.Title }]; } });
|
|
@@ -4804,9 +4636,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.2",
|
|
|
4804
4636
|
*/
|
|
4805
4637
|
class RouteReuseStrategy {
|
|
4806
4638
|
}
|
|
4807
|
-
RouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4808
|
-
RouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4809
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4639
|
+
RouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4640
|
+
RouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
|
|
4641
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouteReuseStrategy, decorators: [{
|
|
4810
4642
|
type: Injectable,
|
|
4811
4643
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
|
|
4812
4644
|
}] });
|
|
@@ -4858,9 +4690,9 @@ class BaseRouteReuseStrategy {
|
|
|
4858
4690
|
}
|
|
4859
4691
|
class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
|
|
4860
4692
|
}
|
|
4861
|
-
DefaultRouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4862
|
-
DefaultRouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4863
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4693
|
+
DefaultRouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
4694
|
+
DefaultRouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
|
|
4695
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
|
|
4864
4696
|
type: Injectable,
|
|
4865
4697
|
args: [{ providedIn: 'root' }]
|
|
4866
4698
|
}] });
|
|
@@ -4885,9 +4717,9 @@ const ROUTER_CONFIGURATION = new InjectionToken(NG_DEV_MODE$3 ? 'router config'
|
|
|
4885
4717
|
*/
|
|
4886
4718
|
class UrlHandlingStrategy {
|
|
4887
4719
|
}
|
|
4888
|
-
UrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4889
|
-
UrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4890
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4720
|
+
UrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4721
|
+
UrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
|
|
4722
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
|
|
4891
4723
|
type: Injectable,
|
|
4892
4724
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
|
|
4893
4725
|
}] });
|
|
@@ -4905,9 +4737,9 @@ class DefaultUrlHandlingStrategy {
|
|
|
4905
4737
|
return newUrlPart;
|
|
4906
4738
|
}
|
|
4907
4739
|
}
|
|
4908
|
-
DefaultUrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4909
|
-
DefaultUrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4910
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
4740
|
+
DefaultUrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4741
|
+
DefaultUrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
|
|
4742
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
|
|
4911
4743
|
type: Injectable,
|
|
4912
4744
|
args: [{ providedIn: 'root' }]
|
|
4913
4745
|
}] });
|
|
@@ -5029,8 +4861,6 @@ class Router {
|
|
|
5029
4861
|
* `{provide: RouteReuseStrategy, useClass: MyStrategy}`.
|
|
5030
4862
|
*/
|
|
5031
4863
|
this.routeReuseStrategy = inject(RouteReuseStrategy);
|
|
5032
|
-
/** Strategy used to create a UrlTree. */
|
|
5033
|
-
this.urlCreationStrategy = inject(CreateUrlTreeStrategy);
|
|
5034
4864
|
/**
|
|
5035
4865
|
* A strategy for setting the title based on the `routerState`.
|
|
5036
4866
|
*
|
|
@@ -5307,7 +5137,30 @@ class Router {
|
|
|
5307
5137
|
if (q !== null) {
|
|
5308
5138
|
q = this.removeEmptyProps(q);
|
|
5309
5139
|
}
|
|
5310
|
-
|
|
5140
|
+
let relativeToUrlSegmentGroup;
|
|
5141
|
+
try {
|
|
5142
|
+
const relativeToSnapshot = relativeTo ? relativeTo.snapshot : this.routerState.snapshot.root;
|
|
5143
|
+
relativeToUrlSegmentGroup = createSegmentGroupFromRoute(relativeToSnapshot);
|
|
5144
|
+
}
|
|
5145
|
+
catch (e) {
|
|
5146
|
+
// This is strictly for backwards compatibility with tests that create
|
|
5147
|
+
// invalid `ActivatedRoute` mocks.
|
|
5148
|
+
// Note: the difference between having this fallback for invalid `ActivatedRoute` setups and
|
|
5149
|
+
// just throwing is ~500 test failures. Fixing all of those tests by hand is not feasible at
|
|
5150
|
+
// the moment.
|
|
5151
|
+
if (typeof commands[0] !== 'string' || !commands[0].startsWith('/')) {
|
|
5152
|
+
// Navigations that were absolute in the old way of creating UrlTrees
|
|
5153
|
+
// would still work because they wouldn't attempt to match the
|
|
5154
|
+
// segments in the `ActivatedRoute` to the `currentUrlTree` but
|
|
5155
|
+
// instead just replace the root segment with the navigation result.
|
|
5156
|
+
// Non-absolute navigations would fail to apply the commands because
|
|
5157
|
+
// the logic could not find the segment to replace (so they'd act like there were no
|
|
5158
|
+
// commands).
|
|
5159
|
+
commands = [];
|
|
5160
|
+
}
|
|
5161
|
+
relativeToUrlSegmentGroup = this.currentUrlTree.root;
|
|
5162
|
+
}
|
|
5163
|
+
return createUrlTreeFromSegmentGroup(relativeToUrlSegmentGroup, commands, q, f ?? null);
|
|
5311
5164
|
}
|
|
5312
5165
|
/**
|
|
5313
5166
|
* Navigates to a view using an absolute route path.
|
|
@@ -5564,9 +5417,9 @@ class Router {
|
|
|
5564
5417
|
return { navigationId };
|
|
5565
5418
|
}
|
|
5566
5419
|
}
|
|
5567
|
-
Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5568
|
-
Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5569
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5420
|
+
Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5421
|
+
Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: Router, providedIn: 'root' });
|
|
5422
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: Router, decorators: [{
|
|
5570
5423
|
type: Injectable,
|
|
5571
5424
|
args: [{ providedIn: 'root' }]
|
|
5572
5425
|
}], ctorParameters: function () { return []; } });
|
|
@@ -5852,9 +5705,9 @@ class RouterLink {
|
|
|
5852
5705
|
});
|
|
5853
5706
|
}
|
|
5854
5707
|
}
|
|
5855
|
-
RouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5856
|
-
RouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.
|
|
5857
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5708
|
+
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 });
|
|
5709
|
+
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 });
|
|
5710
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterLink, decorators: [{
|
|
5858
5711
|
type: Directive,
|
|
5859
5712
|
args: [{
|
|
5860
5713
|
selector: '[routerLink]',
|
|
@@ -6075,9 +5928,9 @@ class RouterLinkActive {
|
|
|
6075
5928
|
return this.link && isActiveCheckFn(this.link) || this.links.some(isActiveCheckFn);
|
|
6076
5929
|
}
|
|
6077
5930
|
}
|
|
6078
|
-
RouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6079
|
-
RouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-next.
|
|
6080
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5931
|
+
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 });
|
|
5932
|
+
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 });
|
|
5933
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterLinkActive, decorators: [{
|
|
6081
5934
|
type: Directive,
|
|
6082
5935
|
args: [{
|
|
6083
5936
|
selector: '[routerLinkActive]',
|
|
@@ -6130,9 +5983,9 @@ class PreloadAllModules {
|
|
|
6130
5983
|
return fn().pipe(catchError(() => of(null)));
|
|
6131
5984
|
}
|
|
6132
5985
|
}
|
|
6133
|
-
PreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6134
|
-
PreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
5986
|
+
PreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5987
|
+
PreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: PreloadAllModules, providedIn: 'root' });
|
|
5988
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: PreloadAllModules, decorators: [{
|
|
6136
5989
|
type: Injectable,
|
|
6137
5990
|
args: [{ providedIn: 'root' }]
|
|
6138
5991
|
}] });
|
|
@@ -6150,9 +6003,9 @@ class NoPreloading {
|
|
|
6150
6003
|
return of(null);
|
|
6151
6004
|
}
|
|
6152
6005
|
}
|
|
6153
|
-
NoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6154
|
-
NoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6006
|
+
NoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6007
|
+
NoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NoPreloading, providedIn: 'root' });
|
|
6008
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: NoPreloading, decorators: [{
|
|
6156
6009
|
type: Injectable,
|
|
6157
6010
|
args: [{ providedIn: 'root' }]
|
|
6158
6011
|
}] });
|
|
@@ -6246,9 +6099,9 @@ class RouterPreloader {
|
|
|
6246
6099
|
});
|
|
6247
6100
|
}
|
|
6248
6101
|
}
|
|
6249
|
-
RouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6250
|
-
RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6251
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6102
|
+
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 });
|
|
6103
|
+
RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterPreloader, providedIn: 'root' });
|
|
6104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterPreloader, decorators: [{
|
|
6252
6105
|
type: Injectable,
|
|
6253
6106
|
args: [{ providedIn: 'root' }]
|
|
6254
6107
|
}], ctorParameters: function () { return [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }]; } });
|
|
@@ -6342,9 +6195,9 @@ class RouterScroller {
|
|
|
6342
6195
|
this.scrollEventsSubscription?.unsubscribe();
|
|
6343
6196
|
}
|
|
6344
6197
|
}
|
|
6345
|
-
RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6346
|
-
RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6347
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6198
|
+
RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
6199
|
+
RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterScroller });
|
|
6200
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterScroller, decorators: [{
|
|
6348
6201
|
type: Injectable
|
|
6349
6202
|
}], ctorParameters: function () { return [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }]; } });
|
|
6350
6203
|
|
|
@@ -6951,10 +6804,10 @@ class RouterModule {
|
|
|
6951
6804
|
};
|
|
6952
6805
|
}
|
|
6953
6806
|
}
|
|
6954
|
-
RouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6955
|
-
RouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0-next.
|
|
6956
|
-
RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6957
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.
|
|
6807
|
+
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 });
|
|
6808
|
+
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] });
|
|
6809
|
+
RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterModule, imports: [ɵEmptyOutletComponent] });
|
|
6810
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-next.4", ngImport: i0, type: RouterModule, decorators: [{
|
|
6958
6811
|
type: NgModule,
|
|
6959
6812
|
args: [{
|
|
6960
6813
|
imports: ROUTER_DIRECTIVES,
|
|
@@ -7099,7 +6952,7 @@ function mapToResolve(provider) {
|
|
|
7099
6952
|
/**
|
|
7100
6953
|
* @publicApi
|
|
7101
6954
|
*/
|
|
7102
|
-
const VERSION = new Version('16.0.0-next.
|
|
6955
|
+
const VERSION = new Version('16.0.0-next.4');
|
|
7103
6956
|
|
|
7104
6957
|
/**
|
|
7105
6958
|
* @module
|