@angular/router 18.0.0-next.0 → 18.0.0-next.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/apply_redirects.mjs +16 -7
- package/esm2022/src/components/empty_outlet.mjs +3 -3
- 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/index.mjs +1 -1
- package/esm2022/src/models.mjs +1 -1
- package/esm2022/src/navigation_transition.mjs +3 -3
- package/esm2022/src/page_title_strategy.mjs +6 -6
- package/esm2022/src/recognize.mjs +36 -39
- package/esm2022/src/route_reuse_strategy.mjs +6 -6
- package/esm2022/src/router.mjs +5 -5
- package/esm2022/src/router_config_loader.mjs +3 -3
- package/esm2022/src/router_module.mjs +4 -4
- package/esm2022/src/router_outlet_context.mjs +3 -3
- package/esm2022/src/router_preloader.mjs +9 -9
- package/esm2022/src/router_scroller.mjs +3 -3
- package/esm2022/src/shared.mjs +2 -2
- 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/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 +123 -117
- package/fesm2022/router.mjs.map +1 -1
- package/fesm2022/testing.mjs +11 -11
- package/fesm2022/upgrade.mjs +1 -1
- package/index.d.ts +25 -4
- 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,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v18.0.0-next.
|
|
2
|
+
* @license Angular v18.0.0-next.1
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -90,7 +90,7 @@ function defaultUrlMatcher(segments, segmentGroup, route) {
|
|
|
90
90
|
for (let index = 0; index < parts.length; index++) {
|
|
91
91
|
const part = parts[index];
|
|
92
92
|
const segment = segments[index];
|
|
93
|
-
const isParameter = part
|
|
93
|
+
const isParameter = part[0] === ':';
|
|
94
94
|
if (isParameter) {
|
|
95
95
|
posParams[part.substring(1)] = segment;
|
|
96
96
|
}
|
|
@@ -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.0-next.
|
|
425
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
424
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
425
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
|
|
426
426
|
}
|
|
427
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
427
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: UrlSerializer, decorators: [{
|
|
428
428
|
type: Injectable,
|
|
429
429
|
args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
|
|
430
430
|
}] });
|
|
@@ -1855,10 +1855,10 @@ class ChildrenOutletContexts {
|
|
|
1855
1855
|
getContext(childName) {
|
|
1856
1856
|
return this.contexts.get(childName) || null;
|
|
1857
1857
|
}
|
|
1858
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
1859
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
1858
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1859
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
|
|
1860
1860
|
}
|
|
1861
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
1861
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
|
|
1862
1862
|
type: Injectable,
|
|
1863
1863
|
args: [{ providedIn: 'root' }]
|
|
1864
1864
|
}] });
|
|
@@ -2570,10 +2570,10 @@ class RouterOutlet {
|
|
|
2570
2570
|
this.inputBinder?.bindActivatedRouteToOutletComponent(this);
|
|
2571
2571
|
this.activateEvents.emit(this.activated.instance);
|
|
2572
2572
|
}
|
|
2573
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
2574
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.
|
|
2573
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2574
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.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 }); }
|
|
2575
2575
|
}
|
|
2576
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
2576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterOutlet, decorators: [{
|
|
2577
2577
|
type: Directive,
|
|
2578
2578
|
args: [{
|
|
2579
2579
|
selector: 'router-outlet',
|
|
@@ -2678,10 +2678,10 @@ class RoutedComponentInputBinder {
|
|
|
2678
2678
|
});
|
|
2679
2679
|
this.outletDataSubscriptions.set(outlet, dataSubscription);
|
|
2680
2680
|
}
|
|
2681
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
2682
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
2681
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2682
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RoutedComponentInputBinder }); }
|
|
2683
2683
|
}
|
|
2684
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
2684
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
|
|
2685
2685
|
type: Injectable
|
|
2686
2686
|
}] });
|
|
2687
2687
|
|
|
@@ -2761,10 +2761,10 @@ function isNavigationCancelingError(error) {
|
|
|
2761
2761
|
* to this `EmptyOutletComponent`.
|
|
2762
2762
|
*/
|
|
2763
2763
|
class ɵEmptyOutletComponent {
|
|
2764
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
2765
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.
|
|
2764
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2765
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.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"] }] }); }
|
|
2766
2766
|
}
|
|
2767
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
2767
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
|
|
2768
2768
|
type: Component,
|
|
2769
2769
|
args: [{
|
|
2770
2770
|
template: `<router-outlet></router-outlet>`,
|
|
@@ -3555,14 +3555,23 @@ class ApplyRedirects {
|
|
|
3555
3555
|
return of(res);
|
|
3556
3556
|
}
|
|
3557
3557
|
if (c.numberOfChildren > 1 || !c.children[PRIMARY_OUTLET]) {
|
|
3558
|
-
return namedOutletsRedirect(route.redirectTo);
|
|
3558
|
+
return namedOutletsRedirect(`${route.redirectTo}`);
|
|
3559
3559
|
}
|
|
3560
3560
|
c = c.children[PRIMARY_OUTLET];
|
|
3561
3561
|
}
|
|
3562
3562
|
}
|
|
3563
|
-
applyRedirectCommands(segments, redirectTo, posParams) {
|
|
3563
|
+
applyRedirectCommands(segments, redirectTo, posParams, currentSnapshot, injector) {
|
|
3564
|
+
if (typeof redirectTo !== 'string') {
|
|
3565
|
+
const redirectToFn = redirectTo;
|
|
3566
|
+
const { queryParams, fragment, routeConfig, url, outlet, params, data, title } = currentSnapshot;
|
|
3567
|
+
const newRedirect = runInInjectionContext(injector, () => redirectToFn({ params, data, queryParams, fragment, routeConfig, url, outlet, title }));
|
|
3568
|
+
if (newRedirect instanceof UrlTree) {
|
|
3569
|
+
throw new AbsoluteRedirect(newRedirect);
|
|
3570
|
+
}
|
|
3571
|
+
redirectTo = newRedirect;
|
|
3572
|
+
}
|
|
3564
3573
|
const newTree = this.applyRedirectCreateUrlTree(redirectTo, this.urlSerializer.parse(redirectTo), segments, posParams);
|
|
3565
|
-
if (redirectTo
|
|
3574
|
+
if (redirectTo[0] === '/') {
|
|
3566
3575
|
throw new AbsoluteRedirect(newTree);
|
|
3567
3576
|
}
|
|
3568
3577
|
return newTree;
|
|
@@ -3574,7 +3583,7 @@ class ApplyRedirects {
|
|
|
3574
3583
|
createQueryParams(redirectToParams, actualParams) {
|
|
3575
3584
|
const res = {};
|
|
3576
3585
|
Object.entries(redirectToParams).forEach(([k, v]) => {
|
|
3577
|
-
const copySourceValue = typeof v === 'string' && v
|
|
3586
|
+
const copySourceValue = typeof v === 'string' && v[0] === ':';
|
|
3578
3587
|
if (copySourceValue) {
|
|
3579
3588
|
const sourceName = v.substring(1);
|
|
3580
3589
|
res[k] = actualParams[sourceName];
|
|
@@ -3594,7 +3603,7 @@ class ApplyRedirects {
|
|
|
3594
3603
|
return new UrlSegmentGroup(updatedSegments, children);
|
|
3595
3604
|
}
|
|
3596
3605
|
createSegments(redirectTo, redirectToSegments, actualSegments, posParams) {
|
|
3597
|
-
return redirectToSegments.map((s) => s.path
|
|
3606
|
+
return redirectToSegments.map((s) => s.path[0] === ':'
|
|
3598
3607
|
? this.findPosParam(redirectTo, s, posParams)
|
|
3599
3608
|
: this.findOrReturn(s, actualSegments));
|
|
3600
3609
|
}
|
|
@@ -3785,25 +3794,25 @@ class Recognizer {
|
|
|
3785
3794
|
}
|
|
3786
3795
|
recognize() {
|
|
3787
3796
|
const rootSegmentGroup = split(this.urlTree.root, [], [], this.config).segmentGroup;
|
|
3788
|
-
return this.match(rootSegmentGroup).pipe(map((children) => {
|
|
3789
|
-
|
|
3790
|
-
// of a navigation, resulting in the router being out of sync with the browser.
|
|
3791
|
-
const root = new ActivatedRouteSnapshot([], Object.freeze({}), Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, {}, PRIMARY_OUTLET, this.rootComponentType, null, {});
|
|
3792
|
-
const rootNode = new TreeNode(root, children);
|
|
3797
|
+
return this.match(rootSegmentGroup).pipe(map(({ children, rootSnapshot }) => {
|
|
3798
|
+
const rootNode = new TreeNode(rootSnapshot, children);
|
|
3793
3799
|
const routeState = new RouterStateSnapshot('', rootNode);
|
|
3794
|
-
const tree = createUrlTreeFromSnapshot(
|
|
3800
|
+
const tree = createUrlTreeFromSnapshot(rootSnapshot, [], this.urlTree.queryParams, this.urlTree.fragment);
|
|
3795
3801
|
// https://github.com/angular/angular/issues/47307
|
|
3796
3802
|
// Creating the tree stringifies the query params
|
|
3797
3803
|
// We don't want to do this here so reassign them to the original.
|
|
3798
3804
|
tree.queryParams = this.urlTree.queryParams;
|
|
3799
3805
|
routeState.url = this.urlSerializer.serialize(tree);
|
|
3800
|
-
this.inheritParamsAndData(routeState._root, null);
|
|
3801
3806
|
return { state: routeState, tree };
|
|
3802
3807
|
}));
|
|
3803
3808
|
}
|
|
3804
3809
|
match(rootSegmentGroup) {
|
|
3805
|
-
|
|
3806
|
-
|
|
3810
|
+
// Use Object.freeze to prevent readers of the Router state from modifying it outside
|
|
3811
|
+
// of a navigation, resulting in the router being out of sync with the browser.
|
|
3812
|
+
const rootSnapshot = new ActivatedRouteSnapshot([], Object.freeze({}), Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, Object.freeze({}), PRIMARY_OUTLET, this.rootComponentType, null, {});
|
|
3813
|
+
return this.processSegmentGroup(this.injector, this.config, rootSegmentGroup, PRIMARY_OUTLET, rootSnapshot).pipe(map((children) => {
|
|
3814
|
+
return { children, rootSnapshot };
|
|
3815
|
+
}), catchError((e) => {
|
|
3807
3816
|
if (e instanceof AbsoluteRedirect) {
|
|
3808
3817
|
this.urlTree = e.urlTree;
|
|
3809
3818
|
return this.match(e.urlTree.root);
|
|
@@ -3814,18 +3823,11 @@ class Recognizer {
|
|
|
3814
3823
|
throw e;
|
|
3815
3824
|
}));
|
|
3816
3825
|
}
|
|
3817
|
-
|
|
3818
|
-
const route = routeNode.value;
|
|
3819
|
-
const i = getInherited(route, parent, this.paramsInheritanceStrategy);
|
|
3820
|
-
route.params = Object.freeze(i.params);
|
|
3821
|
-
route.data = Object.freeze(i.data);
|
|
3822
|
-
routeNode.children.forEach((n) => this.inheritParamsAndData(n, route));
|
|
3823
|
-
}
|
|
3824
|
-
processSegmentGroup(injector, config, segmentGroup, outlet) {
|
|
3826
|
+
processSegmentGroup(injector, config, segmentGroup, outlet, parentRoute) {
|
|
3825
3827
|
if (segmentGroup.segments.length === 0 && segmentGroup.hasChildren()) {
|
|
3826
|
-
return this.processChildren(injector, config, segmentGroup);
|
|
3828
|
+
return this.processChildren(injector, config, segmentGroup, parentRoute);
|
|
3827
3829
|
}
|
|
3828
|
-
return this.processSegment(injector, config, segmentGroup, segmentGroup.segments, outlet, true).pipe(map((child) => (child instanceof TreeNode ? [child] : [])));
|
|
3830
|
+
return this.processSegment(injector, config, segmentGroup, segmentGroup.segments, outlet, true, parentRoute).pipe(map((child) => (child instanceof TreeNode ? [child] : [])));
|
|
3829
3831
|
}
|
|
3830
3832
|
/**
|
|
3831
3833
|
* Matches every child outlet in the `segmentGroup` to a `Route` in the config. Returns `null` if
|
|
@@ -3835,7 +3837,7 @@ class Recognizer {
|
|
|
3835
3837
|
* @param segmentGroup - The `UrlSegmentGroup` whose children need to be matched against the
|
|
3836
3838
|
* config.
|
|
3837
3839
|
*/
|
|
3838
|
-
processChildren(injector, config, segmentGroup) {
|
|
3840
|
+
processChildren(injector, config, segmentGroup, parentRoute) {
|
|
3839
3841
|
// Expand outlets one at a time, starting with the primary outlet. We need to do it this way
|
|
3840
3842
|
// because an absolute redirect from the primary outlet takes precedence.
|
|
3841
3843
|
const childOutlets = [];
|
|
@@ -3853,7 +3855,7 @@ class Recognizer {
|
|
|
3853
3855
|
// appear first, followed by routes for other outlets, which might match if they have
|
|
3854
3856
|
// an empty path.
|
|
3855
3857
|
const sortedConfig = sortByMatchingOutlets(config, childOutlet);
|
|
3856
|
-
return this.processSegmentGroup(injector, sortedConfig, child, childOutlet);
|
|
3858
|
+
return this.processSegmentGroup(injector, sortedConfig, child, childOutlet, parentRoute);
|
|
3857
3859
|
}), scan((children, outletChildren) => {
|
|
3858
3860
|
children.push(...outletChildren);
|
|
3859
3861
|
return children;
|
|
@@ -3873,9 +3875,9 @@ class Recognizer {
|
|
|
3873
3875
|
return of(mergedChildren);
|
|
3874
3876
|
}));
|
|
3875
3877
|
}
|
|
3876
|
-
processSegment(injector, routes, segmentGroup, segments, outlet, allowRedirects) {
|
|
3878
|
+
processSegment(injector, routes, segmentGroup, segments, outlet, allowRedirects, parentRoute) {
|
|
3877
3879
|
return from(routes).pipe(concatMap((r) => {
|
|
3878
|
-
return this.processSegmentAgainstRoute(r._injector ?? injector, routes, r, segmentGroup, segments, outlet, allowRedirects).pipe(catchError((e) => {
|
|
3880
|
+
return this.processSegmentAgainstRoute(r._injector ?? injector, routes, r, segmentGroup, segments, outlet, allowRedirects, parentRoute).pipe(catchError((e) => {
|
|
3879
3881
|
if (e instanceof NoMatch) {
|
|
3880
3882
|
return of(null);
|
|
3881
3883
|
}
|
|
@@ -3891,24 +3893,24 @@ class Recognizer {
|
|
|
3891
3893
|
throw e;
|
|
3892
3894
|
}));
|
|
3893
3895
|
}
|
|
3894
|
-
processSegmentAgainstRoute(injector, routes, route, rawSegment, segments, outlet, allowRedirects) {
|
|
3896
|
+
processSegmentAgainstRoute(injector, routes, route, rawSegment, segments, outlet, allowRedirects, parentRoute) {
|
|
3895
3897
|
if (!isImmediateMatch(route, rawSegment, segments, outlet))
|
|
3896
3898
|
return noMatch$1(rawSegment);
|
|
3897
3899
|
if (route.redirectTo === undefined) {
|
|
3898
|
-
return this.matchSegmentAgainstRoute(injector, rawSegment, route, segments, outlet);
|
|
3900
|
+
return this.matchSegmentAgainstRoute(injector, rawSegment, route, segments, outlet, parentRoute);
|
|
3899
3901
|
}
|
|
3900
3902
|
if (this.allowRedirects && allowRedirects) {
|
|
3901
|
-
return this.expandSegmentAgainstRouteUsingRedirect(injector, rawSegment, routes, route, segments, outlet);
|
|
3903
|
+
return this.expandSegmentAgainstRouteUsingRedirect(injector, rawSegment, routes, route, segments, outlet, parentRoute);
|
|
3902
3904
|
}
|
|
3903
3905
|
return noMatch$1(rawSegment);
|
|
3904
3906
|
}
|
|
3905
|
-
expandSegmentAgainstRouteUsingRedirect(injector, segmentGroup, routes, route, segments, outlet) {
|
|
3906
|
-
const { matched, consumedSegments, positionalParamSegments, remainingSegments } = match(segmentGroup, route, segments);
|
|
3907
|
+
expandSegmentAgainstRouteUsingRedirect(injector, segmentGroup, routes, route, segments, outlet, parentRoute) {
|
|
3908
|
+
const { matched, parameters, consumedSegments, positionalParamSegments, remainingSegments } = match(segmentGroup, route, segments);
|
|
3907
3909
|
if (!matched)
|
|
3908
3910
|
return noMatch$1(segmentGroup);
|
|
3909
3911
|
// TODO(atscott): Move all of this under an if(ngDevMode) as a breaking change and allow stack
|
|
3910
3912
|
// size exceeded in production
|
|
3911
|
-
if (route.redirectTo.
|
|
3913
|
+
if (typeof route.redirectTo === 'string' && route.redirectTo[0] === '/') {
|
|
3912
3914
|
this.absoluteRedirectCount++;
|
|
3913
3915
|
if (this.absoluteRedirectCount > MAX_ALLOWED_REDIRECTS) {
|
|
3914
3916
|
if (ngDevMode) {
|
|
@@ -3919,12 +3921,16 @@ class Recognizer {
|
|
|
3919
3921
|
this.allowRedirects = false;
|
|
3920
3922
|
}
|
|
3921
3923
|
}
|
|
3922
|
-
const
|
|
3924
|
+
const currentSnapshot = new ActivatedRouteSnapshot(segments, parameters, Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, getData(route), getOutlet(route), route.component ?? route._loadedComponent ?? null, route, getResolve(route));
|
|
3925
|
+
const inherited = getInherited(currentSnapshot, parentRoute, this.paramsInheritanceStrategy);
|
|
3926
|
+
currentSnapshot.params = Object.freeze(inherited.params);
|
|
3927
|
+
currentSnapshot.data = Object.freeze(inherited.data);
|
|
3928
|
+
const newTree = this.applyRedirects.applyRedirectCommands(consumedSegments, route.redirectTo, positionalParamSegments, currentSnapshot, injector);
|
|
3923
3929
|
return this.applyRedirects.lineralizeSegments(route, newTree).pipe(mergeMap((newSegments) => {
|
|
3924
|
-
return this.processSegment(injector, routes, segmentGroup, newSegments.concat(remainingSegments), outlet, false);
|
|
3930
|
+
return this.processSegment(injector, routes, segmentGroup, newSegments.concat(remainingSegments), outlet, false, parentRoute);
|
|
3925
3931
|
}));
|
|
3926
3932
|
}
|
|
3927
|
-
matchSegmentAgainstRoute(injector, rawSegment, route, segments, outlet) {
|
|
3933
|
+
matchSegmentAgainstRoute(injector, rawSegment, route, segments, outlet, parentRoute) {
|
|
3928
3934
|
const matchResult = matchWithChecks(rawSegment, route, segments, injector, this.urlSerializer);
|
|
3929
3935
|
if (route.path === '**') {
|
|
3930
3936
|
// Prior versions of the route matching algorithm would stop matching at the wildcard route.
|
|
@@ -3941,14 +3947,14 @@ class Recognizer {
|
|
|
3941
3947
|
injector = route._injector ?? injector;
|
|
3942
3948
|
return this.getChildConfig(injector, route, segments).pipe(switchMap(({ routes: childConfig }) => {
|
|
3943
3949
|
const childInjector = route._loadedInjector ?? injector;
|
|
3944
|
-
const { consumedSegments, remainingSegments
|
|
3950
|
+
const { parameters, consumedSegments, remainingSegments } = result;
|
|
3945
3951
|
const snapshot = new ActivatedRouteSnapshot(consumedSegments, parameters, Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, getData(route), getOutlet(route), route.component ?? route._loadedComponent ?? null, route, getResolve(route));
|
|
3952
|
+
const inherited = getInherited(snapshot, parentRoute, this.paramsInheritanceStrategy);
|
|
3953
|
+
snapshot.params = Object.freeze(inherited.params);
|
|
3954
|
+
snapshot.data = Object.freeze(inherited.data);
|
|
3946
3955
|
const { segmentGroup, slicedSegments } = split(rawSegment, consumedSegments, remainingSegments, childConfig);
|
|
3947
3956
|
if (slicedSegments.length === 0 && segmentGroup.hasChildren()) {
|
|
3948
|
-
return this.processChildren(childInjector, childConfig, segmentGroup).pipe(map((children) => {
|
|
3949
|
-
if (children === null) {
|
|
3950
|
-
return null;
|
|
3951
|
-
}
|
|
3957
|
+
return this.processChildren(childInjector, childConfig, segmentGroup, snapshot).pipe(map((children) => {
|
|
3952
3958
|
return new TreeNode(snapshot, children);
|
|
3953
3959
|
}));
|
|
3954
3960
|
}
|
|
@@ -3964,7 +3970,7 @@ class Recognizer {
|
|
|
3964
3970
|
// {path: 'c', component: C},
|
|
3965
3971
|
// ]}
|
|
3966
3972
|
// Notice that the children of the named outlet are configured with the primary outlet
|
|
3967
|
-
return this.processSegment(childInjector, childConfig, segmentGroup, slicedSegments, matchedOnOutlet ? PRIMARY_OUTLET : outlet, true).pipe(map((child) => {
|
|
3973
|
+
return this.processSegment(childInjector, childConfig, segmentGroup, slicedSegments, matchedOnOutlet ? PRIMARY_OUTLET : outlet, true, snapshot).pipe(map((child) => {
|
|
3968
3974
|
return new TreeNode(snapshot, child instanceof TreeNode ? [child] : []);
|
|
3969
3975
|
}));
|
|
3970
3976
|
}));
|
|
@@ -4194,10 +4200,10 @@ class TitleStrategy {
|
|
|
4194
4200
|
getResolvedTitleForRoute(snapshot) {
|
|
4195
4201
|
return snapshot.data[RouteTitleKey];
|
|
4196
4202
|
}
|
|
4197
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4198
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4203
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4204
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
|
|
4199
4205
|
}
|
|
4200
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4206
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: TitleStrategy, decorators: [{
|
|
4201
4207
|
type: Injectable,
|
|
4202
4208
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
|
|
4203
4209
|
}] });
|
|
@@ -4220,10 +4226,10 @@ class DefaultTitleStrategy extends TitleStrategy {
|
|
|
4220
4226
|
this.title.setTitle(title);
|
|
4221
4227
|
}
|
|
4222
4228
|
}
|
|
4223
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4224
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4229
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4230
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
|
|
4225
4231
|
}
|
|
4226
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4232
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
|
|
4227
4233
|
type: Injectable,
|
|
4228
4234
|
args: [{ providedIn: 'root' }]
|
|
4229
4235
|
}], ctorParameters: () => [{ type: i1.Title }] });
|
|
@@ -4299,10 +4305,10 @@ class RouterConfigLoader {
|
|
|
4299
4305
|
this.childrenLoaders.set(route, loader);
|
|
4300
4306
|
return loader;
|
|
4301
4307
|
}
|
|
4302
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4303
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4308
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4309
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
|
|
4304
4310
|
}
|
|
4305
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4311
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterConfigLoader, decorators: [{
|
|
4306
4312
|
type: Injectable,
|
|
4307
4313
|
args: [{ providedIn: 'root' }]
|
|
4308
4314
|
}] });
|
|
@@ -4369,10 +4375,10 @@ function maybeUnwrapDefaultExport(input) {
|
|
|
4369
4375
|
* @publicApi
|
|
4370
4376
|
*/
|
|
4371
4377
|
class UrlHandlingStrategy {
|
|
4372
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4373
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4378
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4379
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
|
|
4374
4380
|
}
|
|
4375
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4381
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
|
|
4376
4382
|
type: Injectable,
|
|
4377
4383
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
|
|
4378
4384
|
}] });
|
|
@@ -4389,10 +4395,10 @@ class DefaultUrlHandlingStrategy {
|
|
|
4389
4395
|
merge(newUrlPart, wholeUrl) {
|
|
4390
4396
|
return newUrlPart;
|
|
4391
4397
|
}
|
|
4392
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4393
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4398
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4399
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
|
|
4394
4400
|
}
|
|
4395
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4401
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
|
|
4396
4402
|
type: Injectable,
|
|
4397
4403
|
args: [{ providedIn: 'root' }]
|
|
4398
4404
|
}] });
|
|
@@ -4823,10 +4829,10 @@ class NavigationTransitions {
|
|
|
4823
4829
|
return (extractedBrowserUrl.toString() !== this.currentTransition?.extractedUrl.toString() &&
|
|
4824
4830
|
!this.currentTransition?.extras.skipLocationChange);
|
|
4825
4831
|
}
|
|
4826
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4827
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4832
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4833
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
|
|
4828
4834
|
}
|
|
4829
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4835
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: NavigationTransitions, decorators: [{
|
|
4830
4836
|
type: Injectable,
|
|
4831
4837
|
args: [{ providedIn: 'root' }]
|
|
4832
4838
|
}], ctorParameters: () => [] });
|
|
@@ -4842,10 +4848,10 @@ function isBrowserTriggeredNavigation(source) {
|
|
|
4842
4848
|
* @publicApi
|
|
4843
4849
|
*/
|
|
4844
4850
|
class RouteReuseStrategy {
|
|
4845
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4846
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4851
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4852
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
|
|
4847
4853
|
}
|
|
4848
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4854
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouteReuseStrategy, decorators: [{
|
|
4849
4855
|
type: Injectable,
|
|
4850
4856
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
|
|
4851
4857
|
}] });
|
|
@@ -4896,19 +4902,19 @@ class BaseRouteReuseStrategy {
|
|
|
4896
4902
|
}
|
|
4897
4903
|
}
|
|
4898
4904
|
class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
|
|
4899
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4900
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4905
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4906
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
|
|
4901
4907
|
}
|
|
4902
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4908
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
|
|
4903
4909
|
type: Injectable,
|
|
4904
4910
|
args: [{ providedIn: 'root' }]
|
|
4905
4911
|
}] });
|
|
4906
4912
|
|
|
4907
4913
|
class StateManager {
|
|
4908
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4909
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4914
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4915
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) }); }
|
|
4910
4916
|
}
|
|
4911
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
4917
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: StateManager, decorators: [{
|
|
4912
4918
|
type: Injectable,
|
|
4913
4919
|
args: [{ providedIn: 'root', useFactory: () => inject(HistoryStateManager) }]
|
|
4914
4920
|
}] });
|
|
@@ -5083,10 +5089,10 @@ class HistoryStateManager extends StateManager {
|
|
|
5083
5089
|
}
|
|
5084
5090
|
return { navigationId };
|
|
5085
5091
|
}
|
|
5086
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
5087
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
5092
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5093
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: HistoryStateManager, providedIn: 'root' }); }
|
|
5088
5094
|
}
|
|
5089
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
5095
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: HistoryStateManager, decorators: [{
|
|
5090
5096
|
type: Injectable,
|
|
5091
5097
|
args: [{ providedIn: 'root' }]
|
|
5092
5098
|
}] });
|
|
@@ -5499,7 +5505,7 @@ class Router {
|
|
|
5499
5505
|
// Note: the difference between having this fallback for invalid `ActivatedRoute` setups and
|
|
5500
5506
|
// just throwing is ~500 test failures. Fixing all of those tests by hand is not feasible at
|
|
5501
5507
|
// the moment.
|
|
5502
|
-
if (typeof commands[0] !== 'string' ||
|
|
5508
|
+
if (typeof commands[0] !== 'string' || commands[0][0] !== '/') {
|
|
5503
5509
|
// Navigations that were absolute in the old way of creating UrlTrees
|
|
5504
5510
|
// would still work because they wouldn't attempt to match the
|
|
5505
5511
|
// segments in the `ActivatedRoute` to the `currentUrlTree` but
|
|
@@ -5665,10 +5671,10 @@ class Router {
|
|
|
5665
5671
|
return Promise.reject(e);
|
|
5666
5672
|
});
|
|
5667
5673
|
}
|
|
5668
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
5669
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
5674
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5675
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: Router, providedIn: 'root' }); }
|
|
5670
5676
|
}
|
|
5671
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
5677
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: Router, decorators: [{
|
|
5672
5678
|
type: Injectable,
|
|
5673
5679
|
args: [{ providedIn: 'root' }]
|
|
5674
5680
|
}], ctorParameters: () => [] });
|
|
@@ -5943,10 +5949,10 @@ class RouterLink {
|
|
|
5943
5949
|
preserveFragment: this.preserveFragment,
|
|
5944
5950
|
});
|
|
5945
5951
|
}
|
|
5946
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
5947
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0-next.
|
|
5952
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.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 }); }
|
|
5953
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0-next.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 }); }
|
|
5948
5954
|
}
|
|
5949
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
5955
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterLink, decorators: [{
|
|
5950
5956
|
type: Directive,
|
|
5951
5957
|
args: [{
|
|
5952
5958
|
selector: '[routerLink]',
|
|
@@ -6183,10 +6189,10 @@ class RouterLinkActive {
|
|
|
6183
6189
|
const isActiveCheckFn = this.isLinkActive(this.router);
|
|
6184
6190
|
return (this.link && isActiveCheckFn(this.link)) || this.links.some(isActiveCheckFn);
|
|
6185
6191
|
}
|
|
6186
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6187
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.
|
|
6192
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.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 }); }
|
|
6193
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.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 }); }
|
|
6188
6194
|
}
|
|
6189
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterLinkActive, decorators: [{
|
|
6190
6196
|
type: Directive,
|
|
6191
6197
|
args: [{
|
|
6192
6198
|
selector: '[routerLinkActive]',
|
|
@@ -6238,10 +6244,10 @@ class PreloadAllModules {
|
|
|
6238
6244
|
preload(route, fn) {
|
|
6239
6245
|
return fn().pipe(catchError(() => of(null)));
|
|
6240
6246
|
}
|
|
6241
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6242
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6247
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6248
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
|
|
6243
6249
|
}
|
|
6244
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6250
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: PreloadAllModules, decorators: [{
|
|
6245
6251
|
type: Injectable,
|
|
6246
6252
|
args: [{ providedIn: 'root' }]
|
|
6247
6253
|
}] });
|
|
@@ -6258,10 +6264,10 @@ class NoPreloading {
|
|
|
6258
6264
|
preload(route, fn) {
|
|
6259
6265
|
return of(null);
|
|
6260
6266
|
}
|
|
6261
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6262
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6267
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6268
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
|
|
6263
6269
|
}
|
|
6264
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6270
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: NoPreloading, decorators: [{
|
|
6265
6271
|
type: Injectable,
|
|
6266
6272
|
args: [{ providedIn: 'root' }]
|
|
6267
6273
|
}] });
|
|
@@ -6352,10 +6358,10 @@ class RouterPreloader {
|
|
|
6352
6358
|
}
|
|
6353
6359
|
});
|
|
6354
6360
|
}
|
|
6355
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6356
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6361
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6362
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
|
|
6357
6363
|
}
|
|
6358
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6364
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterPreloader, decorators: [{
|
|
6359
6365
|
type: Injectable,
|
|
6360
6366
|
args: [{ providedIn: 'root' }]
|
|
6361
6367
|
}], ctorParameters: () => [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }] });
|
|
@@ -6448,10 +6454,10 @@ class RouterScroller {
|
|
|
6448
6454
|
this.routerEventsSubscription?.unsubscribe();
|
|
6449
6455
|
this.scrollEventsSubscription?.unsubscribe();
|
|
6450
6456
|
}
|
|
6451
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6452
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6457
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6458
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterScroller }); }
|
|
6453
6459
|
}
|
|
6454
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
6460
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterScroller, decorators: [{
|
|
6455
6461
|
type: Injectable
|
|
6456
6462
|
}], ctorParameters: () => [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }] });
|
|
6457
6463
|
|
|
@@ -7101,11 +7107,11 @@ class RouterModule {
|
|
|
7101
7107
|
providers: [{ provide: ROUTES, multi: true, useValue: routes }],
|
|
7102
7108
|
};
|
|
7103
7109
|
}
|
|
7104
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
7105
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.
|
|
7106
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
7110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7111
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
|
|
7112
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterModule }); }
|
|
7107
7113
|
}
|
|
7108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.
|
|
7114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.1", ngImport: i0, type: RouterModule, decorators: [{
|
|
7109
7115
|
type: NgModule,
|
|
7110
7116
|
args: [{
|
|
7111
7117
|
imports: ROUTER_DIRECTIVES,
|
|
@@ -7250,7 +7256,7 @@ function mapToResolve(provider) {
|
|
|
7250
7256
|
/**
|
|
7251
7257
|
* @publicApi
|
|
7252
7258
|
*/
|
|
7253
|
-
const VERSION = new Version('18.0.0-next.
|
|
7259
|
+
const VERSION = new Version('18.0.0-next.1');
|
|
7254
7260
|
|
|
7255
7261
|
/**
|
|
7256
7262
|
* @module
|