@angular/router 14.0.0-next.1 → 14.0.0-next.12
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/apply_redirects.mjs +12 -13
- package/esm2020/src/components/empty_outlet.mjs +3 -3
- package/esm2020/src/create_url_tree.mjs +8 -7
- package/esm2020/src/directives/router_link.mjs +15 -18
- package/esm2020/src/directives/router_link_active.mjs +3 -3
- package/esm2020/src/directives/router_outlet.mjs +4 -4
- package/esm2020/src/events.mjs +1 -1
- package/esm2020/src/index.mjs +1 -1
- package/esm2020/src/models.mjs +14 -0
- package/esm2020/src/operators/activate_routes.mjs +1 -1
- package/esm2020/src/operators/apply_redirects.mjs +1 -1
- package/esm2020/src/operators/check_guards.mjs +1 -1
- package/esm2020/src/operators/recognize.mjs +1 -1
- package/esm2020/src/operators/resolve_data.mjs +12 -15
- package/esm2020/src/page_title_strategy.mjs +3 -3
- package/esm2020/src/private_export.mjs +1 -1
- package/esm2020/src/recognize.mjs +4 -4
- package/esm2020/src/router.mjs +7 -19
- package/esm2020/src/router_config_loader.mjs +2 -2
- package/esm2020/src/router_module.mjs +8 -8
- package/esm2020/src/router_preloader.mjs +4 -4
- package/esm2020/src/router_scroller.mjs +3 -3
- package/esm2020/src/router_state.mjs +2 -2
- package/esm2020/src/shared.mjs +1 -1
- package/esm2020/src/url_tree.mjs +2 -2
- package/esm2020/src/utils/config.mjs +1 -4
- package/esm2020/src/utils/config_matching.mjs +4 -4
- package/esm2020/src/utils/preactivation.mjs +1 -1
- package/esm2020/src/utils/type_guards.mjs +1 -1
- package/esm2020/src/version.mjs +1 -1
- package/esm2020/testing/src/router_testing_module.mjs +4 -4
- package/esm2020/upgrade/src/upgrade.mjs +15 -5
- package/fesm2015/router.mjs +86 -103
- package/fesm2015/router.mjs.map +1 -1
- package/fesm2015/testing.mjs +5 -5
- package/fesm2015/testing.mjs.map +1 -1
- package/fesm2015/upgrade.mjs +16 -5
- package/fesm2015/upgrade.mjs.map +1 -1
- package/fesm2020/router.mjs +82 -103
- package/fesm2020/router.mjs.map +1 -1
- package/fesm2020/testing.mjs +5 -5
- package/fesm2020/testing.mjs.map +1 -1
- package/fesm2020/upgrade.mjs +15 -5
- package/fesm2020/upgrade.mjs.map +1 -1
- package/package.json +5 -5
- package/router.d.ts +39 -9
- package/testing/testing.d.ts +1 -1
- package/upgrade/upgrade.d.ts +1 -1
- package/esm2020/src/config.mjs +0 -14
- package/esm2020/src/interfaces.mjs +0 -9
|
@@ -85,9 +85,9 @@ export class RouterTestingModule {
|
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
RouterTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
89
|
-
RouterTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
90
|
-
RouterTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
88
|
+
RouterTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
89
|
+
RouterTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterTestingModule, exports: [RouterModule] });
|
|
90
|
+
RouterTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterTestingModule, providers: [
|
|
91
91
|
ROUTER_PROVIDERS,
|
|
92
92
|
EXTRA_ROUTER_TESTING_PROVIDERS,
|
|
93
93
|
{ provide: Location, useClass: SpyLocation },
|
|
@@ -112,7 +112,7 @@ RouterTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ver
|
|
|
112
112
|
{ provide: PreloadingStrategy, useExisting: NoPreloading },
|
|
113
113
|
provideRoutes([]),
|
|
114
114
|
], imports: [RouterModule] });
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterTestingModule, decorators: [{
|
|
116
116
|
type: NgModule,
|
|
117
117
|
args: [{
|
|
118
118
|
exports: [RouterModule],
|
|
@@ -68,15 +68,25 @@ export function setUpLocationSync(ngUpgrade, urlType = 'path') {
|
|
|
68
68
|
const router = ngUpgrade.injector.get(Router);
|
|
69
69
|
const location = ngUpgrade.injector.get(Location);
|
|
70
70
|
ngUpgrade.$injector.get('$rootScope')
|
|
71
|
-
.$on('$locationChangeStart', (
|
|
71
|
+
.$on('$locationChangeStart', (event, newUrl, oldUrl, newState, oldState) => {
|
|
72
|
+
// Navigations coming from Angular router have a navigationId state
|
|
73
|
+
// property. Don't trigger Angular router navigation again if it is
|
|
74
|
+
// caused by a URL change from the current Angular router
|
|
75
|
+
// navigation.
|
|
76
|
+
const currentNavigationId = router.getCurrentNavigation()?.id;
|
|
77
|
+
const newStateNavigationId = newState?.navigationId;
|
|
78
|
+
if (newStateNavigationId !== undefined &&
|
|
79
|
+
newStateNavigationId === currentNavigationId) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
72
82
|
let url;
|
|
73
83
|
if (urlType === 'path') {
|
|
74
|
-
url = resolveUrl(
|
|
84
|
+
url = resolveUrl(newUrl);
|
|
75
85
|
}
|
|
76
86
|
else if (urlType === 'hash') {
|
|
77
87
|
// Remove the first hash from the URL
|
|
78
|
-
const hashIdx =
|
|
79
|
-
url = resolveUrl(
|
|
88
|
+
const hashIdx = newUrl.indexOf('#');
|
|
89
|
+
url = resolveUrl(newUrl.substring(0, hashIdx) + newUrl.substring(hashIdx + 1));
|
|
80
90
|
}
|
|
81
91
|
else {
|
|
82
92
|
throw 'Invalid URLType passed to setUpLocationSync: ' + urlType;
|
|
@@ -117,4 +127,4 @@ function resolveUrl(url) {
|
|
|
117
127
|
hash: anchor.hash
|
|
118
128
|
};
|
|
119
129
|
}
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci91cGdyYWRlL3NyYy91cGdyYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsc0JBQXNCLEVBQStCLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBQyxNQUFNLEVBQWtDLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRXREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDdEMsT0FBTyxFQUFFLHNCQUFzQjtJQUMvQixLQUFLLEVBQUUsSUFBSTtJQUNYLFVBQVUsRUFBRSw2QkFBeUU7SUFDckYsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDO0NBQ3RCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxTQUF3QjtJQUNwRSxPQUFPLEdBQUcsRUFBRTtRQUNWLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxTQUF3QixFQUFFLFVBQXlCLE1BQU07SUFDekYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQzs7O09BR2IsQ0FBQyxDQUFDO0tBQ047SUFFRCxNQUFNLE1BQU0sR0FBVyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxNQUFNLFFBQVEsR0FBYSxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU1RCxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7U0FDaEMsR0FBRyxDQUNBLHNCQUFzQixFQUN0QixDQUFDLEtBQVUsRUFBRSxNQUFjLEVBQUUsTUFBYyxFQUMxQyxRQUErQyxFQUMvQyxRQUErQyxFQUFFLEVBQUU7UUFDbEQsbUVBQW1FO1FBQ25FLG1FQUFtRTtRQUNuRSx5REFBeUQ7UUFDekQsY0FBYztRQUNkLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQzlELE1BQU0sb0JBQW9CLEdBQUcsUUFBUSxFQUFFLFlBQVksQ0FBQztRQUNwRCxJQUFJLG9CQUFvQixLQUFLLFNBQVM7WUFDbEMsb0JBQW9CLEtBQUssbUJBQW1CLEVBQUU7WUFDaEQsT0FBTztTQUNSO1FBRUQsSUFBSSxHQUFHLENBQUM7UUFDUixJQUFJLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDdEIsR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQjthQUFNLElBQUksT0FBTyxLQUFLLE1BQU0sRUFBRTtZQUM3QixxQ0FBcUM7WUFDckMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQyxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEY7YUFBTTtZQUNMLE1BQU0sK0NBQStDLEdBQUcsT0FBTyxDQUFDO1NBQ2pFO1FBQ0QsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUM7QUFDYixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsSUFBSSxNQUFtQyxDQUFDO0FBQ3hDLFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3RDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpDLE9BQU87UUFDTCw2REFBNkQ7UUFDN0QsUUFBUSxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFO1FBQ2xELE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtRQUNyQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7S0FDbEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QVBQX0JPT1RTVFJBUF9MSVNURU5FUiwgQ29tcG9uZW50UmVmLCBJbmplY3Rpb25Ub2tlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlciwgybVSZXN0b3JlZFN0YXRlIGFzIFJlc3RvcmVkU3RhdGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1VwZ3JhZGVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3VwZ3JhZGUvc3RhdGljJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIGluaXRpYWxpemVyIHRoYXQgc2V0cyB1cCBgbmdSb3V0ZWAgaW50ZWdyYXRpb25cbiAqIGFsb25nIHdpdGggc2V0dGluZyB1cCB0aGUgQW5ndWxhciByb3V0ZXIuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiA8Y29kZS1leGFtcGxlIGxhbmd1YWdlPVwidHlwZXNjcmlwdFwiPlxuICogQE5nTW9kdWxlKHtcbiAqICBpbXBvcnRzOiBbXG4gKiAgIFJvdXRlck1vZHVsZS5mb3JSb290KFNPTUVfUk9VVEVTKSxcbiAqICAgVXBncmFkZU1vZHVsZVxuICogXSxcbiAqIHByb3ZpZGVyczogW1xuICogICBSb3V0ZXJVcGdyYWRlSW5pdGlhbGl6ZXJcbiAqIF1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHtcbiAqICAgbmdEb0Jvb3RzdHJhcCgpIHt9XG4gKiB9XG4gKiA8L2NvZGUtZXhhbXBsZT5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBjb25zdCBSb3V0ZXJVcGdyYWRlSW5pdGlhbGl6ZXIgPSB7XG4gIHByb3ZpZGU6IEFQUF9CT09UU1RSQVBfTElTVEVORVIsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VGYWN0b3J5OiBsb2NhdGlvblN5bmNCb290c3RyYXBMaXN0ZW5lciBhcyAobmdVcGdyYWRlOiBVcGdyYWRlTW9kdWxlKSA9PiAoKSA9PiB2b2lkLFxuICBkZXBzOiBbVXBncmFkZU1vZHVsZV1cbn07XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2NhdGlvblN5bmNCb290c3RyYXBMaXN0ZW5lcihuZ1VwZ3JhZGU6IFVwZ3JhZGVNb2R1bGUpIHtcbiAgcmV0dXJuICgpID0+IHtcbiAgICBzZXRVcExvY2F0aW9uU3luYyhuZ1VwZ3JhZGUpO1xuICB9O1xufVxuXG4vKipcbiAqIFNldHMgdXAgYSBsb2NhdGlvbiBjaGFuZ2UgbGlzdGVuZXIgdG8gdHJpZ2dlciBgaGlzdG9yeS5wdXNoU3RhdGVgLlxuICogV29ya3MgYXJvdW5kIHRoZSBwcm9ibGVtIHRoYXQgYG9uUG9wU3RhdGVgIGRvZXMgbm90IHRyaWdnZXIgYGhpc3RvcnkucHVzaFN0YXRlYC5cbiAqIE11c3QgYmUgY2FsbGVkICphZnRlciogY2FsbGluZyBgVXBncmFkZU1vZHVsZS5ib290c3RyYXBgLlxuICpcbiAqIEBwYXJhbSBuZ1VwZ3JhZGUgVGhlIHVwZ3JhZGUgTmdNb2R1bGUuXG4gKiBAcGFyYW0gdXJsVHlwZSBUaGUgbG9jYXRpb24gc3RyYXRlZ3kuXG4gKiBAc2VlIGBIYXNoTG9jYXRpb25TdHJhdGVneWBcbiAqIEBzZWUgYFBhdGhMb2NhdGlvblN0cmF0ZWd5YFxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFVwTG9jYXRpb25TeW5jKG5nVXBncmFkZTogVXBncmFkZU1vZHVsZSwgdXJsVHlwZTogJ3BhdGgnfCdoYXNoJyA9ICdwYXRoJykge1xuICBpZiAoIW5nVXBncmFkZS4kaW5qZWN0b3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgICBSb3V0ZXJVcGdyYWRlSW5pdGlhbGl6ZXIgY2FuIGJlIHVzZWQgb25seSBhZnRlciBVcGdyYWRlTW9kdWxlLmJvb3RzdHJhcCBoYXMgYmVlbiBjYWxsZWQuXG4gICAgICAgIFJlbW92ZSBSb3V0ZXJVcGdyYWRlSW5pdGlhbGl6ZXIgYW5kIGNhbGwgc2V0VXBMb2NhdGlvblN5bmMgYWZ0ZXIgVXBncmFkZU1vZHVsZS5ib290c3RyYXAuXG4gICAgICBgKTtcbiAgfVxuXG4gIGNvbnN0IHJvdXRlcjogUm91dGVyID0gbmdVcGdyYWRlLmluamVjdG9yLmdldChSb3V0ZXIpO1xuICBjb25zdCBsb2NhdGlvbjogTG9jYXRpb24gPSBuZ1VwZ3JhZGUuaW5qZWN0b3IuZ2V0KExvY2F0aW9uKTtcblxuICBuZ1VwZ3JhZGUuJGluamVjdG9yLmdldCgnJHJvb3RTY29wZScpXG4gICAgICAuJG9uKFxuICAgICAgICAgICckbG9jYXRpb25DaGFuZ2VTdGFydCcsXG4gICAgICAgICAgKGV2ZW50OiBhbnksIG5ld1VybDogc3RyaW5nLCBvbGRVcmw6IHN0cmluZyxcbiAgICAgICAgICAgbmV3U3RhdGU/OiB7W2s6IHN0cmluZ106IHVua25vd259fFJlc3RvcmVkU3RhdGUsXG4gICAgICAgICAgIG9sZFN0YXRlPzoge1trOiBzdHJpbmddOiB1bmtub3dufXxSZXN0b3JlZFN0YXRlKSA9PiB7XG4gICAgICAgICAgICAvLyBOYXZpZ2F0aW9ucyBjb21pbmcgZnJvbSBBbmd1bGFyIHJvdXRlciBoYXZlIGEgbmF2aWdhdGlvbklkIHN0YXRlXG4gICAgICAgICAgICAvLyBwcm9wZXJ0eS4gRG9uJ3QgdHJpZ2dlciBBbmd1bGFyIHJvdXRlciBuYXZpZ2F0aW9uIGFnYWluIGlmIGl0IGlzXG4gICAgICAgICAgICAvLyBjYXVzZWQgYnkgYSBVUkwgY2hhbmdlIGZyb20gdGhlIGN1cnJlbnQgQW5ndWxhciByb3V0ZXJcbiAgICAgICAgICAgIC8vIG5hdmlnYXRpb24uXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50TmF2aWdhdGlvbklkID0gcm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCk/LmlkO1xuICAgICAgICAgICAgY29uc3QgbmV3U3RhdGVOYXZpZ2F0aW9uSWQgPSBuZXdTdGF0ZT8ubmF2aWdhdGlvbklkO1xuICAgICAgICAgICAgaWYgKG5ld1N0YXRlTmF2aWdhdGlvbklkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBuZXdTdGF0ZU5hdmlnYXRpb25JZCA9PT0gY3VycmVudE5hdmlnYXRpb25JZCkge1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCB1cmw7XG4gICAgICAgICAgICBpZiAodXJsVHlwZSA9PT0gJ3BhdGgnKSB7XG4gICAgICAgICAgICAgIHVybCA9IHJlc29sdmVVcmwobmV3VXJsKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsVHlwZSA9PT0gJ2hhc2gnKSB7XG4gICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgZmlyc3QgaGFzaCBmcm9tIHRoZSBVUkxcbiAgICAgICAgICAgICAgY29uc3QgaGFzaElkeCA9IG5ld1VybC5pbmRleE9mKCcjJyk7XG4gICAgICAgICAgICAgIHVybCA9IHJlc29sdmVVcmwobmV3VXJsLnN1YnN0cmluZygwLCBoYXNoSWR4KSArIG5ld1VybC5zdWJzdHJpbmcoaGFzaElkeCArIDEpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRocm93ICdJbnZhbGlkIFVSTFR5cGUgcGFzc2VkIHRvIHNldFVwTG9jYXRpb25TeW5jOiAnICsgdXJsVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBsb2NhdGlvbi5ub3JtYWxpemUodXJsLnBhdGhuYW1lKTtcbiAgICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHBhdGggKyB1cmwuc2VhcmNoICsgdXJsLmhhc2gpO1xuICAgICAgICAgIH0pO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYW5kIHBhcnNlcyBhIFVSTC5cbiAqXG4gKiAtIE5vcm1hbGl6aW5nIG1lYW5zIHRoYXQgYSByZWxhdGl2ZSBVUkwgd2lsbCBiZSByZXNvbHZlZCBpbnRvIGFuIGFic29sdXRlIFVSTCBpbiB0aGUgY29udGV4dCBvZlxuICogICB0aGUgYXBwbGljYXRpb24gZG9jdW1lbnQuXG4gKiAtIFBhcnNpbmcgbWVhbnMgdGhhdCB0aGUgYW5jaG9yJ3MgYHByb3RvY29sYCwgYGhvc3RuYW1lYCwgYHBvcnRgLCBgcGF0aG5hbWVgIGFuZCByZWxhdGVkXG4gKiAgIHByb3BlcnRpZXMgYXJlIGFsbCBwb3B1bGF0ZWQgdG8gcmVmbGVjdCB0aGUgbm9ybWFsaXplZCBVUkwuXG4gKlxuICogV2hpbGUgdGhpcyBhcHByb2FjaCBoYXMgd2lkZSBjb21wYXRpYmlsaXR5LCBpdCBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQgb24gSUUuIE9uIElFLCBub3JtYWxpemluZ1xuICogaGFwcGVucyBzaW1pbGFyIHRvIG90aGVyIGJyb3dzZXJzLCBidXQgdGhlIHBhcnNlZCBjb21wb25lbnRzIHdpbGwgbm90IGJlIHNldC4gKEUuZy4gaWYgeW91IGFzc2lnblxuICogYGEuaHJlZiA9ICdmb28nYCwgdGhlbiBgYS5wcm90b2NvbGAsIGBhLmhvc3RgLCBldGMuIHdpbGwgbm90IGJlIGNvcnJlY3RseSB1cGRhdGVkLilcbiAqIFdlIHdvcmsgYXJvdW5kIHRoYXQgYnkgcGVyZm9ybWluZyB0aGUgcGFyc2luZyBpbiBhIDJuZCBzdGVwIGJ5IHRha2luZyBhIHByZXZpb3VzbHkgbm9ybWFsaXplZCBVUkxcbiAqIGFuZCBhc3NpZ25pbmcgaXQgYWdhaW4uIFRoaXMgY29ycmVjdGx5IHBvcHVsYXRlcyBhbGwgcHJvcGVydGllcy5cbiAqXG4gKiBTZWVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIuanMvYmxvYi8yYzc0MDBlN2QwN2IwZjZjZWMxODE3ZGFiNDBiOTI1MGNlOGViY2U2L3NyYy9uZy91cmxVdGlscy5qcyNMMjYtTDMzXG4gKiBmb3IgbW9yZSBpbmZvLlxuICovXG5sZXQgYW5jaG9yOiBIVE1MQW5jaG9yRWxlbWVudHx1bmRlZmluZWQ7XG5mdW5jdGlvbiByZXNvbHZlVXJsKHVybDogc3RyaW5nKToge3BhdGhuYW1lOiBzdHJpbmcsIHNlYXJjaDogc3RyaW5nLCBoYXNoOiBzdHJpbmd9IHtcbiAgaWYgKCFhbmNob3IpIHtcbiAgICBhbmNob3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gIH1cblxuICBhbmNob3Iuc2V0QXR0cmlidXRlKCdocmVmJywgdXJsKTtcbiAgYW5jaG9yLnNldEF0dHJpYnV0ZSgnaHJlZicsIGFuY2hvci5ocmVmKTtcblxuICByZXR1cm4ge1xuICAgIC8vIElFIGRvZXMgbm90IHN0YXJ0IGBwYXRobmFtZWAgd2l0aCBgL2AgbGlrZSBvdGhlciBicm93c2Vycy5cbiAgICBwYXRobmFtZTogYC8ke2FuY2hvci5wYXRobmFtZS5yZXBsYWNlKC9eXFwvLywgJycpfWAsXG4gICAgc2VhcmNoOiBhbmNob3Iuc2VhcmNoLFxuICAgIGhhc2g6IGFuY2hvci5oYXNoXG4gIH07XG59XG4iXX0=
|
package/fesm2015/router.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v14.0.0-next.
|
|
2
|
+
* @license Angular v14.0.0-next.12
|
|
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 { ɵisObservable, ɵisPromise, EventEmitter, Directive, Attribute, Output, Component, NgModuleRef, InjectionToken, InjectFlags, NgModuleFactory, ɵConsole, NgZone, Injectable, Input, HostListener, HostBinding, Optional, ContentChildren, Injector, Compiler, NgProbeToken, ANALYZE_FOR_ENTRY_COMPONENTS, SkipSelf, Inject, APP_INITIALIZER, APP_BOOTSTRAP_LISTENER, NgModule, ApplicationRef, Version } from '@angular/core';
|
|
9
|
-
import { from, of, BehaviorSubject, combineLatest,
|
|
8
|
+
import { ɵisObservable, ɵisPromise, EventEmitter, Directive, Attribute, Output, Component, NgModuleRef, InjectionToken, InjectFlags, NgModuleFactory, ɵConsole, NgZone, Injectable, ɵcoerceToBoolean, Input, HostListener, HostBinding, Optional, ContentChildren, Injector, Compiler, NgProbeToken, ANALYZE_FOR_ENTRY_COMPONENTS, SkipSelf, Inject, APP_INITIALIZER, APP_BOOTSTRAP_LISTENER, NgModule, ApplicationRef, Version } from '@angular/core';
|
|
9
|
+
import { from, of, BehaviorSubject, combineLatest, throwError, EmptyError, concat, defer, Observable, EMPTY, ConnectableObservable, Subject } from 'rxjs';
|
|
10
10
|
import { map, switchMap, take, startWith, scan, filter, catchError, concatMap, last as last$1, first, mergeMap, tap, takeLast, refCount, finalize, mergeAll } from 'rxjs/operators';
|
|
11
11
|
import * as i3 from '@angular/common';
|
|
12
12
|
import { Location, LocationStrategy, PlatformLocation, APP_BASE_HREF, ViewportScroller, HashLocationStrategy, PathLocationStrategy, LOCATION_INITIALIZED } from '@angular/common';
|
|
@@ -1131,7 +1131,7 @@ class UrlParser {
|
|
|
1131
1131
|
}
|
|
1132
1132
|
let outletName = undefined;
|
|
1133
1133
|
if (path.indexOf(':') > -1) {
|
|
1134
|
-
outletName = path.
|
|
1134
|
+
outletName = path.slice(0, path.indexOf(':'));
|
|
1135
1135
|
this.capture(outletName);
|
|
1136
1136
|
this.capture(':');
|
|
1137
1137
|
}
|
|
@@ -1454,9 +1454,10 @@ function inheritedParamsDataResolve(route, paramsInheritanceStrategy = 'emptyOnl
|
|
|
1454
1454
|
/** @internal */
|
|
1455
1455
|
function flattenInherited(pathFromRoot) {
|
|
1456
1456
|
return pathFromRoot.reduce((res, curr) => {
|
|
1457
|
+
var _a;
|
|
1457
1458
|
const params = Object.assign(Object.assign({}, res.params), curr.params);
|
|
1458
1459
|
const data = Object.assign(Object.assign({}, res.data), curr.data);
|
|
1459
|
-
const resolve = Object.assign(Object.assign({}, res.resolve), curr._resolvedData);
|
|
1460
|
+
const resolve = Object.assign(Object.assign(Object.assign(Object.assign({}, curr.data), res.resolve), (_a = curr.routeConfig) === null || _a === void 0 ? void 0 : _a.data), curr._resolvedData);
|
|
1460
1461
|
return { params, data, resolve };
|
|
1461
1462
|
}, { params: {}, data: {}, resolve: {} });
|
|
1462
1463
|
}
|
|
@@ -1713,17 +1714,17 @@ function createActivatedRoute(c) {
|
|
|
1713
1714
|
*/
|
|
1714
1715
|
function createUrlTree(route, urlTree, commands, queryParams, fragment) {
|
|
1715
1716
|
if (commands.length === 0) {
|
|
1716
|
-
return tree(urlTree.root, urlTree.root, urlTree, queryParams, fragment);
|
|
1717
|
+
return tree(urlTree.root, urlTree.root, urlTree.root, queryParams, fragment);
|
|
1717
1718
|
}
|
|
1718
1719
|
const nav = computeNavigation(commands);
|
|
1719
1720
|
if (nav.toRoot()) {
|
|
1720
|
-
return tree(urlTree.root, new UrlSegmentGroup([], {}),
|
|
1721
|
+
return tree(urlTree.root, urlTree.root, new UrlSegmentGroup([], {}), queryParams, fragment);
|
|
1721
1722
|
}
|
|
1722
1723
|
const startingPosition = findStartingPosition(nav, urlTree, route);
|
|
1723
1724
|
const segmentGroup = startingPosition.processChildren ?
|
|
1724
1725
|
updateSegmentGroupChildren(startingPosition.segmentGroup, startingPosition.index, nav.commands) :
|
|
1725
1726
|
updateSegmentGroup(startingPosition.segmentGroup, startingPosition.index, nav.commands);
|
|
1726
|
-
return tree(startingPosition.segmentGroup, segmentGroup,
|
|
1727
|
+
return tree(urlTree.root, startingPosition.segmentGroup, segmentGroup, queryParams, fragment);
|
|
1727
1728
|
}
|
|
1728
1729
|
function isMatrixParams(command) {
|
|
1729
1730
|
return typeof command === 'object' && command != null && !command.outlets && !command.segmentPath;
|
|
@@ -1735,17 +1736,18 @@ function isMatrixParams(command) {
|
|
|
1735
1736
|
function isCommandWithOutlets(command) {
|
|
1736
1737
|
return typeof command === 'object' && command != null && command.outlets;
|
|
1737
1738
|
}
|
|
1738
|
-
function tree(oldSegmentGroup, newSegmentGroup,
|
|
1739
|
+
function tree(oldRoot, oldSegmentGroup, newSegmentGroup, queryParams, fragment) {
|
|
1739
1740
|
let qp = {};
|
|
1740
1741
|
if (queryParams) {
|
|
1741
1742
|
forEach(queryParams, (value, name) => {
|
|
1742
1743
|
qp[name] = Array.isArray(value) ? value.map((v) => `${v}`) : `${value}`;
|
|
1743
1744
|
});
|
|
1744
1745
|
}
|
|
1745
|
-
if (
|
|
1746
|
+
if (oldRoot === oldSegmentGroup) {
|
|
1746
1747
|
return new UrlTree(newSegmentGroup, qp, fragment);
|
|
1747
1748
|
}
|
|
1748
|
-
|
|
1749
|
+
const newRoot = replaceSegment(oldRoot, oldSegmentGroup, newSegmentGroup);
|
|
1750
|
+
return new UrlTree(newRoot, qp, fragment);
|
|
1749
1751
|
}
|
|
1750
1752
|
function replaceSegment(current, oldSegment, newSegment) {
|
|
1751
1753
|
const children = {};
|
|
@@ -2525,9 +2527,9 @@ class RouterOutlet {
|
|
|
2525
2527
|
this.activateEvents.emit(this.activated.instance);
|
|
2526
2528
|
}
|
|
2527
2529
|
}
|
|
2528
|
-
RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
2529
|
-
RouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
2530
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
2530
|
+
RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterOutlet, deps: [{ token: ChildrenOutletContexts }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: 'name', attribute: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2531
|
+
RouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.12", type: RouterOutlet, selector: "router-outlet", outputs: { activateEvents: "activate", deactivateEvents: "deactivate", attachEvents: "attach", detachEvents: "detach" }, exportAs: ["outlet"], ngImport: i0 });
|
|
2532
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterOutlet, decorators: [{
|
|
2531
2533
|
type: Directive,
|
|
2532
2534
|
args: [{ selector: 'router-outlet', exportAs: 'outlet' }]
|
|
2533
2535
|
}], ctorParameters: function () {
|
|
@@ -2583,9 +2585,9 @@ class OutletInjector {
|
|
|
2583
2585
|
*/
|
|
2584
2586
|
class ɵEmptyOutletComponent {
|
|
2585
2587
|
}
|
|
2586
|
-
ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
2587
|
-
ɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
2588
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
2588
|
+
ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2589
|
+
ɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "14.0.0-next.12", type: ɵEmptyOutletComponent, selector: "ng-component", ngImport: i0, template: `<router-outlet></router-outlet>`, isInline: true, directives: [{ type: RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
2590
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
|
|
2589
2591
|
type: Component,
|
|
2590
2592
|
args: [{ template: `<router-outlet></router-outlet>` }]
|
|
2591
2593
|
}] });
|
|
@@ -2659,9 +2661,6 @@ function validateNode(route, fullPath) {
|
|
|
2659
2661
|
const exp = `The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.`;
|
|
2660
2662
|
throw new Error(`Invalid configuration of route '{path: "${fullPath}", redirectTo: "${route.redirectTo}"}': please provide 'pathMatch'. ${exp}`);
|
|
2661
2663
|
}
|
|
2662
|
-
if (route.pathMatch !== void 0 && route.pathMatch !== 'full' && route.pathMatch !== 'prefix') {
|
|
2663
|
-
throw new Error(`Invalid configuration of route '${fullPath}': pathMatch can only be set to 'prefix' or 'full'`);
|
|
2664
|
-
}
|
|
2665
2664
|
}
|
|
2666
2665
|
if (route.children) {
|
|
2667
2666
|
validateConfig(route.children, fullPath);
|
|
@@ -2719,7 +2718,7 @@ function sortByMatchingOutlets(routes, outletName) {
|
|
|
2719
2718
|
const noMatch$1 = {
|
|
2720
2719
|
matched: false,
|
|
2721
2720
|
consumedSegments: [],
|
|
2722
|
-
|
|
2721
|
+
remainingSegments: [],
|
|
2723
2722
|
parameters: {},
|
|
2724
2723
|
positionalParamSegments: {}
|
|
2725
2724
|
};
|
|
@@ -2732,7 +2731,7 @@ function match(segmentGroup, route, segments) {
|
|
|
2732
2731
|
return {
|
|
2733
2732
|
matched: true,
|
|
2734
2733
|
consumedSegments: [],
|
|
2735
|
-
|
|
2734
|
+
remainingSegments: segments,
|
|
2736
2735
|
parameters: {},
|
|
2737
2736
|
positionalParamSegments: {}
|
|
2738
2737
|
};
|
|
@@ -2750,7 +2749,7 @@ function match(segmentGroup, route, segments) {
|
|
|
2750
2749
|
return {
|
|
2751
2750
|
matched: true,
|
|
2752
2751
|
consumedSegments: res.consumed,
|
|
2753
|
-
|
|
2752
|
+
remainingSegments: segments.slice(res.consumed.length),
|
|
2754
2753
|
// TODO(atscott): investigate combining parameters and positionalParamSegments
|
|
2755
2754
|
parameters,
|
|
2756
2755
|
positionalParamSegments: (_a = res.posParams) !== null && _a !== void 0 ? _a : {}
|
|
@@ -2868,16 +2867,16 @@ class AbsoluteRedirect {
|
|
|
2868
2867
|
}
|
|
2869
2868
|
}
|
|
2870
2869
|
function noMatch(segmentGroup) {
|
|
2871
|
-
return
|
|
2870
|
+
return throwError(new NoMatch$1(segmentGroup));
|
|
2872
2871
|
}
|
|
2873
2872
|
function absoluteRedirect(newTree) {
|
|
2874
|
-
return
|
|
2873
|
+
return throwError(new AbsoluteRedirect(newTree));
|
|
2875
2874
|
}
|
|
2876
2875
|
function namedOutletsRedirect(redirectTo) {
|
|
2877
|
-
return
|
|
2876
|
+
return throwError(new Error(`Only absolute redirects can have named outlets. redirectTo: '${redirectTo}'`));
|
|
2878
2877
|
}
|
|
2879
2878
|
function canLoadFails(route) {
|
|
2880
|
-
return
|
|
2879
|
+
return throwError(navigationCancelingError(`Cannot load children because the guard of the route "path: '${route.path}'" returned false`));
|
|
2881
2880
|
}
|
|
2882
2881
|
/**
|
|
2883
2882
|
* Returns the `UrlTree` with the redirection applied.
|
|
@@ -2992,7 +2991,7 @@ class ApplyRedirects {
|
|
|
2992
2991
|
if (noLeftoversInUrl(segmentGroup, segments, outlet)) {
|
|
2993
2992
|
return of(new UrlSegmentGroup([], {}));
|
|
2994
2993
|
}
|
|
2995
|
-
|
|
2994
|
+
return noMatch(segmentGroup);
|
|
2996
2995
|
}
|
|
2997
2996
|
throw e;
|
|
2998
2997
|
}));
|
|
@@ -3026,7 +3025,7 @@ class ApplyRedirects {
|
|
|
3026
3025
|
}));
|
|
3027
3026
|
}
|
|
3028
3027
|
expandRegularSegmentAgainstRouteUsingRedirect(ngModule, segmentGroup, routes, route, segments, outlet) {
|
|
3029
|
-
const { matched, consumedSegments,
|
|
3028
|
+
const { matched, consumedSegments, remainingSegments, positionalParamSegments } = match(segmentGroup, route, segments);
|
|
3030
3029
|
if (!matched)
|
|
3031
3030
|
return noMatch(segmentGroup);
|
|
3032
3031
|
const newTree = this.applyRedirectCommands(consumedSegments, route.redirectTo, positionalParamSegments);
|
|
@@ -3034,7 +3033,7 @@ class ApplyRedirects {
|
|
|
3034
3033
|
return absoluteRedirect(newTree);
|
|
3035
3034
|
}
|
|
3036
3035
|
return this.lineralizeSegments(route, newTree).pipe(mergeMap((newSegments) => {
|
|
3037
|
-
return this.expandSegment(ngModule, segmentGroup, routes, newSegments.concat(
|
|
3036
|
+
return this.expandSegment(ngModule, segmentGroup, routes, newSegments.concat(remainingSegments), outlet, false);
|
|
3038
3037
|
}));
|
|
3039
3038
|
}
|
|
3040
3039
|
matchSegmentAgainstRoute(ngModule, rawSegmentGroup, route, segments, outlet) {
|
|
@@ -3049,15 +3048,14 @@ class ApplyRedirects {
|
|
|
3049
3048
|
}
|
|
3050
3049
|
return of(new UrlSegmentGroup(segments, {}));
|
|
3051
3050
|
}
|
|
3052
|
-
const { matched, consumedSegments,
|
|
3051
|
+
const { matched, consumedSegments, remainingSegments } = match(rawSegmentGroup, route, segments);
|
|
3053
3052
|
if (!matched)
|
|
3054
3053
|
return noMatch(rawSegmentGroup);
|
|
3055
|
-
const rawSlicedSegments = segments.slice(lastChild);
|
|
3056
3054
|
const childConfig$ = this.getChildConfig(ngModule, route, segments);
|
|
3057
3055
|
return childConfig$.pipe(mergeMap((routerConfig) => {
|
|
3058
3056
|
const childModule = routerConfig.module;
|
|
3059
3057
|
const childConfig = routerConfig.routes;
|
|
3060
|
-
const { segmentGroup: splitSegmentGroup, slicedSegments } = split(rawSegmentGroup, consumedSegments,
|
|
3058
|
+
const { segmentGroup: splitSegmentGroup, slicedSegments } = split(rawSegmentGroup, consumedSegments, remainingSegments, childConfig);
|
|
3061
3059
|
// See comment on the other call to `split` about why this is necessary.
|
|
3062
3060
|
const segmentGroup = new UrlSegmentGroup(splitSegmentGroup.segments, splitSegmentGroup.children);
|
|
3063
3061
|
if (slicedSegments.length === 0 && segmentGroup.hasChildren()) {
|
|
@@ -3634,7 +3632,7 @@ class Recognizer {
|
|
|
3634
3632
|
return null;
|
|
3635
3633
|
let snapshot;
|
|
3636
3634
|
let consumedSegments = [];
|
|
3637
|
-
let
|
|
3635
|
+
let remainingSegments = [];
|
|
3638
3636
|
if (route.path === '**') {
|
|
3639
3637
|
const params = segments.length > 0 ? last(segments).parameters : {};
|
|
3640
3638
|
snapshot = new ActivatedRouteSnapshot(segments, params, Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, getData(route), getOutlet(route), route.component, route, getSourceSegmentGroup(rawSegment), getPathIndexShift(rawSegment) + segments.length, getResolve(route));
|
|
@@ -3645,11 +3643,11 @@ class Recognizer {
|
|
|
3645
3643
|
return null;
|
|
3646
3644
|
}
|
|
3647
3645
|
consumedSegments = result.consumedSegments;
|
|
3648
|
-
|
|
3646
|
+
remainingSegments = result.remainingSegments;
|
|
3649
3647
|
snapshot = new ActivatedRouteSnapshot(consumedSegments, result.parameters, Object.freeze(Object.assign({}, this.urlTree.queryParams)), this.urlTree.fragment, getData(route), getOutlet(route), route.component, route, getSourceSegmentGroup(rawSegment), getPathIndexShift(rawSegment) + consumedSegments.length, getResolve(route));
|
|
3650
3648
|
}
|
|
3651
3649
|
const childConfig = getChildConfig(route);
|
|
3652
|
-
const { segmentGroup, slicedSegments } = split(rawSegment, consumedSegments,
|
|
3650
|
+
const { segmentGroup, slicedSegments } = split(rawSegment, consumedSegments, remainingSegments,
|
|
3653
3651
|
// Filter out routes with redirectTo because we are trying to create activated route
|
|
3654
3652
|
// snapshots and don't handle redirects here. That should have been done in
|
|
3655
3653
|
// `applyRedirects`.
|
|
@@ -3809,19 +3807,16 @@ function resolveData(paramsInheritanceStrategy, moduleInjector) {
|
|
|
3809
3807
|
function runResolve(futureARS, futureRSS, paramsInheritanceStrategy, moduleInjector) {
|
|
3810
3808
|
const config = futureARS.routeConfig;
|
|
3811
3809
|
const resolve = futureARS._resolve;
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
if (typeof config.title === 'string' || config.title === null) {
|
|
3815
|
-
data[RouteTitle] = config.title;
|
|
3816
|
-
}
|
|
3817
|
-
else {
|
|
3818
|
-
resolve[RouteTitle] = config.title;
|
|
3819
|
-
}
|
|
3810
|
+
if ((config === null || config === void 0 ? void 0 : config.title) !== undefined && !hasStaticTitle(config)) {
|
|
3811
|
+
resolve[RouteTitle] = config.title;
|
|
3820
3812
|
}
|
|
3821
3813
|
return resolveNode(resolve, futureARS, futureRSS, moduleInjector)
|
|
3822
3814
|
.pipe(map((resolvedData) => {
|
|
3823
3815
|
futureARS._resolvedData = resolvedData;
|
|
3824
|
-
futureARS.data =
|
|
3816
|
+
futureARS.data = inheritedParamsDataResolve(futureARS, paramsInheritanceStrategy).resolve;
|
|
3817
|
+
if (config && hasStaticTitle(config)) {
|
|
3818
|
+
futureARS.data[RouteTitle] = config.title;
|
|
3819
|
+
}
|
|
3825
3820
|
return null;
|
|
3826
3821
|
}));
|
|
3827
3822
|
}
|
|
@@ -3832,7 +3827,7 @@ function resolveNode(resolve, futureARS, futureRSS, moduleInjector) {
|
|
|
3832
3827
|
}
|
|
3833
3828
|
const data = {};
|
|
3834
3829
|
return from(keys).pipe(mergeMap(key => getResolver(resolve[key], futureARS, futureRSS, moduleInjector)
|
|
3835
|
-
.pipe(tap((value) => {
|
|
3830
|
+
.pipe(take(1), tap((value) => {
|
|
3836
3831
|
data[key] = value;
|
|
3837
3832
|
}))), takeLast(1), mergeMap(() => {
|
|
3838
3833
|
// Ensure all resolvers returned values, otherwise don't emit any "next" and just complete
|
|
@@ -3851,6 +3846,9 @@ function getResolver(injectionToken, futureARS, futureRSS, moduleInjector) {
|
|
|
3851
3846
|
return resolver.resolve ? wrapIntoObservable(resolver.resolve(futureARS, futureRSS)) :
|
|
3852
3847
|
wrapIntoObservable(resolver(futureARS, futureRSS));
|
|
3853
3848
|
}
|
|
3849
|
+
function hasStaticTitle(config) {
|
|
3850
|
+
return typeof config.title === 'string' || config.title === null;
|
|
3851
|
+
}
|
|
3854
3852
|
|
|
3855
3853
|
/**
|
|
3856
3854
|
* @license
|
|
@@ -4178,6 +4176,8 @@ class Router {
|
|
|
4178
4176
|
/**
|
|
4179
4177
|
* Enables a bug fix that corrects relative link resolution in components with empty paths.
|
|
4180
4178
|
* @see `RouterModule`
|
|
4179
|
+
*
|
|
4180
|
+
* @deprecated
|
|
4181
4181
|
*/
|
|
4182
4182
|
this.relativeLinkResolution = 'corrected';
|
|
4183
4183
|
/**
|
|
@@ -4262,7 +4262,7 @@ class Router {
|
|
|
4262
4262
|
tap(t => {
|
|
4263
4263
|
this.currentNavigation = {
|
|
4264
4264
|
id: t.id,
|
|
4265
|
-
initialUrl: t.
|
|
4265
|
+
initialUrl: t.rawUrl,
|
|
4266
4266
|
extractedUrl: t.extractedUrl,
|
|
4267
4267
|
trigger: t.source,
|
|
4268
4268
|
extras: t.extras,
|
|
@@ -4829,24 +4829,10 @@ class Router {
|
|
|
4829
4829
|
});
|
|
4830
4830
|
}
|
|
4831
4831
|
scheduleNavigation(rawUrl, source, restoredState, extras, priorPromise) {
|
|
4832
|
-
var _a, _b
|
|
4832
|
+
var _a, _b;
|
|
4833
4833
|
if (this.disposed) {
|
|
4834
4834
|
return Promise.resolve(false);
|
|
4835
4835
|
}
|
|
4836
|
-
// Duplicate navigations may be triggered by attempts to sync AngularJS and
|
|
4837
|
-
// Angular router states. We have the setTimeout in the location listener to
|
|
4838
|
-
// ensure the imperative nav is scheduled before the browser nav.
|
|
4839
|
-
const lastNavigation = this.transitions.value;
|
|
4840
|
-
const browserNavPrecededByRouterNav = isBrowserTriggeredNavigation(source) && lastNavigation &&
|
|
4841
|
-
!isBrowserTriggeredNavigation(lastNavigation.source);
|
|
4842
|
-
const navToSameUrl = lastNavigation.rawUrl.toString() === rawUrl.toString();
|
|
4843
|
-
const lastNavigationInProgress = lastNavigation.id === ((_a = this.currentNavigation) === null || _a === void 0 ? void 0 : _a.id);
|
|
4844
|
-
// We consider duplicates as ones that goes to the same URL while the first
|
|
4845
|
-
// is still processing.
|
|
4846
|
-
const isDuplicateNav = navToSameUrl && lastNavigationInProgress;
|
|
4847
|
-
if (browserNavPrecededByRouterNav && isDuplicateNav) {
|
|
4848
|
-
return Promise.resolve(true); // return value is not used
|
|
4849
|
-
}
|
|
4850
4836
|
let resolve;
|
|
4851
4837
|
let reject;
|
|
4852
4838
|
let promise;
|
|
@@ -4878,10 +4864,10 @@ class Router {
|
|
|
4878
4864
|
// If we're replacing the URL or doing a silent navigation, we do not want to increment the
|
|
4879
4865
|
// page id because we aren't pushing a new entry to history.
|
|
4880
4866
|
if (extras.replaceUrl || extras.skipLocationChange) {
|
|
4881
|
-
targetPageId = (
|
|
4867
|
+
targetPageId = (_a = this.browserPageId) !== null && _a !== void 0 ? _a : 0;
|
|
4882
4868
|
}
|
|
4883
4869
|
else {
|
|
4884
|
-
targetPageId = ((
|
|
4870
|
+
targetPageId = ((_b = this.browserPageId) !== null && _b !== void 0 ? _b : 0) + 1;
|
|
4885
4871
|
}
|
|
4886
4872
|
}
|
|
4887
4873
|
}
|
|
@@ -4989,9 +4975,9 @@ class Router {
|
|
|
4989
4975
|
return { navigationId };
|
|
4990
4976
|
}
|
|
4991
4977
|
}
|
|
4992
|
-
Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
4993
|
-
Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
4994
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
4978
|
+
Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: Router, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
4979
|
+
Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: Router });
|
|
4980
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: Router, decorators: [{
|
|
4995
4981
|
type: Injectable
|
|
4996
4982
|
}], ctorParameters: function () { return [{ type: i0.Type }, { type: UrlSerializer }, { type: ChildrenOutletContexts }, { type: i3.Location }, { type: i0.Injector }, { type: i0.Compiler }, { type: undefined }]; } });
|
|
4997
4983
|
function validateCommands(commands) {
|
|
@@ -5023,7 +5009,7 @@ function isBrowserTriggeredNavigation(source) {
|
|
|
5023
5009
|
* For example, `['/team', teamId, 'user', userName, {details: true}]`
|
|
5024
5010
|
* generates a link to `/team/11/user/bob;details=true`.
|
|
5025
5011
|
*
|
|
5026
|
-
* Multiple static segments can be merged into one term and combined with dynamic
|
|
5012
|
+
* Multiple static segments can be merged into one term and combined with dynamic segments.
|
|
5027
5013
|
* For example, `['/team/11/user', userName, {details: true}]`
|
|
5028
5014
|
*
|
|
5029
5015
|
* The input that you provide to the link is treated as a delta to the current URL.
|
|
@@ -5161,8 +5147,8 @@ class RouterLink {
|
|
|
5161
5147
|
return true;
|
|
5162
5148
|
}
|
|
5163
5149
|
const extras = {
|
|
5164
|
-
skipLocationChange:
|
|
5165
|
-
replaceUrl:
|
|
5150
|
+
skipLocationChange: ɵcoerceToBoolean(this.skipLocationChange),
|
|
5151
|
+
replaceUrl: ɵcoerceToBoolean(this.replaceUrl),
|
|
5166
5152
|
state: this.state,
|
|
5167
5153
|
};
|
|
5168
5154
|
this.router.navigateByUrl(this.urlTree, extras);
|
|
@@ -5179,13 +5165,13 @@ class RouterLink {
|
|
|
5179
5165
|
queryParams: this.queryParams,
|
|
5180
5166
|
fragment: this.fragment,
|
|
5181
5167
|
queryParamsHandling: this.queryParamsHandling,
|
|
5182
|
-
preserveFragment:
|
|
5168
|
+
preserveFragment: ɵcoerceToBoolean(this.preserveFragment),
|
|
5183
5169
|
});
|
|
5184
5170
|
}
|
|
5185
5171
|
}
|
|
5186
|
-
RouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5187
|
-
RouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5172
|
+
RouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterLink, deps: [{ token: Router }, { token: ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
5173
|
+
RouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.12", type: RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: { queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", state: "state", relativeTo: "relativeTo", routerLink: "routerLink" }, host: { listeners: { "click": "onClick()" } }, usesOnChanges: true, ngImport: i0 });
|
|
5174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterLink, decorators: [{
|
|
5189
5175
|
type: Directive,
|
|
5190
5176
|
args: [{ selector: ':not(a):not(area)[routerLink]' }]
|
|
5191
5177
|
}], ctorParameters: function () {
|
|
@@ -5277,8 +5263,8 @@ class RouterLinkWithHref {
|
|
|
5277
5263
|
return true;
|
|
5278
5264
|
}
|
|
5279
5265
|
const extras = {
|
|
5280
|
-
skipLocationChange:
|
|
5281
|
-
replaceUrl:
|
|
5266
|
+
skipLocationChange: ɵcoerceToBoolean(this.skipLocationChange),
|
|
5267
|
+
replaceUrl: ɵcoerceToBoolean(this.replaceUrl),
|
|
5282
5268
|
state: this.state
|
|
5283
5269
|
};
|
|
5284
5270
|
this.router.navigateByUrl(this.urlTree, extras);
|
|
@@ -5300,13 +5286,13 @@ class RouterLinkWithHref {
|
|
|
5300
5286
|
queryParams: this.queryParams,
|
|
5301
5287
|
fragment: this.fragment,
|
|
5302
5288
|
queryParamsHandling: this.queryParamsHandling,
|
|
5303
|
-
preserveFragment:
|
|
5289
|
+
preserveFragment: ɵcoerceToBoolean(this.preserveFragment),
|
|
5304
5290
|
});
|
|
5305
5291
|
}
|
|
5306
5292
|
}
|
|
5307
|
-
RouterLinkWithHref.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5308
|
-
RouterLinkWithHref.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5309
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5293
|
+
RouterLinkWithHref.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterLinkWithHref, deps: [{ token: Router }, { token: ActivatedRoute }, { token: i3.LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive });
|
|
5294
|
+
RouterLinkWithHref.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.12", type: RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", state: "state", relativeTo: "relativeTo", routerLink: "routerLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" }, properties: { "attr.target": "this.target", "attr.href": "this.href" } }, usesOnChanges: true, ngImport: i0 });
|
|
5295
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterLinkWithHref, decorators: [{
|
|
5310
5296
|
type: Directive,
|
|
5311
5297
|
args: [{ selector: 'a[routerLink],area[routerLink]' }]
|
|
5312
5298
|
}], ctorParameters: function () { return [{ type: Router }, { type: ActivatedRoute }, { type: i3.LocationStrategy }]; }, propDecorators: { target: [{
|
|
@@ -5340,9 +5326,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.1",
|
|
|
5340
5326
|
args: ['click',
|
|
5341
5327
|
['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey']]
|
|
5342
5328
|
}] } });
|
|
5343
|
-
function attrBoolValue(s) {
|
|
5344
|
-
return s === '' || !!s;
|
|
5345
|
-
}
|
|
5346
5329
|
|
|
5347
5330
|
/**
|
|
5348
5331
|
* @license
|
|
@@ -5520,9 +5503,9 @@ class RouterLinkActive {
|
|
|
5520
5503
|
this.links.some(isActiveCheckFn) || this.linksWithHrefs.some(isActiveCheckFn);
|
|
5521
5504
|
}
|
|
5522
5505
|
}
|
|
5523
|
-
RouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5524
|
-
RouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5525
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5506
|
+
RouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }, { token: RouterLinkWithHref, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
5507
|
+
RouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "14.0.0-next.12", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: { routerLinkActiveOptions: "routerLinkActiveOptions", routerLinkActive: "routerLinkActive" }, outputs: { isActiveChange: "isActiveChange" }, queries: [{ propertyName: "links", predicate: RouterLink, descendants: true }, { propertyName: "linksWithHrefs", predicate: RouterLinkWithHref, descendants: true }], exportAs: ["routerLinkActive"], usesOnChanges: true, ngImport: i0 });
|
|
5508
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterLinkActive, decorators: [{
|
|
5526
5509
|
type: Directive,
|
|
5527
5510
|
args: [{
|
|
5528
5511
|
selector: '[routerLinkActive]',
|
|
@@ -5626,9 +5609,9 @@ class DefaultTitleStrategy extends TitleStrategy {
|
|
|
5626
5609
|
}
|
|
5627
5610
|
}
|
|
5628
5611
|
}
|
|
5629
|
-
DefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5630
|
-
DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5631
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5612
|
+
DefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5613
|
+
DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
|
|
5614
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
|
|
5632
5615
|
type: Injectable,
|
|
5633
5616
|
args: [{ providedIn: 'root' }]
|
|
5634
5617
|
}], ctorParameters: function () { return [{ type: i1.Title }]; } });
|
|
@@ -5746,9 +5729,9 @@ class RouterPreloader {
|
|
|
5746
5729
|
});
|
|
5747
5730
|
}
|
|
5748
5731
|
}
|
|
5749
|
-
RouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5750
|
-
RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5751
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5732
|
+
RouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.Injector }, { token: PreloadingStrategy }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5733
|
+
RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterPreloader });
|
|
5734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterPreloader, decorators: [{
|
|
5752
5735
|
type: Injectable
|
|
5753
5736
|
}], ctorParameters: function () { return [{ type: Router }, { type: i0.Compiler }, { type: i0.Injector }, { type: PreloadingStrategy }]; } });
|
|
5754
5737
|
|
|
@@ -5827,9 +5810,9 @@ class RouterScroller {
|
|
|
5827
5810
|
}
|
|
5828
5811
|
}
|
|
5829
5812
|
}
|
|
5830
|
-
RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5831
|
-
RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5832
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5813
|
+
RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
5814
|
+
RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterScroller });
|
|
5815
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterScroller, decorators: [{
|
|
5833
5816
|
type: Injectable
|
|
5834
5817
|
}], ctorParameters: function () { return [{ type: Router }, { type: i3.ViewportScroller }, { type: undefined }]; } });
|
|
5835
5818
|
|
|
@@ -5970,10 +5953,10 @@ class RouterModule {
|
|
|
5970
5953
|
return { ngModule: RouterModule, providers: [provideRoutes(routes)] };
|
|
5971
5954
|
}
|
|
5972
5955
|
}
|
|
5973
|
-
RouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5974
|
-
RouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5975
|
-
RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5976
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
5956
|
+
RouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }, { token: Router, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
5957
|
+
RouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterModule, declarations: [RouterOutlet, RouterLink, RouterLinkWithHref, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkWithHref, RouterLinkActive, ɵEmptyOutletComponent] });
|
|
5958
|
+
RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterModule });
|
|
5959
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterModule, decorators: [{
|
|
5977
5960
|
type: NgModule,
|
|
5978
5961
|
args: [{
|
|
5979
5962
|
declarations: ROUTER_DIRECTIVES,
|
|
@@ -6155,9 +6138,9 @@ class RouterInitializer {
|
|
|
6155
6138
|
this.destroyed = true;
|
|
6156
6139
|
}
|
|
6157
6140
|
}
|
|
6158
|
-
RouterInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
6159
|
-
RouterInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
6160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.
|
|
6141
|
+
RouterInitializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterInitializer, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6142
|
+
RouterInitializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterInitializer });
|
|
6143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0-next.12", ngImport: i0, type: RouterInitializer, decorators: [{
|
|
6161
6144
|
type: Injectable
|
|
6162
6145
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
6163
6146
|
function getAppInitializer(r) {
|
|
@@ -6197,7 +6180,7 @@ function provideRouterInitializer() {
|
|
|
6197
6180
|
/**
|
|
6198
6181
|
* @publicApi
|
|
6199
6182
|
*/
|
|
6200
|
-
const VERSION = new Version('14.0.0-next.
|
|
6183
|
+
const VERSION = new Version('14.0.0-next.12');
|
|
6201
6184
|
|
|
6202
6185
|
/**
|
|
6203
6186
|
* @license
|