@angular/router 18.1.0-rc.0 → 18.1.1
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.1.
|
|
2
|
+
* @license Angular v18.1.1
|
|
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, 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.1.
|
|
425
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
424
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
425
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
|
|
426
426
|
}
|
|
427
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
427
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", 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.1.
|
|
1861
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
2047
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2048
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
|
|
1862
2049
|
}
|
|
1863
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
2050
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", 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.1.
|
|
2572
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.
|
|
2758
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2759
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", 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.1.
|
|
2761
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", 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.1.
|
|
2698
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
2884
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2885
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RoutedComponentInputBinder }); }
|
|
2699
2886
|
}
|
|
2700
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
2887
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", 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.1.0-rc.0", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2819
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0-rc.0", 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.1.0-rc.0", 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.1.
|
|
4245
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
4210
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4211
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
|
|
4246
4212
|
}
|
|
4247
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
4213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", 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.1.
|
|
4271
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
4236
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4237
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
|
|
4272
4238
|
}
|
|
4273
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
4239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", 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.1.1", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4265
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.1", 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.1.1", 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.1.
|
|
4350
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
4352
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4353
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
|
|
4351
4354
|
}
|
|
4352
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
4355
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", 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.1.
|
|
4420
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
4422
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4423
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
|
|
4421
4424
|
}
|
|
4422
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
4425
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", 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.1.
|
|
4440
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
4442
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4443
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
|
|
4441
4444
|
}
|
|
4442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
4445
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
|
|
4443
4446
|
type: Injectable,
|
|
4444
4447
|
args: [{ providedIn: 'root' }]
|
|
4445
4448
|
}] });
|
|
@@ -4894,10 +4897,10 @@ class NavigationTransitions {
|
|
|
4894
4897
|
return (currentBrowserUrl.toString() !== targetBrowserUrl?.toString() &&
|
|
4895
4898
|
!this.currentNavigation?.extras.skipLocationChange);
|
|
4896
4899
|
}
|
|
4897
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
4898
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
4900
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4901
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
|
|
4899
4902
|
}
|
|
4900
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
4903
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NavigationTransitions, decorators: [{
|
|
4901
4904
|
type: Injectable,
|
|
4902
4905
|
args: [{ providedIn: 'root' }]
|
|
4903
4906
|
}], ctorParameters: () => [] });
|
|
@@ -4913,10 +4916,10 @@ function isBrowserTriggeredNavigation(source) {
|
|
|
4913
4916
|
* @publicApi
|
|
4914
4917
|
*/
|
|
4915
4918
|
class RouteReuseStrategy {
|
|
4916
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
4917
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
4919
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4920
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
|
|
4918
4921
|
}
|
|
4919
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
4922
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouteReuseStrategy, decorators: [{
|
|
4920
4923
|
type: Injectable,
|
|
4921
4924
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
|
|
4922
4925
|
}] });
|
|
@@ -4967,19 +4970,19 @@ class BaseRouteReuseStrategy {
|
|
|
4967
4970
|
}
|
|
4968
4971
|
}
|
|
4969
4972
|
class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
|
|
4970
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
4971
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
4973
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4974
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
|
|
4972
4975
|
}
|
|
4973
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
4976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
|
|
4974
4977
|
type: Injectable,
|
|
4975
4978
|
args: [{ providedIn: 'root' }]
|
|
4976
4979
|
}] });
|
|
4977
4980
|
|
|
4978
4981
|
class StateManager {
|
|
4979
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
4980
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
4982
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4983
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) }); }
|
|
4981
4984
|
}
|
|
4982
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
4985
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: StateManager, decorators: [{
|
|
4983
4986
|
type: Injectable,
|
|
4984
4987
|
args: [{ providedIn: 'root', useFactory: () => inject(HistoryStateManager) }]
|
|
4985
4988
|
}] });
|
|
@@ -5152,10 +5155,10 @@ class HistoryStateManager extends StateManager {
|
|
|
5152
5155
|
}
|
|
5153
5156
|
return { navigationId };
|
|
5154
5157
|
}
|
|
5155
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
5156
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
5158
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5159
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: HistoryStateManager, providedIn: 'root' }); }
|
|
5157
5160
|
}
|
|
5158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
5161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: HistoryStateManager, decorators: [{
|
|
5159
5162
|
type: Injectable,
|
|
5160
5163
|
args: [{ providedIn: 'root' }]
|
|
5161
5164
|
}] });
|
|
@@ -5728,10 +5731,10 @@ class Router {
|
|
|
5728
5731
|
return Promise.reject(e);
|
|
5729
5732
|
});
|
|
5730
5733
|
}
|
|
5731
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
5732
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
5734
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5735
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: Router, providedIn: 'root' }); }
|
|
5733
5736
|
}
|
|
5734
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
5737
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: Router, decorators: [{
|
|
5735
5738
|
type: Injectable,
|
|
5736
5739
|
args: [{ providedIn: 'root' }]
|
|
5737
5740
|
}], ctorParameters: () => [] });
|
|
@@ -6031,10 +6034,10 @@ class RouterLink {
|
|
|
6031
6034
|
preserveFragment: this.preserveFragment,
|
|
6032
6035
|
});
|
|
6033
6036
|
}
|
|
6034
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
6035
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.
|
|
6037
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", 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 }); }
|
|
6038
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.1", 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 }); }
|
|
6036
6039
|
}
|
|
6037
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
6040
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterLink, decorators: [{
|
|
6038
6041
|
type: Directive,
|
|
6039
6042
|
args: [{
|
|
6040
6043
|
selector: '[routerLink]',
|
|
@@ -6272,10 +6275,10 @@ class RouterLinkActive {
|
|
|
6272
6275
|
const isActiveCheckFn = this.isLinkActive(this.router);
|
|
6273
6276
|
return (this.link && isActiveCheckFn(this.link)) || this.links.some(isActiveCheckFn);
|
|
6274
6277
|
}
|
|
6275
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
6276
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.
|
|
6278
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6279
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", 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 }); }
|
|
6277
6280
|
}
|
|
6278
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
6281
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterLinkActive, decorators: [{
|
|
6279
6282
|
type: Directive,
|
|
6280
6283
|
args: [{
|
|
6281
6284
|
selector: '[routerLinkActive]',
|
|
@@ -6327,10 +6330,10 @@ class PreloadAllModules {
|
|
|
6327
6330
|
preload(route, fn) {
|
|
6328
6331
|
return fn().pipe(catchError(() => of(null)));
|
|
6329
6332
|
}
|
|
6330
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
6331
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
6333
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6334
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
|
|
6332
6335
|
}
|
|
6333
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
6336
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: PreloadAllModules, decorators: [{
|
|
6334
6337
|
type: Injectable,
|
|
6335
6338
|
args: [{ providedIn: 'root' }]
|
|
6336
6339
|
}] });
|
|
@@ -6347,10 +6350,10 @@ class NoPreloading {
|
|
|
6347
6350
|
preload(route, fn) {
|
|
6348
6351
|
return of(null);
|
|
6349
6352
|
}
|
|
6350
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
6351
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
6353
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6354
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
|
|
6352
6355
|
}
|
|
6353
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
6356
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NoPreloading, decorators: [{
|
|
6354
6357
|
type: Injectable,
|
|
6355
6358
|
args: [{ providedIn: 'root' }]
|
|
6356
6359
|
}] });
|
|
@@ -6441,10 +6444,10 @@ class RouterPreloader {
|
|
|
6441
6444
|
}
|
|
6442
6445
|
});
|
|
6443
6446
|
}
|
|
6444
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
6445
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
6447
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6448
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
|
|
6446
6449
|
}
|
|
6447
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
6450
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterPreloader, decorators: [{
|
|
6448
6451
|
type: Injectable,
|
|
6449
6452
|
args: [{ providedIn: 'root' }]
|
|
6450
6453
|
}], ctorParameters: () => [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }] });
|
|
@@ -6545,10 +6548,10 @@ class RouterScroller {
|
|
|
6545
6548
|
this.routerEventsSubscription?.unsubscribe();
|
|
6546
6549
|
this.scrollEventsSubscription?.unsubscribe();
|
|
6547
6550
|
}
|
|
6548
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
6549
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.
|
|
6551
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6552
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterScroller }); }
|
|
6550
6553
|
}
|
|
6551
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
6554
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterScroller, decorators: [{
|
|
6552
6555
|
type: Injectable
|
|
6553
6556
|
}], ctorParameters: () => [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }] });
|
|
6554
6557
|
|
|
@@ -7195,11 +7198,11 @@ class RouterModule {
|
|
|
7195
7198
|
providers: [{ provide: ROUTES, multi: true, useValue: routes }],
|
|
7196
7199
|
};
|
|
7197
7200
|
}
|
|
7198
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.
|
|
7199
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.
|
|
7200
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.
|
|
7201
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7202
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.1", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
|
|
7203
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterModule }); }
|
|
7201
7204
|
}
|
|
7202
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.
|
|
7205
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: RouterModule, decorators: [{
|
|
7203
7206
|
type: NgModule,
|
|
7204
7207
|
args: [{
|
|
7205
7208
|
imports: ROUTER_DIRECTIVES,
|
|
@@ -7344,7 +7347,7 @@ function mapToResolve(provider) {
|
|
|
7344
7347
|
/**
|
|
7345
7348
|
* @publicApi
|
|
7346
7349
|
*/
|
|
7347
|
-
const VERSION = new Version('18.1.
|
|
7350
|
+
const VERSION = new Version('18.1.1');
|
|
7348
7351
|
|
|
7349
7352
|
/**
|
|
7350
7353
|
* @module
|