@angular/router 18.0.4 → 18.0.6
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/esm2022/src/components/empty_outlet.mjs +21 -5
- package/esm2022/src/directives/router_link.mjs +3 -3
- package/esm2022/src/directives/router_link_active.mjs +3 -3
- package/esm2022/src/directives/router_outlet.mjs +6 -6
- package/esm2022/src/navigation_transition.mjs +3 -3
- package/esm2022/src/operators/activate_routes.mjs +1 -4
- package/esm2022/src/page_title_strategy.mjs +6 -6
- package/esm2022/src/route_reuse_strategy.mjs +6 -6
- package/esm2022/src/router.mjs +6 -5
- package/esm2022/src/router_config_loader.mjs +6 -5
- package/esm2022/src/router_module.mjs +4 -4
- package/esm2022/src/router_outlet_context.mjs +16 -10
- package/esm2022/src/router_preloader.mjs +9 -9
- package/esm2022/src/router_scroller.mjs +3 -3
- package/esm2022/src/statemanager/state_manager.mjs +6 -6
- package/esm2022/src/url_handling_strategy.mjs +6 -6
- package/esm2022/src/url_tree.mjs +3 -3
- package/esm2022/src/utils/config.mjs +1 -17
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/router_testing_harness.mjs +6 -6
- package/esm2022/testing/src/router_testing_module.mjs +4 -4
- package/fesm2022/router.mjs +300 -297
- package/fesm2022/router.mjs.map +1 -1
- package/fesm2022/testing.mjs +11 -11
- package/fesm2022/upgrade.mjs +1 -1
- package/index.d.ts +15 -7
- package/package.json +4 -4
- package/testing/index.d.ts +1 -1
- package/upgrade/index.d.ts +1 -1
package/fesm2022/router.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v18.0.
|
|
2
|
+
* @license Angular v18.0.6
|
|
3
3
|
* (c) 2010-2024 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, Directive, Input, Output, InjectionToken, reflectComponentType,
|
|
8
|
+
import { ɵisPromise, ɵRuntimeError, Injectable, createEnvironmentInjector, ɵisNgModule, isStandalone, EventEmitter, inject, ViewContainerRef, ChangeDetectorRef, Directive, Input, Output, InjectionToken, reflectComponentType, ɵisInjectable, runInInjectionContext, Component, Compiler, NgModuleFactory, NgZone, afterNextRender, AfterRenderPhase, EnvironmentInjector, ɵConsole, ɵPendingTasks, ɵɵsanitizeUrlOrResourceUrl, booleanAttribute, Attribute, HostBinding, HostListener, Optional, ContentChildren, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, Injector, ApplicationRef, InjectFlags, APP_INITIALIZER, SkipSelf, NgModule, Inject, Version } from '@angular/core';
|
|
9
9
|
import { isObservable, from, of, BehaviorSubject, combineLatest, EmptyError, concat, defer, pipe, throwError, EMPTY, ConnectableObservable, Subject, Subscription } from 'rxjs';
|
|
10
10
|
import * as i3 from '@angular/common';
|
|
11
11
|
import { DOCUMENT, Location, ViewportScroller, LOCATION_INITIALIZED, LocationStrategy, HashLocationStrategy, PathLocationStrategy } from '@angular/common';
|
|
@@ -421,10 +421,10 @@ function mapChildrenIntoArray(segment, fn) {
|
|
|
421
421
|
* @publicApi
|
|
422
422
|
*/
|
|
423
423
|
class UrlSerializer {
|
|
424
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
425
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
424
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
425
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
|
|
426
426
|
}
|
|
427
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
427
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: UrlSerializer, decorators: [{
|
|
428
428
|
type: Injectable,
|
|
429
429
|
args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
|
|
430
430
|
}] });
|
|
@@ -1790,17 +1790,204 @@ function stringifyEvent(routerEvent) {
|
|
|
1790
1790
|
}
|
|
1791
1791
|
}
|
|
1792
1792
|
|
|
1793
|
+
/**
|
|
1794
|
+
* Creates an `EnvironmentInjector` if the `Route` has providers and one does not already exist
|
|
1795
|
+
* and returns the injector. Otherwise, if the `Route` does not have `providers`, returns the
|
|
1796
|
+
* `currentInjector`.
|
|
1797
|
+
*
|
|
1798
|
+
* @param route The route that might have providers
|
|
1799
|
+
* @param currentInjector The parent injector of the `Route`
|
|
1800
|
+
*/
|
|
1801
|
+
function getOrCreateRouteInjectorIfNeeded(route, currentInjector) {
|
|
1802
|
+
if (route.providers && !route._injector) {
|
|
1803
|
+
route._injector = createEnvironmentInjector(route.providers, currentInjector, `Route: ${route.path}`);
|
|
1804
|
+
}
|
|
1805
|
+
return route._injector ?? currentInjector;
|
|
1806
|
+
}
|
|
1807
|
+
function getLoadedRoutes(route) {
|
|
1808
|
+
return route._loadedRoutes;
|
|
1809
|
+
}
|
|
1810
|
+
function getLoadedInjector(route) {
|
|
1811
|
+
return route._loadedInjector;
|
|
1812
|
+
}
|
|
1813
|
+
function getLoadedComponent(route) {
|
|
1814
|
+
return route._loadedComponent;
|
|
1815
|
+
}
|
|
1816
|
+
function getProvidersInjector(route) {
|
|
1817
|
+
return route._injector;
|
|
1818
|
+
}
|
|
1819
|
+
function validateConfig(config, parentPath = '', requireStandaloneComponents = false) {
|
|
1820
|
+
// forEach doesn't iterate undefined values
|
|
1821
|
+
for (let i = 0; i < config.length; i++) {
|
|
1822
|
+
const route = config[i];
|
|
1823
|
+
const fullPath = getFullPath(parentPath, route);
|
|
1824
|
+
validateNode(route, fullPath, requireStandaloneComponents);
|
|
1825
|
+
}
|
|
1826
|
+
}
|
|
1827
|
+
function assertStandalone(fullPath, component) {
|
|
1828
|
+
if (component && ɵisNgModule(component)) {
|
|
1829
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. You are using 'loadComponent' with a module, ` +
|
|
1830
|
+
`but it must be used with standalone components. Use 'loadChildren' instead.`);
|
|
1831
|
+
}
|
|
1832
|
+
else if (component && !isStandalone(component)) {
|
|
1833
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. The component must be standalone.`);
|
|
1834
|
+
}
|
|
1835
|
+
}
|
|
1836
|
+
function validateNode(route, fullPath, requireStandaloneComponents) {
|
|
1837
|
+
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
1838
|
+
if (!route) {
|
|
1839
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `
|
|
1840
|
+
Invalid configuration of route '${fullPath}': Encountered undefined route.
|
|
1841
|
+
The reason might be an extra comma.
|
|
1842
|
+
|
|
1843
|
+
Example:
|
|
1844
|
+
const routes: Routes = [
|
|
1845
|
+
{ path: '', redirectTo: '/dashboard', pathMatch: 'full' },
|
|
1846
|
+
{ path: 'dashboard', component: DashboardComponent },, << two commas
|
|
1847
|
+
{ path: 'detail/:id', component: HeroDetailComponent }
|
|
1848
|
+
];
|
|
1849
|
+
`);
|
|
1850
|
+
}
|
|
1851
|
+
if (Array.isArray(route)) {
|
|
1852
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': Array cannot be specified`);
|
|
1853
|
+
}
|
|
1854
|
+
if (!route.redirectTo &&
|
|
1855
|
+
!route.component &&
|
|
1856
|
+
!route.loadComponent &&
|
|
1857
|
+
!route.children &&
|
|
1858
|
+
!route.loadChildren &&
|
|
1859
|
+
route.outlet &&
|
|
1860
|
+
route.outlet !== PRIMARY_OUTLET) {
|
|
1861
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': a componentless route without children or loadChildren cannot have a named outlet set`);
|
|
1862
|
+
}
|
|
1863
|
+
if (route.redirectTo && route.children) {
|
|
1864
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and children cannot be used together`);
|
|
1865
|
+
}
|
|
1866
|
+
if (route.redirectTo && route.loadChildren) {
|
|
1867
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and loadChildren cannot be used together`);
|
|
1868
|
+
}
|
|
1869
|
+
if (route.children && route.loadChildren) {
|
|
1870
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': children and loadChildren cannot be used together`);
|
|
1871
|
+
}
|
|
1872
|
+
if (route.redirectTo && (route.component || route.loadComponent)) {
|
|
1873
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and component/loadComponent cannot be used together`);
|
|
1874
|
+
}
|
|
1875
|
+
if (route.component && route.loadComponent) {
|
|
1876
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': component and loadComponent cannot be used together`);
|
|
1877
|
+
}
|
|
1878
|
+
if (route.redirectTo && route.canActivate) {
|
|
1879
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and canActivate cannot be used together. Redirects happen before activation ` +
|
|
1880
|
+
`so canActivate will never be executed.`);
|
|
1881
|
+
}
|
|
1882
|
+
if (route.path && route.matcher) {
|
|
1883
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': path and matcher cannot be used together`);
|
|
1884
|
+
}
|
|
1885
|
+
if (route.redirectTo === void 0 &&
|
|
1886
|
+
!route.component &&
|
|
1887
|
+
!route.loadComponent &&
|
|
1888
|
+
!route.children &&
|
|
1889
|
+
!route.loadChildren) {
|
|
1890
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. One of the following must be provided: component, loadComponent, redirectTo, children or loadChildren`);
|
|
1891
|
+
}
|
|
1892
|
+
if (route.path === void 0 && route.matcher === void 0) {
|
|
1893
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': routes must have either a path or a matcher specified`);
|
|
1894
|
+
}
|
|
1895
|
+
if (typeof route.path === 'string' && route.path.charAt(0) === '/') {
|
|
1896
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': path cannot start with a slash`);
|
|
1897
|
+
}
|
|
1898
|
+
if (route.path === '' && route.redirectTo !== void 0 && route.pathMatch === void 0) {
|
|
1899
|
+
const exp = `The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.`;
|
|
1900
|
+
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '{path: "${fullPath}", redirectTo: "${route.redirectTo}"}': please provide 'pathMatch'. ${exp}`);
|
|
1901
|
+
}
|
|
1902
|
+
if (requireStandaloneComponents) {
|
|
1903
|
+
assertStandalone(fullPath, route.component);
|
|
1904
|
+
}
|
|
1905
|
+
}
|
|
1906
|
+
if (route.children) {
|
|
1907
|
+
validateConfig(route.children, fullPath, requireStandaloneComponents);
|
|
1908
|
+
}
|
|
1909
|
+
}
|
|
1910
|
+
function getFullPath(parentPath, currentRoute) {
|
|
1911
|
+
if (!currentRoute) {
|
|
1912
|
+
return parentPath;
|
|
1913
|
+
}
|
|
1914
|
+
if (!parentPath && !currentRoute.path) {
|
|
1915
|
+
return '';
|
|
1916
|
+
}
|
|
1917
|
+
else if (parentPath && !currentRoute.path) {
|
|
1918
|
+
return `${parentPath}/`;
|
|
1919
|
+
}
|
|
1920
|
+
else if (!parentPath && currentRoute.path) {
|
|
1921
|
+
return currentRoute.path;
|
|
1922
|
+
}
|
|
1923
|
+
else {
|
|
1924
|
+
return `${parentPath}/${currentRoute.path}`;
|
|
1925
|
+
}
|
|
1926
|
+
}
|
|
1927
|
+
/** Returns the `route.outlet` or PRIMARY_OUTLET if none exists. */
|
|
1928
|
+
function getOutlet(route) {
|
|
1929
|
+
return route.outlet || PRIMARY_OUTLET;
|
|
1930
|
+
}
|
|
1931
|
+
/**
|
|
1932
|
+
* Sorts the `routes` such that the ones with an outlet matching `outletName` come first.
|
|
1933
|
+
* The order of the configs is otherwise preserved.
|
|
1934
|
+
*/
|
|
1935
|
+
function sortByMatchingOutlets(routes, outletName) {
|
|
1936
|
+
const sortedConfig = routes.filter((r) => getOutlet(r) === outletName);
|
|
1937
|
+
sortedConfig.push(...routes.filter((r) => getOutlet(r) !== outletName));
|
|
1938
|
+
return sortedConfig;
|
|
1939
|
+
}
|
|
1940
|
+
/**
|
|
1941
|
+
* Gets the first injector in the snapshot's parent tree.
|
|
1942
|
+
*
|
|
1943
|
+
* If the `Route` has a static list of providers, the returned injector will be the one created from
|
|
1944
|
+
* those. If it does not exist, the returned injector may come from the parents, which may be from a
|
|
1945
|
+
* loaded config or their static providers.
|
|
1946
|
+
*
|
|
1947
|
+
* Returns `null` if there is neither this nor any parents have a stored injector.
|
|
1948
|
+
*
|
|
1949
|
+
* Generally used for retrieving the injector to use for getting tokens for guards/resolvers and
|
|
1950
|
+
* also used for getting the correct injector to use for creating components.
|
|
1951
|
+
*/
|
|
1952
|
+
function getClosestRouteInjector(snapshot) {
|
|
1953
|
+
if (!snapshot)
|
|
1954
|
+
return null;
|
|
1955
|
+
// If the current route has its own injector, which is created from the static providers on the
|
|
1956
|
+
// route itself, we should use that. Otherwise, we start at the parent since we do not want to
|
|
1957
|
+
// include the lazy loaded injector from this route.
|
|
1958
|
+
if (snapshot.routeConfig?._injector) {
|
|
1959
|
+
return snapshot.routeConfig._injector;
|
|
1960
|
+
}
|
|
1961
|
+
for (let s = snapshot.parent; s; s = s.parent) {
|
|
1962
|
+
const route = s.routeConfig;
|
|
1963
|
+
// Note that the order here is important. `_loadedInjector` stored on the route with
|
|
1964
|
+
// `loadChildren: () => NgModule` so it applies to child routes with priority. The `_injector`
|
|
1965
|
+
// is created from the static providers on that parent route, so it applies to the children as
|
|
1966
|
+
// well, but only if there is no lazy loaded NgModuleRef injector.
|
|
1967
|
+
if (route?._loadedInjector)
|
|
1968
|
+
return route._loadedInjector;
|
|
1969
|
+
if (route?._injector)
|
|
1970
|
+
return route._injector;
|
|
1971
|
+
}
|
|
1972
|
+
return null;
|
|
1973
|
+
}
|
|
1974
|
+
|
|
1793
1975
|
/**
|
|
1794
1976
|
* Store contextual information about a `RouterOutlet`
|
|
1795
1977
|
*
|
|
1796
1978
|
* @publicApi
|
|
1797
1979
|
*/
|
|
1798
1980
|
class OutletContext {
|
|
1799
|
-
|
|
1800
|
-
this.
|
|
1981
|
+
get injector() {
|
|
1982
|
+
return getClosestRouteInjector(this.route?.snapshot) ?? this.rootInjector;
|
|
1983
|
+
}
|
|
1984
|
+
// TODO(atscott): Only here to avoid a "breaking" change in a patch/minor. Remove in v19.
|
|
1985
|
+
set injector(_) { }
|
|
1986
|
+
constructor(rootInjector) {
|
|
1987
|
+
this.rootInjector = rootInjector;
|
|
1801
1988
|
this.outlet = null;
|
|
1802
1989
|
this.route = null;
|
|
1803
|
-
this.children = new ChildrenOutletContexts(this.
|
|
1990
|
+
this.children = new ChildrenOutletContexts(this.rootInjector);
|
|
1804
1991
|
this.attachRef = null;
|
|
1805
1992
|
}
|
|
1806
1993
|
}
|
|
@@ -1811,8 +1998,8 @@ class OutletContext {
|
|
|
1811
1998
|
*/
|
|
1812
1999
|
class ChildrenOutletContexts {
|
|
1813
2000
|
/** @nodoc */
|
|
1814
|
-
constructor(
|
|
1815
|
-
this.
|
|
2001
|
+
constructor(rootInjector) {
|
|
2002
|
+
this.rootInjector = rootInjector;
|
|
1816
2003
|
// contexts for child outlets, by name.
|
|
1817
2004
|
this.contexts = new Map();
|
|
1818
2005
|
}
|
|
@@ -1849,7 +2036,7 @@ class ChildrenOutletContexts {
|
|
|
1849
2036
|
getOrCreateContext(childName) {
|
|
1850
2037
|
let context = this.getContext(childName);
|
|
1851
2038
|
if (!context) {
|
|
1852
|
-
context = new OutletContext(this.
|
|
2039
|
+
context = new OutletContext(this.rootInjector);
|
|
1853
2040
|
this.contexts.set(childName, context);
|
|
1854
2041
|
}
|
|
1855
2042
|
return context;
|
|
@@ -1857,10 +2044,10 @@ class ChildrenOutletContexts {
|
|
|
1857
2044
|
getContext(childName) {
|
|
1858
2045
|
return this.contexts.get(childName) || null;
|
|
1859
2046
|
}
|
|
1860
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
1861
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
2047
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2048
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
|
|
1862
2049
|
}
|
|
1863
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
2050
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
|
|
1864
2051
|
type: Injectable,
|
|
1865
2052
|
args: [{ providedIn: 'root' }]
|
|
1866
2053
|
}], ctorParameters: () => [{ type: i0.EnvironmentInjector }] });
|
|
@@ -2568,10 +2755,10 @@ class RouterOutlet {
|
|
|
2568
2755
|
this.inputBinder?.bindActivatedRouteToOutletComponent(this);
|
|
2569
2756
|
this.activateEvents.emit(this.activated.instance);
|
|
2570
2757
|
}
|
|
2571
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
2572
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.
|
|
2758
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2759
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", 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 }); }
|
|
2573
2760
|
}
|
|
2574
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
2761
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterOutlet, decorators: [{
|
|
2575
2762
|
type: Directive,
|
|
2576
2763
|
args: [{
|
|
2577
2764
|
selector: 'router-outlet',
|
|
@@ -2694,10 +2881,10 @@ class RoutedComponentInputBinder {
|
|
|
2694
2881
|
});
|
|
2695
2882
|
this.outletDataSubscriptions.set(outlet, dataSubscription);
|
|
2696
2883
|
}
|
|
2697
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
2698
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
2884
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2885
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RoutedComponentInputBinder }); }
|
|
2699
2886
|
}
|
|
2700
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
2887
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
|
|
2701
2888
|
type: Injectable
|
|
2702
2889
|
}] });
|
|
2703
2890
|
|
|
@@ -2805,225 +2992,6 @@ function isNavigationCancelingError(error) {
|
|
|
2805
2992
|
return !!error && error[NAVIGATION_CANCELING_ERROR];
|
|
2806
2993
|
}
|
|
2807
2994
|
|
|
2808
|
-
/**
|
|
2809
|
-
* This component is used internally within the router to be a placeholder when an empty
|
|
2810
|
-
* router-outlet is needed. For example, with a config such as:
|
|
2811
|
-
*
|
|
2812
|
-
* `{path: 'parent', outlet: 'nav', children: [...]}`
|
|
2813
|
-
*
|
|
2814
|
-
* In order to render, there needs to be a component on this config, which will default
|
|
2815
|
-
* to this `EmptyOutletComponent`.
|
|
2816
|
-
*/
|
|
2817
|
-
class ɵEmptyOutletComponent {
|
|
2818
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2819
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.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"] }] }); }
|
|
2820
|
-
}
|
|
2821
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
|
|
2822
|
-
type: Component,
|
|
2823
|
-
args: [{
|
|
2824
|
-
template: `<router-outlet></router-outlet>`,
|
|
2825
|
-
imports: [RouterOutlet],
|
|
2826
|
-
standalone: true,
|
|
2827
|
-
}]
|
|
2828
|
-
}] });
|
|
2829
|
-
|
|
2830
|
-
/**
|
|
2831
|
-
* Creates an `EnvironmentInjector` if the `Route` has providers and one does not already exist
|
|
2832
|
-
* and returns the injector. Otherwise, if the `Route` does not have `providers`, returns the
|
|
2833
|
-
* `currentInjector`.
|
|
2834
|
-
*
|
|
2835
|
-
* @param route The route that might have providers
|
|
2836
|
-
* @param currentInjector The parent injector of the `Route`
|
|
2837
|
-
*/
|
|
2838
|
-
function getOrCreateRouteInjectorIfNeeded(route, currentInjector) {
|
|
2839
|
-
if (route.providers && !route._injector) {
|
|
2840
|
-
route._injector = createEnvironmentInjector(route.providers, currentInjector, `Route: ${route.path}`);
|
|
2841
|
-
}
|
|
2842
|
-
return route._injector ?? currentInjector;
|
|
2843
|
-
}
|
|
2844
|
-
function getLoadedRoutes(route) {
|
|
2845
|
-
return route._loadedRoutes;
|
|
2846
|
-
}
|
|
2847
|
-
function getLoadedInjector(route) {
|
|
2848
|
-
return route._loadedInjector;
|
|
2849
|
-
}
|
|
2850
|
-
function getLoadedComponent(route) {
|
|
2851
|
-
return route._loadedComponent;
|
|
2852
|
-
}
|
|
2853
|
-
function getProvidersInjector(route) {
|
|
2854
|
-
return route._injector;
|
|
2855
|
-
}
|
|
2856
|
-
function validateConfig(config, parentPath = '', requireStandaloneComponents = false) {
|
|
2857
|
-
// forEach doesn't iterate undefined values
|
|
2858
|
-
for (let i = 0; i < config.length; i++) {
|
|
2859
|
-
const route = config[i];
|
|
2860
|
-
const fullPath = getFullPath(parentPath, route);
|
|
2861
|
-
validateNode(route, fullPath, requireStandaloneComponents);
|
|
2862
|
-
}
|
|
2863
|
-
}
|
|
2864
|
-
function assertStandalone(fullPath, component) {
|
|
2865
|
-
if (component && ɵisNgModule(component)) {
|
|
2866
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. You are using 'loadComponent' with a module, ` +
|
|
2867
|
-
`but it must be used with standalone components. Use 'loadChildren' instead.`);
|
|
2868
|
-
}
|
|
2869
|
-
else if (component && !isStandalone(component)) {
|
|
2870
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. The component must be standalone.`);
|
|
2871
|
-
}
|
|
2872
|
-
}
|
|
2873
|
-
function validateNode(route, fullPath, requireStandaloneComponents) {
|
|
2874
|
-
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
2875
|
-
if (!route) {
|
|
2876
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `
|
|
2877
|
-
Invalid configuration of route '${fullPath}': Encountered undefined route.
|
|
2878
|
-
The reason might be an extra comma.
|
|
2879
|
-
|
|
2880
|
-
Example:
|
|
2881
|
-
const routes: Routes = [
|
|
2882
|
-
{ path: '', redirectTo: '/dashboard', pathMatch: 'full' },
|
|
2883
|
-
{ path: 'dashboard', component: DashboardComponent },, << two commas
|
|
2884
|
-
{ path: 'detail/:id', component: HeroDetailComponent }
|
|
2885
|
-
];
|
|
2886
|
-
`);
|
|
2887
|
-
}
|
|
2888
|
-
if (Array.isArray(route)) {
|
|
2889
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': Array cannot be specified`);
|
|
2890
|
-
}
|
|
2891
|
-
if (!route.redirectTo &&
|
|
2892
|
-
!route.component &&
|
|
2893
|
-
!route.loadComponent &&
|
|
2894
|
-
!route.children &&
|
|
2895
|
-
!route.loadChildren &&
|
|
2896
|
-
route.outlet &&
|
|
2897
|
-
route.outlet !== PRIMARY_OUTLET) {
|
|
2898
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': a componentless route without children or loadChildren cannot have a named outlet set`);
|
|
2899
|
-
}
|
|
2900
|
-
if (route.redirectTo && route.children) {
|
|
2901
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and children cannot be used together`);
|
|
2902
|
-
}
|
|
2903
|
-
if (route.redirectTo && route.loadChildren) {
|
|
2904
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and loadChildren cannot be used together`);
|
|
2905
|
-
}
|
|
2906
|
-
if (route.children && route.loadChildren) {
|
|
2907
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': children and loadChildren cannot be used together`);
|
|
2908
|
-
}
|
|
2909
|
-
if (route.redirectTo && (route.component || route.loadComponent)) {
|
|
2910
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and component/loadComponent cannot be used together`);
|
|
2911
|
-
}
|
|
2912
|
-
if (route.component && route.loadComponent) {
|
|
2913
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': component and loadComponent cannot be used together`);
|
|
2914
|
-
}
|
|
2915
|
-
if (route.redirectTo && route.canActivate) {
|
|
2916
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and canActivate cannot be used together. Redirects happen before activation ` +
|
|
2917
|
-
`so canActivate will never be executed.`);
|
|
2918
|
-
}
|
|
2919
|
-
if (route.path && route.matcher) {
|
|
2920
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': path and matcher cannot be used together`);
|
|
2921
|
-
}
|
|
2922
|
-
if (route.redirectTo === void 0 &&
|
|
2923
|
-
!route.component &&
|
|
2924
|
-
!route.loadComponent &&
|
|
2925
|
-
!route.children &&
|
|
2926
|
-
!route.loadChildren) {
|
|
2927
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. One of the following must be provided: component, loadComponent, redirectTo, children or loadChildren`);
|
|
2928
|
-
}
|
|
2929
|
-
if (route.path === void 0 && route.matcher === void 0) {
|
|
2930
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': routes must have either a path or a matcher specified`);
|
|
2931
|
-
}
|
|
2932
|
-
if (typeof route.path === 'string' && route.path.charAt(0) === '/') {
|
|
2933
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': path cannot start with a slash`);
|
|
2934
|
-
}
|
|
2935
|
-
if (route.path === '' && route.redirectTo !== void 0 && route.pathMatch === void 0) {
|
|
2936
|
-
const exp = `The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.`;
|
|
2937
|
-
throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '{path: "${fullPath}", redirectTo: "${route.redirectTo}"}': please provide 'pathMatch'. ${exp}`);
|
|
2938
|
-
}
|
|
2939
|
-
if (requireStandaloneComponents) {
|
|
2940
|
-
assertStandalone(fullPath, route.component);
|
|
2941
|
-
}
|
|
2942
|
-
}
|
|
2943
|
-
if (route.children) {
|
|
2944
|
-
validateConfig(route.children, fullPath, requireStandaloneComponents);
|
|
2945
|
-
}
|
|
2946
|
-
}
|
|
2947
|
-
function getFullPath(parentPath, currentRoute) {
|
|
2948
|
-
if (!currentRoute) {
|
|
2949
|
-
return parentPath;
|
|
2950
|
-
}
|
|
2951
|
-
if (!parentPath && !currentRoute.path) {
|
|
2952
|
-
return '';
|
|
2953
|
-
}
|
|
2954
|
-
else if (parentPath && !currentRoute.path) {
|
|
2955
|
-
return `${parentPath}/`;
|
|
2956
|
-
}
|
|
2957
|
-
else if (!parentPath && currentRoute.path) {
|
|
2958
|
-
return currentRoute.path;
|
|
2959
|
-
}
|
|
2960
|
-
else {
|
|
2961
|
-
return `${parentPath}/${currentRoute.path}`;
|
|
2962
|
-
}
|
|
2963
|
-
}
|
|
2964
|
-
/**
|
|
2965
|
-
* Makes a copy of the config and adds any default required properties.
|
|
2966
|
-
*/
|
|
2967
|
-
function standardizeConfig(r) {
|
|
2968
|
-
const children = r.children && r.children.map(standardizeConfig);
|
|
2969
|
-
const c = children ? { ...r, children } : { ...r };
|
|
2970
|
-
if (!c.component &&
|
|
2971
|
-
!c.loadComponent &&
|
|
2972
|
-
(children || c.loadChildren) &&
|
|
2973
|
-
c.outlet &&
|
|
2974
|
-
c.outlet !== PRIMARY_OUTLET) {
|
|
2975
|
-
c.component = ɵEmptyOutletComponent;
|
|
2976
|
-
}
|
|
2977
|
-
return c;
|
|
2978
|
-
}
|
|
2979
|
-
/** Returns the `route.outlet` or PRIMARY_OUTLET if none exists. */
|
|
2980
|
-
function getOutlet(route) {
|
|
2981
|
-
return route.outlet || PRIMARY_OUTLET;
|
|
2982
|
-
}
|
|
2983
|
-
/**
|
|
2984
|
-
* Sorts the `routes` such that the ones with an outlet matching `outletName` come first.
|
|
2985
|
-
* The order of the configs is otherwise preserved.
|
|
2986
|
-
*/
|
|
2987
|
-
function sortByMatchingOutlets(routes, outletName) {
|
|
2988
|
-
const sortedConfig = routes.filter((r) => getOutlet(r) === outletName);
|
|
2989
|
-
sortedConfig.push(...routes.filter((r) => getOutlet(r) !== outletName));
|
|
2990
|
-
return sortedConfig;
|
|
2991
|
-
}
|
|
2992
|
-
/**
|
|
2993
|
-
* Gets the first injector in the snapshot's parent tree.
|
|
2994
|
-
*
|
|
2995
|
-
* If the `Route` has a static list of providers, the returned injector will be the one created from
|
|
2996
|
-
* those. If it does not exist, the returned injector may come from the parents, which may be from a
|
|
2997
|
-
* loaded config or their static providers.
|
|
2998
|
-
*
|
|
2999
|
-
* Returns `null` if there is neither this nor any parents have a stored injector.
|
|
3000
|
-
*
|
|
3001
|
-
* Generally used for retrieving the injector to use for getting tokens for guards/resolvers and
|
|
3002
|
-
* also used for getting the correct injector to use for creating components.
|
|
3003
|
-
*/
|
|
3004
|
-
function getClosestRouteInjector(snapshot) {
|
|
3005
|
-
if (!snapshot)
|
|
3006
|
-
return null;
|
|
3007
|
-
// If the current route has its own injector, which is created from the static providers on the
|
|
3008
|
-
// route itself, we should use that. Otherwise, we start at the parent since we do not want to
|
|
3009
|
-
// include the lazy loaded injector from this route.
|
|
3010
|
-
if (snapshot.routeConfig?._injector) {
|
|
3011
|
-
return snapshot.routeConfig._injector;
|
|
3012
|
-
}
|
|
3013
|
-
for (let s = snapshot.parent; s; s = s.parent) {
|
|
3014
|
-
const route = s.routeConfig;
|
|
3015
|
-
// Note that the order here is important. `_loadedInjector` stored on the route with
|
|
3016
|
-
// `loadChildren: () => NgModule` so it applies to child routes with priority. The `_injector`
|
|
3017
|
-
// is created from the static providers on that parent route, so it applies to the children as
|
|
3018
|
-
// well, but only if there is no lazy loaded NgModuleRef injector.
|
|
3019
|
-
if (route?._loadedInjector)
|
|
3020
|
-
return route._loadedInjector;
|
|
3021
|
-
if (route?._injector)
|
|
3022
|
-
return route._injector;
|
|
3023
|
-
}
|
|
3024
|
-
return null;
|
|
3025
|
-
}
|
|
3026
|
-
|
|
3027
2995
|
let warnedAboutUnsupportedInputBinding = false;
|
|
3028
2996
|
const activateRoutes = (rootContexts, routeReuseStrategy, forwardEvent, inputBindingEnabled) => map((t) => {
|
|
3029
2997
|
new ActivateRoutes(routeReuseStrategy, t.targetRouterState, t.currentRouterState, forwardEvent, inputBindingEnabled).activate(rootContexts);
|
|
@@ -3173,10 +3141,8 @@ class ActivateRoutes {
|
|
|
3173
3141
|
this.activateChildRoutes(futureNode, null, context.children);
|
|
3174
3142
|
}
|
|
3175
3143
|
else {
|
|
3176
|
-
const injector = getClosestRouteInjector(future.snapshot);
|
|
3177
3144
|
context.attachRef = null;
|
|
3178
3145
|
context.route = future;
|
|
3179
|
-
context.injector = injector ?? context.injector;
|
|
3180
3146
|
if (context.outlet) {
|
|
3181
3147
|
// Activate the outlet when it has already been instantiated
|
|
3182
3148
|
// Otherwise it will get activated from its `ngOnInit` when instantiated
|
|
@@ -4241,10 +4207,10 @@ class TitleStrategy {
|
|
|
4241
4207
|
getResolvedTitleForRoute(snapshot) {
|
|
4242
4208
|
return snapshot.data[RouteTitleKey];
|
|
4243
4209
|
}
|
|
4244
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
4245
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
4210
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4211
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
|
|
4246
4212
|
}
|
|
4247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
4213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: TitleStrategy, decorators: [{
|
|
4248
4214
|
type: Injectable,
|
|
4249
4215
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
|
|
4250
4216
|
}] });
|
|
@@ -4267,10 +4233,10 @@ class DefaultTitleStrategy extends TitleStrategy {
|
|
|
4267
4233
|
this.title.setTitle(title);
|
|
4268
4234
|
}
|
|
4269
4235
|
}
|
|
4270
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
4271
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
4236
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4237
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
|
|
4272
4238
|
}
|
|
4273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
4239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
|
|
4274
4240
|
type: Injectable,
|
|
4275
4241
|
args: [{ providedIn: 'root' }]
|
|
4276
4242
|
}], ctorParameters: () => [{ type: i1.Title }] });
|
|
@@ -4285,6 +4251,43 @@ const ROUTER_CONFIGURATION = new InjectionToken(typeof ngDevMode === 'undefined'
|
|
|
4285
4251
|
factory: () => ({}),
|
|
4286
4252
|
});
|
|
4287
4253
|
|
|
4254
|
+
/**
|
|
4255
|
+
* This component is used internally within the router to be a placeholder when an empty
|
|
4256
|
+
* router-outlet is needed. For example, with a config such as:
|
|
4257
|
+
*
|
|
4258
|
+
* `{path: 'parent', outlet: 'nav', children: [...]}`
|
|
4259
|
+
*
|
|
4260
|
+
* In order to render, there needs to be a component on this config, which will default
|
|
4261
|
+
* to this `EmptyOutletComponent`.
|
|
4262
|
+
*/
|
|
4263
|
+
class ɵEmptyOutletComponent {
|
|
4264
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4265
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.6", 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"] }] }); }
|
|
4266
|
+
}
|
|
4267
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
|
|
4268
|
+
type: Component,
|
|
4269
|
+
args: [{
|
|
4270
|
+
template: `<router-outlet></router-outlet>`,
|
|
4271
|
+
imports: [RouterOutlet],
|
|
4272
|
+
standalone: true,
|
|
4273
|
+
}]
|
|
4274
|
+
}] });
|
|
4275
|
+
/**
|
|
4276
|
+
* Makes a copy of the config and adds any default required properties.
|
|
4277
|
+
*/
|
|
4278
|
+
function standardizeConfig(r) {
|
|
4279
|
+
const children = r.children && r.children.map(standardizeConfig);
|
|
4280
|
+
const c = children ? { ...r, children } : { ...r };
|
|
4281
|
+
if (!c.component &&
|
|
4282
|
+
!c.loadComponent &&
|
|
4283
|
+
(children || c.loadChildren) &&
|
|
4284
|
+
c.outlet &&
|
|
4285
|
+
c.outlet !== PRIMARY_OUTLET) {
|
|
4286
|
+
c.component = ɵEmptyOutletComponent;
|
|
4287
|
+
}
|
|
4288
|
+
return c;
|
|
4289
|
+
}
|
|
4290
|
+
|
|
4288
4291
|
/**
|
|
4289
4292
|
* The DI token for a router configuration.
|
|
4290
4293
|
*
|
|
@@ -4346,10 +4349,10 @@ class RouterConfigLoader {
|
|
|
4346
4349
|
this.childrenLoaders.set(route, loader);
|
|
4347
4350
|
return loader;
|
|
4348
4351
|
}
|
|
4349
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
4350
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
4352
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4353
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
|
|
4351
4354
|
}
|
|
4352
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
4355
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterConfigLoader, decorators: [{
|
|
4353
4356
|
type: Injectable,
|
|
4354
4357
|
args: [{ providedIn: 'root' }]
|
|
4355
4358
|
}] });
|
|
@@ -4416,10 +4419,10 @@ function maybeUnwrapDefaultExport(input) {
|
|
|
4416
4419
|
* @publicApi
|
|
4417
4420
|
*/
|
|
4418
4421
|
class UrlHandlingStrategy {
|
|
4419
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
4420
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
4422
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4423
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
|
|
4421
4424
|
}
|
|
4422
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
4425
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
|
|
4423
4426
|
type: Injectable,
|
|
4424
4427
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
|
|
4425
4428
|
}] });
|
|
@@ -4436,10 +4439,10 @@ class DefaultUrlHandlingStrategy {
|
|
|
4436
4439
|
merge(newUrlPart, wholeUrl) {
|
|
4437
4440
|
return newUrlPart;
|
|
4438
4441
|
}
|
|
4439
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
4440
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
4442
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4443
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
|
|
4441
4444
|
}
|
|
4442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
4445
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
|
|
4443
4446
|
type: Injectable,
|
|
4444
4447
|
args: [{ providedIn: 'root' }]
|
|
4445
4448
|
}] });
|
|
@@ -4890,10 +4893,10 @@ class NavigationTransitions {
|
|
|
4890
4893
|
return (extractedBrowserUrl.toString() !== this.currentTransition?.extractedUrl.toString() &&
|
|
4891
4894
|
!this.currentTransition?.extras.skipLocationChange);
|
|
4892
4895
|
}
|
|
4893
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
4894
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
4896
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4897
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
|
|
4895
4898
|
}
|
|
4896
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
4899
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NavigationTransitions, decorators: [{
|
|
4897
4900
|
type: Injectable,
|
|
4898
4901
|
args: [{ providedIn: 'root' }]
|
|
4899
4902
|
}], ctorParameters: () => [] });
|
|
@@ -4909,10 +4912,10 @@ function isBrowserTriggeredNavigation(source) {
|
|
|
4909
4912
|
* @publicApi
|
|
4910
4913
|
*/
|
|
4911
4914
|
class RouteReuseStrategy {
|
|
4912
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
4913
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
4915
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4916
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
|
|
4914
4917
|
}
|
|
4915
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
4918
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouteReuseStrategy, decorators: [{
|
|
4916
4919
|
type: Injectable,
|
|
4917
4920
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
|
|
4918
4921
|
}] });
|
|
@@ -4963,19 +4966,19 @@ class BaseRouteReuseStrategy {
|
|
|
4963
4966
|
}
|
|
4964
4967
|
}
|
|
4965
4968
|
class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
|
|
4966
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
4967
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
4969
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4970
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
|
|
4968
4971
|
}
|
|
4969
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
4972
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
|
|
4970
4973
|
type: Injectable,
|
|
4971
4974
|
args: [{ providedIn: 'root' }]
|
|
4972
4975
|
}] });
|
|
4973
4976
|
|
|
4974
4977
|
class StateManager {
|
|
4975
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
4976
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
4978
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4979
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) }); }
|
|
4977
4980
|
}
|
|
4978
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
4981
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: StateManager, decorators: [{
|
|
4979
4982
|
type: Injectable,
|
|
4980
4983
|
args: [{ providedIn: 'root', useFactory: () => inject(HistoryStateManager) }]
|
|
4981
4984
|
}] });
|
|
@@ -5150,10 +5153,10 @@ class HistoryStateManager extends StateManager {
|
|
|
5150
5153
|
}
|
|
5151
5154
|
return { navigationId };
|
|
5152
5155
|
}
|
|
5153
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
5154
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
5156
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5157
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: HistoryStateManager, providedIn: 'root' }); }
|
|
5155
5158
|
}
|
|
5156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
5159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: HistoryStateManager, decorators: [{
|
|
5157
5160
|
type: Injectable,
|
|
5158
5161
|
args: [{ providedIn: 'root' }]
|
|
5159
5162
|
}] });
|
|
@@ -5726,10 +5729,10 @@ class Router {
|
|
|
5726
5729
|
return Promise.reject(e);
|
|
5727
5730
|
});
|
|
5728
5731
|
}
|
|
5729
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
5730
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
5732
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5733
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Router, providedIn: 'root' }); }
|
|
5731
5734
|
}
|
|
5732
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
5735
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Router, decorators: [{
|
|
5733
5736
|
type: Injectable,
|
|
5734
5737
|
args: [{ providedIn: 'root' }]
|
|
5735
5738
|
}], ctorParameters: () => [] });
|
|
@@ -6004,10 +6007,10 @@ class RouterLink {
|
|
|
6004
6007
|
preserveFragment: this.preserveFragment,
|
|
6005
6008
|
});
|
|
6006
6009
|
}
|
|
6007
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
6008
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.
|
|
6010
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", 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 }); }
|
|
6011
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.6", type: RouterLink, isStandalone: true, selector: "[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", info: "info", relativeTo: "relativeTo", preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute], skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute], replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute], 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 }); }
|
|
6009
6012
|
}
|
|
6010
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
6013
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterLink, decorators: [{
|
|
6011
6014
|
type: Directive,
|
|
6012
6015
|
args: [{
|
|
6013
6016
|
selector: '[routerLink]',
|
|
@@ -6245,10 +6248,10 @@ class RouterLinkActive {
|
|
|
6245
6248
|
const isActiveCheckFn = this.isLinkActive(this.router);
|
|
6246
6249
|
return (this.link && isActiveCheckFn(this.link)) || this.links.some(isActiveCheckFn);
|
|
6247
6250
|
}
|
|
6248
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
6249
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.
|
|
6251
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6252
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", 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 }); }
|
|
6250
6253
|
}
|
|
6251
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
6254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterLinkActive, decorators: [{
|
|
6252
6255
|
type: Directive,
|
|
6253
6256
|
args: [{
|
|
6254
6257
|
selector: '[routerLinkActive]',
|
|
@@ -6300,10 +6303,10 @@ class PreloadAllModules {
|
|
|
6300
6303
|
preload(route, fn) {
|
|
6301
6304
|
return fn().pipe(catchError(() => of(null)));
|
|
6302
6305
|
}
|
|
6303
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
6304
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
6306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6307
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
|
|
6305
6308
|
}
|
|
6306
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
6309
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PreloadAllModules, decorators: [{
|
|
6307
6310
|
type: Injectable,
|
|
6308
6311
|
args: [{ providedIn: 'root' }]
|
|
6309
6312
|
}] });
|
|
@@ -6320,10 +6323,10 @@ class NoPreloading {
|
|
|
6320
6323
|
preload(route, fn) {
|
|
6321
6324
|
return of(null);
|
|
6322
6325
|
}
|
|
6323
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
6324
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
6326
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6327
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
|
|
6325
6328
|
}
|
|
6326
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
6329
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NoPreloading, decorators: [{
|
|
6327
6330
|
type: Injectable,
|
|
6328
6331
|
args: [{ providedIn: 'root' }]
|
|
6329
6332
|
}] });
|
|
@@ -6414,10 +6417,10 @@ class RouterPreloader {
|
|
|
6414
6417
|
}
|
|
6415
6418
|
});
|
|
6416
6419
|
}
|
|
6417
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
6418
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
6420
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6421
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
|
|
6419
6422
|
}
|
|
6420
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
6423
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterPreloader, decorators: [{
|
|
6421
6424
|
type: Injectable,
|
|
6422
6425
|
args: [{ providedIn: 'root' }]
|
|
6423
6426
|
}], ctorParameters: () => [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }] });
|
|
@@ -6518,10 +6521,10 @@ class RouterScroller {
|
|
|
6518
6521
|
this.routerEventsSubscription?.unsubscribe();
|
|
6519
6522
|
this.scrollEventsSubscription?.unsubscribe();
|
|
6520
6523
|
}
|
|
6521
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
6522
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.
|
|
6524
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6525
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterScroller }); }
|
|
6523
6526
|
}
|
|
6524
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
6527
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterScroller, decorators: [{
|
|
6525
6528
|
type: Injectable
|
|
6526
6529
|
}], ctorParameters: () => [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }] });
|
|
6527
6530
|
|
|
@@ -7168,11 +7171,11 @@ class RouterModule {
|
|
|
7168
7171
|
providers: [{ provide: ROUTES, multi: true, useValue: routes }],
|
|
7169
7172
|
};
|
|
7170
7173
|
}
|
|
7171
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
7172
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.
|
|
7173
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.
|
|
7174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7175
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
|
|
7176
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterModule }); }
|
|
7174
7177
|
}
|
|
7175
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
7178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RouterModule, decorators: [{
|
|
7176
7179
|
type: NgModule,
|
|
7177
7180
|
args: [{
|
|
7178
7181
|
imports: ROUTER_DIRECTIVES,
|
|
@@ -7317,7 +7320,7 @@ function mapToResolve(provider) {
|
|
|
7317
7320
|
/**
|
|
7318
7321
|
* @publicApi
|
|
7319
7322
|
*/
|
|
7320
|
-
const VERSION = new Version('18.0.
|
|
7323
|
+
const VERSION = new Version('18.0.6');
|
|
7321
7324
|
|
|
7322
7325
|
/**
|
|
7323
7326
|
* @module
|