@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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v18.0.0-next.0
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.startsWith(':');
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.0", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
425
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
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.0", ngImport: i0, type: UrlSerializer, decorators: [{
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.0", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1859
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
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.0", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
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.0", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2574
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.0", 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
+ 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.0", ngImport: i0, type: RouterOutlet, decorators: [{
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.0", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2682
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: RoutedComponentInputBinder }); }
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.0", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
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.0", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2765
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.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"] }] }); }
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.0", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
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.startsWith('/')) {
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.startsWith(':');
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.startsWith(':')
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
- // Use Object.freeze to prevent readers of the Router state from modifying it outside
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(root, [], this.urlTree.queryParams, this.urlTree.fragment);
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
- const expanded$ = this.processSegmentGroup(this.injector, this.config, rootSegmentGroup, PRIMARY_OUTLET);
3806
- return expanded$.pipe(catchError((e) => {
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
- inheritParamsAndData(routeNode, parent) {
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.startsWith('/')) {
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 newTree = this.applyRedirects.applyRedirectCommands(consumedSegments, route.redirectTo, positionalParamSegments);
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, parameters } = result;
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.0", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4198
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
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.0", ngImport: i0, type: TitleStrategy, decorators: [{
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.0", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
4224
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
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.0", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
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.0", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4303
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
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.0", ngImport: i0, type: RouterConfigLoader, decorators: [{
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.0", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4373
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
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.0", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
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.0", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4393
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
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.0", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
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.0", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4827
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
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.0", ngImport: i0, type: NavigationTransitions, decorators: [{
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.0", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4846
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
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.0", ngImport: i0, type: RouteReuseStrategy, decorators: [{
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.0", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4900
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
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.0", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
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.0", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4909
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) }); }
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.0", ngImport: i0, type: StateManager, decorators: [{
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.0", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
5087
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: HistoryStateManager, providedIn: 'root' }); }
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.0", ngImport: i0, type: HistoryStateManager, decorators: [{
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' || !commands[0].startsWith('/')) {
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.0", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5669
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: Router, providedIn: 'root' }); }
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.0", ngImport: i0, type: Router, decorators: [{
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.0", 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 }); }
5947
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.0-next.0", 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 }); }
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.0", ngImport: i0, type: RouterLink, decorators: [{
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.0", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
6187
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.0-next.0", 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 }); }
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.0", ngImport: i0, type: RouterLinkActive, decorators: [{
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.0", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6242
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
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.0", ngImport: i0, type: PreloadAllModules, decorators: [{
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.0", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6262
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
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.0", ngImport: i0, type: NoPreloading, decorators: [{
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.0", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
6356
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
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.0", ngImport: i0, type: RouterPreloader, decorators: [{
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.0", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
6452
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: RouterScroller }); }
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.0", ngImport: i0, type: RouterScroller, decorators: [{
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.0", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
7105
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.0-next.0", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
7106
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.0-next.0", ngImport: i0, type: RouterModule }); }
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.0", ngImport: i0, type: RouterModule, decorators: [{
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.0');
7259
+ const VERSION = new Version('18.0.0-next.1');
7254
7260
 
7255
7261
  /**
7256
7262
  * @module