@angular/router 20.2.0-next.4 → 20.2.0-next.5
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/fesm2022/router.mjs +2 -2
- package/fesm2022/router.mjs.map +1 -1
- package/fesm2022/router2.mjs +95 -74
- package/fesm2022/router2.mjs.map +1 -1
- package/fesm2022/router_module.mjs +23 -23
- package/fesm2022/testing.mjs +11 -11
- package/fesm2022/upgrade.mjs +1 -1
- package/index.d.ts +1 -1
- package/package.json +4 -4
- package/router_module.d.d.ts +9 -1
- package/testing/index.d.ts +1 -1
- package/upgrade/index.d.ts +1 -1
package/fesm2022/router.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.2.0-next.
|
|
2
|
+
* @license Angular v20.2.0-next.5
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -81,7 +81,7 @@ function mapToResolve(provider) {
|
|
|
81
81
|
/**
|
|
82
82
|
* @publicApi
|
|
83
83
|
*/
|
|
84
|
-
const VERSION = new Version('20.2.0-next.
|
|
84
|
+
const VERSION = new Version('20.2.0-next.5');
|
|
85
85
|
|
|
86
86
|
export { VERSION, mapToCanActivate, mapToCanActivateChild, mapToCanDeactivate, mapToCanMatch, mapToResolve };
|
|
87
87
|
//# sourceMappingURL=router.mjs.map
|
package/fesm2022/router.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/packages/router/src/utils/functional_guards.ts","../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/packages/router/src/version.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {inject, Type} from '@angular/core';\n\nimport {\n CanActivate,\n CanActivateChild,\n CanActivateChildFn,\n CanActivateFn,\n CanDeactivate,\n CanDeactivateFn,\n CanMatch,\n CanMatchFn,\n Resolve,\n ResolveFn,\n} from '../models';\n\n/**\n * Maps an array of injectable classes with canMatch functions to an array of equivalent\n * `CanMatchFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nexport function mapToCanMatch(providers: Array<Type<CanMatch>>): CanMatchFn[] {\n return providers.map(\n (provider) =>\n (...params) =>\n inject(provider).canMatch(...params),\n );\n}\n\n/**\n * Maps an array of injectable classes with canActivate functions to an array of equivalent\n * `CanActivateFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nexport function mapToCanActivate(providers: Array<Type<CanActivate>>): CanActivateFn[] {\n return providers.map(\n (provider) =>\n (...params) =>\n inject(provider).canActivate(...params),\n );\n}\n/**\n * Maps an array of injectable classes with canActivateChild functions to an array of equivalent\n * `CanActivateChildFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nexport function mapToCanActivateChild(\n providers: Array<Type<CanActivateChild>>,\n): CanActivateChildFn[] {\n return providers.map(\n (provider) =>\n (...params) =>\n inject(provider).canActivateChild(...params),\n );\n}\n/**\n * Maps an array of injectable classes with canDeactivate functions to an array of equivalent\n * `CanDeactivateFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nexport function mapToCanDeactivate<T = unknown>(\n providers: Array<Type<CanDeactivate<T>>>,\n): CanDeactivateFn<T>[] {\n return providers.map(\n (provider) =>\n (...params) =>\n inject(provider).canDeactivate(...params),\n );\n}\n/**\n * Maps an injectable class with a resolve function to an equivalent `ResolveFn`\n * for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='Resolve'}\n *\n * @publicApi\n * @see {@link Route}\n */\nexport function mapToResolve<T>(provider: Type<Resolve<T>>): ResolveFn<T> {\n return (...params) => inject(provider).resolve(...params);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the router package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('20.2.0-next.
|
|
1
|
+
{"version":3,"file":"router.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/packages/router/src/utils/functional_guards.ts","../../../../../darwin_arm64-fastbuild-ST-46c76129e412/bin/packages/router/src/version.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {inject, Type} from '@angular/core';\n\nimport {\n CanActivate,\n CanActivateChild,\n CanActivateChildFn,\n CanActivateFn,\n CanDeactivate,\n CanDeactivateFn,\n CanMatch,\n CanMatchFn,\n Resolve,\n ResolveFn,\n} from '../models';\n\n/**\n * Maps an array of injectable classes with canMatch functions to an array of equivalent\n * `CanMatchFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nexport function mapToCanMatch(providers: Array<Type<CanMatch>>): CanMatchFn[] {\n return providers.map(\n (provider) =>\n (...params) =>\n inject(provider).canMatch(...params),\n );\n}\n\n/**\n * Maps an array of injectable classes with canActivate functions to an array of equivalent\n * `CanActivateFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nexport function mapToCanActivate(providers: Array<Type<CanActivate>>): CanActivateFn[] {\n return providers.map(\n (provider) =>\n (...params) =>\n inject(provider).canActivate(...params),\n );\n}\n/**\n * Maps an array of injectable classes with canActivateChild functions to an array of equivalent\n * `CanActivateChildFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nexport function mapToCanActivateChild(\n providers: Array<Type<CanActivateChild>>,\n): CanActivateChildFn[] {\n return providers.map(\n (provider) =>\n (...params) =>\n inject(provider).canActivateChild(...params),\n );\n}\n/**\n * Maps an array of injectable classes with canDeactivate functions to an array of equivalent\n * `CanDeactivateFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nexport function mapToCanDeactivate<T = unknown>(\n providers: Array<Type<CanDeactivate<T>>>,\n): CanDeactivateFn<T>[] {\n return providers.map(\n (provider) =>\n (...params) =>\n inject(provider).canDeactivate(...params),\n );\n}\n/**\n * Maps an injectable class with a resolve function to an equivalent `ResolveFn`\n * for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='Resolve'}\n *\n * @publicApi\n * @see {@link Route}\n */\nexport function mapToResolve<T>(provider: Type<Resolve<T>>): ResolveFn<T> {\n return (...params) => inject(provider).resolve(...params);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the router package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('20.2.0-next.5');\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAuBA;;;;;;;;AAQG;AACG,SAAU,aAAa,CAAC,SAAgC,EAAA;IAC5D,OAAO,SAAS,CAAC,GAAG,CAClB,CAAC,QAAQ,KACP,CAAC,GAAG,MAAM,KACR,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CACzC;AACH;AAEA;;;;;;;;AAQG;AACG,SAAU,gBAAgB,CAAC,SAAmC,EAAA;IAClE,OAAO,SAAS,CAAC,GAAG,CAClB,CAAC,QAAQ,KACP,CAAC,GAAG,MAAM,KACR,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,CAC5C;AACH;AACA;;;;;;;;AAQG;AACG,SAAU,qBAAqB,CACnC,SAAwC,EAAA;IAExC,OAAO,SAAS,CAAC,GAAG,CAClB,CAAC,QAAQ,KACP,CAAC,GAAG,MAAM,KACR,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,CACjD;AACH;AACA;;;;;;;;AAQG;AACG,SAAU,kBAAkB,CAChC,SAAwC,EAAA;IAExC,OAAO,SAAS,CAAC,GAAG,CAClB,CAAC,QAAQ,KACP,CAAC,GAAG,MAAM,KACR,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,CAC9C;AACH;AACA;;;;;;;;AAQG;AACG,SAAU,YAAY,CAAI,QAA0B,EAAA;AACxD,IAAA,OAAO,CAAC,GAAG,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;AAC3D;;AC/FA;;;;AAIG;AAIH;;AAEG;MACU,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB;;;;"}
|
package/fesm2022/router2.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.2.0-next.
|
|
2
|
+
* @license Angular v20.2.0-next.5
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { DOCUMENT, Location } from '@angular/common';
|
|
8
8
|
import * as i0 from '@angular/core';
|
|
9
|
-
import { ɵisPromise as _isPromise, ɵRuntimeError as _RuntimeError, Injectable, ɵisNgModule as _isNgModule, isStandalone, createEnvironmentInjector, InjectionToken, EventEmitter, input, inject, ViewContainerRef, ChangeDetectorRef, Directive, Input, Output, reflectComponentType, Component, ɵisInjectable as _isInjectable, runInInjectionContext, Compiler, NgModuleFactory, afterNextRender, EnvironmentInjector, DestroyRef, ɵConsole as _Console, ɵPendingTasksInternal as _PendingTasksInternal, ɵINTERNAL_APPLICATION_ERROR_HANDLER as _INTERNAL_APPLICATION_ERROR_HANDLER } from '@angular/core';
|
|
9
|
+
import { ɵisPromise as _isPromise, ɵRuntimeError as _RuntimeError, Injectable, ɵisNgModule as _isNgModule, isStandalone, createEnvironmentInjector, InjectionToken, EventEmitter, input, inject, ViewContainerRef, ChangeDetectorRef, Directive, Input, Output, reflectComponentType, Component, ɵisInjectable as _isInjectable, runInInjectionContext, Compiler, NgModuleFactory, afterNextRender, signal, EnvironmentInjector, DestroyRef, untracked, ɵConsole as _Console, ɵPendingTasksInternal as _PendingTasksInternal, ɵINTERNAL_APPLICATION_ERROR_HANDLER as _INTERNAL_APPLICATION_ERROR_HANDLER } from '@angular/core';
|
|
10
10
|
import { isObservable, from, of, BehaviorSubject, combineLatest, EmptyError, concat, defer, pipe, throwError, EMPTY, ConnectableObservable, Subject, Observable, Subscription } from 'rxjs';
|
|
11
11
|
import { map, switchMap, take, startWith, filter, mergeMap, first, concatMap, tap, catchError, scan, defaultIfEmpty, last as last$1, takeLast, finalize, refCount, takeUntil } from 'rxjs/operators';
|
|
12
12
|
import * as i1 from '@angular/platform-browser';
|
|
@@ -432,10 +432,10 @@ function mapChildrenIntoArray(segment, fn) {
|
|
|
432
432
|
* @publicApi
|
|
433
433
|
*/
|
|
434
434
|
class UrlSerializer {
|
|
435
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
436
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
435
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
436
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });
|
|
437
437
|
}
|
|
438
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
438
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: UrlSerializer, decorators: [{
|
|
439
439
|
type: Injectable,
|
|
440
440
|
args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
|
|
441
441
|
}] });
|
|
@@ -2119,10 +2119,10 @@ class ChildrenOutletContexts {
|
|
|
2119
2119
|
getContext(childName) {
|
|
2120
2120
|
return this.contexts.get(childName) || null;
|
|
2121
2121
|
}
|
|
2122
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
2123
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
2122
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2123
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
|
|
2124
2124
|
}
|
|
2125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
2125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
|
|
2126
2126
|
type: Injectable,
|
|
2127
2127
|
args: [{ providedIn: 'root' }]
|
|
2128
2128
|
}], ctorParameters: () => [{ type: i0.EnvironmentInjector }] });
|
|
@@ -2908,10 +2908,10 @@ class RouterOutlet {
|
|
|
2908
2908
|
this.inputBinder?.bindActivatedRouteToOutletComponent(this);
|
|
2909
2909
|
this.activateEvents.emit(this.activated.instance);
|
|
2910
2910
|
}
|
|
2911
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
2912
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.
|
|
2911
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2912
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.0-next.5", type: RouterOutlet, isStandalone: true, selector: "router-outlet", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: false, isRequired: false, transformFunction: null }, routerOutletData: { classPropertyName: "routerOutletData", publicName: "routerOutletData", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activateEvents: "activate", deactivateEvents: "deactivate", attachEvents: "attach", detachEvents: "detach" }, exportAs: ["outlet"], usesOnChanges: true, ngImport: i0 });
|
|
2913
2913
|
}
|
|
2914
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
2914
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RouterOutlet, decorators: [{
|
|
2915
2915
|
type: Directive,
|
|
2916
2916
|
args: [{
|
|
2917
2917
|
selector: 'router-outlet',
|
|
@@ -3021,10 +3021,10 @@ class RoutedComponentInputBinder {
|
|
|
3021
3021
|
});
|
|
3022
3022
|
this.outletDataSubscriptions.set(outlet, dataSubscription);
|
|
3023
3023
|
}
|
|
3024
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
3025
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
3024
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
3025
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RoutedComponentInputBinder });
|
|
3026
3026
|
}
|
|
3027
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
3027
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
|
|
3028
3028
|
type: Injectable
|
|
3029
3029
|
}] });
|
|
3030
3030
|
|
|
@@ -3038,10 +3038,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.4",
|
|
|
3038
3038
|
* to this `EmptyOutletComponent`.
|
|
3039
3039
|
*/
|
|
3040
3040
|
class ɵEmptyOutletComponent {
|
|
3041
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
3042
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0-next.
|
|
3041
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3042
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.0-next.5", type: ɵEmptyOutletComponent, isStandalone: true, selector: "ng-component", exportAs: ["emptyRouterOutlet"], ngImport: i0, template: `<router-outlet/>`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
3043
3043
|
}
|
|
3044
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
3044
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
|
|
3045
3045
|
type: Component,
|
|
3046
3046
|
args: [{
|
|
3047
3047
|
template: `<router-outlet/>`,
|
|
@@ -4402,10 +4402,10 @@ class TitleStrategy {
|
|
|
4402
4402
|
getResolvedTitleForRoute(snapshot) {
|
|
4403
4403
|
return snapshot.data[RouteTitleKey];
|
|
4404
4404
|
}
|
|
4405
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4406
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4405
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4406
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
|
|
4407
4407
|
}
|
|
4408
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4408
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: TitleStrategy, decorators: [{
|
|
4409
4409
|
type: Injectable,
|
|
4410
4410
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
|
|
4411
4411
|
}] });
|
|
@@ -4429,10 +4429,10 @@ class DefaultTitleStrategy extends TitleStrategy {
|
|
|
4429
4429
|
this.title.setTitle(title);
|
|
4430
4430
|
}
|
|
4431
4431
|
}
|
|
4432
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4433
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4432
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4433
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
|
|
4434
4434
|
}
|
|
4435
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4435
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
|
|
4436
4436
|
type: Injectable,
|
|
4437
4437
|
args: [{ providedIn: 'root' }]
|
|
4438
4438
|
}], ctorParameters: () => [{ type: i1.Title }] });
|
|
@@ -4508,10 +4508,10 @@ class RouterConfigLoader {
|
|
|
4508
4508
|
this.childrenLoaders.set(route, loader);
|
|
4509
4509
|
return loader;
|
|
4510
4510
|
}
|
|
4511
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4512
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4511
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4512
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
|
|
4513
4513
|
}
|
|
4514
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4514
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RouterConfigLoader, decorators: [{
|
|
4515
4515
|
type: Injectable,
|
|
4516
4516
|
args: [{ providedIn: 'root' }]
|
|
4517
4517
|
}] });
|
|
@@ -4578,10 +4578,10 @@ function maybeUnwrapDefaultExport(input) {
|
|
|
4578
4578
|
* @publicApi
|
|
4579
4579
|
*/
|
|
4580
4580
|
class UrlHandlingStrategy {
|
|
4581
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4582
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4581
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4582
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });
|
|
4583
4583
|
}
|
|
4584
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4584
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
|
|
4585
4585
|
type: Injectable,
|
|
4586
4586
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
|
|
4587
4587
|
}] });
|
|
@@ -4598,10 +4598,10 @@ class DefaultUrlHandlingStrategy {
|
|
|
4598
4598
|
merge(newUrlPart, wholeUrl) {
|
|
4599
4599
|
return newUrlPart;
|
|
4600
4600
|
}
|
|
4601
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4602
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4601
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4602
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });
|
|
4603
4603
|
}
|
|
4604
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
4604
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
|
|
4605
4605
|
type: Injectable,
|
|
4606
4606
|
args: [{ providedIn: 'root' }]
|
|
4607
4607
|
}] });
|
|
@@ -4661,7 +4661,8 @@ function createRenderPromise(injector) {
|
|
|
4661
4661
|
|
|
4662
4662
|
const NAVIGATION_ERROR_HANDLER = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'navigation error handler' : '');
|
|
4663
4663
|
class NavigationTransitions {
|
|
4664
|
-
|
|
4664
|
+
// Some G3 targets expect the navigation object to be mutated (and not getting a new reference on changes).
|
|
4665
|
+
currentNavigation = signal(null, ...(ngDevMode ? [{ debugName: "currentNavigation", equal: () => false }] : [{ equal: () => false }]));
|
|
4665
4666
|
currentTransition = null;
|
|
4666
4667
|
lastSuccessfulNavigation = null;
|
|
4667
4668
|
/**
|
|
@@ -4716,15 +4717,20 @@ class NavigationTransitions {
|
|
|
4716
4717
|
}
|
|
4717
4718
|
handleNavigationRequest(request) {
|
|
4718
4719
|
const id = ++this.navigationId;
|
|
4719
|
-
|
|
4720
|
-
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4720
|
+
// Navigation can happen as a side effect of template execution, as such we need to untrack signal updates
|
|
4721
|
+
// (Writing to signals is not allowed while Angular renders the template)
|
|
4722
|
+
// TODO: We might want to reconsider allowing navigation as side effect of template execution.
|
|
4723
|
+
untracked(() => {
|
|
4724
|
+
this.transitions?.next({
|
|
4725
|
+
...request,
|
|
4726
|
+
extractedUrl: this.urlHandlingStrategy.extract(request.rawUrl),
|
|
4727
|
+
targetSnapshot: null,
|
|
4728
|
+
targetRouterState: null,
|
|
4729
|
+
guards: { canActivateChecks: [], canDeactivateChecks: [] },
|
|
4730
|
+
guardsResult: null,
|
|
4731
|
+
abortController: new AbortController(),
|
|
4732
|
+
id,
|
|
4733
|
+
});
|
|
4728
4734
|
});
|
|
4729
4735
|
}
|
|
4730
4736
|
setupNavigations(router) {
|
|
@@ -4747,7 +4753,7 @@ class NavigationTransitions {
|
|
|
4747
4753
|
}
|
|
4748
4754
|
this.currentTransition = overallTransitionState;
|
|
4749
4755
|
// Store the Navigation object
|
|
4750
|
-
this.currentNavigation
|
|
4756
|
+
this.currentNavigation.set({
|
|
4751
4757
|
id: t.id,
|
|
4752
4758
|
initialUrl: t.rawUrl,
|
|
4753
4759
|
extractedUrl: t.extractedUrl,
|
|
@@ -4763,7 +4769,7 @@ class NavigationTransitions {
|
|
|
4763
4769
|
previousNavigation: null,
|
|
4764
4770
|
},
|
|
4765
4771
|
abort: () => t.abortController.abort(),
|
|
4766
|
-
};
|
|
4772
|
+
});
|
|
4767
4773
|
const urlTransition = !router.navigated || this.isUpdatingInternalState() || this.isUpdatedBrowserUrl();
|
|
4768
4774
|
const onSameUrlNavigation = t.extras.onSameUrlNavigation ?? router.onSameUrlNavigation;
|
|
4769
4775
|
if (!urlTransition && onSameUrlNavigation !== 'reload') {
|
|
@@ -4792,10 +4798,10 @@ class NavigationTransitions {
|
|
|
4792
4798
|
tap((t) => {
|
|
4793
4799
|
overallTransitionState.targetSnapshot = t.targetSnapshot;
|
|
4794
4800
|
overallTransitionState.urlAfterRedirects = t.urlAfterRedirects;
|
|
4795
|
-
this.currentNavigation
|
|
4796
|
-
|
|
4797
|
-
|
|
4798
|
-
};
|
|
4801
|
+
this.currentNavigation.update((nav) => {
|
|
4802
|
+
nav.finalUrl = t.urlAfterRedirects;
|
|
4803
|
+
return nav;
|
|
4804
|
+
});
|
|
4799
4805
|
// Fire RoutesRecognized
|
|
4800
4806
|
const routesRecognized = new RoutesRecognized(t.id, this.urlSerializer.serialize(t.extractedUrl), this.urlSerializer.serialize(t.urlAfterRedirects), t.targetSnapshot);
|
|
4801
4807
|
this.events.next(routesRecognized);
|
|
@@ -4816,7 +4822,10 @@ class NavigationTransitions {
|
|
|
4816
4822
|
urlAfterRedirects: extractedUrl,
|
|
4817
4823
|
extras: { ...extras, skipLocationChange: false, replaceUrl: false },
|
|
4818
4824
|
};
|
|
4819
|
-
this.currentNavigation.
|
|
4825
|
+
this.currentNavigation.update((nav) => {
|
|
4826
|
+
nav.finalUrl = extractedUrl;
|
|
4827
|
+
return nav;
|
|
4828
|
+
});
|
|
4820
4829
|
return of(overallTransitionState);
|
|
4821
4830
|
}
|
|
4822
4831
|
else {
|
|
@@ -4910,7 +4919,10 @@ class NavigationTransitions {
|
|
|
4910
4919
|
}), map((t) => {
|
|
4911
4920
|
const targetRouterState = createRouterState(router.routeReuseStrategy, t.targetSnapshot, t.currentRouterState);
|
|
4912
4921
|
this.currentTransition = overallTransitionState = { ...t, targetRouterState };
|
|
4913
|
-
this.currentNavigation.
|
|
4922
|
+
this.currentNavigation.update((nav) => {
|
|
4923
|
+
nav.targetRouterState = targetRouterState;
|
|
4924
|
+
return nav;
|
|
4925
|
+
});
|
|
4914
4926
|
return overallTransitionState;
|
|
4915
4927
|
}), tap(() => {
|
|
4916
4928
|
this.events.next(new BeforeActivateRoutes());
|
|
@@ -4930,7 +4942,7 @@ class NavigationTransitions {
|
|
|
4930
4942
|
}))), tap({
|
|
4931
4943
|
next: (t) => {
|
|
4932
4944
|
completedOrAborted = true;
|
|
4933
|
-
this.lastSuccessfulNavigation = this.currentNavigation;
|
|
4945
|
+
this.lastSuccessfulNavigation = untracked(this.currentNavigation);
|
|
4934
4946
|
this.events.next(new NavigationEnd(t.id, this.urlSerializer.serialize(t.extractedUrl), this.urlSerializer.serialize(t.urlAfterRedirects)));
|
|
4935
4947
|
this.titleStrategy?.updateTitle(t.targetRouterState.snapshot);
|
|
4936
4948
|
t.resolve(true);
|
|
@@ -4964,7 +4976,7 @@ class NavigationTransitions {
|
|
|
4964
4976
|
// Only clear current navigation if it is still set to the one that
|
|
4965
4977
|
// finalized.
|
|
4966
4978
|
if (this.currentTransition?.id === overallTransitionState.id) {
|
|
4967
|
-
this.currentNavigation
|
|
4979
|
+
this.currentNavigation.set(null);
|
|
4968
4980
|
this.currentTransition = null;
|
|
4969
4981
|
}
|
|
4970
4982
|
}), catchError((e) => {
|
|
@@ -5057,14 +5069,15 @@ class NavigationTransitions {
|
|
|
5057
5069
|
// return only part of the browser URL and that part may have not changed even if some other
|
|
5058
5070
|
// portion of the URL did.
|
|
5059
5071
|
const currentBrowserUrl = this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(true)));
|
|
5060
|
-
const
|
|
5072
|
+
const currentNavigation = untracked(this.currentNavigation);
|
|
5073
|
+
const targetBrowserUrl = currentNavigation?.targetBrowserUrl ?? currentNavigation?.extractedUrl;
|
|
5061
5074
|
return (currentBrowserUrl.toString() !== targetBrowserUrl?.toString() &&
|
|
5062
|
-
!
|
|
5075
|
+
!currentNavigation?.extras.skipLocationChange);
|
|
5063
5076
|
}
|
|
5064
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5065
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5077
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5078
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });
|
|
5066
5079
|
}
|
|
5067
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5080
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: NavigationTransitions, decorators: [{
|
|
5068
5081
|
type: Injectable,
|
|
5069
5082
|
args: [{ providedIn: 'root' }]
|
|
5070
5083
|
}], ctorParameters: () => [] });
|
|
@@ -5080,10 +5093,10 @@ function isBrowserTriggeredNavigation(source) {
|
|
|
5080
5093
|
* @publicApi
|
|
5081
5094
|
*/
|
|
5082
5095
|
class RouteReuseStrategy {
|
|
5083
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5084
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5096
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5097
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });
|
|
5085
5098
|
}
|
|
5086
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5099
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: RouteReuseStrategy, decorators: [{
|
|
5087
5100
|
type: Injectable,
|
|
5088
5101
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
|
|
5089
5102
|
}] });
|
|
@@ -5134,10 +5147,10 @@ class BaseRouteReuseStrategy {
|
|
|
5134
5147
|
}
|
|
5135
5148
|
}
|
|
5136
5149
|
class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
|
|
5137
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5138
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5150
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
5151
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });
|
|
5139
5152
|
}
|
|
5140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5153
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
|
|
5141
5154
|
type: Injectable,
|
|
5142
5155
|
args: [{ providedIn: 'root' }]
|
|
5143
5156
|
}] });
|
|
@@ -5236,10 +5249,10 @@ class StateManager {
|
|
|
5236
5249
|
// when merging, such as the query params so they are not lost on a refresh.
|
|
5237
5250
|
this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, finalUrl ?? this.rawUrlTree);
|
|
5238
5251
|
}
|
|
5239
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5240
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5252
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5253
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) });
|
|
5241
5254
|
}
|
|
5242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5255
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: StateManager, decorators: [{
|
|
5243
5256
|
type: Injectable,
|
|
5244
5257
|
args: [{ providedIn: 'root', useFactory: () => inject(HistoryStateManager) }]
|
|
5245
5258
|
}] });
|
|
@@ -5371,10 +5384,10 @@ class HistoryStateManager extends StateManager {
|
|
|
5371
5384
|
}
|
|
5372
5385
|
return { navigationId };
|
|
5373
5386
|
}
|
|
5374
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5375
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5387
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
5388
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: HistoryStateManager, providedIn: 'root' });
|
|
5376
5389
|
}
|
|
5377
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5390
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: HistoryStateManager, decorators: [{
|
|
5378
5391
|
type: Injectable,
|
|
5379
5392
|
args: [{ providedIn: 'root' }]
|
|
5380
5393
|
}] });
|
|
@@ -5513,6 +5526,12 @@ class Router {
|
|
|
5513
5526
|
* `bindToComponentInputs` in the `ExtraOptions` of `RouterModule.forRoot`.
|
|
5514
5527
|
*/
|
|
5515
5528
|
componentInputBindingEnabled = !!inject(INPUT_BINDER, { optional: true });
|
|
5529
|
+
/**
|
|
5530
|
+
* Signal of the current `Navigation` object when the router is navigating, and `null` when idle.
|
|
5531
|
+
*
|
|
5532
|
+
* Note: The current navigation becomes to null after the NavigationEnd event is emitted.
|
|
5533
|
+
*/
|
|
5534
|
+
currentNavigation = this.navigationTransitions.currentNavigation.asReadonly();
|
|
5516
5535
|
constructor() {
|
|
5517
5536
|
this.resetConfig(this.config);
|
|
5518
5537
|
this.navigationTransitions.setupNavigations(this).subscribe({
|
|
@@ -5527,7 +5546,7 @@ class Router {
|
|
|
5527
5546
|
const subscription = this.navigationTransitions.events.subscribe((e) => {
|
|
5528
5547
|
try {
|
|
5529
5548
|
const currentTransition = this.navigationTransitions.currentTransition;
|
|
5530
|
-
const currentNavigation = this.navigationTransitions.currentNavigation;
|
|
5549
|
+
const currentNavigation = untracked(this.navigationTransitions.currentNavigation);
|
|
5531
5550
|
if (currentTransition !== null && currentNavigation !== null) {
|
|
5532
5551
|
this.stateManager.handleRouterEvent(e, currentNavigation);
|
|
5533
5552
|
if (e instanceof NavigationCancel &&
|
|
@@ -5650,9 +5669,11 @@ class Router {
|
|
|
5650
5669
|
/**
|
|
5651
5670
|
* Returns the current `Navigation` object when the router is navigating,
|
|
5652
5671
|
* and `null` when idle.
|
|
5672
|
+
*
|
|
5673
|
+
* @deprecated 20.2 Use the `currentNavigation` signal instead.
|
|
5653
5674
|
*/
|
|
5654
5675
|
getCurrentNavigation() {
|
|
5655
|
-
return this.navigationTransitions.currentNavigation;
|
|
5676
|
+
return untracked(this.navigationTransitions.currentNavigation);
|
|
5656
5677
|
}
|
|
5657
5678
|
/**
|
|
5658
5679
|
* The `Navigation` object of the most recent navigation to succeed and `null` if there
|
|
@@ -5939,10 +5960,10 @@ class Router {
|
|
|
5939
5960
|
return Promise.reject(e);
|
|
5940
5961
|
});
|
|
5941
5962
|
}
|
|
5942
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5943
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5963
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
5964
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: Router, providedIn: 'root' });
|
|
5944
5965
|
}
|
|
5945
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.
|
|
5966
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.0-next.5", ngImport: i0, type: Router, decorators: [{
|
|
5946
5967
|
type: Injectable,
|
|
5947
5968
|
args: [{ providedIn: 'root' }]
|
|
5948
5969
|
}], ctorParameters: () => [] });
|